{"version":3,"sources":["plyr.js","node_modules/rangetouch/dist/rangetouch.mjs","src/js/utils/is.js","src/js/utils/animation.js","src/js/utils/browser.js","src/js/utils/objects.js","src/js/utils/elements.js","src/js/support.js","src/js/utils/events.js","src/js/utils/promise.js","src/js/utils/arrays.js","src/js/utils/style.js","src/js/html5.js","src/js/utils/strings.js","src/js/utils/i18n.js","src/js/storage.js","src/js/utils/fetch.js","src/js/utils/load-sprite.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/load-image.js","src/js/ui.js","src/js/listeners.js","node_modules/loadjs/dist/loadjs.umd.js","src/js/utils/load-script.js","src/js/plugins/vimeo.js","src/js/plugins/youtube.js","src/js/media.js","src/js/plugins/ads.js","src/js/plugins/preview-thumbnails.js","src/js/source.js","src/js/plyr.js","src/js/utils/numbers.js"],"names":["navigator","global","factory","exports","module","define","amd","globalThis","self","Plyr","this","_defineProperty$1","obj","key","value","Object","defineProperty","enumerable","configurable","writable","_defineProperties","e","t","n","length","r","_defineProperty","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","push","apply","_objectSpread2","arguments","forEach","getOwnPropertyDescriptors","defineProperties","defaults","addCSS","thumbWidth","watch","matches","Array","from","document","querySelectorAll","includes","call","getConstructor","constructor","instanceOf","isNullOrUndefined","isObject","isString","String","isArray","isNodeList","NodeList","is","Element","Event","round","concat","match","Math","max","getDecimalPlaces","parseFloat","toFixed","RangeTouch","TypeError","_classCallCheck","element","querySelector","rangeTouch","config","init","prototype","_createClass","enabled","style","userSelect","webKitUserSelect","touchAction","listeners","set","target","i","changedTouches","o","getAttribute","s","u","c","getBoundingClientRect","a","width","clientX","left","disabled","preventDefault","get","bubbles","dispatchEvent","trigger","type","MutationObserver","addedNodes","observe","body","childList","subtree","map","documentElement","input","Boolean","isFunction","Function","isEmpty","Number","isNaN","nodeType","ownerDocument","KeyboardEvent","TextTrack","kind","Promise","then","window","URL","string","startsWith","hostname","_","transitionEndEvent","createElement","events","WebkitTransition","MozTransition","OTransition","transition","find","event","undefined","repaint","delay","setTimeout","hidden","offsetHeight","browser","isIE","documentMode","isEdge","userAgent","isWebkit","test","isIPhone","platform","isIos","maxTouchPoints","getDeep","object","path","split","reduce","extend","sources","source","shift","assign","wrap","elements","wrapper","targets","reverse","index","child","cloneNode","parent","parentNode","sibling","nextSibling","appendChild","insertBefore","setAttributes","attributes","entries","setAttribute","text","innerText","insertElement","removeElement","removeChild","emptyElement","childNodes","lastChild","replaceElement","newChild","oldChild","replaceChild","getAttributesFromSelector","sel","existingAttributes","existing","selector","trim","className","replace","parts","charAt","class","id","toggleHidden","hide","toggleClass","force","method","classList","contains","hasClass","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","getElements","container","getElement","setFocus","tabFocus","focus","preventScroll","classNames","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","supportsPassiveListeners","supported","options","addEventListener","removeEventListener","toggleListener","callback","toggle","passive","capture","eventListeners","on","off","once","onceCallback","args","triggerEvent","detail","CustomEvent","plyr","unbindListeners","item","ready","resolve","silencePromise","dedupe","array","indexOf","closest","prev","curr","abs","supportsCSS","declaration","CSS","supports","standardRatios","out","x","y","validateAspectRatio","every","reduceAspectRatio","ratio","height","getDivider","w","h","divider","getAspectRatio","parse","embed","videoWidth","videoHeight","setAspectRatio","isVideo","padding","aspectRatio","paddingBottom","isVimeo","vimeo","premium","offsetWidth","parseInt","getComputedStyle","offset","fullscreen","active","transform","add","videoFixedRatio","roundAspectRatio","tolerance","closestRatio","html5","getSources","getQualityOptions","quality","forced","setup","player","speed","onChange","currentTime","paused","preload","readyState","playbackRate","src","play","load","cancelRequests","blankVideo","debug","log","format","toString","replaceAll","RegExp","toTitleCase","toUpperCase","substr","toLowerCase","toCamelCase","toPascalCase","slice","getHTML","innerHTML","resources","youtube","i18n","seekTime","title","k","v","Storage","store","localStorage","getItem","json","JSON","storage","setItem","stringify","removeItem","fetch","url","responseType","reject","request","XMLHttpRequest","responseText","response","Error","status","open","send","error","loadSprite","hasId","isCached","exists","getElementById","update","data","insertAdjacentElement","useStorage","cached","content","result","catch","getHours","trunc","formatTime","time","displayHours","inverted","hours","mins","secs","getSeconds","controls","getIconUrl","iconUrl","location","host","top","cors","svg4everybody","findElements","selectors","buttons","pause","restart","rewind","fastForward","mute","settings","captions","progress","inputs","seek","volume","display","buffer","duration","seekTooltip","tooltip","warn","toggleNativeControls","createIcon","namespace","iconPath","iconPrefix","icon","createElementNS","focusable","use","setAttributeNS","createLabel","attr","join","createBadge","badge","menu","createButton","buttonType","props","label","labelPressed","iconPressed","some","control","button","createRange","min","step","autocomplete","role","updateRangeFill","createProgress","suffixKey","played","suffix","createTime","attrs","bindMenuItemShortcuts","menuItem","which","stopPropagation","isRadioButton","showMenuPanel","nextElementSibling","firstElementChild","previousElementSibling","lastElementChild","focusFirstMenuItem","createMenuItem","list","checked","flex","children","node","bind","currentTrack","updateTimeDisplay","updateVolume","setRange","muted","pressed","updateProgress","setProgress","val","getElementsByTagName","nodeValue","current","buffered","percent","setProperty","updateSeekTooltip","tooltips","visible","show","clientRect","pageX","timeUpdate","invert","invertTime","seeking","durationUpdate","hasDuration","displayDuration","toggleMenuButton","setting","updateSetting","pane","panels","default","getLabel","setQualityMenu","checkMenu","getBadge","sort","b","sorting","setCaptionsMenu","tracks","getTracks","track","toggled","language","unshift","setSpeedMenu","minimumSpeed","maximumSpeed","values","popup","p","firstItem","toggleMenu","composedPath","isMenuItem","getMenuSize","tab","clone","position","opacity","removeAttribute","scrollWidth","scrollHeight","size","restore","propertyName","setDownloadUrl","download","create","defaultAttributes","progressContainer","inner","home","backButton","href","urls","isEmbed","inject","floor","random","seektime","addProperty","controlPressed","labels","parseUrl","safe","parser","buildUrlParams","params","URLSearchParams","isYouTube","protocol","blob","createObjectURL","languages","userLanguage","trackEvents","meta","currentTrackNode","languageExists","mode","updateCues","setLanguage","activeClass","findTrack","enableTextTrack","has","sortIsDefault","sorted","getCurrentTrack","cues","activeCues","cue","getCueAsHTML","cueText","caption","autoplay","autopause","toggleInvert","clickToPlay","hideControls","resetOnEnd","disableContextMenu","loop","selected","keyboard","focused","fallback","iosNative","seekLabel","unmute","enableCaptions","disableCaptions","enterFullscreen","exitFullscreen","frameTitle","menuBack","normal","start","end","all","reset","advertisement","qualityBadge","sdk","iframe","googleIMA","editable","embedContainer","poster","posterEnabled","ads","playing","stopped","loading","hover","isTouch","uiSupported","noTransition","previewThumbnails","thumbContainer","thumbContainerShown","imageContainer","timeContainer","scrubbingContainer","scrubbingContainerShown","hash","publisherId","tagUrl","byline","portrait","transparent","customControls","referrerPolicy","rel","showinfo","iv_load_policy","modestbranding","noCookie","providers","types","noop","Console","console","Fullscreen","scrollPosition","scrollX","scrollY","scrollTo","overflow","viewport","head","property","hasProperty","cleanupViewport","part","keyCode","activeElement","first","last","shiftKey","forceFallback","native","requestFullscreen","webkitEnterFullscreen","toggleFallback","prefix","navigationUI","webkitExitFullscreen","action","cancelFullScreen","exit","enter","el","parentElement","proxy","trapFocus","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","usingNative","pre","getRootNode","fullscreenElement","shadowRoot","loadImage","minWidth","image","Image","handler","onload","onerror","naturalWidth","addStyleHook","build","checkPlaying","setTitle","setPoster","togglePoster","enable","backgroundImage","backgroundSize","toggleControls","checkLoading","clearTimeout","timers","controlsElement","recentTouchSeek","lastSeekTime","Date","now","migrateStyles","getPropertyValue","removeProperty","Listeners","focusTimer","lastKeyDown","timeStamp","wasKeyDown","removeCurrent","handleKey","firstTouch","setTabFocus","setGutter","useNativeAspectRatio","maxWidth","margin","viewportWidth","viewportHeight","clientWidth","innerWidth","clientHeight","innerHeight","resized","isAudio","ended","togglePlay","proxyEvents","defaultHandler","customHandlerKey","customHandler","returned","hasCustomHandler","inputEvent","forward","toggleCaptions","code","rect","currentTarget","attribute","hasAttribute","done","seekTo","loaded","startMove","endMove","startScrubbing","endScrubbing","webkitDirectionInvertedFromDevice","deltaX","deltaY","direction","sign","increaseVolume","lastKey","repeat","altKey","ctrlKey","metaKey","decreaseVolume","loadjs_umd","fn","createCommonjsModule","devnull","bundleIdCache","bundleResultCache","bundleCallbackQueue","subscribe","bundleIds","callbackFn","bundleId","depsNotFound","numWaiting","pathsNotFound","publish","q","splice","executeCallbacks","success","loadFile","numTries","isLegacyIECss","doc","async","maxTries","numRetries","beforeCallbackFn","before","pathname","pathStripped","relList","as","onbeforeload","ev","sheet","cssText","defaultPrevented","loadFiles","paths","loadjs","arg1","arg2","loadFn","returnPromise","deps","isDefined","loadScript","assurePlaybackState","hasPlayed","Vimeo","frameParams","found","groups","parseHash","hashParam","sidedock","gesture","$2","thumbnail_url","Player","disableTextTrack","stop","restorePause","setVolume","setCurrentTime","setPlaybackRate","currentSrc","setLoop","getVideoUrl","getVideoWidth","getVideoHeight","dimensions","setAutopause","state","getVideoTitle","getCurrentTime","getDuration","getTextTracks","strippedCues","fragment","createDocumentFragment","firstChild","stripHTML","getPaused","seconds","getHost","YT","onYouTubeIframeAPIReady","getTitle","videoId","currentId","posterSrc","playerVars","hl","disablekb","cc_load_policy","cc_lang_pref","widget_referrer","onError","message","onPlaybackRateChange","instance","getPlaybackRate","onReady","playVideo","pauseVideo","stopVideo","speeds","getAvailablePlaybackRates","clearInterval","buffering","setInterval","getVideoLoadedFraction","lastBuffered","onStateChange","unMute","Ads","google","ima","manager","destroy","displayContainer","remove","startSafetyTimer","managerPromise","clearSafetyTimer","setupIMA","setVpaidMode","ImaSdkSettings","VpaidMode","ENABLED","setLocale","setDisableCustomPlaybackForIOS10Plus","AdDisplayContainer","loader","AdsLoader","AdsManagerLoadedEvent","Type","ADS_MANAGER_LOADED","onAdsManagerLoaded","AdErrorEvent","AD_ERROR","onAdError","requestAds","AdsRequest","adTagUrl","linearAdSlotWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearAdSlotHeight","forceNonLinearFullSlot","setAdWillPlayMuted","countdownTimer","getRemainingTime","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","enablePreloading","getAdsManager","cuePoints","getCuePoints","AdEvent","onAdEvent","cuePoint","seekElement","cuePercentage","ad","getAd","adData","getAdData","LOADED","pollCountdown","isLinear","STARTED","ALL_ADS_COMPLETED","loadAds","contentComplete","CONTENT_PAUSE_REQUESTED","pauseContent","CONTENT_RESUME_REQUESTED","resumeContent","LOG","adError","getMessage","cancel","addCuePoints","seekedTime","discardAdBreak","resize","ViewMode","NORMAL","initialize","initialized","zIndex","handlers","safetyTimer","AV_PUBLISHERID","AV_CHANNELID","AV_URL","cb","AV_WIDTH","AV_HEIGHT","AV_CDIM2","parseVtt","vttDataString","processedList","frame","line","startTime","lineSplit","matchTimes","endTime","fitRatio","outer","PreviewThumbnails","getThumbnails","render","determineContainerAutoSizing","sortAndResolve","thumbnails","promises","getThumbnail","thumbnail","frames","urlPrefix","substring","lastIndexOf","tempImage","naturalHeight","percentage","mousePosX","thumb","showImageAtCurrentTime","toggleThumbContainer","mouseDown","toggleScrubbingContainer","ceil","lastTime","scrubbing","setScrubbingContainerSize","setThumbContainerSizeAndPos","thumbNum","findIndex","hasThumb","qualityIndex","loadedImages","showingThumb","thumbFilename","thumbUrl","currentImageElement","dataset","filename","showImage","removeOldImages","loadingImage","usingSprites","previewImage","showingThumbFilename","newImage","setImageSizeAndOffset","currentImageContainer","preloadNearby","getHigherQuality","currentImage","tagName","removeDelay","deleting","oldThumbFilename","thumbnailsClone","foundOne","newThumbFilename","thumbURL","currentQualityIndex","previewImageHeight","thumbContainerHeight","clearShowing","sizeSpecifiedInCSS","thumbAspectRatio","thumbHeight","setThumbContainerPos","seekbarRect","plyrRect","minVal","maxVal","right","previewPos","multiplier","lastMouseMoveTime","currentScrubbingImageElement","currentThumbnailImageElement","insertElements","change","crossorigin","webkitShowPlaybackTargetPicker","isHidden","hiding","eventName","soft","original","unload","failed","jQuery","WeakMap","getProviderByUrl","search","truthy","searchParams","tabindex","inputIsValid","fauxDuration","realDuration","Infinity","hasAudio","mozHasAudio","webkitAudioDecodedByteCount","audioTracks","clamp","updateStorage","requestPictureInPicture","exitPictureInPicture","webkitPresentationMode","pictureInPictureElement","setPreviewThumbnails","thumbnailSource","static","inline"],"mappings":"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","file":"plyr.min.js","sourcesContent":["typeof navigator === \"object\" && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define('Plyr', factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Plyr = factory());\n})(this, (function () { 'use strict';\n\n function _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _classCallCheck(e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n function _defineProperties(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n\n function _createClass(e, t, n) {\n return t && _defineProperties(e.prototype, t), n && _defineProperties(e, n), e;\n }\n\n function _defineProperty(e, t, n) {\n return t in e ? Object.defineProperty(e, t, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = n, e;\n }\n\n function ownKeys(e, t) {\n var n = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var r = Object.getOwnPropertySymbols(e);\n t && (r = r.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), n.push.apply(n, r);\n }\n\n return n;\n }\n\n function _objectSpread2(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = null != arguments[t] ? arguments[t] : {};\n t % 2 ? ownKeys(Object(n), !0).forEach(function (t) {\n _defineProperty(e, t, n[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ownKeys(Object(n)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));\n });\n }\n\n return e;\n }\n\n var defaults$1 = {\n addCSS: !0,\n thumbWidth: 15,\n watch: !0\n };\n\n function matches$1(e, t) {\n return function () {\n return Array.from(document.querySelectorAll(t)).includes(this);\n }.call(e, t);\n }\n\n function trigger(e, t) {\n if (e && t) {\n var n = new Event(t, {\n bubbles: !0\n });\n e.dispatchEvent(n);\n }\n }\n\n var getConstructor$1 = function (e) {\n return null != e ? e.constructor : null;\n },\n instanceOf$1 = function (e, t) {\n return !!(e && t && e instanceof t);\n },\n isNullOrUndefined$1 = function (e) {\n return null == e;\n },\n isObject$1 = function (e) {\n return getConstructor$1(e) === Object;\n },\n isNumber$1 = function (e) {\n return getConstructor$1(e) === Number && !Number.isNaN(e);\n },\n isString$1 = function (e) {\n return getConstructor$1(e) === String;\n },\n isBoolean$1 = function (e) {\n return getConstructor$1(e) === Boolean;\n },\n isFunction$1 = function (e) {\n return getConstructor$1(e) === Function;\n },\n isArray$1 = function (e) {\n return Array.isArray(e);\n },\n isNodeList$1 = function (e) {\n return instanceOf$1(e, NodeList);\n },\n isElement$1 = function (e) {\n return instanceOf$1(e, Element);\n },\n isEvent$1 = function (e) {\n return instanceOf$1(e, Event);\n },\n isEmpty$1 = function (e) {\n return isNullOrUndefined$1(e) || (isString$1(e) || isArray$1(e) || isNodeList$1(e)) && !e.length || isObject$1(e) && !Object.keys(e).length;\n },\n is$1 = {\n nullOrUndefined: isNullOrUndefined$1,\n object: isObject$1,\n number: isNumber$1,\n string: isString$1,\n boolean: isBoolean$1,\n function: isFunction$1,\n array: isArray$1,\n nodeList: isNodeList$1,\n element: isElement$1,\n event: isEvent$1,\n empty: isEmpty$1\n };\n\n function getDecimalPlaces(e) {\n var t = \"\".concat(e).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n return t ? Math.max(0, (t[1] ? t[1].length : 0) - (t[2] ? +t[2] : 0)) : 0;\n }\n\n function round(e, t) {\n if (1 > t) {\n var n = getDecimalPlaces(t);\n return parseFloat(e.toFixed(n));\n }\n\n return Math.round(e / t) * t;\n }\n\n var RangeTouch = function () {\n function e(t, n) {\n _classCallCheck(this, e), is$1.element(t) ? this.element = t : is$1.string(t) && (this.element = document.querySelector(t)), is$1.element(this.element) && is$1.empty(this.element.rangeTouch) && (this.config = _objectSpread2({}, defaults$1, {}, n), this.init());\n }\n\n return _createClass(e, [{\n key: \"init\",\n value: function () {\n e.enabled && (this.config.addCSS && (this.element.style.userSelect = \"none\", this.element.style.webKitUserSelect = \"none\", this.element.style.touchAction = \"manipulation\"), this.listeners(!0), this.element.rangeTouch = this);\n }\n }, {\n key: \"destroy\",\n value: function () {\n e.enabled && (this.config.addCSS && (this.element.style.userSelect = \"\", this.element.style.webKitUserSelect = \"\", this.element.style.touchAction = \"\"), this.listeners(!1), this.element.rangeTouch = null);\n }\n }, {\n key: \"listeners\",\n value: function (e) {\n var t = this,\n n = e ? \"addEventListener\" : \"removeEventListener\";\n [\"touchstart\", \"touchmove\", \"touchend\"].forEach(function (e) {\n t.element[n](e, function (e) {\n return t.set(e);\n }, !1);\n });\n }\n }, {\n key: \"get\",\n value: function (t) {\n if (!e.enabled || !is$1.event(t)) return null;\n var n,\n r = t.target,\n i = t.changedTouches[0],\n o = parseFloat(r.getAttribute(\"min\")) || 0,\n s = parseFloat(r.getAttribute(\"max\")) || 100,\n u = parseFloat(r.getAttribute(\"step\")) || 1,\n c = r.getBoundingClientRect(),\n a = 100 / c.width * (this.config.thumbWidth / 2) / 100;\n return 0 > (n = 100 / c.width * (i.clientX - c.left)) ? n = 0 : 100 < n && (n = 100), 50 > n ? n -= (100 - 2 * n) * a : 50 < n && (n += 2 * (n - 50) * a), o + round(n / 100 * (s - o), u);\n }\n }, {\n key: \"set\",\n value: function (t) {\n e.enabled && is$1.event(t) && !t.target.disabled && (t.preventDefault(), t.target.value = this.get(t), trigger(t.target, \"touchend\" === t.type ? \"change\" : \"input\"));\n }\n }], [{\n key: \"setup\",\n value: function (t) {\n var n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {},\n r = null;\n if (is$1.empty(t) || is$1.string(t) ? r = Array.from(document.querySelectorAll(is$1.string(t) ? t : 'input[type=\"range\"]')) : is$1.element(t) ? r = [t] : is$1.nodeList(t) ? r = Array.from(t) : is$1.array(t) && (r = t.filter(is$1.element)), is$1.empty(r)) return null;\n\n var i = _objectSpread2({}, defaults$1, {}, n);\n\n if (is$1.string(t) && i.watch) {\n var o = new MutationObserver(function (n) {\n Array.from(n).forEach(function (n) {\n Array.from(n.addedNodes).forEach(function (n) {\n is$1.element(n) && matches$1(n, t) && new e(n, i);\n });\n });\n });\n o.observe(document.body, {\n childList: !0,\n subtree: !0\n });\n }\n\n return r.map(function (t) {\n return new e(t, n);\n });\n }\n }, {\n key: \"enabled\",\n get: function () {\n return \"ontouchstart\" in document.documentElement;\n }\n }]), e;\n }();\n\n // ==========================================================================\n // Type checking utils\n // ==========================================================================\n const getConstructor = input => input !== null && typeof input !== 'undefined' ? input.constructor : null;\n\n const instanceOf = (input, constructor) => Boolean(input && constructor && input instanceof constructor);\n\n const isNullOrUndefined = input => input === null || typeof input === 'undefined';\n\n const isObject = input => getConstructor(input) === Object;\n\n const isNumber = input => getConstructor(input) === Number && !Number.isNaN(input);\n\n const isString = input => getConstructor(input) === String;\n\n const isBoolean = input => getConstructor(input) === Boolean;\n\n const isFunction = input => getConstructor(input) === Function;\n\n const isArray = input => Array.isArray(input);\n\n const isWeakMap = input => instanceOf(input, WeakMap);\n\n const isNodeList = input => instanceOf(input, NodeList);\n\n const isTextNode = input => getConstructor(input) === Text;\n\n const isEvent = input => instanceOf(input, Event);\n\n const isKeyboardEvent = input => instanceOf(input, KeyboardEvent);\n\n const isCue = input => instanceOf(input, window.TextTrackCue) || instanceOf(input, window.VTTCue);\n\n const isTrack = input => instanceOf(input, TextTrack) || !isNullOrUndefined(input) && isString(input.kind);\n\n const isPromise = input => instanceOf(input, Promise) && isFunction(input.then);\n\n const isElement = input => input !== null && typeof input === 'object' && input.nodeType === 1 && typeof input.style === 'object' && typeof input.ownerDocument === 'object';\n\n const isEmpty = input => isNullOrUndefined(input) || (isString(input) || isArray(input) || isNodeList(input)) && !input.length || isObject(input) && !Object.keys(input).length;\n\n const isUrl = input => {\n // Accept a URL object\n if (instanceOf(input, window.URL)) {\n return true;\n } // Must be string from here\n\n\n if (!isString(input)) {\n return false;\n } // Add the protocol if required\n\n\n let string = input;\n\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 (_) {\n return false;\n }\n };\n\n var is = {\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 promise: isPromise,\n url: isUrl,\n empty: isEmpty\n };\n\n // ==========================================================================\n const transitionEndEvent = (() => {\n const element = document.createElement('span');\n const events = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n const type = Object.keys(events).find(event => element.style[event] !== undefined);\n return is.string(type) ? events[type] : false;\n })(); // Force repaint of element\n\n function repaint(element, delay) {\n setTimeout(() => {\n try {\n // eslint-disable-next-line no-param-reassign\n element.hidden = true; // eslint-disable-next-line no-unused-expressions\n\n element.offsetHeight; // eslint-disable-next-line no-param-reassign\n\n element.hidden = false;\n } catch (_) {// Do nothing\n }\n }, delay);\n }\n\n // ==========================================================================\n // Browser sniffing\n // Unfortunately, due to mixed support, UA sniffing is required\n // ==========================================================================\n const browser = {\n isIE: Boolean(window.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: navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 || /(iPad|iPhone|iPod)/gi.test(navigator.platform)\n };\n\n // ==========================================================================\n\n function cloneDeep(object) {\n return JSON.parse(JSON.stringify(object));\n } // Get a nested value in an object\n\n function getDeep(object, path) {\n return path.split('.').reduce((obj, key) => obj && obj[key], object);\n } // Deep extend destination object with N more objects\n\n 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, {\n [key]: {}\n });\n }\n\n extend(target[key], source[key]);\n } else {\n Object.assign(target, {\n [key]: source[key]\n });\n }\n });\n return extend(target, ...sources);\n }\n\n // ==========================================================================\n\n function wrap(elements, wrapper) {\n // Convert `elements` to an array, if necessary.\n const targets = elements.length ? elements : [elements]; // Loops backwards to prevent having to clone the wrapper on the\n // first element (see `child` below).\n\n Array.from(targets).reverse().forEach((element, index) => {\n const child = index > 0 ? wrapper.cloneNode(true) : wrapper; // Cache the current parent and sibling.\n\n const parent = element.parentNode;\n const sibling = element.nextSibling; // Wrap the element (is automatically removed from its current\n // parent).\n\n child.appendChild(element); // 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\n if (sibling) {\n parent.insertBefore(child, sibling);\n } else {\n parent.appendChild(child);\n }\n });\n } // Set attributes\n\n function setAttributes(element, attributes) {\n if (!is.element(element) || is.empty(attributes)) {\n return;\n } // Assume null and undefined attributes should be left out,\n // Setting them would otherwise convert them to \"null\" and \"undefined\"\n\n\n Object.entries(attributes).filter(([, value]) => !is.nullOrUndefined(value)).forEach(([key, value]) => element.setAttribute(key, value));\n } // Create a DocumentFragment\n\n function createElement(type, attributes, text) {\n // Create a new \n const element = document.createElement(type); // Set all passed attributes\n\n if (is.object(attributes)) {\n setAttributes(element, attributes);\n } // Add text node\n\n\n if (is.string(text)) {\n element.innerText = text;\n } // Return built element\n\n\n return element;\n } // Inaert an element after another\n\n function insertAfter(element, target) {\n if (!is.element(element) || !is.element(target)) {\n return;\n }\n\n target.parentNode.insertBefore(element, target.nextSibling);\n } // Insert a DocumentFragment\n\n function insertElement(type, parent, attributes, text) {\n if (!is.element(parent)) {\n return;\n }\n\n parent.appendChild(createElement(type, attributes, text));\n } // Remove element(s)\n\n 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 } // Remove all child elements\n\n function emptyElement(element) {\n if (!is.element(element)) {\n return;\n }\n\n let {\n length\n } = element.childNodes;\n\n while (length > 0) {\n element.removeChild(element.lastChild);\n length -= 1;\n }\n } // Replace element\n\n 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 return newChild;\n } // Get an attribute object from a string selector\n\n 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 if (!is.string(sel) || is.empty(sel)) {\n return {};\n }\n\n const attributes = {};\n const existing = extend({}, existingAttributes);\n sel.split(',').forEach(s => {\n // Remove whitespace\n const selector = s.trim();\n const className = selector.replace('.', '');\n const stripped = selector.replace(/[[\\]]/g, ''); // Get the parts and value\n\n const parts = stripped.split('=');\n const [key] = parts;\n const value = parts.length > 1 ? parts[1].replace(/[\"']/g, '') : ''; // Get the first character\n\n const start = selector.charAt(0);\n\n switch (start) {\n case '.':\n // Add to existing classname\n if (is.string(existing.class)) {\n attributes.class = `${existing.class} ${className}`;\n } else {\n attributes.class = className;\n }\n\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 break;\n }\n });\n return extend(existing, attributes);\n } // Toggle hidden\n\n 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 } // eslint-disable-next-line no-param-reassign\n\n\n element.hidden = hide;\n } // Mirror Element.classList.toggle, with IE compatibility for \"force\" argument\n\n 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\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 } // Has class name\n\n function hasClass(element, className) {\n return is.element(element) && element.classList.contains(className);\n } // Element matches selector\n\n function matches(element, selector) {\n const {\n prototype\n } = Element;\n\n function match() {\n return Array.from(document.querySelectorAll(selector)).includes(this);\n }\n\n const method = prototype.matches || prototype.webkitMatchesSelector || prototype.mozMatchesSelector || prototype.msMatchesSelector || match;\n return method.call(element, selector);\n } // Closest ancestor element matching selector (also tests element itself)\n\n function closest$1(element, selector) {\n const {\n prototype\n } = Element; // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill\n\n function closestElement() {\n let el = this;\n\n do {\n if (matches.matches(el, selector)) return el;\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n\n return null;\n }\n\n const method = prototype.closest || closestElement;\n return method.call(element, selector);\n } // Find all elements\n\n function getElements(selector) {\n return this.elements.container.querySelectorAll(selector);\n } // Find a single element\n\n function getElement(selector) {\n return this.elements.container.querySelector(selector);\n } // Set focus and tab focus class\n\n function setFocus(element = null, tabFocus = false) {\n if (!is.element(element)) {\n return;\n } // Set regular focus\n\n\n element.focus({\n preventScroll: true\n }); // If we want to mimic keyboard focus via tab\n\n if (tabFocus) {\n toggleClass(element, this.config.classNames.tabFocus);\n }\n }\n\n // ==========================================================================\n\n const 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 }; // Check for feature support\n\n const 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 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 } // Safari\n // https://developer.apple.com/documentation/webkitjs/adding_picture_in_picture_to_your_safari_media_controls\n\n\n if (is.function(createElement('video').webkitSetPresentationMode)) {\n return true;\n } // Chrome\n // https://developers.google.com/web/updates/2018/10/watch-video-using-picture-in-picture\n\n\n if (document.pictureInPictureEnabled && !createElement('video').disablePictureInPicture) {\n return true;\n }\n\n return false;\n })(),\n // Airplay support\n // Safari only currently\n airplay: is.function(window.WebKitPlaybackTargetAvailabilityEvent),\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; // Verify we're using HTML5 and there's no media type mismatch\n\n if (!this.isHTML5 || mediaType !== this.type) {\n return false;\n } // Add codec if required\n\n\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 (_) {\n return false;\n }\n },\n\n // Check for textTracks support\n textTracks: 'textTracks' in document.createElement('video'),\n // Sliders\n rangeInput: (() => {\n const range = document.createElement('input');\n range.type = 'range';\n return range.type === 'range';\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 // Detect transitions support\n transitions: transitionEndEvent !== false,\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\n // ==========================================================================\n // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n // https://www.youtube.com/watch?v=NPM6172J22g\n\n const supportsPassiveListeners = (() => {\n // Test via a getter in the options object to see if the passive property is accessed\n let supported = false;\n\n try {\n const options = Object.defineProperty({}, 'passive', {\n get() {\n supported = true;\n return null;\n }\n\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (_) {// Do nothing\n }\n\n return supported;\n })(); // Toggle event listener\n\n\n 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 } // Allow multiple events\n\n\n const events = event.split(' '); // Build options\n // Default to just the capture boolean for browsers with no passive listener support\n\n let options = capture; // If passive events listeners are supported\n\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 } // If a single node is passed, bind the event listener\n\n\n events.forEach(type => {\n if (this && this.eventListeners && toggle) {\n // Cache event listener\n this.eventListeners.push({\n element,\n type,\n callback,\n options\n });\n }\n\n element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);\n });\n } // Bind event handler\n\n function on(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, true, passive, capture);\n } // Unbind event handler\n\n function off(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, false, passive, capture);\n } // Bind once-only event handler\n\n function once(element, events = '', callback, passive = true, capture = false) {\n const 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 } // Trigger event\n\n function triggerEvent(element, type = '', bubbles = false, detail = {}) {\n // Bail if no element\n if (!is.element(element) || is.empty(type)) {\n return;\n } // Create and dispatch the event\n\n\n const event = new CustomEvent(type, {\n bubbles,\n detail: { ...detail,\n plyr: this\n }\n }); // Dispatch the event\n\n element.dispatchEvent(event);\n } // Unbind all cached event listeners\n\n function unbindListeners() {\n if (this && this.eventListeners) {\n this.eventListeners.forEach(item => {\n const {\n element,\n type,\n callback,\n options\n } = item;\n element.removeEventListener(type, callback, options);\n });\n this.eventListeners = [];\n }\n } // Run method when / if player is ready\n\n function ready() {\n return new Promise(resolve => this.ready ? setTimeout(resolve, 0) : on.call(this, this.elements.container, 'ready', resolve)).then(() => {});\n }\n\n /**\n * Silence a Promise-like object.\n * This is useful for avoiding non-harmful, but potentially confusing \"uncaught\n * play promise\" rejection error messages.\n * @param {Object} value An object that may or may not be `Promise`-like.\n */\n\n function silencePromise(value) {\n if (is.promise(value)) {\n value.then(null, () => {});\n }\n }\n\n // ==========================================================================\n\n function dedupe(array) {\n if (!is.array(array)) {\n return array;\n }\n\n return array.filter((item, index) => array.indexOf(item) === index);\n } // Get the closest value in an array\n\n 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 // ==========================================================================\n\n function supportsCSS(declaration) {\n if (!window || !window.CSS) {\n return false;\n }\n\n return window.CSS.supports(declaration);\n } // Standard/common aspect ratios\n\n const standardRatios = [[1, 1], [4, 3], [3, 4], [5, 4], [4, 5], [3, 2], [2, 3], [16, 10], [10, 16], [16, 9], [9, 16], [21, 9], [9, 21], [32, 9], [9, 32]].reduce((out, [x, y]) => ({ ...out,\n [x / y]: [x, y]\n }), {}); // Validate an aspect ratio\n\n function validateAspectRatio(input) {\n if (!is.array(input) && (!is.string(input) || !input.includes(':'))) {\n return false;\n }\n\n const ratio = is.array(input) ? input : input.split(':');\n return ratio.map(Number).every(is.number);\n } // Reduce an aspect ratio to it's lowest form\n\n function reduceAspectRatio(ratio) {\n if (!is.array(ratio) || !ratio.every(is.number)) {\n return null;\n }\n\n const [width, height] = ratio;\n\n const getDivider = (w, h) => h === 0 ? w : getDivider(h, w % h);\n\n const divider = getDivider(width, height);\n return [width / divider, height / divider];\n } // Calculate an aspect ratio\n\n function getAspectRatio(input) {\n const parse = ratio => validateAspectRatio(ratio) ? ratio.split(':').map(Number) : null; // Try provided ratio\n\n\n let ratio = parse(input); // Get from config\n\n if (ratio === null) {\n ratio = parse(this.config.ratio);\n } // Get from embed\n\n\n if (ratio === null && !is.empty(this.embed) && is.array(this.embed.ratio)) {\n ({\n ratio\n } = this.embed);\n } // Get from HTML5 video\n\n\n if (ratio === null && this.isHTML5) {\n const {\n videoWidth,\n videoHeight\n } = this.media;\n ratio = [videoWidth, videoHeight];\n }\n\n return reduceAspectRatio(ratio);\n } // Set aspect ratio for responsive container\n\n function setAspectRatio(input) {\n if (!this.isVideo) {\n return {};\n }\n\n const {\n wrapper\n } = this.elements;\n const ratio = getAspectRatio.call(this, input);\n\n if (!is.array(ratio)) {\n return {};\n }\n\n const [x, y] = reduceAspectRatio(ratio);\n const useNative = supportsCSS(`aspect-ratio: ${x}/${y}`);\n const padding = 100 / x * y;\n\n if (useNative) {\n wrapper.style.aspectRatio = `${x}/${y}`;\n } else {\n wrapper.style.paddingBottom = `${padding}%`;\n } // For Vimeo we have an extra
to hide the standard controls and UI\n\n\n if (this.isVimeo && !this.config.vimeo.premium && this.supported.ui) {\n const height = 100 / this.media.offsetWidth * parseInt(window.getComputedStyle(this.media).paddingBottom, 10);\n const offset = (height - padding) / (height / 50);\n\n if (this.fullscreen.active) {\n wrapper.style.paddingBottom = null;\n } else {\n this.media.style.transform = `translateY(-${offset}%)`;\n }\n } else if (this.isHTML5) {\n wrapper.classList.add(this.config.classNames.videoFixedRatio);\n }\n\n return {\n padding,\n ratio\n };\n } // Round an aspect ratio to closest standard ratio\n\n function roundAspectRatio(x, y, tolerance = 0.05) {\n const ratio = x / y;\n const closestRatio = closest(Object.keys(standardRatios), ratio); // Check match is within tolerance\n\n if (Math.abs(closestRatio - ratio) <= tolerance) {\n return standardRatios[closestRatio];\n } // No match\n\n\n return [x, y];\n } // Get the size of the viewport\n // https://stackoverflow.com/questions/1248081/how-to-get-the-browser-viewport-dimensions\n\n function getViewportSize() {\n const width = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\n const height = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\n return [width, height];\n }\n\n // ==========================================================================\n const html5 = {\n getSources() {\n if (!this.isHTML5) {\n return [];\n }\n\n const sources = Array.from(this.media.querySelectorAll('source')); // Filter out unsupported sources (if type is specified)\n\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 // Whether we're forcing all options (e.g. for streaming)\n if (this.config.quality.forced) {\n return this.config.quality.options;\n } // Get sizes from elements\n\n\n return html5.getSources.call(this).map(source => Number(source.getAttribute('size'))).filter(Boolean);\n },\n\n setup() {\n if (!this.isHTML5) {\n return;\n }\n\n const player = this; // Set speed options from config\n\n player.options.speed = player.config.speed.options; // Set aspect ratio if fixed\n\n if (!is.empty(this.config.ratio)) {\n setAspectRatio.call(player);\n } // Quality\n\n\n Object.defineProperty(player.media, 'quality', {\n get() {\n // Get sources\n const sources = html5.getSources.call(player);\n const source = sources.find(s => s.getAttribute('src') === player.source); // Return size, if match is found\n\n return source && Number(source.getAttribute('size'));\n },\n\n set(input) {\n if (player.quality === input) {\n return;\n } // If we're using an external handler...\n\n\n if (player.config.quality.forced && is.function(player.config.quality.onChange)) {\n player.config.quality.onChange(input);\n } else {\n // Get sources\n const sources = html5.getSources.call(player); // Get first match for requested size\n\n const source = sources.find(s => Number(s.getAttribute('size')) === input); // No matching source found\n\n if (!source) {\n return;\n } // Get current state\n\n\n const {\n currentTime,\n paused,\n preload,\n readyState,\n playbackRate\n } = player.media; // Set new source\n\n player.media.src = source.getAttribute('src'); // Prevent loading if preload=\"none\" and the current source isn't loaded (#1044)\n\n if (preload !== 'none' || readyState) {\n // Restore time\n player.once('loadedmetadata', () => {\n player.speed = playbackRate;\n player.currentTime = currentTime; // Resume playing\n\n if (!paused) {\n silencePromise(player.play());\n }\n }); // Load new source\n\n player.media.load();\n }\n } // Trigger change event\n\n\n triggerEvent.call(player, player.media, 'qualitychange', false, {\n quality: input\n });\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 } // Remove child sources\n\n\n removeElement(html5.getSources.call(this)); // 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\n this.media.setAttribute('src', this.config.blankVideo); // Load the new empty source\n // This will cancel existing requests\n // See https://github.com/sampotts/plyr/issues/174\n\n this.media.load(); // Debugging\n\n this.debug.log('Cancelled network requests');\n }\n\n };\n\n // ==========================================================================\n\n function generateId(prefix) {\n return `${prefix}-${Math.floor(Math.random() * 10000)}`;\n } // Format string\n\n 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 } // Get percentage\n\n 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 } // Replace all occurances of a string in a string\n\n const replaceAll = (input = '', find = '', replace = '') => input.replace(new RegExp(find.toString().replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1'), 'g'), replace.toString()); // Convert to title case\n\n const toTitleCase = (input = '') => input.toString().replace(/\\w\\S*/g, text => text.charAt(0).toUpperCase() + text.substr(1).toLowerCase()); // Convert string to pascalCase\n\n function toPascalCase(input = '') {\n let string = input.toString(); // Convert kebab case\n\n string = replaceAll(string, '-', ' '); // Convert snake case\n\n string = replaceAll(string, '_', ' '); // Convert to title case\n\n string = toTitleCase(string); // Convert to pascal case\n\n return replaceAll(string, ' ', '');\n } // Convert string to pascalCase\n\n function toCamelCase(input = '') {\n let string = input.toString(); // Convert to pascal case\n\n string = toPascalCase(string); // Convert first character to lowercase\n\n return string.charAt(0).toLowerCase() + string.slice(1);\n } // Remove HTML from a string\n\n 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 } // Like outerHTML, but also works for DocumentFragment\n\n function getHTML(element) {\n const wrapper = document.createElement('div');\n wrapper.appendChild(element);\n return wrapper.innerHTML;\n }\n\n // ==========================================================================\n\n const resources = {\n pip: 'PIP',\n airplay: 'AirPlay',\n html5: 'HTML5',\n vimeo: 'Vimeo',\n youtube: 'YouTube'\n };\n const 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 Object.entries(replace).forEach(([k, v]) => {\n string = replaceAll(string, k, v);\n });\n return string;\n }\n\n };\n\n class Storage {\n constructor(player) {\n _defineProperty$1(this, \"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 return is.string(key) && key.length ? json[key] : json;\n });\n\n _defineProperty$1(this, \"set\", object => {\n // Bail if we don't have localStorage support or it's disabled\n if (!Storage.supported || !this.enabled) {\n return;\n } // Can only store objectst\n\n\n if (!is.object(object)) {\n return;\n } // Get current storage\n\n\n let storage = this.get(); // Default to empty object\n\n if (is.empty(storage)) {\n storage = {};\n } // Update the working copy of the values\n\n\n extend(storage, object); // Update storage\n\n try {\n window.localStorage.setItem(this.key, JSON.stringify(storage));\n } catch (_) {// Do nothing\n }\n });\n\n this.enabled = player.config.storage.enabled;\n this.key = player.config.storage.key;\n } // Check for actual support (see if we can use it)\n\n\n static get supported() {\n try {\n if (!('localStorage' in window)) {\n return false;\n }\n\n const test = '___test'; // 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\n window.localStorage.setItem(test, test);\n window.localStorage.removeItem(test);\n return true;\n } catch (_) {\n return false;\n }\n }\n\n }\n\n // ==========================================================================\n // Fetch wrapper\n // Using XHR to avoid issues with older browsers\n // ==========================================================================\n function fetch(url, responseType = 'text') {\n return new Promise((resolve, reject) => {\n try {\n const request = new XMLHttpRequest(); // Check for CORS support\n\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 (_) {\n resolve(request.responseText);\n }\n } else {\n resolve(request.response);\n }\n });\n request.addEventListener('error', () => {\n throw new Error(request.status);\n });\n request.open('GET', url, true); // Set the required response type\n\n request.responseType = responseType;\n request.send();\n } catch (error) {\n reject(error);\n }\n });\n }\n\n // ==========================================================================\n\n 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 // eslint-disable-next-line no-param-reassign\n container.innerHTML = data; // Check again incase of race condition\n\n if (hasId && exists()) {\n return;\n } // Inject the SVG to the body\n\n\n document.body.insertAdjacentElement('afterbegin', container);\n }; // Only load once if ID set\n\n\n if (!hasId || !exists()) {\n const useStorage = Storage.supported; // Create container\n\n const container = document.createElement('div');\n container.setAttribute('hidden', '');\n\n if (hasId) {\n container.setAttribute('id', id);\n } // Check in cache\n\n\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 } // Get the sprite\n\n\n fetch(url).then(result => {\n if (is.empty(result)) {\n return;\n }\n\n if (useStorage) {\n try {\n window.localStorage.setItem(`${prefix}-${id}`, JSON.stringify({\n content: result\n }));\n } catch (_) {// Do nothing\n }\n }\n\n update(container, result);\n }).catch(() => {});\n }\n }\n\n // ==========================================================================\n\n const getHours = value => Math.trunc(value / 60 / 60 % 60, 10);\n const getMinutes = value => Math.trunc(value / 60 % 60, 10);\n const getSeconds = value => Math.trunc(value % 60, 10); // Format time to UI friendly string\n\n 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(undefined, displayHours, inverted);\n } // Format time component to add leading zero\n\n\n const format = value => `0${value}`.slice(-2); // Breakdown to hours, mins, secs\n\n\n let hours = getHours(time);\n const mins = getMinutes(time);\n const secs = getSeconds(time); // Do we need to display hours?\n\n if (displayHours || hours > 0) {\n hours = `${hours}:`;\n } else {\n hours = '';\n } // Render\n\n\n return `${inverted && time > 0 ? '-' : ''}${hours}${format(mins)}:${format(secs)}`;\n }\n\n // ==========================================================================\n\n const controls = {\n // Get icon URL\n getIconUrl() {\n const url = new URL(this.config.iconUrl, window.location);\n const host = window.location.host ? window.location.host : window.top.location.host;\n const cors = url.host !== host || browser.isIE && !window.svg4everybody;\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); // Buttons\n\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 }; // Progress\n\n this.elements.progress = getElement.call(this, this.config.selectors.progress); // Inputs\n\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 }; // Display\n\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 }; // Seek tooltip\n\n if (is.element(this.elements.progress)) {\n this.elements.display.seekTooltip = this.elements.progress.querySelector(`.${this.config.classNames.tooltip}`);\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); // Restore native video controls\n\n this.toggleNativeControls(true);\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}`; // Create \n\n const icon = document.createElementNS(namespace, 'svg');\n setAttributes(icon, extend(attributes, {\n 'aria-hidden': 'true',\n focusable: 'false'\n })); // Create the to reference sprite\n\n const use = document.createElementNS(namespace, 'use');\n const path = `${iconPath}-${type}`; // 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\n if ('href' in use) {\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n } // Always set the older attribute even though it's \"deprecated\" (it'll be around for ages)\n\n\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', path); // Add to \n\n icon.appendChild(use);\n return icon;\n },\n\n // Create hidden text label\n createLabel(key, attr = {}) {\n const text = i18n.get(key, this.config);\n const attributes = { ...attr,\n class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' ')\n };\n return createElement('span', attributes, text);\n },\n\n // Create a badge\n createBadge(text) {\n if (is.empty(text)) {\n return null;\n }\n\n const badge = createElement('span', {\n class: this.config.classNames.menu.value\n });\n badge.appendChild(createElement('span', {\n class: this.config.classNames.menu.badge\n }, text));\n return badge;\n },\n\n // Create a
if needed\n\n if (is.empty(source)) {\n source = player.media.getAttribute(player.config.attributes.embed.id); // hash can also be set as attribute on the
\n\n hash = player.media.getAttribute(player.config.attributes.embed.hash);\n } else {\n hash = parseHash(source);\n }\n\n const hashParam = hash ? {\n h: hash\n } : {}; // If the owner has a pro or premium account then we can hide controls etc\n\n if (premium) {\n Object.assign(frameParams, {\n controls: false,\n sidedock: false\n });\n } // Get Vimeo params for the iframe\n\n\n const params = buildUrlParams({\n loop: player.config.loop.active,\n autoplay: player.autoplay,\n muted: player.muted,\n gesture: 'media',\n playsinline: !this.config.fullscreen.iosNative,\n // hash has to be added to iframe-URL\n ...hashParam,\n ...frameParams\n });\n const id = parseId$1(source); // Build an iframe\n\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('allow', ['autoplay', 'fullscreen', 'picture-in-picture', 'encrypted-media', 'accelerometer', 'gyroscope'].join('; ')); // Set the referrer policy if required\n\n if (!is.empty(referrerPolicy)) {\n iframe.setAttribute('referrerPolicy', referrerPolicy);\n } // Inject the package\n\n\n if (premium || !config.customControls) {\n iframe.setAttribute('data-poster', player.poster);\n player.media = replaceElement(iframe, player.media);\n } else {\n const wrapper = createElement('div', {\n class: player.config.classNames.embedContainer,\n 'data-poster': player.poster\n });\n wrapper.appendChild(iframe);\n player.media = replaceElement(wrapper, player.media);\n } // Get poster image\n\n\n if (!config.customControls) {\n fetch(format(player.config.urls.vimeo.api, src)).then(response => {\n if (is.empty(response) || !response.thumbnail_url) {\n return;\n } // Set and show poster\n\n\n ui.setPoster.call(player, response.thumbnail_url).catch(() => {});\n });\n } // Setup instance\n // https://github.com/vimeo/player.js\n\n\n player.embed = new window.Vimeo.Player(iframe, {\n autopause: player.config.autopause,\n muted: player.muted\n });\n player.media.paused = true;\n player.media.currentTime = 0; // Disable native text track rendering\n\n if (player.supported.ui) {\n player.embed.disableTextTrack();\n } // Create a faux HTML5 API using the Vimeo API\n\n\n player.media.play = () => {\n assurePlaybackState$1.call(player, true);\n return player.embed.play();\n };\n\n player.media.pause = () => {\n assurePlaybackState$1.call(player, false);\n return player.embed.pause();\n };\n\n player.media.stop = () => {\n player.pause();\n player.currentTime = 0;\n }; // Seeking\n\n\n let {\n currentTime\n } = player.media;\n Object.defineProperty(player.media, 'currentTime', {\n get() {\n return currentTime;\n },\n\n set(time) {\n // Vimeo will automatically play on seek if the video hasn't been played before\n // Get current paused state and volume etc\n const {\n embed,\n media,\n paused,\n volume\n } = player;\n const restorePause = paused && !embed.hasPlayed; // Set seeking state and trigger event\n\n media.seeking = true;\n triggerEvent.call(player, media, 'seeking'); // If paused, mute until seek is complete\n\n Promise.resolve(restorePause && embed.setVolume(0)) // Seek\n .then(() => embed.setCurrentTime(time)) // Restore paused\n .then(() => restorePause && embed.pause()) // Restore volume\n .then(() => restorePause && embed.setVolume(volume)).catch(() => {// Do nothing\n });\n }\n\n }); // Playback speed\n\n let speed = player.config.speed.selected;\n Object.defineProperty(player.media, 'playbackRate', {\n get() {\n return speed;\n },\n\n set(input) {\n player.embed.setPlaybackRate(input).then(() => {\n speed = input;\n triggerEvent.call(player, player.media, 'ratechange');\n }).catch(() => {\n // Cannot set Playback Rate, Video is probably not on Pro account\n player.options.speed = [1];\n });\n }\n\n }); // Volume\n\n let {\n volume\n } = player.config;\n Object.defineProperty(player.media, 'volume', {\n get() {\n return volume;\n },\n\n set(input) {\n player.embed.setVolume(input).then(() => {\n volume = input;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n }\n\n }); // Muted\n\n let {\n muted\n } = player.config;\n Object.defineProperty(player.media, 'muted', {\n get() {\n return muted;\n },\n\n set(input) {\n const toggle = is.boolean(input) ? input : false;\n player.embed.setVolume(toggle ? 0 : player.config.volume).then(() => {\n muted = toggle;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n }\n\n }); // Loop\n\n let {\n loop\n } = player.config;\n Object.defineProperty(player.media, 'loop', {\n get() {\n return loop;\n },\n\n set(input) {\n const toggle = is.boolean(input) ? input : player.config.loop.active;\n player.embed.setLoop(toggle).then(() => {\n loop = toggle;\n });\n }\n\n }); // Source\n\n let currentSrc;\n player.embed.getVideoUrl().then(value => {\n currentSrc = value;\n controls.setDownloadUrl.call(player);\n }).catch(error => {\n this.debug.warn(error);\n });\n Object.defineProperty(player.media, 'currentSrc', {\n get() {\n return currentSrc;\n }\n\n }); // Ended\n\n Object.defineProperty(player.media, 'ended', {\n get() {\n return player.currentTime === player.duration;\n }\n\n }); // Set aspect ratio based on video size\n\n Promise.all([player.embed.getVideoWidth(), player.embed.getVideoHeight()]).then(dimensions => {\n const [width, height] = dimensions;\n player.embed.ratio = roundAspectRatio(width, height);\n setAspectRatio.call(this);\n }); // Set autopause\n\n player.embed.setAutopause(player.config.autopause).then(state => {\n player.config.autopause = state;\n }); // Get title\n\n player.embed.getVideoTitle().then(title => {\n player.config.title = title;\n ui.setTitle.call(this);\n }); // Get current time\n\n player.embed.getCurrentTime().then(value => {\n currentTime = value;\n triggerEvent.call(player, player.media, 'timeupdate');\n }); // Get duration\n\n player.embed.getDuration().then(value => {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n }); // Get captions\n\n player.embed.getTextTracks().then(tracks => {\n player.media.textTracks = tracks;\n captions.setup.call(player);\n });\n player.embed.on('cuechange', ({\n cues = []\n }) => {\n const strippedCues = cues.map(cue => stripHTML(cue.text));\n captions.updateCues.call(player, strippedCues);\n });\n player.embed.on('loaded', () => {\n // Assure state and events are updated on autoplay\n player.embed.getPaused().then(paused => {\n assurePlaybackState$1.call(player, !paused);\n\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; // Fix keyboard focus issues\n // https://github.com/sampotts/plyr/issues/317\n\n frame.setAttribute('tabindex', -1);\n }\n });\n player.embed.on('bufferstart', () => {\n triggerEvent.call(player, player.media, 'waiting');\n });\n player.embed.on('bufferend', () => {\n triggerEvent.call(player, player.media, 'playing');\n });\n player.embed.on('play', () => {\n assurePlaybackState$1.call(player, true);\n triggerEvent.call(player, player.media, 'playing');\n });\n player.embed.on('pause', () => {\n assurePlaybackState$1.call(player, false);\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 player.embed.on('progress', data => {\n player.media.buffered = data.percent;\n triggerEvent.call(player, player.media, 'progress'); // Check all loaded\n\n if (parseInt(data.percent, 10) === 1) {\n triggerEvent.call(player, player.media, 'canplaythrough');\n } // Get duration as if we do it before load, it gives an incorrect value\n // https://github.com/sampotts/plyr/issues/891\n\n\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 player.embed.on('seeked', () => {\n player.media.seeking = false;\n triggerEvent.call(player, player.media, 'seeked');\n });\n player.embed.on('ended', () => {\n player.media.paused = true;\n triggerEvent.call(player, player.media, 'ended');\n });\n player.embed.on('error', detail => {\n player.media.error = detail;\n triggerEvent.call(player, player.media, 'error');\n }); // Rebuild UI\n\n if (config.customControls) {\n setTimeout(() => ui.build.call(player), 0);\n }\n }\n\n };\n\n // ==========================================================================\n\n function 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 } // Set playback state and trigger change (only on actual change)\n\n\n function assurePlaybackState(play) {\n if (play && !this.embed.hasPlayed) {\n this.embed.hasPlayed = true;\n }\n\n if (this.media.paused === play) {\n this.media.paused = !play;\n triggerEvent.call(this, this.media, play ? 'play' : 'pause');\n }\n }\n\n function getHost(config) {\n if (config.noCookie) {\n return 'https://www.youtube-nocookie.com';\n }\n\n if (window.location.protocol === 'http:') {\n return 'http://www.youtube.com';\n } // Use YouTube's default\n\n\n return undefined;\n }\n\n const youtube = {\n setup() {\n // Add embed class for responsive\n toggleClass(this.elements.wrapper, this.config.classNames.embed, true); // Setup API\n\n if (is.object(window.YT) && is.function(window.YT.Player)) {\n youtube.ready.call(this);\n } else {\n // Reference current global callback\n const callback = window.onYouTubeIframeAPIReady; // Set callback to process queue\n\n window.onYouTubeIframeAPIReady = () => {\n // Call global callback if set\n if (is.function(callback)) {\n callback();\n }\n\n youtube.ready.call(this);\n }; // Load the SDK\n\n\n loadScript(this.config.urls.youtube.sdk).catch(error => {\n this.debug.warn('YouTube API failed to load', error);\n });\n }\n },\n\n // Get the media title\n getTitle(videoId) {\n const url = format(this.config.urls.youtube.api, videoId);\n fetch(url).then(data => {\n if (is.object(data)) {\n const {\n title,\n height,\n width\n } = data; // Set title\n\n this.config.title = title;\n ui.setTitle.call(this); // Set aspect ratio\n\n this.embed.ratio = roundAspectRatio(width, height);\n }\n\n setAspectRatio.call(this);\n }).catch(() => {\n // Set aspect ratio\n setAspectRatio.call(this);\n });\n },\n\n // API ready\n ready() {\n const player = this;\n const config = player.config.youtube; // Ignore already setup (race condition)\n\n const currentId = player.media && player.media.getAttribute('id');\n\n if (!is.empty(currentId) && currentId.startsWith('youtube-')) {\n return;\n } // Get the source URL or ID\n\n\n let source = player.media.getAttribute('src'); // Get from
if needed\n\n if (is.empty(source)) {\n source = player.media.getAttribute(this.config.attributes.embed.id);\n } // Replace the