{"version":3,"sources":["webpack:///./node_modules/video.js/dist/video.es.js"],"names":["version$6","hooks_","hooks","type","fn","concat","hook","removeHook","index","indexOf","slice","splice","hookOnce","map","original","wrapper","args","FullscreenApi","prefixed","apiMap","specApi","browserApi","i","length","history","LogByTypeFactory","name","log","styles","level","lvl","levels","lvlRegExp","RegExp","resultName","unshift","toUpperCase","push","console","info","test","Array","isArray","createLogger$1","delimiter","logByType","createLogger","subName","subDelimiter","subStyles","resultDelimiter","undefined","resultStyles","createNewLogger","newName","newDelimiter","newStyles","all","off","debug","warn","error","DEFAULT","hasOwnProperty","Error","filter","fname","historyItem","clear","disable","enable","log$1","toString","Object","prototype","keys","object","isObject","each","forEach","key","reduce","initial","accum","value","isPlain","call","constructor","merge$1","sources","result","source","values","defineLazyProperty","obj","getValue","setter","set","defineProperty","enumerable","writable","options","configurable","Obj","freeze","__proto__","merge","ANDROID_VERSION","IS_IPOD","IOS_VERSION","IS_ANDROID","IS_FIREFOX","IS_EDGE","IS_CHROMIUM","IS_CHROME","CHROMIUM_VERSION","CHROME_VERSION","IS_CHROMECAST_RECEIVER","Boolean","cast","framework","CastReceiverContext","IE_VERSION","IS_SAFARI","IS_WINDOWS","IS_IPAD","IS_IPHONE","IS_TIZEN","IS_WEBOS","IS_SMART_TV","TOUCH_ENABLED","isReal","navigator","maxTouchPoints","DocumentTouch","document","UAD","userAgentData","platform","brands","find","b","brand","version","USER_AGENT","userAgent","match","major","parseFloat","minor","exec","IS_IOS","IS_ANY_SAFARI","browser","isNonBlankString","str","trim","throwIfWhitespace","isEl","nodeType","isInFrame","parent","self","x","createQuerier","method","selector","context","querySelector","ctx","createEl","tagName","properties","attributes","content","el","createElement","getOwnPropertyNames","propName","val","textContent","attrName","setAttribute","appendContent","text","innerText","prependTo","child","firstChild","insertBefore","appendChild","hasClass","element","classToCheck","classList","contains","addClass","classesToAdd","add","prev","current","split","removeClass","classesToRemove","remove","toggleClass","classToToggle","predicate","className","toggle","setAttributes","attrValue","removeAttribute","getAttributes","tag","knownBooleans","attrs","attrVal","includes","getAttribute","attribute","blockTextSelection","body","focus","onselectstart","unblockTextSelection","getBoundingClientRect","parentNode","rect","k","height","computedStyle","width","findPosition","offsetParent","left","top","offsetWidth","offsetHeight","fullscreenElement","offsetLeft","offsetTop","getPointerPosition","event","translated","y","item","nodeName","toLowerCase","transform","Number","assignedSlot","parentElement","WebKitCSSMatrix","transformValue","getComputedStyle","matrix","m41","m42","host","position","boxTarget","target","box","boxW","boxH","offsetY","offsetX","changedTouches","pageX","pageY","Math","max","min","isTextNode","emptyEl","removeChild","normalizeContent","createTextNode","node","insertContent","isSingleLeftClick","button","buttons","$","$$","prop","computedStyleValue","e","getPropertyValue","copyStyleSheetsToWindow","win","styleSheets","styleSheet","cssRules","rule","cssText","join","style","head","link","rel","media","mediaText","href","Dom","videojs$1","_windowLoaded","autoSetup","vids","getElementsByTagName","audios","divs","mediaEls","mediaEl","autoSetupTimeout","player","wait","vjs","setTimeout","setWindowLoaded","removeEventListener","readyState","addEventListener","createStyleElement","setTextContent","DomData","WeakMap","_initialGuid","_supportsPassive","_guid","newGUID","_cleanUpEvents","elem","has","data","get","handlers","dispatcher","detachEvent","disabled","delete","_handleMultipleEvents","types","callback","fixEvent","fixed_","returnTrue","returnFalse","isPropagationStopped","isImmediatePropagationStopped","old","deprecatedProps","preventDefault","srcElement","relatedTarget","fromElement","toElement","returnValue","defaultPrevented","stopPropagation","cancelBubble","stopImmediatePropagation","clientX","doc","documentElement","scrollLeft","clientLeft","clientY","scrollTop","clientTop","which","charCode","keyCode","supportsPassive","opts","passiveEvents","on","guid","hash","handlersCopy","m","n","passive","attachEvent","removeType","t","trigger","elemData","ownerDocument","bubbles","targetData","one","func","apply","this","arguments","any","Events","UPDATE_REFRESH_INTERVAL","bind_","uid","bound","bind","throttle","last","performance","now","throttled","debounce$1","immediate","timeout","cancel","clearTimeout","debounced","later","Fn","debounce","EVENT_MAP","EventTarget$2","ael","allowedEvents_","Map","oldTimeout","size","dispatchEvent","objName","name_","isEvented","eventBusEl_","every","addEventedCallback","eventedCallbacks","isValidEventType","validateTarget","fnName","validateEventType","validateListener","listener","normalizeListenArgs","isTargetingSelf","shift","listen","EventedMixin","removeListenerOnDispose","removeRemoverOnTargetDispose","largs","targetOrType","typeOrListener","evented","eventBusKey","assign","el_","StatefulMixin","state","stateUpdates","changes","from","to","stateful","defaultState","handleStateChanged","string","replace","w","toTitleCase$1","titleCaseEquals","str1","str2","Str","toTitleCase","Component$1","ready","play","player_","isDisposed_","parentComponent_","options_","id_","id","c","handleLanguagechange","children_","childIndex_","childNameIndex_","setTimeoutIds_","Set","setIntervalIds_","rafIds_","namedRafs_","clearingTimersOnDispose_","initChildren","reportTouchActivity","enableTouchActivity","readyQueue_","dispose","restoreEl","replaceChild","tokens","defaultValue","code","language","languages","primaryCode","primaryLang","localizedString","ret","contentEl_","names","acc","currentChild","getChild","iconName","experimentalSvgIcons","xmlnsURL","iconContainer","svgEl","createElementNS","setAttributeNS","useEl","iconIsSet_","component","componentName","componentClassName","componentClass","ComponentClass","getComponent","refNode","contentEl","childFound","compEl","children","parentOptions","handleAdd","playerOptions","newChild","addChild","workingChildren","Tech","some","wchild","isTech","sync","isReady_","readyQueue","num","skipListeners","dimension","widthOrHeight","pxIndex","parseInt","computedWidthOrHeight","isNaN","currentDimension","boundingClientRect","right","bottom","center","blur","spatialNavigation","enabled","handleKeyDown","touchStart","firstTouch","tapMovementThreshold","touchTimeThreshold","couldBeTap","touches","xdiff","ydiff","touchDistance","sqrt","noTap","touchTime","reportUserActivity","report","touchHolding","clearInterval","setInterval","touchEnd","timeoutId","clearTimersOnDispose_","interval","intervalId","requestAnimationFrame","cancelNamedAnimationFrame","cancelAnimationFrame","idName","cancelName","inert","tabIndex","getIsDisabled","getIsExpresslyInert","isVisibleStyleProperty","elementStyle","thisVisibility","thisDisplay","invisibleStyle","isBeingRendered","opacity","isVisible","elementCenter","clientWidth","innerWidth","clientHeight","innerHeight","pointContainer","elementFromPoint","ComponentToRegister","isComp","isPrototypeOf","reason","components_","Player","players","playerNames","pname","rangeCheck","maxIndex","getRange","valueIndex","ranges","rangeIndex","createTimeRangesObj","timeRangesObj","start","end","Symbol","iterator","createTimeRanges$1","registerComponent","defaultImplementation","seconds","guide","s","floor","h","gm","gh","Infinity","implementation","setFormatTime","customImplementation","resetFormatTime","formatTime","Time","createTimeRanges","createTimeRange","bufferedPercent","buffered","duration","bufferedDuration","MediaError","message","defaultMessages","isPromise","then","silencePromise","status","metadata","errorTypes","1","2","3","4","5","MEDIA_ERR_CUSTOM","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_ERR_ENCRYPTED","trackToJson_","track","cues","cue","startTime","endTime","textTracksToJson","tech","trackEls","trackObjs","tracks","trackEl","json","src","textTracks","jsonToTextTracks","addedTrack","addRemoteTextTrack","addCue","textTrackConverter","MODAL_CLASS_NAME","ModalDialog","super","handleKeyDown_","close_","close","opened_","hasBeenOpened_","hasBeenFilled_","closeable","uncloseable","role","descEl_","description","buildCSSClass","label","previouslyActiveEl_","localize","desc","fillAlways","fill","wasPlaying_","paused","pauseOnOpen","pause","hadControls_","controls","show","conditionalFocus_","hide","conditionalBlur_","temporary","closeable_","temp","controlText","fillWith","parentEl","nextSiblingEl","nextSibling","empty","closeButton","content_","activeEl","activeElement","playerEl","originalEvent","focusableEls","focusableEls_","focusIndex","shiftKey","allChildren","querySelectorAll","HTMLAnchorElement","HTMLAreaElement","hasAttribute","HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLButtonElement","HTMLIFrameElement","HTMLObjectElement","HTMLEmbedElement","TrackList","tracks_","addTrack","labelchange_","rtrack","l","change","addtrack","removetrack","labelchange","disableOthers$1","list","AudioTrackList","changing_","enabledChange_","removeTrack","disableOthers","selected","VideoTrackList","selectedChange_","TextTrackList","queueChange_","queueTrigger","triggerSelectedlanguagechange","triggerSelectedlanguagechange_","nonLanguageTextTrackKind","kind","selectedlanguagechange_","HtmlTrackElementList","trackElements","trackElements_","addTrackElement_","trackElement","trackElement_","TextTrackCueList","setCues_","length_","oldLength","cues_","defineProp","VideoTrackKind","alternative","captions","main","sign","subtitles","commentary","AudioTrackKind","TextTrackKind","descriptions","chapters","TextTrackMode","hidden","showing","Track","trackProps","newLabel","parseUrl","url","URL","baseURI","getAbsoluteURL","getFileExtension","path","splitPathRe","pathParts","pop","isCrossOrigin","winLoc","location","origin","Url","parseCues","srcContent","parser","WebVTT","Parser","vttjs","StringDecoder","errors","oncue","onparsingerror","onflush","parse","groupCollapsed","groupEnd","flush","loadTrack","uri","crossOrigin","cors","withCredentials","tech_","err","response","responseBody","loaded_","TextTrack","settings","srclang","mode","default_","default","activeCues_","preload_","preloadTextTracks","activeCues","changed","timeupdateHandler","isDisposed","rvf_","requestVideoFrameCallback","disposeHandler","stopTracking","startTracking","defineProperties","newMode","ct","currentTime","active","cancelVideoFrameCallback","originalCue","VTTCue","originalCue_","removeCue","cuechange","AudioTrack","newEnabled","VideoTrack","newSelected","HTMLTrackElement","NONE","LOADED","load","LOADING","ERROR","NORMAL","audio","ListClass","TrackClass","capitalName","video","getterName","privateName","REMOTE","remoteText","remoteTextEl","ALL","createTrackHelper","onDurationChange_","onDurationChange","trackProgress_","trackProgress","trackCurrentTime_","trackCurrentTime","stopTrackingCurrentTime_","stopTrackingCurrentTime","disposeSourceHandler_","disposeSourceHandler","queuedHanders_","hasStarted_","props","featuresProgressEvents","manualProgressOn","featuresTimeupdateEvents","manualTimeUpdatesOn","nativeCaptions","nativeTextTracks","featuresNativeTextTracks","emulateTextTracks","autoRemoteTextTracks_","initTrackListeners","nativeControlsForTouch","emitTapEvents","triggerSourceset","manualProgress","stopTrackingProgress","progressInterval","numBufferedPercent","bufferedPercent_","duration_","manualTimeUpdates","currentTimeInterval","manuallyTriggered","clearTracks","manualProgressOff","manualTimeUpdatesOff","removeRemoteTextTrack","error_","_isScrubbing","_seconds","trackListChanges","script","onload","onerror","addWebVttScript_","remoteTracks","remoteTextTracks","handleAddTrack","handleRemoveTrack","updateDisplay","textTracksChanges","manualCleanup","htmlTrackElement","createRemoteTextTrack","remoteTextTrackEls","getTrackElementByTrack_","removeTrackElement_","Promise","reject","cb","requestNamedAnimationFrame","override","_type","srcObj","canPlayType","techs_","canPlaySource","defaultTechOrder_","videojs","featuresVolumeControl","featuresMuteControl","featuresFullscreenResize","featuresPlaybackRate","featuresSourceset","featuresVideoFrameCallback","withSourceHandlers","_Tech","registerSourceHandler","handler","sourceHandlers","can","selectSourceHandler","canHandleSource","sh","deferrable","originalFn","sourceHandler_","setSource","nativeSourceHandler","currentSource_","handleSource","cleanupAutoTextTracks","registerTech","middlewares","middlewareInstances","TERMINATOR","use","middleware","next","setSourceHelper","setTech","mw","reduceRight","middlewareIterator","arg","mediate","callMethod","middlewareValue","terminated","executeRight","allowedGetters","muted","played","seekable","volume","ended","allowedSetters","setCurrentTime","setMuted","setVolume","allowedMediators","mws","clearCacheForPlayer","getOrCreateFactory","mwFactory","mwf","mwi","lastRun","mwrest","_src","MimetypesKind","opus","ogv","mp4","mov","m4v","mkv","m4a","mp3","aac","caf","flac","oga","wav","m3u8","mpd","jpg","jpeg","gif","png","svg","webp","getMimetype","ext","mimetype","findMimetype","cache_","matchingSources","filterSource","newsrc","srcobj","fixSource","icons","backKeyCode","SpatialNavKeyCodes","codes","ff","rw","back","415","19","417","412","keyName","STEP_SECONDS$1","SpatialNavigation","focusableComponents","isListening_","isPaused_","onKeyDown_","lastFocusedComponent_","updateFocusableComponents","refocusComponent","handlePlayerFocus_","handlePlayerBlur_","errorDisplay","actualEvent","direction","substring","move","isEventKey","action","getEventName","performMediaAction_","userSeek_","liveTracker","isLive","nextSeekedFromUser","nextFocusedElement","isChildrenOfPlayer","currentComponent","getCurrentComponent","closest","searchForTrackSelect_","currentTarget","getIsFocusable","resume","searchForChildrenCandidates","componentsArray","getIsAvailableToBeFocused","items","findSuitableDOMChild","buttonContainer","modalButtons","getPositions","searchForSuitableChild","suitableChild","curComp","currentFocusedComponent","currentPositions","candidates","isInDirection_","bestCandidate","findBestCandidate_","focusedComponent","currentCenter","minDistance","candidate","candidateCenter","distance","calculateDistance_","srcRect","targetRect","userActive","center1","center2","dx","abs","dy","MediaLoader","j","techOrder","techName","getTech","isSupported","loadTech_","ClickableComponent","handleMouseOver_","handleMouseOver","handleMouseOut_","handleMouseOut","handleClick_","handleClick","tabIndex_","createControlTextEl","controlTextEl_","controlText_","localizedText","nonIconControl","noUITitleAttributes","enabled_","clickHandler","PosterImage","update","update_","crossorigin","poster","setSrc","loading","alt","darkGray","lightGray","fontMap","monospace","sansSerif","serif","monospaceSansSerif","monospaceSerif","proportionalSansSerif","proportionalSerif","casual","smallcaps","constructColor","color","hex","tryUpdateStyle","getCSSPositionValue","TextTrackDisplay","updateDisplayTextHandler","updateDisplayHandler","updateDisplayOverlay","toggleDisplay","preselectTrack","screenOrientation","screen","orientation","changeOrientationEvent","modes","trackList","userPref","selectedLanguage","firstDesc","firstCaptions","preferredTrack","processCues","allowMultipleShowingTracks","clearDisplay","showingTracks","updateForTrack","descriptionsTrack","captionsSubtitlesTrack","CSS","supports","textTrackDisplay","vjsTextTrackCues","controlBarHeight","controlBar","playerHeight","vjsTextTrackCue","inset","insetStyles","videoHeight","playerWidth","currentWidth","currentHeight","playerAspectRatio","videoAspectRatio","videoWidth","insetInlineMatch","insetBlockMatch","round","overrides","textTrackSettings","getValues","cueDiv","displayState","textOpacity","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","fontFamily","fontVariant","cueEl","updateDisplayState","LoadingSpinner","isAudio","playerType","dir","Button","BigPlayButton","mouseused_","setIcon","handleMouseDown","playPromise","playToggle","playFocus","CloseButton","PlayToggle","replay","handlePlay","handlePause","handleEnded","handleSeeked","TimeDisplay","updateTextNode_","span","labelText_","textNode_","enableSmoothSeeking","updateContent","time","formattedTime_","oldNode","CurrentTimeDisplay","scrubbing","getCache","DurationDisplay","TimeDivider","div","RemainingTimeDisplay","displayNegative","remainingTimeDisplay","remainingTime","LiveDisplay","updateShowing","SeekToLive","updateLiveEdgeStatus","updateLiveEdgeStatusHandler_","textEl_","atLiveEdge","seekToLiveEdge","clamp","number","Num","Slider","handleMouseDown_","handleMouseUp_","handleMouseUp","handleMouseMove_","handleMouseMove","bar","barName","vertical","playerEvent","progress","getProgress","progress_","sizeKey","toFixed","getPercent","spatialNavOptions","spatialNavEnabled","horizontalSeek","stepBack","stepForward","bool","vertical_","percentify","LoadProgressBar","partEls_","loadedText","separator","percentageEl_","seekableEnd","bufferedEnd","percent","percent_","part","dataset","TimeTooltip","seekBarRect","seekBarPoint","tooltipRect","playerRect","seekBarPointPx","spaceLeftOfPoint","spaceRightOfPoint","pullTooltipBy","write","liveWindow","secondsBehind","PlayProgressBar","timeTooltip","updateTime","MouseTimeDisplay","STEP_SECONDS","PAGE_KEY_MULTIPLIER","SeekBar","shouldDisableSeekWhileScrubbingOnMobile","disableSeekWhileScrubbingOnMobile","shouldDisableSeekWhileScrubbingOnMobile_","pendingSeekTime_","setEventHandlers_","updateInterval","enableIntervalHandler_","enableInterval_","disableIntervalHandler_","disableInterval_","toggleVisibility_","visibilityState","getCurrentTime_","liveCurrentTime","currentTime_","seekableStart","videoWasPlaying","mouseDown","newTime","calculateDistance","mouseTimeDisplay","handleAction","gotoFraction","ProgressControl","throttledHandleMouseSeek","handleMouseSeek","handleMouseUpHandler_","handleMouseDownHandler_","seekBar","playProgressBar","seekBarEl","removeListenersAddedOnMousedownAndTouchstart","PictureInPictureToggle","handlePictureInPictureChange","handlePictureInPictureEnabledChange","handlePictureInPictureAudioModeChange","isSourceAudio","currentType","isAudioMode","audioPosterMode","audioOnlyMode","isInPictureInPicture","exitPictureInPicture","pictureInPictureEnabled","disablePictureInPicture","enableDocumentPictureInPicture","requestPictureInPicture","FullscreenToggle","handleFullscreenChange","fsApi_","fullscreenEnabled","isFullscreen","exitFullscreen","requestFullscreen","checkVolumeSupport","VolumeLevel","VolumeLevelTooltip","rangeBarRect","rangeBarPoint","volumeBarPointPx","MouseVolumeLevelDisplay","updateVolume","VolumeBar","updateLastVolume_","updateARIAAttributes","mouseVolumeLevelDisplay","volumeBarEl","volumeBarRect","volumeBarPoint","checkMuted","ariaValue","volumeAsPercentage_","volumeBeforeDrag","lastVolume_","VolumeControl","volumeBar","throttledHandleMouseMove","orientationClass","checkMuteSupport","MuteToggle","vol","lastVolume","volumeToSet","updateIcon_","updateControlText_","soundOff","VolumePanel","inline","volumeControl","handleKeyPressHandler_","handleKeyPress","volumePanelState_","muteToggle","handleVolumeControlKeyUp","sliderActive_","sliderInactive_","SkipForward","validOptions","skipTime","getSkipForwardTime","toLocaleString","skipButtons","forward","currentVideoTime","SkipBackward","getSkipBackwardTime","backward","Menu","menuButton_","menuButton","focusedChild_","boundHandleBlur_","handleBlur","boundHandleTapClick_","handleTapClick","removeEventListenerForItem","childComponent","addEventListenerForItem","contentElType","append","btn","buttonPressed_","unpressButton","childComponents","foundComponent","stepChild","haveTitle","MenuButton","buttonClass","handleMenuKeyUp_","handleMenuKeyUp","menu","handleMouseLeave","handleSubmenuKeyDown","createMenu","hideThreshold_","title","titleEl","titleComponent","addItem","createItems","buildWrapperCSSClass","menuButtonClass","pressButton","lockShowing","unlockShowing","TrackButton","updateHandler","MenuItem","selectable","isSelected_","multiSelectable","menuItemEl","TextTrackMenuItem","kinds","changeHandler","handleTracksChange","selectedLanguageChangeHandler","handleSelectedLanguageChange","onchange","Event","createEvent","initEvent","referenceTrack","shouldBeSelected","OffTextTrackMenuItem","allHidden","TextTrackButton","TrackMenuItem","label_","kinds_","kind_","ChaptersTrackMenuItem","ChaptersButton","selectCurrentItem_","track_","findChaptersTrack","setTrack","updateHandler_","remoteTextTrackEl","getMenuCaption","mi","DescriptionsButton","SubtitlesButton","CaptionSettingsMenuItem","open","CaptionsButton","SubsCapsMenuItem","parentSpan","SubsCapsButton","language_","AudioTrackMenuItem","audioTracks","featuresNativeAudioTracks","AudioTrackButton","PlaybackRateMenuItem","rate","playbackRate","PlaybackRateMenuButton","labelElId_","updateVisibility","updateLabel","handlePlaybackRateschange","labelEl_","rates","playbackRates","playbackRateSupported","Spacer","CustomControlSpacer","ControlBar","ErrorDisplay","TextTrackSelect","selectLabelledbyIds","legendId","labelId","selectoptions","SelectOptions","optionText","optionId","option","TextTrackFieldset","legendElement","legendText","selects","selectConfig","selectConfigs","selectClassName","textTrackSelect","TextTrackSettingsColors","textTrackComponentid","ElFgColorFieldset","fieldSets","ElBgColorFieldset","ElWinColorFieldset","TextTrackSettingsFont","TrackSettingsControls","defaultsDescription","resetButton","doneButton","LOCAL_STORAGE_KEY$1","COLOR_BLACK","COLOR_BLUE","COLOR_CYAN","COLOR_GREEN","COLOR_MAGENTA","COLOR_RED","COLOR_WHITE","COLOR_YELLOW","OPACITY_OPAQUE","OPACITY_SEMI","OPACITY_TRANS","v","parseOptionValue","getSelectedOptionValue","selectedIndex","setSelectedOption","TextTrackSettings","renderModalComponents","endDialog","setDefaults","persistTextTrackSettings","bindFunctionsToSelectsAndButtons","restoreSettings","textTrackSettingsColors","textTrackSettingsFont","trackSettingsControls","saveSettings","config","JSON","localStorage","getItem","setValues","setItem","stringify","removeItem","ttDisplay","ResizeManager","RESIZE_OBSERVER_AVAILABLE","ResizeObserver","loadListener_","resizeObserver_","debouncedHandler_","resizeHandler","observe","contentWindow","unloadListener_","unobserve","disconnect","resizeObserver","defaults$1","trackingThreshold","liveTolerance","LiveTracker","trackLiveHandler_","trackLive_","handlePlay_","handleFirstTimeupdate_","handleFirstTimeupdate","handleSeeked_","seekToLiveEdge_","reset_","handleDurationchange","toggleTracking","deltaTime","lastTime_","pastSeekEnd_","pastSeekEnd","isBehind","seekedBehindLive_","timeupdateSeen_","behindLiveEdge_","liveui","isTracking","hasStarted","trackingInterval_","timeDiff","nextSeekedFromUser_","lastSeekEnd_","seekableEnds","sort","seekableStarts","behindLiveEdge","TitleBar","updateDom_","els","techEl","techAriaAttrs","techAriaAttr","setState","defaults","initialDisplay","takeFocus","TransientButton","class","preventScroll","forceDisplayTimeout","sourcesetLoad","srcUrls","innerHTMLDescriptorPolyfill","cloneNode","innerHTML","dummy","docFrag","createDocumentFragment","childNodes","Element","getDescriptor","priority","descriptor","getOwnPropertyDescriptor","getInnerHTMLDescriptor","HTMLMediaElement","firstSourceWatch","resetSourceWatch_","innerDescriptor","appendWrapper","appendFn","retval","srcDescriptorPolyfill","getSrcDescriptor","setupSourceset","resetSourceset_","srcDescriptor","oldSetAttribute","oldLoad","currentSrc","Html5","crossoriginTracks","initNetworkState_","handleLateInit_","enableSourceset","setupSourcesetHandling_","isScrubbing_","hasChildNodes","nodes","nodesLength","removeNodes","proxyNativeTracks_","restoreMetadataTracksInIOSNativePlayer_","setControls","proxyWebkitFullscreen_","triggerReady","disposeMediaElement","metadataTracksPreFullscreenState","takeMetadataTrackSnapshot","storedMode","restoreTrackMode","storedTrack","lowerCaseType","eventName","elTracks","proxyNativeTracksForType_","overrideNative_","techTracks","listeners","removeOldTracks","removeTracks","found","playerElIngest","movingMediaElementInDOM","clone","tagAttributes","techId","playerId","preload","settingsAttrs","attr","networkState","loadstartFired","setLoadstartFired","triggerLoadstart","eventsToTrigger","isScrubbing","fastSeek","checkProgress","NaN","endFn","beginFn","webkitPresentationMode","nativeIOSFullscreen","webkitEnterFullScreen","HAVE_METADATA","webkitDisplayingFullscreen","webkitExitFullScreen","webkitKeys","srcUrl","mimeType","sourceAttributes","sourceElement","sourceElements","resetMediaElement","addTextTrack","getVideoPlaybackQuality","videoPlaybackQuality","webkitDroppedFrameCount","webkitDecodedFrameCount","droppedVideoFrames","totalVideoFrames","creationTime","TEST_VID","canControlVolume","canControl","canMuteVolume","canControlPlaybackRate","canOverrideAttributes","noop","supportsNativeTextTracks","supportsNativeVideoTracks","videoTracks","supportsNativeAudioTracks","TECH_EVENTS_RETRIGGER","TECH_EVENTS_QUEUE","canplay","canplaythrough","playing","seeked","BREAKPOINT_ORDER","BREAKPOINT_CLASSES","charAt","DEFAULT_BREAKPOINTS","tiny","xsmall","small","medium","large","xlarge","huge","getTagSettings","boundDocumentFullscreenChange_","documentFullscreenChange_","boundFullWindowOnEscKey_","fullWindowOnEscKey","boundUpdateStyleEl_","updateStyleEl_","boundApplyInitTime_","applyInitTime_","boundUpdateCurrentBreakpoint_","updateCurrentBreakpoint_","boundHandleTechClick_","handleTechClick_","boundHandleTechDoubleClick_","handleTechDoubleClick_","boundHandleTechTouchStart_","handleTechTouchStart_","boundHandleTechTouchMove_","handleTechTouchMove_","boundHandleTechTouchEnd_","handleTechTouchEnd_","boundHandleTechTap_","handleTechTap_","boundUpdatePlayerHeightOnAudioOnlyMode_","updatePlayerHeightOnAudioOnlyMode_","isFullscreen_","isPosterFromTech_","queuedCallbacks_","userActive_","debugEnabled_","audioOnlyMode_","audioPosterMode_","audioOnlyCache_","hiddenChildren","languagesToLower","languages_","resetCache_","poster_","controls_","changingSrc_","playCallbacks_","playTerminatedQueue_","autoplay","plugins","scrubbing_","fullscreenchange","fluid_","playerOptionsCopy","middleware_","DOMParser","parsedSVG","parseFromString","errorNode","sprite","display","majorVersion","listenForUserActivity_","breakpoints","responsive","styleEl_","playerElIngest_","divEmbed","tabindex","deviceClassNames","VIDEOJS_NO_DYNAMIC_STYLE","defaultsStyleEl","fill_","fluid","aspectRatio","links","linkEl","techGet_","techCall_","posterImage","privDimension","parsedVal","ratio","aspectRatio_","width_","height_","idClass","ratioParts","ratioMultiplier","unloadTech_","titleTechName","camelTechName","techName_","normalizeAutoplay","techOptions","playsinline","loop","techCanOverridePoster","TechClass","handleTechReady_","textTracksJson_","eventObj","seeking","handleTechLoadStart_","handleTechSourceset_","handleTechWaiting_","handleTechEnded_","handleTechSeeking_","handleTechPlay_","handleTechPause_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechFullscreenError_","handleTechEnterPictureInPicture_","handleTechLeavePictureInPicture_","handleTechError_","handleTechPosterChange_","handleTechTextData_","handleTechRateChange_","usingNativeControls","addTechControlsListeners_","safety","removeTechControlsListeners_","manualAutoplay_","resolveMuted","previouslyMuted","restoreMuted","mutedPromise","catch","promise","sourceElSources","sourceEls","matchingSourceEls","sourceObj","updateSourceCaches","updateSourceCaches_","playerSrc","currentSource","eventSrc","lastSource_","techSrc","request","lastPlaybackRate","queued","timeWhenWaiting","timeUpdateListener","userActions","click","inAllowedEls","doubleClick","pictureInPictureElement","userWasActive","cancelable","targetPlayer","isFs","matches","fullscreen","initTime","inactivityTimeout","defaultPlaybackRate","resolve","play_","isSrcReady","isSafariOrIOS","waitToPlay_","isNativeReplay","resetProgressBar_","runPlayTerminatedQueue_","runPlayCallbacks_","queue","q","callbacks","isFinite","percentAsDecimal","defaultMuted","isFS","oldValue","toggleFullscreenClass_","fullscreenOptions","offHandler","errorHandler","requestFullscreenHelper_","fsOptions","supportsFullScreen","preferFullWindow","enterFullWindow","exitFullscreenHelper_","exitFullWindow","isFullWindow","docOrigOverflow","overflow","isPiP","isInPictureInPicture_","togglePictureInPictureClass_","documentPictureInPicture","pipContainer","titleBar","requestWindow","pipWindow","pipVideo","window","hotkeys","excludeElement","isContentEditable","allowedInputTypes","excludedTags","handleHotkeys","fullscreenKey","keydownEvent","muteKey","playPauseKey","FSToggle","techs","findFirstPassingTechSourcePair","outerArray","innerArray","tester","outerChoice","innerChoice","foundSourceAndTech","flip","a","finder","sourceOrder","isRetry","resetRetryOnError_","middlewareSource","src_","handleSrc_","notSupportedMessage","retry","stopListeningForErrors","sourceTech","selectSource","addSourceElement","removeSourceElement","vhs","doReset_","resetControlBarUI_","resetPlaybackRate_","resetVolumeBar_","currentTimeDisplay","durationDisplay","progressControl","loadProgressBar","techAutoplay","newPoster","usingNativeControls_","hookFunction","newErr","suppressNotSupportedError","triggerSuppressedError","userActivity_","mouseInProgress","lastMoveX","lastMoveY","handleActivity","screenX","screenY","handleMouseUpAndMouseLeave","activityCheck","isAudio_","playerChildren","exitPromises","enableAudioOnlyUI_","disableAudioOnlyUI_","audioOnlyModePromise","enablePosterModeUI_","disablePosterModeUI_","String","modal","currentBreakpoint","candidateBreakpoint","maxWidth","breakpoints_","breakpoint_","currentBreakpointClass","responsive_","removeCurrentBreakpoint_","reset","artist","artwork","tt","currentSources","baseOptions","tagOptions","dataSetup","childName","previousLogLevel_","newRates","html5","userLanguage","navigationUI","BASE_PLUGIN_NAME","PLUGIN_CACHE_KEY","pluginStorage","pluginExists","getPlugin","markPluginAsActive","triggerSetupEvent","before","createBasicPlugin","plugin","basicPluginWrapper","instance","createPluginFactory","PluginSubClass","getEventHash","Plugin","VERSION","p","isBasic","deprecate","warned","deprecateForMajor","oldName","registerPlugin","usingPlugin","hasPlugin","VjsErrors","NetworkBadStatus","NetworkRequestFailed","NetworkRequestAborted","NetworkRequestTimeout","NetworkBodyParserFailed","StreamingHlsPlaylistParserError","StreamingDashManifestParserError","StreamingContentSteeringParserError","StreamingVttParserError","StreamingFailedToSelectNextSegment","StreamingFailedToDecryptSegment","StreamingFailedToTransmuxSegment","StreamingFailedToAppendSegment","StreamingCodecsChangeError","normalizeId","getPlayer","TypeError","inShadowDom","getRootNode","ShadowRoot","rootNode","defaultView","PlayerComponent","getPlayers","nId","getAllPlayers","comp","writeable","mergeOptions","deregisterPlugin","getPlugins","getPluginVersion","addLanguage","EventTarget","xhr","dom","QualityLevel","representation","bitrate","bandwidth","frameRate","QualityLevelList","levels_","selectedIndex_","qualityLevel","getQualityLevelById","removed","addqualitylevel","removequalitylevel","version$5","initPlugin$1","originalPluginFn","qualityLevels","qualityLevelList","resolveUrl","resolveManifestRedirect","req","responseURL","logger","bufferedRangesToString","bufferedRangesStr","TIME_FUDGE_FACTOR","SAFE_TIME_DELTA","filterRanges","timeRanges","results","findRange","findNextRange","findGaps","bufferIntersection","bufferA","bufferB","arity","extents","count","printableRange","range","strArr","timeUntilRebuffer","timeRangesToArray","timeRangesList","isRangeDifferent","lastBufferedEnd","timeAheadOf","segmentDurationWithParts","playlist","segment","parts","preloadHints","partTargetDuration","getPartsAndSegments","segments","si","pi","segmentIndex","partIndex","getLastParts","lastSegment","getKnownPartCount","preloadSegment","partCount","hint","liveEdgeDelay","endList","suggestedPresentationDelay","hasParts","serverControl","partHoldBack","holdBack","targetDuration","backwardDuration","endSequence","mediaSequence","precise","forwardDuration","intervalDuration","expired","totalDuration","sumDurations","defaultDuration","durationList","startIndex","endIndex","durations","playlistEnd","useSafeLiveEnd","liveEdgePadding","lastSegmentEndTime","getMediaInfoForTime","startingSegmentIndex","startingPartIndex","exactManifestTimings","partsAndSegments","partAndSegment","canUseFudgeFactor","isExactlyAtTheEnd","isExtremelyCloseToTheEnd","isExcluded","excludeUntil","Date","isIncompatible","isEnabled","excluded","isDisabled","isAes","estimateSegmentRequestTime","segmentDuration","bytesReceived","BANDWIDTH","isLowestEnabledRendition","playlists","currentBandwidth","MAX_VALUE","playlistMatch","resolvedUri","someAudioVariant","AUDIO","mediaGroups","groupName","isAudioOnly","variant","CODECS","Playlist","createPlaylistID","groupID","group","parseManifest","onwarn","oninfo","manifestString","customTagParsers","customTagMappers","llhls","customParser","addParser","mapper","addTagMapper","manifest","forEachMediaGroup","mediaType","groupKey","labelKey","mediaProperties","setupMediaPlaylist","playlistErrors_","setupMediaPlaylists","resolveMediaGroupUris","mainForMedia","addPropertiesToMain","createGroupID","phonyUri","audioOnlyMain","groupId","DateRangesStorage","offset_","pendingDateRanges_","processedDateRanges_","firstSegment","programDateTime","dateRanges","dateRange","startDate","getTime","trimProcessedDateRanges_","pendingDateRange","dateRangeClasses","dateRangesToProcess","processDateRange","classListIndex","endDate","endOnNext","plannedDuration","copy","QUOTA_EXCEEDED_ERR","getStreamingNetworkErrorMetadata","requestType","parseFailure","isBadStatus","isFailure","errorMetadata","isBadStatusOrParseFailure","errorType","aborted","timedout","erroType","headers","EventTarget$1","addLLHLSQueryDirectives","parameters","canBlockReload","nextMSN","nextPart","_HLS_part","_HLS_msn","canSkipUntil","_HLS_skip","canSkipDateranges","parsedUri","searchParams","updateSegment","skipped","updateSegments","offset","oldSegments","newSegments","currentMap","newIndex","oldSegment","newSegment","resolveSegmentUris","baseUri","getAllSegments","isPlaylistUnchanged","updateMain$1","newMedia","unchangedCheck","oldMedia","mergedPlaylist","skip","skippedSegments","refreshDelay","lastPart","lastDuration","playlistMetadataPayload","renditions","RESOLUTION","resolution","codecs","PlaylistLoader","logger_","vhs_","addDateRangesToTextTrack_","addDateRangesToTextTrack","vhsOptions","dateRangesStorage_","handleMediaupdatetimeout_","handleLoadedPlaylist_","mediaPlaylist","setOffset","setPendingDateRanges","availableDateRanges","getDateRangesToProcess","playlistRequestError","haveMetadata","playlistString","responseText","startingState","playlistObject","playlistInfo","parseManifest_","lastRequest","pendingMedia_","media_","updateMediaUpdateTimeout_","parsedPlaylist","stopRequest","mediaUpdateTimeout","finalRenditionTimeout","oldRequest","onreadystatechange","abort","shouldDelay","delay","mediaChange","mainPlaylistRef","started","setupInitialPlaylist","srcUri","isUpdate","pathway","ID","oldPlaylistUri","oldPlaylistId","newPlaylistUri","createCloneURI_","newPlaylistId","createCloneAttributes_","updatedPlaylist","createClonePlaylist_","updateOrDeleteCloneMedia","oldMediaPlaylist","createClonedMediaGroups_","basePlaylist","playlistId","baseID","newUri","newPlaylistID","newMediaPlaylist","newProps","hostname","HOST","params","PARAMS","oldAttributes","contentProtection","keyIds","keysystem","keyId","callbackWrapper","reqResponse","responseType","responseTime","roundTripTime","requestTime","byteLength","responseHeaders","statusCode","callAllRequestHooks","requestSet","newOptions","requestCallback","callAllResponseHooks","responseSet","responseCallback","xhrFactory","XhrFunction","beforeRequest","Vhs","_requestCallbackSet","_responseCallbackSet","xhrMethod","beforeRequestOptions","originalAbort","byterangeStr","byterange","byterangeEnd","byterangeStart","BigInt","segmentXhrHeaders","Range","textRange","formatHexString","formatAsciiString","fromCharCode","createTransferableMessage","transferable","bytes","buffer","byteOffset","initSegmentId","initSegment","segmentKeyId","hexDump","step","ascii","tagDump","textRanges","utils","SEGMENT_END_FUDGE_PERCENT","playerTimeToProgramTime","playerTime","dateTimeObject","transmuxerPrependedSeconds","videoTimingInfo","transmuxedStart","transmuxedPresentationStart","startOfSegment","offsetFromSegmentStart","originalSegmentVideoDuration","transmuxedPresentationEnd","findSegmentForProgramTime","programTime","nextSegmentStart","lastSegmentStart","lastSegmentDuration","lastSegmentEnd","estimatedStart","findSegmentForPlayerTime","segmentEnd","getOffsetFromTimestamp","comparisonTimeStamp","segmentDateTime","segmentTimeEpoch","programTimeEpoch","verifyProgramDateTimeTags","getProgramTime","matchedSegment","seekTime","programTimeObject","mediaSeconds","toISOString","seekToProgramTime","retryCount","seekTo","pauseAfterSeek","mediaOffset","seekToTime","seekedCallback","callbackOnCompleted","containerRequest","id3Offset","finished","endRequestAndCallback","_bytes","progressListener","newPart","overrideMimeType","total","loaded","dashPlaylistUnchanged","sidx","aSegment","bSegment","aByterange","bByterange","dashGroupId","NAME","parseMainXml","mainXml","clientOffset","sidxMapping","previousManifest","manifestUri","removeOldMediaGroupLabels","newMain","updateMain","oldMain","noChanges","minimumUpdatePeriod","timelineStarts","sidxKey","playlistUpdate","equivalentSidx","neitherMap","equivalentMap","compareSidxEntry","oldSidxMapping","newSidxMapping","currentSidxInfo","savedSidxInfo","sidxInfo","filterChangedSidxMappings","videoSidx","mediaGroupSidx","DashPlaylistLoader","srcUrlOrPlaylist","mainPlaylistLoader","mainPlaylistLoader_","isMain_","addMetadataToTextTrack","refreshXml_","refreshMedia_","loadedPlaylists_","sidxMapping_","childPlaylist_","mediaRequest_","fin","requestErrored_","subarray","REQUEST_TYPE","container","sidxContainer","internal","playlistExclusionDuration","minimumUpdatePeriodTimeout_","createMupOnMedia_","addSidxSegments_","sidxChanged","isFinalRendition","updateMinimumUpdatePeriodTimeout_","haveMain_","requestMain_","mainChanged","hasPendingRequest","manifestInfo","mainXml_","date","mainLoaded_","handleMain_","syncClientServerClock_","done","utcTiming","clientOffset_","serverTime","locations","addEventStreamToMetadataTrack_","parsedManifest","mpl","mup","createMUPTimeout_","mediaID","mediaChanged","createMediaUpdateTimeout","eventStream","metadataArray","eventStreamNode","cueTime","frames","messageData","defaultKID","Config","GOAL_BUFFER_LENGTH","MAX_GOAL_BUFFER_LENGTH","BACK_BUFFER_LENGTH","GOAL_BUFFER_LENGTH_RATE","INITIAL_BANDWIDTH","BANDWIDTH_VARIANCE","BUFFER_LOW_WATER_LINE","MAX_BUFFER_LOW_WATER_LINE","EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE","BUFFER_LOW_WATER_LINE_RATE","BUFFER_HIGH_WATER_LINE","stringToArrayBuffer","view","Uint8Array","ArrayBuffer","charCodeAt","browserWorkerPolyFill","workerObj","createObjectURL","Blob","blob","BlobBuilder","getBlob","factory","objectUrl","worker","Worker","objURL","terminate","revokeObjectURL","getWorkerString","workerCode$1","commonjsGlobal","globalThis","global","Stream$8","init","pipe","destination","flushSource","partialFlush","endTimeline","dinf","esds","ftyp","mdat","mfhd","minf","moof","moov","mvex","mvhd","trak","tkhd","mdia","mdhd","hdlr","sdtp","stbl","stsd","traf","trex","trun$1","MAJOR_BRAND","MINOR_VERSION","AVC1_BRAND","VIDEO_HDLR","AUDIO_HDLR","HDLR_TYPES","VMHD","SMHD","DREF","STCO","STSC","STSZ","STTS","stream","MAX_UINT32$1","pow","getUint64$5","uint8","dv","DataView","getBigUint64","MAX_SAFE_INTEGER","getUint32","numbers","getUint64","MAX_UINT32","avc1","avcC","btrt","dref","mp4a","pasp","smhd","stco","stsc","stsz","stts","styp","tfdt","tfhd","trun","vmhd","payload","setUint32","audioobjecttype","samplingfrequencyindex","channelcount","samplerate","sequenceNumber","trackFragments","boxes","flags","samples","dependsOn","isDependedOn","hasRedundancy","videoSample","audioSample","avc1Box","sps","pps","sequenceParameterSets","pictureParameterSets","profileIdc","profileCompatibility","levelIdc","sarRatio","hSpacing","vSpacing","samplesize","trackFragmentHeader","trackFragmentDecodeTime","trackFragmentRun","sampleDependencyTable","dataOffset","upperWordBaseMediaDecodeTime","lowerWordBaseMediaDecodeTime","baseMediaDecodeTime","audioTrun","videoTrun","trunHeader","durationPresent","sizePresent","flagsPresent","compositionTimeOffset","bytesOffest","header","sample","isLeading","paddingValue","isNonSyncSample","degradationPriority","silence","secondsToVideoTs","secondsToAudioTs","videoTsToSeconds","audioTsToSeconds","audioTsToVideoTs","videoTsToAudioTs","metadataTsToSeconds","mp4Generator","fileType","movie","groupNalsIntoFrames","nalUnits","currentNal","currentFrame","nalCount","nalUnitType","dts","pts","keyFrame","groupFramesIntoGops","currentGop","gops","extendFirstKeyFrame","createDefaultSample","sampleForFrame","frame","generateSampleTable$1","baseDataOffset","concatenateNalData","nalsByteLength","numberOfNals","totalByteLength","generateSampleTableForFrame","concatenateNalDataForFrame","frameUtils$1","generateSampleTable","highPrefix","lowPrefix","zeroFill","makeTable","metaTable","arr","silence_1","coneOfSilence","96000","88200","64000","48000","44100","32000","24000","16000","12000","11025","8000","ONE_SECOND_IN_TS$4","sampleRate","timestamp","timelineStartPts","keepOriginalTimestamps","clock$2","ONE_SECOND_IN_TS","clock$1","sumFrameByteLengths","array","currentObj","sum","prefixWithSilence","audioAppendStartTs","videoBaseMediaDecodeTime","baseMediaDecodeTimeTs","silentFrame","firstFrame","frameDuration","audioGapDuration","audioFillFrameCount","audioFillDuration","ceil","trimAdtsFramesByEarliestDts","adtsFrames","earliestAllowedDts","minSegmentDts","minSegmentPts","concatenateFrameData","audioFrameUtils$1","ONE_SECOND_IN_TS$3","collectDtsInfo","timelineStartInfo","maxSegmentPts","maxSegmentDts","clearDtsInfo","calculateTrackBaseMediaDecodeTime","scale","trackDecodeInfo$1","USER_DATA_REGISTERED_ITU_T_T35","RBSP_TRAILING_BITS","parseSei","payloadType","payloadSize","userIdentifier","parseUserData","sei","parseCaptionPackets","userData","ccData","discardEmulationPreventionBytes$1","newLength","newData","emulationPreventionBytesPositions","sourceIndex","captionPacketParser","discardEmulationPreventionBytes","Stream$7","cea708Parser","CaptionStream$2","parse708captions_","parse708captions","captionPackets_","ccStreams_","Cea608Stream","cc708Stream_","Cea708Stream","captionServices","cc","newCaptionPackets","escapedRBSP","latestDts_","ignoreNextEqualDts_","numSameDts_","flushCCStreams","flushType","flushStream","idx","presortIndex","packet","dispatchCea608Packet","dispatchCea708Packet","activeCea608Channel_","ccStream","setsTextOrXDSActive","setsChannel1Active","setsChannel2Active","CHARACTER_TRANSLATION_708","get708CharFromCode","newCode","within708TextBlock","Cea708Window","windowNum","clearText","pendingNewLine","winAttr","penAttr","penLoc","penColor","visible","rowLock","columnLock","relativePositioning","anchorVertical","anchorHorizontal","anchorPoint","rowCount","virtualRowCount","columnCount","windowStyle","penStyle","getText","rows","rowIdx","newLine","beforeRowOverflow","isEmpty","addText","backspace","row","substr","Cea708Service","serviceNum","encoding","currentWindow","windows","createTextDecoder","startPts","setCurrentWindow","TextDecoder","textDecoder_","serviceProps","captionServiceEncodings","serviceName","serviceEncodings","current708Packet","services","new708Packet","add708Bytes","push708Packet","ptsVals","byte0","byte1","packet708","packetData","blockSize","seq","sizeCode","pushServiceBlock","service","initService","handleText","multiByteCharacter","extendedCommands","defineWindow","clearWindows","deleteWindows","displayWindows","hideWindows","toggleWindows","setWindowAttributes","setPenAttributes","setPenColor","setPenLocation","isExtended","getPts","byteIndex","flushDisplayed","char","charCodeArray","isMultiByte","extended","currentByte","nextByte","toHexString","byteArray","byte","decode","unicode","firstByte","secondByte","fillOpacity","fillRed","fillGreen","fillBlue","borderType","borderRed","borderGreen","borderBlue","wordWrap","printDirection","scrollDirection","justify","effectSpeed","effectDirection","displayEffect","displayedText","winId","endPts","pushCaption","textTag","penSize","italics","underline","edgeType","fontStyle","fgOpacity","fgRed","fgGreen","fgBlue","bgOpacity","bgRed","bgGreen","bgBlue","edgeRed","edgeGreen","edgeBlue","column","CHARACTER_TRANSLATION","getCharFromCode","BOTTOM_ROW","ROWS","createDisplayBuffer","indent","field","dataChannel","field_","dataChannel_","setConstants","swap","char0","char1","lastControlCode_","PADDING_","RESUME_CAPTION_LOADING_","mode_","END_OF_CAPTION_","clearFormatting","displayed_","nonDisplayed_","startPts_","ROLL_UP_2_ROWS_","rollUpRows_","setRollUp","ROLL_UP_3_ROWS_","ROLL_UP_4_ROWS_","CARRIAGE_RETURN_","shiftRowsUp_","BACKSPACE_","row_","ERASE_DISPLAYED_MEMORY_","ERASE_NON_DISPLAYED_MEMORY_","RESUME_DIRECT_CAPTIONING_","isSpecialCharacter","column_","isExtCharacter","isMidRowCode","addFormatting","isOffsetControlCode","isPAC","formatting_","indentations","isColorPAC","isNormalChar","logWarning","line","topRow_","BASE_","EXT_","CONTROL_","OFFSET_","newBaseRow","format","reverse","popOn","baseRow","rollUp","paintOn","captionStream","CaptionStream","streamTypes","H264_STREAM_TYPE","ADTS_STREAM_TYPE","METADATA_STREAM_TYPE","Stream$6","MAX_TS","RO_THRESH","TYPE_SHARED","handleRollover$1","reference","TimestampRolloverStream$1","lastDTS","referenceDTS","type_","discontinuity","MetadataStream","timestampRolloverStream","TimestampRolloverStream","handleRollover","typedArrayIndexOf$1","typedArray","fromIndex","currentIndex","typedArrayIndexOf","textEncodingDescriptionByte","Iso88591","Utf16","Utf16be","Utf8","percentEncode$1","parseUtf8","decodeURIComponent","parseIso88591$1","unescape","parseSyncSafeInteger$1","frameParsers","mimeTypeEndIndex","descriptionEndIndex","LINK_MIME_TYPE","pictureType","pictureData","owner","privateData","parseId3Frames$1","frameSize","frameHeader","frameStart","tagSize","hasExtendedHeader","parseId3","parseId3Frames","parseSyncSafeInteger","Stream$5","StreamTypes$3","id3","bufferSize","dispatchType","chunk","dataAlignmentIndicator","d","timeStamp","TransportPacketStream","TransportParseStream","ElementaryStream","metadataStream","Stream$4","CaptionStream$1","StreamTypes$2","MP2T_PACKET_LENGTH$1","SYNC_BYTE$1","bytesInBuffer","everything","parsePsi","parsePat","parsePmt","packetsWaitingForPmt","programMapTable","psi","payloadUnitStartIndicator","pat","section_number","last_section_number","pmtPid","pmt","sectionLength","tableEnd","programInfoLength","streamType","pid","processPes_","STREAM_TYPES","h264","adts","segmentHadPmt","timedMetadata","parsePes","pes","ptsDtsFlags","startPrefix","packetLength","forceFlush","fragment","packetFlushable","trackId","codec","flushStreams_","m2ts$1","PAT_PID","MP2T_PACKET_LENGTH","AdtsStream$1","m2ts_1","Stream$3","ONE_SECOND_IN_TS$2","ADTS_SAMPLING_FREQUENCIES$1","handlePartialSegments","frameNum","skipWarn_","frameLength","protectionSkipBytes","oldBuffer","sampleCount","adtsFrameDuration","ExpGolomb$1","workingData","workingBytesAvailable","workingWord","workingBitsAvailable","bitsAvailable","loadWord","workingBytes","availableBytes","skipBits","skipBytes","readBits","bits","valu","skipLeadingZeros","leadingZeroCount","skipUnsignedExpGolomb","skipExpGolomb","readUnsignedExpGolomb","clz","readExpGolomb","readBoolean","readUnsignedByte","H264Stream$1","NalByteStream","PROFILES_WITH_OPTIONAL_SPS_DATA","expGolomb","Stream$2","ExpGolomb","syncPoint","swapBuffer","len","100","110","122","244","44","83","86","118","128","138","139","134","currentPts","currentDts","readSequenceParameterSet","skipScalingList","nalByteStream","nalUnitTypeCode","expGolombDecoder","deltaScale","lastScale","nextScale","chromaFormatIdc","picOrderCntType","numRefFramesInPicOrderCntCycle","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","scalingListCount","aspectRatioIdc","frameCropLeftOffset","frameCropRightOffset","frameCropTopOffset","frameCropBottomOffset","AacStream$1","H264Stream","ADTS_SAMPLING_FREQUENCIES","parseId3TagSize","returnSize","footerPresent","getId3Offset","isLikelyAacData$1","percentEncode","parseIso88591","parseAdtsSize","lowThree","middle","highTwo","parseType$5","parseSampleRate","parseAacTimestamp","isLikelyAacData","parseType","Stream$1","aacUtils","setTimestamp","bytesLeft","tempLength","VideoSegmentStream","AudioSegmentStream","Transmuxer","CoalesceStream","AUDIO_PROPERTIES$1","audioProperties","VIDEO_PROPERTIES$1","videoProperties","Stream","frameUtils","audioFrameUtils","trackDecodeInfo","m2ts","clock","AdtsStream","AacStream","ONE_SECOND_IN_TS$1","AUDIO_PROPERTIES","VIDEO_PROPERTIES","retriggerForStream","addPipelineLogRetriggers","transmuxer","pipeline","arrayEquals","generateSegmentTimingInfo","startDts","endDts","prependedContentDuration","ptsOffsetFromDts","decodeDuration","presentationDuration","firstSequenceNumber","setEarliestDts","earliestDts","setVideoBaseMediaDecodeTime","setAudioAppendStart","videoClockCyclesOfSilencePrefixed","gopsToAlignWith","minPTS","gopCache_","nalUnit","gopForFusion","firstGop","lastGop","resetStream_","getGopForFusion_","alignedGops","alignGopsAtEnd","alignGopsAtEnd_","alignGopsAtStart_","gop","dtsDistance","nearestGopObj","currentGopObj","halfSecond","allowableOverlap","nearestDistance","alignIndex","gopIndex","align","alignEndIndex","matchFound","trimIndex","alignGopsWith","newGopsToAlignWith","numberOfTracks","remux","remuxTracks","pendingTracks","videoTrack","pendingBoxes","pendingCaptions","pendingMetadata","pendingBytes","emittedTracks","output","audioTrack","caption","captionStreams","setRemux","hasFlushed","transmuxPipeline_","setupAacPipeline","aacStream","audioTimestampRolloverStream","timedMetadataTimestampRolloverStream","adtsStream","coalesceStream","headOfPipeline","audioSegmentStream","getLogTrigger_","hasAudio","hasVideo","setupTsPipeline","packetStream","parseStream","elementaryStream","h264Stream","videoSegmentStream","id3Frame","setBaseMediaDecodeTime","isAac","resetCaptions","inspectMp4","textifyMp4","toUnsigned$3","toHexString$1","bin","toUnsigned","parseType$4","parseType_1","toUnsigned$2","parseType$3","findBox$5","subresults","findBox_1","toUnsigned$1","getUint64$4","parseTfdt$3","baseDataOffsetPresent","sampleDescriptionIndexPresent","defaultSampleDurationPresent","defaultSampleSizePresent","defaultSampleFlagsPresent","durationIsEmpty","defaultBaseIsMoof","sampleDescriptionIndex","defaultSampleDuration","defaultSampleSize","defaultSampleFlags","baseDataOffsetIsMoof","parseTfhd$2","getUint64$3","parseSidx","references","referenceId","timescale","earliestPresentationTime","firstOffset","referenceCount","getUint16","referenceType","referencedSize","subsegmentDuration","startsWithSap","sapType","sapDeltaTime","parseSidx_1","parseSampleFlags$1","parseSampleFlags_1","parseSampleFlags","dataOffsetPresent","firstSampleFlagsPresent","sampleDurationPresent","sampleSizePresent","sampleFlagsPresent","sampleCompositionTimeOffsetPresent","getInt32","parseTrun$2","numberHelpers","getUint64$2","parseMp4Date","parseType$2","findBox$4","nalParse","avcStream","avcView","dataReferenceIndex","horizresolution","vertresolution","frameCount","depth","numOfPictureParameterSets","nalSize","configurationVersion","avcProfileIndication","avcLevelIndication","lengthSizeMinusOne","numOfSequenceParameterSets","bufferSizeDB","maxBitrate","avgBitrate","edts","elst","getUint8","edits","entryCount","mediaTime","mediaRate","esId","streamPriority","decoderConfig","objectProfileIndication","decoderConfigDescriptor","audioObjectType","samplingFrequencyIndex","channelConfiguration","majorBrand","minorVersion","compatibleBrands","dataReferences","handlerType","escape","nals","modificationTime","streamDescriptor","Uint32Array","nextTrackId","pdin","initialDelay","balance","ctts","compositionOffsets","sampleOffset","stss","syncSamples","chunkOffsets","sampleToChunks","firstChunk","samplesPerChunk","sampleDescriptions","sampleSize","entries","timeToSamples","sampleDelta","layer","alternateGroup","defaultSampleDescriptionIndex","sampleDependsOn","sampleIsDependedOn","sampleHasRedundancy","samplePaddingValue","sampleIsDifferenceSample","sampleDegradationPriority","graphicsmode","opcolor","Uint16Array","ab","z","inspectedMp4","prefix","mp4Inspector","inspect","textify","findBox","parseTraf","parseTfdt","parseHdlr","parseTfhd","parseTrun","uint8ToCString$1","curChar","retString","uint8ToCString","getUint64$1","parseEmsgBox","boxData","scheme_id_uri","presentation_time","presentation_time_delta","event_duration","message_data","emsgBox","isValidEmsgBox","scaleTime","presentationTime","timeDelta","emsg","hasScheme","isValidV0Box","isDefined","isValidV1Box","emsg$1","compositionStartTime","getVideoTrackIds","getTracks","getTimescaleFromMediaHeader$1","getEmsgID3","window_1","findBox$3","parseType$1","parseTfhd$1","parseTrun$1","parseTfdt$2","window$2","traks","trafs","lowestTime","baseTime","timescales","trafBoxes","parsedTfhd","parsedTfdt","parsedTrun","videoTrackIds","hdlrs","tkhds","tkhdVersion","codecConfig","codecConfigType","codecBox","segmentData","emsgBoxes","parsedBox","parsedId3Frames","probe$2","getTimescaleFromMediaHeader","findBox$2","window$1","getMdatTrafPairs$2","mdats","mdatTrafPairs","matchingTraf","parseSamples$2","truns","allSamples","trackRun","getMdatTrafPairs","parseSamples","findBox$1","parseTfdt$1","getMdatTrafPairs$1","parseSamples$1","mapToSample","approximateOffset","findSeiNals","seiNal","lastMatchedSample","logs","seiNals","matchingSample","parseCaptionNals","videoTrackId","captionNals","pair","headerInfo","parseEmbeddedCaptions","trackNals","CaptionParser","segmentCache","parsedCaptions","parsingPartial","isInitialized","isPartial","isNewInit","parsedData","cachedSegment","pushNals","nal","clearParsedCaptions","resetCaptionStream","clearAllCaptions","captionParser","WebVttParser","parseSegment","vttCues","mdatBox","trafBox","tfdtBox","tfhdBox","trunBoxes","mdatOffset","UTF_8","textDecoder","sampleData","vtteBox","vttcBoxes","vttcBox","paylBox","sttgBox","cueText","webvttParser","StreamTypes$1","parsePid","parsePayloadUnitStartIndicator","parseAdaptionField","pusi","payloadOffset","parsePesType","parsePesTime","parseNalUnitType","videoPacketContainsKeyFrame","nalType","frameBuffer","frameI","frameSyncPoint","foundKeyFrame","probe$1","StreamTypes","probe","ts","SYNC_BYTE","parsePsi_","table","parseAudioPes_","pesType","parsed","endLoop","parseVideoPes_","firstKeyFrame","adjustTimestamp_","segmentInfo","baseTimestamp","audioBaseTimestamp","dtsTime","ptsTime","videoBaseTimestamp","inspectAac_","audioCount","audioTimescale","inspectTs_","isAacData","tsInspector","wireTransmuxerEvents","initArray","postMessage","gopInfo","timingInfo","videoSegmentTimingInfo","presentation","audioSegmentTimingInfo","trackInfo","audioTimingInfo","MessageHandlers","trackIds","webVttParser","mp4VttCues","id3Frames","emsgData","baseStartTime","tsStartTime","timeInfo","videoStart","audioStart","timestampOffset","appendStart","onmessage","messageHandlers","TransmuxWorker","handleData_","transmuxedData","videoFrameDtsTime","videoFramePtsTime","handleDone_","handleGopInfo_","processTransmux","audioAppendStart","onData","onTrackInfo","onAudioTimingInfo","onVideoTimingInfo","onVideoSegmentTimingInfo","onAudioSegmentTimingInfo","onId3","onCaptions","onDone","onEndedTimeline","onTransmuxerLog","isEndOfTimeline","triggerSegmentEventFn","waitForEndedTimelineEvent","handleMessage","currentTransmux","dequeue","handleError","segmentInfoPayload","transmuxQueue","processAction","enqueueAction","transmux","createTransmuxer","term","segmentTransmuxer","workerCallback","endAction","listenForEndEvent","isArrayBuffer","transfers","REQUEST_ERRORS","FAILURE","TIMEOUT","ABORTED","WEB_VTT_CODEC","abortAll","activeXhrs","getRequestStats","getProgressStats","progressEvent","stats","handleErrors","handleKeyResponse","objects","finishProcessingFn","errorObj","keyInfo","initMp4Text","parseMp4TextSegment","doneFn","parseInitSegment","handleInitSegmentResponse","encryptedBytes","parseError","handleSegmentResponse","newBytes","lastReachedChar","transmuxAndNotify","trackInfoFn","timingInfoFn","videoSegmentTimingInfoFn","audioSegmentTimingInfoFn","id3Fn","captionsFn","endedTimelineFn","dataFn","fmp4Tracks","isMuxed","audioStartFn","audioEndFn","videoStartFn","videoEndFn","finish","probeResult","handleSegmentBytes","bytesAsUint8Array","isFmp4","isMp4TextSegment","audioCodec","videoCodec","finishLoading","decrypt","decryptionWorker","decryptionHandler","decrypted","keyBytes","decryptError","encrypted","iv","decryptSegment","requestId","decryptedBytes","waitForCompletion","didError","segmentFinish","endOfAllRequests","handleLoadEnd","loadendState","abortFn","calledAbortFn","handleProgress","progressFn","firstBytesReceivedAt","mediaSegmentRequest","xhrOptions","keyRequestOptions","keyRequestCallback","keyXhr","differentMapKey","mapKeyRequestOptions","mapKeyRequestCallback","mapKeyXhr","initSegmentOptions","initSegmentRequestCallback","initSegmentXhr","segmentRequestOptions","segmentRequestCallback","segmentXhr","activeXhr","logFn$1","getCodecs","mediaAttributes","isMaat","audioGroup","unwrapCodecList","codecList","details","codecCount","codecObj","codecsForPlaylist","codecInfo","defaultCodecs","logFn","representationToString","safeGetComputedStyle","property","stableSort","sortFn","newArray","cmp","comparePlaylistBandwidth","leftBandwidth","rightBandwidth","comparePlaylistResolution","leftWidth","rightWidth","simpleSelector","playerBandwidth","limitRenditionByPlayerDimensions","playlistController","getAudioTrackPlaylists_","audioOnly","sortedPlaylistReps","rep","enabledPlaylistReps","bandwidthPlaylistReps","highestRemainingBandwidthRep","bandwidthBestRep","chosenRep","haveResolution","resolutionBestRepList","resolutionBestRep","resolutionPlusOneList","resolutionPlusOneSmallest","resolutionPlusOneRep","leastPixelDiffRep","leastPixelDiffSelector","leastPixelDiffList","pixelDiff","lastBandwidthSelector","pixelRatio","useDevicePixelRatio","devicePixelRatio","customPixelRatio","systemBandwidth","playlistController_","movingAverageBandwidthSelector","decay","average","lastSystemBandwidth","minRebufferMaxBandwidthSelector","currentTimeline","syncController","compatiblePlaylists","enabledPlaylists","bandwidthPlaylists","rebufferingEstimates","getSyncPoint","numRequests","requestTimeEstimate","rebufferingImpact","noRebufferingPlaylists","estimate","lowestBitrateCompatibleVariantSelector","playlistsWithVideo","concatSegments","segmentObj","tempBuffer","compactSegmentUrlDescription","pathname","createCaptionsTrackIfNotExists","inbandTextTracks","instreamId","getTrackById","def","captionService","addCaptionData","captionArray","Cue","WebKitDataCue","positionAlign","deprecateOldCue","addMetadata","videoDuration","metadataTrack","metadataTrack_","cuesArray","cuesGroupedByStartTime","timeSlot","sortedStartTimes","cueGroup","finiteDuration","nextTime","dateRangeAttr","scte35Out","scte35In","dateRangeKeysToOmit","addDateRangeMetadata","createMetadataTrackIfNotExists","inBandMetadataTrackDispatchType","removeCuesFromTrack","removeDuplicateCuesFromTrack","uniqueCues","cueKey","gopsSafeToAlignWith","mapping","currentTimePts","updateGopBuffer","removeGopBuffer","updatedBuffer","shallowEqual","akeys","bkeys","getSyncSegmentCandidate","targetTime","timelineSegments","timeline","MIN_BACK_BUFFER","CHECK_BUFFER_DELAY","finite","MIN_SEGMENT_DURATION_TO_SAVE_STATS","illegalMediaSwitch","loaderType","startingMedia","safeBackBufferTrimTime","trimTime","maxTrimTime","segmentInfoString","mediaIndex","segmentLen","selection","isSyncRequest","independent","hasPartIndex","zeroBasedPartCount","timingInfoPropertyForMedia","timestampOffsetForSegment","segmentTimeline","overrideCheck","shouldWaitForTimelineChange","timelineChangeController","audioDisabled","lastMainTimelineChange","lastTimelineChange","pendingAudioTimelineChange","pendingTimelineChange","shouldFixBadTimelineChanges","pendingMainTimelineChange","hasPendingTimelineChanges","differentPendingChanges","isNotInitialPendingTimelineChange","isAudioTimelineBehind","segmentLoader","timelineChangeController_","checkAndFixTimelines","pendingSegment_","waitingForTimelineChange","currentTimeline_","loaderType_","audioDisabled_","mediaDuration","timingInfos","maxDuration","typeTimingInfo","segmentTooLong","getTroublesomeSegmentDurationMessage","sourceType","isSegmentWayTooLong","isSegmentSlightlyTooLong","segmentTooLongMessage","severity","isEncrypted","ke","isMediaInitialization","SegmentLoader","mediaSource","throughput","roundTrip","resetStats_","hasPlayed_","hasPlayed","seekable_","seeking_","mediaSource_","currentMediaInfo_","startingMediaInfo_","segmentMetadataTrack_","segmentMetadataTrack","goalBufferLength_","goalBufferLength","sourceType_","sourceUpdater_","sourceUpdater","inbandTextTracks_","state_","shouldSaveSegmentTimingInfo_","useDtsForTimestampOffset_","useDtsForTimestampOffset","captionServices_","checkBufferTimeout_","shouldForceTimestampOffsetAfterResync_","xhrOptions_","pendingSegments_","isPendingTimestampOffset_","gopBuffer_","timeMapping_","safeAppend_","appendInitSegment_","playlistOfLastInitSegment_","callQueue_","loadQueue_","metadataQueue_","waitingOnRemove_","quotaExceededErrorRetryTimeout_","activeInitSegmentId_","initSegments_","cacheEncryptionKeys_","cacheEncryptionKeys","keyCache_","decrypter_","decrypter","syncController_","syncPoint_","transmuxer_","createTransmuxer_","triggerSyncInfoUpdate_","isEndOfStream_","ended_","fetchAtBuffer_","newState","hasEnoughInfoToAppend_","processCallQueue_","hasEnoughInfoToLoad_","processLoadQueue_","getMediaSequenceSync","mediaBytesTransferred","mediaRequests","mediaRequestsAborted","mediaRequestsTimedout","mediaRequestsErrored","mediaTransferDuration","mediaSecondsLoaded","mediaAppends","abort_","removeAudio","clearPendingTimelineChange","monitorBuffer_","abortRequests","getMediaInfo_","videoBuffered","audioBuffered","storedMap","storedKey","playlist_","couldBeginLoading_","init_","resetEverything","newPlaylist","oldPlaylist","syncInfo","setDateTimeMappingForStart","oldId","mediaSequenceSync_","buffered_","diagnostics","isLLHLS","resetLoader","resyncLoader","mediaSequenceDiff","saveExpiredSegmentInfo","resetAppendedStatus","isHlsTs","force","removesRemaining","removeFinished","removeVideo","monitorBufferTick_","fillBuffer_","updating","chooseNextRequest_","loadSegment_","appendedLastSegment","appendedLastPart","bufferedTime","preloaded","haveEnoughBuffer","isReliable","getSyncInfoFromMediaSequenceSync_","mediaInfoForTime","nextSegment","hasIndependentSegments","independentSegments","lastSegmentLastPart","forceTimestampOffset","generateSegmentInfo_","finalTargetTime","mediaSequenceSyncInfo","getSyncInfoForTime","isAppended","nextMediaSequenceSyncInfo","random","timestampOffsetForSegment_","audioBufferedEnd","audioTimestampOffset","videoTimestampOffset","measuredBandwidth","requestTimeRemaining","timeUntilRebuffer$1","switchCandidate","timeSavedBySwitching","minimumTimeSaving","simpleSegment","earlyAbortWhenNeeded_","checkForAbort_","checkForIllegalMediaSwitch","timeType","timingInfoProperty","captionData","hasAppendedData_","handleCaptions_","captionTracks","captionTrack","trackName","handleId3_","callQueue","fun","loadQueue","getCurrentMediaInfo_","setTimeMapping_","updateMediaSecondsLoaded_","initSegmentForMap","segmentKey","useVideoTimingInfo","firstVideoFrameTimeForData","trueSegmentStart_","currentStart","currentVideoTimestampOffset","updateAppendInitSegmentStatus","updateSourceBufferTimestampOffset_","updateTimingInfoEnd_","saveSegmentTimingInfo","shouldSaveTimelineMapping","processMetadataQueue_","appendData_","changedTimestampOffset","audioBufferStart","audioBufferEnd","videoBufferStart","videoBufferEnd","appendToSourceBuffer_","timeToRemoveUntil","handleQuotaExceededError_","appendBuffer","handleAppendError_","segmentTimingInfo","transmuxedDecodeStart","transmuxedDecodeEnd","getInitSegmentAndUpdateState_","trimBackBuffer_","updateTransmuxerAndRequestSegment_","shouldUpdateTransmuxerTimestampOffset_","createSimplifiedSegmentObj_","isEndOfStream","isWalkingForward","isDiscontinuity","handleAbort_","handleProgress_","handleTrackInfo_","handleTimingInfo_","handleSegmentTimingInfo_","segmentRequestFinished_","segInfo","removeToTime","previousSegment","bandwidthInfo","saveTransferStats_","handleTimeout_","saveBandwidthRelatedStats_","waitForAppendsToComplete_","timelineMapping","mappingForTimeline","waitForVideo","waitForAudio","waitingOnAppends","checkAppendsDone_","videoQueueCallback","audioQueueCallback","handleAppendsDone_","illegalMediaSwitchError","didChange","getSegmentStartTimeForTimestampOffsetCalculation_","prioritizedTimingInfo","markAppended","segmentDurationMessage","recordThroughput_","addSegmentMetadataCue_","badSegmentGuess","badPartGuess","endOfStream","segmentProcessingTime","segmentProcessingThroughput","custom","dateTimeString","bufferTypes","sourceBuffer","queuePending","nextQueueIndexOfType","queueEntry","shiftQueue","queueIndex","cleanupBuffer","titleType","inSourceBuffers","sourceBuffers","actions","onError","addSourceBuffer","mime","removeSourceBuffer","changeType","newCodecBase","oldCodec","oldCodecBase","codecsChangeInfo","pushQueue","onUpdateend","bufferedRangesForType","descriptiveString","SourceUpdater","sourceopenListener_","audioTimestampOffset_","videoTimestampOffset_","delayedAudioAppendQueue_","videoAppendQueued_","onVideoUpdateEnd_","onAudioUpdateEnd_","onVideoError_","videoError_","onAudioError_","audioError_","createdSourceBuffers_","initializedEme_","triggeredReady_","hasCreatedSourceBuffers","hasInitializedAnyEme","addOrChangeSourceBuffers","canRemoveSourceBuffer","MediaSource","SourceBuffer","canChangeType","processedAppend_","videoBuffer","que","audioBuffer","uint8ToUtf8","uintArray","bufferToHexString","uInt8Buffer","padStart","VTT_LINE_TERMINATORS","NoVttJsError","VTTSegmentLoader","subtitlesTrack_","featuresNativeTextTracks_","loadVttJs","combinedByteLength","combinedSegment","timestampOffsetForTimeline","checkTimestampOffset","skipEmptySegments_","stopForError","isMp4WebVttSegmentWithCues","requested","parseVTTCues_","updateTimeMapping_","timelines","isVttType","isTextResult","isFmp4VttSegment","vttCue","cueSetting","keyValString","decoder","decodeBytesToString","timestampmap","MPEGTS","LOCAL","parseMp4VttCues_","ontimestampmap","mapData","mappingObj","mpegTsInSeconds","diff","handleRollover_","firstStart","lastStart","valueIn90khz","referenceIn90khz","findAdCue","adStartTime","adEndTime","updateAdCues","cueOut","adOffset","adTotal","cueOutCont","SyncInfo","appended","start_","end_","segmentIndex_","partIndex_","appended_","SyncInfoData","segmentSyncInfo","partsSyncInfo","segmentSyncInfo_","partsSyncInfo_","partSyncInfo","MediaSequenceSync","storage_","diagnostics_","isReliable_","syncInfoData","resetAppendStatus","isReliablePlaylist_","updateStorage_","calculateBaseTime_","isInRange","startingMediaSequence","startingTime","newStorage","newDiagnostics","currentMediaSequence","prevSyncInfoData","segmentStart","segmentIsAppended","currentPartStart","partStart","partEnd","partIsAppended","fallback","minMediaSequenceFromStorage","DependantMediaSequenceSync","parent_","getSyncInfoForMediaSequence","MAX_MEDIA_SEQUENCE_DIFF_FOR_SYNC","syncPointStrategies","run","mediaSequenceSync","timelineToDatetimeMappings","lastDistance","datetimeMapping","segmentTime","discontinuityStarts","discontinuitySequence","discontinuitySync","discontinuities","SyncController","vtt","mediaSequenceStorage_","vodSyncPointStrategy","syncPoints","runStrategies_","syncPointInfo","strategy","selectedSegment","selectSyncPoint_","bestSyncPoint","bestDistance","bestStrategy","newDistance","lastRemovedSegment","playlistTimestamp","didCalculateSegmentTimeMapping","calculateSegmentTimeMapping_","saveDiscontinuitySyncInfo_","dateTime","accuracy","mediaIndexDiff","TimelineChangeController","pendingTimelineChanges_","lastTimelineChanges_","timelineChangeInfo","workerCode","_proto","_length","_i","unpad","padded","precompute","tables","encTable","decTable","sbox","sboxInv","xInv","th","x2","x4","x8","tEnc","tDec","aesTables","AES","tmp","_tables","keyLen","rcon","encKey","decKey","_key","encrypted0","encrypted1","encrypted2","encrypted3","out","a2","b2","c2","nInnerRounds","kIndex","table0","table1","table2","table3","AsyncStream","jobs","timeout_","processJob_","job","ntoh","word","initVector","encrypted32","Int32Array","decipher","decrypted32","init0","init1","init2","init3","wordIx","Decrypter","STEP","asyncStream_","decryptChunk_","isArrayBufferView","isView","audioTrackKind_","characteristics","stopLoaders","activePlaylistLoader","startLoaders","playlistLoader","onGroupChanged","segmentLoaders","mainSegmentLoader","mediaTypes","activeTrack","activeGroup","getActiveGroup","previousActiveLoader","lastGroup","lastGroup_","lastTrack_","isMainPlaylist","onGroupChanging","onTrackChanged","lastTrack","pc","selectPlaylist","fastQualityChange_","setAudio","excludePlaylist","defaultTrack","SUBTITLES","setupListeners","requestOptions","initialize","groups","variantLabel","useForcedSubtitles","forced","autoselect","groupMatch","variants","groupKeys","groupPropertyList","activeTrack_","setupMediaGroups","audioSegmentLoader","activeAudioGroup","onAudioTrackChanged","createMediaTypes","SteeringManifest","priority_","pathwayClones_","version_","ttl_","reloadUri_","ContentSteeringController","currentPathway","defaultPathway","queryBeforeStart","availablePathways_","steeringManifest","proxyServerUrl_","manifestType_","ttlTimeout_","request_","currentPathwayClones","nextPathwayClones","excludedSteeringManifestURLs","xhr_","getBandwidth_","baseUrl","steeringTag","serverUri","steeringUri","serverURL","startsWith","decodeDataUriManifest_","reloadUri","pathwayId","defaultServiceLocation","proxyServerURL","getRequestURI","contentSteeringInfo","errorInfo","retrySeconds","startTTLTimeout_","steeringManifestJson","assignSteeringProperties_","parsedMetadata","contentSteeringManifest","steeringUrl","steeringUrlObject","proxyServerUrlObject","encodeURI","setSteeringParams_","dataUri","atob","urlObject","getPathway","networkThroughput","pathwayKey","throughputKey","steeringJson","ttl","TTL","pathwayClones","chooseNextPathway","pathwaysByPriority","nextPathway","proxyURI","setProxyServerUrl_","steeringURI","ttlMS","requestSteeringManifest","clearTTLTimeout_","baseURL","newTag","ABORT_EARLY_EXCLUSION_SECONDS","Vhs$1","loaderStats","sumLoaderStat","stat","audioSegmentLoader_","mainSegmentLoader_","shouldSwitchToMedia","currentPlaylist","nextPlaylist","bufferLowWaterLine","bufferHighWaterLine","bufferBasedABR","sharedLogLine","isBuffered","forwardBuffer","maxBufferLowWaterLine","nextBandwidth","currBandwidth","logLine","PlaylistController","externVhs","useCueTags","enableLowInitialPlaylist","experimentalUseMMS","maxPlaylistRetries","useCueTags_","usingManagedMediaSource_","cueTagsTrack_","requestOptions_","pauseLoading","mediaTypes_","ManagedMediaSource","disableRemotePlayback","handleDurationChange_","handleSourceOpen_","handleSourceEnded_","keyStatusMap_","segmentLoaderSettings","setupMainPlaylistLoaderListeners_","subtitleSegmentLoader_","onLoad","getBandwidth","contentSteeringController_","setupSegmentLoaderListeners_","startABRTimer_","stopABRTimer_","triggeredFmp4Usage","loadOnPlay_","timeToLoadedData__","mainAppendsToLoadedData__","audioAppendsToLoadedData__","timeToLoadedDataStart","mainAppendsToLoadedData_","audioAppendsToLoadedData_","shouldSwitchToMedia_","switchMedia_","cause","newId","renditionInfo","mediaPlaylists","dashMediaPlaylists","serviceLocation","abrTimer_","checkABR_","defaultPlaylists","defaultGroup","requestTimeout","triggerPresenceUsage_","setupFirstPlay","selectedMedia","attachContentSteeringListeners_","initContentSteeringController_","excludeUnsupportedVariants_","selectInitialPlaylist","initialMedia_","haveJsonSource","handleUpdatedMediaPlaylist","playlistToExclude","isPaused","waitingForFastQualityPlaylistReceived_","runFastQualitySwitch_","lastExcludeReason_","playlistOutdated","stuckAtPlaylistEnd_","playlistLoaderEvents","updateAdCues_","updateDuration","defaultDemuxed","audioGroupKeys","mediaGroup","onSyncInfoUpdate_","onEndOfStream","delegateLoaders_","updateCodecs","tryToCreateSourceBuffers_","getCodecsOrExclude_","segmentLoaderEvents","startPoint","timeOffset","mainMediaInfo","getExpiredTime","absolutePlaylistEnd","contentSteering","pathwayAttribute_","reIncludeDelay","excludePathway","excludeThenChangePathway_","addAvailablePathway","reincluded","errorMessage","delayDuration","fnNames","loaders","dontFilterPlaylist","loader","calculatedEnd","mainSeekable","audioSeekable","mainStart","mainEnd","audioEnd","getSeekableRange_","oldSeekable","computeFinalSeekable_","seekableRanges","updateDuration_","setDuration","usingAudioLoader","hasMainMediaInfo","hasAudioMediaInfo","getPendingSegmentPlaylist","playlistCodecs","supportFunction","unsupportedCodecs","unsupportedAudio","supporter","variantAudioGroup","switchMessages","newCodec","areMediaTypesKnown_","createSourceBuffers","codecString","excludeIncompatibleVariants_","ids","unsupported","codecCount_","videoDetails","audioDetails","exclusionReasons","variantCodecs","variantCodecCount","variantVideoDetails","variantAudioDetails","newMax","assignTagProperties","clearAvailablePathways","contentSteeringEvents","didDashTagChange","didDASHTagChange","didPathwaysChange","availablePathways","getAvailablePathways","newPathways","resetContentSteeringController_","handlePathwayClones_","didEnablePlaylists","differentPathwayId","steeringExclusion","noExcludeUntil","shouldExclude","changeSegmentPathway_","hasClones","newClone","updateOrDeleteClone","oldClone","equalPathwayClones_","playlistsToClone","addClonePathway","aParams","bParams","switchMediaForDASHContentSteering_","nonUsableKeyStatusCount","NON_USABLE","keyIdSet","getKeyIdSet","USABLE","hasUsableKeyStatus","nonUsableExclusion","isNonHD","excludedForNonUsableKey","isString","keyIdHexString","formattedKeyIdString","addKeyStatus_","excludeNonUsableThenChangePlaylist_","excludeNonUsablePlaylistsByKeyId_","enableFunction","playlistID","changePlaylistFn","incompatible","currentlyEnabled","Representation","vhsHandler","qualityChangeFunction","renditionSelectionMixin","representations","timerCancelEvents","PlaybackWatcher","allowSeeksWithinUnsafeLiveWindow","liveRangeSafeTimeDelta","playedRanges_","consecutiveUpdates","lastRecordedTime","checkCurrentTimeTimeout_","playHandler","monitorCurrentTime_","canPlayHandler","waitingHandler","techWaiting_","cancelTimerHandler","resetTimeUpdate_","loaderTypes","loaderChecks","resetSegmentDownloads_","updateend","checkSegmentDownloads_","setSeekingHandlers","seekingAppendCheck_","fixesBadSeeks_","clearSeekingAppendCheck_","watchForBadSeeking_","checkCurrentTime_","isBufferedDifferent","bufferedRanges","waiting_","playedRanges","isAfterSeekableRange","afterSeekableWindow_","beforeSeekableWindow_","minAppendedDuration","bufferedToCheck","timeAhead","nextRange","currentRange","livePoint","videoUnderflow","videoUnderflow_","skipTheGap_","allowedEnd","gap","lastVideoRange","videoRange","audioRange","gapFromVideoUnderflow_","scheduledCurrentTime","gapInfo","gaps","defaultOptions","errorInterval","IWillNotUseThisInPlugins","initPlugin","lastCalled","localOptions","loadedMetadataHandler","getSource","cleanupEvents","reinitPlugin","reloadSourceOnError","version$4","version$3","version$2","version$1","STANDARD_PLAYLIST_SELECTOR","INITIAL_PLAYLIST_SELECTOR","LOCAL_STORAGE_KEY","handleVhsMediaChange","handleVhsLoadedMetadata","addQualityLevel","emeKeySystems","keySystemOptions","mainPlaylist","audioPlaylist","videoContentType","audioContentType","keySystemContentTypes","keySystem","pssh","getAllPsshKeySystemsOptions","keySystems","keySystemsArr","keySystemsOptions","keySystemsObj","waitForKeySessionCreation","sourceKeySystems","audioMedia","mainPlaylists","eme","initializeMediaKeys","keySystemsOptionsArr","initializationFinishedPromises","keySessionCreatedPromises","race","setupEmeOptions","sourceOptions","getVhsLocalStorage","storedObject","updateVhsLocalStorage","objectToStore","expandDataUri","addOnRequestHook","addOnResponseHook","removeOnRequestHook","removeOnResponseHook","supportsNativeHls","canPlay","canItPlay","supportsNativeDash","supportsTypeNatively","onRequest","onResponse","offRequest","offResponse","Component","VhsHandler","initialBandwidth","_player","source_","ignoreNextSeekingEvent_","setOptions_","overrideNative","overrideNativeAudioTracks","overrideNativeVideoTracks","featuresNativeVideoTracks","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","useBandwidthFromLocalStorage","useNetworkInformationApi","playbackWatcherOptions","playbackWatcher_","attachStreamingEventListeners_","defaultSelector","playerBandwidthEst","networkInformation","connection","mozConnection","webkitConnection","tenMbpsAsBitsPerSecond","networkInfoBandwidthEstBitsPerSec","downlink","invBandwidth","invThroughput","systemBitrate","mediaRequests_","mediaRequestsAborted_","mediaRequestsTimedout_","mediaRequestsErrored_","mediaTransferDuration_","mediaBytesTransferred_","mediaSecondsLoaded_","mediaAppends_","mainAppendsToLoadedData","audioAppendsToLoadedData","appendsToLoadedData","appendsToLoadedData_","timeToLoadedData","timeToLoadedData_","currentTech","playerDimensions","currentDimensions","setupEme_","setupQualityLevels_","mediaSourceUrl_","audioPlaylistLoader","initializedEme","createKeySessions_","didSetupEmeOptions","updatePlaylistByKeyStatus","handleWaitingForKey_","qualityLevels_","playlistControllerEvents","playbackWatcher","VhsSourceHandler","setupXhrHooks_","simpleType","getOverrideNative","canUseMsePlayback","defaultOverrideNative","supportsNativeMediaSources"],"mappings":"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","file":"js/chunk-2d22bf6d.b462e925.js","sourcesContent":["/**\n * @license\n * Video.js 8.21.0 \n * Copyright Brightcove, Inc. \n * Available under Apache License Version 2.0\n * \n *\n * Includes vtt.js \n * Available under Apache License Version 2.0\n * \n */\n\nimport window$1 from 'global/window';\nimport document$1 from 'global/document';\nimport XHR from '@videojs/xhr';\nimport vtt from 'videojs-vtt.js';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _resolveUrl from '@videojs/vhs-utils/es/resolve-url.js';\nimport { Parser } from 'm3u8-parser';\nimport { DEFAULT_VIDEO_CODEC, DEFAULT_AUDIO_CODEC, parseCodecs, muxerSupportsCodec, browserSupportsCodec, translateLegacyCodec, codecsFromDefault, isAudioCodec, getMimeForCodec } from '@videojs/vhs-utils/es/codecs.js';\nimport { simpleTypeFromSourceType } from '@videojs/vhs-utils/es/media-types.js';\nimport { isArrayBufferView, concatTypedArrays, stringToBytes, toUint8 } from '@videojs/vhs-utils/es/byte-helpers';\nimport { generateSidxKey, parseUTCTiming, parse, addSidxSegmentsToPlaylist } from 'mpd-parser';\nimport parseSidx from 'mux.js/lib/tools/parse-sidx';\nimport { getId3Offset } from '@videojs/vhs-utils/es/id3-helpers';\nimport { detectContainerForBytes, isLikelyFmp4MediaSegment } from '@videojs/vhs-utils/es/containers';\nimport { ONE_SECOND_IN_TS } from 'mux.js/lib/utils/clock';\n\nvar version$6 = \"8.21.0\";\n\n/**\n * An Object that contains lifecycle hooks as keys which point to an array\n * of functions that are run when a lifecycle is triggered\n *\n * @private\n */\nconst hooks_ = {};\n\n/**\n * Get a list of hooks for a specific lifecycle\n *\n * @param {string} type\n * the lifecycle to get hooks from\n *\n * @param {Function|Function[]} [fn]\n * Optionally add a hook (or hooks) to the lifecycle that your are getting.\n *\n * @return {Array}\n * an array of hooks, or an empty array if there are none.\n */\nconst hooks = function (type, fn) {\n hooks_[type] = hooks_[type] || [];\n if (fn) {\n hooks_[type] = hooks_[type].concat(fn);\n }\n return hooks_[type];\n};\n\n/**\n * Add a function hook to a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle to hook the function to.\n *\n * @param {Function|Function[]}\n * The function or array of functions to attach.\n */\nconst hook = function (type, fn) {\n hooks(type, fn);\n};\n\n/**\n * Remove a hook from a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle that the function hooked to\n *\n * @param {Function} fn\n * The hooked function to remove\n *\n * @return {boolean}\n * The function that was removed or undef\n */\nconst removeHook = function (type, fn) {\n const index = hooks(type).indexOf(fn);\n if (index <= -1) {\n return false;\n }\n hooks_[type] = hooks_[type].slice();\n hooks_[type].splice(index, 1);\n return true;\n};\n\n/**\n * Add a function hook that will only run once to a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle to hook the function to.\n *\n * @param {Function|Function[]}\n * The function or array of functions to attach.\n */\nconst hookOnce = function (type, fn) {\n hooks(type, [].concat(fn).map(original => {\n const wrapper = (...args) => {\n removeHook(type, wrapper);\n return original(...args);\n };\n return wrapper;\n }));\n};\n\n/**\n * @file fullscreen-api.js\n * @module fullscreen-api\n */\n\n/**\n * Store the browser-specific methods for the fullscreen API.\n *\n * @type {Object}\n * @see [Specification]{@link https://fullscreen.spec.whatwg.org}\n * @see [Map Approach From Screenfull.js]{@link https://github.com/sindresorhus/screenfull.js}\n */\nconst FullscreenApi = {\n prefixed: true\n};\n\n// browser API methods\nconst apiMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror', 'fullscreen'],\n// WebKit\n['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror', '-webkit-full-screen']];\nconst specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document$1) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i = 0; i < browserApi.length; i++) {\n FullscreenApi[specApi[i]] = browserApi[i];\n }\n FullscreenApi.prefixed = browserApi[0] !== specApi[0];\n}\n\n/**\n * @file create-logger.js\n * @module create-logger\n */\n\n// This is the private tracking variable for the logging history.\nlet history = [];\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @private\n * @param {string} name\n * The name of the console method to use.\n *\n * @param {Object} log\n * The arguments to be passed to the matching console method.\n *\n * @param {string} [styles]\n * styles for name\n */\nconst LogByTypeFactory = (name, log, styles) => (type, level, args) => {\n const lvl = log.levels[level];\n const lvlRegExp = new RegExp(`^(${lvl})$`);\n let resultName = name;\n if (type !== 'log') {\n // Add the type to the front of the message when it's not \"log\".\n args.unshift(type.toUpperCase() + ':');\n }\n if (styles) {\n resultName = `%c${name}`;\n args.unshift(styles);\n }\n\n // Add console prefix after adding to history.\n args.unshift(resultName + ':');\n\n // Add a clone of the args at this point to history.\n if (history) {\n history.push([].concat(args));\n\n // only store 1000 history entries\n const splice = history.length - 1000;\n history.splice(0, splice > 0 ? splice : 0);\n }\n\n // If there's no console then don't try to output messages, but they will\n // still be stored in history.\n if (!window$1.console) {\n return;\n }\n\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n // when the module is executed.\n let fn = window$1.console[type];\n if (!fn && type === 'debug') {\n // Certain browsers don't have support for console.debug. For those, we\n // should default to the closest comparable log.\n fn = window$1.console.info || window$1.console.log;\n }\n\n // Bail out if there's no console or if this type is not allowed by the\n // current logging level.\n if (!fn || !lvl || !lvlRegExp.test(type)) {\n return;\n }\n fn[Array.isArray(args) ? 'apply' : 'call'](window$1.console, args);\n};\nfunction createLogger$1(name, delimiter = ':', styles = '') {\n // This is the private tracking variable for logging level.\n let level = 'info';\n\n // the curried logByType bound to the specific log and history\n let logByType;\n\n /**\n * Logs plain debug messages. Similar to `console.log`.\n *\n * Due to [limitations](https://github.com/jsdoc3/jsdoc/issues/955#issuecomment-313829149)\n * of our JSDoc template, we cannot properly document this as both a function\n * and a namespace, so its function signature is documented here.\n *\n * #### Arguments\n * ##### *args\n * *[]\n *\n * Any combination of values that could be passed to `console.log()`.\n *\n * #### Return Value\n *\n * `undefined`\n *\n * @namespace\n * @param {...*} args\n * One or more messages or objects that should be logged.\n */\n function log(...args) {\n logByType('log', level, args);\n }\n\n // This is the logByType helper that the logging methods below use\n logByType = LogByTypeFactory(name, log, styles);\n\n /**\n * Create a new subLogger which chains the old name to the new name.\n *\n * For example, doing `mylogger = videojs.log.createLogger('player')` and then using that logger will log the following:\n * ```js\n * mylogger('foo');\n * // > VIDEOJS: player: foo\n * ```\n *\n * @param {string} subName\n * The name to add call the new logger\n * @param {string} [subDelimiter]\n * Optional delimiter\n * @param {string} [subStyles]\n * Optional styles\n * @return {Object}\n */\n log.createLogger = (subName, subDelimiter, subStyles) => {\n const resultDelimiter = subDelimiter !== undefined ? subDelimiter : delimiter;\n const resultStyles = subStyles !== undefined ? subStyles : styles;\n const resultName = `${name} ${resultDelimiter} ${subName}`;\n return createLogger$1(resultName, resultDelimiter, resultStyles);\n };\n\n /**\n * Create a new logger.\n *\n * @param {string} newName\n * The name for the new logger\n * @param {string} [newDelimiter]\n * Optional delimiter\n * @param {string} [newStyles]\n * Optional styles\n * @return {Object}\n */\n log.createNewLogger = (newName, newDelimiter, newStyles) => {\n return createLogger$1(newName, newDelimiter, newStyles);\n };\n\n /**\n * Enumeration of available logging levels, where the keys are the level names\n * and the values are `|`-separated strings containing logging methods allowed\n * in that logging level. These strings are used to create a regular expression\n * matching the function name being called.\n *\n * Levels provided by Video.js are:\n *\n * - `off`: Matches no calls. Any value that can be cast to `false` will have\n * this effect. The most restrictive.\n * - `all`: Matches only Video.js-provided functions (`debug`, `log`,\n * `log.warn`, and `log.error`).\n * - `debug`: Matches `log.debug`, `log`, `log.warn`, and `log.error` calls.\n * - `info` (default): Matches `log`, `log.warn`, and `log.error` calls.\n * - `warn`: Matches `log.warn` and `log.error` calls.\n * - `error`: Matches only `log.error` calls.\n *\n * @type {Object}\n */\n log.levels = {\n all: 'debug|log|warn|error',\n off: '',\n debug: 'debug|log|warn|error',\n info: 'log|warn|error',\n warn: 'warn|error',\n error: 'error',\n DEFAULT: level\n };\n\n /**\n * Get or set the current logging level.\n *\n * If a string matching a key from {@link module:log.levels} is provided, acts\n * as a setter.\n *\n * @param {'all'|'debug'|'info'|'warn'|'error'|'off'} [lvl]\n * Pass a valid level to set a new logging level.\n *\n * @return {string}\n * The current logging level.\n */\n log.level = lvl => {\n if (typeof lvl === 'string') {\n if (!log.levels.hasOwnProperty(lvl)) {\n throw new Error(`\"${lvl}\" in not a valid log level`);\n }\n level = lvl;\n }\n return level;\n };\n\n /**\n * Returns an array containing everything that has been logged to the history.\n *\n * This array is a shallow clone of the internal history record. However, its\n * contents are _not_ cloned; so, mutating objects inside this array will\n * mutate them in history.\n *\n * @return {Array}\n */\n log.history = () => history ? [].concat(history) : [];\n\n /**\n * Allows you to filter the history by the given logger name\n *\n * @param {string} fname\n * The name to filter by\n *\n * @return {Array}\n * The filtered list to return\n */\n log.history.filter = fname => {\n return (history || []).filter(historyItem => {\n // if the first item in each historyItem includes `fname`, then it's a match\n return new RegExp(`.*${fname}.*`).test(historyItem[0]);\n });\n };\n\n /**\n * Clears the internal history tracking, but does not prevent further history\n * tracking.\n */\n log.history.clear = () => {\n if (history) {\n history.length = 0;\n }\n };\n\n /**\n * Disable history tracking if it is currently enabled.\n */\n log.history.disable = () => {\n if (history !== null) {\n history.length = 0;\n history = null;\n }\n };\n\n /**\n * Enable history tracking if it is currently disabled.\n */\n log.history.enable = () => {\n if (history === null) {\n history = [];\n }\n };\n\n /**\n * Logs error messages. Similar to `console.error`.\n *\n * @param {...*} args\n * One or more messages or objects that should be logged as an error\n */\n log.error = (...args) => logByType('error', level, args);\n\n /**\n * Logs warning messages. Similar to `console.warn`.\n *\n * @param {...*} args\n * One or more messages or objects that should be logged as a warning.\n */\n log.warn = (...args) => logByType('warn', level, args);\n\n /**\n * Logs debug messages. Similar to `console.debug`, but may also act as a comparable\n * log if `console.debug` is not available\n *\n * @param {...*} args\n * One or more messages or objects that should be logged as debug.\n */\n log.debug = (...args) => logByType('debug', level, args);\n return log;\n}\n\n/**\n * @file log.js\n * @module log\n */\nconst log$1 = createLogger$1('VIDEOJS');\nconst createLogger = log$1.createLogger;\n\n/**\n * @file obj.js\n * @module obj\n */\n\n/**\n * @callback obj:EachCallback\n *\n * @param {*} value\n * The current key for the object that is being iterated over.\n *\n * @param {string} key\n * The current key-value for object that is being iterated over\n */\n\n/**\n * @callback obj:ReduceCallback\n *\n * @param {*} accum\n * The value that is accumulating over the reduce loop.\n *\n * @param {*} value\n * The current key for the object that is being iterated over.\n *\n * @param {string} key\n * The current key-value for object that is being iterated over\n *\n * @return {*}\n * The new accumulated value.\n */\nconst toString = Object.prototype.toString;\n\n/**\n * Get the keys of an Object\n *\n * @param {Object}\n * The Object to get the keys from\n *\n * @return {string[]}\n * An array of the keys from the object. Returns an empty array if the\n * object passed in was invalid or had no keys.\n *\n * @private\n */\nconst keys = function (object) {\n return isObject(object) ? Object.keys(object) : [];\n};\n\n/**\n * Array-like iteration for objects.\n *\n * @param {Object} object\n * The object to iterate over\n *\n * @param {obj:EachCallback} fn\n * The callback function which is called for each key in the object.\n */\nfunction each(object, fn) {\n keys(object).forEach(key => fn(object[key], key));\n}\n\n/**\n * Array-like reduce for objects.\n *\n * @param {Object} object\n * The Object that you want to reduce.\n *\n * @param {Function} fn\n * A callback function which is called for each key in the object. It\n * receives the accumulated value and the per-iteration value and key\n * as arguments.\n *\n * @param {*} [initial = 0]\n * Starting value\n *\n * @return {*}\n * The final accumulated value.\n */\nfunction reduce(object, fn, initial = 0) {\n return keys(object).reduce((accum, key) => fn(accum, object[key], key), initial);\n}\n\n/**\n * Returns whether a value is an object of any kind - including DOM nodes,\n * arrays, regular expressions, etc. Not functions, though.\n *\n * This avoids the gotcha where using `typeof` on a `null` value\n * results in `'object'`.\n *\n * @param {Object} value\n * @return {boolean}\n */\nfunction isObject(value) {\n return !!value && typeof value === 'object';\n}\n\n/**\n * Returns whether an object appears to be a \"plain\" object - that is, a\n * direct instance of `Object`.\n *\n * @param {Object} value\n * @return {boolean}\n */\nfunction isPlain(value) {\n return isObject(value) && toString.call(value) === '[object Object]' && value.constructor === Object;\n}\n\n/**\n * Merge two objects recursively.\n *\n * Performs a deep merge like\n * {@link https://lodash.com/docs/4.17.10#merge|lodash.merge}, but only merges\n * plain objects (not arrays, elements, or anything else).\n *\n * Non-plain object values will be copied directly from the right-most\n * argument.\n *\n * @param {Object[]} sources\n * One or more objects to merge into a new object.\n *\n * @return {Object}\n * A new object that is the merged result of all sources.\n */\nfunction merge$1(...sources) {\n const result = {};\n sources.forEach(source => {\n if (!source) {\n return;\n }\n each(source, (value, key) => {\n if (!isPlain(value)) {\n result[key] = value;\n return;\n }\n if (!isPlain(result[key])) {\n result[key] = {};\n }\n result[key] = merge$1(result[key], value);\n });\n });\n return result;\n}\n\n/**\n * Returns an array of values for a given object\n *\n * @param {Object} source - target object\n * @return {Array} - object values\n */\nfunction values(source = {}) {\n const result = [];\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n const value = source[key];\n result.push(value);\n }\n }\n return result;\n}\n\n/**\n * Object.defineProperty but \"lazy\", which means that the value is only set after\n * it is retrieved the first time, rather than being set right away.\n *\n * @param {Object} obj the object to set the property on\n * @param {string} key the key for the property to set\n * @param {Function} getValue the function used to get the value when it is needed.\n * @param {boolean} setter whether a setter should be allowed or not\n */\nfunction defineLazyProperty(obj, key, getValue, setter = true) {\n const set = value => Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n writable: true\n });\n const options = {\n configurable: true,\n enumerable: true,\n get() {\n const value = getValue();\n set(value);\n return value;\n }\n };\n if (setter) {\n options.set = set;\n }\n return Object.defineProperty(obj, key, options);\n}\n\nvar Obj = /*#__PURE__*/Object.freeze({\n __proto__: null,\n each: each,\n reduce: reduce,\n isObject: isObject,\n isPlain: isPlain,\n merge: merge$1,\n values: values,\n defineLazyProperty: defineLazyProperty\n});\n\n/**\n * @file browser.js\n * @module browser\n */\n\n/**\n * Whether or not this device is an iPod.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_IPOD = false;\n\n/**\n * The detected iOS version - or `null`.\n *\n * @static\n * @type {string|null}\n */\nlet IOS_VERSION = null;\n\n/**\n * Whether or not this is an Android device.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_ANDROID = false;\n\n/**\n * The detected Android version - or `null` if not Android or indeterminable.\n *\n * @static\n * @type {number|string|null}\n */\nlet ANDROID_VERSION;\n\n/**\n * Whether or not this is Mozilla Firefox.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_FIREFOX = false;\n\n/**\n * Whether or not this is Microsoft Edge.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_EDGE = false;\n\n/**\n * Whether or not this is any Chromium Browser\n *\n * @static\n * @type {Boolean}\n */\nlet IS_CHROMIUM = false;\n\n/**\n * Whether or not this is any Chromium browser that is not Edge.\n *\n * This will also be `true` for Chrome on iOS, which will have different support\n * as it is actually Safari under the hood.\n *\n * Deprecated, as the behaviour to not match Edge was to prevent Legacy Edge's UA matching.\n * IS_CHROMIUM should be used instead.\n * \"Chromium but not Edge\" could be explicitly tested with IS_CHROMIUM && !IS_EDGE\n *\n * @static\n * @deprecated\n * @type {Boolean}\n */\nlet IS_CHROME = false;\n\n/**\n * The detected Chromium version - or `null`.\n *\n * @static\n * @type {number|null}\n */\nlet CHROMIUM_VERSION = null;\n\n/**\n * The detected Google Chrome version - or `null`.\n * This has always been the _Chromium_ version, i.e. would return on Chromium Edge.\n * Deprecated, use CHROMIUM_VERSION instead.\n *\n * @static\n * @deprecated\n * @type {number|null}\n */\nlet CHROME_VERSION = null;\n\n/**\n * Whether or not this is a Chromecast receiver application.\n *\n * @static\n * @type {Boolean}\n */\nconst IS_CHROMECAST_RECEIVER = Boolean(window$1.cast && window$1.cast.framework && window$1.cast.framework.CastReceiverContext);\n\n/**\n * The detected Internet Explorer version - or `null`.\n *\n * @static\n * @deprecated\n * @type {number|null}\n */\nlet IE_VERSION = null;\n\n/**\n * Whether or not this is desktop Safari.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_SAFARI = false;\n\n/**\n * Whether or not this is a Windows machine.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_WINDOWS = false;\n\n/**\n * Whether or not this device is an iPad.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_IPAD = false;\n\n/**\n * Whether or not this device is an iPhone.\n *\n * @static\n * @type {Boolean}\n */\n// The Facebook app's UIWebView identifies as both an iPhone and iPad, so\n// to identify iPhones, we need to exclude iPads.\n// http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/\nlet IS_IPHONE = false;\n\n/**\n * Whether or not this is a Tizen device.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_TIZEN = false;\n\n/**\n * Whether or not this is a WebOS device.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_WEBOS = false;\n\n/**\n * Whether or not this is a Smart TV (Tizen or WebOS) device.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_SMART_TV = false;\n\n/**\n * Whether or not this device is touch-enabled.\n *\n * @static\n * @const\n * @type {Boolean}\n */\nconst TOUCH_ENABLED = Boolean(isReal() && ('ontouchstart' in window$1 || window$1.navigator.maxTouchPoints || window$1.DocumentTouch && window$1.document instanceof window$1.DocumentTouch));\nconst UAD = window$1.navigator && window$1.navigator.userAgentData;\nif (UAD && UAD.platform && UAD.brands) {\n // If userAgentData is present, use it instead of userAgent to avoid warnings\n // Currently only implemented on Chromium\n // userAgentData does not expose Android version, so ANDROID_VERSION remains `null`\n\n IS_ANDROID = UAD.platform === 'Android';\n IS_EDGE = Boolean(UAD.brands.find(b => b.brand === 'Microsoft Edge'));\n IS_CHROMIUM = Boolean(UAD.brands.find(b => b.brand === 'Chromium'));\n IS_CHROME = !IS_EDGE && IS_CHROMIUM;\n CHROMIUM_VERSION = CHROME_VERSION = (UAD.brands.find(b => b.brand === 'Chromium') || {}).version || null;\n IS_WINDOWS = UAD.platform === 'Windows';\n}\n\n// If the browser is not Chromium, either userAgentData is not present which could be an old Chromium browser,\n// or it's a browser that has added userAgentData since that we don't have tests for yet. In either case,\n// the checks need to be made agiainst the regular userAgent string.\nif (!IS_CHROMIUM) {\n const USER_AGENT = window$1.navigator && window$1.navigator.userAgent || '';\n IS_IPOD = /iPod/i.test(USER_AGENT);\n IOS_VERSION = function () {\n const match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) {\n return match[1];\n }\n return null;\n }();\n IS_ANDROID = /Android/i.test(USER_AGENT);\n ANDROID_VERSION = function () {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n const match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i);\n if (!match) {\n return null;\n }\n const major = match[1] && parseFloat(match[1]);\n const minor = match[2] && parseFloat(match[2]);\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n }\n return null;\n }();\n IS_FIREFOX = /Firefox/i.test(USER_AGENT);\n IS_EDGE = /Edg/i.test(USER_AGENT);\n IS_CHROMIUM = /Chrome/i.test(USER_AGENT) || /CriOS/i.test(USER_AGENT);\n IS_CHROME = !IS_EDGE && IS_CHROMIUM;\n CHROMIUM_VERSION = CHROME_VERSION = function () {\n const match = USER_AGENT.match(/(Chrome|CriOS)\\/(\\d+)/);\n if (match && match[2]) {\n return parseFloat(match[2]);\n }\n return null;\n }();\n IE_VERSION = function () {\n const result = /MSIE\\s(\\d+)\\.\\d/.exec(USER_AGENT);\n let version = result && parseFloat(result[1]);\n if (!version && /Trident\\/7.0/i.test(USER_AGENT) && /rv:11.0/.test(USER_AGENT)) {\n // IE 11 has a different user agent string than other IE versions\n version = 11.0;\n }\n return version;\n }();\n IS_TIZEN = /Tizen/i.test(USER_AGENT);\n IS_WEBOS = /Web0S/i.test(USER_AGENT);\n IS_SMART_TV = IS_TIZEN || IS_WEBOS;\n IS_SAFARI = /Safari/i.test(USER_AGENT) && !IS_CHROME && !IS_ANDROID && !IS_EDGE && !IS_SMART_TV;\n IS_WINDOWS = /Windows/i.test(USER_AGENT);\n IS_IPAD = /iPad/i.test(USER_AGENT) || IS_SAFARI && TOUCH_ENABLED && !/iPhone/i.test(USER_AGENT);\n IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\n}\n\n/**\n * Whether or not this is an iOS device.\n *\n * @static\n * @const\n * @type {Boolean}\n */\nconst IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\n/**\n * Whether or not this is any flavor of Safari - including iOS.\n *\n * @static\n * @const\n * @type {Boolean}\n */\nconst IS_ANY_SAFARI = (IS_SAFARI || IS_IOS) && !IS_CHROME;\n\nvar browser = /*#__PURE__*/Object.freeze({\n __proto__: null,\n get IS_IPOD () { return IS_IPOD; },\n get IOS_VERSION () { return IOS_VERSION; },\n get IS_ANDROID () { return IS_ANDROID; },\n get ANDROID_VERSION () { return ANDROID_VERSION; },\n get IS_FIREFOX () { return IS_FIREFOX; },\n get IS_EDGE () { return IS_EDGE; },\n get IS_CHROMIUM () { return IS_CHROMIUM; },\n get IS_CHROME () { return IS_CHROME; },\n get CHROMIUM_VERSION () { return CHROMIUM_VERSION; },\n get CHROME_VERSION () { return CHROME_VERSION; },\n IS_CHROMECAST_RECEIVER: IS_CHROMECAST_RECEIVER,\n get IE_VERSION () { return IE_VERSION; },\n get IS_SAFARI () { return IS_SAFARI; },\n get IS_WINDOWS () { return IS_WINDOWS; },\n get IS_IPAD () { return IS_IPAD; },\n get IS_IPHONE () { return IS_IPHONE; },\n get IS_TIZEN () { return IS_TIZEN; },\n get IS_WEBOS () { return IS_WEBOS; },\n get IS_SMART_TV () { return IS_SMART_TV; },\n TOUCH_ENABLED: TOUCH_ENABLED,\n IS_IOS: IS_IOS,\n IS_ANY_SAFARI: IS_ANY_SAFARI\n});\n\n/**\n * @file dom.js\n * @module dom\n */\n\n/**\n * Detect if a value is a string with any non-whitespace characters.\n *\n * @private\n * @param {string} str\n * The string to check\n *\n * @return {boolean}\n * Will be `true` if the string is non-blank, `false` otherwise.\n *\n */\nfunction isNonBlankString(str) {\n // we use str.trim as it will trim any whitespace characters\n // from the front or back of non-whitespace characters. aka\n // Any string that contains non-whitespace characters will\n // still contain them after `trim` but whitespace only strings\n // will have a length of 0, failing this check.\n return typeof str === 'string' && Boolean(str.trim());\n}\n\n/**\n * Throws an error if the passed string has whitespace. This is used by\n * class methods to be relatively consistent with the classList API.\n *\n * @private\n * @param {string} str\n * The string to check for whitespace.\n *\n * @throws {Error}\n * Throws an error if there is whitespace in the string.\n */\nfunction throwIfWhitespace(str) {\n // str.indexOf instead of regex because str.indexOf is faster performance wise.\n if (str.indexOf(' ') >= 0) {\n throw new Error('class has illegal whitespace characters');\n }\n}\n\n/**\n * Whether the current DOM interface appears to be real (i.e. not simulated).\n *\n * @return {boolean}\n * Will be `true` if the DOM appears to be real, `false` otherwise.\n */\nfunction isReal() {\n // Both document and window will never be undefined thanks to `global`.\n return document$1 === window$1.document;\n}\n\n/**\n * Determines, via duck typing, whether or not a value is a DOM element.\n *\n * @param {*} value\n * The value to check.\n *\n * @return {boolean}\n * Will be `true` if the value is a DOM element, `false` otherwise.\n */\nfunction isEl(value) {\n return isObject(value) && value.nodeType === 1;\n}\n\n/**\n * Determines if the current DOM is embedded in an iframe.\n *\n * @return {boolean}\n * Will be `true` if the DOM is embedded in an iframe, `false`\n * otherwise.\n */\nfunction isInFrame() {\n // We need a try/catch here because Safari will throw errors when attempting\n // to get either `parent` or `self`\n try {\n return window$1.parent !== window$1.self;\n } catch (x) {\n return true;\n }\n}\n\n/**\n * Creates functions to query the DOM using a given method.\n *\n * @private\n * @param {string} method\n * The method to create the query with.\n *\n * @return {Function}\n * The query method\n */\nfunction createQuerier(method) {\n return function (selector, context) {\n if (!isNonBlankString(selector)) {\n return document$1[method](null);\n }\n if (isNonBlankString(context)) {\n context = document$1.querySelector(context);\n }\n const ctx = isEl(context) ? context : document$1;\n return ctx[method] && ctx[method](selector);\n };\n}\n\n/**\n * Creates an element and applies properties, attributes, and inserts content.\n *\n * @param {string} [tagName='div']\n * Name of tag to be created.\n *\n * @param {Object} [properties={}]\n * Element properties to be applied.\n *\n * @param {Object} [attributes={}]\n * Element attributes to be applied.\n *\n * @param {ContentDescriptor} [content]\n * A content descriptor object.\n *\n * @return {Element}\n * The element that was created.\n */\nfunction createEl(tagName = 'div', properties = {}, attributes = {}, content) {\n const el = document$1.createElement(tagName);\n Object.getOwnPropertyNames(properties).forEach(function (propName) {\n const val = properties[propName];\n\n // Handle textContent since it's not supported everywhere and we have a\n // method for it.\n if (propName === 'textContent') {\n textContent(el, val);\n } else if (el[propName] !== val || propName === 'tabIndex') {\n el[propName] = val;\n }\n });\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n el.setAttribute(attrName, attributes[attrName]);\n });\n if (content) {\n appendContent(el, content);\n }\n return el;\n}\n\n/**\n * Injects text into an element, replacing any existing contents entirely.\n *\n * @param {HTMLElement} el\n * The element to add text content into\n *\n * @param {string} text\n * The text content to add.\n *\n * @return {Element}\n * The element with added text content.\n */\nfunction textContent(el, text) {\n if (typeof el.textContent === 'undefined') {\n el.innerText = text;\n } else {\n el.textContent = text;\n }\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child\n * Element to insert\n *\n * @param {Element} parent\n * Element to insert child into\n */\nfunction prependTo(child, parent) {\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Check if an element has a class name.\n *\n * @param {Element} element\n * Element to check\n *\n * @param {string} classToCheck\n * Class name to check for\n *\n * @return {boolean}\n * Will be `true` if the element has a class, `false` otherwise.\n *\n * @throws {Error}\n * Throws an error if `classToCheck` has white space.\n */\nfunction hasClass(element, classToCheck) {\n throwIfWhitespace(classToCheck);\n return element.classList.contains(classToCheck);\n}\n\n/**\n * Add a class name to an element.\n *\n * @param {Element} element\n * Element to add class name to.\n *\n * @param {...string} classesToAdd\n * One or more class name to add.\n *\n * @return {Element}\n * The DOM element with the added class name.\n */\nfunction addClass(element, ...classesToAdd) {\n element.classList.add(...classesToAdd.reduce((prev, current) => prev.concat(current.split(/\\s+/)), []));\n return element;\n}\n\n/**\n * Remove a class name from an element.\n *\n * @param {Element} element\n * Element to remove a class name from.\n *\n * @param {...string} classesToRemove\n * One or more class name to remove.\n *\n * @return {Element}\n * The DOM element with class name removed.\n */\nfunction removeClass(element, ...classesToRemove) {\n // Protect in case the player gets disposed\n if (!element) {\n log$1.warn(\"removeClass was called with an element that doesn't exist\");\n return null;\n }\n element.classList.remove(...classesToRemove.reduce((prev, current) => prev.concat(current.split(/\\s+/)), []));\n return element;\n}\n\n/**\n * The callback definition for toggleClass.\n *\n * @callback PredicateCallback\n * @param {Element} element\n * The DOM element of the Component.\n *\n * @param {string} classToToggle\n * The `className` that wants to be toggled\n *\n * @return {boolean|undefined}\n * If `true` is returned, the `classToToggle` will be added to the\n * `element`, but not removed. If `false`, the `classToToggle` will be removed from\n * the `element`, but not added. If `undefined`, the callback will be ignored.\n *\n */\n\n/**\n * Adds or removes a class name to/from an element depending on an optional\n * condition or the presence/absence of the class name.\n *\n * @param {Element} element\n * The element to toggle a class name on.\n *\n * @param {string} classToToggle\n * The class that should be toggled.\n *\n * @param {boolean|PredicateCallback} [predicate]\n * See the return value for {@link module:dom~PredicateCallback}\n *\n * @return {Element}\n * The element with a class that has been toggled.\n */\nfunction toggleClass(element, classToToggle, predicate) {\n if (typeof predicate === 'function') {\n predicate = predicate(element, classToToggle);\n }\n if (typeof predicate !== 'boolean') {\n predicate = undefined;\n }\n classToToggle.split(/\\s+/).forEach(className => element.classList.toggle(className, predicate));\n return element;\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el\n * Element to add attributes to.\n *\n * @param {Object} [attributes]\n * Attributes to be applied.\n */\nfunction setAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n const attrValue = attributes[attrName];\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, attrValue === true ? '' : attrValue);\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag.\n *\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute.\n *\n * @param {Element} tag\n * Element from which to get tag attributes.\n *\n * @return {Object}\n * All attributes of the element. Boolean attributes will be `true` or\n * `false`, others will be strings.\n */\nfunction getAttributes(tag) {\n const obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but not all browsers\n // and not all tags know about these attributes, so, we still want to check them manually\n const knownBooleans = ['autoplay', 'controls', 'playsinline', 'loop', 'muted', 'default', 'defaultMuted'];\n if (tag && tag.attributes && tag.attributes.length > 0) {\n const attrs = tag.attributes;\n for (let i = attrs.length - 1; i >= 0; i--) {\n const attrName = attrs[i].name;\n /** @type {boolean|string} */\n let attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (knownBooleans.includes(attrName)) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = attrVal !== null ? true : false;\n }\n obj[attrName] = attrVal;\n }\n }\n return obj;\n}\n\n/**\n * Get the value of an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to get the value of.\n *\n * @return {string}\n * The value of the attribute.\n */\nfunction getAttribute(el, attribute) {\n return el.getAttribute(attribute);\n}\n\n/**\n * Set the value of an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to set.\n *\n * @param {string} value\n * Value to set the attribute to.\n */\nfunction setAttribute(el, attribute, value) {\n el.setAttribute(attribute, value);\n}\n\n/**\n * Remove an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to remove.\n */\nfunction removeAttribute(el, attribute) {\n el.removeAttribute(attribute);\n}\n\n/**\n * Attempt to block the ability to select text.\n */\nfunction blockTextSelection() {\n document$1.body.focus();\n document$1.onselectstart = function () {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking.\n */\nfunction unblockTextSelection() {\n document$1.onselectstart = function () {\n return true;\n };\n}\n\n/**\n * Identical to the native `getBoundingClientRect` function, but ensures that\n * the method is supported at all (it is in all browsers we claim to support)\n * and that the element is in the DOM before continuing.\n *\n * This wrapper function also shims properties which are not provided by some\n * older browsers (namely, IE8).\n *\n * Additionally, some browsers do not support adding properties to a\n * `ClientRect`/`DOMRect` object; so, we shallow-copy it with the standard\n * properties (except `x` and `y` which are not widely supported). This helps\n * avoid implementations where keys are non-enumerable.\n *\n * @param {Element} el\n * Element whose `ClientRect` we want to calculate.\n *\n * @return {Object|undefined}\n * Always returns a plain object - or `undefined` if it cannot.\n */\nfunction getBoundingClientRect(el) {\n if (el && el.getBoundingClientRect && el.parentNode) {\n const rect = el.getBoundingClientRect();\n const result = {};\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(k => {\n if (rect[k] !== undefined) {\n result[k] = rect[k];\n }\n });\n if (!result.height) {\n result.height = parseFloat(computedStyle(el, 'height'));\n }\n if (!result.width) {\n result.width = parseFloat(computedStyle(el, 'width'));\n }\n return result;\n }\n}\n\n/**\n * Represents the position of a DOM element on the page.\n *\n * @typedef {Object} module:dom~Position\n *\n * @property {number} left\n * Pixels to the left.\n *\n * @property {number} top\n * Pixels from the top.\n */\n\n/**\n * Get the position of an element in the DOM.\n *\n * Uses `getBoundingClientRect` technique from John Resig.\n *\n * @see http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el\n * Element from which to get offset.\n *\n * @return {module:dom~Position}\n * The position of the element that was passed in.\n */\nfunction findPosition(el) {\n if (!el || el && !el.offsetParent) {\n return {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n };\n }\n const width = el.offsetWidth;\n const height = el.offsetHeight;\n let left = 0;\n let top = 0;\n while (el.offsetParent && el !== document$1[FullscreenApi.fullscreenElement]) {\n left += el.offsetLeft;\n top += el.offsetTop;\n el = el.offsetParent;\n }\n return {\n left,\n top,\n width,\n height\n };\n}\n\n/**\n * Represents x and y coordinates for a DOM element or mouse pointer.\n *\n * @typedef {Object} module:dom~Coordinates\n *\n * @property {number} x\n * x coordinate in pixels\n *\n * @property {number} y\n * y coordinate in pixels\n */\n\n/**\n * Get the pointer position within an element.\n *\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el\n * Element on which to get the pointer position on.\n *\n * @param {Event} event\n * Event object.\n *\n * @return {module:dom~Coordinates}\n * A coordinates object corresponding to the mouse position.\n *\n */\nfunction getPointerPosition(el, event) {\n const translated = {\n x: 0,\n y: 0\n };\n if (IS_IOS) {\n let item = el;\n while (item && item.nodeName.toLowerCase() !== 'html') {\n const transform = computedStyle(item, 'transform');\n if (/^matrix/.test(transform)) {\n const values = transform.slice(7, -1).split(/,\\s/).map(Number);\n translated.x += values[4];\n translated.y += values[5];\n } else if (/^matrix3d/.test(transform)) {\n const values = transform.slice(9, -1).split(/,\\s/).map(Number);\n translated.x += values[12];\n translated.y += values[13];\n }\n if (item.assignedSlot && item.assignedSlot.parentElement && window$1.WebKitCSSMatrix) {\n const transformValue = window$1.getComputedStyle(item.assignedSlot.parentElement).transform;\n const matrix = new window$1.WebKitCSSMatrix(transformValue);\n translated.x += matrix.m41;\n translated.y += matrix.m42;\n }\n item = item.parentNode || item.host;\n }\n }\n const position = {};\n const boxTarget = findPosition(event.target);\n const box = findPosition(el);\n const boxW = box.width;\n const boxH = box.height;\n let offsetY = event.offsetY - (box.top - boxTarget.top);\n let offsetX = event.offsetX - (box.left - boxTarget.left);\n if (event.changedTouches) {\n offsetX = event.changedTouches[0].pageX - box.left;\n offsetY = event.changedTouches[0].pageY + box.top;\n if (IS_IOS) {\n offsetX -= translated.x;\n offsetY -= translated.y;\n }\n }\n position.y = 1 - Math.max(0, Math.min(1, offsetY / boxH));\n position.x = Math.max(0, Math.min(1, offsetX / boxW));\n return position;\n}\n\n/**\n * Determines, via duck typing, whether or not a value is a text node.\n *\n * @param {*} value\n * Check if this value is a text node.\n *\n * @return {boolean}\n * Will be `true` if the value is a text node, `false` otherwise.\n */\nfunction isTextNode(value) {\n return isObject(value) && value.nodeType === 3;\n}\n\n/**\n * Empties the contents of an element.\n *\n * @param {Element} el\n * The element to empty children from\n *\n * @return {Element}\n * The element with no children\n */\nfunction emptyEl(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n return el;\n}\n\n/**\n * This is a mixed value that describes content to be injected into the DOM\n * via some method. It can be of the following types:\n *\n * Type | Description\n * -----------|-------------\n * `string` | The value will be normalized into a text node.\n * `Element` | The value will be accepted as-is.\n * `Text` | A TextNode. The value will be accepted as-is.\n * `Array` | A one-dimensional array of strings, elements, text nodes, or functions. These functions should return a string, element, or text node (any other return value, like an array, will be ignored).\n * `Function` | A function, which is expected to return a string, element, text node, or array - any of the other possible values described above. This means that a content descriptor could be a function that returns an array of functions, but those second-level functions must return strings, elements, or text nodes.\n *\n * @typedef {string|Element|Text|Array|Function} ContentDescriptor\n */\n\n/**\n * Normalizes content for eventual insertion into the DOM.\n *\n * This allows a wide range of content definition methods, but helps protect\n * from falling into the trap of simply writing to `innerHTML`, which could\n * be an XSS concern.\n *\n * The content for an element can be passed in multiple types and\n * combinations, whose behavior is as follows:\n *\n * @param {ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Array}\n * All of the content that was passed in, normalized to an array of\n * elements or text nodes.\n */\nfunction normalizeContent(content) {\n // First, invoke content if it is a function. If it produces an array,\n // that needs to happen before normalization.\n if (typeof content === 'function') {\n content = content();\n }\n\n // Next up, normalize to an array, so one or many items can be normalized,\n // filtered, and returned.\n return (Array.isArray(content) ? content : [content]).map(value => {\n // First, invoke value if it is a function to produce a new value,\n // which will be subsequently normalized to a Node of some kind.\n if (typeof value === 'function') {\n value = value();\n }\n if (isEl(value) || isTextNode(value)) {\n return value;\n }\n if (typeof value === 'string' && /\\S/.test(value)) {\n return document$1.createTextNode(value);\n }\n }).filter(value => value);\n}\n\n/**\n * Normalizes and appends content to an element.\n *\n * @param {Element} el\n * Element to append normalized content to.\n *\n * @param {ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with appended normalized content.\n */\nfunction appendContent(el, content) {\n normalizeContent(content).forEach(node => el.appendChild(node));\n return el;\n}\n\n/**\n * Normalizes and inserts content into an element; this is identical to\n * `appendContent()`, except it empties the element first.\n *\n * @param {Element} el\n * Element to insert normalized content into.\n *\n * @param {ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with inserted normalized content.\n */\nfunction insertContent(el, content) {\n return appendContent(emptyEl(el), content);\n}\n\n/**\n * Check if an event was a single left click.\n *\n * @param {MouseEvent} event\n * Event object.\n *\n * @return {boolean}\n * Will be `true` if a single left click, `false` otherwise.\n */\nfunction isSingleLeftClick(event) {\n // Note: if you create something draggable, be sure to\n // call it on both `mousedown` and `mousemove` event,\n // otherwise `mousedown` should be enough for a button\n\n if (event.button === undefined && event.buttons === undefined) {\n // Why do we need `buttons` ?\n // Because, middle mouse sometimes have this:\n // e.button === 0 and e.buttons === 4\n // Furthermore, we want to prevent combination click, something like\n // HOLD middlemouse then left click, that would be\n // e.button === 0, e.buttons === 5\n // just `button` is not gonna work\n\n // Alright, then what this block does ?\n // this is for chrome `simulate mobile devices`\n // I want to support this as well\n\n return true;\n }\n if (event.button === 0 && event.buttons === undefined) {\n // Touch screen, sometimes on some specific device, `buttons`\n // doesn't have anything (safari on ios, blackberry...)\n\n return true;\n }\n\n // `mouseup` event on a single left click has\n // `button` and `buttons` equal to 0\n if (event.type === 'mouseup' && event.button === 0 && event.buttons === 0) {\n return true;\n }\n\n // MacOS Sonoma trackpad when \"tap to click enabled\"\n if (event.type === 'mousedown' && event.button === 0 && event.buttons === 0) {\n return true;\n }\n if (event.button !== 0 || event.buttons !== 1) {\n // This is the reason we have those if else block above\n // if any special case we can catch and let it slide\n // we do it above, when get to here, this definitely\n // is-not-left-click\n\n return false;\n }\n return true;\n}\n\n/**\n * Finds a single DOM element matching `selector` within the optional\n * `context` of another DOM element (defaulting to `document`).\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelector`.\n *\n * @param {Element|String} [context=document]\n * A DOM element within which to query. Can also be a selector\n * string in which case the first matching element will be used\n * as context. If missing (or no element matches selector), falls\n * back to `document`.\n *\n * @return {Element|null}\n * The element that was found or null.\n */\nconst $ = createQuerier('querySelector');\n\n/**\n * Finds a all DOM elements matching `selector` within the optional\n * `context` of another DOM element (defaulting to `document`).\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelectorAll`.\n *\n * @param {Element|String} [context=document]\n * A DOM element within which to query. Can also be a selector\n * string in which case the first matching element will be used\n * as context. If missing (or no element matches selector), falls\n * back to `document`.\n *\n * @return {NodeList}\n * A element list of elements that were found. Will be empty if none\n * were found.\n *\n */\nconst $$ = createQuerier('querySelectorAll');\n\n/**\n * A safe getComputedStyle.\n *\n * This is needed because in Firefox, if the player is loaded in an iframe with\n * `display:none`, then `getComputedStyle` returns `null`, so, we do a\n * null-check to make sure that the player doesn't break in these cases.\n *\n * @param {Element} el\n * The element you want the computed style of\n *\n * @param {string} prop\n * The property name you want\n *\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction computedStyle(el, prop) {\n if (!el || !prop) {\n return '';\n }\n if (typeof window$1.getComputedStyle === 'function') {\n let computedStyleValue;\n try {\n computedStyleValue = window$1.getComputedStyle(el);\n } catch (e) {\n return '';\n }\n return computedStyleValue ? computedStyleValue.getPropertyValue(prop) || computedStyleValue[prop] : '';\n }\n return '';\n}\n\n/**\n * Copy document style sheets to another window.\n *\n * @param {Window} win\n * The window element you want to copy the document style sheets to.\n *\n */\nfunction copyStyleSheetsToWindow(win) {\n [...document$1.styleSheets].forEach(styleSheet => {\n try {\n const cssRules = [...styleSheet.cssRules].map(rule => rule.cssText).join('');\n const style = document$1.createElement('style');\n style.textContent = cssRules;\n win.document.head.appendChild(style);\n } catch (e) {\n const link = document$1.createElement('link');\n link.rel = 'stylesheet';\n link.type = styleSheet.type;\n // For older Safari this has to be the string; on other browsers setting the MediaList works\n link.media = styleSheet.media.mediaText;\n link.href = styleSheet.href;\n win.document.head.appendChild(link);\n }\n });\n}\n\nvar Dom = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isReal: isReal,\n isEl: isEl,\n isInFrame: isInFrame,\n createEl: createEl,\n textContent: textContent,\n prependTo: prependTo,\n hasClass: hasClass,\n addClass: addClass,\n removeClass: removeClass,\n toggleClass: toggleClass,\n setAttributes: setAttributes,\n getAttributes: getAttributes,\n getAttribute: getAttribute,\n setAttribute: setAttribute,\n removeAttribute: removeAttribute,\n blockTextSelection: blockTextSelection,\n unblockTextSelection: unblockTextSelection,\n getBoundingClientRect: getBoundingClientRect,\n findPosition: findPosition,\n getPointerPosition: getPointerPosition,\n isTextNode: isTextNode,\n emptyEl: emptyEl,\n normalizeContent: normalizeContent,\n appendContent: appendContent,\n insertContent: insertContent,\n isSingleLeftClick: isSingleLeftClick,\n $: $,\n $$: $$,\n computedStyle: computedStyle,\n copyStyleSheetsToWindow: copyStyleSheetsToWindow\n});\n\n/**\n * @file setup.js - Functions for setting up a player without\n * user interaction based on the data-setup `attribute` of the video tag.\n *\n * @module setup\n */\nlet _windowLoaded = false;\nlet videojs$1;\n\n/**\n * Set up any tags that have a data-setup `attribute` when the player is started.\n */\nconst autoSetup = function () {\n if (videojs$1.options.autoSetup === false) {\n return;\n }\n const vids = Array.prototype.slice.call(document$1.getElementsByTagName('video'));\n const audios = Array.prototype.slice.call(document$1.getElementsByTagName('audio'));\n const divs = Array.prototype.slice.call(document$1.getElementsByTagName('video-js'));\n const mediaEls = vids.concat(audios, divs);\n\n // Check if any media elements exist\n if (mediaEls && mediaEls.length > 0) {\n for (let i = 0, e = mediaEls.length; i < e; i++) {\n const mediaEl = mediaEls[i];\n\n // Check if element exists, has getAttribute func.\n if (mediaEl && mediaEl.getAttribute) {\n // Make sure this player hasn't already been set up.\n if (mediaEl.player === undefined) {\n const options = mediaEl.getAttribute('data-setup');\n\n // Check if data-setup attr exists.\n // We only auto-setup if they've added the data-setup attr.\n if (options !== null) {\n // Create new video.js instance.\n videojs$1(mediaEl);\n }\n }\n\n // If getAttribute isn't defined, we need to wait for the DOM.\n } else {\n autoSetupTimeout(1);\n break;\n }\n }\n\n // No videos were found, so keep looping unless page is finished loading.\n } else if (!_windowLoaded) {\n autoSetupTimeout(1);\n }\n};\n\n/**\n * Wait until the page is loaded before running autoSetup. This will be called in\n * autoSetup if `hasLoaded` returns false.\n *\n * @param {number} wait\n * How long to wait in ms\n *\n * @param {module:videojs} [vjs]\n * The videojs library function\n */\nfunction autoSetupTimeout(wait, vjs) {\n // Protect against breakage in non-browser environments\n if (!isReal()) {\n return;\n }\n if (vjs) {\n videojs$1 = vjs;\n }\n window$1.setTimeout(autoSetup, wait);\n}\n\n/**\n * Used to set the internal tracking of window loaded state to true.\n *\n * @private\n */\nfunction setWindowLoaded() {\n _windowLoaded = true;\n window$1.removeEventListener('load', setWindowLoaded);\n}\nif (isReal()) {\n if (document$1.readyState === 'complete') {\n setWindowLoaded();\n } else {\n /**\n * Listen for the load event on window, and set _windowLoaded to true.\n *\n * We use a standard event listener here to avoid incrementing the GUID\n * before any players are created.\n *\n * @listens load\n */\n window$1.addEventListener('load', setWindowLoaded);\n }\n}\n\n/**\n * @file stylesheet.js\n * @module stylesheet\n */\n\n/**\n * Create a DOM style element given a className for it.\n *\n * @param {string} className\n * The className to add to the created style element.\n *\n * @return {Element}\n * The element that was created.\n */\nconst createStyleElement = function (className) {\n const style = document$1.createElement('style');\n style.className = className;\n return style;\n};\n\n/**\n * Add text to a DOM element.\n *\n * @param {Element} el\n * The Element to add text content to.\n *\n * @param {string} content\n * The text to add to the element.\n */\nconst setTextContent = function (el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n\n/**\n * @file dom-data.js\n * @module dom-data\n */\n\n/**\n * Element Data Store.\n *\n * Allows for binding data to an element without putting it directly on the\n * element. Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nvar DomData = new WeakMap();\n\n/**\n * @file guid.js\n * @module guid\n */\n\n// Default value for GUIDs. This allows us to reset the GUID counter in tests.\n//\n// The initial GUID is 3 because some users have come to rely on the first\n// default player ID ending up as `vjs_video_3`.\n//\n// See: https://github.com/videojs/video.js/pull/6216\nconst _initialGuid = 3;\n\n/**\n * Unique ID for an element or function\n *\n * @type {Number}\n */\nlet _guid = _initialGuid;\n\n/**\n * Get a unique auto-incrementing ID by number that has not been returned before.\n *\n * @return {number}\n * A new unique ID.\n */\nfunction newGUID() {\n return _guid++;\n}\n\n/**\n * @file events.js. An Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n *\n * @file events.js\n * @module events\n */\n\n/**\n * Clean up the listener cache and dispatchers\n *\n * @param {Element|Object} elem\n * Element to clean up\n *\n * @param {string} type\n * Type of event to clean up\n */\nfunction _cleanUpEvents(elem, type) {\n if (!DomData.has(elem)) {\n return;\n }\n const data = DomData.get(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n DomData.delete(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn\n * The event method we want to use.\n *\n * @param {Element|Object} elem\n * Element or object to bind listeners to\n *\n * @param {string[]} types\n * Type of event to bind to.\n *\n * @param {Function} callback\n * Event listener.\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function (type) {\n // Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event\n * Event object to fix.\n *\n * @return {Object}\n * Fixed event object.\n */\nfunction fixEvent(event) {\n if (event.fixed_) {\n return event;\n }\n function returnTrue() {\n return true;\n }\n function returnFalse() {\n return false;\n }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped || !event.isImmediatePropagationStopped) {\n const old = event || window$1.event;\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n\n // TODO: Probably best to create an allowlist of event props\n const deprecatedProps = ['layerX', 'layerY', 'keyLocation', 'path', 'webkitMovementX', 'webkitMovementY', 'mozPressure', 'mozInputSource'];\n for (const key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n // Lighthouse complains if Event.path is copied\n if (!deprecatedProps.includes(key)) {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document$1;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX !== null && event.clientX !== undefined) {\n const doc = document$1.documentElement;\n const body = document$1.body;\n event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button !== null && event.button !== undefined) {\n // The following is disabled because it does not pass videojs-standard\n // and... yikes.\n /* eslint-disable */\n event.button = event.button & 1 ? 0 : event.button & 4 ? 1 : event.button & 2 ? 2 : 0;\n /* eslint-enable */\n }\n }\n event.fixed_ = true;\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Whether passive event listeners are supported\n */\nlet _supportsPassive;\nconst supportsPassive = function () {\n if (typeof _supportsPassive !== 'boolean') {\n _supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n get() {\n _supportsPassive = true;\n }\n });\n window$1.addEventListener('test', null, opts);\n window$1.removeEventListener('test', null, opts);\n } catch (e) {\n // disregard\n }\n }\n return _supportsPassive;\n};\n\n/**\n * Touch events Chrome expects to be passive\n */\nconst passiveEvents = ['touchstart', 'touchmove'];\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem\n * Element or object to bind listeners to\n *\n * @param {string|string[]} type\n * Type of event to bind to.\n *\n * @param {Function} fn\n * Event listener.\n */\nfunction on(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n if (!DomData.has(elem)) {\n DomData.set(elem, {});\n }\n const data = DomData.get(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) {\n data.handlers = {};\n }\n if (!data.handlers[type]) {\n data.handlers[type] = [];\n }\n if (!fn.guid) {\n fn.guid = newGUID();\n }\n data.handlers[type].push(fn);\n if (!data.dispatcher) {\n data.disabled = false;\n data.dispatcher = function (event, hash) {\n if (data.disabled) {\n return;\n }\n event = fixEvent(event);\n const handlers = data.handlers[event.type];\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n const handlersCopy = handlers.slice(0);\n for (let m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n try {\n handlersCopy[m].call(elem, event, hash);\n } catch (e) {\n log$1.error(e);\n }\n }\n }\n }\n };\n }\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n let options = false;\n if (supportsPassive() && passiveEvents.indexOf(type) > -1) {\n options = {\n passive: true\n };\n }\n elem.addEventListener(type, data.dispatcher, options);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem\n * Object to remove listeners from.\n *\n * @param {string|string[]} [type]\n * Type of listener to remove. Don't include to remove all events from element.\n *\n * @param {Function} [fn]\n * Specific listener to remove. Don't include to remove listeners for an event\n * type.\n */\nfunction off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!DomData.has(elem)) {\n return;\n }\n const data = DomData.get(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) {\n return;\n }\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n const removeType = function (el, t) {\n data.handlers[t] = [];\n _cleanUpEvents(el, t);\n };\n\n // Are we removing all bound events?\n if (type === undefined) {\n for (const t in data.handlers) {\n if (Object.prototype.hasOwnProperty.call(data.handlers || {}, t)) {\n removeType(elem, t);\n }\n }\n return;\n }\n const handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) {\n return;\n }\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(elem, type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem\n * Element to trigger an event on\n *\n * @param {EventTarget~Event|string} event\n * A string (the type) or an event object with a type attribute\n *\n * @param {Object} [hash]\n * data hash to pass along with the event\n *\n * @return {boolean|undefined}\n * Returns the opposite of `defaultPrevented` if default was\n * prevented. Otherwise, returns `undefined`\n */\nfunction trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n const elemData = DomData.has(elem) ? DomData.get(elem) : {};\n const parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = {\n type: event,\n target: elem\n };\n } else if (!event.target) {\n event.target = elem;\n }\n\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented && event.target && event.target[event.type]) {\n if (!DomData.has(event.target)) {\n DomData.set(event.target, {});\n }\n const targetData = DomData.get(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event.\n *\n * @param {Element|Object} elem\n * Element or object to bind to.\n *\n * @param {string|string[]} type\n * Name/type of event\n *\n * @param {Event~EventListener} fn\n * Event listener function\n */\nfunction one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n const func = function () {\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || newGUID();\n on(elem, type, func);\n}\n\n/**\n * Trigger a listener only once and then turn if off for all\n * configured events\n *\n * @param {Element|Object} elem\n * Element or object to bind to.\n *\n * @param {string|string[]} type\n * Name/type of event\n *\n * @param {Event~EventListener} fn\n * Event listener function\n */\nfunction any(elem, type, fn) {\n const func = function () {\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || newGUID();\n\n // multiple ons, but one off for everything\n on(elem, type, func);\n}\n\nvar Events = /*#__PURE__*/Object.freeze({\n __proto__: null,\n fixEvent: fixEvent,\n on: on,\n off: off,\n trigger: trigger,\n one: one,\n any: any\n});\n\n/**\n * @file fn.js\n * @module fn\n */\nconst UPDATE_REFRESH_INTERVAL = 30;\n\n/**\n * A private, internal-only function for changing the context of a function.\n *\n * It also stores a unique id on the function so it can be easily removed from\n * events.\n *\n * @private\n * @function\n * @param {*} context\n * The object to bind as scope.\n *\n * @param {Function} fn\n * The function to be bound to a scope.\n *\n * @param {number} [uid]\n * An optional unique ID for the function to be set\n *\n * @return {Function}\n * The new function that will be bound into the context given\n */\nconst bind_ = function (context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) {\n fn.guid = newGUID();\n }\n\n // Create the new function that changes the context\n const bound = fn.bind(context);\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n bound.guid = uid ? uid + '_' + fn.guid : fn.guid;\n return bound;\n};\n\n/**\n * Wraps the given function, `fn`, with a new function that only invokes `fn`\n * at most once per every `wait` milliseconds.\n *\n * @function\n * @param {Function} fn\n * The function to be throttled.\n *\n * @param {number} wait\n * The number of milliseconds by which to throttle.\n *\n * @return {Function}\n */\nconst throttle = function (fn, wait) {\n let last = window$1.performance.now();\n const throttled = function (...args) {\n const now = window$1.performance.now();\n if (now - last >= wait) {\n fn(...args);\n last = now;\n }\n };\n return throttled;\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked.\n *\n * Inspired by lodash and underscore implementations.\n *\n * @function\n * @param {Function} func\n * The function to wrap with debounce behavior.\n *\n * @param {number} wait\n * The number of milliseconds to wait after the last invocation.\n *\n * @param {boolean} [immediate]\n * Whether or not to invoke the function immediately upon creation.\n *\n * @param {Object} [context=window]\n * The \"context\" in which the debounced function should debounce. For\n * example, if this function should be tied to a Video.js player,\n * the player can be passed here. Alternatively, defaults to the\n * global `window` object.\n *\n * @return {Function}\n * A debounced function.\n */\nconst debounce$1 = function (func, wait, immediate, context = window$1) {\n let timeout;\n const cancel = () => {\n context.clearTimeout(timeout);\n timeout = null;\n };\n\n /* eslint-disable consistent-this */\n const debounced = function () {\n const self = this;\n const args = arguments;\n let later = function () {\n timeout = null;\n later = null;\n if (!immediate) {\n func.apply(self, args);\n }\n };\n if (!timeout && immediate) {\n func.apply(self, args);\n }\n context.clearTimeout(timeout);\n timeout = context.setTimeout(later, wait);\n };\n /* eslint-enable consistent-this */\n\n debounced.cancel = cancel;\n return debounced;\n};\n\nvar Fn = /*#__PURE__*/Object.freeze({\n __proto__: null,\n UPDATE_REFRESH_INTERVAL: UPDATE_REFRESH_INTERVAL,\n bind_: bind_,\n throttle: throttle,\n debounce: debounce$1\n});\n\n/**\n * @file src/js/event-target.js\n */\nlet EVENT_MAP;\n\n/**\n * `EventTarget` is a class that can have the same API as the DOM `EventTarget`. It\n * adds shorthand functions that wrap around lengthy functions. For example:\n * the `on` function is a wrapper around `addEventListener`.\n *\n * @see [EventTarget Spec]{@link https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget}\n * @class EventTarget\n */\nclass EventTarget$2 {\n /**\n * Adds an `event listener` to an instance of an `EventTarget`. An `event listener` is a\n * function that will get called when an event with a certain name gets triggered.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {Function} fn\n * The function to call with `EventTarget`s\n */\n on(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n const ael = this.addEventListener;\n this.addEventListener = () => {};\n on(this, type, fn);\n this.addEventListener = ael;\n }\n /**\n * Removes an `event listener` for a specific event from an instance of `EventTarget`.\n * This makes it so that the `event listener` will no longer get called when the\n * named event happens.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {Function} fn\n * The function to remove.\n */\n off(type, fn) {\n off(this, type, fn);\n }\n /**\n * This function will add an `event listener` that gets triggered only once. After the\n * first trigger it will get removed. This is like adding an `event listener`\n * with {@link EventTarget#on} that calls {@link EventTarget#off} on itself.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {Function} fn\n * The function to be called once for each event name.\n */\n one(type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n const ael = this.addEventListener;\n this.addEventListener = () => {};\n one(this, type, fn);\n this.addEventListener = ael;\n }\n /**\n * This function will add an `event listener` that gets triggered only once and is\n * removed from all events. This is like adding an array of `event listener`s\n * with {@link EventTarget#on} that calls {@link EventTarget#off} on all events the\n * first time it is triggered.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {Function} fn\n * The function to be called once for each event name.\n */\n any(type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n const ael = this.addEventListener;\n this.addEventListener = () => {};\n any(this, type, fn);\n this.addEventListener = ael;\n }\n /**\n * This function causes an event to happen. This will then cause any `event listeners`\n * that are waiting for that event, to get called. If there are no `event listeners`\n * for an event then nothing will happen.\n *\n * If the name of the `Event` that is being triggered is in `EventTarget.allowedEvents_`.\n * Trigger will also call the `on` + `uppercaseEventName` function.\n *\n * Example:\n * 'click' is in `EventTarget.allowedEvents_`, so, trigger will attempt to call\n * `onClick` if it exists.\n *\n * @param {string|EventTarget~Event|Object} event\n * The name of the event, an `Event`, or an object with a key of type set to\n * an event name.\n */\n trigger(event) {\n const type = event.type || event;\n\n // deprecation\n // In a future version we should default target to `this`\n // similar to how we default the target to `elem` in\n // `Events.trigger`. Right now the default `target` will be\n // `document` due to the `Event.fixEvent` call.\n if (typeof event === 'string') {\n event = {\n type\n };\n }\n event = fixEvent(event);\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n trigger(this, event);\n }\n queueTrigger(event) {\n // only set up EVENT_MAP if it'll be used\n if (!EVENT_MAP) {\n EVENT_MAP = new Map();\n }\n const type = event.type || event;\n let map = EVENT_MAP.get(this);\n if (!map) {\n map = new Map();\n EVENT_MAP.set(this, map);\n }\n const oldTimeout = map.get(type);\n map.delete(type);\n window$1.clearTimeout(oldTimeout);\n const timeout = window$1.setTimeout(() => {\n map.delete(type);\n // if we cleared out all timeouts for the current target, delete its map\n if (map.size === 0) {\n map = null;\n EVENT_MAP.delete(this);\n }\n this.trigger(event);\n }, 0);\n map.set(type, timeout);\n }\n}\n\n/**\n * A Custom DOM event.\n *\n * @typedef {CustomEvent} Event\n * @see [Properties]{@link https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent}\n */\n\n/**\n * All event listeners should follow the following format.\n *\n * @callback EventListener\n * @this {EventTarget}\n *\n * @param {Event} event\n * the event that triggered this function\n *\n * @param {Object} [hash]\n * hash of data sent during the event\n */\n\n/**\n * An object containing event names as keys and booleans as values.\n *\n * > NOTE: If an event name is set to a true value here {@link EventTarget#trigger}\n * will have extra functionality. See that function for more information.\n *\n * @property EventTarget.prototype.allowedEvents_\n * @protected\n */\nEventTarget$2.prototype.allowedEvents_ = {};\n\n/**\n * An alias of {@link EventTarget#on}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#on}\n */\nEventTarget$2.prototype.addEventListener = EventTarget$2.prototype.on;\n\n/**\n * An alias of {@link EventTarget#off}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#off}\n */\nEventTarget$2.prototype.removeEventListener = EventTarget$2.prototype.off;\n\n/**\n * An alias of {@link EventTarget#trigger}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#trigger}\n */\nEventTarget$2.prototype.dispatchEvent = EventTarget$2.prototype.trigger;\n\n/**\n * @file mixins/evented.js\n * @module evented\n */\nconst objName = obj => {\n if (typeof obj.name === 'function') {\n return obj.name();\n }\n if (typeof obj.name === 'string') {\n return obj.name;\n }\n if (obj.name_) {\n return obj.name_;\n }\n if (obj.constructor && obj.constructor.name) {\n return obj.constructor.name;\n }\n return typeof obj;\n};\n\n/**\n * Returns whether or not an object has had the evented mixin applied.\n *\n * @param {Object} object\n * An object to test.\n *\n * @return {boolean}\n * Whether or not the object appears to be evented.\n */\nconst isEvented = object => object instanceof EventTarget$2 || !!object.eventBusEl_ && ['on', 'one', 'off', 'trigger'].every(k => typeof object[k] === 'function');\n\n/**\n * Adds a callback to run after the evented mixin applied.\n *\n * @param {Object} target\n * An object to Add\n * @param {Function} callback\n * The callback to run.\n */\nconst addEventedCallback = (target, callback) => {\n if (isEvented(target)) {\n callback();\n } else {\n if (!target.eventedCallbacks) {\n target.eventedCallbacks = [];\n }\n target.eventedCallbacks.push(callback);\n }\n};\n\n/**\n * Whether a value is a valid event type - non-empty string or array.\n *\n * @private\n * @param {string|Array} type\n * The type value to test.\n *\n * @return {boolean}\n * Whether or not the type is a valid event type.\n */\nconst isValidEventType = type =>\n// The regex here verifies that the `type` contains at least one non-\n// whitespace character.\ntypeof type === 'string' && /\\S/.test(type) || Array.isArray(type) && !!type.length;\n\n/**\n * Validates a value to determine if it is a valid event target. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the target does not appear to be a valid event target.\n *\n * @param {Object} target\n * The object to test.\n *\n * @param {Object} obj\n * The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\nconst validateTarget = (target, obj, fnName) => {\n if (!target || !target.nodeName && !isEvented(target)) {\n throw new Error(`Invalid target for ${objName(obj)}#${fnName}; must be a DOM node or evented object.`);\n }\n};\n\n/**\n * Validates a value to determine if it is a valid event target. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the type does not appear to be a valid event type.\n *\n * @param {string|Array} type\n * The type to test.\n *\n * @param {Object} obj\n* The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\nconst validateEventType = (type, obj, fnName) => {\n if (!isValidEventType(type)) {\n throw new Error(`Invalid event type for ${objName(obj)}#${fnName}; must be a non-empty string or array.`);\n }\n};\n\n/**\n * Validates a value to determine if it is a valid listener. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the listener is not a function.\n *\n * @param {Function} listener\n * The listener to test.\n *\n * @param {Object} obj\n * The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\nconst validateListener = (listener, obj, fnName) => {\n if (typeof listener !== 'function') {\n throw new Error(`Invalid listener for ${objName(obj)}#${fnName}; must be a function.`);\n }\n};\n\n/**\n * Takes an array of arguments given to `on()` or `one()`, validates them, and\n * normalizes them into an object.\n *\n * @private\n * @param {Object} self\n * The evented object on which `on()` or `one()` was called. This\n * object will be bound as the `this` value for the listener.\n *\n * @param {Array} args\n * An array of arguments passed to `on()` or `one()`.\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n *\n * @return {Object}\n * An object containing useful values for `on()` or `one()` calls.\n */\nconst normalizeListenArgs = (self, args, fnName) => {\n // If the number of arguments is less than 3, the target is always the\n // evented object itself.\n const isTargetingSelf = args.length < 3 || args[0] === self || args[0] === self.eventBusEl_;\n let target;\n let type;\n let listener;\n if (isTargetingSelf) {\n target = self.eventBusEl_;\n\n // Deal with cases where we got 3 arguments, but we are still listening to\n // the evented object itself.\n if (args.length >= 3) {\n args.shift();\n }\n [type, listener] = args;\n } else {\n // This was `[target, type, listener] = args;` but this block needs more than\n // one statement to produce minified output compatible with Chrome 53.\n // See https://github.com/videojs/video.js/pull/8810\n target = args[0];\n type = args[1];\n listener = args[2];\n }\n validateTarget(target, self, fnName);\n validateEventType(type, self, fnName);\n validateListener(listener, self, fnName);\n listener = bind_(self, listener);\n return {\n isTargetingSelf,\n target,\n type,\n listener\n };\n};\n\n/**\n * Adds the listener to the event type(s) on the target, normalizing for\n * the type of target.\n *\n * @private\n * @param {Element|Object} target\n * A DOM node or evented object.\n *\n * @param {string} method\n * The event binding method to use (\"on\" or \"one\").\n *\n * @param {string|Array} type\n * One or more event type(s).\n *\n * @param {Function} listener\n * A listener function.\n */\nconst listen = (target, method, type, listener) => {\n validateTarget(target, target, method);\n if (target.nodeName) {\n Events[method](target, type, listener);\n } else {\n target[method](type, listener);\n }\n};\n\n/**\n * Contains methods that provide event capabilities to an object which is passed\n * to {@link module:evented|evented}.\n *\n * @mixin EventedMixin\n */\nconst EventedMixin = {\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n on(...args) {\n const {\n isTargetingSelf,\n target,\n type,\n listener\n } = normalizeListenArgs(this, args, 'on');\n listen(target, 'on', type, listener);\n\n // If this object is listening to another evented object.\n if (!isTargetingSelf) {\n // If this object is disposed, remove the listener.\n const removeListenerOnDispose = () => this.off(target, type, listener);\n\n // Use the same function ID as the listener so we can remove it later it\n // using the ID of the original listener.\n removeListenerOnDispose.guid = listener.guid;\n\n // Add a listener to the target's dispose event as well. This ensures\n // that if the target is disposed BEFORE this object, we remove the\n // removal listener that was just added. Otherwise, we create a memory leak.\n const removeRemoverOnTargetDispose = () => this.off('dispose', removeListenerOnDispose);\n\n // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n removeRemoverOnTargetDispose.guid = listener.guid;\n listen(this, 'on', 'dispose', removeListenerOnDispose);\n listen(target, 'on', 'dispose', removeRemoverOnTargetDispose);\n }\n },\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object. The listener will be called once per event and then removed.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n one(...args) {\n const {\n isTargetingSelf,\n target,\n type,\n listener\n } = normalizeListenArgs(this, args, 'one');\n\n // Targeting this evented object.\n if (isTargetingSelf) {\n listen(target, 'one', type, listener);\n\n // Targeting another evented object.\n } else {\n // TODO: This wrapper is incorrect! It should only\n // remove the wrapper for the event type that called it.\n // Instead all listeners are removed on the first trigger!\n // see https://github.com/videojs/video.js/issues/5962\n const wrapper = (...largs) => {\n this.off(target, type, wrapper);\n listener.apply(null, largs);\n };\n\n // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n wrapper.guid = listener.guid;\n listen(target, 'one', type, wrapper);\n }\n },\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object. The listener will only be called once for the first event that is triggered\n * then removed.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n any(...args) {\n const {\n isTargetingSelf,\n target,\n type,\n listener\n } = normalizeListenArgs(this, args, 'any');\n\n // Targeting this evented object.\n if (isTargetingSelf) {\n listen(target, 'any', type, listener);\n\n // Targeting another evented object.\n } else {\n const wrapper = (...largs) => {\n this.off(target, type, wrapper);\n listener.apply(null, largs);\n };\n\n // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n wrapper.guid = listener.guid;\n listen(target, 'any', type, wrapper);\n }\n },\n /**\n * Removes listener(s) from event(s) on an evented object.\n *\n * @param {string|Array|Element|Object} [targetOrType]\n * If this is a string or array, it represents the event type(s).\n *\n * Another evented object can be passed here instead, in which case\n * ALL 3 arguments are _required_.\n *\n * @param {string|Array|Function} [typeOrListener]\n * If the first argument was a string or array, this may be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function; otherwise, _all_ listeners bound to the\n * event type(s) will be removed.\n */\n off(targetOrType, typeOrListener, listener) {\n // Targeting this evented object.\n if (!targetOrType || isValidEventType(targetOrType)) {\n off(this.eventBusEl_, targetOrType, typeOrListener);\n\n // Targeting another evented object.\n } else {\n const target = targetOrType;\n const type = typeOrListener;\n\n // Fail fast and in a meaningful way!\n validateTarget(target, this, 'off');\n validateEventType(type, this, 'off');\n validateListener(listener, this, 'off');\n\n // Ensure there's at least a guid, even if the function hasn't been used\n listener = bind_(this, listener);\n\n // Remove the dispose listener on this evented object, which was given\n // the same guid as the event listener in on().\n this.off('dispose', listener);\n if (target.nodeName) {\n off(target, type, listener);\n off(target, 'dispose', listener);\n } else if (isEvented(target)) {\n target.off(type, listener);\n target.off('dispose', listener);\n }\n }\n },\n /**\n * Fire an event on this evented object, causing its listeners to be called.\n *\n * @param {string|Object} event\n * An event type or an object with a type property.\n *\n * @param {Object} [hash]\n * An additional object to pass along to listeners.\n *\n * @return {boolean}\n * Whether or not the default behavior was prevented.\n */\n trigger(event, hash) {\n validateTarget(this.eventBusEl_, this, 'trigger');\n const type = event && typeof event !== 'string' ? event.type : event;\n if (!isValidEventType(type)) {\n throw new Error(`Invalid event type for ${objName(this)}#trigger; ` + 'must be a non-empty string or object with a type key that has a non-empty value.');\n }\n return trigger(this.eventBusEl_, event, hash);\n }\n};\n\n/**\n * Applies {@link module:evented~EventedMixin|EventedMixin} to a target object.\n *\n * @param {Object} target\n * The object to which to add event methods.\n *\n * @param {Object} [options={}]\n * Options for customizing the mixin behavior.\n *\n * @param {string} [options.eventBusKey]\n * By default, adds a `eventBusEl_` DOM element to the target object,\n * which is used as an event bus. If the target object already has a\n * DOM element that should be used, pass its key here.\n *\n * @return {Object}\n * The target object.\n */\nfunction evented(target, options = {}) {\n const {\n eventBusKey\n } = options;\n\n // Set or create the eventBusEl_.\n if (eventBusKey) {\n if (!target[eventBusKey].nodeName) {\n throw new Error(`The eventBusKey \"${eventBusKey}\" does not refer to an element.`);\n }\n target.eventBusEl_ = target[eventBusKey];\n } else {\n target.eventBusEl_ = createEl('span', {\n className: 'vjs-event-bus'\n });\n }\n Object.assign(target, EventedMixin);\n if (target.eventedCallbacks) {\n target.eventedCallbacks.forEach(callback => {\n callback();\n });\n }\n\n // When any evented object is disposed, it removes all its listeners.\n target.on('dispose', () => {\n target.off();\n [target, target.el_, target.eventBusEl_].forEach(function (val) {\n if (val && DomData.has(val)) {\n DomData.delete(val);\n }\n });\n window$1.setTimeout(() => {\n target.eventBusEl_ = null;\n }, 0);\n });\n return target;\n}\n\n/**\n * @file mixins/stateful.js\n * @module stateful\n */\n\n/**\n * Contains methods that provide statefulness to an object which is passed\n * to {@link module:stateful}.\n *\n * @mixin StatefulMixin\n */\nconst StatefulMixin = {\n /**\n * A hash containing arbitrary keys and values representing the state of\n * the object.\n *\n * @type {Object}\n */\n state: {},\n /**\n * Set the state of an object by mutating its\n * {@link module:stateful~StatefulMixin.state|state} object in place.\n *\n * @fires module:stateful~StatefulMixin#statechanged\n * @param {Object|Function} stateUpdates\n * A new set of properties to shallow-merge into the plugin state.\n * Can be a plain object or a function returning a plain object.\n *\n * @return {Object|undefined}\n * An object containing changes that occurred. If no changes\n * occurred, returns `undefined`.\n */\n setState(stateUpdates) {\n // Support providing the `stateUpdates` state as a function.\n if (typeof stateUpdates === 'function') {\n stateUpdates = stateUpdates();\n }\n let changes;\n each(stateUpdates, (value, key) => {\n // Record the change if the value is different from what's in the\n // current state.\n if (this.state[key] !== value) {\n changes = changes || {};\n changes[key] = {\n from: this.state[key],\n to: value\n };\n }\n this.state[key] = value;\n });\n\n // Only trigger \"statechange\" if there were changes AND we have a trigger\n // function. This allows us to not require that the target object be an\n // evented object.\n if (changes && isEvented(this)) {\n /**\n * An event triggered on an object that is both\n * {@link module:stateful|stateful} and {@link module:evented|evented}\n * indicating that its state has changed.\n *\n * @event module:stateful~StatefulMixin#statechanged\n * @type {Object}\n * @property {Object} changes\n * A hash containing the properties that were changed and\n * the values they were changed `from` and `to`.\n */\n this.trigger({\n changes,\n type: 'statechanged'\n });\n }\n return changes;\n }\n};\n\n/**\n * Applies {@link module:stateful~StatefulMixin|StatefulMixin} to a target\n * object.\n *\n * If the target object is {@link module:evented|evented} and has a\n * `handleStateChanged` method, that method will be automatically bound to the\n * `statechanged` event on itself.\n *\n * @param {Object} target\n * The object to be made stateful.\n *\n * @param {Object} [defaultState]\n * A default set of properties to populate the newly-stateful object's\n * `state` property.\n *\n * @return {Object}\n * Returns the `target`.\n */\nfunction stateful(target, defaultState) {\n Object.assign(target, StatefulMixin);\n\n // This happens after the mixing-in because we need to replace the `state`\n // added in that step.\n target.state = Object.assign({}, target.state, defaultState);\n\n // Auto-bind the `handleStateChanged` method of the target object if it exists.\n if (typeof target.handleStateChanged === 'function' && isEvented(target)) {\n target.on('statechanged', target.handleStateChanged);\n }\n return target;\n}\n\n/**\n * @file str.js\n * @module to-lower-case\n */\n\n/**\n * Lowercase the first letter of a string.\n *\n * @param {string} string\n * String to be lowercased\n *\n * @return {string}\n * The string with a lowercased first letter\n */\nconst toLowerCase = function (string) {\n if (typeof string !== 'string') {\n return string;\n }\n return string.replace(/./, w => w.toLowerCase());\n};\n\n/**\n * Uppercase the first letter of a string.\n *\n * @param {string} string\n * String to be uppercased\n *\n * @return {string}\n * The string with an uppercased first letter\n */\nconst toTitleCase$1 = function (string) {\n if (typeof string !== 'string') {\n return string;\n }\n return string.replace(/./, w => w.toUpperCase());\n};\n\n/**\n * Compares the TitleCase versions of the two strings for equality.\n *\n * @param {string} str1\n * The first string to compare\n *\n * @param {string} str2\n * The second string to compare\n *\n * @return {boolean}\n * Whether the TitleCase versions of the strings are equal\n */\nconst titleCaseEquals = function (str1, str2) {\n return toTitleCase$1(str1) === toTitleCase$1(str2);\n};\n\nvar Str = /*#__PURE__*/Object.freeze({\n __proto__: null,\n toLowerCase: toLowerCase,\n toTitleCase: toTitleCase$1,\n titleCaseEquals: titleCaseEquals\n});\n\n/**\n * Player Component - Base class for all UI objects\n *\n * @file component.js\n */\n\n/** @import Player from './player' */\n\n/**\n * A callback to be called if and when the component is ready.\n * `this` will be the Component instance.\n *\n * @callback ReadyCallback\n * @returns {void}\n */\n\n/**\n * Base class for all UI Components.\n * Components are UI objects which represent both a javascript object and an element\n * in the DOM. They can be children of other components, and can have\n * children themselves.\n *\n * Components can also use methods from {@link EventTarget}\n */\nclass Component$1 {\n /**\n * Creates an instance of this class.\n *\n * @param {Player} player\n * The `Player` that this class should be attached to.\n *\n * @param {Object} [options]\n * The key/value store of component options.\n *\n * @param {Object[]} [options.children]\n * An array of children objects to initialize this component with. Children objects have\n * a name property that will be used if more than one component of the same type needs to be\n * added.\n *\n * @param {string} [options.className]\n * A class or space separated list of classes to add the component\n *\n * @param {ReadyCallback} [ready]\n * Function that gets called when the `Component` is ready.\n */\n constructor(player, options, ready) {\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n this.isDisposed_ = false;\n\n // Hold the reference to the parent component via `addChild` method\n this.parentComponent_ = null;\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = merge$1({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = merge$1(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || options.el && options.el.id;\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n const id = player && player.id && player.id() || 'no_player';\n this.id_ = `${id}_component_${newGUID()}`;\n }\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n if (options.className && this.el_) {\n options.className.split(' ').forEach(c => this.addClass(c));\n }\n\n // Remove the placeholder event methods. If the component is evented, the\n // real methods are added next\n ['on', 'off', 'one', 'any', 'trigger'].forEach(fn => {\n this[fn] = undefined;\n });\n\n // if evented is anything except false, we want to mixin in evented\n if (options.evented !== false) {\n // Make this an evented object and use `el_`, if available, as its event bus\n evented(this, {\n eventBusKey: this.el_ ? 'el_' : null\n });\n this.handleLanguagechange = this.handleLanguagechange.bind(this);\n this.on(this.player_, 'languagechange', this.handleLanguagechange);\n }\n stateful(this, this.constructor.defaultState);\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n this.setTimeoutIds_ = new Set();\n this.setIntervalIds_ = new Set();\n this.rafIds_ = new Set();\n this.namedRafs_ = new Map();\n this.clearingTimersOnDispose_ = false;\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n // Don't want to trigger ready here or it will go before init is actually\n // finished for all children that run this constructor\n this.ready(ready);\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n // `on`, `off`, `one`, `any` and `trigger` are here so tsc includes them in definitions.\n // They are replaced or removed in the constructor\n\n /**\n * Adds an `event listener` to an instance of an `EventTarget`. An `event listener` is a\n * function that will get called when an event with a certain name gets triggered.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {Function} fn\n * The function to call with `EventTarget`s\n */\n\n /**\n * Removes an `event listener` for a specific event from an instance of `EventTarget`.\n * This makes it so that the `event listener` will no longer get called when the\n * named event happens.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {Function} [fn]\n * The function to remove. If not specified, all listeners managed by Video.js will be removed.\n */\n\n /**\n * This function will add an `event listener` that gets triggered only once. After the\n * first trigger it will get removed. This is like adding an `event listener`\n * with {@link EventTarget#on} that calls {@link EventTarget#off} on itself.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {Function} fn\n * The function to be called once for each event name.\n */\n\n /**\n * This function will add an `event listener` that gets triggered only once and is\n * removed from all events. This is like adding an array of `event listener`s\n * with {@link EventTarget#on} that calls {@link EventTarget#off} on all events the\n * first time it is triggered.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {Function} fn\n * The function to be called once for each event name.\n */\n\n /**\n * This function causes an event to happen. This will then cause any `event listeners`\n * that are waiting for that event, to get called. If there are no `event listeners`\n * for an event then nothing will happen.\n *\n * If the name of the `Event` that is being triggered is in `EventTarget.allowedEvents_`.\n * Trigger will also call the `on` + `uppercaseEventName` function.\n *\n * Example:\n * 'click' is in `EventTarget.allowedEvents_`, so, trigger will attempt to call\n * `onClick` if it exists.\n *\n * @param {string|Event|Object} event\n * The name of the event, an `Event`, or an object with a key of type set to\n * an event name.\n *\n * @param {Object} [hash]\n * Optionally extra argument to pass through to an event listener\n */\n\n /**\n * Dispose of the `Component` and all child components.\n *\n * @fires Component#dispose\n *\n * @param {Object} options\n * @param {Element} options.originalEl element with which to replace player element\n */\n dispose(options = {}) {\n // Bail out if the component has already been disposed.\n if (this.isDisposed_) {\n return;\n }\n if (this.readyQueue_) {\n this.readyQueue_.length = 0;\n }\n\n /**\n * Triggered when a `Component` is disposed.\n *\n * @event Component#dispose\n * @type {Event}\n *\n * @property {boolean} [bubbles=false]\n * set to false so that the dispose event does not\n * bubble up\n */\n this.trigger({\n type: 'dispose',\n bubbles: false\n });\n this.isDisposed_ = true;\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n this.parentComponent_ = null;\n if (this.el_) {\n // Remove element from DOM\n if (this.el_.parentNode) {\n if (options.restoreEl) {\n this.el_.parentNode.replaceChild(options.restoreEl, this.el_);\n } else {\n this.el_.parentNode.removeChild(this.el_);\n }\n }\n this.el_ = null;\n }\n\n // remove reference to the player after disposing of the element\n this.player_ = null;\n }\n\n /**\n * Determine whether or not this component has been disposed.\n *\n * @return {boolean}\n * If the component has been disposed, will be `true`. Otherwise, `false`.\n */\n isDisposed() {\n return Boolean(this.isDisposed_);\n }\n\n /**\n * Return the {@link Player} that the `Component` has attached to.\n *\n * @return {Player}\n * The player that this `Component` has attached to.\n */\n player() {\n return this.player_;\n }\n\n /**\n * Deep merge of options objects with new options.\n * > Note: When both `obj` and `options` contain properties whose values are objects.\n * The two properties get merged using {@link module:obj.merge}\n *\n * @param {Object} obj\n * The object that contains new options.\n *\n * @return {Object}\n * A new object of `this.options_` and `obj` merged together.\n */\n options(obj) {\n if (!obj) {\n return this.options_;\n }\n this.options_ = merge$1(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the `Component`s DOM element\n *\n * @return {Element}\n * The DOM element for this `Component`.\n */\n el() {\n return this.el_;\n }\n\n /**\n * Create the `Component`s DOM element.\n *\n * @param {string} [tagName]\n * Element's DOM node type. e.g. 'div'\n *\n * @param {Object} [properties]\n * An object of properties that should be set.\n *\n * @param {Object} [attributes]\n * An object of attributes that should be set.\n *\n * @return {Element}\n * The element that gets created.\n */\n createEl(tagName, properties, attributes) {\n return createEl(tagName, properties, attributes);\n }\n\n /**\n * Localize a string given the string in english.\n *\n * If tokens are provided, it'll try and run a simple token replacement on the provided string.\n * The tokens it looks for look like `{1}` with the index being 1-indexed into the tokens array.\n *\n * If a `defaultValue` is provided, it'll use that over `string`,\n * if a value isn't found in provided language files.\n * This is useful if you want to have a descriptive key for token replacement\n * but have a succinct localized string and not require `en.json` to be included.\n *\n * Currently, it is used for the progress bar timing.\n * ```js\n * {\n * \"progress bar timing: currentTime={1} duration={2}\": \"{1} of {2}\"\n * }\n * ```\n * It is then used like so:\n * ```js\n * this.localize('progress bar timing: currentTime={1} duration{2}',\n * [this.player_.currentTime(), this.player_.duration()],\n * '{1} of {2}');\n * ```\n *\n * Which outputs something like: `01:23 of 24:56`.\n *\n *\n * @param {string} string\n * The string to localize and the key to lookup in the language files.\n * @param {string[]} [tokens]\n * If the current item has token replacements, provide the tokens here.\n * @param {string} [defaultValue]\n * Defaults to `string`. Can be a default value to use for token replacement\n * if the lookup key is needed to be separate.\n *\n * @return {string}\n * The localized string or if no localization exists the english string.\n */\n localize(string, tokens, defaultValue = string) {\n const code = this.player_.language && this.player_.language();\n const languages = this.player_.languages && this.player_.languages();\n const language = languages && languages[code];\n const primaryCode = code && code.split('-')[0];\n const primaryLang = languages && languages[primaryCode];\n let localizedString = defaultValue;\n if (language && language[string]) {\n localizedString = language[string];\n } else if (primaryLang && primaryLang[string]) {\n localizedString = primaryLang[string];\n }\n if (tokens) {\n localizedString = localizedString.replace(/\\{(\\d+)\\}/g, function (match, index) {\n const value = tokens[index - 1];\n let ret = value;\n if (typeof value === 'undefined') {\n ret = match;\n }\n return ret;\n });\n }\n return localizedString;\n }\n\n /**\n * Handles language change for the player in components. Should be overridden by sub-components.\n *\n * @abstract\n */\n handleLanguagechange() {}\n\n /**\n * Return the `Component`s DOM element. This is where children get inserted.\n * This will usually be the the same as the element returned in {@link Component#el}.\n *\n * @return {Element}\n * The content element for this `Component`.\n */\n contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get this `Component`s ID\n *\n * @return {string}\n * The id of this `Component`\n */\n id() {\n return this.id_;\n }\n\n /**\n * Get the `Component`s name. The name gets used to reference the `Component`\n * and is set during registration.\n *\n * @return {string}\n * The name of this `Component`.\n */\n name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n *\n * @return {Array}\n * The children\n */\n children() {\n return this.children_;\n }\n\n /**\n * Returns the child `Component` with the given `id`.\n *\n * @param {string} id\n * The id of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The child `Component` with the given `id` or undefined.\n */\n getChildById(id) {\n return this.childIndex_[id];\n }\n\n /**\n * Returns the child `Component` with the given `name`.\n *\n * @param {string} name\n * The name of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The child `Component` with the given `name` or undefined.\n */\n getChild(name) {\n if (!name) {\n return;\n }\n return this.childNameIndex_[name];\n }\n\n /**\n * Returns the descendant `Component` following the givent\n * descendant `names`. For instance ['foo', 'bar', 'baz'] would\n * try to get 'foo' on the current component, 'bar' on the 'foo'\n * component and 'baz' on the 'bar' component and return undefined\n * if any of those don't exist.\n *\n * @param {...string[]|...string} names\n * The name of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The descendant `Component` following the given descendant\n * `names` or undefined.\n */\n getDescendant(...names) {\n // flatten array argument into the main array\n names = names.reduce((acc, n) => acc.concat(n), []);\n let currentChild = this;\n for (let i = 0; i < names.length; i++) {\n currentChild = currentChild.getChild(names[i]);\n if (!currentChild || !currentChild.getChild) {\n return;\n }\n }\n return currentChild;\n }\n\n /**\n * Adds an SVG icon element to another element or component.\n *\n * @param {string} iconName\n * The name of icon. A list of all the icon names can be found at 'sandbox/svg-icons.html'\n *\n * @param {Element} [el=this.el()]\n * Element to set the title on. Defaults to the current Component's element.\n *\n * @return {Element}\n * The newly created icon element.\n */\n setIcon(iconName, el = this.el()) {\n // TODO: In v9 of video.js, we will want to remove font icons entirely.\n // This means this check, as well as the others throughout the code, and\n // the unecessary CSS for font icons, will need to be removed.\n // See https://github.com/videojs/video.js/pull/8260 as to which components\n // need updating.\n if (!this.player_.options_.experimentalSvgIcons) {\n return;\n }\n const xmlnsURL = 'http://www.w3.org/2000/svg';\n\n // The below creates an element in the format of:\n // ....\n const iconContainer = createEl('span', {\n className: 'vjs-icon-placeholder vjs-svg-icon'\n }, {\n 'aria-hidden': 'true'\n });\n const svgEl = document$1.createElementNS(xmlnsURL, 'svg');\n svgEl.setAttributeNS(null, 'viewBox', '0 0 512 512');\n const useEl = document$1.createElementNS(xmlnsURL, 'use');\n svgEl.appendChild(useEl);\n useEl.setAttributeNS(null, 'href', `#vjs-icon-${iconName}`);\n iconContainer.appendChild(svgEl);\n\n // Replace a pre-existing icon if one exists.\n if (this.iconIsSet_) {\n el.replaceChild(iconContainer, el.querySelector('.vjs-icon-placeholder'));\n } else {\n el.appendChild(iconContainer);\n }\n this.iconIsSet_ = true;\n return iconContainer;\n }\n\n /**\n * Add a child `Component` inside the current `Component`.\n *\n * @param {string|Component} child\n * The name or instance of a child to add.\n *\n * @param {Object} [options={}]\n * The key/value store of options that will get passed to children of\n * the child.\n *\n * @param {number} [index=this.children_.length]\n * The index to attempt to add a child into.\n *\n *\n * @return {Component}\n * The `Component` that gets added as a child. When using a string the\n * `Component` will get created by this process.\n */\n addChild(child, options = {}, index = this.children_.length) {\n let component;\n let componentName;\n\n // If child is a string, create component with options\n if (typeof child === 'string') {\n componentName = toTitleCase$1(child);\n const componentClassName = options.componentClass || componentName;\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n const ComponentClass = Component$1.getComponent(componentClassName);\n if (!ComponentClass) {\n throw new Error(`Component ${componentClassName} does not exist`);\n }\n\n // data stored directly on the videojs object may be\n // misidentified as a component to retain\n // backwards-compatibility with 4.x. check to make sure the\n // component class can be instantiated.\n if (typeof ComponentClass !== 'function') {\n return null;\n }\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n if (component.parentComponent_) {\n component.parentComponent_.removeChild(component);\n }\n this.children_.splice(index, 0, component);\n component.parentComponent_ = this;\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || component.name && toTitleCase$1(component.name());\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n this.childNameIndex_[toLowerCase(componentName)] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n // If inserting before a component, insert before that component's element\n let refNode = null;\n if (this.children_[index + 1]) {\n // Most children are components, but the video tech is an HTML element\n if (this.children_[index + 1].el_) {\n refNode = this.children_[index + 1].el_;\n } else if (isEl(this.children_[index + 1])) {\n refNode = this.children_[index + 1];\n }\n }\n this.contentEl().insertBefore(component.el(), refNode);\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\n\n /**\n * Remove a child `Component` from this `Component`s list of children. Also removes\n * the child `Component`s element from this `Component`s element.\n *\n * @param {Component} component\n * The child `Component` to remove.\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n if (!component || !this.children_) {\n return;\n }\n let childFound = false;\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n if (!childFound) {\n return;\n }\n component.parentComponent_ = null;\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[toTitleCase$1(component.name())] = null;\n this.childNameIndex_[toLowerCase(component.name())] = null;\n const compEl = component.el();\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child `Component`s based upon options.\n */\n initChildren() {\n const children = this.options_.children;\n if (children) {\n // `this` is `parent`\n const parentOptions = this.options_;\n const handleAdd = child => {\n const name = child.name;\n let opts = child.opts;\n\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options\n // to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n const newChild = this.addChild(name, opts);\n if (newChild) {\n this[name] = newChild;\n }\n };\n\n // Allow for an array of children details to passed in the options\n let workingChildren;\n const Tech = Component$1.getComponent('Tech');\n if (Array.isArray(children)) {\n workingChildren = children;\n } else {\n workingChildren = Object.keys(children);\n }\n workingChildren\n // children that are in this.options_ but also in workingChildren would\n // give us extra children we do not want. So, we want to filter them out.\n .concat(Object.keys(this.options_).filter(function (child) {\n return !workingChildren.some(function (wchild) {\n if (typeof wchild === 'string') {\n return child === wchild;\n }\n return child === wchild.name;\n });\n })).map(child => {\n let name;\n let opts;\n if (typeof child === 'string') {\n name = child;\n opts = children[name] || this.options_[name] || {};\n } else {\n name = child.name;\n opts = child;\n }\n return {\n name,\n opts\n };\n }).filter(child => {\n // we have to make sure that child.name isn't in the techOrder since\n // techs are registered as Components but can't aren't compatible\n // See https://github.com/videojs/video.js/issues/2772\n const c = Component$1.getComponent(child.opts.componentClass || toTitleCase$1(child.name));\n return c && !Tech.isTech(c);\n }).forEach(handleAdd);\n }\n }\n\n /**\n * Builds the default DOM class name. Should be overridden by sub-components.\n *\n * @return {string}\n * The DOM class name for this object.\n *\n * @abstract\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {ReadyCallback} fn\n * Function that gets called when the `Component` is ready.\n */\n ready(fn, sync = false) {\n if (!fn) {\n return;\n }\n if (!this.isReady_) {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n return;\n }\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n }\n\n /**\n * Trigger all the ready listeners for this `Component`.\n *\n * @fires Component#ready\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggered asynchronously\n this.setTimeout(function () {\n const readyQueue = this.readyQueue_;\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function (fn) {\n fn.call(this);\n }, this);\n }\n\n // Allow for using event listeners also\n /**\n * Triggered when a `Component` is ready.\n *\n * @event Component#ready\n * @type {Event}\n */\n this.trigger('ready');\n }, 1);\n }\n\n /**\n * Find a single DOM element matching a `selector`. This can be within the `Component`s\n * `contentEl()` or another custom context.\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelector`.\n *\n * @param {Element|string} [context=this.contentEl()]\n * A DOM element within which to query. Can also be a selector string in\n * which case the first matching element will get used as context. If\n * missing `this.contentEl()` gets used. If `this.contentEl()` returns\n * nothing it falls back to `document`.\n *\n * @return {Element|null}\n * the dom element that was found, or null\n *\n * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)\n */\n $(selector, context) {\n return $(selector, context || this.contentEl());\n }\n\n /**\n * Finds all DOM element matching a `selector`. This can be within the `Component`s\n * `contentEl()` or another custom context.\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelectorAll`.\n *\n * @param {Element|string} [context=this.contentEl()]\n * A DOM element within which to query. Can also be a selector string in\n * which case the first matching element will get used as context. If\n * missing `this.contentEl()` gets used. If `this.contentEl()` returns\n * nothing it falls back to `document`.\n *\n * @return {NodeList}\n * a list of dom elements that were found\n *\n * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)\n */\n $$(selector, context) {\n return $$(selector, context || this.contentEl());\n }\n\n /**\n * Check if a component's element has a CSS class name.\n *\n * @param {string} classToCheck\n * CSS class name to check.\n *\n * @return {boolean}\n * - True if the `Component` has the class.\n * - False if the `Component` does not have the class`\n */\n hasClass(classToCheck) {\n return hasClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the `Component`s element.\n *\n * @param {...string} classesToAdd\n * One or more CSS class name to add.\n */\n addClass(...classesToAdd) {\n addClass(this.el_, ...classesToAdd);\n }\n\n /**\n * Remove a CSS class name from the `Component`s element.\n *\n * @param {...string} classesToRemove\n * One or more CSS class name to remove.\n */\n removeClass(...classesToRemove) {\n removeClass(this.el_, ...classesToRemove);\n }\n\n /**\n * Add or remove a CSS class name from the component's element.\n * - `classToToggle` gets added when {@link Component#hasClass} would return false.\n * - `classToToggle` gets removed when {@link Component#hasClass} would return true.\n *\n * @param {string} classToToggle\n * The class to add or remove. Passed to DOMTokenList's toggle()\n *\n * @param {boolean|Dom.PredicateCallback} [predicate]\n * A boolean or function that returns a boolean. Passed to DOMTokenList's toggle().\n */\n toggleClass(classToToggle, predicate) {\n toggleClass(this.el_, classToToggle, predicate);\n }\n\n /**\n * Show the `Component`s element if it is hidden by removing the\n * 'vjs-hidden' class name from it.\n */\n show() {\n this.removeClass('vjs-hidden');\n }\n\n /**\n * Hide the `Component`s element if it is currently showing by adding the\n * 'vjs-hidden` class name to it.\n */\n hide() {\n this.addClass('vjs-hidden');\n }\n\n /**\n * Lock a `Component`s element in its visible state by adding the 'vjs-lock-showing'\n * class name to it. Used during fadeIn/fadeOut.\n *\n * @private\n */\n lockShowing() {\n this.addClass('vjs-lock-showing');\n }\n\n /**\n * Unlock a `Component`s element from its visible state by removing the 'vjs-lock-showing'\n * class name from it. Used during fadeIn/fadeOut.\n *\n * @private\n */\n unlockShowing() {\n this.removeClass('vjs-lock-showing');\n }\n\n /**\n * Get the value of an attribute on the `Component`s element.\n *\n * @param {string} attribute\n * Name of the attribute to get the value from.\n *\n * @return {string|null}\n * - The value of the attribute that was asked for.\n * - Can be an empty string on some browsers if the attribute does not exist\n * or has no value\n * - Most browsers will return null if the attribute does not exist or has\n * no value.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute}\n */\n getAttribute(attribute) {\n return getAttribute(this.el_, attribute);\n }\n\n /**\n * Set the value of an attribute on the `Component`'s element\n *\n * @param {string} attribute\n * Name of the attribute to set.\n *\n * @param {string} value\n * Value to set the attribute to.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute}\n */\n setAttribute(attribute, value) {\n setAttribute(this.el_, attribute, value);\n }\n\n /**\n * Remove an attribute from the `Component`s element.\n *\n * @param {string} attribute\n * Name of the attribute to remove.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute}\n */\n removeAttribute(attribute) {\n removeAttribute(this.el_, attribute);\n }\n\n /**\n * Get or set the width of the component based upon the CSS styles.\n * See {@link Component#dimension} for more detailed information.\n *\n * @param {number|string} [num]\n * The width that you want to set postfixed with '%', 'px' or nothing.\n *\n * @param {boolean} [skipListeners]\n * Skip the componentresize event trigger\n *\n * @return {number|undefined}\n * The width when getting, zero if there is no width\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n\n /**\n * Get or set the height of the component based upon the CSS styles.\n * See {@link Component#dimension} for more detailed information.\n *\n * @param {number|string} [num]\n * The height that you want to set postfixed with '%', 'px' or nothing.\n *\n * @param {boolean} [skipListeners]\n * Skip the componentresize event trigger\n *\n * @return {number|undefined}\n * The height when getting, zero if there is no height\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n\n /**\n * Set both the width and height of the `Component` element at the same time.\n *\n * @param {number|string} width\n * Width to set the `Component`s element to.\n *\n * @param {number|string} height\n * Height to set the `Component`s element to.\n */\n dimensions(width, height) {\n // Skip componentresize listeners on width for optimization\n this.width(width, true);\n this.height(height);\n }\n\n /**\n * Get or set width or height of the `Component` element. This is the shared code\n * for the {@link Component#width} and {@link Component#height}.\n *\n * Things to know:\n * - If the width or height in an number this will return the number postfixed with 'px'.\n * - If the width/height is a percent this will return the percent postfixed with '%'\n * - Hidden elements have a width of 0 with `window.getComputedStyle`. This function\n * defaults to the `Component`s `style.width` and falls back to `window.getComputedStyle`.\n * See [this]{@link http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/}\n * for more information\n * - If you want the computed style of the component, use {@link Component#currentWidth}\n * and {@link {Component#currentHeight}\n *\n * @fires Component#componentresize\n *\n * @param {string} widthOrHeight\n 8 'width' or 'height'\n *\n * @param {number|string} [num]\n 8 New dimension\n *\n * @param {boolean} [skipListeners]\n * Skip componentresize event trigger\n *\n * @return {number|undefined}\n * The dimension when getting or 0 if unset\n */\n dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n /**\n * Triggered when a component is resized.\n *\n * @event Component#componentresize\n * @type {Event}\n */\n this.trigger('componentresize');\n }\n return;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n const val = this.el_.style[widthOrHeight];\n const pxIndex = val.indexOf('px');\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + toTitleCase$1(widthOrHeight)], 10);\n }\n\n /**\n * Get the computed width or the height of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @param {string} widthOrHeight\n * A string containing 'width' or 'height'. Whichever one you want to get.\n *\n * @return {number}\n * The dimension that gets asked for or 0 if nothing was set\n * for that dimension.\n */\n currentDimension(widthOrHeight) {\n let computedWidthOrHeight = 0;\n if (widthOrHeight !== 'width' && widthOrHeight !== 'height') {\n throw new Error('currentDimension only accepts width or height value');\n }\n computedWidthOrHeight = computedStyle(this.el_, widthOrHeight);\n\n // remove 'px' from variable and parse as integer\n computedWidthOrHeight = parseFloat(computedWidthOrHeight);\n\n // if the computed value is still 0, it's possible that the browser is lying\n // and we want to check the offset values.\n // This code also runs wherever getComputedStyle doesn't exist.\n if (computedWidthOrHeight === 0 || isNaN(computedWidthOrHeight)) {\n const rule = `offset${toTitleCase$1(widthOrHeight)}`;\n computedWidthOrHeight = this.el_[rule];\n }\n return computedWidthOrHeight;\n }\n\n /**\n * An object that contains width and height values of the `Component`s\n * computed style. Uses `window.getComputedStyle`.\n *\n * @typedef {Object} Component~DimensionObject\n *\n * @property {number} width\n * The width of the `Component`s computed style.\n *\n * @property {number} height\n * The height of the `Component`s computed style.\n */\n\n /**\n * Get an object that contains computed width and height values of the\n * component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {Component~DimensionObject}\n * The computed dimensions of the component's element.\n */\n currentDimensions() {\n return {\n width: this.currentDimension('width'),\n height: this.currentDimension('height')\n };\n }\n\n /**\n * Get the computed width of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {number}\n * The computed width of the component's element.\n */\n currentWidth() {\n return this.currentDimension('width');\n }\n\n /**\n * Get the computed height of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {number}\n * The computed height of the component's element.\n */\n currentHeight() {\n return this.currentDimension('height');\n }\n\n /**\n * Retrieves the position and size information of the component's element.\n *\n * @return {Object} An object with `boundingClientRect` and `center` properties.\n * - `boundingClientRect`: An object with properties `x`, `y`, `width`,\n * `height`, `top`, `right`, `bottom`, and `left`, representing\n * the bounding rectangle of the element.\n * - `center`: An object with properties `x` and `y`, representing\n * the center point of the element. `width` and `height` are set to 0.\n */\n getPositions() {\n const rect = this.el_.getBoundingClientRect();\n\n // Creating objects that mirror DOMRectReadOnly for boundingClientRect and center\n const boundingClientRect = {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left\n };\n\n // Calculating the center position\n const center = {\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2,\n width: 0,\n height: 0,\n top: rect.top + rect.height / 2,\n right: rect.left + rect.width / 2,\n bottom: rect.top + rect.height / 2,\n left: rect.left + rect.width / 2\n };\n return {\n boundingClientRect,\n center\n };\n }\n\n /**\n * Set the focus to this component\n */\n focus() {\n this.el_.focus();\n }\n\n /**\n * Remove the focus from this component\n */\n blur() {\n this.el_.blur();\n }\n\n /**\n * When this Component receives a `keydown` event which it does not process,\n * it passes the event to the Player for handling.\n *\n * @param {KeyboardEvent} event\n * The `keydown` event that caused this function to be called.\n */\n handleKeyDown(event) {\n if (this.player_) {\n // We only stop propagation here because we want unhandled events to fall\n // back to the browser. Exclude Tab for focus trapping, exclude also when spatialNavigation is enabled.\n if (event.key !== 'Tab' && !(this.player_.options_.playerOptions.spatialNavigation && this.player_.options_.playerOptions.spatialNavigation.enabled)) {\n event.stopPropagation();\n }\n this.player_.handleKeyDown(event);\n }\n }\n\n /**\n * Many components used to have a `handleKeyPress` method, which was poorly\n * named because it listened to a `keydown` event. This method name now\n * delegates to `handleKeyDown`. This means anyone calling `handleKeyPress`\n * will not see their method calls stop working.\n *\n * @param {KeyboardEvent} event\n * The event that caused this function to be called.\n */\n handleKeyPress(event) {\n this.handleKeyDown(event);\n }\n\n /**\n * Emit a 'tap' events when touch event support gets detected. This gets used to\n * support toggling the controls through a tap on the video. They get enabled\n * because every sub-component would have extra overhead otherwise.\n *\n * @protected\n * @fires Component#tap\n * @listens Component#touchstart\n * @listens Component#touchmove\n * @listens Component#touchleave\n * @listens Component#touchcancel\n * @listens Component#touchend\n */\n emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15,\n // so 10 seems like a nice, round number.\n const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n let couldBeTap;\n this.on('touchstart', function (event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy pageX/pageY from the object\n firstTouch = {\n pageX: event.touches[0].pageX,\n pageY: event.touches[0].pageY\n };\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = window$1.performance.now();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n this.on('touchmove', function (event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n const noTap = function () {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function (event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = window$1.performance.now() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n /**\n * Triggered when a `Component` is tapped.\n *\n * @event Component#tap\n * @type {MouseEvent}\n */\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n\n /**\n * This function reports user activity whenever touch events happen. This can get\n * turned off by any sub-components that wants touch events to act another way.\n *\n * Report user touch activity when touch events occur. User activity gets used to\n * determine when controls should show/hide. It is simple when it comes to mouse\n * events, because any mouse event should show the controls. So we capture mouse\n * events that bubble up to the player and report activity when that happens.\n * With touch events it isn't as easy as `touchstart` and `touchend` toggle player\n * controls. So touch events can't help us at the player level either.\n *\n * User activity gets checked asynchronously. So what could happen is a tap event\n * on the video turns the controls off. Then the `touchend` event bubbles up to\n * the player. Which, if it reported user activity, would turn the controls right\n * back on. We also don't want to completely block touch events from bubbling up.\n * Furthermore a `touchmove` event and anything other than a tap, should not turn\n * controls back on.\n *\n * @listens Component#touchstart\n * @listens Component#touchmove\n * @listens Component#touchend\n * @listens Component#touchcancel\n */\n enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n const report = bind_(this.player(), this.player().reportUserActivity);\n let touchHolding;\n this.on('touchstart', function () {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n const touchEnd = function (event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n\n /**\n * A callback that has no parameters and is bound into `Component`s context.\n *\n * @callback Component~GenericCallback\n * @this Component\n */\n\n /**\n * Creates a function that runs after an `x` millisecond timeout. This function is a\n * wrapper around `window.setTimeout`. There are a few reasons to use this one\n * instead though:\n * 1. It gets cleared via {@link Component#clearTimeout} when\n * {@link Component#dispose} gets called.\n * 2. The function callback will gets turned into a {@link Component~GenericCallback}\n *\n * > Note: You can't use `window.clearTimeout` on the id returned by this function. This\n * will cause its dispose listener not to get cleaned up! Please use\n * {@link Component#clearTimeout} or {@link Component#dispose} instead.\n *\n * @param {Component~GenericCallback} fn\n * The function that will be run after `timeout`.\n *\n * @param {number} timeout\n * Timeout in milliseconds to delay before executing the specified function.\n *\n * @return {number}\n * Returns a timeout ID that gets used to identify the timeout. It can also\n * get used in {@link Component#clearTimeout} to clear the timeout that\n * was set.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout}\n */\n setTimeout(fn, timeout) {\n // declare as variables so they are properly available in timeout function\n // eslint-disable-next-line\n var timeoutId;\n fn = bind_(this, fn);\n this.clearTimersOnDispose_();\n timeoutId = window$1.setTimeout(() => {\n if (this.setTimeoutIds_.has(timeoutId)) {\n this.setTimeoutIds_.delete(timeoutId);\n }\n fn();\n }, timeout);\n this.setTimeoutIds_.add(timeoutId);\n return timeoutId;\n }\n\n /**\n * Clears a timeout that gets created via `window.setTimeout` or\n * {@link Component#setTimeout}. If you set a timeout via {@link Component#setTimeout}\n * use this function instead of `window.clearTimout`. If you don't your dispose\n * listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} timeoutId\n * The id of the timeout to clear. The return value of\n * {@link Component#setTimeout} or `window.setTimeout`.\n *\n * @return {number}\n * Returns the timeout id that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearTimeout}\n */\n clearTimeout(timeoutId) {\n if (this.setTimeoutIds_.has(timeoutId)) {\n this.setTimeoutIds_.delete(timeoutId);\n window$1.clearTimeout(timeoutId);\n }\n return timeoutId;\n }\n\n /**\n * Creates a function that gets run every `x` milliseconds. This function is a wrapper\n * around `window.setInterval`. There are a few reasons to use this one instead though.\n * 1. It gets cleared via {@link Component#clearInterval} when\n * {@link Component#dispose} gets called.\n * 2. The function callback will be a {@link Component~GenericCallback}\n *\n * @param {Component~GenericCallback} fn\n * The function to run every `x` seconds.\n *\n * @param {number} interval\n * Execute the specified function every `x` milliseconds.\n *\n * @return {number}\n * Returns an id that can be used to identify the interval. It can also be be used in\n * {@link Component#clearInterval} to clear the interval.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval}\n */\n setInterval(fn, interval) {\n fn = bind_(this, fn);\n this.clearTimersOnDispose_();\n const intervalId = window$1.setInterval(fn, interval);\n this.setIntervalIds_.add(intervalId);\n return intervalId;\n }\n\n /**\n * Clears an interval that gets created via `window.setInterval` or\n * {@link Component#setInterval}. If you set an interval via {@link Component#setInterval}\n * use this function instead of `window.clearInterval`. If you don't your dispose\n * listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} intervalId\n * The id of the interval to clear. The return value of\n * {@link Component#setInterval} or `window.setInterval`.\n *\n * @return {number}\n * Returns the interval id that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval}\n */\n clearInterval(intervalId) {\n if (this.setIntervalIds_.has(intervalId)) {\n this.setIntervalIds_.delete(intervalId);\n window$1.clearInterval(intervalId);\n }\n return intervalId;\n }\n\n /**\n * Queues up a callback to be passed to requestAnimationFrame (rAF), but\n * with a few extra bonuses:\n *\n * - Supports browsers that do not support rAF by falling back to\n * {@link Component#setTimeout}.\n *\n * - The callback is turned into a {@link Component~GenericCallback} (i.e.\n * bound to the component).\n *\n * - Automatic cancellation of the rAF callback is handled if the component\n * is disposed before it is called.\n *\n * @param {Component~GenericCallback} fn\n * A function that will be bound to this component and executed just\n * before the browser's next repaint.\n *\n * @return {number}\n * Returns an rAF ID that gets used to identify the timeout. It can\n * also be used in {@link Component#cancelAnimationFrame} to cancel\n * the animation frame callback.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame}\n */\n requestAnimationFrame(fn) {\n this.clearTimersOnDispose_();\n\n // declare as variables so they are properly available in rAF function\n // eslint-disable-next-line\n var id;\n fn = bind_(this, fn);\n id = window$1.requestAnimationFrame(() => {\n if (this.rafIds_.has(id)) {\n this.rafIds_.delete(id);\n }\n fn();\n });\n this.rafIds_.add(id);\n return id;\n }\n\n /**\n * Request an animation frame, but only one named animation\n * frame will be queued. Another will never be added until\n * the previous one finishes.\n *\n * @param {string} name\n * The name to give this requestAnimationFrame\n *\n * @param {Component~GenericCallback} fn\n * A function that will be bound to this component and executed just\n * before the browser's next repaint.\n */\n requestNamedAnimationFrame(name, fn) {\n if (this.namedRafs_.has(name)) {\n this.cancelNamedAnimationFrame(name);\n }\n this.clearTimersOnDispose_();\n fn = bind_(this, fn);\n const id = this.requestAnimationFrame(() => {\n fn();\n if (this.namedRafs_.has(name)) {\n this.namedRafs_.delete(name);\n }\n });\n this.namedRafs_.set(name, id);\n return name;\n }\n\n /**\n * Cancels a current named animation frame if it exists.\n *\n * @param {string} name\n * The name of the requestAnimationFrame to cancel.\n */\n cancelNamedAnimationFrame(name) {\n if (!this.namedRafs_.has(name)) {\n return;\n }\n this.cancelAnimationFrame(this.namedRafs_.get(name));\n this.namedRafs_.delete(name);\n }\n\n /**\n * Cancels a queued callback passed to {@link Component#requestAnimationFrame}\n * (rAF).\n *\n * If you queue an rAF callback via {@link Component#requestAnimationFrame},\n * use this function instead of `window.cancelAnimationFrame`. If you don't,\n * your dispose listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} id\n * The rAF ID to clear. The return value of {@link Component#requestAnimationFrame}.\n *\n * @return {number}\n * Returns the rAF ID that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/cancelAnimationFrame}\n */\n cancelAnimationFrame(id) {\n if (this.rafIds_.has(id)) {\n this.rafIds_.delete(id);\n window$1.cancelAnimationFrame(id);\n }\n return id;\n }\n\n /**\n * A function to setup `requestAnimationFrame`, `setTimeout`,\n * and `setInterval`, clearing on dispose.\n *\n * > Previously each timer added and removed dispose listeners on it's own.\n * For better performance it was decided to batch them all, and use `Set`s\n * to track outstanding timer ids.\n *\n * @private\n */\n clearTimersOnDispose_() {\n if (this.clearingTimersOnDispose_) {\n return;\n }\n this.clearingTimersOnDispose_ = true;\n this.one('dispose', () => {\n [['namedRafs_', 'cancelNamedAnimationFrame'], ['rafIds_', 'cancelAnimationFrame'], ['setTimeoutIds_', 'clearTimeout'], ['setIntervalIds_', 'clearInterval']].forEach(([idName, cancelName]) => {\n // for a `Set` key will actually be the value again\n // so forEach((val, val) =>` but for maps we want to use\n // the key.\n this[idName].forEach((val, key) => this[cancelName](key));\n });\n this.clearingTimersOnDispose_ = false;\n });\n }\n\n /**\n * Decide whether an element is actually disabled or not.\n *\n * @function isActuallyDisabled\n * @param element {Node}\n * @return {boolean}\n *\n * @see {@link https://html.spec.whatwg.org/multipage/semantics-other.html#concept-element-disabled}\n */\n getIsDisabled() {\n return Boolean(this.el_.disabled);\n }\n\n /**\n * Decide whether the element is expressly inert or not.\n *\n * @see {@link https://html.spec.whatwg.org/multipage/interaction.html#expressly-inert}\n * @function isExpresslyInert\n * @param element {Node}\n * @return {boolean}\n */\n getIsExpresslyInert() {\n return this.el_.inert && !this.el_.ownerDocument.documentElement.inert;\n }\n\n /**\n * Determine whether or not this component can be considered as focusable component.\n *\n * @param {HTMLElement} el - The HTML element representing the component.\n * @return {boolean}\n * If the component can be focused, will be `true`. Otherwise, `false`.\n */\n getIsFocusable(el) {\n const element = el || this.el_;\n return element.tabIndex >= 0 && !(this.getIsDisabled() || this.getIsExpresslyInert());\n }\n\n /**\n * Determine whether or not this component is currently visible/enabled/etc...\n *\n * @param {HTMLElement} el - The HTML element representing the component.\n * @return {boolean}\n * If the component can is currently visible & enabled, will be `true`. Otherwise, `false`.\n */\n getIsAvailableToBeFocused(el) {\n /**\n * Decide the style property of this element is specified whether it's visible or not.\n *\n * @function isVisibleStyleProperty\n * @param element {CSSStyleDeclaration}\n * @return {boolean}\n */\n function isVisibleStyleProperty(element) {\n const elementStyle = window$1.getComputedStyle(element, null);\n const thisVisibility = elementStyle.getPropertyValue('visibility');\n const thisDisplay = elementStyle.getPropertyValue('display');\n const invisibleStyle = ['hidden', 'collapse'];\n return thisDisplay !== 'none' && !invisibleStyle.includes(thisVisibility);\n }\n\n /**\n * Decide whether the element is being rendered or not.\n * 1. If an element has the style as \"visibility: hidden | collapse\" or \"display: none\", it is not being rendered.\n * 2. If an element has the style as \"opacity: 0\", it is not being rendered.(that is, invisible).\n * 3. If width and height of an element are explicitly set to 0, it is not being rendered.\n * 4. If a parent element is hidden, an element itself is not being rendered.\n * (CSS visibility property and display property are inherited.)\n *\n * @see {@link https://html.spec.whatwg.org/multipage/rendering.html#being-rendered}\n * @function isBeingRendered\n * @param element {Node}\n * @return {boolean}\n */\n function isBeingRendered(element) {\n if (!isVisibleStyleProperty(element.parentElement)) {\n return false;\n }\n if (!isVisibleStyleProperty(element) || element.style.opacity === '0' || window$1.getComputedStyle(element).height === '0px' || window$1.getComputedStyle(element).width === '0px') {\n return false;\n }\n return true;\n }\n\n /**\n * Determine if the element is visible for the user or not.\n * 1. If an element sum of its offsetWidth, offsetHeight, height and width is less than 1 is not visible.\n * 2. If elementCenter.x is less than is not visible.\n * 3. If elementCenter.x is more than the document's width is not visible.\n * 4. If elementCenter.y is less than 0 is not visible.\n * 5. If elementCenter.y is the document's height is not visible.\n *\n * @function isVisible\n * @param element {Node}\n * @return {boolean}\n */\n function isVisible(element) {\n if (element.offsetWidth + element.offsetHeight + element.getBoundingClientRect().height + element.getBoundingClientRect().width === 0) {\n return false;\n }\n\n // Define elementCenter object with props of x and y\n // x: Left position relative to the viewport plus element's width (no margin) divided between 2.\n // y: Top position relative to the viewport plus element's height (no margin) divided between 2.\n const elementCenter = {\n x: element.getBoundingClientRect().left + element.offsetWidth / 2,\n y: element.getBoundingClientRect().top + element.offsetHeight / 2\n };\n if (elementCenter.x < 0) {\n return false;\n }\n if (elementCenter.x > (document$1.documentElement.clientWidth || window$1.innerWidth)) {\n return false;\n }\n if (elementCenter.y < 0) {\n return false;\n }\n if (elementCenter.y > (document$1.documentElement.clientHeight || window$1.innerHeight)) {\n return false;\n }\n let pointContainer = document$1.elementFromPoint(elementCenter.x, elementCenter.y);\n while (pointContainer) {\n if (pointContainer === element) {\n return true;\n }\n if (pointContainer.parentNode) {\n pointContainer = pointContainer.parentNode;\n } else {\n return false;\n }\n }\n }\n\n // If no DOM element was passed as argument use this component's element.\n if (!el) {\n el = this.el();\n }\n\n // If element is visible, is being rendered & either does not have a parent element or its tabIndex is not negative.\n if (isVisible(el) && isBeingRendered(el) && (!el.parentElement || el.tabIndex >= 0)) {\n return true;\n }\n return false;\n }\n\n /**\n * Register a `Component` with `videojs` given the name and the component.\n *\n * > NOTE: {@link Tech}s should not be registered as a `Component`. {@link Tech}s\n * should be registered using {@link Tech.registerTech} or\n * {@link videojs:videojs.registerTech}.\n *\n * > NOTE: This function can also be seen on videojs as\n * {@link videojs:videojs.registerComponent}.\n *\n * @param {string} name\n * The name of the `Component` to register.\n *\n * @param {Component} ComponentToRegister\n * The `Component` class to register.\n *\n * @return {Component}\n * The `Component` that was registered.\n */\n static registerComponent(name, ComponentToRegister) {\n if (typeof name !== 'string' || !name) {\n throw new Error(`Illegal component name, \"${name}\"; must be a non-empty string.`);\n }\n const Tech = Component$1.getComponent('Tech');\n\n // We need to make sure this check is only done if Tech has been registered.\n const isTech = Tech && Tech.isTech(ComponentToRegister);\n const isComp = Component$1 === ComponentToRegister || Component$1.prototype.isPrototypeOf(ComponentToRegister.prototype);\n if (isTech || !isComp) {\n let reason;\n if (isTech) {\n reason = 'techs must be registered using Tech.registerTech()';\n } else {\n reason = 'must be a Component subclass';\n }\n throw new Error(`Illegal component, \"${name}\"; ${reason}.`);\n }\n name = toTitleCase$1(name);\n if (!Component$1.components_) {\n Component$1.components_ = {};\n }\n const Player = Component$1.getComponent('Player');\n if (name === 'Player' && Player && Player.players) {\n const players = Player.players;\n const playerNames = Object.keys(players);\n\n // If we have players that were disposed, then their name will still be\n // in Players.players. So, we must loop through and verify that the value\n // for each item is not null. This allows registration of the Player component\n // after all players have been disposed or before any were created.\n if (players && playerNames.length > 0 && playerNames.map(pname => players[pname]).every(Boolean)) {\n throw new Error('Can not register Player component after player has been created.');\n }\n }\n Component$1.components_[name] = ComponentToRegister;\n Component$1.components_[toLowerCase(name)] = ComponentToRegister;\n return ComponentToRegister;\n }\n\n /**\n * Get a `Component` based on the name it was registered with.\n *\n * @param {string} name\n * The Name of the component to get.\n *\n * @return {typeof Component}\n * The `Component` that got registered under the given name.\n */\n static getComponent(name) {\n if (!name || !Component$1.components_) {\n return;\n }\n return Component$1.components_[name];\n }\n}\nComponent$1.registerComponent('Component', Component$1);\n\n/**\n * @file time.js\n * @module time\n */\n\n/**\n * Returns the time for the specified index at the start or end\n * of a TimeRange object.\n *\n * @typedef {Function} TimeRangeIndex\n *\n * @param {number} [index=0]\n * The range number to return the time for.\n *\n * @return {number}\n * The time offset at the specified index.\n *\n * @deprecated The index argument must be provided.\n * In the future, leaving it out will throw an error.\n */\n\n/**\n * An object that contains ranges of time, which mimics {@link TimeRanges}.\n *\n * @typedef {Object} TimeRange\n *\n * @property {number} length\n * The number of time ranges represented by this object.\n *\n * @property {module:time~TimeRangeIndex} start\n * Returns the time offset at which a specified time range begins.\n *\n * @property {module:time~TimeRangeIndex} end\n * Returns the time offset at which a specified time range ends.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges\n */\n\n/**\n * Check if any of the time ranges are over the maximum index.\n *\n * @private\n * @param {string} fnName\n * The function name to use for logging\n *\n * @param {number} index\n * The index to check\n *\n * @param {number} maxIndex\n * The maximum possible index\n *\n * @throws {Error} if the timeRanges provided are over the maxIndex\n */\nfunction rangeCheck(fnName, index, maxIndex) {\n if (typeof index !== 'number' || index < 0 || index > maxIndex) {\n throw new Error(`Failed to execute '${fnName}' on 'TimeRanges': The index provided (${index}) is non-numeric or out of bounds (0-${maxIndex}).`);\n }\n}\n\n/**\n * Get the time for the specified index at the start or end\n * of a TimeRange object.\n *\n * @private\n * @param {string} fnName\n * The function name to use for logging\n *\n * @param {string} valueIndex\n * The property that should be used to get the time. should be\n * 'start' or 'end'\n *\n * @param {Array} ranges\n * An array of time ranges\n *\n * @param {Array} [rangeIndex=0]\n * The index to start the search at\n *\n * @return {number}\n * The time that offset at the specified index.\n *\n * @deprecated rangeIndex must be set to a value, in the future this will throw an error.\n * @throws {Error} if rangeIndex is more than the length of ranges\n */\nfunction getRange(fnName, valueIndex, ranges, rangeIndex) {\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n\n/**\n * Create a time range object given ranges of time.\n *\n * @private\n * @param {Array} [ranges]\n * An array of time ranges.\n *\n * @return {TimeRange}\n */\nfunction createTimeRangesObj(ranges) {\n let timeRangesObj;\n if (ranges === undefined || ranges.length === 0) {\n timeRangesObj = {\n length: 0,\n start() {\n throw new Error('This TimeRanges object is empty');\n },\n end() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n } else {\n timeRangesObj = {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n }\n if (window$1.Symbol && window$1.Symbol.iterator) {\n timeRangesObj[window$1.Symbol.iterator] = () => (ranges || []).values();\n }\n return timeRangesObj;\n}\n\n/**\n * Create a `TimeRange` object which mimics an\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges|HTML5 TimeRanges instance}.\n *\n * @param {number|Array[]} start\n * The start of a single range (a number) or an array of ranges (an\n * array of arrays of two numbers each).\n *\n * @param {number} end\n * The end of a single range. Cannot be used with the array form of\n * the `start` argument.\n *\n * @return {TimeRange}\n */\nfunction createTimeRanges$1(start, end) {\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS. Supplying a guide (in\n * seconds) will force a number of leading zeros to cover the length of the\n * guide.\n *\n * @private\n * @param {number} seconds\n * Number of seconds to be turned into a string\n *\n * @param {number} guide\n * Number (in seconds) to model the string after\n *\n * @return {string}\n * Time formatted as H:MM:SS or M:SS\n */\nconst defaultImplementation = function (seconds, guide) {\n seconds = seconds < 0 ? 0 : seconds;\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = h > 0 || gh > 0 ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = ((h || gm >= 10) && m < 10 ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = s < 10 ? '0' + s : s;\n return h + m + s;\n};\n\n// Internal pointer to the current implementation.\nlet implementation = defaultImplementation;\n\n/**\n * Replaces the default formatTime implementation with a custom implementation.\n *\n * @param {Function} customImplementation\n * A function which will be used in place of the default formatTime\n * implementation. Will receive the current time in seconds and the\n * guide (in seconds) as arguments.\n */\nfunction setFormatTime(customImplementation) {\n implementation = customImplementation;\n}\n\n/**\n * Resets formatTime to the default implementation.\n */\nfunction resetFormatTime() {\n implementation = defaultImplementation;\n}\n\n/**\n * Delegates to either the default time formatting function or a custom\n * function supplied via `setFormatTime`.\n *\n * Formats seconds as a time string (H:MM:SS or M:SS). Supplying a\n * guide (in seconds) will force a number of leading zeros to cover the\n * length of the guide.\n *\n * @example formatTime(125, 600) === \"02:05\"\n * @param {number} seconds\n * Number of seconds to be turned into a string\n *\n * @param {number} guide\n * Number (in seconds) to model the string after\n *\n * @return {string}\n * Time formatted as H:MM:SS or M:SS\n */\nfunction formatTime(seconds, guide = seconds) {\n return implementation(seconds, guide);\n}\n\nvar Time = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createTimeRanges: createTimeRanges$1,\n createTimeRange: createTimeRanges$1,\n setFormatTime: setFormatTime,\n resetFormatTime: resetFormatTime,\n formatTime: formatTime\n});\n\n/**\n * @file buffer.js\n * @module buffer\n */\n\n/** @import { TimeRange } from './time' */\n\n/**\n * Compute the percentage of the media that has been buffered.\n *\n * @param {TimeRange} buffered\n * The current `TimeRanges` object representing buffered time ranges\n *\n * @param {number} duration\n * Total duration of the media\n *\n * @return {number}\n * Percent buffered of the total duration in decimal form.\n */\nfunction bufferedPercent(buffered, duration) {\n let bufferedDuration = 0;\n let start;\n let end;\n if (!duration) {\n return 0;\n }\n if (!buffered || !buffered.length) {\n buffered = createTimeRanges$1(0, 0);\n }\n for (let i = 0; i < buffered.length; i++) {\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n bufferedDuration += end - start;\n }\n return bufferedDuration / duration;\n}\n\n/**\n * @file media-error.js\n */\n\n/**\n * A Custom `MediaError` class which mimics the standard HTML5 `MediaError` class.\n *\n * @param {number|string|Object|MediaError} value\n * This can be of multiple types:\n * - number: should be a standard error code\n * - string: an error message (the code will be 0)\n * - Object: arbitrary properties\n * - `MediaError` (native): used to populate a video.js `MediaError` object\n * - `MediaError` (video.js): will return itself if it's already a\n * video.js `MediaError` object.\n *\n * @see [MediaError Spec]{@link https://dev.w3.org/html5/spec-author-view/video.html#mediaerror}\n * @see [Encrypted MediaError Spec]{@link https://www.w3.org/TR/2013/WD-encrypted-media-20130510/#error-codes}\n *\n * @class MediaError\n */\nfunction MediaError(value) {\n // Allow redundant calls to this constructor to avoid having `instanceof`\n // checks peppered around the code.\n if (value instanceof MediaError) {\n return value;\n }\n if (typeof value === 'number') {\n this.code = value;\n } else if (typeof value === 'string') {\n // default code is zero, so this is a custom error\n this.message = value;\n } else if (isObject(value)) {\n // We assign the `code` property manually because native `MediaError` objects\n // do not expose it as an own/enumerable property of the object.\n if (typeof value.code === 'number') {\n this.code = value.code;\n }\n Object.assign(this, value);\n }\n if (!this.message) {\n this.message = MediaError.defaultMessages[this.code] || '';\n }\n}\n\n/**\n * The error code that refers two one of the defined `MediaError` types\n *\n * @type {Number}\n */\nMediaError.prototype.code = 0;\n\n/**\n * An optional message that to show with the error. Message is not part of the HTML5\n * video spec but allows for more informative custom errors.\n *\n * @type {String}\n */\nMediaError.prototype.message = '';\n\n/**\n * An optional status code that can be set by plugins to allow even more detail about\n * the error. For example a plugin might provide a specific HTTP status code and an\n * error message for that code. Then when the plugin gets that error this class will\n * know how to display an error message for it. This allows a custom message to show\n * up on the `Player` error overlay.\n *\n * @type {Array}\n */\nMediaError.prototype.status = null;\n\n/**\n * An object containing an error type, as well as other information regarding the error.\n *\n * @typedef {{errorType: string, [key: string]: any}} ErrorMetadata\n */\n\n/**\n * An optional object to give more detail about the error. This can be used to give\n * a higher level of specificity to an error versus the more generic MediaError codes.\n * `metadata` expects an `errorType` string that should align with the values from videojs.Error.\n *\n * @type {ErrorMetadata}\n */\nMediaError.prototype.metadata = null;\n\n/**\n * Errors indexed by the W3C standard. The order **CANNOT CHANGE**! See the\n * specification listed under {@link MediaError} for more information.\n *\n * @enum {array}\n * @readonly\n * @property {string} 0 - MEDIA_ERR_CUSTOM\n * @property {string} 1 - MEDIA_ERR_ABORTED\n * @property {string} 2 - MEDIA_ERR_NETWORK\n * @property {string} 3 - MEDIA_ERR_DECODE\n * @property {string} 4 - MEDIA_ERR_SRC_NOT_SUPPORTED\n * @property {string} 5 - MEDIA_ERR_ENCRYPTED\n */\nMediaError.errorTypes = ['MEDIA_ERR_CUSTOM', 'MEDIA_ERR_ABORTED', 'MEDIA_ERR_NETWORK', 'MEDIA_ERR_DECODE', 'MEDIA_ERR_SRC_NOT_SUPPORTED', 'MEDIA_ERR_ENCRYPTED'];\n\n/**\n * The default `MediaError` messages based on the {@link MediaError.errorTypes}.\n *\n * @type {Array}\n * @constant\n */\nMediaError.defaultMessages = {\n 1: 'You aborted the media playback',\n 2: 'A network error caused the media download to fail part-way.',\n 3: 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.',\n 4: 'The media could not be loaded, either because the server or network failed or because the format is not supported.',\n 5: 'The media is encrypted and we do not have the keys to decrypt it.'\n};\n\n/**\n * W3C error code for any custom error.\n *\n * @member MediaError#MEDIA_ERR_CUSTOM\n * @constant {number}\n * @default 0\n */\nMediaError.MEDIA_ERR_CUSTOM = 0;\n\n/**\n * W3C error code for any custom error.\n *\n * @member MediaError.MEDIA_ERR_CUSTOM\n * @constant {number}\n * @default 0\n */\nMediaError.prototype.MEDIA_ERR_CUSTOM = 0;\n\n/**\n * W3C error code for media error aborted.\n *\n * @member MediaError#MEDIA_ERR_ABORTED\n * @constant {number}\n * @default 1\n */\nMediaError.MEDIA_ERR_ABORTED = 1;\n\n/**\n * W3C error code for media error aborted.\n *\n * @member MediaError.MEDIA_ERR_ABORTED\n * @constant {number}\n * @default 1\n */\nMediaError.prototype.MEDIA_ERR_ABORTED = 1;\n\n/**\n * W3C error code for any network error.\n *\n * @member MediaError#MEDIA_ERR_NETWORK\n * @constant {number}\n * @default 2\n */\nMediaError.MEDIA_ERR_NETWORK = 2;\n\n/**\n * W3C error code for any network error.\n *\n * @member MediaError.MEDIA_ERR_NETWORK\n * @constant {number}\n * @default 2\n */\nMediaError.prototype.MEDIA_ERR_NETWORK = 2;\n\n/**\n * W3C error code for any decoding error.\n *\n * @member MediaError#MEDIA_ERR_DECODE\n * @constant {number}\n * @default 3\n */\nMediaError.MEDIA_ERR_DECODE = 3;\n\n/**\n * W3C error code for any decoding error.\n *\n * @member MediaError.MEDIA_ERR_DECODE\n * @constant {number}\n * @default 3\n */\nMediaError.prototype.MEDIA_ERR_DECODE = 3;\n\n/**\n * W3C error code for any time that a source is not supported.\n *\n * @member MediaError#MEDIA_ERR_SRC_NOT_SUPPORTED\n * @constant {number}\n * @default 4\n */\nMediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;\n\n/**\n * W3C error code for any time that a source is not supported.\n *\n * @member MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED\n * @constant {number}\n * @default 4\n */\nMediaError.prototype.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;\n\n/**\n * W3C error code for any time that a source is encrypted.\n *\n * @member MediaError#MEDIA_ERR_ENCRYPTED\n * @constant {number}\n * @default 5\n */\nMediaError.MEDIA_ERR_ENCRYPTED = 5;\n\n/**\n * W3C error code for any time that a source is encrypted.\n *\n * @member MediaError.MEDIA_ERR_ENCRYPTED\n * @constant {number}\n * @default 5\n */\nMediaError.prototype.MEDIA_ERR_ENCRYPTED = 5;\n\n/**\n * Returns whether an object is `Promise`-like (i.e. has a `then` method).\n *\n * @param {Object} value\n * An object that may or may not be `Promise`-like.\n *\n * @return {boolean}\n * Whether or not the object is `Promise`-like.\n */\nfunction isPromise(value) {\n return value !== undefined && value !== null && typeof value.then === 'function';\n}\n\n/**\n * Silence a Promise-like object.\n *\n * This is useful for avoiding non-harmful, but potentially confusing \"uncaught\n * play promise\" rejection error messages.\n *\n * @param {Object} value\n * An object that may or may not be `Promise`-like.\n */\nfunction silencePromise(value) {\n if (isPromise(value)) {\n value.then(null, e => {});\n }\n}\n\n/**\n * @file text-track-list-converter.js Utilities for capturing text track state and\n * re-creating tracks based on a capture.\n *\n * @module text-track-list-converter\n */\n\n/** @import Tech from '../tech/tech' */\n\n/**\n * Examine a single {@link TextTrack} and return a JSON-compatible javascript object that\n * represents the {@link TextTrack}'s state.\n *\n * @param {TextTrack} track\n * The text track to query.\n *\n * @return {Object}\n * A serializable javascript representation of the TextTrack.\n * @private\n */\nconst trackToJson_ = function (track) {\n const ret = ['kind', 'label', 'language', 'id', 'inBandMetadataTrackDispatchType', 'mode', 'src'].reduce((acc, prop, i) => {\n if (track[prop]) {\n acc[prop] = track[prop];\n }\n return acc;\n }, {\n cues: track.cues && Array.prototype.map.call(track.cues, function (cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n })\n });\n return ret;\n};\n\n/**\n * Examine a {@link Tech} and return a JSON-compatible javascript array that represents the\n * state of all {@link TextTrack}s currently configured. The return array is compatible with\n * {@link text-track-list-converter:jsonToTextTracks}.\n *\n * @param {Tech} tech\n * The tech object to query\n *\n * @return {Array}\n * A serializable javascript representation of the {@link Tech}s\n * {@link TextTrackList}.\n */\nconst textTracksToJson = function (tech) {\n const trackEls = tech.$$('track');\n const trackObjs = Array.prototype.map.call(trackEls, t => t.track);\n const tracks = Array.prototype.map.call(trackEls, function (trackEl) {\n const json = trackToJson_(trackEl.track);\n if (trackEl.src) {\n json.src = trackEl.src;\n }\n return json;\n });\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function (track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Create a set of remote {@link TextTrack}s on a {@link Tech} based on an array of javascript\n * object {@link TextTrack} representations.\n *\n * @param {Array} json\n * An array of `TextTrack` representation objects, like those that would be\n * produced by `textTracksToJson`.\n *\n * @param {Tech} tech\n * The `Tech` to create the `TextTrack`s on.\n */\nconst jsonToTextTracks = function (json, tech) {\n json.forEach(function (track) {\n const addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach(cue => addedTrack.addCue(cue));\n }\n });\n return tech.textTracks();\n};\nvar textTrackConverter = {\n textTracksToJson,\n jsonToTextTracks,\n trackToJson_\n};\n\n/**\n * @file modal-dialog.js\n */\n\n/** @import Player from './player' */\n/** @import { ContentDescriptor } from './utils/dom' */\n\nconst MODAL_CLASS_NAME = 'vjs-modal-dialog';\n\n/**\n * The `ModalDialog` displays over the video and its controls, which blocks\n * interaction with the player until it is closed.\n *\n * Modal dialogs include a \"Close\" button and will close when that button\n * is activated - or when ESC is pressed anywhere.\n *\n * @extends Component\n */\nclass ModalDialog extends Component$1 {\n /**\n * Creates an instance of this class.\n *\n * @param {Player} player\n * The `Player` that this class should be attached to.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {ContentDescriptor} [options.content=undefined]\n * Provide customized content for this modal.\n *\n * @param {string} [options.description]\n * A text description for the modal, primarily for accessibility.\n *\n * @param {boolean} [options.fillAlways=false]\n * Normally, modals are automatically filled only the first time\n * they open. This tells the modal to refresh its content\n * every time it opens.\n *\n * @param {string} [options.label]\n * A text label for the modal, primarily for accessibility.\n *\n * @param {boolean} [options.pauseOnOpen=true]\n * If `true`, playback will will be paused if playing when\n * the modal opens, and resumed when it closes.\n *\n * @param {boolean} [options.temporary=true]\n * If `true`, the modal can only be opened once; it will be\n * disposed as soon as it's closed.\n *\n * @param {boolean} [options.uncloseable=false]\n * If `true`, the user will not be able to close the modal\n * through the UI in the normal ways. Programmatic closing is\n * still possible.\n */\n constructor(player, options) {\n super(player, options);\n this.handleKeyDown_ = e => this.handleKeyDown(e);\n this.close_ = e => this.close(e);\n this.opened_ = this.hasBeenOpened_ = this.hasBeenFilled_ = false;\n this.closeable(!this.options_.uncloseable);\n this.content(this.options_.content);\n\n // Make sure the contentEl is defined AFTER any children are initialized\n // because we only want the contents of the modal in the contentEl\n // (not the UI elements like the close button).\n this.contentEl_ = createEl('div', {\n className: `${MODAL_CLASS_NAME}-content`\n }, {\n role: 'document'\n });\n this.descEl_ = createEl('p', {\n className: `${MODAL_CLASS_NAME}-description vjs-control-text`,\n id: this.el().getAttribute('aria-describedby')\n });\n textContent(this.descEl_, this.description());\n this.el_.appendChild(this.descEl_);\n this.el_.appendChild(this.contentEl_);\n }\n\n /**\n * Create the `ModalDialog`'s DOM element\n *\n * @return {Element}\n * The DOM element that gets created.\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass(),\n tabIndex: -1\n }, {\n 'aria-describedby': `${this.id()}_description`,\n 'aria-hidden': 'true',\n 'aria-label': this.label(),\n 'role': 'dialog',\n 'aria-live': 'polite'\n });\n }\n dispose() {\n this.contentEl_ = null;\n this.descEl_ = null;\n this.previouslyActiveEl_ = null;\n super.dispose();\n }\n\n /**\n * Builds the default DOM `className`.\n *\n * @return {string}\n * The DOM `className` for this object.\n */\n buildCSSClass() {\n return `${MODAL_CLASS_NAME} vjs-hidden ${super.buildCSSClass()}`;\n }\n\n /**\n * Returns the label string for this modal. Primarily used for accessibility.\n *\n * @return {string}\n * the localized or raw label of this modal.\n */\n label() {\n return this.localize(this.options_.label || 'Modal Window');\n }\n\n /**\n * Returns the description string for this modal. Primarily used for\n * accessibility.\n *\n * @return {string}\n * The localized or raw description of this modal.\n */\n description() {\n let desc = this.options_.description || this.localize('This is a modal window.');\n\n // Append a universal closeability message if the modal is closeable.\n if (this.closeable()) {\n desc += ' ' + this.localize('This modal can be closed by pressing the Escape key or activating the close button.');\n }\n return desc;\n }\n\n /**\n * Opens the modal.\n *\n * @fires ModalDialog#beforemodalopen\n * @fires ModalDialog#modalopen\n */\n open() {\n if (this.opened_) {\n if (this.options_.fillAlways) {\n this.fill();\n }\n return;\n }\n const player = this.player();\n\n /**\n * Fired just before a `ModalDialog` is opened.\n *\n * @event ModalDialog#beforemodalopen\n * @type {Event}\n */\n this.trigger('beforemodalopen');\n this.opened_ = true;\n\n // Fill content if the modal has never opened before and\n // never been filled.\n if (this.options_.fillAlways || !this.hasBeenOpened_ && !this.hasBeenFilled_) {\n this.fill();\n }\n\n // If the player was playing, pause it and take note of its previously\n // playing state.\n this.wasPlaying_ = !player.paused();\n if (this.options_.pauseOnOpen && this.wasPlaying_) {\n player.pause();\n }\n this.on('keydown', this.handleKeyDown_);\n\n // Hide controls and note if they were enabled.\n this.hadControls_ = player.controls();\n player.controls(false);\n this.show();\n this.conditionalFocus_();\n this.el().setAttribute('aria-hidden', 'false');\n\n /**\n * Fired just after a `ModalDialog` is opened.\n *\n * @event ModalDialog#modalopen\n * @type {Event}\n */\n this.trigger('modalopen');\n this.hasBeenOpened_ = true;\n }\n\n /**\n * If the `ModalDialog` is currently open or closed.\n *\n * @param {boolean} [value]\n * If given, it will open (`true`) or close (`false`) the modal.\n *\n * @return {boolean}\n * the current open state of the modaldialog\n */\n opened(value) {\n if (typeof value === 'boolean') {\n this[value ? 'open' : 'close']();\n }\n return this.opened_;\n }\n\n /**\n * Closes the modal, does nothing if the `ModalDialog` is\n * not open.\n *\n * @fires ModalDialog#beforemodalclose\n * @fires ModalDialog#modalclose\n */\n close() {\n if (!this.opened_) {\n return;\n }\n const player = this.player();\n\n /**\n * Fired just before a `ModalDialog` is closed.\n *\n * @event ModalDialog#beforemodalclose\n * @type {Event}\n */\n this.trigger('beforemodalclose');\n this.opened_ = false;\n if (this.wasPlaying_ && this.options_.pauseOnOpen) {\n player.play();\n }\n this.off('keydown', this.handleKeyDown_);\n if (this.hadControls_) {\n player.controls(true);\n }\n this.hide();\n this.el().setAttribute('aria-hidden', 'true');\n\n /**\n * Fired just after a `ModalDialog` is closed.\n *\n * @event ModalDialog#modalclose\n * @type {Event}\n *\n * @property {boolean} [bubbles=true]\n */\n this.trigger({\n type: 'modalclose',\n bubbles: true\n });\n this.conditionalBlur_();\n if (this.options_.temporary) {\n this.dispose();\n }\n }\n\n /**\n * Check to see if the `ModalDialog` is closeable via the UI.\n *\n * @param {boolean} [value]\n * If given as a boolean, it will set the `closeable` option.\n *\n * @return {boolean}\n * Returns the final value of the closable option.\n */\n closeable(value) {\n if (typeof value === 'boolean') {\n const closeable = this.closeable_ = !!value;\n let close = this.getChild('closeButton');\n\n // If this is being made closeable and has no close button, add one.\n if (closeable && !close) {\n // The close button should be a child of the modal - not its\n // content element, so temporarily change the content element.\n const temp = this.contentEl_;\n this.contentEl_ = this.el_;\n close = this.addChild('closeButton', {\n controlText: 'Close Modal Dialog'\n });\n this.contentEl_ = temp;\n this.on(close, 'close', this.close_);\n }\n\n // If this is being made uncloseable and has a close button, remove it.\n if (!closeable && close) {\n this.off(close, 'close', this.close_);\n this.removeChild(close);\n close.dispose();\n }\n }\n return this.closeable_;\n }\n\n /**\n * Fill the modal's content element with the modal's \"content\" option.\n * The content element will be emptied before this change takes place.\n */\n fill() {\n this.fillWith(this.content());\n }\n\n /**\n * Fill the modal's content element with arbitrary content.\n * The content element will be emptied before this change takes place.\n *\n * @fires ModalDialog#beforemodalfill\n * @fires ModalDialog#modalfill\n *\n * @param {ContentDescriptor} [content]\n * The same rules apply to this as apply to the `content` option.\n */\n fillWith(content) {\n const contentEl = this.contentEl();\n const parentEl = contentEl.parentNode;\n const nextSiblingEl = contentEl.nextSibling;\n\n /**\n * Fired just before a `ModalDialog` is filled with content.\n *\n * @event ModalDialog#beforemodalfill\n * @type {Event}\n */\n this.trigger('beforemodalfill');\n this.hasBeenFilled_ = true;\n\n // Detach the content element from the DOM before performing\n // manipulation to avoid modifying the live DOM multiple times.\n parentEl.removeChild(contentEl);\n this.empty();\n insertContent(contentEl, content);\n /**\n * Fired just after a `ModalDialog` is filled with content.\n *\n * @event ModalDialog#modalfill\n * @type {Event}\n */\n this.trigger('modalfill');\n\n // Re-inject the re-filled content element.\n if (nextSiblingEl) {\n parentEl.insertBefore(contentEl, nextSiblingEl);\n } else {\n parentEl.appendChild(contentEl);\n }\n\n // make sure that the close button is last in the dialog DOM\n const closeButton = this.getChild('closeButton');\n if (closeButton) {\n parentEl.appendChild(closeButton.el_);\n }\n\n /**\n * Fired after `ModalDialog` is re-filled with content & close button is appended.\n *\n * @event ModalDialog#aftermodalfill\n * @type {Event}\n */\n this.trigger('aftermodalfill');\n }\n\n /**\n * Empties the content element. This happens anytime the modal is filled.\n *\n * @fires ModalDialog#beforemodalempty\n * @fires ModalDialog#modalempty\n */\n empty() {\n /**\n * Fired just before a `ModalDialog` is emptied.\n *\n * @event ModalDialog#beforemodalempty\n * @type {Event}\n */\n this.trigger('beforemodalempty');\n emptyEl(this.contentEl());\n\n /**\n * Fired just after a `ModalDialog` is emptied.\n *\n * @event ModalDialog#modalempty\n * @type {Event}\n */\n this.trigger('modalempty');\n }\n\n /**\n * Gets or sets the modal content, which gets normalized before being\n * rendered into the DOM.\n *\n * This does not update the DOM or fill the modal, but it is called during\n * that process.\n *\n * @param {ContentDescriptor} [value]\n * If defined, sets the internal content value to be used on the\n * next call(s) to `fill`. This value is normalized before being\n * inserted. To \"clear\" the internal content value, pass `null`.\n *\n * @return {ContentDescriptor}\n * The current content of the modal dialog\n */\n content(value) {\n if (typeof value !== 'undefined') {\n this.content_ = value;\n }\n return this.content_;\n }\n\n /**\n * conditionally focus the modal dialog if focus was previously on the player.\n *\n * @private\n */\n conditionalFocus_() {\n const activeEl = document$1.activeElement;\n const playerEl = this.player_.el_;\n this.previouslyActiveEl_ = null;\n if (playerEl.contains(activeEl) || playerEl === activeEl) {\n this.previouslyActiveEl_ = activeEl;\n this.focus();\n }\n }\n\n /**\n * conditionally blur the element and refocus the last focused element\n *\n * @private\n */\n conditionalBlur_() {\n if (this.previouslyActiveEl_) {\n this.previouslyActiveEl_.focus();\n this.previouslyActiveEl_ = null;\n }\n }\n\n /**\n * Keydown handler. Attached when modal is focused.\n *\n * @listens keydown\n */\n handleKeyDown(event) {\n /**\n * Fired a custom keyDown event that bubbles.\n *\n * @event ModalDialog#modalKeydown\n * @type {Event}\n */\n this.trigger({\n type: 'modalKeydown',\n originalEvent: event,\n target: this,\n bubbles: true\n });\n // Do not allow keydowns to reach out of the modal dialog.\n event.stopPropagation();\n if (event.key === 'Escape' && this.closeable()) {\n event.preventDefault();\n this.close();\n return;\n }\n\n // exit early if it isn't a tab key\n if (event.key !== 'Tab') {\n return;\n }\n const focusableEls = this.focusableEls_();\n const activeEl = this.el_.querySelector(':focus');\n let focusIndex;\n for (let i = 0; i < focusableEls.length; i++) {\n if (activeEl === focusableEls[i]) {\n focusIndex = i;\n break;\n }\n }\n if (document$1.activeElement === this.el_) {\n focusIndex = 0;\n }\n if (event.shiftKey && focusIndex === 0) {\n focusableEls[focusableEls.length - 1].focus();\n event.preventDefault();\n } else if (!event.shiftKey && focusIndex === focusableEls.length - 1) {\n focusableEls[0].focus();\n event.preventDefault();\n }\n }\n\n /**\n * get all focusable elements\n *\n * @private\n */\n focusableEls_() {\n const allChildren = this.el_.querySelectorAll('*');\n return Array.prototype.filter.call(allChildren, child => {\n return (child instanceof window$1.HTMLAnchorElement || child instanceof window$1.HTMLAreaElement) && child.hasAttribute('href') || (child instanceof window$1.HTMLInputElement || child instanceof window$1.HTMLSelectElement || child instanceof window$1.HTMLTextAreaElement || child instanceof window$1.HTMLButtonElement) && !child.hasAttribute('disabled') || child instanceof window$1.HTMLIFrameElement || child instanceof window$1.HTMLObjectElement || child instanceof window$1.HTMLEmbedElement || child.hasAttribute('tabindex') && child.getAttribute('tabindex') !== -1 || child.hasAttribute('contenteditable');\n });\n }\n}\n\n/**\n * Default options for `ModalDialog` default options.\n *\n * @type {Object}\n * @private\n */\nModalDialog.prototype.options_ = {\n pauseOnOpen: true,\n temporary: true\n};\nComponent$1.registerComponent('ModalDialog', ModalDialog);\n\n/**\n * @file track-list.js\n */\n\n/** @import Track from './track' */\n\n/**\n * Common functionaliy between {@link TextTrackList}, {@link AudioTrackList}, and\n * {@link VideoTrackList}\n *\n * @extends EventTarget\n */\nclass TrackList extends EventTarget$2 {\n /**\n * Create an instance of this class\n *\n * @param { Track[] } tracks\n * A list of tracks to initialize the list with.\n *\n * @abstract\n */\n constructor(tracks = []) {\n super();\n this.tracks_ = [];\n\n /**\n * @memberof TrackList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n Object.defineProperty(this, 'length', {\n get() {\n return this.tracks_.length;\n }\n });\n for (let i = 0; i < tracks.length; i++) {\n this.addTrack(tracks[i]);\n }\n }\n\n /**\n * Add a {@link Track} to the `TrackList`\n *\n * @param {Track} track\n * The audio, video, or text track to add to the list.\n *\n * @fires TrackList#addtrack\n */\n addTrack(track) {\n const index = this.tracks_.length;\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get() {\n return this.tracks_[index];\n }\n });\n }\n\n // Do not add duplicate tracks\n if (this.tracks_.indexOf(track) === -1) {\n this.tracks_.push(track);\n /**\n * Triggered when a track is added to a track list.\n *\n * @event TrackList#addtrack\n * @type {Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n this.trigger({\n track,\n type: 'addtrack',\n target: this\n });\n }\n\n /**\n * Triggered when a track label is changed.\n *\n * @event TrackList#addtrack\n * @type {Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n track.labelchange_ = () => {\n this.trigger({\n track,\n type: 'labelchange',\n target: this\n });\n };\n if (isEvented(track)) {\n track.addEventListener('labelchange', track.labelchange_);\n }\n }\n\n /**\n * Remove a {@link Track} from the `TrackList`\n *\n * @param {Track} rtrack\n * The audio, video, or text track to remove from the list.\n *\n * @fires TrackList#removetrack\n */\n removeTrack(rtrack) {\n let track;\n for (let i = 0, l = this.length; i < l; i++) {\n if (this[i] === rtrack) {\n track = this[i];\n if (track.off) {\n track.off();\n }\n this.tracks_.splice(i, 1);\n break;\n }\n }\n if (!track) {\n return;\n }\n\n /**\n * Triggered when a track is removed from track list.\n *\n * @event TrackList#removetrack\n * @type {Event}\n * @property {Track} track\n * A reference to track that was removed.\n */\n this.trigger({\n track,\n type: 'removetrack',\n target: this\n });\n }\n\n /**\n * Get a Track from the TrackList by a tracks id\n *\n * @param {string} id - the id of the track to get\n * @method getTrackById\n * @return {Track}\n * @private\n */\n getTrackById(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n const track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n return result;\n }\n}\n\n/**\n * Triggered when a different track is selected/enabled.\n *\n * @event TrackList#change\n * @type {Event}\n */\n\n/**\n * Events that can be called with on + eventName. See {@link EventHandler}.\n *\n * @property {Object} TrackList#allowedEvents_\n * @protected\n */\nTrackList.prototype.allowedEvents_ = {\n change: 'change',\n addtrack: 'addtrack',\n removetrack: 'removetrack',\n labelchange: 'labelchange'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (const event in TrackList.prototype.allowedEvents_) {\n TrackList.prototype['on' + event] = null;\n}\n\n/**\n * @file audio-track-list.js\n */\n\n/** @import AudioTrack from './audio-track' */\n\n/**\n * Anywhere we call this function we diverge from the spec\n * as we only support one enabled audiotrack at a time\n *\n * @param {AudioTrackList} list\n * list to work on\n *\n * @param {AudioTrack} track\n * The track to skip\n *\n * @private\n */\nconst disableOthers$1 = function (list, track) {\n for (let i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n }\n // another audio track is enabled, disable it\n list[i].enabled = false;\n }\n};\n\n/**\n * The current list of {@link AudioTrack} for a media file.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotracklist}\n * @extends TrackList\n */\nclass AudioTrackList extends TrackList {\n /**\n * Create an instance of this class.\n *\n * @param {AudioTrack[]} [tracks=[]]\n * A list of `AudioTrack` to instantiate the list with.\n */\n constructor(tracks = []) {\n // make sure only 1 track is enabled\n // sorted from last index to first index\n for (let i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].enabled) {\n disableOthers$1(tracks, tracks[i]);\n break;\n }\n }\n super(tracks);\n this.changing_ = false;\n }\n\n /**\n * Add an {@link AudioTrack} to the `AudioTrackList`.\n *\n * @param {AudioTrack} track\n * The AudioTrack to add to the list\n *\n * @fires TrackList#addtrack\n */\n addTrack(track) {\n if (track.enabled) {\n disableOthers$1(this, track);\n }\n super.addTrack(track);\n // native tracks don't have this\n if (!track.addEventListener) {\n return;\n }\n track.enabledChange_ = () => {\n // when we are disabling other tracks (since we don't support\n // more than one track at a time) we will set changing_\n // to true so that we don't trigger additional change events\n if (this.changing_) {\n return;\n }\n this.changing_ = true;\n disableOthers$1(this, track);\n this.changing_ = false;\n this.trigger('change');\n };\n\n /**\n * @listens AudioTrack#enabledchange\n * @fires TrackList#change\n */\n track.addEventListener('enabledchange', track.enabledChange_);\n }\n removeTrack(rtrack) {\n super.removeTrack(rtrack);\n if (rtrack.removeEventListener && rtrack.enabledChange_) {\n rtrack.removeEventListener('enabledchange', rtrack.enabledChange_);\n rtrack.enabledChange_ = null;\n }\n }\n}\n\n/**\n * @file video-track-list.js\n */\n\n/** @import VideoTrack from './video-track' */\n\n/**\n * Un-select all other {@link VideoTrack}s that are selected.\n *\n * @param {VideoTrackList} list\n * list to work on\n *\n * @param {VideoTrack} track\n * The track to skip\n *\n * @private\n */\nconst disableOthers = function (list, track) {\n for (let i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n }\n // another video track is enabled, disable it\n list[i].selected = false;\n }\n};\n\n/**\n * The current list of {@link VideoTrack} for a video.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotracklist}\n * @extends TrackList\n */\nclass VideoTrackList extends TrackList {\n /**\n * Create an instance of this class.\n *\n * @param {VideoTrack[]} [tracks=[]]\n * A list of `VideoTrack` to instantiate the list with.\n */\n constructor(tracks = []) {\n // make sure only 1 track is enabled\n // sorted from last index to first index\n for (let i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].selected) {\n disableOthers(tracks, tracks[i]);\n break;\n }\n }\n super(tracks);\n this.changing_ = false;\n\n /**\n * @member {number} VideoTrackList#selectedIndex\n * The current index of the selected {@link VideoTrack`}.\n */\n Object.defineProperty(this, 'selectedIndex', {\n get() {\n for (let i = 0; i < this.length; i++) {\n if (this[i].selected) {\n return i;\n }\n }\n return -1;\n },\n set() {}\n });\n }\n\n /**\n * Add a {@link VideoTrack} to the `VideoTrackList`.\n *\n * @param {VideoTrack} track\n * The VideoTrack to add to the list\n *\n * @fires TrackList#addtrack\n */\n addTrack(track) {\n if (track.selected) {\n disableOthers(this, track);\n }\n super.addTrack(track);\n // native tracks don't have this\n if (!track.addEventListener) {\n return;\n }\n track.selectedChange_ = () => {\n if (this.changing_) {\n return;\n }\n this.changing_ = true;\n disableOthers(this, track);\n this.changing_ = false;\n this.trigger('change');\n };\n\n /**\n * @listens VideoTrack#selectedchange\n * @fires TrackList#change\n */\n track.addEventListener('selectedchange', track.selectedChange_);\n }\n removeTrack(rtrack) {\n super.removeTrack(rtrack);\n if (rtrack.removeEventListener && rtrack.selectedChange_) {\n rtrack.removeEventListener('selectedchange', rtrack.selectedChange_);\n rtrack.selectedChange_ = null;\n }\n }\n}\n\n/**\n * @file text-track-list.js\n */\n\n/** @import TextTrack from './text-track' */\n\n/**\n * The current list of {@link TextTrack} for a media file.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist}\n * @extends TrackList\n */\nclass TextTrackList extends TrackList {\n /**\n * Add a {@link TextTrack} to the `TextTrackList`\n *\n * @param {TextTrack} track\n * The text track to add to the list.\n *\n * @fires TrackList#addtrack\n */\n addTrack(track) {\n super.addTrack(track);\n if (!this.queueChange_) {\n this.queueChange_ = () => this.queueTrigger('change');\n }\n if (!this.triggerSelectedlanguagechange) {\n this.triggerSelectedlanguagechange_ = () => this.trigger('selectedlanguagechange');\n }\n\n /**\n * @listens TextTrack#modechange\n * @fires TrackList#change\n */\n track.addEventListener('modechange', this.queueChange_);\n const nonLanguageTextTrackKind = ['metadata', 'chapters'];\n if (nonLanguageTextTrackKind.indexOf(track.kind) === -1) {\n track.addEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n }\n removeTrack(rtrack) {\n super.removeTrack(rtrack);\n\n // manually remove the event handlers we added\n if (rtrack.removeEventListener) {\n if (this.queueChange_) {\n rtrack.removeEventListener('modechange', this.queueChange_);\n }\n if (this.selectedlanguagechange_) {\n rtrack.removeEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n }\n }\n}\n\n/**\n * @file html-track-element-list.js\n */\n\n/**\n * The current list of {@link HtmlTrackElement}s.\n */\nclass HtmlTrackElementList {\n /**\n * Create an instance of this class.\n *\n * @param {HtmlTrackElement[]} [tracks=[]]\n * A list of `HtmlTrackElement` to instantiate the list with.\n */\n constructor(trackElements = []) {\n this.trackElements_ = [];\n\n /**\n * @memberof HtmlTrackElementList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n Object.defineProperty(this, 'length', {\n get() {\n return this.trackElements_.length;\n }\n });\n for (let i = 0, length = trackElements.length; i < length; i++) {\n this.addTrackElement_(trackElements[i]);\n }\n }\n\n /**\n * Add an {@link HtmlTrackElement} to the `HtmlTrackElementList`\n *\n * @param {HtmlTrackElement} trackElement\n * The track element to add to the list.\n *\n * @private\n */\n addTrackElement_(trackElement) {\n const index = this.trackElements_.length;\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get() {\n return this.trackElements_[index];\n }\n });\n }\n\n // Do not add duplicate elements\n if (this.trackElements_.indexOf(trackElement) === -1) {\n this.trackElements_.push(trackElement);\n }\n }\n\n /**\n * Get an {@link HtmlTrackElement} from the `HtmlTrackElementList` given an\n * {@link TextTrack}.\n *\n * @param {TextTrack} track\n * The track associated with a track element.\n *\n * @return {HtmlTrackElement|undefined}\n * The track element that was found or undefined.\n *\n * @private\n */\n getTrackElementByTrack_(track) {\n let trackElement_;\n for (let i = 0, length = this.trackElements_.length; i < length; i++) {\n if (track === this.trackElements_[i].track) {\n trackElement_ = this.trackElements_[i];\n break;\n }\n }\n return trackElement_;\n }\n\n /**\n * Remove a {@link HtmlTrackElement} from the `HtmlTrackElementList`\n *\n * @param {HtmlTrackElement} trackElement\n * The track element to remove from the list.\n *\n * @private\n */\n removeTrackElement_(trackElement) {\n for (let i = 0, length = this.trackElements_.length; i < length; i++) {\n if (trackElement === this.trackElements_[i]) {\n if (this.trackElements_[i].track && typeof this.trackElements_[i].track.off === 'function') {\n this.trackElements_[i].track.off();\n }\n if (typeof this.trackElements_[i].off === 'function') {\n this.trackElements_[i].off();\n }\n this.trackElements_.splice(i, 1);\n break;\n }\n }\n }\n}\n\n/**\n * @file text-track-cue-list.js\n */\n\n/**\n * @typedef {Object} TextTrackCueList~TextTrackCue\n *\n * @property {string} id\n * The unique id for this text track cue\n *\n * @property {number} startTime\n * The start time for this text track cue\n *\n * @property {number} endTime\n * The end time for this text track cue\n *\n * @property {boolean} pauseOnExit\n * Pause when the end time is reached if true.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcue}\n */\n\n/**\n * A List of TextTrackCues.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist}\n */\nclass TextTrackCueList {\n /**\n * Create an instance of this class..\n *\n * @param {Array} cues\n * A list of cues to be initialized with\n */\n constructor(cues) {\n TextTrackCueList.prototype.setCues_.call(this, cues);\n\n /**\n * @memberof TextTrackCueList\n * @member {number} length\n * The current number of `TextTrackCue`s in the TextTrackCueList.\n * @instance\n */\n Object.defineProperty(this, 'length', {\n get() {\n return this.length_;\n }\n });\n }\n\n /**\n * A setter for cues in this list. Creates getters\n * an an index for the cues.\n *\n * @param {Array} cues\n * An array of cues to set\n *\n * @private\n */\n setCues_(cues) {\n const oldLength = this.length || 0;\n let i = 0;\n const l = cues.length;\n this.cues_ = cues;\n this.length_ = cues.length;\n const defineProp = function (index) {\n if (!('' + index in this)) {\n Object.defineProperty(this, '' + index, {\n get() {\n return this.cues_[index];\n }\n });\n }\n };\n if (oldLength < l) {\n i = oldLength;\n for (; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n }\n\n /**\n * Get a `TextTrackCue` that is currently in the `TextTrackCueList` by id.\n *\n * @param {string} id\n * The id of the cue that should be searched for.\n *\n * @return {TextTrackCueList~TextTrackCue|null}\n * A single cue or null if none was found.\n */\n getCueById(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n const cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n return result;\n }\n}\n\n/**\n * @file track-kinds.js\n */\n\n/**\n * All possible `VideoTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-videotrack-kind\n * @typedef VideoTrack~Kind\n * @enum\n */\nconst VideoTrackKind = {\n alternative: 'alternative',\n captions: 'captions',\n main: 'main',\n sign: 'sign',\n subtitles: 'subtitles',\n commentary: 'commentary'\n};\n\n/**\n * All possible `AudioTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-audiotrack-kind\n * @typedef AudioTrack~Kind\n * @enum\n */\nconst AudioTrackKind = {\n 'alternative': 'alternative',\n 'descriptions': 'descriptions',\n 'main': 'main',\n 'main-desc': 'main-desc',\n 'translation': 'translation',\n 'commentary': 'commentary'\n};\n\n/**\n * All possible `TextTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-texttrack-kind\n * @typedef TextTrack~Kind\n * @enum\n */\nconst TextTrackKind = {\n subtitles: 'subtitles',\n captions: 'captions',\n descriptions: 'descriptions',\n chapters: 'chapters',\n metadata: 'metadata'\n};\n\n/**\n * All possible `TextTrackMode`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n * @typedef TextTrack~Mode\n * @enum\n */\nconst TextTrackMode = {\n disabled: 'disabled',\n hidden: 'hidden',\n showing: 'showing'\n};\n\n/**\n * @file track.js\n */\n\n/**\n * A Track class that contains all of the common functionality for {@link AudioTrack},\n * {@link VideoTrack}, and {@link TextTrack}.\n *\n * > Note: This class should not be used directly\n *\n * @see {@link https://html.spec.whatwg.org/multipage/embedded-content.html}\n * @extends EventTarget\n * @abstract\n */\nclass Track extends EventTarget$2 {\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {string} [options.kind='']\n * A valid kind for the track type you are creating.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @abstract\n */\n constructor(options = {}) {\n super();\n const trackProps = {\n id: options.id || 'vjs_track_' + newGUID(),\n kind: options.kind || '',\n language: options.language || ''\n };\n let label = options.label || '';\n\n /**\n * @memberof Track\n * @member {string} id\n * The id of this track. Cannot be changed after creation.\n * @instance\n *\n * @readonly\n */\n\n /**\n * @memberof Track\n * @member {string} kind\n * The kind of track that this is. Cannot be changed after creation.\n * @instance\n *\n * @readonly\n */\n\n /**\n * @memberof Track\n * @member {string} language\n * The two letter language code for this track. Cannot be changed after\n * creation.\n * @instance\n *\n * @readonly\n */\n\n for (const key in trackProps) {\n Object.defineProperty(this, key, {\n get() {\n return trackProps[key];\n },\n set() {}\n });\n }\n\n /**\n * @memberof Track\n * @member {string} label\n * The label of this track. Cannot be changed after creation.\n * @instance\n *\n * @fires Track#labelchange\n */\n Object.defineProperty(this, 'label', {\n get() {\n return label;\n },\n set(newLabel) {\n if (newLabel !== label) {\n label = newLabel;\n\n /**\n * An event that fires when label changes on this track.\n *\n * > Note: This is not part of the spec!\n *\n * @event Track#labelchange\n * @type {Event}\n */\n this.trigger('labelchange');\n }\n }\n });\n }\n}\n\n/**\n * @file url.js\n * @module url\n */\n\n/**\n * Resolve and parse the elements of a URL.\n *\n * @function\n * @param {string} url\n * The url to parse\n *\n * @return {URL}\n * An object of url details\n */\nconst parseUrl = function (url) {\n return new URL(url, document$1.baseURI);\n};\n\n/**\n * Get absolute version of relative URL.\n *\n * @function\n * @param {string} url\n * URL to make absolute\n *\n * @return {string}\n * Absolute URL\n */\nconst getAbsoluteURL = function (url) {\n return new URL(url, document$1.baseURI).href;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string\n * if passed an invalid path.\n *\n * @function\n * @param {string} path\n * The fileName path like '/path/to/file.mp4'\n *\n * @return {string}\n * The extension in lower case or an empty string if no\n * extension could be found.\n */\nconst getFileExtension = function (path) {\n if (typeof path === 'string') {\n const splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/;\n const pathParts = splitPathRe.exec(path);\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n return '';\n};\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @function\n * @param {string} url\n * The url to check.\n *\n * @param {URL} [winLoc]\n * the domain to check the url against, defaults to window.location\n *\n * @return {boolean}\n * Whether it is a cross domain request or not.\n */\nconst isCrossOrigin = function (url, winLoc = window$1.location) {\n return parseUrl(url).origin !== winLoc.origin;\n};\n\nvar Url = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parseUrl: parseUrl,\n getAbsoluteURL: getAbsoluteURL,\n getFileExtension: getFileExtension,\n isCrossOrigin: isCrossOrigin\n});\n\n/**\n * @file text-track.js\n */\n\n/** @import Tech from '../tech/tech' */\n\n/**\n * Takes a webvtt file contents and parses it into cues\n *\n * @param {string} srcContent\n * webVTT file contents\n *\n * @param {TextTrack} track\n * TextTrack to add cues to. Cues come from the srcContent.\n *\n * @private\n */\nconst parseCues = function (srcContent, track) {\n const parser = new window$1.WebVTT.Parser(window$1, window$1.vttjs, window$1.WebVTT.StringDecoder());\n const errors = [];\n parser.oncue = function (cue) {\n track.addCue(cue);\n };\n parser.onparsingerror = function (error) {\n errors.push(error);\n };\n parser.onflush = function () {\n track.trigger({\n type: 'loadeddata',\n target: track\n });\n };\n parser.parse(srcContent);\n if (errors.length > 0) {\n if (window$1.console && window$1.console.groupCollapsed) {\n window$1.console.groupCollapsed(`Text Track parsing errors for ${track.src}`);\n }\n errors.forEach(error => log$1.error(error));\n if (window$1.console && window$1.console.groupEnd) {\n window$1.console.groupEnd();\n }\n }\n parser.flush();\n};\n\n/**\n * Load a `TextTrack` from a specified url.\n *\n * @param {string} src\n * Url to load track from.\n *\n * @param {TextTrack} track\n * Track to add cues to. Comes from the content at the end of `url`.\n *\n * @private\n */\nconst loadTrack = function (src, track) {\n const opts = {\n uri: src\n };\n const crossOrigin = isCrossOrigin(src);\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n const withCredentials = track.tech_.crossOrigin() === 'use-credentials';\n if (withCredentials) {\n opts.withCredentials = withCredentials;\n }\n XHR(opts, bind_(this, function (err, response, responseBody) {\n if (err) {\n return log$1.error(err, response);\n }\n track.loaded_ = true;\n\n // Make sure that vttjs has loaded, otherwise, wait till it finished loading\n // NOTE: this is only used for the alt/video.novtt.js build\n if (typeof window$1.WebVTT !== 'function') {\n if (track.tech_) {\n // to prevent use before define eslint error, we define loadHandler\n // as a let here\n track.tech_.any(['vttjsloaded', 'vttjserror'], event => {\n if (event.type === 'vttjserror') {\n log$1.error(`vttjs failed to load, stopping trying to process ${track.src}`);\n return;\n }\n return parseCues(responseBody, track);\n });\n }\n } else {\n parseCues(responseBody, track);\n }\n }));\n};\n\n/**\n * A representation of a single `TextTrack`.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack}\n * @extends Track\n */\nclass TextTrack extends Track {\n /**\n * Create an instance of this class.\n *\n * @param {Object} options={}\n * Object of option names and values\n *\n * @param {Tech} options.tech\n * A reference to the tech that owns this TextTrack.\n *\n * @param {TextTrack~Kind} [options.kind='subtitles']\n * A valid text track kind.\n *\n * @param {TextTrack~Mode} [options.mode='disabled']\n * A valid text track mode.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this TextTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {string} [options.srclang='']\n * A valid two character language code. An alternative, but deprioritized\n * version of `options.language`\n *\n * @param {string} [options.src]\n * A url to TextTrack cues.\n *\n * @param {boolean} [options.default]\n * If this track should default to on or off.\n */\n constructor(options = {}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n const settings = merge$1(options, {\n kind: TextTrackKind[options.kind] || 'subtitles',\n language: options.language || options.srclang || ''\n });\n let mode = TextTrackMode[settings.mode] || 'disabled';\n const default_ = settings.default;\n if (settings.kind === 'metadata' || settings.kind === 'chapters') {\n mode = 'hidden';\n }\n super(settings);\n this.tech_ = settings.tech;\n this.cues_ = [];\n this.activeCues_ = [];\n this.preload_ = this.tech_.preloadTextTracks !== false;\n const cues = new TextTrackCueList(this.cues_);\n const activeCues = new TextTrackCueList(this.activeCues_);\n let changed = false;\n this.timeupdateHandler = bind_(this, function (event = {}) {\n if (this.tech_.isDisposed()) {\n return;\n }\n if (!this.tech_.isReady_) {\n if (event.type !== 'timeupdate') {\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n }\n return;\n }\n\n // Accessing this.activeCues for the side-effects of updating itself\n // due to its nature as a getter function. Do not remove or cues will\n // stop updating!\n // Use the setter to prevent deletion from uglify (pure_getters rule)\n this.activeCues = this.activeCues;\n if (changed) {\n this.trigger('cuechange');\n changed = false;\n }\n if (event.type !== 'timeupdate') {\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n }\n });\n const disposeHandler = () => {\n this.stopTracking();\n };\n this.tech_.one('dispose', disposeHandler);\n if (mode !== 'disabled') {\n this.startTracking();\n }\n Object.defineProperties(this, {\n /**\n * @memberof TextTrack\n * @member {boolean} default\n * If this track was set to be on or off by default. Cannot be changed after\n * creation.\n * @instance\n *\n * @readonly\n */\n default: {\n get() {\n return default_;\n },\n set() {}\n },\n /**\n * @memberof TextTrack\n * @member {string} mode\n * Set the mode of this TextTrack to a valid {@link TextTrack~Mode}. Will\n * not be set if setting to an invalid mode.\n * @instance\n *\n * @fires TextTrack#modechange\n */\n mode: {\n get() {\n return mode;\n },\n set(newMode) {\n if (!TextTrackMode[newMode]) {\n return;\n }\n if (mode === newMode) {\n return;\n }\n mode = newMode;\n if (!this.preload_ && mode !== 'disabled' && this.cues.length === 0) {\n // On-demand load.\n loadTrack(this.src, this);\n }\n this.stopTracking();\n if (mode !== 'disabled') {\n this.startTracking();\n }\n /**\n * An event that fires when mode changes on this track. This allows\n * the TextTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec!\n *\n * @event TextTrack#modechange\n * @type {Event}\n */\n this.trigger('modechange');\n }\n },\n /**\n * @memberof TextTrack\n * @member {TextTrackCueList} cues\n * The text track cue list for this TextTrack.\n * @instance\n */\n cues: {\n get() {\n if (!this.loaded_) {\n return null;\n }\n return cues;\n },\n set() {}\n },\n /**\n * @memberof TextTrack\n * @member {TextTrackCueList} activeCues\n * The list text track cues that are currently active for this TextTrack.\n * @instance\n */\n activeCues: {\n get() {\n if (!this.loaded_) {\n return null;\n }\n\n // nothing to do\n if (this.cues.length === 0) {\n return activeCues;\n }\n const ct = this.tech_.currentTime();\n const active = [];\n for (let i = 0, l = this.cues.length; i < l; i++) {\n const cue = this.cues[i];\n if (cue.startTime <= ct && cue.endTime >= ct) {\n active.push(cue);\n }\n }\n changed = false;\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (this.activeCues_.indexOf(active[i]) === -1) {\n changed = true;\n }\n }\n }\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n return activeCues;\n },\n // /!\\ Keep this setter empty (see the timeupdate handler above)\n set() {}\n }\n });\n if (settings.src) {\n this.src = settings.src;\n if (!this.preload_) {\n // Tracks will load on-demand.\n // Act like we're loaded for other purposes.\n this.loaded_ = true;\n }\n if (this.preload_ || settings.kind !== 'subtitles' && settings.kind !== 'captions') {\n loadTrack(this.src, this);\n }\n } else {\n this.loaded_ = true;\n }\n }\n startTracking() {\n // More precise cues based on requestVideoFrameCallback with a requestAnimationFram fallback\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n // Also listen to timeupdate in case rVFC/rAF stops (window in background, audio in video el)\n this.tech_.on('timeupdate', this.timeupdateHandler);\n }\n stopTracking() {\n if (this.rvf_) {\n this.tech_.cancelVideoFrameCallback(this.rvf_);\n this.rvf_ = undefined;\n }\n this.tech_.off('timeupdate', this.timeupdateHandler);\n }\n\n /**\n * Add a cue to the internal list of cues.\n *\n * @param {TextTrack~Cue} cue\n * The cue to add to our internal list\n */\n addCue(originalCue) {\n let cue = originalCue;\n\n // Testing if the cue is a VTTCue in a way that survives minification\n if (!('getCueAsHTML' in cue)) {\n cue = new window$1.vttjs.VTTCue(originalCue.startTime, originalCue.endTime, originalCue.text);\n for (const prop in originalCue) {\n if (!(prop in cue)) {\n cue[prop] = originalCue[prop];\n }\n }\n\n // make sure that `id` is copied over\n cue.id = originalCue.id;\n cue.originalCue_ = originalCue;\n }\n const tracks = this.tech_.textTracks();\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n this.cues_.push(cue);\n this.cues.setCues_(this.cues_);\n }\n\n /**\n * Remove a cue from our internal list\n *\n * @param {TextTrack~Cue} removeCue\n * The cue to remove from our internal list\n */\n removeCue(removeCue) {\n let i = this.cues_.length;\n while (i--) {\n const cue = this.cues_[i];\n if (cue === removeCue || cue.originalCue_ && cue.originalCue_ === removeCue) {\n this.cues_.splice(i, 1);\n this.cues.setCues_(this.cues_);\n break;\n }\n }\n }\n}\n\n/**\n * cuechange - One or more cues in the track have become active or stopped being active.\n *\n * @protected\n */\nTextTrack.prototype.allowedEvents_ = {\n cuechange: 'cuechange'\n};\n\n/**\n * A representation of a single `AudioTrack`. If it is part of an {@link AudioTrackList}\n * only one `AudioTrack` in the list will be enabled at a time.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotrack}\n * @extends Track\n */\nclass AudioTrack extends Track {\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {AudioTrack~Kind} [options.kind='']\n * A valid audio track kind\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {boolean} [options.enabled]\n * If this track is the one that is currently playing. If this track is part of\n * an {@link AudioTrackList}, only one {@link AudioTrack} will be enabled.\n */\n constructor(options = {}) {\n const settings = merge$1(options, {\n kind: AudioTrackKind[options.kind] || ''\n });\n super(settings);\n let enabled = false;\n\n /**\n * @memberof AudioTrack\n * @member {boolean} enabled\n * If this `AudioTrack` is enabled or not. When setting this will\n * fire {@link AudioTrack#enabledchange} if the state of enabled is changed.\n * @instance\n *\n * @fires VideoTrack#selectedchange\n */\n Object.defineProperty(this, 'enabled', {\n get() {\n return enabled;\n },\n set(newEnabled) {\n // an invalid or unchanged value\n if (typeof newEnabled !== 'boolean' || newEnabled === enabled) {\n return;\n }\n enabled = newEnabled;\n\n /**\n * An event that fires when enabled changes on this track. This allows\n * the AudioTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec! Native tracks will do\n * this internally without an event.\n *\n * @event AudioTrack#enabledchange\n * @type {Event}\n */\n this.trigger('enabledchange');\n }\n });\n\n // if the user sets this track to selected then\n // set selected to that true value otherwise\n // we keep it false\n if (settings.enabled) {\n this.enabled = settings.enabled;\n }\n this.loaded_ = true;\n }\n}\n\n/**\n * A representation of a single `VideoTrack`.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotrack}\n * @extends Track\n */\nclass VideoTrack extends Track {\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {string} [options.kind='']\n * A valid {@link VideoTrack~Kind}\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {boolean} [options.selected]\n * If this track is the one that is currently playing.\n */\n constructor(options = {}) {\n const settings = merge$1(options, {\n kind: VideoTrackKind[options.kind] || ''\n });\n super(settings);\n let selected = false;\n\n /**\n * @memberof VideoTrack\n * @member {boolean} selected\n * If this `VideoTrack` is selected or not. When setting this will\n * fire {@link VideoTrack#selectedchange} if the state of selected changed.\n * @instance\n *\n * @fires VideoTrack#selectedchange\n */\n Object.defineProperty(this, 'selected', {\n get() {\n return selected;\n },\n set(newSelected) {\n // an invalid or unchanged value\n if (typeof newSelected !== 'boolean' || newSelected === selected) {\n return;\n }\n selected = newSelected;\n\n /**\n * An event that fires when selected changes on this track. This allows\n * the VideoTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec! Native tracks will do\n * this internally without an event.\n *\n * @event VideoTrack#selectedchange\n * @type {Event}\n */\n this.trigger('selectedchange');\n }\n });\n\n // if the user sets this track to selected then\n // set selected to that true value otherwise\n // we keep it false\n if (settings.selected) {\n this.selected = settings.selected;\n }\n }\n}\n\n/**\n * @file html-track-element.js\n */\n\n/** @import Tech from '../tech/tech' */\n\n/**\n * A single track represented in the DOM.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#htmltrackelement}\n * @extends EventTarget\n */\nclass HTMLTrackElement extends EventTarget$2 {\n /**\n * Create an instance of this class.\n *\n * @param {Object} options={}\n * Object of option names and values\n *\n * @param {Tech} options.tech\n * A reference to the tech that owns this HTMLTrackElement.\n *\n * @param {TextTrack~Kind} [options.kind='subtitles']\n * A valid text track kind.\n *\n * @param {TextTrack~Mode} [options.mode='disabled']\n * A valid text track mode.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this TextTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {string} [options.srclang='']\n * A valid two character language code. An alternative, but deprioritized\n * version of `options.language`\n *\n * @param {string} [options.src]\n * A url to TextTrack cues.\n *\n * @param {boolean} [options.default]\n * If this track should default to on or off.\n */\n constructor(options = {}) {\n super();\n let readyState;\n const track = new TextTrack(options);\n this.kind = track.kind;\n this.src = track.src;\n this.srclang = track.language;\n this.label = track.label;\n this.default = track.default;\n Object.defineProperties(this, {\n /**\n * @memberof HTMLTrackElement\n * @member {HTMLTrackElement~ReadyState} readyState\n * The current ready state of the track element.\n * @instance\n */\n readyState: {\n get() {\n return readyState;\n }\n },\n /**\n * @memberof HTMLTrackElement\n * @member {TextTrack} track\n * The underlying TextTrack object.\n * @instance\n *\n */\n track: {\n get() {\n return track;\n }\n }\n });\n readyState = HTMLTrackElement.NONE;\n\n /**\n * @listens TextTrack#loadeddata\n * @fires HTMLTrackElement#load\n */\n track.addEventListener('loadeddata', () => {\n readyState = HTMLTrackElement.LOADED;\n this.trigger({\n type: 'load',\n target: this\n });\n });\n }\n}\n\n/**\n * @protected\n */\nHTMLTrackElement.prototype.allowedEvents_ = {\n load: 'load'\n};\n\n/**\n * The text track not loaded state.\n *\n * @type {number}\n * @static\n */\nHTMLTrackElement.NONE = 0;\n\n/**\n * The text track loading state.\n *\n * @type {number}\n * @static\n */\nHTMLTrackElement.LOADING = 1;\n\n/**\n * The text track loaded state.\n *\n * @type {number}\n * @static\n */\nHTMLTrackElement.LOADED = 2;\n\n/**\n * The text track failed to load state.\n *\n * @type {number}\n * @static\n */\nHTMLTrackElement.ERROR = 3;\n\n/*\n * This file contains all track properties that are used in\n * player.js, tech.js, html5.js and possibly other techs in the future.\n */\n\nconst NORMAL = {\n audio: {\n ListClass: AudioTrackList,\n TrackClass: AudioTrack,\n capitalName: 'Audio'\n },\n video: {\n ListClass: VideoTrackList,\n TrackClass: VideoTrack,\n capitalName: 'Video'\n },\n text: {\n ListClass: TextTrackList,\n TrackClass: TextTrack,\n capitalName: 'Text'\n }\n};\nObject.keys(NORMAL).forEach(function (type) {\n NORMAL[type].getterName = `${type}Tracks`;\n NORMAL[type].privateName = `${type}Tracks_`;\n});\nconst REMOTE = {\n remoteText: {\n ListClass: TextTrackList,\n TrackClass: TextTrack,\n capitalName: 'RemoteText',\n getterName: 'remoteTextTracks',\n privateName: 'remoteTextTracks_'\n },\n remoteTextEl: {\n ListClass: HtmlTrackElementList,\n TrackClass: HTMLTrackElement,\n capitalName: 'RemoteTextTrackEls',\n getterName: 'remoteTextTrackEls',\n privateName: 'remoteTextTrackEls_'\n }\n};\nconst ALL = Object.assign({}, NORMAL, REMOTE);\nREMOTE.names = Object.keys(REMOTE);\nNORMAL.names = Object.keys(NORMAL);\nALL.names = [].concat(REMOTE.names).concat(NORMAL.names);\n\n/**\n * @file tech.js\n */\n\n/** @import { TimeRange } from '../utils/time' */\n\n/**\n * An Object containing a structure like: `{src: 'url', type: 'mimetype'}` or string\n * that just contains the src url alone.\n * * `var SourceObject = {src: 'http://ex.com/video.mp4', type: 'video/mp4'};`\n * `var SourceString = 'http://example.com/some-video.mp4';`\n *\n * @typedef {Object|string} SourceObject\n *\n * @property {string} src\n * The url to the source\n *\n * @property {string} type\n * The mime type of the source\n */\n\n/**\n * A function used by {@link Tech} to create a new {@link TextTrack}.\n *\n * @private\n *\n * @param {Tech} self\n * An instance of the Tech class.\n *\n * @param {string} kind\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)\n *\n * @param {string} [label]\n * Label to identify the text track\n *\n * @param {string} [language]\n * Two letter language abbreviation\n *\n * @param {Object} [options={}]\n * An object with additional text track options\n *\n * @return {TextTrack}\n * The text track that was created.\n */\nfunction createTrackHelper(self, kind, label, language, options = {}) {\n const tracks = self.textTracks();\n options.kind = kind;\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n const track = new ALL.text.TrackClass(options);\n tracks.addTrack(track);\n return track;\n}\n\n/**\n * This is the base class for media playback technology controllers, such as\n * {@link HTML5}\n *\n * @extends Component\n */\nclass Tech extends Component$1 {\n /**\n * Create an instance of this Tech.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Function} [ready]\n * Callback function to call when the `HTML5` Tech is ready.\n */\n constructor(options = {}, ready = function () {}) {\n // we don't want the tech to report user activity automatically.\n // This is done manually in addControlsListeners\n options.reportTouchActivity = false;\n super(null, options, ready);\n this.onDurationChange_ = e => this.onDurationChange(e);\n this.trackProgress_ = e => this.trackProgress(e);\n this.trackCurrentTime_ = e => this.trackCurrentTime(e);\n this.stopTrackingCurrentTime_ = e => this.stopTrackingCurrentTime(e);\n this.disposeSourceHandler_ = e => this.disposeSourceHandler(e);\n this.queuedHanders_ = new Set();\n\n // keep track of whether the current source has played at all to\n // implement a very limited played()\n this.hasStarted_ = false;\n this.on('playing', function () {\n this.hasStarted_ = true;\n });\n this.on('loadstart', function () {\n this.hasStarted_ = false;\n });\n ALL.names.forEach(name => {\n const props = ALL[name];\n if (options && options[props.getterName]) {\n this[props.privateName] = options[props.getterName];\n }\n });\n\n // Manually track progress in cases where the browser/tech doesn't report it.\n if (!this.featuresProgressEvents) {\n this.manualProgressOn();\n }\n\n // Manually track timeupdates in cases where the browser/tech doesn't report it.\n if (!this.featuresTimeupdateEvents) {\n this.manualTimeUpdatesOn();\n }\n ['Text', 'Audio', 'Video'].forEach(track => {\n if (options[`native${track}Tracks`] === false) {\n this[`featuresNative${track}Tracks`] = false;\n }\n });\n if (options.nativeCaptions === false || options.nativeTextTracks === false) {\n this.featuresNativeTextTracks = false;\n } else if (options.nativeCaptions === true || options.nativeTextTracks === true) {\n this.featuresNativeTextTracks = true;\n }\n if (!this.featuresNativeTextTracks) {\n this.emulateTextTracks();\n }\n this.preloadTextTracks = options.preloadTextTracks !== false;\n this.autoRemoteTextTracks_ = new ALL.text.ListClass();\n this.initTrackListeners();\n\n // Turn on component tap events only if not using native controls\n if (!options.nativeControlsForTouch) {\n this.emitTapEvents();\n }\n if (this.constructor) {\n this.name_ = this.constructor.name || 'Unknown Tech';\n }\n }\n\n /**\n * A special function to trigger source set in a way that will allow player\n * to re-trigger if the player or tech are not ready yet.\n *\n * @fires Tech#sourceset\n * @param {string} src The source string at the time of the source changing.\n */\n triggerSourceset(src) {\n if (!this.isReady_) {\n // on initial ready we have to trigger source set\n // 1ms after ready so that player can watch for it.\n this.one('ready', () => this.setTimeout(() => this.triggerSourceset(src), 1));\n }\n\n /**\n * Fired when the source is set on the tech causing the media element\n * to reload.\n *\n * @see {@link Player#event:sourceset}\n * @event Tech#sourceset\n * @type {Event}\n */\n this.trigger({\n src,\n type: 'sourceset'\n });\n }\n\n /* Fallbacks for unsupported event types\n ================================================================================ */\n\n /**\n * Polyfill the `progress` event for browsers that don't support it natively.\n *\n * @see {@link Tech#trackProgress}\n */\n manualProgressOn() {\n this.on('durationchange', this.onDurationChange_);\n this.manualProgress = true;\n\n // Trigger progress watching when a source begins loading\n this.one('ready', this.trackProgress_);\n }\n\n /**\n * Turn off the polyfill for `progress` events that was created in\n * {@link Tech#manualProgressOn}\n */\n manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n this.off('durationchange', this.onDurationChange_);\n }\n\n /**\n * This is used to trigger a `progress` event when the buffered percent changes. It\n * sets an interval function that will be called every 500 milliseconds to check if the\n * buffer end percent has changed.\n *\n * > This function is called by {@link Tech#manualProgressOn}\n *\n * @param {Event} event\n * The `ready` event that caused this to run.\n *\n * @listens Tech#ready\n * @fires Tech#progress\n */\n trackProgress(event) {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(bind_(this, function () {\n // Don't trigger unless buffered amount is greater than last time\n\n const numBufferedPercent = this.bufferedPercent();\n if (this.bufferedPercent_ !== numBufferedPercent) {\n /**\n * See {@link Player#progress}\n *\n * @event Tech#progress\n * @type {Event}\n */\n this.trigger('progress');\n }\n this.bufferedPercent_ = numBufferedPercent;\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n\n /**\n * Update our internal duration on a `durationchange` event by calling\n * {@link Tech#duration}.\n *\n * @param {Event} event\n * The `durationchange` event that caused this to run.\n *\n * @listens Tech#durationchange\n */\n onDurationChange(event) {\n this.duration_ = this.duration();\n }\n\n /**\n * Get and create a `TimeRange` object for buffering.\n *\n * @return {TimeRange}\n * The time range object that was created.\n */\n buffered() {\n return createTimeRanges$1(0, 0);\n }\n\n /**\n * Get the percentage of the current video that is currently buffered.\n *\n * @return {number}\n * A number from 0 to 1 that represents the decimal percentage of the\n * video that is buffered.\n *\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\n\n /**\n * Turn off the polyfill for `progress` events that was created in\n * {@link Tech#manualProgressOn}\n * Stop manually tracking progress events by clearing the interval that was set in\n * {@link Tech#trackProgress}.\n */\n stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n\n /**\n * Polyfill the `timeupdate` event for browsers that don't support it.\n *\n * @see {@link Tech#trackCurrentTime}\n */\n manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n this.on('play', this.trackCurrentTime_);\n this.on('pause', this.stopTrackingCurrentTime_);\n }\n\n /**\n * Turn off the polyfill for `timeupdate` events that was created in\n * {@link Tech#manualTimeUpdatesOn}\n */\n manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime_);\n this.off('pause', this.stopTrackingCurrentTime_);\n }\n\n /**\n * Sets up an interval function to track current time and trigger `timeupdate` every\n * 250 milliseconds.\n *\n * @listens Tech#play\n * @triggers Tech#timeupdate\n */\n trackCurrentTime() {\n if (this.currentTimeInterval) {\n this.stopTrackingCurrentTime();\n }\n this.currentTimeInterval = this.setInterval(function () {\n /**\n * Triggered at an interval of 250ms to indicated that time is passing in the video.\n *\n * @event Tech#timeupdate\n * @type {Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n\n // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }, 250);\n }\n\n /**\n * Stop the interval function created in {@link Tech#trackCurrentTime} so that the\n * `timeupdate` event is no longer triggered.\n *\n * @listens {Tech#pause}\n */\n stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval);\n\n // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n }\n\n /**\n * Turn off all event polyfills, clear the `Tech`s {@link AudioTrackList},\n * {@link VideoTrackList}, and {@link TextTrackList}, and dispose of this Tech.\n *\n * @fires Component#dispose\n */\n dispose() {\n // clear out all tracks because we can't reuse them between techs\n this.clearTracks(NORMAL.names);\n\n // Turn off any manual progress or timeupdate tracking\n if (this.manualProgress) {\n this.manualProgressOff();\n }\n if (this.manualTimeUpdates) {\n this.manualTimeUpdatesOff();\n }\n super.dispose();\n }\n\n /**\n * Clear out a single `TrackList` or an array of `TrackLists` given their names.\n *\n * > Note: Techs without source handlers should call this between sources for `video`\n * & `audio` tracks. You don't want to use them between tracks!\n *\n * @param {string[]|string} types\n * TrackList names to clear, valid names are `video`, `audio`, and\n * `text`.\n */\n clearTracks(types) {\n types = [].concat(types);\n // clear out all tracks because we can't reuse them between techs\n types.forEach(type => {\n const list = this[`${type}Tracks`]() || [];\n let i = list.length;\n while (i--) {\n const track = list[i];\n if (type === 'text') {\n this.removeRemoteTextTrack(track);\n }\n list.removeTrack(track);\n }\n });\n }\n\n /**\n * Remove any TextTracks added via addRemoteTextTrack that are\n * flagged for automatic garbage collection\n */\n cleanupAutoTextTracks() {\n const list = this.autoRemoteTextTracks_ || [];\n let i = list.length;\n while (i--) {\n const track = list[i];\n this.removeRemoteTextTrack(track);\n }\n }\n\n /**\n * Reset the tech, which will removes all sources and reset the internal readyState.\n *\n * @abstract\n */\n reset() {}\n\n /**\n * Get the value of `crossOrigin` from the tech.\n *\n * @abstract\n *\n * @see {Html5#crossOrigin}\n */\n crossOrigin() {}\n\n /**\n * Set the value of `crossOrigin` on the tech.\n *\n * @abstract\n *\n * @param {string} crossOrigin the crossOrigin value\n * @see {Html5#setCrossOrigin}\n */\n setCrossOrigin() {}\n\n /**\n * Get or set an error on the Tech.\n *\n * @param {MediaError} [err]\n * Error to set on the Tech\n *\n * @return {MediaError|null}\n * The current error object on the tech, or null if there isn't one.\n */\n error(err) {\n if (err !== undefined) {\n this.error_ = new MediaError(err);\n this.trigger('error');\n }\n return this.error_;\n }\n\n /**\n * Returns the `TimeRange`s that have been played through for the current source.\n *\n * > NOTE: This implementation is incomplete. It does not track the played `TimeRange`.\n * It only checks whether the source has played at all or not.\n *\n * @return {TimeRange}\n * - A single time range if this video has played\n * - An empty set of ranges if not.\n */\n played() {\n if (this.hasStarted_) {\n return createTimeRanges$1(0, 0);\n }\n return createTimeRanges$1();\n }\n\n /**\n * Start playback\n *\n * @abstract\n *\n * @see {Html5#play}\n */\n play() {}\n\n /**\n * Set whether we are scrubbing or not\n *\n * @abstract\n * @param {boolean} _isScrubbing\n * - true for we are currently scrubbing\n * - false for we are no longer scrubbing\n *\n * @see {Html5#setScrubbing}\n */\n setScrubbing(_isScrubbing) {}\n\n /**\n * Get whether we are scrubbing or not\n *\n * @abstract\n *\n * @see {Html5#scrubbing}\n */\n scrubbing() {}\n\n /**\n * Causes a manual time update to occur if {@link Tech#manualTimeUpdatesOn} was\n * previously called.\n *\n * @param {number} _seconds\n * Set the current time of the media to this.\n * @fires Tech#timeupdate\n */\n setCurrentTime(_seconds) {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) {\n /**\n * A manual `timeupdate` event.\n *\n * @event Tech#timeupdate\n * @type {Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n }\n }\n\n /**\n * Turn on listeners for {@link VideoTrackList}, {@link {AudioTrackList}, and\n * {@link TextTrackList} events.\n *\n * This adds {@link EventTarget~EventListeners} for `addtrack`, and `removetrack`.\n *\n * @fires Tech#audiotrackchange\n * @fires Tech#videotrackchange\n * @fires Tech#texttrackchange\n */\n initTrackListeners() {\n /**\n * Triggered when tracks are added or removed on the Tech {@link AudioTrackList}\n *\n * @event Tech#audiotrackchange\n * @type {Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link VideoTrackList}\n *\n * @event Tech#videotrackchange\n * @type {Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link TextTrackList}\n *\n * @event Tech#texttrackchange\n * @type {Event}\n */\n NORMAL.names.forEach(name => {\n const props = NORMAL[name];\n const trackListChanges = () => {\n this.trigger(`${name}trackchange`);\n };\n const tracks = this[props.getterName]();\n tracks.addEventListener('removetrack', trackListChanges);\n tracks.addEventListener('addtrack', trackListChanges);\n this.on('dispose', () => {\n tracks.removeEventListener('removetrack', trackListChanges);\n tracks.removeEventListener('addtrack', trackListChanges);\n });\n });\n }\n\n /**\n * Emulate TextTracks using vtt.js if necessary\n *\n * @fires Tech#vttjsloaded\n * @fires Tech#vttjserror\n */\n addWebVttScript_() {\n if (window$1.WebVTT) {\n return;\n }\n\n // Initially, Tech.el_ is a child of a dummy-div wait until the Component system\n // signals that the Tech is ready at which point Tech.el_ is part of the DOM\n // before inserting the WebVTT script\n if (document$1.body.contains(this.el())) {\n // load via require if available and vtt.js script location was not passed in\n // as an option. novtt builds will turn the above require call into an empty object\n // which will cause this if check to always fail.\n if (!this.options_['vtt.js'] && isPlain(vtt) && Object.keys(vtt).length > 0) {\n this.trigger('vttjsloaded');\n return;\n }\n\n // load vtt.js via the script location option or the cdn of no location was\n // passed in\n const script = document$1.createElement('script');\n script.src = this.options_['vtt.js'] || 'https://vjs.zencdn.net/vttjs/0.14.1/vtt.min.js';\n script.onload = () => {\n /**\n * Fired when vtt.js is loaded.\n *\n * @event Tech#vttjsloaded\n * @type {Event}\n */\n this.trigger('vttjsloaded');\n };\n script.onerror = () => {\n /**\n * Fired when vtt.js was not loaded due to an error\n *\n * @event Tech#vttjsloaded\n * @type {Event}\n */\n this.trigger('vttjserror');\n };\n this.on('dispose', () => {\n script.onload = null;\n script.onerror = null;\n });\n // but have not loaded yet and we set it to true before the inject so that\n // we don't overwrite the injected window.WebVTT if it loads right away\n window$1.WebVTT = true;\n this.el().parentNode.appendChild(script);\n } else {\n this.ready(this.addWebVttScript_);\n }\n }\n\n /**\n * Emulate texttracks\n *\n */\n emulateTextTracks() {\n const tracks = this.textTracks();\n const remoteTracks = this.remoteTextTracks();\n const handleAddTrack = e => tracks.addTrack(e.track);\n const handleRemoveTrack = e => tracks.removeTrack(e.track);\n remoteTracks.on('addtrack', handleAddTrack);\n remoteTracks.on('removetrack', handleRemoveTrack);\n this.addWebVttScript_();\n const updateDisplay = () => this.trigger('texttrackchange');\n const textTracksChanges = () => {\n updateDisplay();\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n };\n textTracksChanges();\n tracks.addEventListener('change', textTracksChanges);\n tracks.addEventListener('addtrack', textTracksChanges);\n tracks.addEventListener('removetrack', textTracksChanges);\n this.on('dispose', function () {\n remoteTracks.off('addtrack', handleAddTrack);\n remoteTracks.off('removetrack', handleRemoveTrack);\n tracks.removeEventListener('change', textTracksChanges);\n tracks.removeEventListener('addtrack', textTracksChanges);\n tracks.removeEventListener('removetrack', textTracksChanges);\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n }\n });\n }\n\n /**\n * Create and returns a remote {@link TextTrack} object.\n *\n * @param {string} kind\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)\n *\n * @param {string} [label]\n * Label to identify the text track\n *\n * @param {string} [language]\n * Two letter language abbreviation\n *\n * @return {TextTrack}\n * The TextTrack that gets created.\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Create an emulated TextTrack for use by addRemoteTextTrack\n *\n * This is intended to be overridden by classes that inherit from\n * Tech in order to create native or custom TextTracks.\n *\n * @param {Object} options\n * The object should contain the options to initialize the TextTrack with.\n *\n * @param {string} [options.kind]\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata).\n *\n * @param {string} [options.label].\n * Label to identify the text track\n *\n * @param {string} [options.language]\n * Two letter language abbreviation.\n *\n * @return {HTMLTrackElement}\n * The track element that gets created.\n */\n createRemoteTextTrack(options) {\n const track = merge$1(options, {\n tech: this\n });\n return new REMOTE.remoteTextEl.TrackClass(track);\n }\n\n /**\n * Creates a remote text track object and returns an html track element.\n *\n * > Note: This can be an emulated {@link HTMLTrackElement} or a native one.\n *\n * @param {Object} options\n * See {@link Tech#createRemoteTextTrack} for more detailed properties.\n *\n * @param {boolean} [manualCleanup=false]\n * - When false: the TextTrack will be automatically removed from the video\n * element whenever the source changes\n * - When True: The TextTrack will have to be cleaned up manually\n *\n * @return {HTMLTrackElement}\n * An Html Track Element.\n *\n */\n addRemoteTextTrack(options = {}, manualCleanup) {\n const htmlTrackElement = this.createRemoteTextTrack(options);\n if (typeof manualCleanup !== 'boolean') {\n manualCleanup = false;\n }\n\n // store HTMLTrackElement and TextTrack to remote list\n this.remoteTextTrackEls().addTrackElement_(htmlTrackElement);\n this.remoteTextTracks().addTrack(htmlTrackElement.track);\n if (manualCleanup === false) {\n // create the TextTrackList if it doesn't exist\n this.ready(() => this.autoRemoteTextTracks_.addTrack(htmlTrackElement.track));\n }\n return htmlTrackElement;\n }\n\n /**\n * Remove a remote text track from the remote `TextTrackList`.\n *\n * @param {TextTrack} track\n * `TextTrack` to remove from the `TextTrackList`\n */\n removeRemoteTextTrack(track) {\n const trackElement = this.remoteTextTrackEls().getTrackElementByTrack_(track);\n\n // remove HTMLTrackElement and TextTrack from remote list\n this.remoteTextTrackEls().removeTrackElement_(trackElement);\n this.remoteTextTracks().removeTrack(track);\n this.autoRemoteTextTracks_.removeTrack(track);\n }\n\n /**\n * Gets available media playback quality metrics as specified by the W3C's Media\n * Playback Quality API.\n *\n * @see [Spec]{@link https://wicg.github.io/media-playback-quality}\n *\n * @return {Object}\n * An object with supported media playback quality metrics\n *\n * @abstract\n */\n getVideoPlaybackQuality() {\n return {};\n }\n\n /**\n * Attempt to create a floating video window always on top of other windows\n * so that users may continue consuming media while they interact with other\n * content sites, or applications on their device.\n *\n * @see [Spec]{@link https://wicg.github.io/picture-in-picture}\n *\n * @return {Promise|undefined}\n * A promise with a Picture-in-Picture window if the browser supports\n * Promises (or one was passed in as an option). It returns undefined\n * otherwise.\n *\n * @abstract\n */\n requestPictureInPicture() {\n return Promise.reject();\n }\n\n /**\n * A method to check for the value of the 'disablePictureInPicture'