{"version":3,"sources":["plyr.polyfilled.js","node_modules/custom-event-polyfill/polyfill.js","node_modules/rangetouch/dist/rangetouch.mjs","node_modules/url-polyfill/url-polyfill.js","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","window","ce","CustomEvent","cancelable","preventDefault","defaultPrevented","Error","e","event","params","evt","origPrevent","bubbles","document","createEvent","initCustomEvent","detail","call","Object","defineProperty","get","prototype","Event","commonjsGlobal","_defineProperty$1","obj","key","value","enumerable","configurable","writable","_defineProperties","t","n","length","r","_defineProperty","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","push","apply","_objectSpread2","arguments","forEach","getOwnPropertyDescriptors","defineProperties","iteratorSupported","Symbol","iterator","error","checkIfIteratorIsSupported","createIterator","items","next","shift","done","serializeParam","encodeURIComponent","replace","deserializeParam","decodeURIComponent","String","URLSearchParams","toString","set","entries","checkIfURLSearchParamsSupported","searchString","typeofSearchString","_fromString","_this","name","append","TypeError","i","entry","hasOwnProperty","proto","_entries","delete","getAll","slice","has","callback","thisArg","values","searchArray","join","polyfillURLSearchParams","sort","a","b","attribute","attributes","split","u","URL","pathname","href","searchParams","checkIfURLIsSupported","_URL","url","base","baseElement","doc","location","toLowerCase","implementation","createHTMLDocument","createElement","head","appendChild","indexOf","err","anchorElement","body","inputElement","type","protocol","test","checkValidity","search","enableSearchUpdate","enableSearchParamsUpdate","methodName","method","attributeName","_anchorElement","linkURLWithAnchorAttribute","_updateSearchParams","origin","expectedPort","addPortToOrigin","port","hostname","password","username","createObjectURL","blob","revokeObjectURL","polyfillURL","getOrigin","setInterval","defaults","addCSS","thumbWidth","watch","matches","Array","from","querySelectorAll","includes","getConstructor","constructor","instanceOf","isNullOrUndefined","isObject","isString","isArray","isNodeList","NodeList","is","Element","round","concat","match","Math","max","getDecimalPlaces","parseFloat","toFixed","RangeTouch","_classCallCheck","element","querySelector","rangeTouch","config","init","_createClass","enabled","style","userSelect","webKitUserSelect","touchAction","listeners","target","changedTouches","o","getAttribute","s","c","getBoundingClientRect","width","clientX","left","disabled","dispatchEvent","trigger","MutationObserver","addedNodes","observe","childList","subtree","map","documentElement","input","Boolean","isFunction","Function","isEmpty","Number","isNaN","nodeType","ownerDocument","KeyboardEvent","TextTrack","kind","Promise","then","string","startsWith","_","transitionEndEvent","events","WebkitTransition","MozTransition","OTransition","transition","find","undefined","repaint","delay","setTimeout","hidden","offsetHeight","browser","isIE","documentMode","isEdge","userAgent","isWebkit","isIPhone","platform","isIos","maxTouchPoints","getDeep","object","path","reduce","extend","sources","source","assign","wrap","elements","wrapper","targets","reverse","index","child","cloneNode","parent","parentNode","sibling","nextSibling","insertBefore","setAttributes","setAttribute","text","innerText","insertElement","removeElement","removeChild","emptyElement","childNodes","lastChild","replaceElement","newChild","oldChild","replaceChild","getAttributesFromSelector","sel","existingAttributes","existing","selector","trim","className","parts","charAt","class","id","toggleHidden","hide","toggleClass","force","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","toggle","passive","capture","eventListeners","on","off","once","onceCallback","args","triggerEvent","plyr","unbindListeners","item","ready","resolve","silencePromise","dedupe","array","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","replaceAll","RegExp","toTitleCase","toUpperCase","substr","toCamelCase","toPascalCase","getHTML","innerHTML","resources","youtube","i18n","seekTime","title","k","v","Storage","store","localStorage","getItem","json","JSON","storage","setItem","stringify","removeItem","fetch","responseType","reject","request","XMLHttpRequest","responseText","response","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","iconUrl","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","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","sorting","setCaptionsMenu","tracks","getTracks","track","toggled","language","unshift","setSpeedMenu","minimumSpeed","maximumSpeed","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","urls","isEmbed","inject","floor","random","seektime","addProperty","controlPressed","labels","parseUrl","safe","parser","buildUrlParams","isYouTube","languages","userLanguage","trackEvents","meta","currentTrackNode","languageExists","mode","updateCues","setLanguage","activeClass","findTrack","enableTextTrack","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","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","hasAttribute","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","async","maxTries","numRetries","beforeCallbackFn","before","pathStripped","relList","as","onbeforeload","ev","sheet","cssText","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","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","truthy","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.polyfilled.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 // Polyfill for creating CustomEvents on IE9/10/11\n // code pulled from:\n // https://github.com/d4tocchini/customevent-polyfill\n // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n (function () {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n var ce = new window.CustomEvent('test', {\n cancelable: true\n });\n ce.preventDefault();\n\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n } catch (e) {\n var CustomEvent = function (event, params) {\n var evt, origPrevent;\n params = params || {};\n params.bubbles = !!params.bubbles;\n params.cancelable = !!params.cancelable;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n origPrevent = evt.preventDefault;\n\n evt.preventDefault = function () {\n origPrevent.call(this);\n\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n } catch (e) {\n this.defaultPrevented = true;\n }\n };\n\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n }\n })();\n\n var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n function createCommonjsModule(fn, module) {\n \treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n }\n\n (function (global) {\n /**\r\n * Polyfill URLSearchParams\r\n *\r\n * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js\r\n */\n var checkIfIteratorIsSupported = function () {\n try {\n return !!Symbol.iterator;\n } catch (error) {\n return false;\n }\n };\n\n var iteratorSupported = checkIfIteratorIsSupported();\n\n var createIterator = function (items) {\n var iterator = {\n next: function () {\n var value = items.shift();\n return {\n done: value === void 0,\n value: value\n };\n }\n };\n\n if (iteratorSupported) {\n iterator[Symbol.iterator] = function () {\n return iterator;\n };\n }\n\n return iterator;\n };\n /**\r\n * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing\r\n * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.\r\n */\n\n\n var serializeParam = function (value) {\n return encodeURIComponent(value).replace(/%20/g, '+');\n };\n\n var deserializeParam = function (value) {\n return decodeURIComponent(String(value).replace(/\\+/g, ' '));\n };\n\n var polyfillURLSearchParams = function () {\n var URLSearchParams = function (searchString) {\n Object.defineProperty(this, '_entries', {\n writable: true,\n value: {}\n });\n var typeofSearchString = typeof searchString;\n\n if (typeofSearchString === 'undefined') ; else if (typeofSearchString === 'string') {\n if (searchString !== '') {\n this._fromString(searchString);\n }\n } else if (searchString instanceof URLSearchParams) {\n var _this = this;\n\n searchString.forEach(function (value, name) {\n _this.append(name, value);\n });\n } else if (searchString !== null && typeofSearchString === 'object') {\n if (Object.prototype.toString.call(searchString) === '[object Array]') {\n for (var i = 0; i < searchString.length; i++) {\n var entry = searchString[i];\n\n if (Object.prototype.toString.call(entry) === '[object Array]' || entry.length !== 2) {\n this.append(entry[0], entry[1]);\n } else {\n throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\\'s input');\n }\n }\n } else {\n for (var key in searchString) {\n if (searchString.hasOwnProperty(key)) {\n this.append(key, searchString[key]);\n }\n }\n }\n } else {\n throw new TypeError('Unsupported input\\'s type for URLSearchParams');\n }\n };\n\n var proto = URLSearchParams.prototype;\n\n proto.append = function (name, value) {\n if (name in this._entries) {\n this._entries[name].push(String(value));\n } else {\n this._entries[name] = [String(value)];\n }\n };\n\n proto.delete = function (name) {\n delete this._entries[name];\n };\n\n proto.get = function (name) {\n return name in this._entries ? this._entries[name][0] : null;\n };\n\n proto.getAll = function (name) {\n return name in this._entries ? this._entries[name].slice(0) : [];\n };\n\n proto.has = function (name) {\n return name in this._entries;\n };\n\n proto.set = function (name, value) {\n this._entries[name] = [String(value)];\n };\n\n proto.forEach = function (callback, thisArg) {\n var entries;\n\n for (var name in this._entries) {\n if (this._entries.hasOwnProperty(name)) {\n entries = this._entries[name];\n\n for (var i = 0; i < entries.length; i++) {\n callback.call(thisArg, entries[i], name, this);\n }\n }\n }\n };\n\n proto.keys = function () {\n var items = [];\n this.forEach(function (value, name) {\n items.push(name);\n });\n return createIterator(items);\n };\n\n proto.values = function () {\n var items = [];\n this.forEach(function (value) {\n items.push(value);\n });\n return createIterator(items);\n };\n\n proto.entries = function () {\n var items = [];\n this.forEach(function (value, name) {\n items.push([name, value]);\n });\n return createIterator(items);\n };\n\n if (iteratorSupported) {\n proto[Symbol.iterator] = proto.entries;\n }\n\n proto.toString = function () {\n var searchArray = [];\n this.forEach(function (value, name) {\n searchArray.push(serializeParam(name) + '=' + serializeParam(value));\n });\n return searchArray.join('&');\n };\n\n global.URLSearchParams = URLSearchParams;\n };\n\n var checkIfURLSearchParamsSupported = function () {\n try {\n var URLSearchParams = global.URLSearchParams;\n return new URLSearchParams('?a=1').toString() === 'a=1' && typeof URLSearchParams.prototype.set === 'function' && typeof URLSearchParams.prototype.entries === 'function';\n } catch (e) {\n return false;\n }\n };\n\n if (!checkIfURLSearchParamsSupported()) {\n polyfillURLSearchParams();\n }\n\n var proto = global.URLSearchParams.prototype;\n\n if (typeof proto.sort !== 'function') {\n proto.sort = function () {\n var _this = this;\n\n var items = [];\n this.forEach(function (value, name) {\n items.push([name, value]);\n\n if (!_this._entries) {\n _this.delete(name);\n }\n });\n items.sort(function (a, b) {\n if (a[0] < b[0]) {\n return -1;\n } else if (a[0] > b[0]) {\n return +1;\n } else {\n return 0;\n }\n });\n\n if (_this._entries) {\n // force reset because IE keeps keys index\n _this._entries = {};\n }\n\n for (var i = 0; i < items.length; i++) {\n this.append(items[i][0], items[i][1]);\n }\n };\n }\n\n if (typeof proto._fromString !== 'function') {\n Object.defineProperty(proto, '_fromString', {\n enumerable: false,\n configurable: false,\n writable: false,\n value: function (searchString) {\n if (this._entries) {\n this._entries = {};\n } else {\n var keys = [];\n this.forEach(function (value, name) {\n keys.push(name);\n });\n\n for (var i = 0; i < keys.length; i++) {\n this.delete(keys[i]);\n }\n }\n\n searchString = searchString.replace(/^\\?/, '');\n var attributes = searchString.split('&');\n var attribute;\n\n for (var i = 0; i < attributes.length; i++) {\n attribute = attributes[i].split('=');\n this.append(deserializeParam(attribute[0]), attribute.length > 1 ? deserializeParam(attribute[1]) : '');\n }\n }\n });\n } // HTMLAnchorElement\n\n })(typeof commonjsGlobal !== 'undefined' ? commonjsGlobal : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : commonjsGlobal);\n\n (function (global) {\n /**\r\n * Polyfill URL\r\n *\r\n * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js\r\n */\n var checkIfURLIsSupported = function () {\n try {\n var u = new global.URL('b', 'http://a');\n u.pathname = 'c d';\n return u.href === 'http://a/c%20d' && u.searchParams;\n } catch (e) {\n return false;\n }\n };\n\n var polyfillURL = function () {\n var _URL = global.URL;\n\n var URL = function (url, base) {\n if (typeof url !== 'string') url = String(url);\n if (base && typeof base !== 'string') base = String(base); // Only create another document if the base is different from current location.\n\n var doc = document,\n baseElement;\n\n if (base && (global.location === void 0 || base !== global.location.href)) {\n base = base.toLowerCase();\n doc = document.implementation.createHTMLDocument('');\n baseElement = doc.createElement('base');\n baseElement.href = base;\n doc.head.appendChild(baseElement);\n\n try {\n if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);\n } catch (err) {\n throw new Error('URL unable to set base ' + base + ' due to ' + err);\n }\n }\n\n var anchorElement = doc.createElement('a');\n anchorElement.href = url;\n\n if (baseElement) {\n doc.body.appendChild(anchorElement);\n anchorElement.href = anchorElement.href; // force href to refresh\n }\n\n var inputElement = doc.createElement('input');\n inputElement.type = 'url';\n inputElement.value = url;\n\n if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href) || !inputElement.checkValidity() && !base) {\n throw new TypeError('Invalid URL');\n }\n\n Object.defineProperty(this, '_anchorElement', {\n value: anchorElement\n }); // create a linked searchParams which reflect its changes on URL\n\n var searchParams = new global.URLSearchParams(this.search);\n var enableSearchUpdate = true;\n var enableSearchParamsUpdate = true;\n\n var _this = this;\n\n ['append', 'delete', 'set'].forEach(function (methodName) {\n var method = searchParams[methodName];\n\n searchParams[methodName] = function () {\n method.apply(searchParams, arguments);\n\n if (enableSearchUpdate) {\n enableSearchParamsUpdate = false;\n _this.search = searchParams.toString();\n enableSearchParamsUpdate = true;\n }\n };\n });\n Object.defineProperty(this, 'searchParams', {\n value: searchParams,\n enumerable: true\n });\n var search = void 0;\n Object.defineProperty(this, '_updateSearchParams', {\n enumerable: false,\n configurable: false,\n writable: false,\n value: function () {\n if (this.search !== search) {\n search = this.search;\n\n if (enableSearchParamsUpdate) {\n enableSearchUpdate = false;\n\n this.searchParams._fromString(this.search);\n\n enableSearchUpdate = true;\n }\n }\n }\n });\n };\n\n var proto = URL.prototype;\n\n var linkURLWithAnchorAttribute = function (attributeName) {\n Object.defineProperty(proto, attributeName, {\n get: function () {\n return this._anchorElement[attributeName];\n },\n set: function (value) {\n this._anchorElement[attributeName] = value;\n },\n enumerable: true\n });\n };\n\n ['hash', 'host', 'hostname', 'port', 'protocol'].forEach(function (attributeName) {\n linkURLWithAnchorAttribute(attributeName);\n });\n Object.defineProperty(proto, 'search', {\n get: function () {\n return this._anchorElement['search'];\n },\n set: function (value) {\n this._anchorElement['search'] = value;\n\n this._updateSearchParams();\n },\n enumerable: true\n });\n Object.defineProperties(proto, {\n 'toString': {\n get: function () {\n var _this = this;\n\n return function () {\n return _this.href;\n };\n }\n },\n 'href': {\n get: function () {\n return this._anchorElement.href.replace(/\\?$/, '');\n },\n set: function (value) {\n this._anchorElement.href = value;\n\n this._updateSearchParams();\n },\n enumerable: true\n },\n 'pathname': {\n get: function () {\n return this._anchorElement.pathname.replace(/(^\\/?)/, '/');\n },\n set: function (value) {\n this._anchorElement.pathname = value;\n },\n enumerable: true\n },\n 'origin': {\n get: function () {\n // get expected port from protocol\n var expectedPort = {\n 'http:': 80,\n 'https:': 443,\n 'ftp:': 21\n }[this._anchorElement.protocol]; // add port to origin if, expected port is different than actual port\n // and it is not empty f.e http://foo:8080\n // 8080 != 80 && 8080 != ''\n\n var addPortToOrigin = this._anchorElement.port != expectedPort && this._anchorElement.port !== '';\n return this._anchorElement.protocol + '//' + this._anchorElement.hostname + (addPortToOrigin ? ':' + this._anchorElement.port : '');\n },\n enumerable: true\n },\n 'password': {\n // TODO\n get: function () {\n return '';\n },\n set: function (value) {},\n enumerable: true\n },\n 'username': {\n // TODO\n get: function () {\n return '';\n },\n set: function (value) {},\n enumerable: true\n }\n });\n\n URL.createObjectURL = function (blob) {\n return _URL.createObjectURL.apply(_URL, arguments);\n };\n\n URL.revokeObjectURL = function (url) {\n return _URL.revokeObjectURL.apply(_URL, arguments);\n };\n\n global.URL = URL;\n };\n\n if (!checkIfURLIsSupported()) {\n polyfillURL();\n }\n\n if (global.location !== void 0 && !('origin' in global.location)) {\n var getOrigin = function () {\n return global.location.protocol + '//' + global.location.hostname + (global.location.port ? ':' + global.location.port : '');\n };\n\n try {\n Object.defineProperty(global.location, 'origin', {\n get: getOrigin,\n enumerable: true\n });\n } catch (e) {\n setInterval(function () {\n global.location.origin = getOrigin();\n }, 100);\n }\n }\n })(typeof commonjsGlobal !== 'undefined' ? commonjsGlobal : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : commonjsGlobal);\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('data-res'))).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('data-res'));\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('data-res')) === 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