{"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/objects.js","src/js/utils/strings.js","src/js/i18n.js","src/js/utils/arrays.js","src/js/storage.js","src/js/utils/loadSprite.js","src/js/utils/time.js","src/js/controls.js","src/js/utils/fetch.js","src/js/utils/urls.js","src/js/captions.js","src/js/config/defaults.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/loadjs/dist/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","is","object","Object","number","Number","isNaN","string","String","boolean","function","Function","array","nullOrUndefined","Array","isArray","weakMap","WeakMap","nodeList","NodeList","element","Element","textNode","Text","event","Event","cue","window","TextTrackCue","VTTCue","track","TextTrack","kind","url","test","empty","length","keys","supportsPassiveListeners","supported","options","defineProperty","get","addEventListener","removeEventListener","e","toggleListener","callback","toggle","passive","capture","events","split","forEach","eventListeners","push","type","on","call","off","once","onceCallback","args","apply","triggerEvent","bubbles","detail","CustomEvent","assign","plyr","dispatchEvent","unbindListeners","item","ready","Promise","setTimeout","resolve","elements","container","then","wrap","wrapper","targets","from","reverse","index","child","cloneNode","parent","parentNode","sibling","nextSibling","appendChild","insertBefore","setAttributes","attributes","entries","filter","value","key","setAttribute","createElement","text","document","innerText","insertAfter","target","insertElement","removeElement","removeChild","emptyElement","childNodes","lastChild","replaceElement","newChild","oldChild","replaceChild","getAttributesFromSelector","sel","existingAttributes","existing","selector","s","trim","className","replace","stripped","parts","start","charAt","class","id","toggleHidden","hidden","hide","hasAttribute","removeAttribute","toggleClass","force","method","classList","contains","hasClass","matches","prototype","match","querySelectorAll","includes","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","getElements","getElement","querySelector","getFocusElement","focused","activeElement","body","trapFocus","focusable","first","last","trap","keyCode","shiftKey","focus","preventDefault","transitionEndEvent","WebkitTransition","MozTransition","OTransition","transition","find","style","undefined","repaint","offsetHeight","browser","isIE","documentMode","isWebkit","documentElement","navigator","userAgent","isIPhone","platform","isIos","defaultCodecs","support","audio","video","check","provider","playsinline","canPlayInline","api","ui","rangeInput","pip","webkitSetPresentationMode","airplay","WebKitPlaybackTargetAvailabilityEvent","mime","inputType","mediaType","isHTML5","media","canPlayType","err","textTracks","range","touch","transitions","reducedMotion","matchMedia","html5","getSources","sources","source","getAttribute","getQualityOptions","map","extend","player","set","currentTime","playing","src","onLoadedMetaData","load","play","quality","cancelRequests","config","blankVideo","debug","log","cloneDeep","JSON","parse","stringify","getDeep","path","reduce","obj","shift","generateId","prefix","Math","floor","random","format","toString","i","getPercentage","current","max","toFixed","replaceAll","RegExp","toTitleCase","toUpperCase","substr","toLowerCase","toPascalCase","toCamelCase","slice","stripHTML","fragment","createDocumentFragment","innerHTML","firstChild","getHTML","i18n","seekTime","title","dedupe","indexOf","closest","prev","curr","abs","Storage","enabled","storage","store","localStorage","getItem","json","setItem","removeItem","loadSprite","hasId","isCached","exists","getElementById","update","data","insertAdjacentElement","useStorage","cached","content","fetch","result","catch","getHours","parseInt","getMinutes","getSeconds","formatTime","time","displayHours","inverted","hours","mins","secs","controls","getIconUrl","URL","iconUrl","location","cors","host","svg4everybody","findElements","selectors","buttons","pause","restart","rewind","fastForward","mute","settings","captions","fullscreen","progress","inputs","seek","volume","display","buffer","duration","seekTooltip","classNames","tooltip","error","warn","toggleNativeControls","createIcon","namespace","iconPath","iconPrefix","icon","createElementNS","role","use","setAttributeNS","createLabel","attr","universals","join","createBadge","badge","menu","createButton","buttonType","button","label","labelPressed","iconPressed","control","controlPressed","enumerable","pressed","createRange","min","step","autocomplete","updateRangeFill","createProgress","suffixKey","played","suffix","createTime","createMenuItem","list","checked","radio","name","faux","insertAdjacentHTML","forceHours","updateTimeDisplay","updateVolume","setRange","muted","updateProgress","setProgress","getElementsByTagName","nodeValue","buffered","percent","setProperty","updateSeekTooltip","tooltips","clientRect","getBoundingClientRect","visible","width","pageX","left","parseFloat","timeUpdate","invert","invertTime","seeking","durationUpdate","hasDuration","displayDuration","paused","toggleTab","setting","tabs","setQualityMenu","panes","checkMenu","getBadge","sort","a","b","sorting","getLabel","updateSetting","pane","currentTrack","default","setCaptionsMenu","tracks","getTracks","toggled","language","unshift","bind","setSpeedMenu","speed","isVimeo","values","some","tab","toggleMenu","form","show","isMenuItem","isButton","stopPropagation","open","getTabSize","clone","position","opacity","scrollWidth","height","scrollHeight","showTab","isTab","size","restore","propertyName","create","tabindex","inner","home","back","inject","props","seektime","labels","responseType","reject","request","XMLHttpRequest","responseText","response","Error","statusText","send","parseUrl","safe","parser","href","buildUrlParams","params","URLSearchParams","setup","isVideo","isYouTube","hostname","protocol","createObjectURL","blob","languages","userLanguage","active","trackEvents","meta","currentTrackNode","languageExists","mode","updateCues","setLanguage","activeClass","findTrack","embed","enableTextTrack","has","sortIsDefault","sorted","every","getCurrentTrack","cues","activeCues","getCueAsHTML","cueText","changed","caption","defaults","autoplay","autopause","toggleInvert","ratio","clickToPlay","hideControls","resetOnEnd","disableContextMenu","loop","selected","keyboard","global","fallback","iosNative","seekLabel","unmute","enableCaptions","disableCaptions","enterFullscreen","exitFullscreen","frameTitle","menuBack","normal","end","all","reset","disabled","advertisement","qualityBadge","urls","vimeo","sdk","iframe","youtube","googleIMA","listeners","editable","embedContainer","poster","posterEnabled","ads","stopped","loading","hover","isTouch","uiSupported","noTransition","tabFocus","google","publisherId","providers","types","getProviderByUrl","noop","Console","console","onChange","toggleFallback","scrollPosition","x","scrollX","y","scrollY","scrollTo","overflow","Fullscreen","property","native","webkitEnterFullscreen","requestFullscreen","webkitExitFullscreen","cancelFullScreen","action","enter","exit","fullscreenElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","prefixes","pre","loadImage","minWidth","image","Image","handler","onload","onerror","naturalWidth","addStyleHook","build","checkPlaying","setTitle","setPoster","isEmbed","togglePoster","enable","backgroundImage","backgroundSize","toggleControls","checkLoading","clearTimeout","timers","Listeners","lastKey","handleKey","firstTouch","code","which","repeat","altKey","ctrlKey","metaKey","seekByKey","togglePlay","increaseVolume","decreaseVolume","forward","toggleCaptions","delay","hasAudio","initialized","managerPromise","isAudio","ended","proxyEvents","concat","inputEvent","proxy","defaultHandler","customHandlerKey","customHandler","hasCustomHandler","returned","showHomeTab","currentTarget","eventType","done","seekTo","webkitDirectionInvertedFromDevice","direction","deltaY","deltaX","define","this","loadScript","loadjs","success","parseId","regex","$2","getAspectRatio","getRatio","w","h","assurePlaybackState","hasPlayed","setAspectRatio","Vimeo","padding","paddingBottom","offset","transform","byline","portrait","transparent","gesture","thumbnail_large","pathname","Player","disableTextTrack","stop","restorePause","setVolume","setCurrentTime","setPlaybackRate","setLoop","currentSrc","getVideoUrl","getVideoWidth","getVideoHeight","dimensions","setAutopause","state","getVideoTitle","getCurrentTime","getDuration","getTextTracks","strippedCues","getPaused","frame","seconds","mapQualityUnit","qualities","hd2160","hd1440","hd1080","hd720","large","medium","small","tiny","entry","mapQualityUnits","levels","level","YT","onYouTubeReadyCallbacks","onYouTubeIframeAPIReady","getTitle","videoId","getVideoData","items","snippet","currentId","startsWith","posterSrc","playerVars","rel","showinfo","iv_load_policy","modestbranding","disablekb","widget_referrer","cc_load_policy","cc_lang_pref","onError","message","onPlaybackQualityChange","onPlaybackRateChange","instance","playbackRate","getPlaybackRate","onReady","playVideo","pauseVideo","stopVideo","getPlaybackQuality","setPlaybackQuality","getAvailablePlaybackRates","clearInterval","buffering","setInterval","getVideoLoadedFraction","lastBuffered","onStateChange","seeked","getAvailableQualityLevels","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","splice","resize","ViewMode","NORMAL","initialize","init","adError","zIndex","destroy","handlers","AV_PUBLISHERID","AV_CHANNELID","AV_URL","cb","Date","now","AV_WIDTH","AV_HEIGHT","AV_CDIM2","base","insertElements","attribute","change","tagName","crossorigin","Plyr","failed","jQuery","original","searchParams","truthy","webkitShowPlaybackTargetPicker","isHidden","hiding","eventName","soft","unload","inputIsValid","fauxDuration","mozHasAudio","webkitAudioDecodedByteCount","audioTracks","states","inline","webkitPresentationMode","t"],"mappings":"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","file":"plyr.js","sourcesContent":["// ==========================================================================\n// Type checking utils\n// ==========================================================================\n\nconst getConstructor = input => (input !== null && typeof input !== 'undefined' ? input.constructor : null);\n\nconst instanceOf = (input, constructor) => Boolean(input && constructor && input instanceof constructor);\n\nconst is = {\n object(input) {\n return getConstructor(input) === Object;\n },\n number(input) {\n return getConstructor(input) === Number && !Number.isNaN(input);\n },\n string(input) {\n return getConstructor(input) === String;\n },\n boolean(input) {\n return getConstructor(input) === Boolean;\n },\n function(input) {\n return getConstructor(input) === Function;\n },\n array(input) {\n return !is.nullOrUndefined(input) && Array.isArray(input);\n },\n weakMap(input) {\n return instanceOf(input, WeakMap);\n },\n nodeList(input) {\n return instanceOf(input, NodeList);\n },\n element(input) {\n return instanceOf(input, Element);\n },\n textNode(input) {\n return getConstructor(input) === Text;\n },\n event(input) {\n return instanceOf(input, Event);\n },\n cue(input) {\n return instanceOf(input, window.TextTrackCue) || instanceOf(input, window.VTTCue);\n },\n track(input) {\n return instanceOf(input, TextTrack) || (!is.nullOrUndefined(input) && is.string(input.kind));\n },\n url(input) {\n return (\n !is.nullOrUndefined(input) &&\n /(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-/]))?/.test(input)\n );\n },\n nullOrUndefined(input) {\n return input === null || typeof input === 'undefined';\n },\n empty(input) {\n return (\n is.nullOrUndefined(input) ||\n ((is.string(input) || is.array(input) || is.nodeList(input)) && !input.length) ||\n (is.object(input) && !Object.keys(input).length)\n );\n },\n};\n\nexport default is;\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 target.parentNode.insertBefore(element, target.nextSibling);\n}\n\n// Insert a DocumentFragment\nexport function insertElement(type, parent, attributes, text) {\n // Inject the new \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 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.hasAttribute('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.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 null;\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// Get the focused element\nexport function getFocusElement() {\n let focused = document.activeElement;\n\n if (!focused || focused === document.body) {\n focused = null;\n } else {\n focused = document.querySelector(':focus');\n }\n\n return focused;\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 = getFocusElement();\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// 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 toggleHidden(element, true);\n element.offsetHeight; // eslint-disable-line\n toggleHidden(element, false);\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 only currently\n pip: (() => !browser.isIPhone && is.function(createElement('video').webkitSetPresentationMode))(),\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.filter(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, playing } = player;\n\n // Set new source\n player.media.src = source.getAttribute('src');\n\n // Restore time\n const onLoadedMetaData = () => {\n player.currentTime = currentTime;\n };\n player.once('loadedmetadata', onLoadedMetaData);\n\n // Load new source\n player.media.load();\n\n // Resume playing\n if (playing) {\n player.play();\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// 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 './utils/is';\nimport { getDeep } from './utils/objects';\nimport { replaceAll } from './utils/strings';\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 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// 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// 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// Sprite loader\n// ==========================================================================\n\nimport Storage from './../storage';\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// ==========================================================================\n\nimport captions from './captions';\nimport html5 from './html5';\nimport i18n from './i18n';\nimport support from './support';\nimport { repaint, transitionEndEvent } from './utils/animation';\nimport { dedupe } from './utils/arrays';\nimport browser from './utils/browser';\nimport {\n createElement,\n emptyElement,\n getAttributesFromSelector,\n getElement,\n getElements,\n hasClass,\n removeElement,\n setAttributes,\n toggleClass,\n toggleHidden,\n matches,\n} from './utils/elements';\nimport { off, on } from './utils/events';\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 } else {\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', path);\n }\n\n // Add to \n icon.appendChild(use);\n\n return icon;\n },\n\n // Create hidden text label\n createLabel(type, attr = {}) {\n // Skip i18n for abbreviations and brand names\n const universals = {\n pip: 'PIP',\n airplay: 'AirPlay',\n };\n const text = universals[type] || i18n.get(type, this.config);\n\n const attributes = Object.assign({}, attr, {\n class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' '),\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 })\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 controls from './../controls';\nimport ui from './../ui';\nimport { dedupe } from './../utils/arrays';\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// Standardise YouTube quality unit\nfunction mapQualityUnit(input) {\n const qualities = {\n hd2160: 2160,\n hd1440: 1440,\n hd1080: 1080,\n hd720: 720,\n large: 480,\n medium: 360,\n small: 240,\n tiny: 144,\n };\n\n const entry = Object.entries(qualities).find(entry => entry.includes(input));\n\n if (entry) {\n // Get the match corresponding to the input\n return entry.find(value => value !== input);\n }\n\n return 'default';\n}\n\nfunction mapQualityUnits(levels) {\n if (is.empty(levels)) {\n return levels;\n }\n\n return dedupe(levels.map(level => mapQualityUnit(level)));\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