{"version":3,"sources":["pages/movieDetail/styles.js","../node_modules/@material-ui/icons/esm/PlayArrow.js","../node_modules/@material-ui/icons/esm/Audiotrack.js","../node_modules/@material-ui/icons/esm/BookmarkRounded.js","images/icons/bookmark.svg","images/icons/document.svg","../node_modules/@material-ui/core/esm/ListItemSecondaryAction/ListItemSecondaryAction.js","../node_modules/@material-ui/icons/esm/AddCircle.js","components/VideoCollectionDialog/VideoCollectionDialog.js","components/LoginAlertDialog/LoginAlertDialog.js","components/VideoQuotaExceedDialog/VideoQuotaExceedDialog.js","components/MovieDescription/MovieDescription.js","components/VideoSideBar/VideoSideBar.js","../node_modules/videojs-hls-quality-selector/dist/videojs-hls-quality-selector.es.js","../node_modules/videojs-contrib-quality-levels/dist/videojs-contrib-quality-levels.es.js","../node_modules/videojs-overlay/dist/videojs-overlay.es.js","components/VideoJsPlayer/langZhTW.js","components/VideoJsPlayer/VideoJsPlayer.js","../node_modules/@material-ui/icons/esm/TrendingUpRounded.js","pages/movieDetail/MovieDetail.js","components/PlayButton/PlayButton.js","components/MovieAlbumItem/MovieAlbumItem.js","components/core/DialogTitle.js","../node_modules/global/window.js","components/MovieAlbum/styles.js","images/icons/camera.svg","components/WideVideoAlbumItem/WideVideoAlbumItem.js","components/MovieAlbum/MovieAlbum.js","components/VideoTagButton/VideoTagButton.js","../node_modules/lodash/slice.js","../node_modules/lodash/_baseSlice.js","../node_modules/@videojs/vhs-utils/es/mp4-helpers.js","../node_modules/@videojs/vhs-utils/es/resolve-url.js","../node_modules/@videojs/vhs-utils/es/stream.js","../node_modules/m3u8-parser/dist/m3u8-parser.es.js","../node_modules/@videojs/vhs-utils/es/codecs.js","../node_modules/@videojs/vhs-utils/es/media-types.js","../node_modules/mpd-parser/dist/mpd-parser.es.js","../node_modules/@videojs/vhs-utils/es/byte-helpers.js","../node_modules/@videojs/vhs-utils/es/id3-helpers.js","../node_modules/@videojs/vhs-utils/es/opus-helpers.js","../node_modules/@videojs/vhs-utils/es/ebml-helpers.js","../node_modules/@videojs/vhs-utils/es/nal-helpers.js","../node_modules/@videojs/vhs-utils/es/containers.js","../node_modules/video.js/dist/video.es.js","../node_modules/@material-ui/core/esm/Fade/Fade.js","../node_modules/lodash/concat.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/orderBy.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/_isIterateeCall.js","components/MovieMenu/styles.js","components/MovieMenu/MovieMenu.js","../node_modules/@xmldom/xmldom/lib/conventions.js","components/CollectionsDialog/CollectionCreateDialog.js","components/CollectionsDialog/CollectionRenameDialog.js","components/CollectionsDialog/CollectionDeleteDialog.js","components/CollectionsDialog/CollectionCopyDialog.js","../node_modules/global/document.js","../node_modules/video.js/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@material-ui/core/esm/Backdrop/Backdrop.js","../node_modules/@material-ui/core/esm/Dialog/Dialog.js","../node_modules/@material-ui/core/esm/DialogTitle/DialogTitle.js","../node_modules/@material-ui/core/esm/DialogContent/DialogContent.js","../node_modules/@material-ui/core/esm/DialogContentText/DialogContentText.js","../node_modules/@material-ui/core/esm/DialogActions/DialogActions.js","../node_modules/lodash/_apply.js","../node_modules/@videojs/vhs-utils/es/decode-b64-to-uint8-array.js","../node_modules/@xmldom/xmldom/lib/dom.js","../node_modules/@material-ui/core/esm/ListItemIcon/ListItemIcon.js","../node_modules/@material-ui/core/esm/ListItemText/ListItemText.js","../node_modules/@material-ui/icons/esm/Close.js","../node_modules/lodash/isNull.js","../node_modules/lodash/isUndefined.js","images/error/image_not_found.png","../node_modules/lodash/throttle.js","../node_modules/lodash/debounce.js","../node_modules/lodash/now.js","../node_modules/lodash/forEach.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_castFunction.js","../node_modules/lodash/invoke.js","../node_modules/lodash/_baseInvoke.js","../node_modules/lodash/last.js","../node_modules/lodash/_parent.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/constant.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_shortOut.js","../node_modules/video.js/node_modules/@babel/runtime/helpers/extends.js","../node_modules/video.js/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/video.js/node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/safe-json-parse/tuple.js","../node_modules/keycode/index.js","../node_modules/@videojs/xhr/lib/index.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/is-function/index.js","../node_modules/@videojs/xhr/lib/http-handler.js","../node_modules/videojs-vtt.js/lib/browser-index.js","../node_modules/videojs-vtt.js/lib/vtt.js","../node_modules/videojs-vtt.js/lib/vttcue.js","../node_modules/videojs-vtt.js/lib/vttregion.js","../node_modules/video.js/node_modules/@babel/runtime/helpers/construct.js","../node_modules/video.js/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/video.js/node_modules/@babel/runtime/helpers/inherits.js","../node_modules/url-toolkit/src/url-toolkit.js","../node_modules/m3u8-parser/node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/m3u8-parser/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/m3u8-parser/node_modules/@babel/runtime/helpers/extends.js","../node_modules/m3u8-parser/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/buffer/index.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js","../node_modules/@xmldom/xmldom/lib/index.js","../node_modules/@xmldom/xmldom/lib/dom-parser.js","../node_modules/@xmldom/xmldom/lib/entities.js","../node_modules/@xmldom/xmldom/lib/sax.js","../node_modules/mux.js/lib/tools/parse-sidx.js","../node_modules/mux.js/lib/utils/clock.js","../node_modules/videojs-seek-buttons/dist/videojs-seek-buttons.js","../node_modules/videojs-hotkeys/videojs.hotkeys.min.js"],"names":["makeStyles","theme","dashedBorder","border","borderColor","palette","primary","main","padding","spacing","paddingTop","paddingBottom","marginTop","text","marginBottom","movieDetailContainer","marginLeft","marginRight","movieDescriptionContainer","breakpoints","down","playerContainer","width","backgroundColor","player","flex","margin","geoContainer","typography","subtitle1","color","position","textCenter","top","left","transform","textAlign","createSvgIcon","React","d","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","excluded","sourceKeys","keys","indexOf","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","createElement","fill","_ref","svgRef","title","props","height","viewBox","ref","forwardRef","ListItemSecondaryAction","classes","className","other","_objectWithoutProperties","_extends","clsx","root","muiName","withStyles","right","name","useStyles","createStyles","paper","borderRadius","collectionsContainer","maxHeight","titleRoot","display","alignItems","justifyContent","fontSize","fontWeight","titleCloseButton","cursor","titleChild","dialogActions","diaglogActionButtonText","diaglogActionButton","hidden","VideoCollectionDialog","videoId","open","onClose","status","checkedIds","useCollectionState","creatingDialogFromVideoColDialog","createdColID","enqueueSnackbar","useSnackbar","collectionDispatch","useCollectionDispatch","isAuthenticated","useUserState","useVideoCollections","videoCollections","setVideoCollections","useState","checked","setChecked","unchecked","setUnchecked","openCreateDialog","setOpenCreateDialog","expected","uniq","filter","value","handleClose","type","handleToggle","collected","newChecked","newUnchecked","inChecked","inUnchecked","pop","push","useEffect","CollectionList","List","map","labelId","id","ListItem","role","undefined","dense","button","onClick","ListItemIcon","Checkbox","edge","tabIndex","disableRipple","inputProps","ListItemText","Dialog","aria-labelledby","classNames","DialogContent","DialogActions","Button","startIcon","AddCircle","variant","updateVideoCollections","video_id","expected_ids","then","data","createIds","create","e","collection_id","deleteIds","delete","newVideoCollections","collections","elm","collectionId","originVal","catch","err","console","log","setOpen","defaultProps","propsTypes","dialogPaper","dialogTitle","dialogDescription","smallCaption","dialogButton","caption","Transition","Slide","direction","LoginAlertDialog","loginUrl","handleDialogClose","TransitionComponent","keepMounted","aria-describedby","DialogTitle","DialogContentText","href","dialogSubmitButton","dark","VideoQuotaExceedDialog","h2","interactionButton","paddingLeft","paddingRight","light","interactionButtonText","h6","tag","videoTagContainer","content","info","subtitle","common","grey","colorBlack","body","dropDownList","boxShadow","menuListItem","body2","menuListItemSelected","grow","flexGrow","MovieDescription","videoInfo","videoType","trackIndex","playerRef","history","useHistory","trackEvent","useMatomo","videoDispatch","useVideoDispatch","isLogin","userInfo","isTrailer","video","directors","actors","tags","attachments","cid","openBookmarkDialog","setOpenBookmarkDialog","openLoginDialog","setOpenLoginDialog","openQuotaDialog","setOpenQuotaDialog","trackLangs","get","subtitleLangs","rateName","runtime","tracks","metaInfo","isEmpty","join","requireLoginWrapper","cb","handleLoginDialogOpen","handleClickPlayMovie","handlePlayMovie","reserveQuota","current","handleClickPlayTrailer","handlePlayTrailer","PlayMovieButton","PlayArrow","Box","PlayTrailerButton","ChangeTrackButton","trackMenuAnchorEl","setTrackMenuAnchorEl","handleTrackMenuClose","Audiotrack","aria-controls","aria-haspopup","event","currentTarget","Menu","anchorEl","getContentAnchorEl","elevation","anchorOrigin","vertical","horizontal","transformOrigin","autoFocus","Boolean","track","idx","MenuItem","selected","isUndefined","isNull","nextTrack","payload","url","handleClickTrackItem","langName","AttachmentButton","attachmentMenuAnchorEl","setAttachmentMenuAnchorEl","handleClickAttachmentButton","handleAttachmentMenuClose","handleClickAttchementItem","downloadAttachment","finally","attachment","InteractionButtons","Grid","item","DefaultHeadLayout","xs","container","justify","title_zh","SmallHeadLayout","Hidden","xsDown","smUp","Typography","title_fl","VideoTagButton","parse","description","name_zh","name_fl","errorImage","require","videoSideBar","maxWidth","overflowY","videoItem","thumbnail","objectFit","between","videoTitle","subtitle2","VideoSideBarItem","onSelect","isTrailerUrl","window","location","pathname","src","onError","onerror","alt","VideoSideBar","items","setSelectedVideoId","handleSelect","_typeof","Symbol","iterator","obj","constructor","classCallCheck","AwaitValue","AsyncGenerator","gen","front","back","resume","arg","result","Promise","resolve","settle","done","reject","next","_invoke","request","return","asyncIterator","throw","instance","Constructor","TypeError","inherits","subClass","superClass","enumerable","writable","configurable","setPrototypeOf","__proto__","possibleConstructorReturn","self","ReferenceError","VideoJsButtonClass","videojs","getComponent","VideoJsMenuClass","VideoJsComponent","Dom","dom","ConcreteButton","_VideoJsButtonClass","localize","createItems","createMenu","string","menu","player_","menuButton","hideThreshold_","options_","titleEl","createEl","innerHTML","charAt","toUpperCase","slice","titleComponent","el","addItem","ConcreteMenuItem","_VideoJsMenuItemClass","qualityButton","plugin","_this","label","selectable","handleClick","setQuality","defaults","registerPlugin","HlsQualitySelectorPlugin","options","config","qualityLevels","getHls","createQualityButton","bindPlayerEvents","tech","IWillNotUseThisInPlugins","hls","on","onAddQualityLevel","bind","_qualityButton","placementIndex","controlBar","children","concreteButtonInstance","addChild","componentClass","addClass","displayCurrentQuality","setButtonInnerText","icon","vjsIconClass","menuButton_","$","removeClass","getQualityMenuItem","levels","levels_","levelItems","_loop","_existingItem","levelItem","sort","update","qualityList","_currentQuality","quality","enabled","unpressButton","getCurrentQuality","hlsQualitySelector","_this2","ready","onPlayerReady","mergeOptions","VERSION","_assertThisInitialized","QualityLevel","representation","level","browser","IS_IE8","prop","document","bitrate","bandwidth","enabled_","defineProperty","set","enable","QualityLevelList","_videojs$EventTarget","list","selectedIndex_","_proto","addQualityLevel","qualityLevel","getQualityLevelById","index","trigger","removeQualityLevel","removed","l","splice","dispose","EventTarget","allowedEvents_","change","addqualitylevel","removequalitylevel","originalPluginFn","qualityLevelList","disposeHandler","off","initPlugin","align","class","debug","showBackground","attachToControlBar","overlays","start","end","Component","isNumber","n","hasNoWhitespace","s","test","Overlay","_Component","forEach","Error","name$$1","startEvent_","rewindListener_","endEvent_","hide","background","DocumentFragment","appendChild","appendContent","fn","_len","args","Array","_key","shift","concat","endListener_","startListener_","shouldHide_","time","show","shouldShow_","hasShownSinceSeek_","Math","floor","currentTime","previous","previousTime_","registerComponent","settings","isArray","overlays_","overlay","removeChild","o","controls","referenceChild","getChild","referenceChildIndex","playerChild","insertBefore","Quality","Auto","Play","Pause","Duration","LIVE","Loaded","Progress","Fullscreen","Mute","Unmute","Subtitles","Captions","Chapters","Descriptions","Close","Replay","Text","White","Black","Red","Green","Blue","Yellow","Magenta","Cyan","Background","Window","Transparent","Opaque","None","Raised","Depressed","Uniform","Dropshadow","Casual","Script","Reset","Done","VideoJsPlayer","forwardedRef","videoInfoState","pushInstruction","userDispatch","useUserDispatch","setPlayer","openDialog","setOpenDialog","tabId","getTabID","isMovie","needQuota","videoUrl","handleReserveQuotaErr","includes","signOut","handlePlaybackStarted","a","createUserWatchHistory","handleClickQualityV2","elementReady","nodeList","node","setPlayerQuality","getPreferQuality","setTimeout","maxQuailty","getMaxQuality","handleHeartbeatThrottle","throttle","isPlaying","invoke","Number","parseInt","duration","tracker","watchedVideo","spent","videoHeartBeatSec","getMovieTime","releaseQuota","ts","getUnixTs","sessionStorage","setItem","sendQuotaHeartBeat","msg","has_quota","pause","recordNoQuota","quotaCnt","quota_cnt","setInterval","clearInterval","saveMovieTime","savePlayerCurrentTime","videoSaveTimeIntervalSec","currentSrc","addLanguage","langZhTw","initPlayer","getToken","lastMovieTime","handleMovieContinuePlay","setPreferQuality","listenQualityButtonClick","playedVideo","textTracks","kind","language","mode","deleteMovieTime","error","isFullscreen","webkitExitFullscreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen","exitFullscreen","seekButtons","forward","hotkeys","volumeStep","seekStep","enableNumbers","data-vjs-player","MovieDetail","useTheme","useVideoState","playId","useParams","setVideoInfoState","getVideoUrl","downSm","useMediaQuery","defaultMatches","trailerItems","split","movieItems","replace","sideBarItems","videoJsOptions","aspectRatio","preload","autoplay","responsive","bigPlayButton","TrendingUpRounded","errorDisplay","pictureInPictureToggle","sources","playbackRates","html5","vhs","maxBufferLength","maxMaxBufferLength","maxBufferSize","maxBufferHole","highBufferWatchdogPeriod","nudgeOffset","nudgeMaxRetry","maxFragLookUpTolerance","liveSyncDurationCount","liveMaxLatencyDurationCount","Infinity","liveDurationInfinity","enableWorker","enableSoftwareAES","manifestLoadingTimeOut","manifestLoadingMaxRetry","manifestLoadingRetryDelay","manifestLoadingMaxRetryTimeout","startLevel","levelLoadingTimeOut","levelLoadingMaxRetry","levelLoadingRetryDelay","levelLoadingMaxRetryTimeout","fragLoadingTimeOut","fragLoadingMaxRetry","fragLoadingRetryDelay","fragLoadingMaxRetryTimeout","startFragPrefetch","testBandwidth","progressive","lowLatencyMode","fpsDroppedMonitoringPeriod","fpsDroppedMonitoringThreshold","appendErrorMaxRetry","enableWebVTT","enableIMSC1","enableCEA708Captions","stretchShortVideoTrack","maxAudioFramesDrift","forceKeyFrameOnDiscontinuity","abrEwmaFastLive","abrEwmaSlowLive","abrEwmaFastVoD","abrEwmaSlowVoD","abrEwmaDefaultEstimate","abrBandWidthFactor","abrBandWidthUpFactor","abrMaxWithRealBitrate","maxStarvationDelay","maxLoadingDelay","minAutoBitrate","emeEnabled","widevineLicenseUrl","licenseXhrSetup","drmSystemOptions","useRef","getVideoInfo","state","viewedVideoPage","navigator","userAgent","appVersion","ErrorMask","MemorizedVideoJsContainer","memo","ipRestricted","geoRestricted","subscribedRestricted","prevProps","nextProps","MovieMenu","Paper","recommend","MovieAlbum","slot","recommends","hoverMaskMode","playButton","h4","overflow","playButtonLarge","h3","PlayButton","size","vid","playButtonClass","outlined","backgroundImage","albumItem","extraMarginBottom","poster","opacity","enlargePoster","up","imgFluid","transition","placeholder","play","transitionDuration","playMask","playMaskDetail","maskMeta","maskIntro","whiteSpace","h7","relative","blockWithText","lineHeight","checkbox","checkboxItem","zIndex","triangle","borderStyle","borderWidth","borderRightColor","whiteMask","whiteMaskSelected","link","RectangleMask","BlackCheckbox","ImgPlaceholder","style","MovieAlbumItem","showMeta","showTitle","showHover","showCheckBox","editing","hoverEnlargePoster","customMetaText","collectionID","videoSelected","HoverMask","maskTitle","others","underline","disabled","srcSet","getThumbnailUrl","ext","PropTypes","bool","closeButton","disableTypography","IconButton","aria-label","win","global","module","exports","album","moreButton","widePosterContainer","flexWrap","flexDirection","widePosterChild","smallWideContainer","largeWideContainer","smallWideContent","topicImg","movieList","largeWidePoster","smallWidePoster","seedOverride","lightBackground","wideMask","wideMaskSmall","wideMaskLargeTitle","wideMaskSmallTitle","metaContainer","metaLargeText","metaText","bottom","blockWithText2","playButtonContainerLg","only","playButtonContainerSm","topicContainer","topicPoster","topicMovie","_objectWithoutPropertiesLoose","_ref2","ForwardRef","minHeight","wideMaskTitle","WideVideoAlbumItem","showDesceiption","WideHoverMask","wideMaskSizeTitleClass","metaTextClass","Link","effect","hideTitle","hideTitleIcon","hideMoreLink","firstFourMovies","DefaultLayout","movie","md","ImgTopicLayout","img_url","staticUrl","img_loc","WidePosterLayout","mb","mt","SeedLayout","more_link","sapcing","layout","renderList","array","isRequired","hover","active","hoverEffect","rest","Fade","in","baseSlice","isIterateeCall","toInteger","DESCRIPTORS","resolveUrl","baseUrl","relativeUrl","nativeURL","URL","protocolLess","removeLocation","URLToolkit","buildAbsoluteURL","newUrl","protocol","Stream","listeners","listener","callbacks","_length","_i","pipe","destination","LineStream","_Stream","buffer","_inheritsLoose","nextNewline","substring","TAB","String","fromCharCode","parseByterange","byterangeString","match","exec","offset","parseAttributes","attributes","attr","attrs","RegExp","ParseStream","customParsers","tagMappers","line","trim","reduce","acc","mapper","mappedLine","newLine","tagType","parseFloat","version","number","playlistType","allowed","URI","uri","BYTERANGE","byterange","RESOLUTION","resolution","BANDWIDTH","dateTimeString","dateTimeObject","Date","IV","toLowerCase","Uint32Array","PRECISE","subkey","addParser","_this3","expression","customType","dataParser","segment","addTagMapper","camelCaseKeys","str","setHoldBack","manifest","serverControl","targetDuration","partTargetDuration","hb","phb","minTargetDuration","minPartDuration","message","Parser","lineStream","parseStream","currentMap","uris","currentUri","hasParts","noop","defaultMediaGroups","currentTimeline","allowCache","discontinuityStarts","segments","lastByterangeEnd","lastPartByterangeEnd","parts","preloadHints","timeline","preloadSegment","entry","mediaGroup","rendition","endlist","endList","inf","mediaSequence","discontinuitySequence","METHOD","KEYFORMAT","contentProtection","KEYID","schemeIdUri","keyId","pssh","decodeB64ToUint8Array","method","iv","isFinite","playlist","playlists","mediaGroups","media","TYPE","NAME","mediaGroupType","default","DEFAULT","autoselect","AUTOSELECT","LANGUAGE","instreamId","CHARACTERISTICS","characteristics","FORCED","forced","discontinuity","targetduration","isNaN","timeOffset","precise","cueOut","cueOutCont","cueIn","skip","warnOnMissingAttributes_","segmentIndex","part","partIndex","renditionReports","r","canBlockReload","canSkipDateranges","hint","isPart","otherHint","report","required","partInf","partTarget","comment","custom","identifier","missing","chunk","regexs","mp4","webm","ogg","audio","muxerVideo","muxerAudio","muxerText","mediaTypes","upperMediaTypes","translateLegacyCodec","codec","orig","profile","avcLevel","toString","parseCodecs","codecString","codecs","codecType","details","mediaType","isAudioCodec","getMimeForCodec","c","every","browserSupportsCodec","MediaSource","isTypeSupported","muxerSupportsCodec","MPEGURL_REGEX","DASH_REGEX","simpleTypeFromSourceType","isObject","merge","objects","flatten","lists","x","y","from","errors","urlTypeToSegment","_ref$baseUrl","_ref$source","_ref$range","range","_ref$indexRange","indexRange","resolvedUri","ranges","startRange","endRange","parseEndNumber","endNumber","segmentRange","static","_attributes$timescale","timescale","sourceDuration","periodDuration","segmentDuration","dynamic","NOW","clientOffset","availabilityStartTime","_attributes$timescale2","_attributes$start","_attributes$minimumUp","minimumUpdatePeriod","_attributes$timeShift","timeShiftBufferDepth","now","periodStartWC","segmentCount","ceil","availableStart","availableEnd","max","min","parseByDuration","_attributes$timescale4","_segmentRange$type","_attributes$timescale3","periodIndex","_attributes$startNumb","startNumber","toSegments","sectionDuration","segmentsFromBase","_attributes$initializ","initialization","_attributes$indexRang","initSegment","sourceURL","segmentTimeInfo","addSidxSegmentsToPlaylist","sidx","sidxByteRange","sidxEnd","mediaReferences","references","referenceType","startIndex","firstOffset","reference","referencedSize","subsegmentDuration","generateSidxKey","byteRangeToString","mergeDiscontiguousPlaylists","_acc$name$segments","lang","k","addSidxSegmentsToPlaylist$1","sidxMapping","sidxKey","sidxMatch","addSidxSegmentsToPlaylists","formatVideoPlaylist","_ref3","_attributes2","AUDIO","SUBTITLES","CODECS","videoOnly","_ref4","mimeType","contentType","audioOnly","_ref5","vttOnly","_ref6","toM3u8","dashPlaylists","locations","_mediaGroups","_dashPlaylists$0$attr","suggestedPresentationDelay","videoPlaylists","audioPlaylists","vttPlaylists","captions","captionServices","VIDEO","isAudioOnly","mainPlaylist","formattedPlaylists","roleLabel","formatted","_attributes","formatAudioPlaylist","organizeAudioPlaylists","subs","_m3u8Attributes","m3u8Attributes","formatVttPlaylist","organizeVttPlaylists","cc","svcObj","svc","service","channel","easyReader","getLiveRValue","parseByTimeline","segmentTimeline","_attributes$minimumUp2","_attributes$media","sIndex","S","repeat","segmentTime","t","count","nextS","identifierPattern","constructTemplateUrl","values","format","identifierReplacement","segmentsFromTemplate","templateValues","RepresentationID","Bandwidth","mapSegment","parseTemplateInfo","Time","presentationTimeOffset","presentationTime","periodStart","segmentsFromList","_attributes$segmentUr","segmentUrls","segmentUrlMap","segmentUrlObject","segmentUrl","mediaRange","SegmentURLToSegmentObject","generateSegments","segmentAttributes","segmentsFn","segmentInfo","template","base","segmentsInfo","_segmentAttributes","_segmentAttributes$ti","findChildren","element","childNodes","tagName","getContent","textContent","parseDuration","_match$slice","year","month","day","hour","minute","second","parsers","mediaPresentationDuration","parsedValue","parseFn","keySystemsMap","buildBaseUrls","referenceUrls","baseUrlElements","baseUrlElement","getSegmentInformation","adaptationSet","segmentTemplate","segmentList","segmentBase","segmentTimelineParentNode","segmentInitializationParentNode","segmentInitialization","toRepresentations","periodAttributes","periodBaseUrls","periodSegmentInfo","adaptationSetAttributes","adaptationSetBaseUrls","roleAttributes","accessibility","_value$split","flags","_value$split2","_value$split2$","opts","opt","_opt$split","val","labelVal","nodeValue","keySystem","psshNode","psshBuffer","representations","adaptationSetSegmentInfo","repBaseUrlElements","repBaseUrls","representationSegmentInfo","inheritBaseUrls","toAdaptationSets","mpdAttributes","mpdBaseUrls","period","parsedPeriodId","adaptationSets","stringToMpdXml","manifestString","xml","mpd","parser","DOMParser","parseFromString","documentElement","getElementsByTagName","parsedManifestInfo","_options","_options$manifestUri","manifestUri","_options$NOW","_options$clientOffset","periodNodes","periods","priorPeriod","priorPeriodAttributes","mpdType","getPeriodStart","representationInfo","inheritAttributes","parseUTCTiming","UTCTimingNode","parseUTCTimingScheme","toUint8","bytes","Uint8Array","ArrayBuffer","isView","byteOffset","byteLength","BigInt","BYTE_TABLE","bytesToNumber","Uint16Array","b","_temp","_ref$signed","signed","_ref$le","le","total","byte","exponent","abs","numberToBytes","_temp2","_ref2$le","byteCount","countBits","byteIndex","bytesToString","decodeURIComponent","escape","stringToBytes","stringIsBytes","unescape","encodeURIComponent","view","charCodeAt","bytesMatch","_temp3","_ref3$offset","_ref3$mask","mask","bByte","ID3","getId3Offset","returnSize","getId3Size","normalizePath","path","parseDescriptors","results","headerSize","z","_DESCRIPTORS$z","subarray","desc","dependsOnEsId","ocrEsId","descriptors","len","oti","streamType","bufferSize","maxBitrate","avgBitrate","findBox","paths","complete","p","normalizePaths","EBML_TAGS","EBML","DocType","Segment","SegmentInfo","Tracks","Track","TrackNumber","DefaultDuration","TrackEntry","TrackType","FlagDefault","CodecID","CodecPrivate","VideoTrack","AudioTrack","Cluster","Timestamp","TimestampScale","BlockGroup","BlockDuration","Block","SimpleBlock","LENGTH_TABLE","getvint","removeLength","getLength","valueBytes","getInfinityDataSize","innerid","dataHeader","findEbml","dataStart","dataEnd","NAL_TYPE_ONE","NAL_TYPE_TWO","EMULATION_PREVENTION","discardEmulationPreventionBytes","positions","newLength","newData","sourceIndex","findNal","dataType","types","nalLimit","nalStart","nalsFound","nalOffset","nalType","CONSTANTS","_isLikely","aac","mp3","docType","mkv","matroska","mov","fmp4","moof","moov","ac3","flac","avi","riff","wav","findH264Nal","findH265Nal","isLikelyTypes","isLikelyFn","browserApi","isLikely","detectContainerForBytes","hooks_","hooks","removeHook","FullscreenApi","prefixed","apiMap","specApi","log$1","createLogger$1","logByType","lvl","lvlRegExp","unshift","LogByTypeFactory","createLogger","subname","all","warn","fname","historyItem","clear","disable","_len2","_key2","_len3","_key3","_len4","_key4","object","each","isPlain","computedStyle","getComputedStyle","computedStyleValue","getPropertyValue","USER_AGENT","webkitVersionMap","appleWebkitVersion","IS_IPOD","IOS_VERSION","IS_ANDROID","ANDROID_VERSION","major","minor","IS_NATIVE_ANDROID","IS_FIREFOX","IS_EDGE","IS_CHROME","CHROME_VERSION","IE_VERSION","IS_SAFARI","IS_WINDOWS","TOUCH_ENABLED","isReal","maxTouchPoints","DocumentTouch","IS_IPAD","IS_IPHONE","IS_IOS","IS_ANY_SAFARI","freeze","isNonBlankString","throwIfWhitespace","isEl","nodeType","isInFrame","parent","createQuerier","selector","context","querySelector","ctx","properties","getOwnPropertyNames","propName","setAttribute","attrName","innerText","prependTo","child","firstChild","hasClass","classToCheck","classList","contains","classToAdd","add","classToRemove","remove","toggleClass","classToToggle","predicate","has","setAttributes","attrValue","removeAttribute","getAttributes","knownBooleans","attrVal","getAttribute","attribute","blockTextSelection","focus","onselectstart","unblockTextSelection","getBoundingClientRect","parentNode","rect","findPosition","offsetParent","offsetWidth","offsetHeight","fullscreenElement","offsetLeft","offsetTop","getPointerPosition","translated","nodeName","_values","boxTarget","box","boxW","boxH","offsetY","offsetX","changedTouches","pageX","pageY","isTextNode","emptyEl","normalizeContent","createTextNode","insertContent","isSingleLeftClick","buttons","videojs$1","$$","_windowLoaded","autoSetup","vids","audios","divs","mediaEls","mediaEl","autoSetupTimeout","wait","vjs","setWindowLoaded","removeEventListener","readyState","addEventListener","FakeWeakMap","createStyleElement","setTextContent","styleSheet","cssText","_guid","newGUID","WeakMap","vdata","performance","access","_supportsPassive","DomData","_cleanUpEvents","elem","handlers","dispatcher","detachEvent","_handleMultipleEvents","callback","fixEvent","fixed_","returnTrue","returnFalse","isPropagationStopped","isImmediatePropagationStopped","old","preventDefault","srcElement","relatedTarget","fromElement","toElement","returnValue","defaultPrevented","stopPropagation","cancelBubble","stopImmediatePropagation","clientX","doc","scrollLeft","clientLeft","clientY","scrollTop","clientTop","which","charCode","keyCode","passiveEvents","guid","hash","handlersCopy","m","supportsPassive","passive","attachEvent","removeType","elemData","ownerDocument","bubbles","targetData","one","func","any","EVENT_MAP","Events","uid","bound","last","EventTarget$2","ael","dispatchEvent","queueTrigger","Map","oldTimeout","clearTimeout","timeout","objName","name_","isEvented","eventBusEl_","isValidEventType","validateTarget","fnName","validateEventType","validateListener","normalizeListenArgs","isTargetingSelf","listen","EventedMixin","_normalizeListenArgs","removeListenerOnDispose","removeRemoverOnTargetDispose","_normalizeListenArgs2","wrapper","largs","_normalizeListenArgs3","_len5","_key5","targetOrType","typeOrListener","evented","eventBusKey","eventedCallbacks","el_","StatefulMixin","setState","stateUpdates","changes","to","stateful","defaultState","handleStateChanged","w","toTitleCase$1","mergeOptions$3","MapSham","map_","thisArg","Map$1","SetSham","set_","Set","Component$1","isDisposed_","parentComponent_","id_","handleLanguagechange","children_","childIndex_","childNameIndex_","setTimeoutIds_","setIntervalIds_","rafIds_","namedRafs_","clearingTimersOnDispose_","initChildren","reportTouchActivity","enableTouchActivity","readyQueue_","isDisposed","tokens","defaultValue","code","languages","primaryCode","primaryLang","localizedString","ret","contentEl","contentEl_","getChildById","getDescendant","names","currentChild","component","componentName","componentClassName","ComponentClass","refNode","childFound","compEl","workingChildren","parentOptions","Tech","some","wchild","isTech","playerOptions","newChild","buildCSSClass","sync","isReady_","triggerReady","readyQueue","lockShowing","unlockShowing","num","skipListeners","dimension","dimensions","widthOrHeight","pxIndex","currentDimension","computedWidthOrHeight","rule","currentDimensions","currentWidth","currentHeight","blur","handleKeyDown","handleKeyPress","emitTapEvents","couldBeTap","touchStart","firstTouch","touches","xdiff","ydiff","sqrt","noTap","reportUserActivity","touchHolding","touchEnd","timeoutId","clearTimersOnDispose_","interval","intervalId","requestAnimationFrame","supportsRaf_","requestNamedAnimationFrame","_this4","cancelNamedAnimationFrame","cancelAnimationFrame","_this5","idName","cancelName","ComponentToRegister","reason","isComp","isPrototypeOf","components_","Player","players","playerNames","pname","getRange","valueIndex","rangeIndex","maxIndex","rangeCheck","createTimeRangesObj","timeRangesObj","createTimeRanges","bufferedPercent","buffered","bufferedDuration","MediaError","defaultMessages","errorTypes","1","2","3","4","5","errNum","isPromise","silencePromise","trackToJson_","cues","cue","startTime","endTime","textTrackConverter","trackEls","trackObjs","trackEl","json","addedTrack","addRemoteTextTrack","addCue","ModalDialog","handleKeyDown_","close_","close","opened_","hasBeenOpened_","hasBeenFilled_","closeable","uncloseable","MODAL_CLASS_NAME","descEl_","previouslyActiveEl_","fillAlways","wasPlaying_","paused","pauseOnOpen","hadControls_","conditionalFocus_","opened","conditionalBlur_","temporary","closeable_","temp","controlText","fillWith","parentEl","nextSiblingEl","nextSibling","empty","content_","activeEl","activeElement","playerEl","keycode","isEventKey","focusIndex","focusableEls","focusableEls_","shiftKey","allChildren","querySelectorAll","HTMLAnchorElement","HTMLAreaElement","hasAttribute","HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLButtonElement","HTMLIFrameElement","HTMLObjectElement","HTMLEmbedElement","TrackList","_EventTarget","tracks_","addTrack","labelchange_","removeTrack","rtrack","getTrackById","addtrack","removetrack","labelchange","disableOthers$1","AudioTrackList","_TrackList","changing_","enabledChange_","disableOthers","VideoTrackList","selectedChange_","TextTrackList","queueChange_","triggerSelectedlanguagechange","triggerSelectedlanguagechange_","selectedlanguagechange_","HtmlTrackElementList","trackElements","trackElements_","addTrackElement_","trackElement","getTrackElementByTrack_","trackElement_","removeTrackElement_","TextTrackCueList","setCues_","length_","oldLength","cues_","defineProp","getCueById","VideoTrackKind","alternative","sign","subtitles","commentary","AudioTrackKind","TextTrackKind","descriptions","chapters","metadata","TextTrackMode","showing","trackProps","newLabel","parseUrl","host","getAbsoluteURL","getFileExtension","pathParts","isCrossOrigin","winLoc","urlInfo","Url","parseCues","srcContent","WebVTT","vttjs","StringDecoder","oncue","onparsingerror","onflush","groupCollapsed","groupEnd","flush","loadTrack","crossOrigin","cors","withCredentials","tech_","XHR","response","responseBody","loaded_","TextTrack","_Track","srclang","default_","activeCues_","preload_","preloadTextTracks","activeCues","changed","timeupdateHandler","defineProperties","newMode","ct","originalCue","VTTCue","originalCue_","removeCue","_removeCue","cuechange","newEnabled","newSelected","HTMLTrackElement","load","NONE","LOADING","LOADED","ERROR","NORMAL","ListClass","TrackClass","capitalName","getterName","privateName","REMOTE","remoteText","remoteTextEl","ALL","onDurationChange_","onDurationChange","trackProgress_","trackProgress","trackCurrentTime_","trackCurrentTime","stopTrackingCurrentTime_","stopTrackingCurrentTime","disposeSourceHandler_","disposeSourceHandler","hasStarted_","featuresProgressEvents","manualProgressOn","featuresTimeupdateEvents","manualTimeUpdatesOn","nativeCaptions","nativeTextTracks","featuresNativeTextTracks","emulateTextTracks","autoRemoteTextTracks_","initTrackListeners","nativeControlsForTouch","triggerSourceset","manualProgress","manualProgressOff","stopTrackingProgress","progressInterval","numBufferedPercent","bufferedPercent_","duration_","manualTimeUpdates","manualTimeUpdatesOff","currentTimeInterval","manuallyTriggered","clearTracks","removeRemoteTextTrack","cleanupAutoTextTracks","reset","setCrossOrigin","error_","played","setScrubbing","scrubbing","setCurrentTime","trackListChanges","addWebVttScript_","vtt","script","onload","_this6","remoteTracks","remoteTextTracks","handleAddTrack","handleRemoveTrack","updateDisplay","textTracksChanges","addTextTrack","createTrackHelper","createRemoteTextTrack","manualCleanup","_this7","htmlTrackElement","remoteTextTrackEls","getVideoPlaybackQuality","requestPictureInPicture","PromiseClass","disablePictureInPicture","setDisablePictureInPicture","setPoster","playsinline","setPlaysinline","overrideNativeAudioTracks","overrideNativeVideoTracks","canPlayType","canPlaySource","srcObj","registerTech","techs_","defaultTechOrder_","getTech","featuresVolumeControl","featuresMuteControl","featuresFullscreenResize","featuresPlaybackRate","featuresSourceset","withSourceHandlers","_Tech","registerSourceHandler","handler","sourceHandlers","can","selectSourceHandler","canHandleSource","sh","originalFn","sourceHandler_","setSource","nativeSourceHandler","currentSource_","handleSource","middlewares","middlewareInstances","TERMINATOR","setSourceHelper","middleware","lastRun","_middleware","mwFactory","mwrest","mw","mws","_mws$i","mwf","mwi","getOrCreateFactory","_src","mediate","callMethod","middlewareValue","middlewareIterator","terminated","executeRight","allowedGetters","muted","seekable","volume","ended","allowedSetters","setMuted","setVolume","allowedMediators","MimetypesKind","opus","ogv","m4v","m4a","caf","oga","m3u8","jpg","jpeg","gif","png","svg","webp","getMimetype","fixSource","mimetype","MediaLoader","j","techOrder","techName","isSupported","loadTech_","ClickableComponent","handleMouseOver_","handleMouseOver","handleMouseOut_","handleMouseOut","handleClick_","tabIndex_","createControlTextEl","controlTextEl_","controlText_","localizedText","nonIconControl","noUITitleAttributes","clickHandler","PosterImage","_ClickableComponent","update_","setSrc","sourceIsEncrypted","usingPlugin","eme","sessions","fontMap","monospace","sansSerif","serif","monospaceSansSerif","monospaceSerif","proportionalSansSerif","proportionalSerif","casual","smallcaps","constructColor","hex","tryUpdateStyle","TextTrackDisplay","updateDisplayHandler","toggleDisplay","preselectTrack","firstDesc","firstCaptions","preferredTrack","modes","trackList","userPref","cache_","selectedLanguage","clearDisplay","processCues","allowMultipleShowingTracks","showingTracks","updateForTrack","descriptionsTrack","captionsSubtitlesTrack","_track","updateDisplayState","overrides","textTrackSettings","getValues","cueDiv","displayState","textOpacity","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontFamily","fontVariant","_i2","_track2","_j","cueEl","LoadingSpinner","isAudio","playerType","dir","BigPlayButton","_Button","mouseused_","handleMouseDown","playPromise","playToggle","playFocus","CloseButton","PlayToggle","replay","handlePlay","handlePause","handleEnded","handleSeeked","defaultImplementation","seconds","guide","h","gm","gh","implementation","formatTime","TimeDisplay","updateContent","updateTextNode_","span","labelText_","textNode_","formattedTime_","oldNode","replaceChild","CurrentTimeDisplay","_TimeDisplay","getCache","DurationDisplay","TimeDivider","div","RemainingTimeDisplay","remainingTimeDisplay","remainingTime","LiveDisplay","updateShowing","SeekToLive","updateLiveEdgeStatus","liveTracker","updateLiveEdgeStatusHandler_","textEl_","atLiveEdge","seekToLiveEdge","clamp","Slider","handleMouseDown_","handleMouseUp_","handleMouseUp","handleMouseMove_","handleMouseMove","bar","barName","playerEvent","progress","getProgress","progress_","sizeKey","toFixed","getPercent","calculateDistance","stepBack","stepForward","vertical_","percentify","LoadProgressBar","partEls_","loadedText","separator","percentageEl_","isLive","seekableEnd","bufferedEnd","percent","percent_","dataset","TimeTooltip","seekBarRect","seekBarPoint","tooltipRect","playerRect","seekBarPointPx","spaceLeftOfPoint","spaceRightOfPoint","pullTooltipBy","round","write","updateTime","liveWindow","secondsBehind","PlayProgressBar","timeTooltip","MouseTimeDisplay","SeekBar","_Slider","setEventHandlers_","updateInterval","enableIntervalHandler_","enableInterval_","disableIntervalHandler_","disableInterval_","toggleVisibility_","visibilityState","getCurrentTime_","liveCurrentTime","currentTime_","userSeek_","nextSeekedFromUser","seekableStart","videoWasPlaying","newTime","distance","mouseTimeDisplay","handleAction","gotoFraction","codes","STEP_SECONDS","ProgressControl","throttledHandleMouseSeek","handleMouseSeek","handleMouseUpHandler_","handleMouseDownHandler_","seekBar","playProgressBar","seekBarEl","removeListenersAddedOnMousedownAndTouchstart","PictureInPictureToggle","handlePictureInPictureChange","handlePictureInPictureEnabledChange","pictureInPictureEnabled","isInPictureInPicture","exitPictureInPicture","FullscreenToggle","handleFullscreenChange","fsApi_","fullscreenEnabled","requestFullscreen","VolumeLevel","VolumeLevelTooltip","rangeBarRect","rangeBarPoint","volumeBarPointPx","updateVolume","MouseVolumeLevelDisplay","VolumeBar","updateLastVolume_","updateARIAAttributes","mouseVolumeLevelDisplay","volumeBarEl","volumeBarRect","volumeBarPoint","checkMuted","ariaValue","volumeAsPercentage_","volumeBeforeDrag","lastVolume_","VolumeControl","volumeBar","checkVolumeSupport","throttledHandleMouseMove","orientationClass","MuteToggle","checkMuteSupport","vol","lastVolume","volumeToSet","updateIcon_","updateControlText_","VolumePanel","inline","volumeControl","handleKeyPressHandler_","volumePanelState_","muteToggle","handleVolumeControlKeyUp","sliderActive_","sliderInactive_","focusedChild_","boundHandleBlur_","handleBlur","boundHandleTapClick_","handleTapClick","addEventListenerForItem","removeEventListenerForItem","childComponent","contentElType","append","btn","buttonPressed_","childComponents","foundComponent","stepChild","MenuButton","buttonClass","handleMenuKeyUp_","handleMenuKeyUp","handleMouseLeave","handleSubmenuKeyDown","buildWrapperCSSClass","menuButtonClass","pressButton","handleSubmenuKeyPress","TrackButton","_MenuButton","updateHandler","MenuKeys","isSelected_","multiSelectable","_selected","TextTrackMenuItem","_MenuItem","kinds","changeHandler","handleTracksChange","selectedLanguageChangeHandler","handleSelectedLanguageChange","onchange","Event","createEvent","initEvent","referenceTrack","shouldBeSelected","OffTextTrackMenuItem","_TextTrackMenuItem","allHidden","TextTrackButton","_TrackButton","TrackMenuItem","label_","kinds_","kind_","ChaptersTrackMenuItem","ChaptersButton","_TextTrackButton","track_","setTrack","findChaptersTrack","updateHandler_","remoteTextTrackEl","_remoteTextTrackEl","getMenuCaption","mi","DescriptionsButton","SubtitlesButton","CaptionSettingsMenuItem","CaptionsButton","SubsCapsMenuItem","parentSpan","SubsCapsButton","language_","AudioTrackMenuItem","audioTracks","AudioTrackButton","PlaybackRateMenuItem","rate","playbackRate","PlaybackRateMenuButton","labelElId_","updateVisibility","updateLabel","handlePlaybackRateschange","labelEl_","rates","currentRate","newRate","playbackRateSupported","Spacer","CustomControlSpacer","_Spacer","ControlBar","ErrorDisplay","_ModalDialog","COLOR_BLACK","COLOR_BLUE","COLOR_CYAN","COLOR_GREEN","COLOR_MAGENTA","COLOR_RED","COLOR_WHITE","COLOR_YELLOW","OPACITY_OPAQUE","OPACITY_SEMI","OPACITY_TRANS","selectConfigs","v","parseOptionValue","TextTrackSettings","endDialog","setDefaults","persistTextTrackSettings","saveSettings","restoreSettings","createElSelect_","legendId","selectLabelledbyIds","optionId","createElFgColor_","createElBgColor_","createElWinColor_","createElColors_","createElFont_","createElControls_","defaultsDescription","initial","accum","selectedIndex","setValues","setSelectedOption","JSON","localStorage","getItem","stringify","removeItem","ttDisplay","subsCapsBtn","subsCapsButton","ccBtn","captionsButton","ResizeManager","RESIZE_OBSERVER_AVAILABLE","ResizeObserver","loadListener_","resizeObserver_","debouncedHandler_","immediate","debounced","_later","cancel","debounce","resizeHandler","observe","contentWindow","unloadListener_","unobserve","disconnect","resizeObserver","trackingThreshold","liveTolerance","LiveTracker","handleVisibilityChange_","handleVisibilityChange","trackLiveHandler_","trackLive_","handlePlay_","handleFirstTimeupdate_","handleFirstTimeupdate","handleSeeked_","seekToLiveEdge_","reset_","handleDurationchange","toggleTracking","stopTracking","startTracking","deltaTime","lastTime_","pastSeekEnd_","pastSeekEnd","isBehind","seekedBehindLive_","timeupdateSeen_","behindLiveEdge_","liveui","isTracking","hasStarted","trackingInterval_","timeDiff","nextSeekedFromUser_","lastSeekEnd_","seekableEnds","seekableStarts","behindLiveEdge","sourcesetLoad","srcUrls","innerHTMLDescriptorPolyfill","cloneNode","dummy","docFrag","createDocumentFragment","Element","getDescriptor","priority","descriptor","getOwnPropertyDescriptor","firstSourceWatch","resetSourceWatch_","innerDescriptor","HTMLMediaElement","getInnerHTMLDescriptor","appendWrapper","appendFn","retval","srcDescriptorPolyfill","setupSourceset","resetSourceset_","srcDescriptor","getSrcDescriptor","oldSetAttribute","oldLoad","defineLazyProperty","getValue","setter","Html5","crossoriginTracks","initNetworkState_","handleLateInit_","enableSourceset","setupSourcesetHandling_","isScrubbing_","hasChildNodes","nodes","nodesLength","removeNodes","proxyNativeTracks_","restoreMetadataTracksInIOSNativePlayer_","setControls","proxyWebkitFullscreen_","disposeMediaElement","metadataTracksPreFullscreenState","takeMetadataTrackSnapshot","storedMode","restoreTrackMode","storedTrack","overrideNative_","override","lowerCaseType","eventName","proxyNativeTracksForType_","elTracks","techTracks","removeOldTracks","removeTracks","found","playerElIngest","movingMediaElementInDOM","clone","techId","playerId","settingsAttrs","networkState","loadstartFired","setLoadstartFired","triggerLoadstart","eventsToTrigger","isScrubbing","fastSeek","checkProgress","NaN","endFn","beginFn","webkitPresentationMode","nativeIOSFullscreen","supportsFullScreen","webkitEnterFullScreen","enterFullScreen","HAVE_METADATA","exitFullScreen","webkitDisplayingFullscreen","webkitExitFullScreen","resetMediaElement","videoPlaybackQuality","webkitDroppedFrameCount","webkitDecodedFrameCount","droppedVideoFrames","totalVideoFrames","creationTime","timing","navigationStart","TEST_VID","canControlVolume","canMuteVolume","canControlPlaybackRate","canOverrideAttributes","supportsNativeTextTracks","supportsNativeVideoTracks","videoTracks","supportsNativeAudioTracks","patchCanPlayType","unpatchCanPlayType","TECH_EVENTS_RETRIGGER","TECH_EVENTS_QUEUE","canplay","canplaythrough","playing","seeked","BREAKPOINT_ORDER","BREAKPOINT_CLASSES","DEFAULT_BREAKPOINTS","tiny","xsmall","small","medium","large","xlarge","huge","getTagSettings","closest","boundDocumentFullscreenChange_","documentFullscreenChange_","boundFullWindowOnEscKey_","fullWindowOnEscKey","boundUpdateStyleEl_","updateStyleEl_","boundApplyInitTime_","applyInitTime_","boundUpdateCurrentBreakpoint_","updateCurrentBreakpoint_","boundHandleTechClick_","handleTechClick_","boundHandleTechDoubleClick_","handleTechDoubleClick_","boundHandleTechTouchStart_","handleTechTouchStart_","boundHandleTechTouchMove_","handleTechTouchMove_","boundHandleTechTouchEnd_","handleTechTouchEnd_","boundHandleTechTap_","handleTechTap_","isFullscreen_","isPosterFromTech_","queuedCallbacks_","userActive_","debugEnabled_","tagAttributes","languagesToLower","languages_","resetCache_","poster_","controls_","changingSrc_","playCallbacks_","playTerminatedQueue_","plugins","scrubbing_","fullscreenchange","fluid_","playerOptionsCopy","middleware_","flexNotSupported_","majorVersion","userActive","listenForUserActivity_","handleStageClick_","styleEl_","playerElIngest_","divEmbed","tabindex","VIDEOJS_NO_DYNAMIC_STYLE","defaultsStyleEl","head","fill_","fluid","crossorigin","links","linkEl","techGet_","techCall_","_dimension","privDimension","parsedVal","ratio","aspectRatio_","idClass","ratioParts","videoWidth","videoHeight","ratioMultiplier","width_","height_","_width","_height","techEl","unloadTech_","titleTechName","camelTechName","techName_","normalizeAutoplay","techOptions","loop","techCanOverridePoster","TechClass","handleTechReady_","textTracksJson_","eventObj","seeking","handleTechLoadStart_","handleTechSourceset_","handleTechWaiting_","handleTechEnded_","handleTechSeeking_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechFullscreenError_","handleTechEnterPictureInPicture_","handleTechLeavePictureInPicture_","handleTechError_","handleTechPosterChange_","handleTechTextData_","handleTechRateChange_","usingNativeControls","addTechControlsListeners_","safety","removeTechControlsListeners_","manualAutoplay_","promise","resolveMuted","previouslyMuted","restoreMuted","mutedPromise","updateSourceCaches_","matchingSources","findMimetype","sourceElSources","sourceEls","matchingSourceEls","sourceObj","updateSourceCaches","playerSrc","currentSource","eventSrc","lastSource_","techSrc","techGet","lastPlaybackRate","queued","_this8","timeWhenWaiting","timeUpdateListener","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechSeeked_","starttime","userActions","doubleClick","userWasActive","cancelable","toggleFullscreenClass_","targetPlayer","isFs","matches","fullscreen","msMatchesSelector","togglePictureInPictureClass_","initTime","inactivityTimeout","defaultPlaybackRate","reduceRight","_this9","play_","_this10","isSrcReady","waitToPlay_","runPlayTerminatedQueue_","runPlayCallbacks_","queue","q","percentAsDecimal","_muted","defaultMuted","_defaultMuted","isFS","oldValue","fullscreenOptions","offHandler","errorHandler","requestFullscreenHelper_","fsOptions","_this11","preferFullWindow","enterFullWindow","exitFullscreenHelper_","_this12","exitFullWindow","isFullWindow","docOrigOverflow","isPiP","isInPictureInPicture_","isContentEditable","excludeElement","handleHotkeys","_hotkeys$fullscreenKe","fullscreenKey","keydownEvent","_hotkeys$muteKey","muteKey","_hotkeys$playPauseKey","playPauseKey","FSToggle","selectSource","_this13","techs","findFirstPassingTechSourcePair","outerArray","innerArray","tester","outerChoice","innerChoice","finder","sourceOrder","handleSrc_","isRetry","_this14","resetRetryOnError_","filterSource","newsrc","srcobj","middlewareSource","src_","notSupportedMessage","setTech","retryOnError","retry","stopListeningForErrors","str1","str2","_this15","sourceTech","_this16","doReset_","resetControlBarUI_","resetProgressBar_","resetPlaybackRate_","resetVolumeBar_","_this$controlBar","durationDisplay","currentSources","currentType","techAutoplay","newPoster","usingNativeControls_","_this17","hookFunction","newErr","suppressNotSupportedError","triggerSuppressedError","userActivity_","mouseInProgress","lastMoveX","lastMoveY","handleActivity","handleMouseUpAndMouseLeave","screenX","screenY","isAudio_","toJSON","createModal","_this18","modal","currentBreakpoint","candidateBreakpoint","breakpoints_","breakpoint_","removeCurrentBreakpoint_","currentBreakpointClass","_breakpoints","responsive_","loadMedia","_this19","_this$cache_$media","artwork","tt","getMedia","baseOptions","tagOptions","dataSetup","_safeParseTuple","safeParseTuple","childName","previousLogLevel_","newRates","userLanguage","navigationUI","pluginStorage","pluginExists","getPlugin","markPluginAsActive","triggerSetupEvent","before","createPluginFactory","PluginSubClass","_construct","getEventHash","Plugin","isBasic","basicPluginWrapper","createBasicPlugin","deregisterPlugin","getPlugins","getPluginVersion","BASE_PLUGIN_NAME","hasPlugin","normalizeId","getPlayer","defaultView","PlayerComponent","hook","hookOnce","original","getPlayers","nId","_tag","_player","getAllPlayers","comp","use","writeable","extend","subClassMethods","methods","_inherits","super_","_mergeOptions","createTimeRange","setFormatTime","customImplementation","resetFormatTime","xhr","_resolveUrl","resolveManifestRedirect","handleManifestRedirect","req","responseURL","logger","filterRanges","timeRanges","findRange","TIME_FUDGE_FACTOR","findNextRange","printableRange","strArr","timeRangesToArray","timeRangesList","lastBufferedEnd","getPartsAndSegments","si","pi","getLastParts","lastSegment","getKnownPartCount","partCount","liveEdgeDelay","master","partHoldBack","holdBack","intervalDuration","endSequence","expired","backward","backwardDuration","forwardDuration","totalDuration","sumDurations","defaultDuration","durationList","endIndex","durations","playlistEnd","useSafeLiveEnd","liveEdgePadding","lastSegmentTime","isBlacklisted","excludeUntil","isIncompatible","isEnabled","blacklisted","isLowestEnabledRendition","currentBandwidth","MAX_VALUE","playlistMatch","someAudioVariant","groupName","_ret","Playlist","getMediaInfoForTime","startingSegmentIndex","startingPartIndex","experimentalExactManifestTimings","partsAndSegments","partAndSegment","_partAndSegment","_i3","_i4","_partAndSegment2","isDisabled","isAes","estimateSegmentRequestTime","bytesReceived","createPlaylistID","forEachMediaGroup","groupKey","labelKey","mediaProperties","setupMediaPlaylist","playlistErrors_","addPropertiesToMaster","phonyUri","audioOnlyMaster","groupId","setupMediaPlaylists","resolveMediaGroupUris","mergeOptions$2","EventTarget$1","updateSegment","skipped","resolveSegmentUris","baseUri","getAllSegments","isPlaylistUnchanged","updateMaster$1","newMedia","unchangedCheck","oldMedia","mergedPlaylist","skippedSegments","oldSegments","newSegments","newIndex","oldSegment","newSegment","updateSegments","refreshDelay","lastPart","lastDuration","PlaylistLoader","logger_","_options$withCredenti","_options$handleManife","handleManifestRedirects","vhs_","vhsOptions","customTagParsers","customTagMappers","experimentalLLHLS","handleMediaupdatetimeout_","query","nextMSN","nextPart","canSkipUntil","addLLHLSQueryDirectives","playlistRequestError","haveMetadata","playlistString","responseText","startingState","parseManifest_","onwarn","oninfo","_ref$customTagParsers","_ref$customTagMappers","customParser","parseManifest","playlistObject","lastRequest","media_","updateMediaUpdateTimeout_","stopRequest","mediaUpdateTimeout","finalRenditionTimeout","oldRequest","onreadystatechange","abort","shouldDelay","delay","mediaChange","masterPlaylistRef","started","setupInitialPlaylist","srcUri","masterForMedia","videojsXHR","mergeOptions$1","callbackWrapper","reqResponse","responseType","responseTime","roundTripTime","requestTime","headers","responseHeaders","timedout","aborted","statusCode","xhrFactory","XhrFunction","beforeRequest","Vhs","newOptions","originalAbort","segmentXhrHeaders","Range","byterangeEnd","byterangeStr","textRange","formatHexString","formatAsciiString","createTransferableMessage","transferable","initSegmentId","segmentKeyId","hexDump","utils","tagDump","textRanges","getProgramTime","_ref$time","matchedSegment","segmentEnd","videoTimingInfo","transmuxedPresentationEnd","estimatedStart","transmuxedPresentationStart","findSegmentForPlayerTime","seekTime","programTimeObject","mediaSeconds","programTime","playerTime","transmuxerPrependedSeconds","offsetFromSegmentStart","getTime","playerTimeToProgramTime","programDateTime","toISOString","seekToProgramTime","_ref2$retryCount","retryCount","seekTo","_ref2$pauseAfterSeek","pauseAfterSeek","verifyProgramDateTimeTags","lastSegmentStart","lastSegmentDuration","findSegmentForProgramTime","mediaOffset","comparisonTimeStamp","segmentDateTime","segmentTimeEpoch","getOffsetFromTimestamp","seekToTime","callbackOnCompleted","containerRequest","id3Offset","finished","endRequestAndCallback","_bytes","progressListener","newPart","buffers","totalLen","buf","tempBuffer","concatTypedArrays","beforeSend","overrideMimeType","loaded","dashPlaylistUnchanged","aSegment","bSegment","aByterange","bByterange","compareSidxEntry","oldSidxMapping","newSidxMapping","currentSidxInfo","savedSidxInfo","sidxInfo","DashPlaylistLoader","srcUrlOrPlaylist","masterPlaylistLoader","masterPlaylistLoader_","isMaster_","refreshXml_","refreshMedia_","loadedPlaylists_","srcUrl","sidxMapping_","childPlaylist_","requestErrored_","addSidxSegments_","fin","parseSidx","internal","blacklistDuration","_playlist$sidx$bytera","mediaRequest_","minimumUpdatePeriodTimeout_","createMupOnMedia_","hasPendingRequest","sidxChanged","isFinalRendition","updateMinimumUpdatePeriodTimeout_","requestMaster_","masterChanged","haveMaster_","masterXml_","date","masterLoaded_","handleMaster_","syncClientServerClock_","utcTiming","clientOffset_","serverTime","newMaster","masterXml","parseMasterXml","oldMaster","noChanges","playlistUpdate","group","_playlistUpdate","updateMaster","mpl","mup","createMUPTimeout_","mediaGroupSidx","filterChangedSidxMappings","mediaID","mediaChanged","createMediaUpdateTimeout","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","browserWorkerPolyFill","workerObj","factory","objectUrl","createObjectURL","Blob","blob","BlobBuilder","getBlob","worker","Worker","objURL","terminate","revokeObjectURL","getWorkerString","TransmuxWorker","init","flushSource","partialFlush","endTimeline","dinf","esds","ftyp","mdat","mfhd","minf","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","UINT32_MAX","pow","avc1","avcC","btrt","dref","mp4a","pasp","smhd","stco","stsc","stsz","stts","styp","tfdt","tfhd","trun","vmhd","DataView","setUint32","audioobjecttype","samplingfrequencyindex","channelcount","samplerate","sequenceNumber","trackFragments","boxes","samples","dependsOn","isDependedOn","hasRedundancy","videoSample","audioSample","avc1Box","sps","pps","sequenceParameterSets","pictureParameterSets","profileIdc","profileCompatibility","levelIdc","sarRatio","hSpacing","vSpacing","samplesize","trackFragmentHeader","trackFragmentDecodeTime","trackFragmentRun","sampleDependencyTable","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","sampleForFrame","frame","dataOffset","pts","dts","keyFrame","frameUtils","nalUnits","currentNal","currentFrame","frames","nalCount","nalUnitType","currentGop","gops","baseDataOffset","nalsByteLength","numberOfNals","highPrefix","lowPrefix","zeroFill","silence_1","coneOfSilence","96000","88200","64000","48000","44100","32000","24000","16000","12000","11025","8000","metaTable","arr","timestamp","sampleRate","timelineStartPts","keepOriginalTimestamps","clock","audioFrameUtils","audioAppendStartTs","videoBaseMediaDecodeTime","baseMediaDecodeTimeTs","frameDuration","silentFrame","firstFrame","audioGapDuration","audioFillFrameCount","audioFillDuration","adtsFrames","earliestAllowedDts","minSegmentDts","minSegmentPts","sum","sumFrameByteLengths","ONE_SECOND_IN_TS$3","trackDecodeInfo","maxSegmentDts","maxSegmentPts","timelineStartInfo","captionPacketParser","payloadType","payloadSize","sei","userData","ccData","emulationPreventionBytesPositions","CaptionStream$1","CaptionStream","parse708captions_","parse708captions","captionPackets_","ccStreams_","Cea608Stream","cc708Stream_","Cea708Stream","newCaptionPackets","escapedRBSP","latestDts_","ignoreNextEqualDts_","numSameDts_","flushCCStreams","flushType","flushStream","presortIndex","packet","dispatchCea608Packet","dispatchCea708Packet","activeCea608Channel_","ccStream","setsTextOrXDSActive","setsChannel1Active","setsChannel2Active","CHARACTER_TRANSLATION_708","within708TextBlock","Cea708Window","windowNum","clearText","pendingNewLine","winAttr","penAttr","penLoc","penColor","visible","rowLock","columnLock","relativePositioning","anchorVertical","anchorHorizontal","anchorPoint","rowCount","virtualRowCount","columnCount","windowStyle","penStyle","getText","rows","rowIdx","beforeRowOverflow","addText","backspace","row","substr","Cea708Service","serviceNum","currentWindow","windows","startPts","setCurrentWindow","current708Packet","services","new708Packet","add708Bytes","push708Packet","ptsVals","byte0","byte1","packet708","packetData","blockSize","seq","sizeCode","pushServiceBlock","initService","handleText","extendedCommands","defineWindow","clearWindows","deleteWindows","displayWindows","hideWindows","toggleWindows","setWindowAttributes","setPenAttributes","setPenColor","setPenLocation","getPts","flushDisplayed","isExtended","_char","newCode","get708CharFromCode","fillOpacity","fillRed","fillGreen","fillBlue","borderType","borderRed","borderGreen","borderBlue","wordWrap","printDirection","scrollDirection","effectSpeed","effectDirection","displayEffect","displayedText","winId","endPts","pushCaption","textTag","penSize","italics","edgeType","fontStyle","fgOpacity","fgRed","fgGreen","fgBlue","bgOpacity","bgRed","bgGreen","bgBlue","edgeRed","edgeGreen","edgeBlue","column","CHARACTER_TRANSLATION","getCharFromCode","ROWS","createDisplayBuffer","BOTTOM_ROW","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_","isColorPAC","isNormalChar","topRow_","BASE_","EXT_","CONTROL_","OFFSET_","_char2","newBaseRow","reverse","popOn","baseRow","rollUp","paintOn","captionStream","streamTypes","H264_STREAM_TYPE","ADTS_STREAM_TYPE","METADATA_STREAM_TYPE","handleRollover$1","TimestampRolloverStream$1","TimestampRolloverStream","lastDTS","referenceDTS","type_","_MetadataStream","timestampRolloverStream","percentEncode$1","parseUtf8","parseSyncSafeInteger$1","tagParsers","TXXX","WXXX","PRIV","owner","privateData","tagSize","dispatchType","frameStart","frameSize","dataAlignmentIndicator","timeStamp","_TransportPacketStream","_TransportParseStream","_ElementaryStream","metadataStream","bytesInBuffer","everything","parsePsi","parsePat","parsePmt","packetsWaitingForPmt","programMapTable","psi","payloadUnitStartIndicator","pat","section_number","last_section_number","pmtPid","pmt","tableEnd","pid","processPes_","STREAM_TYPES","h264","adts","segmentHadPmt","timedMetadata","forceFlush","packetFlushable","fragment","trackId","pes","ptsDtsFlags","startPrefix","packetLength","parsePes","flushStreams_","m2ts","PAT_PID","MP2T_PACKET_LENGTH","TransportPacketStream","TransportParseStream","ElementaryStream","MetadataStream","_AdtsStream","m2ts_1","ONE_SECOND_IN_TS$2","ADTS_SAMPLING_FREQUENCIES$1","handlePartialSegments","frameNum","skipWarn_","frameLength","protectionSkipBytes","oldBuffer","sampleCount","adtsFrameDuration","_H264Stream","_NalByteStream","PROFILES_WITH_OPTIONAL_SPS_DATA","expGolomb","workingData","workingBytesAvailable","workingWord","workingBitsAvailable","bitsAvailable","loadWord","workingBytes","availableBytes","getUint32","skipBits","skipBytes","readBits","bits","valu","skipLeadingZeros","leadingZeroCount","skipUnsignedExpGolomb","skipExpGolomb","readUnsignedExpGolomb","clz","readExpGolomb","readBoolean","readUnsignedByte","syncPoint","swapBuffer","100","110","122","244","44","83","86","118","128","138","139","134","currentPts","currentDts","readSequenceParameterSet","skipScalingList","nalByteStream","nalUnitTypeCode","expGolombDecoder","lastScale","nextScale","chromaFormatIdc","picOrderCntType","numRefFramesInPicOrderCntCycle","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","scalingListCount","frameCropLeftOffset","frameCropRightOffset","frameCropTopOffset","frameCropBottomOffset","_AacStream","H264Stream","NalByteStream","ADTS_SAMPLING_FREQUENCIES","parseId3TagSize","parseSyncSafeInteger","isLikelyAacData","parseAdtsSize","lowThree","middle","parseType","parseSampleRate","parseAacTimestamp","percentEncode","setTimestamp","bytesLeft","tempLength","_VideoSegmentStream","_AudioSegmentStream","_Transmuxer","_CoalesceStream","audioProperties","videoProperties","ONE_SECOND_IN_TS$1","arrayEquals","generateSegmentTimingInfo","startDts","endDts","prependedContentDuration","firstSequenceNumber","setEarliestDts","earliestDts","setVideoBaseMediaDecodeTime","setAudioAppendStart","videoClockCyclesOfSilencePrefixed","gopsToAlignWith","minPTS","gopCache_","nalUnit","gopForFusion","firstGop","lastGop","resetStream_","getGopForFusion_","alignedGops","alignGopsAtEnd","alignGopsAtEnd_","alignGopsAtStart_","gop","dtsDistance","nearestGopObj","currentGopObj","nearestDistance","alignIndex","gopIndex","alignEndIndex","matchFound","trimIndex","alignGopsWith","newGopsToAlignWith","numberOfTracks","remux","remuxTracks","pendingTracks","videoTrack","pendingBoxes","pendingCaptions","pendingMetadata","pendingBytes","emittedTracks","output","audioTrack","id3","captionStreams","cueTime","setRemux","hasFlushed","transmuxPipeline_","setupAacPipeline","pipeline","aacStream","audioTimestampRolloverStream","timedMetadataTimestampRolloverStream","adtsStream","coalesceStream","headOfPipeline","audioSegmentStream","getLogTrigger_","hasAudio","hasVideo","setupTsPipeline","packetStream","elementaryStream","h264Stream","videoSegmentStream","id3Frame","setBaseMediaDecodeTime","isAac","resetCaptions","getTracks","getTimescaleFromMediaHeader","transmuxer","Transmuxer","VideoSegmentStream","AudioSegmentStream","AUDIO_PROPERTIES","VIDEO_PROPERTIES","bin","parseType_1","toUnsigned$2","findBox_1","subresults","toUnsigned$1","parseTfdt","parseSampleFlags_1","parseTrun","dataOffsetPresent","firstSampleFlagsPresent","sampleDurationPresent","sampleSizePresent","sampleFlagsPresent","sampleCompositionTimeOffsetPresent","getInt32","parseTfhd","baseDataOffsetPresent","sampleDescriptionIndexPresent","defaultSampleDurationPresent","defaultSampleSizePresent","defaultSampleFlagsPresent","durationIsEmpty","defaultBaseIsMoof","sampleDescriptionIndex","defaultSampleDuration","defaultSampleSize","defaultSampleFlags","baseDataOffsetIsMoof","mapToSample","approximateOffset","parseCaptionNals","videoTrackId","trafs","mdats","captionNals","mdatTrafPairs","matchingTraf","pair","headerInfo","truns","avcStream","seiNal","lastMatchedSample","avcView","logs","seiNals","matchingSample","findSeiNals","allSamples","parseSamples","captionParser","segmentCache","parsedCaptions","parsingPartial","isInitialized","isPartial","isNewInit","videoTrackIds","timescales","parsedData","cachedSegment","trackNals","parseEmbeddedCaptions","pushNals","nals","nal","clearParsedCaptions","resetCaptionStream","clearAllCaptions","toUnsigned","toHexString","baseTimes","scale","baseTime","traks","tkhdVersion","getUint8","sampleDescriptions","codecConfig","codecBox","probe$2","parsePid","parsePayloadUnitStartIndicator","parseAdaptionField","parseNalUnitType","probe$1","pusi","payloadOffset","parsePesType","parsePesTime","videoPacketContainsKeyFrame","frameBuffer","frameI","frameSyncPoint","foundKeyFrame","handleRollover","probe","ONE_SECOND_IN_TS","parseAudioPes_","pesType","parsed","endLoop","table","parseVideoPes_","firstKeyFrame","inspectTs_","parsePsi_","tsInspector","baseTimestamp","audioCount","audioTimescale","inspectAac_","audioBaseTimestamp","dtsTime","ptsTime","videoBaseTimestamp","adjustTimestamp_","MessageHandlers","initArray","typedArray","postMessage","action","gopInfo","timingInfo","videoSegmentTimingInfo","decode","presentation","audioSegmentTimingInfo","trackInfo","audioTimingInfo","wireTransmuxerEvents","pushMp4Captions","trackIds","probeMp4StartTime","probeMp4Tracks","probeTs","baseStartTime","tsStartTime","timeInfo","videoStart","audioStart","clearAllMp4Captions","clearParsedMp4Captions","setTimestampOffset","timestampOffset","appendStart","onmessage","messageHandlers","processTransmux","audioAppendStart","onData","onTrackInfo","onAudioTimingInfo","onVideoTimingInfo","onVideoSegmentTimingInfo","onAudioSegmentTimingInfo","onId3","onCaptions","onDone","onEndedTimeline","onTransmuxerLog","isEndOfTimeline","transmuxedData","waitForEndedTimelineEvent","currentTransmux","_event$data$segment","videoFrameDtsTime","videoFramePtsTime","handleData_","handleGopInfo_","handleDone_","dequeue","transmuxQueue","processAction","enqueueAction","transmux","segmentTransmuxer","term","workerCallback","endAction","listenForEndEvent","isArrayBuffer","transfers","REQUEST_ERRORS","abortAll","activeXhrs","handleErrors","handleKeyResponse","finishProcessingFn","errorObj","parseInitSegment","_callback","handleSegmentResponse","newBytes","stringToArrayBuffer","lastReachedChar","stats","getRequestStats","encryptedBytes","transmuxAndNotify","trackInfoFn","timingInfoFn","videoSegmentTimingInfoFn","audioSegmentTimingInfoFn","id3Fn","captionsFn","endedTimelineFn","dataFn","doneFn","fmp4Tracks","isMuxed","audioStartFn","audioEndFn","videoStartFn","videoEndFn","probeResult","id3Frames","handleSegmentBytes","bytesAsUint8Array","isLikelyFmp4MediaSegment","isFmp4","audioCodec","videoCodec","finishLoading","decrypt","_ref7","keyBytes","decryptionWorker","decryptionHandler","decrypted","encrypted","waitForCompletion","_ref9","didError","segmentFinish","_ref8","requestId","decryptedBytes","decryptSegment","endOfAllRequests","parseError","handleProgress","_ref11","progressFn","progressEvent","getProgressStats","firstBytesReceivedAt","mediaSegmentRequest","_ref12","xhrOptions","abortFn","keyXhr","mapKeyXhr","initSegmentXhr","handleInitSegmentResponse","segmentRequestOptions","segmentXhr","loadendState","activeXhr","_ref10","calledAbortFn","handleLoadEnd","logFn$1","isMaat","mediaAttributes","unwrapCodecList","codecList","codecCount","codecObj","codecsForPlaylist","codecInfo","getCodecs","audioGroup","defaultCodecs","audioGroupId","audioType","codecsFromDefault","logFn","representationToString","safeGetComputedStyle","property","stableSort","sortFn","newArray","cmp","comparePlaylistBandwidth","leftBandwidth","rightBandwidth","simpleSelector","playerBandwidth","playerWidth","playerHeight","limitRenditionByPlayerDimensions","masterPlaylistController","getAudioTrackPlaylists_","sortedPlaylistReps","enabledPlaylistReps","rep","bandwidthPlaylistReps","highestRemainingBandwidthRep","bandwidthBestRep","_chosenRep","haveResolution","resolutionBestRepList","resolutionPlusOneList","resolutionPlusOneSmallest","resolutionPlusOneRep","leastPixelDiffRep","resolutionBestRep","experimentalLeastPixelDiffSelector","leastPixelDiffList","pixelDiff","chosenRep","_type","lastBandwidthSelector","pixelRatio","useDevicePixelRatio","devicePixelRatio","systemBandwidth","masterPlaylistController_","addMetadata","inbandTextTracks","metadataArray","videoDuration","Cue","WebKitDataCue","metadataTrack","metadataTrack_","deprecateOldCue","cuesArray","cuesGroupedByStartTime","timeSlot","sortedStartTimes","cueGroup","nextTime","removeCuesFromTrack","finite","segmentInfoString","startOfSegment","_segmentInfo$playlist","_segmentInfo$playlist2","mediaIndex","segmentLen","selection","isSyncRequest","hasPartIndex","zeroBasedPartCount","timingInfoPropertyForMedia","shouldWaitForTimelineChange","timelineChangeController","loaderType","audioDisabled","lastMainTimelineChange","lastTimelineChange","pendingAudioTimelineChange","pendingTimelineChange","segmentTooLong","maxDuration","getTroublesomeSegmentDurationMessage","sourceType","audioDuration","mediaDuration","isSegmentWayTooLong","isSegmentSlightlyTooLong","segmentTooLongMessage","severity","SegmentLoader","mediaSource","throughput","roundTrip","resetStats_","hasPlayed_","hasPlayed","seekable_","seeking_","mediaSource_","loaderType_","currentMediaInfo_","startingMediaInfo_","segmentMetadataTrack_","segmentMetadataTrack","goalBufferLength_","goalBufferLength","sourceType_","sourceUpdater_","sourceUpdater","inbandTextTracks_","state_","timelineChangeController_","shouldSaveSegmentTimingInfo_","checkBufferTimeout_","currentTimeline_","pendingSegment_","xhrOptions_","pendingSegments_","audioDisabled_","isPendingTimestampOffset_","gopBuffer_","timeMapping_","safeAppend_","appendInitSegment_","playlistOfLastInitSegment_","callQueue_","loadQueue_","metadataQueue_","waitingOnRemove_","quotaExceededErrorRetryTimeout_","activeInitSegmentId_","initSegments_","cacheEncryptionKeys_","cacheEncryptionKeys","keyCache_","decrypter_","decrypter","syncController_","syncController","syncPoint_","transmuxer_","createTransmuxer_","triggerSyncInfoUpdate_","isEndOfStream_","ended_","fetchAtBuffer_","newState","hasEnoughInfoToAppend_","processCallQueue_","hasEnoughInfoToLoad_","processLoadQueue_","mediaBytesTransferred","mediaRequests","mediaRequestsAborted","mediaRequestsTimedout","mediaRequestsErrored","mediaTransferDuration","mediaSecondsLoaded","mediaAppends","abort_","setAudio","removeAudio","monitorBuffer_","abortRequests","clearPendingTimelineChange","checkForAbort_","_error","endOfStream","buffered_","getMediaInfo_","videoBuffered","audioBuffered","initSegmentForMap","storedMap","segmentKey","storedKey","couldBeginLoading_","playlist_","init_","resetEverything","newPlaylist","oldPlaylist","syncInfo","setDateTimeMappingForStart","oldId","resyncLoader","mediaSequenceDiff","resetLoader","saveExpiredSegmentInfo","force","removesRemaining","removeFinished","mapping","updatedBuffer","removeGopBuffer","removeVideo","monitorBufferTick_","fillBuffer_","updating","chooseNextRequest_","loadSegment_","appendedLastSegment","appendedLastPart","bufferedTime","preloaded","haveEnoughBuffer","getSyncPoint","targetTime","timelineSegments","getSyncSegmentCandidate","_Playlist$getMediaInf","_partIndex","nextSegment","generateSegmentInfo_","forceTimestampOffset","random","overrideCheck","timestampOffsetForSegment_","audioBufferedEnd","audioTimestampOffset","currentTimePts","gopsSafeToAlignWith","videoTimestampOffset","timestampOffsetForSegment","earlyAbortWhenNeeded_","measuredBandwidth","requestTimeRemaining","timeUntilRebuffer$1","timeUntilRebuffer","switchCandidate","compatiblePlaylists","enabledPlaylists","rebufferingEstimates","numRequests","rebufferingImpact","noRebufferingPlaylists","estimate","minRebufferMaxBandwidthSelector","timeSavedBySwitching","minimumTimeSaving","handleAbort_","handleProgress_","simpleSegment","handleTrackInfo_","checkForIllegalMediaSwitch","akeys","bkeys","shallowEqual","handleTimingInfo_","timeType","timingInfoProperty","handleCaptions_","captionData","hasAppendedData_","captionTracks","captionTrack","trackName","_captionTracks$trackN","def","captionService","createCaptionsTrackIfNotExists","captionArray","addCaptionData","handleId3_","inBandMetadataTrackDispatchType","createMetadataTrackIfNotExists","processMetadataQueue_","callQueue","fun","loadQueue","getCurrentMediaInfo_","setTimeMapping_","updateMediaSecondsLoaded_","firstVideoFrameTimeForData","useVideoTimingInfo","trueSegmentStart_","currentStart","currentVideoTimestampOffset","updateAppendInitSegmentStatus","updateSourceBufferTimestampOffset_","updateTimingInfoEnd_","saveSegmentTimingInfo","shouldSaveTimelineMapping","appendData_","changedTimestampOffset","getInitSegmentAndUpdateState_","handleQuotaExceededError_","audioBufferStart","audioBufferEnd","videoBufferStart","videoBufferEnd","appendToSourceBuffer_","timeToRemoveUntil","MIN_BACK_BUFFER","handleAppendError_","segmentObj","concatSegments","appendBuffer","handleSegmentTimingInfo_","segmentTimingInfo","transmuxedDecodeStart","transmuxedDecodeEnd","trimBackBuffer_","updateTransmuxerAndRequestSegment_","shouldUpdateTransmuxerTimestampOffset_","createSimplifiedSegmentObj_","isEndOfStream","isWalkingForward","isDiscontinuity","segmentRequestFinished_","removeToTime","trimTime","maxTrimTime","safeBackBufferTrimTime","previousSegment","saveTransferStats_","saveBandwidthRelatedStats_","handleTimeout_","updateGopBuffer","waitForAppendsToComplete_","timelineMapping","mappingForTimeline","waitForVideo","waitForAudio","waitingOnAppends","checkAppendsDone_","videoQueueCallback","audioQueueCallback","handleAppendsDone_","illegalMediaSwitchError","startingMedia","illegalMediaSwitch","didChange","prioritizedTimingInfo","segmentDurationMessage","recordThroughput_","addSegmentMetadataCue_","segmentProcessingTime","segmentProcessingThroughput","Vhs$1","toTitleCase","bufferTypes","_updating","sourceBuffer","queuePending","shiftQueue","queueIndex","queueEntry","nextQueueIndexOfType","cleanupBuffer","titleType","inSourceBuffers","sourceBuffers","actions","_duration","mime","addSourceBuffer","removeSourceBuffer","changeType","pushQueue","onUpdateend","SourceUpdater","sourceopenListener_","audioTimestampOffset_","videoTimestampOffset_","delayedAudioAppendQueue_","videoAppendQueued_","onVideoUpdateEnd_","onAudioUpdateEnd_","onVideoError_","videoError_","onAudioError_","audioError_","createdSourceBuffers_","initializedEme_","triggeredReady_","initializedEme","hasCreatedSourceBuffers","hasInitializedAnyEme","createSourceBuffers","addOrChangeSourceBuffers","canRemoveSourceBuffer","canChangeType","SourceBuffer","processedAppend_","videoBuffer","que","audioBuffer","bufferA","bufferB","arity","extents","bufferIntersection","setDuration","uint8ToUtf8","uintArray","VTT_LINE_TERMINATORS","_char3","VTTSegmentLoader","_SegmentLoader","subtitlesTrack_","featuresNativeTextTracks_","combinedByteLength","combinedSegment","timestampOffsetForTimeline","skipEmptySegments_","stopForError","loadHandler","requested","parseVTTCues_","updateTimeMapping_","timelines","duplicates","occurrences","dupe","removeDuplicateCuesFromTrack","decoder","decodeBytesToString","TextDecoder","timestampmap","MPEGTS","LOCAL","ontimestampmap","mapData","segmentData","mappingObj","diff","firstStart","lastStart","findAdCue","mediaTime","adStartTime","adEndTime","syncPointStrategies","run","timelineToDatetimeMappings","lastDistance","datetimeMapping","discontinuitySync","discontinuities","SyncController","syncPoints","runStrategies_","selectSyncPoint_","getExpiredTime","strategy","bestSyncPoint","bestDistance","bestStrategy","newDistance","lastRemovedSegment","firstSegment","playlistTimestamp","didCalculateSegmentTimeMapping","calculateSegmentTimeMapping_","saveDiscontinuitySyncInfo_","dateTime","accuracy","mediaIndexDiff","TimelineChangeController","pendingTimelineChanges_","lastTimelineChanges_","Decrypter","createCommonjsModule","basedir","commonjsRequire","createClass","_defineProperties","protoProps","staticProps","__esModule","_setPrototypeOf","inheritsLoose","aesTables","AES","tmp","xInv","x2","x4","tEnc","tDec","tables","encTable","decTable","sbox","sboxInv","th","precompute","_tables","keyLen","rcon","encKey","decKey","encrypted0","encrypted1","encrypted2","encrypted3","out","a2","b2","c2","nInnerRounds","kIndex","table0","table1","table2","table3","AsyncStream","jobs","timeout_","processJob_","job","ntoh","word","initVector","step","STEP","encrypted32","Int32Array","asyncStream_","decryptChunk_","padded","init0","init1","init2","init3","wordIx","decipher","decrypted32","audioTrackKind_","stopLoaders","segmentLoader","activePlaylistLoader","startLoaders","playlistLoader","segmentLoaders","blacklistCurrentPlaylist","activeTrack","activeGroup","defaultTrack","onTrackChanged","setupListeners","requestOptions","initialize","_settings$mediaTypes$","groups","variantLabel","isMasterPlaylist","_settings$mediaTypes$2","_settings$mediaTypes$3","newProps","groupMatch","setupMediaGroups","_settings$segmentLoad3","audioSegmentLoader","mainSegmentLoader","variants","groupKeys","groupPropertyList","onGroupChanged","_settings$segmentLoad","getActiveGroup","previousActiveLoader","lastGroup","lastGroup_","lastTrack_","onGroupChanging","_settings$segmentLoad2","lastTrack","mpc","selectPlaylist","fastQualityChange_","activeTrack_","onAudioTrackChanged","loaderStats","sumLoaderStat","stat","audioSegmentLoader_","mainSegmentLoader_","MasterPlaylistController","externVhs","useCueTags","enableLowInitialPlaylist","experimentalBufferBasedABR","maxPlaylistRetries","useCueTags_","cueTagsTrack_","requestOptions_","pauseLoading","mediaTypes_","createMediaTypes","handleDurationChange_","handleSourceOpen_","handleSourceEnded_","segmentLoaderSettings","setupMasterPlaylistLoaderListeners_","subtitleSegmentLoader_","setupSegmentLoaderListeners_","startABRTimer_","stopABRTimer_","triggeredFmp4Usage","loadOnPlay_","timeToLoadedData__","mainAppendsToLoadedData__","audioAppendsToLoadedData__","timeToLoadedDataStart","mainAppendsToLoadedData_","audioAppendsToLoadedData_","appendsToLoadedData_","timeToLoadedData_","checkABR_","nextPlaylist","shouldSwitchToMedia_","switchMedia_","cause","newId","abrTimer_","defaultPlaylists","defaultGroup","requestTimeout","triggerPresenceUsage_","setupFirstPlay","updatedPlaylist","selectedMedia","excludeUnsupportedVariants_","selectInitialPlaylist","initialMedia_","handleUpdatedMediaPlaylist","lastExcludeReason_","stuckAtPlaylistEnd_","updateAdCues_","updateDuration","defaultDemuxed","audioGroupKeys","currentPlaylist","forwardBuffer","bufferLowWaterLine","bufferHighWaterLine","sharedLogLine","maxBufferLowWaterLine","nextBandwidth","currBandwidth","logLine","_logLine","shouldSwitchToMedia","onSyncInfoUpdate_","onEndOfStream","delegateLoaders_","updateCodecs","tryToCreateSourceBuffers_","getCodecsOrExclude_","mediaSecondsLoaded_","smoothQualityChange_","mainMediaInfo","absolutePlaylistEnd","reincluded","errorMessage","delayDuration","fnNames","loaders","dontFilterPlaylist","loader","audioSeekable","mainSeekable","oldEnd","oldStart","updateDuration_","areMediaTypesKnown_","usingAudioLoader","hasMainMediaInfo","hasAudioMediaInfo","playlistCodecs","unsupportedAudio","unsupportedCodecs","supporter","switchMessages","newCodec","oldCodec","excludeIncompatibleVariants_","ids","unsupported","codecCount_","videoDetails","audioDetails","blacklistReasons","variantCodecs","variantCodecCount","variantVideoDetails","variantAudioDetails","_segment$cueOutCont$s","adOffset","adTotal","updateAdCues","newMax","Representation","vhsHandler","playlistID","changePlaylistFn","qualityChangeFunction","smoothQualityChange","incompatible","currentlyEnabled","timerCancelEvents","PlaybackWatcher","allowSeeksWithinUnsafeLiveWindow","liveRangeSafeTimeDelta","consecutiveUpdates","lastRecordedTime","timer_","checkCurrentTimeTimeout_","playHandler","monitorCurrentTime_","canPlayHandler","waitingHandler","techWaiting_","cancelTimerHandler","cancelTimer_","fixesBadSeeksHandler","fixesBadSeeks_","loaderTypes","loaderChecks","resetSegmentDownloads_","updateend","checkSegmentDownloads_","checkCurrentTime_","isBufferedDifferent","isRangeDifferent","playlistId","waiting_","afterSeekableWindow_","beforeSeekableWindow_","closeToBufferedContent","currentRange","livePoint","videoUnderflow_","nextRange","difference","skipTheGap_","allowedEnd","gap","lastVideoRange","videoRange","audioRange","gapFromVideoUnderflow_","scheduledCurrentTime","gaps","findGaps","defaultOptions","errorInterval","getSource","reloadSourceOnError","lastCalled","localOptions","loadedMetadataHandler","cleanupEvents","STANDARD_PLAYLIST_SELECTOR","INITIAL_PLAYLIST_SELECTOR","movingAverageBandwidthSelector","decay","average","lastSystemBandwidth","comparePlaylistResolution","leftWidth","rightWidth","handleVhsMediaChange","waitForKeySessionCreation","sourceKeySystems","audioMedia","mainPlaylists","initializeMediaKeys","keySystemsOptionsArr","keySystems","keySystemsArr","keySystemsOptions","keySystemsObj","keySystemOptions","getAllPsshKeySystemsOptions","initializationFinishedPromises","keySessionCreatedPromises","race","setupEmeOptions","sourceOptions","audioPlaylist","videoContentType","audioContentType","keySystemContentTypes","emeKeySystems","getVhsLocalStorage","storedObject","supportsNativeHls","canItPlay","supportsNativeDash","supportsTypeNatively","VhsHandler","initialBandwidth","source_","ignoreNextSeekingEvent_","setOptions_","overrideNative","featuresNativeVideoTracks","featuresNativeAudioTracks","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","useBandwidthFromLocalStorage","option","dataUri","playbackWatcherOptions","playbackWatcher_","defaultSelector","invThroughput","invBandwidth","mediaRequests_","mediaRequestsAborted_","mediaRequestsTimedout_","mediaRequestsErrored_","mediaTransferDuration_","mediaBytesTransferred_","mediaAppends_","mainAppendsToLoadedData","audioAppendsToLoadedData","appendsToLoadedData","timeToLoadedData","currentTech","playerDimensions","objectToStore","updateVhsLocalStorage","setupEme_","setupQualityLevels_","mediaSourceUrl_","audioPlaylistLoader","didSetupEmeOptions","qualityLevels_","dash","convertToProgramTime","VhsSourceHandler","_videojs$mergeOptions2","supportedType","styles","entering","entered","defaultTimeout","enter","enteringScreen","exit","leavingScreen","_props$disableStrictM","disableStrictModeCompat","inProp","onEnter","onEntered","onEntering","onExit","onExited","onExiting","_props$TransitionComp","_props$timeout","enableStrictModeCompat","unstable_strictMode","nodeRef","foreignRef","useForkRef","handleRef","normalizedTransitionCallback","nodeOrAppearing","maybeAppearing","_slicedToArray","isAppearing","handleEntering","handleEnter","reflow","transitionProps","getTransitionProps","webkitTransition","transitions","handleEntered","handleExiting","handleExit","handleExited","appear","childProps","visibility","arrayPush","baseFlatten","copyArray","baseOrderBy","collection","iteratees","orders","guard","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","identity","iteratee","comparer","compareAscending","objCriteria","criteria","othCriteria","ordersLength","isSymbol","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","eq","isArrayLike","isIndex","menuItem","popover","pointerEvents","popoverContent","menuGroupTitle","partnerMenuGroupTitle","menuGroupItem","navLink","textDecoration","LinkTabs","borderBottom","indicator","Tabs","LinkTab","h5","textTransform","minWidth","black","fontWeightMedium","Tab","isScrollButton","useHomeInfo","menus","childrenMenus","orderBy","in_menu","pages","mixedMenus","pathIndex","activeTabIndex","allCatLink","setValue","setAnchorEl","openedPopover","setOpenedPopover","popoverAnchor","popoverEnter","popoverLeave","MenuGroup","isPartner","disablePadding","disableGutters","groupTitle","page","AllPages","topics","partners","onChange","newValue","scrollButtons","tab","aria-owns","onMouseEnter","onMouseLeave","renderMenuTab","Popover","disableRestoreFocus","PaperProps","oc","MIME_TYPE","HTML","isHTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","NAMESPACE","SVG","XML","XMLNS","actionContainer","actionBack","actionConfirm","submit","CollectionCreateDialog","titleValue","setTitleValue","TextField","maxLength","fullWidth","createCollection","CollectionRenameDialog","useCollections","setCollections","updateCollection","CollectionDeleteDialog","deleteCollection","CollectionCopyDialog","videos","copyCollection","doccy","topLevel","minDoc","Backdrop","_props$invisible","invisible","WebkitTapHighlightColor","defaultTransitionDuration","BackdropProps","_props$disableBackdro","disableBackdropClick","_props$disableEscapeK","disableEscapeKeyDown","_props$fullScreen","fullScreen","_props$fullWidth","_props$maxWidth","onBackdropClick","onEscapeKeyDown","_props$PaperComponent","PaperComponent","_props$PaperProps","_props$scroll","scroll","_props$transitionDura","TransitionProps","ariaDescribedby","ariaLabelledby","mouseDownTarget","Modal","BackdropComponent","closeAfterTransition","capitalize","onMouseUp","onMouseDown","paperFullScreen","paperFullWidth","scrollPaper","scrollBody","overflowX","verticalAlign","outline","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","_defineProperty","paperWidthSm","sm","paperWidthMd","paperWidthLg","lg","paperWidthXl","xl","_props$disableTypogra","_props$dividers","dividers","WebkitOverflowScrolling","borderTop","divider","_props$disableSpacing","disableSpacing","b64Text","decodedString","atob","Buffer","notEmptyString","input","orderedSetReducer","toOrderedSet","splitOnASCIIWhitespace","copy","dest","Class","Super","pt","NodeType","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","ExceptionCode","ExceptionMessage","HIERARCHY_REQUEST_ERR","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","NOT_FOUND_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","INUSE_ATTRIBUTE_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","DOMException","captureStackTrace","NodeList","LiveNodeList","refresh","_node","_refresh","_updateLiveList","inc","_inc","ls","__set__","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","_onRemoveAttribute","namespaceURI","_nsMap","prefix","localName","_onAddAttribute","_removeNamedNode","lastIndex","DOMImplementation","Node","_xmlEncoder","_visitNode","Document","_onUpdateChild","cs","_removeChild","previousSibling","lastChild","_insertBefore","nextChild","cp","newFirst","newLast","pre","Attr","CharacterData","Comment","CDATASection","DocumentType","Notation","Entity","EntityReference","ProcessingInstruction","XMLSerializer","nodeSerializeToString","isHtml","nodeFilter","lookupPrefix","visibleNamespaces","namespace","serializeToString","needNamespaceDefine","ns","addSerializedAttribute","qualifiedName","prefixedNodeName","defaultNS","ai","nsi","pubid","publicId","sysid","systemId","sub","internalSubset","getNamedItem","setNamedItem","_ownerElement","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","feature","createDocument","doctype","createElementNS","createDocumentType","refChild","oldChild","deep","node2","attrs2","setAttributeNode","normalize","appendData","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importNode","importedNode","getElementById","rtv","getElementsByClassName","classNamesSet","nodeClassNames","nodeClassNamesSet","createComment","createCDATASection","createProcessingInstruction","createAttribute","specified","createEntityReference","pl","createAttributeNS","getAttributeNode","removeAttributeNode","_appendSingleChild","setAttributeNodeNS","removeAttributeNS","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagNameNS","substringData","insertData","replaceData","deleteData","splitText","newText","newNode","$$length","getTextContent","ListContext","alignItemsFlexStart","flexShrink","_props$inset","inset","primaryProp","primaryTypographyProps","secondaryProp","secondary","secondaryTypographyProps","multiline","leading","trailing","toNumber","nativeMax","nativeMin","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","isInvoking","arrayEach","baseEach","castFunction","baseInvoke","baseRest","castPath","toKey","overRest","setToString","otherArgs","baseSetToString","shortOut","constant","getNative","nativeNow","stamp","remaining","reviver","searchInput","hasKeyCode","foundNamedKey","search","aliases","nameOrCode","alias","isFunction","createXHR","httpHandler","initParams","params","_createXHR","called","getBody","responseXML","firefoxBugTakenEffect","getXml","isJson","errorFunc","evt","timeoutTimer","failureResponse","loadFunc","useXDR","rawRequest","getAllResponseHeaders","parseHeaders","XDomainRequest","XMLHttpRequest","onprogress","onabort","ontimeout","username","password","setRequestHeader","send","forEachArray","alert","confirm","prompt","decodeResponseBody","charset","contentTypeHeader","_contentType$split","getCharset","VTTRegion","cueShim","regionShim","nativeVTTCue","nativeVTTRegion","shim","restore","_objCreate","F","ParsingError","errorData","parseTimeStamp","computeSeconds","f","Settings","parseOptions","keyValueDelim","groupDelim","kv","parseCue","regionList","oInput","consumeTimeStamp","Errors","BadTimeStamp","skipWhitespace","region","vals","vals0","integer","lineAlign","snapToLines","center","positionAlign","consumeCueSettings","BadSignature","dflt","defaultKey","TEXTAREA_ELEMENT","TAG_NAME","u","ruby","rt","DEFAULT_COLOR_CLASS","white","lime","cyan","red","yellow","magenta","blue","TAG_ANNOTATION","NEEDS_PARENT","parseContent","nextToken","shouldAdd","annotation","rootDiv","tagStack","cl","bgColor","colorName","propValue","strongRTLRanges","isStrongRTLChar","determineBidi","nodeStack","pushNodes","nextTextNode","StyleBox","CueStyleBox","styleOptions","writingMode","unicodeBidi","applyStyles","font","textPos","formatStyle","move","BoxPosition","lh","rects","getClientRects","moveBoxToLinePosition","styleBox","containerBox","boxPositions","boxPosition","linePos","textTrackList","mediaElement","computeLinePos","axis","maxPosition","initialAxis","calculatedPercentage","bestPosition","specifiedPosition","percentage","overlapsOppositeAxis","within","overlapsAny","intersectPercentage","findBestPosition","toCSSCompatValues","unit","toMove","overlaps","getSimpleBoxPosition","convertCueToDOMTree","cuetext","paddedOverlay","hasBeenReset","shouldCompute","reportOrThrowError","collectNextLine","pos","parseHeader","parseTimestampMap","xy","anchor","lines","regionAnchorX","regionAnchorY","viewportAnchorX","viewportAnchorY","onregion","parseRegion","alreadyCollectedLine","hasSubstring","directionSetting","alignSetting","findAlignSetting","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","setting","findDirectionSetting","SyntaxError","getCueAsHTML","scrollSetting","isValidPercentValue","_lines","_regionAnchorX","_regionAnchorY","_viewportAnchorX","_viewportAnchorY","_scroll","findScrollSetting","isNativeReflectConstruct","Parent","Reflect","construct","Function","sham","Proxy","valueOf","URL_REGEX","FIRST_SEGMENT_REGEX","SLASH_DOT_REGEX","SLASH_DOT_DOT_REGEX","baseURL","relativeURL","alwaysNormalize","basePartsForNormalise","parseURL","buildURLFromParts","relativeParts","scheme","baseParts","netLoc","builtParts","baseURLPath","newPath","lastIndexOf","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","encodingOrOffset","allocUnsafe","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","fromString","isBuffer","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","_arr","toHex","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","LN2","conventions","entities","sax","ParseError","XMLReader","locator","DOMHandler","cdata","lineNumber","columnNumber","_locator","_toString","chars","java","appendElement","hander","currentElement","domBuilder","defaultNSMap","xmlns","entityMap","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","errorImpl","isCallback","build","buildErrorHandler","startDocument","documentURI","startElement","qName","getURI","getQName","getLocator","endElement","startPrefixMapping","endPrefixMapping","processingInstruction","ins","ignorableWhitespace","ch","characters","charNode","skippedEntity","endDocument","comm","startCDATA","endCDATA","startDTD","impl","dt","warning","fatalError","__DOMHandler","amp","apos","gt","lt","quot","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","times","divide","forall","exist","nabla","isin","notin","ni","prod","minus","lowast","radic","infin","ang","and","or","cap","cup","there4","sim","cong","asymp","ne","equiv","ge","sup","nsub","sube","supe","oplus","otimes","perp","sdot","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","rho","sigmaf","sigma","tau","upsilon","phi","chi","omega","thetasym","upsih","piv","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","euro","trade","larr","uarr","rarr","darr","harr","crarr","lceil","rceil","lfloor","rfloor","loz","spades","clubs","hearts","diams","nameStartChar","nameChar","tagNamePattern","copyLocator","parseElementStartPart","currentNSMap","entityReplacer","addAttribute","qname","attributeNames","addValue","setTagName","closed","localNSMap","nsp","nsPrefix","_copy","parseHtmlSpecialContent","elStartEnd","elEndStart","fixSelfClosed","closeMap","parseDCC","matchs","lastMatch","endDTD","parseInstruction","ElementAttributes","defaultNSMapCopy","surrogate1","surrogate2","fixedFromCharCode","appendText","xt","lineEnd","linePattern","lineStart","parseStack","tagStart","endMatch","locator2","getLocalName","MAX_UINT32","referenceId","earliestPresentationTime","referenceCount","getUint16","startsWithSap","sapType","sapDeltaTime","_interopDefaultLegacy","videojs__default","forwardIndex","backIndex","seekForward","seekBack","SeekButton","videojs_hotkeys","util","enableMute","enableVolumeScroll","enableHoverScroll","enableFullscreen","enableJogStyle","alwaysCaptureHotkeys","captureDocumentHotkeys","documentHotkeysFocusElementFilter","enableModifiersForNumbers","enableInactiveFocus","skipInitialFocus","rewindKey","forwardKey","volumeUpKey","volumeDownKey","customKeys","K","parentElement","g","metaKey","ctrlKey","altKey","T","onmouseover","onmouseout","E","wheelDelta","detail","define"],"mappings":"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","file":"static/js/13.c692b058.chunk.js","sourcesContent":["import { makeStyles } from \"@material-ui/styles\";\n\nexport default makeStyles(theme => ({\n dashedBorder: {\n border: \"1px dashed\",\n borderColor: theme.palette.primary.main,\n padding: theme.spacing(2),\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(4),\n marginTop: theme.spacing(1),\n },\n text: {\n marginBottom: theme.spacing(2),\n },\n movieDetailContainer: {\n marginTop: theme.spacing(2),\n marginLeft: \"6%\",\n marginRight: \"6%\",\n paddingBottom: theme.spacing(4),\n },\n movieDescriptionContainer: {\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(3),\n [theme.breakpoints.down(\"sm\")]: {\n paddingTop: theme.spacing(0.5),\n },\n },\n playerContainer: {\n marginTop: theme.spacing(1),\n width: \"100%\",\n backgroundColor: \"black\",\n },\n player: {\n flex: 1,\n margin: \"auto\",\n },\n geoContainer: {\n ...theme.typography.subtitle1,\n color: \"#ffffff\",\n width: \"100%\",\n paddingTop: \"56.52%\",\n position: \"relative\",\n },\n textCenter: {\n margin: 0,\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n textAlign: \"center\",\n },\n}));\n","import * as React from 'react';\nimport createSvgIcon from './utils/createSvgIcon';\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 5v14l11-7z\"\n}), 'PlayArrow');","import * as React from 'react';\nimport createSvgIcon from './utils/createSvgIcon';\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 3v9.28c-.47-.17-.97-.28-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z\"\n}), 'Audiotrack');","import * as React from 'react';\nimport createSvgIcon from './utils/createSvgIcon';\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 3H7c-1.1 0-2 .9-2 2v16l7-3 7 3V5c0-1.1-.9-2-2-2z\"\n}), 'BookmarkRounded');","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 0H2C0.9 0 0.0100002 0.9 0.0100002 2L0 18L7 15L14 18V2C14 0.9 13.1 0 12 0ZM12 15L7 12.82L2 15V2H12V15Z\",\n fill: \"black\"\n});\n\nvar SvgBookmark = function SvgBookmark(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 18,\n viewBox: \"0 0 14 18\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgBookmark, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/bookmark.cbefa31d.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 2V16H2V2H16ZM17.1 0H0.9C0.4 0 0 0.4 0 0.9V17.1C0 17.5 0.4 18 0.9 18H17.1C17.5 18 18 17.5 18 17.1V0.9C18 0.4 17.5 0 17.1 0ZM8 4H14V6H8V4ZM8 8H14V10H8V8ZM8 12H14V14H8V12ZM4 4H6V6H4V4ZM4 8H6V10H4V8ZM4 12H6V14H4V12Z\",\n fill: \"black\"\n});\n\nvar SvgDocument = function SvgDocument(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDocument, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/document.d764c9c0.svg\";\nexport { ForwardRef as ReactComponent };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n position: 'absolute',\n right: 16,\n top: '50%',\n transform: 'translateY(-50%)'\n }\n};\n/**\n * Must be used as the last child of ListItem to function properly.\n */\n\nvar ListItemSecondaryAction = /*#__PURE__*/React.forwardRef(function ListItemSecondaryAction(props, ref) {\n var classes = props.classes,\n className = props.className,\n other = _objectWithoutProperties(props, [\"classes\", \"className\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemSecondaryAction.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally an `IconButton` or selection control.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nListItemSecondaryAction.muiName = 'ListItemSecondaryAction';\nexport default withStyles(styles, {\n name: 'MuiListItemSecondaryAction'\n})(ListItemSecondaryAction);","import * as React from 'react';\nimport createSvgIcon from './utils/createSvgIcon';\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z\"\n}), 'AddCircle');","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n List,\n ListItem,\n ListItemIcon,\n Checkbox,\n ListItemText,\n ListItemSecondaryAction,\n} from \"@material-ui/core\";\nimport { makeStyles, createStyles } from \"@material-ui/core/styles\";\nimport classNames from \"classnames\";\nimport {\n AddCircle as AddCircleIcon,\n} from \"@material-ui/icons\";\nimport uniq from \"lodash/uniq\";\n\nimport { StyledButton } from \"../core\";\nimport { CollectionCreateDialog } from \"../CollectionsDialog\";\nimport { DialogTitle } from \"../core\";\n\n// context\nimport { useSnackbar } from \"notistack\";\nimport { useUserState } from \"../../context/UserContext\";\nimport {\n useCollectionDispatch,\n useCollectionState,\n} from \"../../context/CollectionContext\";\n\nimport { updateVideoCollections } from \"../../clientAPI\";\nimport { useVideoCollections } from \"../../useGlobal\";\n\nconst useStyles = makeStyles(theme =>\n createStyles({\n root: {},\n paper: {\n borderRadius: 10,\n width: 440,\n },\n collectionsContainer: {\n maxHeight: 300,\n },\n titleRoot: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"32px 32px\",\n paddingTop: theme.spacing(5),\n paddingBottom: theme.spacing(3),\n },\n title: {\n color: \"black\",\n fontSize: 18,\n fontWeight: 500,\n },\n titleCloseButton: {\n fontSize: 20,\n cursor: \"pointer\",\n },\n titleChild: {\n display: \"inline-flex\",\n },\n dialogActions: {\n justifyContent: \"space-between\",\n padding: \"16px 32px 16px 32px\",\n },\n diaglogActionButtonText: {\n fontSize: 14,\n },\n diaglogActionButton: {},\n hidden: {\n display: \"none\",\n },\n }),\n);\n\nconst VideoCollectionDialog = ({\n videoId,\n open,\n onClose,\n status,\n checkedIds,\n}) => {\n const classes = useStyles();\n const {\n creatingDialogFromVideoColDialog,\n createdColID,\n } = useCollectionState();\n const { enqueueSnackbar } = useSnackbar();\n const collectionDispatch = useCollectionDispatch();\n const { isAuthenticated } = useUserState();\n const { videoCollections, setVideoCollections } = useVideoCollections(\n videoId,\n isAuthenticated,\n );\n\n const [checked, setChecked] = useState([]);\n const [unchecked, setUnchecked] = useState([]);\n const [openCreateDialog, setOpenCreateDialog] = useState(false);\n\n const expected = uniq([...checkedIds, ...checked]).filter(\n value => unchecked.indexOf(value) === -1,\n );\n\n const handleClose = () => {\n onClose();\n setChecked([]);\n setUnchecked([]);\n collectionDispatch({\n type: \"CREATE_COLLECTION_DONE\",\n });\n collectionDispatch({ type: \"RESET_DIALOG_COLLECTION_ID\" });\n };\n\n const handleToggle = value => () => {\n const collected = checkedIds.indexOf(value) !== -1;\n\n const newChecked = [...checked];\n const newUnchecked = [...unchecked];\n\n const inChecked = newChecked.indexOf(value) !== -1;\n const inUnchecked = newUnchecked.indexOf(value) !== -1;\n\n if (!collected) {\n if (inChecked) {\n newChecked.pop(value);\n } else {\n newChecked.push(value);\n }\n } else {\n if (inUnchecked) {\n newUnchecked.pop(value);\n } else {\n newUnchecked.push(value);\n }\n }\n\n setChecked(newChecked);\n setUnchecked(newUnchecked);\n };\n\n useEffect(() => {\n if (!creatingDialogFromVideoColDialog && createdColID) {\n handleToggle(createdColID)();\n collectionDispatch({ type: \"RESET_DIALOG_COLLECTION_ID\" });\n }\n }, [creatingDialogFromVideoColDialog]);\n\n const CollectionList = () => (\n \n {status.map(value => {\n const labelId = `checkbox-list-label-${value.id}`;\n return (\n \n \n \n \n \n \n \n );\n })}\n \n );\n\n return (\n <>\n \n 新增至收藏\n \n \n \n \n {\n setOpenCreateDialog(true);\n collectionDispatch({ type: \"CREATE_COLLECTION_DOING\" });\n }}\n startIcon={}\n >\n 建立資料夾\n \n {\n updateVideoCollections({\n video_id: videoId,\n expected_ids: expected,\n })\n .then(data => {\n const createIds = data.create.map(e => e.collection_id);\n const deleteIds = data.delete.map(e => e.collection_id);\n const isCollected = (collectionId, originVal) => {\n if (createIds.indexOf(collectionId) !== -1) {\n return true;\n }\n if (deleteIds.indexOf(collectionId) !== -1) {\n return false;\n }\n return originVal;\n };\n\n const newVideoCollections = {\n video_id: videoCollections.video_id,\n collections: videoCollections.collections.map(elm => ({\n ...elm,\n collected: isCollected(elm.id, elm.collected),\n })),\n };\n enqueueSnackbar(\"收藏已成功更新\", { variant: \"success\" });\n handleClose();\n setVideoCollections(newVideoCollections, true);\n })\n .catch(err => {\n console.log(err);\n });\n }}\n >\n 儲存\n \n \n \n \n \n );\n};\n\nVideoCollectionDialog.defaultProps = {};\n\nVideoCollectionDialog.propsTypes = {};\n\nexport default VideoCollectionDialog;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { makeStyles, createStyles } from \"@material-ui/core/styles\";\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Slide,\n} from \"@material-ui/core\";\n\n// context\nimport { useUserDispatch, useUserState } from \"../../context/UserContext\";\n\nconst useStyles = makeStyles(theme =>\n createStyles({\n dialogPaper: {\n padding: theme.spacing(1),\n },\n dialogTitle: {\n ...theme.typography.subtitle1,\n fontWeight: 500,\n },\n dialogDescription: {\n ...theme.typography.smallCaption,\n },\n dialogButton: {\n ...theme.typography.caption,\n fontWeight: 700,\n },\n }),\n);\n\nconst Transition = React.forwardRef(function Transition (props, ref) {\n return ;\n});\n\nconst LoginAlertDialog = props => {\n const classes = useStyles();\n const { loginUrl } = useUserState();\n const { open, setOpen } = props;\n\n const handleDialogClose = () => {\n if (setOpen) {\n setOpen(false);\n }\n };\n\n return (\n
\n \n \n {\"使用進階功能?\"}\n \n \n \n 請點選「登入/註冊」後,選擇「IP自動登入」或「合作平台登入」,即可開始使用進階功能。\n \n \n \n \n 返回\n \n \n 登入/註冊\n \n \n \n
\n );\n};\n\nLoginAlertDialog.defaultProps = {};\n\nLoginAlertDialog.propsTypes = {};\n\nexport default LoginAlertDialog;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { makeStyles, createStyles } from \"@material-ui/core/styles\";\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Slide,\n} from \"@material-ui/core\";\n\n// context\nimport { useUserDispatch } from \"../../context/UserContext\";\n\nconst useStyles = makeStyles(theme =>\n createStyles({\n dialogPaper: {\n padding: theme.spacing(1),\n },\n dialogTitle: {\n ...theme.typography.subtitle1,\n fontWeight: 500,\n },\n dialogDescription: {\n ...theme.typography.smallCaption,\n },\n dialogButton: {\n ...theme.typography.caption,\n fontWeight: 500,\n width: 56,\n height: 28,\n },\n dialogSubmitButton: {\n ...theme.typography.caption,\n fontWeight: 500,\n color: \"white\",\n backgroundColor: theme.palette.primary.main,\n \"&:hover\": {\n backgroundColor: theme.palette.primary.dark,\n },\n width: 56,\n height: 28,\n padding: \"4px 16px\",\n borderRadius: 20,\n },\n }),\n);\n\nconst Transition = React.forwardRef(function Transition (props, ref) {\n return ;\n});\n\nconst VideoQuotaExceedDialog = props => {\n const classes = useStyles();\n const { open, setOpen } = props;\n\n const handleDialogClose = () => {\n if (setOpen) {\n setOpen(false);\n }\n };\n\n return (\n
\n \n \n {\"授權數量不足\"}\n \n \n \n 目前登入的裝置/使用者數量已超過此帳號的授權數量,故無法播放影片。請登出其他裝置,或請稍後再試。\n \n \n \n {/* \n 取消\n \n \n 確定\n */}\n \n 取消\n \n \n 確定\n \n \n \n
\n );\n};\n\nVideoQuotaExceedDialog.defaultProps = {};\n\nVideoQuotaExceedDialog.propsTypes = {};\n\nexport default VideoQuotaExceedDialog;\n","import React, { useState } from \"react\";\nimport {\n Typography,\n Box,\n Button,\n Grid,\n Menu,\n MenuItem,\n Hidden,\n} from \"@material-ui/core\";\nimport { makeStyles, createStyles } from \"@material-ui/core/styles\";\nimport { useHistory } from \"react-router-dom\";\n\nimport parse from \"html-react-parser\";\nimport get from \"lodash/get\";\nimport isEmpty from \"lodash/isEmpty\";\nimport isNull from \"lodash/isNull\";\nimport isUndefined from \"lodash/isUndefined\";\n\nimport {\n Audiotrack as AudiotrackIcon,\n BookmarkRounded as BookmarkRoundedIcon,\n PlayArrow as PlayArrowIcon,\n} from \"@material-ui/icons\";\nimport { ReactComponent as BookmarkBorderRoundedIcon } from \"../../images/icons/bookmark.svg\";\nimport { ReactComponent as DocumentIcon } from \"../../images/icons/document.svg\";\nimport VideoTagButton from \"../../components/VideoTagButton\";\nimport VideoCollectionDialog from \"../../components/VideoCollectionDialog\";\nimport LoginAlertDialog from \"../../components/LoginAlertDialog\";\nimport VideoQuotaExceedDialog from \"../../components/VideoQuotaExceedDialog\";\n\n// context\nimport { useMatomo } from \"@datapunt/matomo-tracker-react\";\nimport { useVideoDispatch } from \"../../context/VideoContext\";\nimport { useUserState } from \"../../context/UserContext\";\nimport { handlePlayMovie, handlePlayTrailer } from \"../../context/VideoContext\";\n\nimport { useVideoCollections } from \"../../useGlobal\";\nimport { reserveQuota, downloadAttachment } from \"../../clientAPI\";\n\nconst useStyles = makeStyles(theme =>\n createStyles({\n root: {\n margin: \"6.5%\",\n marginBottom: theme.spacing(3),\n marginTop: theme.spacing(3),\n },\n title: {\n ...theme.typography.h2,\n fontWeight: 700,\n color: \"black\",\n [theme.breakpoints.down(\"sm\")]: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(0.5),\n },\n },\n interactionButton: {\n paddingLeft: theme.spacing(2.5),\n paddingRight: theme.spacing(2.5),\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: theme.spacing(1.25),\n paddingRight: theme.spacing(1.25),\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n },\n },\n interactionButtonText: {\n ...theme.typography.h6,\n color: \"black\",\n },\n tag: {\n marginRight: theme.spacing(1),\n paddingLeft: 14,\n paddingRight: 14,\n borderRadius: theme.spacing(2),\n backgroundColor: \"#e0e0e0\",\n \"&:hover\": {\n backgroundColor: theme.palette.primary.main,\n },\n },\n videoTagContainer: {\n marginTop: theme.spacing(1.25),\n marginBottom: theme.spacing(0.5),\n [theme.breakpoints.down(\"sm\")]: {\n marginBottom: theme.spacing(0),\n },\n },\n content: {\n marginTop: theme.spacing(2.5 - 1),\n },\n info: {\n marginTop: theme.spacing(1),\n },\n subtitle: {\n color: theme.palette.common.grey[800],\n },\n colorBlack: {\n color: \"black\",\n },\n body: {\n color: theme.palette.common.grey[800],\n },\n dropDownList: {\n boxShadow: \"0 1px 5px 1px rgba(116, 116, 116, 0.25)\",\n },\n menuListItem: {\n ...theme.typography.body2,\n padding: \"6px 24px 6px 24px\",\n color: theme.palette.common.grey[600],\n \"&:hover, &:focus, &$selected, &$selected:hover, &$selected:focus, &$menuListItemSelected, &$menuListItemSelected:focus, &$menuListItemSelected:hover\": {\n backgroundColor: `${theme.palette.primary.main} !important`,\n color: \"white\",\n },\n },\n menuListItemSelected: {},\n dialogPaper: {\n padding: theme.spacing(1),\n },\n dialogTitle: {\n ...theme.typography.subtitle1,\n fontWeight: 500,\n },\n dialogDescription: {\n ...theme.typography.smallCaption,\n },\n dialogButton: {\n ...theme.typography.caption,\n fontWeight: 700,\n },\n grow: {\n flexGrow: 1,\n },\n }),\n);\n\n\nexport default function MovieDescription ({\n videoId,\n videoInfo,\n videoType,\n trackIndex,\n playerRef,\n}) {\n const classes = useStyles();\n const history = useHistory();\n\n const { trackEvent } = useMatomo();\n const videoDispatch = useVideoDispatch();\n const { isAuthenticated, userInfo } = useUserState();\n\n const isLogin = isAuthenticated;\n const isTrailer = videoType === \"trailer\";\n\n const {\n video = {},\n directors = [],\n actors = [],\n tags = [],\n attachments = [],\n } = videoInfo;\n const { videoCollections } = useVideoCollections(video.id, isAuthenticated);\n const { collections = [] } = videoCollections;\n const status = collections.map(e => ({\n ...e,\n cid: e.id,\n }));\n const checkedIds = status.filter(e => e.collected).map(e => e.id);\n const bookmarkState = isAuthenticated && checkedIds.length > 0;\n\n const [openBookmarkDialog, setOpenBookmarkDialog] = useState(false);\n const [openLoginDialog, setOpenLoginDialog] = useState(false);\n const [openQuotaDialog, setOpenQuotaDialog] = useState(false);\n\n const trackLangs = get(videoInfo, `lang.movie.track`);\n const subtitleLangs = get(videoInfo, `lang.movie.subtitle`);\n const rateName = get(videoInfo, \"rate_name\", \"\");\n const runtime = get(video, \"runtime\") ? `${get(video, \"runtime\")} 分鐘` : \"\";\n const tracks = get(videoInfo, `play.${videoType}`);\n\n const metaInfo = [trackLangs, subtitleLangs, rateName, runtime]\n .filter(e => !isEmpty(e))\n .join(\" | \");\n\n const requireLoginWrapper = cb => {\n if (isAuthenticated) {\n return cb;\n } else {\n return () => {\n handleLoginDialogOpen();\n };\n }\n };\n\n const handleLoginDialogOpen = () => {\n setOpenLoginDialog(true);\n };\n\n const handleBookmarkDialogOpen = () => {\n setOpenBookmarkDialog(true);\n };\n\n const handleBookmarkDialogClose = () => {\n setOpenBookmarkDialog(false);\n };\n\n const handleBookmarkClick = requireLoginWrapper(() =>\n handleBookmarkDialogOpen(true),\n );\n\n const handleClickPlayMovie = () => {\n handlePlayMovie({\n isLogin,\n isTrailer,\n videoId,\n history,\n reserveQuota,\n setOpenLoginDialog,\n setOpenQuotaDialog,\n player: playerRef.current,\n trackEvent,\n });\n };\n\n const handleClickPlayTrailer = () => {\n handlePlayTrailer({\n isLogin,\n isTrailer,\n videoId,\n history,\n reserveQuota,\n setOpenLoginDialog,\n setOpenQuotaDialog,\n player: playerRef.current,\n trackEvent,\n });\n };\n\n const PlayMovieButton = () => {\n return (\n }\n onClick={handleClickPlayMovie}\n >\n 播放正片\n \n );\n };\n\n const PlayTrailerButton = () => {\n return (\n }\n onClick={handleClickPlayTrailer}\n >\n 播放預告\n \n );\n };\n\n const BookmarkButton = () => {\n return (\n \n ) : (\n \n )\n }\n onClick={handleBookmarkClick}\n >\n 收藏影片\n \n );\n };\n\n const ChangeTrackButton = () => {\n const [trackMenuAnchorEl, setTrackMenuAnchorEl] = useState(null);\n\n const handleClickTrackButton = event => {\n if (!isTrailer && !isLogin) {\n setOpenLoginDialog(true);\n } else {\n setTrackMenuAnchorEl(event.currentTarget);\n }\n };\n const handleTrackMenuClose = () => {\n setTrackMenuAnchorEl(null);\n };\n\n const handleClickTrackItem = idx => {\n if (!isTrailer && !isLogin) {\n setOpenLoginDialog(true);\n } else {\n if (isUndefined(idx) || isNull(idx)) return;\n const nextTrack = get(tracks, idx);\n if (nextTrack) {\n videoDispatch({\n type: \"UPDATE_VOICE_TRACK_SUCCESS\",\n payload: { url: nextTrack.url, trackIndex: idx },\n });\n }\n }\n handleTrackMenuClose();\n };\n\n if (!(tracks && tracks.length > 0)) {\n return null;\n }\n\n return (\n <>\n }\n aria-controls='track-menu'\n aria-haspopup='true'\n onClick={handleClickTrackButton}\n >\n 選擇配音\n \n \n {tracks.map((track, idx) => (\n {\n handleClickTrackItem(idx);\n }}\n >\n {track.langName}\n \n ))}\n \n \n );\n };\n\n const AttachmentButton = () => {\n const [attachmentMenuAnchorEl, setAttachmentMenuAnchorEl] = useState(null);\n const handleClickAttachmentButton = requireLoginWrapper(event => {\n setAttachmentMenuAnchorEl(event.currentTarget);\n });\n\n const handleAttachmentMenuClose = () => {\n setAttachmentMenuAnchorEl(null);\n };\n\n const handleClickAttchementItem = requireLoginWrapper(id => {\n if (isEmpty(id)) return;\n downloadAttachment(id).finally(() => handleAttachmentMenuClose());\n });\n return (\n <>\n }\n aria-controls='attachment-menu'\n aria-haspopup='true'\n onClick={handleClickAttachmentButton}\n >\n 下載學習單\n \n \n {attachments.map(attachment => (\n {\n handleClickAttchementItem(attachment.id);\n }}\n >\n {attachment.name}\n \n ))}\n \n \n );\n };\n\n const InteractionButtons = () => {\n return (\n <>\n \n \n \n \n \n \n \n \n \n {!isEmpty(attachments) && (\n \n \n \n )}\n \n );\n };\n\n const DefaultHeadLayout = () => {\n return (\n \n \n \n {video.title_zh}\n \n \n \n \n \n );\n };\n\n const SmallHeadLayout = () => {\n return (\n <>\n \n \n \n \n \n\n \n {video.title_zh}\n \n \n );\n };\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n {metaInfo}\n \n \n \n \n\n \n \n {video.title_fl}\n \n \n\n \n \n {tags.map(tag => (\n \n \n \n ))}\n \n \n\n
\n \n \n 劇情介紹\n \n \n\n \n
{parse(video.description)}
\n
\n\n \n \n \n \n 導演\n \n \n \n \n {directors.map(d => d.name_zh || d.name_fl).join(\"、\")}\n \n \n \n \n\n \n \n \n \n 演員\n \n \n \n \n {actors.map(d => d.name_zh || d.name_fl).join(\"、\")}\n \n \n \n \n
\n
\n
\n \n \n \n
\n
\n );\n}\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Button, Fade } from \"@material-ui/core\";\nimport { makeStyles, createStyles } from \"@material-ui/core/styles\";\nimport classNames from \"classnames\";\nimport { useMatomo } from \"@datapunt/matomo-tracker-react\";\nimport { reserveQuota } from \"../../clientAPI\";\nimport { useUserState } from \"../../context/UserContext\";\nimport { useHistory } from \"react-router-dom\";\nimport { handlePlayMovie, handlePlayTrailer } from \"../../context/VideoContext\";\nimport LoginAlertDialog from \"../../components/LoginAlertDialog\";\nimport VideoQuotaExceedDialog from \"../../components/VideoQuotaExceedDialog\";\n\nconst errorImage = require(\"../../images/error/image_not_found.png\");\nconst useStyles = makeStyles(theme =>\n createStyles({\n videoSideBar: {\n maxWidth: 280,\n maxHeight: 500,\n paddingTop: theme.spacing(9),\n padding: theme.spacing(2),\n overflowY: \"auto\",\n },\n videoItem: {\n display: \"flex\",\n marginBottom: theme.spacing(2),\n cursor: \"pointer\",\n // transition: \"background-color 0.3s, box-shadow 0.3s\",\n // \"&:hover, &:focus\": {\n // zIndex: 100,\n // backgroundColor: \"#f0f0f0\",\n // boxShadow: \"0 4px 8px rgba(0, 0, 0, 0.1)\",\n // },\n // borderRadius: theme.spacing(1),\n },\n thumbnail: {\n width: 160,\n height: 90,\n objectFit: \"cover\",\n [theme.breakpoints.between(\"sm\", \"md\")]: {\n width: 120,\n height: 60,\n },\n },\n videoInfo: {\n marginLeft: theme.spacing(1),\n },\n videoTitle: {\n ...theme.typography.subtitle2,\n color: \"white\",\n margin: 0,\n },\n }),\n);\n\nconst VideoSideBarItem = ({\n item,\n playerRef,\n setOpenLoginDialog,\n setOpenQuotaDialog,\n onSelect,\n}) => {\n const classes = useStyles();\n\n const { isAuthenticated } = useUserState();\n\n const isLogin = isAuthenticated;\n const isTrailer = item.videoType === \"trailer\";\n const isTrailerUrl = window.location.pathname.indexOf(\"trailer\") !== -1;\n const videoId = item.videoId;\n const { trackEvent } = useMatomo();\n const history = useHistory();\n\n const handleClickPlayMovie = () => {\n handlePlayMovie({\n isLogin,\n isTrailer: isTrailerUrl,\n videoId,\n history,\n reserveQuota,\n setOpenLoginDialog,\n setOpenQuotaDialog,\n player: playerRef.current,\n trackEvent,\n });\n };\n\n const handleClickPlayTrailer = () => {\n handlePlayTrailer({\n isLogin,\n isTrailer: isTrailerUrl,\n videoId,\n history,\n reserveQuota,\n setOpenLoginDialog,\n setOpenQuotaDialog,\n player: playerRef.current,\n trackEvent,\n });\n };\n\n return (\n {\n if (isTrailer) {\n handleClickPlayTrailer();\n } else {\n handleClickPlayMovie();\n }\n onSelect(item.id);\n }}\n >\n {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src = errorImage;\n }}\n alt={item.title}\n />\n\n
\n

\n {item.title}\n {/*
\n {item.langName} */}\n

\n
\n \n );\n};\n\nconst VideoSideBar = ({ playerRef, items }) => {\n const classes = useStyles();\n\n const [selectedVideoId, setSelectedVideoId] = useState(null);\n const [openLoginDialog, setOpenLoginDialog] = useState(false);\n const [openQuotaDialog, setOpenQuotaDialog] = useState(false);\n\n const handleSelect = (id) => {\n setSelectedVideoId(id);\n };\n\n return (\n
\n {items.map(item => (\n \n ))}\n \n \n
\n );\n};\n\nexport default VideoSideBar;\n","import videojs from 'video.js';\n\nvar version = \"1.1.4\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\nvar asyncGenerator = function () {\n function AwaitValue(value) {\n this.value = value;\n }\n\n function AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg);\n var value = result.value;\n\n if (value instanceof AwaitValue) {\n Promise.resolve(value.value).then(function (arg) {\n resume(\"next\", arg);\n }, function (arg) {\n resume(\"throw\", arg);\n });\n } else {\n settle(result.done ? \"return\" : \"normal\", result.value);\n }\n } catch (err) {\n settle(\"throw\", err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case \"return\":\n front.resolve({\n value: value,\n done: true\n });\n break;\n\n case \"throw\":\n front.reject(value);\n break;\n\n default:\n front.resolve({\n value: value,\n done: false\n });\n break;\n }\n\n front = front.next;\n\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n if (typeof gen.return !== \"function\") {\n this.return = undefined;\n }\n }\n\n if (typeof Symbol === \"function\" && Symbol.asyncIterator) {\n AsyncGenerator.prototype[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n\n AsyncGenerator.prototype.next = function (arg) {\n return this._invoke(\"next\", arg);\n };\n\n AsyncGenerator.prototype.throw = function (arg) {\n return this._invoke(\"throw\", arg);\n };\n\n AsyncGenerator.prototype.return = function (arg) {\n return this._invoke(\"return\", arg);\n };\n\n return {\n wrap: function (fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n },\n await: function (value) {\n return new AwaitValue(value);\n }\n };\n}();\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n\n\n\n\n\n\n\n\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar VideoJsButtonClass = videojs.getComponent('MenuButton');\nvar VideoJsMenuClass = videojs.getComponent('Menu');\nvar VideoJsComponent = videojs.getComponent('Component');\nvar Dom = videojs.dom;\n\n/**\n * Convert string to title case.\n *\n * @param {string} string - the string to convert\n * @return {string} the returned titlecase string\n */\nfunction toTitleCase(string) {\n if (typeof string !== 'string') {\n return string;\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\n/**\n * Extend vjs button class for quality button.\n */\n\nvar ConcreteButton = function (_VideoJsButtonClass) {\n inherits(ConcreteButton, _VideoJsButtonClass);\n\n /**\n * Button constructor.\n *\n * @param {Player} player - videojs player instance\n */\n function ConcreteButton(player) {\n classCallCheck(this, ConcreteButton);\n return possibleConstructorReturn(this, _VideoJsButtonClass.call(this, player, {\n title: player.localize('Quality'),\n name: 'QualityButton'\n }));\n }\n\n /**\n * Creates button items.\n *\n * @return {Array} - Button items\n */\n\n\n ConcreteButton.prototype.createItems = function createItems() {\n return [];\n };\n\n /**\n * Create the menu and add all items to it.\n *\n * @return {Menu}\n * The constructed menu\n */\n\n\n ConcreteButton.prototype.createMenu = function createMenu() {\n var menu = new VideoJsMenuClass(this.player_, { menuButton: this });\n\n this.hideThreshold_ = 0;\n\n // Add a title list item to the top\n if (this.options_.title) {\n var titleEl = Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.options_.title),\n tabIndex: -1\n });\n var titleComponent = new VideoJsComponent(this.player_, { el: titleEl });\n\n this.hideThreshold_ += 1;\n\n menu.addItem(titleComponent);\n }\n\n this.items = this.createItems();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n };\n\n return ConcreteButton;\n}(VideoJsButtonClass);\n\n// Concrete classes\nvar VideoJsMenuItemClass = videojs.getComponent('MenuItem');\n\n/**\n * Extend vjs menu item class.\n */\n\nvar ConcreteMenuItem = function (_VideoJsMenuItemClass) {\n inherits(ConcreteMenuItem, _VideoJsMenuItemClass);\n\n /**\n * Menu item constructor.\n *\n * @param {Player} player - vjs player\n * @param {Object} item - Item object\n * @param {ConcreteButton} qualityButton - The containing button.\n * @param {HlsQualitySelectorPlugin} plugin - This plugin instance.\n */\n function ConcreteMenuItem(player, item, qualityButton, plugin) {\n classCallCheck(this, ConcreteMenuItem);\n\n var _this = possibleConstructorReturn(this, _VideoJsMenuItemClass.call(this, player, {\n label: item.label,\n selectable: true,\n selected: item.selected || false\n }));\n\n _this.item = item;\n _this.qualityButton = qualityButton;\n _this.plugin = plugin;\n return _this;\n }\n\n /**\n * Click event for menu item.\n */\n\n\n ConcreteMenuItem.prototype.handleClick = function handleClick() {\n\n // Reset other menu items selected status.\n for (var i = 0; i < this.qualityButton.items.length; ++i) {\n this.qualityButton.items[i].selected(false);\n }\n\n // Set this menu item to selected, and set quality.\n this.plugin.setQuality(this.item.value);\n this.selected(true);\n };\n\n return ConcreteMenuItem;\n}(VideoJsMenuItemClass);\n\n// Default options for the plugin.\nvar defaults = {};\n\n// Cross-compatibility for Video.js 5 and 6.\nvar registerPlugin = videojs.registerPlugin || videojs.plugin;\n// const dom = videojs.dom || videojs;\n\n/**\n * VideoJS HLS Quality Selector Plugin class.\n */\n\nvar HlsQualitySelectorPlugin = function () {\n\n /**\n * Plugin Constructor.\n *\n * @param {Player} player - The videojs player instance.\n * @param {Object} options - The plugin options.\n */\n function HlsQualitySelectorPlugin(player, options) {\n classCallCheck(this, HlsQualitySelectorPlugin);\n\n this.player = player;\n this.config = options;\n\n // If there is quality levels plugin and the HLS tech exists\n // then continue.\n if (this.player.qualityLevels && this.getHls()) {\n // Create the quality button.\n this.createQualityButton();\n this.bindPlayerEvents();\n }\n }\n\n /**\n * Returns HLS Plugin\n *\n * @return {*} - videojs-hls-contrib plugin.\n */\n\n\n HlsQualitySelectorPlugin.prototype.getHls = function getHls() {\n return this.player.tech({ IWillNotUseThisInPlugins: true }).hls;\n };\n\n /**\n * Binds listener for quality level changes.\n */\n\n\n HlsQualitySelectorPlugin.prototype.bindPlayerEvents = function bindPlayerEvents() {\n this.player.qualityLevels().on('addqualitylevel', this.onAddQualityLevel.bind(this));\n };\n\n /**\n * Adds the quality menu button to the player control bar.\n */\n\n\n HlsQualitySelectorPlugin.prototype.createQualityButton = function createQualityButton() {\n\n var player = this.player;\n\n this._qualityButton = new ConcreteButton(player);\n\n var placementIndex = player.controlBar.children().length - 2;\n var concreteButtonInstance = player.controlBar.addChild(this._qualityButton, { componentClass: 'qualitySelector' }, this.config.placementIndex || placementIndex);\n\n concreteButtonInstance.addClass('vjs-quality-selector');\n if (!this.config.displayCurrentQuality) {\n var icon = ' ' + (this.config.vjsIconClass || 'vjs-icon-hd');\n\n concreteButtonInstance.menuButton_.$('.vjs-icon-placeholder').className += icon;\n } else {\n this.setButtonInnerText('auto');\n }\n concreteButtonInstance.removeClass('vjs-hidden');\n };\n\n /**\n *Set inner button text.\n *\n * @param {string} text - the text to display in the button.\n */\n\n\n HlsQualitySelectorPlugin.prototype.setButtonInnerText = function setButtonInnerText(text) {\n this._qualityButton.menuButton_.$('.vjs-icon-placeholder').innerHTML = text;\n };\n\n /**\n * Builds individual quality menu items.\n *\n * @param {Object} item - Individual quality menu item.\n * @return {ConcreteMenuItem} - Menu item\n */\n\n\n HlsQualitySelectorPlugin.prototype.getQualityMenuItem = function getQualityMenuItem(item) {\n var player = this.player;\n\n return new ConcreteMenuItem(player, item, this._qualityButton, this);\n };\n\n /**\n * Executed when a quality level is added from HLS playlist.\n */\n\n\n HlsQualitySelectorPlugin.prototype.onAddQualityLevel = function onAddQualityLevel() {\n var _this = this;\n\n var player = this.player;\n var qualityList = player.qualityLevels();\n var levels = qualityList.levels_ || [];\n var levelItems = [];\n\n var _loop = function _loop(i) {\n if (!levelItems.filter(function (_existingItem) {\n return _existingItem.item && _existingItem.item.value === levels[i].height;\n }).length) {\n var levelItem = _this.getQualityMenuItem.call(_this, {\n label: levels[i].height + 'p',\n value: levels[i].height\n });\n\n levelItems.push(levelItem);\n }\n };\n\n for (var i = 0; i < levels.length; ++i) {\n _loop(i);\n }\n\n levelItems.sort(function (current, next) {\n if ((typeof current === 'undefined' ? 'undefined' : _typeof(current)) !== 'object' || (typeof next === 'undefined' ? 'undefined' : _typeof(next)) !== 'object') {\n return -1;\n }\n if (current.item.value < next.item.value) {\n return -1;\n }\n if (current.item.value > next.item.value) {\n return 1;\n }\n return 0;\n });\n\n levelItems.push(this.getQualityMenuItem.call(this, {\n label: player.localize('Auto'),\n value: 'auto',\n selected: true\n }));\n\n if (this._qualityButton) {\n this._qualityButton.createItems = function () {\n return levelItems;\n };\n this._qualityButton.update();\n }\n };\n\n /**\n * Sets quality (based on media height)\n *\n * @param {number} height - A number representing HLS playlist.\n */\n\n\n HlsQualitySelectorPlugin.prototype.setQuality = function setQuality(height) {\n var qualityList = this.player.qualityLevels();\n\n // Set quality on plugin\n this._currentQuality = height;\n\n if (this.config.displayCurrentQuality) {\n this.setButtonInnerText(height === 'auto' ? height : height + 'p');\n }\n\n for (var i = 0; i < qualityList.length; ++i) {\n var quality = qualityList[i];\n\n quality.enabled = quality.height === height || height === 'auto';\n }\n this._qualityButton.unpressButton();\n };\n\n /**\n * Return the current set quality or 'auto'\n *\n * @return {string} the currently set quality\n */\n\n\n HlsQualitySelectorPlugin.prototype.getCurrentQuality = function getCurrentQuality() {\n return this._currentQuality || 'auto';\n };\n\n return HlsQualitySelectorPlugin;\n}();\n\n/**\n * Function to invoke when the player is ready.\n *\n * This is a great place for your plugin to initialize itself. When this\n * function is called, the player will have its DOM and child components\n * in place.\n *\n * @function onPlayerReady\n * @param {Player} player\n * A Video.js player object.\n *\n * @param {Object} [options={}]\n * A plain object containing options for the plugin.\n */\n\n\nvar onPlayerReady = function onPlayerReady(player, options) {\n player.addClass('vjs-hls-quality-selector');\n player.hlsQualitySelector = new HlsQualitySelectorPlugin(player, options);\n};\n\n/**\n * A video.js plugin.\n *\n * In the plugin function, the value of `this` is a video.js `Player`\n * instance. You cannot rely on the player being in a \"ready\" state here,\n * depending on how the plugin is invoked. This may or may not be important\n * to you; if not, remove the wait for \"ready\"!\n *\n * @function hlsQualitySelector\n * @param {Object} [options={}]\n * An object of options left to the plugin author to define.\n */\nvar hlsQualitySelector = function hlsQualitySelector(options) {\n var _this2 = this;\n\n this.ready(function () {\n onPlayerReady(_this2, videojs.mergeOptions(defaults, options));\n });\n};\n\n// Register the plugin with video.js.\nregisterPlugin('hlsQualitySelector', hlsQualitySelector);\n\n// Include the version number.\nhlsQualitySelector.VERSION = version;\n\nexport default hlsQualitySelector;\n","/*! @name videojs-contrib-quality-levels @version 2.1.0 @license Apache-2.0 */\nimport videojs from 'video.js';\nimport document from 'global/document';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/**\n * A single QualityLevel.\n *\n * interface QualityLevel {\n * readonly attribute DOMString id;\n * attribute DOMString label;\n * readonly attribute long width;\n * readonly attribute long height;\n * readonly attribute long bitrate;\n * attribute boolean enabled;\n * };\n *\n * @class QualityLevel\n */\n\nvar QualityLevel =\n/**\n * Creates a QualityLevel\n *\n * @param {Representation|Object} representation The representation of the quality level\n * @param {string} representation.id Unique id of the QualityLevel\n * @param {number=} representation.width Resolution width of the QualityLevel\n * @param {number=} representation.height Resolution height of the QualityLevel\n * @param {number} representation.bandwidth Bitrate of the QualityLevel\n * @param {Function} representation.enabled Callback to enable/disable QualityLevel\n */\nfunction QualityLevel(representation) {\n var level = this; // eslint-disable-line\n\n if (videojs.browser.IS_IE8) {\n level = document.createElement('custom');\n\n for (var prop in QualityLevel.prototype) {\n if (prop !== 'constructor') {\n level[prop] = QualityLevel.prototype[prop];\n }\n }\n }\n\n level.id = representation.id;\n level.label = level.id;\n level.width = representation.width;\n level.height = representation.height;\n level.bitrate = representation.bandwidth;\n level.enabled_ = representation.enabled;\n Object.defineProperty(level, 'enabled', {\n /**\n * Get whether the QualityLevel is enabled.\n *\n * @return {boolean} True if the QualityLevel is enabled.\n */\n get: function get() {\n return level.enabled_();\n },\n\n /**\n * Enable or disable the QualityLevel.\n *\n * @param {boolean} enable true to enable QualityLevel, false to disable.\n */\n set: function set(enable) {\n level.enabled_(enable);\n }\n });\n return level;\n};\n\n/**\n * A list of QualityLevels.\n *\n * interface QualityLevelList : EventTarget {\n * getter QualityLevel (unsigned long index);\n * readonly attribute unsigned long length;\n * readonly attribute long selectedIndex;\n *\n * void addQualityLevel(QualityLevel qualityLevel)\n * void removeQualityLevel(QualityLevel remove)\n * QualityLevel? getQualityLevelById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddqualitylevel;\n * attribute EventHandler onremovequalitylevel;\n * };\n *\n * @extends videojs.EventTarget\n * @class QualityLevelList\n */\n\nvar QualityLevelList =\n/*#__PURE__*/\nfunction (_videojs$EventTarget) {\n _inheritsLoose(QualityLevelList, _videojs$EventTarget);\n\n function QualityLevelList() {\n var _this;\n\n _this = _videojs$EventTarget.call(this) || this;\n\n var list = _assertThisInitialized(_assertThisInitialized(_this)); // eslint-disable-line\n\n\n if (videojs.browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (var prop in QualityLevelList.prototype) {\n if (prop !== 'constructor') {\n list[prop] = QualityLevelList.prototype[prop];\n }\n }\n }\n\n list.levels_ = [];\n list.selectedIndex_ = -1;\n /**\n * Get the index of the currently selected QualityLevel.\n *\n * @returns {number} The index of the selected QualityLevel. -1 if none selected.\n * @readonly\n */\n\n Object.defineProperty(list, 'selectedIndex', {\n get: function get() {\n return list.selectedIndex_;\n }\n });\n /**\n * Get the length of the list of QualityLevels.\n *\n * @returns {number} The length of the list.\n * @readonly\n */\n\n Object.defineProperty(list, 'length', {\n get: function get() {\n return list.levels_.length;\n }\n });\n return list || _assertThisInitialized(_this);\n }\n /**\n * Adds a quality level to the list.\n *\n * @param {Representation|Object} representation The representation of the quality level\n * @param {string} representation.id Unique id of the QualityLevel\n * @param {number=} representation.width Resolution width of the QualityLevel\n * @param {number=} representation.height Resolution height of the QualityLevel\n * @param {number} representation.bandwidth Bitrate of the QualityLevel\n * @param {Function} representation.enabled Callback to enable/disable QualityLevel\n * @return {QualityLevel} the QualityLevel added to the list\n * @method addQualityLevel\n */\n\n\n var _proto = QualityLevelList.prototype;\n\n _proto.addQualityLevel = function addQualityLevel(representation) {\n var qualityLevel = this.getQualityLevelById(representation.id); // Do not add duplicate quality levels\n\n if (qualityLevel) {\n return qualityLevel;\n }\n\n var index = this.levels_.length;\n qualityLevel = new QualityLevel(representation);\n\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get: function get() {\n return this.levels_[index];\n }\n });\n }\n\n this.levels_.push(qualityLevel);\n this.trigger({\n qualityLevel: qualityLevel,\n type: 'addqualitylevel'\n });\n return qualityLevel;\n };\n /**\n * Removes a quality level from the list.\n *\n * @param {QualityLevel} remove QualityLevel to remove to the list.\n * @return {QualityLevel|null} the QualityLevel removed or null if nothing removed\n * @method removeQualityLevel\n */\n\n\n _proto.removeQualityLevel = function removeQualityLevel(qualityLevel) {\n var removed = null;\n\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === qualityLevel) {\n removed = this.levels_.splice(i, 1)[0];\n\n if (this.selectedIndex_ === i) {\n this.selectedIndex_ = -1;\n } else if (this.selectedIndex_ > i) {\n this.selectedIndex_--;\n }\n\n break;\n }\n }\n\n if (removed) {\n this.trigger({\n qualityLevel: qualityLevel,\n type: 'removequalitylevel'\n });\n }\n\n return removed;\n };\n /**\n * Searches for a QualityLevel with the given id.\n *\n * @param {string} id The id of the QualityLevel to find.\n * @return {QualityLevel|null} The QualityLevel with id, or null if not found.\n * @method getQualityLevelById\n */\n\n\n _proto.getQualityLevelById = function getQualityLevelById(id) {\n for (var i = 0, l = this.length; i < l; i++) {\n var level = this[i];\n\n if (level.id === id) {\n return level;\n }\n }\n\n return null;\n };\n /**\n * Resets the list of QualityLevels to empty\n *\n * @method dispose\n */\n\n\n _proto.dispose = function dispose() {\n this.selectedIndex_ = -1;\n this.levels_.length = 0;\n };\n\n return QualityLevelList;\n}(videojs.EventTarget);\n/**\n * change - The selected QualityLevel has changed.\n * addqualitylevel - A QualityLevel has been added to the QualityLevelList.\n * removequalitylevel - A QualityLevel has been removed from the QualityLevelList.\n */\n\n\nQualityLevelList.prototype.allowedEvents_ = {\n change: 'change',\n addqualitylevel: 'addqualitylevel',\n removequalitylevel: 'removequalitylevel'\n}; // emulate attribute EventHandler support to allow for feature detection\n\nfor (var event in QualityLevelList.prototype.allowedEvents_) {\n QualityLevelList.prototype['on' + event] = null;\n}\n\nvar version = \"2.1.0\";\n\nvar registerPlugin = videojs.registerPlugin || videojs.plugin;\n/**\n * Initialization function for the qualityLevels plugin. Sets up the QualityLevelList and\n * event handlers.\n *\n * @param {Player} player Player object.\n * @param {Object} options Plugin options object.\n * @function initPlugin\n */\n\nvar initPlugin = function initPlugin(player, options) {\n var originalPluginFn = player.qualityLevels;\n var qualityLevelList = new QualityLevelList();\n\n var disposeHandler = function disposeHandler() {\n qualityLevelList.dispose();\n player.qualityLevels = originalPluginFn;\n player.off('dispose', disposeHandler);\n };\n\n player.on('dispose', disposeHandler);\n\n player.qualityLevels = function () {\n return qualityLevelList;\n };\n\n player.qualityLevels.VERSION = version;\n return qualityLevelList;\n};\n/**\n * A video.js plugin.\n *\n * In the plugin function, the value of `this` is a video.js `Player`\n * instance. You cannot rely on the player being in a \"ready\" state here,\n * depending on how the plugin is invoked. This may or may not be important\n * to you; if not, remove the wait for \"ready\"!\n *\n * @param {Object} options Plugin options object\n * @function qualityLevels\n */\n\n\nvar qualityLevels = function qualityLevels(options) {\n return initPlugin(this, videojs.mergeOptions({}, options));\n}; // Register the plugin with video.js.\n\n\nregisterPlugin('qualityLevels', qualityLevels); // Include the version number.\n\nqualityLevels.VERSION = version;\n\nexport default qualityLevels;\n","/*! @name videojs-overlay @version 2.1.5 @license Apache-2.0 */\nimport videojs from 'video.js';\nimport window from 'global/window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nvar version = \"2.1.5\";\n\nvar defaults = {\n align: 'top-left',\n class: '',\n content: 'This overlay will show up while the video is playing',\n debug: false,\n showBackground: true,\n attachToControlBar: false,\n overlays: [{\n start: 'playing',\n end: 'paused'\n }]\n};\nvar Component = videojs.getComponent('Component');\nvar dom = videojs.dom || videojs;\nvar registerPlugin = videojs.registerPlugin || videojs.plugin;\n/**\n * Whether the value is a `Number`.\n *\n * Both `Infinity` and `-Infinity` are accepted, but `NaN` is not.\n *\n * @param {Number} n\n * @return {Boolean}\n */\n\n/* eslint-disable no-self-compare */\n\nvar isNumber = function isNumber(n) {\n return typeof n === 'number' && n === n;\n};\n/* eslint-enable no-self-compare */\n\n/**\n * Whether a value is a string with no whitespace.\n *\n * @param {String} s\n * @return {Boolean}\n */\n\n\nvar hasNoWhitespace = function hasNoWhitespace(s) {\n return typeof s === 'string' && /^\\S+$/.test(s);\n};\n/**\n * Overlay component.\n *\n * @class Overlay\n * @extends {videojs.Component}\n */\n\n\nvar Overlay =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(Overlay, _Component);\n\n function Overlay(player, options) {\n var _this;\n\n _this = _Component.call(this, player, options) || this;\n ['start', 'end'].forEach(function (key) {\n var value = _this.options_[key];\n\n if (isNumber(value)) {\n _this[key + 'Event_'] = 'timeupdate';\n } else if (hasNoWhitespace(value)) {\n _this[key + 'Event_'] = value; // An overlay MUST have a start option. Otherwise, it's pointless.\n } else if (key === 'start') {\n throw new Error('invalid \"start\" option; expected number or string');\n }\n }); // video.js does not like components with multiple instances binding\n // events to the player because it tracks them at the player level,\n // not at the level of the object doing the binding. This could also be\n // solved with Function.prototype.bind (but not videojs.bind because of\n // its GUID magic), but the anonymous function approach avoids any issues\n // caused by crappy libraries clobbering Function.prototype.bind.\n // - https://github.com/videojs/video.js/issues/3097\n\n ['endListener_', 'rewindListener_', 'startListener_'].forEach(function (name$$1) {\n _this[name$$1] = function (e) {\n return Overlay.prototype[name$$1].call(_assertThisInitialized(_assertThisInitialized(_this)), e);\n };\n }); // If the start event is a timeupdate, we need to watch for rewinds (i.e.,\n // when the user seeks backward).\n\n if (_this.startEvent_ === 'timeupdate') {\n _this.on(player, 'timeupdate', _this.rewindListener_);\n }\n\n _this.debug(\"created, listening to \\\"\" + _this.startEvent_ + \"\\\" for \\\"start\\\" and \\\"\" + (_this.endEvent_ || 'nothing') + \"\\\" for \\\"end\\\"\");\n\n _this.hide();\n\n return _this;\n }\n\n var _proto = Overlay.prototype;\n\n _proto.createEl = function createEl() {\n var options = this.options_;\n var content = options.content;\n var background = options.showBackground ? 'vjs-overlay-background' : 'vjs-overlay-no-background';\n var el = dom.createEl('div', {\n className: \"\\n vjs-overlay\\n vjs-overlay-\" + options.align + \"\\n \" + options.class + \"\\n \" + background + \"\\n vjs-hidden\\n \"\n });\n\n if (typeof content === 'string') {\n el.innerHTML = content;\n } else if (content instanceof window.DocumentFragment) {\n el.appendChild(content);\n } else {\n dom.appendContent(el, content);\n }\n\n return el;\n };\n /**\n * Logs debug errors\n * @param {...[type]} args [description]\n * @return {[type]} [description]\n */\n\n\n _proto.debug = function debug() {\n if (!this.options_.debug) {\n return;\n }\n\n var log = videojs.log;\n var fn = log; // Support `videojs.log.foo` calls.\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (log.hasOwnProperty(args[0]) && typeof log[args[0]] === 'function') {\n fn = log[args.shift()];\n }\n\n fn.apply(void 0, [\"overlay#\" + this.id() + \": \"].concat(args));\n };\n /**\n * Overrides the inherited method to perform some event binding\n *\n * @return {Overlay}\n */\n\n\n _proto.hide = function hide() {\n _Component.prototype.hide.call(this);\n\n this.debug('hidden');\n this.debug(\"bound `startListener_` to \\\"\" + this.startEvent_ + \"\\\"\"); // Overlays without an \"end\" are valid.\n\n if (this.endEvent_) {\n this.debug(\"unbound `endListener_` from \\\"\" + this.endEvent_ + \"\\\"\");\n this.off(this.player(), this.endEvent_, this.endListener_);\n }\n\n this.on(this.player(), this.startEvent_, this.startListener_);\n return this;\n };\n /**\n * Determine whether or not the overlay should hide.\n *\n * @param {Number} time\n * The current time reported by the player.\n * @param {String} type\n * An event type.\n * @return {Boolean}\n */\n\n\n _proto.shouldHide_ = function shouldHide_(time, type) {\n var end = this.options_.end;\n return isNumber(end) ? time >= end : end === type;\n };\n /**\n * Overrides the inherited method to perform some event binding\n *\n * @return {Overlay}\n */\n\n\n _proto.show = function show() {\n _Component.prototype.show.call(this);\n\n this.off(this.player(), this.startEvent_, this.startListener_);\n this.debug('shown');\n this.debug(\"unbound `startListener_` from \\\"\" + this.startEvent_ + \"\\\"\"); // Overlays without an \"end\" are valid.\n\n if (this.endEvent_) {\n this.debug(\"bound `endListener_` to \\\"\" + this.endEvent_ + \"\\\"\");\n this.on(this.player(), this.endEvent_, this.endListener_);\n }\n\n return this;\n };\n /**\n * Determine whether or not the overlay should show.\n *\n * @param {Number} time\n * The current time reported by the player.\n * @param {String} type\n * An event type.\n * @return {Boolean}\n */\n\n\n _proto.shouldShow_ = function shouldShow_(time, type) {\n var start = this.options_.start;\n var end = this.options_.end;\n\n if (isNumber(start)) {\n if (isNumber(end)) {\n return time >= start && time < end; // In this case, the start is a number and the end is a string. We need\n // to check whether or not the overlay has shown since the last seek.\n } else if (!this.hasShownSinceSeek_) {\n this.hasShownSinceSeek_ = true;\n return time >= start;\n } // In this case, the start is a number and the end is a string, but\n // the overlay has shown since the last seek. This means that we need\n // to be sure we aren't re-showing it at a later time than it is\n // scheduled to appear.\n\n\n return Math.floor(time) === start;\n }\n\n return start === type;\n };\n /**\n * Event listener that can trigger the overlay to show.\n *\n * @param {Event} e\n */\n\n\n _proto.startListener_ = function startListener_(e) {\n var time = this.player().currentTime();\n\n if (this.shouldShow_(time, e.type)) {\n this.show();\n }\n };\n /**\n * Event listener that can trigger the overlay to show.\n *\n * @param {Event} e\n */\n\n\n _proto.endListener_ = function endListener_(e) {\n var time = this.player().currentTime();\n\n if (this.shouldHide_(time, e.type)) {\n this.hide();\n }\n };\n /**\n * Event listener that can looks for rewinds - that is, backward seeks\n * and may hide the overlay as needed.\n *\n * @param {Event} e\n */\n\n\n _proto.rewindListener_ = function rewindListener_(e) {\n var time = this.player().currentTime();\n var previous = this.previousTime_;\n var start = this.options_.start;\n var end = this.options_.end; // Did we seek backward?\n\n if (time < previous) {\n this.debug('rewind detected'); // The overlay remains visible if two conditions are met: the end value\n // MUST be an integer and the the current time indicates that the\n // overlay should NOT be visible.\n\n if (isNumber(end) && !this.shouldShow_(time)) {\n this.debug(\"hiding; \" + end + \" is an integer and overlay should not show at this time\");\n this.hasShownSinceSeek_ = false;\n this.hide(); // If the end value is an event name, we cannot reliably decide if the\n // overlay should still be displayed based solely on time; so, we can\n // only queue it up for showing if the seek took us to a point before\n // the start time.\n } else if (hasNoWhitespace(end) && time < start) {\n this.debug(\"hiding; show point (\" + start + \") is before now (\" + time + \") and end point (\" + end + \") is an event\");\n this.hasShownSinceSeek_ = false;\n this.hide();\n }\n }\n\n this.previousTime_ = time;\n };\n\n return Overlay;\n}(Component);\n\nvideojs.registerComponent('Overlay', Overlay);\n/**\n * Initialize the plugin.\n *\n * @function plugin\n * @param {Object} [options={}]\n */\n\nvar plugin = function plugin(options) {\n var _this2 = this;\n\n var settings = videojs.mergeOptions(defaults, options); // De-initialize the plugin if it already has an array of overlays.\n\n if (Array.isArray(this.overlays_)) {\n this.overlays_.forEach(function (overlay) {\n _this2.removeChild(overlay);\n\n if (_this2.controlBar) {\n _this2.controlBar.removeChild(overlay);\n }\n\n overlay.dispose();\n });\n }\n\n var overlays = settings.overlays; // We don't want to keep the original array of overlay options around\n // because it doesn't make sense to pass it to each Overlay component.\n\n delete settings.overlays;\n this.overlays_ = overlays.map(function (o) {\n var mergeOptions = videojs.mergeOptions(settings, o);\n var attachToControlBar = typeof mergeOptions.attachToControlBar === 'string' || mergeOptions.attachToControlBar === true;\n\n if (!_this2.controls() || !_this2.controlBar) {\n return _this2.addChild('overlay', mergeOptions);\n }\n\n if (attachToControlBar && mergeOptions.align.indexOf('bottom') !== -1) {\n var referenceChild = _this2.controlBar.children()[0];\n\n if (_this2.controlBar.getChild(mergeOptions.attachToControlBar) !== undefined) {\n referenceChild = _this2.controlBar.getChild(mergeOptions.attachToControlBar);\n }\n\n if (referenceChild) {\n var referenceChildIndex = _this2.controlBar.children().indexOf(referenceChild);\n\n var controlBarChild = _this2.controlBar.addChild('overlay', mergeOptions, referenceChildIndex);\n\n return controlBarChild;\n }\n }\n\n var playerChild = _this2.addChild('overlay', mergeOptions);\n\n _this2.el().insertBefore(playerChild.el(), _this2.controlBar.el());\n\n return playerChild;\n });\n};\n\nplugin.VERSION = version;\nregisterPlugin('overlay', plugin);\n\nexport default plugin;\n","export default {\n Quality: \"畫質\",\n Auto: \"自動\",\n Play: \"播放\",\n Pause: \"暫停\",\n \"Current Time\": \"目前時間\",\n Duration: \"總共時間\",\n \"Remaining Time\": \"剩餘時間\",\n \"Stream Type\": \"串流類型\",\n LIVE: \"直播\",\n Loaded: \"載入完畢\",\n Progress: \"進度\",\n Fullscreen: \"全螢幕\",\n \"Non-Fullscreen\": \"退出全螢幕\",\n Mute: \"靜音\",\n Unmute: \"取消靜音\",\n \"Playback Rate\": \" 播放速率\",\n Subtitles: \"字幕\",\n \"subtitles off\": \"關閉字幕\",\n Captions: \"內嵌字幕\",\n \"captions off\": \"關閉內嵌字幕\",\n Chapters: \"章節\",\n \"Close Modal Dialog\": \"關閉對話框\",\n Descriptions: \"描述\",\n \"descriptions off\": \"關閉描述\",\n \"Audio Track\": \"音軌\",\n \"You aborted the media playback\": \"影片播放已終止\",\n \"A network error caused the media download to fail part-way.\":\n \"網路錯誤導致影片下載失敗。\",\n \"The media could not be loaded, either because the server or network failed or because the format is not supported.\":\n \"影片因格式不支援或者伺服器或網路的問題無法載入。\",\n \"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.\":\n \"由於影片檔案損毀或是該影片使用了您的瀏覽器不支援的功能,播放終止。\",\n \"No compatible source was found for this media.\":\n \"無法找到相容此影片的來源。\",\n \"The media is encrypted and we do not have the keys to decrypt it.\":\n \"影片已加密,無法解密。\",\n \"Play Video\": \"播放影片\",\n Close: \"關閉\",\n \"Modal Window\": \"對話框\",\n \"This is a modal window\": \"這是一個對話框\",\n \"This modal can be closed by pressing the Escape key or activating the close button.\":\n \"可以按ESC按鍵或啟用關閉按鈕來關閉此對話框。\",\n \", opens captions settings dialog\": \", 開啟標題設定對話框\",\n \", opens subtitles settings dialog\": \", 開啟字幕設定對話框\",\n \", opens descriptions settings dialog\": \", 開啟描述設定對話框\",\n \", selected\": \", 選擇\",\n \"captions settings\": \"字幕設定\",\n \"Audio Player\": \"音頻播放器\",\n \"Video Player\": \"視頻播放器\",\n Replay: \"重播\",\n \"Progress Bar\": \"進度小節\",\n \"Volume Level\": \"音量\",\n \"subtitles settings\": \"字幕設定\",\n \"descriptions settings\": \"描述設定\",\n Text: \"文字\",\n White: \"白\",\n Black: \"黑\",\n Red: \"紅\",\n Green: \"綠\",\n Blue: \"藍\",\n Yellow: \"黃\",\n Magenta: \"紫紅\",\n Cyan: \"青\",\n Background: \"背景\",\n Window: \"視窗\",\n Transparent: \"透明\",\n \"Semi-Transparent\": \"半透明\",\n Opaque: \"不透明\",\n \"Font Size\": \"字型尺寸\",\n \"Text Edge Style\": \"字型邊緣樣式\",\n None: \"無\",\n Raised: \"浮雕\",\n Depressed: \"壓低\",\n Uniform: \"均勻\",\n Dropshadow: \"下陰影\",\n \"Font Family\": \"字型庫\",\n \"Proportional Sans-Serif\": \"比例無細體\",\n \"Monospace Sans-Serif\": \"單間隔無細體\",\n \"Proportional Serif\": \"比例細體\",\n \"Monospace Serif\": \"單間隔細體\",\n Casual: \"輕便的\",\n Script: \"手寫體\",\n \"Small Caps\": \"小型大寫字體\",\n Reset: \"重置\",\n \"restore all settings to the default values\": \"恢復全部設定至預設值\",\n Done: \"完成\",\n \"Caption Settings Dialog\": \"字幕設定視窗\",\n \"Beginning of dialog window. Escape will cancel and close the window.\":\n \"開始對話視窗。離開會取消及關閉視窗\",\n \"End of dialog window.\": \"結束對話視窗\",\n \"Seek to live, currently behind live\": \"試圖直播,目前延時播放\",\n \"Seek to live, currently playing live\": \"試圖直播,目前即時播放\",\n \"progress bar timing: currentTime={1} duration={2}\": \"{1}/{2}\",\n \"{1} is loading.\": \"{1} 正在載入。\",\n \"Seek forward {{seconds}} seconds\": \"快轉 {{seconds}} 秒\",\n \"Seek back {{seconds}} seconds\": \"倒轉 {{seconds}} 秒\",\n};\n","import React, { useState, useEffect } from \"react\";\nimport get from \"lodash/get\";\nimport throttle from \"lodash/throttle\";\nimport forEach from \"lodash/forEach\";\nimport invoke from \"lodash/invoke\";\n\nimport videojs from \"video.js\";\nimport qualitySelector from \"videojs-hls-quality-selector\";\nimport qualityLevels from \"videojs-contrib-quality-levels\";\nimport \"videojs-seek-buttons\";\nimport \"videojs-overlay\";\nimport \"videojs-hotkeys\";\n\nimport \"video.js/dist/video-js.css\";\nimport \"./vjs-theme-dt.css\";\n\nimport \"./videojs-seek-buttons.css\";\n\nimport \"video.js/dist/lang/zh-TW.json\";\n\nimport { useHistory } from \"react-router-dom\";\nimport { useMatomo } from \"@datapunt/matomo-tracker-react\";\nimport {\n useUserState,\n signOut,\n useUserDispatch,\n} from \"../../context/UserContext\";\nimport VideoQuotaExceedDialog from \"../../components/VideoQuotaExceedDialog\";\n\nimport {\n getUnixTs,\n getMovieTime,\n saveMovieTime,\n deleteMovieTime,\n getToken,\n getTabID,\n getPreferQuality,\n setPreferQuality,\n elementReady,\n isEmpty,\n} from \"../../utils/common\";\nimport { videoHeartBeatSec, videoSaveTimeIntervalSec } from \"../../utils/const\";\nimport tracker from \"../../utils/tracker\";\nimport {\n createUserWatchHistory,\n sendQuotaHeartBeat,\n reserveQuota,\n releaseQuota,\n} from \"../../clientAPI\";\n\nimport langZhTw from \"./langZhTW\";\n\nexport default function VideoJsPlayer ({\n forwardedRef,\n options,\n videoInfoState,\n}) {\n const history = useHistory();\n const { trackEvent, pushInstruction } = useMatomo();\n const userDispatch = useUserDispatch();\n\n const { isAuthenticated } = useUserState();\n\n const [player, setPlayer] = useState(null);\n\n const [openDialog, setOpenDialog] = useState(false);\n\n const video = get(videoInfoState, \"video\");\n const videoId = video && video.id;\n const tabId = getTabID();\n const videoType =\n window.location.pathname.indexOf(\"trailer\") !== -1 ? \"trailer\" : \"movie\";\n const isMovie = video && video.id && videoType === \"movie\";\n const needQuota = isMovie || isAuthenticated;\n const videoTitle = `${get(video, \"title_zh\")}(${\n isMovie ? \"正片\" : \"預告片\"\n })`;\n const videoUrl = get(options, \"sources.0.src\");\n\n const handleReserveQuotaErr = err => {\n if ([400, 401].includes(get(err, \"response.status\"))) {\n signOut(userDispatch, history, pushInstruction);\n }\n };\n\n const handlePlaybackStarted = async e => {\n if (!video.id || !videoType) {\n return;\n }\n createUserWatchHistory(video.id, videoType).catch(err => {\n console.log(err);\n });\n };\n\n const handleMovieContinuePlay = player => {\n if (player && isMovie && getToken()) {\n const lastMovieTime = getMovieTime(video.id);\n const duration = Number.parseInt(player ? player.duration() : -1);\n if (lastMovieTime !== duration) {\n player.currentTime(lastMovieTime);\n }\n }\n };\n\n const getMaxQuality = qualityLevels => {\n if (isEmpty(qualityLevels.levels_)) {\n return;\n }\n return `${qualityLevels[0].height}p`;\n };\n\n const handleClickQualityV1 = quality => {\n elementReady(\".vjs-quality-selector > div > ul > li.vjs-menu-item\").then(\n () => {\n setTimeout(() => {\n const nodeList = document.querySelectorAll(\n \".vjs-quality-selector > div > ul > li.vjs-menu-item\",\n );\n if (!nodeList) {\n return;\n }\n if (!quality && nodeList.length > 1) {\n nodeList[nodeList.length - 2].handleClick();\n } else if (quality === \"auto\") {\n nodeList[nodeList.length - 1].handleClick();\n } else {\n forEach(nodeList, node => {\n if (\n node.querySelector(\".vjs-menu-item-text\").innerText === quality\n ) {\n node.click();\n return;\n }\n });\n }\n }, 500);\n },\n );\n };\n\n const handleClickQualityV2 = (player, quality) => {\n elementReady(\".vjs-quality-selector > div > ul > li.vjs-menu-item\").then(\n () => {\n const hlsQualitySelector = player.hlsQualitySelector;\n const nodeList = hlsQualitySelector._qualityButton.items;\n if (!nodeList) {\n return;\n }\n if (!quality && nodeList.length > 1) {\n nodeList[nodeList.length - 2].handleClick();\n } else if (quality === \"auto\") {\n nodeList[nodeList.length - 1].handleClick();\n } else {\n forEach(nodeList, node => {\n if (`${node.item.value}p` === quality) {\n node.handleClick();\n return;\n }\n });\n }\n },\n );\n };\n\n const setPlayerQuality = player => {\n const quality = getPreferQuality();\n // set if exist or set max quality\n if (quality) {\n if (quality === \"auto\") {\n handleClickQualityV2(player, \"auto\");\n return;\n }\n const height = quality.slice(0, -1);\n const qualityLevels = player.qualityLevels();\n\n if (isEmpty(qualityLevels.levels_)) {\n setTimeout(() => {\n const qualityLevels = player.qualityLevels();\n // handleClickQualityV1(quality)\n handleClickQualityV2(player, quality);\n }, 500);\n } else {\n handleClickQualityV2(player, quality);\n }\n } else {\n const maxQuailty = getMaxQuality(qualityLevels);\n handleClickQualityV2(player, maxQuailty);\n }\n };\n\n const listenQualityButtonClick = player => {\n elementReady(\".vjs-quality-selector > div > ul > li.vjs-menu-item\").then(\n () => {\n const hlsQualitySelector = player.hlsQualitySelector;\n const nodeList = hlsQualitySelector._qualityButton.items;\n forEach(nodeList, node => {\n node.on(\"click\", () => {\n if (node.item.value === \"auto\") {\n setPreferQuality(node.item.value);\n } else {\n setPreferQuality(`${node.item.value}p`);\n }\n });\n });\n },\n );\n };\n\n const savePlayerCurrentTime = () => {\n const isPlaying = !invoke(player, \"paused\");\n if (isMovie && player && isPlaying) {\n const currentTime = Number.parseInt(player.currentTime());\n const lastMovieTime = getMovieTime(video.id);\n if (currentTime !== lastMovieTime) {\n saveMovieTime(video.id, currentTime);\n }\n }\n };\n\n const handleHeartbeat = () => {\n const isPlaying = !invoke(player, \"paused\");\n if (!needQuota && player && isPlaying) {\n const currentTime = Number.parseInt(player.currentTime());\n if (currentTime < 1) {\n return;\n }\n const duration = player ? player.duration() : -1;\n tracker.watchedVideo({\n trackEvent,\n pushInstruction,\n videoType,\n videoId,\n tabId,\n spent: videoHeartBeatSec,\n currentTime,\n duration,\n });\n return;\n }\n if (needQuota && player && isPlaying) {\n const currentTime = Number.parseInt(player.currentTime());\n const lastMovieTime = getMovieTime(video.id);\n if (currentTime < 1) {\n return;\n }\n\n const duration = player ? player.duration() : -1;\n if (currentTime === duration) {\n releaseQuota();\n }\n\n const ts = getUnixTs();\n sessionStorage.setItem(\"heartbeat\", ts);\n sendQuotaHeartBeat(video.id)\n .then(data => {\n if (data.msg === \"error\") {\n reserveQuota(video.id)\n .then(async data => {\n if (data.msg === \"error\" && data.has_quota === false) {\n player.pause();\n player.trigger(\"noquota\");\n setOpenDialog(true);\n tracker.recordNoQuota({\n trackEvent,\n videoId,\n videoType,\n quotaCnt: data.quota_cnt,\n });\n } else {\n tracker.watchedVideo({\n trackEvent,\n pushInstruction,\n videoType,\n videoId,\n tabId,\n spent: videoHeartBeatSec,\n currentTime,\n duration,\n });\n }\n })\n .catch(err => {\n console.log(\"reserveQuota wrong:\", err);\n handleReserveQuotaErr(err);\n });\n } else {\n tracker.watchedVideo({\n trackEvent,\n pushInstruction,\n videoType,\n videoId,\n tabId,\n spent: videoHeartBeatSec,\n currentTime,\n duration,\n });\n }\n })\n .catch(err => {\n console.log(\"sendQuotaHeartBeatErr\", err);\n handleReserveQuotaErr(err);\n });\n }\n };\n\n const handleHeartbeatThrottle = throttle(\n handleHeartbeat,\n videoHeartBeatSec * 1000,\n );\n\n useEffect(() => {\n if (!player) return;\n let id = setInterval(() => {\n handleHeartbeatThrottle();\n }, videoHeartBeatSec * 1000);\n return () => clearInterval(id);\n }, [player]);\n\n useEffect(() => {\n if (!player) return;\n let id = setInterval(() => {\n savePlayerCurrentTime();\n }, videoSaveTimeIntervalSec * 1000);\n return () => clearInterval(id);\n }, [player]);\n\n useEffect(() => {\n if (!forwardedRef) return;\n\n if (player && player.currentSrc() === videoUrl) {\n return;\n }\n\n videojs.addLanguage(\"zh-TW\", langZhTw);\n const initPlayer = videojs(\n forwardedRef.current,\n options,\n function onPlayerReady () {\n initPlayer.trigger(\"player-ready\");\n handleMovieContinuePlay(initPlayer);\n initPlayer.hlsQualitySelector({ displayCurrentQuality: true });\n setPlayerQuality(initPlayer);\n listenQualityButtonClick(initPlayer);\n\n initPlayer.on(\"play\", e => {\n handlePlaybackStarted();\n const currentTime = Number.parseInt(initPlayer.currentTime());\n const duration = initPlayer.duration();\n tracker.watchedVideo({\n trackEvent,\n pushInstruction,\n videoType,\n videoId,\n tabId,\n spent: 1,\n currentTime,\n duration,\n });\n if (needQuota) {\n reserveQuota(video.id)\n .then(async data => {\n if (data.msg === \"error\" && data.has_quota === false) {\n initPlayer.pause();\n initPlayer.trigger(\"noquota\");\n setOpenDialog(true);\n tracker.recordNoQuota({\n trackEvent,\n videoId,\n videoType,\n quotaCnt: data.quota_cnt,\n });\n } else {\n tracker.playedVideo({\n trackEvent,\n pushInstruction,\n videoType,\n videoId,\n tabId,\n });\n }\n })\n .catch(err => {\n console.log(\"reserveQuota wrong:\", err);\n handleReserveQuotaErr(err);\n });\n } else {\n tracker.playedVideo({\n trackEvent,\n pushInstruction,\n videoType,\n videoId,\n tabId,\n });\n }\n });\n // video is actually playing\n // https://stackoverflow.com/questions/14265332/html5-play-event-vs-playing-event-in-video-tag\n initPlayer.on(\"playing\", e => {});\n initPlayer.on(\"loadedmetadata\", e => {\n const textTracks = initPlayer.textTracks();\n forEach(textTracks, track => {\n if (\n [\"subtitles\", \"captions\"].includes(track.kind) &&\n track.language === \"zh\"\n ) {\n track.mode = \"showing\";\n }\n });\n });\n initPlayer.on(\"pause\", e => {});\n initPlayer.on(\"ended\", e => {\n deleteMovieTime(video.id);\n releaseQuota();\n });\n initPlayer.on(\"error\", e => {\n console.error(\"player:\", e, initPlayer.error());\n });\n initPlayer.on(\"noquota\", () => {\n if (initPlayer.isFullscreen()) {\n if (document.webkitExitFullscreen) {\n /* Safari */\n document.webkitExitFullscreen();\n } else if (document.webkitCancelFullScreen) {\n document.webkitCancelFullScreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n /* IE11 */\n document.msExitFullscreen();\n } else if (document.exitFullscreen) {\n document.exitFullscreen();\n }\n }\n });\n },\n );\n setPlayer(initPlayer);\n\n return () => {\n if (player) player.dispose();\n };\n }, [videoUrl, options, player]);\n\n useEffect(() => {\n if (player) {\n player.seekButtons({\n forward: 10,\n back: 10,\n });\n player.overlay({\n overlays: [\n {\n content: videoTitle,\n class: \"vjs-overlay-title\",\n start: \"pause\",\n end: \"play\",\n },\n {\n content: videoTitle,\n class: \"vjs-overlay-title\",\n start: \"player-ready\",\n end: \"play\",\n },\n ],\n });\n player.hotkeys({\n volumeStep: 0.1,\n seekStep: 10,\n enableNumbers: false,\n });\n player.getChild(\"controlBar\").addChild(\"Spacer\", {}, 6);\n }\n }, [player]);\n\n return (\n
\n
\n
\n \n
\n );\n}\n","import * as React from 'react';\nimport createSvgIcon from './utils/createSvgIcon';\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.85 6.85l1.44 1.44-4.88 4.88-3.29-3.29a.9959.9959 0 00-1.41 0l-6 6.01c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L9.41 12l3.29 3.29c.39.39 1.02.39 1.41 0l5.59-5.58 1.44 1.44c.31.31.85.09.85-.35V6.5c.01-.28-.21-.5-.49-.5h-4.29c-.45 0-.67.54-.36.85z\"\n}), 'TrendingUpRounded');","import React, { useEffect, useState, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Grid, Paper } from \"@material-ui/core\";\nimport { useParams, useHistory } from \"react-router-dom\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core/styles\";\n\n// styles\nimport useStyles from \"./styles\";\n\n// components\nimport MovieDescription from \"../../components/MovieDescription\";\nimport MovieAlbum from \"../../components/MovieAlbum\";\nimport MovieMenu from \"../../components/MovieMenu\";\nimport VideoSideBar from \"../../components/VideoSideBar\";\n\n// context\nimport { useMatomo } from \"@datapunt/matomo-tracker-react\";\nimport { useVideoState } from \"../../context/VideoContext\";\n\nimport { getVideoInfo } from \"../../clientAPI\";\nimport tracker from \"../../utils/tracker\";\nimport { getTabID } from \"../../utils/common\";\nimport get from \"lodash/get\";\nimport isEmpty from \"lodash/isEmpty\";\nimport slice from \"lodash/slice\";\n\nimport VideoJsPlayer from \"../../components/VideoJsPlayer\";\nimport { TrendingUpRounded } from \"@material-ui/icons\";\nimport { getVideoUrl } from \"../../utils/common\";\n\nconst MovieDetail = props => {\n const classes = useStyles();\n const theme = useTheme();\n const history = useHistory();\n\n const tabId = getTabID();\n const { trackEvent, pushInstruction } = useMatomo();\n const { playId, trackIndex = 0 } = useVideoState();\n const { videoId } = useParams();\n const videoType =\n window.location.pathname.indexOf(\"trailer\") !== -1 ? \"trailer\" : \"movie\";\n\n const [videoInfoState, setVideoInfoState] = useState({});\n\n const videoUrl = getVideoUrl(videoInfoState, videoType, trackIndex);\n // below 960px\n const downSm = useMediaQuery(theme.breakpoints.down(\"sm\"), {\n defaultMatches: false,\n });\n\n // TODO: check whether add recommended videos\n // TODO: expand all different lang videos\n const trailerItems = get(videoInfoState, `play.trailer`, [])\n .slice(0, 1)\n .map(e => ({\n ...e,\n videoId: videoId,\n title: \"預告片\",\n videoType: \"trailer\",\n langName: e.langName,\n thumbnail:\n e.url.split(\"/manifest\")[0] +\n \"/thumbnails/thumbnail.jpg?time=5s&width=160&height=90\",\n }));\n const movieItems = get(videoInfoState, `play.movie`, [])\n .slice(0, 1)\n .map(e => ({\n ...e,\n videoId: videoId,\n title: \"正片\",\n videoType: \"movie\",\n langName: e.langName,\n url: e.url,\n thumbnail: get(trailerItems, \"0.thumbnail\", \"\").replace(\n \"time=5s\",\n \"time=2s\",\n ),\n videoUrl: getVideoUrl(videoInfoState, videoType, trackIndex),\n }));\n const sideBarItems = [].concat(movieItems, trailerItems);\n\n const playerType = \"videojs\";\n\n const videoJsOptions = {\n aspectRatio: \"16:9\",\n preload: \"auto\",\n autoplay: false,\n controls: true,\n responsive: true,\n bigPlayButton: TrendingUpRounded,\n errorDisplay: false,\n controlBar: { pictureInPictureToggle: false },\n sources: [\n {\n src: videoUrl,\n },\n ],\n playbackRates: [2, 1.5, 1.25, 1, 0.75, 0.5],\n language: \"zh-TW\",\n html5: {\n // fine tuning: https://github.com/video-dev/hls.js/blob/master/docs/API.md#fine-tuning\n vhs: {\n maxBufferLength: 30,\n maxMaxBufferLength: 30,\n maxBufferSize: 60 * 1000 * 1000,\n maxBufferHole: 0.5,\n\n highBufferWatchdogPeriod: 2,\n nudgeOffset: 0.1,\n nudgeMaxRetry: 3,\n maxFragLookUpTolerance: 0.25,\n liveSyncDurationCount: 3,\n liveMaxLatencyDurationCount: Infinity,\n liveDurationInfinity: false,\n enableWorker: true,\n enableSoftwareAES: true,\n\n manifestLoadingTimeOut: 3000,\n manifestLoadingMaxRetry: 20,\n manifestLoadingRetryDelay: 3000,\n manifestLoadingMaxRetryTimeout: 10000,\n\n startLevel: undefined,\n levelLoadingTimeOut: 10000,\n levelLoadingMaxRetry: 4,\n levelLoadingRetryDelay: 1000,\n levelLoadingMaxRetryTimeout: 64000,\n fragLoadingTimeOut: 3000,\n fragLoadingMaxRetry: 6,\n fragLoadingRetryDelay: 1000,\n fragLoadingMaxRetryTimeout: 20000,\n startFragPrefetch: false,\n testBandwidth: true,\n progressive: false,\n lowLatencyMode: true,\n fpsDroppedMonitoringPeriod: 5000,\n fpsDroppedMonitoringThreshold: 0.2,\n appendErrorMaxRetry: 5,\n\n enableWebVTT: true,\n enableIMSC1: true,\n enableCEA708Captions: true,\n stretchShortVideoTrack: false,\n maxAudioFramesDrift: 1,\n forceKeyFrameOnDiscontinuity: true,\n abrEwmaFastLive: 3.0,\n abrEwmaSlowLive: 9.0,\n abrEwmaFastVoD: 3.0,\n abrEwmaSlowVoD: 9.0,\n abrEwmaDefaultEstimate: 500000,\n abrBandWidthFactor: 0.95,\n abrBandWidthUpFactor: 0.7,\n abrMaxWithRealBitrate: false,\n maxStarvationDelay: 4,\n maxLoadingDelay: 4,\n minAutoBitrate: 0,\n emeEnabled: false,\n widevineLicenseUrl: undefined,\n licenseXhrSetup: undefined,\n drmSystemOptions: {},\n },\n },\n };\n\n const playerRef = useRef();\n\n useEffect(() => {\n if (!videoId) return;\n getVideoInfo(videoId)\n .then(data => {\n setVideoInfoState(state => ({ ...state, ...data }));\n })\n .catch(err => {\n console.log(err);\n history.push(\"/error\");\n });\n }, [videoId]);\n\n useEffect(() => {\n if (!videoId || !videoType) return;\n\n tracker.viewedVideoPage({\n trackEvent,\n pushInstruction,\n videoType,\n videoId,\n tabId,\n });\n }, [videoId, videoType]);\n\n const isIE =\n navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.appVersion.indexOf(\"Trident/\") > -1;\n\n const ErrorMask = ({ content }) => (\n
\n
\n
{content},
\n
造成不便敬請見諒。
\n
\n
\n );\n\n const VideoJsContainer = ({ url, videoInfoState }) => {\n if (isEmpty(url) && videoInfoState && videoInfoState.ipRestricted) {\n return ;\n }\n if (isEmpty(url) && videoInfoState && videoInfoState.geoRestricted) {\n return ;\n }\n if (\n videoType === \"movie\" &&\n videoInfoState &&\n videoInfoState.subscribedRestricted\n ) {\n return ;\n }\n if (isEmpty(url) && videoType === \"movie\") {\n return ;\n }\n if (isEmpty(url) && videoType === \"trailer\") {\n return ;\n }\n\n return (\n \n );\n };\n\n function areEqual (prevProps, nextProps) {\n /*\n return true if passing nextProps to render would return\n the same result as passing prevProps to render,\n otherwise return false\n */\n return (\n prevProps.url === nextProps.url &&\n prevProps.videoInfoState &&\n prevProps.videoInfoState.id === nextProps.videoInfoState.id &&\n prevProps.isXs === nextProps.isXs\n );\n }\n\n function videoJsAreEqual (prevProps, nextProps) {\n /*\n return true if passing nextProps to render would return\n the same result as passing prevProps to render,\n otherwise return false\n */\n return (\n prevProps.url === nextProps.url &&\n prevProps.videoInfoState &&\n prevProps.videoInfoState.id === nextProps.videoInfoState.id\n );\n }\n\n const MemorizedVideoJsContainer = React.memo(\n VideoJsContainer,\n videoJsAreEqual,\n );\n return (\n <>\n {!isEmpty(videoInfoState) && (\n
\n \n \n
\n \n
\n
\n \n
\n {downSm ? (\n
\n \n
\n ) : (\n \n \n
\n \n
\n
\n \n
\n \n
\n
\n
\n )}\n
\n
\n \n \n \n \n \n \n
\n \n
\n
\n \n
\n )}\n \n );\n};\n\nMovieDetail.defaultProps = {};\n\nMovieDetail.propsTypes = {};\n\nexport default MovieDetail;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { makeStyles, createStyles } from \"@material-ui/core/styles\";\n\nimport { Button } from \"@material-ui/core\";\n\nconst useStyles = makeStyles(theme =>\n createStyles({\n root: {\n color: theme.palette.primary.light,\n border: `1px solid ${theme.palette.primary.light}`,\n },\n label: {\n color: theme.palette.primary.light,\n },\n playButton: {\n ...theme.typography.h4,\n overflow: \"hidden\",\n width: 120,\n height: 40,\n borderRadius: \"0\",\n },\n playButtonLarge: {\n ...theme.typography.h3,\n overflow: \"hidden\",\n width: 304,\n height: 72,\n borderRadius: \"0\",\n [theme.breakpoints.down(\"md\")]: {\n width: 304 * 0.7,\n height: 72 * 0.7,\n },\n },\n }),\n);\n\nconst PlayButton = ({ size = \"sm\", vid }) => {\n const classes = useStyles();\n const playButtonClass =\n size === \"lg\" ? classes.playButtonLarge : classes.playButton;\n return (\n <>\n
\n \n 觀看影片\n \n
\n \n );\n};\n\nPlayButton.defaultProps = {};\n\nPlayButton.propsTypes = {};\n\nexport default PlayButton;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport \"lazysizes\";\nimport { Typography, Box, Grid, Checkbox, Link } from \"@material-ui/core\";\nimport { makeStyles, createStyles, withStyles } from \"@material-ui/core/styles\";\nimport { CheckBoxOutlineBlank as CheckBoxOutlineBlankIcon } from \"@material-ui/icons\";\nimport { useHistory } from \"react-router-dom\";\nimport classNames from \"classnames\";\nimport get from \"lodash/get\";\nimport parse from \"html-react-parser\";\n\nimport PlayButton from \"../PlayButton\";\n\nimport {\n useCollectionState,\n useCollectionDispatch,\n} from \"../../context/CollectionContext\";\nimport { staticUrl } from \"../../clientAPI\";\nimport { getThumbnailUrl } from \"../../utils/common\";\n\nimport {\n LazyLoadComponent,\n} from \"react-lazy-load-image-component\";\nimport \"react-lazy-load-image-component/src/effects/blur.css\";\n// import \"react-lazy-load-image-component/src/effects/black-and-white.css\";\n// import { SimpleImg } from \"react-simple-img\";\n// import LazyLoad from \"react-lazy-load\";\n\nimport \"./lazyload.css\";\n\nconst useStyles = makeStyles(theme =>\n createStyles({\n root: {\n backgroundImage:\n \"linear-gradient(0deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0) 50%)\",\n },\n albumItem: {\n label: {\n color: \"black\",\n },\n margin: \"5px\",\n \"&:first-child\": {\n marginLeft: theme.spacing(0),\n },\n overflow: \"hidden\",\n },\n extraMarginBottom: {\n marginBottom: theme.spacing(2),\n },\n poster: {\n position: \"relative\",\n \"&:hover $play\": {\n opacity: 1,\n },\n },\n enlargePoster: {\n \"&:hover $imgFluid\": {\n [theme.breakpoints.up(\"xs\")]: {\n transform: \"scale(1.4)\",\n },\n [theme.breakpoints.down(\"md\")]: {\n transform: \"none\",\n },\n },\n \"&:hover $play\": {\n [theme.breakpoints.up(\"xs\")]: {\n maxWidth: 195 * 1.4,\n maxHeight: 275 * 1.4,\n },\n [theme.breakpoints.down(\"md\")]: {\n transform: \"none\",\n },\n },\n },\n imgFluid: {\n // width 100% & height auto keep image resize ratio\n width: \"100%\",\n maxWidth: 195,\n height: \"auto\",\n maxHeight: 275,\n transition: \"opacity .3s, transform .2s !important\",\n \"&:before\": {\n backgroundColor: \"#dedede\",\n },\n },\n placeholder: {\n width: 195,\n height: 275,\n },\n play: {\n display: \"flex\",\n position: \"absolute\",\n width: \"100%\",\n maxWidth: 195,\n height: \"100%\",\n maxHeight: 275,\n overflow: \"auto\",\n margin: \"auto\",\n top: 0,\n left: 0,\n alignItems: \"center\",\n justifyContent: \"center\",\n transitionDuration: \"0.5s\",\n opacity: 0,\n overflow: \"hidden\",\n },\n playButton: {\n overflow: \"hidden\",\n width: 120,\n height: 40,\n marginTop: theme.spacing(2),\n },\n playMask: {\n backgroundColor: \"rgba(0, 0, 0, 0.65)\",\n [theme.breakpoints.down(\"sm\")]: {\n display: \"none\",\n },\n },\n playMaskDetail: {\n padding: theme.spacing(2.5),\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(3),\n color: \"white\",\n },\n maskMeta: {\n ...theme.typography.smallCaption,\n color: theme.palette.common.grey[300],\n marginTop: theme.spacing(0.5),\n },\n maskIntro: {\n ...theme.typography.smallCaption,\n marginTop: theme.spacing(0.5),\n [theme.breakpoints.down(\"sm\")]: {\n marginTop: \"1em\",\n display: \"none\",\n },\n },\n info: {\n marginTop: 4,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n },\n title: {\n color: theme.palette.common.grey[900],\n },\n caption: {\n ...theme.typography.h7,\n color: theme.palette.common.grey[600],\n marginTop: theme.spacing(0.5),\n },\n relative: {\n position: \"relative\",\n },\n blockWithText: {\n maxWidth: \"10rem\",\n overflow: \"hidden\",\n position: \"relative\",\n lineHeight: \"1.67em\",\n maxHeight: `${1.67 * 5}em`,\n textAlign: \"justify\",\n },\n checkbox: {\n maxWidth: 195,\n maxHeight: 275,\n },\n checkboxItem: {\n position: \"absolute\",\n top: theme.spacing(1),\n right: theme.spacing(1),\n borderRadius: 0,\n padding: 0,\n // higher than lazyload img and white mask\n zIndex: 10,\n },\n triangle: {\n position: \"absolute\",\n top: 0,\n right: 0,\n borderStyle: \"solid\",\n borderWidth: \"0 80px 80px 0\",\n borderColor: \"transparent\",\n borderRightColor: theme.palette.primary.main,\n },\n whiteMask: {\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"rgba(255, 255, 255, 0.6)\",\n // higher than lazyload img but less than white mask\n zIndex: 9,\n },\n whiteMaskSelected: {\n borderRadius: 5,\n border: \"solid 3px black\",\n },\n link: {\n cursor: \"pointer\",\n },\n }),\n);\n\nconst Triangle = () => {\n const classes = useStyles();\n return
;\n};\n\nconst RectangleMask = ({ checked }) => {\n const classes = useStyles();\n return (\n \n );\n};\n\nconst BlackCheckbox = withStyles({\n root: {\n color: \"black\",\n \"&$checked\": {\n color: \"black\",\n },\n },\n})(props => (\n <>\n \n } {...props} />\n \n));\n\nconst ImgPlaceholder = () => {\n // const classes = useStyles();\n // return ;\n // return
;\n return
;\n};\n\n// function addDefaultSrc (ev) {\n// ev.target.src = `${staticUrl}/poster/default_poster.png`;\n// }\n\nconst MovieAlbumItem = ({\n item,\n showMeta,\n showTitle,\n showHover,\n showCheckBox,\n editing,\n hoverMaskMode,\n hoverEnlargePoster,\n extraMarginBottom,\n customMetaText,\n collectionID,\n}) => {\n const classes = useStyles();\n const history = useHistory();\n const { videoSelected } = useCollectionState();\n const collectionDispatch = useCollectionDispatch();\n const { id, description } = item;\n const selected = get(videoSelected, collectionID, []);\n\n const handleChange = event => {\n if (selected.indexOf(id) === -1) {\n collectionDispatch({\n type: \"SELECT_COLLECTION_VIDEO\",\n payload: { cid: collectionID, vid: id },\n });\n } else {\n collectionDispatch({\n type: \"UNSELECT_COLLECTION_VIDEO\",\n payload: { cid: collectionID, vid: id },\n });\n }\n };\n\n const HoverMask = ({ display }) => {\n if (hoverMaskMode === \"simple\") {\n return (\n \n \n \n );\n }\n\n return (\n \n \n \n \n {item.name}\n \n \n \n {item.others}\n \n \n \n {parse(description.replace(/^

/, \"\").replace(/<\\/p>$/, \"\"))}\n \n \n\n \n \n \n \n \n \n \n \n \n );\n };\n\n return (\n {\n if (editing) {\n handleChange(e);\n } else {\n history.push(`/video/detail/trailer/${id}`);\n }\n }}\n >\n \n \n \n {showCheckBox && editing && (\n <>\n \n \n )}\n {/* }\n /> */}\n }\n >\n \n \n \n \n \n \n\n {/* {\n \n } */}\n {/*

\n \n \n
*/}\n {showHover && }\n \n
\n \n {item.name}\n \n
\n {item.others}\n \n {customMetaText}\n \n
\n
\n \n \n \n );\n};\n\nMovieAlbumItem.defaultProps = {\n showMeta: true,\n showTitle: true,\n showHover: true,\n showCheckBox: true,\n editing: false,\n};\n\nMovieAlbumItem.propsTypes = {\n showMeta: PropTypes.bool,\n showTitle: PropTypes.bool,\n showHover: PropTypes.bool,\n showCheckBox: PropTypes.bool,\n editing: PropTypes.bool,\n customMetaText: PropTypes.string,\n};\n\nexport default MovieAlbumItem;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Typography,\n IconButton,\n DialogTitle as MuiDialogTitle,\n} from \"@material-ui/core\";\nimport { makeStyles, createStyles } from \"@material-ui/core/styles\";\nimport { Close as CloseIcon } from \"@material-ui/icons\";\n\nconst useStyles = makeStyles(theme =>\n createStyles({\n root: {\n margin: 0,\n paddingBottom: 0,\n },\n text: {\n ...theme.typography.h4,\n color: \"black\",\n },\n closeButton: {\n position: \"absolute\",\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: \"black\",\n },\n }),\n);\n\nconst DialogTitle = props => {\n const classes = useStyles();\n const { children, onClose, ...other } = props;\n return (\n \n {children}\n {onClose ? (\n \n \n \n ) : null}\n \n );\n};\n\nexport default DialogTitle;\n","var win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\"){\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;\n","import { makeStyles } from \"@material-ui/styles\";\n\nexport default makeStyles(theme => ({\n album: {\n height: 500,\n },\n title: {\n display: \"inline-flex\",\n alignItems: \"center\",\n },\n moreButton: {\n ...theme.typography.h6,\n color: theme.palette.primary.dark,\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n widePosterContainer: {\n width: \"100%\",\n display: \"flex\",\n flexWrap: \"nowrap\",\n flexDirection: \"row\",\n padding: 5,\n paddingLeft: 0,\n [theme.breakpoints.down(\"sm\")]: {\n flexWrap: \"wrap\",\n },\n },\n widePosterChild: {\n flex: \"50%\",\n maxWidth: \"50%\",\n margin: 5,\n marginLeft: 0,\n [theme.breakpoints.down(\"sm\")]: {\n flex: \"100%\",\n maxWidth: \"100%\",\n },\n },\n smallWideContainer: {\n display: \"flex\",\n flexWrap: \"nowrap\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n },\n largeWideContainer: {\n flex: \"100%\",\n maxWidth: \"100%\",\n padding: \"0 4px\",\n },\n smallWideContent: {\n flex: \"45%\",\n width: 300,\n padding: \"0 4px\",\n },\n topicImg: {\n overflow: \"hidden\",\n },\n movieList: {\n marginTop: theme.spacing(1.6),\n paddingLeft: 0,\n overflow: \"hidden\",\n },\n largeWidePoster: {\n width: \"100%\",\n overflow: \"hidden\",\n [theme.breakpoints.up(\"md\")]: {\n maxWidth: 620,\n maxHeight: 372,\n },\n },\n smallWidePoster: {\n width: \"100%\",\n overflow: \"hidden\",\n opacity: 1,\n transition: \".5s ease\",\n \"&:first-child\": {\n marginRight: theme.spacing(1),\n },\n maxWidth: 300,\n maxHeight: 180,\n [theme.breakpoints.between(\"sm\", \"md\")]: {\n maxWidth: 400,\n maxHeight: 240,\n },\n },\n seedOverride: {\n [theme.breakpoints.down(\"sm\")]: {\n width: \"42vw\",\n },\n },\n lightBackground: {\n \"&:hover\": {\n opacity: 0.7,\n },\n },\n wideMask: {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"rgba(0, 0, 0, 0.65)\",\n color: \"white\",\n padding: \"5%\",\n paddingBottom: 0,\n marginBottom: 10,\n transitionDuration: \"0.5s\",\n \"&:hover\": {\n opacity: 1,\n },\n },\n wideMaskSmall: {\n padding: \"5%\",\n },\n wideMaskLargeTitle: {\n ...theme.typography.h2,\n fontWeight: 500,\n },\n wideMaskSmallTitle: {\n ...theme.typography.caption,\n fontSize: 24,\n fontWeight: 700,\n },\n metaContainer: {\n marginTop: 12,\n },\n metaLargeText: {\n ...theme.typography.tags,\n color: theme.palette.common.grey[300],\n marginBottom: theme.spacing(0.75),\n },\n metaText: {\n ...theme.typography.caption,\n color: theme.palette.common.grey[300],\n marginBottom: theme.spacing(0.75),\n fontSize: 14,\n },\n blockWithText: {\n width: \"28rem\",\n maxWidth: \"34rem\",\n overflow: \"hidden\",\n position: \"relative\",\n lineHeight: \"1.2em\",\n maxHeight: \"3.6em\",\n textAlign: \"justify\",\n marginRight: \"-1em\",\n paddingRight: \"1em\",\n marginBottom: \"0.5em\",\n \"&&:before\": {\n content: \"'......'\",\n position: \"absolute\",\n right: 0,\n bottom: 0,\n },\n \"&&:after\": {\n content: \"''\",\n position: \"absolute\",\n right: 0,\n width: \"1em\",\n height: \"1em\",\n marginTop: \"0.2em\",\n background: \"transparent\",\n },\n },\n blockWithText2: {\n maxWidth: \"34rem\",\n overflow: \"hidden\",\n position: \"relative\",\n lineHeight: \"1.2em\",\n maxHeight: \"3.6em\",\n textAlign: \"justify\",\n marginRight: \"-1em\",\n paddingRight: \"1em\",\n marginBottom: \"0.5em\",\n [theme.breakpoints.down(\"sm\")]: {\n maxWidth: \"50rem\",\n },\n },\n playButtonContainerLg: {\n marginTop: theme.spacing(3),\n [theme.breakpoints.only(\"md\")]: {\n marginTop: theme.spacing(2),\n },\n [theme.breakpoints.down(\"sm\")]: {\n marginTop: theme.spacing(10),\n },\n [theme.breakpoints.only(\"xs\")]: {\n marginTop: theme.spacing(0.75),\n },\n },\n playButtonContainerSm: {\n marginTop: theme.spacing(4),\n [theme.breakpoints.only(\"lg\")]: {\n marginTop: theme.spacing(2.5),\n },\n [theme.breakpoints.only(\"md\")]: {\n marginTop: theme.spacing(0.5),\n },\n [theme.breakpoints.only(\"xs\")]: {\n marginTop: theme.spacing(0.15),\n },\n },\n topicContainer: {\n display: \"flex\",\n flexWrap: \"nowrap\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: 5,\n paddingLeft: 0,\n width: \"100%\",\n [theme.breakpoints.down(\"sm\")]: {\n flexWrap: \"wrap\",\n },\n },\n topicPoster: {\n flex: \"33%\",\n margin: \"5px 5px 10px 0px\",\n [theme.breakpoints.down(\"sm\")]: {\n flex: \"60%\",\n },\n },\n topicMovie: {\n flex: \"16.6%\",\n [theme.breakpoints.down(\"sm\")]: {\n flex: \"30%\",\n },\n },\n imgFluid: {\n width: \"100%\",\n transition: \"transform .2s\",\n height: \"auto\",\n maxHeight: 275,\n },\n}));\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 0L18 4H15L13 0H11L13 4H10L8 0H6L8 4H5L3 0H2C0.9 0 0.00999999 0.9 0.00999999 2L0 14C0 15.1 0.9 16 2 16H18C19.1 16 20 15.1 20 14V0H16Z\",\n fill: \"black\"\n});\n\nvar SvgCamera = function SvgCamera(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 16,\n viewBox: \"0 0 20 16\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCamera, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/camera.57ccf5b8.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Grid, Box, Link } from \"@material-ui/core\";\nimport { makeStyles, createStyles } from \"@material-ui/core/styles\";\nimport classNames from \"classnames\";\nimport parse from \"html-react-parser\";\n\nimport { LazyLoadImage } from \"react-lazy-load-image-component\";\nimport \"react-lazy-load-image-component/src/effects/blur.css\";\n\nimport PlayButton from \"../../components/PlayButton\";\n\nimport { getThumbnailUrl } from \"../../utils/common\";\n\nconst useStyles = makeStyles(theme =>\n createStyles({\n largeWidePoster: {\n width: \"100%\",\n overflow: \"hidden\",\n transition: \".5s ease\",\n [theme.breakpoints.up(\"md\")]: {\n maxWidth: 620,\n maxHeight: 376,\n },\n },\n smallWidePoster: {\n width: \"100%\",\n minHeight: 97,\n overflow: \"hidden\",\n opacity: 1,\n transition: \".5s ease\",\n \"&:first-child\": {\n marginRight: theme.spacing(1),\n },\n maxWidth: 300,\n maxHeight: 180,\n [theme.breakpoints.between(\"sm\", \"md\")]: {\n maxWidth: 400,\n maxHeight: 180 * (400 / 300),\n },\n },\n wideMask: {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"rgba(0, 0, 0, 0.65)\",\n color: \"white\",\n padding: \"5%\",\n paddingBottom: 0,\n marginBottom: 10,\n transitionDuration: \"0.5s\",\n \"&:hover\": {\n opacity: 1,\n },\n [theme.breakpoints.down(\"xs\")]: {\n display: \"none\",\n },\n },\n wideMaskSmall: {\n padding: \"5%\",\n },\n wideMaskTitle: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n },\n wideMaskLargeTitle: {\n ...theme.typography.h2,\n fontWeight: 500,\n },\n wideMaskSmallTitle: {\n ...theme.typography.caption,\n fontSize: 24,\n fontWeight: 700,\n },\n metaContainer: {\n marginTop: 12,\n },\n metaLargeText: {\n ...theme.typography.tags,\n color: theme.palette.common.grey[300],\n marginBottom: theme.spacing(0.75),\n },\n metaText: {\n ...theme.typography.caption,\n color: theme.palette.common.grey[300],\n marginBottom: theme.spacing(0.75),\n fontSize: 14,\n },\n blockWithText: {\n width: \"28rem\",\n maxWidth: \"34rem\",\n overflow: \"hidden\",\n position: \"relative\",\n lineHeight: \"1.2em\",\n maxHeight: \"3.6em\",\n textAlign: \"justify\",\n marginRight: \"-1em\",\n paddingRight: \"1em\",\n marginBottom: \"0.5em\",\n \"&&:before\": {\n content: \"'......'\",\n position: \"absolute\",\n right: 0,\n bottom: 0,\n },\n \"&&:after\": {\n content: \"''\",\n position: \"absolute\",\n right: 0,\n width: \"1em\",\n height: \"1em\",\n marginTop: \"0.2em\",\n background: \"transparent\",\n },\n },\n blockWithText2: {\n maxWidth: \"34rem\",\n overflow: \"hidden\",\n position: \"relative\",\n lineHeight: \"1.2em\",\n maxHeight: \"3.6em\",\n textAlign: \"justify\",\n marginRight: \"-1em\",\n paddingRight: \"1em\",\n marginBottom: \"0.5em\",\n [theme.breakpoints.down(\"sm\")]: {\n marginTop: \"1em\",\n display: \"none\",\n },\n },\n playButtonContainerLg: {\n marginTop: theme.spacing(3),\n [theme.breakpoints.only(\"md\")]: {\n marginTop: theme.spacing(2),\n },\n [theme.breakpoints.down(\"sm\")]: {\n marginTop: theme.spacing(10),\n },\n [theme.breakpoints.only(\"xs\")]: {\n marginTop: theme.spacing(0.75),\n },\n },\n playButtonContainerSm: {\n marginTop: theme.spacing(4),\n [theme.breakpoints.only(\"lg\")]: {\n marginTop: theme.spacing(2.5),\n },\n [theme.breakpoints.only(\"md\")]: {\n marginTop: theme.spacing(0.5),\n },\n [theme.breakpoints.only(\"xs\")]: {\n marginTop: theme.spacing(0.15),\n },\n },\n }),\n);\n\nconst WideVideoAlbumItem = ({\n size = \"sm\",\n id,\n title,\n description,\n others,\n showDesceiption,\n poster,\n}) => {\n const classes = useStyles();\n\n const WideHoverMask = () => {\n const wideMaskSizeTitleClass =\n size === \"lg\" ? classes.wideMaskLargeTitle : classes.wideMaskSmallTitle;\n const metaTextClass =\n size === \"lg\" ? classes.metaLargeText : classes.metaText;\n\n return (\n <>\n \n \n \n \n {title}\n \n \n \n \n {others}\n \n \n \n \n {parse(description.replace(/^

/, \"\").replace(/<\\/p>$/, \"\"))}\n \n \n \n \n \n \n \n \n \n \n \n \n );\n };\n\n const largeWideVideo = () => {\n return (\n <>\n \n {/* layout error */}\n {/* */}\n

\n \n \n
\n \n \n );\n };\n\n const smallWideVideo = () => {\n return (\n <>\n \n \n \n \n \n );\n };\n\n const render = () => {\n if (size === \"sm\") {\n return smallWideVideo();\n } else {\n return largeWideVideo();\n }\n };\n\n return (\n <>\n \n {render()}\n \n \n );\n};\n\nWideVideoAlbumItem.defaultProps = {};\n\nWideVideoAlbumItem.propsTypes = {};\n\nexport default WideVideoAlbumItem;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Typography, Grid, Box, Button } from \"@material-ui/core\";\nimport classNames from \"classnames\";\n\nimport useStyles from \"./styles\";\nimport { ReactComponent as CameraIcon } from \"../../images/icons/camera.svg\";\nimport MovieAlbumItem from \"../MovieAlbumItem\";\nimport WideVideoAlbumItem from \"../../components/WideVideoAlbumItem\";\n\nimport get from \"lodash/get\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { staticUrl } from \"../../clientAPI\";\n\nconst MovieAlbum = props => {\n const classes = useStyles();\n const {\n slot = {},\n hideTitle,\n hideTitleIcon,\n hideMoreLink,\n hoverMaskMode,\n hoverEnlargePoster,\n extraMarginBottom,\n } = props;\n const firstFourMovies = get(slot, \"items\", []).slice(0, 4);\n\n const DefaultLayout = () => {\n return (\n <>\n {slot.items.map((movie, index) => (\n \n \n \n ))}\n \n );\n };\n\n const ImgTopicLayout = () => {\n return (\n <>\n \n \n \n \n \n \n {firstFourMovies.map(movie => (\n \n \n \n ))}\n \n \n );\n };\n\n const WidePosterLayout = () => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n\n const SeedLayout = () => (\n <>\n {slot.items.map(movie => (\n \n \n \n \n \n ))}\n \n );\n\n const renderIcon = () => {\n return slot.title ? (\n \n ) : (\n \"\"\n );\n };\n\n const renderTitle = () => {\n return hideTitle ? (\n \"\"\n ) : (\n <>\n \n {slot && renderIcon()}\n {slot && slot.title}\n \n \n );\n };\n\n const renderList = slot => {\n if (isEmpty(slot) || isEmpty(slot.items)) {\n return;\n }\n if (slot.layout === \"img_topic\") {\n return ;\n } else if (slot.layout === \"seed\") {\n return ;\n } else if (slot.layout === \"wide\") {\n return slot.items.length >= 6 && ;\n }\n return ;\n };\n\n return (\n
\n \n {renderTitle()}\n \n \n \n \n \n \n
\n \n {renderList(slot)}\n \n
\n
\n );\n};\n\nMovieAlbum.defaultProps = {\n hideTitle: false,\n hideTitleIcon: false,\n hideMoreLink: false,\n hoverEnlargePoster: false,\n extraMarginBottom: false,\n};\n\nMovieAlbum.propsTypes = {\n slot: PropTypes.array.isRequired,\n hideTitle: PropTypes.bool,\n hideTitleIcon: PropTypes.bool,\n hideMoreLink: PropTypes.bool,\n hoverMaskMode: PropTypes.bool,\n hoverEnlargePoster: PropTypes.bool,\n extraMarginBottom: PropTypes.bool,\n};\n\nexport default MovieAlbum;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Button, Fade } from \"@material-ui/core\";\nimport { makeStyles, createStyles } from \"@material-ui/core/styles\";\nimport classNames from \"classnames\";\n\nconst useStyles = makeStyles(theme =>\n createStyles({\n tag: {\n ...theme.typography.subtitle2,\n fontWeight: 700,\n marginRight: theme.spacing(1),\n marginBottom: theme.spacing(1),\n paddingLeft: 14,\n paddingRight: 14,\n borderRadius: theme.spacing(2),\n backgroundColor: \"#e0e0e0\",\n color: theme.palette.common.grey[700],\n },\n hover: {\n \"&:hover\": {\n backgroundColor: theme.palette.primary.main,\n color: \"white\",\n },\n // https://github.com/mui-org/material-ui/issues/15000#issuecomment-591394338\n \"@media (hover: none)\": {\n \"&:hover\": {\n color: theme.palette.common.grey[700],\n backgroundColor: \"#e0e0e0\",\n },\n },\n },\n active: {\n backgroundColor: theme.palette.primary.main,\n color: \"white\",\n },\n }),\n);\n\nconst VideoTagButton = props => {\n const classes = useStyles();\n const { name, hoverEffect, className, selected, url, ...rest } = props;\n\n return (\n \n \n {name}\n \n \n );\n};\n\nVideoTagButton.defaultProps = {\n hoverEffect: true,\n};\n\nVideoTagButton.propsTypes = {\n name: PropTypes.string.isRequired,\n hoverEffect: PropTypes.bool,\n};\n\nexport default VideoTagButton;\n","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n}\n\nmodule.exports = slice;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","import { stringToBytes, toUint8, bytesMatch, bytesToString, toHexString, padStart, bytesToNumber } from './byte-helpers.js';\nimport { getAvcCodec, getHvcCodec, getAv1Codec } from './codec-helpers.js';\nimport { parseOpusHead } from './opus-helpers.js';\n\nvar normalizePath = function normalizePath(path) {\n if (typeof path === 'string') {\n return stringToBytes(path);\n }\n\n if (typeof path === 'number') {\n return path;\n }\n\n return path;\n};\n\nvar normalizePaths = function normalizePaths(paths) {\n if (!Array.isArray(paths)) {\n return [normalizePath(paths)];\n }\n\n return paths.map(function (p) {\n return normalizePath(p);\n });\n};\n\nvar DESCRIPTORS;\nexport var parseDescriptors = function parseDescriptors(bytes) {\n bytes = toUint8(bytes);\n var results = [];\n var i = 0;\n\n while (bytes.length > i) {\n var tag = bytes[i];\n var size = 0;\n var headerSize = 0; // tag\n\n headerSize++;\n var byte = bytes[headerSize]; // first byte\n\n headerSize++;\n\n while (byte & 0x80) {\n size = (byte & 0x7F) << 7;\n byte = bytes[headerSize];\n headerSize++;\n }\n\n size += byte & 0x7F;\n\n for (var z = 0; z < DESCRIPTORS.length; z++) {\n var _DESCRIPTORS$z = DESCRIPTORS[z],\n id = _DESCRIPTORS$z.id,\n parser = _DESCRIPTORS$z.parser;\n\n if (tag === id) {\n results.push(parser(bytes.subarray(headerSize, headerSize + size)));\n break;\n }\n }\n\n i += size + headerSize;\n }\n\n return results;\n};\nDESCRIPTORS = [{\n id: 0x03,\n parser: function parser(bytes) {\n var desc = {\n tag: 0x03,\n id: bytes[0] << 8 | bytes[1],\n flags: bytes[2],\n size: 3,\n dependsOnEsId: 0,\n ocrEsId: 0,\n descriptors: [],\n url: ''\n }; // depends on es id\n\n if (desc.flags & 0x80) {\n desc.dependsOnEsId = bytes[desc.size] << 8 | bytes[desc.size + 1];\n desc.size += 2;\n } // url\n\n\n if (desc.flags & 0x40) {\n var len = bytes[desc.size];\n desc.url = bytesToString(bytes.subarray(desc.size + 1, desc.size + 1 + len));\n desc.size += len;\n } // ocr es id\n\n\n if (desc.flags & 0x20) {\n desc.ocrEsId = bytes[desc.size] << 8 | bytes[desc.size + 1];\n desc.size += 2;\n }\n\n desc.descriptors = parseDescriptors(bytes.subarray(desc.size)) || [];\n return desc;\n }\n}, {\n id: 0x04,\n parser: function parser(bytes) {\n // DecoderConfigDescriptor\n var desc = {\n tag: 0x04,\n oti: bytes[0],\n streamType: bytes[1],\n bufferSize: bytes[2] << 16 | bytes[3] << 8 | bytes[4],\n maxBitrate: bytes[5] << 24 | bytes[6] << 16 | bytes[7] << 8 | bytes[8],\n avgBitrate: bytes[9] << 24 | bytes[10] << 16 | bytes[11] << 8 | bytes[12],\n descriptors: parseDescriptors(bytes.subarray(13))\n };\n return desc;\n }\n}, {\n id: 0x05,\n parser: function parser(bytes) {\n // DecoderSpecificInfo\n return {\n tag: 0x05,\n bytes: bytes\n };\n }\n}, {\n id: 0x06,\n parser: function parser(bytes) {\n // SLConfigDescriptor\n return {\n tag: 0x06,\n bytes: bytes\n };\n }\n}];\n/**\n * find any number of boxes by name given a path to it in an iso bmff\n * such as mp4.\n *\n * @param {TypedArray} bytes\n * bytes for the iso bmff to search for boxes in\n *\n * @param {Uint8Array[]|string[]|string|Uint8Array} name\n * An array of paths or a single path representing the name\n * of boxes to search through in bytes. Paths may be\n * uint8 (character codes) or strings.\n *\n * @param {boolean} [complete=false]\n * Should we search only for complete boxes on the final path.\n * This is very useful when you do not want to get back partial boxes\n * in the case of streaming files.\n *\n * @return {Uint8Array[]}\n * An array of the end paths that we found.\n */\n\nexport var findBox = function findBox(bytes, paths, complete) {\n if (complete === void 0) {\n complete = false;\n }\n\n paths = normalizePaths(paths);\n bytes = toUint8(bytes);\n var results = [];\n\n if (!paths.length) {\n // short-circuit the search for empty paths\n return results;\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n var size = (bytes[i] << 24 | bytes[i + 1] << 16 | bytes[i + 2] << 8 | bytes[i + 3]) >>> 0;\n var type = bytes.subarray(i + 4, i + 8); // invalid box format.\n\n if (size === 0) {\n break;\n }\n\n var end = i + size;\n\n if (end > bytes.length) {\n // this box is bigger than the number of bytes we have\n // and complete is set, we cannot find any more boxes.\n if (complete) {\n break;\n }\n\n end = bytes.length;\n }\n\n var data = bytes.subarray(i + 8, end);\n\n if (bytesMatch(type, paths[0])) {\n if (paths.length === 1) {\n // this is the end of the path and we've found the box we were\n // looking for\n results.push(data);\n } else {\n // recursively search for the next box along the path\n results.push.apply(results, findBox(data, paths.slice(1), complete));\n }\n }\n\n i = end;\n } // we've finished searching all of bytes\n\n\n return results;\n};\n/**\n * Search for a single matching box by name in an iso bmff format like\n * mp4. This function is useful for finding codec boxes which\n * can be placed arbitrarily in sample descriptions depending\n * on the version of the file or file type.\n *\n * @param {TypedArray} bytes\n * bytes for the iso bmff to search for boxes in\n *\n * @param {string|Uint8Array} name\n * The name of the box to find.\n *\n * @return {Uint8Array[]}\n * a subarray of bytes representing the name boxed we found.\n */\n\nexport var findNamedBox = function findNamedBox(bytes, name) {\n name = normalizePath(name);\n\n if (!name.length) {\n // short-circuit the search for empty paths\n return bytes.subarray(bytes.length);\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n if (bytesMatch(bytes.subarray(i, i + name.length), name)) {\n var size = (bytes[i - 4] << 24 | bytes[i - 3] << 16 | bytes[i - 2] << 8 | bytes[i - 1]) >>> 0;\n var end = size > 1 ? i + size : bytes.byteLength;\n return bytes.subarray(i + 4, end);\n }\n\n i++;\n } // we've finished searching all of bytes\n\n\n return bytes.subarray(bytes.length);\n};\n\nvar parseSamples = function parseSamples(data, entrySize, parseEntry) {\n if (entrySize === void 0) {\n entrySize = 4;\n }\n\n if (parseEntry === void 0) {\n parseEntry = function parseEntry(d) {\n return bytesToNumber(d);\n };\n }\n\n var entries = [];\n\n if (!data || !data.length) {\n return entries;\n }\n\n var entryCount = bytesToNumber(data.subarray(4, 8));\n\n for (var i = 8; entryCount; i += entrySize, entryCount--) {\n entries.push(parseEntry(data.subarray(i, i + entrySize)));\n }\n\n return entries;\n};\n\nexport var buildFrameTable = function buildFrameTable(stbl, timescale) {\n var keySamples = parseSamples(findBox(stbl, ['stss'])[0]);\n var chunkOffsets = parseSamples(findBox(stbl, ['stco'])[0]);\n var timeToSamples = parseSamples(findBox(stbl, ['stts'])[0], 8, function (entry) {\n return {\n sampleCount: bytesToNumber(entry.subarray(0, 4)),\n sampleDelta: bytesToNumber(entry.subarray(4, 8))\n };\n });\n var samplesToChunks = parseSamples(findBox(stbl, ['stsc'])[0], 12, function (entry) {\n return {\n firstChunk: bytesToNumber(entry.subarray(0, 4)),\n samplesPerChunk: bytesToNumber(entry.subarray(4, 8)),\n sampleDescriptionIndex: bytesToNumber(entry.subarray(8, 12))\n };\n });\n var stsz = findBox(stbl, ['stsz'])[0]; // stsz starts with a 4 byte sampleSize which we don't need\n\n var sampleSizes = parseSamples(stsz && stsz.length && stsz.subarray(4) || null);\n var frames = [];\n\n for (var chunkIndex = 0; chunkIndex < chunkOffsets.length; chunkIndex++) {\n var samplesInChunk = void 0;\n\n for (var i = 0; i < samplesToChunks.length; i++) {\n var sampleToChunk = samplesToChunks[i];\n var isThisOne = chunkIndex + 1 >= sampleToChunk.firstChunk && (i + 1 >= samplesToChunks.length || chunkIndex + 1 < samplesToChunks[i + 1].firstChunk);\n\n if (isThisOne) {\n samplesInChunk = sampleToChunk.samplesPerChunk;\n break;\n }\n }\n\n var chunkOffset = chunkOffsets[chunkIndex];\n\n for (var _i = 0; _i < samplesInChunk; _i++) {\n var frameEnd = sampleSizes[frames.length]; // if we don't have key samples every frame is a keyframe\n\n var keyframe = !keySamples.length;\n\n if (keySamples.length && keySamples.indexOf(frames.length + 1) !== -1) {\n keyframe = true;\n }\n\n var frame = {\n keyframe: keyframe,\n start: chunkOffset,\n end: chunkOffset + frameEnd\n };\n\n for (var k = 0; k < timeToSamples.length; k++) {\n var _timeToSamples$k = timeToSamples[k],\n sampleCount = _timeToSamples$k.sampleCount,\n sampleDelta = _timeToSamples$k.sampleDelta;\n\n if (frames.length <= sampleCount) {\n // ms to ns\n var lastTimestamp = frames.length ? frames[frames.length - 1].timestamp : 0;\n frame.timestamp = lastTimestamp + sampleDelta / timescale * 1000;\n frame.duration = sampleDelta;\n break;\n }\n }\n\n frames.push(frame);\n chunkOffset += frameEnd;\n }\n }\n\n return frames;\n};\nexport var addSampleDescription = function addSampleDescription(track, bytes) {\n var codec = bytesToString(bytes.subarray(0, 4));\n\n if (track.type === 'video') {\n track.info = track.info || {};\n track.info.width = bytes[28] << 8 | bytes[29];\n track.info.height = bytes[30] << 8 | bytes[31];\n } else if (track.type === 'audio') {\n track.info = track.info || {};\n track.info.channels = bytes[20] << 8 | bytes[21];\n track.info.bitDepth = bytes[22] << 8 | bytes[23];\n track.info.sampleRate = bytes[28] << 8 | bytes[29];\n }\n\n if (codec === 'avc1') {\n var avcC = findNamedBox(bytes, 'avcC'); // AVCDecoderConfigurationRecord\n\n codec += \".\" + getAvcCodec(avcC);\n track.info.avcC = avcC; // TODO: do we need to parse all this?\n\n /* {\n configurationVersion: avcC[0],\n profile: avcC[1],\n profileCompatibility: avcC[2],\n level: avcC[3],\n lengthSizeMinusOne: avcC[4] & 0x3\n };\n let spsNalUnitCount = avcC[5] & 0x1F;\n const spsNalUnits = track.info.avc.spsNalUnits = [];\n // past spsNalUnitCount\n let offset = 6;\n while (spsNalUnitCount--) {\n const nalLen = avcC[offset] << 8 | avcC[offset + 1];\n spsNalUnits.push(avcC.subarray(offset + 2, offset + 2 + nalLen));\n offset += nalLen + 2;\n }\n let ppsNalUnitCount = avcC[offset];\n const ppsNalUnits = track.info.avc.ppsNalUnits = [];\n // past ppsNalUnitCount\n offset += 1;\n while (ppsNalUnitCount--) {\n const nalLen = avcC[offset] << 8 | avcC[offset + 1];\n ppsNalUnits.push(avcC.subarray(offset + 2, offset + 2 + nalLen));\n offset += nalLen + 2;\n }*/\n // HEVCDecoderConfigurationRecord\n } else if (codec === 'hvc1' || codec === 'hev1') {\n codec += \".\" + getHvcCodec(findNamedBox(bytes, 'hvcC'));\n } else if (codec === 'mp4a' || codec === 'mp4v') {\n var esds = findNamedBox(bytes, 'esds');\n var esDescriptor = parseDescriptors(esds.subarray(4))[0];\n var decoderConfig = esDescriptor && esDescriptor.descriptors.filter(function (_ref) {\n var tag = _ref.tag;\n return tag === 0x04;\n })[0];\n\n if (decoderConfig) {\n // most codecs do not have a further '.'\n // such as 0xa5 for ac-3 and 0xa6 for e-ac-3\n codec += '.' + toHexString(decoderConfig.oti);\n\n if (decoderConfig.oti === 0x40) {\n codec += '.' + (decoderConfig.descriptors[0].bytes[0] >> 3).toString();\n } else if (decoderConfig.oti === 0x20) {\n codec += '.' + decoderConfig.descriptors[0].bytes[4].toString();\n } else if (decoderConfig.oti === 0xdd) {\n codec = 'vorbis';\n }\n } else if (track.type === 'audio') {\n codec += '.40.2';\n } else {\n codec += '.20.9';\n }\n } else if (codec === 'av01') {\n // AV1DecoderConfigurationRecord\n codec += \".\" + getAv1Codec(findNamedBox(bytes, 'av1C'));\n } else if (codec === 'vp09') {\n // VPCodecConfigurationRecord\n var vpcC = findNamedBox(bytes, 'vpcC'); // https://www.webmproject.org/vp9/mp4/\n\n var profile = vpcC[0];\n var level = vpcC[1];\n var bitDepth = vpcC[2] >> 4;\n var chromaSubsampling = (vpcC[2] & 0x0F) >> 1;\n var videoFullRangeFlag = (vpcC[2] & 0x0F) >> 3;\n var colourPrimaries = vpcC[3];\n var transferCharacteristics = vpcC[4];\n var matrixCoefficients = vpcC[5];\n codec += \".\" + padStart(profile, 2, '0');\n codec += \".\" + padStart(level, 2, '0');\n codec += \".\" + padStart(bitDepth, 2, '0');\n codec += \".\" + padStart(chromaSubsampling, 2, '0');\n codec += \".\" + padStart(colourPrimaries, 2, '0');\n codec += \".\" + padStart(transferCharacteristics, 2, '0');\n codec += \".\" + padStart(matrixCoefficients, 2, '0');\n codec += \".\" + padStart(videoFullRangeFlag, 2, '0');\n } else if (codec === 'theo') {\n codec = 'theora';\n } else if (codec === 'spex') {\n codec = 'speex';\n } else if (codec === '.mp3') {\n codec = 'mp4a.40.34';\n } else if (codec === 'msVo') {\n codec = 'vorbis';\n } else if (codec === 'Opus') {\n codec = 'opus';\n var dOps = findNamedBox(bytes, 'dOps');\n track.info.opus = parseOpusHead(dOps); // TODO: should this go into the webm code??\n // Firefox requires a codecDelay for opus playback\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1276238\n\n track.info.codecDelay = 6500000;\n } else {\n codec = codec.toLowerCase();\n }\n /* eslint-enable */\n // flac, ac-3, ec-3, opus\n\n\n track.codec = codec;\n};\nexport var parseTracks = function parseTracks(bytes, frameTable) {\n if (frameTable === void 0) {\n frameTable = true;\n }\n\n bytes = toUint8(bytes);\n var traks = findBox(bytes, ['moov', 'trak'], true);\n var tracks = [];\n traks.forEach(function (trak) {\n var track = {\n bytes: trak\n };\n var mdia = findBox(trak, ['mdia'])[0];\n var hdlr = findBox(mdia, ['hdlr'])[0];\n var trakType = bytesToString(hdlr.subarray(8, 12));\n\n if (trakType === 'soun') {\n track.type = 'audio';\n } else if (trakType === 'vide') {\n track.type = 'video';\n } else {\n track.type = trakType;\n }\n\n var tkhd = findBox(trak, ['tkhd'])[0];\n\n if (tkhd) {\n var view = new DataView(tkhd.buffer, tkhd.byteOffset, tkhd.byteLength);\n var tkhdVersion = view.getUint8(0);\n track.number = tkhdVersion === 0 ? view.getUint32(12) : view.getUint32(20);\n }\n\n var mdhd = findBox(mdia, ['mdhd'])[0];\n\n if (mdhd) {\n // mdhd is a FullBox, meaning it will have its own version as the first byte\n var version = mdhd[0];\n var index = version === 0 ? 12 : 20;\n track.timescale = (mdhd[index] << 24 | mdhd[index + 1] << 16 | mdhd[index + 2] << 8 | mdhd[index + 3]) >>> 0;\n }\n\n var stbl = findBox(mdia, ['minf', 'stbl'])[0];\n var stsd = findBox(stbl, ['stsd'])[0];\n var descriptionCount = bytesToNumber(stsd.subarray(4, 8));\n var offset = 8; // add codec and codec info\n\n while (descriptionCount--) {\n var len = bytesToNumber(stsd.subarray(offset, offset + 4));\n var sampleDescriptor = stsd.subarray(offset + 4, offset + 4 + len);\n addSampleDescription(track, sampleDescriptor);\n offset += 4 + len;\n }\n\n if (frameTable) {\n track.frameTable = buildFrameTable(stbl, track.timescale);\n } // codec has no sub parameters\n\n\n tracks.push(track);\n });\n return tracks;\n};\nexport var parseMediaInfo = function parseMediaInfo(bytes) {\n var mvhd = findBox(bytes, ['moov', 'mvhd'], true)[0];\n\n if (!mvhd || !mvhd.length) {\n return;\n }\n\n var info = {}; // ms to ns\n // mvhd v1 has 8 byte duration and other fields too\n\n if (mvhd[0] === 1) {\n info.timestampScale = bytesToNumber(mvhd.subarray(20, 24));\n info.duration = bytesToNumber(mvhd.subarray(24, 32));\n } else {\n info.timestampScale = bytesToNumber(mvhd.subarray(12, 16));\n info.duration = bytesToNumber(mvhd.subarray(16, 20));\n }\n\n info.bytes = mvhd;\n return info;\n};","import URLToolkit from 'url-toolkit';\nimport window from 'global/window';\nvar DEFAULT_LOCATION = 'http://example.com';\n\nvar resolveUrl = function resolveUrl(baseUrl, relativeUrl) {\n // return early if we don't need to resolve\n if (/^[a-z]+:/i.test(relativeUrl)) {\n return relativeUrl;\n } // if baseUrl is a data URI, ignore it and resolve everything relative to window.location\n\n\n if (/^data:/.test(baseUrl)) {\n baseUrl = window.location && window.location.href || '';\n } // IE11 supports URL but not the URL constructor\n // feature detect the behavior we want\n\n\n var nativeURL = typeof window.URL === 'function';\n var protocolLess = /^\\/\\//.test(baseUrl); // remove location if window.location isn't available (i.e. we're in node)\n // and if baseUrl isn't an absolute url\n\n var removeLocation = !window.location && !/\\/\\//i.test(baseUrl); // if the base URL is relative then combine with the current location\n\n if (nativeURL) {\n baseUrl = new window.URL(baseUrl, window.location || DEFAULT_LOCATION);\n } else if (!/\\/\\//i.test(baseUrl)) {\n baseUrl = URLToolkit.buildAbsoluteURL(window.location && window.location.href || '', baseUrl);\n }\n\n if (nativeURL) {\n var newUrl = new URL(relativeUrl, baseUrl); // if we're a protocol-less url, remove the protocol\n // and if we're location-less, remove the location\n // otherwise, return the url unmodified\n\n if (removeLocation) {\n return newUrl.href.slice(DEFAULT_LOCATION.length);\n } else if (protocolLess) {\n return newUrl.href.slice(newUrl.protocol.length);\n }\n\n return newUrl.href;\n }\n\n return URLToolkit.buildAbsoluteURL(baseUrl, relativeUrl);\n};\n\nexport default resolveUrl;","/**\n * @file stream.js\n */\n\n/**\n * A lightweight readable stream implemention that handles event dispatching.\n *\n * @class Stream\n */\nvar Stream = /*#__PURE__*/function () {\n function Stream() {\n this.listeners = {};\n }\n /**\n * Add a listener for a specified event type.\n *\n * @param {string} type the event name\n * @param {Function} listener the callback to be invoked when an event of\n * the specified type occurs\n */\n\n\n var _proto = Stream.prototype;\n\n _proto.on = function on(type, listener) {\n if (!this.listeners[type]) {\n this.listeners[type] = [];\n }\n\n this.listeners[type].push(listener);\n }\n /**\n * Remove a listener for a specified event type.\n *\n * @param {string} type the event name\n * @param {Function} listener a function previously registered for this\n * type of event through `on`\n * @return {boolean} if we could turn it off or not\n */\n ;\n\n _proto.off = function off(type, listener) {\n if (!this.listeners[type]) {\n return false;\n }\n\n var index = this.listeners[type].indexOf(listener); // TODO: which is better?\n // In Video.js we slice listener functions\n // on trigger so that it does not mess up the order\n // while we loop through.\n //\n // Here we slice on off so that the loop in trigger\n // can continue using it's old reference to loop without\n // messing up the order.\n\n this.listeners[type] = this.listeners[type].slice(0);\n this.listeners[type].splice(index, 1);\n return index > -1;\n }\n /**\n * Trigger an event of the specified type on this stream. Any additional\n * arguments to this function are passed as parameters to event listeners.\n *\n * @param {string} type the event name\n */\n ;\n\n _proto.trigger = function trigger(type) {\n var callbacks = this.listeners[type];\n\n if (!callbacks) {\n return;\n } // Slicing the arguments on every invocation of this method\n // can add a significant amount of overhead. Avoid the\n // intermediate object creation for the common case of a\n // single callback argument\n\n\n if (arguments.length === 2) {\n var length = callbacks.length;\n\n for (var i = 0; i < length; ++i) {\n callbacks[i].call(this, arguments[1]);\n }\n } else {\n var args = Array.prototype.slice.call(arguments, 1);\n var _length = callbacks.length;\n\n for (var _i = 0; _i < _length; ++_i) {\n callbacks[_i].apply(this, args);\n }\n }\n }\n /**\n * Destroys the stream and cleans up.\n */\n ;\n\n _proto.dispose = function dispose() {\n this.listeners = {};\n }\n /**\n * Forwards all `data` events on this stream to the destination stream. The\n * destination stream should provide a method `push` to receive the data\n * events as they arrive.\n *\n * @param {Stream} destination the stream that will receive all `data` events\n * @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options\n */\n ;\n\n _proto.pipe = function pipe(destination) {\n this.on('data', function (data) {\n destination.push(data);\n });\n };\n\n return Stream;\n}();\n\nexport { Stream as default };","/*! @name m3u8-parser @version 4.7.0 @license Apache-2.0 */\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport Stream from '@videojs/vhs-utils/es/stream.js';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';\nimport decodeB64ToUint8Array from '@videojs/vhs-utils/es/decode-b64-to-uint8-array.js';\n\n/**\n * A stream that buffers string input and generates a `data` event for each\n * line.\n *\n * @class LineStream\n * @extends Stream\n */\n\nvar LineStream = /*#__PURE__*/function (_Stream) {\n _inheritsLoose(LineStream, _Stream);\n\n function LineStream() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.buffer = '';\n return _this;\n }\n /**\n * Add new data to be parsed.\n *\n * @param {string} data the text to process\n */\n\n\n var _proto = LineStream.prototype;\n\n _proto.push = function push(data) {\n var nextNewline;\n this.buffer += data;\n nextNewline = this.buffer.indexOf('\\n');\n\n for (; nextNewline > -1; nextNewline = this.buffer.indexOf('\\n')) {\n this.trigger('data', this.buffer.substring(0, nextNewline));\n this.buffer = this.buffer.substring(nextNewline + 1);\n }\n };\n\n return LineStream;\n}(Stream);\n\nvar TAB = String.fromCharCode(0x09);\n\nvar parseByterange = function parseByterange(byterangeString) {\n // optionally match and capture 0+ digits before `@`\n // optionally match and capture 0+ digits after `@`\n var match = /([0-9.]*)?@?([0-9.]*)?/.exec(byterangeString || '');\n var result = {};\n\n if (match[1]) {\n result.length = parseInt(match[1], 10);\n }\n\n if (match[2]) {\n result.offset = parseInt(match[2], 10);\n }\n\n return result;\n};\n/**\n * \"forgiving\" attribute list psuedo-grammar:\n * attributes -> keyvalue (',' keyvalue)*\n * keyvalue -> key '=' value\n * key -> [^=]*\n * value -> '\"' [^\"]* '\"' | [^,]*\n */\n\n\nvar attributeSeparator = function attributeSeparator() {\n var key = '[^=]*';\n var value = '\"[^\"]*\"|[^,]*';\n var keyvalue = '(?:' + key + ')=(?:' + value + ')';\n return new RegExp('(?:^|,)(' + keyvalue + ')');\n};\n/**\n * Parse attributes from a line given the separator\n *\n * @param {string} attributes the attribute line to parse\n */\n\n\nvar parseAttributes = function parseAttributes(attributes) {\n // split the string using attributes as the separator\n var attrs = attributes.split(attributeSeparator());\n var result = {};\n var i = attrs.length;\n var attr;\n\n while (i--) {\n // filter out unmatched portions of the string\n if (attrs[i] === '') {\n continue;\n } // split the key and value\n\n\n attr = /([^=]*)=(.*)/.exec(attrs[i]).slice(1); // trim whitespace and remove optional quotes around the value\n\n attr[0] = attr[0].replace(/^\\s+|\\s+$/g, '');\n attr[1] = attr[1].replace(/^\\s+|\\s+$/g, '');\n attr[1] = attr[1].replace(/^['\"](.*)['\"]$/g, '$1');\n result[attr[0]] = attr[1];\n }\n\n return result;\n};\n/**\n * A line-level M3U8 parser event stream. It expects to receive input one\n * line at a time and performs a context-free parse of its contents. A stream\n * interpretation of a manifest can be useful if the manifest is expected to\n * be too large to fit comfortably into memory or the entirety of the input\n * is not immediately available. Otherwise, it's probably much easier to work\n * with a regular `Parser` object.\n *\n * Produces `data` events with an object that captures the parser's\n * interpretation of the input. That object has a property `tag` that is one\n * of `uri`, `comment`, or `tag`. URIs only have a single additional\n * property, `line`, which captures the entirety of the input without\n * interpretation. Comments similarly have a single additional property\n * `text` which is the input without the leading `#`.\n *\n * Tags always have a property `tagType` which is the lower-cased version of\n * the M3U8 directive without the `#EXT` or `#EXT-X-` prefix. For instance,\n * `#EXT-X-MEDIA-SEQUENCE` becomes `media-sequence` when parsed. Unrecognized\n * tags are given the tag type `unknown` and a single additional property\n * `data` with the remainder of the input.\n *\n * @class ParseStream\n * @extends Stream\n */\n\n\nvar ParseStream = /*#__PURE__*/function (_Stream) {\n _inheritsLoose(ParseStream, _Stream);\n\n function ParseStream() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.customParsers = [];\n _this.tagMappers = [];\n return _this;\n }\n /**\n * Parses an additional line of input.\n *\n * @param {string} line a single line of an M3U8 file to parse\n */\n\n\n var _proto = ParseStream.prototype;\n\n _proto.push = function push(line) {\n var _this2 = this;\n\n var match;\n var event; // strip whitespace\n\n line = line.trim();\n\n if (line.length === 0) {\n // ignore empty lines\n return;\n } // URIs\n\n\n if (line[0] !== '#') {\n this.trigger('data', {\n type: 'uri',\n uri: line\n });\n return;\n } // map tags\n\n\n var newLines = this.tagMappers.reduce(function (acc, mapper) {\n var mappedLine = mapper(line); // skip if unchanged\n\n if (mappedLine === line) {\n return acc;\n }\n\n return acc.concat([mappedLine]);\n }, [line]);\n newLines.forEach(function (newLine) {\n for (var i = 0; i < _this2.customParsers.length; i++) {\n if (_this2.customParsers[i].call(_this2, newLine)) {\n return;\n }\n } // Comments\n\n\n if (newLine.indexOf('#EXT') !== 0) {\n _this2.trigger('data', {\n type: 'comment',\n text: newLine.slice(1)\n });\n\n return;\n } // strip off any carriage returns here so the regex matching\n // doesn't have to account for them.\n\n\n newLine = newLine.replace('\\r', ''); // Tags\n\n match = /^#EXTM3U/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'm3u'\n });\n\n return;\n }\n\n match = /^#EXTINF:?([0-9\\.]*)?,?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'inf'\n };\n\n if (match[1]) {\n event.duration = parseFloat(match[1]);\n }\n\n if (match[2]) {\n event.title = match[2];\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-TARGETDURATION:?([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'targetduration'\n };\n\n if (match[1]) {\n event.duration = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-VERSION:?([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'version'\n };\n\n if (match[1]) {\n event.version = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MEDIA-SEQUENCE:?(\\-?[0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'media-sequence'\n };\n\n if (match[1]) {\n event.number = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-DISCONTINUITY-SEQUENCE:?(\\-?[0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'discontinuity-sequence'\n };\n\n if (match[1]) {\n event.number = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-PLAYLIST-TYPE:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'playlist-type'\n };\n\n if (match[1]) {\n event.playlistType = match[1];\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-BYTERANGE:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = _extends(parseByterange(match[1]), {\n type: 'tag',\n tagType: 'byterange'\n });\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-ALLOW-CACHE:?(YES|NO)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'allow-cache'\n };\n\n if (match[1]) {\n event.allowed = !/NO/.test(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MAP:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'map'\n };\n\n if (match[1]) {\n var attributes = parseAttributes(match[1]);\n\n if (attributes.URI) {\n event.uri = attributes.URI;\n }\n\n if (attributes.BYTERANGE) {\n event.byterange = parseByterange(attributes.BYTERANGE);\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-STREAM-INF:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'stream-inf'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n\n if (event.attributes.RESOLUTION) {\n var split = event.attributes.RESOLUTION.split('x');\n var resolution = {};\n\n if (split[0]) {\n resolution.width = parseInt(split[0], 10);\n }\n\n if (split[1]) {\n resolution.height = parseInt(split[1], 10);\n }\n\n event.attributes.RESOLUTION = resolution;\n }\n\n if (event.attributes.BANDWIDTH) {\n event.attributes.BANDWIDTH = parseInt(event.attributes.BANDWIDTH, 10);\n }\n\n if (event.attributes['PROGRAM-ID']) {\n event.attributes['PROGRAM-ID'] = parseInt(event.attributes['PROGRAM-ID'], 10);\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MEDIA:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'media'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-ENDLIST/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'endlist'\n });\n\n return;\n }\n\n match = /^#EXT-X-DISCONTINUITY/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'discontinuity'\n });\n\n return;\n }\n\n match = /^#EXT-X-PROGRAM-DATE-TIME:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'program-date-time'\n };\n\n if (match[1]) {\n event.dateTimeString = match[1];\n event.dateTimeObject = new Date(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-KEY:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'key'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]); // parse the IV string into a Uint32Array\n\n if (event.attributes.IV) {\n if (event.attributes.IV.substring(0, 2).toLowerCase() === '0x') {\n event.attributes.IV = event.attributes.IV.substring(2);\n }\n\n event.attributes.IV = event.attributes.IV.match(/.{8}/g);\n event.attributes.IV[0] = parseInt(event.attributes.IV[0], 16);\n event.attributes.IV[1] = parseInt(event.attributes.IV[1], 16);\n event.attributes.IV[2] = parseInt(event.attributes.IV[2], 16);\n event.attributes.IV[3] = parseInt(event.attributes.IV[3], 16);\n event.attributes.IV = new Uint32Array(event.attributes.IV);\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-START:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'start'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n event.attributes['TIME-OFFSET'] = parseFloat(event.attributes['TIME-OFFSET']);\n event.attributes.PRECISE = /YES/.test(event.attributes.PRECISE);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-OUT-CONT:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-out-cont'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-OUT:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-out'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-IN:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-in'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-SKIP:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'skip'\n };\n event.attributes = parseAttributes(match[1]);\n\n if (event.attributes.hasOwnProperty('SKIPPED-SEGMENTS')) {\n event.attributes['SKIPPED-SEGMENTS'] = parseInt(event.attributes['SKIPPED-SEGMENTS'], 10);\n }\n\n if (event.attributes.hasOwnProperty('RECENTLY-REMOVED-DATERANGES')) {\n event.attributes['RECENTLY-REMOVED-DATERANGES'] = event.attributes['RECENTLY-REMOVED-DATERANGES'].split(TAB);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-PART:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'part'\n };\n event.attributes = parseAttributes(match[1]);\n ['DURATION'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n ['INDEPENDENT', 'GAP'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = /YES/.test(event.attributes[key]);\n }\n });\n\n if (event.attributes.hasOwnProperty('BYTERANGE')) {\n event.attributes.byterange = parseByterange(event.attributes.BYTERANGE);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-SERVER-CONTROL:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'server-control'\n };\n event.attributes = parseAttributes(match[1]);\n ['CAN-SKIP-UNTIL', 'PART-HOLD-BACK', 'HOLD-BACK'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n ['CAN-SKIP-DATERANGES', 'CAN-BLOCK-RELOAD'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = /YES/.test(event.attributes[key]);\n }\n });\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-PART-INF:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'part-inf'\n };\n event.attributes = parseAttributes(match[1]);\n ['PART-TARGET'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-PRELOAD-HINT:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'preload-hint'\n };\n event.attributes = parseAttributes(match[1]);\n ['BYTERANGE-START', 'BYTERANGE-LENGTH'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseInt(event.attributes[key], 10);\n var subkey = key === 'BYTERANGE-LENGTH' ? 'length' : 'offset';\n event.attributes.byterange = event.attributes.byterange || {};\n event.attributes.byterange[subkey] = event.attributes[key]; // only keep the parsed byterange object.\n\n delete event.attributes[key];\n }\n });\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-RENDITION-REPORT:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'rendition-report'\n };\n event.attributes = parseAttributes(match[1]);\n ['LAST-MSN', 'LAST-PART'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseInt(event.attributes[key], 10);\n }\n });\n\n _this2.trigger('data', event);\n\n return;\n } // unknown tag type\n\n\n _this2.trigger('data', {\n type: 'tag',\n data: newLine.slice(4)\n });\n });\n }\n /**\n * Add a parser for custom headers\n *\n * @param {Object} options a map of options for the added parser\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {string} options.customType the custom type to register to the output\n * @param {Function} [options.dataParser] function to parse the line into an object\n * @param {boolean} [options.segment] should tag data be attached to the segment object\n */\n ;\n\n _proto.addParser = function addParser(_ref) {\n var _this3 = this;\n\n var expression = _ref.expression,\n customType = _ref.customType,\n dataParser = _ref.dataParser,\n segment = _ref.segment;\n\n if (typeof dataParser !== 'function') {\n dataParser = function dataParser(line) {\n return line;\n };\n }\n\n this.customParsers.push(function (line) {\n var match = expression.exec(line);\n\n if (match) {\n _this3.trigger('data', {\n type: 'custom',\n data: dataParser(line),\n customType: customType,\n segment: segment\n });\n\n return true;\n }\n });\n }\n /**\n * Add a custom header mapper\n *\n * @param {Object} options\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {Function} options.map function to translate tag into a different tag\n */\n ;\n\n _proto.addTagMapper = function addTagMapper(_ref2) {\n var expression = _ref2.expression,\n map = _ref2.map;\n\n var mapFn = function mapFn(line) {\n if (expression.test(line)) {\n return map(line);\n }\n\n return line;\n };\n\n this.tagMappers.push(mapFn);\n };\n\n return ParseStream;\n}(Stream);\n\nvar camelCase = function camelCase(str) {\n return str.toLowerCase().replace(/-(\\w)/g, function (a) {\n return a[1].toUpperCase();\n });\n};\n\nvar camelCaseKeys = function camelCaseKeys(attributes) {\n var result = {};\n Object.keys(attributes).forEach(function (key) {\n result[camelCase(key)] = attributes[key];\n });\n return result;\n}; // set SERVER-CONTROL hold back based upon targetDuration and partTargetDuration\n// we need this helper because defaults are based upon targetDuration and\n// partTargetDuration being set, but they may not be if SERVER-CONTROL appears before\n// target durations are set.\n\n\nvar setHoldBack = function setHoldBack(manifest) {\n var serverControl = manifest.serverControl,\n targetDuration = manifest.targetDuration,\n partTargetDuration = manifest.partTargetDuration;\n\n if (!serverControl) {\n return;\n }\n\n var tag = '#EXT-X-SERVER-CONTROL';\n var hb = 'holdBack';\n var phb = 'partHoldBack';\n var minTargetDuration = targetDuration && targetDuration * 3;\n var minPartDuration = partTargetDuration && partTargetDuration * 2;\n\n if (targetDuration && !serverControl.hasOwnProperty(hb)) {\n serverControl[hb] = minTargetDuration;\n this.trigger('info', {\n message: tag + \" defaulting HOLD-BACK to targetDuration * 3 (\" + minTargetDuration + \").\"\n });\n }\n\n if (minTargetDuration && serverControl[hb] < minTargetDuration) {\n this.trigger('warn', {\n message: tag + \" clamping HOLD-BACK (\" + serverControl[hb] + \") to targetDuration * 3 (\" + minTargetDuration + \")\"\n });\n serverControl[hb] = minTargetDuration;\n } // default no part hold back to part target duration * 3\n\n\n if (partTargetDuration && !serverControl.hasOwnProperty(phb)) {\n serverControl[phb] = partTargetDuration * 3;\n this.trigger('info', {\n message: tag + \" defaulting PART-HOLD-BACK to partTargetDuration * 3 (\" + serverControl[phb] + \").\"\n });\n } // if part hold back is too small default it to part target duration * 2\n\n\n if (partTargetDuration && serverControl[phb] < minPartDuration) {\n this.trigger('warn', {\n message: tag + \" clamping PART-HOLD-BACK (\" + serverControl[phb] + \") to partTargetDuration * 2 (\" + minPartDuration + \").\"\n });\n serverControl[phb] = minPartDuration;\n }\n};\n/**\n * A parser for M3U8 files. The current interpretation of the input is\n * exposed as a property `manifest` on parser objects. It's just two lines to\n * create and parse a manifest once you have the contents available as a string:\n *\n * ```js\n * var parser = new m3u8.Parser();\n * parser.push(xhr.responseText);\n * ```\n *\n * New input can later be applied to update the manifest object by calling\n * `push` again.\n *\n * The parser attempts to create a usable manifest object even if the\n * underlying input is somewhat nonsensical. It emits `info` and `warning`\n * events during the parse if it encounters input that seems invalid or\n * requires some property of the manifest object to be defaulted.\n *\n * @class Parser\n * @extends Stream\n */\n\n\nvar Parser = /*#__PURE__*/function (_Stream) {\n _inheritsLoose(Parser, _Stream);\n\n function Parser() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.lineStream = new LineStream();\n _this.parseStream = new ParseStream();\n\n _this.lineStream.pipe(_this.parseStream);\n /* eslint-disable consistent-this */\n\n\n var self = _assertThisInitialized(_this);\n /* eslint-enable consistent-this */\n\n\n var uris = [];\n var currentUri = {}; // if specified, the active EXT-X-MAP definition\n\n var currentMap; // if specified, the active decryption key\n\n var _key;\n\n var hasParts = false;\n\n var noop = function noop() {};\n\n var defaultMediaGroups = {\n 'AUDIO': {},\n 'VIDEO': {},\n 'CLOSED-CAPTIONS': {},\n 'SUBTITLES': {}\n }; // This is the Widevine UUID from DASH IF IOP. The same exact string is\n // used in MPDs with Widevine encrypted streams.\n\n var widevineUuid = 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed'; // group segments into numbered timelines delineated by discontinuities\n\n var currentTimeline = 0; // the manifest is empty until the parse stream begins delivering data\n\n _this.manifest = {\n allowCache: true,\n discontinuityStarts: [],\n segments: []\n }; // keep track of the last seen segment's byte range end, as segments are not required\n // to provide the offset, in which case it defaults to the next byte after the\n // previous segment\n\n var lastByterangeEnd = 0; // keep track of the last seen part's byte range end.\n\n var lastPartByterangeEnd = 0;\n\n _this.on('end', function () {\n // only add preloadSegment if we don't yet have a uri for it.\n // and we actually have parts/preloadHints\n if (currentUri.uri || !currentUri.parts && !currentUri.preloadHints) {\n return;\n }\n\n if (!currentUri.map && currentMap) {\n currentUri.map = currentMap;\n }\n\n if (!currentUri.key && _key) {\n currentUri.key = _key;\n }\n\n if (!currentUri.timeline && typeof currentTimeline === 'number') {\n currentUri.timeline = currentTimeline;\n }\n\n _this.manifest.preloadSegment = currentUri;\n }); // update the manifest with the m3u8 entry from the parse stream\n\n\n _this.parseStream.on('data', function (entry) {\n var mediaGroup;\n var rendition;\n ({\n tag: function tag() {\n // switch based on the tag type\n (({\n version: function version() {\n if (entry.version) {\n this.manifest.version = entry.version;\n }\n },\n 'allow-cache': function allowCache() {\n this.manifest.allowCache = entry.allowed;\n\n if (!('allowed' in entry)) {\n this.trigger('info', {\n message: 'defaulting allowCache to YES'\n });\n this.manifest.allowCache = true;\n }\n },\n byterange: function byterange() {\n var byterange = {};\n\n if ('length' in entry) {\n currentUri.byterange = byterange;\n byterange.length = entry.length;\n\n if (!('offset' in entry)) {\n /*\n * From the latest spec (as of this writing):\n * https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.2\n *\n * Same text since EXT-X-BYTERANGE's introduction in draft 7:\n * https://tools.ietf.org/html/draft-pantos-http-live-streaming-07#section-3.3.1)\n *\n * \"If o [offset] is not present, the sub-range begins at the next byte\n * following the sub-range of the previous media segment.\"\n */\n entry.offset = lastByterangeEnd;\n }\n }\n\n if ('offset' in entry) {\n currentUri.byterange = byterange;\n byterange.offset = entry.offset;\n }\n\n lastByterangeEnd = byterange.offset + byterange.length;\n },\n endlist: function endlist() {\n this.manifest.endList = true;\n },\n inf: function inf() {\n if (!('mediaSequence' in this.manifest)) {\n this.manifest.mediaSequence = 0;\n this.trigger('info', {\n message: 'defaulting media sequence to zero'\n });\n }\n\n if (!('discontinuitySequence' in this.manifest)) {\n this.manifest.discontinuitySequence = 0;\n this.trigger('info', {\n message: 'defaulting discontinuity sequence to zero'\n });\n }\n\n if (entry.duration > 0) {\n currentUri.duration = entry.duration;\n }\n\n if (entry.duration === 0) {\n currentUri.duration = 0.01;\n this.trigger('info', {\n message: 'updating zero segment duration to a small value'\n });\n }\n\n this.manifest.segments = uris;\n },\n key: function key() {\n if (!entry.attributes) {\n this.trigger('warn', {\n message: 'ignoring key declaration without attribute list'\n });\n return;\n } // clear the active encryption key\n\n\n if (entry.attributes.METHOD === 'NONE') {\n _key = null;\n return;\n }\n\n if (!entry.attributes.URI) {\n this.trigger('warn', {\n message: 'ignoring key declaration without URI'\n });\n return;\n }\n\n if (entry.attributes.KEYFORMAT === 'com.apple.streamingkeydelivery') {\n this.manifest.contentProtection = this.manifest.contentProtection || {}; // TODO: add full support for this.\n\n this.manifest.contentProtection['com.apple.fps.1_0'] = {\n attributes: entry.attributes\n };\n return;\n } // check if the content is encrypted for Widevine\n // Widevine/HLS spec: https://storage.googleapis.com/wvdocs/Widevine_DRM_HLS.pdf\n\n\n if (entry.attributes.KEYFORMAT === widevineUuid) {\n var VALID_METHODS = ['SAMPLE-AES', 'SAMPLE-AES-CTR', 'SAMPLE-AES-CENC'];\n\n if (VALID_METHODS.indexOf(entry.attributes.METHOD) === -1) {\n this.trigger('warn', {\n message: 'invalid key method provided for Widevine'\n });\n return;\n }\n\n if (entry.attributes.METHOD === 'SAMPLE-AES-CENC') {\n this.trigger('warn', {\n message: 'SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead'\n });\n }\n\n if (entry.attributes.URI.substring(0, 23) !== 'data:text/plain;base64,') {\n this.trigger('warn', {\n message: 'invalid key URI provided for Widevine'\n });\n return;\n }\n\n if (!(entry.attributes.KEYID && entry.attributes.KEYID.substring(0, 2) === '0x')) {\n this.trigger('warn', {\n message: 'invalid key ID provided for Widevine'\n });\n return;\n } // if Widevine key attributes are valid, store them as `contentProtection`\n // on the manifest to emulate Widevine tag structure in a DASH mpd\n\n\n this.manifest.contentProtection = this.manifest.contentProtection || {};\n this.manifest.contentProtection['com.widevine.alpha'] = {\n attributes: {\n schemeIdUri: entry.attributes.KEYFORMAT,\n // remove '0x' from the key id string\n keyId: entry.attributes.KEYID.substring(2)\n },\n // decode the base64-encoded PSSH box\n pssh: decodeB64ToUint8Array(entry.attributes.URI.split(',')[1])\n };\n return;\n }\n\n if (!entry.attributes.METHOD) {\n this.trigger('warn', {\n message: 'defaulting key method to AES-128'\n });\n } // setup an encryption key for upcoming segments\n\n\n _key = {\n method: entry.attributes.METHOD || 'AES-128',\n uri: entry.attributes.URI\n };\n\n if (typeof entry.attributes.IV !== 'undefined') {\n _key.iv = entry.attributes.IV;\n }\n },\n 'media-sequence': function mediaSequence() {\n if (!isFinite(entry.number)) {\n this.trigger('warn', {\n message: 'ignoring invalid media sequence: ' + entry.number\n });\n return;\n }\n\n this.manifest.mediaSequence = entry.number;\n },\n 'discontinuity-sequence': function discontinuitySequence() {\n if (!isFinite(entry.number)) {\n this.trigger('warn', {\n message: 'ignoring invalid discontinuity sequence: ' + entry.number\n });\n return;\n }\n\n this.manifest.discontinuitySequence = entry.number;\n currentTimeline = entry.number;\n },\n 'playlist-type': function playlistType() {\n if (!/VOD|EVENT/.test(entry.playlistType)) {\n this.trigger('warn', {\n message: 'ignoring unknown playlist type: ' + entry.playlist\n });\n return;\n }\n\n this.manifest.playlistType = entry.playlistType;\n },\n map: function map() {\n currentMap = {};\n\n if (entry.uri) {\n currentMap.uri = entry.uri;\n }\n\n if (entry.byterange) {\n currentMap.byterange = entry.byterange;\n }\n\n if (_key) {\n currentMap.key = _key;\n }\n },\n 'stream-inf': function streamInf() {\n this.manifest.playlists = uris;\n this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;\n\n if (!entry.attributes) {\n this.trigger('warn', {\n message: 'ignoring empty stream-inf attributes'\n });\n return;\n }\n\n if (!currentUri.attributes) {\n currentUri.attributes = {};\n }\n\n _extends(currentUri.attributes, entry.attributes);\n },\n media: function media() {\n this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;\n\n if (!(entry.attributes && entry.attributes.TYPE && entry.attributes['GROUP-ID'] && entry.attributes.NAME)) {\n this.trigger('warn', {\n message: 'ignoring incomplete or missing media group'\n });\n return;\n } // find the media group, creating defaults as necessary\n\n\n var mediaGroupType = this.manifest.mediaGroups[entry.attributes.TYPE];\n mediaGroupType[entry.attributes['GROUP-ID']] = mediaGroupType[entry.attributes['GROUP-ID']] || {};\n mediaGroup = mediaGroupType[entry.attributes['GROUP-ID']]; // collect the rendition metadata\n\n rendition = {\n default: /yes/i.test(entry.attributes.DEFAULT)\n };\n\n if (rendition.default) {\n rendition.autoselect = true;\n } else {\n rendition.autoselect = /yes/i.test(entry.attributes.AUTOSELECT);\n }\n\n if (entry.attributes.LANGUAGE) {\n rendition.language = entry.attributes.LANGUAGE;\n }\n\n if (entry.attributes.URI) {\n rendition.uri = entry.attributes.URI;\n }\n\n if (entry.attributes['INSTREAM-ID']) {\n rendition.instreamId = entry.attributes['INSTREAM-ID'];\n }\n\n if (entry.attributes.CHARACTERISTICS) {\n rendition.characteristics = entry.attributes.CHARACTERISTICS;\n }\n\n if (entry.attributes.FORCED) {\n rendition.forced = /yes/i.test(entry.attributes.FORCED);\n } // insert the new rendition\n\n\n mediaGroup[entry.attributes.NAME] = rendition;\n },\n discontinuity: function discontinuity() {\n currentTimeline += 1;\n currentUri.discontinuity = true;\n this.manifest.discontinuityStarts.push(uris.length);\n },\n 'program-date-time': function programDateTime() {\n if (typeof this.manifest.dateTimeString === 'undefined') {\n // PROGRAM-DATE-TIME is a media-segment tag, but for backwards\n // compatibility, we add the first occurence of the PROGRAM-DATE-TIME tag\n // to the manifest object\n // TODO: Consider removing this in future major version\n this.manifest.dateTimeString = entry.dateTimeString;\n this.manifest.dateTimeObject = entry.dateTimeObject;\n }\n\n currentUri.dateTimeString = entry.dateTimeString;\n currentUri.dateTimeObject = entry.dateTimeObject;\n },\n targetduration: function targetduration() {\n if (!isFinite(entry.duration) || entry.duration < 0) {\n this.trigger('warn', {\n message: 'ignoring invalid target duration: ' + entry.duration\n });\n return;\n }\n\n this.manifest.targetDuration = entry.duration;\n setHoldBack.call(this, this.manifest);\n },\n start: function start() {\n if (!entry.attributes || isNaN(entry.attributes['TIME-OFFSET'])) {\n this.trigger('warn', {\n message: 'ignoring start declaration without appropriate attribute list'\n });\n return;\n }\n\n this.manifest.start = {\n timeOffset: entry.attributes['TIME-OFFSET'],\n precise: entry.attributes.PRECISE\n };\n },\n 'cue-out': function cueOut() {\n currentUri.cueOut = entry.data;\n },\n 'cue-out-cont': function cueOutCont() {\n currentUri.cueOutCont = entry.data;\n },\n 'cue-in': function cueIn() {\n currentUri.cueIn = entry.data;\n },\n 'skip': function skip() {\n this.manifest.skip = camelCaseKeys(entry.attributes);\n this.warnOnMissingAttributes_('#EXT-X-SKIP', entry.attributes, ['SKIPPED-SEGMENTS']);\n },\n 'part': function part() {\n var _this2 = this;\n\n hasParts = true; // parts are always specifed before a segment\n\n var segmentIndex = this.manifest.segments.length;\n var part = camelCaseKeys(entry.attributes);\n currentUri.parts = currentUri.parts || [];\n currentUri.parts.push(part);\n\n if (part.byterange) {\n if (!part.byterange.hasOwnProperty('offset')) {\n part.byterange.offset = lastPartByterangeEnd;\n }\n\n lastPartByterangeEnd = part.byterange.offset + part.byterange.length;\n }\n\n var partIndex = currentUri.parts.length - 1;\n this.warnOnMissingAttributes_(\"#EXT-X-PART #\" + partIndex + \" for segment #\" + segmentIndex, entry.attributes, ['URI', 'DURATION']);\n\n if (this.manifest.renditionReports) {\n this.manifest.renditionReports.forEach(function (r, i) {\n if (!r.hasOwnProperty('lastPart')) {\n _this2.trigger('warn', {\n message: \"#EXT-X-RENDITION-REPORT #\" + i + \" lacks required attribute(s): LAST-PART\"\n });\n }\n });\n }\n },\n 'server-control': function serverControl() {\n var attrs = this.manifest.serverControl = camelCaseKeys(entry.attributes);\n\n if (!attrs.hasOwnProperty('canBlockReload')) {\n attrs.canBlockReload = false;\n this.trigger('info', {\n message: '#EXT-X-SERVER-CONTROL defaulting CAN-BLOCK-RELOAD to false'\n });\n }\n\n setHoldBack.call(this, this.manifest);\n\n if (attrs.canSkipDateranges && !attrs.hasOwnProperty('canSkipUntil')) {\n this.trigger('warn', {\n message: '#EXT-X-SERVER-CONTROL lacks required attribute CAN-SKIP-UNTIL which is required when CAN-SKIP-DATERANGES is set'\n });\n }\n },\n 'preload-hint': function preloadHint() {\n // parts are always specifed before a segment\n var segmentIndex = this.manifest.segments.length;\n var hint = camelCaseKeys(entry.attributes);\n var isPart = hint.type && hint.type === 'PART';\n currentUri.preloadHints = currentUri.preloadHints || [];\n currentUri.preloadHints.push(hint);\n\n if (hint.byterange) {\n if (!hint.byterange.hasOwnProperty('offset')) {\n // use last part byterange end or zero if not a part.\n hint.byterange.offset = isPart ? lastPartByterangeEnd : 0;\n\n if (isPart) {\n lastPartByterangeEnd = hint.byterange.offset + hint.byterange.length;\n }\n }\n }\n\n var index = currentUri.preloadHints.length - 1;\n this.warnOnMissingAttributes_(\"#EXT-X-PRELOAD-HINT #\" + index + \" for segment #\" + segmentIndex, entry.attributes, ['TYPE', 'URI']);\n\n if (!hint.type) {\n return;\n } // search through all preload hints except for the current one for\n // a duplicate type.\n\n\n for (var i = 0; i < currentUri.preloadHints.length - 1; i++) {\n var otherHint = currentUri.preloadHints[i];\n\n if (!otherHint.type) {\n continue;\n }\n\n if (otherHint.type === hint.type) {\n this.trigger('warn', {\n message: \"#EXT-X-PRELOAD-HINT #\" + index + \" for segment #\" + segmentIndex + \" has the same TYPE \" + hint.type + \" as preload hint #\" + i\n });\n }\n }\n },\n 'rendition-report': function renditionReport() {\n var report = camelCaseKeys(entry.attributes);\n this.manifest.renditionReports = this.manifest.renditionReports || [];\n this.manifest.renditionReports.push(report);\n var index = this.manifest.renditionReports.length - 1;\n var required = ['LAST-MSN', 'URI'];\n\n if (hasParts) {\n required.push('LAST-PART');\n }\n\n this.warnOnMissingAttributes_(\"#EXT-X-RENDITION-REPORT #\" + index, entry.attributes, required);\n },\n 'part-inf': function partInf() {\n this.manifest.partInf = camelCaseKeys(entry.attributes);\n this.warnOnMissingAttributes_('#EXT-X-PART-INF', entry.attributes, ['PART-TARGET']);\n\n if (this.manifest.partInf.partTarget) {\n this.manifest.partTargetDuration = this.manifest.partInf.partTarget;\n }\n\n setHoldBack.call(this, this.manifest);\n }\n })[entry.tagType] || noop).call(self);\n },\n uri: function uri() {\n currentUri.uri = entry.uri;\n uris.push(currentUri); // if no explicit duration was declared, use the target duration\n\n if (this.manifest.targetDuration && !('duration' in currentUri)) {\n this.trigger('warn', {\n message: 'defaulting segment duration to the target duration'\n });\n currentUri.duration = this.manifest.targetDuration;\n } // annotate with encryption information, if necessary\n\n\n if (_key) {\n currentUri.key = _key;\n }\n\n currentUri.timeline = currentTimeline; // annotate with initialization segment information, if necessary\n\n if (currentMap) {\n currentUri.map = currentMap;\n } // reset the last byterange end as it needs to be 0 between parts\n\n\n lastPartByterangeEnd = 0; // prepare for the next URI\n\n currentUri = {};\n },\n comment: function comment() {// comments are not important for playback\n },\n custom: function custom() {\n // if this is segment-level data attach the output to the segment\n if (entry.segment) {\n currentUri.custom = currentUri.custom || {};\n currentUri.custom[entry.customType] = entry.data; // if this is manifest-level data attach to the top level manifest object\n } else {\n this.manifest.custom = this.manifest.custom || {};\n this.manifest.custom[entry.customType] = entry.data;\n }\n }\n })[entry.type].call(self);\n });\n\n return _this;\n }\n\n var _proto = Parser.prototype;\n\n _proto.warnOnMissingAttributes_ = function warnOnMissingAttributes_(identifier, attributes, required) {\n var missing = [];\n required.forEach(function (key) {\n if (!attributes.hasOwnProperty(key)) {\n missing.push(key);\n }\n });\n\n if (missing.length) {\n this.trigger('warn', {\n message: identifier + \" lacks required attribute(s): \" + missing.join(', ')\n });\n }\n }\n /**\n * Parse the input string and update the manifest object.\n *\n * @param {string} chunk a potentially incomplete portion of the manifest\n */\n ;\n\n _proto.push = function push(chunk) {\n this.lineStream.push(chunk);\n }\n /**\n * Flush any remaining input. This can be handy if the last line of an M3U8\n * manifest did not contain a trailing newline but the file has been\n * completely received.\n */\n ;\n\n _proto.end = function end() {\n // flush any buffered input\n this.lineStream.push('\\n');\n this.trigger('end');\n }\n /**\n * Add an additional parser for non-standard tags\n *\n * @param {Object} options a map of options for the added parser\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {string} options.type the type to register to the output\n * @param {Function} [options.dataParser] function to parse the line into an object\n * @param {boolean} [options.segment] should tag data be attached to the segment object\n */\n ;\n\n _proto.addParser = function addParser(options) {\n this.parseStream.addParser(options);\n }\n /**\n * Add a custom header mapper\n *\n * @param {Object} options\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {Function} options.map function to translate tag into a different tag\n */\n ;\n\n _proto.addTagMapper = function addTagMapper(options) {\n this.parseStream.addTagMapper(options);\n };\n\n return Parser;\n}(Stream);\n\nexport { LineStream, ParseStream, Parser };\n","import window from 'global/window';\nvar regexs = {\n // to determine mime types\n mp4: /^(av0?1|avc0?[1234]|vp0?9|flac|opus|mp3|mp4a|mp4v|stpp.ttml.im1t)/,\n webm: /^(vp0?[89]|av0?1|opus|vorbis)/,\n ogg: /^(vp0?[89]|theora|flac|opus|vorbis)/,\n // to determine if a codec is audio or video\n video: /^(av0?1|avc0?[1234]|vp0?[89]|hvc1|hev1|theora|mp4v)/,\n audio: /^(mp4a|flac|vorbis|opus|ac-[34]|ec-3|alac|mp3|speex|aac)/,\n text: /^(stpp.ttml.im1t)/,\n // mux.js support regex\n muxerVideo: /^(avc0?1)/,\n muxerAudio: /^(mp4a)/,\n // match nothing as muxer does not support text right now.\n // there cannot never be a character before the start of a string\n // so this matches nothing.\n muxerText: /a^/\n};\nvar mediaTypes = ['video', 'audio', 'text'];\nvar upperMediaTypes = ['Video', 'Audio', 'Text'];\n/**\n * Replace the old apple-style `avc1.
.
` codec string with the standard\n * `avc1.`\n *\n * @param {string} codec\n * Codec string to translate\n * @return {string}\n * The translated codec string\n */\n\nexport var translateLegacyCodec = function translateLegacyCodec(codec) {\n if (!codec) {\n return codec;\n }\n\n return codec.replace(/avc1\\.(\\d+)\\.(\\d+)/i, function (orig, profile, avcLevel) {\n var profileHex = ('00' + Number(profile).toString(16)).slice(-2);\n var avcLevelHex = ('00' + Number(avcLevel).toString(16)).slice(-2);\n return 'avc1.' + profileHex + '00' + avcLevelHex;\n });\n};\n/**\n * Replace the old apple-style `avc1.
.
` codec strings with the standard\n * `avc1.`\n *\n * @param {string[]} codecs\n * An array of codec strings to translate\n * @return {string[]}\n * The translated array of codec strings\n */\n\nexport var translateLegacyCodecs = function translateLegacyCodecs(codecs) {\n return codecs.map(translateLegacyCodec);\n};\n/**\n * Replace codecs in the codec string with the old apple-style `avc1.
.
` to the\n * standard `avc1.`.\n *\n * @param {string} codecString\n * The codec string\n * @return {string}\n * The codec string with old apple-style codecs replaced\n *\n * @private\n */\n\nexport var mapLegacyAvcCodecs = function mapLegacyAvcCodecs(codecString) {\n return codecString.replace(/avc1\\.(\\d+)\\.(\\d+)/i, function (match) {\n return translateLegacyCodecs([match])[0];\n });\n};\n/**\n * @typedef {Object} ParsedCodecInfo\n * @property {number} codecCount\n * Number of codecs parsed\n * @property {string} [videoCodec]\n * Parsed video codec (if found)\n * @property {string} [videoObjectTypeIndicator]\n * Video object type indicator (if found)\n * @property {string|null} audioProfile\n * Audio profile\n */\n\n/**\n * Parses a codec string to retrieve the number of codecs specified, the video codec and\n * object type indicator, and the audio profile.\n *\n * @param {string} [codecString]\n * The codec string to parse\n * @return {ParsedCodecInfo}\n * Parsed codec info\n */\n\nexport var parseCodecs = function parseCodecs(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n var codecs = codecString.split(',');\n var result = [];\n codecs.forEach(function (codec) {\n codec = codec.trim();\n var codecType;\n mediaTypes.forEach(function (name) {\n var match = regexs[name].exec(codec.toLowerCase());\n\n if (!match || match.length <= 1) {\n return;\n }\n\n codecType = name; // maintain codec case\n\n var type = codec.substring(0, match[1].length);\n var details = codec.replace(type, '');\n result.push({\n type: type,\n details: details,\n mediaType: name\n });\n });\n\n if (!codecType) {\n result.push({\n type: codec,\n details: '',\n mediaType: 'unknown'\n });\n }\n });\n return result;\n};\n/**\n * Returns a ParsedCodecInfo object for the default alternate audio playlist if there is\n * a default alternate audio playlist for the provided audio group.\n *\n * @param {Object} master\n * The master playlist\n * @param {string} audioGroupId\n * ID of the audio group for which to find the default codec info\n * @return {ParsedCodecInfo}\n * Parsed codec info\n */\n\nexport var codecsFromDefault = function codecsFromDefault(master, audioGroupId) {\n if (!master.mediaGroups.AUDIO || !audioGroupId) {\n return null;\n }\n\n var audioGroup = master.mediaGroups.AUDIO[audioGroupId];\n\n if (!audioGroup) {\n return null;\n }\n\n for (var name in audioGroup) {\n var audioType = audioGroup[name];\n\n if (audioType.default && audioType.playlists) {\n // codec should be the same for all playlists within the audio type\n return parseCodecs(audioType.playlists[0].attributes.CODECS);\n }\n }\n\n return null;\n};\nexport var isVideoCodec = function isVideoCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.video.test(codec.trim().toLowerCase());\n};\nexport var isAudioCodec = function isAudioCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.audio.test(codec.trim().toLowerCase());\n};\nexport var isTextCodec = function isTextCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.text.test(codec.trim().toLowerCase());\n};\nexport var getMimeForCodec = function getMimeForCodec(codecString) {\n if (!codecString || typeof codecString !== 'string') {\n return;\n }\n\n var codecs = codecString.toLowerCase().split(',').map(function (c) {\n return translateLegacyCodec(c.trim());\n }); // default to video type\n\n var type = 'video'; // only change to audio type if the only codec we have is\n // audio\n\n if (codecs.length === 1 && isAudioCodec(codecs[0])) {\n type = 'audio';\n } else if (codecs.length === 1 && isTextCodec(codecs[0])) {\n // text uses application/ for now\n type = 'application';\n } // default the container to mp4\n\n\n var container = 'mp4'; // every codec must be able to go into the container\n // for that container to be the correct one\n\n if (codecs.every(function (c) {\n return regexs.mp4.test(c);\n })) {\n container = 'mp4';\n } else if (codecs.every(function (c) {\n return regexs.webm.test(c);\n })) {\n container = 'webm';\n } else if (codecs.every(function (c) {\n return regexs.ogg.test(c);\n })) {\n container = 'ogg';\n }\n\n return type + \"/\" + container + \";codecs=\\\"\" + codecString + \"\\\"\";\n};\nexport var browserSupportsCodec = function browserSupportsCodec(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n return window.MediaSource && window.MediaSource.isTypeSupported && window.MediaSource.isTypeSupported(getMimeForCodec(codecString)) || false;\n};\nexport var muxerSupportsCodec = function muxerSupportsCodec(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n return codecString.toLowerCase().split(',').every(function (codec) {\n codec = codec.trim(); // any match is supported.\n\n for (var i = 0; i < upperMediaTypes.length; i++) {\n var type = upperMediaTypes[i];\n\n if (regexs[\"muxer\" + type].test(codec)) {\n return true;\n }\n }\n\n return false;\n });\n};\nexport var DEFAULT_AUDIO_CODEC = 'mp4a.40.2';\nexport var DEFAULT_VIDEO_CODEC = 'avc1.4d400d';","var MPEGURL_REGEX = /^(audio|video|application)\\/(x-|vnd\\.apple\\.)?mpegurl/i;\nvar DASH_REGEX = /^application\\/dash\\+xml/i;\n/**\n * Returns a string that describes the type of source based on a video source object's\n * media type.\n *\n * @see {@link https://dev.w3.org/html5/pf-summary/video.html#dom-source-type|Source Type}\n *\n * @param {string} type\n * Video source object media type\n * @return {('hls'|'dash'|'vhs-json'|null)}\n * VHS source type string\n */\n\nexport var simpleTypeFromSourceType = function simpleTypeFromSourceType(type) {\n if (MPEGURL_REGEX.test(type)) {\n return 'hls';\n }\n\n if (DASH_REGEX.test(type)) {\n return 'dash';\n } // Denotes the special case of a manifest object passed to http-streaming instead of a\n // source URL.\n //\n // See https://en.wikipedia.org/wiki/Media_type for details on specifying media types.\n //\n // In this case, vnd stands for vendor, video.js for the organization, VHS for this\n // project, and the +json suffix identifies the structure of the media type.\n\n\n if (type === 'application/vnd.videojs.vhs+json') {\n return 'vhs-json';\n }\n\n return null;\n};","/*! @name mpd-parser @version 0.19.0 @license Apache-2.0 */\nimport resolveUrl from '@videojs/vhs-utils/es/resolve-url';\nimport window from 'global/window';\nimport decodeB64ToUint8Array from '@videojs/vhs-utils/es/decode-b64-to-uint8-array';\nimport { DOMParser } from '@xmldom/xmldom';\n\nvar version = \"0.19.0\";\n\nvar isObject = function isObject(obj) {\n return !!obj && typeof obj === 'object';\n};\n\nvar merge = function merge() {\n for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {\n objects[_key] = arguments[_key];\n }\n\n return objects.reduce(function (result, source) {\n if (typeof source !== 'object') {\n return result;\n }\n\n Object.keys(source).forEach(function (key) {\n if (Array.isArray(result[key]) && Array.isArray(source[key])) {\n result[key] = result[key].concat(source[key]);\n } else if (isObject(result[key]) && isObject(source[key])) {\n result[key] = merge(result[key], source[key]);\n } else {\n result[key] = source[key];\n }\n });\n return result;\n }, {});\n};\nvar values = function values(o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n};\n\nvar range = function range(start, end) {\n var result = [];\n\n for (var i = start; i < end; i++) {\n result.push(i);\n }\n\n return result;\n};\nvar flatten = function flatten(lists) {\n return lists.reduce(function (x, y) {\n return x.concat(y);\n }, []);\n};\nvar from = function from(list) {\n if (!list.length) {\n return [];\n }\n\n var result = [];\n\n for (var i = 0; i < list.length; i++) {\n result.push(list[i]);\n }\n\n return result;\n};\nvar findIndexes = function findIndexes(l, key) {\n return l.reduce(function (a, e, i) {\n if (e[key]) {\n a.push(i);\n }\n\n return a;\n }, []);\n};\n\nvar errors = {\n INVALID_NUMBER_OF_PERIOD: 'INVALID_NUMBER_OF_PERIOD',\n DASH_EMPTY_MANIFEST: 'DASH_EMPTY_MANIFEST',\n DASH_INVALID_XML: 'DASH_INVALID_XML',\n NO_BASE_URL: 'NO_BASE_URL',\n MISSING_SEGMENT_INFORMATION: 'MISSING_SEGMENT_INFORMATION',\n SEGMENT_TIME_UNSPECIFIED: 'SEGMENT_TIME_UNSPECIFIED',\n UNSUPPORTED_UTC_TIMING_SCHEME: 'UNSUPPORTED_UTC_TIMING_SCHEME'\n};\n\n/**\n * @typedef {Object} SingleUri\n * @property {string} uri - relative location of segment\n * @property {string} resolvedUri - resolved location of segment\n * @property {Object} byterange - Object containing information on how to make byte range\n * requests following byte-range-spec per RFC2616.\n * @property {String} byterange.length - length of range request\n * @property {String} byterange.offset - byte offset of range request\n *\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.1\n */\n\n/**\n * Converts a URLType node (5.3.9.2.3 Table 13) to a segment object\n * that conforms to how m3u8-parser is structured\n *\n * @see https://github.com/videojs/m3u8-parser\n *\n * @param {string} baseUrl - baseUrl provided by nodes\n * @param {string} source - source url for segment\n * @param {string} range - optional range used for range calls,\n * follows RFC 2616, Clause 14.35.1\n * @return {SingleUri} full segment information transformed into a format similar\n * to m3u8-parser\n */\n\nvar urlTypeToSegment = function urlTypeToSegment(_ref) {\n var _ref$baseUrl = _ref.baseUrl,\n baseUrl = _ref$baseUrl === void 0 ? '' : _ref$baseUrl,\n _ref$source = _ref.source,\n source = _ref$source === void 0 ? '' : _ref$source,\n _ref$range = _ref.range,\n range = _ref$range === void 0 ? '' : _ref$range,\n _ref$indexRange = _ref.indexRange,\n indexRange = _ref$indexRange === void 0 ? '' : _ref$indexRange;\n var segment = {\n uri: source,\n resolvedUri: resolveUrl(baseUrl || '', source)\n };\n\n if (range || indexRange) {\n var rangeStr = range ? range : indexRange;\n var ranges = rangeStr.split('-');\n var startRange = parseInt(ranges[0], 10);\n var endRange = parseInt(ranges[1], 10); // byterange should be inclusive according to\n // RFC 2616, Clause 14.35.1\n\n segment.byterange = {\n length: endRange - startRange + 1,\n offset: startRange\n };\n }\n\n return segment;\n};\nvar byteRangeToString = function byteRangeToString(byterange) {\n // `endRange` is one less than `offset + length` because the HTTP range\n // header uses inclusive ranges\n var endRange = byterange.offset + byterange.length - 1;\n return byterange.offset + \"-\" + endRange;\n};\n\n/**\n * parse the end number attribue that can be a string\n * number, or undefined.\n *\n * @param {string|number|undefined} endNumber\n * The end number attribute.\n *\n * @return {number|null}\n * The result of parsing the end number.\n */\n\nvar parseEndNumber = function parseEndNumber(endNumber) {\n if (endNumber && typeof endNumber !== 'number') {\n endNumber = parseInt(endNumber, 10);\n }\n\n if (isNaN(endNumber)) {\n return null;\n }\n\n return endNumber;\n};\n/**\n * Functions for calculating the range of available segments in static and dynamic\n * manifests.\n */\n\n\nvar segmentRange = {\n /**\n * Returns the entire range of available segments for a static MPD\n *\n * @param {Object} attributes\n * Inheritied MPD attributes\n * @return {{ start: number, end: number }}\n * The start and end numbers for available segments\n */\n static: function _static(attributes) {\n var duration = attributes.duration,\n _attributes$timescale = attributes.timescale,\n timescale = _attributes$timescale === void 0 ? 1 : _attributes$timescale,\n sourceDuration = attributes.sourceDuration,\n periodDuration = attributes.periodDuration;\n var endNumber = parseEndNumber(attributes.endNumber);\n var segmentDuration = duration / timescale;\n\n if (typeof endNumber === 'number') {\n return {\n start: 0,\n end: endNumber\n };\n }\n\n if (typeof periodDuration === 'number') {\n return {\n start: 0,\n end: periodDuration / segmentDuration\n };\n }\n\n return {\n start: 0,\n end: sourceDuration / segmentDuration\n };\n },\n\n /**\n * Returns the current live window range of available segments for a dynamic MPD\n *\n * @param {Object} attributes\n * Inheritied MPD attributes\n * @return {{ start: number, end: number }}\n * The start and end numbers for available segments\n */\n dynamic: function dynamic(attributes) {\n var NOW = attributes.NOW,\n clientOffset = attributes.clientOffset,\n availabilityStartTime = attributes.availabilityStartTime,\n _attributes$timescale2 = attributes.timescale,\n timescale = _attributes$timescale2 === void 0 ? 1 : _attributes$timescale2,\n duration = attributes.duration,\n _attributes$start = attributes.start,\n start = _attributes$start === void 0 ? 0 : _attributes$start,\n _attributes$minimumUp = attributes.minimumUpdatePeriod,\n minimumUpdatePeriod = _attributes$minimumUp === void 0 ? 0 : _attributes$minimumUp,\n _attributes$timeShift = attributes.timeShiftBufferDepth,\n timeShiftBufferDepth = _attributes$timeShift === void 0 ? Infinity : _attributes$timeShift;\n var endNumber = parseEndNumber(attributes.endNumber);\n var now = (NOW + clientOffset) / 1000;\n var periodStartWC = availabilityStartTime + start;\n var periodEndWC = now + minimumUpdatePeriod;\n var periodDuration = periodEndWC - periodStartWC;\n var segmentCount = Math.ceil(periodDuration * timescale / duration);\n var availableStart = Math.floor((now - periodStartWC - timeShiftBufferDepth) * timescale / duration);\n var availableEnd = Math.floor((now - periodStartWC) * timescale / duration);\n return {\n start: Math.max(0, availableStart),\n end: typeof endNumber === 'number' ? endNumber : Math.min(segmentCount, availableEnd)\n };\n }\n};\n/**\n * Maps a range of numbers to objects with information needed to build the corresponding\n * segment list\n *\n * @name toSegmentsCallback\n * @function\n * @param {number} number\n * Number of the segment\n * @param {number} index\n * Index of the number in the range list\n * @return {{ number: Number, duration: Number, timeline: Number, time: Number }}\n * Object with segment timing and duration info\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping a range of numbers to\n * information needed to build the segment list.\n *\n * @param {Object} attributes\n * Inherited MPD attributes\n * @return {toSegmentsCallback}\n * Callback map function\n */\n\nvar toSegments = function toSegments(attributes) {\n return function (number, index) {\n var duration = attributes.duration,\n _attributes$timescale3 = attributes.timescale,\n timescale = _attributes$timescale3 === void 0 ? 1 : _attributes$timescale3,\n periodIndex = attributes.periodIndex,\n _attributes$startNumb = attributes.startNumber,\n startNumber = _attributes$startNumb === void 0 ? 1 : _attributes$startNumb;\n return {\n number: startNumber + number,\n duration: duration / timescale,\n timeline: periodIndex,\n time: index * duration\n };\n };\n};\n/**\n * Returns a list of objects containing segment timing and duration info used for\n * building the list of segments. This uses the @duration attribute specified\n * in the MPD manifest to derive the range of segments.\n *\n * @param {Object} attributes\n * Inherited MPD attributes\n * @return {{number: number, duration: number, time: number, timeline: number}[]}\n * List of Objects with segment timing and duration info\n */\n\nvar parseByDuration = function parseByDuration(attributes) {\n var type = attributes.type,\n duration = attributes.duration,\n _attributes$timescale4 = attributes.timescale,\n timescale = _attributes$timescale4 === void 0 ? 1 : _attributes$timescale4,\n periodDuration = attributes.periodDuration,\n sourceDuration = attributes.sourceDuration;\n\n var _segmentRange$type = segmentRange[type](attributes),\n start = _segmentRange$type.start,\n end = _segmentRange$type.end;\n\n var segments = range(start, end).map(toSegments(attributes));\n\n if (type === 'static') {\n var index = segments.length - 1; // section is either a period or the full source\n\n var sectionDuration = typeof periodDuration === 'number' ? periodDuration : sourceDuration; // final segment may be less than full segment duration\n\n segments[index].duration = sectionDuration - duration / timescale * index;\n }\n\n return segments;\n};\n\n/**\n * Translates SegmentBase into a set of segments.\n * (DASH SPEC Section 5.3.9.3.2) contains a set of nodes. Each\n * node should be translated into segment.\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @return {Object.} list of segments\n */\n\nvar segmentsFromBase = function segmentsFromBase(attributes) {\n var baseUrl = attributes.baseUrl,\n _attributes$initializ = attributes.initialization,\n initialization = _attributes$initializ === void 0 ? {} : _attributes$initializ,\n sourceDuration = attributes.sourceDuration,\n _attributes$indexRang = attributes.indexRange,\n indexRange = _attributes$indexRang === void 0 ? '' : _attributes$indexRang,\n duration = attributes.duration; // base url is required for SegmentBase to work, per spec (Section 5.3.9.2.1)\n\n if (!baseUrl) {\n throw new Error(errors.NO_BASE_URL);\n }\n\n var initSegment = urlTypeToSegment({\n baseUrl: baseUrl,\n source: initialization.sourceURL,\n range: initialization.range\n });\n var segment = urlTypeToSegment({\n baseUrl: baseUrl,\n source: baseUrl,\n indexRange: indexRange\n });\n segment.map = initSegment; // If there is a duration, use it, otherwise use the given duration of the source\n // (since SegmentBase is only for one total segment)\n\n if (duration) {\n var segmentTimeInfo = parseByDuration(attributes);\n\n if (segmentTimeInfo.length) {\n segment.duration = segmentTimeInfo[0].duration;\n segment.timeline = segmentTimeInfo[0].timeline;\n }\n } else if (sourceDuration) {\n segment.duration = sourceDuration;\n segment.timeline = 0;\n } // This is used for mediaSequence\n\n\n segment.number = 0;\n return [segment];\n};\n/**\n * Given a playlist, a sidx box, and a baseUrl, update the segment list of the playlist\n * according to the sidx information given.\n *\n * playlist.sidx has metadadata about the sidx where-as the sidx param\n * is the parsed sidx box itself.\n *\n * @param {Object} playlist the playlist to update the sidx information for\n * @param {Object} sidx the parsed sidx box\n * @return {Object} the playlist object with the updated sidx information\n */\n\nvar addSidxSegmentsToPlaylist = function addSidxSegmentsToPlaylist(playlist, sidx, baseUrl) {\n // Retain init segment information\n var initSegment = playlist.sidx.map ? playlist.sidx.map : null; // Retain source duration from initial main manifest parsing\n\n var sourceDuration = playlist.sidx.duration; // Retain source timeline\n\n var timeline = playlist.timeline || 0;\n var sidxByteRange = playlist.sidx.byterange;\n var sidxEnd = sidxByteRange.offset + sidxByteRange.length; // Retain timescale of the parsed sidx\n\n var timescale = sidx.timescale; // referenceType 1 refers to other sidx boxes\n\n var mediaReferences = sidx.references.filter(function (r) {\n return r.referenceType !== 1;\n });\n var segments = [];\n var type = playlist.endList ? 'static' : 'dynamic'; // firstOffset is the offset from the end of the sidx box\n\n var startIndex = sidxEnd + sidx.firstOffset;\n\n for (var i = 0; i < mediaReferences.length; i++) {\n var reference = sidx.references[i]; // size of the referenced (sub)segment\n\n var size = reference.referencedSize; // duration of the referenced (sub)segment, in the timescale\n // this will be converted to seconds when generating segments\n\n var duration = reference.subsegmentDuration; // should be an inclusive range\n\n var endIndex = startIndex + size - 1;\n var indexRange = startIndex + \"-\" + endIndex;\n var attributes = {\n baseUrl: baseUrl,\n timescale: timescale,\n timeline: timeline,\n // this is used in parseByDuration\n periodIndex: timeline,\n duration: duration,\n sourceDuration: sourceDuration,\n indexRange: indexRange,\n type: type\n };\n var segment = segmentsFromBase(attributes)[0];\n\n if (initSegment) {\n segment.map = initSegment;\n }\n\n segments.push(segment);\n startIndex += size;\n }\n\n playlist.segments = segments;\n return playlist;\n};\n\nvar generateSidxKey = function generateSidxKey(sidx) {\n return sidx && sidx.uri + '-' + byteRangeToString(sidx.byterange);\n};\n\nvar mergeDiscontiguousPlaylists = function mergeDiscontiguousPlaylists(playlists) {\n var mergedPlaylists = values(playlists.reduce(function (acc, playlist) {\n // assuming playlist IDs are the same across periods\n // TODO: handle multiperiod where representation sets are not the same\n // across periods\n var name = playlist.attributes.id + (playlist.attributes.lang || ''); // Periods after first\n\n if (acc[name]) {\n var _acc$name$segments;\n\n // first segment of subsequent periods signal a discontinuity\n if (playlist.segments[0]) {\n playlist.segments[0].discontinuity = true;\n }\n\n (_acc$name$segments = acc[name].segments).push.apply(_acc$name$segments, playlist.segments); // bubble up contentProtection, this assumes all DRM content\n // has the same contentProtection\n\n\n if (playlist.attributes.contentProtection) {\n acc[name].attributes.contentProtection = playlist.attributes.contentProtection;\n }\n } else {\n // first Period\n acc[name] = playlist;\n }\n\n return acc;\n }, {}));\n return mergedPlaylists.map(function (playlist) {\n playlist.discontinuityStarts = findIndexes(playlist.segments, 'discontinuity');\n return playlist;\n });\n};\n\nvar addSidxSegmentsToPlaylist$1 = function addSidxSegmentsToPlaylist$1(playlist, sidxMapping) {\n var sidxKey = generateSidxKey(playlist.sidx);\n var sidxMatch = sidxKey && sidxMapping[sidxKey] && sidxMapping[sidxKey].sidx;\n\n if (sidxMatch) {\n addSidxSegmentsToPlaylist(playlist, sidxMatch, playlist.sidx.resolvedUri);\n }\n\n return playlist;\n};\nvar addSidxSegmentsToPlaylists = function addSidxSegmentsToPlaylists(playlists, sidxMapping) {\n if (sidxMapping === void 0) {\n sidxMapping = {};\n }\n\n if (!Object.keys(sidxMapping).length) {\n return playlists;\n }\n\n for (var i in playlists) {\n playlists[i] = addSidxSegmentsToPlaylist$1(playlists[i], sidxMapping);\n }\n\n return playlists;\n};\nvar formatAudioPlaylist = function formatAudioPlaylist(_ref, isAudioOnly) {\n var _attributes;\n\n var attributes = _ref.attributes,\n segments = _ref.segments,\n sidx = _ref.sidx;\n var playlist = {\n attributes: (_attributes = {\n NAME: attributes.id,\n BANDWIDTH: attributes.bandwidth,\n CODECS: attributes.codecs\n }, _attributes['PROGRAM-ID'] = 1, _attributes),\n uri: '',\n endList: attributes.type === 'static',\n timeline: attributes.periodIndex,\n resolvedUri: '',\n targetDuration: attributes.duration,\n segments: segments,\n mediaSequence: segments.length ? segments[0].number : 1\n };\n\n if (attributes.contentProtection) {\n playlist.contentProtection = attributes.contentProtection;\n }\n\n if (sidx) {\n playlist.sidx = sidx;\n }\n\n if (isAudioOnly) {\n playlist.attributes.AUDIO = 'audio';\n playlist.attributes.SUBTITLES = 'subs';\n }\n\n return playlist;\n};\nvar formatVttPlaylist = function formatVttPlaylist(_ref2) {\n var _m3u8Attributes;\n\n var attributes = _ref2.attributes,\n segments = _ref2.segments;\n\n if (typeof segments === 'undefined') {\n // vtt tracks may use single file in BaseURL\n segments = [{\n uri: attributes.baseUrl,\n timeline: attributes.periodIndex,\n resolvedUri: attributes.baseUrl || '',\n duration: attributes.sourceDuration,\n number: 0\n }]; // targetDuration should be the same duration as the only segment\n\n attributes.duration = attributes.sourceDuration;\n }\n\n var m3u8Attributes = (_m3u8Attributes = {\n NAME: attributes.id,\n BANDWIDTH: attributes.bandwidth\n }, _m3u8Attributes['PROGRAM-ID'] = 1, _m3u8Attributes);\n\n if (attributes.codecs) {\n m3u8Attributes.CODECS = attributes.codecs;\n }\n\n return {\n attributes: m3u8Attributes,\n uri: '',\n endList: attributes.type === 'static',\n timeline: attributes.periodIndex,\n resolvedUri: attributes.baseUrl || '',\n targetDuration: attributes.duration,\n segments: segments,\n mediaSequence: segments.length ? segments[0].number : 1\n };\n};\nvar organizeAudioPlaylists = function organizeAudioPlaylists(playlists, sidxMapping, isAudioOnly) {\n if (sidxMapping === void 0) {\n sidxMapping = {};\n }\n\n if (isAudioOnly === void 0) {\n isAudioOnly = false;\n }\n\n var mainPlaylist;\n var formattedPlaylists = playlists.reduce(function (a, playlist) {\n var role = playlist.attributes.role && playlist.attributes.role.value || '';\n var language = playlist.attributes.lang || '';\n var label = playlist.attributes.label || 'main';\n\n if (language && !playlist.attributes.label) {\n var roleLabel = role ? \" (\" + role + \")\" : '';\n label = \"\" + playlist.attributes.lang + roleLabel;\n }\n\n if (!a[label]) {\n a[label] = {\n language: language,\n autoselect: true,\n default: role === 'main',\n playlists: [],\n uri: ''\n };\n }\n\n var formatted = addSidxSegmentsToPlaylist$1(formatAudioPlaylist(playlist, isAudioOnly), sidxMapping);\n a[label].playlists.push(formatted);\n\n if (typeof mainPlaylist === 'undefined' && role === 'main') {\n mainPlaylist = playlist;\n mainPlaylist.default = true;\n }\n\n return a;\n }, {}); // if no playlists have role \"main\", mark the first as main\n\n if (!mainPlaylist) {\n var firstLabel = Object.keys(formattedPlaylists)[0];\n formattedPlaylists[firstLabel].default = true;\n }\n\n return formattedPlaylists;\n};\nvar organizeVttPlaylists = function organizeVttPlaylists(playlists, sidxMapping) {\n if (sidxMapping === void 0) {\n sidxMapping = {};\n }\n\n return playlists.reduce(function (a, playlist) {\n var label = playlist.attributes.lang || 'text';\n\n if (!a[label]) {\n a[label] = {\n language: label,\n default: false,\n autoselect: false,\n playlists: [],\n uri: ''\n };\n }\n\n a[label].playlists.push(addSidxSegmentsToPlaylist$1(formatVttPlaylist(playlist), sidxMapping));\n return a;\n }, {});\n};\n\nvar organizeCaptionServices = function organizeCaptionServices(captionServices) {\n return captionServices.reduce(function (svcObj, svc) {\n if (!svc) {\n return svcObj;\n }\n\n svc.forEach(function (service) {\n var channel = service.channel,\n language = service.language;\n svcObj[language] = {\n autoselect: false,\n default: false,\n instreamId: channel,\n language: language\n };\n\n if (service.hasOwnProperty('aspectRatio')) {\n svcObj[language].aspectRatio = service.aspectRatio;\n }\n\n if (service.hasOwnProperty('easyReader')) {\n svcObj[language].easyReader = service.easyReader;\n }\n\n if (service.hasOwnProperty('3D')) {\n svcObj[language]['3D'] = service['3D'];\n }\n });\n return svcObj;\n }, {});\n};\n\nvar formatVideoPlaylist = function formatVideoPlaylist(_ref3) {\n var _attributes2;\n\n var attributes = _ref3.attributes,\n segments = _ref3.segments,\n sidx = _ref3.sidx;\n var playlist = {\n attributes: (_attributes2 = {\n NAME: attributes.id,\n AUDIO: 'audio',\n SUBTITLES: 'subs',\n RESOLUTION: {\n width: attributes.width,\n height: attributes.height\n },\n CODECS: attributes.codecs,\n BANDWIDTH: attributes.bandwidth\n }, _attributes2['PROGRAM-ID'] = 1, _attributes2),\n uri: '',\n endList: attributes.type === 'static',\n timeline: attributes.periodIndex,\n resolvedUri: '',\n targetDuration: attributes.duration,\n segments: segments,\n mediaSequence: segments.length ? segments[0].number : 1\n };\n\n if (attributes.contentProtection) {\n playlist.contentProtection = attributes.contentProtection;\n }\n\n if (sidx) {\n playlist.sidx = sidx;\n }\n\n return playlist;\n};\n\nvar videoOnly = function videoOnly(_ref4) {\n var attributes = _ref4.attributes;\n return attributes.mimeType === 'video/mp4' || attributes.mimeType === 'video/webm' || attributes.contentType === 'video';\n};\n\nvar audioOnly = function audioOnly(_ref5) {\n var attributes = _ref5.attributes;\n return attributes.mimeType === 'audio/mp4' || attributes.mimeType === 'audio/webm' || attributes.contentType === 'audio';\n};\n\nvar vttOnly = function vttOnly(_ref6) {\n var attributes = _ref6.attributes;\n return attributes.mimeType === 'text/vtt' || attributes.contentType === 'text';\n};\n\nvar toM3u8 = function toM3u8(dashPlaylists, locations, sidxMapping) {\n var _mediaGroups;\n\n if (sidxMapping === void 0) {\n sidxMapping = {};\n }\n\n if (!dashPlaylists.length) {\n return {};\n } // grab all main manifest attributes\n\n\n var _dashPlaylists$0$attr = dashPlaylists[0].attributes,\n duration = _dashPlaylists$0$attr.sourceDuration,\n type = _dashPlaylists$0$attr.type,\n suggestedPresentationDelay = _dashPlaylists$0$attr.suggestedPresentationDelay,\n minimumUpdatePeriod = _dashPlaylists$0$attr.minimumUpdatePeriod;\n var videoPlaylists = mergeDiscontiguousPlaylists(dashPlaylists.filter(videoOnly)).map(formatVideoPlaylist);\n var audioPlaylists = mergeDiscontiguousPlaylists(dashPlaylists.filter(audioOnly));\n var vttPlaylists = dashPlaylists.filter(vttOnly);\n var captions = dashPlaylists.map(function (playlist) {\n return playlist.attributes.captionServices;\n }).filter(Boolean);\n var manifest = {\n allowCache: true,\n discontinuityStarts: [],\n segments: [],\n endList: true,\n mediaGroups: (_mediaGroups = {\n AUDIO: {},\n VIDEO: {}\n }, _mediaGroups['CLOSED-CAPTIONS'] = {}, _mediaGroups.SUBTITLES = {}, _mediaGroups),\n uri: '',\n duration: duration,\n playlists: addSidxSegmentsToPlaylists(videoPlaylists, sidxMapping)\n };\n\n if (minimumUpdatePeriod >= 0) {\n manifest.minimumUpdatePeriod = minimumUpdatePeriod * 1000;\n }\n\n if (locations) {\n manifest.locations = locations;\n }\n\n if (type === 'dynamic') {\n manifest.suggestedPresentationDelay = suggestedPresentationDelay;\n }\n\n var isAudioOnly = manifest.playlists.length === 0;\n\n if (audioPlaylists.length) {\n manifest.mediaGroups.AUDIO.audio = organizeAudioPlaylists(audioPlaylists, sidxMapping, isAudioOnly);\n }\n\n if (vttPlaylists.length) {\n manifest.mediaGroups.SUBTITLES.subs = organizeVttPlaylists(vttPlaylists, sidxMapping);\n }\n\n if (captions.length) {\n manifest.mediaGroups['CLOSED-CAPTIONS'].cc = organizeCaptionServices(captions);\n }\n\n return manifest;\n};\n\n/**\n * Calculates the R (repetition) value for a live stream (for the final segment\n * in a manifest where the r value is negative 1)\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {number} time\n * current time (typically the total time up until the final segment)\n * @param {number} duration\n * duration property for the given \n *\n * @return {number}\n * R value to reach the end of the given period\n */\nvar getLiveRValue = function getLiveRValue(attributes, time, duration) {\n var NOW = attributes.NOW,\n clientOffset = attributes.clientOffset,\n availabilityStartTime = attributes.availabilityStartTime,\n _attributes$timescale = attributes.timescale,\n timescale = _attributes$timescale === void 0 ? 1 : _attributes$timescale,\n _attributes$start = attributes.start,\n start = _attributes$start === void 0 ? 0 : _attributes$start,\n _attributes$minimumUp = attributes.minimumUpdatePeriod,\n minimumUpdatePeriod = _attributes$minimumUp === void 0 ? 0 : _attributes$minimumUp;\n var now = (NOW + clientOffset) / 1000;\n var periodStartWC = availabilityStartTime + start;\n var periodEndWC = now + minimumUpdatePeriod;\n var periodDuration = periodEndWC - periodStartWC;\n return Math.ceil((periodDuration * timescale - time) / duration);\n};\n/**\n * Uses information provided by SegmentTemplate.SegmentTimeline to determine segment\n * timing and duration\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n *\n * @return {{number: number, duration: number, time: number, timeline: number}[]}\n * List of Objects with segment timing and duration info\n */\n\n\nvar parseByTimeline = function parseByTimeline(attributes, segmentTimeline) {\n var type = attributes.type,\n _attributes$minimumUp2 = attributes.minimumUpdatePeriod,\n minimumUpdatePeriod = _attributes$minimumUp2 === void 0 ? 0 : _attributes$minimumUp2,\n _attributes$media = attributes.media,\n media = _attributes$media === void 0 ? '' : _attributes$media,\n sourceDuration = attributes.sourceDuration,\n _attributes$timescale2 = attributes.timescale,\n timescale = _attributes$timescale2 === void 0 ? 1 : _attributes$timescale2,\n _attributes$startNumb = attributes.startNumber,\n startNumber = _attributes$startNumb === void 0 ? 1 : _attributes$startNumb,\n timeline = attributes.periodIndex;\n var segments = [];\n var time = -1;\n\n for (var sIndex = 0; sIndex < segmentTimeline.length; sIndex++) {\n var S = segmentTimeline[sIndex];\n var duration = S.d;\n var repeat = S.r || 0;\n var segmentTime = S.t || 0;\n\n if (time < 0) {\n // first segment\n time = segmentTime;\n }\n\n if (segmentTime && segmentTime > time) {\n // discontinuity\n // TODO: How to handle this type of discontinuity\n // timeline++ here would treat it like HLS discontuity and content would\n // get appended without gap\n // E.G.\n // \n // \n // \n // \n // would have $Time$ values of [0, 1, 2, 5]\n // should this be appened at time positions [0, 1, 2, 3],(#EXT-X-DISCONTINUITY)\n // or [0, 1, 2, gap, gap, 5]? (#EXT-X-GAP)\n // does the value of sourceDuration consider this when calculating arbitrary\n // negative @r repeat value?\n // E.G. Same elements as above with this added at the end\n // \n // with a sourceDuration of 10\n // Would the 2 gaps be included in the time duration calculations resulting in\n // 8 segments with $Time$ values of [0, 1, 2, 5, 6, 7, 8, 9] or 10 segments\n // with $Time$ values of [0, 1, 2, 5, 6, 7, 8, 9, 10, 11] ?\n time = segmentTime;\n }\n\n var count = void 0;\n\n if (repeat < 0) {\n var nextS = sIndex + 1;\n\n if (nextS === segmentTimeline.length) {\n // last segment\n if (type === 'dynamic' && minimumUpdatePeriod > 0 && media.indexOf('$Number$') > 0) {\n count = getLiveRValue(attributes, time, duration);\n } else {\n // TODO: This may be incorrect depending on conclusion of TODO above\n count = (sourceDuration * timescale - time) / duration;\n }\n } else {\n count = (segmentTimeline[nextS].t - time) / duration;\n }\n } else {\n count = repeat + 1;\n }\n\n var end = startNumber + segments.length + count;\n var number = startNumber + segments.length;\n\n while (number < end) {\n segments.push({\n number: number,\n duration: duration / timescale,\n time: time,\n timeline: timeline\n });\n time += duration;\n number++;\n }\n }\n\n return segments;\n};\n\nvar identifierPattern = /\\$([A-z]*)(?:(%0)([0-9]+)d)?\\$/g;\n/**\n * Replaces template identifiers with corresponding values. To be used as the callback\n * for String.prototype.replace\n *\n * @name replaceCallback\n * @function\n * @param {string} match\n * Entire match of identifier\n * @param {string} identifier\n * Name of matched identifier\n * @param {string} format\n * Format tag string. Its presence indicates that padding is expected\n * @param {string} width\n * Desired length of the replaced value. Values less than this width shall be left\n * zero padded\n * @return {string}\n * Replacement for the matched identifier\n */\n\n/**\n * Returns a function to be used as a callback for String.prototype.replace to replace\n * template identifiers\n *\n * @param {Obect} values\n * Object containing values that shall be used to replace known identifiers\n * @param {number} values.RepresentationID\n * Value of the Representation@id attribute\n * @param {number} values.Number\n * Number of the corresponding segment\n * @param {number} values.Bandwidth\n * Value of the Representation@bandwidth attribute.\n * @param {number} values.Time\n * Timestamp value of the corresponding segment\n * @return {replaceCallback}\n * Callback to be used with String.prototype.replace to replace identifiers\n */\n\nvar identifierReplacement = function identifierReplacement(values) {\n return function (match, identifier, format, width) {\n if (match === '$$') {\n // escape sequence\n return '$';\n }\n\n if (typeof values[identifier] === 'undefined') {\n return match;\n }\n\n var value = '' + values[identifier];\n\n if (identifier === 'RepresentationID') {\n // Format tag shall not be present with RepresentationID\n return value;\n }\n\n if (!format) {\n width = 1;\n } else {\n width = parseInt(width, 10);\n }\n\n if (value.length >= width) {\n return value;\n }\n\n return \"\" + new Array(width - value.length + 1).join('0') + value;\n };\n};\n/**\n * Constructs a segment url from a template string\n *\n * @param {string} url\n * Template string to construct url from\n * @param {Obect} values\n * Object containing values that shall be used to replace known identifiers\n * @param {number} values.RepresentationID\n * Value of the Representation@id attribute\n * @param {number} values.Number\n * Number of the corresponding segment\n * @param {number} values.Bandwidth\n * Value of the Representation@bandwidth attribute.\n * @param {number} values.Time\n * Timestamp value of the corresponding segment\n * @return {string}\n * Segment url with identifiers replaced\n */\n\nvar constructTemplateUrl = function constructTemplateUrl(url, values) {\n return url.replace(identifierPattern, identifierReplacement(values));\n};\n/**\n * Generates a list of objects containing timing and duration information about each\n * segment needed to generate segment uris and the complete segment object\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]|undefined} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n * the SegmentTimeline element\n * @return {{number: number, duration: number, time: number, timeline: number}[]}\n * List of Objects with segment timing and duration info\n */\n\nvar parseTemplateInfo = function parseTemplateInfo(attributes, segmentTimeline) {\n if (!attributes.duration && !segmentTimeline) {\n // if neither @duration or SegmentTimeline are present, then there shall be exactly\n // one media segment\n return [{\n number: attributes.startNumber || 1,\n duration: attributes.sourceDuration,\n time: 0,\n timeline: attributes.periodIndex\n }];\n }\n\n if (attributes.duration) {\n return parseByDuration(attributes);\n }\n\n return parseByTimeline(attributes, segmentTimeline);\n};\n/**\n * Generates a list of segments using information provided by the SegmentTemplate element\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]|undefined} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n * the SegmentTimeline element\n * @return {Object[]}\n * List of segment objects\n */\n\nvar segmentsFromTemplate = function segmentsFromTemplate(attributes, segmentTimeline) {\n var templateValues = {\n RepresentationID: attributes.id,\n Bandwidth: attributes.bandwidth || 0\n };\n var _attributes$initializ = attributes.initialization,\n initialization = _attributes$initializ === void 0 ? {\n sourceURL: '',\n range: ''\n } : _attributes$initializ;\n var mapSegment = urlTypeToSegment({\n baseUrl: attributes.baseUrl,\n source: constructTemplateUrl(initialization.sourceURL, templateValues),\n range: initialization.range\n });\n var segments = parseTemplateInfo(attributes, segmentTimeline);\n return segments.map(function (segment) {\n templateValues.Number = segment.number;\n templateValues.Time = segment.time;\n var uri = constructTemplateUrl(attributes.media || '', templateValues); // See DASH spec section 5.3.9.2.2\n // - if timescale isn't present on any level, default to 1.\n\n var timescale = attributes.timescale || 1; // - if presentationTimeOffset isn't present on any level, default to 0\n\n var presentationTimeOffset = attributes.presentationTimeOffset || 0;\n var presentationTime = // Even if the @t attribute is not specified for the segment, segment.time is\n // calculated in mpd-parser prior to this, so it's assumed to be available.\n attributes.periodStart + (segment.time - presentationTimeOffset) / timescale;\n var map = {\n uri: uri,\n timeline: segment.timeline,\n duration: segment.duration,\n resolvedUri: resolveUrl(attributes.baseUrl || '', uri),\n map: mapSegment,\n number: segment.number,\n presentationTime: presentationTime\n };\n return map;\n });\n};\n\n/**\n * Converts a (of type URLType from the DASH spec 5.3.9.2 Table 14)\n * to an object that matches the output of a segment in videojs/mpd-parser\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object} segmentUrl\n * node to translate into a segment object\n * @return {Object} translated segment object\n */\n\nvar SegmentURLToSegmentObject = function SegmentURLToSegmentObject(attributes, segmentUrl) {\n var baseUrl = attributes.baseUrl,\n _attributes$initializ = attributes.initialization,\n initialization = _attributes$initializ === void 0 ? {} : _attributes$initializ;\n var initSegment = urlTypeToSegment({\n baseUrl: baseUrl,\n source: initialization.sourceURL,\n range: initialization.range\n });\n var segment = urlTypeToSegment({\n baseUrl: baseUrl,\n source: segmentUrl.media,\n range: segmentUrl.mediaRange\n });\n segment.map = initSegment;\n return segment;\n};\n/**\n * Generates a list of segments using information provided by the SegmentList element\n * SegmentList (DASH SPEC Section 5.3.9.3.2) contains a set of nodes. Each\n * node should be translated into segment.\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]|undefined} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n * the SegmentTimeline element\n * @return {Object.} list of segments\n */\n\n\nvar segmentsFromList = function segmentsFromList(attributes, segmentTimeline) {\n var duration = attributes.duration,\n _attributes$segmentUr = attributes.segmentUrls,\n segmentUrls = _attributes$segmentUr === void 0 ? [] : _attributes$segmentUr,\n periodStart = attributes.periodStart; // Per spec (5.3.9.2.1) no way to determine segment duration OR\n // if both SegmentTimeline and @duration are defined, it is outside of spec.\n\n if (!duration && !segmentTimeline || duration && segmentTimeline) {\n throw new Error(errors.SEGMENT_TIME_UNSPECIFIED);\n }\n\n var segmentUrlMap = segmentUrls.map(function (segmentUrlObject) {\n return SegmentURLToSegmentObject(attributes, segmentUrlObject);\n });\n var segmentTimeInfo;\n\n if (duration) {\n segmentTimeInfo = parseByDuration(attributes);\n }\n\n if (segmentTimeline) {\n segmentTimeInfo = parseByTimeline(attributes, segmentTimeline);\n }\n\n var segments = segmentTimeInfo.map(function (segmentTime, index) {\n if (segmentUrlMap[index]) {\n var segment = segmentUrlMap[index]; // See DASH spec section 5.3.9.2.2\n // - if timescale isn't present on any level, default to 1.\n\n var timescale = attributes.timescale || 1; // - if presentationTimeOffset isn't present on any level, default to 0\n\n var presentationTimeOffset = attributes.presentationTimeOffset || 0;\n segment.timeline = segmentTime.timeline;\n segment.duration = segmentTime.duration;\n segment.number = segmentTime.number;\n segment.presentationTime = periodStart + (segmentTime.time - presentationTimeOffset) / timescale;\n return segment;\n } // Since we're mapping we should get rid of any blank segments (in case\n // the given SegmentTimeline is handling for more elements than we have\n // SegmentURLs for).\n\n }).filter(function (segment) {\n return segment;\n });\n return segments;\n};\n\nvar generateSegments = function generateSegments(_ref) {\n var attributes = _ref.attributes,\n segmentInfo = _ref.segmentInfo;\n var segmentAttributes;\n var segmentsFn;\n\n if (segmentInfo.template) {\n segmentsFn = segmentsFromTemplate;\n segmentAttributes = merge(attributes, segmentInfo.template);\n } else if (segmentInfo.base) {\n segmentsFn = segmentsFromBase;\n segmentAttributes = merge(attributes, segmentInfo.base);\n } else if (segmentInfo.list) {\n segmentsFn = segmentsFromList;\n segmentAttributes = merge(attributes, segmentInfo.list);\n }\n\n var segmentsInfo = {\n attributes: attributes\n };\n\n if (!segmentsFn) {\n return segmentsInfo;\n }\n\n var segments = segmentsFn(segmentAttributes, segmentInfo.segmentTimeline); // The @duration attribute will be used to determin the playlist's targetDuration which\n // must be in seconds. Since we've generated the segment list, we no longer need\n // @duration to be in @timescale units, so we can convert it here.\n\n if (segmentAttributes.duration) {\n var _segmentAttributes = segmentAttributes,\n duration = _segmentAttributes.duration,\n _segmentAttributes$ti = _segmentAttributes.timescale,\n timescale = _segmentAttributes$ti === void 0 ? 1 : _segmentAttributes$ti;\n segmentAttributes.duration = duration / timescale;\n } else if (segments.length) {\n // if there is no @duration attribute, use the largest segment duration as\n // as target duration\n segmentAttributes.duration = segments.reduce(function (max, segment) {\n return Math.max(max, Math.ceil(segment.duration));\n }, 0);\n } else {\n segmentAttributes.duration = 0;\n }\n\n segmentsInfo.attributes = segmentAttributes;\n segmentsInfo.segments = segments; // This is a sidx box without actual segment information\n\n if (segmentInfo.base && segmentAttributes.indexRange) {\n segmentsInfo.sidx = segments[0];\n segmentsInfo.segments = [];\n }\n\n return segmentsInfo;\n};\nvar toPlaylists = function toPlaylists(representations) {\n return representations.map(generateSegments);\n};\n\nvar findChildren = function findChildren(element, name) {\n return from(element.childNodes).filter(function (_ref) {\n var tagName = _ref.tagName;\n return tagName === name;\n });\n};\nvar getContent = function getContent(element) {\n return element.textContent.trim();\n};\n\nvar parseDuration = function parseDuration(str) {\n var SECONDS_IN_YEAR = 365 * 24 * 60 * 60;\n var SECONDS_IN_MONTH = 30 * 24 * 60 * 60;\n var SECONDS_IN_DAY = 24 * 60 * 60;\n var SECONDS_IN_HOUR = 60 * 60;\n var SECONDS_IN_MIN = 60; // P10Y10M10DT10H10M10.1S\n\n var durationRegex = /P(?:(\\d*)Y)?(?:(\\d*)M)?(?:(\\d*)D)?(?:T(?:(\\d*)H)?(?:(\\d*)M)?(?:([\\d.]*)S)?)?/;\n var match = durationRegex.exec(str);\n\n if (!match) {\n return 0;\n }\n\n var _match$slice = match.slice(1),\n year = _match$slice[0],\n month = _match$slice[1],\n day = _match$slice[2],\n hour = _match$slice[3],\n minute = _match$slice[4],\n second = _match$slice[5];\n\n return parseFloat(year || 0) * SECONDS_IN_YEAR + parseFloat(month || 0) * SECONDS_IN_MONTH + parseFloat(day || 0) * SECONDS_IN_DAY + parseFloat(hour || 0) * SECONDS_IN_HOUR + parseFloat(minute || 0) * SECONDS_IN_MIN + parseFloat(second || 0);\n};\nvar parseDate = function parseDate(str) {\n // Date format without timezone according to ISO 8601\n // YYY-MM-DDThh:mm:ss.ssssss\n var dateRegex = /^\\d+-\\d+-\\d+T\\d+:\\d+:\\d+(\\.\\d+)?$/; // If the date string does not specifiy a timezone, we must specifiy UTC. This is\n // expressed by ending with 'Z'\n\n if (dateRegex.test(str)) {\n str += 'Z';\n }\n\n return Date.parse(str);\n};\n\nvar parsers = {\n /**\n * Specifies the duration of the entire Media Presentation. Format is a duration string\n * as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n mediaPresentationDuration: function mediaPresentationDuration(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the Segment availability start time for all Segments referred to in this\n * MPD. For a dynamic manifest, it specifies the anchor for the earliest availability\n * time. Format is a date string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The date as seconds from unix epoch\n */\n availabilityStartTime: function availabilityStartTime(value) {\n return parseDate(value) / 1000;\n },\n\n /**\n * Specifies the smallest period between potential changes to the MPD. Format is a\n * duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n minimumUpdatePeriod: function minimumUpdatePeriod(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the suggested presentation delay. Format is a\n * duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n suggestedPresentationDelay: function suggestedPresentationDelay(value) {\n return parseDuration(value);\n },\n\n /**\n * specifices the type of mpd. Can be either \"static\" or \"dynamic\"\n *\n * @param {string} value\n * value of attribute as a string\n *\n * @return {string}\n * The type as a string\n */\n type: function type(value) {\n return value;\n },\n\n /**\n * Specifies the duration of the smallest time shifting buffer for any Representation\n * in the MPD. Format is a duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n timeShiftBufferDepth: function timeShiftBufferDepth(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the PeriodStart time of the Period relative to the availabilityStarttime.\n * Format is a duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n start: function start(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the width of the visual presentation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed width\n */\n width: function width(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the height of the visual presentation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed height\n */\n height: function height(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the bitrate of the representation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed bandwidth\n */\n bandwidth: function bandwidth(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the number of the first Media Segment in this Representation in the Period\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed number\n */\n startNumber: function startNumber(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the timescale in units per seconds\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed timescale\n */\n timescale: function timescale(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the presentationTimeOffset.\n *\n * @param {string} value\n * value of the attribute as a string\n *\n * @return {number}\n * The parsed presentationTimeOffset\n */\n presentationTimeOffset: function presentationTimeOffset(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the constant approximate Segment duration\n * NOTE: The element also contains an @duration attribute. This duration\n * specifies the duration of the Period. This attribute is currently not\n * supported by the rest of the parser, however we still check for it to prevent\n * errors.\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed duration\n */\n duration: function duration(value) {\n var parsedValue = parseInt(value, 10);\n\n if (isNaN(parsedValue)) {\n return parseDuration(value);\n }\n\n return parsedValue;\n },\n\n /**\n * Specifies the Segment duration, in units of the value of the @timescale.\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed duration\n */\n d: function d(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the MPD start time, in @timescale units, the first Segment in the series\n * starts relative to the beginning of the Period\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed time\n */\n t: function t(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the repeat count of the number of following contiguous Segments with the\n * same duration expressed by the value of @d\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed number\n */\n r: function r(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Default parser for all other attributes. Acts as a no-op and just returns the value\n * as a string\n *\n * @param {string} value\n * value of attribute as a string\n * @return {string}\n * Unparsed value\n */\n DEFAULT: function DEFAULT(value) {\n return value;\n }\n};\n/**\n * Gets all the attributes and values of the provided node, parses attributes with known\n * types, and returns an object with attribute names mapped to values.\n *\n * @param {Node} el\n * The node to parse attributes from\n * @return {Object}\n * Object with all attributes of el parsed\n */\n\nvar parseAttributes = function parseAttributes(el) {\n if (!(el && el.attributes)) {\n return {};\n }\n\n return from(el.attributes).reduce(function (a, e) {\n var parseFn = parsers[e.name] || parsers.DEFAULT;\n a[e.name] = parseFn(e.value);\n return a;\n }, {});\n};\n\nvar keySystemsMap = {\n 'urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b': 'org.w3.clearkey',\n 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed': 'com.widevine.alpha',\n 'urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95': 'com.microsoft.playready',\n 'urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb': 'com.adobe.primetime'\n};\n/**\n * Builds a list of urls that is the product of the reference urls and BaseURL values\n *\n * @param {string[]} referenceUrls\n * List of reference urls to resolve to\n * @param {Node[]} baseUrlElements\n * List of BaseURL nodes from the mpd\n * @return {string[]}\n * List of resolved urls\n */\n\nvar buildBaseUrls = function buildBaseUrls(referenceUrls, baseUrlElements) {\n if (!baseUrlElements.length) {\n return referenceUrls;\n }\n\n return flatten(referenceUrls.map(function (reference) {\n return baseUrlElements.map(function (baseUrlElement) {\n return resolveUrl(reference, getContent(baseUrlElement));\n });\n }));\n};\n/**\n * Contains all Segment information for its containing AdaptationSet\n *\n * @typedef {Object} SegmentInformation\n * @property {Object|undefined} template\n * Contains the attributes for the SegmentTemplate node\n * @property {Object[]|undefined} segmentTimeline\n * Contains a list of atrributes for each S node within the SegmentTimeline node\n * @property {Object|undefined} list\n * Contains the attributes for the SegmentList node\n * @property {Object|undefined} base\n * Contains the attributes for the SegmentBase node\n */\n\n/**\n * Returns all available Segment information contained within the AdaptationSet node\n *\n * @param {Node} adaptationSet\n * The AdaptationSet node to get Segment information from\n * @return {SegmentInformation}\n * The Segment information contained within the provided AdaptationSet\n */\n\nvar getSegmentInformation = function getSegmentInformation(adaptationSet) {\n var segmentTemplate = findChildren(adaptationSet, 'SegmentTemplate')[0];\n var segmentList = findChildren(adaptationSet, 'SegmentList')[0];\n var segmentUrls = segmentList && findChildren(segmentList, 'SegmentURL').map(function (s) {\n return merge({\n tag: 'SegmentURL'\n }, parseAttributes(s));\n });\n var segmentBase = findChildren(adaptationSet, 'SegmentBase')[0];\n var segmentTimelineParentNode = segmentList || segmentTemplate;\n var segmentTimeline = segmentTimelineParentNode && findChildren(segmentTimelineParentNode, 'SegmentTimeline')[0];\n var segmentInitializationParentNode = segmentList || segmentBase || segmentTemplate;\n var segmentInitialization = segmentInitializationParentNode && findChildren(segmentInitializationParentNode, 'Initialization')[0]; // SegmentTemplate is handled slightly differently, since it can have both\n // @initialization and an node. @initialization can be templated,\n // while the node can have a url and range specified. If the has\n // both @initialization and an subelement we opt to override with\n // the node, as this interaction is not defined in the spec.\n\n var template = segmentTemplate && parseAttributes(segmentTemplate);\n\n if (template && segmentInitialization) {\n template.initialization = segmentInitialization && parseAttributes(segmentInitialization);\n } else if (template && template.initialization) {\n // If it is @initialization we convert it to an object since this is the format that\n // later functions will rely on for the initialization segment. This is only valid\n // for \n template.initialization = {\n sourceURL: template.initialization\n };\n }\n\n var segmentInfo = {\n template: template,\n segmentTimeline: segmentTimeline && findChildren(segmentTimeline, 'S').map(function (s) {\n return parseAttributes(s);\n }),\n list: segmentList && merge(parseAttributes(segmentList), {\n segmentUrls: segmentUrls,\n initialization: parseAttributes(segmentInitialization)\n }),\n base: segmentBase && merge(parseAttributes(segmentBase), {\n initialization: parseAttributes(segmentInitialization)\n })\n };\n Object.keys(segmentInfo).forEach(function (key) {\n if (!segmentInfo[key]) {\n delete segmentInfo[key];\n }\n });\n return segmentInfo;\n};\n/**\n * Contains Segment information and attributes needed to construct a Playlist object\n * from a Representation\n *\n * @typedef {Object} RepresentationInformation\n * @property {SegmentInformation} segmentInfo\n * Segment information for this Representation\n * @property {Object} attributes\n * Inherited attributes for this Representation\n */\n\n/**\n * Maps a Representation node to an object containing Segment information and attributes\n *\n * @name inheritBaseUrlsCallback\n * @function\n * @param {Node} representation\n * Representation node from the mpd\n * @return {RepresentationInformation}\n * Representation information needed to construct a Playlist object\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping Representation nodes to\n * Segment information and attributes using inherited BaseURL nodes.\n *\n * @param {Object} adaptationSetAttributes\n * Contains attributes inherited by the AdaptationSet\n * @param {string[]} adaptationSetBaseUrls\n * Contains list of resolved base urls inherited by the AdaptationSet\n * @param {SegmentInformation} adaptationSetSegmentInfo\n * Contains Segment information for the AdaptationSet\n * @return {inheritBaseUrlsCallback}\n * Callback map function\n */\n\nvar inheritBaseUrls = function inheritBaseUrls(adaptationSetAttributes, adaptationSetBaseUrls, adaptationSetSegmentInfo) {\n return function (representation) {\n var repBaseUrlElements = findChildren(representation, 'BaseURL');\n var repBaseUrls = buildBaseUrls(adaptationSetBaseUrls, repBaseUrlElements);\n var attributes = merge(adaptationSetAttributes, parseAttributes(representation));\n var representationSegmentInfo = getSegmentInformation(representation);\n return repBaseUrls.map(function (baseUrl) {\n return {\n segmentInfo: merge(adaptationSetSegmentInfo, representationSegmentInfo),\n attributes: merge(attributes, {\n baseUrl: baseUrl\n })\n };\n });\n };\n};\n/**\n * Tranforms a series of content protection nodes to\n * an object containing pssh data by key system\n *\n * @param {Node[]} contentProtectionNodes\n * Content protection nodes\n * @return {Object}\n * Object containing pssh data by key system\n */\n\nvar generateKeySystemInformation = function generateKeySystemInformation(contentProtectionNodes) {\n return contentProtectionNodes.reduce(function (acc, node) {\n var attributes = parseAttributes(node);\n var keySystem = keySystemsMap[attributes.schemeIdUri];\n\n if (keySystem) {\n acc[keySystem] = {\n attributes: attributes\n };\n var psshNode = findChildren(node, 'cenc:pssh')[0];\n\n if (psshNode) {\n var pssh = getContent(psshNode);\n var psshBuffer = pssh && decodeB64ToUint8Array(pssh);\n acc[keySystem].pssh = psshBuffer;\n }\n }\n\n return acc;\n }, {});\n}; // defined in ANSI_SCTE 214-1 2016\n\n\nvar parseCaptionServiceMetadata = function parseCaptionServiceMetadata(service) {\n // 608 captions\n if (service.schemeIdUri === 'urn:scte:dash:cc:cea-608:2015') {\n var values = service.value.split(';');\n return values.map(function (value) {\n var channel;\n var language; // default language to value\n\n language = value;\n\n if (/^CC\\d=/.test(value)) {\n var _value$split = value.split('=');\n\n channel = _value$split[0];\n language = _value$split[1];\n } else if (/^CC\\d$/.test(value)) {\n channel = value;\n }\n\n return {\n channel: channel,\n language: language\n };\n });\n } else if (service.schemeIdUri === 'urn:scte:dash:cc:cea-708:2015') {\n var _values = service.value.split(';');\n\n return _values.map(function (value) {\n var flags = {\n // service or channel number 1-63\n 'channel': undefined,\n // language is a 3ALPHA per ISO 639.2/B\n // field is required\n 'language': undefined,\n // BIT 1/0 or ?\n // default value is 1, meaning 16:9 aspect ratio, 0 is 4:3, ? is unknown\n 'aspectRatio': 1,\n // BIT 1/0\n // easy reader flag indicated the text is tailed to the needs of beginning readers\n // default 0, or off\n 'easyReader': 0,\n // BIT 1/0\n // If 3d metadata is present (CEA-708.1) then 1\n // default 0\n '3D': 0\n };\n\n if (/=/.test(value)) {\n var _value$split2 = value.split('='),\n channel = _value$split2[0],\n _value$split2$ = _value$split2[1],\n opts = _value$split2$ === void 0 ? '' : _value$split2$;\n\n flags.channel = channel;\n flags.language = value;\n opts.split(',').forEach(function (opt) {\n var _opt$split = opt.split(':'),\n name = _opt$split[0],\n val = _opt$split[1];\n\n if (name === 'lang') {\n flags.language = val; // er for easyReadery\n } else if (name === 'er') {\n flags.easyReader = Number(val); // war for wide aspect ratio\n } else if (name === 'war') {\n flags.aspectRatio = Number(val);\n } else if (name === '3D') {\n flags['3D'] = Number(val);\n }\n });\n } else {\n flags.language = value;\n }\n\n if (flags.channel) {\n flags.channel = 'SERVICE' + flags.channel;\n }\n\n return flags;\n });\n }\n};\n/**\n * Maps an AdaptationSet node to a list of Representation information objects\n *\n * @name toRepresentationsCallback\n * @function\n * @param {Node} adaptationSet\n * AdaptationSet node from the mpd\n * @return {RepresentationInformation[]}\n * List of objects containing Representaion information\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping AdaptationSet nodes to a list of\n * Representation information objects\n *\n * @param {Object} periodAttributes\n * Contains attributes inherited by the Period\n * @param {string[]} periodBaseUrls\n * Contains list of resolved base urls inherited by the Period\n * @param {string[]} periodSegmentInfo\n * Contains Segment Information at the period level\n * @return {toRepresentationsCallback}\n * Callback map function\n */\n\nvar toRepresentations = function toRepresentations(periodAttributes, periodBaseUrls, periodSegmentInfo) {\n return function (adaptationSet) {\n var adaptationSetAttributes = parseAttributes(adaptationSet);\n var adaptationSetBaseUrls = buildBaseUrls(periodBaseUrls, findChildren(adaptationSet, 'BaseURL'));\n var role = findChildren(adaptationSet, 'Role')[0];\n var roleAttributes = {\n role: parseAttributes(role)\n };\n var attrs = merge(periodAttributes, adaptationSetAttributes, roleAttributes);\n var accessibility = findChildren(adaptationSet, 'Accessibility')[0];\n var captionServices = parseCaptionServiceMetadata(parseAttributes(accessibility));\n\n if (captionServices) {\n attrs = merge(attrs, {\n captionServices: captionServices\n });\n }\n\n var label = findChildren(adaptationSet, 'Label')[0];\n\n if (label && label.childNodes.length) {\n var labelVal = label.childNodes[0].nodeValue.trim();\n attrs = merge(attrs, {\n label: labelVal\n });\n }\n\n var contentProtection = generateKeySystemInformation(findChildren(adaptationSet, 'ContentProtection'));\n\n if (Object.keys(contentProtection).length) {\n attrs = merge(attrs, {\n contentProtection: contentProtection\n });\n }\n\n var segmentInfo = getSegmentInformation(adaptationSet);\n var representations = findChildren(adaptationSet, 'Representation');\n var adaptationSetSegmentInfo = merge(periodSegmentInfo, segmentInfo);\n return flatten(representations.map(inheritBaseUrls(attrs, adaptationSetBaseUrls, adaptationSetSegmentInfo)));\n };\n};\n/**\n * Contains all period information for mapping nodes onto adaptation sets.\n *\n * @typedef {Object} PeriodInformation\n * @property {Node} period.node\n * Period node from the mpd\n * @property {Object} period.attributes\n * Parsed period attributes from node plus any added\n */\n\n/**\n * Maps a PeriodInformation object to a list of Representation information objects for all\n * AdaptationSet nodes contained within the Period.\n *\n * @name toAdaptationSetsCallback\n * @function\n * @param {PeriodInformation} period\n * Period object containing necessary period information\n * @param {number} periodIndex\n * Index of the Period within the mpd\n * @return {RepresentationInformation[]}\n * List of objects containing Representaion information\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping Period nodes to a list of\n * Representation information objects\n *\n * @param {Object} mpdAttributes\n * Contains attributes inherited by the mpd\n * @param {string[]} mpdBaseUrls\n * Contains list of resolved base urls inherited by the mpd\n * @return {toAdaptationSetsCallback}\n * Callback map function\n */\n\nvar toAdaptationSets = function toAdaptationSets(mpdAttributes, mpdBaseUrls) {\n return function (period, index) {\n var periodBaseUrls = buildBaseUrls(mpdBaseUrls, findChildren(period.node, 'BaseURL'));\n var parsedPeriodId = parseInt(period.attributes.id, 10); // fallback to mapping index if Period@id is not a number\n\n var periodIndex = window.isNaN(parsedPeriodId) ? index : parsedPeriodId;\n var periodAttributes = merge(mpdAttributes, {\n periodIndex: periodIndex,\n periodStart: period.attributes.start\n });\n\n if (typeof period.attributes.duration === 'number') {\n periodAttributes.periodDuration = period.attributes.duration;\n }\n\n var adaptationSets = findChildren(period.node, 'AdaptationSet');\n var periodSegmentInfo = getSegmentInformation(period.node);\n return flatten(adaptationSets.map(toRepresentations(periodAttributes, periodBaseUrls, periodSegmentInfo)));\n };\n};\n/**\n * Gets Period@start property for a given period.\n *\n * @param {Object} options\n * Options object\n * @param {Object} options.attributes\n * Period attributes\n * @param {Object} [options.priorPeriodAttributes]\n * Prior period attributes (if prior period is available)\n * @param {string} options.mpdType\n * The MPD@type these periods came from\n * @return {number|null}\n * The period start, or null if it's an early available period or error\n */\n\nvar getPeriodStart = function getPeriodStart(_ref) {\n var attributes = _ref.attributes,\n priorPeriodAttributes = _ref.priorPeriodAttributes,\n mpdType = _ref.mpdType;\n\n // Summary of period start time calculation from DASH spec section 5.3.2.1\n //\n // A period's start is the first period's start + time elapsed after playing all\n // prior periods to this one. Periods continue one after the other in time (without\n // gaps) until the end of the presentation.\n //\n // The value of Period@start should be:\n // 1. if Period@start is present: value of Period@start\n // 2. if previous period exists and it has @duration: previous Period@start +\n // previous Period@duration\n // 3. if this is first period and MPD@type is 'static': 0\n // 4. in all other cases, consider the period an \"early available period\" (note: not\n // currently supported)\n // (1)\n if (typeof attributes.start === 'number') {\n return attributes.start;\n } // (2)\n\n\n if (priorPeriodAttributes && typeof priorPeriodAttributes.start === 'number' && typeof priorPeriodAttributes.duration === 'number') {\n return priorPeriodAttributes.start + priorPeriodAttributes.duration;\n } // (3)\n\n\n if (!priorPeriodAttributes && mpdType === 'static') {\n return 0;\n } // (4)\n // There is currently no logic for calculating the Period@start value if there is\n // no Period@start or prior Period@start and Period@duration available. This is not made\n // explicit by the DASH interop guidelines or the DASH spec, however, since there's\n // nothing about any other resolution strategies, it's implied. Thus, this case should\n // be considered an early available period, or error, and null should suffice for both\n // of those cases.\n\n\n return null;\n};\n/**\n * Traverses the mpd xml tree to generate a list of Representation information objects\n * that have inherited attributes from parent nodes\n *\n * @param {Node} mpd\n * The root node of the mpd\n * @param {Object} options\n * Available options for inheritAttributes\n * @param {string} options.manifestUri\n * The uri source of the mpd\n * @param {number} options.NOW\n * Current time per DASH IOP. Default is current time in ms since epoch\n * @param {number} options.clientOffset\n * Client time difference from NOW (in milliseconds)\n * @return {RepresentationInformation[]}\n * List of objects containing Representation information\n */\n\nvar inheritAttributes = function inheritAttributes(mpd, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$manifestUri = _options.manifestUri,\n manifestUri = _options$manifestUri === void 0 ? '' : _options$manifestUri,\n _options$NOW = _options.NOW,\n NOW = _options$NOW === void 0 ? Date.now() : _options$NOW,\n _options$clientOffset = _options.clientOffset,\n clientOffset = _options$clientOffset === void 0 ? 0 : _options$clientOffset;\n var periodNodes = findChildren(mpd, 'Period');\n\n if (!periodNodes.length) {\n throw new Error(errors.INVALID_NUMBER_OF_PERIOD);\n }\n\n var locations = findChildren(mpd, 'Location');\n var mpdAttributes = parseAttributes(mpd);\n var mpdBaseUrls = buildBaseUrls([manifestUri], findChildren(mpd, 'BaseURL')); // See DASH spec section 5.3.1.2, Semantics of MPD element. Default type to 'static'.\n\n mpdAttributes.type = mpdAttributes.type || 'static';\n mpdAttributes.sourceDuration = mpdAttributes.mediaPresentationDuration || 0;\n mpdAttributes.NOW = NOW;\n mpdAttributes.clientOffset = clientOffset;\n\n if (locations.length) {\n mpdAttributes.locations = locations.map(getContent);\n }\n\n var periods = []; // Since toAdaptationSets acts on individual periods right now, the simplest approach to\n // adding properties that require looking at prior periods is to parse attributes and add\n // missing ones before toAdaptationSets is called. If more such properties are added, it\n // may be better to refactor toAdaptationSets.\n\n periodNodes.forEach(function (node, index) {\n var attributes = parseAttributes(node); // Use the last modified prior period, as it may contain added information necessary\n // for this period.\n\n var priorPeriod = periods[index - 1];\n attributes.start = getPeriodStart({\n attributes: attributes,\n priorPeriodAttributes: priorPeriod ? priorPeriod.attributes : null,\n mpdType: mpdAttributes.type\n });\n periods.push({\n node: node,\n attributes: attributes\n });\n });\n return {\n locations: mpdAttributes.locations,\n representationInfo: flatten(periods.map(toAdaptationSets(mpdAttributes, mpdBaseUrls)))\n };\n};\n\nvar stringToMpdXml = function stringToMpdXml(manifestString) {\n if (manifestString === '') {\n throw new Error(errors.DASH_EMPTY_MANIFEST);\n }\n\n var parser = new DOMParser();\n var xml;\n var mpd;\n\n try {\n xml = parser.parseFromString(manifestString, 'application/xml');\n mpd = xml && xml.documentElement.tagName === 'MPD' ? xml.documentElement : null;\n } catch (e) {// ie 11 throwsw on invalid xml\n }\n\n if (!mpd || mpd && mpd.getElementsByTagName('parsererror').length > 0) {\n throw new Error(errors.DASH_INVALID_XML);\n }\n\n return mpd;\n};\n\n/**\n * Parses the manifest for a UTCTiming node, returning the nodes attributes if found\n *\n * @param {string} mpd\n * XML string of the MPD manifest\n * @return {Object|null}\n * Attributes of UTCTiming node specified in the manifest. Null if none found\n */\n\nvar parseUTCTimingScheme = function parseUTCTimingScheme(mpd) {\n var UTCTimingNode = findChildren(mpd, 'UTCTiming')[0];\n\n if (!UTCTimingNode) {\n return null;\n }\n\n var attributes = parseAttributes(UTCTimingNode);\n\n switch (attributes.schemeIdUri) {\n case 'urn:mpeg:dash:utc:http-head:2014':\n case 'urn:mpeg:dash:utc:http-head:2012':\n attributes.method = 'HEAD';\n break;\n\n case 'urn:mpeg:dash:utc:http-xsdate:2014':\n case 'urn:mpeg:dash:utc:http-iso:2014':\n case 'urn:mpeg:dash:utc:http-xsdate:2012':\n case 'urn:mpeg:dash:utc:http-iso:2012':\n attributes.method = 'GET';\n break;\n\n case 'urn:mpeg:dash:utc:direct:2014':\n case 'urn:mpeg:dash:utc:direct:2012':\n attributes.method = 'DIRECT';\n attributes.value = Date.parse(attributes.value);\n break;\n\n case 'urn:mpeg:dash:utc:http-ntp:2014':\n case 'urn:mpeg:dash:utc:ntp:2014':\n case 'urn:mpeg:dash:utc:sntp:2014':\n default:\n throw new Error(errors.UNSUPPORTED_UTC_TIMING_SCHEME);\n }\n\n return attributes;\n};\n\nvar VERSION = version;\n\nvar parse = function parse(manifestString, options) {\n if (options === void 0) {\n options = {};\n }\n\n var parsedManifestInfo = inheritAttributes(stringToMpdXml(manifestString), options);\n var playlists = toPlaylists(parsedManifestInfo.representationInfo);\n return toM3u8(playlists, parsedManifestInfo.locations, options.sidxMapping);\n};\n/**\n * Parses the manifest for a UTCTiming node, returning the nodes attributes if found\n *\n * @param {string} manifestString\n * XML string of the MPD manifest\n * @return {Object|null}\n * Attributes of UTCTiming node specified in the manifest. Null if none found\n */\n\n\nvar parseUTCTiming = function parseUTCTiming(manifestString) {\n return parseUTCTimingScheme(stringToMpdXml(manifestString));\n};\n\nexport { VERSION, addSidxSegmentsToPlaylist, generateSidxKey, inheritAttributes, parse, parseUTCTiming, stringToMpdXml, toM3u8, toPlaylists };\n","import window from 'global/window'; // const log2 = Math.log2 ? Math.log2 : (x) => (Math.log(x) / Math.log(2));\n\nvar repeat = function repeat(str, len) {\n var acc = '';\n\n while (len--) {\n acc += str;\n }\n\n return acc;\n}; // count the number of bits it would take to represent a number\n// we used to do this with log2 but BigInt does not support builtin math\n// Math.ceil(log2(x));\n\n\nexport var countBits = function countBits(x) {\n return x.toString(2).length;\n}; // count the number of whole bytes it would take to represent a number\n\nexport var countBytes = function countBytes(x) {\n return Math.ceil(countBits(x) / 8);\n};\nexport var padStart = function padStart(b, len, str) {\n if (str === void 0) {\n str = ' ';\n }\n\n return (repeat(str, len) + b.toString()).slice(-len);\n};\nexport var isTypedArray = function isTypedArray(obj) {\n return ArrayBuffer.isView(obj);\n};\nexport var toUint8 = function toUint8(bytes) {\n if (bytes instanceof Uint8Array) {\n return bytes;\n }\n\n if (!Array.isArray(bytes) && !isTypedArray(bytes) && !(bytes instanceof ArrayBuffer)) {\n // any non-number or NaN leads to empty uint8array\n // eslint-disable-next-line\n if (typeof bytes !== 'number' || typeof bytes === 'number' && bytes !== bytes) {\n bytes = 0;\n } else {\n bytes = [bytes];\n }\n }\n\n return new Uint8Array(bytes && bytes.buffer || bytes, bytes && bytes.byteOffset || 0, bytes && bytes.byteLength || 0);\n};\nexport var toHexString = function toHexString(bytes) {\n bytes = toUint8(bytes);\n var str = '';\n\n for (var i = 0; i < bytes.length; i++) {\n str += padStart(bytes[i].toString(16), 2, '0');\n }\n\n return str;\n};\nexport var toBinaryString = function toBinaryString(bytes) {\n bytes = toUint8(bytes);\n var str = '';\n\n for (var i = 0; i < bytes.length; i++) {\n str += padStart(bytes[i].toString(2), 8, '0');\n }\n\n return str;\n};\nvar BigInt = window.BigInt || Number;\nvar BYTE_TABLE = [BigInt('0x1'), BigInt('0x100'), BigInt('0x10000'), BigInt('0x1000000'), BigInt('0x100000000'), BigInt('0x10000000000'), BigInt('0x1000000000000'), BigInt('0x100000000000000'), BigInt('0x10000000000000000')];\nexport var ENDIANNESS = function () {\n var a = new Uint16Array([0xFFCC]);\n var b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n\n if (b[0] === 0xFF) {\n return 'big';\n }\n\n if (b[0] === 0xCC) {\n return 'little';\n }\n\n return 'unknown';\n}();\nexport var IS_BIG_ENDIAN = ENDIANNESS === 'big';\nexport var IS_LITTLE_ENDIAN = ENDIANNESS === 'little';\nexport var bytesToNumber = function bytesToNumber(bytes, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$signed = _ref.signed,\n signed = _ref$signed === void 0 ? false : _ref$signed,\n _ref$le = _ref.le,\n le = _ref$le === void 0 ? false : _ref$le;\n\n bytes = toUint8(bytes);\n var fn = le ? 'reduce' : 'reduceRight';\n var obj = bytes[fn] ? bytes[fn] : Array.prototype[fn];\n var number = obj.call(bytes, function (total, byte, i) {\n var exponent = le ? i : Math.abs(i + 1 - bytes.length);\n return total + BigInt(byte) * BYTE_TABLE[exponent];\n }, BigInt(0));\n\n if (signed) {\n var max = BYTE_TABLE[bytes.length] / BigInt(2) - BigInt(1);\n number = BigInt(number);\n\n if (number > max) {\n number -= max;\n number -= max;\n number -= BigInt(2);\n }\n }\n\n return Number(number);\n};\nexport var numberToBytes = function numberToBytes(number, _temp2) {\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$le = _ref2.le,\n le = _ref2$le === void 0 ? false : _ref2$le;\n\n // eslint-disable-next-line\n if (typeof number !== 'bigint' && typeof number !== 'number' || typeof number === 'number' && number !== number) {\n number = 0;\n }\n\n number = BigInt(number);\n var byteCount = countBytes(number);\n var bytes = new Uint8Array(new ArrayBuffer(byteCount));\n\n for (var i = 0; i < byteCount; i++) {\n var byteIndex = le ? i : Math.abs(i + 1 - bytes.length);\n bytes[byteIndex] = Number(number / BYTE_TABLE[i] & BigInt(0xFF));\n\n if (number < 0) {\n bytes[byteIndex] = Math.abs(~bytes[byteIndex]);\n bytes[byteIndex] -= i === 0 ? 1 : 2;\n }\n }\n\n return bytes;\n};\nexport var bytesToString = function bytesToString(bytes) {\n if (!bytes) {\n return '';\n } // TODO: should toUint8 handle cases where we only have 8 bytes\n // but report more since this is a Uint16+ Array?\n\n\n bytes = Array.prototype.slice.call(bytes);\n var string = String.fromCharCode.apply(null, toUint8(bytes));\n\n try {\n return decodeURIComponent(escape(string));\n } catch (e) {// if decodeURIComponent/escape fails, we are dealing with partial\n // or full non string data. Just return the potentially garbled string.\n }\n\n return string;\n};\nexport var stringToBytes = function stringToBytes(string, stringIsBytes) {\n if (typeof string !== 'string' && string && typeof string.toString === 'function') {\n string = string.toString();\n }\n\n if (typeof string !== 'string') {\n return new Uint8Array();\n } // If the string already is bytes, we don't have to do this\n // otherwise we do this so that we split multi length characters\n // into individual bytes\n\n\n if (!stringIsBytes) {\n string = unescape(encodeURIComponent(string));\n }\n\n var view = new Uint8Array(string.length);\n\n for (var i = 0; i < string.length; i++) {\n view[i] = string.charCodeAt(i);\n }\n\n return view;\n};\nexport var concatTypedArrays = function concatTypedArrays() {\n for (var _len = arguments.length, buffers = new Array(_len), _key = 0; _key < _len; _key++) {\n buffers[_key] = arguments[_key];\n }\n\n buffers = buffers.filter(function (b) {\n return b && (b.byteLength || b.length) && typeof b !== 'string';\n });\n\n if (buffers.length <= 1) {\n // for 0 length we will return empty uint8\n // for 1 length we return the first uint8\n return toUint8(buffers[0]);\n }\n\n var totalLen = buffers.reduce(function (total, buf, i) {\n return total + (buf.byteLength || buf.length);\n }, 0);\n var tempBuffer = new Uint8Array(totalLen);\n var offset = 0;\n buffers.forEach(function (buf) {\n buf = toUint8(buf);\n tempBuffer.set(buf, offset);\n offset += buf.byteLength;\n });\n return tempBuffer;\n};\n/**\n * Check if the bytes \"b\" are contained within bytes \"a\".\n *\n * @param {Uint8Array|Array} a\n * Bytes to check in\n *\n * @param {Uint8Array|Array} b\n * Bytes to check for\n *\n * @param {Object} options\n * options\n *\n * @param {Array|Uint8Array} [offset=0]\n * offset to use when looking at bytes in a\n *\n * @param {Array|Uint8Array} [mask=[]]\n * mask to use on bytes before comparison.\n *\n * @return {boolean}\n * If all bytes in b are inside of a, taking into account\n * bit masks.\n */\n\nexport var bytesMatch = function bytesMatch(a, b, _temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$offset = _ref3.offset,\n offset = _ref3$offset === void 0 ? 0 : _ref3$offset,\n _ref3$mask = _ref3.mask,\n mask = _ref3$mask === void 0 ? [] : _ref3$mask;\n\n a = toUint8(a);\n b = toUint8(b); // ie 11 does not support uint8 every\n\n var fn = b.every ? b.every : Array.prototype.every;\n return b.length && a.length - offset >= b.length && // ie 11 doesn't support every on uin8\n fn.call(b, function (bByte, i) {\n var aByte = mask[i] ? mask[i] & a[offset + i] : a[offset + i];\n return bByte === aByte;\n });\n};\nexport var sliceBytes = function sliceBytes(src, start, end) {\n if (Uint8Array.prototype.slice) {\n return Uint8Array.prototype.slice.call(src, start, end);\n }\n\n return new Uint8Array(Array.prototype.slice.call(src, start, end));\n};\nexport var reverseBytes = function reverseBytes(src) {\n if (src.reverse) {\n return src.reverse();\n }\n\n return Array.prototype.reverse.call(src);\n};","import { toUint8, bytesMatch } from './byte-helpers.js';\nvar ID3 = toUint8([0x49, 0x44, 0x33]);\nexport var getId3Size = function getId3Size(bytes, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n bytes = toUint8(bytes);\n var flags = bytes[offset + 5];\n var returnSize = bytes[offset + 6] << 21 | bytes[offset + 7] << 14 | bytes[offset + 8] << 7 | bytes[offset + 9];\n var footerPresent = (flags & 16) >> 4;\n\n if (footerPresent) {\n return returnSize + 20;\n }\n\n return returnSize + 10;\n};\nexport var getId3Offset = function getId3Offset(bytes, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n bytes = toUint8(bytes);\n\n if (bytes.length - offset < 10 || !bytesMatch(bytes, ID3, {\n offset: offset\n })) {\n return offset;\n }\n\n offset += getId3Size(bytes, offset); // recursive check for id3 tags as some files\n // have multiple ID3 tag sections even though\n // they should not.\n\n return getId3Offset(bytes, offset);\n};","export var OPUS_HEAD = new Uint8Array([// O, p, u, s\n0x4f, 0x70, 0x75, 0x73, // H, e, a, d\n0x48, 0x65, 0x61, 0x64]); // https://wiki.xiph.org/OggOpus\n// https://vfrmaniac.fushizen.eu/contents/opus_in_isobmff.html\n// https://opus-codec.org/docs/opusfile_api-0.7/structOpusHead.html\n\nexport var parseOpusHead = function parseOpusHead(bytes) {\n var view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n var version = view.getUint8(0); // version 0, from mp4, does not use littleEndian.\n\n var littleEndian = version !== 0;\n var config = {\n version: version,\n channels: view.getUint8(1),\n preSkip: view.getUint16(2, littleEndian),\n sampleRate: view.getUint32(4, littleEndian),\n outputGain: view.getUint16(8, littleEndian),\n channelMappingFamily: view.getUint8(10)\n };\n\n if (config.channelMappingFamily > 0 && bytes.length > 10) {\n config.streamCount = view.getUint8(11);\n config.twoChannelStreamCount = view.getUint8(12);\n config.channelMapping = [];\n\n for (var c = 0; c < config.channels; c++) {\n config.channelMapping.push(view.getUint8(13 + c));\n }\n }\n\n return config;\n};\nexport var setOpusHead = function setOpusHead(config) {\n var size = config.channelMappingFamily <= 0 ? 11 : 12 + config.channels;\n var view = new DataView(new ArrayBuffer(size));\n var littleEndian = config.version !== 0;\n view.setUint8(0, config.version);\n view.setUint8(1, config.channels);\n view.setUint16(2, config.preSkip, littleEndian);\n view.setUint32(4, config.sampleRate, littleEndian);\n view.setUint16(8, config.outputGain, littleEndian);\n view.setUint8(10, config.channelMappingFamily);\n\n if (config.channelMappingFamily > 0) {\n view.setUint8(11, config.streamCount);\n config.channelMapping.foreach(function (cm, i) {\n view.setUint8(12 + i, cm);\n });\n }\n\n return new Uint8Array(view.buffer);\n};","import { toUint8, bytesToNumber, bytesMatch, bytesToString, numberToBytes, padStart } from './byte-helpers';\nimport { getAvcCodec, getHvcCodec, getAv1Codec } from './codec-helpers.js'; // relevant specs for this parser:\n// https://matroska-org.github.io/libebml/specs.html\n// https://www.matroska.org/technical/elements.html\n// https://www.webmproject.org/docs/container/\n\nexport var EBML_TAGS = {\n EBML: toUint8([0x1A, 0x45, 0xDF, 0xA3]),\n DocType: toUint8([0x42, 0x82]),\n Segment: toUint8([0x18, 0x53, 0x80, 0x67]),\n SegmentInfo: toUint8([0x15, 0x49, 0xA9, 0x66]),\n Tracks: toUint8([0x16, 0x54, 0xAE, 0x6B]),\n Track: toUint8([0xAE]),\n TrackNumber: toUint8([0xd7]),\n DefaultDuration: toUint8([0x23, 0xe3, 0x83]),\n TrackEntry: toUint8([0xAE]),\n TrackType: toUint8([0x83]),\n FlagDefault: toUint8([0x88]),\n CodecID: toUint8([0x86]),\n CodecPrivate: toUint8([0x63, 0xA2]),\n VideoTrack: toUint8([0xe0]),\n AudioTrack: toUint8([0xe1]),\n // Not used yet, but will be used for live webm/mkv\n // see https://www.matroska.org/technical/basics.html#block-structure\n // see https://www.matroska.org/technical/basics.html#simpleblock-structure\n Cluster: toUint8([0x1F, 0x43, 0xB6, 0x75]),\n Timestamp: toUint8([0xE7]),\n TimestampScale: toUint8([0x2A, 0xD7, 0xB1]),\n BlockGroup: toUint8([0xA0]),\n BlockDuration: toUint8([0x9B]),\n Block: toUint8([0xA1]),\n SimpleBlock: toUint8([0xA3])\n};\n/**\n * This is a simple table to determine the length\n * of things in ebml. The length is one based (starts at 1,\n * rather than zero) and for every zero bit before a one bit\n * we add one to length. We also need this table because in some\n * case we have to xor all the length bits from another value.\n */\n\nvar LENGTH_TABLE = [128, 64, 32, 16, 8, 4, 2, 1];\n\nvar getLength = function getLength(byte) {\n var len = 1;\n\n for (var i = 0; i < LENGTH_TABLE.length; i++) {\n if (byte & LENGTH_TABLE[i]) {\n break;\n }\n\n len++;\n }\n\n return len;\n}; // length in ebml is stored in the first 4 to 8 bits\n// of the first byte. 4 for the id length and 8 for the\n// data size length. Length is measured by converting the number to binary\n// then 1 + the number of zeros before a 1 is encountered starting\n// from the left.\n\n\nvar getvint = function getvint(bytes, offset, removeLength, signed) {\n if (removeLength === void 0) {\n removeLength = true;\n }\n\n if (signed === void 0) {\n signed = false;\n }\n\n var length = getLength(bytes[offset]);\n var valueBytes = bytes.subarray(offset, offset + length); // NOTE that we do **not** subarray here because we need to copy these bytes\n // as they will be modified below to remove the dataSizeLen bits and we do not\n // want to modify the original data. normally we could just call slice on\n // uint8array but ie 11 does not support that...\n\n if (removeLength) {\n valueBytes = Array.prototype.slice.call(bytes, offset, offset + length);\n valueBytes[0] ^= LENGTH_TABLE[length - 1];\n }\n\n return {\n length: length,\n value: bytesToNumber(valueBytes, {\n signed: signed\n }),\n bytes: valueBytes\n };\n};\n\nvar normalizePath = function normalizePath(path) {\n if (typeof path === 'string') {\n return path.match(/.{1,2}/g).map(function (p) {\n return normalizePath(p);\n });\n }\n\n if (typeof path === 'number') {\n return numberToBytes(path);\n }\n\n return path;\n};\n\nvar normalizePaths = function normalizePaths(paths) {\n if (!Array.isArray(paths)) {\n return [normalizePath(paths)];\n }\n\n return paths.map(function (p) {\n return normalizePath(p);\n });\n};\n\nvar getInfinityDataSize = function getInfinityDataSize(id, bytes, offset) {\n if (offset >= bytes.length) {\n return bytes.length;\n }\n\n var innerid = getvint(bytes, offset, false);\n\n if (bytesMatch(id.bytes, innerid.bytes)) {\n return offset;\n }\n\n var dataHeader = getvint(bytes, offset + innerid.length);\n return getInfinityDataSize(id, bytes, offset + dataHeader.length + dataHeader.value + innerid.length);\n};\n/**\n * Notes on the EBLM format.\n *\n * EBLM uses \"vints\" tags. Every vint tag contains\n * two parts\n *\n * 1. The length from the first byte. You get this by\n * converting the byte to binary and counting the zeros\n * before a 1. Then you add 1 to that. Examples\n * 00011111 = length 4 because there are 3 zeros before a 1.\n * 00100000 = length 3 because there are 2 zeros before a 1.\n * 00000011 = length 7 because there are 6 zeros before a 1.\n *\n * 2. The bits used for length are removed from the first byte\n * Then all the bytes are merged into a value. NOTE: this\n * is not the case for id ebml tags as there id includes\n * length bits.\n *\n */\n\n\nexport var findEbml = function findEbml(bytes, paths) {\n paths = normalizePaths(paths);\n bytes = toUint8(bytes);\n var results = [];\n\n if (!paths.length) {\n return results;\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n var id = getvint(bytes, i, false);\n var dataHeader = getvint(bytes, i + id.length);\n var dataStart = i + id.length + dataHeader.length; // dataSize is unknown or this is a live stream\n\n if (dataHeader.value === 0x7f) {\n dataHeader.value = getInfinityDataSize(id, bytes, dataStart);\n\n if (dataHeader.value !== bytes.length) {\n dataHeader.value -= dataStart;\n }\n }\n\n var dataEnd = dataStart + dataHeader.value > bytes.length ? bytes.length : dataStart + dataHeader.value;\n var data = bytes.subarray(dataStart, dataEnd);\n\n if (bytesMatch(paths[0], id.bytes)) {\n if (paths.length === 1) {\n // this is the end of the paths and we've found the tag we were\n // looking for\n results.push(data);\n } else {\n // recursively search for the next tag inside of the data\n // of this one\n results = results.concat(findEbml(data, paths.slice(1)));\n }\n }\n\n var totalLength = id.length + dataHeader.length + data.length; // move past this tag entirely, we are not looking for it\n\n i += totalLength;\n }\n\n return results;\n}; // see https://www.matroska.org/technical/basics.html#block-structure\n\nexport var decodeBlock = function decodeBlock(block, type, timestampScale, clusterTimestamp) {\n var duration;\n\n if (type === 'group') {\n duration = findEbml(block, [EBML_TAGS.BlockDuration])[0];\n\n if (duration) {\n duration = bytesToNumber(duration);\n duration = 1 / timestampScale * duration * timestampScale / 1000;\n }\n\n block = findEbml(block, [EBML_TAGS.Block])[0];\n type = 'block'; // treat data as a block after this point\n }\n\n var dv = new DataView(block.buffer, block.byteOffset, block.byteLength);\n var trackNumber = getvint(block, 0);\n var timestamp = dv.getInt16(trackNumber.length, false);\n var flags = block[trackNumber.length + 2];\n var data = block.subarray(trackNumber.length + 3); // pts/dts in seconds\n\n var ptsdts = 1 / timestampScale * (clusterTimestamp + timestamp) * timestampScale / 1000; // return the frame\n\n var parsed = {\n duration: duration,\n trackNumber: trackNumber.value,\n keyframe: type === 'simple' && flags >> 7 === 1,\n invisible: (flags & 0x08) >> 3 === 1,\n lacing: (flags & 0x06) >> 1,\n discardable: type === 'simple' && (flags & 0x01) === 1,\n frames: [],\n pts: ptsdts,\n dts: ptsdts,\n timestamp: timestamp\n };\n\n if (!parsed.lacing) {\n parsed.frames.push(data);\n return parsed;\n }\n\n var numberOfFrames = data[0] + 1;\n var frameSizes = [];\n var offset = 1; // Fixed\n\n if (parsed.lacing === 2) {\n var sizeOfFrame = (data.length - offset) / numberOfFrames;\n\n for (var i = 0; i < numberOfFrames; i++) {\n frameSizes.push(sizeOfFrame);\n }\n } // xiph\n\n\n if (parsed.lacing === 1) {\n for (var _i = 0; _i < numberOfFrames - 1; _i++) {\n var size = 0;\n\n do {\n size += data[offset];\n offset++;\n } while (data[offset - 1] === 0xFF);\n\n frameSizes.push(size);\n }\n } // ebml\n\n\n if (parsed.lacing === 3) {\n // first vint is unsinged\n // after that vints are singed and\n // based on a compounding size\n var _size = 0;\n\n for (var _i2 = 0; _i2 < numberOfFrames - 1; _i2++) {\n var vint = _i2 === 0 ? getvint(data, offset) : getvint(data, offset, true, true);\n _size += vint.value;\n frameSizes.push(_size);\n offset += vint.length;\n }\n }\n\n frameSizes.forEach(function (size) {\n parsed.frames.push(data.subarray(offset, offset + size));\n offset += size;\n });\n return parsed;\n}; // VP9 Codec Feature Metadata (CodecPrivate)\n// https://www.webmproject.org/docs/container/\n\nvar parseVp9Private = function parseVp9Private(bytes) {\n var i = 0;\n var params = {};\n\n while (i < bytes.length) {\n var id = bytes[i] & 0x7f;\n var len = bytes[i + 1];\n var val = void 0;\n\n if (len === 1) {\n val = bytes[i + 2];\n } else {\n val = bytes.subarray(i + 2, i + 2 + len);\n }\n\n if (id === 1) {\n params.profile = val;\n } else if (id === 2) {\n params.level = val;\n } else if (id === 3) {\n params.bitDepth = val;\n } else if (id === 4) {\n params.chromaSubsampling = val;\n } else {\n params[id] = val;\n }\n\n i += 2 + len;\n }\n\n return params;\n};\n\nexport var parseTracks = function parseTracks(bytes) {\n bytes = toUint8(bytes);\n var decodedTracks = [];\n var tracks = findEbml(bytes, [EBML_TAGS.Segment, EBML_TAGS.Tracks, EBML_TAGS.Track]);\n\n if (!tracks.length) {\n tracks = findEbml(bytes, [EBML_TAGS.Tracks, EBML_TAGS.Track]);\n }\n\n if (!tracks.length) {\n tracks = findEbml(bytes, [EBML_TAGS.Track]);\n }\n\n if (!tracks.length) {\n return decodedTracks;\n }\n\n tracks.forEach(function (track) {\n var trackType = findEbml(track, EBML_TAGS.TrackType)[0];\n\n if (!trackType || !trackType.length) {\n return;\n } // 1 is video, 2 is audio, 17 is subtitle\n // other values are unimportant in this context\n\n\n if (trackType[0] === 1) {\n trackType = 'video';\n } else if (trackType[0] === 2) {\n trackType = 'audio';\n } else if (trackType[0] === 17) {\n trackType = 'subtitle';\n } else {\n return;\n } // todo parse language\n\n\n var decodedTrack = {\n rawCodec: bytesToString(findEbml(track, [EBML_TAGS.CodecID])[0]),\n type: trackType,\n codecPrivate: findEbml(track, [EBML_TAGS.CodecPrivate])[0],\n number: bytesToNumber(findEbml(track, [EBML_TAGS.TrackNumber])[0]),\n defaultDuration: bytesToNumber(findEbml(track, [EBML_TAGS.DefaultDuration])[0]),\n default: findEbml(track, [EBML_TAGS.FlagDefault])[0],\n rawData: track\n };\n var codec = '';\n\n if (/V_MPEG4\\/ISO\\/AVC/.test(decodedTrack.rawCodec)) {\n codec = \"avc1.\" + getAvcCodec(decodedTrack.codecPrivate);\n } else if (/V_MPEGH\\/ISO\\/HEVC/.test(decodedTrack.rawCodec)) {\n codec = \"hev1.\" + getHvcCodec(decodedTrack.codecPrivate);\n } else if (/V_MPEG4\\/ISO\\/ASP/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n codec = 'mp4v.20.' + decodedTrack.codecPrivate[4].toString();\n } else {\n codec = 'mp4v.20.9';\n }\n } else if (/^V_THEORA/.test(decodedTrack.rawCodec)) {\n codec = 'theora';\n } else if (/^V_VP8/.test(decodedTrack.rawCodec)) {\n codec = 'vp8';\n } else if (/^V_VP9/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n var _parseVp9Private = parseVp9Private(decodedTrack.codecPrivate),\n profile = _parseVp9Private.profile,\n level = _parseVp9Private.level,\n bitDepth = _parseVp9Private.bitDepth,\n chromaSubsampling = _parseVp9Private.chromaSubsampling;\n\n codec = 'vp09.';\n codec += padStart(profile, 2, '0') + \".\";\n codec += padStart(level, 2, '0') + \".\";\n codec += padStart(bitDepth, 2, '0') + \".\";\n codec += \"\" + padStart(chromaSubsampling, 2, '0'); // Video -> Colour -> Ebml name\n\n var matrixCoefficients = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xB1]])[0] || [];\n var videoFullRangeFlag = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xB9]])[0] || [];\n var transferCharacteristics = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xBA]])[0] || [];\n var colourPrimaries = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xBB]])[0] || []; // if we find any optional codec parameter specify them all.\n\n if (matrixCoefficients.length || videoFullRangeFlag.length || transferCharacteristics.length || colourPrimaries.length) {\n codec += \".\" + padStart(colourPrimaries[0], 2, '0');\n codec += \".\" + padStart(transferCharacteristics[0], 2, '0');\n codec += \".\" + padStart(matrixCoefficients[0], 2, '0');\n codec += \".\" + padStart(videoFullRangeFlag[0], 2, '0');\n }\n } else {\n codec = 'vp9';\n }\n } else if (/^V_AV1/.test(decodedTrack.rawCodec)) {\n codec = \"av01.\" + getAv1Codec(decodedTrack.codecPrivate);\n } else if (/A_ALAC/.test(decodedTrack.rawCodec)) {\n codec = 'alac';\n } else if (/A_MPEG\\/L2/.test(decodedTrack.rawCodec)) {\n codec = 'mp2';\n } else if (/A_MPEG\\/L3/.test(decodedTrack.rawCodec)) {\n codec = 'mp3';\n } else if (/^A_AAC/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n codec = 'mp4a.40.' + (decodedTrack.codecPrivate[0] >>> 3).toString();\n } else {\n codec = 'mp4a.40.2';\n }\n } else if (/^A_AC3/.test(decodedTrack.rawCodec)) {\n codec = 'ac-3';\n } else if (/^A_PCM/.test(decodedTrack.rawCodec)) {\n codec = 'pcm';\n } else if (/^A_MS\\/ACM/.test(decodedTrack.rawCodec)) {\n codec = 'speex';\n } else if (/^A_EAC3/.test(decodedTrack.rawCodec)) {\n codec = 'ec-3';\n } else if (/^A_VORBIS/.test(decodedTrack.rawCodec)) {\n codec = 'vorbis';\n } else if (/^A_FLAC/.test(decodedTrack.rawCodec)) {\n codec = 'flac';\n } else if (/^A_OPUS/.test(decodedTrack.rawCodec)) {\n codec = 'opus';\n }\n\n decodedTrack.codec = codec;\n decodedTracks.push(decodedTrack);\n });\n return decodedTracks.sort(function (a, b) {\n return a.number - b.number;\n });\n};\nexport var parseData = function parseData(data, tracks) {\n var allBlocks = [];\n var segment = findEbml(data, [EBML_TAGS.Segment])[0];\n var timestampScale = findEbml(segment, [EBML_TAGS.SegmentInfo, EBML_TAGS.TimestampScale])[0]; // in nanoseconds, defaults to 1ms\n\n if (timestampScale && timestampScale.length) {\n timestampScale = bytesToNumber(timestampScale);\n } else {\n timestampScale = 1000000;\n }\n\n var clusters = findEbml(segment, [EBML_TAGS.Cluster]);\n\n if (!tracks) {\n tracks = parseTracks(segment);\n }\n\n clusters.forEach(function (cluster, ci) {\n var simpleBlocks = findEbml(cluster, [EBML_TAGS.SimpleBlock]).map(function (b) {\n return {\n type: 'simple',\n data: b\n };\n });\n var blockGroups = findEbml(cluster, [EBML_TAGS.BlockGroup]).map(function (b) {\n return {\n type: 'group',\n data: b\n };\n });\n var timestamp = findEbml(cluster, [EBML_TAGS.Timestamp])[0] || 0;\n\n if (timestamp && timestamp.length) {\n timestamp = bytesToNumber(timestamp);\n } // get all blocks then sort them into the correct order\n\n\n var blocks = simpleBlocks.concat(blockGroups).sort(function (a, b) {\n return a.data.byteOffset - b.data.byteOffset;\n });\n blocks.forEach(function (block, bi) {\n var decoded = decodeBlock(block.data, block.type, timestampScale, timestamp);\n allBlocks.push(decoded);\n });\n });\n return {\n tracks: tracks,\n blocks: allBlocks\n };\n};","import { bytesMatch, toUint8 } from './byte-helpers.js';\nexport var NAL_TYPE_ONE = toUint8([0x00, 0x00, 0x00, 0x01]);\nexport var NAL_TYPE_TWO = toUint8([0x00, 0x00, 0x01]);\nexport var EMULATION_PREVENTION = toUint8([0x00, 0x00, 0x03]);\n/**\n * Expunge any \"Emulation Prevention\" bytes from a \"Raw Byte\n * Sequence Payload\"\n *\n * @param data {Uint8Array} the bytes of a RBSP from a NAL\n * unit\n * @return {Uint8Array} the RBSP without any Emulation\n * Prevention Bytes\n */\n\nexport var discardEmulationPreventionBytes = function discardEmulationPreventionBytes(bytes) {\n var positions = [];\n var i = 1; // Find all `Emulation Prevention Bytes`\n\n while (i < bytes.length - 2) {\n if (bytesMatch(bytes.subarray(i, i + 3), EMULATION_PREVENTION)) {\n positions.push(i + 2);\n i++;\n }\n\n i++;\n } // If no Emulation Prevention Bytes were found just return the original\n // array\n\n\n if (positions.length === 0) {\n return bytes;\n } // Create a new array to hold the NAL unit data\n\n\n var newLength = bytes.length - positions.length;\n var newData = new Uint8Array(newLength);\n var sourceIndex = 0;\n\n for (i = 0; i < newLength; sourceIndex++, i++) {\n if (sourceIndex === positions[0]) {\n // Skip this byte\n sourceIndex++; // Remove this position index\n\n positions.shift();\n }\n\n newData[i] = bytes[sourceIndex];\n }\n\n return newData;\n};\nexport var findNal = function findNal(bytes, dataType, types, nalLimit) {\n if (nalLimit === void 0) {\n nalLimit = Infinity;\n }\n\n bytes = toUint8(bytes);\n types = [].concat(types);\n var i = 0;\n var nalStart;\n var nalsFound = 0; // keep searching until:\n // we reach the end of bytes\n // we reach the maximum number of nals they want to seach\n // NOTE: that we disregard nalLimit when we have found the start\n // of the nal we want so that we can find the end of the nal we want.\n\n while (i < bytes.length && (nalsFound < nalLimit || nalStart)) {\n var nalOffset = void 0;\n\n if (bytesMatch(bytes.subarray(i), NAL_TYPE_ONE)) {\n nalOffset = 4;\n } else if (bytesMatch(bytes.subarray(i), NAL_TYPE_TWO)) {\n nalOffset = 3;\n } // we are unsynced,\n // find the next nal unit\n\n\n if (!nalOffset) {\n i++;\n continue;\n }\n\n nalsFound++;\n\n if (nalStart) {\n return discardEmulationPreventionBytes(bytes.subarray(nalStart, i));\n }\n\n var nalType = void 0;\n\n if (dataType === 'h264') {\n nalType = bytes[i + nalOffset] & 0x1f;\n } else if (dataType === 'h265') {\n nalType = bytes[i + nalOffset] >> 1 & 0x3f;\n }\n\n if (types.indexOf(nalType) !== -1) {\n nalStart = i + nalOffset;\n } // nal header is 1 length for h264, and 2 for h265\n\n\n i += nalOffset + (dataType === 'h264' ? 1 : 2);\n }\n\n return bytes.subarray(0, 0);\n};\nexport var findH264Nal = function findH264Nal(bytes, type, nalLimit) {\n return findNal(bytes, 'h264', type, nalLimit);\n};\nexport var findH265Nal = function findH265Nal(bytes, type, nalLimit) {\n return findNal(bytes, 'h265', type, nalLimit);\n};","import { toUint8, bytesMatch } from './byte-helpers.js';\nimport { findBox } from './mp4-helpers.js';\nimport { findEbml, EBML_TAGS } from './ebml-helpers.js';\nimport { getId3Offset } from './id3-helpers.js';\nimport { findH264Nal, findH265Nal } from './nal-helpers.js';\nvar CONSTANTS = {\n // \"webm\" string literal in hex\n 'webm': toUint8([0x77, 0x65, 0x62, 0x6d]),\n // \"matroska\" string literal in hex\n 'matroska': toUint8([0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61]),\n // \"fLaC\" string literal in hex\n 'flac': toUint8([0x66, 0x4c, 0x61, 0x43]),\n // \"OggS\" string literal in hex\n 'ogg': toUint8([0x4f, 0x67, 0x67, 0x53]),\n // ac-3 sync byte, also works for ec-3 as that is simply a codec\n // of ac-3\n 'ac3': toUint8([0x0b, 0x77]),\n // \"RIFF\" string literal in hex used for wav and avi\n 'riff': toUint8([0x52, 0x49, 0x46, 0x46]),\n // \"AVI\" string literal in hex\n 'avi': toUint8([0x41, 0x56, 0x49]),\n // \"WAVE\" string literal in hex\n 'wav': toUint8([0x57, 0x41, 0x56, 0x45]),\n // \"ftyp3g\" string literal in hex\n '3gp': toUint8([0x66, 0x74, 0x79, 0x70, 0x33, 0x67]),\n // \"ftyp\" string literal in hex\n 'mp4': toUint8([0x66, 0x74, 0x79, 0x70]),\n // \"styp\" string literal in hex\n 'fmp4': toUint8([0x73, 0x74, 0x79, 0x70]),\n // \"ftypqt\" string literal in hex\n 'mov': toUint8([0x66, 0x74, 0x79, 0x70, 0x71, 0x74]),\n // moov string literal in hex\n 'moov': toUint8([0x6D, 0x6F, 0x6F, 0x76]),\n // moof string literal in hex\n 'moof': toUint8([0x6D, 0x6F, 0x6F, 0x66])\n};\nvar _isLikely = {\n aac: function aac(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, [0xFF, 0x10], {\n offset: offset,\n mask: [0xFF, 0x16]\n });\n },\n mp3: function mp3(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, [0xFF, 0x02], {\n offset: offset,\n mask: [0xFF, 0x06]\n });\n },\n webm: function webm(bytes) {\n var docType = findEbml(bytes, [EBML_TAGS.EBML, EBML_TAGS.DocType])[0]; // check if DocType EBML tag is webm\n\n return bytesMatch(docType, CONSTANTS.webm);\n },\n mkv: function mkv(bytes) {\n var docType = findEbml(bytes, [EBML_TAGS.EBML, EBML_TAGS.DocType])[0]; // check if DocType EBML tag is matroska\n\n return bytesMatch(docType, CONSTANTS.matroska);\n },\n mp4: function mp4(bytes) {\n // if this file is another base media file format, it is not mp4\n if (_isLikely['3gp'](bytes) || _isLikely.mov(bytes)) {\n return false;\n } // if this file starts with a ftyp or styp box its mp4\n\n\n if (bytesMatch(bytes, CONSTANTS.mp4, {\n offset: 4\n }) || bytesMatch(bytes, CONSTANTS.fmp4, {\n offset: 4\n })) {\n return true;\n } // if this file starts with a moof/moov box its mp4\n\n\n if (bytesMatch(bytes, CONSTANTS.moof, {\n offset: 4\n }) || bytesMatch(bytes, CONSTANTS.moov, {\n offset: 4\n })) {\n return true;\n }\n },\n mov: function mov(bytes) {\n return bytesMatch(bytes, CONSTANTS.mov, {\n offset: 4\n });\n },\n '3gp': function gp(bytes) {\n return bytesMatch(bytes, CONSTANTS['3gp'], {\n offset: 4\n });\n },\n ac3: function ac3(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, CONSTANTS.ac3, {\n offset: offset\n });\n },\n ts: function ts(bytes) {\n if (bytes.length < 189 && bytes.length >= 1) {\n return bytes[0] === 0x47;\n }\n\n var i = 0; // check the first 376 bytes for two matching sync bytes\n\n while (i + 188 < bytes.length && i < 188) {\n if (bytes[i] === 0x47 && bytes[i + 188] === 0x47) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n flac: function flac(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, CONSTANTS.flac, {\n offset: offset\n });\n },\n ogg: function ogg(bytes) {\n return bytesMatch(bytes, CONSTANTS.ogg);\n },\n avi: function avi(bytes) {\n return bytesMatch(bytes, CONSTANTS.riff) && bytesMatch(bytes, CONSTANTS.avi, {\n offset: 8\n });\n },\n wav: function wav(bytes) {\n return bytesMatch(bytes, CONSTANTS.riff) && bytesMatch(bytes, CONSTANTS.wav, {\n offset: 8\n });\n },\n 'h264': function h264(bytes) {\n // find seq_parameter_set_rbsp\n return findH264Nal(bytes, 7, 3).length;\n },\n 'h265': function h265(bytes) {\n // find video_parameter_set_rbsp or seq_parameter_set_rbsp\n return findH265Nal(bytes, [32, 33], 3).length;\n }\n}; // get all the isLikely functions\n// but make sure 'ts' is above h264 and h265\n// but below everything else as it is the least specific\n\nvar isLikelyTypes = Object.keys(_isLikely) // remove ts, h264, h265\n.filter(function (t) {\n return t !== 'ts' && t !== 'h264' && t !== 'h265';\n}) // add it back to the bottom\n.concat(['ts', 'h264', 'h265']); // make sure we are dealing with uint8 data.\n\nisLikelyTypes.forEach(function (type) {\n var isLikelyFn = _isLikely[type];\n\n _isLikely[type] = function (bytes) {\n return isLikelyFn(toUint8(bytes));\n };\n}); // export after wrapping\n\nexport var isLikely = _isLikely; // A useful list of file signatures can be found here\n// https://en.wikipedia.org/wiki/List_of_file_signatures\n\nexport var detectContainerForBytes = function detectContainerForBytes(bytes) {\n bytes = toUint8(bytes);\n\n for (var i = 0; i < isLikelyTypes.length; i++) {\n var type = isLikelyTypes[i];\n\n if (isLikely[type](bytes)) {\n return type;\n }\n }\n\n return '';\n}; // fmp4 is not a container\n\nexport var isLikelyFmp4MediaSegment = function isLikelyFmp4MediaSegment(bytes) {\n return findBox(bytes, ['moof']).length > 0;\n};","/**\n * @license\n * Video.js 7.15.4 \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 from 'global/window';\nimport document from 'global/document';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport keycode from 'keycode';\nimport XHR from '@videojs/xhr';\nimport vtt from 'videojs-vtt.js';\nimport _construct from '@babel/runtime/helpers/construct';\nimport _inherits from '@babel/runtime/helpers/inherits';\nimport _resolveUrl from '@videojs/vhs-utils/es/resolve-url.js';\nimport { Parser } from 'm3u8-parser';\nimport { browserSupportsCodec, DEFAULT_VIDEO_CODEC, DEFAULT_AUDIO_CODEC, muxerSupportsCodec, parseCodecs, translateLegacyCodec, codecsFromDefault, getMimeForCodec, isAudioCodec } from '@videojs/vhs-utils/es/codecs.js';\nimport { simpleTypeFromSourceType } from '@videojs/vhs-utils/es/media-types.js';\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 { concatTypedArrays, stringToBytes, toUint8 } from '@videojs/vhs-utils/es/byte-helpers';\nimport { ONE_SECOND_IN_TS } from 'mux.js/lib/utils/clock';\n\nvar version$5 = \"7.15.4\";\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 */\nvar hooks_ = {};\n/**\n * Get a list of hooks for a specific lifecycle\n *\n * @param {string} type\n * the lifecyle 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 */\n\nvar hooks = function hooks(type, fn) {\n hooks_[type] = hooks_[type] || [];\n\n if (fn) {\n hooks_[type] = hooks_[type].concat(fn);\n }\n\n return hooks_[type];\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 */\n\n\nvar hook = function hook(type, fn) {\n hooks(type, fn);\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 */\n\n\nvar removeHook = function removeHook(type, fn) {\n var index = hooks(type).indexOf(fn);\n\n if (index <= -1) {\n return false;\n }\n\n hooks_[type] = hooks_[type].slice();\n hooks_[type].splice(index, 1);\n return true;\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 */\n\n\nvar hookOnce = function hookOnce(type, fn) {\n hooks(type, [].concat(fn).map(function (original) {\n var wrapper = function wrapper() {\n removeHook(type, wrapper);\n return original.apply(void 0, arguments);\n };\n\n return wrapper;\n }));\n};\n\n/**\n * @file fullscreen-api.js\n * @module fullscreen-api\n * @private\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 */\n\nvar FullscreenApi = {\n prefixed: true\n}; // browser API methods\n\nvar apiMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror', 'fullscreen'], // WebKit\n['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror', '-webkit-full-screen'], // Mozilla\n['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror', '-moz-full-screen'], // Microsoft\n['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError', '-ms-fullscreen']];\nvar specApi = apiMap[0];\nvar browserApi; // determine the supported set of functions\n\nfor (var i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n} // map the browser API names to the spec API names\n\n\nif (browserApi) {\n for (var _i = 0; _i < browserApi.length; _i++) {\n FullscreenApi[specApi[_i]] = browserApi[_i];\n }\n\n FullscreenApi.prefixed = browserApi[0] !== specApi[0];\n}\n\n/**\n * @file create-logger.js\n * @module create-logger\n */\n\nvar history = [];\n/**\n * Log messages to the console and history based on the type of message\n *\n * @private\n * @param {string} type\n * The name of the console method to use.\n *\n * @param {Array} args\n * The arguments to be passed to the matching console method.\n */\n\nvar LogByTypeFactory = function LogByTypeFactory(name, log) {\n return function (type, level, args) {\n var lvl = log.levels[level];\n var lvlRegExp = new RegExp(\"^(\" + lvl + \")$\");\n\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 } // Add console prefix after adding to history.\n\n\n args.unshift(name + ':'); // Add a clone of the args at this point to history.\n\n if (history) {\n history.push([].concat(args)); // only store 1000 history entries\n\n var splice = history.length - 1000;\n history.splice(0, splice > 0 ? splice : 0);\n } // If there's no console then don't try to output messages, but they will\n // still be stored in history.\n\n\n if (!window.console) {\n return;\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\n\n var fn = window.console[type];\n\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.console.info || window.console.log;\n } // Bail out if there's no console or if this type is not allowed by the\n // current logging level.\n\n\n if (!fn || !lvl || !lvlRegExp.test(type)) {\n return;\n }\n\n fn[Array.isArray(args) ? 'apply' : 'call'](window.console, args);\n };\n};\n\nfunction createLogger$1(name) {\n // This is the private tracking variable for logging level.\n var level = 'info'; // the curried logByType bound to the specific log and history\n\n var logByType;\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 * Mixed[]\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 {Mixed[]} args\n * One or more messages or objects that should be logged.\n */\n\n var log = function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n logByType('log', level, args);\n }; // This is the logByType helper that the logging methods below use\n\n\n logByType = LogByTypeFactory(name, log);\n /**\n * Create a new sublogger which chains the old name to the new name.\n *\n * For example, doing `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} name\n * The name to add call the new logger\n * @return {Object}\n */\n\n log.createLogger = function (subname) {\n return createLogger$1(name + ': ' + subname);\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\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 * 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 {string} [lvl]\n * Pass a valid level to set a new logging level.\n *\n * @return {string}\n * The current logging level.\n */\n\n log.level = function (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\n level = lvl;\n }\n\n return level;\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\n\n log.history = function () {\n return 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\n\n log.history.filter = function (fname) {\n return (history || []).filter(function (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 * Clears the internal history tracking, but does not prevent further history\n * tracking.\n */\n\n\n log.history.clear = function () {\n if (history) {\n history.length = 0;\n }\n };\n /**\n * Disable history tracking if it is currently enabled.\n */\n\n\n log.history.disable = function () {\n if (history !== null) {\n history.length = 0;\n history = null;\n }\n };\n /**\n * Enable history tracking if it is currently disabled.\n */\n\n\n log.history.enable = function () {\n if (history === null) {\n history = [];\n }\n };\n /**\n * Logs error messages. Similar to `console.error`.\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as an error\n */\n\n\n log.error = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return logByType('error', level, args);\n };\n /**\n * Logs warning messages. Similar to `console.warn`.\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as a warning.\n */\n\n\n log.warn = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return 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 {Mixed[]} args\n * One or more messages or objects that should be logged as debug.\n */\n\n\n log.debug = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return logByType('debug', level, args);\n };\n\n return log;\n}\n\n/**\n * @file log.js\n * @module log\n */\nvar log$1 = createLogger$1('VIDEOJS');\nvar createLogger = log$1.createLogger;\n\n/**\n * @file obj.js\n * @module obj\n */\n\n/**\n * @callback obj:EachCallback\n *\n * @param {Mixed} 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 {Mixed} accum\n * The value that is accumulating over the reduce loop.\n *\n * @param {Mixed} 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 {Mixed}\n * The new accumulated value.\n */\nvar toString = Object.prototype.toString;\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 */\n\nvar keys = function keys(object) {\n return isObject(object) ? Object.keys(object) : [];\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 */\n\n\nfunction each(object, fn) {\n keys(object).forEach(function (key) {\n return 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 {Mixed} [initial = 0]\n * Starting value\n *\n * @return {Mixed}\n * The final accumulated value.\n */\n\nfunction reduce(object, fn, initial) {\n if (initial === void 0) {\n initial = 0;\n }\n\n return keys(object).reduce(function (accum, key) {\n return fn(accum, object[key], key);\n }, initial);\n}\n/**\n * Object.assign-style object shallow merge/extend.\n *\n * @param {Object} target\n * @param {Object} ...sources\n * @return {Object}\n */\n\nfunction assign(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n if (Object.assign) {\n return _extends.apply(void 0, [target].concat(sources));\n }\n\n sources.forEach(function (source) {\n if (!source) {\n return;\n }\n\n each(source, function (value, key) {\n target[key] = value;\n });\n });\n return target;\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 */\n\nfunction isObject(value) {\n return !!value && typeof value === 'object';\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 */\n\nfunction isPlain(value) {\n return isObject(value) && toString.call(value) === '[object Object]' && value.constructor === Object;\n}\n\n/**\n * @file computed-style.js\n * @module computed-style\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 * @function\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 */\n\nfunction computedStyle(el, prop) {\n if (!el || !prop) {\n return '';\n }\n\n if (typeof window.getComputedStyle === 'function') {\n var computedStyleValue;\n\n try {\n computedStyleValue = window.getComputedStyle(el);\n } catch (e) {\n return '';\n }\n\n return computedStyleValue ? computedStyleValue.getPropertyValue(prop) || computedStyleValue[prop] : '';\n }\n\n return '';\n}\n\n/**\n * @file browser.js\n * @module browser\n */\nvar USER_AGENT = window.navigator && window.navigator.userAgent || '';\nvar webkitVersionMap = /AppleWebKit\\/([\\d.]+)/i.exec(USER_AGENT);\nvar appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n/**\n * Whether or not this device is an iPod.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IPOD = /iPod/i.test(USER_AGENT);\n/**\n * The detected iOS version - or `null`.\n *\n * @static\n * @const\n * @type {string|null}\n */\n\nvar IOS_VERSION = function () {\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n\n if (match && match[1]) {\n return match[1];\n }\n\n return null;\n}();\n/**\n * Whether or not this is an Android device.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_ANDROID = /Android/i.test(USER_AGENT);\n/**\n * The detected Android version - or `null`.\n *\n * @static\n * @const\n * @type {number|string|null}\n */\n\nvar 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 var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i);\n\n if (!match) {\n return null;\n }\n\n var major = match[1] && parseFloat(match[1]);\n var minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n }\n\n return null;\n}();\n/**\n * Whether or not this is a native Android browser.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n/**\n * Whether or not this is Mozilla Firefox.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_FIREFOX = /Firefox/i.test(USER_AGENT);\n/**\n * Whether or not this is Microsoft Edge.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_EDGE = /Edg/i.test(USER_AGENT);\n/**\n * Whether or not this is Google Chrome.\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 * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_CHROME = !IS_EDGE && (/Chrome/i.test(USER_AGENT) || /CriOS/i.test(USER_AGENT));\n/**\n * The detected Google Chrome version - or `null`.\n *\n * @static\n * @const\n * @type {number|null}\n */\n\nvar CHROME_VERSION = function () {\n var match = USER_AGENT.match(/(Chrome|CriOS)\\/(\\d+)/);\n\n if (match && match[2]) {\n return parseFloat(match[2]);\n }\n\n return null;\n}();\n/**\n * The detected Internet Explorer version - or `null`.\n *\n * @static\n * @const\n * @type {number|null}\n */\n\nvar IE_VERSION = function () {\n var result = /MSIE\\s(\\d+)\\.\\d/.exec(USER_AGENT);\n var version = result && parseFloat(result[1]);\n\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\n return version;\n}();\n/**\n * Whether or not this is desktop Safari.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_SAFARI = /Safari/i.test(USER_AGENT) && !IS_CHROME && !IS_ANDROID && !IS_EDGE;\n/**\n * Whether or not this is a Windows machine.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_WINDOWS = /Windows/i.test(USER_AGENT);\n/**\n * Whether or not this device is touch-enabled.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar TOUCH_ENABLED = Boolean(isReal() && ('ontouchstart' in window || window.navigator.maxTouchPoints || window.DocumentTouch && window.document instanceof window.DocumentTouch));\n/**\n * Whether or not this device is an iPad.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IPAD = /iPad/i.test(USER_AGENT) || IS_SAFARI && TOUCH_ENABLED && !/iPhone/i.test(USER_AGENT);\n/**\n * Whether or not this device is an iPhone.\n *\n * @static\n * @const\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/\n\nvar IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\n/**\n * Whether or not this is an iOS device.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n/**\n * Whether or not this is any flavor of Safari - including iOS.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_ANY_SAFARI = (IS_SAFARI || IS_IOS) && !IS_CHROME;\n\nvar browser = /*#__PURE__*/Object.freeze({\n __proto__: null,\n IS_IPOD: IS_IPOD,\n IOS_VERSION: IOS_VERSION,\n IS_ANDROID: IS_ANDROID,\n ANDROID_VERSION: ANDROID_VERSION,\n IS_NATIVE_ANDROID: IS_NATIVE_ANDROID,\n IS_FIREFOX: IS_FIREFOX,\n IS_EDGE: IS_EDGE,\n IS_CHROME: IS_CHROME,\n CHROME_VERSION: CHROME_VERSION,\n IE_VERSION: IE_VERSION,\n IS_SAFARI: IS_SAFARI,\n IS_WINDOWS: IS_WINDOWS,\n TOUCH_ENABLED: TOUCH_ENABLED,\n IS_IPAD: IS_IPAD,\n IS_IPHONE: IS_IPHONE,\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 * 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 */\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 * 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 */\n\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 * Produce a regular expression for matching a className within an elements className.\n *\n * @private\n * @param {string} className\n * The className to generate the RegExp for.\n *\n * @return {RegExp}\n * The RegExp that will check for a specific `className` in an elements\n * className.\n */\n\n\nfunction classRegExp(className) {\n return new RegExp('(^|\\\\s)' + className + '($|\\\\s)');\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 */\n\n\nfunction isReal() {\n // Both document and window will never be undefined thanks to `global`.\n return document === window.document;\n}\n/**\n * Determines, via duck typing, whether or not a value is a DOM element.\n *\n * @param {Mixed} value\n * The value to check.\n *\n * @return {boolean}\n * Will be `true` if the value is a DOM element, `false` otherwise.\n */\n\nfunction isEl(value) {\n return isObject(value) && value.nodeType === 1;\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 */\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.parent !== window.self;\n } catch (x) {\n return true;\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 */\n\nfunction createQuerier(method) {\n return function (selector, context) {\n if (!isNonBlankString(selector)) {\n return document[method](null);\n }\n\n if (isNonBlankString(context)) {\n context = document.querySelector(context);\n }\n\n var ctx = isEl(context) ? context : document;\n return ctx[method] && ctx[method](selector);\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 {module:dom~ContentDescriptor} content\n * A content descriptor object.\n *\n * @return {Element}\n * The element that was created.\n */\n\n\nfunction createEl(tagName, properties, attributes, content) {\n if (tagName === void 0) {\n tagName = 'div';\n }\n\n if (properties === void 0) {\n properties = {};\n }\n\n if (attributes === void 0) {\n attributes = {};\n }\n\n var el = document.createElement(tagName);\n Object.getOwnPropertyNames(properties).forEach(function (propName) {\n var val = properties[propName]; // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n log$1.warn('Setting attributes in the second argument of createEl()\\n' + 'has been deprecated. Use the third argument instead.\\n' + (\"createEl(type, properties, attributes). Attempting to set \" + propName + \" to \" + val + \".\"));\n el.setAttribute(propName, val); // Handle textContent since it's not supported everywhere and we have a\n // method for it.\n } else 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\n if (content) {\n appendContent(el, content);\n }\n\n return el;\n}\n/**\n * Injects text into an element, replacing any existing contents entirely.\n *\n * @param {Element} 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 */\n\nfunction textContent(el, text) {\n if (typeof el.textContent === 'undefined') {\n el.innerText = text;\n } else {\n el.textContent = text;\n }\n\n return el;\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 */\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 * 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 */\n\nfunction hasClass(element, classToCheck) {\n throwIfWhitespace(classToCheck);\n\n if (element.classList) {\n return element.classList.contains(classToCheck);\n }\n\n return classRegExp(classToCheck).test(element.className);\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} classToAdd\n * Class name to add.\n *\n * @return {Element}\n * The DOM element with the added class name.\n */\n\nfunction addClass(element, classToAdd) {\n if (element.classList) {\n element.classList.add(classToAdd); // Don't need to `throwIfWhitespace` here because `hasElClass` will do it\n // in the case of classList not being supported.\n } else if (!hasClass(element, classToAdd)) {\n element.className = (element.className + ' ' + classToAdd).trim();\n }\n\n return element;\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} classToRemove\n * Class name to remove\n *\n * @return {Element}\n * The DOM element with class name removed.\n */\n\nfunction removeClass(element, classToRemove) {\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\n if (element.classList) {\n element.classList.remove(classToRemove);\n } else {\n throwIfWhitespace(classToRemove);\n element.className = element.className.split(/\\s+/).filter(function (c) {\n return c !== classToRemove;\n }).join(' ');\n }\n\n return element;\n}\n/**\n * The callback definition for toggleClass.\n *\n * @callback module:dom~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`. If `false`, the `classToToggle` will be removed from\n * the `element`. If `undefined`, the callback will be ignored.\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|module:dom~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 */\n\nfunction toggleClass(element, classToToggle, predicate) {\n // This CANNOT use `classList` internally because IE11 does not support the\n // second parameter to the `classList.toggle()` method! Which is fine because\n // `classList` will be used by the add/remove functions.\n var has = hasClass(element, classToToggle);\n\n if (typeof predicate === 'function') {\n predicate = predicate(element, classToToggle);\n }\n\n if (typeof predicate !== 'boolean') {\n predicate = !has;\n } // If the necessary class operation matches the current state of the\n // element, no action is required.\n\n\n if (predicate === has) {\n return;\n }\n\n if (predicate) {\n addClass(element, classToToggle);\n } else {\n removeClass(element, classToToggle);\n }\n\n return element;\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 */\n\nfunction setAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n var attrValue = attributes[attrName];\n\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 * 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 */\n\nfunction getAttributes(tag) {\n var obj = {}; // 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\n var knownBooleans = ',' + 'autoplay,controls,playsinline,loop,muted,default,defaultMuted' + ',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n var attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n var attrName = attrs[i].name;\n var attrVal = attrs[i].value; // check for known booleans\n // the matching element property will return a value for typeof\n\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(',' + attrName + ',') !== -1) {\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\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\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 */\n\nfunction getAttribute(el, attribute) {\n return el.getAttribute(attribute);\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 */\n\nfunction setAttribute(el, attribute, value) {\n el.setAttribute(attribute, value);\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 */\n\nfunction removeAttribute(el, attribute) {\n el.removeAttribute(attribute);\n}\n/**\n * Attempt to block the ability to select text.\n */\n\nfunction blockTextSelection() {\n document.body.focus();\n\n document.onselectstart = function () {\n return false;\n };\n}\n/**\n * Turn off text selection blocking.\n */\n\nfunction unblockTextSelection() {\n document.onselectstart = function () {\n return true;\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 */\n\nfunction getBoundingClientRect(el) {\n if (el && el.getBoundingClientRect && el.parentNode) {\n var rect = el.getBoundingClientRect();\n var result = {};\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(function (k) {\n if (rect[k] !== undefined) {\n result[k] = rect[k];\n }\n });\n\n if (!result.height) {\n result.height = parseFloat(computedStyle(el, 'height'));\n }\n\n if (!result.width) {\n result.width = parseFloat(computedStyle(el, 'width'));\n }\n\n return result;\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 */\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\n var width = el.offsetWidth;\n var height = el.offsetHeight;\n var left = 0;\n var top = 0;\n\n while (el.offsetParent && el !== document[FullscreenApi.fullscreenElement]) {\n left += el.offsetLeft;\n top += el.offsetTop;\n el = el.offsetParent;\n }\n\n return {\n left: left,\n top: top,\n width: width,\n height: height\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 {EventTarget~Event} event\n * Event object.\n *\n * @return {module:dom~Coordinates}\n * A coordinates object corresponding to the mouse position.\n *\n */\n\nfunction getPointerPosition(el, event) {\n var translated = {\n x: 0,\n y: 0\n };\n\n if (IS_IOS) {\n var item = el;\n\n while (item && item.nodeName.toLowerCase() !== 'html') {\n var transform = computedStyle(item, 'transform');\n\n if (/^matrix/.test(transform)) {\n var 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 var _values = transform.slice(9, -1).split(/,\\s/).map(Number);\n\n translated.x += _values[12];\n translated.y += _values[13];\n }\n\n item = item.parentNode;\n }\n }\n\n var position = {};\n var boxTarget = findPosition(event.target);\n var box = findPosition(el);\n var boxW = box.width;\n var boxH = box.height;\n var offsetY = event.offsetY - (box.top - boxTarget.top);\n var offsetX = event.offsetX - (box.left - boxTarget.left);\n\n if (event.changedTouches) {\n offsetX = event.changedTouches[0].pageX - box.left;\n offsetY = event.changedTouches[0].pageY + box.top;\n\n if (IS_IOS) {\n offsetX -= translated.x;\n offsetY -= translated.y;\n }\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 * Determines, via duck typing, whether or not a value is a text node.\n *\n * @param {Mixed} 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 */\n\nfunction isTextNode(value) {\n return isObject(value) && value.nodeType === 3;\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 */\n\nfunction emptyEl(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n\n return el;\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 * `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|TextNode|Array|Function} module:dom~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 {module:dom~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 */\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 } // Next up, normalize to an array, so one or many items can be normalized,\n // filtered, and returned.\n\n\n return (Array.isArray(content) ? content : [content]).map(function (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\n if (isEl(value) || isTextNode(value)) {\n return value;\n }\n\n if (typeof value === 'string' && /\\S/.test(value)) {\n return document.createTextNode(value);\n }\n }).filter(function (value) {\n return 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 {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with appended normalized content.\n */\n\nfunction appendContent(el, content) {\n normalizeContent(content).forEach(function (node) {\n return el.appendChild(node);\n });\n return el;\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 {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with inserted normalized content.\n */\n\nfunction insertContent(el, content) {\n return appendContent(emptyEl(el), content);\n}\n/**\n * Check if an event was a single left click.\n *\n * @param {EventTarget~Event} event\n * Event object.\n *\n * @return {boolean}\n * Will be `true` if a single left click, `false` otherwise.\n */\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 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 // Alright, then what this block does ?\n // this is for chrome `simulate mobile devices`\n // I want to support this as well\n return true;\n }\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 return true;\n } // `mouseup` event on a single left click has\n // `button` and `buttons` equal to 0\n\n\n if (event.type === 'mouseup' && event.button === 0 && event.buttons === 0) {\n return true;\n }\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 return false;\n }\n\n return true;\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 */\n\nvar $ = createQuerier('querySelector');\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 */\n\nvar $$ = createQuerier('querySelectorAll');\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});\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 */\nvar _windowLoaded = false;\nvar videojs$1;\n/**\n * Set up any tags that have a data-setup `attribute` when the player is started.\n */\n\nvar autoSetup = function autoSetup() {\n if (videojs$1.options.autoSetup === false) {\n return;\n }\n\n var vids = Array.prototype.slice.call(document.getElementsByTagName('video'));\n var audios = Array.prototype.slice.call(document.getElementsByTagName('audio'));\n var divs = Array.prototype.slice.call(document.getElementsByTagName('video-js'));\n var mediaEls = vids.concat(audios, divs); // Check if any media elements exist\n\n if (mediaEls && mediaEls.length > 0) {\n for (var i = 0, e = mediaEls.length; i < e; i++) {\n var mediaEl = mediaEls[i]; // Check if element exists, has getAttribute func.\n\n if (mediaEl && mediaEl.getAttribute) {\n // Make sure this player hasn't already been set up.\n if (mediaEl.player === undefined) {\n var options = mediaEl.getAttribute('data-setup'); // Check if data-setup attr exists.\n // We only auto-setup if they've added the data-setup attr.\n\n if (options !== null) {\n // Create new video.js instance.\n videojs$1(mediaEl);\n }\n } // If getAttribute isn't defined, we need to wait for the DOM.\n\n } else {\n autoSetupTimeout(1);\n break;\n }\n } // No videos were found, so keep looping unless page is finished loading.\n\n } else if (!_windowLoaded) {\n autoSetupTimeout(1);\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 */\n\n\nfunction autoSetupTimeout(wait, vjs) {\n // Protect against breakage in non-browser environments\n if (!isReal()) {\n return;\n }\n\n if (vjs) {\n videojs$1 = vjs;\n }\n\n window.setTimeout(autoSetup, wait);\n}\n/**\n * Used to set the internal tracking of window loaded state to true.\n *\n * @private\n */\n\n\nfunction setWindowLoaded() {\n _windowLoaded = true;\n window.removeEventListener('load', setWindowLoaded);\n}\n\nif (isReal()) {\n if (document.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.addEventListener('load', setWindowLoaded);\n }\n}\n\n/**\n * @file stylesheet.js\n * @module stylesheet\n */\n/**\n * Create a DOM syle 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 */\n\nvar createStyleElement = function createStyleElement(className) {\n var style = document.createElement('style');\n style.className = className;\n return style;\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 */\n\nvar setTextContent = function setTextContent(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n\n/**\n * @file guid.js\n * @module guid\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\nvar _initialGuid = 3;\n/**\n * Unique ID for an element or function\n *\n * @type {Number}\n */\n\nvar _guid = _initialGuid;\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 */\n\nfunction newGUID() {\n return _guid++;\n}\n\n/**\n * @file dom-data.js\n * @module dom-data\n */\nvar FakeWeakMap;\n\nif (!window.WeakMap) {\n FakeWeakMap = /*#__PURE__*/function () {\n function FakeWeakMap() {\n this.vdata = 'vdata' + Math.floor(window.performance && window.performance.now() || Date.now());\n this.data = {};\n }\n\n var _proto = FakeWeakMap.prototype;\n\n _proto.set = function set(key, value) {\n var access = key[this.vdata] || newGUID();\n\n if (!key[this.vdata]) {\n key[this.vdata] = access;\n }\n\n this.data[access] = value;\n return this;\n };\n\n _proto.get = function get(key) {\n var access = key[this.vdata]; // we have data, return it\n\n if (access) {\n return this.data[access];\n } // we don't have data, return nothing.\n // return undefined explicitly as that's the contract for this method\n\n\n log$1('We have no data for this element', key);\n return undefined;\n };\n\n _proto.has = function has(key) {\n var access = key[this.vdata];\n return access in this.data;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var access = key[this.vdata];\n\n if (access) {\n delete this.data[access];\n delete key[this.vdata];\n }\n };\n\n return FakeWeakMap;\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 */\n\n\nvar DomData = window.WeakMap ? new WeakMap() : new FakeWeakMap();\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 * 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 */\n\nfunction _cleanUpEvents(elem, type) {\n if (!DomData.has(elem)) {\n return;\n }\n\n var data = DomData.get(elem); // Remove the events of a particular type if there are none left\n\n if (data.handlers[type].length === 0) {\n delete data.handlers[type]; // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n // Remove the meta-handler from the element\n\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 } // Remove the events object if there are no types left\n\n\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n } // Finally remove the element data if there is no data left\n\n\n if (Object.getOwnPropertyNames(data).length === 0) {\n DomData[\"delete\"](elem);\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} type\n * Type of event to bind to.\n *\n * @param {EventTarget~EventListener} callback\n * Event listener.\n */\n\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 * 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 */\n\n\nfunction fixEvent(event) {\n if (event.fixed_) {\n return event;\n }\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\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\n\n if (!event || !event.isPropagationStopped || !event.isImmediatePropagationStopped) {\n var old = event || window.event;\n event = {}; // 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 // TODO: Probably best to create a whitelist of event props\n\n for (var 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 if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' && key !== 'webkitMovementX' && key !== 'webkitMovementY') {\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 } // The event occurred on this element\n\n\n if (!event.target) {\n event.target = event.srcElement || document;\n } // Handle which other element the event is related to\n\n\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;\n } // Stop the default browser action\n\n\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false; // Stop the event from bubbling\n\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse; // Stop the event from bubbling and executing other handlers\n\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse; // Handle mouse position\n\n if (event.clientX !== null && event.clientX !== undefined) {\n var doc = document.documentElement;\n var body = document.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 } // Handle key presses\n\n\n event.which = event.charCode || event.keyCode; // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n\n if (event.button !== null && event.button !== undefined) {\n // The following is disabled because it does not pass videojs-standard\n // and... yikes.\n\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\n event.fixed_ = true; // Returns fixed-up instance\n\n return event;\n}\n/**\n * Whether passive event listeners are supported\n */\n\nvar _supportsPassive;\n\nvar supportsPassive = function supportsPassive() {\n if (typeof _supportsPassive !== 'boolean') {\n _supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n _supportsPassive = true;\n }\n });\n window.addEventListener('test', null, opts);\n window.removeEventListener('test', null, opts);\n } catch (e) {// disregard\n }\n }\n\n return _supportsPassive;\n};\n/**\n * Touch events Chrome expects to be passive\n */\n\n\nvar passiveEvents = ['touchstart', 'touchmove'];\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 {EventTarget~EventListener} fn\n * Event listener.\n */\n\nfunction on(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n if (!DomData.has(elem)) {\n DomData.set(elem, {});\n }\n\n var data = DomData.get(elem); // We need a place to store all our handler data\n\n if (!data.handlers) {\n data.handlers = {};\n }\n\n if (!data.handlers[type]) {\n data.handlers[type] = [];\n }\n\n if (!fn.guid) {\n fn.guid = newGUID();\n }\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash) {\n if (data.disabled) {\n return;\n }\n\n event = fixEvent(event);\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var 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\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n var options = false;\n\n if (supportsPassive() && passiveEvents.indexOf(type) > -1) {\n options = {\n passive: true\n };\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 * 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 {EventTarget~EventListener} [fn]\n * Specific listener to remove. Don't include to remove listeners for an event\n * type.\n */\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\n var data = DomData.get(elem); // If no events exist, nothing to unbind\n\n if (!data.handlers) {\n return;\n }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n } // Utility function\n\n\n var removeType = function removeType(el, t) {\n data.handlers[t] = [];\n\n _cleanUpEvents(el, t);\n }; // Are we removing all bound events?\n\n\n if (type === undefined) {\n for (var t in data.handlers) {\n if (Object.prototype.hasOwnProperty.call(data.handlers || {}, t)) {\n removeType(elem, t);\n }\n }\n\n return;\n }\n\n var handlers = data.handlers[type]; // If no handlers exist, nothing to unbind\n\n if (!handlers) {\n return;\n } // If no listener was provided, remove all listeners for type\n\n\n if (!fn) {\n removeType(elem, type);\n return;\n } // We're only removing a single handler\n\n\n if (fn.guid) {\n for (var n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\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 */\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 var elemData = DomData.has(elem) ? DomData.get(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument; // type = event.type || event,\n // handler;\n // If an event name was passed as a string, creates an event out of it\n\n if (typeof event === 'string') {\n event = {\n type: event,\n target: elem\n };\n } else if (!event.target) {\n event.target = elem;\n } // Normalizes the event properties.\n\n\n event = fixEvent(event); // If the passed element has a dispatcher, executes the established handlers.\n\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\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\n\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash); // 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\n var targetData = DomData.get(event.target); // Checks if the target has a default action for this event.\n\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; // Executes the default action.\n\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n } // Re-enables event dispatching.\n\n\n targetData.disabled = false;\n }\n } // Inform the triggerer if the default was prevented by returning false\n\n\n return !event.defaultPrevented;\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 */\n\nfunction one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n\n var func = function func() {\n off(elem, type, func);\n fn.apply(this, arguments);\n }; // copy the guid to the new function so it can removed using the original function's ID\n\n\n func.guid = fn.guid = fn.guid || newGUID();\n on(elem, type, func);\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 */\n\nfunction any(elem, type, fn) {\n var func = function func() {\n off(elem, type, func);\n fn.apply(this, arguments);\n }; // copy the guid to the new function so it can removed using the original function's ID\n\n\n func.guid = fn.guid = fn.guid || newGUID(); // multiple ons, but one off for everything\n\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 */\nvar UPDATE_REFRESH_INTERVAL = 30;\n/**\n * Bind (a.k.a proxy or context). A simple method for changing the context of\n * a function.\n *\n * It also stores a unique id on the function so it can be easily removed from\n * events.\n *\n * @function\n * @param {Mixed} 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 */\n\nvar bind = function bind(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) {\n fn.guid = newGUID();\n } // Create the new function that changes the context\n\n\n var bound = fn.bind(context); // 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\n bound.guid = uid ? uid + '_' + fn.guid : fn.guid;\n return bound;\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 */\n\nvar throttle = function throttle(fn, wait) {\n var last = window.performance.now();\n\n var throttled = function throttled() {\n var now = window.performance.now();\n\n if (now - last >= wait) {\n fn.apply(void 0, arguments);\n last = now;\n }\n };\n\n return throttled;\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 */\n\nvar debounce = function debounce(func, wait, immediate, context) {\n if (context === void 0) {\n context = window;\n }\n\n var timeout;\n\n var cancel = function cancel() {\n context.clearTimeout(timeout);\n timeout = null;\n };\n /* eslint-disable consistent-this */\n\n\n var debounced = function debounced() {\n var self = this;\n var args = arguments;\n\n var _later = function later() {\n timeout = null;\n _later = null;\n\n if (!immediate) {\n func.apply(self, args);\n }\n };\n\n if (!timeout && immediate) {\n func.apply(self, args);\n }\n\n context.clearTimeout(timeout);\n timeout = context.setTimeout(_later, wait);\n };\n /* eslint-enable consistent-this */\n\n\n debounced.cancel = cancel;\n return debounced;\n};\n\n/**\n * @file src/js/event-target.js\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 */\n\nvar EventTarget$2 = function EventTarget() {};\n/**\n * A Custom DOM event.\n *\n * @typedef {Object} EventTarget~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 EventTarget~EventListener\n * @this {EventTarget}\n *\n * @param {EventTarget~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 * @private\n */\n\n\nEventTarget$2.prototype.allowedEvents_ = {};\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 {EventTarget~EventListener} fn\n * The function to call with `EventTarget`s\n */\n\nEventTarget$2.prototype.on = function (type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\n on(this, type, fn);\n this.addEventListener = ael;\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 */\n\n\nEventTarget$2.prototype.addEventListener = EventTarget$2.prototype.on;\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 {EventTarget~EventListener} fn\n * The function to remove.\n */\n\nEventTarget$2.prototype.off = function (type, fn) {\n off(this, type, fn);\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 */\n\n\nEventTarget$2.prototype.removeEventListener = EventTarget$2.prototype.off;\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 {EventTarget~EventListener} fn\n * The function to be called once for each event name.\n */\n\nEventTarget$2.prototype.one = function (type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\n one(this, type, fn);\n this.addEventListener = ael;\n};\n\nEventTarget$2.prototype.any = function (type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\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\n\nEventTarget$2.prototype.trigger = function (event) {\n var type = event.type || event; // 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\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n\n event = fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n trigger(this, event);\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 */\n\n\nEventTarget$2.prototype.dispatchEvent = EventTarget$2.prototype.trigger;\nvar EVENT_MAP;\n\nEventTarget$2.prototype.queueTrigger = function (event) {\n var _this = this;\n\n // only set up EVENT_MAP if it'll be used\n if (!EVENT_MAP) {\n EVENT_MAP = new Map();\n }\n\n var type = event.type || event;\n var map = EVENT_MAP.get(this);\n\n if (!map) {\n map = new Map();\n EVENT_MAP.set(this, map);\n }\n\n var oldTimeout = map.get(type);\n map[\"delete\"](type);\n window.clearTimeout(oldTimeout);\n var timeout = window.setTimeout(function () {\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\n _this.trigger(event);\n }, 0);\n map.set(type, timeout);\n};\n\n/**\n * @file mixins/evented.js\n * @module evented\n */\n\nvar objName = function objName(obj) {\n if (typeof obj.name === 'function') {\n return obj.name();\n }\n\n if (typeof obj.name === 'string') {\n return obj.name;\n }\n\n if (obj.name_) {\n return obj.name_;\n }\n\n if (obj.constructor && obj.constructor.name) {\n return obj.constructor.name;\n }\n\n return typeof obj;\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 */\n\n\nvar isEvented = function isEvented(object) {\n return object instanceof EventTarget$2 || !!object.eventBusEl_ && ['on', 'one', 'off', 'trigger'].every(function (k) {\n return typeof object[k] === 'function';\n });\n};\n/**\n * Adds a callback to run after the evented mixin applied.\n *\n * @param {Object} object\n * An object to Add\n * @param {Function} callback\n * The callback to run.\n */\n\n\nvar addEventedCallback = function addEventedCallback(target, callback) {\n if (isEvented(target)) {\n callback();\n } else {\n if (!target.eventedCallbacks) {\n target.eventedCallbacks = [];\n }\n\n target.eventedCallbacks.push(callback);\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 */\n\n\nvar isValidEventType = function isValidEventType(type) {\n return (// The regex here verifies that the `type` contains at least one non-\n // whitespace character.\n typeof type === 'string' && /\\S/.test(type) || Array.isArray(type) && !!type.length\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 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 */\n\n\nvar validateTarget = function 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 * 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 */\n\n\nvar validateEventType = function 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 * 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 */\n\n\nvar validateListener = function 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 * 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 */\n\n\nvar normalizeListenArgs = function normalizeListenArgs(self, args, fnName) {\n // If the number of arguments is less than 3, the target is always the\n // evented object itself.\n var isTargetingSelf = args.length < 3 || args[0] === self || args[0] === self.eventBusEl_;\n var target;\n var type;\n var listener;\n\n if (isTargetingSelf) {\n target = self.eventBusEl_; // Deal with cases where we got 3 arguments, but we are still listening to\n // the evented object itself.\n\n if (args.length >= 3) {\n args.shift();\n }\n\n type = args[0];\n listener = args[1];\n } else {\n target = args[0];\n type = args[1];\n listener = args[2];\n }\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: isTargetingSelf,\n target: target,\n type: type,\n listener: listener\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 */\n\n\nvar listen = function listen(target, method, type, listener) {\n validateTarget(target, target, method);\n\n if (target.nodeName) {\n Events[method](target, type, listener);\n } else {\n target[method](type, listener);\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 */\n\n\nvar 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: function on() {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _normalizeListenArgs = normalizeListenArgs(this, args, 'on'),\n isTargetingSelf = _normalizeListenArgs.isTargetingSelf,\n target = _normalizeListenArgs.target,\n type = _normalizeListenArgs.type,\n listener = _normalizeListenArgs.listener;\n\n listen(target, 'on', type, listener); // If this object is listening to another evented object.\n\n if (!isTargetingSelf) {\n // If this object is disposed, remove the listener.\n var removeListenerOnDispose = function removeListenerOnDispose() {\n return _this.off(target, type, listener);\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\n\n removeListenerOnDispose.guid = listener.guid; // 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\n var removeRemoverOnTargetDispose = function removeRemoverOnTargetDispose() {\n return _this.off('dispose', removeListenerOnDispose);\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\n\n removeRemoverOnTargetDispose.guid = listener.guid;\n listen(this, 'on', 'dispose', removeListenerOnDispose);\n listen(target, 'on', 'dispose', removeRemoverOnTargetDispose);\n }\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: function one() {\n var _this2 = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var _normalizeListenArgs2 = normalizeListenArgs(this, args, 'one'),\n isTargetingSelf = _normalizeListenArgs2.isTargetingSelf,\n target = _normalizeListenArgs2.target,\n type = _normalizeListenArgs2.type,\n listener = _normalizeListenArgs2.listener; // Targeting this evented object.\n\n\n if (isTargetingSelf) {\n listen(target, 'one', type, listener); // 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 listners are removed on the first trigger!\n // see https://github.com/videojs/video.js/issues/5962\n var wrapper = function wrapper() {\n _this2.off(target, type, wrapper);\n\n for (var _len3 = arguments.length, largs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n largs[_key3] = arguments[_key3];\n }\n\n listener.apply(null, largs);\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\n\n wrapper.guid = listener.guid;\n listen(target, 'one', type, wrapper);\n }\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: function any() {\n var _this3 = this;\n\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var _normalizeListenArgs3 = normalizeListenArgs(this, args, 'any'),\n isTargetingSelf = _normalizeListenArgs3.isTargetingSelf,\n target = _normalizeListenArgs3.target,\n type = _normalizeListenArgs3.type,\n listener = _normalizeListenArgs3.listener; // Targeting this evented object.\n\n\n if (isTargetingSelf) {\n listen(target, 'any', type, listener); // Targeting another evented object.\n } else {\n var wrapper = function wrapper() {\n _this3.off(target, type, wrapper);\n\n for (var _len5 = arguments.length, largs = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n largs[_key5] = arguments[_key5];\n }\n\n listener.apply(null, largs);\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\n\n wrapper.guid = listener.guid;\n listen(target, 'any', type, wrapper);\n }\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: function off$1(targetOrType, typeOrListener, listener) {\n // Targeting this evented object.\n if (!targetOrType || isValidEventType(targetOrType)) {\n off(this.eventBusEl_, targetOrType, typeOrListener); // Targeting another evented object.\n } else {\n var target = targetOrType;\n var type = typeOrListener; // Fail fast and in a meaningful way!\n\n validateTarget(target, this, 'off');\n validateEventType(type, this, 'off');\n validateListener(listener, this, 'off'); // Ensure there's at least a guid, even if the function hasn't been used\n\n listener = bind(this, listener); // Remove the dispose listener on this evented object, which was given\n // the same guid as the event listener in on().\n\n this.off('dispose', listener);\n\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 /**\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: function trigger$1(event, hash) {\n validateTarget(this.eventBusEl_, this, 'trigger');\n var type = event && typeof event !== 'string' ? event.type : event;\n\n if (!isValidEventType(type)) {\n var 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 if (event) {\n (this.log || log$1).error(error);\n } else {\n throw new Error(error);\n }\n }\n\n return trigger(this.eventBusEl_, event, hash);\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 */\n\nfunction evented(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n eventBusKey = _options.eventBusKey; // Set or create the eventBusEl_.\n\n if (eventBusKey) {\n if (!target[eventBusKey].nodeName) {\n throw new Error(\"The eventBusKey \\\"\" + eventBusKey + \"\\\" does not refer to an element.\");\n }\n\n target.eventBusEl_ = target[eventBusKey];\n } else {\n target.eventBusEl_ = createEl('span', {\n className: 'vjs-event-bus'\n });\n }\n\n assign(target, EventedMixin);\n\n if (target.eventedCallbacks) {\n target.eventedCallbacks.forEach(function (callback) {\n callback();\n });\n } // When any evented object is disposed, it removes all its listeners.\n\n\n target.on('dispose', function () {\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.setTimeout(function () {\n target.eventBusEl_ = null;\n }, 0);\n });\n return target;\n}\n\n/**\n * @file mixins/stateful.js\n * @module stateful\n */\n/**\n * Contains methods that provide statefulness to an object which is passed\n * to {@link module:stateful}.\n *\n * @mixin StatefulMixin\n */\n\nvar 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 /**\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: function setState(stateUpdates) {\n var _this = this;\n\n // Support providing the `stateUpdates` state as a function.\n if (typeof stateUpdates === 'function') {\n stateUpdates = stateUpdates();\n }\n\n var changes;\n each(stateUpdates, function (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\n _this.state[key] = value;\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\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: changes,\n type: 'statechanged'\n });\n }\n\n return changes;\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 */\n\nfunction stateful(target, defaultState) {\n assign(target, StatefulMixin); // This happens after the mixing-in because we need to replace the `state`\n // added in that step.\n\n target.state = assign({}, target.state, defaultState); // Auto-bind the `handleStateChanged` method of the target object if it exists.\n\n if (typeof target.handleStateChanged === 'function' && isEvented(target)) {\n target.on('statechanged', target.handleStateChanged);\n }\n\n return target;\n}\n\n/**\n * @file string-cases.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 */\nvar toLowerCase = function toLowerCase(string) {\n if (typeof string !== 'string') {\n return string;\n }\n\n return string.replace(/./, function (w) {\n return 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 */\n\nvar toTitleCase$1 = function toTitleCase(string) {\n if (typeof string !== 'string') {\n return string;\n }\n\n return string.replace(/./, function (w) {\n return 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 */\n\nvar titleCaseEquals = function titleCaseEquals(str1, str2) {\n return toTitleCase$1(str1) === toTitleCase$1(str2);\n};\n\n/**\n * @file merge-options.js\n * @module merge-options\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 * @static\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 */\n\nfunction mergeOptions$3() {\n var result = {};\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n sources.forEach(function (source) {\n if (!source) {\n return;\n }\n\n each(source, function (value, key) {\n if (!isPlain(value)) {\n result[key] = value;\n return;\n }\n\n if (!isPlain(result[key])) {\n result[key] = {};\n }\n\n result[key] = mergeOptions$3(result[key], value);\n });\n });\n return result;\n}\n\nvar MapSham = /*#__PURE__*/function () {\n function MapSham() {\n this.map_ = {};\n }\n\n var _proto = MapSham.prototype;\n\n _proto.has = function has(key) {\n return key in this.map_;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var has = this.has(key);\n delete this.map_[key];\n return has;\n };\n\n _proto.set = function set(key, value) {\n this.map_[key] = value;\n return this;\n };\n\n _proto.forEach = function forEach(callback, thisArg) {\n for (var key in this.map_) {\n callback.call(thisArg, this.map_[key], key, this);\n }\n };\n\n return MapSham;\n}();\n\nvar Map$1 = window.Map ? window.Map : MapSham;\n\nvar SetSham = /*#__PURE__*/function () {\n function SetSham() {\n this.set_ = {};\n }\n\n var _proto = SetSham.prototype;\n\n _proto.has = function has(key) {\n return key in this.set_;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var has = this.has(key);\n delete this.set_[key];\n return has;\n };\n\n _proto.add = function add(key) {\n this.set_[key] = 1;\n return this;\n };\n\n _proto.forEach = function forEach(callback, thisArg) {\n for (var key in this.set_) {\n callback.call(thisArg, key, key, this);\n }\n };\n\n return SetSham;\n}();\n\nvar Set = window.Set ? window.Set : SetSham;\n\n/**\n * Player Component - Base class for all UI objects\n *\n * @file component.js\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 */\n\nvar Component$1 = /*#__PURE__*/function () {\n /**\n * A callback that is called when a component is ready. Does not have any\n * paramters and any callback value will be ignored.\n *\n * @callback Component~ReadyCallback\n * @this Component\n */\n\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 {Object[]} [options.children]\n * An array of children objects to intialize 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 {Component~ReadyCallback} [ready]\n * Function that gets called when the `Component` is ready.\n */\n function Component(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\n this.isDisposed_ = false; // Hold the reference to the parent component via `addChild` method\n\n this.parentComponent_ = null; // Make a copy of prototype.options_ to protect against overriding defaults\n\n this.options_ = mergeOptions$3({}, this.options_); // Updated options with supplied options\n\n options = this.options_ = mergeOptions$3(this.options_, options); // Get ID from options or options element if one is supplied\n\n this.id_ = options.id || options.el && options.el.id; // If there was no ID from the options, generate one\n\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n var id = player && player.id && player.id() || 'no_player';\n this.id_ = id + \"_component_\" + newGUID();\n }\n\n this.name_ = options.name || null; // Create element if one wasn't provided in options\n\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n } // if evented is anything except false, we want to mixin in evented\n\n\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\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$1();\n this.clearingTimersOnDispose_ = false; // Add any child components in options\n\n if (options.initChildren !== false) {\n this.initChildren();\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\n\n this.ready(ready);\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n /**\n * Dispose of the `Component` and all child components.\n *\n * @fires Component#dispose\n */\n\n\n var _proto = Component.prototype;\n\n _proto.dispose = function dispose() {\n // Bail out if the component has already been disposed.\n if (this.isDisposed_) {\n return;\n }\n\n if (this.readyQueue_) {\n this.readyQueue_.length = 0;\n }\n /**\n * Triggered when a `Component` is disposed.\n *\n * @event Component#dispose\n * @type {EventTarget~Event}\n *\n * @property {boolean} [bubbles=false]\n * set to false so that the dispose event does not\n * bubble up\n */\n\n\n this.trigger({\n type: 'dispose',\n bubbles: false\n });\n this.isDisposed_ = true; // Dispose all children.\n\n if (this.children_) {\n for (var i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n } // Delete child references\n\n\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n this.parentComponent_ = null;\n\n if (this.el_) {\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n this.el_ = null;\n } // remove reference to the player after disposing of the element\n\n\n this.player_ = null;\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 ;\n\n _proto.isDisposed = function isDisposed() {\n return Boolean(this.isDisposed_);\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 ;\n\n _proto.player = function player() {\n return this.player_;\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:mergeOptions}\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 ;\n\n _proto.options = function options(obj) {\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions$3(this.options_, obj);\n return this.options_;\n }\n /**\n * Get the `Component`s DOM element\n *\n * @return {Element}\n * The DOM element for this `Component`.\n */\n ;\n\n _proto.el = function el() {\n return this.el_;\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 ;\n\n _proto.createEl = function createEl$1(tagName, properties, attributes) {\n return createEl(tagName, properties, attributes);\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 ;\n\n _proto.localize = function localize(string, tokens, defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = string;\n }\n\n var code = this.player_.language && this.player_.language();\n var languages = this.player_.languages && this.player_.languages();\n var language = languages && languages[code];\n var primaryCode = code && code.split('-')[0];\n var primaryLang = languages && languages[primaryCode];\n var localizedString = defaultValue;\n\n if (language && language[string]) {\n localizedString = language[string];\n } else if (primaryLang && primaryLang[string]) {\n localizedString = primaryLang[string];\n }\n\n if (tokens) {\n localizedString = localizedString.replace(/\\{(\\d+)\\}/g, function (match, index) {\n var value = tokens[index - 1];\n var ret = value;\n\n if (typeof value === 'undefined') {\n ret = match;\n }\n\n return ret;\n });\n }\n\n return localizedString;\n }\n /**\n * Handles language change for the player in components. Should be overriden by sub-components.\n *\n * @abstract\n */\n ;\n\n _proto.handleLanguagechange = function handleLanguagechange() {}\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 ;\n\n _proto.contentEl = function contentEl() {\n return this.contentEl_ || this.el_;\n }\n /**\n * Get this `Component`s ID\n *\n * @return {string}\n * The id of this `Component`\n */\n ;\n\n _proto.id = function id() {\n return this.id_;\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 ;\n\n _proto.name = function name() {\n return this.name_;\n }\n /**\n * Get an array of all child components\n *\n * @return {Array}\n * The children\n */\n ;\n\n _proto.children = function children() {\n return this.children_;\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 ;\n\n _proto.getChildById = function getChildById(id) {\n return this.childIndex_[id];\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 ;\n\n _proto.getChild = function getChild(name) {\n if (!name) {\n return;\n }\n\n return this.childNameIndex_[name];\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 ;\n\n _proto.getDescendant = function getDescendant() {\n for (var _len = arguments.length, names = new Array(_len), _key = 0; _key < _len; _key++) {\n names[_key] = arguments[_key];\n }\n\n // flatten array argument into the main array\n names = names.reduce(function (acc, n) {\n return acc.concat(n);\n }, []);\n var currentChild = this;\n\n for (var i = 0; i < names.length; i++) {\n currentChild = currentChild.getChild(names[i]);\n\n if (!currentChild || !currentChild.getChild) {\n return;\n }\n }\n\n return currentChild;\n }\n /**\n * Add a child `Component` inside the current `Component`.\n *\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 * @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 ;\n\n _proto.addChild = function addChild(child, options, index) {\n if (options === void 0) {\n options = {};\n }\n\n if (index === void 0) {\n index = this.children_.length;\n }\n\n var component;\n var componentName; // If child is a string, create component with options\n\n if (typeof child === 'string') {\n componentName = toTitleCase$1(child);\n var componentClassName = options.componentClass || componentName; // Set name through options\n\n options.name = componentName; // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n\n var ComponentClass = Component.getComponent(componentClassName);\n\n if (!ComponentClass) {\n throw new Error(\"Component \" + componentClassName + \" does not exist\");\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\n\n if (typeof ComponentClass !== 'function') {\n return null;\n }\n\n component = new ComponentClass(this.player_ || this, options); // child is a component instance\n } else {\n component = child;\n }\n\n if (component.parentComponent_) {\n component.parentComponent_.removeChild(component);\n }\n\n this.children_.splice(index, 0, component);\n component.parentComponent_ = this;\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n } // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n\n\n componentName = componentName || component.name && toTitleCase$1(component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n this.childNameIndex_[toLowerCase(componentName)] = component;\n } // Add the UI object's element to the container div (box)\n // Having an element is not required\n\n\n if (typeof component.el === 'function' && component.el()) {\n // If inserting before a component, insert before that component's element\n var refNode = null;\n\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\n this.contentEl().insertBefore(component.el(), refNode);\n } // Return so it can stored on parent object if desired.\n\n\n return component;\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 ;\n\n _proto.removeChild = function removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n var childFound = false;\n\n for (var 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\n if (!childFound) {\n return;\n }\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 var compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n /**\n * Add and initialize default child `Component`s based upon options.\n */\n ;\n\n _proto.initChildren = function initChildren() {\n var _this = this;\n\n var children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n var parentOptions = this.options_;\n\n var handleAdd = function handleAdd(child) {\n var name = child.name;\n var opts = child.opts; // 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\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n } // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n\n\n if (opts === false) {\n return;\n } // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n\n\n if (opts === true) {\n opts = {};\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\n\n opts.playerOptions = _this.options_.playerOptions; // 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\n var newChild = _this.addChild(name, opts);\n\n if (newChild) {\n _this[name] = newChild;\n }\n }; // Allow for an array of children details to passed in the options\n\n\n var workingChildren;\n var Tech = Component.getComponent('Tech');\n\n if (Array.isArray(children)) {\n workingChildren = children;\n } else {\n workingChildren = Object.keys(children);\n }\n\n workingChildren // 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\n return child === wchild.name;\n });\n })).map(function (child) {\n var name;\n var opts;\n\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\n return {\n name: name,\n opts: opts\n };\n }).filter(function (child) {\n // we have to make sure that child.name isn't in the techOrder since\n // techs are registerd as Components but can't aren't compatible\n // See https://github.com/videojs/video.js/issues/2772\n var c = Component.getComponent(child.opts.componentClass || toTitleCase$1(child.name));\n return c && !Tech.isTech(c);\n }).forEach(handleAdd);\n }\n }\n /**\n * Builds the default DOM class name. Should be overriden by sub-components.\n *\n * @return {string}\n * The DOM class name for this object.\n *\n * @abstract\n */\n ;\n\n _proto.buildCSSClass = function buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\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 * @return {Component}\n * Returns itself; method can be chained.\n */\n ;\n\n _proto.ready = function ready(fn, sync) {\n if (sync === void 0) {\n sync = false;\n }\n\n if (!fn) {\n return;\n }\n\n if (!this.isReady_) {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n return;\n }\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 * Trigger all the ready listeners for this `Component`.\n *\n * @fires Component#ready\n */\n ;\n\n _proto.triggerReady = function triggerReady() {\n this.isReady_ = true; // Ensure ready is triggered asynchronously\n\n this.setTimeout(function () {\n var readyQueue = this.readyQueue_; // Reset Ready Queue\n\n this.readyQueue_ = [];\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function (fn) {\n fn.call(this);\n }, this);\n } // Allow for using event listeners also\n\n /**\n * Triggered when a `Component` is ready.\n *\n * @event Component#ready\n * @type {EventTarget~Event}\n */\n\n\n this.trigger('ready');\n }, 1);\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 ;\n\n _proto.$ = function $$1(selector, context) {\n return $(selector, context || this.contentEl());\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 ;\n\n _proto.$$ = function $$$1(selector, context) {\n return $$(selector, context || this.contentEl());\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 ;\n\n _proto.hasClass = function hasClass$1(classToCheck) {\n return hasClass(this.el_, classToCheck);\n }\n /**\n * Add a CSS class name to the `Component`s element.\n *\n * @param {string} classToAdd\n * CSS class name to add\n */\n ;\n\n _proto.addClass = function addClass$1(classToAdd) {\n addClass(this.el_, classToAdd);\n }\n /**\n * Remove a CSS class name from the `Component`s element.\n *\n * @param {string} classToRemove\n * CSS class name to remove\n */\n ;\n\n _proto.removeClass = function removeClass$1(classToRemove) {\n removeClass(this.el_, classToRemove);\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 based on (@link Component#hasClass}\n *\n * @param {boolean|Dom~predicate} [predicate]\n * An {@link Dom~predicate} function or a boolean\n */\n ;\n\n _proto.toggleClass = function toggleClass$1(classToToggle, predicate) {\n toggleClass(this.el_, classToToggle, predicate);\n }\n /**\n * Show the `Component`s element if it is hidden by removing the\n * 'vjs-hidden' class name from it.\n */\n ;\n\n _proto.show = function show() {\n this.removeClass('vjs-hidden');\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 ;\n\n _proto.hide = function hide() {\n this.addClass('vjs-hidden');\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 ;\n\n _proto.lockShowing = function lockShowing() {\n this.addClass('vjs-lock-showing');\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 ;\n\n _proto.unlockShowing = function unlockShowing() {\n this.removeClass('vjs-lock-showing');\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 attibute 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 ;\n\n _proto.getAttribute = function getAttribute$1(attribute) {\n return getAttribute(this.el_, attribute);\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 ;\n\n _proto.setAttribute = function setAttribute$1(attribute, value) {\n setAttribute(this.el_, attribute, value);\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 ;\n\n _proto.removeAttribute = function removeAttribute$1(attribute) {\n removeAttribute(this.el_, attribute);\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|string}\n * The width when getting, zero if there is no width. Can be a string\n * postpixed with '%' or 'px'.\n */\n ;\n\n _proto.width = function width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\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|string}\n * The width when getting, zero if there is no width. Can be a string\n * postpixed with '%' or 'px'.\n */\n ;\n\n _proto.height = function height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\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 ;\n\n _proto.dimensions = function dimensions(width, height) {\n // Skip componentresize listeners on width for optimization\n this.width(width, true);\n this.height(height);\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}\n * The dimension when getting or 0 if unset\n */\n ;\n\n _proto.dimension = function 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 } // Check if using css width/height (% or px) and adjust\n\n\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 } // skipListeners allows us to avoid triggering the resize event when setting both width and height\n\n\n if (!skipListeners) {\n /**\n * Triggered when a component is resized.\n *\n * @event Component#componentresize\n * @type {EventTarget~Event}\n */\n this.trigger('componentresize');\n }\n\n return;\n } // Not setting a value, so getting it\n // Make sure element exists\n\n\n if (!this.el_) {\n return 0;\n } // Get dimension value from style\n\n\n var val = this.el_.style[widthOrHeight];\n var pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\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\n\n return parseInt(this.el_['offset' + toTitleCase$1(widthOrHeight)], 10);\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 ;\n\n _proto.currentDimension = function currentDimension(widthOrHeight) {\n var computedWidthOrHeight = 0;\n\n if (widthOrHeight !== 'width' && widthOrHeight !== 'height') {\n throw new Error('currentDimension only accepts width or height value');\n }\n\n computedWidthOrHeight = computedStyle(this.el_, widthOrHeight); // remove 'px' from variable and parse as integer\n\n computedWidthOrHeight = parseFloat(computedWidthOrHeight); // 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\n if (computedWidthOrHeight === 0 || isNaN(computedWidthOrHeight)) {\n var rule = \"offset\" + toTitleCase$1(widthOrHeight);\n computedWidthOrHeight = this.el_[rule];\n }\n\n return computedWidthOrHeight;\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 ;\n\n _proto.currentDimensions = function currentDimensions() {\n return {\n width: this.currentDimension('width'),\n height: this.currentDimension('height')\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 ;\n\n _proto.currentWidth = function currentWidth() {\n return this.currentDimension('width');\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 ;\n\n _proto.currentHeight = function currentHeight() {\n return this.currentDimension('height');\n }\n /**\n * Set the focus to this component\n */\n ;\n\n _proto.focus = function focus() {\n this.el_.focus();\n }\n /**\n * Remove the focus from this component\n */\n ;\n\n _proto.blur = function blur() {\n this.el_.blur();\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 {EventTarget~Event} event\n * The `keydown` event that caused this function to be called.\n */\n ;\n\n _proto.handleKeyDown = function handleKeyDown(event) {\n if (this.player_) {\n // We only stop propagation here because we want unhandled events to fall\n // back to the browser.\n event.stopPropagation();\n this.player_.handleKeyDown(event);\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 {EventTarget~Event} event\n * The event that caused this function to be called.\n */\n ;\n\n _proto.handleKeyPress = function handleKeyPress(event) {\n this.handleKeyDown(event);\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 * @private\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 ;\n\n _proto.emitTapEvents = function emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n var touchStart = 0;\n var firstTouch = null; // 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\n var tapMovementThreshold = 10; // The maximum length a touch can be while still being considered a tap\n\n var touchTimeThreshold = 200;\n var 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 }; // Record start time so we can detect a tap vs. \"touch and hold\"\n\n touchStart = window.performance.now(); // Reset couldBeTap tracking\n\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 var xdiff = event.touches[0].pageX - firstTouch.pageX;\n var ydiff = event.touches[0].pageY - firstTouch.pageY;\n var touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n var noTap = function noTap() {\n couldBeTap = false;\n }; // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n\n\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap); // When the touch ends, measure how long it took and trigger the appropriate\n // event\n\n this.on('touchend', function (event) {\n firstTouch = null; // Proceed only if the touchmove/leave/cancel event didn't happen\n\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n var touchTime = window.performance.now() - touchStart; // Make sure the touch was less than the threshold to be considered a tap\n\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 {EventTarget~Event}\n */\n\n this.trigger('tap'); // 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 * 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 ;\n\n _proto.enableTouchActivity = function 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 } // listener for reporting that the user is active\n\n\n var report = bind(this.player(), this.player().reportUserActivity);\n var touchHolding;\n this.on('touchstart', function () {\n report(); // 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\n this.clearInterval(touchHolding); // report at the same interval as activityCheck\n\n touchHolding = this.setInterval(report, 250);\n });\n\n var touchEnd = function touchEnd(event) {\n report(); // stop the interval that maintains activity if the touch is holding\n\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\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 ;\n\n _proto.setTimeout = function setTimeout(fn, timeout) {\n var _this2 = this;\n\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.setTimeout(function () {\n if (_this2.setTimeoutIds_.has(timeoutId)) {\n _this2.setTimeoutIds_[\"delete\"](timeoutId);\n }\n\n fn();\n }, timeout);\n this.setTimeoutIds_.add(timeoutId);\n return timeoutId;\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 ;\n\n _proto.clearTimeout = function clearTimeout(timeoutId) {\n if (this.setTimeoutIds_.has(timeoutId)) {\n this.setTimeoutIds_[\"delete\"](timeoutId);\n window.clearTimeout(timeoutId);\n }\n\n return timeoutId;\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 ;\n\n _proto.setInterval = function setInterval(fn, interval) {\n fn = bind(this, fn);\n this.clearTimersOnDispose_();\n var intervalId = window.setInterval(fn, interval);\n this.setIntervalIds_.add(intervalId);\n return intervalId;\n }\n /**\n * Clears an interval that gets created via `window.setInterval` or\n * {@link Component#setInterval}. If you set an inteval 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 ;\n\n _proto.clearInterval = function clearInterval(intervalId) {\n if (this.setIntervalIds_.has(intervalId)) {\n this.setIntervalIds_[\"delete\"](intervalId);\n window.clearInterval(intervalId);\n }\n\n return intervalId;\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 ;\n\n _proto.requestAnimationFrame = function requestAnimationFrame(fn) {\n var _this3 = this;\n\n // Fall back to using a timer.\n if (!this.supportsRaf_) {\n return this.setTimeout(fn, 1000 / 60);\n }\n\n this.clearTimersOnDispose_(); // declare as variables so they are properly available in rAF function\n // eslint-disable-next-line\n\n var id;\n fn = bind(this, fn);\n id = window.requestAnimationFrame(function () {\n if (_this3.rafIds_.has(id)) {\n _this3.rafIds_[\"delete\"](id);\n }\n\n fn();\n });\n this.rafIds_.add(id);\n return id;\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 ;\n\n _proto.requestNamedAnimationFrame = function requestNamedAnimationFrame(name, fn) {\n var _this4 = this;\n\n if (this.namedRafs_.has(name)) {\n return;\n }\n\n this.clearTimersOnDispose_();\n fn = bind(this, fn);\n var id = this.requestAnimationFrame(function () {\n fn();\n\n if (_this4.namedRafs_.has(name)) {\n _this4.namedRafs_[\"delete\"](name);\n }\n });\n this.namedRafs_.set(name, id);\n return name;\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 ;\n\n _proto.cancelNamedAnimationFrame = function cancelNamedAnimationFrame(name) {\n if (!this.namedRafs_.has(name)) {\n return;\n }\n\n this.cancelAnimationFrame(this.namedRafs_.get(name));\n this.namedRafs_[\"delete\"](name);\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 ;\n\n _proto.cancelAnimationFrame = function cancelAnimationFrame(id) {\n // Fall back to using a timer.\n if (!this.supportsRaf_) {\n return this.clearTimeout(id);\n }\n\n if (this.rafIds_.has(id)) {\n this.rafIds_[\"delete\"](id);\n window.cancelAnimationFrame(id);\n }\n\n return id;\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 ;\n\n _proto.clearTimersOnDispose_ = function clearTimersOnDispose_() {\n var _this5 = this;\n\n if (this.clearingTimersOnDispose_) {\n return;\n }\n\n this.clearingTimersOnDispose_ = true;\n this.one('dispose', function () {\n [['namedRafs_', 'cancelNamedAnimationFrame'], ['rafIds_', 'cancelAnimationFrame'], ['setTimeoutIds_', 'clearTimeout'], ['setIntervalIds_', 'clearInterval']].forEach(function (_ref) {\n var idName = _ref[0],\n cancelName = _ref[1];\n\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 _this5[idName].forEach(function (val, key) {\n return _this5[cancelName](key);\n });\n });\n _this5.clearingTimersOnDispose_ = 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 ;\n\n Component.registerComponent = function 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\n var Tech = Component.getComponent('Tech'); // We need to make sure this check is only done if Tech has been registered.\n\n var isTech = Tech && Tech.isTech(ComponentToRegister);\n var isComp = Component === ComponentToRegister || Component.prototype.isPrototypeOf(ComponentToRegister.prototype);\n\n if (isTech || !isComp) {\n var reason;\n\n if (isTech) {\n reason = 'techs must be registered using Tech.registerTech()';\n } else {\n reason = 'must be a Component subclass';\n }\n\n throw new Error(\"Illegal component, \\\"\" + name + \"\\\"; \" + reason + \".\");\n }\n\n name = toTitleCase$1(name);\n\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n var Player = Component.getComponent('Player');\n\n if (name === 'Player' && Player && Player.players) {\n var players = Player.players;\n var playerNames = Object.keys(players); // 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\n if (players && playerNames.length > 0 && playerNames.map(function (pname) {\n return players[pname];\n }).every(Boolean)) {\n throw new Error('Can not register Player component after player has been created.');\n }\n }\n\n Component.components_[name] = ComponentToRegister;\n Component.components_[toLowerCase(name)] = ComponentToRegister;\n return ComponentToRegister;\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 {Component}\n * The `Component` that got registered under the given name.\n *\n * @deprecated In `videojs` 6 this will not return `Component`s that were not\n * registered using {@link Component.registerComponent}. Currently we\n * check the global `videojs` object for a `Component` name and\n * return that if it exists.\n */\n ;\n\n Component.getComponent = function getComponent(name) {\n if (!name || !Component.components_) {\n return;\n }\n\n return Component.components_[name];\n };\n\n return Component;\n}();\n/**\n * Whether or not this component supports `requestAnimationFrame`.\n *\n * This is exposed primarily for testing purposes.\n *\n * @private\n * @type {Boolean}\n */\n\n\nComponent$1.prototype.supportsRaf_ = typeof window.requestAnimationFrame === 'function' && typeof window.cancelAnimationFrame === 'function';\nComponent$1.registerComponent('Component', Component$1);\n\n/**\n * @file time-ranges.js\n * @module time-ranges\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.\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-ranges~TimeRangeIndex} start\n * Returns the time offset at which a specified time range begins.\n *\n * @property {module:time-ranges~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 */\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 * 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 */\n\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex) {\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\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\n\nfunction createTimeRangesObj(ranges) {\n var timeRangesObj;\n\n if (ranges === undefined || ranges.length === 0) {\n timeRangesObj = {\n length: 0,\n start: function start() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function 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\n if (window.Symbol && window.Symbol.iterator) {\n timeRangesObj[window.Symbol.iterator] = function () {\n return (ranges || []).values();\n };\n }\n\n return timeRangesObj;\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\n\nfunction createTimeRanges(start, end) {\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n\n return createTimeRangesObj([[start, end]]);\n}\n\n/**\n * @file buffer.js\n * @module buffer\n */\n/**\n * Compute the percentage of the media that has been buffered.\n *\n * @param {TimeRange} buffered\n * The current `TimeRange` 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 */\n\nfunction bufferedPercent(buffered, duration) {\n var bufferedDuration = 0;\n var start;\n var end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRanges(0, 0);\n }\n\n for (var i = 0; i < buffered.length; i++) {\n start = buffered.start(i);\n end = buffered.end(i); // buffered end can be bigger than duration by a very small fraction\n\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n\n/**\n * @file media-error.js\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 */\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\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\n assign(this, value);\n }\n\n if (!this.message) {\n this.message = MediaError.defaultMessages[this.code] || '';\n }\n}\n/**\n * The error code that refers two one of the defined `MediaError` types\n *\n * @type {Number}\n */\n\n\nMediaError.prototype.code = 0;\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 */\n\nMediaError.prototype.message = '';\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 */\n\nMediaError.prototype.status = null;\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 */\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 * The default `MediaError` messages based on the {@link MediaError.errorTypes}.\n *\n * @type {Array}\n * @constant\n */\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}; // Add types as properties on MediaError\n// e.g. MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;\n\nfor (var errNum = 0; errNum < MediaError.errorTypes.length; errNum++) {\n MediaError[MediaError.errorTypes[errNum]] = errNum; // values should be accessible on both the class and instance\n\n MediaError.prototype[MediaError.errorTypes[errNum]] = errNum;\n} // jsdocs for instance/static members added above\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 * 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 */\n\nfunction silencePromise(value) {\n if (isPromise(value)) {\n value.then(null, function (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/**\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 */\nvar trackToJson_ = function trackToJson_(track) {\n var ret = ['kind', 'label', 'language', 'id', 'inBandMetadataTrackDispatchType', 'mode', 'src'].reduce(function (acc, prop, i) {\n if (track[prop]) {\n acc[prop] = track[prop];\n }\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 * 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 */\n\n\nvar textTracksToJson = function textTracksToJson(tech) {\n var trackEls = tech.$$('track');\n var trackObjs = Array.prototype.map.call(trackEls, function (t) {\n return t.track;\n });\n var tracks = Array.prototype.map.call(trackEls, function (trackEl) {\n var json = trackToJson_(trackEl.track);\n\n if (trackEl.src) {\n json.src = trackEl.src;\n }\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 * 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 */\n\n\nvar jsonToTextTracks = function jsonToTextTracks(json, tech) {\n json.forEach(function (track) {\n var addedTrack = tech.addRemoteTextTrack(track).track;\n\n if (!track.src && track.cues) {\n track.cues.forEach(function (cue) {\n return addedTrack.addCue(cue);\n });\n }\n });\n return tech.textTracks();\n};\n\nvar textTrackConverter = {\n textTracksToJson: textTracksToJson,\n jsonToTextTracks: jsonToTextTracks,\n trackToJson_: trackToJson_\n};\n\nvar MODAL_CLASS_NAME = 'vjs-modal-dialog';\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 */\n\nvar ModalDialog = /*#__PURE__*/function (_Component) {\n _inheritsLoose(ModalDialog, _Component);\n\n /**\n * Create 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 {Mixed} [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 function ModalDialog(player, options) {\n var _this;\n\n _this = _Component.call(this, player, options) || this;\n\n _this.handleKeyDown_ = function (e) {\n return _this.handleKeyDown(e);\n };\n\n _this.close_ = function (e) {\n return _this.close(e);\n };\n\n _this.opened_ = _this.hasBeenOpened_ = _this.hasBeenFilled_ = false;\n\n _this.closeable(!_this.options_.uncloseable);\n\n _this.content(_this.options_.content); // 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\n\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\n _this.el_.appendChild(_this.descEl_);\n\n _this.el_.appendChild(_this.contentEl_);\n\n return _this;\n }\n /**\n * Create the `ModalDialog`'s DOM element\n *\n * @return {Element}\n * The DOM element that gets created.\n */\n\n\n var _proto = ModalDialog.prototype;\n\n _proto.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, '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 });\n };\n\n _proto.dispose = function dispose() {\n this.contentEl_ = null;\n this.descEl_ = null;\n this.previouslyActiveEl_ = null;\n\n _Component.prototype.dispose.call(this);\n }\n /**\n * Builds the default DOM `className`.\n *\n * @return {string}\n * The DOM `className` for this object.\n */\n ;\n\n _proto.buildCSSClass = function buildCSSClass() {\n return MODAL_CLASS_NAME + \" vjs-hidden \" + _Component.prototype.buildCSSClass.call(this);\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 ;\n\n _proto.label = function label() {\n return this.localize(this.options_.label || 'Modal Window');\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 ;\n\n _proto.description = function description() {\n var desc = this.options_.description || this.localize('This is a modal window.'); // Append a universal closeability message if the modal is closeable.\n\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\n return desc;\n }\n /**\n * Opens the modal.\n *\n * @fires ModalDialog#beforemodalopen\n * @fires ModalDialog#modalopen\n */\n ;\n\n _proto.open = function open() {\n if (!this.opened_) {\n var player = this.player();\n /**\n * Fired just before a `ModalDialog` is opened.\n *\n * @event ModalDialog#beforemodalopen\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalopen');\n this.opened_ = true; // Fill content if the modal has never opened before and\n // never been filled.\n\n if (this.options_.fillAlways || !this.hasBeenOpened_ && !this.hasBeenFilled_) {\n this.fill();\n } // If the player was playing, pause it and take note of its previously\n // playing state.\n\n\n this.wasPlaying_ = !player.paused();\n\n if (this.options_.pauseOnOpen && this.wasPlaying_) {\n player.pause();\n }\n\n this.on('keydown', this.handleKeyDown_); // Hide controls and note if they were enabled.\n\n this.hadControls_ = player.controls();\n player.controls(false);\n this.show();\n this.conditionalFocus_();\n this.el().setAttribute('aria-hidden', 'false');\n /**\n * Fired just after a `ModalDialog` is opened.\n *\n * @event ModalDialog#modalopen\n * @type {EventTarget~Event}\n */\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 ;\n\n _proto.opened = function opened(value) {\n if (typeof value === 'boolean') {\n this[value ? 'open' : 'close']();\n }\n\n return this.opened_;\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 ;\n\n _proto.close = function close() {\n if (!this.opened_) {\n return;\n }\n\n var player = this.player();\n /**\n * Fired just before a `ModalDialog` is closed.\n *\n * @event ModalDialog#beforemodalclose\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalclose');\n this.opened_ = false;\n\n if (this.wasPlaying_ && this.options_.pauseOnOpen) {\n player.play();\n }\n\n this.off('keydown', this.handleKeyDown_);\n\n if (this.hadControls_) {\n player.controls(true);\n }\n\n this.hide();\n this.el().setAttribute('aria-hidden', 'true');\n /**\n * Fired just after a `ModalDialog` is closed.\n *\n * @event ModalDialog#modalclose\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalclose');\n this.conditionalBlur_();\n\n if (this.options_.temporary) {\n this.dispose();\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 ;\n\n _proto.closeable = function closeable(value) {\n if (typeof value === 'boolean') {\n var closeable = this.closeable_ = !!value;\n var close = this.getChild('closeButton'); // If this is being made closeable and has no close button, add one.\n\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 var 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 } // If this is being made uncloseable and has a close button, remove it.\n\n\n if (!closeable && close) {\n this.off(close, 'close', this.close_);\n this.removeChild(close);\n close.dispose();\n }\n }\n\n return this.closeable_;\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 ;\n\n _proto.fill = function fill() {\n this.fillWith(this.content());\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 {Mixed} [content]\n * The same rules apply to this as apply to the `content` option.\n */\n ;\n\n _proto.fillWith = function fillWith(content) {\n var contentEl = this.contentEl();\n var parentEl = contentEl.parentNode;\n var nextSiblingEl = contentEl.nextSibling;\n /**\n * Fired just before a `ModalDialog` is filled with content.\n *\n * @event ModalDialog#beforemodalfill\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalfill');\n this.hasBeenFilled_ = true; // Detach the content element from the DOM before performing\n // manipulation to avoid modifying the live DOM multiple times.\n\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 {EventTarget~Event}\n */\n\n this.trigger('modalfill'); // Re-inject the re-filled content element.\n\n if (nextSiblingEl) {\n parentEl.insertBefore(contentEl, nextSiblingEl);\n } else {\n parentEl.appendChild(contentEl);\n } // make sure that the close button is last in the dialog DOM\n\n\n var closeButton = this.getChild('closeButton');\n\n if (closeButton) {\n parentEl.appendChild(closeButton.el_);\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 ;\n\n _proto.empty = function empty() {\n /**\n * Fired just before a `ModalDialog` is emptied.\n *\n * @event ModalDialog#beforemodalempty\n * @type {EventTarget~Event}\n */\n this.trigger('beforemodalempty');\n emptyEl(this.contentEl());\n /**\n * Fired just after a `ModalDialog` is emptied.\n *\n * @event ModalDialog#modalempty\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalempty');\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 {Mixed} [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 {Mixed}\n * The current content of the modal dialog\n */\n ;\n\n _proto.content = function content(value) {\n if (typeof value !== 'undefined') {\n this.content_ = value;\n }\n\n return this.content_;\n }\n /**\n * conditionally focus the modal dialog if focus was previously on the player.\n *\n * @private\n */\n ;\n\n _proto.conditionalFocus_ = function conditionalFocus_() {\n var activeEl = document.activeElement;\n var playerEl = this.player_.el_;\n this.previouslyActiveEl_ = null;\n\n if (playerEl.contains(activeEl) || playerEl === activeEl) {\n this.previouslyActiveEl_ = activeEl;\n this.focus();\n }\n }\n /**\n * conditionally blur the element and refocus the last focused element\n *\n * @private\n */\n ;\n\n _proto.conditionalBlur_ = function conditionalBlur_() {\n if (this.previouslyActiveEl_) {\n this.previouslyActiveEl_.focus();\n this.previouslyActiveEl_ = null;\n }\n }\n /**\n * Keydown handler. Attached when modal is focused.\n *\n * @listens keydown\n */\n ;\n\n _proto.handleKeyDown = function handleKeyDown(event) {\n // Do not allow keydowns to reach out of the modal dialog.\n event.stopPropagation();\n\n if (keycode.isEventKey(event, 'Escape') && this.closeable()) {\n event.preventDefault();\n this.close();\n return;\n } // exit early if it isn't a tab key\n\n\n if (!keycode.isEventKey(event, 'Tab')) {\n return;\n }\n\n var focusableEls = this.focusableEls_();\n var activeEl = this.el_.querySelector(':focus');\n var focusIndex;\n\n for (var i = 0; i < focusableEls.length; i++) {\n if (activeEl === focusableEls[i]) {\n focusIndex = i;\n break;\n }\n }\n\n if (document.activeElement === this.el_) {\n focusIndex = 0;\n }\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 * get all focusable elements\n *\n * @private\n */\n ;\n\n _proto.focusableEls_ = function focusableEls_() {\n var allChildren = this.el_.querySelectorAll('*');\n return Array.prototype.filter.call(allChildren, function (child) {\n return (child instanceof window.HTMLAnchorElement || child instanceof window.HTMLAreaElement) && child.hasAttribute('href') || (child instanceof window.HTMLInputElement || child instanceof window.HTMLSelectElement || child instanceof window.HTMLTextAreaElement || child instanceof window.HTMLButtonElement) && !child.hasAttribute('disabled') || child instanceof window.HTMLIFrameElement || child instanceof window.HTMLObjectElement || child instanceof window.HTMLEmbedElement || child.hasAttribute('tabindex') && child.getAttribute('tabindex') !== -1 || child.hasAttribute('contenteditable');\n });\n };\n\n return ModalDialog;\n}(Component$1);\n/**\n * Default options for `ModalDialog` default options.\n *\n * @type {Object}\n * @private\n */\n\n\nModalDialog.prototype.options_ = {\n pauseOnOpen: true,\n temporary: true\n};\nComponent$1.registerComponent('ModalDialog', ModalDialog);\n\n/**\n * Common functionaliy between {@link TextTrackList}, {@link AudioTrackList}, and\n * {@link VideoTrackList}\n *\n * @extends EventTarget\n */\n\nvar TrackList = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(TrackList, _EventTarget);\n\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 function TrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n _this = _EventTarget.call(this) || this;\n _this.tracks_ = [];\n /**\n * @memberof TrackList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'length', {\n get: function get() {\n return this.tracks_.length;\n }\n });\n\n for (var i = 0; i < tracks.length; i++) {\n _this.addTrack(tracks[i]);\n }\n\n return _this;\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\n\n var _proto = TrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n var index = this.tracks_.length;\n\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get: function get() {\n return this.tracks_[index];\n }\n });\n } // Do not add duplicate tracks\n\n\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 {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n\n this.trigger({\n track: track,\n type: 'addtrack',\n target: this\n });\n }\n /**\n * Triggered when a track label is changed.\n *\n * @event TrackList#addtrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n\n\n track.labelchange_ = function () {\n _this2.trigger({\n track: track,\n type: 'labelchange',\n target: _this2\n });\n };\n\n if (isEvented(track)) {\n track.addEventListener('labelchange', track.labelchange_);\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 ;\n\n _proto.removeTrack = function removeTrack(rtrack) {\n var track;\n\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === rtrack) {\n track = this[i];\n\n if (track.off) {\n track.off();\n }\n\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n if (!track) {\n return;\n }\n /**\n * Triggered when a track is removed from track list.\n *\n * @event TrackList#removetrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was removed.\n */\n\n\n this.trigger({\n track: track,\n type: 'removetrack',\n target: this\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 ;\n\n _proto.getTrackById = function getTrackById(id) {\n var result = null;\n\n for (var i = 0, l = this.length; i < l; i++) {\n var track = this[i];\n\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n };\n\n return TrackList;\n}(EventTarget$2);\n/**\n * Triggered when a different track is selected/enabled.\n *\n * @event TrackList#change\n * @type {EventTarget~Event}\n */\n\n/**\n * Events that can be called with on + eventName. See {@link EventHandler}.\n *\n * @property {Object} TrackList#allowedEvents_\n * @private\n */\n\n\nTrackList.prototype.allowedEvents_ = {\n change: 'change',\n addtrack: 'addtrack',\n removetrack: 'removetrack',\n labelchange: 'labelchange'\n}; // emulate attribute EventHandler support to allow for feature detection\n\nfor (var event in TrackList.prototype.allowedEvents_) {\n TrackList.prototype['on' + event] = null;\n}\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 */\n\nvar disableOthers$1 = function disableOthers(list, track) {\n for (var i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n } // another audio track is enabled, disable it\n\n\n list[i].enabled = false;\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 */\n\n\nvar AudioTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(AudioTrackList, _TrackList);\n\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 function AudioTrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n // make sure only 1 track is enabled\n // sorted from last index to first index\n for (var i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].enabled) {\n disableOthers$1(tracks, tracks[i]);\n break;\n }\n }\n\n _this = _TrackList.call(this, tracks) || this;\n _this.changing_ = false;\n return _this;\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\n\n var _proto = AudioTrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n if (track.enabled) {\n disableOthers$1(this, track);\n }\n\n _TrackList.prototype.addTrack.call(this, track); // native tracks don't have this\n\n\n if (!track.addEventListener) {\n return;\n }\n\n track.enabledChange_ = function () {\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 (_this2.changing_) {\n return;\n }\n\n _this2.changing_ = true;\n disableOthers$1(_this2, track);\n _this2.changing_ = false;\n\n _this2.trigger('change');\n };\n /**\n * @listens AudioTrack#enabledchange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('enabledchange', track.enabledChange_);\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack);\n\n if (rtrack.removeEventListener && rtrack.enabledChange_) {\n rtrack.removeEventListener('enabledchange', rtrack.enabledChange_);\n rtrack.enabledChange_ = null;\n }\n };\n\n return AudioTrackList;\n}(TrackList);\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 */\n\nvar disableOthers = function disableOthers(list, track) {\n for (var i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n } // another video track is enabled, disable it\n\n\n list[i].selected = false;\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 */\n\n\nvar VideoTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(VideoTrackList, _TrackList);\n\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 function VideoTrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n // make sure only 1 track is enabled\n // sorted from last index to first index\n for (var i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].selected) {\n disableOthers(tracks, tracks[i]);\n break;\n }\n }\n\n _this = _TrackList.call(this, tracks) || this;\n _this.changing_ = false;\n /**\n * @member {number} VideoTrackList#selectedIndex\n * The current index of the selected {@link VideoTrack`}.\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'selectedIndex', {\n get: function get() {\n for (var _i = 0; _i < this.length; _i++) {\n if (this[_i].selected) {\n return _i;\n }\n }\n\n return -1;\n },\n set: function set() {}\n });\n return _this;\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\n\n var _proto = VideoTrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n if (track.selected) {\n disableOthers(this, track);\n }\n\n _TrackList.prototype.addTrack.call(this, track); // native tracks don't have this\n\n\n if (!track.addEventListener) {\n return;\n }\n\n track.selectedChange_ = function () {\n if (_this2.changing_) {\n return;\n }\n\n _this2.changing_ = true;\n disableOthers(_this2, track);\n _this2.changing_ = false;\n\n _this2.trigger('change');\n };\n /**\n * @listens VideoTrack#selectedchange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('selectedchange', track.selectedChange_);\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack);\n\n if (rtrack.removeEventListener && rtrack.selectedChange_) {\n rtrack.removeEventListener('selectedchange', rtrack.selectedChange_);\n rtrack.selectedChange_ = null;\n }\n };\n\n return VideoTrackList;\n}(TrackList);\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 */\n\nvar TextTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(TextTrackList, _TrackList);\n\n function TextTrackList() {\n return _TrackList.apply(this, arguments) || this;\n }\n\n var _proto = TextTrackList.prototype;\n\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 _proto.addTrack = function addTrack(track) {\n var _this = this;\n\n _TrackList.prototype.addTrack.call(this, track);\n\n if (!this.queueChange_) {\n this.queueChange_ = function () {\n return _this.queueTrigger('change');\n };\n }\n\n if (!this.triggerSelectedlanguagechange) {\n this.triggerSelectedlanguagechange_ = function () {\n return _this.trigger('selectedlanguagechange');\n };\n }\n /**\n * @listens TextTrack#modechange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('modechange', this.queueChange_);\n var nonLanguageTextTrackKind = ['metadata', 'chapters'];\n\n if (nonLanguageTextTrackKind.indexOf(track.kind) === -1) {\n track.addEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack); // manually remove the event handlers we added\n\n\n if (rtrack.removeEventListener) {\n if (this.queueChange_) {\n rtrack.removeEventListener('modechange', this.queueChange_);\n }\n\n if (this.selectedlanguagechange_) {\n rtrack.removeEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n }\n };\n\n return TextTrackList;\n}(TrackList);\n\n/**\n * @file html-track-element-list.js\n */\n\n/**\n * The current list of {@link HtmlTrackElement}s.\n */\nvar HtmlTrackElementList = /*#__PURE__*/function () {\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 function HtmlTrackElementList(trackElements) {\n if (trackElements === void 0) {\n trackElements = [];\n }\n\n this.trackElements_ = [];\n /**\n * @memberof HtmlTrackElementList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n\n Object.defineProperty(this, 'length', {\n get: function get() {\n return this.trackElements_.length;\n }\n });\n\n for (var i = 0, length = trackElements.length; i < length; i++) {\n this.addTrackElement_(trackElements[i]);\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\n\n var _proto = HtmlTrackElementList.prototype;\n\n _proto.addTrackElement_ = function addTrackElement_(trackElement) {\n var index = this.trackElements_.length;\n\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get: function get() {\n return this.trackElements_[index];\n }\n });\n } // Do not add duplicate elements\n\n\n if (this.trackElements_.indexOf(trackElement) === -1) {\n this.trackElements_.push(trackElement);\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 ;\n\n _proto.getTrackElementByTrack_ = function getTrackElementByTrack_(track) {\n var trackElement_;\n\n for (var 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\n return trackElement_;\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 ;\n\n _proto.removeTrackElement_ = function removeTrackElement_(trackElement) {\n for (var 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\n if (typeof this.trackElements_[i].off === 'function') {\n this.trackElements_[i].off();\n }\n\n this.trackElements_.splice(i, 1);\n break;\n }\n }\n };\n\n return HtmlTrackElementList;\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 */\nvar TextTrackCueList = /*#__PURE__*/function () {\n /**\n * Create an instance of this class..\n *\n * @param {Array} cues\n * A list of cues to be initialized with\n */\n function TextTrackCueList(cues) {\n TextTrackCueList.prototype.setCues_.call(this, cues);\n /**\n * @memberof TextTrackCueList\n * @member {number} length\n * The current number of `TextTrackCue`s in the TextTrackCueList.\n * @instance\n */\n\n Object.defineProperty(this, 'length', {\n get: function get() {\n return this.length_;\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\n\n var _proto = TextTrackCueList.prototype;\n\n _proto.setCues_ = function setCues_(cues) {\n var oldLength = this.length || 0;\n var i = 0;\n var l = cues.length;\n this.cues_ = cues;\n this.length_ = cues.length;\n\n var defineProp = function defineProp(index) {\n if (!('' + index in this)) {\n Object.defineProperty(this, '' + index, {\n get: function get() {\n return this.cues_[index];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for (; i < l; i++) {\n defineProp.call(this, i);\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 ;\n\n _proto.getCueById = function getCueById(id) {\n var result = null;\n\n for (var i = 0, l = this.length; i < l; i++) {\n var cue = this[i];\n\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n };\n\n return TextTrackCueList;\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 */\nvar VideoTrackKind = {\n alternative: 'alternative',\n captions: 'captions',\n main: 'main',\n sign: 'sign',\n subtitles: 'subtitles',\n commentary: 'commentary'\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 */\n\nvar AudioTrackKind = {\n 'alternative': 'alternative',\n 'descriptions': 'descriptions',\n 'main': 'main',\n 'main-desc': 'main-desc',\n 'translation': 'translation',\n 'commentary': 'commentary'\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 */\n\nvar TextTrackKind = {\n subtitles: 'subtitles',\n captions: 'captions',\n descriptions: 'descriptions',\n chapters: 'chapters',\n metadata: 'metadata'\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 */\n\nvar TextTrackMode = {\n disabled: 'disabled',\n hidden: 'hidden',\n showing: 'showing'\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 */\n\nvar Track = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(Track, _EventTarget);\n\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 function Track(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _EventTarget.call(this) || this;\n var trackProps = {\n id: options.id || 'vjs_track_' + newGUID(),\n kind: options.kind || '',\n language: options.language || ''\n };\n var label = options.label || '';\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 var _loop = function _loop(key) {\n Object.defineProperty(_assertThisInitialized(_this), key, {\n get: function get() {\n return trackProps[key];\n },\n set: function set() {}\n });\n };\n\n for (var key in trackProps) {\n _loop(key);\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\n\n Object.defineProperty(_assertThisInitialized(_this), 'label', {\n get: function get() {\n return label;\n },\n set: function set(newLabel) {\n if (newLabel !== label) {\n label = newLabel;\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 {EventTarget~Event}\n */\n\n this.trigger('labelchange');\n }\n }\n });\n return _this;\n }\n\n return Track;\n}(EventTarget$2);\n\n/**\n * @file url.js\n * @module url\n */\n/**\n * @typedef {Object} url:URLObject\n *\n * @property {string} protocol\n * The protocol of the url that was parsed.\n *\n * @property {string} hostname\n * The hostname of the url that was parsed.\n *\n * @property {string} port\n * The port of the url that was parsed.\n *\n * @property {string} pathname\n * The pathname of the url that was parsed.\n *\n * @property {string} search\n * The search query of the url that was parsed.\n *\n * @property {string} hash\n * The hash of the url that was parsed.\n *\n * @property {string} host\n * The host of the url that was parsed.\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:URLObject}\n * An object of url details\n */\n\nvar parseUrl = function parseUrl(url) {\n // This entire method can be replace with URL once we are able to drop IE11\n var props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host']; // add the url to an anchor and let the browser parse the URL\n\n var a = document.createElement('a');\n a.href = url; // Copy the specific URL properties to a new object\n // This is also needed for IE because the anchor loses its\n // properties when it's removed from the dom\n\n var details = {};\n\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n } // IE adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n\n\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (!details.protocol) {\n details.protocol = window.location.protocol;\n }\n /* istanbul ignore if */\n\n\n if (!details.host) {\n details.host = window.location.host;\n }\n\n return details;\n};\n/**\n * Get absolute version of relative URL. Used to tell Flash the correct URL.\n *\n * @function\n * @param {string} url\n * URL to make absolute\n *\n * @return {string}\n * Absolute URL\n *\n * @see http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n */\n\nvar getAbsoluteURL = function getAbsoluteURL(url) {\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n // add the url to an anchor and let the browser parse the URL\n var a = document.createElement('a');\n a.href = url;\n url = a.href;\n }\n\n return url;\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 */\n\nvar getFileExtension = function getFileExtension(path) {\n if (typeof path === 'string') {\n var splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/;\n var pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\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 {Object} [winLoc]\n * the domain to check the url against, defaults to window.location\n *\n * @param {string} [winLoc.protocol]\n * The window location protocol defaults to window.location.protocol\n *\n * @param {string} [winLoc.host]\n * The window location host defaults to window.location.host\n *\n * @return {boolean}\n * Whether it is a cross domain request or not.\n */\n\nvar isCrossOrigin = function isCrossOrigin(url, winLoc) {\n if (winLoc === void 0) {\n winLoc = window.location;\n }\n\n var urlInfo = parseUrl(url); // IE8 protocol relative urls will return ':' for protocol\n\n var srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol; // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n\n var crossOrigin = srcProtocol + urlInfo.host !== winLoc.protocol + winLoc.host;\n return crossOrigin;\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 * 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 */\n\nvar parseCues = function parseCues(srcContent, track) {\n var parser = new window.WebVTT.Parser(window, window.vttjs, window.WebVTT.StringDecoder());\n var errors = [];\n\n parser.oncue = function (cue) {\n track.addCue(cue);\n };\n\n parser.onparsingerror = function (error) {\n errors.push(error);\n };\n\n parser.onflush = function () {\n track.trigger({\n type: 'loadeddata',\n target: track\n });\n };\n\n parser.parse(srcContent);\n\n if (errors.length > 0) {\n if (window.console && window.console.groupCollapsed) {\n window.console.groupCollapsed(\"Text Track parsing errors for \" + track.src);\n }\n\n errors.forEach(function (error) {\n return log$1.error(error);\n });\n\n if (window.console && window.console.groupEnd) {\n window.console.groupEnd();\n }\n }\n\n parser.flush();\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 */\n\n\nvar loadTrack = function loadTrack(src, track) {\n var opts = {\n uri: src\n };\n var crossOrigin = isCrossOrigin(src);\n\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n var withCredentials = track.tech_.crossOrigin() === 'use-credentials';\n\n if (withCredentials) {\n opts.withCredentials = withCredentials;\n }\n\n XHR(opts, bind(this, function (err, response, responseBody) {\n if (err) {\n return log$1.error(err, response);\n }\n\n track.loaded_ = true; // 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\n if (typeof window.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'], function (event) {\n if (event.type === 'vttjserror') {\n log$1.error(\"vttjs failed to load, stopping trying to process \" + track.src);\n return;\n }\n\n return parseCues(responseBody, track);\n });\n }\n } else {\n parseCues(responseBody, track);\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 */\n\n\nvar TextTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(TextTrack, _Track);\n\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 function TextTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n var settings = mergeOptions$3(options, {\n kind: TextTrackKind[options.kind] || 'subtitles',\n language: options.language || options.srclang || ''\n });\n var mode = TextTrackMode[settings.mode] || 'disabled';\n var default_ = settings[\"default\"];\n\n if (settings.kind === 'metadata' || settings.kind === 'chapters') {\n mode = 'hidden';\n }\n\n _this = _Track.call(this, settings) || this;\n _this.tech_ = settings.tech;\n _this.cues_ = [];\n _this.activeCues_ = [];\n _this.preload_ = _this.tech_.preloadTextTracks !== false;\n var cues = new TextTrackCueList(_this.cues_);\n var activeCues = new TextTrackCueList(_this.activeCues_);\n var changed = false;\n var timeupdateHandler = bind(_assertThisInitialized(_this), function () {\n if (!this.tech_.isReady_ || this.tech_.isDisposed()) {\n return;\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\n\n this.activeCues = this.activeCues;\n\n if (changed) {\n this.trigger('cuechange');\n changed = false;\n }\n });\n\n var disposeHandler = function disposeHandler() {\n _this.tech_.off('timeupdate', timeupdateHandler);\n };\n\n _this.tech_.one('dispose', disposeHandler);\n\n if (mode !== 'disabled') {\n _this.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperties(_assertThisInitialized(_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: function get() {\n return default_;\n },\n set: function set() {}\n },\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: function get() {\n return mode;\n },\n set: function set(newMode) {\n if (!TextTrackMode[newMode]) {\n return;\n }\n\n if (mode === newMode) {\n return;\n }\n\n mode = newMode;\n\n if (!this.preload_ && mode !== 'disabled' && this.cues.length === 0) {\n // On-demand load.\n loadTrack(this.src, this);\n }\n\n this.tech_.off('timeupdate', timeupdateHandler);\n\n if (mode !== 'disabled') {\n this.tech_.on('timeupdate', timeupdateHandler);\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 {EventTarget~Event}\n */\n\n\n this.trigger('modechange');\n }\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: function get() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: function set() {}\n },\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: function get() {\n if (!this.loaded_) {\n return null;\n } // nothing to do\n\n\n if (this.cues.length === 0) {\n return activeCues;\n }\n\n var ct = this.tech_.currentTime();\n var active = [];\n\n for (var i = 0, l = this.cues.length; i < l; i++) {\n var cue = this.cues[i];\n\n if (cue.startTime <= ct && cue.endTime >= ct) {\n active.push(cue);\n } else if (cue.startTime === cue.endTime && cue.startTime <= ct && cue.startTime + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (var _i = 0; _i < active.length; _i++) {\n if (this.activeCues_.indexOf(active[_i]) === -1) {\n changed = true;\n }\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: function set() {}\n }\n });\n\n if (settings.src) {\n _this.src = settings.src;\n\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\n if (_this.preload_ || settings.kind !== 'subtitles' && settings.kind !== 'captions') {\n loadTrack(_this.src, _assertThisInitialized(_this));\n }\n } else {\n _this.loaded_ = true;\n }\n\n return _this;\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\n\n var _proto = TextTrack.prototype;\n\n _proto.addCue = function addCue(originalCue) {\n var cue = originalCue;\n\n if (window.vttjs && !(originalCue instanceof window.vttjs.VTTCue)) {\n cue = new window.vttjs.VTTCue(originalCue.startTime, originalCue.endTime, originalCue.text);\n\n for (var prop in originalCue) {\n if (!(prop in cue)) {\n cue[prop] = originalCue[prop];\n }\n } // make sure that `id` is copied over\n\n\n cue.id = originalCue.id;\n cue.originalCue_ = originalCue;\n }\n\n var tracks = this.tech_.textTracks();\n\n for (var i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n\n this.cues_.push(cue);\n this.cues.setCues_(this.cues_);\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 ;\n\n _proto.removeCue = function removeCue(_removeCue) {\n var i = this.cues_.length;\n\n while (i--) {\n var cue = this.cues_[i];\n\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 return TextTrack;\n}(Track);\n/**\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\n\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 */\n\nvar AudioTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(AudioTrack, _Track);\n\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 function AudioTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n var settings = mergeOptions$3(options, {\n kind: AudioTrackKind[options.kind] || ''\n });\n _this = _Track.call(this, settings) || this;\n var enabled = false;\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\n Object.defineProperty(_assertThisInitialized(_this), 'enabled', {\n get: function get() {\n return enabled;\n },\n set: function set(newEnabled) {\n // an invalid or unchanged value\n if (typeof newEnabled !== 'boolean' || newEnabled === enabled) {\n return;\n }\n\n enabled = newEnabled;\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 {EventTarget~Event}\n */\n\n this.trigger('enabledchange');\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\n if (settings.enabled) {\n _this.enabled = settings.enabled;\n }\n\n _this.loaded_ = true;\n return _this;\n }\n\n return AudioTrack;\n}(Track);\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 */\n\nvar VideoTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(VideoTrack, _Track);\n\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 function VideoTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n var settings = mergeOptions$3(options, {\n kind: VideoTrackKind[options.kind] || ''\n });\n _this = _Track.call(this, settings) || this;\n var selected = false;\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\n Object.defineProperty(_assertThisInitialized(_this), 'selected', {\n get: function get() {\n return selected;\n },\n set: function set(newSelected) {\n // an invalid or unchanged value\n if (typeof newSelected !== 'boolean' || newSelected === selected) {\n return;\n }\n\n selected = newSelected;\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 {EventTarget~Event}\n */\n\n this.trigger('selectedchange');\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\n if (settings.selected) {\n _this.selected = settings.selected;\n }\n\n return _this;\n }\n\n return VideoTrack;\n}(Track);\n\n/**\n * @memberof HTMLTrackElement\n * @typedef {HTMLTrackElement~ReadyState}\n * @enum {number}\n */\n\nvar NONE = 0;\nvar LOADING = 1;\nvar LOADED = 2;\nvar ERROR = 3;\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 */\n\nvar HTMLTrackElement = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(HTMLTrackElement, _EventTarget);\n\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 * vesion 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 function HTMLTrackElement(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _EventTarget.call(this) || this;\n var readyState;\n var 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(_assertThisInitialized(_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: function get() {\n return readyState;\n }\n },\n\n /**\n * @memberof HTMLTrackElement\n * @member {TextTrack} track\n * The underlying TextTrack object.\n * @instance\n *\n */\n track: {\n get: function get() {\n return track;\n }\n }\n });\n readyState = NONE;\n /**\n * @listens TextTrack#loadeddata\n * @fires HTMLTrackElement#load\n */\n\n track.addEventListener('loadeddata', function () {\n readyState = LOADED;\n\n _this.trigger({\n type: 'load',\n target: _assertThisInitialized(_this)\n });\n });\n return _this;\n }\n\n return HTMLTrackElement;\n}(EventTarget$2);\n\nHTMLTrackElement.prototype.allowedEvents_ = {\n load: 'load'\n};\nHTMLTrackElement.NONE = NONE;\nHTMLTrackElement.LOADING = LOADING;\nHTMLTrackElement.LOADED = LOADED;\nHTMLTrackElement.ERROR = ERROR;\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\nvar 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});\nvar 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};\n\nvar ALL = _extends({}, NORMAL, REMOTE);\n\nREMOTE.names = Object.keys(REMOTE);\nNORMAL.names = Object.keys(NORMAL);\nALL.names = [].concat(REMOTE.names).concat(NORMAL.names);\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} Tech~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 */\n\nfunction createTrackHelper(self, kind, label, language, options) {\n if (options === void 0) {\n options = {};\n }\n\n var tracks = self.textTracks();\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n\n if (language) {\n options.language = language;\n }\n\n options.tech = self;\n var track = new ALL.text.TrackClass(options);\n tracks.addTrack(track);\n return track;\n}\n/**\n * This is the base class for media playback technology controllers, such as\n * {@link HTML5}\n *\n * @extends Component\n */\n\n\nvar Tech = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Tech, _Component);\n\n /**\n * Create an instance of this Tech.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Component~ReadyCallback} ready\n * Callback function to call when the `HTML5` Tech is ready.\n */\n function Tech(options, ready) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n if (ready === void 0) {\n ready = function ready() {};\n }\n\n // we don't want the tech to report user activity automatically.\n // This is done manually in addControlsListeners\n options.reportTouchActivity = false;\n _this = _Component.call(this, null, options, ready) || this;\n\n _this.onDurationChange_ = function (e) {\n return _this.onDurationChange(e);\n };\n\n _this.trackProgress_ = function (e) {\n return _this.trackProgress(e);\n };\n\n _this.trackCurrentTime_ = function (e) {\n return _this.trackCurrentTime(e);\n };\n\n _this.stopTrackingCurrentTime_ = function (e) {\n return _this.stopTrackingCurrentTime(e);\n };\n\n _this.disposeSourceHandler_ = function (e) {\n return _this.disposeSourceHandler(e);\n }; // keep track of whether the current source has played at all to\n // implement a very limited played()\n\n\n _this.hasStarted_ = false;\n\n _this.on('playing', function () {\n this.hasStarted_ = true;\n });\n\n _this.on('loadstart', function () {\n this.hasStarted_ = false;\n });\n\n ALL.names.forEach(function (name) {\n var props = ALL[name];\n\n if (options && options[props.getterName]) {\n _this[props.privateName] = options[props.getterName];\n }\n }); // Manually track progress in cases where the browser/tech doesn't report it.\n\n if (!_this.featuresProgressEvents) {\n _this.manualProgressOn();\n } // Manually track timeupdates in cases where the browser/tech doesn't report it.\n\n\n if (!_this.featuresTimeupdateEvents) {\n _this.manualTimeUpdatesOn();\n }\n\n ['Text', 'Audio', 'Video'].forEach(function (track) {\n if (options[\"native\" + track + \"Tracks\"] === false) {\n _this[\"featuresNative\" + track + \"Tracks\"] = false;\n }\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\n if (!_this.featuresNativeTextTracks) {\n _this.emulateTextTracks();\n }\n\n _this.preloadTextTracks = options.preloadTextTracks !== false;\n _this.autoRemoteTextTracks_ = new ALL.text.ListClass();\n\n _this.initTrackListeners(); // Turn on component tap events only if not using native controls\n\n\n if (!options.nativeControlsForTouch) {\n _this.emitTapEvents();\n }\n\n if (_this.constructor) {\n _this.name_ = _this.constructor.name || 'Unknown Tech';\n }\n\n return _this;\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\n\n var _proto = Tech.prototype;\n\n _proto.triggerSourceset = function triggerSourceset(src) {\n var _this2 = this;\n\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', function () {\n return _this2.setTimeout(function () {\n return _this2.triggerSourceset(src);\n }, 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 {EventTarget~Event}\n */\n\n\n this.trigger({\n src: src,\n type: 'sourceset'\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 ;\n\n _proto.manualProgressOn = function manualProgressOn() {\n this.on('durationchange', this.onDurationChange_);\n this.manualProgress = true; // Trigger progress watching when a source begins loading\n\n this.one('ready', this.trackProgress_);\n }\n /**\n * Turn off the polyfill for `progress` events that was created in\n * {@link Tech#manualProgressOn}\n */\n ;\n\n _proto.manualProgressOff = function manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n this.off('durationchange', this.onDurationChange_);\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 {EventTarget~Event} event\n * The `ready` event that caused this to run.\n *\n * @listens Tech#ready\n * @fires Tech#progress\n */\n ;\n\n _proto.trackProgress = function 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 var numBufferedPercent = this.bufferedPercent();\n\n if (this.bufferedPercent_ !== numBufferedPercent) {\n /**\n * See {@link Player#progress}\n *\n * @event Tech#progress\n * @type {EventTarget~Event}\n */\n this.trigger('progress');\n }\n\n this.bufferedPercent_ = numBufferedPercent;\n\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n /**\n * Update our internal duration on a `durationchange` event by calling\n * {@link Tech#duration}.\n *\n * @param {EventTarget~Event} event\n * The `durationchange` event that caused this to run.\n *\n * @listens Tech#durationchange\n */\n ;\n\n _proto.onDurationChange = function onDurationChange(event) {\n this.duration_ = this.duration();\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 ;\n\n _proto.buffered = function buffered() {\n return createTimeRanges(0, 0);\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 ;\n\n _proto.bufferedPercent = function bufferedPercent$1() {\n return bufferedPercent(this.buffered(), this.duration_);\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 ;\n\n _proto.stopTrackingProgress = function stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n /**\n * Polyfill the `timeupdate` event for browsers that don't support it.\n *\n * @see {@link Tech#trackCurrentTime}\n */\n ;\n\n _proto.manualTimeUpdatesOn = function manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n this.on('play', this.trackCurrentTime_);\n this.on('pause', this.stopTrackingCurrentTime_);\n }\n /**\n * Turn off the polyfill for `timeupdate` events that was created in\n * {@link Tech#manualTimeUpdatesOn}\n */\n ;\n\n _proto.manualTimeUpdatesOff = function manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime_);\n this.off('pause', this.stopTrackingCurrentTime_);\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 ;\n\n _proto.trackCurrentTime = function trackCurrentTime() {\n if (this.currentTimeInterval) {\n this.stopTrackingCurrentTime();\n }\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 {EventTarget~Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n }); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }, 250);\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 ;\n\n _proto.stopTrackingCurrentTime = function stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval); // #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\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\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 ;\n\n _proto.dispose = function dispose() {\n // clear out all tracks because we can't reuse them between techs\n this.clearTracks(NORMAL.names); // Turn off any manual progress or timeupdate tracking\n\n if (this.manualProgress) {\n this.manualProgressOff();\n }\n\n if (this.manualTimeUpdates) {\n this.manualTimeUpdatesOff();\n }\n\n _Component.prototype.dispose.call(this);\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 ;\n\n _proto.clearTracks = function clearTracks(types) {\n var _this3 = this;\n\n types = [].concat(types); // clear out all tracks because we can't reuse them between techs\n\n types.forEach(function (type) {\n var list = _this3[type + \"Tracks\"]() || [];\n var i = list.length;\n\n while (i--) {\n var track = list[i];\n\n if (type === 'text') {\n _this3.removeRemoteTextTrack(track);\n }\n\n list.removeTrack(track);\n }\n });\n }\n /**\n * Remove any TextTracks added via addRemoteTextTrack that are\n * flagged for automatic garbage collection\n */\n ;\n\n _proto.cleanupAutoTextTracks = function cleanupAutoTextTracks() {\n var list = this.autoRemoteTextTracks_ || [];\n var i = list.length;\n\n while (i--) {\n var track = list[i];\n this.removeRemoteTextTrack(track);\n }\n }\n /**\n * Reset the tech, which will removes all sources and reset the internal readyState.\n *\n * @abstract\n */\n ;\n\n _proto.reset = function reset() {}\n /**\n * Get the value of `crossOrigin` from the tech.\n *\n * @abstract\n *\n * @see {Html5#crossOrigin}\n */\n ;\n\n _proto.crossOrigin = function crossOrigin() {}\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 ;\n\n _proto.setCrossOrigin = function setCrossOrigin() {}\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 ;\n\n _proto.error = function error(err) {\n if (err !== undefined) {\n this.error_ = new MediaError(err);\n this.trigger('error');\n }\n\n return this.error_;\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 ;\n\n _proto.played = function played() {\n if (this.hasStarted_) {\n return createTimeRanges(0, 0);\n }\n\n return createTimeRanges();\n }\n /**\n * Start playback\n *\n * @abstract\n *\n * @see {Html5#play}\n */\n ;\n\n _proto.play = function play() {}\n /**\n * Set whether we are scrubbing or not\n *\n * @abstract\n *\n * @see {Html5#setScrubbing}\n */\n ;\n\n _proto.setScrubbing = function setScrubbing() {}\n /**\n * Get whether we are scrubbing or not\n *\n * @abstract\n *\n * @see {Html5#scrubbing}\n */\n ;\n\n _proto.scrubbing = function scrubbing() {}\n /**\n * Causes a manual time update to occur if {@link Tech#manualTimeUpdatesOn} was\n * previously called.\n *\n * @fires Tech#timeupdate\n */\n ;\n\n _proto.setCurrentTime = function setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) {\n /**\n * A manual `timeupdate` event.\n *\n * @event Tech#timeupdate\n * @type {EventTarget~Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\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 ;\n\n _proto.initTrackListeners = function initTrackListeners() {\n var _this4 = this;\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link AudioTrackList}\n *\n * @event Tech#audiotrackchange\n * @type {EventTarget~Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link VideoTrackList}\n *\n * @event Tech#videotrackchange\n * @type {EventTarget~Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link TextTrackList}\n *\n * @event Tech#texttrackchange\n * @type {EventTarget~Event}\n */\n NORMAL.names.forEach(function (name) {\n var props = NORMAL[name];\n\n var trackListChanges = function trackListChanges() {\n _this4.trigger(name + \"trackchange\");\n };\n\n var tracks = _this4[props.getterName]();\n\n tracks.addEventListener('removetrack', trackListChanges);\n tracks.addEventListener('addtrack', trackListChanges);\n\n _this4.on('dispose', function () {\n tracks.removeEventListener('removetrack', trackListChanges);\n tracks.removeEventListener('addtrack', trackListChanges);\n });\n });\n }\n /**\n * Emulate TextTracks using vtt.js if necessary\n *\n * @fires Tech#vttjsloaded\n * @fires Tech#vttjserror\n */\n ;\n\n _proto.addWebVttScript_ = function addWebVttScript_() {\n var _this5 = this;\n\n if (window.WebVTT) {\n return;\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\n\n if (document.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 } // load vtt.js via the script location option or the cdn of no location was\n // passed in\n\n\n var script = document.createElement('script');\n script.src = this.options_['vtt.js'] || 'https://vjs.zencdn.net/vttjs/0.14.1/vtt.min.js';\n\n script.onload = function () {\n /**\n * Fired when vtt.js is loaded.\n *\n * @event Tech#vttjsloaded\n * @type {EventTarget~Event}\n */\n _this5.trigger('vttjsloaded');\n };\n\n script.onerror = function () {\n /**\n * Fired when vtt.js was not loaded due to an error\n *\n * @event Tech#vttjsloaded\n * @type {EventTarget~Event}\n */\n _this5.trigger('vttjserror');\n };\n\n this.on('dispose', function () {\n script.onload = null;\n script.onerror = null;\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\n window.WebVTT = true;\n this.el().parentNode.appendChild(script);\n } else {\n this.ready(this.addWebVttScript_);\n }\n }\n /**\n * Emulate texttracks\n *\n */\n ;\n\n _proto.emulateTextTracks = function emulateTextTracks() {\n var _this6 = this;\n\n var tracks = this.textTracks();\n var remoteTracks = this.remoteTextTracks();\n\n var handleAddTrack = function handleAddTrack(e) {\n return tracks.addTrack(e.track);\n };\n\n var handleRemoveTrack = function handleRemoveTrack(e) {\n return tracks.removeTrack(e.track);\n };\n\n remoteTracks.on('addtrack', handleAddTrack);\n remoteTracks.on('removetrack', handleRemoveTrack);\n this.addWebVttScript_();\n\n var updateDisplay = function updateDisplay() {\n return _this6.trigger('texttrackchange');\n };\n\n var textTracksChanges = function textTracksChanges() {\n updateDisplay();\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\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\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\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 ;\n\n _proto.addTextTrack = function addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\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 ;\n\n _proto.createRemoteTextTrack = function createRemoteTextTrack(options) {\n var track = mergeOptions$3(options, {\n tech: this\n });\n return new REMOTE.remoteTextEl.TrackClass(track);\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=true]\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 * @deprecated The default functionality for this function will be equivalent\n * to \"manualCleanup=false\" in the future. The manualCleanup parameter will\n * also be removed.\n */\n ;\n\n _proto.addRemoteTextTrack = function addRemoteTextTrack(options, manualCleanup) {\n var _this7 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var htmlTrackElement = this.createRemoteTextTrack(options);\n\n if (manualCleanup !== true && manualCleanup !== false) {\n // deprecation warning\n log$1.warn('Calling addRemoteTextTrack without explicitly setting the \"manualCleanup\" parameter to `true` is deprecated and default to `false` in future version of video.js');\n manualCleanup = true;\n } // store HTMLTrackElement and TextTrack to remote list\n\n\n this.remoteTextTrackEls().addTrackElement_(htmlTrackElement);\n this.remoteTextTracks().addTrack(htmlTrackElement.track);\n\n if (manualCleanup !== true) {\n // create the TextTrackList if it doesn't exist\n this.ready(function () {\n return _this7.autoRemoteTextTracks_.addTrack(htmlTrackElement.track);\n });\n }\n\n return htmlTrackElement;\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 ;\n\n _proto.removeRemoteTextTrack = function removeRemoteTextTrack(track) {\n var trackElement = this.remoteTextTrackEls().getTrackElementByTrack_(track); // remove HTMLTrackElement and TextTrack from remote list\n\n this.remoteTextTrackEls().removeTrackElement_(trackElement);\n this.remoteTextTracks().removeTrack(track);\n this.autoRemoteTextTracks_.removeTrack(track);\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 ;\n\n _proto.getVideoPlaybackQuality = function getVideoPlaybackQuality() {\n return {};\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 ;\n\n _proto.requestPictureInPicture = function requestPictureInPicture() {\n var PromiseClass = this.options_.Promise || window.Promise;\n\n if (PromiseClass) {\n return PromiseClass.reject();\n }\n }\n /**\n * A method to check for the value of the 'disablePictureInPicture'