@clickview/lite 0.104.0-rc.3 → 0.104.0-rc.5
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.
- package/dist/.vite/manifest.json +699 -699
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{CW1i-QHv.chunk.js → -7qiRMLt.chunk.js} +2 -2
- package/dist/scripts/{CW1i-QHv.chunk.js.map → -7qiRMLt.chunk.js.map} +1 -1
- package/dist/scripts/{CXN0_XjU.chunk.js → -KvTbeQV.chunk.js} +2 -2
- package/dist/scripts/{CXN0_XjU.chunk.js.map → -KvTbeQV.chunk.js.map} +1 -1
- package/dist/scripts/{Bu7Sr1dy.chunk.js → 0Fek4oFk.chunk.js} +2 -2
- package/dist/scripts/{Bu7Sr1dy.chunk.js.map → 0Fek4oFk.chunk.js.map} +1 -1
- package/dist/scripts/{CfRQYWGG.chunk.js → 5PKjjI4Y.chunk.js} +2 -2
- package/dist/scripts/{CfRQYWGG.chunk.js.map → 5PKjjI4Y.chunk.js.map} +1 -1
- package/dist/scripts/{Ta3cqTAC.chunk.js → AEOAlemi.chunk.js} +2 -2
- package/dist/scripts/{Ta3cqTAC.chunk.js.map → AEOAlemi.chunk.js.map} +1 -1
- package/dist/scripts/{DBcWjmUy.chunk.js → B1TqilLB.chunk.js} +2 -2
- package/dist/scripts/{DBcWjmUy.chunk.js.map → B1TqilLB.chunk.js.map} +1 -1
- package/dist/scripts/{ft2cSH-j.chunk.js → B3AhKFfz.chunk.js} +2 -2
- package/dist/scripts/{ft2cSH-j.chunk.js.map → B3AhKFfz.chunk.js.map} +1 -1
- package/dist/scripts/{DFFq-sgD.chunk.js → B3y60nT5.chunk.js} +2 -2
- package/dist/scripts/{DFFq-sgD.chunk.js.map → B3y60nT5.chunk.js.map} +1 -1
- package/dist/scripts/{DWJiezgB2.chunk.js → BBWnpWNB2.chunk.js} +2 -2
- package/dist/scripts/{DWJiezgB2.chunk.js.map → BBWnpWNB2.chunk.js.map} +1 -1
- package/dist/scripts/{B6GfukUn2.chunk.js → B_TE5XUR2.chunk.js} +2 -2
- package/dist/scripts/{B6GfukUn2.chunk.js.map → B_TE5XUR2.chunk.js.map} +1 -1
- package/dist/scripts/{BpHA-MkZ.chunk.js → BiWUSyJr.chunk.js} +2 -2
- package/dist/scripts/{BpHA-MkZ.chunk.js.map → BiWUSyJr.chunk.js.map} +1 -1
- package/dist/scripts/{VJQU9c4G2.chunk.js → Bld7iWR52.chunk.js} +2 -2
- package/dist/scripts/{VJQU9c4G2.chunk.js.map → Bld7iWR52.chunk.js.map} +1 -1
- package/dist/scripts/{C_tdgSWS2.chunk.js → Bzk4AwVx2.chunk.js} +2 -2
- package/dist/scripts/{C_tdgSWS2.chunk.js.map → Bzk4AwVx2.chunk.js.map} +1 -1
- package/dist/scripts/{9oMRc0cb2.chunk.js → CAs2Sere2.chunk.js} +2 -2
- package/dist/scripts/{9oMRc0cb2.chunk.js.map → CAs2Sere2.chunk.js.map} +1 -1
- package/dist/scripts/CCBk_ENs.chunk.js +1 -0
- package/dist/scripts/{qT_Twe2q.chunk.js → CMHxOVI7.chunk.js} +2 -2
- package/dist/scripts/{qT_Twe2q.chunk.js.map → CMHxOVI7.chunk.js.map} +1 -1
- package/dist/scripts/{Bm5qACA52.chunk.js → CNfmLVE82.chunk.js} +2 -2
- package/dist/scripts/{Bm5qACA52.chunk.js.map → CNfmLVE82.chunk.js.map} +1 -1
- package/dist/scripts/{CpzveYo2.chunk.js → CVL6bQWp.chunk.js} +2 -2
- package/dist/scripts/{CpzveYo2.chunk.js.map → CVL6bQWp.chunk.js.map} +1 -1
- package/dist/scripts/{CNPKh2z72.chunk.js → CX6c7KRp2.chunk.js} +2 -2
- package/dist/scripts/{CNPKh2z72.chunk.js.map → CX6c7KRp2.chunk.js.map} +1 -1
- package/dist/scripts/{BTm7hIyP2.chunk.js → CaCm4N_d2.chunk.js} +2 -2
- package/dist/scripts/{BTm7hIyP2.chunk.js.map → CaCm4N_d2.chunk.js.map} +1 -1
- package/dist/scripts/{DW_sm5se2.chunk.js → CfNYFxJl2.chunk.js} +2 -2
- package/dist/scripts/{DW_sm5se2.chunk.js.map → CfNYFxJl2.chunk.js.map} +1 -1
- package/dist/scripts/{C4OV7pr-.chunk.js → CmnbQiBA.chunk.js} +2 -2
- package/dist/scripts/{C4OV7pr-.chunk.js.map → CmnbQiBA.chunk.js.map} +1 -1
- package/dist/scripts/CpsbRDII.chunk.js +2 -0
- package/dist/scripts/{jAtAipGN.chunk.js.map → CpsbRDII.chunk.js.map} +1 -1
- package/dist/scripts/{CFduwlo0.chunk.js → Cqq1N9xw.chunk.js} +2 -2
- package/dist/scripts/{CFduwlo0.chunk.js.map → Cqq1N9xw.chunk.js.map} +1 -1
- package/dist/scripts/{UCiRB6cQ.chunk.js → CwFYdvvA.chunk.js} +2 -2
- package/dist/scripts/{UCiRB6cQ.chunk.js.map → CwFYdvvA.chunk.js.map} +1 -1
- package/dist/scripts/{DLcyKjA7.chunk.js → Cyit3dMk.chunk.js} +2 -2
- package/dist/scripts/{DLcyKjA7.chunk.js.map → Cyit3dMk.chunk.js.map} +1 -1
- package/dist/scripts/{BxjzTnvL2.chunk.js → D-iyHqNw2.chunk.js} +3 -3
- package/dist/scripts/{BxjzTnvL2.chunk.js.map → D-iyHqNw2.chunk.js.map} +1 -1
- package/dist/scripts/{x2GB1P6E2.chunk.js → D3ncynN72.chunk.js} +3 -3
- package/dist/scripts/{x2GB1P6E2.chunk.js.map → D3ncynN72.chunk.js.map} +1 -1
- package/dist/scripts/{DH_0KtTK2.chunk.js → DICsRDM42.chunk.js} +2 -2
- package/dist/scripts/{DH_0KtTK2.chunk.js.map → DICsRDM42.chunk.js.map} +1 -1
- package/dist/scripts/{BTcLMVw4.chunk.js → DKDWcWxk.chunk.js} +2 -2
- package/dist/scripts/{BTcLMVw4.chunk.js.map → DKDWcWxk.chunk.js.map} +1 -1
- package/dist/scripts/{2p_6pVn6.chunk.js → DSPMbDdF.chunk.js} +2 -2
- package/dist/scripts/{2p_6pVn6.chunk.js.map → DSPMbDdF.chunk.js.map} +1 -1
- package/dist/scripts/{Bh-26cqn.chunk.js → Dnz8CbEu.chunk.js} +3 -3
- package/dist/scripts/{Bh-26cqn.chunk.js.map → Dnz8CbEu.chunk.js.map} +1 -1
- package/dist/scripts/{CukXgE1z.chunk.js → Dt5731Ay.chunk.js} +2 -2
- package/dist/scripts/{CukXgE1z.chunk.js.map → Dt5731Ay.chunk.js.map} +1 -1
- package/dist/scripts/{DCPsmD1m.chunk.js → Dtag-27K.chunk.js} +2 -2
- package/dist/scripts/{DCPsmD1m.chunk.js.map → Dtag-27K.chunk.js.map} +1 -1
- package/dist/scripts/{DOCHl5Sy.chunk.js → DyE6EUDb.chunk.js} +2 -2
- package/dist/scripts/{DOCHl5Sy.chunk.js.map → DyE6EUDb.chunk.js.map} +1 -1
- package/dist/scripts/{app-LEZ4B6dG.js → app-BzH1hkoU.js} +4 -4
- package/dist/scripts/{app-LEZ4B6dG.js.map → app-BzH1hkoU.js.map} +1 -1
- package/dist/scripts/{DerPQKk6.chunk.js → cDv6zuhh.chunk.js} +2 -2
- package/dist/scripts/{DerPQKk6.chunk.js.map → cDv6zuhh.chunk.js.map} +1 -1
- package/dist/scripts/{Cl2FZEIX.chunk.js → fMgBORUX.chunk.js} +2 -2
- package/dist/scripts/{Cl2FZEIX.chunk.js.map → fMgBORUX.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/BILyzh0I.chunk.js +0 -1
- package/dist/scripts/jAtAipGN.chunk.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CFduwlo0.chunk.js","names":[],"sources":["../../../player/src/plugins/activity-status-plugin/components/activity-status-button.ts","../../../player/src/plugins/activity-status-plugin/activity-status-plugin.ts","../../../player/src/plugins/next-video-plugin/components/up-next/up-next.scss","../../../player/src/plugins/next-video-plugin/components/up-next/up-next.tsx","../../../player/src/components/next-video-menu-item/next-video-menu-item.ts","../../../player/src/plugins/next-video-plugin/next-video-plugin.ts","../../../player/src/plugins/loop-video-plugin/components/loop-video-menu-item.ts","../../../player/src/plugins/loop-video-plugin/loop-video-plugin.ts"],"sourcesContent":["import videojs, { VideoJsPlayer } from 'video.js';\n\nimport { ShareActivityStatus } from 'libs/shared/enums/ShareActivityStatus';\n\nconst Button = videojs.getComponent('Button');\n\nimport './activity-status-button.scss';\n\ninterface ActivityStatusButtonOptions extends videojs.ComponentOptions {\n activityStatus: ShareActivityStatus;\n clickHandler: () => void;\n}\n\nexport class ActivityStatusButton extends Button {\n public options_: ActivityStatusButtonOptions;\n public controlText_: string;\n\n constructor(player: VideoJsPlayer, options: ActivityStatusButtonOptions) {\n super(player, options);\n\n this.update();\n }\n\n public update(): void {\n if (this.options_.activityStatus === ShareActivityStatus.Complete)\n this.addClass('cv-activity-completed');\n else\n this.removeClass('cv-activity-completed');\n }\n\n public handleClick(...args: any[]) {\n this.options_.activityStatus = this.getToggledActivityStatus();\n\n this.update();\n if (this.options_.clickHandler) {\n this.options_.clickHandler.call(this, args);\n }\n }\n\n public buildCSSClass(): string {\n return 'cv-activity-status-button';\n }\n\n private getToggledActivityStatus(): ShareActivityStatus {\n if (this.options_.activityStatus === ShareActivityStatus.None\n || this.options_.activityStatus === ShareActivityStatus.Incomplete) {\n return ShareActivityStatus.Complete;\n }\n\n if (this.options_.activityStatus === ShareActivityStatus.Complete) {\n return ShareActivityStatus.Incomplete;\n }\n }\n}\n\nActivityStatusButton.prototype.controlText_ = 'Complete';\n","import videojs from 'video.js';\n\nimport { ShareActivityStatus } from 'libs/shared/enums/ShareActivityStatus';\n\nimport { ActivityStatusButton } from 'projects/player/plugins/activity-status-plugin/components/activity-status-button';\n\nconst Plugin = videojs.getPlugin('plugin');\n\nclass ActivityStatusPlugin extends Plugin {\n private activityStatus: ShareActivityStatus;\n private onToggleStatus: () => void;\n private button: ActivityStatusButton;\n\n public setActivityStatus(activityStatus: ShareActivityStatus, onToggleStatus: () => void): void {\n if (activityStatus === this.activityStatus)\n return;\n\n this.activityStatus = activityStatus;\n this.onToggleStatus = onToggleStatus;\n\n this.player.ready(() => {\n this.renderActivityStatusButton();\n });\n }\n\n // Remove old button and render new button when activity status is different from previous status\n private renderActivityStatusButton(): void {\n if (this.button) {\n this.player.removeChild(this.button);\n }\n\n this.button = new ActivityStatusButton(this.player, {\n activityStatus: this.activityStatus,\n clickHandler: this.onToggleStatus\n });\n\n this.player.addChild(this.button);\n }\n}\n\nvideojs.registerPlugin('activityStatusPlugin', ActivityStatusPlugin);\n\ndeclare module 'video.js' {\n export interface VideoJsPlayer {\n activityStatusPlugin(): ActivityStatusPlugin;\n }\n}\n","// This file is using some horrid valuies\n// It needs to be re-written this was just quickly thrown together\n// to show something at retro - Sha\n\n.video-js {\n .cv-up-next-container {\n position: absolute;\n bottom: 1.5em;\n color: $white;\n padding: 0.8em;\n width: 19em;\n border-radius: 0.3333em;\n background: $menu-bg;\n right: 1.5em;\n font-size: 1.5em;\n z-index: 6;\n }\n\n .cv-cancel-up-next {\n position: absolute;\n top: 0;\n right: 0.4em;\n font-size: 2em;\n }\n\n .cv-up-next-image {\n padding-bottom: 56.25%;\n background-size: contain;\n border-radius: 0.3333em;\n background-color: linear-gradient(to right, $gray-300, $gray-100);\n }\n\n .cv-up-next-heading {\n color: $white;\n padding-bottom: 0.6em;\n }\n\n .cv-up-next-title {\n color: $white;\n padding-top: 0.6em;\n }\n}","import * as React from 'react';\nimport videojs, { VideoJsPlayer } from 'video.js';\n\nimport { NextVideo } from 'projects/player/interfaces/NextVideo';\nimport { getReactComponent } from 'projects/player/react/react-component';\n\nimport './up-next.scss';\n\ninterface UpNextProps {\n player: VideoJsPlayer;\n nextVideo: NextVideo;\n onPlayNext: () => void;\n onCancel: () => void;\n}\n\nfunction UpNext(props: UpNextProps): JSX.Element {\n const [ timeRemaining, setTimeRemaining ] = React.useState(5);\n\n React.useEffect(() => {\n const timer = setInterval(() => {\n setTimeRemaining(prev => prev - 1);\n }, 1000);\n\n return () => {\n clearInterval(timer);\n };\n }, []);\n\n React.useEffect(() => {\n if (timeRemaining === 0)\n props.onPlayNext();\n }, [timeRemaining]);\n\n if (!props.nextVideo || !props.onPlayNext)\n return <></>;\n\n const roundedTimeRemaining = Math.ceil(timeRemaining);\n const secondsString = roundedTimeRemaining === 1 ? 'second' : 'seconds';\n\n return (\n <>\n <div className='cv-up-next-container'>\n <div className='cv-cancel-up-next cursor-pointer' role='button' onClick={props.onCancel}>×</div>\n <div className='cv-up-next-heading'>Up next in {roundedTimeRemaining} {secondsString}:</div>\n <div\n className='cv-up-next-image cursor-pointer'\n onClick={props.onPlayNext}\n style={{\n backgroundImage: `url(${props.nextVideo?.thumbnailUrl})`\n }}\n ></div>\n <div className='cv-up-next-title'>{props.nextVideo.name}</div>\n </div>\n </>\n );\n}\n\nvideojs.registerComponent(\n 'UpNext',\n getReactComponent(\n (player: VideoJsPlayer, options: UpNextProps) => <UpNext player={player} {...options} />\n )\n);\n","import videojs, { VideoJsPlayer } from 'video.js';\n\nimport './next-video-menu-item.scss';\n\nconst MenuItem = videojs.getComponent('MenuItem');\n\nclass NextVideoMenuItem extends MenuItem {\n private toggleEl: Element;\n\n /**\n * Because we want to bind our listener in createEl\n * and createEl runs in super. We store if we've bounud\n * our handler, so we only call bind once and \n * the call to removeEventListener will still work\n */\n private handlerBound: boolean;\n\n constructor(player: VideoJsPlayer, options: videojs.ComponentOptions) {\n super(player, options);\n\n this.bindListeners();\n\n if (this.player_.nextVideoPlugin().getShouldPlayNext())\n this.toggleOn();\n }\n\n private bindListeners(): void {\n this.onPlayNextChange = this.onPlayNextChange.bind(this);\n\n this.player_.on('cv:playnext', this.onPlayNextChange);\n }\n\n public handleToggle(): void {\n const shouldPlayNext = this.player_.nextVideoPlugin().getShouldPlayNext();\n\n this.player_.nextVideoPlugin().setShouldPlayNext(!shouldPlayNext, true);\n }\n\n private onPlayNextChange(_: any, enabled: boolean): void {\n enabled ? this.toggleOn() : this.toggleOff();\n }\n\n private toggleOn(): void {\n videojs.dom.addClass(this.toggleEl, 'on');\n }\n\n private toggleOff(): void {\n videojs.dom.removeClass(this.toggleEl, 'on');\n }\n\n /**\n * Because we extend MenuItem which will close the menu by default\n * we need to halt the event propogation here\n */\n public handleClick(event: videojs.EventTarget.Event): void {\n event.stopImmediatePropagation();\n }\n\n public createEl(tagName?: string, properties?: any, attributes?: any): HTMLLIElement {\n /**\n * Bind our event listener only once\n * see the comment where handlerBound is defined\n */\n if (!this.handlerBound) {\n this.handleToggle = this.handleToggle.bind(this);\n this.handlerBound = true;\n }\n\n if (this.toggleEl)\n this.toggleEl.removeEventListener('click', this.handleToggle);\n\n this.toggleEl = videojs.dom.createEl('div', {\n className: `custom-toggle custom-toggle-info toggle-option float-end`,\n innerHTML: '<span class=\"handle\"></span></div>'\n });\n this.toggleEl.addEventListener('click', this.handleToggle);\n\n const innerHTML = `\n <span class=\"vjs-menu-item-text\">Play next video</span>\n <span class=\"cv-toggle-container\"></span>`;\n\n const el = super.createEl(tagName, {\n className: 'vjs-menu-item cv-cog-menu-item cv-play-next-toggle',\n innerHTML\n }, attributes);\n\n /**\n * Indexing into the child this way is only safe to do because\n * we know that the el only has two children\n */\n el.children[1].appendChild(this.toggleEl);\n\n return el;\n }\n\n public dispose(): void {\n this.player_.off('cv:playnext', this.onPlayNextChange);\n super.dispose();\n }\n}\n\nvideojs.registerComponent('NextVideoMenuItem', NextVideoMenuItem);\n","import videojs, { VideoJsPlayer } from 'video.js';\n\nimport { CogButton } from 'projects/player/components/cog-button/cog-button';\nimport { NextVideo } from 'projects/player/interfaces/NextVideo';\nimport { TrackHelper } from 'projects/player/utils/track-helper';\n\nimport 'projects/player/plugins/next-video-plugin/components/up-next/up-next';\nimport 'projects/player/components/next-video-menu-item/next-video-menu-item';\n\nconst TEST = 'cv-persisttest';\nconst PLAY_NEXT = 'cv-play-next-video';\n\nconst Plugin = videojs.getPlugin('plugin');\nconst NextVideoMenuItem = videojs.getComponent('NextVideoMenuItem') as unknown as typeof videojs.MenuItem;\n\nclass NextVideoPlugin extends Plugin {\n private shouldPlayNextVideo: boolean;\n private hasLocalStorage: boolean;\n private nextVideoMenuItem: typeof videojs.MenuItem;\n\n private upNextRendered: boolean;\n\n private nextVideo: NextVideo;\n private callback: () => void;\n \n constructor(player: VideoJsPlayer) {\n super(player);\n\n this.setShouldPlayNext = this.setShouldPlayNext.bind(this);\n this.getShouldPlayNext = this.getShouldPlayNext.bind(this);\n this.getChapterTrack = this.getChapterTrack.bind(this);\n this.onTimeUpdate = this.onTimeUpdate.bind(this);\n\n this.hasLocalStorage = this.testHasLocalStorage();\n\n this.shouldPlayNextVideo = false;\n\n if (this.hasLocalStorage) {\n const item = window.localStorage.getItem(PLAY_NEXT);\n this.shouldPlayNextVideo = item === 'true';\n }\n\n player.ready(() => {\n this.initialize();\n });\n }\n \n private initialize(): void {\n if ((this.player as any).isDisposed())\n return;\n \n this.bindListeners();\n }\n\n private getChapterTrack(): TextTrack {\n return TrackHelper.getTrack(this.player, 'chapters', null);\n }\n\n public setNextVideo(nextVideo: NextVideo, playNext: boolean, callback: () => void): void {\n this.nextVideo = nextVideo;\n this.callback = callback;\n\n if (playNext)\n this.setShouldPlayNext(true);\n\n /**\n * Check additionalItemOrder in cog-button.ts if you need to change the order. - Sha\n */\n const cogButton = this.player.getChild('collapserator')?.getChild('cogButton') as CogButton;\n cogButton.addItem({ ctor: NextVideoMenuItem, name: 'NextVideoMenuItem' });\n }\n\n public getShouldPlayNext(): boolean {\n return this.shouldPlayNextVideo;\n }\n\n public setShouldPlayNext(val: boolean, persist?: boolean): void {\n this.shouldPlayNextVideo = val;\n this.player.trigger('cv:playnext', val);\n\n if (this.hasLocalStorage && persist)\n window.localStorage.setItem(PLAY_NEXT, val.toString());\n\n if (val)\n this.player.loopVideoPlugin().loop(false);\n }\n\n private bindListeners(): void {\n this.player.on('timeupdate', this.onTimeUpdate);\n }\n\n public dispose(): void {\n this.player.off('timeupdate', this.onTimeUpdate);\n\n this.hideUpNext();\n\n super.dispose();\n }\n\n private onTimeUpdate(): void {\n /**\n * Do nothing when in picture in picture.\n * TODO: Figure out how next video should work for PiP\n */\n if (this.player.pictureInPicture && this.player.isInPictureInPicture())\n return;\n\n if (!this.getShouldPlayNext()) {\n this.hideUpNext();\n return;\n }\n\n /*\n * Always hide the up-next tile if the video is not at the end\n */\n if (this.upNextRendered && this.player.currentTime() < this.player.duration()) {\n this.hideUpNext();\n return;\n }\n\n /*\n * Show the up-next tile when the video has finished\n */\n if (this.player.ended()) {\n this.showUpNext();\n }\n }\n\n private showUpNext(): void {\n if (this.upNextRendered)\n return;\n\n this.upNextRendered = true;\n\n this.player.addChild('UpNext', {\n nextVideo: this.nextVideo,\n onPlayNext: this.callback,\n onCancel: () => {\n this.hideUpNext();\n this.setShouldPlayNext(false);\n }\n });\n }\n\n private hideUpNext(): void {\n if (!this.upNextRendered)\n return;\n\n this.upNextRendered = false;\n\n const upNext = this.player.getChild('UpNext');\n\n if (upNext) {\n this.player.removeChild(upNext);\n upNext.dispose();\n }\n }\n\n private testHasLocalStorage(): boolean {\n try {\n window.localStorage.setItem(TEST, 'persistPlayNext');\n window.localStorage.removeItem(TEST);\n return true;\n } catch {\n return false;\n }\n }\n}\n\nvideojs.registerPlugin('nextVideoPlugin', NextVideoPlugin);\n\ndeclare module 'video.js' {\n export interface VideoJsPlayer {\n nextVideoPlugin(): NextVideoPlugin;\n }\n}\n","import videojs, { VideoJsPlayer } from 'video.js';\n\nimport './loop-video-menu-item.scss';\n\nconst MenuItem = videojs.getComponent('MenuItem');\n\nexport class LoopVideoMenuItem extends MenuItem {\n private toggleEl: Element;\n\n /**\n * Because we want to bind our listener in createEl\n * and createEl runs in super. We store if we've bounud\n * our handler, so we only call bind once and \n * the call to removeEventListener will still work\n */\n private handlerBound: boolean;\n\n constructor(player: VideoJsPlayer, options: videojs.ComponentOptions) {\n super(player, options);\n\n this.onLoopVideoChange = this.onLoopVideoChange.bind(this);\n\n this.player_.on('cv:loopvideo', this.onLoopVideoChange);\n\n this.onLoopVideoChange(null, this.player_.loopVideoPlugin().loop());\n }\n\n private onLoopVideoChange(_: any, enabled: boolean): void {\n enabled ? this.toggleOn() : this.toggleOff();\n }\n\n public handleToggle(): void {\n const loop = this.player_.loopVideoPlugin().loop();\n\n this.player_.loopVideoPlugin().loop(!loop);\n }\n\n private toggleOn(): void {\n videojs.dom.addClass(this.toggleEl, 'on');\n }\n\n private toggleOff(): void {\n videojs.dom.removeClass(this.toggleEl, 'on');\n }\n\n /**\n * Because we extend MenuItem which will close the menu by default\n * we need to halt the event propogation here\n */\n public handleClick(event: videojs.EventTarget.Event): void {\n event.stopImmediatePropagation();\n }\n\n public createEl(tagName?: string, properties?: any, attributes?: any): HTMLLIElement {\n /**\n * Bind our event listener only once\n * see the comment where handlerBound is defined\n */\n if (!this.handlerBound) {\n this.handleToggle = this.handleToggle.bind(this);\n this.handlerBound = true;\n }\n\n if (this.toggleEl)\n this.toggleEl.removeEventListener('click', this.handleToggle);\n\n this.toggleEl = videojs.dom.createEl('div', {\n className: `custom-toggle custom-toggle-info toggle-option float-end`,\n innerHTML: '<span class=\"handle\"></span></div>'\n });\n this.toggleEl.addEventListener('click', this.handleToggle);\n\n const innerHTML = `\n <span class=\"vjs-menu-item-text\">Loop video</span>\n <span class=\"cv-toggle-container\"></span>`;\n\n const el = super.createEl(tagName, {\n className: 'vjs-menu-item cv-cog-menu-item cv-loop-video-toggle',\n innerHTML\n }, attributes);\n\n /**\n * Indexing into the child this way is only safe to do because\n * we know that the el only has two children\n */\n el.children[1].appendChild(this.toggleEl);\n\n return el;\n }\n\n public dispose(): void {\n this.player_.off('cv:loopvideo', this.onLoopVideoChange);\n super.dispose();\n }\n}\n\nvideojs.registerComponent('LoopVideoMenuItem', LoopVideoMenuItem);\n","import videojs, { VideoJsPlayer } from 'video.js';\n\nimport { CogButton } from 'projects/player/components/cog-button/cog-button';\n\nimport 'projects/player/plugins/loop-video-plugin/components/loop-video-menu-item';\n\nconst Plugin = videojs.getPlugin('plugin');\nconst LoopVideoMenuItem = videojs.getComponent('LoopVideoMenuItem') as unknown as typeof videojs.MenuItem;\n\ninterface LoopVideoPluginOptions {\n allowLoop: boolean;\n}\n\nclass LoopVideoPlugin extends Plugin {\n constructor(player: VideoJsPlayer, options: LoopVideoPluginOptions) {\n super(player);\n\n // Button must be added after ctor finishes, otherwise subsequent calls to\n // this.player.loopVideoPlugin() will try make a new plugin - Sha\n if (options.allowLoop)\n this.player.ready(() => this.addButton());\n\n this.onEnded = this.onEnded.bind(this);\n this.player.on('ended', this.onEnded);\n }\n\n private addButton(): void {\n /**\n * Check additionalItemOrder in cog-button.ts if you need to change the order. - Sha\n */\n const cogButton = this.player.getChild('collapserator')?.getChild('cogButton') as CogButton;\n cogButton.addItem({ ctor: LoopVideoMenuItem, name: 'LoopVideoMenuItem' });\n }\n\n private onEnded(): void {\n // turns out the regular loop functionality doesn't work with clips.\n // this call will just do nothing for videos - Sha\n if (this.player.loop())\n this.player.play();\n }\n\n public loop(enabled: boolean): void;\n public loop(): boolean ;\n public loop(enabled?: boolean): any {\n if (typeof enabled !== 'boolean')\n return this.player.loop();\n\n if (enabled)\n this.player.nextVideoPlugin?.()?.setShouldPlayNext(false, false);\n\n this.player.trigger('cv:loopvideo', enabled);\n this.player.loop(enabled);\n }\n\n public dispose(): void {\n this.player.off('ended', this.onEnded);\n super.dispose();\n }\n}\n\nvideojs.registerPlugin('loopVideoPlugin', LoopVideoPlugin);\n\ndeclare module 'video.js' {\n export interface VideoJsPlayer {\n loopVideoPlugin(options?: LoopVideoPluginOptions): LoopVideoPlugin;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Cqq1N9xw.chunk.js","names":[],"sources":["../../../player/src/plugins/activity-status-plugin/components/activity-status-button.ts","../../../player/src/plugins/activity-status-plugin/activity-status-plugin.ts","../../../player/src/plugins/next-video-plugin/components/up-next/up-next.scss","../../../player/src/plugins/next-video-plugin/components/up-next/up-next.tsx","../../../player/src/components/next-video-menu-item/next-video-menu-item.ts","../../../player/src/plugins/next-video-plugin/next-video-plugin.ts","../../../player/src/plugins/loop-video-plugin/components/loop-video-menu-item.ts","../../../player/src/plugins/loop-video-plugin/loop-video-plugin.ts"],"sourcesContent":["import videojs, { VideoJsPlayer } from 'video.js';\n\nimport { ShareActivityStatus } from 'libs/shared/enums/ShareActivityStatus';\n\nconst Button = videojs.getComponent('Button');\n\nimport './activity-status-button.scss';\n\ninterface ActivityStatusButtonOptions extends videojs.ComponentOptions {\n activityStatus: ShareActivityStatus;\n clickHandler: () => void;\n}\n\nexport class ActivityStatusButton extends Button {\n public options_: ActivityStatusButtonOptions;\n public controlText_: string;\n\n constructor(player: VideoJsPlayer, options: ActivityStatusButtonOptions) {\n super(player, options);\n\n this.update();\n }\n\n public update(): void {\n if (this.options_.activityStatus === ShareActivityStatus.Complete)\n this.addClass('cv-activity-completed');\n else\n this.removeClass('cv-activity-completed');\n }\n\n public handleClick(...args: any[]) {\n this.options_.activityStatus = this.getToggledActivityStatus();\n\n this.update();\n if (this.options_.clickHandler) {\n this.options_.clickHandler.call(this, args);\n }\n }\n\n public buildCSSClass(): string {\n return 'cv-activity-status-button';\n }\n\n private getToggledActivityStatus(): ShareActivityStatus {\n if (this.options_.activityStatus === ShareActivityStatus.None\n || this.options_.activityStatus === ShareActivityStatus.Incomplete) {\n return ShareActivityStatus.Complete;\n }\n\n if (this.options_.activityStatus === ShareActivityStatus.Complete) {\n return ShareActivityStatus.Incomplete;\n }\n }\n}\n\nActivityStatusButton.prototype.controlText_ = 'Complete';\n","import videojs from 'video.js';\n\nimport { ShareActivityStatus } from 'libs/shared/enums/ShareActivityStatus';\n\nimport { ActivityStatusButton } from 'projects/player/plugins/activity-status-plugin/components/activity-status-button';\n\nconst Plugin = videojs.getPlugin('plugin');\n\nclass ActivityStatusPlugin extends Plugin {\n private activityStatus: ShareActivityStatus;\n private onToggleStatus: () => void;\n private button: ActivityStatusButton;\n\n public setActivityStatus(activityStatus: ShareActivityStatus, onToggleStatus: () => void): void {\n if (activityStatus === this.activityStatus)\n return;\n\n this.activityStatus = activityStatus;\n this.onToggleStatus = onToggleStatus;\n\n this.player.ready(() => {\n this.renderActivityStatusButton();\n });\n }\n\n // Remove old button and render new button when activity status is different from previous status\n private renderActivityStatusButton(): void {\n if (this.button) {\n this.player.removeChild(this.button);\n }\n\n this.button = new ActivityStatusButton(this.player, {\n activityStatus: this.activityStatus,\n clickHandler: this.onToggleStatus\n });\n\n this.player.addChild(this.button);\n }\n}\n\nvideojs.registerPlugin('activityStatusPlugin', ActivityStatusPlugin);\n\ndeclare module 'video.js' {\n export interface VideoJsPlayer {\n activityStatusPlugin(): ActivityStatusPlugin;\n }\n}\n","// This file is using some horrid valuies\n// It needs to be re-written this was just quickly thrown together\n// to show something at retro - Sha\n\n.video-js {\n .cv-up-next-container {\n position: absolute;\n bottom: 1.5em;\n color: $white;\n padding: 0.8em;\n width: 19em;\n border-radius: 0.3333em;\n background: $menu-bg;\n right: 1.5em;\n font-size: 1.5em;\n z-index: 6;\n }\n\n .cv-cancel-up-next {\n position: absolute;\n top: 0;\n right: 0.4em;\n font-size: 2em;\n }\n\n .cv-up-next-image {\n padding-bottom: 56.25%;\n background-size: contain;\n border-radius: 0.3333em;\n background-color: linear-gradient(to right, $gray-300, $gray-100);\n }\n\n .cv-up-next-heading {\n color: $white;\n padding-bottom: 0.6em;\n }\n\n .cv-up-next-title {\n color: $white;\n padding-top: 0.6em;\n }\n}","import * as React from 'react';\nimport videojs, { VideoJsPlayer } from 'video.js';\n\nimport { NextVideo } from 'projects/player/interfaces/NextVideo';\nimport { getReactComponent } from 'projects/player/react/react-component';\n\nimport './up-next.scss';\n\ninterface UpNextProps {\n player: VideoJsPlayer;\n nextVideo: NextVideo;\n onPlayNext: () => void;\n onCancel: () => void;\n}\n\nfunction UpNext(props: UpNextProps): JSX.Element {\n const [ timeRemaining, setTimeRemaining ] = React.useState(5);\n\n React.useEffect(() => {\n const timer = setInterval(() => {\n setTimeRemaining(prev => prev - 1);\n }, 1000);\n\n return () => {\n clearInterval(timer);\n };\n }, []);\n\n React.useEffect(() => {\n if (timeRemaining === 0)\n props.onPlayNext();\n }, [timeRemaining]);\n\n if (!props.nextVideo || !props.onPlayNext)\n return <></>;\n\n const roundedTimeRemaining = Math.ceil(timeRemaining);\n const secondsString = roundedTimeRemaining === 1 ? 'second' : 'seconds';\n\n return (\n <>\n <div className='cv-up-next-container'>\n <div className='cv-cancel-up-next cursor-pointer' role='button' onClick={props.onCancel}>×</div>\n <div className='cv-up-next-heading'>Up next in {roundedTimeRemaining} {secondsString}:</div>\n <div\n className='cv-up-next-image cursor-pointer'\n onClick={props.onPlayNext}\n style={{\n backgroundImage: `url(${props.nextVideo?.thumbnailUrl})`\n }}\n ></div>\n <div className='cv-up-next-title'>{props.nextVideo.name}</div>\n </div>\n </>\n );\n}\n\nvideojs.registerComponent(\n 'UpNext',\n getReactComponent(\n (player: VideoJsPlayer, options: UpNextProps) => <UpNext player={player} {...options} />\n )\n);\n","import videojs, { VideoJsPlayer } from 'video.js';\n\nimport './next-video-menu-item.scss';\n\nconst MenuItem = videojs.getComponent('MenuItem');\n\nclass NextVideoMenuItem extends MenuItem {\n private toggleEl: Element;\n\n /**\n * Because we want to bind our listener in createEl\n * and createEl runs in super. We store if we've bounud\n * our handler, so we only call bind once and \n * the call to removeEventListener will still work\n */\n private handlerBound: boolean;\n\n constructor(player: VideoJsPlayer, options: videojs.ComponentOptions) {\n super(player, options);\n\n this.bindListeners();\n\n if (this.player_.nextVideoPlugin().getShouldPlayNext())\n this.toggleOn();\n }\n\n private bindListeners(): void {\n this.onPlayNextChange = this.onPlayNextChange.bind(this);\n\n this.player_.on('cv:playnext', this.onPlayNextChange);\n }\n\n public handleToggle(): void {\n const shouldPlayNext = this.player_.nextVideoPlugin().getShouldPlayNext();\n\n this.player_.nextVideoPlugin().setShouldPlayNext(!shouldPlayNext, true);\n }\n\n private onPlayNextChange(_: any, enabled: boolean): void {\n enabled ? this.toggleOn() : this.toggleOff();\n }\n\n private toggleOn(): void {\n videojs.dom.addClass(this.toggleEl, 'on');\n }\n\n private toggleOff(): void {\n videojs.dom.removeClass(this.toggleEl, 'on');\n }\n\n /**\n * Because we extend MenuItem which will close the menu by default\n * we need to halt the event propogation here\n */\n public handleClick(event: videojs.EventTarget.Event): void {\n event.stopImmediatePropagation();\n }\n\n public createEl(tagName?: string, properties?: any, attributes?: any): HTMLLIElement {\n /**\n * Bind our event listener only once\n * see the comment where handlerBound is defined\n */\n if (!this.handlerBound) {\n this.handleToggle = this.handleToggle.bind(this);\n this.handlerBound = true;\n }\n\n if (this.toggleEl)\n this.toggleEl.removeEventListener('click', this.handleToggle);\n\n this.toggleEl = videojs.dom.createEl('div', {\n className: `custom-toggle custom-toggle-info toggle-option float-end`,\n innerHTML: '<span class=\"handle\"></span></div>'\n });\n this.toggleEl.addEventListener('click', this.handleToggle);\n\n const innerHTML = `\n <span class=\"vjs-menu-item-text\">Play next video</span>\n <span class=\"cv-toggle-container\"></span>`;\n\n const el = super.createEl(tagName, {\n className: 'vjs-menu-item cv-cog-menu-item cv-play-next-toggle',\n innerHTML\n }, attributes);\n\n /**\n * Indexing into the child this way is only safe to do because\n * we know that the el only has two children\n */\n el.children[1].appendChild(this.toggleEl);\n\n return el;\n }\n\n public dispose(): void {\n this.player_.off('cv:playnext', this.onPlayNextChange);\n super.dispose();\n }\n}\n\nvideojs.registerComponent('NextVideoMenuItem', NextVideoMenuItem);\n","import videojs, { VideoJsPlayer } from 'video.js';\n\nimport { CogButton } from 'projects/player/components/cog-button/cog-button';\nimport { NextVideo } from 'projects/player/interfaces/NextVideo';\nimport { TrackHelper } from 'projects/player/utils/track-helper';\n\nimport 'projects/player/plugins/next-video-plugin/components/up-next/up-next';\nimport 'projects/player/components/next-video-menu-item/next-video-menu-item';\n\nconst TEST = 'cv-persisttest';\nconst PLAY_NEXT = 'cv-play-next-video';\n\nconst Plugin = videojs.getPlugin('plugin');\nconst NextVideoMenuItem = videojs.getComponent('NextVideoMenuItem') as unknown as typeof videojs.MenuItem;\n\nclass NextVideoPlugin extends Plugin {\n private shouldPlayNextVideo: boolean;\n private hasLocalStorage: boolean;\n private nextVideoMenuItem: typeof videojs.MenuItem;\n\n private upNextRendered: boolean;\n\n private nextVideo: NextVideo;\n private callback: () => void;\n \n constructor(player: VideoJsPlayer) {\n super(player);\n\n this.setShouldPlayNext = this.setShouldPlayNext.bind(this);\n this.getShouldPlayNext = this.getShouldPlayNext.bind(this);\n this.getChapterTrack = this.getChapterTrack.bind(this);\n this.onTimeUpdate = this.onTimeUpdate.bind(this);\n\n this.hasLocalStorage = this.testHasLocalStorage();\n\n this.shouldPlayNextVideo = false;\n\n if (this.hasLocalStorage) {\n const item = window.localStorage.getItem(PLAY_NEXT);\n this.shouldPlayNextVideo = item === 'true';\n }\n\n player.ready(() => {\n this.initialize();\n });\n }\n \n private initialize(): void {\n if ((this.player as any).isDisposed())\n return;\n \n this.bindListeners();\n }\n\n private getChapterTrack(): TextTrack {\n return TrackHelper.getTrack(this.player, 'chapters', null);\n }\n\n public setNextVideo(nextVideo: NextVideo, playNext: boolean, callback: () => void): void {\n this.nextVideo = nextVideo;\n this.callback = callback;\n\n if (playNext)\n this.setShouldPlayNext(true);\n\n /**\n * Check additionalItemOrder in cog-button.ts if you need to change the order. - Sha\n */\n const cogButton = this.player.getChild('collapserator')?.getChild('cogButton') as CogButton;\n cogButton.addItem({ ctor: NextVideoMenuItem, name: 'NextVideoMenuItem' });\n }\n\n public getShouldPlayNext(): boolean {\n return this.shouldPlayNextVideo;\n }\n\n public setShouldPlayNext(val: boolean, persist?: boolean): void {\n this.shouldPlayNextVideo = val;\n this.player.trigger('cv:playnext', val);\n\n if (this.hasLocalStorage && persist)\n window.localStorage.setItem(PLAY_NEXT, val.toString());\n\n if (val)\n this.player.loopVideoPlugin().loop(false);\n }\n\n private bindListeners(): void {\n this.player.on('timeupdate', this.onTimeUpdate);\n }\n\n public dispose(): void {\n this.player.off('timeupdate', this.onTimeUpdate);\n\n this.hideUpNext();\n\n super.dispose();\n }\n\n private onTimeUpdate(): void {\n /**\n * Do nothing when in picture in picture.\n * TODO: Figure out how next video should work for PiP\n */\n if (this.player.pictureInPicture && this.player.isInPictureInPicture())\n return;\n\n if (!this.getShouldPlayNext()) {\n this.hideUpNext();\n return;\n }\n\n /*\n * Always hide the up-next tile if the video is not at the end\n */\n if (this.upNextRendered && this.player.currentTime() < this.player.duration()) {\n this.hideUpNext();\n return;\n }\n\n /*\n * Show the up-next tile when the video has finished\n */\n if (this.player.ended()) {\n this.showUpNext();\n }\n }\n\n private showUpNext(): void {\n if (this.upNextRendered)\n return;\n\n this.upNextRendered = true;\n\n this.player.addChild('UpNext', {\n nextVideo: this.nextVideo,\n onPlayNext: this.callback,\n onCancel: () => {\n this.hideUpNext();\n this.setShouldPlayNext(false);\n }\n });\n }\n\n private hideUpNext(): void {\n if (!this.upNextRendered)\n return;\n\n this.upNextRendered = false;\n\n const upNext = this.player.getChild('UpNext');\n\n if (upNext) {\n this.player.removeChild(upNext);\n upNext.dispose();\n }\n }\n\n private testHasLocalStorage(): boolean {\n try {\n window.localStorage.setItem(TEST, 'persistPlayNext');\n window.localStorage.removeItem(TEST);\n return true;\n } catch {\n return false;\n }\n }\n}\n\nvideojs.registerPlugin('nextVideoPlugin', NextVideoPlugin);\n\ndeclare module 'video.js' {\n export interface VideoJsPlayer {\n nextVideoPlugin(): NextVideoPlugin;\n }\n}\n","import videojs, { VideoJsPlayer } from 'video.js';\n\nimport './loop-video-menu-item.scss';\n\nconst MenuItem = videojs.getComponent('MenuItem');\n\nexport class LoopVideoMenuItem extends MenuItem {\n private toggleEl: Element;\n\n /**\n * Because we want to bind our listener in createEl\n * and createEl runs in super. We store if we've bounud\n * our handler, so we only call bind once and \n * the call to removeEventListener will still work\n */\n private handlerBound: boolean;\n\n constructor(player: VideoJsPlayer, options: videojs.ComponentOptions) {\n super(player, options);\n\n this.onLoopVideoChange = this.onLoopVideoChange.bind(this);\n\n this.player_.on('cv:loopvideo', this.onLoopVideoChange);\n\n this.onLoopVideoChange(null, this.player_.loopVideoPlugin().loop());\n }\n\n private onLoopVideoChange(_: any, enabled: boolean): void {\n enabled ? this.toggleOn() : this.toggleOff();\n }\n\n public handleToggle(): void {\n const loop = this.player_.loopVideoPlugin().loop();\n\n this.player_.loopVideoPlugin().loop(!loop);\n }\n\n private toggleOn(): void {\n videojs.dom.addClass(this.toggleEl, 'on');\n }\n\n private toggleOff(): void {\n videojs.dom.removeClass(this.toggleEl, 'on');\n }\n\n /**\n * Because we extend MenuItem which will close the menu by default\n * we need to halt the event propogation here\n */\n public handleClick(event: videojs.EventTarget.Event): void {\n event.stopImmediatePropagation();\n }\n\n public createEl(tagName?: string, properties?: any, attributes?: any): HTMLLIElement {\n /**\n * Bind our event listener only once\n * see the comment where handlerBound is defined\n */\n if (!this.handlerBound) {\n this.handleToggle = this.handleToggle.bind(this);\n this.handlerBound = true;\n }\n\n if (this.toggleEl)\n this.toggleEl.removeEventListener('click', this.handleToggle);\n\n this.toggleEl = videojs.dom.createEl('div', {\n className: `custom-toggle custom-toggle-info toggle-option float-end`,\n innerHTML: '<span class=\"handle\"></span></div>'\n });\n this.toggleEl.addEventListener('click', this.handleToggle);\n\n const innerHTML = `\n <span class=\"vjs-menu-item-text\">Loop video</span>\n <span class=\"cv-toggle-container\"></span>`;\n\n const el = super.createEl(tagName, {\n className: 'vjs-menu-item cv-cog-menu-item cv-loop-video-toggle',\n innerHTML\n }, attributes);\n\n /**\n * Indexing into the child this way is only safe to do because\n * we know that the el only has two children\n */\n el.children[1].appendChild(this.toggleEl);\n\n return el;\n }\n\n public dispose(): void {\n this.player_.off('cv:loopvideo', this.onLoopVideoChange);\n super.dispose();\n }\n}\n\nvideojs.registerComponent('LoopVideoMenuItem', LoopVideoMenuItem);\n","import videojs, { VideoJsPlayer } from 'video.js';\n\nimport { CogButton } from 'projects/player/components/cog-button/cog-button';\n\nimport 'projects/player/plugins/loop-video-plugin/components/loop-video-menu-item';\n\nconst Plugin = videojs.getPlugin('plugin');\nconst LoopVideoMenuItem = videojs.getComponent('LoopVideoMenuItem') as unknown as typeof videojs.MenuItem;\n\ninterface LoopVideoPluginOptions {\n allowLoop: boolean;\n}\n\nclass LoopVideoPlugin extends Plugin {\n constructor(player: VideoJsPlayer, options: LoopVideoPluginOptions) {\n super(player);\n\n // Button must be added after ctor finishes, otherwise subsequent calls to\n // this.player.loopVideoPlugin() will try make a new plugin - Sha\n if (options.allowLoop)\n this.player.ready(() => this.addButton());\n\n this.onEnded = this.onEnded.bind(this);\n this.player.on('ended', this.onEnded);\n }\n\n private addButton(): void {\n /**\n * Check additionalItemOrder in cog-button.ts if you need to change the order. - Sha\n */\n const cogButton = this.player.getChild('collapserator')?.getChild('cogButton') as CogButton;\n cogButton.addItem({ ctor: LoopVideoMenuItem, name: 'LoopVideoMenuItem' });\n }\n\n private onEnded(): void {\n // turns out the regular loop functionality doesn't work with clips.\n // this call will just do nothing for videos - Sha\n if (this.player.loop())\n this.player.play();\n }\n\n public loop(enabled: boolean): void;\n public loop(): boolean ;\n public loop(enabled?: boolean): any {\n if (typeof enabled !== 'boolean')\n return this.player.loop();\n\n if (enabled)\n this.player.nextVideoPlugin?.()?.setShouldPlayNext(false, false);\n\n this.player.trigger('cv:loopvideo', enabled);\n this.player.loop(enabled);\n }\n\n public dispose(): void {\n this.player.off('ended', this.onEnded);\n super.dispose();\n }\n}\n\nvideojs.registerPlugin('loopVideoPlugin', LoopVideoPlugin);\n\ndeclare module 'video.js' {\n export interface VideoJsPlayer {\n loopVideoPlugin(options?: LoopVideoPluginOptions): LoopVideoPlugin;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./DAXXjFlN.chunk.js";import{t as e}from"./C2w0pmFW.chunk.js";import{t}from"./wrLrTezN.chunk.js";import{u as n}from"./BX0wDJmp.chunk.js";import{t as r}from"./DZssmXj6.chunk.js";import{t as i}from"./CqrjHjAN.chunk.js";import{t as a}from"./D_gWf2lC.chunk.js";import{t as o}from"./DruDe9vI.chunk.js";import{n as s,t as c}from"./C6-aC3vu.chunk.js";import{n as l,t as u}from"./BGhJ8TEx.chunk.js";import{t as d}from"./7LGxCHGV.chunk.js";import{c as f,t as p}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import"./DAXXjFlN.chunk.js";import{t as e}from"./C2w0pmFW.chunk.js";import{t}from"./wrLrTezN.chunk.js";import{u as n}from"./BX0wDJmp.chunk.js";import{t as r}from"./DZssmXj6.chunk.js";import{t as i}from"./CqrjHjAN.chunk.js";import{t as a}from"./D_gWf2lC.chunk.js";import{t as o}from"./DruDe9vI.chunk.js";import{n as s,t as c}from"./C6-aC3vu.chunk.js";import{n as l,t as u}from"./BGhJ8TEx.chunk.js";import{t as d}from"./7LGxCHGV.chunk.js";import{c as f,t as p}from"./D-iyHqNw2.chunk.js";import{t as m}from"./BTd65Rcb2.chunk.js";import{t as h}from"./DbyH1eEj.chunk.js";e();var g=t();function _(e){let t=n(i.currentUser()),_=n(!!t.data&&r.sharedClip(e.objectId,e.shareId)),v=n(a.config()),y=n(u.createViewKey(e.shareId,l.Share)),b=n(o.getShareObject(e.shareId)),x=f(e.objectId);function S(e){e.one(`cv-playback-data-loaded`,()=>{m.remove()})}return c(s.getClipMetadata({content:_.data})),d(_,{private:h}),_.data&&t.hasCompleted&&v.hasCompleted&&y.hasCompleted&&b.hasCompleted&&x.hasCompleted?(0,g.jsx)(p,{config:v.data,video:_.data,currentUser:t.data,shareLink:b.data,viewKey:y.data,presentationSlug:null,embed:!0,showResources:!0,autoplay:e.queryParams.a===`true`,startTime:e.queryParams.t??e.queryParams.startTime,onReady:S,playerIntegrations:x.data}):(0,g.jsx)(g.Fragment,{})}export{_ as EmbeddedClipView};
|
|
2
|
+
//# sourceMappingURL=CwFYdvvA.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CwFYdvvA.chunk.js","names":[],"sources":["../../src/apps/embed/views/embedded-clip/EmbeddedClipView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, PlayerViewKey, UnionShareObject } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { usePlayerIntegrations } from 'shared/hooks/usePlayerIntegrations';\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\nimport { PrivateEmbedError } from 'apps/embed/errors/forbidden/PrivateEmbedError';\nimport { EmbedViewProps } from 'apps/embed/interfaces/EmbedViewProps';\nimport { EmbedPlaceHolderHelper } from 'apps/embed/utils/EmbedPlaceholderHelper';\n\nexport function EmbeddedClipView(props: EmbedViewProps): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const clip = Flight.useBasicFetch<Clip>(!!currentUser.data &&\n ClipRequests.sharedClip(props.objectId, props.shareId));\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(PlayerRequests.createViewKey(props.shareId, MediaIdType.Share));\n const shareLink = Flight.useBasicFetch<UnionShareObject>(\n ShareRequests.getShareObject(props.shareId)\n );\n const playerIntegrations = usePlayerIntegrations(props.objectId);\n\n function onReady(player: PlayerReference): void {\n player.one('cv-playback-data-loaded', () => {\n EmbedPlaceHolderHelper.remove();\n });\n }\n\n useSetPageMetadata(PageMetadataHelper.getClipMetadata({ content: clip.data }));\n useCannotConsumeError(clip, { private: PrivateEmbedError });\n\n const hasLoaded = (\n clip.data &&\n currentUser.hasCompleted &&\n config.hasCompleted &&\n viewKey.hasCompleted &&\n shareLink.hasCompleted &&\n playerIntegrations.hasCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <LitePlayerView\n config={config.data}\n video={clip.data}\n currentUser={currentUser.data}\n shareLink={shareLink.data}\n viewKey={viewKey.data}\n presentationSlug={null}\n embed\n showResources\n autoplay={props.queryParams.a === 'true'}\n startTime={props.queryParams.t ?? props.queryParams.startTime}\n onReady={onReady}\n playerIntegrations={playerIntegrations.data}\n />\n );\n}\n"],"mappings":"okBAuBA,SAAgB,EAAiB,EAAoC,CACnE,IAAM,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAO,EAA2B,CAAC,CAAC,EAAY,MACpD,EAAa,WAAW,EAAM,SAAU,EAAM,OAAO,CAAC,EAClD,EAAS,EAA6B,EAAe,OAAO,CAAC,EAC7D,EAAU,EAAoC,EAAe,cAAc,EAAM,QAAS,EAAY,KAAK,CAAC,EAC5G,EAAY,EAChB,EAAc,eAAe,EAAM,OAAO,CAC5C,EACM,EAAqB,EAAsB,EAAM,QAAQ,EAE/D,SAAS,EAAQ,EAA+B,CAC9C,EAAO,IAAI,8BAAiC,CAC1C,EAAuB,OAAO,CAChC,CAAC,CACH,CAiBA,OAfA,EAAmB,EAAmB,gBAAgB,CAAE,QAAS,EAAK,IAAK,CAAC,CAAC,EAC7E,EAAsB,EAAM,CAAE,QAAS,CAAkB,CAAC,EAGxD,EAAK,MACL,EAAY,cACZ,EAAO,cACP,EAAQ,cACR,EAAU,cACV,EAAmB,cAOnB,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,OAAQ,EAAO,KACf,MAAO,EAAK,KACZ,YAAa,EAAY,KACzB,UAAW,EAAU,KACrB,QAAS,EAAQ,KACjB,iBAAkB,KAClB,MAAA,GACA,cAAA,GACA,SAAU,EAAM,YAAY,IAAM,OAClC,UAAW,EAAM,YAAY,GAAK,EAAM,YAAY,UAC3C,UACT,mBAAoB,EAAmB,IACxC,CAAA,GAhBM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAkBf"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./DAXXjFlN.chunk.js";import{y as e}from"./BftnFbcr.chunk.js";import"./DFZS3Ffo.chunk.js";import{t}from"./C2w0pmFW.chunk.js";import{t as n}from"./wrLrTezN.chunk.js";import{t as r}from"./BXTI9cmX.chunk.js";import{u as i}from"./BX0wDJmp.chunk.js";import{t as a}from"./LoQS6GjP.chunk.js";import{t as o}from"./CqrjHjAN.chunk.js";import{t as s}from"./eoAypzU3.chunk.js";import{t as c}from"./D_gWf2lC.chunk.js";import{n as l,t as u}from"./C6-aC3vu.chunk.js";import{n as d,t as f}from"./BGhJ8TEx.chunk.js";import{t as p}from"./7LGxCHGV.chunk.js";import{c as m,l as h,t as g}from"./
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import"./DAXXjFlN.chunk.js";import{y as e}from"./BftnFbcr.chunk.js";import"./DFZS3Ffo.chunk.js";import{t}from"./C2w0pmFW.chunk.js";import{t as n}from"./wrLrTezN.chunk.js";import{t as r}from"./BXTI9cmX.chunk.js";import{u as i}from"./BX0wDJmp.chunk.js";import{t as a}from"./LoQS6GjP.chunk.js";import{t as o}from"./CqrjHjAN.chunk.js";import{t as s}from"./eoAypzU3.chunk.js";import{t as c}from"./D_gWf2lC.chunk.js";import{n as l,t as u}from"./C6-aC3vu.chunk.js";import{n as d,t as f}from"./BGhJ8TEx.chunk.js";import{t as p}from"./7LGxCHGV.chunk.js";import{c as m,l as h,t as g}from"./D-iyHqNw2.chunk.js";import{t as _}from"./B_-pJtOI2.chunk.js";import{t as v}from"./DbyH1eEj.chunk.js";import{t as y}from"./C9XBZFiR.chunk.js";import{t as b}from"./Tp0DOKOR.chunk.js";t();var x=n();function S(t){let n=i(o.currentUser()),S=i(n.data?.isAuthenticated&&a.video(t.id)),C=i(c.config()),w=i(f.createViewKey(t.id,d.MasterObject)),T=h(n.data?.isAuthenticated&&t.id),E=m(t.id);return u(l.getVideoMetadata({content:S.data,canonicalLink:_.getCanonicalLink(),allowIndexing:!1})),p(S,{private:v}),y(S,b),n.hasCompleted&&!n.data.isAuthenticated?(e.trigger({application:r.EMBED,action:s.Embed.LCS_LOGIN,args:[t.id],params:t.queryParams}),(0,x.jsx)(x.Fragment,{})):S.data&&n.hasCompleted&&C.hasCompleted&&w.hasCompleted&&T.hasCompleted&&E.hasCompleted?(0,x.jsx)(g,{config:C.data,video:S.data,currentUser:n.data,viewKey:w.data,pointsOfInterest:T.items,presentationSlug:null,embed:!0,showResources:!0,autoplay:t.queryParams.a===`true`,startTime:t.queryParams.t??t.queryParams.startTime,endTime:t.queryParams.endTime,playerIntegrations:E.data}):(0,x.jsx)(x.Fragment,{})}export{S as EmbeddedLcsVideoView};
|
|
2
|
+
//# sourceMappingURL=Cyit3dMk.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"Cyit3dMk.chunk.js","names":[],"sources":["../../src/apps/embed/views/embedded-lcs-video/EmbeddedLcsVideoView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, PlayerViewKey, Video } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { usePlayerIntegrations } from 'shared/hooks/usePlayerIntegrations';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\nimport { PrivateEmbedError } from 'apps/embed/errors/forbidden/PrivateEmbedError';\nimport { EmbeddedDefaultErrors } from 'apps/embed/utils/EmbedDefaultErrors';\n\ninterface EmbeddedLcsVideoViewProps {\n id: string;\n queryParams?: HashObject;\n}\n\n/**\n * This view has been introduced soley for the purpose of supporting RSS and Marc21 links\n * for LCSs (Library Cataloging Systems). If you're thinking about using it for anything else\n * please talk to me first - Sha\n */\nexport function EmbeddedLcsVideoView(props: EmbeddedLcsVideoViewProps): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<Video>(currentUser.data?.isAuthenticated && VideoRequests.video(props.id));\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(PlayerRequests.createViewKey(props.id, MediaIdType.MasterObject));\n const pointsOfInterest = useFetchPointsOfInterest(currentUser.data?.isAuthenticated && props.id);\n const playerIntegrations = usePlayerIntegrations(props.id);\n\n useSetPageMetadata(PageMetadataHelper.getVideoMetadata({\n content: video.data,\n canonicalLink: SeoHelper.getCanonicalLink(),\n allowIndexing: false\n }));\n useCannotConsumeError(video, { private: PrivateEmbedError });\n useHandleObjectError(video, EmbeddedDefaultErrors);\n\n if (currentUser.hasCompleted && !currentUser.data.isAuthenticated) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.EMBED,\n action: Actions.Embed.LCS_LOGIN,\n args: [props.id],\n params: props.queryParams\n });\n return <></>;\n }\n\n const hasLoaded = (\n video.data &&\n currentUser.hasCompleted &&\n config.hasCompleted &&\n viewKey.hasCompleted &&\n pointsOfInterest.hasCompleted &&\n playerIntegrations.hasCompleted\n );\n\n if (!hasLoaded) {\n return <></>;\n }\n\n return (\n <LitePlayerView\n config={config.data}\n video={video.data}\n currentUser={currentUser.data}\n viewKey={viewKey.data}\n pointsOfInterest={pointsOfInterest.items}\n presentationSlug={null}\n embed\n showResources\n autoplay={props.queryParams.a === 'true'}\n startTime={props.queryParams.t ?? props.queryParams.startTime}\n endTime={props.queryParams.endTime}\n playerIntegrations={playerIntegrations.data}\n />\n );\n}\n"],"mappings":"uwBAqCA,SAAgB,EAAqB,EAA+C,CAClF,IAAM,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAQ,EAA4B,EAAY,MAAM,iBAAmB,EAAc,MAAM,EAAM,EAAE,CAAC,EACtG,EAAS,EAA6B,EAAe,OAAO,CAAC,EAC7D,EAAU,EAAoC,EAAe,cAAc,EAAM,GAAI,EAAY,YAAY,CAAC,EAC9G,EAAmB,EAAyB,EAAY,MAAM,iBAAmB,EAAM,EAAE,EACzF,EAAqB,EAAsB,EAAM,EAAE,EAiCzD,OA/BA,EAAmB,EAAmB,iBAAiB,CACrD,QAAS,EAAM,KACf,cAAe,EAAU,iBAAiB,EAC1C,cAAe,EACjB,CAAC,CAAC,EACF,EAAsB,EAAO,CAAE,QAAS,CAAkB,CAAC,EAC3D,EAAqB,EAAO,CAAqB,EAE7C,EAAY,cAAgB,CAAC,EAAY,KAAK,iBAChD,EAAmB,QAAQ,CACzB,YAAa,EAAY,MACzB,OAAQ,EAAQ,MAAM,UACtB,KAAM,CAAC,EAAM,EAAE,EACf,OAAQ,EAAM,WAChB,CAAC,GACM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,GAIX,EAAM,MACN,EAAY,cACZ,EAAO,cACP,EAAQ,cACR,EAAiB,cACjB,EAAmB,cAQnB,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,OAAQ,EAAO,KACf,MAAO,EAAM,KACb,YAAa,EAAY,KACzB,QAAS,EAAQ,KACjB,iBAAkB,EAAiB,MACnC,iBAAkB,KAClB,MAAA,GACA,cAAA,GACA,SAAU,EAAM,YAAY,IAAM,OAClC,UAAW,EAAM,YAAY,GAAK,EAAM,YAAY,UACpD,QAAS,EAAM,YAAY,QAC3B,mBAAoB,EAAmB,IACxC,CAAA,GAjBM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAmBf"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["scripts/
|
|
2
|
-
import{o as e}from"./DAXXjFlN.chunk.js";import{x as t,y as n}from"./BftnFbcr.chunk.js";import"./DFZS3Ffo.chunk.js";import{n as r}from"./B785hxeE.chunk.js";import{t as i}from"./CQyJ7YGa.chunk.js";import{t as a}from"./e57H3T-k.chunk.js";import{t as o}from"./C2w0pmFW.chunk.js";import{t as s}from"./wrLrTezN.chunk.js";import{t as c}from"./BXTI9cmX.chunk.js";import{i as l}from"./BYSskNbK.chunk.js";import{f as u,g as d,p as f,u as p}from"./BX0wDJmp.chunk.js";import{U as m,d as h,l as g,s as _,y as v,z as y}from"./NlCAcBdo.chunk.js";import{t as b}from"./DGmmTRu72.chunk.js";import{t as x}from"./CVHQXNzi2.chunk.js";import{t as S}from"./BrbeV-Gn2.chunk.js";import{t as C}from"./LoQS6GjP.chunk.js";import{t as w}from"./CZgWQFsJ.chunk.js";import{t as T}from"./CqrjHjAN.chunk.js";import{t as E}from"./eoAypzU3.chunk.js";import{t as D}from"./D_gWf2lC.chunk.js";import{t as O}from"./_GCZ-60i.chunk.js";import{t as k}from"./DruDe9vI.chunk.js";import{t as A}from"./7-GJWRH82.chunk.js";import{t as j}from"./dLd5d3X22.chunk.js";import{n as M}from"./BRcHS92O2.chunk.js";import{t as ee}from"./Bs2PKr1I2.chunk.js";import{t as N}from"./QCFxJYkI2.chunk.js";import{t as te}from"./e_p5kSFR2.chunk.js";import{t as ne}from"./CduNFx13.chunk.js";import{n as P,t as F}from"./BGhJ8TEx.chunk.js";import{n as re,t as ie}from"./DWLFYiMu.chunk.js";import{t as ae}from"./DDLr4JCi.chunk.js";import{t as I}from"./B3gsVN-_.chunk.js";import{t as oe}from"./BDif2ytg2.chunk.js";import{t as L}from"./CbzENe5-2.chunk.js";import{t as R}from"./Dfw0sxVt2.chunk.js";import{t as se}from"./rVRhgtHY2.chunk.js";import{t as ce}from"./6UdHSMo02.chunk.js";import{t as le}from"./BSYDOevb2.chunk.js";import{t as z}from"./BugRosaL2.chunk.js";import{t as ue}from"./DYDxLHiV2.chunk.js";import{n as de}from"./CpFtf-tI2.chunk.js";import{t as fe}from"./BTd65Rcb2.chunk.js";import{t as pe}from"./D6vGqwTy2.chunk.js";import{t as B}from"./DBkEQkKm2.chunk.js";import{t as me}from"./dkL70h2W2.chunk.js";import{n as he,t as ge}from"./Bmh0Fxsl2.chunk.js";import"./BUDCkU2S2.chunk.js";import{t as _e}from"./C1loT8MD2.chunk.js";var V=e(o()),H=s();function U(e,t){let n=u(),{hasPermissions:i}=I(),a=(p(T.currentUser()).data?.isAuthenticated||t)&&i(r.ViewVideoPointsOfInterest);function o(t){return C.pointsOfInterest(e,t)}function s(e){n(o(e))}a||(e=null),ae(!!e&&o,!!e&&s);let c=re(!!e&&(e=>o(e).key));return a?c:ie}function W(e){let{hasEnabledViviPlayback:t,hasEnabledAppleTvPlayback:n,hasEnabledViviStudentCasting:i,isLoadingSettings:a}=b(null),{hasProduct:o,isLoadingProducts:s}=R(),{hasPermissions:c,isLoaded:l}=I(),{fetchViviAccessToken:u,fetchAppleTvAccessToken:d}=ve(),f=p(T.currentUser()),m=p(D.config()),h=xe(c),g=f.data?.isAuthenticated??!1,_=!c(r.StudentExperience),v=!c(r.GuestExperience),y=o(N.Primary),x=g&&y&&(_||i)&&v,S=g&&y&&_&&v,C=x&&t,w=p(e&&C&&L.getViviIntegrationStatus()),E=w.data===oe.Connected,O=!C||w.hasCompleted;return{hasCompleted:!g||f.hasCompleted&&m.hasCompleted&&O&&l&&!a&&!s,data:{ctaOptions:h,canUserCastToDevices:x||S,vivi:{accountConnected:E,enabled:x&&t,apiUrl:m.data?.viviApiUrl??``,fetchAccessToken:u},appleTv:{enabled:S&&n,fetchAccessToken:d}}}}function ve(){let e=f(),t=d();return{fetchViviAccessToken:async()=>{let n=L.getViviAccessToken(),r=t(n.key),{token:i}=r.shouldFetch?await e(n):r.data;return i},fetchAppleTvAccessToken:()=>e(L.getAppleTvAccessToken())}}var ye=`https://clickv.ie/w/WVsx`,be=`https://clickv.ie/w/PVsx`;function xe(e){let[i,a]=j(`devices:cta:dismissed`,{dismissed:!1},{storage:l.LocalStorage}),o=e(r.StudentExperience),s=e(r.ManageIntegrations),u={entity:g.DevicesCta,actionType:y.Click,workflowPhase:m.Complete,location:v.Player};return{hasBeenDismissed:i.dismissed||o,canUserManageIntegrations:s,onDismiss:e=>{O.logUserAction({canUserManageIntegrations:s,context:e},{...u,descriptor:_.Dismiss,eventVersion:h.V1}),a({dismissed:!0})},onInstall:e=>{O.logUserAction({canUserManageIntegrations:s,context:e},{...u,descriptor:_.InstallIntegration,eventVersion:h.V1}),n.trigger({application:c.SETTINGS,action:E.Settings.INTEGRATIONS})},onLearnMore:e=>{O.logUserAction({canUserManageIntegrations:s,context:e},{...u,descriptor:_.LearnMore,eventVersion:h.V1}),(e===`vivi_and_apple_tv`||e===`vivi`)&&t.PageLoad(ye,!0),(e===`vivi_and_apple_tv`||e===`apple_tv`)&&t.PageLoad(be,!0)},onContactSupport:e=>{O.logUserAction({canUserManageIntegrations:s,context:e},{...u,descriptor:_.ContactSupport,eventVersion:h.V1}),t.PageLoad(te.getSupportRequestUrl(),!0)}}}var G={VIDEO_START_TIME_CUTOFF:10,PUBLIC_SEARCH_QUERY_DEBOUNCE:400,AUTHENTICATED_SEARCH_QUERY_DEBOUNCE:200},K=e=>({application:c.LIBRARIES,action:E.Libraries.LIBRARY,args:[e.id.toString(),a.slugify(e.name)]}),q=(e,t)=>({application:c.LIBRARIES,action:E.Libraries.FOLDER,args:[e.id.toString(),t.id.toString(),a.slugify(t.name)]});function Se(e){let{settings:t,presentationSlug:n}=e;return{getTagAppLink:e=>({application:c.SEARCH,action:E.Search.HOME,params:{tagOrClassification:e.name}}),getSeriesAppLink:(e,t)=>ue.getSeriesAppLink(e,t?{mtv:!0}:{},n),getResourceAppLink:(e,t,n)=>r=>!n&&!t?{application:c.SIGN_UP,action:E.SignUp.SIGN_UP}:{application:c.VIDEOS,action:E.Videos.PREVIEW_PDF,args:[r.id],params:{videoId:e,shareId:t}},getPartnerProfileAppLink:t?.hasPartnerProfiles?e=>z.getPartnerDashboardAppLink(e):null,getPartnerDashboardHubAppLink:t?.hasPartnerProfiles?e=>z.getPartnerDashboardHubAppLink(e):null,getLibraryAppLink:K,getFolderAppLink:q}}function Ce(e,t){let n=Number(e);if(!isNaN(n)&&n>=0)return n;let r=S.getVideoProgress(t);return!r||r>=t.duration/1e3-G.VIDEO_START_TIME_CUTOFF?0:r}function we(e){if(Number.isInteger(+e))return+e}var J={poster:`_poster_1ven8_1`,frost:`_frost_1ven8_5`,image:`_image_1ven8_9`},Y=`shared.streamLimitOverlay`,X=i.encloseNamespace(Y);function Te(e){let t=e.canRedeemMoreReferrals?E.SignUp.INVITE_COLLEAGUE:E.SignUp.UPGRADE,n=e.canRedeemMoreReferrals?`inviteCta`:`upgradeCta`,r=e.embed||e.hasStudentExperience,i;return i=r?`basicDescription`:e.canRedeemMoreReferrals?`referralDescription`:`upgradeDescription`,V.useEffect(()=>{e.embed&&fe.remove()},[e.embed]),(0,H.jsxs)(`div`,{className:`position-relative bg-light overflow-hidden ${e.embed?`position-fixed top-0 start-0 end-0 bottom-0`:`ratio ratio-16x9`}`,children:[e.posterUrl&&(0,H.jsx)(`img`,{className:`position-absolute top-0 start-0 w-100 h-100 object-fit-cover ${J.poster}`,src:e.posterUrl,alt:``}),(0,H.jsx)(`div`,{className:`position-absolute top-0 start-0 w-100 h-100 ${J.frost}`}),(0,H.jsxs)(`div`,{className:`position-absolute top-0 start-0 w-100 h-100 d-flex flex-column align-items-center justify-content-center text-center p-4`,children:[(0,H.jsx)(`img`,{className:`${J.image} d-none d-md-block mb-3`,src:A.SignUp.INVITE_COLLEAGUE,alt:X(`heading`)}),(0,H.jsx)(`h2`,{className:`h5 mb-2`,children:(0,H.jsx)(de,{namespace:Y,phrase:`heading`,options:{smartCount:e.totalStreamsAvailable}})}),(0,H.jsx)(`p`,{className:`text-dark mb-3`,children:X(i)}),!r&&(0,H.jsx)(ne,{className:`btn btn-dark`,appLink:{application:c.SIGN_UP,action:t},children:X(n)})]})]})}var Ee=38,De=40,Oe=()=>{function e(e){if(e.keyCode===Ee||e.keyCode===De)return e.preventDefault(),!1}V.useEffect(()=>(window.addEventListener(`keydown`,e,!1),()=>{window.removeEventListener(`keydown`,e,!1)}),[])},Z=6,ke=25;function Q(e){let{video:t,currentUser:n,moviesAndTv:r,context:i,contextId:a}=e,{canViewRelatedVideos:o}=_e(),{hasProduct:s}=R(),c=u();function l(e){return!t||!n?.isAuthenticated||!s(N.Primary)||!o||!i&&!a?null:C.relatedVideos({videoId:t.id,context:i,collectionId:a,moviesAndTv:r,limit:e})}function d(e){return e&&(h&&(e=e.slice(0,Z-1)),e.filter(e=>S.getCanBeConsumed(e)?.canNavigate))}function f(){c(l(ke))}let m=p(l(Z)),h=m.data?.length===Z;return{videos:d(m.data),hasCompleted:m.hasCompleted,isFetching:m.isFetching,hasError:m.hasError,hasMore:h,fetchNext:f}}var Ae=M.Medium;function je(e,t,n){return t?n?n.objectId===e?F.createViewKey(t,P.Share):F.createViewKey(e,P.MasterObject,t):null:F.createViewKey(e,P.MasterObject)}function Me(e){let{objectId:t,objectTypeId:n,shareId:r,context:i,contextId:a,moviesAndTv:o}=e,s=p(D.config()),c=p(T.currentUser()),l=p(t&&S.getVideoRequest(t,n,r)),u=p(r&&k.getShareObject(r)),d=U((n===x.Video||n===x.Clip)&&t),f=p(t&&je(t,r,u.data)),m=Q({video:l.data,context:i,contextId:a,moviesAndTv:o,currentUser:c.data}),h=W(t);return p(t&&c.data?.isAuthenticated&&he.isFavourited(c.data.id,[t])),{hasCompleted:l.data&&s.hasCompleted&&c.hasCompleted&&(!r||u.hasCompleted)&&(n!==x.Video||d.hasCompleted)&&f.hasCompleted&&h.hasCompleted,config:s.data,currentUser:c.data,video:l.data,shareLink:u.data,pointsOfInterest:d?.items,viewKey:f.data,relatedVideos:m.videos,playerIntegrations:h.data}}function Ne(e,t){let{setFavourite:n,canFavourite:r}=ge(v.Player),i=me.isFavouritedByCurrentUser(t),a=S.isVideoTypeArchived(t);V.useEffect(()=>{!e||!t||!r(t)||a||e.setFavourite?.(i,e=>n(t,e))},[t,e,r,a])}function Pe(e,t,r,i,a){let{hasProduct:o}=R(),s=S.isVideoTypeArchived(r),l=t.isAuthenticated&&S.isVideo(r)&&r._canCreateChild?.value&&o(N.Primary)&&!i&&a&&!s;if(!l)return;function u(){l&&n.trigger({application:c.CLIPS,action:E.Clips.CREATE_CLIP,args:[r.id],params:{startTime:e.current?.currentTime?.()??void 0}})}return u}function Fe(e,t){let{hasProduct:n}=R();return e.isAuthenticated&&n(N.Primary)&&t}function Ie(e){let{player:t,relatedVideos:r,shareId:i,context:a,contextId:o,moviesAndTv:s,playNext:c,mode:l,isAuthenticated:u,presentationSlug:d}=e,f=r?.[0];V.useEffect(()=>{if(!t?.setNextVideo||!f)return;if(l!=="default"){t.setNextVideo?.(null,!1,null);return}let e=S.getThumbnail(f)?.url,r={name:f.name,thumbnailUrl:ee.createUrl(e,{size:Ae})};t.setNextVideo?.(r,c,()=>{n.trigger(B.getAppLink(f,{shareId:i,context:a,contextId:o,playNext:c,moviesAndTv:s,includeContext:u},d))})},[t,f,i,a,o,c,l])}var $={embeddedPlayer:`_embeddedPlayer_1qmhl_1`,placeholder:`_placeholder_1qmhl_8`,theatreMode:`_theatreMode_1qmhl_12`};function Le(e){return e.shareLink?e.currentUser.isAuthenticated?!0:!!e.collectAnonResults:!1}function Re(e,t,r,i,a){if(t)return n.getHref({application:c.SHARE,action:E.Share.VIEW_SHARE_LINK,args:[t.id],params:{t:r.currentTime,a:!0}});let o=B.getAppLink(e,{includeContext:i},a);return o.params||={},o.params.t=r.currentTime,o.params.a=!0,n.getHref(o)}ze.defaultProps={allowCreateClip:!0};function ze(e){let t=V.useRef(null),n=V.useRef(null);Ne(t.current,e.video),t.current,e.video,e.shareLink,Ie({player:t.current,relatedVideos:e.relatedVideos,shareId:e.shareLink?.id,context:e.context,contextId:e.contextId,moviesAndTv:e.moviesAndTv,playNext:e.playNext,mode:e.mode,isAuthenticated:e.currentUser?.isAuthenticated,presentationSlug:e.presentationSlug}),Oe();let i=Fe(e.currentUser,e.onRequestPictureInPicture),{experimentalInteractiveQuestions:a}=b(null),{isLoaded:o,hasReachedStreamLimit:s,canRedeemMoreReferrals:c,totalStreamsAvailable:l}=pe(),{hasPermissions:u}=I(),d=u(r.GuestExperience),f=u(r.StudentExperience),p=Pe(t,e.currentUser,e.video,e.embed,!d&&e.allowCreateClip),m=se();function h(n){t.current=n,m(),e.onReady&&e.onReady(n),g(n)}function g(t){n.current=new ce({player:t,video:e.video,analyticsLocation:e.embed?v.EmbeddedPlayer:v.PlayPage,shareId:e.shareLink?.id})}let _=``;`thumbnail`in e.video&&(_=e.video.thumbnail?.url),!_&&`_parentVideo`in e.video&&(_=e.video._parentVideo?.thumbnail?.url);let y={viewKey:e.viewKey.viewKey,playerApi:new URL(e.config.playerApiUrl),imageCdnUrl:e.config.imageCdnUrl,autoplay:e.autoplay,startTime:Ce(e.startTime,e.video),endTime:we(e.endTime),embed:e.embed,showResources:e.showResources,getExternalLink:e.embed&&(t=>Re(e.video,e.shareLink,t,e.currentUser?.isAuthenticated,e.presentationSlug)),muted:e.muted,splash:e.embed?{title:e.video.name,posterUrl:_,ratingCode:S.getRating(e.video)?.code,ratingValue:S.getRating(e.video)?.value,seriesName:`series`in e.video&&e.video.series?.name,seasonNumber:`season`in e.video&&e.video.season?.number,episodeNumber:`episodeNumber`in e.video&&e.video.episodeNumber}:void 0,allowTheatreMode:e.allowTheatreMode,allowLoop:!0,hotkeyElQuerySelector:`body`,sharerInstanceRegion:e.shareLink?.ownerInstanceRegion},C=e.playerIntegrations?{...e.playerIntegrations,trackingCode:S.getTrackingCode(e.video)}:void 0,T=e.mode==="default"&&e.defaultDisplayMode===`theatre`,E=e.mode===`hover`,D=e.video.typeId===x.Interactive,O=le.isPublic(e.shareLink),k=o&&s&&!E&&!O,A=V.useMemo(()=>V.lazy(()=>w(()=>import(`./9oMRc0cb2.chunk.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179]))),[]),j=V.useMemo(()=>V.lazy(()=>w(()=>import(`./BpHA-MkZ.chunk.js`),__vite__mapDeps([180,1,14,7,15,16,4,5,19,181,2,3,6,8,9,10,11,12,13,132,43,17,34,44,45,182,124,80,183,184,140,185,120,186,48,24,33,187,188,189,99,190,191,114,27,88,31,87,89,90,91,192,193,194,195,108,109,110,26,111,112,113,25,35,36,37,38,39,40,42,46,47,49,50,51,115,116,117,86,118,119,121,122,123,18,70,55,56,125,126,127,128,73,129,130,131,81,133,134,135,136,137,138,139,41,141,142,143,144,145,146,147,148,149,150,151,152,155,156,157,158,178,196,197,198,77,78,79,76,59,60,61,62,63,64,65,66,67,68,69,71,72,74,75,199,200,201]))),[]);if(k)return(0,H.jsx)(Te,{posterUrl:_,embed:e.embed,hasStudentExperience:f,canRedeemMoreReferrals:c,totalStreamsAvailable:l});if(D)return(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(`div`,{className:$.placeholder}),children:(0,H.jsx)(A,{...y,imageApi:new URL(e.config.imageCdnUrl),currentUser:e.currentUser,collectResults:Le(e),shareId:e.shareLink?.id,enableImmersiveReader:!0,summaryPortalNode:e.summaryPortalNode,onShowSummary:e.onShowSummary,onReady:h,className:e.embed?$.embeddedPlayer:``,furthestVisitedTime:e.video._videoProgress?.furthest,questionListPortalNode:e.questionListPortalNode,authToken:e.token?.value,experimentalInteractiveQuestions:a})});function M(){return e.embed?$.embeddedPlayer:T?`w-100 h-100`:``}return(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(`div`,{className:`${$.placeholder} ${T?$.theatreMode:``}`}),children:(0,H.jsx)(j,{...y,devicesConfig:C,className:M(),onClickCreateClip:p,pointsOfInterest:e.pointsOfInterest,onReady:h,showResources:e.embed,onRequestPictureInPicture:i&&e.onRequestPictureInPicture,onRequestTheatreMode:e.onRequestTheatreMode,theatreMode:T,nextDefaultDisplayMode:e.defaultDisplayMode,allowTranscript:e.allowTranscript})})}export{q as a,W as c,Se as i,U as l,Me as n,K as o,Q as r,G as s,ze as t};
|
|
3
|
-
//# sourceMappingURL=
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["scripts/CAs2Sere2.chunk.js","scripts/DAXXjFlN.chunk.js","scripts/snXCXfT6.chunk.js","scripts/e57H3T-k.chunk.js","scripts/C2w0pmFW.chunk.js","scripts/wrLrTezN.chunk.js","scripts/BVnMI-dl.chunk.js","scripts/CMDJWWg3.chunk.js","scripts/Dr3Lux2e.chunk.js","scripts/wdQVW3s5.chunk.js","scripts/BGGL8m_U.chunk.js","scripts/B_N30_Kb.chunk.js","scripts/rPN1bfU12.chunk.js","scripts/BIzu5ufQ.chunk.js","scripts/BftnFbcr.chunk.js","scripts/DPtsihFR.chunk.js","scripts/DMnm3Ewv.chunk.js","scripts/DFZS3Ffo.chunk.js","scripts/C1SLt-ar.chunk.js","scripts/NlCAcBdo.chunk.js","scripts/BzfCWDOl2.chunk.js","scripts/C5j5LRut2.chunk.js","scripts/Bneb37232.chunk.js","scripts/C1PTqhPY2.chunk.js","scripts/BDwjs8qz2.chunk.js","scripts/B3TDTJSl.chunk.js","scripts/BYSskNbK.chunk.js","scripts/BRcHS92O2.chunk.js","scripts/CaHxeG5Y2.chunk.js","scripts/e_p5kSFR2.chunk.js","scripts/Byg072EM.chunk.js","scripts/DZX1tZ-D2.chunk.js","scripts/QCFxJYkI2.chunk.js","scripts/C0exjRXJ.chunk.js","scripts/Bbp2U9GK.chunk.js","scripts/CYSDN6kj.chunk.js","scripts/CVqxBe99.chunk.js","scripts/CNxJMwxC.chunk.js","scripts/CQRza4Ga.chunk.js","scripts/ByIC_M_8.chunk.js","scripts/Epqx0J1v.chunk.js","scripts/Cy6lZVxk.chunk.js","scripts/BUnh3rN0.chunk.js","scripts/_GCZ-60i.chunk.js","scripts/CduNFx13.chunk.js","css/9awfngRG.chunk.css","css/zFl67mql.chunk.css","scripts/CXnhm0VS2.chunk.js","scripts/CQyJ7YGa.chunk.js","scripts/iZ7EqNA72.chunk.js","scripts/OL3Z6Yp62.chunk.js","scripts/TTO6HcNP.chunk.js","scripts/ClVhjUGI.chunk.js","scripts/11tE0tcu.chunk.js","scripts/E5Pmu4O7.chunk.js","scripts/CKOWgMyj2.chunk.js","scripts/D5yUWL7p2.chunk.js","scripts/BScb3_Xj2.chunk.js","scripts/BxYKQEUG2.chunk.js","scripts/DaT2nTfp.chunk.js","scripts/CDeqAwMc.chunk.js","scripts/ss6ZpC3s.chunk.js","scripts/GvIHspQt.chunk.js","scripts/FFbkHQcg.chunk.js","scripts/ClpxGEGl.chunk.js","scripts/CvNHBl0q.chunk.js","scripts/C-k6FY-f.chunk.js","scripts/BLm6PYXX.chunk.js","scripts/BM2EJL9g.chunk.js","scripts/DqXpeRGy.chunk.js","scripts/CpFtf-tI2.chunk.js","scripts/CCrnRkGN2.chunk.js","scripts/CXVBjdpb.chunk.js","scripts/BruX4yYB.chunk.js","scripts/gl4k7dtw.chunk.js","scripts/CQ0MgG2c.chunk.js","scripts/Dhx_Wqdc.chunk.js","scripts/6ZXIO06e.chunk.js","scripts/DlEtkSBj2.chunk.js","scripts/CnsLb4V9.chunk.js","scripts/C7HU4huj.chunk.js","scripts/BGswYbRT.chunk.js","scripts/D0szf-0g.chunk.js","scripts/9kSpxveW.chunk.js","scripts/C-THHyTP.chunk.js","scripts/DDJBf9pK2.chunk.js","scripts/DUXPuDp72.chunk.js","scripts/BiqmNDlz2.chunk.js","scripts/Bs2PKr1I2.chunk.js","scripts/BlGyXBAH2.chunk.js","scripts/Dc1hYuQ12.chunk.js","css/CuSUr3Gp.chunk.css","scripts/Dp6QHgBL.chunk.js","scripts/ByszCPst.chunk.js","scripts/B44BW79X2.chunk.js","scripts/BU5CGdBX.chunk.js","css/BPdg7JW4.chunk.css","scripts/Z4RlHaVG.chunk.js","scripts/Dg1mFtY2.chunk.js","scripts/BBEIIgZ6.chunk.js","scripts/CHL4nrKG.chunk.js","scripts/CWMwyVGJ2.chunk.js","scripts/QVHuXdWQ2.chunk.js","scripts/Cv139qj0.chunk.js","css/D8a4tOyE.chunk.css","scripts/lPQgHDFT.chunk.js","scripts/XBYhZGTN.chunk.js","scripts/CwYrnhdi.chunk.js","scripts/DKDWcWxk.chunk.js","scripts/c7DC36s9.chunk.js","scripts/BVm7hIyo.chunk.js","scripts/FAs_d-DP.chunk.js","scripts/Bzihudtn.chunk.js","scripts/BFXddaSP.chunk.js","scripts/YjWbDb2Y.chunk.js","scripts/BJUbYu222.chunk.js","scripts/BBDxSGT52.chunk.js","scripts/jAbfamoi.chunk.js","scripts/CdYjo8_g2.chunk.js","scripts/CbOJtYeK.chunk.js","scripts/B3fF5gkg.chunk.js","scripts/CvHvrB-t.chunk.js","scripts/B6bB9two.chunk.js","scripts/BbgQJe-T.chunk.js","scripts/5ONJSThP.chunk.js","scripts/xa4cS6Fq.chunk.js","scripts/DGmmTRu72.chunk.js","scripts/B_BV48Fy.chunk.js","scripts/BX0wDJmp.chunk.js","scripts/CqrjHjAN.chunk.js","scripts/Ky1--4w3.chunk.js","scripts/CZgWQFsJ.chunk.js","scripts/CVHQXNzi2.chunk.js","scripts/B9VCwo3g2.chunk.js","scripts/DsBWAM3I2.chunk.js","scripts/_42F7SIA2.chunk.js","scripts/Cr6TXzQQ2.chunk.js","scripts/CjA4Q5pm.chunk.js","scripts/CmcCVXi32.chunk.js","scripts/BcibGFe42.chunk.js","scripts/WvK58Ge12.chunk.js","scripts/DYKH_3un.chunk.js","scripts/CunDpHqX2.chunk.js","css/0ZqRj7up.chunk.css","scripts/B5XaBzZh.chunk.js","scripts/DIENjKhZ.chunk.js","css/D2t3ESms.chunk.css","scripts/B_9JhhOa.chunk.js","scripts/BPavmm8c.chunk.js","css/DnhOr8Y7.chunk.css","scripts/CnnDkGmK.chunk.js","scripts/C3Wa868y.chunk.js","css/DvO5Hl4o.chunk.css","scripts/0Fek4oFk.chunk.js","css/BL4roXAj.chunk.css","scripts/cDv6zuhh.chunk.js","scripts/Cqq1N9xw.chunk.js","scripts/lhZ5v-iN2.chunk.js","css/BU5l8u5C.chunk.css","scripts/B2-VFQV3.chunk.js","scripts/C3q_xvci.chunk.js","scripts/C8ueKMsK2.chunk.js","scripts/D5nbPgu6.chunk.js","scripts/DhwAOJmY2.chunk.js","scripts/B1T2AAyo2.chunk.js","css/CVYThLDD.chunk.css","scripts/DhhslGq9.chunk.js","scripts/DT8J1fGP.chunk.js","scripts/mhXVBlJN2.chunk.js","scripts/DlAOGdRl.chunk.js","scripts/Dl2HqObu.chunk.js","css/FUAcQhsk.chunk.css","css/PJ3nCJ4X.chunk.css","scripts/IqGr9V7u2.chunk.js","css/ChavoTyg.chunk.css","scripts/B-W0xPTa2.chunk.js","scripts/B2JUNqnO2.chunk.js","css/C1-mauxJ.chunk.css","scripts/BiKac8UT2.chunk.js","css/1w6aF2B0.chunk.css","scripts/BiWUSyJr.chunk.js","scripts/Dyy-PWHO.chunk.js","scripts/B2INd6bh.chunk.js","scripts/BRrNQXpU2.chunk.js","css/DVhPtkT7.chunk.css","scripts/D3-wtcxf2.chunk.js","scripts/DEZqrbCm.chunk.js","scripts/Chgge8yX2.chunk.js","scripts/BteVhTv7.chunk.js","scripts/De16zmhB.chunk.js","css/BgzV9aK4.chunk.css","scripts/BicQH0Al.chunk.js","css/D5JKYURg.chunk.css","scripts/B1r_1ubU.chunk.js","scripts/C5f0lBCw2.chunk.js","css/DBshtiPC.chunk.css","scripts/CNfmLVE82.chunk.js","scripts/CcI-EKxs.chunk.js","scripts/CsF4wDV1.chunk.js","scripts/_jJAx6fU.chunk.js","scripts/CLjADRa42.chunk.js","css/DVdh6HWj.chunk.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{o as e}from"./DAXXjFlN.chunk.js";import{x as t,y as n}from"./BftnFbcr.chunk.js";import"./DFZS3Ffo.chunk.js";import{n as r}from"./B785hxeE.chunk.js";import{t as i}from"./CQyJ7YGa.chunk.js";import{t as a}from"./e57H3T-k.chunk.js";import{t as o}from"./C2w0pmFW.chunk.js";import{t as s}from"./wrLrTezN.chunk.js";import{t as c}from"./BXTI9cmX.chunk.js";import{i as l}from"./BYSskNbK.chunk.js";import{f as u,g as d,p as f,u as p}from"./BX0wDJmp.chunk.js";import{U as m,d as h,l as g,s as _,y as v,z as y}from"./NlCAcBdo.chunk.js";import{t as b}from"./DGmmTRu72.chunk.js";import{t as x}from"./CVHQXNzi2.chunk.js";import{t as S}from"./BrbeV-Gn2.chunk.js";import{t as C}from"./LoQS6GjP.chunk.js";import{t as w}from"./CZgWQFsJ.chunk.js";import{t as T}from"./CqrjHjAN.chunk.js";import{t as E}from"./eoAypzU3.chunk.js";import{t as D}from"./D_gWf2lC.chunk.js";import{t as O}from"./_GCZ-60i.chunk.js";import{t as k}from"./DruDe9vI.chunk.js";import{t as A}from"./7-GJWRH82.chunk.js";import{t as j}from"./dLd5d3X22.chunk.js";import{n as M}from"./BRcHS92O2.chunk.js";import{t as ee}from"./Bs2PKr1I2.chunk.js";import{t as N}from"./QCFxJYkI2.chunk.js";import{t as te}from"./e_p5kSFR2.chunk.js";import{t as ne}from"./CduNFx13.chunk.js";import{n as P,t as F}from"./BGhJ8TEx.chunk.js";import{n as re,t as ie}from"./DWLFYiMu.chunk.js";import{t as ae}from"./DDLr4JCi.chunk.js";import{t as I}from"./B3gsVN-_.chunk.js";import{t as oe}from"./BDif2ytg2.chunk.js";import{t as L}from"./CbzENe5-2.chunk.js";import{t as R}from"./Dfw0sxVt2.chunk.js";import{t as se}from"./rVRhgtHY2.chunk.js";import{t as ce}from"./6UdHSMo02.chunk.js";import{t as le}from"./BSYDOevb2.chunk.js";import{t as z}from"./BugRosaL2.chunk.js";import{t as ue}from"./DYDxLHiV2.chunk.js";import{n as de}from"./CpFtf-tI2.chunk.js";import{t as fe}from"./BTd65Rcb2.chunk.js";import{t as pe}from"./D6vGqwTy2.chunk.js";import{t as B}from"./DBkEQkKm2.chunk.js";import{t as me}from"./dkL70h2W2.chunk.js";import{n as he,t as ge}from"./Bmh0Fxsl2.chunk.js";import"./BUDCkU2S2.chunk.js";import{t as _e}from"./C1loT8MD2.chunk.js";var V=e(o()),H=s();function U(e,t){let n=u(),{hasPermissions:i}=I(),a=(p(T.currentUser()).data?.isAuthenticated||t)&&i(r.ViewVideoPointsOfInterest);function o(t){return C.pointsOfInterest(e,t)}function s(e){n(o(e))}a||(e=null),ae(!!e&&o,!!e&&s);let c=re(!!e&&(e=>o(e).key));return a?c:ie}function W(e){let{hasEnabledViviPlayback:t,hasEnabledAppleTvPlayback:n,hasEnabledViviStudentCasting:i,isLoadingSettings:a}=b(null),{hasProduct:o,isLoadingProducts:s}=R(),{hasPermissions:c,isLoaded:l}=I(),{fetchViviAccessToken:u,fetchAppleTvAccessToken:d}=ve(),f=p(T.currentUser()),m=p(D.config()),h=xe(c),g=f.data?.isAuthenticated??!1,_=!c(r.StudentExperience),v=!c(r.GuestExperience),y=o(N.Primary),x=g&&y&&(_||i)&&v,S=g&&y&&_&&v,C=x&&t,w=p(e&&C&&L.getViviIntegrationStatus()),E=w.data===oe.Connected,O=!C||w.hasCompleted;return{hasCompleted:!g||f.hasCompleted&&m.hasCompleted&&O&&l&&!a&&!s,data:{ctaOptions:h,canUserCastToDevices:x||S,vivi:{accountConnected:E,enabled:x&&t,apiUrl:m.data?.viviApiUrl??``,fetchAccessToken:u},appleTv:{enabled:S&&n,fetchAccessToken:d}}}}function ve(){let e=f(),t=d();return{fetchViviAccessToken:async()=>{let n=L.getViviAccessToken(),r=t(n.key),{token:i}=r.shouldFetch?await e(n):r.data;return i},fetchAppleTvAccessToken:()=>e(L.getAppleTvAccessToken())}}var ye=`https://clickv.ie/w/WVsx`,be=`https://clickv.ie/w/PVsx`;function xe(e){let[i,a]=j(`devices:cta:dismissed`,{dismissed:!1},{storage:l.LocalStorage}),o=e(r.StudentExperience),s=e(r.ManageIntegrations),u={entity:g.DevicesCta,actionType:y.Click,workflowPhase:m.Complete,location:v.Player};return{hasBeenDismissed:i.dismissed||o,canUserManageIntegrations:s,onDismiss:e=>{O.logUserAction({canUserManageIntegrations:s,context:e},{...u,descriptor:_.Dismiss,eventVersion:h.V1}),a({dismissed:!0})},onInstall:e=>{O.logUserAction({canUserManageIntegrations:s,context:e},{...u,descriptor:_.InstallIntegration,eventVersion:h.V1}),n.trigger({application:c.SETTINGS,action:E.Settings.INTEGRATIONS})},onLearnMore:e=>{O.logUserAction({canUserManageIntegrations:s,context:e},{...u,descriptor:_.LearnMore,eventVersion:h.V1}),(e===`vivi_and_apple_tv`||e===`vivi`)&&t.PageLoad(ye,!0),(e===`vivi_and_apple_tv`||e===`apple_tv`)&&t.PageLoad(be,!0)},onContactSupport:e=>{O.logUserAction({canUserManageIntegrations:s,context:e},{...u,descriptor:_.ContactSupport,eventVersion:h.V1}),t.PageLoad(te.getSupportRequestUrl(),!0)}}}var G={VIDEO_START_TIME_CUTOFF:10,PUBLIC_SEARCH_QUERY_DEBOUNCE:400,AUTHENTICATED_SEARCH_QUERY_DEBOUNCE:200},K=e=>({application:c.LIBRARIES,action:E.Libraries.LIBRARY,args:[e.id.toString(),a.slugify(e.name)]}),q=(e,t)=>({application:c.LIBRARIES,action:E.Libraries.FOLDER,args:[e.id.toString(),t.id.toString(),a.slugify(t.name)]});function Se(e){let{settings:t,presentationSlug:n}=e;return{getTagAppLink:e=>({application:c.SEARCH,action:E.Search.HOME,params:{tagOrClassification:e.name}}),getSeriesAppLink:(e,t)=>ue.getSeriesAppLink(e,t?{mtv:!0}:{},n),getResourceAppLink:(e,t,n)=>r=>!n&&!t?{application:c.SIGN_UP,action:E.SignUp.SIGN_UP}:{application:c.VIDEOS,action:E.Videos.PREVIEW_PDF,args:[r.id],params:{videoId:e,shareId:t}},getPartnerProfileAppLink:t?.hasPartnerProfiles?e=>z.getPartnerDashboardAppLink(e):null,getPartnerDashboardHubAppLink:t?.hasPartnerProfiles?e=>z.getPartnerDashboardHubAppLink(e):null,getLibraryAppLink:K,getFolderAppLink:q}}function Ce(e,t){let n=Number(e);if(!isNaN(n)&&n>=0)return n;let r=S.getVideoProgress(t);return!r||r>=t.duration/1e3-G.VIDEO_START_TIME_CUTOFF?0:r}function we(e){if(Number.isInteger(+e))return+e}var J={poster:`_poster_1ven8_1`,frost:`_frost_1ven8_5`,image:`_image_1ven8_9`},Y=`shared.streamLimitOverlay`,X=i.encloseNamespace(Y);function Te(e){let t=e.canRedeemMoreReferrals?E.SignUp.INVITE_COLLEAGUE:E.SignUp.UPGRADE,n=e.canRedeemMoreReferrals?`inviteCta`:`upgradeCta`,r=e.embed||e.hasStudentExperience,i;return i=r?`basicDescription`:e.canRedeemMoreReferrals?`referralDescription`:`upgradeDescription`,V.useEffect(()=>{e.embed&&fe.remove()},[e.embed]),(0,H.jsxs)(`div`,{className:`position-relative bg-light overflow-hidden ${e.embed?`position-fixed top-0 start-0 end-0 bottom-0`:`ratio ratio-16x9`}`,children:[e.posterUrl&&(0,H.jsx)(`img`,{className:`position-absolute top-0 start-0 w-100 h-100 object-fit-cover ${J.poster}`,src:e.posterUrl,alt:``}),(0,H.jsx)(`div`,{className:`position-absolute top-0 start-0 w-100 h-100 ${J.frost}`}),(0,H.jsxs)(`div`,{className:`position-absolute top-0 start-0 w-100 h-100 d-flex flex-column align-items-center justify-content-center text-center p-4`,children:[(0,H.jsx)(`img`,{className:`${J.image} d-none d-md-block mb-3`,src:A.SignUp.INVITE_COLLEAGUE,alt:X(`heading`)}),(0,H.jsx)(`h2`,{className:`h5 mb-2`,children:(0,H.jsx)(de,{namespace:Y,phrase:`heading`,options:{smartCount:e.totalStreamsAvailable}})}),(0,H.jsx)(`p`,{className:`text-dark mb-3`,children:X(i)}),!r&&(0,H.jsx)(ne,{className:`btn btn-dark`,appLink:{application:c.SIGN_UP,action:t},children:X(n)})]})]})}var Ee=38,De=40,Oe=()=>{function e(e){if(e.keyCode===Ee||e.keyCode===De)return e.preventDefault(),!1}V.useEffect(()=>(window.addEventListener(`keydown`,e,!1),()=>{window.removeEventListener(`keydown`,e,!1)}),[])},Z=6,ke=25;function Q(e){let{video:t,currentUser:n,moviesAndTv:r,context:i,contextId:a}=e,{canViewRelatedVideos:o}=_e(),{hasProduct:s}=R(),c=u();function l(e){return!t||!n?.isAuthenticated||!s(N.Primary)||!o||!i&&!a?null:C.relatedVideos({videoId:t.id,context:i,collectionId:a,moviesAndTv:r,limit:e})}function d(e){return e&&(h&&(e=e.slice(0,Z-1)),e.filter(e=>S.getCanBeConsumed(e)?.canNavigate))}function f(){c(l(ke))}let m=p(l(Z)),h=m.data?.length===Z;return{videos:d(m.data),hasCompleted:m.hasCompleted,isFetching:m.isFetching,hasError:m.hasError,hasMore:h,fetchNext:f}}var Ae=M.Medium;function je(e,t,n){return t?n?n.objectId===e?F.createViewKey(t,P.Share):F.createViewKey(e,P.MasterObject,t):null:F.createViewKey(e,P.MasterObject)}function Me(e){let{objectId:t,objectTypeId:n,shareId:r,context:i,contextId:a,moviesAndTv:o}=e,s=p(D.config()),c=p(T.currentUser()),l=p(t&&S.getVideoRequest(t,n,r)),u=p(r&&k.getShareObject(r)),d=U((n===x.Video||n===x.Clip)&&t),f=p(t&&je(t,r,u.data)),m=Q({video:l.data,context:i,contextId:a,moviesAndTv:o,currentUser:c.data}),h=W(t);return p(t&&c.data?.isAuthenticated&&he.isFavourited(c.data.id,[t])),{hasCompleted:l.data&&s.hasCompleted&&c.hasCompleted&&(!r||u.hasCompleted)&&(n!==x.Video||d.hasCompleted)&&f.hasCompleted&&h.hasCompleted,config:s.data,currentUser:c.data,video:l.data,shareLink:u.data,pointsOfInterest:d?.items,viewKey:f.data,relatedVideos:m.videos,playerIntegrations:h.data}}function Ne(e,t){let{setFavourite:n,canFavourite:r}=ge(v.Player),i=me.isFavouritedByCurrentUser(t),a=S.isVideoTypeArchived(t);V.useEffect(()=>{!e||!t||!r(t)||a||e.setFavourite?.(i,e=>n(t,e))},[t,e,r,a])}function Pe(e,t,r,i,a){let{hasProduct:o}=R(),s=S.isVideoTypeArchived(r),l=t.isAuthenticated&&S.isVideo(r)&&r._canCreateChild?.value&&o(N.Primary)&&!i&&a&&!s;if(!l)return;function u(){l&&n.trigger({application:c.CLIPS,action:E.Clips.CREATE_CLIP,args:[r.id],params:{startTime:e.current?.currentTime?.()??void 0}})}return u}function Fe(e,t){let{hasProduct:n}=R();return e.isAuthenticated&&n(N.Primary)&&t}function Ie(e){let{player:t,relatedVideos:r,shareId:i,context:a,contextId:o,moviesAndTv:s,playNext:c,mode:l,isAuthenticated:u,presentationSlug:d}=e,f=r?.[0];V.useEffect(()=>{if(!t?.setNextVideo||!f)return;if(l!=="default"){t.setNextVideo?.(null,!1,null);return}let e=S.getThumbnail(f)?.url,r={name:f.name,thumbnailUrl:ee.createUrl(e,{size:Ae})};t.setNextVideo?.(r,c,()=>{n.trigger(B.getAppLink(f,{shareId:i,context:a,contextId:o,playNext:c,moviesAndTv:s,includeContext:u},d))})},[t,f,i,a,o,c,l])}var $={embeddedPlayer:`_embeddedPlayer_1qmhl_1`,placeholder:`_placeholder_1qmhl_8`,theatreMode:`_theatreMode_1qmhl_12`};function Le(e){return e.shareLink?e.currentUser.isAuthenticated?!0:!!e.collectAnonResults:!1}function Re(e,t,r,i,a){if(t)return n.getHref({application:c.SHARE,action:E.Share.VIEW_SHARE_LINK,args:[t.id],params:{t:r.currentTime,a:!0}});let o=B.getAppLink(e,{includeContext:i},a);return o.params||={},o.params.t=r.currentTime,o.params.a=!0,n.getHref(o)}ze.defaultProps={allowCreateClip:!0};function ze(e){let t=V.useRef(null),n=V.useRef(null);Ne(t.current,e.video),t.current,e.video,e.shareLink,Ie({player:t.current,relatedVideos:e.relatedVideos,shareId:e.shareLink?.id,context:e.context,contextId:e.contextId,moviesAndTv:e.moviesAndTv,playNext:e.playNext,mode:e.mode,isAuthenticated:e.currentUser?.isAuthenticated,presentationSlug:e.presentationSlug}),Oe();let i=Fe(e.currentUser,e.onRequestPictureInPicture),{experimentalInteractiveQuestions:a}=b(null),{isLoaded:o,hasReachedStreamLimit:s,canRedeemMoreReferrals:c,totalStreamsAvailable:l}=pe(),{hasPermissions:u}=I(),d=u(r.GuestExperience),f=u(r.StudentExperience),p=Pe(t,e.currentUser,e.video,e.embed,!d&&e.allowCreateClip),m=se();function h(n){t.current=n,m(),e.onReady&&e.onReady(n),g(n)}function g(t){n.current=new ce({player:t,video:e.video,analyticsLocation:e.embed?v.EmbeddedPlayer:v.PlayPage,shareId:e.shareLink?.id})}let _=``;`thumbnail`in e.video&&(_=e.video.thumbnail?.url),!_&&`_parentVideo`in e.video&&(_=e.video._parentVideo?.thumbnail?.url);let y={viewKey:e.viewKey.viewKey,playerApi:new URL(e.config.playerApiUrl),imageCdnUrl:e.config.imageCdnUrl,autoplay:e.autoplay,startTime:Ce(e.startTime,e.video),endTime:we(e.endTime),embed:e.embed,showResources:e.showResources,getExternalLink:e.embed&&(t=>Re(e.video,e.shareLink,t,e.currentUser?.isAuthenticated,e.presentationSlug)),muted:e.muted,splash:e.embed?{title:e.video.name,posterUrl:_,ratingCode:S.getRating(e.video)?.code,ratingValue:S.getRating(e.video)?.value,seriesName:`series`in e.video&&e.video.series?.name,seasonNumber:`season`in e.video&&e.video.season?.number,episodeNumber:`episodeNumber`in e.video&&e.video.episodeNumber}:void 0,allowTheatreMode:e.allowTheatreMode,allowLoop:!0,hotkeyElQuerySelector:`body`,sharerInstanceRegion:e.shareLink?.ownerInstanceRegion},C=e.playerIntegrations?{...e.playerIntegrations,trackingCode:S.getTrackingCode(e.video)}:void 0,T=e.mode==="default"&&e.defaultDisplayMode===`theatre`,E=e.mode===`hover`,D=e.video.typeId===x.Interactive,O=le.isPublic(e.shareLink),k=o&&s&&!E&&!O,A=V.useMemo(()=>V.lazy(()=>w(()=>import(`./CAs2Sere2.chunk.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179]))),[]),j=V.useMemo(()=>V.lazy(()=>w(()=>import(`./BiWUSyJr.chunk.js`),__vite__mapDeps([180,1,14,7,15,16,4,5,19,181,2,3,6,8,9,10,11,12,13,132,43,17,34,44,45,182,124,80,183,184,140,185,120,186,48,24,33,187,188,189,99,190,191,114,27,88,31,87,89,90,91,192,193,194,195,108,109,110,26,111,112,113,25,35,36,37,38,39,40,42,46,47,49,50,51,115,116,117,86,118,119,121,122,123,18,70,55,56,125,126,127,128,73,129,130,131,81,133,134,135,136,137,138,139,41,141,142,143,144,145,146,147,148,149,150,151,152,155,156,157,158,178,196,197,198,77,78,79,76,59,60,61,62,63,64,65,66,67,68,69,71,72,74,75,199,200,201]))),[]);if(k)return(0,H.jsx)(Te,{posterUrl:_,embed:e.embed,hasStudentExperience:f,canRedeemMoreReferrals:c,totalStreamsAvailable:l});if(D)return(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(`div`,{className:$.placeholder}),children:(0,H.jsx)(A,{...y,imageApi:new URL(e.config.imageCdnUrl),currentUser:e.currentUser,collectResults:Le(e),shareId:e.shareLink?.id,enableImmersiveReader:!0,summaryPortalNode:e.summaryPortalNode,onShowSummary:e.onShowSummary,onReady:h,className:e.embed?$.embeddedPlayer:``,furthestVisitedTime:e.video._videoProgress?.furthest,questionListPortalNode:e.questionListPortalNode,authToken:e.token?.value,experimentalInteractiveQuestions:a})});function M(){return e.embed?$.embeddedPlayer:T?`w-100 h-100`:``}return(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(`div`,{className:`${$.placeholder} ${T?$.theatreMode:``}`}),children:(0,H.jsx)(j,{...y,devicesConfig:C,className:M(),onClickCreateClip:p,pointsOfInterest:e.pointsOfInterest,onReady:h,showResources:e.embed,onRequestPictureInPicture:i&&e.onRequestPictureInPicture,onRequestTheatreMode:e.onRequestTheatreMode,theatreMode:T,nextDefaultDisplayMode:e.defaultDisplayMode,allowTranscript:e.allowTranscript})})}export{q as a,W as c,Se as i,U as l,Me as n,K as o,Q as r,G as s,ze as t};
|
|
3
|
+
//# sourceMappingURL=D-iyHqNw2.chunk.js.map
|