{"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","[object Object]","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","audio/ogg","audio/wav","video/webm","video/mp4","video/ogg","support","audio","video","check","provider","playsinline","canPlayInline","api","ui","rangeInput","pip","webkitSetPresentationMode","pictureInPictureEnabled","disablePictureInPicture","airplay","WebKitPlaybackTargetAvailabilityEvent","mime","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}","seekTime","{title}","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","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","cors","iconUrl","location","host","svg4everybody","findElements","selectors","buttons","pause","restart","rewind","fastForward","mute","settings","captions","progress","inputs","seek","volume","display","buffer","duration","seekTooltip","tooltip","error","warn","toggleNativeControls","createIcon","namespace","iconPath","iconPrefix","icon","createElementNS","aria-hidden","focusable","use","setAttributeNS","createLabel","attr","join","createBadge","badge","menu","createButton","buttonType","props","label","labelPressed","iconPressed","some","control","button","createRange","min","step","autocomplete","role","aria-label","aria-valuemin","aria-valuemax","aria-valuenow","updateRangeFill","createProgress","suffixKey","played","suffix","createTime","attrs","bindMenuItemShortcuts","menuItem","which","stopPropagation","isRadioButton","showMenuPanel","nextElementSibling","firstElementChild","previousElementSibling","lastElementChild","focusFirstMenuItem","createMenuItem","list","checked","aria-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","aria-haspopup","aria-controls","aria-expanded","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","2160","1440","1080","720","576","480","sdk","iframe","googleIMA","editable","embedContainer","poster","posterEnabled","ads","playing","stopped","loading","hover","isTouch","uiSupported","noTransition","previewThumbnails","thumbContainer","thumbContainerShown","imageContainer","timeContainer","scrubbingContainer","scrubbingContainerShown","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","fullscreenElement","shadowRoot","getRootNode","loadImage","minWidth","image","Image","handler","onload","onerror","naturalWidth","addStyleHook","build","checkPlaying","setTitle","setPoster","togglePoster","enable","err","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","sidedock","gesture","$2","data-poster","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","2","5","100","101","150","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","top","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","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 (e) {\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 (e) {// 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 (e) {\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 (e) {// 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 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 window.localStorage.setItem(this.key, JSON.stringify(storage));\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 (e) {\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 (e) {\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 (e) {\n reject(e);\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 window.localStorage.setItem(`${prefix}-${id}`, JSON.stringify({\n content: result\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 cors = url.host !== window.location.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);\n }\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