{"version":3,"sources":["../src/ts/components/helpers.ts","../src/ts/components/box.ts","../src/ts/components/inline.ts","../src/ts/components/slider.ts","../src/ts/index.ts"," [synthetic:base] "," [synthetic:util/global] "," [synthetic:util/defineproperty] "," [synthetic:util/polyfill] "," [synthetic:es6/array/fill] "," [synthetic:es6/symbol] "," [synthetic:es6/array/from] "," [synthetic:util/owns] "," [synthetic:es6/object/assign] "," [synthetic:util/findinternal] "," [synthetic:es6/array/find] ","../node_modules/web-animations-js/src/scope.js","../node_modules/web-animations-js/src/timing-utilities.js","../node_modules/web-animations-js/src/keyframe-interpolations.js","../node_modules/web-animations-js/src/property-interpolation.js","../node_modules/web-animations-js/src/keyframe-effect.js","../node_modules/web-animations-js/src/apply-preserving-inline-style.js"],"names":["create","tagName","id","click","el","document","createElement","onclick","createClass","className","iterableToArray","iterable","list","i","length","push","applyStyles","styles","key","style","hide","originalDisplay","display","show","insertAfter","target","parentElement","insertBefore","nextSibling","toggleClass","on","classList","contains","toggle","libBind","$","videobox","$.videobox","video","VideoboxObj","open","vbClose","$.vbClose","close","fn","$.fn.videobox","options","linkMapper","elements","this","bind","libBind$1","vbInline","$.vbInline","VbInlineObj","vbiClose","$.vbiClose","callback","$.fn.vbInline","detach","forEach","querySelector","VbInline","parentNode","removeChild","libBind$2","vbSlider","$.vbSlider","VbSlider","getSlider","$.fn.vbSlider","bindAll","Videobox","$jscomp","scope","getGlobal","a","window","global","defineProperty","Object","defineProperties","c","e","get","set","TypeError","Array","prototype","value","polyfill","k","split","p","configurable","writable","Math","max","Number","SYMBOL_PREFIX","initSymbol","Symbol","symbolCounter_","initSymbolIterator","iterator","arrayIterator","iteratorPrototype","done","next","r","call","g","owns","hasOwnProperty","arguments","findInternal","String","v","webAnimationsShared","webAnimations1","shared","testing","d","linear","isDeprecated","f","timingInput","forGroup","effect","timing","b","isNaN","undefined","property","fills","directions","x","start_gradient","h","end_gradient","end","start","xEst","mid","l","j","count","pos","stepSize","easing","styleForCleaning","normalizedEasing","isInvalidTimingDeprecated","cubicBezierRe","cubicData","apply","stepRe","stepData","Start","middle","Middle","End","presets","preset","o","activeDuration","localTime","G","endTime","PhaseBefore","PhaseAfter","PhaseActive","_setMember","member","playbackRate","_playbackRate","delay","_delay","endDelay","_endDelay","fill","_fill","iterationStart","_iterationStart","duration","_duration","direction","_direction","_easingFunction","_easing","iterations","_iterations","y","z","A","B","ease","ease-in","ease-out","ease-in-out","step-start","step-middle","step-end","C","E","F","H","I","J","cloneTimingInput","clone","m","makeTiming","numericTimingToObject","normalizeTimingInput","calculateActiveDuration","abs","calculateIterationProgress","u","calculatePhase","phase","fillMode","activeTime","iterationDuration","overallProgress","Infinity","simpleIterationProgress","currentIteration","playbackDirection","currentDirection","normalizeEasing","parseEasingFunction","isArray","offset","composite","sort","background","border","borderBottom","borderColor","borderLeft","borderRadius","borderRight","borderTop","borderWidth","flex","font","margin","outline","padding","createElementNS","thin","medium","thick","borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","fontSize","xx-small","x-small","small","large","x-large","xx-large","fontWeight","normal","bold","outlineWidth","textShadow","none","boxShadow","convertToArrayForm","normalizeKeyframes","from","map","isFinite","type","DOMException","NOT_SUPPORTED_ERR","name","message","lastIndexOf","filter","a.isDeprecated","Date","setMonth","getMonth","console","warn","toDateString","deprecated","a.deprecated","Error","documentElement","animate","applyFrom","applyTo","startOffset","endOffset","easingFunction","interpolation","propertyInterpolation","convertEffectInput","b.convertEffectInput","clear","replace","toUpperCase","addPropertiesHandler","backgroundColor","backgroundPosition","borderBottomColor","borderBottomLeftRadius","borderBottomRightRadius","borderLeftColor","borderRightColor","borderSpacing","borderTopColor","borderTopLeftRadius","borderTopRightRadius","bottom","clip","color","height","left","letterSpacing","lineHeight","marginBottom","marginLeft","marginRight","marginTop","maxHeight","maxWidth","minHeight","minWidth","opacity","outlineColor","outlineOffset","paddingBottom","paddingLeft","paddingRight","paddingTop","right","textIndent","top","transform","verticalAlign","visibility","width","wordSpacing","zIndex","test","n","Interpolation","_totalDuration","KeyframeEffect","b.KeyframeEffect","_update","k._update","_clear","k._clear","_hasSameTarget","k._hasSameTarget","_target","_id","NullEffect","b.NullEffect","b._update","b._hasSameTarget","enumerable","_surrogateStyle","_style","_length","_isAnimatedProperty","_updateIndices","_webAnimationsPatchedStyle","_set","a.style._set","a.style._clear","cssText","parentRule","getPropertyCSSValue","getPropertyPriority","getPropertyValue","item","removeProperty","setProperty","a.apply","propertyName","a.clear","Element","window.Element.prototype.animate","timeline","_play","a.Interpolation","concat","composeMatrix","quat","dot","min","acos","sin","sqrt","cos","sequenceNumber","currentTime","timelineTime","cancelable","bubbles","currentTarget","defaultPrevented","eventPhase","Event","AT_TARGET","timeStamp","now","Animation","b.Animation","_sequenceNumber","_currentTime","_startTime","_paused","_finishedFlag","_inTimeline","onfinish","_finishHandlers","_effect","_inEffect","_idle","_currentTimePending","_ensureAlive","_animations","_tickCurrentTime","_isFinished","restart","_timeline","applyDirtiedAnimation","startTime","playState","_rewind","play","pause","finish","cancel","reverse","addEventListener","removeEventListener","indexOf","splice","_fireEvents","setTimeout","_tick","_needsTick","pending","running","_targetAnimations","_activeAnimations","_markTarget","_unmarkTarget","q","performance","requestAnimationFrame","window.requestAnimationFrame","cancelAnimationFrame","window.cancelAnimationFrame","_timing","b.restart","b.applyDirtiedAnimation","slice","deg","grad","turn","PI","rad","t","tan","px","s","w","makeMatrixDecomposition","reduce","exec","ignoreCase","toLowerCase","substr","join","consumeToken","consumeTrimmed","consumeRepeated","consumeParenthesised","ignore","optional","consumeList","mergeNestedRepeated","mergeWrappedNestedRepeated","mergeList","inset","lengths","consumeLengthOrPercent","consumeColor","propertySpecificKeyframeGroups","makeInterpolations","interpolations","keyframes","groupName","startIndex","endIndex","mergeDimensions","mergeColors","group","lengthReconstitution","result","string","makePropertySpecificKeyframeGroups","fraction","offsetFraction","localDuration","scaledLocalTime","rightInterpolation","effectInput","parseNumber","leftInterpolation","webAnimationsTesting","addPropertyHandler","toCamelCase","_","merger","propertyHandlers","parser","properties","ucProperty","pixelColor","alpha","initialValues","handlers","parsedLeft","canvas","interpolationArgs","parsedRight","match","taggedUnitRegExp","reductions","typeCheck","unit","units","EffectTime","effectTime","timeFraction","parseLengthOrPercent","parseAngle","keyframeEffect","consumeSizePairList","nullEffect","consumeSizePair","configureProperty","mergeDimensionsNonNegative","AnimatedCSSStyleDeclaration","element","constructor","links","isOpen","animations","defaults","closeText","closeKeys","hideBottom","root","body","animation","overlay","wrap","center","appendChild","responsive","bottomContainer","allowFullscreen","frameBorder","button","innerHTML","caption","activeVideo","setPlayerSizePosition","evt","keyCode","querySelectorAll","link","vbListener","vbiListener","preventDefault","stopPropagation","assign","setup","origin","getAttribute","bw","getBoundingClientRect","bt","clientWidth","clientHeight","changeVideo","stop","setPlayerPosition","nw","ratio","JSON","parse","pop","url","title","newVideo","innerText","parent","offsetParent","wbr","obr","offsetLeft","offsetTop","targetRatio","centerOrigin","centerTarget","originRatio","centerAnimation","centerAnimation.onfinish","animateBotton","showVideo","bottomAnimation","bottomAnimation.onfinish","setAttribute","anim","jQuery","jQuery.fn.videobox","Zepto","hidding","hidden","closeTimeout","maxW","v1","v1.onfinish","v2","class","wrapDest","animation.onfinish","responsiveDest","animation2","animation2.onfinish","timer","clearTimeout","queue","timeout","moving","visible","detachedElements","moveAll","singleDuration","doubleClickTimeout","outer","prev","showPrev","showNext","content","buttons","attached","basis","parseInt","setCount","sliders","sizeTarget","trim","move","opts","slider","find","updateSizes","queueMove","setBasis","getTarget","dir","oldHeight","num","shift","firstChild","oldElements","animationProperties","positionOrigin","positionDest","skip","offsetHeight","elm","unshift","current","ch","base","offsetWidth","floor","setAttached","children","isMoving","readyState","ready"],"mappings":"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","file":"videobox.bundle.js","sourcesContent":["/**\r\n * Interface for Videobox configuration\r\n */\r\nexport interface vbOptions {\r\n\r\n /**\r\n * default player width\r\n */\r\n width?: number,\r\n\r\n /**\r\n * default player height\r\n */\r\n height?: number,\r\n\r\n /**\r\n * text for the close button\r\n */\r\n closeText?: string,\r\n\r\n /**\r\n * player padding\r\n */\r\n padding?: number,\r\n\r\n /**\r\n * element the pop-up will be attached to \r\n */\r\n root?: HTMLElement,\r\n\r\n /**\r\n * adittional style for the player (doesn't apply to the pop-up player)\r\n */\r\n style?: string,\r\n\r\n /**\r\n * adittional class name(s) for the player (doesn't apply to the pop-up player)\r\n */\r\n class?: string,\r\n\r\n /**\r\n * time (in ms) while the close button remains visible when the inline player is shown\r\n */\r\n closeTimeout?: number,\r\n\r\n /**\r\n * keycodes to close the pop-up / inlie player\r\n */\r\n closeKeys?: number[],\r\n\r\n /**\r\n * if true, the bottom line on the pop-up player won't be displayed\r\n */\r\n hideBottom?: boolean\r\n\r\n /**\r\n * animation properties (see web animations specifications)\r\n */\r\n animation?: KeyframeAnimationOptions\r\n}\r\n\r\n/**\r\n * Interface for the Videobox's video element\r\n */\r\nexport interface vbVideo {\r\n\r\n /**\r\n * player url\r\n */\r\n url: string,\r\n\r\n /**\r\n * optional title, is supplied it'll dispalyed under the player\r\n */\r\n title?: string,\r\n\r\n /**\r\n * origin for Videobox actions, such as player open animation\r\n */\r\n origin: vbOrigin,\r\n\r\n /**\r\n * configuration overrides\r\n */\r\n options: vbOptions\r\n}\r\n\r\n/**\r\n * Interface for video origin\r\n */\r\nexport interface vbOrigin {\r\n\r\n /**\r\n * X coordinate where the player will appear (relative to options.root)\r\n */\r\n x?: number,\r\n\r\n /**\r\n * Y coordinate where the player will appear (relative to options.root)\r\n */\r\n y?: number,\r\n\r\n /**\r\n * initial player width\r\n */\r\n width?: number,\r\n\r\n /**\r\n * initial player height\r\n */\r\n height?: number,\r\n\r\n /**\r\n * target element (the clicked element)\r\n */\r\n target: HTMLElement\r\n}\r\n\r\n/** @internal */\r\nexport function create(tagName: string, id?: string, click?: any): HTMLElement {\r\n let el = document.createElement(tagName)\r\n if (id)\r\n el.id = id\r\n if (click)\r\n el.onclick = click\r\n return el\r\n}\r\n\r\n/** @internal */\r\nexport function createClass(tagName: string, className?: string, click?: any): HTMLElement {\r\n let el = document.createElement(tagName)\r\n if (className)\r\n el.className = className\r\n if (click)\r\n el.onclick = click\r\n return el\r\n}\r\n\r\n/** @internal */\r\nexport function iterableToArray(iterable: any): Array {\r\n let list = []\r\n for (let i = 0; i < iterable.length; i++)\r\n list.push(iterable[i])\r\n return list\r\n}\r\n\r\n/** @internal */\r\nexport function applyStyles(el: HTMLElement, styles: { [key: string]: string }): void {\r\n for (let key in styles)\r\n if (key in el.style)\r\n el.style[key] = styles[key]\r\n}\r\n\r\n/** @internal */\r\nexport function hide(el: HTMLElement) {\r\n el['originalDisplay'] = (el.style.display && (el.style.display == 'none' ? '' : el.style.display)) || ''\r\n el.style.display = 'none'\r\n}\r\n\r\n/** @internal */\r\nexport function show(el: HTMLElement) {\r\n if ('originalDisplay' in el && el['originalDisplay'])\r\n el.style.display = el['originalDisplay']\r\n else\r\n el.style.display = ''\r\n}\r\n\r\n/** @internal */\r\nexport function insertAfter(el: HTMLElement, target: HTMLElement) {\r\n target.parentElement.insertBefore(el, target.nextSibling)\r\n}\r\n\r\n/** @internal */\r\nexport function toggleClass(el: HTMLElement, className: string, on: boolean) {\r\n if (el.classList.contains(className) ? !on : on) el.classList.toggle(className)\r\n}","import { create, applyStyles, vbOptions, vbVideo, hide, show, iterableToArray, toggleClass } from './helpers'\r\nimport { VbInlineObj as VbInline } from './inline'\r\n\r\nexport class Videobox {\r\n\r\n private closeText: HTMLSpanElement\r\n private center: HTMLDivElement\r\n private caption: HTMLElement\r\n private wrap: HTMLDivElement\r\n private responsive: HTMLDivElement\r\n private overlay: HTMLDivElement\r\n private bottomContainer: HTMLDivElement\r\n private video: HTMLIFrameElement\r\n private bottom: HTMLDivElement\r\n private button: HTMLLinkElement\r\n\r\n private activeVideo: vbVideo\r\n private isOpen: boolean = false\r\n private animations: Array = []\r\n\r\n private defaults: vbOptions = {\r\n width: 720,\r\n height: 405,\r\n closeText: 'Close',\r\n padding: 30,\r\n closeKeys: [27, 81],\r\n hideBottom: false,\r\n root: document.body,\r\n animation: {\r\n duration: 500,\r\n iterations: 1,\r\n delay: 0,\r\n easing: 'ease-in-out'\r\n }\r\n }\r\n\r\n /** @internal */\r\n constructor(links?: Array | string, options: vbOptions = {}, linkMapper?: ((el: HTMLElement) => vbVideo)) {\r\n this.overlay = create('div', 'vbOverlay', () => this.close())\r\n\r\n this.wrap = create('div', 'vbWrap')\r\n\r\n this.center = create('div', 'vbCenter')\r\n this.wrap.appendChild(this.center)\r\n\r\n this.responsive = create('div', 'vbResponsive')\r\n this.center.appendChild(this.responsive)\r\n\r\n this.bottomContainer = create('div', 'vbBottomContainer')\r\n this.center.appendChild(this.bottomContainer)\r\n\r\n this.video = create('iframe', 'vbVideo')\r\n this.video.allowFullscreen = true\r\n this.video.frameBorder = '0px'\r\n hide(this.video)\r\n this.responsive.appendChild(this.video)\r\n\r\n this.bottom = create('div', 'vbBottom')\r\n this.bottomContainer.appendChild(this.bottom)\r\n\r\n this.button = create('a', 'vbCloseLink', () => this.close())\r\n this.button.innerHTML = '' + this.defaults.closeText + ''\r\n this.bottom.appendChild(this.button)\r\n\r\n this.caption = create('strong', 'vbCaption')\r\n this.bottom.appendChild(this.caption)\r\n\r\n this.closeText = this.button.querySelector('#vbCloseText')\r\n\r\n window.addEventListener('resize', () => {\r\n if (this.isOpen && this.activeVideo)\r\n this.setPlayerSizePosition()\r\n })\r\n\r\n window.addEventListener('keyup', (evt) => {\r\n if (this.activeVideo && this.activeVideo.options.closeKeys.indexOf(evt.keyCode) >= 0)\r\n this.close()\r\n })\r\n\r\n if (links)\r\n this.bind(links, options, linkMapper || this.linkMapper)\r\n }\r\n\r\n /**\r\n * Map pop-up player to links \r\n * \r\n * @param links array of elements or query selector to bind Videobox to\r\n * @param options player configuration\r\n * @param linkMapper function to get a Videobox video object from the clicked element\r\n */\r\n bind(\r\n links: Array | string,\r\n options: vbOptions = {},\r\n linkMapper: ((el: HTMLElement) => vbVideo) = this.linkMapper\r\n ): void {\r\n if (typeof links == 'string')\r\n links = iterableToArray(document.querySelectorAll(links))\r\n\r\n links.forEach(link => {\r\n if (link['vbListener']) link.removeEventListener('click', link['vbListener'])\r\n if (link['vbiListener']) link.removeEventListener('click', link['vbiListener'])\r\n link['vbListener'] = (evt) => {\r\n evt.preventDefault()\r\n evt.stopPropagation()\r\n let video = linkMapper(link)\r\n video.options = Object.assign({}, options, video.options)\r\n this.open(video)\r\n return false\r\n }\r\n link.addEventListener('click', link['vbListener'])\r\n })\r\n }\r\n\r\n /**\r\n * Open Videobox pop-up player\r\n * \r\n * @param video video to show\r\n */\r\n open(video: vbVideo): void {\r\n if ('VbInline' in window)\r\n window['VbInline'].close()\r\n this.close()\r\n\r\n video.options = Object.assign({}, this.defaults, video.options)\r\n if (!video.options.root) video.options.root = document.body\r\n this.setup(video)\r\n\r\n let link = video.origin.target\r\n let target = link.querySelector(link.getAttribute(\"data-target\")) || link\r\n\r\n let bw = this.wrap.getBoundingClientRect()\r\n let bt = target.getBoundingClientRect()\r\n\r\n toggleClass(target, 'vb_line_fix', true)\r\n video.origin = Object.assign({}, {\r\n x: bt.left - bw.left + target.clientWidth / 2,\r\n y: bt.top - bw.top + target.clientHeight / 2,\r\n width: target.clientWidth,\r\n height: target.clientHeight\r\n }, video.origin)\r\n toggleClass(target, 'vb_line_fix', false)\r\n\r\n this.changeVideo(video)\r\n }\r\n\r\n /**\r\n * Close the open pop-up\r\n */\r\n close() {\r\n this.stop()\r\n new Array(this.wrap, this.bottomContainer, this.overlay).forEach(el => toggleClass(el, 'visible', false))\r\n this.wrap.style.top = '0px'\r\n this.wrap.style.left = '0px'\r\n this.activeVideo = null\r\n return false\r\n }\r\n\r\n /**\r\n * Calculate and set player position & size\r\n * \r\n * @returns width to height ratio of the player (in percent)\r\n */\r\n setPlayerSizePosition(): number {\r\n if (!this.activeVideo) return\r\n\r\n this.setPlayerPosition(this.activeVideo.options.root)\r\n\r\n let width: number = this.activeVideo.options.width\r\n let height: number = this.activeVideo.options.height\r\n\r\n if (width + 2 * this.activeVideo.options.padding > this.wrap.clientWidth) {\r\n let nw = this.wrap.clientWidth - 2 * this.activeVideo.options.padding\r\n height = (height * nw) / width\r\n width = nw\r\n }\r\n if (height + 2 * this.activeVideo.options.padding > this.wrap.clientHeight)\r\n height = this.wrap.clientHeight - 2 * this.activeVideo.options.padding\r\n\r\n let ratio = (height * 100) / width\r\n this.responsive.style.paddingBottom = ratio + '%'\r\n return ratio\r\n }\r\n\r\n private linkMapper(el: HTMLElement): vbVideo {\r\n let options = JSON.parse(el.getAttribute(\"data-videobox\")) || {}\r\n if (options.root) {\r\n let root = options.root\r\n if (typeof root == 'string')\r\n root = iterableToArray(document.querySelectorAll(root))\r\n\r\n if (root.length > 0)\r\n options.root = root[0]\r\n else\r\n options.pop('root')\r\n }\r\n return {\r\n url: el.getAttribute(\"href\") || \"\",\r\n title: el.getAttribute(\"title\") || \"\",\r\n options: options,\r\n origin: { target: el }\r\n }\r\n }\r\n\r\n private setup(newVideo: vbVideo): void {\r\n this.closeText.innerText = newVideo.options.closeText\r\n newVideo.options.root.appendChild(this.overlay)\r\n newVideo.options.root.appendChild(this.wrap)\r\n this.setPlayerPosition(newVideo.options.root)\r\n }\r\n\r\n private setPlayerPosition(root: HTMLElement = this.activeVideo.options.root): void {\r\n let parent = this.wrap.offsetParent\r\n let wbr = this.wrap.getBoundingClientRect()\r\n let obr = this.overlay.getBoundingClientRect()\r\n let pos = {\r\n top: this.wrap.offsetTop - parent.offsetTop,\r\n left: this.wrap.offsetLeft - parent.offsetLeft\r\n }\r\n let diff = {\r\n top: obr.top - wbr.top,\r\n left: obr.left - wbr.left\r\n }\r\n this.wrap.style.top = (pos.top + diff.top) + 'px'\r\n this.wrap.style.left = (pos.left + diff.left) + 'px'\r\n }\r\n\r\n private changeVideo(newVideo: vbVideo): void {\r\n this.activeVideo = newVideo\r\n this.caption.innerHTML = this.activeVideo.title\r\n\r\n let targetRatio = this.setPlayerSizePosition()\r\n\r\n this.isOpen = true\r\n\r\n let centerOrigin = {\r\n top: (this.activeVideo.origin.y - this.wrap.clientHeight / 2) + 'px',\r\n left: (this.activeVideo.origin.x - this.wrap.clientWidth / 2) + 'px',\r\n 'maxWidth': this.activeVideo.origin.width + 'px'\r\n }\r\n\r\n let centerTarget = {\r\n top: '0px',\r\n left: '0px',\r\n 'maxWidth': this.activeVideo.options.width + 'px'\r\n }\r\n\r\n applyStyles(this.center, centerOrigin)\r\n new Array(this.wrap, this.overlay).forEach(el => toggleClass(el, 'visible', true))\r\n toggleClass(this.wrap, 'animating', true)\r\n\r\n let originRatio = ((this.activeVideo.origin.height * 100) / this.activeVideo.origin.width) || targetRatio\r\n if (originRatio != targetRatio)\r\n this.animations.push(this.responsive.animate([\r\n { 'paddingBottom': originRatio + '%' },\r\n { 'paddingBottom': targetRatio + '%' }\r\n ], this.activeVideo.options.animation))\r\n\r\n let centerAnimation = this.center.animate([\r\n centerOrigin,\r\n centerTarget\r\n ], this.activeVideo.options.animation)\r\n centerAnimation.onfinish = () => this.animateBotton()\r\n this.animations.push(centerAnimation)\r\n applyStyles(this.center, centerTarget)\r\n centerAnimation.play()\r\n }\r\n\r\n private animateBotton(): void {\r\n if (this.activeVideo.options.hideBottom) {\r\n this.showVideo()\r\n } else {\r\n let bottomAnimation = this.bottomContainer.animate([\r\n { 'maxHeight': '0px' },\r\n { 'maxHeight': '200px' }\r\n ], this.activeVideo.options.animation)\r\n toggleClass(this.bottomContainer, 'visible', true)\r\n bottomAnimation.onfinish = () => this.showVideo()\r\n this.animations.push(bottomAnimation)\r\n bottomAnimation.play()\r\n }\r\n }\r\n\r\n private showVideo(): void {\r\n if (!this.isOpen || this.video.getAttribute('src')) return\r\n show(this.video)\r\n this.video.setAttribute('src', this.activeVideo.url)\r\n toggleClass(this.wrap, 'animating', false)\r\n }\r\n\r\n private stop(): void {\r\n this.animations.forEach(anim => anim.cancel())\r\n this.animations = []\r\n this.isOpen = false\r\n this.video.setAttribute('src', '')\r\n hide(this.video)\r\n toggleClass(this.wrap, 'animating', false)\r\n }\r\n}\r\n\r\nexport const VideoboxObj = new Videobox()\r\nwindow['Videobox'] = VideoboxObj\r\n\r\nexport declare interface JQueryStatic {\r\n /**\r\n * Open Videobox pop-up player\r\n * \r\n * @param video video to show\r\n */\r\n videobox: (video: vbVideo) => void\r\n\r\n /**\r\n * Close the open pop-up\r\n */\r\n vbClose: () => void\r\n}\r\n\r\nexport declare interface JQuery {\r\n /**\r\n * Map pop-up player to elements matched by the query\r\n * \r\n * @example \r\n * ```javascript\r\n * $('a[rel=videobox]').videobox() // Bind the pop-up effect to every element\r\n * ```\r\n * \r\n * @param options player configuration\r\n * @param linkMapper function to get a Videobox video object from the clicked element\r\n */\r\n videobox: (options?: vbOptions, linkMapper?: ((el: HTMLElement) => vbVideo)) => void\r\n}\r\n\r\nif (typeof (jQuery) !== 'undefined') {\r\n jQuery['videobox'] = function (video: vbVideo): void {\r\n VideoboxObj.open(video)\r\n }\r\n\r\n jQuery['vbClose'] = function (): void {\r\n VideoboxObj.close()\r\n }\r\n\r\n jQuery.fn.videobox = function (options: vbOptions = {}, linkMapper?: ((el: HTMLElement) => vbVideo)): void {\r\n let elements = iterableToArray(this)\r\n if (linkMapper)\r\n VideoboxObj.bind(elements, options, linkMapper)\r\n else\r\n VideoboxObj.bind(elements, options)\r\n }\r\n}\r\n\r\nfunction libBind($) {\r\n $.videobox = function (video: vbVideo): void {\r\n VideoboxObj.open(video)\r\n }\r\n\r\n $.vbClose = function (): void {\r\n VideoboxObj.close()\r\n }\r\n\r\n $.fn.videobox = function (options: vbOptions = {}, linkMapper?: ((el: HTMLElement) => vbVideo)): void {\r\n let elements = iterableToArray(this)\r\n if (linkMapper)\r\n VideoboxObj.bind(elements, options, linkMapper)\r\n else\r\n VideoboxObj.bind(elements, options)\r\n }\r\n}\r\n\r\nif (typeof jQuery != 'undefined') libBind(jQuery)\r\nif (typeof Zepto != 'undefined') libBind(Zepto)","import { create, applyStyles, vbOptions, vbVideo, hide, show, iterableToArray, insertAfter, toggleClass } from './helpers'\r\nimport { VideoboxObj as Videobox } from './box'\r\n\r\nexport class VbInline {\r\n\r\n private wrap: HTMLDivElement\r\n private responsive: HTMLDivElement\r\n private caption: HTMLElement\r\n private button: HTMLDivElement\r\n private video: HTMLIFrameElement\r\n\r\n private activeVideo: vbVideo\r\n private isOpen: boolean = false\r\n private hidding: boolean = false\r\n private animations: Array = []\r\n private hidden: Array = []\r\n private timer: number\r\n\r\n private defaults: vbOptions = {\r\n width: 720,\r\n height: 405,\r\n closeText: 'Close',\r\n padding: 30,\r\n closeTimeout: 1000,\r\n closeKeys: [27, 81],\r\n animation: {\r\n duration: 500,\r\n iterations: 1,\r\n delay: 0,\r\n easing: 'ease-in-out'\r\n }\r\n }\r\n\r\n /** @internal */\r\n constructor(links?: Array | string, options: vbOptions = {}, linkMapper?: ((el: HTMLElement) => vbVideo)) {\r\n this.wrap = create('div', 'vbiWrap')\r\n\r\n this.responsive = create('div', 'vbiResponsive')\r\n this.wrap.appendChild(this.responsive)\r\n\r\n this.caption = document.createElement('span')\r\n this.caption.className = 'vb_video_title'\r\n this.wrap.appendChild(this.caption)\r\n\r\n this.button = create('div', 'vbiClose', () => this.close())\r\n this.button.innerHTML = ''\r\n this.wrap.appendChild(this.button)\r\n\r\n this.video = create('iframe', 'vbiVideo')\r\n this.video.allowFullscreen = true\r\n this.video.frameBorder = '0px'\r\n hide(this.video)\r\n this.responsive.appendChild(this.video)\r\n\r\n window.addEventListener('keyup', (evt) => {\r\n if (this.activeVideo && this.activeVideo.options.closeKeys.indexOf(evt.keyCode) >= 0)\r\n this.close()\r\n })\r\n\r\n if (links)\r\n this.bind(links, options, linkMapper || this.linkMapper)\r\n }\r\n\r\n /**\r\n * Map inline player to elements matched by the query \r\n * \r\n * @param links array of elements or query selector to bind inline player to\r\n * @param options player configuration\r\n * @param linkMapper function to get a Videobox video object from the clicked element\r\n */\r\n bind(\r\n links: Array | string,\r\n options: vbOptions = {},\r\n linkMapper: ((el: HTMLElement) => vbVideo) = this.linkMapper\r\n ): void {\r\n if (typeof links == 'string')\r\n links = iterableToArray(document.querySelectorAll(links))\r\n\r\n links.forEach(link => {\r\n if (link['vbListener']) link.removeEventListener('click', link['vbListener'])\r\n if (link['vbiListener']) link.removeEventListener('click', link['vbiListener'])\r\n link['vbiListener'] = (evt) => {\r\n evt.preventDefault()\r\n evt.stopPropagation()\r\n let video = linkMapper(link)\r\n video.options = Object.assign({}, options, video.options)\r\n this.open(video)\r\n return false\r\n }\r\n link.addEventListener('click', link['vbiListener'])\r\n })\r\n }\r\n\r\n /**\r\n * Open an inline player\r\n * \r\n * @param video video to show\r\n */\r\n open(video: vbVideo): void {\r\n if ('Videobox' in window)\r\n window['Videobox'].close()\r\n\r\n video.options = Object.assign({}, this.defaults, video.options)\r\n\r\n let link = video.origin.target\r\n let target = link.querySelector(link.getAttribute(\"data-target\")) || link\r\n\r\n toggleClass(target, 'vb_line_fix', true)\r\n video.origin = Object.assign({}, {\r\n x: target.clientWidth / 2,\r\n y: target.clientHeight / 2,\r\n width: target.clientWidth,\r\n height: target.clientHeight\r\n }, video.origin)\r\n toggleClass(target, 'vb_line_fix', false)\r\n\r\n this.close(() => this.changeVideo(video))\r\n }\r\n\r\n /**\r\n * Close the open inline player\r\n * \r\n * @param callback function to run when close animation is over\r\n */\r\n close(callback?: () => any) {\r\n this.stop()\r\n\r\n if (!this.hidding)\r\n if (this.wrap.parentElement && this.activeVideo) {\r\n this.hidding = true\r\n let maxW = this.activeVideo.origin.width + 'px'\r\n let v1 = this.wrap.animate([\r\n { 'maxWidth': (this.activeVideo.options.width + 2 * this.activeVideo.options.padding) + 'px' },\r\n { 'maxWidth': maxW }\r\n ], this.activeVideo.options.animation)\r\n\r\n v1.onfinish = () => this.hide(callback)\r\n this.wrap.style.maxWidth = maxW\r\n v1.play()\r\n\r\n let padding = ((this.activeVideo.origin.height * 100) / this.activeVideo.origin.width) + '%'\r\n let v2 = this.responsive.animate([\r\n { 'paddingBottom': ((this.activeVideo.options.height * 100) / this.activeVideo.options.width) + '%' },\r\n { 'paddingBottom': padding }\r\n ], this.activeVideo.options.animation)\r\n this.responsive.style.paddingBottom = padding\r\n v2.play()\r\n } else\r\n this.hide(callback)\r\n\r\n return false\r\n }\r\n\r\n private linkMapper(el: HTMLElement): vbVideo {\r\n return {\r\n url: el.getAttribute(\"href\") || \"\",\r\n title: el.getAttribute(\"title\") || \"\",\r\n options: JSON.parse(el.getAttribute(\"data-videobox\")) || {},\r\n origin: { target: el }\r\n }\r\n }\r\n\r\n private setup(): void {\r\n insertAfter(this.wrap, this.activeVideo.origin.target)\r\n hide(this.activeVideo.origin.target)\r\n this.hidden.push(this.activeVideo.origin.target)\r\n }\r\n\r\n private changeVideo(newVideo: vbVideo): void {\r\n\r\n this.activeVideo = newVideo\r\n\r\n this.setup()\r\n\r\n this.wrap.setAttribute('style', this.activeVideo.options.style)\r\n this.wrap.setAttribute('class', this.activeVideo.options.class)\r\n this.caption.innerHTML = this.activeVideo.title\r\n toggleClass(this.button, 'visible', true)\r\n this.isOpen = true\r\n\r\n let wrapOrigin = {\r\n 'maxWidth': this.activeVideo.origin.width + 'px'\r\n }\r\n let wrapDest = {\r\n 'maxWidth': (this.activeVideo.options.width + 2 * this.activeVideo.options.padding) + 'px'\r\n }\r\n let animation = this.wrap.animate([wrapOrigin, wrapDest], this.activeVideo.options.animation)\r\n applyStyles(this.wrap, wrapDest)\r\n animation.onfinish = () => this.showVideo()\r\n this.animations.push(animation)\r\n animation.play()\r\n\r\n let responsiveDest = {\r\n 'paddingBottom': ((this.activeVideo.options.height * 100) / this.activeVideo.options.width) + '%'\r\n }\r\n let responsiveOrigin = {\r\n 'paddingBottom': ((this.activeVideo.origin.height * 100) / this.activeVideo.origin.width) + '%'\r\n }\r\n let animation2 = this.responsive.animate([responsiveOrigin, responsiveDest], this.activeVideo.options.animation)\r\n animation2.onfinish = () => {\r\n this.timer = window.setTimeout(() => toggleClass(this.button, 'visible', false), newVideo.options.closeTimeout)\r\n }\r\n this.animations.push(animation2)\r\n animation2.play()\r\n applyStyles(this.responsive, responsiveDest)\r\n }\r\n\r\n private showVideo() {\r\n if (!this.isOpen) return\r\n show(this.video)\r\n this.video.setAttribute('src', this.activeVideo.url)\r\n }\r\n\r\n private hide(callback?: () => any) {\r\n if (this.wrap.parentElement)\r\n this.wrap.parentNode.removeChild(this.wrap)\r\n\r\n this.hidden.forEach(el => show(el))\r\n this.hidden = []\r\n\r\n this.hidding = false\r\n this.activeVideo = null\r\n if (typeof callback == \"function\")\r\n callback()\r\n }\r\n\r\n private stop() {\r\n this.animations.forEach(anim => anim.cancel())\r\n this.animations = []\r\n this.isOpen = false\r\n this.video.setAttribute('src', '')\r\n window.clearTimeout(this.timer)\r\n hide(this.video)\r\n }\r\n}\r\n\r\nexport const VbInlineObj = new VbInline()\r\nwindow['VbInline'] = VbInlineObj\r\n\r\nexport declare interface JQueryStatic {\r\n /**\r\n * Open an inline player\r\n * \r\n * @param video video to show\r\n */\r\n vbInline: (video: vbVideo) => void\r\n\r\n /**\r\n * Close the open inline player\r\n * \r\n * @param callback function to run when close animation is over\r\n */\r\n vbiClose: (callback?: () => any) => void\r\n}\r\n\r\nexport declare interface JQuery {\r\n /**\r\n * Map inline player to elements matched by the query\r\n * \r\n * @example \r\n * ```javascript\r\n * $('a[rel=vbinline]').vbInline() // Bind the inline effect to every element\r\n * ```\r\n * \r\n * @param options player configuration\r\n * @param linkMapper function to get a Videobox video object from the clicked element\r\n */\r\n vbInline: (options?: vbOptions, linkMapper?: ((el: HTMLElement) => vbVideo)) => void\r\n}\r\n\r\nfunction libBind($) {\r\n $.vbInline = function (video: vbVideo): void {\r\n VbInlineObj.open(video)\r\n }\r\n\r\n $.vbiClose = function (callback?: () => any): void {\r\n VbInlineObj.close(callback)\r\n }\r\n\r\n $.fn.vbInline = function (options: vbOptions = {}, linkMapper?: ((el: HTMLElement) => vbVideo)): void {\r\n let elements = iterableToArray(this)\r\n if (linkMapper)\r\n VbInlineObj.bind(elements, options, linkMapper)\r\n else\r\n VbInlineObj.bind(elements, options)\r\n }\r\n}\r\n\r\nif (typeof jQuery != 'undefined') libBind(jQuery)\r\nif (typeof Zepto != 'undefined') libBind(Zepto)","import { createClass, applyStyles, vbOptions, vbVideo, hide, show, iterableToArray, insertAfter, toggleClass } from './helpers'\r\nimport { VbInlineObj as VbInline } from './inline'\r\n\r\nfunction detach(elements: Array): void {\r\n elements.forEach(el => {\r\n if ('querySelector' in el && el.querySelector('#vbiWrap')) VbInline.close()\r\n el.parentNode.removeChild(el)\r\n })\r\n}\r\n\r\n/**\r\n * Interface for Videobox slider configuration\r\n */\r\nexport interface vbSliderOptions {\r\n\r\n /**\r\n * if true, slider will scroll all visible elements\r\n */\r\n moveAll?: boolean,\r\n\r\n /**\r\n * target selector\r\n */\r\n target?: string,\r\n\r\n /**\r\n * transition duration for one element\r\n */\r\n singleDuration?: number,\r\n\r\n /**\r\n * clicks within the timeout are processed together\r\n */\r\n doubleClickTimeout?: number,\r\n\r\n /**\r\n * animation properties (see web animations specifications)\r\n */\r\n animation?: KeyframeAnimationOptions\r\n}\r\n\r\n/**\r\n * Videobox thumbnail slider\r\n */\r\nexport class VbSlider {\r\n\r\n private static sliders: Array = []\r\n\r\n /**\r\n * Map Videobox slider to elements matched by the query\r\n * \r\n * @param elements array of elements or query selector to bind Videobox slider to\r\n * @param options slider configuration\r\n * @returns array of sliders matching the corresponding elements\r\n */\r\n static bind(elements: Array | string, options: vbSliderOptions = {}): Array {\r\n if (typeof elements == 'string')\r\n elements = iterableToArray(document.querySelectorAll(elements))\r\n\r\n let sliders: Array = []\r\n elements.forEach(target => {\r\n let sizeTarget = (target.getAttribute('data-target') || '').trim()\r\n let move = (target.getAttribute('data-move') || 'single').trim()\r\n let opts: vbSliderOptions = {}\r\n\r\n if (sizeTarget)\r\n opts.target = sizeTarget\r\n\r\n if (move)\r\n opts.moveAll = move == 'all'\r\n\r\n sliders.push(this.getSlider(target, Object.assign({}, options, opts)))\r\n })\r\n return sliders\r\n }\r\n\r\n /**\r\n * Create a new Videobox slider, or find an existing slider and update it's configuration\r\n * \r\n * @param target an element containing the slider items\r\n * @param options slider configuration\r\n * @returns slider containing the target element\r\n */\r\n static getSlider(target: HTMLElement, options: vbSliderOptions = {}): VbSlider {\r\n let slider = this.sliders.find(slider => slider.target == target)\r\n if (slider) {\r\n slider.options = Object.assign(slider.options, options)\r\n return slider\r\n } else {\r\n return new VbSlider(target, options)\r\n }\r\n }\r\n\r\n static updateSizes() {\r\n this.sliders.forEach(slider => slider.setCount())\r\n }\r\n\r\n private target: HTMLElement\r\n private outer: HTMLDivElement\r\n private wrap: HTMLDivElement\r\n private content: HTMLDivElement\r\n private prev: HTMLDivElement\r\n private next: HTMLDivElement\r\n private buttons: Array\r\n\r\n private basis: number\r\n private queue: Array = []\r\n private timeout: number = -1\r\n private moving: boolean = false\r\n private visible: number = -1\r\n private detachedElements: Array = []\r\n\r\n private options: vbSliderOptions = {\r\n moveAll: false,\r\n target: '',\r\n singleDuration: 500,\r\n doubleClickTimeout: 200,\r\n animation: {\r\n duration: 500,\r\n iterations: 1,\r\n delay: 0,\r\n easing: 'ease-in-out'\r\n },\r\n }\r\n\r\n /**\r\n * Array of currently visible elements (includes both new and old elements when moving)\r\n */\r\n get attached(): Array {\r\n return iterableToArray(this.target.children)\r\n }\r\n\r\n /**\r\n * True when slider is moving\r\n */\r\n get isMoving(): boolean {\r\n return this.moving\r\n }\r\n\r\n /**\r\n * Scroll slider to the left\r\n */\r\n showPrev(): void {\r\n this.queueMove('r')\r\n }\r\n\r\n /**\r\n * Scroll slider to the right \r\n */\r\n showNext(): void {\r\n this.queueMove('l')\r\n }\r\n\r\n /**\r\n * Set base width\r\n * \r\n * @param basis new base width\r\n */\r\n setBasis(basis: number): void {\r\n if (basis != this.basis) {\r\n this.basis = basis\r\n this.setCount()\r\n }\r\n }\r\n\r\n /**\r\n * Get the slider's target element\r\n */\r\n getTarget(): HTMLElement {\r\n return this.target\r\n }\r\n\r\n private constructor(target: HTMLElement, options: vbSliderOptions = {}) {\r\n this.outer = createClass('div', 'vb_slider_outer')\r\n\r\n this.prev = createClass('div', 'vb_slider_prev', () => this.showPrev())\r\n this.prev.innerHTML = ''\r\n this.outer.appendChild(this.prev)\r\n\r\n this.wrap = createClass('div', 'vb_slider_wrap')\r\n this.outer.appendChild(this.wrap)\r\n\r\n this.next = createClass('div', 'vb_slider_next', () => this.showNext())\r\n this.next.innerHTML = ''\r\n this.outer.appendChild(this.next)\r\n\r\n this.content = createClass('div', 'vb_slider_cont')\r\n this.wrap.appendChild(this.content)\r\n\r\n this.buttons = iterableToArray(this.outer.querySelectorAll('i'))\r\n\r\n this.target = target\r\n let elements = this.attached\r\n\r\n insertAfter(this.outer, this.target)\r\n this.content.appendChild(this.target)\r\n\r\n this.basis = parseInt(target.getAttribute('data-width')) || elements[0].clientWidth\r\n\r\n this.options = Object.assign(this.options, options)\r\n\r\n toggleClass(this.content, 'vb-slider__move-all', this.options.moveAll)\r\n\r\n this.setCount()\r\n }\r\n\r\n private queueMove(dir: string): void {\r\n if (this.queue.length > 0 && this.queue[this.queue.length - 1] != dir)\r\n this.queue.pop()\r\n else\r\n this.queue.push(dir)\r\n\r\n if (this.timeout >= 0)\r\n\r\n clearTimeout(this.timeout)\r\n this.timeout = setTimeout(() => {\r\n this.timeout = -1\r\n if (!this.moving && this.queue.length > 0)\r\n this.move()\r\n }, this.options.doubleClickTimeout)\r\n }\r\n\r\n private move(): void {\r\n this.moving = true\r\n let dir = this.queue.pop()\r\n\r\n let oldHeight = this.target.clientHeight\r\n\r\n let num = 1\r\n while (this.queue.length > 0)\r\n num += this.queue.pop() == dir ? 1 : -1\r\n if (num == 0) {\r\n this.moving = false\r\n return\r\n }\r\n if (num < 0) {\r\n dir = dir == 'l' ? 'r' : 'l'\r\n num = 0 - num\r\n }\r\n\r\n let count = (this.options.moveAll ? this.visible : 1) * num\r\n count = count % (this.visible + this.detachedElements.length)\r\n\r\n if (dir == 'l')\r\n for (let i = 0; i < count && this.detachedElements.length > 0; i++)\r\n this.target.appendChild(this.detachedElements.shift())\r\n else\r\n for (let i = 0; i < count && this.detachedElements.length > 0; i++)\r\n this.target.insertBefore(this.detachedElements.pop(), this.target.firstChild)\r\n\r\n let attached = this.attached\r\n let oldElements = dir == 'l' ? attached.slice(0, attached.length - this.visible) : attached.slice(this.visible)\r\n detach(oldElements)\r\n\r\n let height = this.target.clientHeight\r\n let width = 100 * count / this.visible\r\n\r\n if (dir == 'l')\r\n for (let i = oldElements.length - 1; i >= 0; i--)\r\n this.target.insertBefore(oldElements[i], this.target.firstChild)\r\n else\r\n for (let i = 0; i < oldElements.length; i++)\r\n this.target.appendChild(oldElements[i])\r\n\r\n let animationProperties = this.options.singleDuration ? Object.assign({}, this.options.animation, { duration: this.options.singleDuration * count }) : this.options.animation\r\n\r\n let w = width + 100\r\n w = 100 * width / w\r\n\r\n let positionOrigin = {\r\n 'transform': 'translate(' + (dir == 'l' ? 0 : -w) + '%)'\r\n }\r\n let positionDest = {\r\n 'transform': 'translate(' + (dir == 'l' ? -w : 0) + '%)'\r\n }\r\n this.content.style.width = (width + 100) + '%'\r\n\r\n let anim = this.content.animate([positionOrigin, positionDest], animationProperties)\r\n anim.addEventListener('finish', () => {\r\n this.content.style.width = '100%'\r\n this.skip(dir)\r\n })\r\n\r\n anim = this.content.animate([\r\n {\r\n height: oldHeight + 'px'\r\n }, {\r\n height: height + 'px'\r\n }\r\n ], animationProperties)\r\n this.content.style.height = height + 'px'\r\n\r\n let top = 0\r\n if (this.options.target)\r\n top = (this.target.querySelector(this.options.target) || { offsetHeight: 0 }).offsetHeight / 2\r\n\r\n this.buttons.forEach(el => el.style.top = top ? top + 'px' : '')\r\n }\r\n\r\n private skip(dir: string): void {\r\n let attached = this.attached\r\n if (dir == 'l') {\r\n let el = attached.slice(0, attached.length - this.visible)\r\n detach(el)\r\n el.forEach(elm => this.detachedElements.push(elm))\r\n } else if (dir == 'r') {\r\n let el = attached.slice(this.visible)\r\n detach(el)\r\n el.forEach(elm => this.detachedElements.unshift(elm))\r\n }\r\n\r\n if (this.queue.length > 0 && this.timeout < 0)\r\n this.move()\r\n else\r\n this.moving = false\r\n\r\n }\r\n\r\n private setCount(): void {\r\n let current = this.visible\r\n let width = this.target.clientWidth\r\n let ch = this.attached\r\n let base = this.basis + ch[0].offsetWidth - ch[0].clientWidth \t// base width including any offset\r\n\r\n // calculate number of displayed items\r\n let visible = Math.floor(width / this.basis)\r\n if (visible < 1) {\r\n visible = 1\r\n } else {\r\n let w1 = 2 - base / (width / visible)\r\n let w2 = base / (width / (visible + 1))\r\n if (w2 < w1) visible++\r\n }\r\n\r\n // add or remove visible items if needed\r\n if (visible != current) {\r\n this.visible = visible\r\n this.setAttached()\r\n }\r\n\r\n // set new size\r\n this.content.style.height = this.target.clientHeight + 'px'\r\n\r\n let top = 0\r\n if (this.options.target)\r\n top = (this.target.querySelector(this.options.target) || { offsetHeight: 0 }).offsetHeight / 2\r\n\r\n this.buttons.forEach(el => el.style.top = top ? top + 'px' : '')\r\n }\r\n\r\n private setAttached(): void {\r\n let attached = this.attached\r\n if (attached.length < this.visible)\r\n for (let i = attached.length; i < this.visible && this.detachedElements.length > 0; i++) {\r\n this.target.appendChild(this.detachedElements.shift())\r\n }\r\n else if (attached.length > this.visible)\r\n for (let i = attached.length - 1; i >= this.visible; i--) {\r\n this.detachedElements.unshift(attached[i])\r\n detach([attached[i]])\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nwindow.addEventListener('resize', () => VbSlider.updateSizes())\r\nwindow['VbSlider'] = VbSlider\r\n\r\nexport declare interface JQueryStatic {\r\n /**\r\n * Create a new Videobox slider, or find an existing slider and update it's configuration\r\n * \r\n * @param target an element containing the slider items\r\n * @param options slider configuration\r\n * @returns slider containing the target element\r\n */\r\n vbSlider: (target: HTMLElement | JQuery, options: vbSliderOptions) => VbSlider\r\n}\r\n\r\nexport declare interface JQuery {\r\n /**\r\n * Map Videobox slider to elements matched by the query\r\n * \r\n * @example \r\n * ```javascript\r\n * var sliders = $('ul.vb_slider').vbSlider() // Create a Videobox slider for every element\r\n * ```\r\n * \r\n * @param options slider configuration\r\n * @returns array of sliders matching the corresponding elements\r\n */\r\n vbSlider: (options?: vbSliderOptions) => Array\r\n}\r\n\r\nfunction libBind($) {\r\n $.vbSlider = function (target: HTMLElement | JQuery, options: vbSliderOptions = {}): VbSlider {\r\n if ('length' in target)\r\n target = target[0]\r\n return VbSlider.getSlider(target, options)\r\n }\r\n\r\n $.fn.vbSlider = function (options: vbSliderOptions = {}): Array {\r\n let elements = iterableToArray(this)\r\n return VbSlider.bind(elements, options)\r\n }\r\n}\r\n\r\nif (typeof jQuery != 'undefined') libBind(jQuery)\r\nif (typeof Zepto != 'undefined') libBind(Zepto)\r\n","import { VideoboxObj as Videobox } from './components/box'\r\nimport { VbInlineObj as VbInline } from './components/inline'\r\nimport { VbSlider } from './components/slider'\r\n\r\nfunction bindAll() {\r\n Videobox.bind(\"a[rel^='videobox']\")\r\n VbInline.bind(\"a[rel^='vbinline']\")\r\n VbSlider.bind(\".vb_slider\")\r\n}\r\n\r\nif (document.readyState != 'loading')\r\n bindAll()\r\nelse\r\n document.addEventListener('readystatechange', function ready() {\r\n if (document.readyState != 'loading') {\r\n document.removeEventListener('readystatechange', ready)\r\n bindAll()\r\n }\r\n })",null,null,null,null,null,null,null,null,null,null,null,"// Copyright 2014 Google Inc. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nvar webAnimationsShared = {};\nvar webAnimations1 = {};\nvar webAnimationsNext = {};\n\nif (!WEB_ANIMATIONS_TESTING)\n var webAnimationsTesting = null;\n","// Copyright 2014 Google Inc. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n(function(shared, testing) {\n\n var fills = 'backwards|forwards|both|none'.split('|');\n var directions = 'reverse|alternate|alternate-reverse'.split('|');\n var linear = function(x) { return x; };\n\n function cloneTimingInput(timingInput) {\n if (typeof timingInput == 'number') {\n return timingInput;\n }\n var clone = {};\n for (var m in timingInput) {\n clone[m] = timingInput[m];\n }\n return clone;\n }\n\n function AnimationEffectTiming() {\n this._delay = 0;\n this._endDelay = 0;\n this._fill = 'none';\n this._iterationStart = 0;\n this._iterations = 1;\n this._duration = 0;\n this._playbackRate = 1;\n this._direction = 'normal';\n this._easing = 'linear';\n this._easingFunction = linear;\n }\n\n function isInvalidTimingDeprecated() {\n return shared.isDeprecated('Invalid timing inputs', '2016-03-02', 'TypeError exceptions will be thrown instead.', true);\n }\n\n AnimationEffectTiming.prototype = {\n _setMember: function(member, value) {\n this['_' + member] = value;\n if (this._effect) {\n this._effect._timingInput[member] = value;\n this._effect._timing = shared.normalizeTimingInput(this._effect._timingInput);\n this._effect.activeDuration = shared.calculateActiveDuration(this._effect._timing);\n if (this._effect._animation) {\n this._effect._animation._rebuildUnderlyingAnimation();\n }\n }\n },\n get playbackRate() {\n return this._playbackRate;\n },\n set delay(value) {\n this._setMember('delay', value);\n },\n get delay() {\n return this._delay;\n },\n set endDelay(value) {\n this._setMember('endDelay', value);\n },\n get endDelay() {\n return this._endDelay;\n },\n set fill(value) {\n this._setMember('fill', value);\n },\n get fill() {\n return this._fill;\n },\n set iterationStart(value) {\n if ((isNaN(value) || value < 0) && isInvalidTimingDeprecated()) {\n throw new TypeError('iterationStart must be a non-negative number, received: ' + timing.iterationStart);\n }\n this._setMember('iterationStart', value);\n },\n get iterationStart() {\n return this._iterationStart;\n },\n set duration(value) {\n if (value != 'auto' && (isNaN(value) || value < 0) && isInvalidTimingDeprecated()) {\n throw new TypeError('duration must be non-negative or auto, received: ' + value);\n }\n this._setMember('duration', value);\n },\n get duration() {\n return this._duration;\n },\n set direction(value) {\n this._setMember('direction', value);\n },\n get direction() {\n return this._direction;\n },\n set easing(value) {\n this._easingFunction = parseEasingFunction(normalizeEasing(value));\n this._setMember('easing', value);\n },\n get easing() {\n return this._easing;\n },\n set iterations(value) {\n if ((isNaN(value) || value < 0) && isInvalidTimingDeprecated()) {\n throw new TypeError('iterations must be non-negative, received: ' + value);\n }\n this._setMember('iterations', value);\n },\n get iterations() {\n return this._iterations;\n }\n };\n\n function makeTiming(timingInput, forGroup, effect) {\n var timing = new AnimationEffectTiming();\n if (forGroup) {\n timing.fill = 'both';\n timing.duration = 'auto';\n }\n if (typeof timingInput == 'number' && !isNaN(timingInput)) {\n timing.duration = timingInput;\n } else if (timingInput !== undefined) {\n Object.getOwnPropertyNames(timingInput).forEach(function(property) {\n if (timingInput[property] != 'auto') {\n if (typeof timing[property] == 'number' || property == 'duration') {\n if (typeof timingInput[property] != 'number' || isNaN(timingInput[property])) {\n return;\n }\n }\n if ((property == 'fill') && (fills.indexOf(timingInput[property]) == -1)) {\n return;\n }\n if ((property == 'direction') && (directions.indexOf(timingInput[property]) == -1)) {\n return;\n }\n if (property == 'playbackRate' && timingInput[property] !== 1 && shared.isDeprecated('AnimationEffectTiming.playbackRate', '2014-11-28', 'Use Animation.playbackRate instead.')) {\n return;\n }\n timing[property] = timingInput[property];\n }\n });\n }\n return timing;\n }\n\n function numericTimingToObject(timingInput) {\n if (typeof timingInput == 'number') {\n if (isNaN(timingInput)) {\n timingInput = { duration: 0 };\n } else {\n timingInput = { duration: timingInput };\n }\n }\n return timingInput;\n }\n\n function normalizeTimingInput(timingInput, forGroup) {\n timingInput = shared.numericTimingToObject(timingInput);\n return makeTiming(timingInput, forGroup);\n }\n\n function cubic(a, b, c, d) {\n if (a < 0 || a > 1 || c < 0 || c > 1) {\n return linear;\n }\n return function(x) {\n if (x <= 0) {\n var start_gradient = 0;\n if (a > 0)\n start_gradient = b / a;\n else if (!b && c > 0)\n start_gradient = d / c;\n return start_gradient * x;\n }\n if (x >= 1) {\n var end_gradient = 0;\n if (c < 1)\n end_gradient = (d - 1) / (c - 1);\n else if (c == 1 && a < 1)\n end_gradient = (b - 1) / (a - 1);\n return 1 + end_gradient * (x - 1);\n }\n\n var start = 0, end = 1;\n while (start < end) {\n var mid = (start + end) / 2;\n function f(a, b, m) { return 3 * a * (1 - m) * (1 - m) * m + 3 * b * (1 - m) * m * m + m * m * m};\n var xEst = f(a, c, mid);\n if (Math.abs(x - xEst) < 0.00001) {\n return f(b, d, mid);\n }\n if (xEst < x) {\n start = mid;\n } else {\n end = mid;\n }\n }\n return f(b, d, mid);\n }\n }\n\n var Start = 1;\n var Middle = 0.5;\n var End = 0;\n\n function step(count, pos) {\n return function(x) {\n if (x >= 1) {\n return 1;\n }\n var stepSize = 1 / count;\n x += pos * stepSize;\n return x - x % stepSize;\n }\n }\n\n var presets = {\n 'ease': cubic(0.25, 0.1, 0.25, 1),\n 'ease-in': cubic(0.42, 0, 1, 1),\n 'ease-out': cubic(0, 0, 0.58, 1),\n 'ease-in-out': cubic(0.42, 0, 0.58, 1),\n 'step-start': step(1, Start),\n 'step-middle': step(1, Middle),\n 'step-end': step(1, End)\n };\n\n var styleForCleaning = null;\n var numberString = '\\\\s*(-?\\\\d+\\\\.?\\\\d*|-?\\\\.\\\\d+)\\\\s*';\n var cubicBezierRe = new RegExp('cubic-bezier\\\\(' + numberString + ',' + numberString + ',' + numberString + ',' + numberString + '\\\\)');\n var stepRe = /steps\\(\\s*(\\d+)\\s*,\\s*(start|middle|end)\\s*\\)/;\n\n function normalizeEasing(easing) {\n if (!styleForCleaning) {\n styleForCleaning = document.createElement('div').style;\n }\n styleForCleaning.animationTimingFunction = '';\n styleForCleaning.animationTimingFunction = easing;\n var normalizedEasing = styleForCleaning.animationTimingFunction;\n if (normalizedEasing == '' && isInvalidTimingDeprecated()) {\n throw new TypeError(easing + ' is not a valid value for easing');\n }\n return normalizedEasing;\n }\n\n function parseEasingFunction(normalizedEasing) {\n if (normalizedEasing == 'linear') {\n return linear;\n }\n var cubicData = cubicBezierRe.exec(normalizedEasing);\n if (cubicData) {\n return cubic.apply(this, cubicData.slice(1).map(Number));\n }\n var stepData = stepRe.exec(normalizedEasing);\n if (stepData) {\n return step(Number(stepData[1]), {'start': Start, 'middle': Middle, 'end': End}[stepData[2]]);\n }\n var preset = presets[normalizedEasing];\n if (preset) {\n return preset;\n }\n // At this point none of our parse attempts succeeded; the easing is invalid.\n // Fall back to linear in the interest of not crashing the page.\n return linear;\n }\n\n function calculateActiveDuration(timing) {\n return Math.abs(repeatedDuration(timing) / timing.playbackRate);\n }\n\n function repeatedDuration(timing) {\n // https://w3c.github.io/web-animations/#calculating-the-active-duration\n if (timing.duration === 0 || timing.iterations === 0) {\n return 0;\n }\n return timing.duration * timing.iterations;\n }\n\n var PhaseNone = 0;\n var PhaseBefore = 1;\n var PhaseAfter = 2;\n var PhaseActive = 3;\n\n function calculatePhase(activeDuration, localTime, timing) {\n // https://w3c.github.io/web-animations/#animation-effect-phases-and-states\n if (localTime == null) {\n return PhaseNone;\n }\n\n var endTime = timing.delay + activeDuration + timing.endDelay;\n if (localTime < Math.min(timing.delay, endTime)) {\n return PhaseBefore;\n }\n if (localTime >= Math.min(timing.delay + activeDuration, endTime)) {\n return PhaseAfter;\n }\n\n return PhaseActive;\n }\n\n function calculateActiveTime(activeDuration, fillMode, localTime, phase, delay) {\n // https://w3c.github.io/web-animations/#calculating-the-active-time\n switch (phase) {\n case PhaseBefore:\n if (fillMode == 'backwards' || fillMode == 'both')\n return 0;\n return null;\n case PhaseActive:\n return localTime - delay;\n case PhaseAfter:\n if (fillMode == 'forwards' || fillMode == 'both')\n return activeDuration;\n return null;\n case PhaseNone:\n return null;\n }\n }\n\n function calculateOverallProgress(iterationDuration, phase, iterations, activeTime, iterationStart) {\n // https://w3c.github.io/web-animations/#calculating-the-overall-progress\n var overallProgress = iterationStart;\n if (iterationDuration === 0) {\n if (phase !== PhaseBefore) {\n overallProgress += iterations;\n }\n } else {\n overallProgress += activeTime / iterationDuration;\n }\n return overallProgress;\n }\n\n function calculateSimpleIterationProgress(overallProgress, iterationStart, phase, iterations, activeTime, iterationDuration) {\n // https://w3c.github.io/web-animations/#calculating-the-simple-iteration-progress\n\n var simpleIterationProgress = (overallProgress === Infinity) ? iterationStart % 1 : overallProgress % 1;\n if (simpleIterationProgress === 0 && phase === PhaseAfter && iterations !== 0 &&\n (activeTime !== 0 || iterationDuration === 0)) {\n simpleIterationProgress = 1;\n }\n return simpleIterationProgress;\n }\n\n function calculateCurrentIteration(phase, iterations, simpleIterationProgress, overallProgress) {\n // https://w3c.github.io/web-animations/#calculating-the-current-iteration\n if (phase === PhaseAfter && iterations === Infinity) {\n return Infinity;\n }\n if (simpleIterationProgress === 1) {\n return Math.floor(overallProgress) - 1;\n }\n return Math.floor(overallProgress);\n }\n\n function calculateDirectedProgress(playbackDirection, currentIteration, simpleIterationProgress) {\n // https://w3c.github.io/web-animations/#calculating-the-directed-progress\n var currentDirection = playbackDirection;\n if (playbackDirection !== 'normal' && playbackDirection !== 'reverse') {\n var d = currentIteration;\n if (playbackDirection === 'alternate-reverse') {\n d += 1;\n }\n currentDirection = 'normal';\n if (d !== Infinity && d % 2 !== 0) {\n currentDirection = 'reverse';\n }\n }\n if (currentDirection === 'normal') {\n return simpleIterationProgress;\n }\n return 1 - simpleIterationProgress;\n }\n\n function calculateIterationProgress(activeDuration, localTime, timing) {\n var phase = calculatePhase(activeDuration, localTime, timing);\n var activeTime = calculateActiveTime(activeDuration, timing.fill, localTime, phase, timing.delay);\n if (activeTime === null)\n return null;\n\n var overallProgress = calculateOverallProgress(timing.duration, phase, timing.iterations, activeTime, timing.iterationStart);\n var simpleIterationProgress = calculateSimpleIterationProgress(overallProgress, timing.iterationStart, phase, timing.iterations, activeTime, timing.duration);\n var currentIteration = calculateCurrentIteration(phase, timing.iterations, simpleIterationProgress, overallProgress);\n var directedProgress = calculateDirectedProgress(timing.direction, currentIteration, simpleIterationProgress);\n\n // https://w3c.github.io/web-animations/#calculating-the-transformed-progress\n // https://w3c.github.io/web-animations/#calculating-the-iteration-progress\n return timing._easingFunction(directedProgress);\n }\n\n shared.cloneTimingInput = cloneTimingInput;\n shared.makeTiming = makeTiming;\n shared.numericTimingToObject = numericTimingToObject;\n shared.normalizeTimingInput = normalizeTimingInput;\n shared.calculateActiveDuration = calculateActiveDuration;\n shared.calculateIterationProgress = calculateIterationProgress;\n shared.calculatePhase = calculatePhase;\n shared.normalizeEasing = normalizeEasing;\n shared.parseEasingFunction = parseEasingFunction;\n\n if (WEB_ANIMATIONS_TESTING) {\n testing.normalizeTimingInput = normalizeTimingInput;\n testing.normalizeEasing = normalizeEasing;\n testing.parseEasingFunction = parseEasingFunction;\n testing.calculateActiveDuration = calculateActiveDuration;\n testing.calculatePhase = calculatePhase;\n testing.PhaseNone = PhaseNone;\n testing.PhaseBefore = PhaseBefore;\n testing.PhaseActive = PhaseActive;\n testing.PhaseAfter = PhaseAfter;\n }\n\n})(webAnimationsShared, webAnimationsTesting);\n","// Copyright 2014 Google Inc. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n(function(shared, scope, testing) {\n\n scope.convertEffectInput = function(effectInput) {\n var keyframes = shared.normalizeKeyframes(effectInput);\n var propertySpecificKeyframeGroups = makePropertySpecificKeyframeGroups(keyframes);\n var interpolations = makeInterpolations(propertySpecificKeyframeGroups);\n return function(target, fraction) {\n if (fraction != null) {\n interpolations.filter(function(interpolation) {\n return fraction >= interpolation.applyFrom && fraction < interpolation.applyTo;\n }).forEach(function(interpolation) {\n var offsetFraction = fraction - interpolation.startOffset;\n var localDuration = interpolation.endOffset - interpolation.startOffset;\n var scaledLocalTime = localDuration == 0 ? 0 : interpolation.easingFunction(offsetFraction / localDuration);\n scope.apply(target, interpolation.property, interpolation.interpolation(scaledLocalTime));\n });\n } else {\n for (var property in propertySpecificKeyframeGroups)\n if (property != 'offset' && property != 'easing' && property != 'composite')\n scope.clear(target, property);\n }\n };\n };\n\n\n function makePropertySpecificKeyframeGroups(keyframes) {\n var propertySpecificKeyframeGroups = {};\n\n for (var i = 0; i < keyframes.length; i++) {\n for (var member in keyframes[i]) {\n if (member != 'offset' && member != 'easing' && member != 'composite') {\n var propertySpecificKeyframe = {\n offset: keyframes[i].offset,\n easing: keyframes[i].easing,\n value: keyframes[i][member]\n };\n propertySpecificKeyframeGroups[member] = propertySpecificKeyframeGroups[member] || [];\n propertySpecificKeyframeGroups[member].push(propertySpecificKeyframe);\n }\n }\n }\n\n for (var groupName in propertySpecificKeyframeGroups) {\n var group = propertySpecificKeyframeGroups[groupName];\n if (group[0].offset != 0 || group[group.length - 1].offset != 1) {\n throw {\n type: DOMException.NOT_SUPPORTED_ERR,\n name: 'NotSupportedError',\n message: 'Partial keyframes are not supported'\n };\n }\n }\n return propertySpecificKeyframeGroups;\n }\n\n\n function makeInterpolations(propertySpecificKeyframeGroups) {\n var interpolations = [];\n for (var groupName in propertySpecificKeyframeGroups) {\n var keyframes = propertySpecificKeyframeGroups[groupName];\n for (var i = 0; i < keyframes.length - 1; i++) {\n var startIndex = i;\n var endIndex = i + 1;\n var startOffset = keyframes[startIndex].offset;\n var endOffset = keyframes[endIndex].offset;\n var applyFrom = startOffset;\n var applyTo = endOffset;\n\n if (i == 0) {\n applyFrom = -Infinity;\n WEB_ANIMATIONS_TESTING && console.assert(startOffset == 0);\n if (endOffset == 0) {\n endIndex = startIndex;\n }\n }\n if (i == keyframes.length - 2) {\n applyTo = Infinity;\n WEB_ANIMATIONS_TESTING && console.assert(endOffset == 1);\n if (startOffset == 1) {\n startIndex = endIndex;\n }\n }\n\n interpolations.push({\n applyFrom: applyFrom,\n applyTo: applyTo,\n startOffset: keyframes[startIndex].offset,\n endOffset: keyframes[endIndex].offset,\n easingFunction: shared.parseEasingFunction(keyframes[startIndex].easing),\n property: groupName,\n interpolation: scope.propertyInterpolation(groupName,\n keyframes[startIndex].value,\n keyframes[endIndex].value)\n });\n }\n }\n interpolations.sort(function(leftInterpolation, rightInterpolation) {\n return leftInterpolation.startOffset - rightInterpolation.startOffset;\n });\n return interpolations;\n }\n\n\n if (WEB_ANIMATIONS_TESTING) {\n testing.makePropertySpecificKeyframeGroups = makePropertySpecificKeyframeGroups;\n testing.makeInterpolations = makeInterpolations;\n }\n\n})(webAnimationsShared, webAnimations1, webAnimationsTesting);\n","// Copyright 2014 Google Inc. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n(function(shared, scope, testing) {\n\n var propertyHandlers = {};\n\n function toCamelCase(property) {\n return property.replace(/-(.)/g, function(_, c) {\n return c.toUpperCase();\n });\n }\n\n function addPropertyHandler(parser, merger, property) {\n propertyHandlers[property] = propertyHandlers[property] || [];\n propertyHandlers[property].push([parser, merger]);\n }\n function addPropertiesHandler(parser, merger, properties) {\n for (var i = 0; i < properties.length; i++) {\n var property = properties[i];\n WEB_ANIMATIONS_TESTING && console.assert(property.toLowerCase() === property);\n addPropertyHandler(parser, merger, toCamelCase(property));\n }\n }\n scope.addPropertiesHandler = addPropertiesHandler;\n\n var initialValues = {\n backgroundColor: 'transparent',\n backgroundPosition: '0% 0%',\n borderBottomColor: 'currentColor',\n borderBottomLeftRadius: '0px',\n borderBottomRightRadius: '0px',\n borderBottomWidth: '3px',\n borderLeftColor: 'currentColor',\n borderLeftWidth: '3px',\n borderRightColor: 'currentColor',\n borderRightWidth: '3px',\n // Spec says this should be 0 but in practise it is 2px.\n borderSpacing: '2px',\n borderTopColor: 'currentColor',\n borderTopLeftRadius: '0px',\n borderTopRightRadius: '0px',\n borderTopWidth: '3px',\n bottom: 'auto',\n clip: 'rect(0px, 0px, 0px, 0px)',\n color: 'black', // Depends on user agent.\n fontSize: '100%',\n fontWeight: '400',\n height: 'auto',\n left: 'auto',\n letterSpacing: 'normal',\n lineHeight: '120%',\n marginBottom: '0px',\n marginLeft: '0px',\n marginRight: '0px',\n marginTop: '0px',\n maxHeight: 'none',\n maxWidth: 'none',\n minHeight: '0px',\n minWidth: '0px',\n opacity: '1.0',\n outlineColor: 'invert',\n outlineOffset: '0px',\n outlineWidth: '3px',\n paddingBottom: '0px',\n paddingLeft: '0px',\n paddingRight: '0px',\n paddingTop: '0px',\n right: 'auto',\n textIndent: '0px',\n textShadow: '0px 0px 0px transparent',\n top: 'auto',\n transform: '',\n verticalAlign: '0px',\n visibility: 'visible',\n width: 'auto',\n wordSpacing: 'normal',\n zIndex: 'auto'\n };\n\n function propertyInterpolation(property, left, right) {\n var ucProperty = property;\n if (/-/.test(property) && !shared.isDeprecated('Hyphenated property names', '2016-03-22', 'Use camelCase instead.', true)) {\n ucProperty = toCamelCase(property);\n }\n if (left == 'initial' || right == 'initial') {\n if (left == 'initial')\n left = initialValues[ucProperty];\n if (right == 'initial')\n right = initialValues[ucProperty];\n }\n var handlers = left == right ? [] : propertyHandlers[ucProperty];\n for (var i = 0; handlers && i < handlers.length; i++) {\n var parsedLeft = handlers[i][0](left);\n var parsedRight = handlers[i][0](right);\n if (parsedLeft !== undefined && parsedRight !== undefined) {\n var interpolationArgs = handlers[i][1](parsedLeft, parsedRight);\n if (interpolationArgs) {\n var interp = scope.Interpolation.apply(null, interpolationArgs);\n return function(t) {\n if (t == 0) return left;\n if (t == 1) return right;\n return interp(t);\n };\n }\n }\n }\n return scope.Interpolation(false, true, function(bool) {\n return bool ? right : left;\n });\n }\n scope.propertyInterpolation = propertyInterpolation;\n\n})(webAnimationsShared, webAnimations1, webAnimationsTesting);\n\n","// Copyright 2014 Google Inc. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n(function(shared, scope, testing) {\n\n function EffectTime(timing) {\n var timeFraction = 0;\n var activeDuration = shared.calculateActiveDuration(timing);\n var effectTime = function(localTime) {\n return shared.calculateIterationProgress(activeDuration, localTime, timing);\n };\n effectTime._totalDuration = timing.delay + activeDuration + timing.endDelay;\n return effectTime;\n }\n\n scope.KeyframeEffect = function(target, effectInput, timingInput, id) {\n var effectTime = EffectTime(shared.normalizeTimingInput(timingInput));\n var interpolations = scope.convertEffectInput(effectInput);\n var timeFraction;\n var keyframeEffect = function() {\n WEB_ANIMATIONS_TESTING && console.assert(typeof timeFraction !== 'undefined');\n interpolations(target, timeFraction);\n };\n // Returns whether the keyframeEffect is in effect or not after the timing update.\n keyframeEffect._update = function(localTime) {\n timeFraction = effectTime(localTime);\n return timeFraction !== null;\n };\n keyframeEffect._clear = function() {\n interpolations(target, null);\n };\n keyframeEffect._hasSameTarget = function(otherTarget) {\n return target === otherTarget;\n };\n keyframeEffect._target = target;\n keyframeEffect._totalDuration = effectTime._totalDuration;\n keyframeEffect._id = id;\n return keyframeEffect;\n };\n\n scope.NullEffect = function(clear) {\n var nullEffect = function() {\n if (clear) {\n clear();\n clear = null;\n }\n };\n nullEffect._update = function() {\n return null;\n };\n nullEffect._totalDuration = 0;\n nullEffect._hasSameTarget = function() {\n return false;\n };\n return nullEffect;\n };\n\n if (WEB_ANIMATIONS_TESTING) {\n testing.webAnimations1KeyframeEffect = scope.KeyframeEffect;\n testing.effectTime = EffectTime;\n }\n\n})(webAnimationsShared, webAnimations1, webAnimationsTesting);\n","// Copyright 2014 Google Inc. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n(function(scope, testing) {\n\n var styleAttributes = {\n cssText: 1,\n length: 1,\n parentRule: 1,\n };\n\n var styleMethods = {\n getPropertyCSSValue: 1,\n getPropertyPriority: 1,\n getPropertyValue: 1,\n item: 1,\n removeProperty: 1,\n setProperty: 1,\n };\n\n var styleMutatingMethods = {\n removeProperty: 1,\n setProperty: 1,\n };\n\n function configureProperty(object, property, descriptor) {\n descriptor.enumerable = true;\n descriptor.configurable = true;\n Object.defineProperty(object, property, descriptor);\n }\n\n function AnimatedCSSStyleDeclaration(element) {\n WEB_ANIMATIONS_TESTING && console.assert(!(element.style instanceof AnimatedCSSStyleDeclaration),\n 'Element must not already have an animated style attached.');\n\n // Stores the inline style of the element on its behalf while the\n // polyfill uses the element's inline style to simulate web animations.\n // This is needed to fake regular inline style CSSOM access on the element.\n this._surrogateStyle = document.createElementNS('http://www.w3.org/1999/xhtml', 'div').style;\n this._style = element.style;\n this._length = 0;\n this._isAnimatedProperty = {};\n\n // Copy the inline style contents over to the surrogate.\n for (var i = 0; i < this._style.length; i++) {\n var property = this._style[i];\n this._surrogateStyle[property] = this._style[property];\n }\n this._updateIndices();\n }\n\n AnimatedCSSStyleDeclaration.prototype = {\n get cssText() {\n return this._surrogateStyle.cssText;\n },\n set cssText(text) {\n var isAffectedProperty = {};\n for (var i = 0; i < this._surrogateStyle.length; i++) {\n isAffectedProperty[this._surrogateStyle[i]] = true;\n }\n this._surrogateStyle.cssText = text;\n this._updateIndices();\n for (var i = 0; i < this._surrogateStyle.length; i++) {\n isAffectedProperty[this._surrogateStyle[i]] = true;\n }\n for (var property in isAffectedProperty) {\n if (!this._isAnimatedProperty[property]) {\n this._style.setProperty(property, this._surrogateStyle.getPropertyValue(property));\n }\n }\n },\n get length() {\n return this._surrogateStyle.length;\n },\n get parentRule() {\n return this._style.parentRule;\n },\n // Mirror the indexed getters and setters of the surrogate style.\n _updateIndices: function() {\n while (this._length < this._surrogateStyle.length) {\n Object.defineProperty(this, this._length, {\n configurable: true,\n enumerable: false,\n get: (function(index) {\n return function() { return this._surrogateStyle[index]; };\n })(this._length)\n });\n this._length++;\n }\n while (this._length > this._surrogateStyle.length) {\n this._length--;\n Object.defineProperty(this, this._length, {\n configurable: true,\n enumerable: false,\n value: undefined\n });\n }\n },\n _set: function(property, value) {\n this._style[property] = value;\n this._isAnimatedProperty[property] = true;\n },\n _clear: function(property) {\n this._style[property] = this._surrogateStyle[property];\n delete this._isAnimatedProperty[property];\n },\n };\n\n // Wrap the style methods.\n for (var method in styleMethods) {\n AnimatedCSSStyleDeclaration.prototype[method] = (function(method, modifiesStyle) {\n return function() {\n var result = this._surrogateStyle[method].apply(this._surrogateStyle, arguments);\n if (modifiesStyle) {\n if (!this._isAnimatedProperty[arguments[0]])\n this._style[method].apply(this._style, arguments);\n this._updateIndices();\n }\n return result;\n }\n })(method, method in styleMutatingMethods);\n }\n\n // Wrap the style.cssProperty getters and setters.\n for (var property in document.documentElement.style) {\n if (property in styleAttributes || property in styleMethods) {\n continue;\n }\n (function(property) {\n configureProperty(AnimatedCSSStyleDeclaration.prototype, property, {\n get: function() {\n return this._surrogateStyle[property];\n },\n set: function(value) {\n this._surrogateStyle[property] = value;\n this._updateIndices();\n if (!this._isAnimatedProperty[property])\n this._style[property] = value;\n }\n });\n })(property);\n }\n\n function ensureStyleIsPatched(element) {\n if (element._webAnimationsPatchedStyle)\n return;\n\n var animatedStyle = new AnimatedCSSStyleDeclaration(element);\n try {\n configureProperty(element, 'style', { get: function() { return animatedStyle; } });\n } catch (_) {\n // iOS and older versions of Safari (pre v7) do not support overriding an element's\n // style object. Animations will clobber any inline styles as a result.\n element.style._set = function(property, value) {\n element.style[property] = value;\n };\n element.style._clear = function(property) {\n element.style[property] = '';\n };\n }\n\n // We must keep a handle on the patched style to prevent it from getting GC'd.\n element._webAnimationsPatchedStyle = element.style;\n }\n\n scope.apply = function(element, property, value) {\n ensureStyleIsPatched(element);\n element.style._set(scope.propertyName(property), value);\n };\n\n scope.clear = function(element, property) {\n if (element._webAnimationsPatchedStyle) {\n element.style._clear(scope.propertyName(property));\n }\n };\n\n if (WEB_ANIMATIONS_TESTING)\n testing.ensureStyleIsPatched = ensureStyleIsPatched;\n\n})(webAnimations1, webAnimationsTesting);\n"]}