{"version":3,"sources":["src/js/utils/is.js","src/js/utils/events.js","src/js/utils/elements.js","src/js/utils/animation.js","src/js/utils/browser.js","src/js/support.js","src/js/html5.js","src/js/utils/arrays.js","src/js/utils/objects.js","src/js/utils/strings.js","src/js/utils/i18n.js","src/js/storage.js","src/js/utils/fetch.js","src/js/utils/loadSprite.js","src/js/utils/time.js","src/js/controls.js","src/js/utils/urls.js","src/js/captions.js","src/js/config/defaults.js","src/js/config/states.js","src/js/config/types.js","src/js/console.js","src/js/fullscreen.js","src/js/utils/loadImage.js","src/js/ui.js","src/js/listeners.js","node_modules/loadhttps://cdn.plyr.io/3.4.6/loadjs.umd.js","src/js/utils/loadScript.js","src/js/plugins/vimeo.js","src/js/plugins/youtube.js","src/js/media.js","src/js/plugins/ads.js","src/js/source.js","src/js/plyr.js"],"names":["getConstructor","input","constructor","instanceOf","Boolean","isNullOrUndefined","isObject","Object","isString","String","isArray","Array","isNodeList","NodeList","isEmpty","length","keys","is","nullOrUndefined","object","number","Number","isNaN","string","boolean","function","Function","array","weakMap","WeakMap","nodeList","element","Element","textNode","Text","event","Event","keyboardEvent","KeyboardEvent","cue","window","TextTrackCue","VTTCue","track","TextTrack","kind","url","URL","startsWith","concat","hostname","e","empty","supportsPassiveListeners","supported","options","defineProperty","get","addEventListener","removeEventListener","toggleListener","callback","_this","this","toggle","arguments","undefined","passive","capture","events","split","forEach","type","eventListeners","push","on","call","off","once","onceCallback","_len","args","_key","apply","triggerEvent","bubbles","detail","CustomEvent","assign","plyr","dispatchEvent","wrap","elements","wrapper","targets","from","reverse","index","child","cloneNode","parent","parentNode","sibling","nextSibling","appendChild","insertBefore","setAttributes","attributes","entries","filter","_ref","value","_slicedToArray","_ref3","_ref4","key","setAttribute","createElement","text","document","innerText","insertElement","removeElement","removeChild","emptyElement","childNodes","lastChild","replaceElement","newChild","oldChild","replaceChild","getAttributesFromSelector","sel","existingAttributes","existing","s","selector","trim","className","replace","parts","charAt","class","id","toggleHidden","hidden","hide","removeAttribute","toggleClass","force","map","method","classList","contains","hasClass","matches","prototype","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","querySelectorAll","includes","getElements","container","getElement","querySelector","setFocus","tabFocus","focus","config","classNames","transitionEndEvent","WebkitTransition","MozTransition","OTransition","transition","find","style","repaint","setTimeout","offsetHeight","range","browser","isIE","documentMode","isWebkit","documentElement","test","navigator","userAgent","isIPhone","platform","isIos","defaultCodecs","audio/ogg","audio/wav","video/webm","video/mp4","video/ogg","support","audio","video","check","provider","playsinline","canPlayInline","api","ui","rangeInput","pip","webkitSetPresentationMode","pictureInPictureEnabled","disablePictureInPicture","airplay","WebKitPlaybackTargetAvailabilityEvent","mime","inputType","mediaType","isHTML5","media","canPlayType","err","textTracks","touch","transitions","reducedMotion","matchMedia","html5","getSources","source","getAttribute","getQualityOptions","extend","player","set","_player$media","currentTime","paused","preload","readyState","src","play","load","quality","cancelRequests","blankVideo","debug","log","dedupe","item","indexOf","getDeep","path","reduce","obj","target","sources","shift","_defineProperty","format","toString","match","i","replaceAll","RegExp","toTitleCase","toUpperCase","substr","toLowerCase","toCamelCase","toPascalCase","slice","getHTML","innerHTML","resources","vimeo","youtube","i18n","{seektime}","seekTime","{title}","title","_ref2","Storage","_classCallCheck","enabled","storage","store","localStorage","getItem","json","JSON","parse","setItem","stringify","removeItem","fetch","responseType","Promise","resolve","reject","request","XMLHttpRequest","responseText","response","Error","status","open","send","loadSprite","hasId","exists","getElementById","update","data","body","insertAdjacentElement","useStorage","cached","content","then","result","catch","getHours","parseInt","getMinutes","getSeconds","formatTime","time","displayHours","inverted","hours","mins","secs","controls","getIconUrl","cors","iconUrl","location","host","svg4everybody","findElements","selectors","buttons","pause","restart","rewind","fastForward","mute","settings","captions","fullscreen","progress","inputs","seek","volume","display","buffer","duration","seekTooltip","tooltip","error","warn","toggleNativeControls","createIcon","iconPath","iconPrefix","icon","createElementNS","role","focusable","use","setAttributeNS","createLabel","attr","join","createBadge","badge","menu","createButton","buttonType","props","label","labelPressed","iconPressed","control","button","createRange","min","max","step","autocomplete","aria-label","aria-valuemin","aria-valuemax","aria-valuenow","updateRangeFill","createProgress","aria-hidden","suffixKey","played","suffix","createTime","bindMenuItemShortcuts","menuItem","which","preventDefault","stopPropagation","isRadioButton","showMenuPanel","nextElementSibling","firstElementChild","previousElementSibling","lastElementChild","focusFirstMenuItem","createMenuItem","_this2","list","_ref$badge","_ref$checked","checked","aria-checked","flex","enumerable","children","node","listeners","bind","currentTrack","speed","parseFloat","updateTimeDisplay","updateVolume","setRange","muted","pressed","updateProgress","_this3","current","toFixed","getElementsByTagName","nodeValue","setProgress","buffered","percent","setProperty","updateSeekTooltip","_this4","tooltips","clientRect","getBoundingClientRect","visible","width","pageX","left","timeUpdate","invert","invertTime","seeking","durationUpdate","Math","pow","hasDuration","displayDuration","toggleMenuButton","setting","updateSetting","pane","panels","default","getLabel","setQualityMenu","_this5","checkMenu","sort","a","b","sorting","getBadge","setCaptionsMenu","_this6","tracks","getTracks","toggled","language","unshift","setSpeedMenu","_this7","isVimeo","values","some","popup","firstItem","toggleMenu","show","isMenuItem","getMenuSize","tab","clone","position","opacity","scrollWidth","height","scrollHeight","_this8","size","restore","propertyName","setDownloadLink","download","create","_this9","aria-haspopup","aria-controls","aria-expanded","inner","home","backButton","href","urls","isEmbed","inject","_this10","floor","random","seektime","addProperty","controlPressed","_this$config","labels","parseUrl","parser","buildUrlParams","params","URLSearchParams","setup","isVideo","isYouTube","protocol","blob","createObjectURL","languages","userLanguage","active","trackEvents","_this$captions","meta","currentTrackNode","languageExists","mode","updateCues","setLanguage","activeClass","findTrack","_toConsumableArray","embed","enableTextTrack","has","sortIsDefault","sorted","every","getCurrentTrack","cues","activeCues","getCueAsHTML","cueText","caption","defaults","autoplay","autopause","toggleInvert","ratio","clickToPlay","hideControls","resetOnEnd","disableContextMenu","loop","selected","keyboard","focused","global","fallback","iosNative","seekLabel","unmute","enableCaptions","disableCaptions","enterFullscreen","exitFullscreen","frameTitle","menuBack","normal","start","end","all","reset","disabled","advertisement","qualityBadge","2160","1440","1080","720","576","480","sdk","iframe","googleIMA","editable","embedContainer","poster","posterEnabled","ads","playing","stopped","loading","hover","isTouch","uiSupported","noTransition","google","publisherId","providers","types","noop","Console","console","onChange","first","last","keyCode","activeElement","shiftKey","toggleFallback","scrollPosition","x","scrollX","y","scrollY","scrollTo","overflow","viewport","head","property","hasProperty","cleanupViewport","part","Fullscreen","prefix","native","webkitEnterFullscreen","requestFullscreen","webkitExitFullscreen","action","cancelFullScreen","exit","enter","fullscreenElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","pre","loadImage","minWidth","image","Image","handler","onload","onerror","naturalWidth","addStyleHook","build","checkPlaying","ready","setTitle","setPoster","togglePoster","enable","backgroundImage","backgroundSize","toggleControls","checkLoading","clearTimeout","timers","recentTouchSeek","lastSeekTime","Date","now","Listeners","lastKey","focusTimer","lastKeyDown","handleKey","setTabFocus","firstTouch","code","repeat","altKey","ctrlKey","metaKey","togglePlay","increaseVolume","decreaseVolume","forward","toggleCaptions","timeStamp","wasKeyDown","delay","hasAudio","initialized","managerPromise","isAudio","ended","proxyEvents","_event$detail","defaultHandler","customHandlerKey","customHandler","returned","hasCustomHandler","proxy","inputEvent","rect","currentTarget","hasAttribute","done","seekTo","webkitDirectionInvertedFromDevice","_map2","deltaX","deltaY","direction","sign","abs","factory","devnull","bundleIdCache","bundleResultCache","bundleCallbackQueue","publish","bundleId","pathsNotFound","q","splice","executeCallbacks","depsNotFound","success","loadFile","callbackFn","numTries","isCss","doc","async","maxTries","numRetries","beforeCallbackFn","before","pathStripped","rel","onbeforeload","ev","sheet","cssText","defaultPrevented","loadjs","paths","arg1","arg2","fn","numWaiting","loadFiles","deps","bundleIds","r","subscribe","isDefined","module","exports","loadScript","assurePlaybackState","hasPlayed","setAspectRatio","Vimeo","_split2","padding","paddingBottom","offset","transform","byline","portrait","transparent","gesture","$2","thumbnail_large","pathname","Player","disableTextTrack","stop","restorePause","setVolume","setCurrentTime","setPlaybackRate","name","currentSrc","setLoop","getVideoUrl","getVideoWidth","getVideoHeight","dimensions","getRatio","w","h","getAspectRatio","setAutopause","state","getVideoTitle","getCurrentTime","getDuration","getTextTracks","_ref$cues","strippedCues","fragment","createDocumentFragment","firstChild","getPaused","seconds","YT","onYouTubeReadyCallbacks","onYouTubeIframeAPIReady","getTitle","videoId","getVideoData","items","snippet","currentId","posterSrc","playerVars","hl","showinfo","iv_load_policy","modestbranding","disablekb","widget_referrer","cc_load_policy","cc_lang_pref","onError","message","2","5","100","101","150","onPlaybackRateChange","instance","playbackRate","getPlaybackRate","onReady","playVideo","pauseVideo","stopVideo","getAvailablePlaybackRates","clearInterval","buffering","setInterval","getVideoLoadedFraction","lastBuffered","onStateChange","unMute","Ads","displayContainer","manager","loader","cuePoints","safetyTimer","countdownTimer","ima","trigger","startSafetyTimer","clearSafetyTimer","setupIMA","setVpaidMode","ImaSdkSettings","VpaidMode","ENABLED","setLocale","AdDisplayContainer","requestAds","AdsLoader","AdsManagerLoadedEvent","Type","ADS_MANAGER_LOADED","onAdsManagerLoaded","AdErrorEvent","AD_ERROR","onAdError","AdsRequest","adTagUrl","tagUrl","linearAdSlotWidth","offsetWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearAdSlotHeight","forceNonLinearFullSlot","setAdWillPlayMuted","getRemainingTime","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","enablePreloading","getAdsManager","getCuePoints","cuePoint","seekElement","cuePercentage","AdEvent","onAdEvent","ad","getAd","LOADED","pollCountdown","isLinear","ALL_ADS_COMPLETED","loadAds","CONTENT_PAUSE_REQUESTED","pauseContent","CONTENT_RESUME_REQUESTED","resumeContent","STARTED","MIDPOINT","COMPLETE","IMPRESSION","CLICK","cancel","contentComplete","seekedTime","discardAdBreak","resize","ViewMode","NORMAL","initialize","init","adError","zIndex","destroy","_this11","handlers","_this12","AV_PUBLISHERID","AV_CHANNELID","AV_URL","cb","AV_WIDTH","AV_HEIGHT","AV_CDIM2","insertElements","attribute","change","_sources$","_sources$$provider","tagName","crossorigin","Plyr","failed","jQuery","original","getProviderByUrl","search","truthy","searchParams","webkitShowPlaybackTargetPicker","isHidden","hiding","eventName","soft","unload","inputIsValid","fauxDuration","realDuration","Infinity","mozHasAudio","webkitAudioDecodedByteCount","audioTracks","updateStorage","prev","curr","closest","requestPictureInPicture","exitPictureInPicture","webkitPresentationMode","pictureInPictureElement","inline","t"],"mappings":"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","file":"plyr.min.js","sourcesContent":["// ==========================================================================\n// Type checking utils\n// ==========================================================================\n\nconst getConstructor = input => (input !== null && typeof input !== 'undefined' ? input.constructor : null);\nconst instanceOf = (input, constructor) => Boolean(input && constructor && input instanceof constructor);\nconst isNullOrUndefined = input => input === null || typeof input === 'undefined';\nconst isObject = input => getConstructor(input) === Object;\nconst isNumber = input => getConstructor(input) === Number && !Number.isNaN(input);\nconst isString = input => getConstructor(input) === String;\nconst isBoolean = input => getConstructor(input) === Boolean;\nconst isFunction = input => getConstructor(input) === Function;\nconst isArray = input => Array.isArray(input);\nconst isWeakMap = input => instanceOf(input, WeakMap);\nconst isNodeList = input => instanceOf(input, NodeList);\nconst isElement = input => instanceOf(input, Element);\nconst isTextNode = input => getConstructor(input) === Text;\nconst isEvent = input => instanceOf(input, Event);\nconst isKeyboardEvent = input => instanceOf(input, KeyboardEvent);\nconst isCue = input => instanceOf(input, window.TextTrackCue) || instanceOf(input, window.VTTCue);\nconst isTrack = input => instanceOf(input, TextTrack) || (!isNullOrUndefined(input) && isString(input.kind));\n\nconst isEmpty = input =>\n isNullOrUndefined(input) ||\n ((isString(input) || isArray(input) || isNodeList(input)) && !input.length) ||\n (isObject(input) && !Object.keys(input).length);\n\nconst isUrl = input => {\n // Accept a URL object\n if (instanceOf(input, window.URL)) {\n return true;\n }\n\n // Must be string from here\n if (!isString(input)) {\n return false;\n }\n\n // Add the protocol if required\n let string = input;\n if (!input.startsWith('http://') || !input.startsWith('https://')) {\n string = `http://${input}`;\n }\n\n try {\n return !isEmpty(new URL(string).hostname);\n } catch (e) {\n return false;\n }\n};\n\nexport default {\n nullOrUndefined: isNullOrUndefined,\n object: isObject,\n number: isNumber,\n string: isString,\n boolean: isBoolean,\n function: isFunction,\n array: isArray,\n weakMap: isWeakMap,\n nodeList: isNodeList,\n element: isElement,\n textNode: isTextNode,\n event: isEvent,\n keyboardEvent: isKeyboardEvent,\n cue: isCue,\n track: isTrack,\n url: isUrl,\n empty: isEmpty,\n};\n","// ==========================================================================\n// Event utils\n// ==========================================================================\n\nimport is from './is';\n\n// Check for passive event listener support\n// https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n// https://www.youtube.com/watch?v=NPM6172J22g\nconst supportsPassiveListeners = (() => {\n // Test via a getter in the options object to see if the passive property is accessed\n let supported = false;\n try {\n const options = Object.defineProperty({}, 'passive', {\n get() {\n supported = true;\n return null;\n },\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n // Do nothing\n }\n\n return supported;\n})();\n\n// Toggle event listener\nexport function toggleListener(element, event, callback, toggle = false, passive = true, capture = false) {\n // Bail if no element, event, or callback\n if (!element || !('addEventListener' in element) || is.empty(event) || !is.function(callback)) {\n return;\n }\n\n // Allow multiple events\n const events = event.split(' ');\n\n // Build options\n // Default to just the capture boolean for browsers with no passive listener support\n let options = capture;\n\n // If passive events listeners are supported\n if (supportsPassiveListeners) {\n options = {\n // Whether the listener can be passive (i.e. default never prevented)\n passive,\n // Whether the listener is a capturing listener or not\n capture,\n };\n }\n\n // If a single node is passed, bind the event listener\n events.forEach(type => {\n if (this && this.eventListeners && toggle) {\n // Cache event listener\n this.eventListeners.push({ element, type, callback, options });\n }\n\n element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);\n });\n}\n\n// Bind event handler\nexport function on(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, true, passive, capture);\n}\n\n// Unbind event handler\nexport function off(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, false, passive, capture);\n}\n\n// Bind once-only event handler\nexport function once(element, events = '', callback, passive = true, capture = false) {\n function onceCallback(...args) {\n off(element, events, onceCallback, passive, capture);\n callback.apply(this, args);\n }\n\n toggleListener.call(this, element, events, onceCallback, true, passive, capture);\n}\n\n// Trigger event\nexport function triggerEvent(element, type = '', bubbles = false, detail = {}) {\n // Bail if no element\n if (!is.element(element) || is.empty(type)) {\n return;\n }\n\n // Create and dispatch the event\n const event = new CustomEvent(type, {\n bubbles,\n detail: Object.assign({}, detail, {\n plyr: this,\n }),\n });\n\n // Dispatch the event\n element.dispatchEvent(event);\n}\n\n// Unbind all cached event listeners\nexport function unbindListeners() {\n if (this && this.eventListeners) {\n this.eventListeners.forEach(item => {\n const { element, type, callback, options } = item;\n element.removeEventListener(type, callback, options);\n });\n\n this.eventListeners = [];\n }\n}\n\n// Run method when / if player is ready\nexport function ready() {\n return new Promise(\n resolve => (this.ready ? setTimeout(resolve, 0) : on.call(this, this.elements.container, 'ready', resolve)),\n ).then(() => {});\n}\n","// ==========================================================================\n// Element utils\n// ==========================================================================\n\nimport { toggleListener } from './events';\nimport is from './is';\n\n// Wrap an element\nexport function wrap(elements, wrapper) {\n // Convert `elements` to an array, if necessary.\n const targets = elements.length ? elements : [elements];\n\n // Loops backwards to prevent having to clone the wrapper on the\n // first element (see `child` below).\n Array.from(targets)\n .reverse()\n .forEach((element, index) => {\n const child = index > 0 ? wrapper.cloneNode(true) : wrapper;\n\n // Cache the current parent and sibling.\n const parent = element.parentNode;\n const sibling = element.nextSibling;\n\n // Wrap the element (is automatically removed from its current\n // parent).\n child.appendChild(element);\n\n // If the element had a sibling, insert the wrapper before\n // the sibling to maintain the HTML structure; otherwise, just\n // append it to the parent.\n if (sibling) {\n parent.insertBefore(child, sibling);\n } else {\n parent.appendChild(child);\n }\n });\n}\n\n// Set attributes\nexport function setAttributes(element, attributes) {\n if (!is.element(element) || is.empty(attributes)) {\n return;\n }\n\n // Assume null and undefined attributes should be left out,\n // Setting them would otherwise convert them to \"null\" and \"undefined\"\n Object.entries(attributes)\n .filter(([, value]) => !is.nullOrUndefined(value))\n .forEach(([key, value]) => element.setAttribute(key, value));\n}\n\n// Create a DocumentFragment\nexport function createElement(type, attributes, text) {\n // Create a new \n const element = document.createElement(type);\n\n // Set all passed attributes\n if (is.object(attributes)) {\n setAttributes(element, attributes);\n }\n\n // Add text node\n if (is.string(text)) {\n element.innerText = text;\n }\n\n // Return built element\n return element;\n}\n\n// Inaert an element after another\nexport function insertAfter(element, target) {\n if (!is.element(element) || !is.element(target)) {\n return;\n }\n\n target.parentNode.insertBefore(element, target.nextSibling);\n}\n\n// Insert a DocumentFragment\nexport function insertElement(type, parent, attributes, text) {\n if (!is.element(parent)) {\n return;\n }\n\n parent.appendChild(createElement(type, attributes, text));\n}\n\n// Remove element(s)\nexport function removeElement(element) {\n if (is.nodeList(element) || is.array(element)) {\n Array.from(element).forEach(removeElement);\n return;\n }\n\n if (!is.element(element) || !is.element(element.parentNode)) {\n return;\n }\n\n element.parentNode.removeChild(element);\n}\n\n// Remove all child elements\nexport function emptyElement(element) {\n if (!is.element(element)) {\n return;\n }\n\n let { length } = element.childNodes;\n\n while (length > 0) {\n element.removeChild(element.lastChild);\n length -= 1;\n }\n}\n\n// Replace element\nexport function replaceElement(newChild, oldChild) {\n if (!is.element(oldChild) || !is.element(oldChild.parentNode) || !is.element(newChild)) {\n return null;\n }\n\n oldChild.parentNode.replaceChild(newChild, oldChild);\n\n return newChild;\n}\n\n// Get an attribute object from a string selector\nexport function getAttributesFromSelector(sel, existingAttributes) {\n // For example:\n // '.test' to { class: 'test' }\n // '#test' to { id: 'test' }\n // '[data-test=\"test\"]' to { 'data-test': 'test' }\n\n if (!is.string(sel) || is.empty(sel)) {\n return {};\n }\n\n const attributes = {};\n const existing = existingAttributes;\n\n sel.split(',').forEach(s => {\n // Remove whitespace\n const selector = s.trim();\n const className = selector.replace('.', '');\n const stripped = selector.replace(/[[\\]]/g, '');\n\n // Get the parts and value\n const parts = stripped.split('=');\n const key = parts[0];\n const value = parts.length > 1 ? parts[1].replace(/[\"']/g, '') : '';\n\n // Get the first character\n const start = selector.charAt(0);\n\n switch (start) {\n case '.':\n // Add to existing classname\n if (is.object(existing) && is.string(existing.class)) {\n existing.class += ` ${className}`;\n }\n\n attributes.class = className;\n break;\n\n case '#':\n // ID selector\n attributes.id = selector.replace('#', '');\n break;\n\n case '[':\n // Attribute selector\n attributes[key] = value;\n\n break;\n\n default:\n break;\n }\n });\n\n return attributes;\n}\n\n// Toggle hidden\nexport function toggleHidden(element, hidden) {\n if (!is.element(element)) {\n return;\n }\n\n let hide = hidden;\n\n if (!is.boolean(hide)) {\n hide = !element.hidden;\n }\n\n if (hide) {\n element.setAttribute('hidden', '');\n } else {\n element.removeAttribute('hidden');\n }\n}\n\n// Mirror Element.classList.toggle, with IE compatibility for \"force\" argument\nexport function toggleClass(element, className, force) {\n if (is.nodeList(element)) {\n return Array.from(element).map(e => toggleClass(e, className, force));\n }\n\n if (is.element(element)) {\n let method = 'toggle';\n if (typeof force !== 'undefined') {\n method = force ? 'add' : 'remove';\n }\n\n element.classList[method](className);\n return element.classList.contains(className);\n }\n\n return false;\n}\n\n// Has class name\nexport function hasClass(element, className) {\n return is.element(element) && element.classList.contains(className);\n}\n\n// Element matches selector\nexport function matches(element, selector) {\n const prototype = { Element };\n\n function match() {\n return Array.from(document.querySelectorAll(selector)).includes(this);\n }\n\n const matches =\n prototype.matches ||\n prototype.webkitMatchesSelector ||\n prototype.mozMatchesSelector ||\n prototype.msMatchesSelector ||\n match;\n\n return matches.call(element, selector);\n}\n\n// Find all elements\nexport function getElements(selector) {\n return this.elements.container.querySelectorAll(selector);\n}\n\n// Find a single element\nexport function getElement(selector) {\n return this.elements.container.querySelector(selector);\n}\n\n// Trap focus inside container\nexport function trapFocus(element = null, toggle = false) {\n if (!is.element(element)) {\n return;\n }\n\n const focusable = getElements.call(this, 'button:not(:disabled), input:not(:disabled), [tabindex]');\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n\n const trap = event => {\n // Bail if not tab key or not fullscreen\n if (event.key !== 'Tab' || event.keyCode !== 9) {\n return;\n }\n\n // Get the current focused element\n const focused = document.activeElement;\n\n if (focused === last && !event.shiftKey) {\n // Move focus to first element that can be tabbed if Shift isn't used\n first.focus();\n event.preventDefault();\n } else if (focused === first && event.shiftKey) {\n // Move focus to last element that can be tabbed if Shift is used\n last.focus();\n event.preventDefault();\n }\n };\n\n toggleListener.call(this, this.elements.container, 'keydown', trap, toggle, false);\n}\n\n// Set focus and tab focus class\nexport function setFocus(element = null, tabFocus = false) {\n if (!is.element(element)) {\n return;\n }\n\n // Set regular focus\n element.focus();\n\n // If we want to mimic keyboard focus via tab\n if (tabFocus) {\n toggleClass(element, this.config.classNames.tabFocus);\n }\n}\n","// ==========================================================================\n// Animation utils\n// ==========================================================================\n\nimport { toggleHidden } from './elements';\nimport is from './is';\n\nexport const transitionEndEvent = (() => {\n const element = document.createElement('span');\n\n const events = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend',\n };\n\n const type = Object.keys(events).find(event => element.style[event] !== undefined);\n\n return is.string(type) ? events[type] : false;\n})();\n\n// Force repaint of element\nexport function repaint(element) {\n setTimeout(() => {\n try {\n toggleHidden(element, true);\n element.offsetHeight; // eslint-disable-line\n toggleHidden(element, false);\n } catch (e) {\n // Do nothing\n }\n }, 0);\n}\n","// ==========================================================================\n// Browser sniffing\n// Unfortunately, due to mixed support, UA sniffing is required\n// ==========================================================================\n\nconst browser = {\n isIE: /* @cc_on!@ */ false || !!document.documentMode,\n isWebkit: 'WebkitAppearance' in document.documentElement.style && !/Edge/.test(navigator.userAgent),\n isIPhone: /(iPhone|iPod)/gi.test(navigator.platform),\n isIos: /(iPad|iPhone|iPod)/gi.test(navigator.platform),\n};\n\nexport default browser;\n","// ==========================================================================\n// Plyr support checks\n// ==========================================================================\n\nimport { transitionEndEvent } from './utils/animation';\nimport browser from './utils/browser';\nimport { createElement } from './utils/elements';\nimport is from './utils/is';\n\n// Default codecs for checking mimetype support\nconst defaultCodecs = {\n 'audio/ogg': 'vorbis',\n 'audio/wav': '1',\n 'video/webm': 'vp8, vorbis',\n 'video/mp4': 'avc1.42E01E, mp4a.40.2',\n 'video/ogg': 'theora',\n};\n\n// Check for feature support\nconst support = {\n // Basic support\n audio: 'canPlayType' in document.createElement('audio'),\n video: 'canPlayType' in document.createElement('video'),\n\n // Check for support\n // Basic functionality vs full UI\n check(type, provider, playsinline) {\n const canPlayInline = browser.isIPhone && playsinline && support.playsinline;\n const api = support[type] || provider !== 'html5';\n const ui = api && support.rangeInput && (type !== 'video' || !browser.isIPhone || canPlayInline);\n\n return {\n api,\n ui,\n };\n },\n\n // Picture-in-picture support\n // Safari & Chrome only currently\n pip: (() => {\n if (browser.isIPhone) {\n return false;\n }\n\n // Safari\n // https://developer.apple.com/documentation/webkitjs/adding_picture_in_picture_to_your_safari_media_controls\n if (is.function(createElement('video').webkitSetPresentationMode)) {\n return true;\n }\n\n // Chrome\n // https://developers.google.com/web/updates/2018/10/watch-video-using-picture-in-picture\n if (document.pictureInPictureEnabled && !createElement('video').disablePictureInPicture) {\n return true;\n }\n\n return false;\n })(),\n\n // Airplay support\n // Safari only currently\n airplay: is.function(window.WebKitPlaybackTargetAvailabilityEvent),\n\n // Inline playback support\n // https://webkit.org/blog/6784/new-video-policies-for-ios/\n playsinline: 'playsInline' in document.createElement('video'),\n\n // Check for mime type support against a player instance\n // Credits: http://diveintohtml5.info/everything.html\n // Related: http://www.leanbackplayer.com/test/h5mt.html\n mime(inputType) {\n const [mediaType] = inputType.split('/');\n if (!this.isHTML5 || mediaType !== this.type) {\n return false;\n }\n\n let type;\n if (inputType && inputType.includes('codecs=')) {\n // Use input directly\n type = inputType;\n } else if (inputType === 'audio/mpeg') {\n // Skip codec\n type = 'audio/mpeg;';\n } else if (inputType in defaultCodecs) {\n // Use codec\n type = `${inputType}; codecs=\"${defaultCodecs[inputType]}\"`;\n }\n\n try {\n return Boolean(type && this.media.canPlayType(type).replace(/no/, ''));\n } catch (err) {\n return false;\n }\n },\n\n // Check for textTracks support\n textTracks: 'textTracks' in document.createElement('video'),\n\n // Sliders\n rangeInput: (() => {\n const range = document.createElement('input');\n range.type = 'range';\n return range.type === 'range';\n })(),\n\n // Touch\n // NOTE: Remember a device can be mouse + touch enabled so we check on first touch event\n touch: 'ontouchstart' in document.documentElement,\n\n // Detect transitions support\n transitions: transitionEndEvent !== false,\n\n // Reduced motion iOS & MacOS setting\n // https://webkit.org/blog/7551/responsive-design-for-motion/\n reducedMotion: 'matchMedia' in window && window.matchMedia('(prefers-reduced-motion)').matches,\n};\n\nexport default support;\n","// ==========================================================================\n// Plyr HTML5 helpers\n// ==========================================================================\n\nimport support from './support';\nimport { removeElement } from './utils/elements';\nimport { triggerEvent } from './utils/events';\n\nconst html5 = {\n getSources() {\n if (!this.isHTML5) {\n return [];\n }\n\n const sources = Array.from(this.media.querySelectorAll('source'));\n\n // Filter out unsupported sources\n return sources.filter(source => support.mime.call(this, source.getAttribute('type')));\n },\n\n // Get quality levels\n getQualityOptions() {\n // Get sizes from elements\n return html5.getSources\n .call(this)\n .map(source => Number(source.getAttribute('size')))\n .filter(Boolean);\n },\n\n extend() {\n if (!this.isHTML5) {\n return;\n }\n\n const player = this;\n\n // Quality\n Object.defineProperty(player.media, 'quality', {\n get() {\n // Get sources\n const sources = html5.getSources.call(player);\n const source = sources.find(source => source.getAttribute('src') === player.source);\n\n // Return size, if match is found\n return source && Number(source.getAttribute('size'));\n },\n set(input) {\n // Get sources\n const sources = html5.getSources.call(player);\n\n // Get first match for requested size\n const source = sources.find(source => Number(source.getAttribute('size')) === input);\n\n // No matching source found\n if (!source) {\n return;\n }\n\n // Get current state\n const { currentTime, paused, preload, readyState } = player.media;\n\n // Set new source\n player.media.src = source.getAttribute('src');\n\n // Prevent loading if preload=\"none\" and the current source isn't loaded (#1044)\n if (preload !== 'none' || readyState) {\n // Restore time\n player.once('loadedmetadata', () => {\n player.currentTime = currentTime;\n\n // Resume playing\n if (!paused) {\n player.play();\n }\n });\n\n // Load new source\n player.media.load();\n }\n\n // Trigger change event\n triggerEvent.call(player, player.media, 'qualitychange', false, {\n quality: input,\n });\n },\n });\n },\n\n // Cancel current network requests\n // See https://github.com/sampotts/plyr/issues/174\n cancelRequests() {\n if (!this.isHTML5) {\n return;\n }\n\n // Remove child sources\n removeElement(html5.getSources.call(this));\n\n // Set blank video src attribute\n // This is to prevent a MEDIA_ERR_SRC_NOT_SUPPORTED error\n // Info: http://stackoverflow.com/questions/32231579/how-to-properly-dispose-of-an-html5-video-and-close-socket-or-connection\n this.media.setAttribute('src', this.config.blankVideo);\n\n // Load the new empty source\n // This will cancel existing requests\n // See https://github.com/sampotts/plyr/issues/174\n this.media.load();\n\n // Debugging\n this.debug.log('Cancelled network requests');\n },\n};\n\nexport default html5;\n","// ==========================================================================\n// Array utils\n// ==========================================================================\n\nimport is from './is';\n\n// Remove duplicates in an array\nexport function dedupe(array) {\n if (!is.array(array)) {\n return array;\n }\n\n return array.filter((item, index) => array.indexOf(item) === index);\n}\n\n// Get the closest value in an array\nexport function closest(array, value) {\n if (!is.array(array) || !array.length) {\n return null;\n }\n\n return array.reduce((prev, curr) => (Math.abs(curr - value) < Math.abs(prev - value) ? curr : prev));\n}\n","// ==========================================================================\n// Object utils\n// ==========================================================================\n\nimport is from './is';\n\n// Clone nested objects\nexport function cloneDeep(object) {\n return JSON.parse(JSON.stringify(object));\n}\n\n// Get a nested value in an object\nexport function getDeep(object, path) {\n return path.split('.').reduce((obj, key) => obj && obj[key], object);\n}\n\n// Deep extend destination object with N more objects\nexport function extend(target = {}, ...sources) {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n\n if (!is.object(source)) {\n return target;\n }\n\n Object.keys(source).forEach(key => {\n if (is.object(source[key])) {\n if (!Object.keys(target).includes(key)) {\n Object.assign(target, { [key]: {} });\n }\n\n extend(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n });\n\n return extend(target, ...sources);\n}\n","// ==========================================================================\n// String utils\n// ==========================================================================\n\nimport is from './is';\n\n// Generate a random ID\nexport function generateId(prefix) {\n return `${prefix}-${Math.floor(Math.random() * 10000)}`;\n}\n\n// Format string\nexport function format(input, ...args) {\n if (is.empty(input)) {\n return input;\n }\n\n return input.toString().replace(/{(\\d+)}/g, (match, i) => args[i].toString());\n}\n\n// Get percentage\nexport function getPercentage(current, max) {\n if (current === 0 || max === 0 || Number.isNaN(current) || Number.isNaN(max)) {\n return 0;\n }\n\n return ((current / max) * 100).toFixed(2);\n}\n\n// Replace all occurances of a string in a string\nexport function replaceAll(input = '', find = '', replace = '') {\n return input.replace(\n new RegExp(find.toString().replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1'), 'g'),\n replace.toString(),\n );\n}\n\n// Convert to title case\nexport function toTitleCase(input = '') {\n return input.toString().replace(/\\w\\S*/g, text => text.charAt(0).toUpperCase() + text.substr(1).toLowerCase());\n}\n\n// Convert string to pascalCase\nexport function toPascalCase(input = '') {\n let string = input.toString();\n\n // Convert kebab case\n string = replaceAll(string, '-', ' ');\n\n // Convert snake case\n string = replaceAll(string, '_', ' ');\n\n // Convert to title case\n string = toTitleCase(string);\n\n // Convert to pascal case\n return replaceAll(string, ' ', '');\n}\n\n// Convert string to pascalCase\nexport function toCamelCase(input = '') {\n let string = input.toString();\n\n // Convert to pascal case\n string = toPascalCase(string);\n\n // Convert first character to lowercase\n return string.charAt(0).toLowerCase() + string.slice(1);\n}\n\n// Remove HTML from a string\nexport function stripHTML(source) {\n const fragment = document.createDocumentFragment();\n const element = document.createElement('div');\n fragment.appendChild(element);\n element.innerHTML = source;\n return fragment.firstChild.innerText;\n}\n\n// Like outerHTML, but also works for DocumentFragment\nexport function getHTML(element) {\n const wrapper = document.createElement('div');\n wrapper.appendChild(element);\n return wrapper.innerHTML;\n}\n","// ==========================================================================\n// Plyr internationalization\n// ==========================================================================\n\nimport is from './is';\nimport { getDeep } from './objects';\nimport { replaceAll } from './strings';\n\n// Skip i18n for abbreviations and brand names\nconst resources = {\n pip: 'PIP',\n airplay: 'AirPlay',\n html5: 'HTML5',\n vimeo: 'Vimeo',\n youtube: 'YouTube',\n};\n\nconst i18n = {\n get(key = '', config = {}) {\n if (is.empty(key) || is.empty(config)) {\n return '';\n }\n\n let string = getDeep(config.i18n, key);\n\n if (is.empty(string)) {\n if (Object.keys(resources).includes(key)) {\n return resources[key];\n }\n\n return '';\n }\n\n const replace = {\n '{seektime}': config.seekTime,\n '{title}': config.title,\n };\n\n Object.entries(replace).forEach(([key, value]) => {\n string = replaceAll(string, key, value);\n });\n\n return string;\n },\n};\n\nexport default i18n;\n","// ==========================================================================\n// Plyr storage\n// ==========================================================================\n\nimport is from './utils/is';\nimport { extend } from './utils/objects';\n\nclass Storage {\n constructor(player) {\n this.enabled = player.config.storage.enabled;\n this.key = player.config.storage.key;\n }\n\n // Check for actual support (see if we can use it)\n static get supported() {\n try {\n if (!('localStorage' in window)) {\n return false;\n }\n\n const test = '___test';\n\n // Try to use it (it might be disabled, e.g. user is in private mode)\n // see: https://github.com/sampotts/plyr/issues/131\n window.localStorage.setItem(test, test);\n window.localStorage.removeItem(test);\n\n return true;\n } catch (e) {\n return false;\n }\n }\n\n get(key) {\n if (!Storage.supported || !this.enabled) {\n return null;\n }\n\n const store = window.localStorage.getItem(this.key);\n\n if (is.empty(store)) {\n return null;\n }\n\n const json = JSON.parse(store);\n\n return is.string(key) && key.length ? json[key] : json;\n }\n\n set(object) {\n // Bail if we don't have localStorage support or it's disabled\n if (!Storage.supported || !this.enabled) {\n return;\n }\n\n // Can only store objectst\n if (!is.object(object)) {\n return;\n }\n\n // Get current storage\n let storage = this.get();\n\n // Default to empty object\n if (is.empty(storage)) {\n storage = {};\n }\n\n // Update the working copy of the values\n extend(storage, object);\n\n // Update storage\n window.localStorage.setItem(this.key, JSON.stringify(storage));\n }\n}\n\nexport default Storage;\n","// ==========================================================================\n// Fetch wrapper\n// Using XHR to avoid issues with older browsers\n// ==========================================================================\n\nexport default function fetch(url, responseType = 'text') {\n return new Promise((resolve, reject) => {\n try {\n const request = new XMLHttpRequest();\n\n // Check for CORS support\n if (!('withCredentials' in request)) {\n return;\n }\n\n request.addEventListener('load', () => {\n if (responseType === 'text') {\n try {\n resolve(JSON.parse(request.responseText));\n } catch (e) {\n resolve(request.responseText);\n }\n } else {\n resolve(request.response);\n }\n });\n\n request.addEventListener('error', () => {\n throw new Error(request.status);\n });\n\n request.open('GET', url, true);\n\n // Set the required response type\n request.responseType = responseType;\n\n request.send();\n } catch (e) {\n reject(e);\n }\n });\n}\n","// ==========================================================================\n// Sprite loader\n// ==========================================================================\n\nimport Storage from '../storage';\nimport fetch from './fetch';\nimport is from './is';\n\n// Load an external SVG sprite\nexport default function loadSprite(url, id) {\n if (!is.string(url)) {\n return;\n }\n\n const prefix = 'cache';\n const hasId = is.string(id);\n let isCached = false;\n\n const exists = () => document.getElementById(id) !== null;\n\n const update = (container, data) => {\n container.innerHTML = data;\n\n // Check again incase of race condition\n if (hasId && exists()) {\n return;\n }\n\n // Inject the SVG to the body\n document.body.insertAdjacentElement('afterbegin', container);\n };\n\n // Only load once if ID set\n if (!hasId || !exists()) {\n const useStorage = Storage.supported;\n\n // Create container\n const container = document.createElement('div');\n container.setAttribute('hidden', '');\n\n if (hasId) {\n container.setAttribute('id', id);\n }\n\n // Check in cache\n if (useStorage) {\n const cached = window.localStorage.getItem(`${prefix}-${id}`);\n isCached = cached !== null;\n\n if (isCached) {\n const data = JSON.parse(cached);\n update(container, data.content);\n }\n }\n\n // Get the sprite\n fetch(url)\n .then(result => {\n if (is.empty(result)) {\n return;\n }\n\n if (useStorage) {\n window.localStorage.setItem(\n `${prefix}-${id}`,\n JSON.stringify({\n content: result,\n }),\n );\n }\n\n update(container, result);\n })\n .catch(() => {});\n }\n}\n","// ==========================================================================\n// Time utils\n// ==========================================================================\n\nimport is from './is';\n\n// Time helpers\nexport const getHours = value => parseInt((value / 60 / 60) % 60, 10);\nexport const getMinutes = value => parseInt((value / 60) % 60, 10);\nexport const getSeconds = value => parseInt(value % 60, 10);\n\n// Format time to UI friendly string\nexport function formatTime(time = 0, displayHours = false, inverted = false) {\n // Bail if the value isn't a number\n if (!is.number(time)) {\n return formatTime(null, displayHours, inverted);\n }\n\n // Format time component to add leading zero\n const format = value => `0${value}`.slice(-2);\n\n // Breakdown to hours, mins, secs\n let hours = getHours(time);\n const mins = getMinutes(time);\n const secs = getSeconds(time);\n\n // Do we need to display hours?\n if (displayHours || hours > 0) {\n hours = `${hours}:`;\n } else {\n hours = '';\n }\n\n // Render\n return `${inverted && time > 0 ? '-' : ''}${hours}${format(mins)}:${format(secs)}`;\n}\n","// ==========================================================================\n// Plyr controls\n// TODO: This needs to be split into smaller files and cleaned up\n// ==========================================================================\n\nimport captions from './captions';\nimport html5 from './html5';\nimport support from './support';\nimport { repaint, transitionEndEvent } from './utils/animation';\nimport { dedupe } from './utils/arrays';\nimport browser from './utils/browser';\nimport { createElement, emptyElement, getAttributesFromSelector, getElement, getElements, hasClass, matches, removeElement, setAttributes, setFocus, toggleClass, toggleHidden } from './utils/elements';\nimport { off, on } from './utils/events';\nimport i18n from './utils/i18n';\nimport is from './utils/is';\nimport loadSprite from './utils/loadSprite';\nimport { extend } from './utils/objects';\nimport { getPercentage, replaceAll, toCamelCase, toTitleCase } from './utils/strings';\nimport { formatTime, getHours } from './utils/time';\n\n// TODO: Don't export a massive object - break down and create class\nconst controls = {\n // Get icon URL\n getIconUrl() {\n const url = new URL(this.config.iconUrl, window.location);\n const cors = url.host !== window.location.host || (browser.isIE && !window.svg4everybody);\n\n return {\n url: this.config.iconUrl,\n cors,\n };\n },\n\n // Find the UI controls\n findElements() {\n try {\n this.elements.controls = getElement.call(this, this.config.selectors.controls.wrapper);\n\n // Buttons\n this.elements.buttons = {\n play: getElements.call(this, this.config.selectors.buttons.play),\n pause: getElement.call(this, this.config.selectors.buttons.pause),\n restart: getElement.call(this, this.config.selectors.buttons.restart),\n rewind: getElement.call(this, this.config.selectors.buttons.rewind),\n fastForward: getElement.call(this, this.config.selectors.buttons.fastForward),\n mute: getElement.call(this, this.config.selectors.buttons.mute),\n pip: getElement.call(this, this.config.selectors.buttons.pip),\n airplay: getElement.call(this, this.config.selectors.buttons.airplay),\n settings: getElement.call(this, this.config.selectors.buttons.settings),\n captions: getElement.call(this, this.config.selectors.buttons.captions),\n fullscreen: getElement.call(this, this.config.selectors.buttons.fullscreen),\n };\n\n // Progress\n this.elements.progress = getElement.call(this, this.config.selectors.progress);\n\n // Inputs\n this.elements.inputs = {\n seek: getElement.call(this, this.config.selectors.inputs.seek),\n volume: getElement.call(this, this.config.selectors.inputs.volume),\n };\n\n // Display\n this.elements.display = {\n buffer: getElement.call(this, this.config.selectors.display.buffer),\n currentTime: getElement.call(this, this.config.selectors.display.currentTime),\n duration: getElement.call(this, this.config.selectors.display.duration),\n };\n\n // Seek tooltip\n if (is.element(this.elements.progress)) {\n this.elements.display.seekTooltip = this.elements.progress.querySelector(\n `.${this.config.classNames.tooltip}`,\n );\n }\n\n return true;\n } catch (error) {\n // Log it\n this.debug.warn('It looks like there is a problem with your custom controls HTML', error);\n\n // Restore native video controls\n this.toggleNativeControls(true);\n\n return false;\n }\n },\n\n // Create icon\n createIcon(type, attributes) {\n const namespace = 'http://www.w3.org/2000/svg';\n const iconUrl = controls.getIconUrl.call(this);\n const iconPath = `${!iconUrl.cors ? iconUrl.url : ''}#${this.config.iconPrefix}`;\n\n // Create \n const icon = document.createElementNS(namespace, 'svg');\n setAttributes(\n icon,\n extend(attributes, {\n role: 'presentation',\n focusable: 'false',\n }),\n );\n\n // Create the to reference sprite\n const use = document.createElementNS(namespace, 'use');\n const path = `${iconPath}-${type}`;\n\n // Set `href` attributes\n // https://github.com/sampotts/plyr/issues/460\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href\n if ('href' in use) {\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n }\n\n // Always set the older attribute even though it's \"deprecated\" (it'll be around for ages)\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', path);\n\n // Add to \n icon.appendChild(use);\n\n return icon;\n },\n\n // Create hidden text label\n createLabel(key, attr = {}) {\n const text = i18n.get(key, this.config);\n\n const attributes = Object.assign({}, attr, {\n class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' '),\n });\n\n return createElement('span', attributes, text);\n },\n\n // Create a badge\n createBadge(text) {\n if (is.empty(text)) {\n return null;\n }\n\n const badge = createElement('span', {\n class: this.config.classNames.menu.value,\n });\n\n badge.appendChild(\n createElement(\n 'span',\n {\n class: this.config.classNames.menu.badge,\n },\n text,\n ),\n );\n\n return badge;\n },\n\n // Create a
to hide the standard controls and UI\n setAspectRatio(input) {\n const [x, y] = (is.string(input) ? input : this.config.ratio).split(':');\n const padding = (100 / x) * y;\n this.elements.wrapper.style.paddingBottom = `${padding}%`;\n\n if (this.supported.ui) {\n const height = 240;\n const offset = (height - padding) / (height / 50);\n\n this.media.style.transform = `translateY(-${offset}%)`;\n }\n },\n\n // API Ready\n ready() {\n const player = this;\n\n // Get Vimeo params for the iframe\n const options = {\n loop: player.config.loop.active,\n autoplay: player.autoplay,\n // muted: player.muted,\n byline: false,\n portrait: false,\n title: false,\n speed: true,\n transparent: 0,\n gesture: 'media',\n playsinline: !this.config.fullscreen.iosNative,\n };\n const params = buildUrlParams(options);\n\n // Get the source URL or ID\n let source = player.media.getAttribute('src');\n\n // Get from
if needed\n if (is.empty(source)) {\n source = player.media.getAttribute(player.config.attributes.embed.id);\n }\n\n const id = parseId(source);\n\n // Build an iframe\n const iframe = createElement('iframe');\n const src = format(player.config.urls.vimeo.iframe, id, params);\n iframe.setAttribute('src', src);\n iframe.setAttribute('allowfullscreen', '');\n iframe.setAttribute('allowtransparency', '');\n iframe.setAttribute('allow', 'autoplay');\n\n // Get poster, if already set\n const { poster } = player;\n\n // Inject the package\n const wrapper = createElement('div', { poster, class: player.config.classNames.embedContainer });\n wrapper.appendChild(iframe);\n player.media = replaceElement(wrapper, player.media);\n\n // Get poster image\n fetch(format(player.config.urls.vimeo.api, id), 'json').then(response => {\n if (is.empty(response)) {\n return;\n }\n\n // Get the URL for thumbnail\n const url = new URL(response[0].thumbnail_large);\n\n // Get original image\n url.pathname = `${url.pathname.split('_')[0]}.jpg`;\n\n // Set and show poster\n ui.setPoster.call(player, url.href).catch(() => {});\n });\n\n // Setup instance\n // https://github.com/vimeo/player.js\n player.embed = new window.Vimeo.Player(iframe, {\n autopause: player.config.autopause,\n muted: player.muted,\n });\n\n player.media.paused = true;\n player.media.currentTime = 0;\n\n // Disable native text track rendering\n if (player.supported.ui) {\n player.embed.disableTextTrack();\n }\n\n // Create a faux HTML5 API using the Vimeo API\n player.media.play = () => {\n assurePlaybackState.call(player, true);\n return player.embed.play();\n };\n\n player.media.pause = () => {\n assurePlaybackState.call(player, false);\n return player.embed.pause();\n };\n\n player.media.stop = () => {\n player.pause();\n player.currentTime = 0;\n };\n\n // Seeking\n let { currentTime } = player.media;\n Object.defineProperty(player.media, 'currentTime', {\n get() {\n return currentTime;\n },\n set(time) {\n // Vimeo will automatically play on seek if the video hasn't been played before\n\n // Get current paused state and volume etc\n const { embed, media, paused, volume } = player;\n const restorePause = paused && !embed.hasPlayed;\n\n // Set seeking state and trigger event\n media.seeking = true;\n triggerEvent.call(player, media, 'seeking');\n\n // If paused, mute until seek is complete\n Promise.resolve(restorePause && embed.setVolume(0))\n // Seek\n .then(() => embed.setCurrentTime(time))\n // Restore paused\n .then(() => restorePause && embed.pause())\n // Restore volume\n .then(() => restorePause && embed.setVolume(volume))\n .catch(() => {\n // Do nothing\n });\n },\n });\n\n // Playback speed\n let speed = player.config.speed.selected;\n Object.defineProperty(player.media, 'playbackRate', {\n get() {\n return speed;\n },\n set(input) {\n player.embed\n .setPlaybackRate(input)\n .then(() => {\n speed = input;\n triggerEvent.call(player, player.media, 'ratechange');\n })\n .catch(error => {\n // Hide menu item (and menu if empty)\n if (error.name === 'Error') {\n controls.setSpeedMenu.call(player, []);\n }\n });\n },\n });\n\n // Volume\n let { volume } = player.config;\n Object.defineProperty(player.media, 'volume', {\n get() {\n return volume;\n },\n set(input) {\n player.embed.setVolume(input).then(() => {\n volume = input;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n },\n });\n\n // Muted\n let { muted } = player.config;\n Object.defineProperty(player.media, 'muted', {\n get() {\n return muted;\n },\n set(input) {\n const toggle = is.boolean(input) ? input : false;\n\n player.embed.setVolume(toggle ? 0 : player.config.volume).then(() => {\n muted = toggle;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n },\n });\n\n // Loop\n let { loop } = player.config;\n Object.defineProperty(player.media, 'loop', {\n get() {\n return loop;\n },\n set(input) {\n const toggle = is.boolean(input) ? input : player.config.loop.active;\n\n player.embed.setLoop(toggle).then(() => {\n loop = toggle;\n });\n },\n });\n\n // Source\n let currentSrc;\n player.embed\n .getVideoUrl()\n .then(value => {\n currentSrc = value;\n controls.setDownloadLink.call(player);\n })\n .catch(error => {\n this.debug.warn(error);\n });\n\n Object.defineProperty(player.media, 'currentSrc', {\n get() {\n return currentSrc;\n },\n });\n\n // Ended\n Object.defineProperty(player.media, 'ended', {\n get() {\n return player.currentTime === player.duration;\n },\n });\n\n // Set aspect ratio based on video size\n Promise.all([player.embed.getVideoWidth(), player.embed.getVideoHeight()]).then(dimensions => {\n const ratio = getAspectRatio(dimensions[0], dimensions[1]);\n vimeo.setAspectRatio.call(this, ratio);\n });\n\n // Set autopause\n player.embed.setAutopause(player.config.autopause).then(state => {\n player.config.autopause = state;\n });\n\n // Get title\n player.embed.getVideoTitle().then(title => {\n player.config.title = title;\n ui.setTitle.call(this);\n });\n\n // Get current time\n player.embed.getCurrentTime().then(value => {\n currentTime = value;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n\n // Get duration\n player.embed.getDuration().then(value => {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n });\n\n // Get captions\n player.embed.getTextTracks().then(tracks => {\n player.media.textTracks = tracks;\n captions.setup.call(player);\n });\n\n player.embed.on('cuechange', ({ cues = [] }) => {\n const strippedCues = cues.map(cue => stripHTML(cue.text));\n captions.updateCues.call(player, strippedCues);\n });\n\n player.embed.on('loaded', () => {\n // Assure state and events are updated on autoplay\n player.embed.getPaused().then(paused => {\n assurePlaybackState.call(player, !paused);\n if (!paused) {\n triggerEvent.call(player, player.media, 'playing');\n }\n });\n\n if (is.element(player.embed.element) && player.supported.ui) {\n const frame = player.embed.element;\n\n // Fix keyboard focus issues\n // https://github.com/sampotts/plyr/issues/317\n frame.setAttribute('tabindex', -1);\n }\n });\n\n player.embed.on('play', () => {\n assurePlaybackState.call(player, true);\n triggerEvent.call(player, player.media, 'playing');\n });\n\n player.embed.on('pause', () => {\n assurePlaybackState.call(player, false);\n });\n\n player.embed.on('timeupdate', data => {\n player.media.seeking = false;\n currentTime = data.seconds;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n\n player.embed.on('progress', data => {\n player.media.buffered = data.percent;\n triggerEvent.call(player, player.media, 'progress');\n\n // Check all loaded\n if (parseInt(data.percent, 10) === 1) {\n triggerEvent.call(player, player.media, 'canplaythrough');\n }\n\n // Get duration as if we do it before load, it gives an incorrect value\n // https://github.com/sampotts/plyr/issues/891\n player.embed.getDuration().then(value => {\n if (value !== player.media.duration) {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n }\n });\n });\n\n player.embed.on('seeked', () => {\n player.media.seeking = false;\n triggerEvent.call(player, player.media, 'seeked');\n });\n\n player.embed.on('ended', () => {\n player.media.paused = true;\n triggerEvent.call(player, player.media, 'ended');\n });\n\n player.embed.on('error', detail => {\n player.media.error = detail;\n triggerEvent.call(player, player.media, 'error');\n });\n\n // Rebuild UI\n setTimeout(() => ui.build.call(player), 0);\n },\n};\n\nexport default vimeo;\n","// ==========================================================================\n// YouTube plugin\n// ==========================================================================\n\nimport ui from '../ui';\nimport { createElement, replaceElement, toggleClass } from '../utils/elements';\nimport { triggerEvent } from '../utils/events';\nimport fetch from '../utils/fetch';\nimport is from '../utils/is';\nimport loadImage from '../utils/loadImage';\nimport loadScript from '../utils/loadScript';\nimport { format, generateId } from '../utils/strings';\n\n// Parse YouTube ID from URL\nfunction parseId(url) {\n if (is.empty(url)) {\n return null;\n }\n\n const regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n return url.match(regex) ? RegExp.$2 : url;\n}\n\n// Set playback state and trigger change (only on actual change)\nfunction assurePlaybackState(play) {\n if (play && !this.embed.hasPlayed) {\n this.embed.hasPlayed = true;\n }\n if (this.media.paused === play) {\n this.media.paused = !play;\n triggerEvent.call(this, this.media, play ? 'play' : 'pause');\n }\n}\n\nconst youtube = {\n setup() {\n // Add embed class for responsive\n toggleClass(this.elements.wrapper, this.config.classNames.embed, true);\n\n // Set aspect ratio\n youtube.setAspectRatio.call(this);\n\n // Setup API\n if (is.object(window.YT) && is.function(window.YT.Player)) {\n youtube.ready.call(this);\n } else {\n // Load the API\n loadScript(this.config.urls.youtube.sdk).catch(error => {\n this.debug.warn('YouTube API failed to load', error);\n });\n\n // Setup callback for the API\n // YouTube has it's own system of course...\n window.onYouTubeReadyCallbacks = window.onYouTubeReadyCallbacks || [];\n\n // Add to queue\n window.onYouTubeReadyCallbacks.push(() => {\n youtube.ready.call(this);\n });\n\n // Set callback to process queue\n window.onYouTubeIframeAPIReady = () => {\n window.onYouTubeReadyCallbacks.forEach(callback => {\n callback();\n });\n };\n }\n },\n\n // Get the media title\n getTitle(videoId) {\n // Try via undocumented API method first\n // This method disappears now and then though...\n // https://github.com/sampotts/plyr/issues/709\n if (is.function(this.embed.getVideoData)) {\n const { title } = this.embed.getVideoData();\n\n if (is.empty(title)) {\n this.config.title = title;\n ui.setTitle.call(this);\n return;\n }\n }\n\n // Or via Google API\n const key = this.config.keys.google;\n if (is.string(key) && !is.empty(key)) {\n const url = format(this.config.urls.youtube.api, videoId, key);\n\n fetch(url)\n .then(result => {\n if (is.object(result)) {\n this.config.title = result.items[0].snippet.title;\n ui.setTitle.call(this);\n }\n })\n .catch(() => {});\n }\n },\n\n // Set aspect ratio\n setAspectRatio() {\n const ratio = this.config.ratio.split(':');\n this.elements.wrapper.style.paddingBottom = `${100 / ratio[0] * ratio[1]}%`;\n },\n\n // API ready\n ready() {\n const player = this;\n\n // Ignore already setup (race condition)\n const currentId = player.media.getAttribute('id');\n if (!is.empty(currentId) && currentId.startsWith('youtube-')) {\n return;\n }\n\n // Get the source URL or ID\n let source = player.media.getAttribute('src');\n\n // Get from
if needed\n if (is.empty(source)) {\n source = player.media.getAttribute(this.config.attributes.embed.id);\n }\n\n // Replace the