{"version":3,"sources":["plyr.js","node_modules/rangetouch/src/js/config.js","node_modules/rangetouch/src/js/utils/is.js","node_modules/rangetouch/src/js/utils/numbers.js","node_modules/rangetouch/src/js/rangetouch.js","node_modules/rangetouch/src/js/utils/events.js","node_modules/rangetouch/src/js/utils/css.js","src/js/utils/is.js","src/js/utils/events.js","src/js/utils/elements.js","src/js/utils/animation.js","src/js/utils/browser.js","src/js/support.js","src/js/html5.js","src/js/utils/arrays.js","src/js/utils/objects.js","src/js/utils/strings.js","src/js/utils/i18n.js","src/js/storage.js","src/js/utils/fetch.js","src/js/utils/loadSprite.js","src/js/utils/time.js","src/js/controls.js","src/js/utils/urls.js","src/js/captions.js","src/js/config/defaults.js","src/js/config/states.js","src/js/config/types.js","src/js/console.js","src/js/fullscreen.js","src/js/utils/loadImage.js","src/js/ui.js","src/js/utils/style.js","src/js/listeners.js","node_modules/loadjs/dist/loadjs.umd.js","src/js/utils/loadScript.js","src/js/plugins/vimeo.js","src/js/plugins/youtube.js","src/js/media.js","src/js/plugins/ads.js","src/js/plugins/previewThumbnails.js","src/js/source.js","src/js/plyr.js"],"names":["navigator","global","factory","exports","module","define","amd","Plyr","this","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_defineProperty","obj","value","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_arr","_n","_d","_e","undefined","_s","_i","Symbol","iterator","next","done","push","err","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","_nonIterableSpread","defaults","addCSS","thumbWidth","watch","getConstructor","input","constructor","instanceOf","Boolean","isNullOrUndefined","isObject","isString","String","isNodeList","NodeList","is","nullOrUndefined","object","number","Number","isNaN","string","boolean","function","Function","array","nodeList","element","Element","event","Event","empty","keys","round","step","places","match","concat","Math","max","parseFloat","toFixed","RangeTouch","options","document","querySelector","rangeTouch","config","assign","init","enabled","style","userSelect","webKitUserSelect","touchAction","listeners","toggle","_this","method","forEach","type","set","percent","touch","changedTouches","min","getAttribute","delta","clientRect","getBoundingClientRect","width","clientX","left","disabled","preventDefault","get","dispatchEvent","trigger","arguments","targets","querySelectorAll","filter","MutationObserver","mutations","mutation","addedNodes","node","selector","includes","observe","body","childList","subtree","map","t","documentElement","isEmpty","is$1","weakMap","WeakMap","textNode","Text","keyboardEvent","KeyboardEvent","cue","window","TextTrackCue","VTTCue","track","TextTrack","kind","promise","Promise","url","URL","startsWith","hostname","e","supportsPassiveListeners","supported","addEventListener","removeEventListener","toggleListener","callback","passive","capture","events","split","eventListeners","on","off","once","_this2","onceCallback","_len","args","_key","apply","triggerEvent","bubbles","detail","CustomEvent","plyr","wrap","elements","wrapper","reverse","index","child","cloneNode","parent","parentNode","sibling","nextSibling","appendChild","insertBefore","setAttributes","attributes","entries","_ref","_ref3","_ref4","setAttribute","createElement","text","innerText","insertElement","removeElement","removeChild","emptyElement","childNodes","lastChild","replaceElement","newChild","oldChild","replaceChild","getAttributesFromSelector","sel","existingAttributes","existing","s","trim","className","replace","parts","charAt","class","id","toggleHidden","hidden","hide","removeAttribute","toggleClass","force","classList","contains","hasClass","matches","getElements","container","getElement","setFocus","tabFocus","focus","preventScroll","classNames","transitionEndEvent","WebkitTransition","MozTransition","OTransition","transition","find","repaint","setTimeout","offsetHeight","range","browser","isIE","documentMode","isEdge","userAgent","isWebkit","test","isIPhone","platform","isIos","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","transitions","reducedMotion","matchMedia","html5","getSources","source","getQualityOptions","extend","player","_player$media","currentTime","paused","preload","readyState","src","play","load","quality","cancelRequests","blankVideo","debug","log","dedupe","item","indexOf","getDeep","path","reduce","sources","shift","format","replaceAll","RegExp","toTitleCase","toUpperCase","substr","toLowerCase","toCamelCase","toPascalCase","slice","getHTML","innerHTML","resources","vimeo","youtube","i18n","{seektime}","seekTime","{title}","title","_ref2","Storage","storage","store","localStorage","getItem","json","JSON","parse","setItem","stringify","removeItem","fetch","responseType","resolve","reject","request","XMLHttpRequest","responseText","response","Error","status","open","send","loadSprite","hasId","exists","getElementById","update","data","insertAdjacentElement","useStorage","cached","content","then","result","catch","getHours","trunc","getMinutes","getSeconds","formatTime","time","displayHours","inverted","hours","mins","secs","controls","getIconUrl","cors","iconUrl","location","host","svg4everybody","findElements","selectors","buttons","pause","restart","rewind","fastForward","mute","settings","captions","fullscreen","progress","inputs","seek","volume","display","buffer","duration","seekTooltip","tooltip","error","warn","toggleNativeControls","createIcon","iconPath","iconPrefix","icon","createElementNS","role","focusable","use","setAttributeNS","createLabel","attr","join","createBadge","badge","menu","createButton","buttonType","label","labelPressed","iconPressed","control","button","createRange","autocomplete","aria-label","aria-valuemin","aria-valuemax","aria-valuenow","updateRangeFill","setup","createProgress","aria-hidden","suffixKey","played","suffix","createTime","bindMenuItemShortcuts","menuItem","which","stopPropagation","isRadioButton","showMenuPanel","nextElementSibling","firstElementChild","previousElementSibling","lastElementChild","focusFirstMenuItem","createMenuItem","list","_ref$badge","_ref$checked","checked","aria-checked","flex","children","bind","currentTrack","speed","updateTimeDisplay","updateVolume","setRange","muted","pressed","updateProgress","_this3","current","getElementsByTagName","nodeValue","setProgress","buffered","setProperty","updateSeekTooltip","_this4","tooltips","visible","pageX","timeUpdate","invert","invertTime","seeking","durationUpdate","pow","hasDuration","displayDuration","toggleMenuButton","setting","updateSetting","pane","panels","default","getLabel","setQualityMenu","_this5","checkMenu","getBadge","sort","a","b","sorting","setCaptionsMenu","_this6","tracks","getTracks","toggled","language","unshift","setSpeedMenu","_this7","isVimeo","values","some","popup","firstItem","toggleMenu","show","isMenuItem","getMenuSize","tab","clone","position","opacity","scrollWidth","height","scrollHeight","_this8","size","restore","propertyName","setDownloadLink","download","create","_this9","aria-haspopup","aria-controls","aria-expanded","inner","home","backButton","href","urls","isEmbed","inject","_this10","floor","random","seektime","addProperty","controlPressed","_this$config","labels","parseUrl","parser","buildUrlParams","params","URLSearchParams","isVideo","isYouTube","protocol","blob","createObjectURL","languages","userLanguage","active","trackEvents","_this$captions","meta","currentTrackNode","languageExists","mode","updateCues","setLanguage","activeClass","findTrack","embed","enableTextTrack","has","sortIsDefault","sorted","every","getCurrentTrack","cues","activeCues","getCueAsHTML","cueText","caption","autoplay","autopause","toggleInvert","ratio","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","google","publisherId","tagUrl","byline","portrait","transparent","noCookie","rel","showinfo","iv_load_policy","modestbranding","providers","types","noop","Console","console","onChange","first","last","keyCode","activeElement","shiftKey","toggleFallback","scrollPosition","x","scrollX","y","scrollY","scrollTo","overflow","viewport","head","property","hasProperty","cleanupViewport","part","Fullscreen","prefix","forceFallback","native","webkitEnterFullscreen","requestFullscreen","webkitExitFullscreen","action","cancelFullScreen","exit","enter","fullscreenElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","pre","loadImage","minWidth","image","Image","handler","onload","onerror","naturalWidth","addStyleHook","build","checkPlaying","ready","setTitle","setPoster","togglePoster","enable","backgroundImage","backgroundSize","toggleControls","checkLoading","clearTimeout","timers","recentTouchSeek","lastSeekTime","Date","now","setAspectRatio","_ratio$split$map2","padding","paddingBottom","offset","transform","Listeners","lastKey","focusTimer","lastKeyDown","handleKey","setTabFocus","firstTouch","code","repeat","altKey","ctrlKey","metaKey","togglePlay","increaseVolume","decreaseVolume","forward","toggleCaptions","usingNative","timeStamp","wasKeyDown","delay","setPlayerSize","measure","rect","resized","_player$fullscreen","isEnter","_setPlayerSize","firstChild","_player$embed$ratio$s2","videoWidth","videoHeight","maxWidth","margin","setGutter","hasAudio","isAudio","ended","proxy","proxyEvents","_event$detail","defaultHandler","customHandlerKey","customHandler","returned","hasCustomHandler","inputEvent","currentTarget","hasAttribute","seekTo","loaded","startMove","endMove","startScrubbing","endScrubbing","webkitDirectionInvertedFromDevice","_map2","deltaX","deltaY","direction","sign","abs","self","loadjs_umd","devnull","bundleIdCache","bundleResultCache","bundleCallbackQueue","publish","bundleId","pathsNotFound","q","splice","executeCallbacks","depsNotFound","success","loadFile","callbackFn","numTries","isCss","doc","async","maxTries","numRetries","beforeCallbackFn","before","pathStripped","onbeforeload","ev","sheet","cssText","defaultPrevented","loadjs","paths","arg1","arg2","fn","numWaiting","loadFiles","deps","bundleIds","r","subscribe","isDefined","loadScript","assurePlaybackState","hasPlayed","Vimeo","gesture","$2","thumbnail_large","pathname","Player","disableTextTrack","stop","restorePause","setVolume","setCurrentTime","setPlaybackRate","name","currentSrc","setLoop","getVideoUrl","getVideoWidth","getVideoHeight","dimensions","_dimensions","setAutopause","state","getVideoTitle","getCurrentTime","getDuration","getTextTracks","_ref$cues","strippedCues","fragment","createDocumentFragment","getPaused","seconds","parseInt","YT","onYouTubeReadyCallbacks","onYouTubeIframeAPIReady","getTitle","videoId","getVideoData","items","snippet","currentId","posterSrc","playerVars","hl","disablekb","cc_load_policy","cc_lang_pref","widget_referrer","onError","message","2","5","100","101","150","onPlaybackRateChange","playbackRate","getPlaybackRate","onReady","playVideo","pauseVideo","stopVideo","getAvailablePlaybackRates","clearInterval","buffering","setInterval","getVideoLoadedFraction","lastBuffered","onStateChange","unMute","Ads","initialized","displayContainer","manager","loader","cuePoints","safetyTimer","countdownTimer","managerPromise","ima","startSafetyTimer","clearSafetyTimer","setupIMA","setVpaidMode","ImaSdkSettings","VpaidMode","ENABLED","setLocale","setDisableCustomPlaybackForIOS10Plus","AdDisplayContainer","requestAds","AdsLoader","AdsManagerLoadedEvent","Type","ADS_MANAGER_LOADED","onAdsManagerLoaded","AdErrorEvent","AD_ERROR","onAdError","AdsRequest","adTagUrl","linearAdSlotWidth","offsetWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearAdSlotHeight","forceNonLinearFullSlot","setAdWillPlayMuted","getRemainingTime","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","enablePreloading","getAdsManager","getCuePoints","AdEvent","onAdEvent","cuePoint","seekElement","cuePercentage","ad","getAd","adData","getAdData","LOADED","pollCountdown","isLinear","ALL_ADS_COMPLETED","loadAds","CONTENT_PAUSE_REQUESTED","pauseContent","CONTENT_RESUME_REQUESTED","resumeContent","STARTED","MIDPOINT","COMPLETE","IMPRESSION","CLICK","LOG","adError","getMessage","cancel","addCuePoints","contentComplete","seekedTime","discardAdBreak","resize","ViewMode","NORMAL","initialize","zIndex","_this11","destroy","_this12","handlers","_this13","AV_PUBLISHERID","AV_CHANNELID","AV_URL","cb","AV_WIDTH","AV_HEIGHT","AV_CDIM2","PreviewThumbnails","thumbnails","lastMouseMoveTime","mouseDown","loadedImages","thumb","scrubbing","getThumbnails","render","determineContainerAutoSizing","promises","u","getThumbnail","vttDataString","processedList","thumbnail","frames","frame","line","startTime","lineSplit","_lineSplit","_lineSplit$1$split2","w","h","matchTimes","endTime","urlPrefix","substring","lastIndexOf","tempImage","naturalHeight","percentage","mousePosX","showImageAtCurrentTime","toggleThumbContainer","toggleScrubbingContainer","ceil","lastTime","setScrubbingContainerSize","setThumbContainerSizeAndPos","thumbNum","findIndex","hasThumb","qualityIndex","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","clientHeight","sizeSpecifiedInCSS","thumbAspectRatio","setThumbContainerPos","seekbarRect","plyrRect","minVal","maxVal","right","clientWidth","previewPos","multiplier","top","currentScrubbingImageElement","currentThumbnailImageElement","insertElements","attribute","change","_sources$","_sources$$provider","crossorigin","failed","jQuery","original","getProviderByUrl","search","truthy","searchParams","tabindex","webkitShowPlaybackTargetPicker","isHidden","hiding","eventName","soft","unload","inputIsValid","fauxDuration","realDuration","Infinity","mozHasAudio","webkitAudioDecodedByteCount","audioTracks","updateStorage","prev","curr","closest","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.Plyr = factory());\n}(this, (function () { 'use strict';\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _defineProperty(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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n\n var defaults = {\n addCSS: true,\n // Add CSS to the element to improve usability (required here or in your CSS!)\n thumbWidth: 15,\n // The width of the thumb handle\n watch: true // Watch for new elements that match a string target\n\n };\n\n // Element matches a selector\n function matches(element, selector) {\n\n function match() {\n return Array.from(document.querySelectorAll(selector)).includes(this);\n }\n\n var matches = match;\n return matches.call(element, selector);\n }\n\n // Trigger event\n function trigger(element, type) {\n if (!element || !type) {\n return;\n } // Create and dispatch the event\n\n\n var event = new Event(type); // Dispatch the event\n\n element.dispatchEvent(event);\n }\n\n // ==========================================================================\n // Type checking utils\n // ==========================================================================\n var getConstructor = function getConstructor(input) {\n return input !== null && typeof input !== 'undefined' ? input.constructor : null;\n };\n\n var instanceOf = function instanceOf(input, constructor) {\n return Boolean(input && constructor && input instanceof constructor);\n };\n\n var isNullOrUndefined = function isNullOrUndefined(input) {\n return input === null || typeof input === 'undefined';\n };\n\n var isObject = function isObject(input) {\n return getConstructor(input) === Object;\n };\n\n var isNumber = function isNumber(input) {\n return getConstructor(input) === Number && !Number.isNaN(input);\n };\n\n var isString = function isString(input) {\n return getConstructor(input) === String;\n };\n\n var isBoolean = function isBoolean(input) {\n return getConstructor(input) === Boolean;\n };\n\n var isFunction = function isFunction(input) {\n return getConstructor(input) === Function;\n };\n\n var isArray = function isArray(input) {\n return Array.isArray(input);\n };\n\n var isNodeList = function isNodeList(input) {\n return instanceOf(input, NodeList);\n };\n\n var isElement = function isElement(input) {\n return instanceOf(input, Element);\n };\n\n var isEvent = function isEvent(input) {\n return instanceOf(input, Event);\n };\n\n var isEmpty = function isEmpty(input) {\n return isNullOrUndefined(input) || (isString(input) || isArray(input) || isNodeList(input)) && !input.length || isObject(input) && !Object.keys(input).length;\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 nodeList: isNodeList,\n element: isElement,\n event: isEvent,\n empty: isEmpty\n };\n\n // Get the number of decimal places\n function getDecimalPlaces(value) {\n var match = \"\".concat(value).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n\n if (!match) {\n return 0;\n }\n\n return Math.max(0, // Number of digits right of decimal point.\n (match[1] ? match[1].length : 0) - ( // Adjust for scientific notation.\n match[2] ? +match[2] : 0));\n } // Round to the nearest step\n\n function round(number, step) {\n if (step < 1) {\n var places = getDecimalPlaces(step);\n return parseFloat(number.toFixed(places));\n }\n\n return Math.round(number / step) * step;\n }\n\n var RangeTouch =\n /*#__PURE__*/\n function () {\n /**\n * Setup a new instance\n * @param {String|Element} target\n * @param {Object} options\n */\n function RangeTouch(target, options) {\n _classCallCheck(this, RangeTouch);\n\n if (is.element(target)) {\n // An Element is passed, use it directly\n this.element = target;\n } else if (is.string(target)) {\n // A CSS Selector is passed, fetch it from the DOM\n this.element = document.querySelector(target);\n }\n\n if (!is.element(this.element) || !is.empty(this.element.rangeTouch)) {\n return;\n }\n\n this.config = Object.assign({}, defaults, options);\n this.init();\n }\n\n _createClass(RangeTouch, [{\n key: \"init\",\n value: function init() {\n // Bail if not a touch enabled device\n if (!RangeTouch.enabled) {\n return;\n } // Add useful CSS\n\n\n if (this.config.addCSS) {\n // TODO: Restore original values on destroy\n this.element.style.userSelect = 'none';\n this.element.style.webKitUserSelect = 'none';\n this.element.style.touchAction = 'manipulation';\n }\n\n this.listeners(true);\n this.element.rangeTouch = this;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n // Bail if not a touch enabled device\n if (!RangeTouch.enabled) {\n return;\n }\n\n this.listeners(false);\n this.element.rangeTouch = null;\n }\n }, {\n key: \"listeners\",\n value: function listeners(toggle) {\n var _this = this;\n\n var method = toggle ? 'addEventListener' : 'removeEventListener'; // Listen for events\n\n ['touchstart', 'touchmove', 'touchend'].forEach(function (type) {\n _this.element[method](type, function (event) {\n return _this.set(event);\n }, false);\n });\n }\n /**\n * Get the value based on touch position\n * @param {Event} event\n */\n\n }, {\n key: \"get\",\n value: function get(event) {\n if (!RangeTouch.enabled || !is.event(event)) {\n return null;\n }\n\n var input = event.target;\n var touch = event.changedTouches[0];\n var min = parseFloat(input.getAttribute('min')) || 0;\n var max = parseFloat(input.getAttribute('max')) || 100;\n var step = parseFloat(input.getAttribute('step')) || 1;\n var delta = max - min; // Calculate percentage\n\n var percent;\n var clientRect = input.getBoundingClientRect();\n var thumbWidth = 100 / clientRect.width * (this.config.thumbWidth / 2) / 100; // Determine left percentage\n\n percent = 100 / clientRect.width * (touch.clientX - clientRect.left); // Don't allow outside bounds\n\n if (percent < 0) {\n percent = 0;\n } else if (percent > 100) {\n percent = 100;\n } // Factor in the thumb offset\n\n\n if (percent < 50) {\n percent -= (100 - percent * 2) * thumbWidth;\n } else if (percent > 50) {\n percent += (percent - 50) * 2 * thumbWidth;\n } // Find the closest step to the mouse position\n\n\n return min + round(delta * (percent / 100), step);\n }\n /**\n * Update range value based on position\n * @param {Event} event\n */\n\n }, {\n key: \"set\",\n value: function set(event) {\n if (!RangeTouch.enabled || !is.event(event) || event.target.disabled) {\n return;\n } // Prevent text highlight on iOS\n\n\n event.preventDefault(); // Set value\n\n event.target.value = this.get(event); // Trigger event\n\n trigger(event.target, event.type === 'touchend' ? 'change' : 'input');\n }\n }], [{\n key: \"setup\",\n\n /**\n * Setup multiple instances\n * @param {String|Element|NodeList|Array} target\n * @param {Object} options\n */\n value: function setup(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var targets = null;\n\n if (is.empty(target) || is.string(target)) {\n targets = Array.from(document.querySelectorAll(is.string(target) ? target : 'input[type=\"range\"]'));\n } else if (is.element(target)) {\n targets = [target];\n } else if (is.nodeList(target)) {\n targets = Array.from(target);\n } else if (is.array(target)) {\n targets = target.filter(is.element);\n }\n\n if (is.empty(targets)) {\n return null;\n }\n\n var config = Object.assign({}, defaults, options);\n\n if (is.string(target) && config.watch) {\n // Create an observer instance\n var observer = new MutationObserver(function (mutations) {\n Array.from(mutations).forEach(function (mutation) {\n Array.from(mutation.addedNodes).forEach(function (node) {\n if (!is.element(node) || !matches(node, target)) {\n return;\n } // eslint-disable-next-line no-unused-vars\n\n\n var range = new RangeTouch(node, config);\n });\n });\n }); // Pass in the target node, as well as the observer options\n\n observer.observe(document.body, {\n childList: true,\n subtree: true\n });\n }\n\n return targets.map(function (t) {\n return new RangeTouch(t, options);\n });\n }\n }, {\n key: \"enabled\",\n get: function get() {\n return 'ontouchstart' in document.documentElement;\n }\n }]);\n\n return RangeTouch;\n }();\n\n // ==========================================================================\n // Type checking utils\n // ==========================================================================\n var getConstructor$1 = function getConstructor(input) {\n return input !== null && typeof input !== 'undefined' ? input.constructor : null;\n };\n\n var instanceOf$1 = function instanceOf(input, constructor) {\n return Boolean(input && constructor && input instanceof constructor);\n };\n\n var isNullOrUndefined$1 = function isNullOrUndefined(input) {\n return input === null || typeof input === 'undefined';\n };\n\n var isObject$1 = function isObject(input) {\n return getConstructor$1(input) === Object;\n };\n\n var isNumber$1 = function isNumber(input) {\n return getConstructor$1(input) === Number && !Number.isNaN(input);\n };\n\n var isString$1 = function isString(input) {\n return getConstructor$1(input) === String;\n };\n\n var isBoolean$1 = function isBoolean(input) {\n return getConstructor$1(input) === Boolean;\n };\n\n var isFunction$1 = function isFunction(input) {\n return getConstructor$1(input) === Function;\n };\n\n var isArray$1 = function isArray(input) {\n return Array.isArray(input);\n };\n\n var isWeakMap = function isWeakMap(input) {\n return instanceOf$1(input, WeakMap);\n };\n\n var isNodeList$1 = function isNodeList(input) {\n return instanceOf$1(input, NodeList);\n };\n\n var isElement$1 = function isElement(input) {\n return instanceOf$1(input, Element);\n };\n\n var isTextNode = function isTextNode(input) {\n return getConstructor$1(input) === Text;\n };\n\n var isEvent$1 = function isEvent(input) {\n return instanceOf$1(input, Event);\n };\n\n var isKeyboardEvent = function isKeyboardEvent(input) {\n return instanceOf$1(input, KeyboardEvent);\n };\n\n var isCue = function isCue(input) {\n return instanceOf$1(input, window.TextTrackCue) || instanceOf$1(input, window.VTTCue);\n };\n\n var isTrack = function isTrack(input) {\n return instanceOf$1(input, TextTrack) || !isNullOrUndefined$1(input) && isString$1(input.kind);\n };\n\n var isPromise = function isPromise(input) {\n return instanceOf$1(input, Promise);\n };\n\n var isEmpty$1 = function isEmpty(input) {\n return isNullOrUndefined$1(input) || (isString$1(input) || isArray$1(input) || isNodeList$1(input)) && !input.length || isObject$1(input) && !Object.keys(input).length;\n };\n\n var isUrl = function isUrl(input) {\n // Accept a URL object\n if (instanceOf$1(input, window.URL)) {\n return true;\n } // Must be string from here\n\n\n if (!isString$1(input)) {\n return false;\n } // Add the protocol if required\n\n\n var string = input;\n\n if (!input.startsWith('http://') || !input.startsWith('https://')) {\n string = \"http://\".concat(input);\n }\n\n try {\n return !isEmpty$1(new URL(string).hostname);\n } catch (e) {\n return false;\n }\n };\n\n var 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 weakMap: isWeakMap,\n nodeList: isNodeList$1,\n element: isElement$1,\n textNode: isTextNode,\n event: isEvent$1,\n keyboardEvent: isKeyboardEvent,\n cue: isCue,\n track: isTrack,\n promise: isPromise,\n url: isUrl,\n empty: isEmpty$1\n };\n\n // ==========================================================================\n // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n // https://www.youtube.com/watch?v=NPM6172J22g\n\n var supportsPassiveListeners = function () {\n // Test via a getter in the options object to see if the passive property is accessed\n var supported = false;\n\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n supported = true;\n return null;\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) {\n var _this = this;\n\n var toggle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var passive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var capture = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n\n // Bail if no element, event, or callback\n if (!element || !('addEventListener' in element) || is$1.empty(event) || !is$1.function(callback)) {\n return;\n } // Allow multiple events\n\n\n var events = event.split(' '); // Build options\n // Default to just the capture boolean for browsers with no passive listener support\n\n var 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: passive,\n // Whether the listener is a capturing listener or not\n capture: capture\n };\n } // If a single node is passed, bind the event listener\n\n\n events.forEach(function (type) {\n if (_this && _this.eventListeners && toggle) {\n // Cache event listener\n _this.eventListeners.push({\n element: element,\n type: type,\n callback: callback,\n options: options\n });\n }\n\n element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);\n });\n } // Bind event handler\n\n function on(element) {\n var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var callback = arguments.length > 2 ? arguments[2] : undefined;\n var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n toggleListener.call(this, element, events, callback, true, passive, capture);\n } // Unbind event handler\n\n function off(element) {\n var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var callback = arguments.length > 2 ? arguments[2] : undefined;\n var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n toggleListener.call(this, element, events, callback, false, passive, capture);\n } // Bind once-only event handler\n\n function once(element) {\n var _this2 = this;\n\n var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var callback = arguments.length > 2 ? arguments[2] : undefined;\n var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n var onceCallback = function onceCallback() {\n off(element, events, onceCallback, passive, capture);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(_this2, args);\n };\n\n toggleListener.call(this, element, events, onceCallback, true, passive, capture);\n } // Trigger event\n\n function triggerEvent(element) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var bubbles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var detail = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n // Bail if no element\n if (!is$1.element(element) || is$1.empty(type)) {\n return;\n } // Create and dispatch the event\n\n\n var event = new CustomEvent(type, {\n bubbles: bubbles,\n detail: Object.assign({}, 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(function (item) {\n var element = item.element,\n type = item.type,\n callback = item.callback,\n options = item.options;\n element.removeEventListener(type, callback, options);\n });\n this.eventListeners = [];\n }\n } // Run method when / if player is ready\n\n function ready() {\n var _this3 = this;\n\n return new Promise(function (resolve) {\n return _this3.ready ? setTimeout(resolve, 0) : on.call(_this3, _this3.elements.container, 'ready', resolve);\n }).then(function () {});\n }\n\n function wrap(elements, wrapper) {\n // Convert `elements` to an array, if necessary.\n var 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(function (element, index) {\n var child = index > 0 ? wrapper.cloneNode(true) : wrapper; // Cache the current parent and sibling.\n\n var parent = element.parentNode;\n var 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$1.element(element) || is$1.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(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n value = _ref2[1];\n\n return !is$1.nullOrUndefined(value);\n }).forEach(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n value = _ref4[1];\n\n return element.setAttribute(key, value);\n });\n } // Create a DocumentFragment\n\n function createElement(type, attributes, text) {\n // Create a new \n var element = document.createElement(type); // Set all passed attributes\n\n if (is$1.object(attributes)) {\n setAttributes(element, attributes);\n } // Add text node\n\n\n if (is$1.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$1.element(element) || !is$1.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$1.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$1.nodeList(element) || is$1.array(element)) {\n Array.from(element).forEach(removeElement);\n return;\n }\n\n if (!is$1.element(element) || !is$1.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$1.element(element)) {\n return;\n }\n\n var length = element.childNodes.length;\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$1.element(oldChild) || !is$1.element(oldChild.parentNode) || !is$1.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$1.string(sel) || is$1.empty(sel)) {\n return {};\n }\n\n var attributes = {};\n var existing = existingAttributes;\n sel.split(',').forEach(function (s) {\n // Remove whitespace\n var selector = s.trim();\n var className = selector.replace('.', '');\n var stripped = selector.replace(/[[\\]]/g, ''); // Get the parts and value\n\n var parts = stripped.split('=');\n var key = parts[0];\n var value = parts.length > 1 ? parts[1].replace(/[\"']/g, '') : ''; // Get the first character\n\n var start = selector.charAt(0);\n\n switch (start) {\n case '.':\n // Add to existing classname\n if (is$1.object(existing) && is$1.string(existing.class)) {\n existing.class += \" \".concat(className);\n }\n\n attributes.class = className;\n break;\n\n case '#':\n // ID selector\n attributes.id = selector.replace('#', '');\n break;\n\n case '[':\n // Attribute selector\n attributes[key] = value;\n break;\n\n default:\n break;\n }\n });\n return attributes;\n } // Toggle hidden\n\n function toggleHidden(element, hidden) {\n if (!is$1.element(element)) {\n return;\n }\n\n var hide = hidden;\n\n if (!is$1.boolean(hide)) {\n hide = !element.hidden;\n }\n\n if (hide) {\n element.setAttribute('hidden', '');\n } else {\n element.removeAttribute('hidden');\n }\n } // Mirror Element.classList.toggle, with IE compatibility for \"force\" argument\n\n function toggleClass(element, className, force) {\n if (is$1.nodeList(element)) {\n return Array.from(element).map(function (e) {\n return toggleClass(e, className, force);\n });\n }\n\n if (is$1.element(element)) {\n var 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$1.element(element) && element.classList.contains(className);\n } // Element matches selector\n\n function matches$1(element, selector) {\n\n function match() {\n return Array.from(document.querySelectorAll(selector)).includes(this);\n }\n\n var matches = match;\n return matches.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 } // Trap focus inside container\n\n function trapFocus() {\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var toggle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!is$1.element(element)) {\n return;\n }\n\n var focusable = getElements.call(this, 'button:not(:disabled), input:not(:disabled), [tabindex]');\n var first = focusable[0];\n var last = focusable[focusable.length - 1];\n\n var trap = function trap(event) {\n // Bail if not tab key or not fullscreen\n if (event.key !== 'Tab' || event.keyCode !== 9) {\n return;\n } // Get the current focused element\n\n\n var focused = document.activeElement;\n\n if (focused === last && !event.shiftKey) {\n // Move focus to first element that can be tabbed if Shift isn't used\n first.focus();\n event.preventDefault();\n } else if (focused === first && event.shiftKey) {\n // Move focus to last element that can be tabbed if Shift is used\n last.focus();\n event.preventDefault();\n }\n };\n\n toggleListener.call(this, this.elements.container, 'keydown', trap, toggle, false);\n } // Set focus and tab focus class\n\n function setFocus() {\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var tabFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!is$1.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 var transitionEndEvent = function () {\n var element = document.createElement('span');\n var events = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n var type = Object.keys(events).find(function (event) {\n return element.style[event] !== undefined;\n });\n return is$1.string(type) ? events[type] : false;\n }(); // Force repaint of element\n\n function repaint(element) {\n setTimeout(function () {\n try {\n toggleHidden(element, true);\n element.offsetHeight; // eslint-disable-line\n\n toggleHidden(element, false);\n } catch (e) {// Do nothing\n }\n }, 0);\n }\n\n // ==========================================================================\n // Browser sniffing\n // Unfortunately, due to mixed support, UA sniffing is required\n // ==========================================================================\n var browser = {\n isIE:\n /* @cc_on!@ */\n !!document.documentMode,\n isEdge: window.navigator.userAgent.includes('Edge'),\n isWebkit: 'WebkitAppearance' in document.documentElement.style && !/Edge/.test(navigator.userAgent),\n isIPhone: /(iPhone|iPod)/gi.test(navigator.platform),\n isIos: /(iPad|iPhone|iPod)/gi.test(navigator.platform)\n };\n\n var 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 var support = {\n // Basic support\n audio: 'canPlayType' in document.createElement('audio'),\n video: 'canPlayType' in document.createElement('video'),\n // Check for support\n // Basic functionality vs full UI\n check: function check(type, provider, playsinline) {\n var canPlayInline = browser.isIPhone && playsinline && support.playsinline;\n var api = support[type] || provider !== 'html5';\n var ui = api && support.rangeInput && (type !== 'video' || !browser.isIPhone || canPlayInline);\n return {\n api: api,\n ui: ui\n };\n },\n // Picture-in-picture support\n // Safari & Chrome only currently\n pip: function () {\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$1.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$1.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 // 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: function mime(input) {\n if (is$1.empty(input)) {\n return false;\n }\n\n var _input$split = input.split('/'),\n _input$split2 = _slicedToArray(_input$split, 1),\n mediaType = _input$split2[0];\n\n var 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=\\\"\".concat(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 // Check for textTracks support\n textTracks: 'textTracks' in document.createElement('video'),\n // Sliders\n rangeInput: function () {\n var 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 var html5 = {\n getSources: function getSources() {\n var _this = this;\n\n if (!this.isHTML5) {\n return [];\n }\n\n var sources = Array.from(this.media.querySelectorAll('source')); // Filter out unsupported sources (if type is specified)\n\n return sources.filter(function (source) {\n var type = source.getAttribute('type');\n\n if (is$1.empty(type)) {\n return true;\n }\n\n return support.mime.call(_this, type);\n });\n },\n // Get quality levels\n getQualityOptions: function getQualityOptions() {\n // Get sizes from elements\n return html5.getSources.call(this).map(function (source) {\n return Number(source.getAttribute('size'));\n }).filter(Boolean);\n },\n extend: function extend() {\n if (!this.isHTML5) {\n return;\n }\n\n var player = this; // Quality\n\n Object.defineProperty(player.media, 'quality', {\n get: function get() {\n // Get sources\n var sources = html5.getSources.call(player);\n var source = sources.find(function (source) {\n return source.getAttribute('src') === player.source;\n }); // Return size, if match is found\n\n return source && Number(source.getAttribute('size'));\n },\n set: function set(input) {\n // Get sources\n var sources = html5.getSources.call(player); // Get first match for requested size\n\n var source = sources.find(function (source) {\n return Number(source.getAttribute('size')) === input;\n }); // No matching source found\n\n if (!source) {\n return;\n } // Get current state\n\n\n var _player$media = player.media,\n currentTime = _player$media.currentTime,\n paused = _player$media.paused,\n preload = _player$media.preload,\n readyState = _player$media.readyState; // 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', function () {\n player.currentTime = currentTime; // Resume playing\n\n if (!paused) {\n player.play();\n }\n }); // Load new source\n\n player.media.load();\n } // Trigger change event\n\n\n triggerEvent.call(player, player.media, 'qualitychange', false, {\n quality: input\n });\n }\n });\n },\n // Cancel current network requests\n // See https://github.com/sampotts/plyr/issues/174\n cancelRequests: function 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 function dedupe(array) {\n if (!is$1.array(array)) {\n return array;\n }\n\n return array.filter(function (item, index) {\n return array.indexOf(item) === index;\n });\n } // Get the closest value in an array\n\n function closest(array, value) {\n if (!is$1.array(array) || !array.length) {\n return null;\n }\n\n return array.reduce(function (prev, curr) {\n return Math.abs(curr - value) < Math.abs(prev - value) ? curr : prev;\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(function (obj, key) {\n return obj && obj[key];\n }, object);\n } // Deep extend destination object with N more objects\n\n function extend() {\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n if (!sources.length) {\n return target;\n }\n\n var source = sources.shift();\n\n if (!is$1.object(source)) {\n return target;\n }\n\n Object.keys(source).forEach(function (key) {\n if (is$1.object(source[key])) {\n if (!Object.keys(target).includes(key)) {\n Object.assign(target, _defineProperty({}, key, {}));\n }\n\n extend(target[key], source[key]);\n } else {\n Object.assign(target, _defineProperty({}, key, source[key]));\n }\n });\n return extend.apply(void 0, [target].concat(sources));\n }\n\n // ==========================================================================\n\n function generateId(prefix) {\n return \"\".concat(prefix, \"-\").concat(Math.floor(Math.random() * 10000));\n } // Format string\n\n function format(input) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (is$1.empty(input)) {\n return input;\n }\n\n return input.toString().replace(/{(\\d+)}/g, function (match, i) {\n return args[i].toString();\n });\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 function replaceAll() {\n var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var find = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var replace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n return input.replace(new RegExp(find.toString().replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1'), 'g'), replace.toString());\n } // Convert to title case\n\n function toTitleCase() {\n var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return input.toString().replace(/\\w\\S*/g, function (text) {\n return text.charAt(0).toUpperCase() + text.substr(1).toLowerCase();\n });\n } // Convert string to pascalCase\n\n function toPascalCase() {\n var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var 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() {\n var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var 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 var fragment = document.createDocumentFragment();\n var 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 var wrapper = document.createElement('div');\n wrapper.appendChild(element);\n return wrapper.innerHTML;\n }\n\n var resources = {\n pip: 'PIP',\n airplay: 'AirPlay',\n html5: 'HTML5',\n vimeo: 'Vimeo',\n youtube: 'YouTube'\n };\n var i18n = {\n get: function get() {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (is$1.empty(key) || is$1.empty(config)) {\n return '';\n }\n\n var string = getDeep(config.i18n, key);\n\n if (is$1.empty(string)) {\n if (Object.keys(resources).includes(key)) {\n return resources[key];\n }\n\n return '';\n }\n\n var replace = {\n '{seektime}': config.seekTime,\n '{title}': config.title\n };\n Object.entries(replace).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n string = replaceAll(string, key, value);\n });\n return string;\n }\n };\n\n var Storage =\n /*#__PURE__*/\n function () {\n function Storage(player) {\n _classCallCheck(this, Storage);\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 _createClass(Storage, [{\n key: \"get\",\n value: function get(key) {\n if (!Storage.supported || !this.enabled) {\n return null;\n }\n\n var store = window.localStorage.getItem(this.key);\n\n if (is$1.empty(store)) {\n return null;\n }\n\n var json = JSON.parse(store);\n return is$1.string(key) && key.length ? json[key] : json;\n }\n }, {\n key: \"set\",\n value: function 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$1.object(object)) {\n return;\n } // Get current storage\n\n\n var storage = this.get(); // Default to empty object\n\n if (is$1.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 key: \"supported\",\n get: function get() {\n try {\n if (!('localStorage' in window)) {\n return false;\n }\n\n var 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 return Storage;\n }();\n\n // ==========================================================================\n // Fetch wrapper\n // Using XHR to avoid issues with older browsers\n // ==========================================================================\n function fetch(url) {\n var responseType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text';\n return new Promise(function (resolve, reject) {\n try {\n var request = new XMLHttpRequest(); // Check for CORS support\n\n if (!('withCredentials' in request)) {\n return;\n }\n\n request.addEventListener('load', function () {\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', function () {\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$1.string(url)) {\n return;\n }\n\n var prefix = 'cache';\n var hasId = is$1.string(id);\n var isCached = false;\n\n var exists = function exists() {\n return document.getElementById(id) !== null;\n };\n\n var update = function update(container, data) {\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 var useStorage = Storage.supported; // Create container\n\n var 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 var cached = window.localStorage.getItem(\"\".concat(prefix, \"-\").concat(id));\n isCached = cached !== null;\n\n if (isCached) {\n var data = JSON.parse(cached);\n update(container, data.content);\n }\n } // Get the sprite\n\n\n fetch(url).then(function (result) {\n if (is$1.empty(result)) {\n return;\n }\n\n if (useStorage) {\n window.localStorage.setItem(\"\".concat(prefix, \"-\").concat(id), JSON.stringify({\n content: result\n }));\n }\n\n update(container, result);\n }).catch(function () {});\n }\n }\n\n // ==========================================================================\n\n var getHours = function getHours(value) {\n return Math.trunc(value / 60 / 60 % 60, 10);\n };\n var getMinutes = function getMinutes(value) {\n return Math.trunc(value / 60 % 60, 10);\n };\n var getSeconds = function getSeconds(value) {\n return Math.trunc(value % 60, 10);\n }; // Format time to UI friendly string\n\n function formatTime() {\n var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var displayHours = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var inverted = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n // Bail if the value isn't a number\n if (!is$1.number(time)) {\n return formatTime(null, displayHours, inverted);\n } // Format time component to add leading zero\n\n\n var format = function format(value) {\n return \"0\".concat(value).slice(-2);\n }; // Breakdown to hours, mins, secs\n\n\n var hours = getHours(time);\n var mins = getMinutes(time);\n var secs = getSeconds(time); // Do we need to display hours?\n\n if (displayHours || hours > 0) {\n hours = \"\".concat(hours, \":\");\n } else {\n hours = '';\n } // Render\n\n\n return \"\".concat(inverted && time > 0 ? '-' : '').concat(hours).concat(format(mins), \":\").concat(format(secs));\n }\n\n var controls = {\n // Get icon URL\n getIconUrl: function getIconUrl() {\n var url = new URL(this.config.iconUrl, window.location);\n var cors = url.host !== window.location.host || browser.isIE && !window.svg4everybody;\n return {\n url: this.config.iconUrl,\n cors: cors\n };\n },\n // Find the UI controls\n findElements: function 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$1.element(this.elements.progress)) {\n this.elements.display.seekTooltip = this.elements.progress.querySelector(\".\".concat(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 // Create icon\n createIcon: function createIcon(type, attributes) {\n var namespace = 'http://www.w3.org/2000/svg';\n var iconUrl = controls.getIconUrl.call(this);\n var iconPath = \"\".concat(!iconUrl.cors ? iconUrl.url : '', \"#\").concat(this.config.iconPrefix); // Create \n\n var icon = document.createElementNS(namespace, 'svg');\n setAttributes(icon, extend(attributes, {\n role: 'presentation',\n focusable: 'false'\n })); // Create the to reference sprite\n\n var use = document.createElementNS(namespace, 'use');\n var path = \"\".concat(iconPath, \"-\").concat(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 // Create hidden text label\n createLabel: function createLabel(key) {\n var attr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var text = i18n.get(key, this.config);\n var attributes = Object.assign({}, attr, {\n class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' ')\n });\n return createElement('span', attributes, text);\n },\n // Create a badge\n createBadge: function createBadge(text) {\n if (is$1.empty(text)) {\n return null;\n }\n\n var 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 // Create a
to hide the standard controls and UI\n\n if (this.isVimeo && this.supported.ui) {\n var height = 240;\n var offset = (height - padding) / (height / 50);\n this.media.style.transform = \"translateY(-\".concat(offset, \"%)\");\n }\n\n return {\n padding: padding,\n ratio: ratio\n };\n }\n\n var Listeners =\n /*#__PURE__*/\n function () {\n function Listeners(player) {\n _classCallCheck(this, Listeners);\n\n this.player = player;\n this.lastKey = null;\n this.focusTimer = null;\n this.lastKeyDown = null;\n this.handleKey = this.handleKey.bind(this);\n this.toggleMenu = this.toggleMenu.bind(this);\n this.setTabFocus = this.setTabFocus.bind(this);\n this.firstTouch = this.firstTouch.bind(this);\n } // Handle key presses\n\n\n _createClass(Listeners, [{\n key: \"handleKey\",\n value: function handleKey(event) {\n var player = this.player;\n var elements = player.elements;\n var code = event.keyCode ? event.keyCode : event.which;\n var pressed = event.type === 'keydown';\n var repeat = pressed && code === this.lastKey; // Bail if a modifier key is set\n\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) {\n return;\n } // If the event is bubbled from the media element\n // Firefox doesn't get the keycode for whatever reason\n\n\n if (!is$1.number(code)) {\n return;\n } // Seek by the number keys\n\n\n var seekByKey = function seekByKey() {\n // Divide the max duration into 10th's and times by the number value\n player.currentTime = player.duration / 10 * (code - 48);\n }; // Handle the key on keydown\n // Reset on keyup\n\n\n if (pressed) {\n // Check focused element\n // and if the focused element is not editable (e.g. text input)\n // and any that accept key input http://webaim.org/techniques/keyboard/\n var focused = document.activeElement;\n\n if (is$1.element(focused)) {\n var editable = player.config.selectors.editable;\n var seek = elements.inputs.seek;\n\n if (focused !== seek && matches$1(focused, editable)) {\n return;\n }\n\n if (event.which === 32 && matches$1(focused, 'button, [role^=\"menuitem\"]')) {\n return;\n }\n } // Which keycodes should we prevent default\n\n\n var preventDefault = [32, 37, 38, 39, 40, 48, 49, 50, 51, 52, 53, 54, 56, 57, 67, 70, 73, 75, 76, 77, 79]; // If the code is found prevent default (e.g. prevent scrolling for arrows)\n\n if (preventDefault.includes(code)) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n switch (code) {\n case 48:\n case 49:\n case 50:\n case 51:\n case 52:\n case 53:\n case 54:\n case 55:\n case 56:\n case 57:\n // 0-9\n if (!repeat) {\n seekByKey();\n }\n\n break;\n\n case 32:\n case 75:\n // Space and K key\n if (!repeat) {\n player.togglePlay();\n }\n\n break;\n\n case 38:\n // Arrow up\n player.increaseVolume(0.1);\n break;\n\n case 40:\n // Arrow down\n player.decreaseVolume(0.1);\n break;\n\n case 77:\n // M key\n if (!repeat) {\n player.muted = !player.muted;\n }\n\n break;\n\n case 39:\n // Arrow forward\n player.forward();\n break;\n\n case 37:\n // Arrow back\n player.rewind();\n break;\n\n case 70:\n // F key\n player.fullscreen.toggle();\n break;\n\n case 67:\n // C key\n if (!repeat) {\n player.toggleCaptions();\n }\n\n break;\n\n case 76:\n // L key\n player.loop = !player.loop;\n break;\n\n /* case 73:\n this.setLoop('start');\n break;\n case 76:\n this.setLoop();\n break;\n case 79:\n this.setLoop('end');\n break; */\n\n default:\n break;\n } // Escape is handle natively when in full screen\n // So we only need to worry about non native\n\n\n if (code === 27 && !player.fullscreen.usingNative && player.fullscreen.active) {\n player.fullscreen.toggle();\n } // Store last code for next cycle\n\n\n this.lastKey = code;\n } else {\n this.lastKey = null;\n }\n } // Toggle menu\n\n }, {\n key: \"toggleMenu\",\n value: function toggleMenu(event) {\n controls.toggleMenu.call(this.player, event);\n } // Device is touch enabled\n\n }, {\n key: \"firstTouch\",\n value: function firstTouch() {\n var player = this.player;\n var elements = player.elements;\n player.touch = true; // Add touch class\n\n toggleClass(elements.container, player.config.classNames.isTouch, true);\n }\n }, {\n key: \"setTabFocus\",\n value: function setTabFocus(event) {\n var player = this.player;\n var elements = player.elements;\n clearTimeout(this.focusTimer); // Ignore any key other than tab\n\n if (event.type === 'keydown' && event.which !== 9) {\n return;\n } // Store reference to event timeStamp\n\n\n if (event.type === 'keydown') {\n this.lastKeyDown = event.timeStamp;\n } // Remove current classes\n\n\n var removeCurrent = function removeCurrent() {\n var className = player.config.classNames.tabFocus;\n var current = getElements.call(player, \".\".concat(className));\n toggleClass(current, className, false);\n }; // Determine if a key was pressed to trigger this event\n\n\n var wasKeyDown = event.timeStamp - this.lastKeyDown <= 20; // Ignore focus events if a key was pressed prior\n\n if (event.type === 'focus' && !wasKeyDown) {\n return;\n } // Remove all current\n\n\n removeCurrent(); // Delay the adding of classname until the focus has changed\n // This event fires before the focusin event\n\n this.focusTimer = setTimeout(function () {\n var focused = document.activeElement; // Ignore if current focus element isn't inside the player\n\n if (!elements.container.contains(focused)) {\n return;\n }\n\n toggleClass(document.activeElement, player.config.classNames.tabFocus, true);\n }, 10);\n } // Global window & document listeners\n\n }, {\n key: \"global\",\n value: function global() {\n var toggle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var player = this.player; // Keyboard shortcuts\n\n if (player.config.keyboard.global) {\n toggleListener.call(player, window, 'keydown keyup', this.handleKey, toggle, false);\n } // Click anywhere closes menu\n\n\n toggleListener.call(player, document.body, 'click', this.toggleMenu, toggle); // Detect touch by events\n\n once.call(player, document.body, 'touchstart', this.firstTouch); // Tab focus detection\n\n toggleListener.call(player, document.body, 'keydown focus blur', this.setTabFocus, toggle, false, true);\n } // Container listeners\n\n }, {\n key: \"container\",\n value: function container() {\n var player = this.player;\n var config = player.config,\n elements = player.elements,\n timers = player.timers; // Keyboard shortcuts\n\n if (!config.keyboard.global && config.keyboard.focused) {\n on.call(player, elements.container, 'keydown keyup', this.handleKey, false);\n } // Toggle controls on mouse events and entering fullscreen\n\n\n on.call(player, elements.container, 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen', function (event) {\n var controls$$1 = elements.controls; // Remove button states for fullscreen\n\n if (controls$$1 && event.type === 'enterfullscreen') {\n controls$$1.pressed = false;\n controls$$1.hover = false;\n } // Show, then hide after a timeout unless another control event occurs\n\n\n var show = ['touchstart', 'touchmove', 'mousemove'].includes(event.type);\n var delay = 0;\n\n if (show) {\n ui.toggleControls.call(player, true); // Use longer timeout for touch devices\n\n delay = player.touch ? 3000 : 2000;\n } // Clear timer\n\n\n clearTimeout(timers.controls); // Set new timer to prevent flicker when seeking\n\n timers.controls = setTimeout(function () {\n return ui.toggleControls.call(player, false);\n }, delay);\n }); // Force edge to repaint on exit fullscreen\n // TODO: Fix weird bug where Edge doesn't re-draw when exiting fullscreen\n\n /* if (browser.isEdge) {\n on.call(player, elements.container, 'exitfullscreen', () => {\n setTimeout(() => repaint(elements.container), 100);\n });\n } */\n // Set a gutter for Vimeo\n\n var setGutter = function setGutter(ratio, padding, toggle) {\n if (!player.isVimeo) {\n return;\n }\n\n var target = player.elements.wrapper.firstChild;\n\n var _ratio$split$map = ratio.split(':').map(Number),\n _ratio$split$map2 = _slicedToArray(_ratio$split$map, 2),\n height = _ratio$split$map2[1];\n\n var _player$embed$ratio$s = player.embed.ratio.split(':').map(Number),\n _player$embed$ratio$s2 = _slicedToArray(_player$embed$ratio$s, 2),\n videoWidth = _player$embed$ratio$s2[0],\n videoHeight = _player$embed$ratio$s2[1];\n\n target.style.maxWidth = toggle ? \"\".concat(height / videoHeight * videoWidth, \"px\") : null;\n target.style.margin = toggle ? '0 auto' : null;\n }; // Resize on fullscreen change\n\n\n var setPlayerSize = function setPlayerSize(measure) {\n // If we don't need to measure the viewport\n if (!measure) {\n return setAspectRatio.call(player);\n }\n\n var rect = elements.container.getBoundingClientRect();\n var width = rect.width,\n height = rect.height;\n return setAspectRatio.call(player, \"\".concat(width, \":\").concat(height));\n };\n\n var resized = function resized() {\n window.clearTimeout(timers.resized);\n timers.resized = window.setTimeout(setPlayerSize, 50);\n };\n\n on.call(player, elements.container, 'enterfullscreen exitfullscreen', function (event) {\n var _player$fullscreen = player.fullscreen,\n target = _player$fullscreen.target,\n usingNative = _player$fullscreen.usingNative; // Ignore for iOS native\n\n if (!player.isEmbed || target !== elements.container) {\n return;\n }\n\n var isEnter = event.type === 'enterfullscreen'; // Set the player size when entering fullscreen to viewport size\n\n var _setPlayerSize = setPlayerSize(isEnter),\n padding = _setPlayerSize.padding,\n ratio = _setPlayerSize.ratio; // Set Vimeo gutter\n\n\n setGutter(ratio, padding, isEnter); // If not using native fullscreen, we need to check for resizes of viewport\n\n if (!usingNative) {\n if (isEnter) {\n on.call(player, window, 'resize', resized);\n } else {\n off.call(player, window, 'resize', resized);\n }\n }\n });\n } // Listen for media events\n\n }, {\n key: \"media\",\n value: function media() {\n var _this = this;\n\n var player = this.player;\n var elements = player.elements; // Time change on media\n\n on.call(player, player.media, 'timeupdate seeking seeked', function (event) {\n return controls.timeUpdate.call(player, event);\n }); // Display duration\n\n on.call(player, player.media, 'durationchange loadeddata loadedmetadata', function (event) {\n return controls.durationUpdate.call(player, event);\n }); // Check for audio tracks on load\n // We can't use `loadedmetadata` as it doesn't seem to have audio tracks at that point\n\n on.call(player, player.media, 'canplay loadeddata', function () {\n toggleHidden(elements.volume, !player.hasAudio);\n toggleHidden(elements.buttons.mute, !player.hasAudio);\n }); // Handle the media finishing\n\n on.call(player, player.media, 'ended', function () {\n // Show poster on end\n if (player.isHTML5 && player.isVideo && player.config.resetOnEnd) {\n // Restart\n player.restart();\n }\n }); // Check for buffer progress\n\n on.call(player, player.media, 'progress playing seeking seeked', function (event) {\n return controls.updateProgress.call(player, event);\n }); // Handle volume changes\n\n on.call(player, player.media, 'volumechange', function (event) {\n return controls.updateVolume.call(player, event);\n }); // Handle play/pause\n\n on.call(player, player.media, 'playing play pause ended emptied timeupdate', function (event) {\n return ui.checkPlaying.call(player, event);\n }); // Loading state\n\n on.call(player, player.media, 'waiting canplay seeked playing', function (event) {\n return ui.checkLoading.call(player, event);\n }); // Click video\n\n if (player.supported.ui && player.config.clickToPlay && !player.isAudio) {\n // Re-fetch the wrapper\n var wrapper = getElement.call(player, \".\".concat(player.config.classNames.video)); // Bail if there's no wrapper (this should never happen)\n\n if (!is$1.element(wrapper)) {\n return;\n } // On click play, pause or restart\n\n\n on.call(player, elements.container, 'click', function (event) {\n var targets = [elements.container, wrapper]; // Ignore if click if not container or in video wrapper\n\n if (!targets.includes(event.target) && !wrapper.contains(event.target)) {\n return;\n } // Touch devices will just show controls (if hidden)\n\n\n if (player.touch && player.config.hideControls) {\n return;\n }\n\n if (player.ended) {\n _this.proxy(event, player.restart, 'restart');\n\n _this.proxy(event, player.play, 'play');\n } else {\n _this.proxy(event, player.togglePlay, 'play');\n }\n });\n } // Disable right click\n\n\n if (player.supported.ui && player.config.disableContextMenu) {\n on.call(player, elements.wrapper, 'contextmenu', function (event) {\n event.preventDefault();\n }, false);\n } // Volume change\n\n\n on.call(player, player.media, 'volumechange', function () {\n // Save to storage\n player.storage.set({\n volume: player.volume,\n muted: player.muted\n });\n }); // Speed change\n\n on.call(player, player.media, 'ratechange', function () {\n // Update UI\n controls.updateSetting.call(player, 'speed'); // Save to storage\n\n\n player.storage.set({\n speed: player.speed\n });\n }); // Quality change\n\n on.call(player, player.media, 'qualitychange', function (event) {\n // Update UI\n controls.updateSetting.call(player, 'quality', null, event.detail.quality);\n }); // Update download link when ready and if quality changes\n\n on.call(player, player.media, 'ready qualitychange', function () {\n controls.setDownloadLink.call(player);\n }); // Proxy events to container\n // Bubble up key events for Edge\n\n var proxyEvents = player.config.events.concat(['keyup', 'keydown']).join(' ');\n on.call(player, player.media, proxyEvents, function (event) {\n var _event$detail = event.detail,\n detail = _event$detail === void 0 ? {} : _event$detail; // Get error details from media\n\n if (event.type === 'error') {\n detail = player.media.error;\n }\n\n triggerEvent.call(player, elements.container, event.type, true, detail);\n });\n } // Run default and custom handlers\n\n }, {\n key: \"proxy\",\n value: function proxy(event, defaultHandler, customHandlerKey) {\n var player = this.player;\n var customHandler = player.config.listeners[customHandlerKey];\n var hasCustomHandler = is$1.function(customHandler);\n var returned = true; // Execute custom handler\n\n if (hasCustomHandler) {\n returned = customHandler.call(player, event);\n } // Only call default handler if not prevented in custom handler\n\n\n if (returned && is$1.function(defaultHandler)) {\n defaultHandler.call(player, event);\n }\n } // Trigger custom and default handlers\n\n }, {\n key: \"bind\",\n value: function bind(element, type, defaultHandler, customHandlerKey) {\n var _this2 = this;\n\n var passive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var player = this.player;\n var customHandler = player.config.listeners[customHandlerKey];\n var hasCustomHandler = is$1.function(customHandler);\n on.call(player, element, type, function (event) {\n return _this2.proxy(event, defaultHandler, customHandlerKey);\n }, passive && !hasCustomHandler);\n } // Listen for control events\n\n }, {\n key: \"controls\",\n value: function controls$$1() {\n var _this3 = this;\n\n var player = this.player;\n var elements = player.elements; // IE doesn't support input event, so we fallback to change\n\n var inputEvent = browser.isIE ? 'change' : 'input'; // Play/pause toggle\n\n if (elements.buttons.play) {\n Array.from(elements.buttons.play).forEach(function (button) {\n _this3.bind(button, 'click', player.togglePlay, 'play');\n });\n } // Pause\n\n\n this.bind(elements.buttons.restart, 'click', player.restart, 'restart'); // Rewind\n\n this.bind(elements.buttons.rewind, 'click', player.rewind, 'rewind'); // Rewind\n\n this.bind(elements.buttons.fastForward, 'click', player.forward, 'fastForward'); // Mute toggle\n\n this.bind(elements.buttons.mute, 'click', function () {\n player.muted = !player.muted;\n }, 'mute'); // Captions toggle\n\n this.bind(elements.buttons.captions, 'click', function () {\n return player.toggleCaptions();\n }); // Download\n\n this.bind(elements.buttons.download, 'click', function () {\n triggerEvent.call(player, player.media, 'download');\n }, 'download'); // Fullscreen toggle\n\n this.bind(elements.buttons.fullscreen, 'click', function () {\n player.fullscreen.toggle();\n }, 'fullscreen'); // Picture-in-Picture\n\n this.bind(elements.buttons.pip, 'click', function () {\n player.pip = 'toggle';\n }, 'pip'); // Airplay\n\n this.bind(elements.buttons.airplay, 'click', player.airplay, 'airplay'); // Settings menu - click toggle\n\n this.bind(elements.buttons.settings, 'click', function (event) {\n // Prevent the document click listener closing the menu\n event.stopPropagation();\n\n controls.toggleMenu.call(player, event);\n }); // Settings menu - keyboard toggle\n // We have to bind to keyup otherwise Firefox triggers a click when a keydown event handler shifts focus\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1220143\n\n this.bind(elements.buttons.settings, 'keyup', function (event) {\n var code = event.which; // We only care about space and return\n\n if (![13, 32].includes(code)) {\n return;\n } // Because return triggers a click anyway, all we need to do is set focus\n\n\n if (code === 13) {\n controls.focusFirstMenuItem.call(player, null, true);\n\n return;\n } // Prevent scroll\n\n\n event.preventDefault(); // Prevent playing video (Firefox)\n\n event.stopPropagation(); // Toggle menu\n\n controls.toggleMenu.call(player, event);\n }, null, false // Can't be passive as we're preventing default\n ); // Escape closes menu\n\n this.bind(elements.settings.menu, 'keydown', function (event) {\n if (event.which === 27) {\n controls.toggleMenu.call(player, event);\n }\n }); // Set range input alternative \"value\", which matches the tooltip time (#954)\n\n this.bind(elements.inputs.seek, 'mousedown mousemove', function (event) {\n var rect = elements.progress.getBoundingClientRect();\n var percent = 100 / rect.width * (event.pageX - rect.left);\n event.currentTarget.setAttribute('seek-value', percent);\n }); // Pause while seeking\n\n this.bind(elements.inputs.seek, 'mousedown mouseup keydown keyup touchstart touchend', function (event) {\n var seek = event.currentTarget;\n var code = event.keyCode ? event.keyCode : event.which;\n var attribute = 'play-on-seeked';\n\n if (is$1.keyboardEvent(event) && code !== 39 && code !== 37) {\n return;\n } // Record seek time so we can prevent hiding controls for a few seconds after seek\n\n\n player.lastSeekTime = Date.now(); // Was playing before?\n\n var play = seek.hasAttribute(attribute); // Done seeking\n\n var done = ['mouseup', 'touchend', 'keyup'].includes(event.type); // If we're done seeking and it was playing, resume playback\n\n if (play && done) {\n seek.removeAttribute(attribute);\n player.play();\n } else if (!done && player.playing) {\n seek.setAttribute(attribute, '');\n player.pause();\n }\n }); // Fix range inputs on iOS\n // Super weird iOS bug where after you interact with an ,\n // it takes over further interactions on the page. This is a hack\n\n if (browser.isIos) {\n var inputs = getElements.call(player, 'input[type=\"range\"]');\n Array.from(inputs).forEach(function (input) {\n return _this3.bind(input, inputEvent, function (event) {\n return repaint(event.target);\n });\n });\n } // Seek\n\n\n this.bind(elements.inputs.seek, inputEvent, function (event) {\n var seek = event.currentTarget; // If it exists, use seek-value instead of \"value\" for consistency with tooltip time (#954)\n\n var seekTo = seek.getAttribute('seek-value');\n\n if (is$1.empty(seekTo)) {\n seekTo = seek.value;\n }\n\n seek.removeAttribute('seek-value');\n player.currentTime = seekTo / seek.max * player.duration;\n }, 'seek'); // Seek tooltip\n\n this.bind(elements.progress, 'mouseenter mouseleave mousemove', function (event) {\n return controls.updateSeekTooltip.call(player, event);\n }); // Preview thumbnails plugin\n // TODO: Really need to work on some sort of plug-in wide event bus or pub-sub for this\n\n this.bind(elements.progress, 'mousemove touchmove', function (event) {\n var previewThumbnails = player.previewThumbnails;\n\n if (previewThumbnails && previewThumbnails.loaded) {\n previewThumbnails.startMove(event);\n }\n }); // Hide thumbnail preview - on mouse click, mouse leave, and video play/seek. All four are required, e.g., for buffering\n\n this.bind(elements.progress, 'mouseleave click', function () {\n var previewThumbnails = player.previewThumbnails;\n\n if (previewThumbnails && previewThumbnails.loaded) {\n previewThumbnails.endMove(false, true);\n }\n }); // Show scrubbing preview\n\n this.bind(elements.progress, 'mousedown touchstart', function (event) {\n var previewThumbnails = player.previewThumbnails;\n\n if (previewThumbnails && previewThumbnails.loaded) {\n previewThumbnails.startScrubbing(event);\n }\n });\n this.bind(elements.progress, 'mouseup touchend', function (event) {\n var previewThumbnails = player.previewThumbnails;\n\n if (previewThumbnails && previewThumbnails.loaded) {\n previewThumbnails.endScrubbing(event);\n }\n }); // Polyfill for lower fill in for webkit\n\n if (browser.isWebkit) {\n Array.from(getElements.call(player, 'input[type=\"range\"]')).forEach(function (element) {\n _this3.bind(element, 'input', function (event) {\n return controls.updateRangeFill.call(player, event.target);\n });\n });\n } // Current time invert\n // Only if one time element is used for both currentTime and duration\n\n\n if (player.config.toggleInvert && !is$1.element(elements.display.duration)) {\n this.bind(elements.display.currentTime, 'click', function () {\n // Do nothing if we're at the start\n if (player.currentTime === 0) {\n return;\n }\n\n player.config.invertTime = !player.config.invertTime;\n\n controls.timeUpdate.call(player);\n });\n } // Volume\n\n\n this.bind(elements.inputs.volume, inputEvent, function (event) {\n player.volume = event.target.value;\n }, 'volume'); // Update controls.hover state (used for ui.toggleControls to avoid hiding when interacting)\n\n this.bind(elements.controls, 'mouseenter mouseleave', function (event) {\n elements.controls.hover = !player.touch && event.type === 'mouseenter';\n }); // Update controls.pressed state (used for ui.toggleControls to avoid hiding when interacting)\n\n this.bind(elements.controls, 'mousedown mouseup touchstart touchend touchcancel', function (event) {\n elements.controls.pressed = ['mousedown', 'touchstart'].includes(event.type);\n }); // Show controls when they receive focus (e.g., when using keyboard tab key)\n\n this.bind(elements.controls, 'focusin', function () {\n var config = player.config,\n elements = player.elements,\n timers = player.timers; // Skip transition to prevent focus from scrolling the parent element\n\n toggleClass(elements.controls, config.classNames.noTransition, true); // Toggle\n\n ui.toggleControls.call(player, true); // Restore transition\n\n setTimeout(function () {\n toggleClass(elements.controls, config.classNames.noTransition, false);\n }, 0); // Delay a little more for mouse users\n\n var delay = _this3.touch ? 3000 : 4000; // Clear timer\n\n clearTimeout(timers.controls); // Hide again after delay\n\n timers.controls = setTimeout(function () {\n return ui.toggleControls.call(player, false);\n }, delay);\n }); // Mouse wheel for volume\n\n this.bind(elements.inputs.volume, 'wheel', function (event) {\n // Detect \"natural\" scroll - suppored on OS X Safari only\n // Other browsers on OS X will be inverted until support improves\n var inverted = event.webkitDirectionInvertedFromDevice; // Get delta from event. Invert if `inverted` is true\n\n var _map = [event.deltaX, -event.deltaY].map(function (value) {\n return inverted ? -value : value;\n }),\n _map2 = _slicedToArray(_map, 2),\n x = _map2[0],\n y = _map2[1]; // Using the biggest delta, normalize to 1 or -1 (or 0 if no delta)\n\n\n var direction = Math.sign(Math.abs(x) > Math.abs(y) ? x : y); // Change the volume by 2%\n\n player.increaseVolume(direction / 50); // Don't break page scrolling at max and min\n\n var volume = player.media.volume;\n\n if (direction === 1 && volume < 1 || direction === -1 && volume > 0) {\n event.preventDefault();\n }\n }, 'volume', false);\n }\n }]);\n\n return Listeners;\n }();\n\n var commonjsGlobal = 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 var loadjs_umd = createCommonjsModule(function (module, exports) {\n (function (root, factory) {\n {\n module.exports = factory();\n }\n })(commonjsGlobal, function () {\n /**\n * Global dependencies.\n * @global {Object} document - DOM\n */\n var devnull = function devnull() {},\n bundleIdCache = {},\n bundleResultCache = {},\n bundleCallbackQueue = {};\n /**\n * Subscribe to bundle load event.\n * @param {string[]} bundleIds - Bundle ids\n * @param {Function} callbackFn - The callback function\n */\n\n\n function subscribe(bundleIds, callbackFn) {\n // listify\n bundleIds = bundleIds.push ? bundleIds : [bundleIds];\n var depsNotFound = [],\n i = bundleIds.length,\n numWaiting = i,\n fn,\n bundleId,\n r,\n q; // define callback function\n\n fn = function fn(bundleId, pathsNotFound) {\n if (pathsNotFound.length) depsNotFound.push(bundleId);\n numWaiting--;\n if (!numWaiting) callbackFn(depsNotFound);\n }; // register callback\n\n\n while (i--) {\n bundleId = bundleIds[i]; // execute callback if in result cache\n\n r = bundleResultCache[bundleId];\n\n if (r) {\n fn(bundleId, r);\n continue;\n } // add to callback queue\n\n\n q = bundleCallbackQueue[bundleId] = bundleCallbackQueue[bundleId] || [];\n q.push(fn);\n }\n }\n /**\n * Publish bundle load event.\n * @param {string} bundleId - Bundle id\n * @param {string[]} pathsNotFound - List of files not found\n */\n\n\n function publish(bundleId, pathsNotFound) {\n // exit if id isn't defined\n if (!bundleId) return;\n var q = bundleCallbackQueue[bundleId]; // cache result\n\n bundleResultCache[bundleId] = pathsNotFound; // exit if queue is empty\n\n if (!q) return; // empty callback queue\n\n while (q.length) {\n q[0](bundleId, pathsNotFound);\n q.splice(0, 1);\n }\n }\n /**\n * Execute callbacks.\n * @param {Object or Function} args - The callback args\n * @param {string[]} depsNotFound - List of dependencies not found\n */\n\n\n function executeCallbacks(args, depsNotFound) {\n // accept function as argument\n if (args.call) args = {\n success: args\n }; // success and error callbacks\n\n if (depsNotFound.length) (args.error || devnull)(depsNotFound);else (args.success || devnull)(args);\n }\n /**\n * Load individual file.\n * @param {string} path - The file path\n * @param {Function} callbackFn - The callback function\n */\n\n\n function loadFile(path, callbackFn, args, numTries) {\n var doc = document,\n async = args.async,\n maxTries = (args.numRetries || 0) + 1,\n beforeCallbackFn = args.before || devnull,\n pathStripped = path.replace(/^(css|img)!/, ''),\n isCss,\n e;\n numTries = numTries || 0;\n\n if (/(^css!|\\.css$)/.test(path)) {\n isCss = true; // css\n\n e = doc.createElement('link');\n e.rel = 'stylesheet';\n e.href = pathStripped; //.replace(/^css!/, ''); // remove \"css!\" prefix\n } else if (/(^img!|\\.(png|gif|jpg|svg)$)/.test(path)) {\n // image\n e = doc.createElement('img');\n e.src = pathStripped;\n } else {\n // javascript\n e = doc.createElement('script');\n e.src = path;\n e.async = async === undefined ? true : async;\n }\n\n e.onload = e.onerror = e.onbeforeload = function (ev) {\n var result = ev.type[0]; // Note: The following code isolates IE using `hideFocus` and treats empty\n // stylesheets as failures to get around lack of onerror support\n\n if (isCss && 'hideFocus' in e) {\n try {\n if (!e.sheet.cssText.length) result = 'e';\n } catch (x) {\n // sheets objects created from load errors don't allow access to\n // `cssText` (unless error is Code:18 SecurityError)\n if (x.code != 18) result = 'e';\n }\n } // handle retries in case of load failure\n\n\n if (result == 'e') {\n // increment counter\n numTries += 1; // exit function and try again\n\n if (numTries < maxTries) {\n return loadFile(path, callbackFn, args, numTries);\n }\n } // execute callback\n\n\n callbackFn(path, result, ev.defaultPrevented);\n }; // add to document (unless callback returns `false`)\n\n\n if (beforeCallbackFn(path, e) !== false) doc.head.appendChild(e);\n }\n /**\n * Load multiple files.\n * @param {string[]} paths - The file paths\n * @param {Function} callbackFn - The callback function\n */\n\n\n function loadFiles(paths, callbackFn, args) {\n // listify paths\n paths = paths.push ? paths : [paths];\n var numWaiting = paths.length,\n x = numWaiting,\n pathsNotFound = [],\n fn,\n i; // define callback function\n\n fn = function fn(path, result, defaultPrevented) {\n // handle error\n if (result == 'e') pathsNotFound.push(path); // handle beforeload event. If defaultPrevented then that means the load\n // will be blocked (ex. Ghostery/ABP on Safari)\n\n if (result == 'b') {\n if (defaultPrevented) pathsNotFound.push(path);else return;\n }\n\n numWaiting--;\n if (!numWaiting) callbackFn(pathsNotFound);\n }; // load scripts\n\n\n for (i = 0; i < x; i++) {\n loadFile(paths[i], fn, args);\n }\n }\n /**\n * Initiate script load and register bundle.\n * @param {(string|string[])} paths - The file paths\n * @param {(string|Function)} [arg1] - The bundleId or success callback\n * @param {Function} [arg2] - The success or error callback\n * @param {Function} [arg3] - The error callback\n */\n\n\n function loadjs(paths, arg1, arg2) {\n var bundleId, args; // bundleId (if string)\n\n if (arg1 && arg1.trim) bundleId = arg1; // args (default is {})\n\n args = (bundleId ? arg2 : arg1) || {}; // throw error if bundle is already defined\n\n if (bundleId) {\n if (bundleId in bundleIdCache) {\n throw \"LoadJS\";\n } else {\n bundleIdCache[bundleId] = true;\n }\n } // load scripts\n\n\n loadFiles(paths, function (pathsNotFound) {\n // execute callbacks\n executeCallbacks(args, pathsNotFound); // publish bundle load event\n\n publish(bundleId, pathsNotFound);\n }, args);\n }\n /**\n * Execute callbacks when dependencies have been satisfied.\n * @param {(string|string[])} deps - List of bundle ids\n * @param {Object} args - success/error arguments\n */\n\n\n loadjs.ready = function ready(deps, args) {\n // subscribe to bundle load event\n subscribe(deps, function (depsNotFound) {\n // execute callbacks\n executeCallbacks(args, depsNotFound);\n });\n return loadjs;\n };\n /**\n * Manually satisfy bundle dependencies.\n * @param {string} bundleId - The bundle id\n */\n\n\n loadjs.done = function done(bundleId) {\n publish(bundleId, []);\n };\n /**\n * Reset loadjs dependencies statuses\n */\n\n\n loadjs.reset = function reset() {\n bundleIdCache = {};\n bundleResultCache = {};\n bundleCallbackQueue = {};\n };\n /**\n * Determine if bundle has already been defined\n * @param String} bundleId - The bundle id\n */\n\n\n loadjs.isDefined = function isDefined(bundleId) {\n return bundleId in bundleIdCache;\n }; // export\n\n\n return loadjs;\n });\n });\n\n // ==========================================================================\n function loadScript(url) {\n return new Promise(function (resolve, reject) {\n loadjs_umd(url, {\n success: resolve,\n error: reject\n });\n });\n }\n\n function parseId(url) {\n if (is$1.empty(url)) {\n return null;\n }\n\n if (is$1.number(Number(url))) {\n return url;\n }\n\n var regex = /^.*(vimeo.com\\/|video\\/)(\\d+).*/;\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 var vimeo = {\n setup: function setup() {\n var _this = this;\n\n // Add embed class for responsive\n toggleClass(this.elements.wrapper, this.config.classNames.embed, true); // Set intial ratio\n\n setAspectRatio.call(this); // Load the API if not already\n\n if (!is$1.object(window.Vimeo)) {\n loadScript(this.config.urls.vimeo.sdk).then(function () {\n vimeo.ready.call(_this);\n }).catch(function (error) {\n _this.debug.warn('Vimeo API failed to load', error);\n });\n } else {\n vimeo.ready.call(this);\n }\n },\n // API Ready\n ready: function ready$$1() {\n var _this2 = this;\n\n var player = this;\n var config = player.config.vimeo; // Get Vimeo params for the iframe\n\n var params = buildUrlParams(extend({}, {\n loop: player.config.loop.active,\n autoplay: player.autoplay,\n muted: player.muted,\n gesture: 'media',\n playsinline: !this.config.fullscreen.iosNative\n }, config)); // Get the source URL or ID\n\n var source = player.media.getAttribute('src'); // Get from
if needed\n\n if (is$1.empty(source)) {\n source = player.media.getAttribute(player.config.attributes.embed.id);\n }\n\n var id = parseId(source); // Build an iframe\n\n var iframe = createElement('iframe');\n var src = format(player.config.urls.vimeo.iframe, id, params);\n iframe.setAttribute('src', src);\n iframe.setAttribute('allowfullscreen', '');\n iframe.setAttribute('allowtransparency', '');\n iframe.setAttribute('allow', 'autoplay'); // Get poster, if already set\n\n var poster = player.poster; // Inject the package\n\n var wrapper = createElement('div', {\n poster: poster,\n class: player.config.classNames.embedContainer\n });\n wrapper.appendChild(iframe);\n player.media = replaceElement(wrapper, player.media); // Get poster image\n\n fetch(format(player.config.urls.vimeo.api, id), 'json').then(function (response) {\n if (is$1.empty(response)) {\n return;\n } // Get the URL for thumbnail\n\n\n var url = new URL(response[0].thumbnail_large); // Get original image\n\n url.pathname = \"\".concat(url.pathname.split('_')[0], \".jpg\"); // Set and show poster\n\n ui.setPoster.call(player, url.href).catch(function () {});\n }); // Setup instance\n // https://github.com/vimeo/player.js\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 = function () {\n assurePlaybackState.call(player, true);\n return player.embed.play();\n };\n\n player.media.pause = function () {\n assurePlaybackState.call(player, false);\n return player.embed.pause();\n };\n\n player.media.stop = function () {\n player.pause();\n player.currentTime = 0;\n }; // Seeking\n\n\n var currentTime = player.media.currentTime;\n Object.defineProperty(player.media, 'currentTime', {\n get: function get() {\n return currentTime;\n },\n set: function 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 var embed = player.embed,\n media = player.media,\n paused = player.paused,\n volume = player.volume;\n var 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(function () {\n return embed.setCurrentTime(time);\n }) // Restore paused\n .then(function () {\n return restorePause && embed.pause();\n }) // Restore volume\n .then(function () {\n return restorePause && embed.setVolume(volume);\n }).catch(function () {// Do nothing\n });\n }\n }); // Playback speed\n\n var speed = player.config.speed.selected;\n Object.defineProperty(player.media, 'playbackRate', {\n get: function get() {\n return speed;\n },\n set: function set(input) {\n player.embed.setPlaybackRate(input).then(function () {\n speed = input;\n triggerEvent.call(player, player.media, 'ratechange');\n }).catch(function (error) {\n // Hide menu item (and menu if empty)\n if (error.name === 'Error') {\n controls.setSpeedMenu.call(player, []);\n }\n });\n }\n }); // Volume\n\n var volume = player.config.volume;\n Object.defineProperty(player.media, 'volume', {\n get: function get() {\n return volume;\n },\n set: function set(input) {\n player.embed.setVolume(input).then(function () {\n volume = input;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n }\n }); // Muted\n\n var muted = player.config.muted;\n Object.defineProperty(player.media, 'muted', {\n get: function get() {\n return muted;\n },\n set: function set(input) {\n var toggle = is$1.boolean(input) ? input : false;\n player.embed.setVolume(toggle ? 0 : player.config.volume).then(function () {\n muted = toggle;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n }\n }); // Loop\n\n var loop = player.config.loop;\n Object.defineProperty(player.media, 'loop', {\n get: function get() {\n return loop;\n },\n set: function set(input) {\n var toggle = is$1.boolean(input) ? input : player.config.loop.active;\n player.embed.setLoop(toggle).then(function () {\n loop = toggle;\n });\n }\n }); // Source\n\n var currentSrc;\n player.embed.getVideoUrl().then(function (value) {\n currentSrc = value;\n controls.setDownloadLink.call(player);\n }).catch(function (error) {\n _this2.debug.warn(error);\n });\n Object.defineProperty(player.media, 'currentSrc', {\n get: function get() {\n return currentSrc;\n }\n }); // Ended\n\n Object.defineProperty(player.media, 'ended', {\n get: function get() {\n return player.currentTime === player.duration;\n }\n }); // Set aspect ratio based on video size\n\n Promise.all([player.embed.getVideoWidth(), player.embed.getVideoHeight()]).then(function (dimensions) {\n var _dimensions = _slicedToArray(dimensions, 2),\n width = _dimensions[0],\n height = _dimensions[1];\n\n player.embed.ratio = \"\".concat(width, \":\").concat(height);\n setAspectRatio.call(_this2, player.embed.ratio);\n }); // Set autopause\n\n player.embed.setAutopause(player.config.autopause).then(function (state) {\n player.config.autopause = state;\n }); // Get title\n\n player.embed.getVideoTitle().then(function (title) {\n player.config.title = title;\n ui.setTitle.call(_this2);\n }); // Get current time\n\n player.embed.getCurrentTime().then(function (value) {\n currentTime = value;\n triggerEvent.call(player, player.media, 'timeupdate');\n }); // Get duration\n\n player.embed.getDuration().then(function (value) {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n }); // Get captions\n\n player.embed.getTextTracks().then(function (tracks) {\n player.media.textTracks = tracks;\n captions.setup.call(player);\n });\n player.embed.on('cuechange', function (_ref) {\n var _ref$cues = _ref.cues,\n cues = _ref$cues === void 0 ? [] : _ref$cues;\n var strippedCues = cues.map(function (cue) {\n return stripHTML(cue.text);\n });\n captions.updateCues.call(player, strippedCues);\n });\n player.embed.on('loaded', function () {\n // Assure state and events are updated on autoplay\n player.embed.getPaused().then(function (paused) {\n assurePlaybackState.call(player, !paused);\n\n if (!paused) {\n triggerEvent.call(player, player.media, 'playing');\n }\n });\n\n if (is$1.element(player.embed.element) && player.supported.ui) {\n var 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('play', function () {\n assurePlaybackState.call(player, true);\n triggerEvent.call(player, player.media, 'playing');\n });\n player.embed.on('pause', function () {\n assurePlaybackState.call(player, false);\n });\n player.embed.on('timeupdate', function (data) {\n player.media.seeking = false;\n currentTime = data.seconds;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n player.embed.on('progress', function (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(function (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', function () {\n player.media.seeking = false;\n triggerEvent.call(player, player.media, 'seeked');\n });\n player.embed.on('ended', function () {\n player.media.paused = true;\n triggerEvent.call(player, player.media, 'ended');\n });\n player.embed.on('error', function (detail) {\n player.media.error = detail;\n triggerEvent.call(player, player.media, 'error');\n }); // Rebuild UI\n\n setTimeout(function () {\n return ui.build.call(player);\n }, 0);\n }\n };\n\n // ==========================================================================\n\n function parseId$1(url) {\n if (is$1.empty(url)) {\n return null;\n }\n\n var 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$1(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 var youtube = {\n setup: function setup() {\n var _this = this;\n\n // Add embed class for responsive\n toggleClass(this.elements.wrapper, this.config.classNames.embed, true); // Set aspect ratio\n\n setAspectRatio.call(this); // Setup API\n\n if (is$1.object(window.YT) && is$1.function(window.YT.Player)) {\n youtube.ready.call(this);\n } else {\n // Load the API\n loadScript(this.config.urls.youtube.sdk).catch(function (error) {\n _this.debug.warn('YouTube API failed to load', error);\n }); // Setup callback for the API\n // YouTube has it's own system of course...\n\n window.onYouTubeReadyCallbacks = window.onYouTubeReadyCallbacks || []; // Add to queue\n\n window.onYouTubeReadyCallbacks.push(function () {\n youtube.ready.call(_this);\n }); // Set callback to process queue\n\n window.onYouTubeIframeAPIReady = function () {\n window.onYouTubeReadyCallbacks.forEach(function (callback) {\n callback();\n });\n };\n }\n },\n // Get the media title\n getTitle: function getTitle(videoId) {\n var _this2 = this;\n\n // Try via undocumented API method first\n // This method disappears now and then though...\n // https://github.com/sampotts/plyr/issues/709\n if (is$1.function(this.embed.getVideoData)) {\n var _this$embed$getVideoD = this.embed.getVideoData(),\n title = _this$embed$getVideoD.title;\n\n if (is$1.empty(title)) {\n this.config.title = title;\n ui.setTitle.call(this);\n return;\n }\n } // Or via Google API\n\n\n var key = this.config.keys.google;\n\n if (is$1.string(key) && !is$1.empty(key)) {\n var url = format(this.config.urls.youtube.api, videoId, key);\n fetch(url).then(function (result) {\n if (is$1.object(result)) {\n _this2.config.title = result.items[0].snippet.title;\n ui.setTitle.call(_this2);\n }\n }).catch(function () {});\n }\n },\n // API ready\n ready: function ready$$1() {\n var player = this; // Ignore already setup (race condition)\n\n var currentId = player.media.getAttribute('id');\n\n if (!is$1.empty(currentId) && currentId.startsWith('youtube-')) {\n return;\n } // Get the source URL or ID\n\n\n var source = player.media.getAttribute('src'); // Get from
if needed\n\n if (is$1.empty(source)) {\n source = player.media.getAttribute(this.config.attributes.embed.id);\n } // Replace the