@clickview/lite 0.104.0-rc.2 → 0.104.0-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/.vite/manifest.json +779 -779
  2. package/dist/bundles.json +1 -1
  3. package/dist/en.json +1 -1
  4. package/dist/scripts/{CXN0_XjU.chunk.js → -KvTbeQV.chunk.js} +2 -2
  5. package/dist/scripts/{CXN0_XjU.chunk.js.map → -KvTbeQV.chunk.js.map} +1 -1
  6. package/dist/scripts/{Bu7Sr1dy.chunk.js → 0Fek4oFk.chunk.js} +2 -2
  7. package/dist/scripts/{Bu7Sr1dy.chunk.js.map → 0Fek4oFk.chunk.js.map} +1 -1
  8. package/dist/scripts/{CfRQYWGG.chunk.js → 5PKjjI4Y.chunk.js} +2 -2
  9. package/dist/scripts/{CfRQYWGG.chunk.js.map → 5PKjjI4Y.chunk.js.map} +1 -1
  10. package/dist/scripts/{z8IWZ1V1.chunk.js → AEOAlemi.chunk.js} +2 -2
  11. package/dist/scripts/{z8IWZ1V1.chunk.js.map → AEOAlemi.chunk.js.map} +1 -1
  12. package/dist/scripts/{DBcWjmUy.chunk.js → B1TqilLB.chunk.js} +2 -2
  13. package/dist/scripts/{DBcWjmUy.chunk.js.map → B1TqilLB.chunk.js.map} +1 -1
  14. package/dist/scripts/B1hsuVfV2.chunk.js +2 -0
  15. package/dist/scripts/{BwBWuxjr2.chunk.js.map → B1hsuVfV2.chunk.js.map} +1 -1
  16. package/dist/scripts/{BiUOH1CR.chunk.js → B2wDqI1S.chunk.js} +2 -2
  17. package/dist/scripts/{BiUOH1CR.chunk.js.map → B2wDqI1S.chunk.js.map} +1 -1
  18. package/dist/scripts/{DWJiezgB2.chunk.js → BBWnpWNB2.chunk.js} +2 -2
  19. package/dist/scripts/{DWJiezgB2.chunk.js.map → BBWnpWNB2.chunk.js.map} +1 -1
  20. package/dist/scripts/BILyzh0I.chunk.js +1 -0
  21. package/dist/scripts/{B-k4BlVQ2.chunk.js → BUVko1EF2.chunk.js} +3 -3
  22. package/dist/scripts/{B-k4BlVQ2.chunk.js.map → BUVko1EF2.chunk.js.map} +1 -1
  23. package/dist/scripts/{GolowYbA.chunk.js → BYbQI3CA.chunk.js} +2 -2
  24. package/dist/scripts/{GolowYbA.chunk.js.map → BYbQI3CA.chunk.js.map} +1 -1
  25. package/dist/scripts/{DFlO2qoz2.chunk.js → Bf9r1ZoF2.chunk.js} +2 -2
  26. package/dist/scripts/{DFlO2qoz2.chunk.js.map → Bf9r1ZoF2.chunk.js.map} +1 -1
  27. package/dist/scripts/{BpHA-MkZ.chunk.js → BiWUSyJr.chunk.js} +2 -2
  28. package/dist/scripts/{BpHA-MkZ.chunk.js.map → BiWUSyJr.chunk.js.map} +1 -1
  29. package/dist/scripts/{C8tDgg1l2.chunk.js → BlsbWOzw2.chunk.js} +2 -2
  30. package/dist/scripts/{C8tDgg1l2.chunk.js.map → BlsbWOzw2.chunk.js.map} +1 -1
  31. package/dist/scripts/{C_tdgSWS2.chunk.js → Bzk4AwVx2.chunk.js} +2 -2
  32. package/dist/scripts/{C_tdgSWS2.chunk.js.map → Bzk4AwVx2.chunk.js.map} +1 -1
  33. package/dist/scripts/{uSXjtjlJ.chunk.js → C3PXfYEd.chunk.js} +2 -2
  34. package/dist/scripts/{uSXjtjlJ.chunk.js.map → C3PXfYEd.chunk.js.map} +1 -1
  35. package/dist/scripts/{BgPye7Nd2.chunk.js → C46OeU6w2.chunk.js} +2 -2
  36. package/dist/scripts/{BgPye7Nd2.chunk.js.map → C46OeU6w2.chunk.js.map} +1 -1
  37. package/dist/scripts/{9oMRc0cb2.chunk.js → CAs2Sere2.chunk.js} +2 -2
  38. package/dist/scripts/{9oMRc0cb2.chunk.js.map → CAs2Sere2.chunk.js.map} +1 -1
  39. package/dist/scripts/{Bm5qACA52.chunk.js → CNfmLVE82.chunk.js} +2 -2
  40. package/dist/scripts/{Bm5qACA52.chunk.js.map → CNfmLVE82.chunk.js.map} +1 -1
  41. package/dist/scripts/{-7qiRMLt.chunk.js → CW1i-QHv.chunk.js} +2 -2
  42. package/dist/scripts/{-7qiRMLt.chunk.js.map → CW1i-QHv.chunk.js.map} +1 -1
  43. package/dist/scripts/{EKwCaE3J2.chunk.js → CX6c7KRp2.chunk.js} +2 -2
  44. package/dist/scripts/{EKwCaE3J2.chunk.js.map → CX6c7KRp2.chunk.js.map} +1 -1
  45. package/dist/scripts/{D_uAdX7E2.chunk.js → CaCm4N_d2.chunk.js} +2 -2
  46. package/dist/scripts/{D_uAdX7E2.chunk.js.map → CaCm4N_d2.chunk.js.map} +1 -1
  47. package/dist/scripts/{DW_sm5se2.chunk.js → CfNYFxJl2.chunk.js} +2 -2
  48. package/dist/scripts/{DW_sm5se2.chunk.js.map → CfNYFxJl2.chunk.js.map} +1 -1
  49. package/dist/scripts/{CVL6bQWp.chunk.js → CpzveYo2.chunk.js} +2 -2
  50. package/dist/scripts/{CVL6bQWp.chunk.js.map → CpzveYo2.chunk.js.map} +1 -1
  51. package/dist/scripts/{CFduwlo0.chunk.js → Cqq1N9xw.chunk.js} +2 -2
  52. package/dist/scripts/{CFduwlo0.chunk.js.map → Cqq1N9xw.chunk.js.map} +1 -1
  53. package/dist/scripts/{UCiRB6cQ.chunk.js → CwFYdvvA.chunk.js} +2 -2
  54. package/dist/scripts/{UCiRB6cQ.chunk.js.map → CwFYdvvA.chunk.js.map} +1 -1
  55. package/dist/scripts/{By9Vb8Wn.chunk.js → CwYg3Mqk.chunk.js} +2 -2
  56. package/dist/scripts/{By9Vb8Wn.chunk.js.map → CwYg3Mqk.chunk.js.map} +1 -1
  57. package/dist/scripts/{DLcyKjA7.chunk.js → Cyit3dMk.chunk.js} +2 -2
  58. package/dist/scripts/{DLcyKjA7.chunk.js.map → Cyit3dMk.chunk.js.map} +1 -1
  59. package/dist/scripts/{BxjzTnvL2.chunk.js → D-iyHqNw2.chunk.js} +3 -3
  60. package/dist/scripts/{BxjzTnvL2.chunk.js.map → D-iyHqNw2.chunk.js.map} +1 -1
  61. package/dist/scripts/{DICsRDM42.chunk.js → DH_0KtTK2.chunk.js} +2 -2
  62. package/dist/scripts/{DICsRDM42.chunk.js.map → DH_0KtTK2.chunk.js.map} +1 -1
  63. package/dist/scripts/{BTcLMVw4.chunk.js → DKDWcWxk.chunk.js} +2 -2
  64. package/dist/scripts/{BTcLMVw4.chunk.js.map → DKDWcWxk.chunk.js.map} +1 -1
  65. package/dist/scripts/{Df6x5Ekm2.chunk.js → DN82USWW2.chunk.js} +2 -2
  66. package/dist/scripts/{Df6x5Ekm2.chunk.js.map → DN82USWW2.chunk.js.map} +1 -1
  67. package/dist/scripts/{C62uevy9.chunk.js → DWo8DfD9.chunk.js} +2 -2
  68. package/dist/scripts/{C62uevy9.chunk.js.map → DWo8DfD9.chunk.js.map} +1 -1
  69. package/dist/scripts/{Bh-26cqn.chunk.js → Dnz8CbEu.chunk.js} +3 -3
  70. package/dist/scripts/{Bh-26cqn.chunk.js.map → Dnz8CbEu.chunk.js.map} +1 -1
  71. package/dist/scripts/{CukXgE1z.chunk.js → Dt5731Ay.chunk.js} +2 -2
  72. package/dist/scripts/{CukXgE1z.chunk.js.map → Dt5731Ay.chunk.js.map} +1 -1
  73. package/dist/scripts/{DCPsmD1m.chunk.js → Dtag-27K.chunk.js} +2 -2
  74. package/dist/scripts/{DCPsmD1m.chunk.js.map → Dtag-27K.chunk.js.map} +1 -1
  75. package/dist/scripts/{DOCHl5Sy.chunk.js → DyE6EUDb.chunk.js} +2 -2
  76. package/dist/scripts/{DOCHl5Sy.chunk.js.map → DyE6EUDb.chunk.js.map} +1 -1
  77. package/dist/scripts/{app-CuKrDFuc.js → app-CfAhMxn1.js} +4 -4
  78. package/dist/scripts/{app-CuKrDFuc.js.map → app-CfAhMxn1.js.map} +1 -1
  79. package/dist/scripts/{DerPQKk6.chunk.js → cDv6zuhh.chunk.js} +2 -2
  80. package/dist/scripts/{DerPQKk6.chunk.js.map → cDv6zuhh.chunk.js.map} +1 -1
  81. package/dist/scripts/jAtAipGN.chunk.js +2 -0
  82. package/dist/scripts/{CpsbRDII.chunk.js.map → jAtAipGN.chunk.js.map} +1 -1
  83. package/dist/scripts/{CXKdMqPJ.chunk.js → pKtXmGbN.chunk.js} +2 -2
  84. package/dist/scripts/{CXKdMqPJ.chunk.js.map → pKtXmGbN.chunk.js.map} +1 -1
  85. package/dist/scripts/{DhdM2yGm.chunk.js → qRLSbnEr.chunk.js} +2 -2
  86. package/dist/scripts/{DhdM2yGm.chunk.js.map → qRLSbnEr.chunk.js.map} +1 -1
  87. package/package.json +1 -1
  88. package/dist/scripts/BwBWuxjr2.chunk.js +0 -2
  89. package/dist/scripts/CCBk_ENs.chunk.js +0 -1
  90. package/dist/scripts/CpsbRDII.chunk.js +0 -2
