From 1d51b287014697701b78c883f70c9963f4253d3c Mon Sep 17 00:00:00 2001 From: Sam Potts Date: Sat, 26 Jan 2019 22:45:47 +1100 Subject: [PATCH] Tweaks --- demo/src/js/demo.js | 3 -- dist/plyr.js | 80 ++++++++++++++++------------- dist/plyr.js.map | 2 +- dist/plyr.min.js | 2 +- dist/plyr.min.js.map | 2 +- dist/plyr.polyfilled.js | 80 ++++++++++++++++------------- dist/plyr.polyfilled.js.map | 2 +- dist/plyr.polyfilled.min.js | 2 +- dist/plyr.polyfilled.min.js.map | 2 +- readme.md | 6 ++- src/js/config/defaults.js | 12 +++-- src/js/plugins/previewThumbnails.js | 4 +- src/js/plugins/vimeo.js | 28 +++++----- src/js/plugins/youtube.js | 40 +++++++-------- src/js/plyr.js | 2 +- src/js/utils/events.js | 8 +-- 16 files changed, 149 insertions(+), 126 deletions(-) diff --git a/demo/src/js/demo.js b/demo/src/js/demo.js index 5df96208..8520615a 100644 --- a/demo/src/js/demo.js +++ b/demo/src/js/demo.js @@ -85,9 +85,6 @@ import Raven from 'raven-js'; 'https://cdn.plyr.io/static/demo/thumbs/240p.vtt', ], }, - vimeo: { - transparent: true, - }, }); // Expose for tinkering in the console diff --git a/dist/plyr.js b/dist/plyr.js index 6e895525..f970ef18 100644 --- a/dist/plyr.js +++ b/dist/plyr.js @@ -303,20 +303,22 @@ typeof navigator === "object" && (function (global, factory) { } // Bind once-only event handler function once(element) { + var _this2 = this; + var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; var callback = arguments.length > 2 ? arguments[2] : undefined; var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - function onceCallback() { + var onceCallback = function onceCallback() { off(element, events, onceCallback, passive, capture); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } - callback.apply(this, args); - } + callback.apply(_this2, args); + }; toggleListener.call(this, element, events, onceCallback, true, passive, capture); } // Trigger event @@ -356,10 +358,10 @@ typeof navigator === "object" && (function (global, factory) { } // Run method when / if player is ready function ready() { - var _this2 = this; + var _this3 = this; return new Promise(function (resolve) { - return _this2.ready ? setTimeout(resolve, 0) : on.call(_this2, _this2.elements.container, 'ready', resolve); + return _this3.ready ? setTimeout(resolve, 0) : on.call(_this3, _this3.elements.container, 'ready', resolve); }).then(function () {}); } @@ -3469,12 +3471,31 @@ typeof navigator === "object" && (function (global, factory) { publisherId: '', tagUrl: '' }, - // YouTube nocookies mode - noCookie: false, // Preview Thumbnails plugin previewThumbnails: { enabled: false, src: '' + }, + // Vimeo plugin + vimeo: { + byline: false, + portrait: false, + title: false, + speed: true, + transparent: false + }, + // YouTube plugin + youtube: { + noCookie: false, + // Whether to use an alternative version of YouTube without cookies + rel: 0, + // No related vids + showinfo: 0, + // Hide info + iv_load_policy: 3, + // Hide annotations + modestbranding: 1 // Hide logos as much as possible (they still show one in the corner when paused) + } }; @@ -5214,21 +5235,16 @@ typeof navigator === "object" && (function (global, factory) { ready: function ready$$1() { var _this2 = this; - var player = this; // Get Vimeo params for the iframe + var player = this; + var config = player.config.vimeo; // Get Vimeo params for the iframe - var options = { + var params = buildUrlParams(extend({}, { loop: player.config.loop.active, autoplay: player.autoplay, muted: player.muted, - byline: false, - portrait: false, - title: false, - speed: true, - transparent: 0, gesture: 'media', playsinline: !this.config.fullscreen.iosNative - }; - var params = buildUrlParams(options); // Get the source URL or ID + }, config)); // Get the source URL or ID var source = player.media.getAttribute('src'); // Get from
if needed @@ -5642,38 +5658,30 @@ typeof navigator === "object" && (function (global, factory) { if (!posterSrc.includes('maxres')) { player.elements.poster.style.backgroundSize = 'cover'; } - }).catch(function () {}); // Setup instance + }).catch(function () {}); + var config = player.config.youtube; // Setup instance // https://developers.google.com/youtube/iframe_api_reference player.embed = new window.YT.Player(id, { videoId: videoId, - host: player.config.noCookie ? 'https://www.youtube-nocookie.com' : undefined, - playerVars: { + host: config.noCookie ? 'https://www.youtube-nocookie.com' : undefined, + playerVars: extend({}, { autoplay: player.config.autoplay ? 1 : 0, // Autoplay hl: player.config.hl, // iframe interface language controls: player.supported.ui ? 0 : 1, // Only show controls if not fully supported - rel: 0, - // No related vids - showinfo: 0, - // Hide info - iv_load_policy: 3, - // Hide annotations - modestbranding: 1, - // Hide logos as much as possible (they still show one in the corner when paused) disablekb: 1, // Disable keyboard as we handle it - playsinline: 1, + playsinline: !player.config.fullscreen.iosNative ? 1 : 0, // Allow iOS inline playback - // Tracking for stats - // origin: window ? `${window.location.protocol}//${window.location.host}` : null, - widget_referrer: window ? window.location.href : null, // Captions are flaky on YouTube cc_load_policy: player.captions.active ? 1 : 0, - cc_lang_pref: player.config.captions.language - }, + cc_lang_pref: player.config.captions.language, + // Tracking for stats + widget_referrer: window ? window.location.href : null + }, config), events: { onError: function onError(event) { // YouTube may fire onError twice, so only handle it once @@ -6801,8 +6809,8 @@ typeof navigator === "object" && (function (global, factory) { }); // Show scrubbing preview on.call(this.player, this.player.elements.progress, 'mousedown touchstart', function (event) { - // Only act on left mouse button (0), or touch device (!event.button) - if (!event.button || event.button === 0) { + // Only act on left mouse button (0), or touch device (event.button is false) + if (event.button === false || event.button === 0) { _this4.mouseDown = true; // Wait until media has a duration if (_this4.player.media.duration) { @@ -7502,7 +7510,7 @@ typeof navigator === "object" && (function (global, factory) { if (this.isYouTube) { this.config.playsinline = truthy.includes(url.searchParams.get('playsinline')); - this.config.hl = url.searchParams.get('hl'); // TODO: Should this be setting language? + this.config.youtube.hl = url.searchParams.get('hl'); // TODO: Should this be setting language? } else { this.config.playsinline = true; } diff --git a/dist/plyr.js.map b/dist/plyr.js.map index 245055ae..c34e5e57 100644 --- a/dist/plyr.js.map +++ b/dist/plyr.js.map @@ -1 +1 @@ -{"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/utils/style.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/plugins/previewThumbnails.js","src/js/source.js","src/js/plyr.js"],"names":["getConstructor","input","constructor","instanceOf","Boolean","isNullOrUndefined","isObject","Object","isNumber","Number","isNaN","isString","String","isBoolean","isFunction","Function","isArray","Array","isWeakMap","WeakMap","isNodeList","NodeList","isElement","Element","isTextNode","Text","isEvent","Event","isKeyboardEvent","KeyboardEvent","isCue","window","TextTrackCue","VTTCue","isTrack","TextTrack","kind","isEmpty","length","keys","isUrl","URL","string","startsWith","hostname","e","nullOrUndefined","object","number","boolean","function","array","weakMap","nodeList","element","textNode","event","keyboardEvent","cue","track","url","empty","supportsPassiveListeners","supported","options","defineProperty","get","addEventListener","removeEventListener","toggleListener","callback","toggle","passive","capture","is","events","split","forEach","type","eventListeners","push","on","call","off","once","onceCallback","args","apply","triggerEvent","bubbles","detail","CustomEvent","assign","plyr","dispatchEvent","unbindListeners","item","ready","Promise","resolve","setTimeout","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","s","selector","trim","className","replace","stripped","parts","start","charAt","class","id","toggleHidden","hidden","hide","removeAttribute","toggleClass","force","map","method","classList","contains","hasClass","matches","match","querySelectorAll","includes","prototype","getElements","getElement","querySelector","trapFocus","focusable","first","last","trap","keyCode","focused","activeElement","shiftKey","focus","preventDefault","setFocus","tabFocus","preventScroll","config","classNames","transitionEndEvent","WebkitTransition","MozTransition","OTransition","transition","find","style","undefined","repaint","offsetHeight","browser","isIE","documentMode","isEdge","navigator","userAgent","isWebkit","documentElement","test","isIPhone","platform","isIos","defaultCodecs","support","audio","video","check","provider","playsinline","canPlayInline","api","ui","rangeInput","pip","webkitSetPresentationMode","pictureInPictureEnabled","disablePictureInPicture","airplay","WebKitPlaybackTargetAvailabilityEvent","mime","mediaType","isHTML5","media","canPlayType","textTracks","range","touch","transitions","reducedMotion","matchMedia","html5","getSources","sources","source","getAttribute","getQualityOptions","extend","player","set","currentTime","paused","preload","readyState","src","play","load","quality","cancelRequests","blankVideo","debug","log","dedupe","indexOf","closest","reduce","prev","curr","Math","abs","cloneDeep","JSON","parse","stringify","getDeep","path","obj","shift","generateId","prefix","floor","random","format","toString","i","getPercentage","current","max","toFixed","replaceAll","RegExp","toTitleCase","toUpperCase","substr","toLowerCase","toPascalCase","toCamelCase","slice","stripHTML","fragment","createDocumentFragment","innerHTML","firstChild","getHTML","resources","vimeo","youtube","i18n","seekTime","title","Storage","enabled","storage","store","localStorage","getItem","json","setItem","removeItem","fetch","responseType","reject","request","XMLHttpRequest","responseText","response","Error","status","open","send","loadSprite","hasId","isCached","exists","getElementById","update","data","body","insertAdjacentElement","useStorage","cached","content","result","catch","getHours","trunc","getMinutes","getSeconds","formatTime","time","displayHours","inverted","hours","mins","secs","controls","getIconUrl","iconUrl","location","cors","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","namespace","iconPath","iconPrefix","icon","createElementNS","role","use","setAttributeNS","createLabel","attr","join","createBadge","badge","menu","createButton","buttonType","props","label","labelPressed","iconPressed","control","button","createRange","min","step","autocomplete","updateRangeFill","createProgress","suffixKey","played","suffix","createTime","bindMenuItemShortcuts","menuItem","which","stopPropagation","isRadioButton","showMenuPanel","nextElementSibling","firstElementChild","previousElementSibling","lastElementChild","focusFirstMenuItem","createMenuItem","list","checked","flex","enumerable","children","node","listeners","bind","currentTrack","speed","parseFloat","forceHours","updateTimeDisplay","updateVolume","setRange","muted","pressed","updateProgress","setProgress","getElementsByTagName","nodeValue","buffered","percent","setProperty","updateSeekTooltip","tooltips","clientRect","getBoundingClientRect","visible","width","pageX","left","timeUpdate","invert","invertTime","seeking","durationUpdate","hasDuration","displayDuration","toggleMenuButton","setting","updateSetting","pane","panels","default","getLabel","setQualityMenu","checkMenu","getBadge","sort","a","b","sorting","setCaptionsMenu","tracks","getTracks","toggled","language","unshift","setSpeedMenu","isVimeo","values","some","popup","firstItem","toggleMenu","show","isMenuItem","getMenuSize","tab","clone","position","opacity","scrollWidth","height","scrollHeight","size","restore","propertyName","setDownloadLink","download","create","inner","home","backButton","href","urls","isEmbed","inject","seektime","insertMethod","addProperty","controlPressed","labels","parseUrl","safe","parser","buildUrlParams","params","URLSearchParams","setup","isVideo","isYouTube","protocol","blob","createObjectURL","browserLanguages","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","sdk","iframe","googleIMA","editable","embedContainer","poster","posterEnabled","ads","playing","stopped","loading","hover","isTouch","uiSupported","noTransition","previewThumbnails","thumbContainer","thumbContainerShown","imageContainer","timeContainer","scrubbingContainer","scrubbingContainerShown","google","publisherId","tagUrl","noCookie","inactive","providers","types","getProviderByUrl","noop","Console","console","onChange","toggleFallback","scrollPosition","x","scrollX","y","scrollY","scrollTo","overflow","viewport","head","property","hasProperty","cleanupViewport","part","Fullscreen","forceFallback","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","togglePoster","enable","err","backgroundImage","backgroundSize","toggleControls","checkLoading","clearTimeout","timers","recentTouchSeek","lastSeekTime","Date","now","setAspectRatio","padding","paddingBottom","offset","transform","Listeners","lastKey","focusTimer","lastKeyDown","handleKey","setTabFocus","firstTouch","code","repeat","altKey","ctrlKey","metaKey","seekByKey","togglePlay","increaseVolume","decreaseVolume","forward","toggleCaptions","usingNative","timeStamp","removeCurrent","wasKeyDown","delay","setGutter","videoWidth","videoHeight","maxWidth","margin","setPlayerSize","measure","rect","resized","isEnter","hasAudio","initialized","managerPromise","isAudio","ended","proxy","proxyEvents","concat","defaultHandler","customHandlerKey","customHandler","hasCustomHandler","returned","inputEvent","currentTarget","attribute","hasAttribute","done","seekTo","webkitDirectionInvertedFromDevice","deltaX","deltaY","direction","sign","this","loadScript","loadjs","success","parseId","regex","$2","assurePlaybackState","hasPlayed","Vimeo","byline","portrait","transparent","gesture","thumbnail_large","pathname","Player","disableTextTrack","stop","restorePause","setVolume","setCurrentTime","setPlaybackRate","name","setLoop","currentSrc","getVideoUrl","getVideoWidth","getVideoHeight","dimensions","setAutopause","state","getVideoTitle","getCurrentTime","getDuration","getTextTracks","strippedCues","getPaused","frame","seconds","parseInt","YT","onYouTubeReadyCallbacks","onYouTubeIframeAPIReady","getTitle","videoId","getVideoData","items","snippet","currentId","posterSrc","playerVars","hl","rel","showinfo","iv_load_policy","modestbranding","disablekb","widget_referrer","cc_load_policy","cc_lang_pref","onError","message","onPlaybackRateChange","instance","playbackRate","getPlaybackRate","onReady","playVideo","pauseVideo","stopVideo","getAvailablePlaybackRates","clearInterval","buffering","setInterval","getVideoLoadedFraction","lastBuffered","onStateChange","seeked","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","linearAdSlotWidth","offsetWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearAdSlotHeight","forceNonLinearFullSlot","setAdWillPlayMuted","getRemainingTime","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","enablePreloading","getAdsManager","getCuePoints","cuePoint","seekElement","cuePercentage","AdEvent","onAdEvent","ad","getAd","adData","getAdData","LOADED","pollCountdown","isLinear","ALL_ADS_COMPLETED","loadAds","CONTENT_PAUSE_REQUESTED","pauseContent","CONTENT_RESUME_REQUESTED","resumeContent","STARTED","MIDPOINT","COMPLETE","IMPRESSION","CLICK","LOG","adError","getMessage","cancel","contentComplete","seekedTime","discardAdBreak","splice","resize","ViewMode","NORMAL","initialize","init","zIndex","destroy","handlers","AV_PUBLISHERID","AV_CHANNELID","AV_URL","cb","AV_WIDTH","AV_HEIGHT","AV_CDIM2","base","parseVtt","vttDataString","processedList","frames","lines","line","startTime","matchTimes","endTime","lineSplit","w","h","PreviewThumbnails","thumbnails","lastMousemoveEventTime","mouseDown","loadedImages","thumb","scrubbing","getThumbnails","render","determineContainerAutoSizing","promises","u","getThumbnail","thumbnail","urlPrefix","substring","lastIndexOf","tempImage","naturalHeight","percentage","mousePosX","showImageAtCurrentTime","toggleThumbContainer","toggleScrubbingContainer","timeAtLastTimeupdate","ceil","setScrubbingContainerSize","setThumbContainerSizeAndPos","thumbNum","findIndex","hasThumb","qualityIndex","showingThumb","thumbFilename","thumbUrl","currentImageElement","dataset","filename","loadingImage","usingSprites","previewImage","showingThumbFilename","showImage","removeOldImages","newImage","setImageSizeAndOffset","currentImageContainer","preloadNearby","getHigherQuality","currentImage","tagName","removeDelay","deleting","oldThumbFilename","thumbnailsClone","foundOne","newThumbFilename","thumbURL","currentQualityIndex","previewImageHeight","thumbContainerHeight","clearShowing","clientHeight","sizeSpecifiedInCSS","thumbWidth","thumbAspectRatio","setThumbContainerPos","seekbarRect","plyrRect","minVal","maxVal","right","clientWidth","previewPos","multiplier","top","currentScrubbingImageElement","currentThumbnailImageElement","insertElements","change","crossorigin","Plyr","failed","jQuery","original","search","truthy","searchParams","tabindex","webkitShowPlaybackTargetPicker","isHidden","hiding","eventName","soft","unload","inputIsValid","fauxDuration","realDuration","Infinity","mozHasAudio","webkitAudioDecodedByteCount","audioTracks","updateStorage","requestPictureInPicture","exitPictureInPicture","webkitPresentationMode","pictureInPictureElement","inline","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);\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({ preventScroll: true });\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 isEdge: window.navigator.userAgent.includes('Edge'),\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(input) {\n if (is.empty(input)) {\n return false;\n }\n\n const [mediaType] = input.split('/');\n let type = input;\n\n // Verify we're using HTML5 and there's no media type mismatch\n if (!this.isHTML5 || mediaType !== this.type) {\n return false;\n }\n\n // Add codec if required\n if (Object.keys(defaultCodecs).includes(type)) {\n type += `; codecs=\"${defaultCodecs[input]}\"`;\n }\n\n try {\n return Boolean(type && this.media.canPlayType(type).replace(/no/, ''));\n } catch (e) {\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';\nimport is from './utils/is';\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 (if type is specified)\n return sources.filter(source => {\n const type = source.getAttribute('type');\n\n if (is.empty(type)) {\n return true;\n }\n\n return support.mime.call(this, type);\n });\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 => Math.trunc((value / 60 / 60) % 60, 10);\nexport const getMinutes = value => Math.trunc((value / 60) % 60, 10);\nexport const getSeconds = value => Math.trunc(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 {\n createElement,\n emptyElement,\n getAttributesFromSelector,\n getElement,\n getElements,\n hasClass,\n matches,\n removeElement,\n setAttributes,\n setFocus,\n toggleClass,\n toggleHidden,\n} 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 if (this.isVimeo && this.supported.ui) {\n const height = 240;\n const offset = (height - padding) / (height / 50);\n this.media.style.transform = `translateY(-${offset}%)`;\n }\n\n return { padding, ratio };\n}\n\nexport default { setAspectRatio };\n","// ==========================================================================\n// Plyr Event Listeners\n// ==========================================================================\n\nimport controls from './controls';\nimport ui from './ui';\nimport { repaint } from './utils/animation';\nimport browser from './utils/browser';\nimport { getElement, getElements, matches, toggleClass, toggleHidden } from './utils/elements';\nimport { off, on, once, toggleListener, triggerEvent } from './utils/events';\nimport is from './utils/is';\nimport { setAspectRatio } from './utils/style';\n\nclass Listeners {\n constructor(player) {\n this.player = player;\n this.lastKey = null;\n this.focusTimer = null;\n this.lastKeyDown = null;\n\n this.handleKey = this.handleKey.bind(this);\n this.toggleMenu = this.toggleMenu.bind(this);\n this.setTabFocus = this.setTabFocus.bind(this);\n this.firstTouch = this.firstTouch.bind(this);\n }\n\n // Handle key presses\n handleKey(event) {\n const { player } = this;\n const { elements } = player;\n const code = event.keyCode ? event.keyCode : event.which;\n const pressed = event.type === 'keydown';\n const repeat = pressed && code === this.lastKey;\n\n // Bail if a modifier key is set\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) {\n return;\n }\n\n // If the event is bubbled from the media element\n // Firefox doesn't get the keycode for whatever reason\n if (!is.number(code)) {\n return;\n }\n\n // Seek by the number keys\n const seekByKey = () => {\n // Divide the max duration into 10th's and times by the number value\n player.currentTime = (player.duration / 10) * (code - 48);\n };\n\n // Handle the key on keydown\n // Reset on keyup\n if (pressed) {\n // Check focused element\n // and if the focused element is not editable (e.g. text input)\n // and any that accept key input http://webaim.org/techniques/keyboard/\n const focused = document.activeElement;\n if (is.element(focused)) {\n const { editable } = player.config.selectors;\n const { seek } = elements.inputs;\n\n if (focused !== seek && matches(focused, editable)) {\n return;\n }\n\n if (event.which === 32 && matches(focused, 'button, [role^=\"menuitem\"]')) {\n return;\n }\n }\n\n // Which keycodes should we prevent default\n const preventDefault = [32, 37, 38, 39, 40, 48, 49, 50, 51, 52, 53, 54, 56, 57, 67, 70, 73, 75, 76, 77, 79];\n\n // If the code is found prevent default (e.g. prevent scrolling for arrows)\n if (preventDefault.includes(code)) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n switch (code) {\n case 48:\n case 49:\n case 50:\n case 51:\n case 52:\n case 53:\n case 54:\n case 55:\n case 56:\n case 57:\n // 0-9\n if (!repeat) {\n seekByKey();\n }\n break;\n\n case 32:\n case 75:\n // Space and K key\n if (!repeat) {\n player.togglePlay();\n }\n break;\n\n case 38:\n // Arrow up\n player.increaseVolume(0.1);\n break;\n\n case 40:\n // Arrow down\n player.decreaseVolume(0.1);\n break;\n\n case 77:\n // M key\n if (!repeat) {\n player.muted = !player.muted;\n }\n break;\n\n case 39:\n // Arrow forward\n player.forward();\n break;\n\n case 37:\n // Arrow back\n player.rewind();\n break;\n\n case 70:\n // F key\n player.fullscreen.toggle();\n break;\n\n case 67:\n // C key\n if (!repeat) {\n player.toggleCaptions();\n }\n break;\n\n case 76:\n // L key\n player.loop = !player.loop;\n break;\n\n /* case 73:\n this.setLoop('start');\n break;\n\n case 76:\n this.setLoop();\n break;\n\n case 79:\n this.setLoop('end');\n break; */\n\n default:\n break;\n }\n\n // Escape is handle natively when in full screen\n // So we only need to worry about non native\n if (code === 27 && !player.fullscreen.usingNative && player.fullscreen.active) {\n player.fullscreen.toggle();\n }\n\n // Store last code for next cycle\n this.lastKey = code;\n } else {\n this.lastKey = null;\n }\n }\n\n // Toggle menu\n toggleMenu(event) {\n controls.toggleMenu.call(this.player, event);\n }\n\n // Device is touch enabled\n firstTouch() {\n const { player } = this;\n const { elements } = player;\n\n player.touch = true;\n\n // Add touch class\n toggleClass(elements.container, player.config.classNames.isTouch, true);\n }\n\n setTabFocus(event) {\n const { player } = this;\n const { elements } = player;\n\n clearTimeout(this.focusTimer);\n\n // Ignore any key other than tab\n if (event.type === 'keydown' && event.which !== 9) {\n return;\n }\n\n // Store reference to event timeStamp\n if (event.type === 'keydown') {\n this.lastKeyDown = event.timeStamp;\n }\n\n // Remove current classes\n const removeCurrent = () => {\n const className = player.config.classNames.tabFocus;\n const current = getElements.call(player, `.${className}`);\n toggleClass(current, className, false);\n };\n\n // Determine if a key was pressed to trigger this event\n const wasKeyDown = event.timeStamp - this.lastKeyDown <= 20;\n\n // Ignore focus events if a key was pressed prior\n if (event.type === 'focus' && !wasKeyDown) {\n return;\n }\n\n // Remove all current\n removeCurrent();\n\n // Delay the adding of classname until the focus has changed\n // This event fires before the focusin event\n this.focusTimer = setTimeout(() => {\n const focused = document.activeElement;\n\n // Ignore if current focus element isn't inside the player\n if (!elements.container.contains(focused)) {\n return;\n }\n\n toggleClass(document.activeElement, player.config.classNames.tabFocus, true);\n }, 10);\n }\n\n // Global window & document listeners\n global(toggle = true) {\n const { player } = this;\n\n // Keyboard shortcuts\n if (player.config.keyboard.global) {\n toggleListener.call(player, window, 'keydown keyup', this.handleKey, toggle, false);\n }\n\n // Click anywhere closes menu\n toggleListener.call(player, document.body, 'click', this.toggleMenu, toggle);\n\n // Detect touch by events\n once.call(player, document.body, 'touchstart', this.firstTouch);\n\n // Tab focus detection\n toggleListener.call(player, document.body, 'keydown focus blur', this.setTabFocus, toggle, false, true);\n }\n\n // Container listeners\n container() {\n const { player } = this;\n const { config, elements, timers } = player;\n\n // Keyboard shortcuts\n if (!config.keyboard.global && config.keyboard.focused) {\n on.call(player, elements.container, 'keydown keyup', this.handleKey, false);\n }\n\n // Toggle controls on mouse events and entering fullscreen\n on.call(\n player,\n elements.container,\n 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen',\n event => {\n const { controls } = elements;\n\n // Remove button states for fullscreen\n if (controls && event.type === 'enterfullscreen') {\n controls.pressed = false;\n controls.hover = false;\n }\n\n // Show, then hide after a timeout unless another control event occurs\n const show = ['touchstart', 'touchmove', 'mousemove'].includes(event.type);\n\n let delay = 0;\n\n if (show) {\n ui.toggleControls.call(player, true);\n // Use longer timeout for touch devices\n delay = player.touch ? 3000 : 2000;\n }\n\n // Clear timer\n clearTimeout(timers.controls);\n\n // Set new timer to prevent flicker when seeking\n timers.controls = setTimeout(() => ui.toggleControls.call(player, false), delay);\n },\n );\n\n // Force edge to repaint on exit fullscreen\n // TODO: Fix weird bug where Edge doesn't re-draw when exiting fullscreen\n /* if (browser.isEdge) {\n on.call(player, elements.container, 'exitfullscreen', () => {\n setTimeout(() => repaint(elements.container), 100);\n });\n } */\n\n // Set a gutter for Vimeo\n const setGutter = (ratio, padding, toggle) => {\n if (!player.isVimeo) {\n return;\n }\n\n const target = player.elements.wrapper.firstChild;\n const [, height] = ratio.split(':').map(Number);\n const [videoWidth, videoHeight] = player.embed.ratio.split(':').map(Number);\n\n target.style.maxWidth = toggle ? `${(height / videoHeight) * videoWidth}px` : null;\n target.style.margin = toggle ? '0 auto' : null;\n };\n\n // Resize on fullscreen change\n const setPlayerSize = measure => {\n // If we don't need to measure the viewport\n if (!measure) {\n return setAspectRatio.call(player);\n }\n\n const rect = elements.container.getBoundingClientRect();\n const { width, height } = rect;\n\n return setAspectRatio.call(player, `${width}:${height}`);\n };\n\n const resized = () => {\n window.clearTimeout(timers.resized);\n timers.resized = window.setTimeout(setPlayerSize, 50);\n };\n\n on.call(player, elements.container, 'enterfullscreen exitfullscreen', event => {\n const { target, usingNative } = player.fullscreen;\n\n // Ignore for iOS native\n if (!player.isEmbed || target !== elements.container) {\n return;\n }\n\n const isEnter = event.type === 'enterfullscreen';\n\n // Set the player size when entering fullscreen to viewport size\n const { padding, ratio } = setPlayerSize(isEnter);\n\n // Set Vimeo gutter\n setGutter(ratio, padding, isEnter);\n\n // If not using native fullscreen, we need to check for resizes of viewport\n if (!usingNative) {\n if (isEnter) {\n on.call(player, window, 'resize', resized);\n } else {\n off.call(player, window, 'resize', resized);\n }\n }\n });\n }\n\n // Listen for media events\n media() {\n const { player } = this;\n const { elements } = player;\n\n // Time change on media\n on.call(player, player.media, 'timeupdate seeking seeked', event => controls.timeUpdate.call(player, event));\n\n // Display duration\n on.call(player, player.media, 'durationchange loadeddata loadedmetadata', event =>\n controls.durationUpdate.call(player, event),\n );\n\n // Check for audio tracks on load\n // We can't use `loadedmetadata` as it doesn't seem to have audio tracks at that point\n on.call(player, player.media, 'canplay loadeddata', () => {\n toggleHidden(elements.volume, !player.hasAudio);\n toggleHidden(elements.buttons.mute, !player.hasAudio);\n });\n\n // Handle the media finishing\n on.call(player, player.media, 'ended', () => {\n // Show poster on end\n if (player.isHTML5 && player.isVideo && player.config.resetOnEnd) {\n // Restart\n player.restart();\n }\n });\n\n // Check for buffer progress\n on.call(player, player.media, 'progress playing seeking seeked', event =>\n controls.updateProgress.call(player, event),\n );\n\n // Handle volume changes\n on.call(player, player.media, 'volumechange', event => controls.updateVolume.call(player, event));\n\n // Handle play/pause\n on.call(player, player.media, 'playing play pause ended emptied timeupdate', event =>\n ui.checkPlaying.call(player, event),\n );\n\n // Loading state\n on.call(player, player.media, 'waiting canplay seeked playing', event => ui.checkLoading.call(player, event));\n\n // If autoplay, then load advertisement if required\n // TODO: Show some sort of loading state while the ad manager loads else there's a delay before ad shows\n on.call(player, player.media, 'playing', () => {\n if (!player.ads) {\n return;\n }\n\n // If ads are enabled, wait for them first\n if (player.ads.enabled && !player.ads.initialized) {\n // Wait for manager response\n player.ads.managerPromise.then(() => player.ads.play()).catch(() => player.play());\n }\n });\n\n // Click video\n if (player.supported.ui && player.config.clickToPlay && !player.isAudio) {\n // Re-fetch the wrapper\n const wrapper = getElement.call(player, `.${player.config.classNames.video}`);\n\n // Bail if there's no wrapper (this should never happen)\n if (!is.element(wrapper)) {\n return;\n }\n\n // On click play, pause or restart\n on.call(player, elements.container, 'click', event => {\n const targets = [elements.container, wrapper];\n\n // Ignore if click if not container or in video wrapper\n if (!targets.includes(event.target) && !wrapper.contains(event.target)) {\n return;\n }\n\n // Touch devices will just show controls (if hidden)\n if (player.touch && player.config.hideControls) {\n return;\n }\n\n if (player.ended) {\n this.proxy(event, player.restart, 'restart');\n this.proxy(event, player.play, 'play');\n } else {\n this.proxy(event, player.togglePlay, 'play');\n }\n });\n }\n\n // Disable right click\n if (player.supported.ui && player.config.disableContextMenu) {\n on.call(\n player,\n elements.wrapper,\n 'contextmenu',\n event => {\n event.preventDefault();\n },\n false,\n );\n }\n\n // Volume change\n on.call(player, player.media, 'volumechange', () => {\n // Save to storage\n player.storage.set({\n volume: player.volume,\n muted: player.muted,\n });\n });\n\n // Speed change\n on.call(player, player.media, 'ratechange', () => {\n // Update UI\n controls.updateSetting.call(player, 'speed');\n\n // Save to storage\n player.storage.set({ speed: player.speed });\n });\n\n // Quality change\n on.call(player, player.media, 'qualitychange', event => {\n // Update UI\n controls.updateSetting.call(player, 'quality', null, event.detail.quality);\n });\n\n // Update download link when ready and if quality changes\n on.call(player, player.media, 'ready qualitychange', () => {\n controls.setDownloadLink.call(player);\n });\n\n // Proxy events to container\n // Bubble up key events for Edge\n const proxyEvents = player.config.events.concat(['keyup', 'keydown']).join(' ');\n\n on.call(player, player.media, proxyEvents, event => {\n let { detail = {} } = event;\n\n // Get error details from media\n if (event.type === 'error') {\n detail = player.media.error;\n }\n\n triggerEvent.call(player, elements.container, event.type, true, detail);\n });\n }\n\n // Run default and custom handlers\n proxy(event, defaultHandler, customHandlerKey) {\n const { player } = this;\n const customHandler = player.config.listeners[customHandlerKey];\n const hasCustomHandler = is.function(customHandler);\n let returned = true;\n\n // Execute custom handler\n if (hasCustomHandler) {\n returned = customHandler.call(player, event);\n }\n\n // Only call default handler if not prevented in custom handler\n if (returned && is.function(defaultHandler)) {\n defaultHandler.call(player, event);\n }\n }\n\n // Trigger custom and default handlers\n bind(element, type, defaultHandler, customHandlerKey, passive = true) {\n const { player } = this;\n const customHandler = player.config.listeners[customHandlerKey];\n const hasCustomHandler = is.function(customHandler);\n\n on.call(\n player,\n element,\n type,\n event => this.proxy(event, defaultHandler, customHandlerKey),\n passive && !hasCustomHandler,\n );\n }\n\n // Listen for control events\n controls() {\n const { player } = this;\n const { elements } = player;\n\n // IE doesn't support input event, so we fallback to change\n const inputEvent = browser.isIE ? 'change' : 'input';\n\n // Play/pause toggle\n if (elements.buttons.play) {\n Array.from(elements.buttons.play).forEach(button => {\n this.bind(button, 'click', player.togglePlay, 'play');\n });\n }\n\n // Pause\n this.bind(elements.buttons.restart, 'click', player.restart, 'restart');\n\n // Rewind\n this.bind(elements.buttons.rewind, 'click', player.rewind, 'rewind');\n\n // Rewind\n this.bind(elements.buttons.fastForward, 'click', player.forward, 'fastForward');\n\n // Mute toggle\n this.bind(\n elements.buttons.mute,\n 'click',\n () => {\n player.muted = !player.muted;\n },\n 'mute',\n );\n\n // Captions toggle\n this.bind(elements.buttons.captions, 'click', () => player.toggleCaptions());\n\n // Download\n this.bind(\n elements.buttons.download,\n 'click',\n () => {\n triggerEvent.call(player, player.media, 'download');\n },\n 'download',\n );\n\n // Fullscreen toggle\n this.bind(\n elements.buttons.fullscreen,\n 'click',\n () => {\n player.fullscreen.toggle();\n },\n 'fullscreen',\n );\n\n // Picture-in-Picture\n this.bind(\n elements.buttons.pip,\n 'click',\n () => {\n player.pip = 'toggle';\n },\n 'pip',\n );\n\n // Airplay\n this.bind(elements.buttons.airplay, 'click', player.airplay, 'airplay');\n\n // Settings menu - click toggle\n this.bind(elements.buttons.settings, 'click', event => {\n // Prevent the document click listener closing the menu\n event.stopPropagation();\n\n controls.toggleMenu.call(player, event);\n });\n\n // Settings menu - keyboard toggle\n // We have to bind to keyup otherwise Firefox triggers a click when a keydown event handler shifts focus\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1220143\n this.bind(\n elements.buttons.settings,\n 'keyup',\n event => {\n const code = event.which;\n\n // We only care about space and return\n if (![13, 32].includes(code)) {\n return;\n }\n\n // Because return triggers a click anyway, all we need to do is set focus\n if (code === 13) {\n controls.focusFirstMenuItem.call(player, null, true);\n return;\n }\n\n // Prevent scroll\n event.preventDefault();\n\n // Prevent playing video (Firefox)\n event.stopPropagation();\n\n // Toggle menu\n controls.toggleMenu.call(player, event);\n },\n null,\n false, // Can't be passive as we're preventing default\n );\n\n // Escape closes menu\n this.bind(elements.settings.menu, 'keydown', event => {\n if (event.which === 27) {\n controls.toggleMenu.call(player, event);\n }\n });\n\n // Set range input alternative \"value\", which matches the tooltip time (#954)\n this.bind(elements.inputs.seek, 'mousedown mousemove', event => {\n const rect = elements.progress.getBoundingClientRect();\n const percent = (100 / rect.width) * (event.pageX - rect.left);\n event.currentTarget.setAttribute('seek-value', percent);\n });\n\n // Pause while seeking\n this.bind(elements.inputs.seek, 'mousedown mouseup keydown keyup touchstart touchend', event => {\n const seek = event.currentTarget;\n const code = event.keyCode ? event.keyCode : event.which;\n const attribute = 'play-on-seeked';\n\n if (is.keyboardEvent(event) && (code !== 39 && code !== 37)) {\n return;\n }\n\n // Record seek time so we can prevent hiding controls for a few seconds after seek\n player.lastSeekTime = Date.now();\n\n // Was playing before?\n const play = seek.hasAttribute(attribute);\n\n // Done seeking\n const done = ['mouseup', 'touchend', 'keyup'].includes(event.type);\n\n // If we're done seeking and it was playing, resume playback\n if (play && done) {\n seek.removeAttribute(attribute);\n player.play();\n } else if (!done && player.playing) {\n seek.setAttribute(attribute, '');\n player.pause();\n }\n });\n\n // Fix range inputs on iOS\n // Super weird iOS bug where after you interact with an ,\n // it takes over further interactions on the page. This is a hack\n if (browser.isIos) {\n const inputs = getElements.call(player, 'input[type=\"range\"]');\n Array.from(inputs).forEach(input => this.bind(input, inputEvent, event => repaint(event.target)));\n }\n\n // Seek\n this.bind(\n elements.inputs.seek,\n inputEvent,\n event => {\n const seek = event.currentTarget;\n\n // If it exists, use seek-value instead of \"value\" for consistency with tooltip time (#954)\n let seekTo = seek.getAttribute('seek-value');\n\n if (is.empty(seekTo)) {\n seekTo = seek.value;\n }\n\n seek.removeAttribute('seek-value');\n\n player.currentTime = (seekTo / seek.max) * player.duration;\n },\n 'seek',\n );\n\n // Seek tooltip\n this.bind(elements.progress, 'mouseenter mouseleave mousemove', event =>\n controls.updateSeekTooltip.call(player, event),\n );\n\n // Polyfill for lower fill in for webkit\n if (browser.isWebkit) {\n Array.from(getElements.call(player, 'input[type=\"range\"]')).forEach(element => {\n this.bind(element, 'input', event => controls.updateRangeFill.call(player, event.target));\n });\n }\n\n // Current time invert\n // Only if one time element is used for both currentTime and duration\n if (player.config.toggleInvert && !is.element(elements.display.duration)) {\n this.bind(elements.display.currentTime, 'click', () => {\n // Do nothing if we're at the start\n if (player.currentTime === 0) {\n return;\n }\n\n player.config.invertTime = !player.config.invertTime;\n\n controls.timeUpdate.call(player);\n });\n }\n\n // Volume\n this.bind(\n elements.inputs.volume,\n inputEvent,\n event => {\n player.volume = event.target.value;\n },\n 'volume',\n );\n\n // Update controls.hover state (used for ui.toggleControls to avoid hiding when interacting)\n this.bind(elements.controls, 'mouseenter mouseleave', event => {\n elements.controls.hover = !player.touch && event.type === 'mouseenter';\n });\n\n // Update controls.pressed state (used for ui.toggleControls to avoid hiding when interacting)\n this.bind(elements.controls, 'mousedown mouseup touchstart touchend touchcancel', event => {\n elements.controls.pressed = ['mousedown', 'touchstart'].includes(event.type);\n });\n\n // Show controls when they receive focus (e.g., when using keyboard tab key)\n this.bind(elements.controls, 'focusin', () => {\n const { config, elements, timers } = player;\n\n // Skip transition to prevent focus from scrolling the parent element\n toggleClass(elements.controls, config.classNames.noTransition, true);\n\n // Toggle\n ui.toggleControls.call(player, true);\n\n // Restore transition\n setTimeout(() => {\n toggleClass(elements.controls, config.classNames.noTransition, false);\n }, 0);\n\n // Delay a little more for mouse users\n const delay = this.touch ? 3000 : 4000;\n\n // Clear timer\n clearTimeout(timers.controls);\n\n // Hide again after delay\n timers.controls = setTimeout(() => ui.toggleControls.call(player, false), delay);\n });\n\n // Mouse wheel for volume\n this.bind(\n elements.inputs.volume,\n 'wheel',\n event => {\n // Detect \"natural\" scroll - suppored on OS X Safari only\n // Other browsers on OS X will be inverted until support improves\n const inverted = event.webkitDirectionInvertedFromDevice;\n\n // Get delta from event. Invert if `inverted` is true\n const [x, y] = [event.deltaX, -event.deltaY].map(value => (inverted ? -value : value));\n\n // Using the biggest delta, normalize to 1 or -1 (or 0 if no delta)\n const direction = Math.sign(Math.abs(x) > Math.abs(y) ? x : y);\n\n // Change the volume by 2%\n player.increaseVolume(direction / 50);\n\n // Don't break page scrolling at max and min\n const { volume } = player.media;\n if ((direction === 1 && volume < 1) || (direction === -1 && volume > 0)) {\n event.preventDefault();\n }\n },\n 'volume',\n false,\n );\n }\n}\n\nexport default Listeners;\n","(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.loadjs = factory();\n }\n}(this, function() {\n/**\n * Global dependencies.\n * @global {Object} document - DOM\n */\n\nvar devnull = function() {},\n bundleIdCache = {},\n bundleResultCache = {},\n bundleCallbackQueue = {};\n\n\n/**\n * Subscribe to bundle load event.\n * @param {string[]} bundleIds - Bundle ids\n * @param {Function} callbackFn - The callback function\n */\nfunction subscribe(bundleIds, callbackFn) {\n // listify\n bundleIds = bundleIds.push ? bundleIds : [bundleIds];\n\n var depsNotFound = [],\n i = bundleIds.length,\n numWaiting = i,\n fn,\n bundleId,\n r,\n q;\n\n // define callback function\n fn = function (bundleId, pathsNotFound) {\n if (pathsNotFound.length) depsNotFound.push(bundleId);\n\n numWaiting--;\n if (!numWaiting) callbackFn(depsNotFound);\n };\n\n // register callback\n while (i--) {\n bundleId = bundleIds[i];\n\n // execute callback if in result cache\n r = bundleResultCache[bundleId];\n if (r) {\n fn(bundleId, r);\n continue;\n }\n\n // add to callback queue\n q = bundleCallbackQueue[bundleId] = bundleCallbackQueue[bundleId] || [];\n q.push(fn);\n }\n}\n\n\n/**\n * Publish bundle load event.\n * @param {string} bundleId - Bundle id\n * @param {string[]} pathsNotFound - List of files not found\n */\nfunction publish(bundleId, pathsNotFound) {\n // exit if id isn't defined\n if (!bundleId) return;\n\n var q = bundleCallbackQueue[bundleId];\n\n // cache result\n bundleResultCache[bundleId] = pathsNotFound;\n\n // exit if queue is empty\n if (!q) return;\n\n // empty callback queue\n while (q.length) {\n q[0](bundleId, pathsNotFound);\n q.splice(0, 1);\n }\n}\n\n\n/**\n * Execute callbacks.\n * @param {Object or Function} args - The callback args\n * @param {string[]} depsNotFound - List of dependencies not found\n */\nfunction executeCallbacks(args, depsNotFound) {\n // accept function as argument\n if (args.call) args = {success: args};\n\n // success and error callbacks\n if (depsNotFound.length) (args.error || devnull)(depsNotFound);\n else (args.success || devnull)(args);\n}\n\n\n/**\n * Load individual file.\n * @param {string} path - The file path\n * @param {Function} callbackFn - The callback function\n */\nfunction loadFile(path, callbackFn, args, numTries) {\n var doc = document,\n async = args.async,\n maxTries = (args.numRetries || 0) + 1,\n beforeCallbackFn = args.before || devnull,\n pathStripped = path.replace(/^(css|img)!/, ''),\n isCss,\n e;\n\n numTries = numTries || 0;\n\n if (/(^css!|\\.css$)/.test(path)) {\n isCss = true;\n\n // css\n e = doc.createElement('link');\n e.rel = 'stylesheet';\n e.href = pathStripped; //.replace(/^css!/, ''); // remove \"css!\" prefix\n } else if (/(^img!|\\.(png|gif|jpg|svg)$)/.test(path)) {\n // image\n e = doc.createElement('img');\n e.src = pathStripped; \n } else {\n // javascript\n e = doc.createElement('script');\n e.src = path;\n e.async = async === undefined ? true : async;\n }\n\n e.onload = e.onerror = e.onbeforeload = function (ev) {\n var result = ev.type[0];\n\n // Note: The following code isolates IE using `hideFocus` and treats empty\n // stylesheets as failures to get around lack of onerror support\n if (isCss && 'hideFocus' in e) {\n try {\n if (!e.sheet.cssText.length) result = 'e';\n } catch (x) {\n // sheets objects created from load errors don't allow access to\n // `cssText` (unless error is Code:18 SecurityError)\n if (x.code != 18) result = 'e';\n }\n }\n\n // handle retries in case of load failure\n if (result == 'e') {\n // increment counter\n numTries += 1;\n\n // exit function and try again\n if (numTries < maxTries) {\n return loadFile(path, callbackFn, args, numTries);\n }\n }\n\n // execute callback\n callbackFn(path, result, ev.defaultPrevented);\n };\n\n // add to document (unless callback returns `false`)\n if (beforeCallbackFn(path, e) !== false) doc.head.appendChild(e);\n}\n\n\n/**\n * Load multiple files.\n * @param {string[]} paths - The file paths\n * @param {Function} callbackFn - The callback function\n */\nfunction loadFiles(paths, callbackFn, args) {\n // listify paths\n paths = paths.push ? paths : [paths];\n\n var numWaiting = paths.length,\n x = numWaiting,\n pathsNotFound = [],\n fn,\n i;\n\n // define callback function\n fn = function(path, result, defaultPrevented) {\n // handle error\n if (result == 'e') pathsNotFound.push(path);\n\n // handle beforeload event. If defaultPrevented then that means the load\n // will be blocked (ex. Ghostery/ABP on Safari)\n if (result == 'b') {\n if (defaultPrevented) pathsNotFound.push(path);\n else return;\n }\n\n numWaiting--;\n if (!numWaiting) callbackFn(pathsNotFound);\n };\n\n // load scripts\n for (i=0; i < x; i++) loadFile(paths[i], fn, args);\n}\n\n\n/**\n * Initiate script load and register bundle.\n * @param {(string|string[])} paths - The file paths\n * @param {(string|Function)} [arg1] - The bundleId or success callback\n * @param {Function} [arg2] - The success or error callback\n * @param {Function} [arg3] - The error callback\n */\nfunction loadjs(paths, arg1, arg2) {\n var bundleId,\n args;\n\n // bundleId (if string)\n if (arg1 && arg1.trim) bundleId = arg1;\n\n // args (default is {})\n args = (bundleId ? arg2 : arg1) || {};\n\n // throw error if bundle is already defined\n if (bundleId) {\n if (bundleId in bundleIdCache) {\n throw \"LoadJS\";\n } else {\n bundleIdCache[bundleId] = true;\n }\n }\n\n // load scripts\n loadFiles(paths, function (pathsNotFound) {\n // execute callbacks\n executeCallbacks(args, pathsNotFound);\n\n // publish bundle load event\n publish(bundleId, pathsNotFound);\n }, args);\n}\n\n\n/**\n * Execute callbacks when dependencies have been satisfied.\n * @param {(string|string[])} deps - List of bundle ids\n * @param {Object} args - success/error arguments\n */\nloadjs.ready = function ready(deps, args) {\n // subscribe to bundle load event\n subscribe(deps, function (depsNotFound) {\n // execute callbacks\n executeCallbacks(args, depsNotFound);\n });\n\n return loadjs;\n};\n\n\n/**\n * Manually satisfy bundle dependencies.\n * @param {string} bundleId - The bundle id\n */\nloadjs.done = function done(bundleId) {\n publish(bundleId, []);\n};\n\n\n/**\n * Reset loadjs dependencies statuses\n */\nloadjs.reset = function reset() {\n bundleIdCache = {};\n bundleResultCache = {};\n bundleCallbackQueue = {};\n};\n\n\n/**\n * Determine if bundle has already been defined\n * @param String} bundleId - The bundle id\n */\nloadjs.isDefined = function isDefined(bundleId) {\n return bundleId in bundleIdCache;\n};\n\n\n// export\nreturn loadjs;\n\n}));\n","// ==========================================================================\n// Load an external script\n// ==========================================================================\n\nimport loadjs from 'loadjs';\n\nexport default function loadScript(url) {\n return new Promise((resolve, reject) => {\n loadjs(url, {\n success: resolve,\n error: reject,\n });\n });\n}\n","// ==========================================================================\n// Vimeo plugin\n// ==========================================================================\n\nimport captions from '../captions';\nimport controls from '../controls';\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 loadScript from '../utils/loadScript';\nimport { format, stripHTML } from '../utils/strings';\nimport { setAspectRatio } from '../utils/style';\nimport { buildUrlParams } from '../utils/urls';\n\n// Parse Vimeo ID from URL\nfunction parseId(url) {\n if (is.empty(url)) {\n return null;\n }\n\n if (is.number(Number(url))) {\n return url;\n }\n\n const regex = /^.*(vimeo.com\\/|video\\/)(\\d+).*/;\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 vimeo = {\n setup() {\n // Add embed class for responsive\n toggleClass(this.elements.wrapper, this.config.classNames.embed, true);\n\n // Set intial ratio\n setAspectRatio.call(this);\n\n // Load the API if not already\n if (!is.object(window.Vimeo)) {\n loadScript(this.config.urls.vimeo.sdk)\n .then(() => {\n vimeo.ready.call(this);\n })\n .catch(error => {\n this.debug.warn('Vimeo API failed to load', error);\n });\n } else {\n vimeo.ready.call(this);\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 [width, height] = dimensions;\n player.embed.ratio = `${width}:${height}`;\n setAspectRatio.call(this, player.embed.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';\nimport { setAspectRatio } from '../utils/style';\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 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 // 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