@@ -236,7 +236,7 @@ ${fp(e)}`),t.map&&!t.map.bytes&&(this.logger_(`going to request init segment.`),
236
236
  ${n?`+`:``}${e*10}s
237
237
  </div>
238
238
  </div>
239
- `,window.clearTimeout(this.timeoutId),this.timeoutId=window.setTimeout(()=>{this.removeText()},t)}removeText(){this.el_.className=this.buildCSSClass(),this.el_.innerHTML=``}};Z.registerComponent(`TouchControls`,Jg);var Yg=Z.getPlugin(`plugin`),Xg=300,Zg=class extends Yg{constructor(e){super(e),this.doubleTouchCount=0,this.seekStartTime=0,this.directionModifier=0,this.bindFunctions(),this.player.ready(()=>this.initialize())}bindFunctions(){this.onTouchStart=this.onTouchStart.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this),this.reBindEventListeners=this.reBindEventListeners.bind(this),this.unBindEventListeners=this.unBindEventListeners.bind(this)}initialize(){this.player.addChild(`TouchControls`),this.touchControls=this.player.getChild(`TouchControls`),this.player.on(`ready`,this.reBindEventListeners),this.one(`dispose`,()=>{this.player.off(`ready`,this.reBindEventListeners)}),this.reBindEventListeners()}reBindEventListeners(){this.unBindEventListeners(),this.tech=this.player.tech(!0),this.tech.name()===`Html5`&&(this.tech.on(`touchstart`,this.onTouchStart),this.tech.on(`touchend`,this.onTouchEnd))}unBindEventListeners(){this.tech&&this.tech.name()===`Html5`&&(this.tech.off(`touchstart`,this.onTouchStart),this.tech.off(`touchend`,this.onTouchEnd))}dispose(){super.dispose(),this.unBindEventListeners()}onTouchStart(e){this.touchStartTime=e.timeStamp,this.userActive=this.player.userActive()}onTouchEnd(e){if(e.changedTouches.length){if(e.timeStamp-this.lastTouchTime<Xg){this.onDoubleTouch(e),this.lastTouchTime=e.timeStamp;return}if(this.resetProperties(),this.lastTouchTime=e.timeStamp,e.timeStamp-this.touchStartTime<Xg){window.setTimeout(()=>{this.doubleTouchCount||(this.player.paused()?this.player.play():this.userActive&&this.player.pause())},Xg);return}}}resetProperties(){this.doubleTouchCount=0,this.seekStartTime=0,this.directionModifier=0}onDoubleTouch(e){let t=this.player.el().getBoundingClientRect(),n=t.left+t.width/2;if(this.doubleTouchCount===0&&(this.seekStartTime=this.player.currentTime(),e.changedTouches[0].pageX<n?this.directionModifier=-1:this.directionModifier=1),this.doubleTouchCount++,this.directionModifier<0){if(this.doubleTouchCount*10>this.seekStartTime+10)return;this.touchControls.setUi(-this.doubleTouchCount,Xg*3),this.player.currentTime(this.player.currentTime()-10);return}let r=this.player.duration()-this.seekStartTime;this.doubleTouchCount*10>r+10||(this.touchControls.setUi(this.doubleTouchCount,Xg*3),this.player.currentTime(this.player.currentTime()+10))}};Z.registerPlugin(`touchControls`,Zg);var Qg=new Set([`segment`,`segment-media-initialization`,`segment-key`,`dash-sidx`]),$g=`urn:clickview:dash:extensions:2026`;function e_(e){let t=new Map;if(!e)return t;let n=new DOMParser().parseFromString(e,`text/xml`);return Array.from(n.getElementsByTagName(`Representation`)).forEach(e=>{let n=e.getAttribute(`id`),r=e.getAttributeNS($g,`qualityLabel`),i=parseInt(e.getAttributeNS($g,`qualityTier`));!n||!r||isNaN(i)||t.set(n,{quality:i,displayName:r})}),t}var t_=class{constructor(e,t){this.levels=[],this.manifestProfiles=new Map,this.autoEnabled=!0,this.lockedId=null,this.onScreenId=null,this.metadataTrack=null,this.player=e,this.notifier=t,this.onLevelsUpdated=this.onLevelsUpdated.bind(this),this.onSelectionChanged=this.onSelectionChanged.bind(this),this.onCueChange=this.onCueChange.bind(this),this.onTrackAdded=this.onTrackAdded.bind(this),this.onTrackRemoved=this.onTrackRemoved.bind(this),this.trackList=this.player.textTracks(),this.trackList.addEventListener(`addtrack`,this.onTrackAdded),this.trackList.addEventListener(`removetrack`,this.onTrackRemoved),this.bindMetadataTrack(dg.getTrack(this.player));let n=this.getQualityLevelList();n&&(n.on(`addqualitylevel`,this.onLevelsUpdated),n.on(`removequalitylevel`,this.onLevelsUpdated),n.on(`change`,this.onSelectionChanged),this.rebuildLevels())}getLevels(){return this.levels}getSelected(){return this.lockedId===null?this.getActive():this.levels.find(e=>e.id===this.lockedId)??null}getActive(){let e=dg.getOnScreenSegment(this.player)?.playlist??this.getDownloadingListLevel()?.id;return e===void 0?null:this.levels.find(t=>t.id===e)??null}select(e,t){let n=this.getListLevels(),r=n.find(t=>t.id===e);if(!r)return;let i=!this.autoEnabled&&this.lockedId===e&&n.every(t=>t.enabled===(t.id===e));this.autoEnabled=!1,this.lockedId=e,!(i&&!t?.force)&&(this.applyEnabledFlags(n,r,()=>!1),this.notifier.notifyQualityChanged(t?.origin??`system`))}supportsAuto(){return!0}isAuto(){return this.autoEnabled}selectAuto(e){this.autoEnabled||(this.autoEnabled=!0,this.lockedId=null,this.applyEnabledFlags(this.getListLevels(),this.getDownloadingListLevel(),()=>!0),this.notifier.notifyQualityChanged(e?.origin??`system`))}applyEnabledFlags(e,t,n){e.forEach(e=>{e!==t&&(e.enabled=n(e))}),t&&(t.enabled=!1,t.enabled=!0)}getDownloadingListLevel(){let e=this.getQualityLevelList();return e&&e.selectedIndex>=0?e[e.selectedIndex]:null}bindMetadataTrack(e){e!==this.metadataTrack&&(this.metadataTrack?.removeEventListener(`cuechange`,this.onCueChange),this.metadataTrack=e,this.onScreenId=null,this.metadataTrack?.addEventListener(`cuechange`,this.onCueChange))}onTrackAdded(e){dg.isTrack(e.track)&&this.bindMetadataTrack(e.track)}onTrackRemoved(e){e.track===this.metadataTrack&&this.bindMetadataTrack(null)}onCueChange(){let e=dg.getOnScreenSegment(this.player)?.playlist??null;e!==this.onScreenId&&(this.onScreenId=e,this.notifier.notifyQualityChanged(`system`))}onLevelsUpdated(){this.rebuildLevels(),this.notifier.notifyLevelsChanged()}onSelectionChanged(){this.notifier.notifyQualityChanged(`system`)}rebuildLevels(){this.refreshManifestProfiles();let e=this.getManifestIdsByLevelId(),t=[];this.getListLevels().forEach(n=>{let r=this.toQualityLevel(n,e.get(n.id));r&&t.push(r)}),this.levels=t.sort((e,t)=>t.quality-e.quality)}toQualityLevel(e,t){let n=t===void 0?void 0:this.manifestProfiles.get(t),r=n?.quality??e.height;return r===void 0?null:{id:e.id,quality:r,displayName:n?.displayName??`${r}p`,preset:t,width:e.width,height:e.height,bitrate:e.bitrate,frameRate:e.frameRate}}refreshManifestProfiles(){let e=this.player.tech(!0)?.vhs?.playlists?.mainXml_;e!==this.parsedManifestXml&&(this.parsedManifestXml=e,this.manifestProfiles=e_(e))}getManifestIdsByLevelId(){let e=new Map;return(this.player.tech(!0)?.vhs?.representations?.()??[]).forEach(t=>{let n=t.playlist?.attributes?.NAME;n!==void 0&&e.set(t.id,n)}),e}getListLevels(){let e=this.getQualityLevelList();return e?Array.from(e):[]}getQualityLevelList(){return this.player.qualityLevels?.()??null}dispose(){this.trackList.removeEventListener(`addtrack`,this.onTrackAdded),this.trackList.removeEventListener(`removetrack`,this.onTrackRemoved),this.bindMetadataTrack(null);let e=this.getQualityLevelList();e&&(e.off(`addqualitylevel`,this.onLevelsUpdated),e.off(`removequalitylevel`,this.onLevelsUpdated),e.off(`change`,this.onSelectionChanged))}},n_=class{constructor(e,t,n,r){this.player=e,this.notifier=t,this.files=n,this.currentProfile=r}getLevels(){return this.files.map(e=>({id:e.profile,quality:e.quality,displayName:e.label??`${e.quality}p`,preset:e.profile}))}getSelected(){return this.getLevels().find(e=>e.id===this.currentProfile)??null}getActive(){return this.getSelected()}select(e,t){if(e===this.currentProfile&&!t?.force)return;let n=this.files.find(t=>t.profile===e);n&&(this.currentProfile=n.profile,ag.applyFile(this.player,n),this.notifier.notifyQualityChanged(t?.origin??`system`))}supportsAuto(){return!1}isAuto(){return!1}selectAuto(){}repopulate(e){let t=this.currentProfile;this.files=e;let n=this.files.find(e=>e.profile===t)??this.files[0];this.currentProfile=n?.profile??null,n&&ag.applyFile(this.player,n),this.notifier.notifyLevelsChanged()}dispose(){}},r_=Z.getPlugin(`plugin`),i_=class extends r_{constructor(e,t){super(e),this.options=t,this.files=ag.sortFilesByQuality(t.files),this.player.ready(()=>this.initialize())}async initialize(){this.onLoadStart=this.onLoadStart.bind(this),this.onLocalCacheChanged=this.onLocalCacheChanged.bind(this),this.onXhrHooksReady=this.onXhrHooksReady.bind(this),this.onVhsRequest=this.onVhsRequest.bind(this);let e=this.getLocalCachePlugin();if(this.player.on(`loadstart`,this.onLoadStart),this.player.on(`xhr-hooks-ready`,this.onXhrHooksReady),this.player.one(`playing`,()=>this.hasPlayed=!0),e?.on(`localcachechanged`,this.onLocalCacheChanged),this.activeLocalCache=e?await e.getActiveLocalCache():null,!this.player)return;let{sources:t,defaultFile:n}=ag.planSources({files:this.files,viewKey:this.options.viewKey,settings:this.options.settings,activeLocalCache:this.activeLocalCache});n&&(this.defaultProfile=n.profile),this.player.src(t)}repopulateSources(e){if(this.files=ag.sortFilesByQuality(e),this.activeMode===`progressive`){this.getProgressiveController()?.repopulate(this.files.progressive);return}let t=ag.getDashSource(this.files,this.options.viewKey,this.activeLocalCache);if(t){rg(this.player,t);return}let n=ag.getDefaultProgressiveFile(this.files,this.options.settings);this.applyProgressiveFile(n)}hasPendingFallback(){return this.activeMode===`dash`&&!this.hasPlayed&&this.files.progressive.length>0}onLoadStart(){let e=this.player.currentType()===`application/dash+xml`?`dash`:`progressive`;if(e===this.activeMode)return;this.activeMode=e;let t=this.player.qualityManager();if(e===`dash`){t.setController(new t_(this.player,t));return}t.setController(new n_(this.player,t,this.files.progressive,this.defaultProfile))}onXhrHooksReady(){this.player.tech(!0)?.vhs?.xhr.onRequest(this.onVhsRequest)}onVhsRequest(e){return this.activeLocalCache&&Qg.has(e.requestType)&&(e.uri=this.activeLocalCache.getUrl(e.uri)),e}onLocalCacheChanged(e,t){let n=t?.localCache??null;if(this.activeLocalCache=n,!this.activeMode)return;if(this.activeMode===`dash`){let e=ag.getDashSource(this.files,this.options.viewKey,n);e&&rg(this.player,e);return}let r=this.player.qualityManager(),i=(n?.playbackQuality?Yh(r.getLevels(),n.playbackQuality):null)??r.getSelected();i&&r.select(i.id,{force:!0})}applyProgressiveFile(e){this.defaultProfile=e.profile,ag.applyFile(this.player,e)}getProgressiveController(){let e=this.player.qualityManager().getController();return e instanceof n_?e:null}getLocalCachePlugin(){return this.player.usingPlugin(`localCache`)?this.player.localCache():null}dispose(){this.player.off(`loadstart`,this.onLoadStart),this.player.off(`xhr-hooks-ready`,this.onXhrHooksReady),this.getLocalCachePlugin()?.off(`localcachechanged`,this.onLocalCacheChanged),super.dispose()}};Z.registerPlugin(`mediaSources`,i_);var a_=class e{static getProxyUrl(t,n){return n?e.unwrapProxyUrl(n)===null?t+`cache?file=`+encodeURIComponent(n):n:null}static getOriginalUrl(t){return e.unwrapProxyUrl(t)??t}static unwrapProxyUrl(e){if(!e)return null;let t;try{t=new URL(e)}catch{return null}return t.pathname.endsWith(`/cache`)&&t.searchParams.get(`file`)||null}},o_=class{constructor(e){this.name=e.name,this.playbackProfile=e.playbackProfile,this.playbackQuality=e.playbackQuality,this.address=new URL(e.httpsAddress)}getUrl(e){return a_.getProxyUrl(this.address,e)}async ping(){let e=new AbortController,t=setTimeout(()=>e.abort(),1e3);try{let n=await(await fetch(this.address+`ping`,{method:`GET`,mode:`cors`,signal:e.signal})).text();return clearTimeout(t),n===`PONG`}catch{return!1}}},s_=class{constructor(e){this.player=e,this.logger=Z.log.createLogger(`localcache`)}async setSource(e,t){if(e?.type===`application/dash+xml`){t(null,e);return}if(this.player.localCache&&e?.src!==void 0){let t=await this.player.localCache().getActiveLocalCache();t!==null&&(this.logger.debug(`Using Local Cache`,t),e.src=t.getUrl(e.src))}t(null,e)}};Z.use(`*`,e=>new s_(e));var c_=`<?xml version="1.0" encoding="UTF-8"?><svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Artboard" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.9"><g id="Local-Cache" transform="translate(2.000000, 2.000000)"><rect id="Rectangle" fill="#FFFFFF" x="0" y="2.4" width="18.8" height="15.2"></rect><ellipse id="Oval" fill="#FFFFFF" cx="9.4" cy="2.4" rx="9.4" ry="2.4"></ellipse><ellipse id="Oval-Copy" fill="#FFFFFF" cx="9.4" cy="17.6" rx="9.4" ry="2.4"></ellipse><g id="Logo/Circle" transform="translate(2.500000, 3.000000)"><circle id="Oval" fill="#FFFFFF" cx="7" cy="7" r="7"></circle><polygon id="Fill-1" fill="#F8981D" points="4.66666667 2.33333333 4.66666667 11.4245258 10.0383286 6.87866667"></polygon></g></g></g></svg>`,l_=Z.getComponent(`Component`),u_=class extends l_{constructor(e,t){super(e,t),this.hide(),this.onLocalCacheChange=this.onLocalCacheChange.bind(this),e.ready(()=>{this.initialize()})}createEl(){return super.createEl(`div`,{className:`vjs-local-cache-indicator`,innerHTML:`<div class="vjs-local-cache-indicator-icon">${c_}</div>`},{title:`Streaming from ClickView Local Cache`})}initialize(){this.localCachePlugin=this.player_.localCache(),this.localCachePlugin&&(this.localCachePlugin.on(`localcachechanged`,this.onLocalCacheChange),this.player_.on(`dispose`,()=>{this.localCachePlugin.off(`localcachechanged`,this.onLocalCacheChange)}),this.onLocalCacheChange())}async onLocalCacheChange(){await this.localCachePlugin.getActiveLocalCache()?this.show():this.hide()}};Z.registerComponent(`localCacheIndicator`,u_);var d_=Z.getPlugin(`plugin`),f_=class extends d_{constructor(e,t){if(super(e),this.logger_=Z.log.createLogger(`localcache`),t===void 0)throw Error(`no options defined`);this.localCaches_=t.localCacheAddresses.map(e=>new o_(e)),this.player.ready(()=>{this.initialize(),t.enabled&&this.enable()})}get isEnabled(){return this.enabled_}enable(){this.enabled_=!0,this.resetActiveLocalCache()}disable(){this.enabled_=!1}getActiveLocalCache(){return this.enabled_?this.activeLocalCache_:null}resetActiveLocalCache(){this.clearActiveLocalCache(),this.activeLocalCache_=this.getActiveLocalCacheInternal()}clearActiveLocalCache(){this.activeLocalCache_&&(this.activeLocalCache_=null,this.onLocalCacheChange(null))}removeLocalCache(e){this.localCaches_=this.localCaches_.filter(t=>t!==e)}dispose(){super.dispose()}initialize(){this.player.controlBar.addChild(`localCacheIndicator`)}async handleNetworkError(){let e=await this.getActiveLocalCache();return e&&await e.ping()&&this.removeLocalCache(e),this.resetActiveLocalCache(),await this.getActiveLocalCache(),!0}async getActiveLocalCacheInternal(){let e=[],t=async t=>{await t.ping()&&e.push(t)};if(await Promise.all(this.localCaches_.map(e=>t(e))),e.length>0){let t=e[0];return this.onLocalCacheChange(t),t}return null}onLocalCacheChange(e){this.logger_.debug(`Local Cache changed`,e),this.trigger(`localcachechanged`,{localCache:e})}};Z.registerPlugin(`localCache`,f_);var p_=9e5,m_=Z.getPlugin(`plugin`),h_=class extends m_{constructor(e,t){super(e),this.playerApi=t.playerApi,this.fileToken=t.fileToken,this.logger=Z.log.createLogger(`video-signature-expiry-plugin`),this.bindErrorHandlers()}bindErrorHandlers(){this.onError=this.onError.bind(this),this.player.on(`error`,this.onError)}dispose(){this.player.off(`error`,this.onError),super.dispose()}async onError(){let e=this.player.error();if(!e||this.player.usingPlugin(`mediaSources`)&&this.player.mediaSources().hasPendingFallback())return;let t=e.code;if(!(t!==MediaError.MEDIA_ERR_NETWORK&&t!==MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED)){if(await this.player.localCache().getActiveLocalCache()){this.callErrorHandler(()=>this.player.localCache().handleNetworkError());return}this.callErrorHandler(()=>this.handleVideoSignatureExpiry())}}async handleVideoSignatureExpiry(){if(!this.playerApi||!this.fileToken||this.refetchedSourcesTimestamp+p_>Date.now())return!1;this.refetchedSourcesTimestamp=Date.now();let e=null;try{this.logger.debug(`Detected expired mp4 urls, attempting to refetch`);let t=`${this.playerApi.origin}/api/files?fileToken=${this.fileToken}`;e=await ze.get(t)}catch{return this.logger.error(`Failed to refetch expired mp4 urls`),!1}return this.logger.debug(`Mp4 urls successfully refetched`),this.player.mediaSources().repopulateSources(e),this.fileToken=e.fileToken,!0}async callErrorHandler(e){let t=this.player.currentTime(),n=!this.player.paused(),r=()=>{this.player.currentTime(t),n&&this.player.play(),this.player.error(null)};this.player.one(`loadedmetadata`,r),!await e()&&this.player.off(`loadedmetadata`,r)}};Z.registerPlugin(`handleNetworkErrors`,h_);var g_=Z.getPlugin(`plugin`),__=`cvplayer-show-subtitles`,v_=`cvplayer-selected-language`,y_=`cvplayer-subtitle-size`,b_=class extends g_{constructor(e,t){super(e),this.options=t;let n=this.player.textTrackSettings;this.defaultSubtitleSize=n.getSizeSetting(),this.initialize()}initialize(){this.applyUserPreferences=this.applyUserPreferences.bind(this),this.player.textTracks().length&&(this.applyUserPreferences(),this.bindEventListeners())}applyUserPreferences(){let e=!!this.options.showSubtitles,t=this.safeGet(__);if(t===`true`&&(e=!0),t===`false`&&(e=!1),e){let e=this.guessWhichTrack();e&&(e.mode=`showing`,this.player.trigger(`cv:languageselected`))}else this.hideSubtitles();let n=this.safeGet(y_);n||=this.options.subtitleSize??this.defaultSubtitleSize,this.player.options_.mobile&&(n=`medium`),this.player.textTrackSettings.setSizeSetting(n)}safeGet(e){if(P.hasLocalStorage())return P.get(e)}onSelectedLanguageChange(){let e=this.player.textTracks();for(let t=0;t<e.length;t++){let n=e[t];if(n.kind===`subtitles`&&n.mode===`showing`){P.set(__,`true`),P.set(v_,n.language),this.options.analyticsService?.logUserAction({language:n.language},{actionType:k.Select,entity:D.Subtitle,workflowPhase:T.Complete,descriptor:w.On});return}}P.set(__,`false`),P.remove(v_),this.options.analyticsService?.logUserAction({language:``},{actionType:k.Select,entity:D.Subtitle,workflowPhase:T.Complete,descriptor:w.Off,eventVersion:E.V3})}bindEventListeners(){P.hasLocalStorage()&&(this.onSelectedLanguageChange=this.onSelectedLanguageChange.bind(this),this.onChangeSubtitleSize=this.onChangeSubtitleSize.bind(this),this.player.on(`cv:languageselected`,this.onSelectedLanguageChange),this.player.on(`changesubtitlesize`,this.onChangeSubtitleSize),this.one(`dispose`,()=>{this.player.off(`cv:languageselected`,this.onSelectedLanguageChange),this.player.off(`changesubtitlesize`,this.onChangeSubtitleSize)}))}onChangeSubtitleSize(){let e=this.player.textTrackSettings;if(!e)return;let t=e.getSizeSetting();P.set(y_,t)}guessWhichTrack(){let e=this.safeGet(v_)||window.navigator.language,{language:t,country:n}=this.getLanguageParts(e),r,i,a=this.player.textTracks();for(let e=0;e<a.length;e++){let o=a[e];if(o.kind!==`subtitles`)continue;let{language:s,country:c}=this.getLanguageParts(o.language);if(s===t&&(r=o,c||(i=o),c===n))return r}return i||r||null}getLanguageParts(e){let t=e.toLowerCase().split(`-`);return{language:t[0],country:t[1]}}hideSubtitles(){let e=this.player.textTracks();for(let t=0;t<e.length;t++){let n=e[t];if(n.kind!==`subtitles`)return;n.mode=`disabled`}}previewModeSubtitles(){let e=this.guessWhichTrack();e&&(e.mode=`showing`),this.player.off(`changesubtitlesize`,this.onChangeSubtitleSize),this.player.textTrackSettings.setSizeSetting(`large`),this.player.on(`changesubtitlesize`,this.onChangeSubtitleSize)}};Z.registerPlugin(`persistSubtitleSettingsPlugin`,b_);var x_=Z.getPlugin(`plugin`),S_=class extends x_{constructor(e,t){super(e),this.enabled=!0,this.options=t,this.player.ready(()=>this.initialize())}async initialize(){this.onQualityChanged=this.onQualityChanged.bind(this),this.onQualityLevelsChanged=this.onQualityLevelsChanged.bind(this),this.player.on(`quality-changed`,this.onQualityChanged),this.player.on(`quality-levels-changed`,this.onQualityLevelsChanged),await this.onQualityLevelsChanged()}disable(){this.enabled=!1}enable(){this.enabled=!0}async applyUserPreferences(){let e=this.player.qualityManager(),t=await this.getActiveLocalCache(),n=t?t.playbackQuality??ng.resolveProgressive(this.options,!0):null;if(e.supportsAuto()){if(n){e.selectPreferred(n);return}let t=ng.resolveDash();if(t===`auto`){e.selectAuto();return}e.selectPreferred(t);return}let r=n??ng.resolveProgressive(this.options,!!t);r&&e.selectPreferred(r)}async onQualityLevelsChanged(){this.enabled&&await this.applyUserPreferences()}async onQualityChanged(e,t){if(!this.enabled||t?.origin!==`user`)return;let n=this.player.qualityManager(),r=n.isAuto()?$h:n.getSelected()?.quality;r&&(await this.persistQualitySelection(r),this.logQualitySelection(r))}async persistQualitySelection(e){if(this.player.qualityManager().supportsAuto()){e===`auto`?ng.clearDashLock():ng.storeDashLock(e);return}e!==`auto`&&ng.storeProgressive(e,await this.isLocalCacheActive())}logQualitySelection(e){this.options.analyticsService.logUserAction({quality:e.toString(),playerMode:lg(this.player),playerWidth:this.player.currentWidth(),playerHeight:this.player.currentHeight(),isQualityUserPreference:ng.hasStoredPreference()},{actionType:k.Select,workflowPhase:T.Complete,descriptor:C.ChangeResolution,entity:D.Resolution,eventVersion:E.V3})}async isLocalCacheActive(){return!!await this.getActiveLocalCache()}getActiveLocalCache(){return this.player.usingPlugin(`localCache`)?this.player.localCache().getActiveLocalCache():Promise.resolve(null)}dispose(){this.player.off(`quality-changed`,this.onQualityChanged),this.player.off(`quality-levels-changed`,this.onQualityLevelsChanged),super.dispose()}};Z.registerPlugin(`persistQualitySettingsPlugin`,S_);var C_=Z.getComponent(`Component`),w_=class extends C_{constructor(e,t){super(e,t)}createEl(){return Z.dom.createEl(`div`,{className:`cv-progress-reporter-item`})}update(){let e=this.options_.event,t=this.player_.duration(),n=(e.end.time-e.start.time)/t;this.el_.style.width=n*100+`%`;let r=e.start.time/t;this.el_.style.left=r*100+`%`}},T_=class extends C_{constructor(...e){super(...e),this.events_=[]}update(){let e=this.children();for(let t=e.length;t>0;t--)this.removeChild(e[t]);this.events_.forEach(e=>{let t=new w_(this.player(),{event:e});this.addChild(t),t.update()})}addEvents(e){this.events_.push(...e),this.update()}createEl(){return Z.dom.createEl(`div`,{className:`cv-progress-reporter-display`})}},E_=Z.getPlugin(`plugin`),D_=5e3,O_=200,k_=`ArrowUpArrowUpArrowDownArrowDownArrowLeftArrowRightArrowLeftArrowRightba`,$={PLAY:`play`,PLAYING:`playing`,PAUSE:`pause`,SEEKING:`seeking`,SEEK_START:`seekstart`,SEEK_END:`seekend`,ENDED:`ended`,PAUSED_SEEK:`pausedseek`,TIME_UPDATE:`timeupdate`,WAITING:`waiting`,SEEKED:`seeked`},A_=class extends E_{constructor(e,t){super(e,t),this.eventBuffer=[],this.latestTime=0,this.lastPlayingTime=0,this.isPlaying=!1,this.isSeeking=!1,this.hasEnded=!1,this.isBrowserSeeking=!1,this.hasPlayed=!1,this.bufferingStartTime=null,this.bufferingStartContext=null,this.completedBufferingEvents=[],this.shouldLogPlayOnTimeUpdate=!1,this.options=t,this.player.ready(()=>this.initialize())}initialize(){this.validateOptions(),this.bindListeners(),this.startInterval(),this.addEasterEgg()}validateOptions(){if(typeof this.options.onFlush!=`function`)throw Error(`Please provide the onFlush option`)}bindListeners(){let e={[$.PLAY]:()=>this.onPlay(),[$.PAUSE]:()=>this.onPause(),[$.TIME_UPDATE]:()=>this.onTimeUpdate(),[$.SEEKING]:()=>this.onSeeking(),[$.ENDED]:()=>this.onEnded(),[$.PLAYING]:()=>this.onPlaying(),[$.WAITING]:()=>this.onWaiting(),[$.SEEKED]:()=>this.onSeeked()},t=Object.keys(e);t.forEach(t=>this.player.on(t,e[t])),this.one(`dispose`,()=>{t.forEach(t=>this.player.off(t,e[t]))}),this.flushBuffer=this.flushBuffer.bind(this),this.player.on(`flushprogress`,this.flushBuffer)}startInterval(){let e=this.options.interval||D_;this.interval=window.setInterval(()=>this.flushBuffer(),e),this.player.one(`dispose`,()=>window.clearInterval(this.interval))}addEasterEgg(){let e=``,t,n=n=>{e+=n.key,e===k_&&this.addDisplay(),window.clearTimeout(t),t=window.setTimeout(()=>{e=``},500)},r=!1,i,a=()=>{r=!0,i=window.setTimeout(()=>{r&&this.addDisplay()},1e4)};function o(){r=!1,window.clearTimeout(i)}this.player.el().addEventListener(`keyup`,n);let s=this.player.getChild(`Collapserator`).getChild(`PlayToggle`);s.on(`touchstart`,a),s.on(`touchend`,o),this.player.one(`dispose`,()=>{this.player?.el()?.removeEventListener(`keyup`,n),s.off(`touchstart`,a),s.off(`touchend`,o)})}addDisplay(){this.progressReporterDisplay||(this.progressReporterDisplay=new T_(this.player),this.player.addChild(this.progressReporterDisplay),this.player.options_.inactivityTimeout=0,this.player.one(`dispose`,()=>{this.progressReporterDisplay=void 0}))}onPlay(){if(this.isPlaying=!0,this.isSeeking){this.logEvent($.SEEK_END),this.isSeeking=!1;return}if(this.hasEnded){this.shouldLogPlayOnTimeUpdate=!0,this.hasEnded=!1;return}this.logEvent($.PLAY)}onPause(){this.isSeeking||(this.pauseTimeout=window.setTimeout(()=>{this.isPlaying=!1,this.completeBufferingEvent(),this.logEvent($.PAUSE),delete this.pauseTimeout},50))}onTimeUpdate(){this.shouldLogPlayOnTimeUpdate&&(this.shouldLogPlayOnTimeUpdate=!1,this.logEvent($.PLAY)),!(!this.isPlaying||this.isSeeking)&&this.logEvent($.PLAYING)}onSeeking(){this.isBrowserSeeking=!0,this.pauseTimeout&&(this.latestTime=this.previousLatestTime,window.clearTimeout(this.pauseTimeout),delete this.pauseTimeout),this.isPlaying||this.logEvent($.PAUSED_SEEK),!(this.isSeeking||!this.isPlaying)&&(this.isSeeking=!0,this.logEvent($.SEEK_START))}onEnded(){this.hasEnded=!0,this.logEvent($.ENDED)}onPlaying(){this.isSeeking=!1,this.isPlaying=!0,this.hasPlayed=!0,this.completeBufferingEvent()}onWaiting(){this.startBufferingTracking()}onSeeked(){this.isBrowserSeeking=!1}startBufferingTracking(){this.bufferingStartTime===null&&(this.bufferingStartTime=performance.now(),this.bufferingStartContext={currentTime:Math.round(this.player.currentTime()*1e3)/1e3,type:this.getBufferingType(),bufferedAhead:Math.round(this.getBufferedAhead()*1e3)/1e3})}getBufferingType(){return this.hasPlayed?this.isBrowserSeeking?`seek`:`stall`:`initial`}completeBufferingEvent(){if(this.bufferingStartTime===null||this.bufferingStartContext===null)return;let e=performance.now()-this.bufferingStartTime;(this.bufferingStartContext.type!==`seek`||e>O_)&&this.completedBufferingEvents.push({duration:Math.round(e)/1e3,...this.bufferingStartContext}),this.bufferingStartTime=null,this.bufferingStartContext=null}getBufferedAhead(){let e=this.player.currentTime(),t=this.player.buffered();for(let n=0;n<t.length;n++)if(t.start(n)<=e&&e<=t.end(n))return t.end(n)-e;return 0}logEvent(e){if(!this.player)return;let t=this.player.currentTime();e===$.SEEK_START&&(t=this.latestTime),this.previousLatestTime=this.latestTime,this.latestTime=this.player.currentTime(),this.eventBuffer.push({time:t,type:e})}shouldUseCarriedOverTime(e){return this.lastPlayingTime&&(e===$.PLAYING||e===$.PLAY)}shouldSaveCarriedOverTime(e){return e===$.PLAYING||e===$.PAUSE}shouldClearCarriedOverTime(e){return e===$.ENDED||e===$.PAUSED_SEEK}flushBuffer(){let e=this.buildEventPairs(),t=this.collectBufferingStats();if(!e.length&&!t.length)return;let n=!e.length||this.validateEvents(e)?e:[];this.options.onFlush(n,t),this.player?.trigger(`progressflush`),this.progressReporterDisplay?.addEvents(n)}buildEventPairs(){let e=[],t={};for(;this.eventBuffer.length;){let n=this.eventBuffer.shift();if(this.shouldClearCarriedOverTime(n.type)){delete this.lastPlayingTime;continue}if(!t.start){this.shouldUseCarriedOverTime(n.type)&&(n.time=this.lastPlayingTime,delete this.lastPlayingTime),t.start=n;continue}n.type===$.PLAYING&&this.eventBuffer.length>0||(this.shouldSaveCarriedOverTime(n.type)&&(this.lastPlayingTime=n.time),t.end=n,e.push(t),t={})}return this.eventBuffer=[],e}collectBufferingStats(){let e=this.completedBufferingEvents;return this.completedBufferingEvents=[],e}validateEvents(e){let t=0;e.forEach(e=>{t+=e.end.time-e.start.time});let n=this.options.interval||D_;return n/=1e3,n+=.5,n*=this.player.playbackRate(),t<n}dispose(){this.player.off(`flushprogress`,this.flushBuffer),this.flushBuffer(),super.dispose()}};Z.registerPlugin(`progressReporterPlugin`,A_);var j_=Z.getComponent(`Component`),M_=class extends j_{createEl(){return Z.dom.createEl(`span`,{innerHTML:`<span class="vjs-icon-placeholder"></span>`,className:`cv-drag-handle vjs-control vjs-button`},{})}},N_=[`top`,`left`,`right`,`bottom`],P_={top:`Top`,left:`Left`,right:`Right`,bottom:`Bottom`},F_=Z.getComponent(`Component`),I_=class extends F_{constructor(e,t){super(e,t),this.bindEventListeners()}createEl(){return super.createEl(`div`,{},{class:`cv-drop-target cv-drop-${this.options_.side}`})}bindEventListeners(){let e=this.el(),t=e=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`,this.addClass(`cv-drag-over`)},n=e=>{e.preventDefault(),this.removeClass(`cv-drag-over`),this.player_.whiteboardModePlugin().setWhiteboardMode(this.options_.side)},r=()=>{this.removeClass(`cv-drag-over`)};e.addEventListener(`dragover`,t),e.addEventListener(`drop`,n),e.addEventListener(`dragleave`,r),this.on(`dispose`,()=>{e.removeEventListener(`dragover`,t),e.removeEventListener(`drop`,n),e.removeEventListener(`dragleave`,r)})}},L_=class extends F_{constructor(e,t){super(e,t),this.addChildren()}addChildren(){N_.forEach(e=>{this.addChild(new I_(this.player_,{side:e}))})}},R_=Z.getComponent(`MenuItem`),z_=class extends R_{constructor(e,t){super(e,t)}handleClick(){this.player_.whiteboardModePlugin().setWhiteboardMode(this.options_.side)}},B_=Z.getComponent(`MenuButton`),V_=class extends B_{constructor(...e){super(...e),this.alwaysCollapsed=!0,this.isCollapsed=!1,this.isCollabsible=!0}createItems(){let e=this.player_.whiteboardModePlugin().side,t=[new ih(this.player_,{label:`Video Controls`})];return N_.forEach(n=>{t.push(new z_(this.player_,{side:n,label:P_[n],selectable:!0,multiSelectable:!1,selected:n===e}))}),t}buildWrapperCSSClass(){return`cv-menu-small cv-has-left-icons ${super.buildWrapperCSSClass()}`}getCollabsibleName(){return`Video Controls`}getCollabsibleValue(){return P_[this.player_.whiteboardModePlugin().side]}showInCollabsibleMenu(){return this.player_.whiteboardModePlugin().isEnabled()?this.player_.isFullscreen():!1}showCollapsibleMenu(){B_.prototype.handleClick.apply(this)}},H_=`cv-whiteboard-side`,U_=Z.getPlugin(`plugin`),W_=class extends U_{constructor(e){super(e),this.side=`bottom`,this.enabled=!0,this.player.ready(()=>{this.initialize()})}initialize(){if(!this.player.options_.mobile){if(P.hasLocalStorage()){let e=P.get(H_);e&&(this.side=e)}this.initCollapserator(),this.initDragTargets(),this.initFullscreenListener()}}initCollapserator(){if(this.player.viewTranscriptPlugin?.().isTranscriptOn())return;let e=this.player.getChild(`collapserator`);this.dragHandle=new M_(this.player),this.button=new V_(this.player),e.addChild(this.dragHandle),e.addChild(this.button),this.player.trigger(`cv-updatecog`);let t=()=>{this.player.isFullscreen()&&e.el().setAttribute(`draggable`,`true`)},n=()=>{this.player.isFullscreen()&&e.el().setAttribute(`draggable`,`false`)},r=e=>{this.player.isFullscreen()&&(this.player.addClass(`cv-dragging`),e.dataTransfer.setData(`text/plain`,`handle`))},i=()=>{this.player.isFullscreen()&&(this.player.removeClass(`cv-dragging`),e.el().setAttribute(`draggable`,`false`))};this.dragHandle.el().addEventListener(`mousedown`,t),this.dragHandle.el().addEventListener(`mouseup`,n),e.el().addEventListener(`dragstart`,r),e.el().addEventListener(`dragend`,i),this.on(`dispose`,()=>{this.dragHandle.el().removeEventListener(`mousedown`,t),this.dragHandle.el().removeEventListener(`mouseup`,n),e.el().removeEventListener(`dragstart`,r),e.el().removeEventListener(`dragend`,i)})}initDragTargets(){this.player.addChild(new L_(this.player))}initFullscreenListener(){this.update=this.update.bind(this),this.player.on(`fullscreenchange`,this.update),this.player.on(`cv-transcript-toggle`,this.update),this.one(`dispose`,()=>{this.player.off(`fullscreenchange`,this.update)})}setWhiteboardMode(e){this.side=e,this.button.update(),P.hasLocalStorage()&&P.set(H_,e),this.player.trigger(`cv-whiteboard-change`),this.update()}setEnabled(e){this.enabled=e,this.update()}isEnabled(){return this.enabled}getSide(){return this.isEnabled()?this.side:`bottom`}update(){if(this.player.removeClass(`cv-whiteboard-top`),this.player.removeClass(`cv-whiteboard-left`),this.player.removeClass(`cv-whiteboard-right`),Z.dom.removeClass(window.document.documentElement,`cv-whiteboard-html-font-size`),this.player.trigger(`resizemenus`),this.player.trigger(`cv-updatecog`),!this.isEnabled()){this.dragHandle?.hide();return}this.dragHandle?.show();let e=this.getSide();!this.player.isFullscreen()||e===`bottom`||(this.player.addClass(`cv-whiteboard-${e}`),Z.dom.addClass(window.document.documentElement,`cv-whiteboard-html-font-size`))}};Z.registerPlugin(`whiteboardModePlugin`,W_);var G_=Z.getPlugin(`plugin`),K_=[`subtitles`,`captions`],q_=class extends G_{constructor(e){super(e)}deferMenu(){let e={subtitles:this.buildSubtitles(),qualities:this.buildQualities(),playbackSpeeds:this.buildPlaybackSpeeds()};this.player.trigger(`cv-defer-menus`,e)}buildSubtitles(){let e=[],t=!1,n=this.player.textTracks();for(let r=0;r<n.length;r++){let i=n[r];if(!K_.includes(i.kind))continue;let a=i.mode===`showing`;e.unshift({id:i.label,name:i.label,selected:a}),a&&(t=!0)}return e.push({id:null,name:`Off`,selected:!t}),e}buildQualities(){let e=this.player.qualityManager(),t=e.getSelected()?.id,n=e.isAuto();return(e.supportsAuto()?[{id:$h,name:`Auto`,selected:n}]:[]).concat(e.getLevels().map(e=>({id:e.id,name:e.displayName,selected:!n&&e.id===t})))}buildPlaybackSpeeds(){let e=this.player.playbackRate();return this.player.options_.playbackRates.map(t=>({id:t,name:t+`x`+(t===1?` (Normal)`:``),selected:e===t}))}};Z.registerPlugin(`deferMenusPlugin`,q_);var J_=`No skipping ahead!`,Y_=`PreventScrubbingTooltip`,X_=1e3,Z_=Z.getComponent(`Component`),Q_=`cv-prevent-scrubbing-tooltip-show`,$_=`cv-prevent-scrubbing-tooltip-remove-transition`,ev=class extends Z_{constructor(...e){super(...e),this.isShowing=!1}buildCSSClass(){return`cv-prevent-scrubbing-tooltip ${super.buildCSSClass()}`}createEl(e,t,n){return super.createEl(e,{...t,className:this.buildCSSClass(),innerText:J_},n)}show(){this.isShowing||=(this.player_.userActive(!0),this.addClass(Q_),!0)}hide(e=!1){this.isShowing&&=(e&&(this.addClass($_),window.requestAnimationFrame(()=>{this.removeClass($_)})),this.player_.userActive(!1),this.removeClass(Q_),!1)}};Z.registerComponent(Y_,ev);var tv=Z.getPlugin(`plugin`),nv=1.25,rv=class extends tv{constructor(e,t){super(e),this.originalPlaybackRates=[],this.isEnabled=!1,this.isPreviewing=!1;let{furthestVisitedTime:n=0,isEnabled:r=!1}=t??{};this.playerCurrentTimeFn=this.player.currentTime.bind(e),this.player.currentTime=this.currentTime.bind(this),this.onTimeUpdate=this.onTimeUpdate.bind(this),this.furthestVisitedTime=n,this.isEnabled=r,r&&this.enable()}dispose(){this.player.currentTime=this.playerCurrentTimeFn,this.isEnabled&&(this.disable(),super.dispose())}togglePreview(e){if(e){if(this.configurePreview(),this.isEnabled)return;this.enable(),this.isPreviewing=!0}else this.disable(),this.isPreviewing=!1}configurePreview(){this.player.currentTime(0),this.furthestVisitedTime=0}enable(){this.player.on(`timeupdate`,this.onTimeUpdate),this.getProgressControl().addChild(Y_),this.isEnabled=!0,this.setLimitedPlaybackRates()}disable(){this.player.off(`timeupdate`,this.onTimeUpdate),this.getProgressControl().removeChild(this.getPreventScrubbingTooltip()),this.isEnabled=!1,this.restorePlaybackRates()}setLimitedPlaybackRates(){this.originalPlaybackRates=this.player.playbackRates();let e=this.originalPlaybackRates.filter(e=>e<=nv);this.player.playbackRates(e),this.player.playbackRate()>nv&&this.player.persistPlaybackRatePlugin?.().setPlaybackRateWithoutPersisting(1),this.player.trigger(`resizemenus`)}restorePlaybackRates(){this.player.playbackRates(this.originalPlaybackRates),this.player.trigger(`resizemenus`)}getProgressControl(){return this.player.controlBar.getChild(`progressControl`)}onTimeUpdate(){let e=this.playerCurrentTimeFn();e>this.furthestVisitedTime&&(this.furthestVisitedTime=e)}currentTime(e,...t){if(typeof e!=`number`)return this.playerCurrentTimeFn(e,...t);if(!this.isEnabled){this.playerCurrentTimeFn(e,...t);return}let n=this.getPreventScrubbingTooltip(),r=this.getSeekBar()?.getChild(`MouseTimeDisplay`);if(e>this.furthestVisitedTime){n.show(),je(n.hide,X_,!1,n)(),r?.hide(),this.playerCurrentTimeFn(this.furthestVisitedTime,...t);return}r?.show(),n.hide(!0),this.playerCurrentTimeFn(e,...t)}getPreventScrubbingTooltip(){return this.getProgressControl().getChild(Y_)}getSeekBar(){return this.player.controlBar.getChild(`ProgressControl`)?.getChild(`SeekBar`)}};Z.registerPlugin(`preventScrubbingPlugin`,rv);var iv=Z.getComponent(`Component`),av=Z.getComponent(`ClickableComponent`),ov=`
239
+ `,window.clearTimeout(this.timeoutId),this.timeoutId=window.setTimeout(()=>{this.removeText()},t)}removeText(){this.el_.className=this.buildCSSClass(),this.el_.innerHTML=``}};Z.registerComponent(`TouchControls`,Jg);var Yg=Z.getPlugin(`plugin`),Xg=300,Zg=class extends Yg{constructor(e){super(e),this.doubleTouchCount=0,this.seekStartTime=0,this.directionModifier=0,this.bindFunctions(),this.player.ready(()=>this.initialize())}bindFunctions(){this.onTouchStart=this.onTouchStart.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this),this.reBindEventListeners=this.reBindEventListeners.bind(this),this.unBindEventListeners=this.unBindEventListeners.bind(this)}initialize(){this.player.addChild(`TouchControls`),this.touchControls=this.player.getChild(`TouchControls`),this.player.on(`ready`,this.reBindEventListeners),this.one(`dispose`,()=>{this.player.off(`ready`,this.reBindEventListeners)}),this.reBindEventListeners()}reBindEventListeners(){this.unBindEventListeners(),this.tech=this.player.tech(!0),this.tech.name()===`Html5`&&(this.tech.on(`touchstart`,this.onTouchStart),this.tech.on(`touchend`,this.onTouchEnd))}unBindEventListeners(){this.tech&&this.tech.name()===`Html5`&&(this.tech.off(`touchstart`,this.onTouchStart),this.tech.off(`touchend`,this.onTouchEnd))}dispose(){super.dispose(),this.unBindEventListeners()}onTouchStart(e){this.touchStartTime=e.timeStamp,this.userActive=this.player.userActive()}onTouchEnd(e){if(e.changedTouches.length){if(e.timeStamp-this.lastTouchTime<Xg){this.onDoubleTouch(e),this.lastTouchTime=e.timeStamp;return}if(this.resetProperties(),this.lastTouchTime=e.timeStamp,e.timeStamp-this.touchStartTime<Xg){window.setTimeout(()=>{this.doubleTouchCount||(this.player.paused()?this.player.play():this.userActive&&this.player.pause())},Xg);return}}}resetProperties(){this.doubleTouchCount=0,this.seekStartTime=0,this.directionModifier=0}onDoubleTouch(e){let t=this.player.el().getBoundingClientRect(),n=t.left+t.width/2;if(this.doubleTouchCount===0&&(this.seekStartTime=this.player.currentTime(),e.changedTouches[0].pageX<n?this.directionModifier=-1:this.directionModifier=1),this.doubleTouchCount++,this.directionModifier<0){if(this.doubleTouchCount*10>this.seekStartTime+10)return;this.touchControls.setUi(-this.doubleTouchCount,Xg*3),this.player.currentTime(this.player.currentTime()-10);return}let r=this.player.duration()-this.seekStartTime;this.doubleTouchCount*10>r+10||(this.touchControls.setUi(this.doubleTouchCount,Xg*3),this.player.currentTime(this.player.currentTime()+10))}};Z.registerPlugin(`touchControls`,Zg);var Qg=new Set([`segment`,`segment-media-initialization`,`segment-key`,`dash-sidx`]),$g=`urn:clickview:dash:extensions:2026`;function e_(e){let t=new Map;if(!e)return t;let n=new DOMParser().parseFromString(e,`text/xml`);return Array.from(n.getElementsByTagName(`Representation`)).forEach(e=>{let n=e.getAttribute(`id`),r=e.getAttributeNS($g,`qualityLabel`),i=parseInt(e.getAttributeNS($g,`qualityTier`));!n||!r||isNaN(i)||t.set(n,{quality:i,displayName:r})}),t}var t_=class{constructor(e,t){this.levels=[],this.manifestProfiles=new Map,this.autoEnabled=!0,this.lockedId=null,this.onScreenId=null,this.metadataTrack=null,this.player=e,this.notifier=t,this.onLevelsUpdated=this.onLevelsUpdated.bind(this),this.onSelectionChanged=this.onSelectionChanged.bind(this),this.onCueChange=this.onCueChange.bind(this),this.onTrackAdded=this.onTrackAdded.bind(this),this.onTrackRemoved=this.onTrackRemoved.bind(this),this.trackList=this.player.textTracks(),this.trackList.addEventListener(`addtrack`,this.onTrackAdded),this.trackList.addEventListener(`removetrack`,this.onTrackRemoved),this.bindMetadataTrack(dg.getTrack(this.player));let n=this.getQualityLevelList();n&&(n.on(`addqualitylevel`,this.onLevelsUpdated),n.on(`removequalitylevel`,this.onLevelsUpdated),n.on(`change`,this.onSelectionChanged),this.rebuildLevels())}getLevels(){return this.levels}getSelected(){return this.lockedId===null?this.getActive():this.levels.find(e=>e.id===this.lockedId)??null}getActive(){let e=dg.getOnScreenSegment(this.player)?.playlist??this.getDownloadingListLevel()?.id;return e===void 0?null:this.levels.find(t=>t.id===e)??null}select(e,t){let n=this.getListLevels(),r=n.find(t=>t.id===e);if(!r)return;let i=!this.autoEnabled&&this.lockedId===e&&n.every(t=>t.enabled===(t.id===e));this.autoEnabled=!1,this.lockedId=e,!(i&&!t?.force)&&(this.applyEnabledFlags(n,r,()=>!1,!0),this.notifier.notifyQualityChanged(t?.origin??`system`))}supportsAuto(){return!0}isAuto(){return this.autoEnabled}selectAuto(e){this.autoEnabled||(this.autoEnabled=!0,this.lockedId=null,this.applyEnabledFlags(this.getListLevels(),this.getDownloadingListLevel(),()=>!0,!1),this.notifier.notifyQualityChanged(e?.origin??`system`))}applyEnabledFlags(e,t,n,r){let i=this.getPlaylistController();i&&(i.waitingForFastQualityPlaylistReceived_=!1),e.forEach(e=>{e!==t&&(e.enabled=n(e))}),t&&(i&&(i.waitingForFastQualityPlaylistReceived_=r),t.enabled=!1,t.enabled=!0,i&&(i.waitingForFastQualityPlaylistReceived_=!1))}getPlaylistController(){let e=this.player.tech(!0)?.vhs?.playlistController_;return e&&`waitingForFastQualityPlaylistReceived_`in e?e:null}getDownloadingListLevel(){let e=this.getQualityLevelList();return e&&e.selectedIndex>=0?e[e.selectedIndex]:null}bindMetadataTrack(e){e!==this.metadataTrack&&(this.metadataTrack?.removeEventListener(`cuechange`,this.onCueChange),this.metadataTrack=e,this.onScreenId=null,this.metadataTrack?.addEventListener(`cuechange`,this.onCueChange))}onTrackAdded(e){dg.isTrack(e.track)&&this.bindMetadataTrack(e.track)}onTrackRemoved(e){e.track===this.metadataTrack&&this.bindMetadataTrack(null)}onCueChange(){let e=dg.getOnScreenSegment(this.player)?.playlist??null;e!==this.onScreenId&&(this.onScreenId=e,this.notifier.notifyQualityChanged(`system`))}onLevelsUpdated(){this.rebuildLevels(),this.notifier.notifyLevelsChanged()}onSelectionChanged(){this.notifier.notifyQualityChanged(`system`)}rebuildLevels(){this.refreshManifestProfiles();let e=this.getManifestIdsByLevelId(),t=[];this.getListLevels().forEach(n=>{let r=this.toQualityLevel(n,e.get(n.id));r&&t.push(r)}),this.levels=t.sort((e,t)=>t.quality-e.quality)}toQualityLevel(e,t){let n=t===void 0?void 0:this.manifestProfiles.get(t),r=n?.quality??e.height;return r===void 0?null:{id:e.id,quality:r,displayName:n?.displayName??`${r}p`,preset:t,width:e.width,height:e.height,bitrate:e.bitrate,frameRate:e.frameRate}}refreshManifestProfiles(){let e=this.player.tech(!0)?.vhs?.playlists?.mainXml_;e!==this.parsedManifestXml&&(this.parsedManifestXml=e,this.manifestProfiles=e_(e))}getManifestIdsByLevelId(){let e=new Map;return(this.player.tech(!0)?.vhs?.representations?.()??[]).forEach(t=>{let n=t.playlist?.attributes?.NAME;n!==void 0&&e.set(t.id,n)}),e}getListLevels(){let e=this.getQualityLevelList();return e?Array.from(e):[]}getQualityLevelList(){return this.player.qualityLevels?.()??null}dispose(){this.trackList.removeEventListener(`addtrack`,this.onTrackAdded),this.trackList.removeEventListener(`removetrack`,this.onTrackRemoved),this.bindMetadataTrack(null);let e=this.getQualityLevelList();e&&(e.off(`addqualitylevel`,this.onLevelsUpdated),e.off(`removequalitylevel`,this.onLevelsUpdated),e.off(`change`,this.onSelectionChanged))}},n_=class{constructor(e,t,n,r){this.player=e,this.notifier=t,this.files=n,this.currentProfile=r}getLevels(){return this.files.map(e=>({id:e.profile,quality:e.quality,displayName:e.label??`${e.quality}p`,preset:e.profile}))}getSelected(){return this.getLevels().find(e=>e.id===this.currentProfile)??null}getActive(){return this.getSelected()}select(e,t){if(e===this.currentProfile&&!t?.force)return;let n=this.files.find(t=>t.profile===e);n&&(this.currentProfile=n.profile,ag.applyFile(this.player,n),this.notifier.notifyQualityChanged(t?.origin??`system`))}supportsAuto(){return!1}isAuto(){return!1}selectAuto(){}repopulate(e){let t=this.currentProfile;this.files=e;let n=this.files.find(e=>e.profile===t)??this.files[0];this.currentProfile=n?.profile??null,n&&ag.applyFile(this.player,n),this.notifier.notifyLevelsChanged()}dispose(){}},r_=Z.getPlugin(`plugin`),i_=class extends r_{constructor(e,t){super(e),this.options=t,this.files=ag.sortFilesByQuality(t.files),this.player.ready(()=>this.initialize())}async initialize(){this.onLoadStart=this.onLoadStart.bind(this),this.onLocalCacheChanged=this.onLocalCacheChanged.bind(this),this.onXhrHooksReady=this.onXhrHooksReady.bind(this),this.onVhsRequest=this.onVhsRequest.bind(this);let e=this.getLocalCachePlugin();if(this.player.on(`loadstart`,this.onLoadStart),this.player.on(`xhr-hooks-ready`,this.onXhrHooksReady),this.player.one(`playing`,()=>this.hasPlayed=!0),e?.on(`localcachechanged`,this.onLocalCacheChanged),this.activeLocalCache=e?await e.getActiveLocalCache():null,!this.player)return;let{sources:t,defaultFile:n}=ag.planSources({files:this.files,viewKey:this.options.viewKey,settings:this.options.settings,activeLocalCache:this.activeLocalCache});n&&(this.defaultProfile=n.profile),this.player.src(t)}repopulateSources(e){if(this.files=ag.sortFilesByQuality(e),this.activeMode===`progressive`){this.getProgressiveController()?.repopulate(this.files.progressive);return}let t=ag.getDashSource(this.files,this.options.viewKey,this.activeLocalCache);if(t){rg(this.player,t);return}let n=ag.getDefaultProgressiveFile(this.files,this.options.settings);this.applyProgressiveFile(n)}hasPendingFallback(){return this.activeMode===`dash`&&!this.hasPlayed&&this.files.progressive.length>0}onLoadStart(){let e=this.player.currentType()===`application/dash+xml`?`dash`:`progressive`;if(e===this.activeMode)return;this.activeMode=e;let t=this.player.qualityManager();if(e===`dash`){t.setController(new t_(this.player,t));return}t.setController(new n_(this.player,t,this.files.progressive,this.defaultProfile))}onXhrHooksReady(){this.player.tech(!0)?.vhs?.xhr.onRequest(this.onVhsRequest)}onVhsRequest(e){return this.activeLocalCache&&Qg.has(e.requestType)&&(e.uri=this.activeLocalCache.getUrl(e.uri)),e}onLocalCacheChanged(e,t){let n=t?.localCache??null;if(this.activeLocalCache=n,!this.activeMode)return;if(this.activeMode===`dash`){let e=ag.getDashSource(this.files,this.options.viewKey,n);e&&rg(this.player,e);return}let r=this.player.qualityManager(),i=(n?.playbackQuality?Yh(r.getLevels(),n.playbackQuality):null)??r.getSelected();i&&r.select(i.id,{force:!0})}applyProgressiveFile(e){this.defaultProfile=e.profile,ag.applyFile(this.player,e)}getProgressiveController(){let e=this.player.qualityManager().getController();return e instanceof n_?e:null}getLocalCachePlugin(){return this.player.usingPlugin(`localCache`)?this.player.localCache():null}dispose(){this.player.off(`loadstart`,this.onLoadStart),this.player.off(`xhr-hooks-ready`,this.onXhrHooksReady),this.getLocalCachePlugin()?.off(`localcachechanged`,this.onLocalCacheChanged),super.dispose()}};Z.registerPlugin(`mediaSources`,i_);var a_=class e{static getProxyUrl(t,n){return n?e.unwrapProxyUrl(n)===null?t+`cache?file=`+encodeURIComponent(n):n:null}static getOriginalUrl(t){return e.unwrapProxyUrl(t)??t}static unwrapProxyUrl(e){if(!e)return null;let t;try{t=new URL(e)}catch{return null}return t.pathname.endsWith(`/cache`)&&t.searchParams.get(`file`)||null}},o_=class{constructor(e){this.name=e.name,this.playbackProfile=e.playbackProfile,this.playbackQuality=e.playbackQuality,this.address=new URL(e.httpsAddress)}getUrl(e){return a_.getProxyUrl(this.address,e)}async ping(){let e=new AbortController,t=setTimeout(()=>e.abort(),1e3);try{let n=await(await fetch(this.address+`ping`,{method:`GET`,mode:`cors`,signal:e.signal})).text();return clearTimeout(t),n===`PONG`}catch{return!1}}},s_=class{constructor(e){this.player=e,this.logger=Z.log.createLogger(`localcache`)}async setSource(e,t){if(e?.type===`application/dash+xml`){t(null,e);return}if(this.player.localCache&&e?.src!==void 0){let t=await this.player.localCache().getActiveLocalCache();t!==null&&(this.logger.debug(`Using Local Cache`,t),e.src=t.getUrl(e.src))}t(null,e)}};Z.use(`*`,e=>new s_(e));var c_=`<?xml version="1.0" encoding="UTF-8"?><svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Artboard" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.9"><g id="Local-Cache" transform="translate(2.000000, 2.000000)"><rect id="Rectangle" fill="#FFFFFF" x="0" y="2.4" width="18.8" height="15.2"></rect><ellipse id="Oval" fill="#FFFFFF" cx="9.4" cy="2.4" rx="9.4" ry="2.4"></ellipse><ellipse id="Oval-Copy" fill="#FFFFFF" cx="9.4" cy="17.6" rx="9.4" ry="2.4"></ellipse><g id="Logo/Circle" transform="translate(2.500000, 3.000000)"><circle id="Oval" fill="#FFFFFF" cx="7" cy="7" r="7"></circle><polygon id="Fill-1" fill="#F8981D" points="4.66666667 2.33333333 4.66666667 11.4245258 10.0383286 6.87866667"></polygon></g></g></g></svg>`,l_=Z.getComponent(`Component`),u_=class extends l_{constructor(e,t){super(e,t),this.hide(),this.onLocalCacheChange=this.onLocalCacheChange.bind(this),e.ready(()=>{this.initialize()})}createEl(){return super.createEl(`div`,{className:`vjs-local-cache-indicator`,innerHTML:`<div class="vjs-local-cache-indicator-icon">${c_}</div>`},{title:`Streaming from ClickView Local Cache`})}initialize(){this.localCachePlugin=this.player_.localCache(),this.localCachePlugin&&(this.localCachePlugin.on(`localcachechanged`,this.onLocalCacheChange),this.player_.on(`dispose`,()=>{this.localCachePlugin.off(`localcachechanged`,this.onLocalCacheChange)}),this.onLocalCacheChange())}async onLocalCacheChange(){await this.localCachePlugin.getActiveLocalCache()?this.show():this.hide()}};Z.registerComponent(`localCacheIndicator`,u_);var d_=Z.getPlugin(`plugin`),f_=class extends d_{constructor(e,t){if(super(e),this.logger_=Z.log.createLogger(`localcache`),t===void 0)throw Error(`no options defined`);this.localCaches_=t.localCacheAddresses.map(e=>new o_(e)),this.player.ready(()=>{this.initialize(),t.enabled&&this.enable()})}get isEnabled(){return this.enabled_}enable(){this.enabled_=!0,this.resetActiveLocalCache()}disable(){this.enabled_=!1}getActiveLocalCache(){return this.enabled_?this.activeLocalCache_:null}resetActiveLocalCache(){this.clearActiveLocalCache(),this.activeLocalCache_=this.getActiveLocalCacheInternal()}clearActiveLocalCache(){this.activeLocalCache_&&(this.activeLocalCache_=null,this.onLocalCacheChange(null))}removeLocalCache(e){this.localCaches_=this.localCaches_.filter(t=>t!==e)}dispose(){super.dispose()}initialize(){this.player.controlBar.addChild(`localCacheIndicator`)}async handleNetworkError(){let e=await this.getActiveLocalCache();return e&&await e.ping()&&this.removeLocalCache(e),this.resetActiveLocalCache(),await this.getActiveLocalCache(),!0}async getActiveLocalCacheInternal(){let e=[],t=async t=>{await t.ping()&&e.push(t)};if(await Promise.all(this.localCaches_.map(e=>t(e))),e.length>0){let t=e[0];return this.onLocalCacheChange(t),t}return null}onLocalCacheChange(e){this.logger_.debug(`Local Cache changed`,e),this.trigger(`localcachechanged`,{localCache:e})}};Z.registerPlugin(`localCache`,f_);var p_=9e5,m_=Z.getPlugin(`plugin`),h_=class extends m_{constructor(e,t){super(e),this.playerApi=t.playerApi,this.fileToken=t.fileToken,this.logger=Z.log.createLogger(`video-signature-expiry-plugin`),this.bindErrorHandlers()}bindErrorHandlers(){this.onError=this.onError.bind(this),this.player.on(`error`,this.onError)}dispose(){this.player.off(`error`,this.onError),super.dispose()}async onError(){let e=this.player.error();if(!e||this.player.usingPlugin(`mediaSources`)&&this.player.mediaSources().hasPendingFallback())return;let t=e.code;if(!(t!==MediaError.MEDIA_ERR_NETWORK&&t!==MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED)){if(await this.player.localCache().getActiveLocalCache()){this.callErrorHandler(()=>this.player.localCache().handleNetworkError());return}this.callErrorHandler(()=>this.handleVideoSignatureExpiry())}}async handleVideoSignatureExpiry(){if(!this.playerApi||!this.fileToken||this.refetchedSourcesTimestamp+p_>Date.now())return!1;this.refetchedSourcesTimestamp=Date.now();let e=null;try{this.logger.debug(`Detected expired mp4 urls, attempting to refetch`);let t=`${this.playerApi.origin}/api/files?fileToken=${this.fileToken}`;e=await ze.get(t)}catch{return this.logger.error(`Failed to refetch expired mp4 urls`),!1}return this.logger.debug(`Mp4 urls successfully refetched`),this.player.mediaSources().repopulateSources(e),this.fileToken=e.fileToken,!0}async callErrorHandler(e){let t=this.player.currentTime(),n=!this.player.paused(),r=()=>{this.player.currentTime(t),n&&this.player.play(),this.player.error(null)};this.player.one(`loadedmetadata`,r),!await e()&&this.player.off(`loadedmetadata`,r)}};Z.registerPlugin(`handleNetworkErrors`,h_);var g_=Z.getPlugin(`plugin`),__=`cvplayer-show-subtitles`,v_=`cvplayer-selected-language`,y_=`cvplayer-subtitle-size`,b_=class extends g_{constructor(e,t){super(e),this.options=t;let n=this.player.textTrackSettings;this.defaultSubtitleSize=n.getSizeSetting(),this.initialize()}initialize(){this.applyUserPreferences=this.applyUserPreferences.bind(this),this.player.textTracks().length&&(this.applyUserPreferences(),this.bindEventListeners())}applyUserPreferences(){let e=!!this.options.showSubtitles,t=this.safeGet(__);if(t===`true`&&(e=!0),t===`false`&&(e=!1),e){let e=this.guessWhichTrack();e&&(e.mode=`showing`,this.player.trigger(`cv:languageselected`))}else this.hideSubtitles();let n=this.safeGet(y_);n||=this.options.subtitleSize??this.defaultSubtitleSize,this.player.options_.mobile&&(n=`medium`),this.player.textTrackSettings.setSizeSetting(n)}safeGet(e){if(P.hasLocalStorage())return P.get(e)}onSelectedLanguageChange(){let e=this.player.textTracks();for(let t=0;t<e.length;t++){let n=e[t];if(n.kind===`subtitles`&&n.mode===`showing`){P.set(__,`true`),P.set(v_,n.language),this.options.analyticsService?.logUserAction({language:n.language},{actionType:k.Select,entity:D.Subtitle,workflowPhase:T.Complete,descriptor:w.On});return}}P.set(__,`false`),P.remove(v_),this.options.analyticsService?.logUserAction({language:``},{actionType:k.Select,entity:D.Subtitle,workflowPhase:T.Complete,descriptor:w.Off,eventVersion:E.V3})}bindEventListeners(){P.hasLocalStorage()&&(this.onSelectedLanguageChange=this.onSelectedLanguageChange.bind(this),this.onChangeSubtitleSize=this.onChangeSubtitleSize.bind(this),this.player.on(`cv:languageselected`,this.onSelectedLanguageChange),this.player.on(`changesubtitlesize`,this.onChangeSubtitleSize),this.one(`dispose`,()=>{this.player.off(`cv:languageselected`,this.onSelectedLanguageChange),this.player.off(`changesubtitlesize`,this.onChangeSubtitleSize)}))}onChangeSubtitleSize(){let e=this.player.textTrackSettings;if(!e)return;let t=e.getSizeSetting();P.set(y_,t)}guessWhichTrack(){let e=this.safeGet(v_)||window.navigator.language,{language:t,country:n}=this.getLanguageParts(e),r,i,a=this.player.textTracks();for(let e=0;e<a.length;e++){let o=a[e];if(o.kind!==`subtitles`)continue;let{language:s,country:c}=this.getLanguageParts(o.language);if(s===t&&(r=o,c||(i=o),c===n))return r}return i||r||null}getLanguageParts(e){let t=e.toLowerCase().split(`-`);return{language:t[0],country:t[1]}}hideSubtitles(){let e=this.player.textTracks();for(let t=0;t<e.length;t++){let n=e[t];if(n.kind!==`subtitles`)return;n.mode=`disabled`}}previewModeSubtitles(){let e=this.guessWhichTrack();e&&(e.mode=`showing`),this.player.off(`changesubtitlesize`,this.onChangeSubtitleSize),this.player.textTrackSettings.setSizeSetting(`large`),this.player.on(`changesubtitlesize`,this.onChangeSubtitleSize)}};Z.registerPlugin(`persistSubtitleSettingsPlugin`,b_);var x_=Z.getPlugin(`plugin`),S_=class extends x_{constructor(e,t){super(e),this.enabled=!0,this.options=t,this.player.ready(()=>this.initialize())}async initialize(){this.onQualityChanged=this.onQualityChanged.bind(this),this.onQualityLevelsChanged=this.onQualityLevelsChanged.bind(this),this.player.on(`quality-changed`,this.onQualityChanged),this.player.on(`quality-levels-changed`,this.onQualityLevelsChanged),await this.onQualityLevelsChanged()}disable(){this.enabled=!1}enable(){this.enabled=!0}async applyUserPreferences(){let e=this.player.qualityManager(),t=await this.getActiveLocalCache(),n=t?t.playbackQuality??ng.resolveProgressive(this.options,!0):null;if(e.supportsAuto()){if(n){e.selectPreferred(n);return}let t=ng.resolveDash();if(t===`auto`){e.selectAuto();return}e.selectPreferred(t);return}let r=n??ng.resolveProgressive(this.options,!!t);r&&e.selectPreferred(r)}async onQualityLevelsChanged(){this.enabled&&await this.applyUserPreferences()}async onQualityChanged(e,t){if(!this.enabled||t?.origin!==`user`)return;let n=this.player.qualityManager(),r=n.isAuto()?$h:n.getSelected()?.quality;r&&(await this.persistQualitySelection(r),this.logQualitySelection(r))}async persistQualitySelection(e){if(this.player.qualityManager().supportsAuto()){e===`auto`?ng.clearDashLock():ng.storeDashLock(e);return}e!==`auto`&&ng.storeProgressive(e,await this.isLocalCacheActive())}logQualitySelection(e){this.options.analyticsService.logUserAction({quality:e.toString(),playerMode:lg(this.player),playerWidth:this.player.currentWidth(),playerHeight:this.player.currentHeight(),isQualityUserPreference:ng.hasStoredPreference()},{actionType:k.Select,workflowPhase:T.Complete,descriptor:C.ChangeResolution,entity:D.Resolution,eventVersion:E.V3})}async isLocalCacheActive(){return!!await this.getActiveLocalCache()}getActiveLocalCache(){return this.player.usingPlugin(`localCache`)?this.player.localCache().getActiveLocalCache():Promise.resolve(null)}dispose(){this.player.off(`quality-changed`,this.onQualityChanged),this.player.off(`quality-levels-changed`,this.onQualityLevelsChanged),super.dispose()}};Z.registerPlugin(`persistQualitySettingsPlugin`,S_);var C_=Z.getComponent(`Component`),w_=class extends C_{constructor(e,t){super(e,t)}createEl(){return Z.dom.createEl(`div`,{className:`cv-progress-reporter-item`})}update(){let e=this.options_.event,t=this.player_.duration(),n=(e.end.time-e.start.time)/t;this.el_.style.width=n*100+`%`;let r=e.start.time/t;this.el_.style.left=r*100+`%`}},T_=class extends C_{constructor(...e){super(...e),this.events_=[]}update(){let e=this.children();for(let t=e.length;t>0;t--)this.removeChild(e[t]);this.events_.forEach(e=>{let t=new w_(this.player(),{event:e});this.addChild(t),t.update()})}addEvents(e){this.events_.push(...e),this.update()}createEl(){return Z.dom.createEl(`div`,{className:`cv-progress-reporter-display`})}},E_=Z.getPlugin(`plugin`),D_=5e3,O_=200,k_=`ArrowUpArrowUpArrowDownArrowDownArrowLeftArrowRightArrowLeftArrowRightba`,$={PLAY:`play`,PLAYING:`playing`,PAUSE:`pause`,SEEKING:`seeking`,SEEK_START:`seekstart`,SEEK_END:`seekend`,ENDED:`ended`,PAUSED_SEEK:`pausedseek`,TIME_UPDATE:`timeupdate`,WAITING:`waiting`,SEEKED:`seeked`},A_=class extends E_{constructor(e,t){super(e,t),this.eventBuffer=[],this.latestTime=0,this.lastPlayingTime=0,this.isPlaying=!1,this.isSeeking=!1,this.hasEnded=!1,this.isBrowserSeeking=!1,this.hasPlayed=!1,this.bufferingStartTime=null,this.bufferingStartContext=null,this.completedBufferingEvents=[],this.shouldLogPlayOnTimeUpdate=!1,this.options=t,this.player.ready(()=>this.initialize())}initialize(){this.validateOptions(),this.bindListeners(),this.startInterval(),this.addEasterEgg()}validateOptions(){if(typeof this.options.onFlush!=`function`)throw Error(`Please provide the onFlush option`)}bindListeners(){let e={[$.PLAY]:()=>this.onPlay(),[$.PAUSE]:()=>this.onPause(),[$.TIME_UPDATE]:()=>this.onTimeUpdate(),[$.SEEKING]:()=>this.onSeeking(),[$.ENDED]:()=>this.onEnded(),[$.PLAYING]:()=>this.onPlaying(),[$.WAITING]:()=>this.onWaiting(),[$.SEEKED]:()=>this.onSeeked()},t=Object.keys(e);t.forEach(t=>this.player.on(t,e[t])),this.one(`dispose`,()=>{t.forEach(t=>this.player.off(t,e[t]))}),this.flushBuffer=this.flushBuffer.bind(this),this.player.on(`flushprogress`,this.flushBuffer)}startInterval(){let e=this.options.interval||D_;this.interval=window.setInterval(()=>this.flushBuffer(),e),this.player.one(`dispose`,()=>window.clearInterval(this.interval))}addEasterEgg(){let e=``,t,n=n=>{e+=n.key,e===k_&&this.addDisplay(),window.clearTimeout(t),t=window.setTimeout(()=>{e=``},500)},r=!1,i,a=()=>{r=!0,i=window.setTimeout(()=>{r&&this.addDisplay()},1e4)};function o(){r=!1,window.clearTimeout(i)}this.player.el().addEventListener(`keyup`,n);let s=this.player.getChild(`Collapserator`).getChild(`PlayToggle`);s.on(`touchstart`,a),s.on(`touchend`,o),this.player.one(`dispose`,()=>{this.player?.el()?.removeEventListener(`keyup`,n),s.off(`touchstart`,a),s.off(`touchend`,o)})}addDisplay(){this.progressReporterDisplay||(this.progressReporterDisplay=new T_(this.player),this.player.addChild(this.progressReporterDisplay),this.player.options_.inactivityTimeout=0,this.player.one(`dispose`,()=>{this.progressReporterDisplay=void 0}))}onPlay(){if(this.isPlaying=!0,this.isSeeking){this.logEvent($.SEEK_END),this.isSeeking=!1;return}if(this.hasEnded){this.shouldLogPlayOnTimeUpdate=!0,this.hasEnded=!1;return}this.logEvent($.PLAY)}onPause(){this.isSeeking||(this.pauseTimeout=window.setTimeout(()=>{this.isPlaying=!1,this.completeBufferingEvent(),this.logEvent($.PAUSE),delete this.pauseTimeout},50))}onTimeUpdate(){this.shouldLogPlayOnTimeUpdate&&(this.shouldLogPlayOnTimeUpdate=!1,this.logEvent($.PLAY)),!(!this.isPlaying||this.isSeeking)&&this.logEvent($.PLAYING)}onSeeking(){this.isBrowserSeeking=!0,this.pauseTimeout&&(this.latestTime=this.previousLatestTime,window.clearTimeout(this.pauseTimeout),delete this.pauseTimeout),this.isPlaying||this.logEvent($.PAUSED_SEEK),!(this.isSeeking||!this.isPlaying)&&(this.isSeeking=!0,this.logEvent($.SEEK_START))}onEnded(){this.hasEnded=!0,this.logEvent($.ENDED)}onPlaying(){this.isSeeking=!1,this.isPlaying=!0,this.hasPlayed=!0,this.completeBufferingEvent()}onWaiting(){this.startBufferingTracking()}onSeeked(){this.isBrowserSeeking=!1}startBufferingTracking(){this.bufferingStartTime===null&&(this.bufferingStartTime=performance.now(),this.bufferingStartContext={currentTime:Math.round(this.player.currentTime()*1e3)/1e3,type:this.getBufferingType(),bufferedAhead:Math.round(this.getBufferedAhead()*1e3)/1e3})}getBufferingType(){return this.hasPlayed?this.isBrowserSeeking?`seek`:`stall`:`initial`}completeBufferingEvent(){if(this.bufferingStartTime===null||this.bufferingStartContext===null)return;let e=performance.now()-this.bufferingStartTime;(this.bufferingStartContext.type!==`seek`||e>O_)&&this.completedBufferingEvents.push({duration:Math.round(e)/1e3,...this.bufferingStartContext}),this.bufferingStartTime=null,this.bufferingStartContext=null}getBufferedAhead(){let e=this.player.currentTime(),t=this.player.buffered();for(let n=0;n<t.length;n++)if(t.start(n)<=e&&e<=t.end(n))return t.end(n)-e;return 0}logEvent(e){if(!this.player)return;let t=this.player.currentTime();e===$.SEEK_START&&(t=this.latestTime),this.previousLatestTime=this.latestTime,this.latestTime=this.player.currentTime(),this.eventBuffer.push({time:t,type:e})}shouldUseCarriedOverTime(e){return this.lastPlayingTime&&(e===$.PLAYING||e===$.PLAY)}shouldSaveCarriedOverTime(e){return e===$.PLAYING||e===$.PAUSE}shouldClearCarriedOverTime(e){return e===$.ENDED||e===$.PAUSED_SEEK}flushBuffer(){let e=this.buildEventPairs(),t=this.collectBufferingStats();if(!e.length&&!t.length)return;let n=!e.length||this.validateEvents(e)?e:[];this.options.onFlush(n,t),this.player?.trigger(`progressflush`),this.progressReporterDisplay?.addEvents(n)}buildEventPairs(){let e=[],t={};for(;this.eventBuffer.length;){let n=this.eventBuffer.shift();if(this.shouldClearCarriedOverTime(n.type)){delete this.lastPlayingTime;continue}if(!t.start){this.shouldUseCarriedOverTime(n.type)&&(n.time=this.lastPlayingTime,delete this.lastPlayingTime),t.start=n;continue}n.type===$.PLAYING&&this.eventBuffer.length>0||(this.shouldSaveCarriedOverTime(n.type)&&(this.lastPlayingTime=n.time),t.end=n,e.push(t),t={})}return this.eventBuffer=[],e}collectBufferingStats(){let e=this.completedBufferingEvents;return this.completedBufferingEvents=[],e}validateEvents(e){let t=0;e.forEach(e=>{t+=e.end.time-e.start.time});let n=this.options.interval||D_;return n/=1e3,n+=.5,n*=this.player.playbackRate(),t<n}dispose(){this.player.off(`flushprogress`,this.flushBuffer),this.flushBuffer(),super.dispose()}};Z.registerPlugin(`progressReporterPlugin`,A_);var j_=Z.getComponent(`Component`),M_=class extends j_{createEl(){return Z.dom.createEl(`span`,{innerHTML:`<span class="vjs-icon-placeholder"></span>`,className:`cv-drag-handle vjs-control vjs-button`},{})}},N_=[`top`,`left`,`right`,`bottom`],P_={top:`Top`,left:`Left`,right:`Right`,bottom:`Bottom`},F_=Z.getComponent(`Component`),I_=class extends F_{constructor(e,t){super(e,t),this.bindEventListeners()}createEl(){return super.createEl(`div`,{},{class:`cv-drop-target cv-drop-${this.options_.side}`})}bindEventListeners(){let e=this.el(),t=e=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`,this.addClass(`cv-drag-over`)},n=e=>{e.preventDefault(),this.removeClass(`cv-drag-over`),this.player_.whiteboardModePlugin().setWhiteboardMode(this.options_.side)},r=()=>{this.removeClass(`cv-drag-over`)};e.addEventListener(`dragover`,t),e.addEventListener(`drop`,n),e.addEventListener(`dragleave`,r),this.on(`dispose`,()=>{e.removeEventListener(`dragover`,t),e.removeEventListener(`drop`,n),e.removeEventListener(`dragleave`,r)})}},L_=class extends F_{constructor(e,t){super(e,t),this.addChildren()}addChildren(){N_.forEach(e=>{this.addChild(new I_(this.player_,{side:e}))})}},R_=Z.getComponent(`MenuItem`),z_=class extends R_{constructor(e,t){super(e,t)}handleClick(){this.player_.whiteboardModePlugin().setWhiteboardMode(this.options_.side)}},B_=Z.getComponent(`MenuButton`),V_=class extends B_{constructor(...e){super(...e),this.alwaysCollapsed=!0,this.isCollapsed=!1,this.isCollabsible=!0}createItems(){let e=this.player_.whiteboardModePlugin().side,t=[new ih(this.player_,{label:`Video Controls`})];return N_.forEach(n=>{t.push(new z_(this.player_,{side:n,label:P_[n],selectable:!0,multiSelectable:!1,selected:n===e}))}),t}buildWrapperCSSClass(){return`cv-menu-small cv-has-left-icons ${super.buildWrapperCSSClass()}`}getCollabsibleName(){return`Video Controls`}getCollabsibleValue(){return P_[this.player_.whiteboardModePlugin().side]}showInCollabsibleMenu(){return this.player_.whiteboardModePlugin().isEnabled()?this.player_.isFullscreen():!1}showCollapsibleMenu(){B_.prototype.handleClick.apply(this)}},H_=`cv-whiteboard-side`,U_=Z.getPlugin(`plugin`),W_=class extends U_{constructor(e){super(e),this.side=`bottom`,this.enabled=!0,this.player.ready(()=>{this.initialize()})}initialize(){if(!this.player.options_.mobile){if(P.hasLocalStorage()){let e=P.get(H_);e&&(this.side=e)}this.initCollapserator(),this.initDragTargets(),this.initFullscreenListener()}}initCollapserator(){if(this.player.viewTranscriptPlugin?.().isTranscriptOn())return;let e=this.player.getChild(`collapserator`);this.dragHandle=new M_(this.player),this.button=new V_(this.player),e.addChild(this.dragHandle),e.addChild(this.button),this.player.trigger(`cv-updatecog`);let t=()=>{this.player.isFullscreen()&&e.el().setAttribute(`draggable`,`true`)},n=()=>{this.player.isFullscreen()&&e.el().setAttribute(`draggable`,`false`)},r=e=>{this.player.isFullscreen()&&(this.player.addClass(`cv-dragging`),e.dataTransfer.setData(`text/plain`,`handle`))},i=()=>{this.player.isFullscreen()&&(this.player.removeClass(`cv-dragging`),e.el().setAttribute(`draggable`,`false`))};this.dragHandle.el().addEventListener(`mousedown`,t),this.dragHandle.el().addEventListener(`mouseup`,n),e.el().addEventListener(`dragstart`,r),e.el().addEventListener(`dragend`,i),this.on(`dispose`,()=>{this.dragHandle.el().removeEventListener(`mousedown`,t),this.dragHandle.el().removeEventListener(`mouseup`,n),e.el().removeEventListener(`dragstart`,r),e.el().removeEventListener(`dragend`,i)})}initDragTargets(){this.player.addChild(new L_(this.player))}initFullscreenListener(){this.update=this.update.bind(this),this.player.on(`fullscreenchange`,this.update),this.player.on(`cv-transcript-toggle`,this.update),this.one(`dispose`,()=>{this.player.off(`fullscreenchange`,this.update)})}setWhiteboardMode(e){this.side=e,this.button.update(),P.hasLocalStorage()&&P.set(H_,e),this.player.trigger(`cv-whiteboard-change`),this.update()}setEnabled(e){this.enabled=e,this.update()}isEnabled(){return this.enabled}getSide(){return this.isEnabled()?this.side:`bottom`}update(){if(this.player.removeClass(`cv-whiteboard-top`),this.player.removeClass(`cv-whiteboard-left`),this.player.removeClass(`cv-whiteboard-right`),Z.dom.removeClass(window.document.documentElement,`cv-whiteboard-html-font-size`),this.player.trigger(`resizemenus`),this.player.trigger(`cv-updatecog`),!this.isEnabled()){this.dragHandle?.hide();return}this.dragHandle?.show();let e=this.getSide();!this.player.isFullscreen()||e===`bottom`||(this.player.addClass(`cv-whiteboard-${e}`),Z.dom.addClass(window.document.documentElement,`cv-whiteboard-html-font-size`))}};Z.registerPlugin(`whiteboardModePlugin`,W_);var G_=Z.getPlugin(`plugin`),K_=[`subtitles`,`captions`],q_=class extends G_{constructor(e){super(e)}deferMenu(){let e={subtitles:this.buildSubtitles(),qualities:this.buildQualities(),playbackSpeeds:this.buildPlaybackSpeeds()};this.player.trigger(`cv-defer-menus`,e)}buildSubtitles(){let e=[],t=!1,n=this.player.textTracks();for(let r=0;r<n.length;r++){let i=n[r];if(!K_.includes(i.kind))continue;let a=i.mode===`showing`;e.unshift({id:i.label,name:i.label,selected:a}),a&&(t=!0)}return e.push({id:null,name:`Off`,selected:!t}),e}buildQualities(){let e=this.player.qualityManager(),t=e.getSelected()?.id,n=e.isAuto();return(e.supportsAuto()?[{id:$h,name:`Auto`,selected:n}]:[]).concat(e.getLevels().map(e=>({id:e.id,name:e.displayName,selected:!n&&e.id===t})))}buildPlaybackSpeeds(){let e=this.player.playbackRate();return this.player.options_.playbackRates.map(t=>({id:t,name:t+`x`+(t===1?` (Normal)`:``),selected:e===t}))}};Z.registerPlugin(`deferMenusPlugin`,q_);var J_=`No skipping ahead!`,Y_=`PreventScrubbingTooltip`,X_=1e3,Z_=Z.getComponent(`Component`),Q_=`cv-prevent-scrubbing-tooltip-show`,$_=`cv-prevent-scrubbing-tooltip-remove-transition`,ev=class extends Z_{constructor(...e){super(...e),this.isShowing=!1}buildCSSClass(){return`cv-prevent-scrubbing-tooltip ${super.buildCSSClass()}`}createEl(e,t,n){return super.createEl(e,{...t,className:this.buildCSSClass(),innerText:J_},n)}show(){this.isShowing||=(this.player_.userActive(!0),this.addClass(Q_),!0)}hide(e=!1){this.isShowing&&=(e&&(this.addClass($_),window.requestAnimationFrame(()=>{this.removeClass($_)})),this.player_.userActive(!1),this.removeClass(Q_),!1)}};Z.registerComponent(Y_,ev);var tv=Z.getPlugin(`plugin`),nv=1.25,rv=class extends tv{constructor(e,t){super(e),this.originalPlaybackRates=[],this.isEnabled=!1,this.isPreviewing=!1;let{furthestVisitedTime:n=0,isEnabled:r=!1}=t??{};this.playerCurrentTimeFn=this.player.currentTime.bind(e),this.player.currentTime=this.currentTime.bind(this),this.onTimeUpdate=this.onTimeUpdate.bind(this),this.furthestVisitedTime=n,this.isEnabled=r,r&&this.enable()}dispose(){this.player.currentTime=this.playerCurrentTimeFn,this.isEnabled&&(this.disable(),super.dispose())}togglePreview(e){if(e){if(this.configurePreview(),this.isEnabled)return;this.enable(),this.isPreviewing=!0}else this.disable(),this.isPreviewing=!1}configurePreview(){this.player.currentTime(0),this.furthestVisitedTime=0}enable(){this.player.on(`timeupdate`,this.onTimeUpdate),this.getProgressControl().addChild(Y_),this.isEnabled=!0,this.setLimitedPlaybackRates()}disable(){this.player.off(`timeupdate`,this.onTimeUpdate),this.getProgressControl().removeChild(this.getPreventScrubbingTooltip()),this.isEnabled=!1,this.restorePlaybackRates()}setLimitedPlaybackRates(){this.originalPlaybackRates=this.player.playbackRates();let e=this.originalPlaybackRates.filter(e=>e<=nv);this.player.playbackRates(e),this.player.playbackRate()>nv&&this.player.persistPlaybackRatePlugin?.().setPlaybackRateWithoutPersisting(1),this.player.trigger(`resizemenus`)}restorePlaybackRates(){this.player.playbackRates(this.originalPlaybackRates),this.player.trigger(`resizemenus`)}getProgressControl(){return this.player.controlBar.getChild(`progressControl`)}onTimeUpdate(){let e=this.playerCurrentTimeFn();e>this.furthestVisitedTime&&(this.furthestVisitedTime=e)}currentTime(e,...t){if(typeof e!=`number`)return this.playerCurrentTimeFn(e,...t);if(!this.isEnabled){this.playerCurrentTimeFn(e,...t);return}let n=this.getPreventScrubbingTooltip(),r=this.getSeekBar()?.getChild(`MouseTimeDisplay`);if(e>this.furthestVisitedTime){n.show(),je(n.hide,X_,!1,n)(),r?.hide(),this.playerCurrentTimeFn(this.furthestVisitedTime,...t);return}r?.show(),n.hide(!0),this.playerCurrentTimeFn(e,...t)}getPreventScrubbingTooltip(){return this.getProgressControl().getChild(Y_)}getSeekBar(){return this.player.controlBar.getChild(`ProgressControl`)?.getChild(`SeekBar`)}};Z.registerPlugin(`preventScrubbingPlugin`,rv);var iv=Z.getComponent(`Component`),av=Z.getComponent(`ClickableComponent`),ov=`
240
240
  <svg version="1.1" viewBox="0 0 24 24">
241
241
  <path id="Heart-Filled" d="m18.833 5.9735c-0.78916-0.95022-1.8839-1.4735-3.0826-1.4735-1.6859 0-2.7532 1.0685-3.3517 1.9648-0.15528 0.2326-0.28738 0.46582-0.39828 0.68529-0.11091-0.21946-0.24297-0.45269-0.39828-0.68529-0.5985-0.89636-1.6658-1.9648-3.3517-1.9648-1.1987 0-2.2935 0.52333-3.0827 1.4735-0.75275 0.90644-1.1673 2.1204-1.1673 3.4183 0 1.4128 0.51978 2.7268 1.6358 4.1353 0.99741 1.2588 2.4323 2.5564 4.0939 4.0589 0.61916 0.5599 1.2594 1.1389 1.9411 1.7718l0.02047 0.01903c0.08837 0.08211 0.19856 0.12313 0.30875 0.12313s0.22038-0.04105 0.30875-0.12313l0.02047-0.01903c0.68166-0.63289 1.3219-1.2119 1.9412-1.7719 1.6615-1.5024 3.0964-2.8 4.0938-4.0588 1.116-1.4085 1.6358-2.7225 1.6358-4.1353 0-1.2979-0.41459-2.5119-1.1674-3.4183z"/>
242
242
  </svg>
@@ -256,4 +256,4 @@ ${fp(e)}`),t.map&&!t.map.bytes&&(this.logger_(`going to request init segment.`),
256
256
  <path d="M268.06 2.91764L254.192 14.8403L262.401 17.4661L258.324 27.0679L272.192 15.1453L263.983 12.5194L268.06 2.91764Z" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
257
257
  </svg>
258
258
  `})}};Z.registerComponent(`ErrorDisplay`,Rb);var zb=Z.getComponent(`FullscreenToggle`),Bb=`Fullscreen (f)`,Vb=class extends zb{handleFullscreenChange(){zb.prototype.handleFullscreenChange.call(this),this.controlText(Bb)}};Z.registerComponent(`FullscreenToggle`,Vb),Vb.prototype.controlText_=Bb;var Hb=Z.getComponent(`MuteToggle`),Ub=`Mute (m)`,Wb=`Unmute (m)`,Gb=class extends Hb{updateControlText_(){let e=this.player_.muted()||this.player_.volume()===0?Wb:Ub;this.controlText_!==e&&this.controlText(e)}};Z.registerComponent(`MuteToggle`,Gb),Gb.prototype.controlText_=Ub;var Kb=Z.getComponent(`Player`),qb=e=>e.indexOf(`#`)===0?e.slice(1):e,Jb=3,Yb,Xb=class e{static{this.options_={viewKey:null,controls:!0,playbackRates:[.25,.5,.75,1,1.25,1.5,1.75,2],playerApi:new URL(`http://localhost:52000`),enableLocalCache:!0,eventLogging:!0,allowFullscreen:!0}}constructor(t,n){if(this.streamLogged=!1,this.options=Z.obj.merge({},e.options_,n),this.options.playerApi===null)throw Error(`PlayerApi required`);this.initialize(),this.createEl(t),this.buildVideoJs(),this.options.splash&&this.setupSplash(this.options.splash),this.bindEventListeners(),this.setupSeekBar(),this.fetchConfig(),this.logStream=this.logStream.bind(this),this.player.ready(()=>{this._configurePlugins(),this.options.setup&&this.options.setup(this.options,this.player),this.fetch().catch(e=>this.handleFetchError(e))})}initialize(){}_configurePlugins(){this.player.configureMenuDimensionsPlugin({mobile:this.options.mobile,overflowControls:this.options.overflowControls,seekBarName:this.getSeekBarName()}),this.player.progressReporterPlugin({onFlush:this.onFlushProgress=this.onFlushProgress.bind(this)}),this.player.persistVolumePlugin(),!this.options.mobile&&this.options.allowFullscreen&&this.player.fullscreenOnRotatePlugin(),this.player.touchControls(),this.player.playerModePlugin({defaultDisplayMode:this.options.nextDefaultDisplayMode,startTime:this.options.startTime}),this.options.getExternalLink&&this.player.openExternallyPlugin({getExternalLink:this.options.getExternalLink}),this.player.oldVersionRefreshPlugin?.(),this.configurePlugins()}configurePlugins(){}onFlushProgress(e,t){let n=this.player.playerModePlugin().isHovering();this.analyticsService?.logVideoProgress(e,t,n)}buildVideoJs(){return this.player=Z(this.el,this.getPlayerOptions())}getInactivityTimeout(){if(typeof this.options.inactivityTimeout==`number`)return this.options.inactivityTimeout;let e=500;return(this.options.mobile||Z.browser.IS_IOS||Z.browser.IS_ANDROID)&&(e=3e3),e}getFluid(){return!(this.options.theatreMode||this.options.embed||this.options.mobile)}getFill(){return!!(this.options.theatreMode||this.options.embed||this.options.mobile)}getPlayerOptions(){let e=Kb.prototype.options_.children;return e=e.filter(e=>!(e===`bigPlayButton`||e===`posterImage`)),{controls:this.options.controls,fluid:this.getFluid(),fill:this.getFill(),inactivityTimeout:this.getInactivityTimeout(),controlBar:{children:[`timeWrapper`,`progressControl`]},children:[...e,{name:`collapserator`,children:Ph.filter(e=>!(e===`fullscreenToggle`&&!this.options.allowFullscreen||e===`playbackRateMenuButton`&&!this.options.playbackRates?.length))},`playPauseFeedback`,`controlBarGradient`],userActions:{hotkeys:e=>wg(e,this.player,this.options)},playbackRates:this.options.playbackRates,techOrder:[`html5`],html5:{nativeTextTracks:!1},playsinline:!0,aspectRatio:this.options.aspectRatio,mobile:this.options.mobile,allowTheatreMode:this.options.allowTheatreMode,deferMenus:this.options.deferMenus,muted:this.options.muted,devicesConfig:this.options.devicesConfig}}async getPlaybackObject(){if(this.options.offlinePlaybackObject)return this.options.offlinePlaybackObject;let e=this.options.fetch;if(this.options.fetch===void 0&&(e=e=>{let t=`${this.options.playerApi.origin}/api/playback?viewKey=${e}`;return ze.get(t)}),!this.options.viewKey)throw Error(`Please specify a viewKey or a fetch function`);let t=await e(this.options.viewKey);if(!t)throw Error(`Error fetching playback object`);return t}setChaptersInternal(e,t){let n=hh.getTrack(this.player,`chapters`,null);n||=this.player.addTextTrack(`chapters`),[...n.cues.cues_].forEach(e=>n.removeCue(e)),e.forEach(e=>{n.addCue({startTime:e.timestamp,endTime:e.endTimestamp,text:e.name})}),t&&n.trigger({type:`cv:cuechange`,target:n}),n.trigger({type:`loadeddata`,target:n})}setChapters(e){this.setChaptersInternal(e,!0)}setPlayerMode(e,t,n){this.player.playerModePlugin().setPlayerMode(e,t,n)}getPlayerMode(){return this.player.playerModePlugin().getMode()}setFavourite(e,t){this.player.favouritePlugin().setFavourite(e,t)}async fetch(){let e=await this.getPlaybackObject();if(this.isDisposed())return;let t=e.mediaType===`MasterClip`,n=e.additionalData?.clipData;e.chapters?.list?.length>0&&!t&&!n&&this.setChaptersInternal(e.chapters.list,!1),this.player.localCache({localCacheAddresses:e.localCacheAddresses??[],enabled:this.options.enableLocalCache??!0}),this.player.mediaSources({files:e.files,viewKey:this.options.viewKey,settings:e.settings}),this.player.handleNetworkErrors({playerApi:this.options.playerApi,fileToken:e.files.fileToken}),e.subtitles.list.length>0&&e.subtitles.list.forEach(e=>{if(e.mimeType!==`text/vtt`)return;let t=this.player.addRemoteTextTrack({kind:`subtitles`,src:e.url,language:e.language,label:e.label},!0);if(hh.sanitizeTrack(t.track,this.player),this.options.allowTranscript){let t=this.player.addRemoteTextTrack({kind:`metadata`,src:e.url+(e.url.includes(`?`)?`&`:`?`)+`fullSentences=true`,language:e.language,label:`transcript`},!0);t.track.isClickViewProduced=e.isClickViewProduced,hh.sanitizeTrack(t.track,this.player)}}),e.posterUrl&&this.player.poster(le.createUrl(e.posterUrl,{size:ce.Large})),this.setupSplash({title:e.title,posterUrl:e.posterUrl,episodeNumber:e.episodeNumber,ratingCode:e.ratingCode,seasonNumber:e.seasonNumber,seriesName:e.seriesName}),this.additionalSetup(e),this.handleAutoplay(e),this.options.startTime&&(this.player.currentTime(this.options.startTime),this.player.one(`canplay`,()=>{this.player.currentTime(this.options.startTime)})),this.player.trigger(`cv-playback-data-loaded`,e)}handleFetchError(e){let t=e.message;e instanceof Re&&e.response?.type===Tg.PhysicallyChapteredVideo&&(t=`Video cannot be played because it is either corrupt or damaged.`),this.player.error(t),this.options.onError&&this.options.onError(e)}async fetchConfig(){if(Yb||this.options.fetch||this.options.offlinePlaybackObject)return;let e=`${this.options.playerApi.origin}/api/config`;Yb=await ze.get(e),!this.isDisposed()&&this.trigger(`config:loaded`)}additionalSetup(e){this.player.whiteboardModePlugin(),this.player.deferMenusPlugin();let t=this.options.enableLocalCache&&!!e.localCacheAddresses?.length;Yb?this.setupAnalyticsService(e,t):this.one(`config:loaded`,()=>this.setupAnalyticsService(e,t)),this.analyticsService||!this.isAnalyticsEnabled()?this.setupAnalyticsDependentPlugins(e):this.one(`analytics:loaded`,()=>this.setupAnalyticsDependentPlugins(e))}setupAnalyticsService(e,t){this.options.eventLogging&&(this.analyticsService=new mg({player:this.player,collectionApiUrls:Yb.collectionApi.urls,collectionApiClientId:Yb.collectionApi.clientId,productVersion:Eg.version,authSessionId:e.viewerAuthSessionId,videoId:e.videoId,mediaId:e.mediaId,userId:e.viewerId,shareId:e.shareId,customerId:e.viewerCustomerId,mediaType:e.mediaType,playerType:this.getAnalyticsPlayerType(),isEmbedded:this.options.embed,isUsingLocalCache:t,additionalAnalyticsData:this.getAdditionalAnalyticsData(e),regionName:e.instanceRegion||this.options.sharerInstanceRegion||oe.CvApSoutheast1}),this.on(`timeupdate`,this.logStream),this.trigger(`analytics:loaded`))}setupAnalyticsDependentPlugins(e){this.player.persistSubtitleSettingsPlugin({showSubtitles:e.settings?.showSubtitles,subtitleSize:e.settings?.playbackSubtitleSizeDefault,analyticsService:this.analyticsService}),this.player.persistQualitySettingsPlugin({playbackQuality:e.settings?.playbackQuality,playbackQualityLocalCache:e.settings?.playbackQualityLocalCache,playbackQualityFallback:e.settings?.playbackQualityFallback,analyticsService:this.analyticsService}),this.player.persistPlaybackRatePlugin({analyticsService:this.analyticsService})}getAdditionalAnalyticsData(e){return{}}isAnalyticsEnabled(){return this.options.fetch||this.options.offlinePlaybackObject?!1:this.options.eventLogging}handleAutoplay(e){this.options.autoplay&&this.player.ready(()=>{this.player.play().catch(()=>{this.isDisposed()||this.showSplash()})})}logStream(){this.analyticsService&&(this.player.currentTime()<Jb||this.streamLogged||this.player.playerModePlugin().getMode()!==Wh.Hover&&(this.analyticsService.logStream(),this.streamLogged=!0,this.off(`timeupdate`,this.logStream)))}getAnalyticsPlayerType(){return`player`}createEl(e){let t;typeof e==`string`?(e=qb(e),t=Z.dom.$(`#`+e)):t=e;let n=`video-js`;return this.getPlayerClassName()&&(n+=` ${this.getPlayerClassName()}`),this.el=Z.dom.createEl(`video`,{},{class:n}),t.appendChild(this.el),this.el}getPlayerClassName(){return``}on(e,t){this.player.on(e,t)}one(e,t){this.player.one(e,t)}off(e,t){this.player.off(e,t)}trigger(e,t){return this.player.trigger(e,t)}dispose(){this.player.dispose()}ready(e){this.player.ready(e)}isDisposed(){return this.player.isDisposed()}play(){this.player.play()}pause(){this.player.pause()}isPaused(){return this.player.paused()}currentTime(e){return this.player.currentTime(e)}muted(e){return this.player.muted(e)}duration(){return this.player.duration()}isFullscreen(){return this.player.isFullscreen()}requestFullscreen(){this.player.requestFullscreen()}exitFullscreen(){this.player.exitFullscreen()}playbackRate(e){return this.player.playbackRate(e)}quality(e){let t=this.player.qualityManager();if(e===`auto`){t.selectAuto();return}if(e){t.select(e.toString());return}return t.getSelected()?.id}subtitles(e){let t=this.player.textTracks();for(let n=0;n<t.length;n++){let r=t[n];if(r.kind===`subtitles`){if(e!==void 0){r.label===e?r.mode=`showing`:r.mode=`disabled`;continue}if(r.mode===`showing`)return r.label}}}bindEventListeners(){let e=e=>e.preventDefault();if(this.showSplash=this.showSplash.bind(this),this.hideSplash=this.hideSplash.bind(this),this.player.on(`ended`,this.showSplash),this.player.on(`play`,this.hideSplash),this.player.tech(!0).on(`contextmenu`,e),this.player.one(`dispose`,()=>{this.off(`ended`,this.showSplash),this.off(`play`,this.hideSplash),this.player.tech(!0).off(`contextmenu`,e)}),!this.options.hotkeyElQuerySelector)return;let t=Z.dom.$(this.options.hotkeyElQuerySelector);t&&(this.player.on(t,`keydown`,this.player.handleKeyDown),this.player.one(`dispose`,()=>{this.player.off(t,`keydown`,this.player.handleKeyDown)}))}setupSeekBar(){let e=this.getSeekBarName(),t=this.player.controlBar.getChild(`progressControl`);t.addChild(e,{...this.getSeekBarOptions(),playerOptions:this.player.options_.playerOptions}),t.setSeekBarName(e)}setupSplash(e){this._splashAdded||(this._splashAdded=!0,this.player.addChild(`posterImage`,{embed:this.options.embed,...e}),this.player.addChild(`bigPlayButton`),this.options.autoplay?this.hideSplash():this.showSplash())}showSplash(){this.player.hasStarted(!1),this.player.getChild(`posterImage`).show(),this.player.getChild(`bigPlayButton`).show()}hideSplash(){this.player.getChild(`posterImage`).hide(),this.player.getChild(`bigPlayButton`).hide()}getSeekBarOptions(){return{}}getSeekBarName(){return`ChapterSeekBar`}};export{ry as a,a_ as c,_h as d,hh as f,ze as h,dy as i,ig as l,Z as m,Gy as n,Nv as o,ih as p,fy as r,jv as s,Xb as t,vh as u};
259
- //# sourceMappingURL=BTcLMVw4.chunk.js.map
259
+ //# sourceMappingURL=DKDWcWxk.chunk.js.map