@carbon/ibmdotcom-web-components 2.55.2 → 2.55.3

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 (43) hide show
  1. package/dist/dotcom-shell.js +2 -2
  2. package/dist/dotcom-shell.min.js +2 -2
  3. package/dist/ibmdotcom-web-components-dotcom-shell.js +2 -2
  4. package/dist/ibmdotcom-web-components-dotcom-shell.min.js +2 -2
  5. package/dist/{index-be1f0d99.js → index-5becb925.js} +195 -22
  6. package/dist/{index-b326a4b8.js → index-9b1155d4.js} +265 -265
  7. package/dist/{left-nav-menu-9f0d5440.js → left-nav-menu-4a6c5357.js} +2 -2
  8. package/dist/{left-nav-menu-a8434277.js → left-nav-menu-96dbffa3.js} +2 -2
  9. package/dist/{left-nav-menu-category-heading-d5ebb582.js → left-nav-menu-category-heading-4eaaa1cb.js} +2 -2
  10. package/dist/{left-nav-menu-category-heading-0db7fdac.js → left-nav-menu-category-heading-8c2b8ed1.js} +2 -2
  11. package/dist/{left-nav-menu-item-c52800b2.js → left-nav-menu-item-2919662e.js} +2 -2
  12. package/dist/{left-nav-menu-item-fdaa0bb7.js → left-nav-menu-item-e3cb7a75.js} +2 -2
  13. package/dist/{left-nav-menu-section-5d57cc54.js → left-nav-menu-section-3f725e26.js} +2 -2
  14. package/dist/{left-nav-menu-section-2272b80a.js → left-nav-menu-section-ee8222d1.js} +2 -2
  15. package/dist/{left-nav-overlay-69843140.js → left-nav-overlay-69df9fd0.js} +2 -2
  16. package/dist/{left-nav-overlay-ced9c29b.js → left-nav-overlay-eb67d1de.js} +2 -2
  17. package/dist/{megamenu-category-group-c69fb5d2.js → megamenu-category-group-3f2bfe7c.js} +2 -2
  18. package/dist/{megamenu-category-group-de1f78af.js → megamenu-category-group-6c76c126.js} +2 -2
  19. package/dist/{megamenu-category-group-copy-854dcd81.js → megamenu-category-group-copy-2f09fb89.js} +2 -2
  20. package/dist/{megamenu-category-group-copy-7b95d53d.js → megamenu-category-group-copy-62f21ae2.js} +2 -2
  21. package/dist/{megamenu-category-heading-9a6fa4b2.js → megamenu-category-heading-32e44d96.js} +2 -2
  22. package/dist/{megamenu-category-heading-78122438.js → megamenu-category-heading-478cfb1a.js} +2 -2
  23. package/dist/{megamenu-category-link-531caec6.js → megamenu-category-link-05dee472.js} +2 -2
  24. package/dist/{megamenu-category-link-8e7e7d24.js → megamenu-category-link-82d0de27.js} +2 -2
  25. package/dist/{megamenu-category-link-group-a017d5e6.js → megamenu-category-link-group-8099bca4.js} +2 -2
  26. package/dist/{megamenu-category-link-group-15bba423.js → megamenu-category-link-group-8e7eb5a1.js} +2 -2
  27. package/dist/{megamenu-left-navigation-df0c2578.js → megamenu-left-navigation-5cea51eb.js} +2 -2
  28. package/dist/{megamenu-left-navigation-42583912.js → megamenu-left-navigation-946e6ecd.js} +2 -2
  29. package/dist/{megamenu-overlay-295ba580.js → megamenu-overlay-8b50d36d.js} +2 -2
  30. package/dist/{megamenu-overlay-49a05565.js → megamenu-overlay-babb56ff.js} +2 -2
  31. package/dist/{megamenu-tab-7188fba7.js → megamenu-tab-62d05074.js} +2 -2
  32. package/dist/{megamenu-tab-f667b3bf.js → megamenu-tab-8b71189a.js} +2 -2
  33. package/es/components/cta/video-cta-container.d.ts +1 -0
  34. package/es/components/lightbox-media-viewer/lightbox-video-player-container.d.ts +1 -0
  35. package/es/components/video-player-v7/video-player-composite.d.ts +18 -0
  36. package/es/components/video-player-v7/video-player-composite.js +136 -7
  37. package/es/components/video-player-v7/video-player-composite.js.map +1 -1
  38. package/es/components/video-player-v7/video-player-container.d.ts +20 -0
  39. package/es/components/video-player-v7/video-player-container.js +63 -10
  40. package/es/components/video-player-v7/video-player-container.js.map +1 -1
  41. package/es/internal/vendor/@carbon/ibmdotcom-services/services/KalturaPlayerV7/KalturaPlayer.js +192 -19
  42. package/lib/internal/vendor/@carbon/ibmdotcom-services/services/KalturaPlayerV7/KalturaPlayer.js +192 -19
  43. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"video-player-composite.js","names":["LitElement","html","property","state","HostListener","HostListenerMixin","settings","KalturaPlayerAPI","HybridRenderMixin","VIDEO_PLAYER_CONTENT_STATE","VIDEO_PLAYER_PLAYING_MODE","carbonElement","customElement","BUTTON_POSITION","ifNonEmpty","stablePrefix","c4dPrefix","C4DVideoPlayerComposite","_decorate","_initialize","_HybridRenderMixin","constructor","args","F","d","kind","key","value","_activateEmbeddedVideo","videoId","embeddedVideos","Object","keys","forEach","kalturaPlayer","play","pause","selectorVideoPlayer","querySelector","_cleanAndCreateObserverIntersection","create","_observerIntersectionIntoView","unobserve","_observerIntersectionOutOfView","IntersectionObserver","_intersectionIntoViewHandler","bind","root","closest","rootMargin","threshold","_intersectionOutOfViewHandler","observe","entries","entry","isIntersecting","_getAutoplayPreference","_this$_embedMedia","_embedMedia","call","playAllVideos","pauseAllVideos","decorators","_handleContentStateChange","event","contentState","playingMode","ctaElement","detail","VIDEO","INLINE","_this$_embedMedia2","_handlePlaybackStateChange","isPlaying","_setAutoplayPreference","playbackTriggered","_handleEventTogglePlayback","_this$_embedMedia3","updateAutoplayPreference","_embeddedVideos$video","_embeddedVideos$video2","getIsVideoPlaying","_iframe$contentWindow","iframe","playerContainer","contentWindow","document","type","Boolean","attribute","reflect","BOTTOM_RIGHT","Number","connectedCallback","_superPropGet","backgroundMode","hideCaption","autoPlay","storedPreference","window","matchMedia","matches","intersectionMode","observer","MutationObserver","isRTL","dir","getComputedStyle","direction","documentElement","attributes","attributeFilter","disconnectedCallback","updated","changedProperties","has","_this$_loadVideoData","_loadVideoData","_this$_embedMedia4","renderLightDOM","_this$querySelector","setAttribute","aspectRatio","formatCaption","formatDuration","caption","customVideoDescription","mediaData","videoThumbnailWidth","thumbnail","buttonPosition","currentVideoData","duration","name","thumbnailUrl","getThumbnailUrl","mediaId","width","_t","_","THUMBNAIL","render","_t2","static"],"sources":["components/video-player-v7/video-player-composite.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport HostListener from '@carbon/web-components/es/globals/decorators/host-listener.js';\nimport HostListenerMixin from '@carbon/web-components/es/globals/mixins/host-listener.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport KalturaPlayerAPI from '@carbon/ibmdotcom-services/es/services/KalturaPlayerV7/KalturaPlayer.js';\nimport HybridRenderMixin from '../../globals/mixins/hybrid-render';\nimport { MediaData } from '../../internal/vendor/@carbon/ibmdotcom-services-store/types/kalturaPlayerAPIv7';\nimport {\n VIDEO_PLAYER_CONTENT_STATE,\n VIDEO_PLAYER_PLAYING_MODE,\n} from './video-player';\n// Above import is interface-only ref and thus code won't be brought into the build\nimport './video-player';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport { BUTTON_POSITION } from './defs';\nimport ifNonEmpty from '@carbon/web-components/es/globals/directives/if-non-empty.js';\n\nconst { stablePrefix: c4dPrefix } = settings;\n\n/**\n * Component that renders video player from its metadata, etc.\n *\n * @element c4d-video-player-composite-v7\n * @csspart video-player - The video player. Usage `c4d-video-player-composite-v7::part(video-player)`\n */\n@customElement(`${c4dPrefix}-video-player-composite-v7`)\nclass C4DVideoPlayerComposite extends HybridRenderMixin(\n HostListenerMixin(LitElement)\n) {\n /**\n * The placeholder for `_loadVideoData()` Redux action that may be mixed in.\n *\n * @internal\n */\n _loadVideoData?: (videoId: string) => Promise<MediaData>;\n\n /**\n * The placeholder for `_loadVideoData()` Redux action that may be mixed in.\n *\n * @internal\n */\n _embedMedia?: (videoId: string) => Promise<any>;\n\n /**\n * The placeholder for `_setAutoplayPreference()` Redux action that may be mixed in.\n */\n // @ts-ignore\n _setAutoplayPreference: (preference: boolean) => void;\n\n /**\n * The placeholder for `_getAutoplayPreference()` Redux action that may be mixed in.\n */\n // @ts-ignore\n _getAutoplayPreference: () => null | boolean;\n\n /**\n * Activate the DOM nodes for the embedded video of the given video ID, and deactivates others.\n *\n * @param videoId The video ID to activate.\n */\n protected _activateEmbeddedVideo(videoId: string) {\n const { embeddedVideos = {} } = this;\n Object.keys(embeddedVideos).forEach((key) => {\n const kalturaPlayer = embeddedVideos[key];\n key === videoId ? kalturaPlayer.play() : kalturaPlayer.pause();\n });\n }\n\n /**\n * The video player.\n */\n protected get _videoPlayer() {\n const { selectorVideoPlayer } = this\n .constructor as typeof C4DVideoPlayerComposite;\n return this.querySelector(selectorVideoPlayer);\n }\n\n /**\n * Clean-up and create intersection observers.\n *\n * When this.intersectionMode, we use intersection observers to track when\n * the video container is in view, and embed / play / pause the video\n * accordingly.\n *\n * @param [options] The options.\n * @param [options.create] `true` to create necessary intersection observers.\n */\n private _cleanAndCreateObserverIntersection({\n create,\n }: { create?: boolean } = {}) {\n // Cleanup.\n if (this._observerIntersectionIntoView) {\n this._observerIntersectionIntoView.unobserve(this);\n }\n if (this._observerIntersectionOutOfView) {\n this._observerIntersectionOutOfView.unobserve(this);\n }\n // Create new intersection observers.\n if (create) {\n this._observerIntersectionIntoView = new IntersectionObserver(\n this._intersectionIntoViewHandler.bind(this),\n {\n root: this.closest('c4d-carousel'),\n rootMargin: '0px',\n threshold: 0.9,\n }\n );\n this._observerIntersectionOutOfView = new IntersectionObserver(\n this._intersectionOutOfViewHandler.bind(this),\n {\n root: this.closest('c4d-carousel'),\n rootMargin: '0px',\n threshold: 0.5,\n }\n );\n this._observerIntersectionIntoView.observe(this);\n this._observerIntersectionOutOfView.observe(this);\n }\n }\n\n /**\n * Observer for when the video container enters into view.\n *\n * Autoplay the video, resecting the users stored autoplay preference.\n */\n private _intersectionIntoViewHandler(entries: IntersectionObserverEntry[]) {\n const { videoId } = this;\n entries.forEach((entry) => {\n if (entry.isIntersecting && this._getAutoplayPreference() !== false) {\n this._embedMedia?.(videoId);\n this.playAllVideos();\n }\n });\n }\n\n /**\n * Observer for when the video container goes out of view.\n *\n * Auto-pause the video, video playback controlled by intersection observers\n * here are meant to be ambient, without audio. No reason for playback when\n * user is not seeing the video content.\n */\n private _intersectionOutOfViewHandler(entries: IntersectionObserverEntry[]) {\n entries.forEach((entry) => {\n if (!entry.isIntersecting) {\n this.pauseAllVideos(false);\n }\n });\n }\n\n /**\n * Handles `c4d-video-player-content-state-changed` event.\n * Such event is fired when user changes video content state, e.g. from thumbnail to video player.\n *\n * @param event The event.\n */\n @HostListener('eventContentStateChange')\n protected _handleContentStateChange(event: CustomEvent) {\n const { contentState, playingMode, videoId, ctaElement } = event.detail;\n\n // Store CTA element for potential forwarding\n if (ctaElement) {\n this.ctaElement = ctaElement;\n }\n\n if (\n contentState === VIDEO_PLAYER_CONTENT_STATE.VIDEO &&\n playingMode === VIDEO_PLAYER_PLAYING_MODE.INLINE &&\n videoId\n ) {\n this._embedMedia?.(videoId);\n }\n }\n\n @HostListener('eventPlaybackStateChange')\n protected _handlePlaybackStateChange(event: CustomEvent) {\n const { videoId } = event.detail;\n const { embeddedVideos = {} } = this;\n\n if (this.isPlaying) {\n embeddedVideos[videoId].pause();\n this.isPlaying = false;\n } else {\n embeddedVideos[videoId].play();\n this.isPlaying = true;\n }\n\n this._setAutoplayPreference(this.isPlaying);\n this.playbackTriggered = true;\n }\n\n @HostListener('eventTogglePlayback')\n protected _handleEventTogglePlayback(event: CustomEvent) {\n const { videoId } = event.detail;\n if (videoId) {\n this._setAutoplayPreference(!this.isPlaying);\n\n // First ensure that the media has actually been embedded.\n this._embedMedia?.(videoId);\n if (this.isPlaying) {\n this.pauseAllVideos();\n } else {\n this.playAllVideos();\n }\n }\n }\n\n pauseAllVideos(updateAutoplayPreference = true) {\n const { embeddedVideos = {} } = this;\n\n Object.keys(embeddedVideos).forEach((videoId) => {\n embeddedVideos[videoId]?.pause();\n });\n this.isPlaying = false;\n if (updateAutoplayPreference) {\n this._setAutoplayPreference(false);\n }\n }\n\n playAllVideos(updateAutoplayPreference = true) {\n const { embeddedVideos = {} } = this;\n\n Object.keys(embeddedVideos).forEach((videoId) => {\n embeddedVideos[videoId]?.play();\n });\n this.isPlaying = true;\n this.playbackTriggered = true;\n if (updateAutoplayPreference) {\n this._setAutoplayPreference(true);\n }\n }\n getIsVideoPlaying() {\n const iframe = this.querySelector('iframe');\n const playerContainer =\n iframe?.contentWindow?.document.querySelector('div.play-state');\n return !(playerContainer == null);\n }\n\n /**\n * `true` to autoplay the videos.\n */\n @property({ type: Boolean, attribute: 'auto-play' })\n autoPlay = false;\n\n /**\n * `true` load videos with sound muted.\n */\n @property({ type: Boolean, attribute: 'muted' })\n muted = false;\n\n /**\n * The embedded Kaltura player element (that has APIs), keyed by the video ID.\n */\n @property({ attribute: false })\n embeddedVideos?: { [videoId: string]: any };\n\n /**\n * Optional custom video caption.\n */\n @property({ reflect: true, attribute: 'caption' })\n caption?: '';\n\n /**\n * Custom video description. This property should only be set when `playing-mode=\"lightbox\"`.\n */\n @property({ reflect: true, attribute: 'video-description' })\n customVideoDescription?: string;\n\n /**\n * The formatter for the video caption, composed with the video name and the video duration.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatCaption?: ({\n duration,\n name,\n }: {\n duration?: string;\n name?: string;\n }) => string;\n\n /**\n * The formatter for the video duration.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatDuration?: ({ duration }: { duration?: number }) => string;\n\n /**\n * `true` to hide the caption.\n */\n @property({ type: Boolean, attribute: 'hide-caption' })\n hideCaption = false;\n\n /**\n * `true` to autoplay, mute, and hide player UI.\n */\n @property({ type: Boolean, attribute: 'background-mode', reflect: true })\n backgroundMode = false;\n\n /**\n * Triggers playback on intersection with the viewport / carousel.\n */\n @property({ attribute: 'intersection-mode', reflect: true, type: Boolean })\n intersectionMode = false;\n\n /**\n * The position of the toggle playback button.\n */\n @property({ attribute: 'button-position', reflect: true })\n buttonPosition = BUTTON_POSITION.BOTTOM_RIGHT;\n\n /**\n * Track when we have triggered initial playback.\n */\n @state()\n playbackTriggered = false;\n\n /**\n * The video data, keyed by the video ID.\n */\n @property({ attribute: false })\n mediaData?: { [videoId: string]: MediaData };\n\n /**\n * The video ID.\n */\n @property({ attribute: 'video-id' })\n videoId = '';\n\n /**\n * The aspect ratio.\n */\n @property({ attribute: 'aspect-ratio' })\n aspectRatio?: '';\n\n /**\n * The current playback state\n */\n @property({ type: Boolean })\n isPlaying = false;\n\n /**\n * The video player's mode showing Inline or Lightbox.\n */\n @property({ reflect: true, attribute: 'playing-mode' })\n playingMode = VIDEO_PLAYER_PLAYING_MODE.INLINE;\n\n /**\n * Optional custom video thumbnail\n */\n @property({ reflect: true, attribute: 'thumbnail' })\n thumbnail?: '';\n\n /**\n * The video thumbnail width.\n */\n @property({ type: Number, attribute: 'video-thumbnail-width' })\n videoThumbnailWidth = 3;\n\n /**\n * Determines if the direction is right-to-left\n */\n @property({ type: Boolean })\n isRTL = false;\n\n /**\n * Stored CTA element for forwarding to lightbox\n */\n @property({ attribute: false })\n ctaElement?: HTMLElement | null;\n\n private observer!: MutationObserver;\n\n /**\n * Observe when the video container enters into view.\n */\n private _observerIntersectionIntoView?: IntersectionObserver;\n\n /**\n * Observe when the video container goes out of view.\n */\n private _observerIntersectionOutOfView?: IntersectionObserver;\n\n connectedCallback() {\n super.connectedCallback();\n\n if (this.backgroundMode) {\n this.hideCaption = true;\n }\n\n if (this.autoPlay || this.backgroundMode) {\n const storedPreference = this._getAutoplayPreference();\n if (storedPreference === null) {\n this.isPlaying = !window.matchMedia('(prefers-reduced-motion: reduce)')\n .matches;\n } else {\n this.isPlaying = storedPreference;\n }\n }\n\n if (this.intersectionMode) {\n this._cleanAndCreateObserverIntersection({ create: true });\n }\n\n // initializing the MutationObserver to observe for changes in the direction mode\n this.observer = new MutationObserver(() => {\n this.isRTL =\n this.dir === 'rtl' || getComputedStyle(this).direction === 'rtl';\n });\n\n // observing the 'dir' attr in the root element\n this.observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['dir'],\n });\n\n // Initial check for the direction\n this.isRTL =\n this.dir === 'rtl' || getComputedStyle(this).direction === 'rtl';\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._cleanAndCreateObserverIntersection();\n }\n\n updated(changedProperties) {\n if (changedProperties.has('videoId')) {\n const { autoPlay, videoId, backgroundMode } = this;\n this._activateEmbeddedVideo(videoId);\n if (videoId) {\n this._loadVideoData?.(videoId);\n if (autoPlay || backgroundMode) {\n this._embedMedia?.(videoId);\n }\n }\n }\n }\n\n renderLightDOM() {\n // setting the direction mode of the video player.\n this.querySelector('.c4d--video-player__video')?.setAttribute(\n 'dir-mode',\n `${this.isRTL ? 'rtl' : 'ltr'}`\n );\n\n const {\n aspectRatio,\n formatCaption,\n formatDuration,\n hideCaption,\n caption,\n customVideoDescription,\n mediaData = {},\n videoId,\n videoThumbnailWidth,\n thumbnail,\n playingMode,\n buttonPosition,\n } = this;\n\n const { [videoId]: currentVideoData = {} as MediaData } = mediaData;\n const { duration, name } = currentVideoData;\n const thumbnailUrl =\n thumbnail ||\n KalturaPlayerAPI.getThumbnailUrl({\n mediaId: videoId,\n width: videoThumbnailWidth,\n });\n return html`\n <c4d-video-player-v7\n part=\"video-player\"\n duration=\"${ifNonEmpty(duration)}\"\n ?hide-caption=${hideCaption}\n name=\"${ifNonEmpty(caption || name)}\"\n video-description=\"${ifNonEmpty(customVideoDescription)}\"\n thumbnail-url=\"${ifNonEmpty(thumbnailUrl)}\"\n video-id=\"${ifNonEmpty(videoId)}\"\n aspect-ratio=\"${ifNonEmpty(aspectRatio)}\"\n playing-mode=\"${ifNonEmpty(playingMode)}\"\n content-state=\"${this.playbackTriggered\n ? VIDEO_PLAYER_CONTENT_STATE.VIDEO\n : VIDEO_PLAYER_CONTENT_STATE.THUMBNAIL}\"\n button-position=\"${buttonPosition}\"\n .formatCaption=\"${ifNonEmpty(formatCaption)}\"\n .formatDuration=\"${ifNonEmpty(formatDuration)}\"\n .isPlaying=${this.isPlaying}>\n </c4d-video-player-v7>\n `;\n }\n\n render() {\n return html` <slot></slot> `;\n }\n\n /**\n * A selector selecting the video player component.\n */\n static get selectorVideoPlayer() {\n return `${c4dPrefix}-video-player-v7`;\n }\n\n /**\n * The name of the custom event fired after video content state is changed upon a user gesture.\n */\n static get eventContentStateChange() {\n return `${c4dPrefix}-video-player-content-state-changed`;\n }\n\n /**\n * The name of the custom event fired requesting playback state change.\n */\n static get eventPlaybackStateChange() {\n return `${c4dPrefix}-video-player-playback-state-changed`;\n }\n\n /**\n * The name of the custom event fired requesting to toggle playback.\n */\n static get eventTogglePlayback() {\n return `${c4dPrefix}-video-player-toggle-playback`;\n }\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DVideoPlayerComposite;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,EAAEC,IAAI,QAAQ,KAAK;AACtC,SAASC,QAAQ,EAAEC,KAAK,QAAQ,mBAAmB;AACnD,OAAOC,YAAY,MAAM,+DAA+D;AACxF,OAAOC,iBAAiB,MAAM,2DAA2D;AACzF,OAAOC,QAAQ,MAAM,+DAA+D;AACpF,OAAOC,gBAAgB,MAAM,yEAAyE;AACtG,OAAOC,iBAAiB,MAAM,uCAAoC;AAElE,SACEC,0BAA0B,EAC1BC,yBAAyB,QACpB,mBAAgB;AACvB;AAAA;AAAA;AACA,OAAO,mBAAgB;AACvB,SAASC,aAAa,IAAIC,aAAa,QAAQ,gEAAgE;AAC/G,SAASC,eAAe,QAAQ,WAAQ;AACxC,OAAOC,UAAU,MAAM,8DAA8D;AAErF,MAAM;EAAEC,YAAY,EAAEC;AAAU,CAAC,GAAGV,QAAQ;;AAE5C;AACA;AACA;AACA;AACA;AACA;AALA,IAOMW,uBAAuB,GAAAC,SAAA,EAD5BN,aAAa,CAAC,GAAGI,SAAS,4BAA4B,CAAC,aAAAG,WAAA,EAAAC,kBAAA;EAAxD,MACMH,uBAAuB,SAAAG,kBAAA,CAE3B;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EA+eF;EAAC;IAAAI,CAAA,EAjfKN,uBAAuB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,KAAA;MAG3B;AACF;AACA;AACA;AACA;;MAGE;AACF;AACA;AACA;AACA;;MAGE;AACF;AACA;MACE;;MAGA;AACF;AACA;MACE;;MAGA;AACF;AACA;AACA;AACA;MACE,SAAUC,sBAAsBA,CAACC,OAAe,EAAE;QAChD,MAAM;UAAEC,cAAc,GAAG,CAAC;QAAE,CAAC,GAAG,IAAI;QACpCC,MAAM,CAACC,IAAI,CAACF,cAAc,CAAC,CAACG,OAAO,CAAEP,GAAG,IAAK;UAC3C,MAAMQ,aAAa,GAAGJ,cAAc,CAACJ,GAAG,CAAC;UACzCA,GAAG,KAAKG,OAAO,GAAGK,aAAa,CAACC,IAAI,CAAC,CAAC,GAAGD,aAAa,CAACE,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC;MACJ;;MAEA;AACF;AACA;IAFE;MAAAX,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAGA,SAAAA,CAAA,EAA6B;QAC3B,MAAM;UAAEU;QAAoB,CAAC,GAAG,IAAI,CACjChB,WAA6C;QAChD,OAAO,IAAI,CAACiB,aAAa,CAACD,mBAAmB,CAAC;MAChD;;MAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IATE;MAAAZ,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAUA,SAAQY,mCAAmCA,CAAC;QAC1CC;MACoB,CAAC,GAAG,CAAC,CAAC,EAAE;QAC5B;QACA,IAAI,IAAI,CAACC,6BAA6B,EAAE;UACtC,IAAI,CAACA,6BAA6B,CAACC,SAAS,CAAC,IAAI,CAAC;QACpD;QACA,IAAI,IAAI,CAACC,8BAA8B,EAAE;UACvC,IAAI,CAACA,8BAA8B,CAACD,SAAS,CAAC,IAAI,CAAC;QACrD;QACA;QACA,IAAIF,MAAM,EAAE;UACV,IAAI,CAACC,6BAA6B,GAAG,IAAIG,oBAAoB,CAC3D,IAAI,CAACC,4BAA4B,CAACC,IAAI,CAAC,IAAI,CAAC,EAC5C;YACEC,IAAI,EAAE,IAAI,CAACC,OAAO,CAAC,cAAc,CAAC;YAClCC,UAAU,EAAE,KAAK;YACjBC,SAAS,EAAE;UACb,CACF,CAAC;UACD,IAAI,CAACP,8BAA8B,GAAG,IAAIC,oBAAoB,CAC5D,IAAI,CAACO,6BAA6B,CAACL,IAAI,CAAC,IAAI,CAAC,EAC7C;YACEC,IAAI,EAAE,IAAI,CAACC,OAAO,CAAC,cAAc,CAAC;YAClCC,UAAU,EAAE,KAAK;YACjBC,SAAS,EAAE;UACb,CACF,CAAC;UACD,IAAI,CAACT,6BAA6B,CAACW,OAAO,CAAC,IAAI,CAAC;UAChD,IAAI,CAACT,8BAA8B,CAACS,OAAO,CAAC,IAAI,CAAC;QACnD;MACF;;MAEA;AACF;AACA;AACA;AACA;IAJE;MAAA3B,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAKA,SAAQkB,4BAA4BA,CAACQ,OAAoC,EAAE;QACzE,MAAM;UAAExB;QAAQ,CAAC,GAAG,IAAI;QACxBwB,OAAO,CAACpB,OAAO,CAAEqB,KAAK,IAAK;UACzB,IAAIA,KAAK,CAACC,cAAc,IAAI,IAAI,CAACC,sBAAsB,CAAC,CAAC,KAAK,KAAK,EAAE;YAAA,IAAAC,iBAAA;YACnE,CAAAA,iBAAA,OAAI,CAACC,WAAW,cAAAD,iBAAA,eAAhBA,iBAAA,CAAAE,IAAA,KAAI,EAAe9B,OAAO,CAAC;YAC3B,IAAI,CAAC+B,aAAa,CAAC,CAAC;UACtB;QACF,CAAC,CAAC;MACJ;;MAEA;AACF;AACA;AACA;AACA;AACA;AACA;IANE;MAAAnC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAOA,SAAQwB,6BAA6BA,CAACE,OAAoC,EAAE;QAC1EA,OAAO,CAACpB,OAAO,CAAEqB,KAAK,IAAK;UACzB,IAAI,CAACA,KAAK,CAACC,cAAc,EAAE;YACzB,IAAI,CAACM,cAAc,CAAC,KAAK,CAAC;UAC5B;QACF,CAAC,CAAC;MACJ;;MAEA;AACF;AACA;AACA;AACA;AACA;IALE;MAAApC,IAAA;MAAAqC,UAAA,GAMC1D,YAAY,CAAC,yBAAyB,CAAC;MAAAsB,GAAA;MAAAC,KAAA,EAAxC,SACUoC,yBAAyBA,CAACC,KAAkB,EAAE;QACtD,MAAM;UAAEC,YAAY;UAAEC,WAAW;UAAErC,OAAO;UAAEsC;QAAW,CAAC,GAAGH,KAAK,CAACI,MAAM;;QAEvE;QACA,IAAID,UAAU,EAAE;UACd,IAAI,CAACA,UAAU,GAAGA,UAAU;QAC9B;QAEA,IACEF,YAAY,KAAKxD,0BAA0B,CAAC4D,KAAK,IACjDH,WAAW,KAAKxD,yBAAyB,CAAC4D,MAAM,IAChDzC,OAAO,EACP;UAAA,IAAA0C,kBAAA;UACA,CAAAA,kBAAA,OAAI,CAACb,WAAW,cAAAa,kBAAA,eAAhBA,kBAAA,CAAAZ,IAAA,KAAI,EAAe9B,OAAO,CAAC;QAC7B;MACF;IAAC;MAAAJ,IAAA;MAAAqC,UAAA,GAEA1D,YAAY,CAAC,0BAA0B,CAAC;MAAAsB,GAAA;MAAAC,KAAA,EAAzC,SACU6C,0BAA0BA,CAACR,KAAkB,EAAE;QACvD,MAAM;UAAEnC;QAAQ,CAAC,GAAGmC,KAAK,CAACI,MAAM;QAChC,MAAM;UAAEtC,cAAc,GAAG,CAAC;QAAE,CAAC,GAAG,IAAI;QAEpC,IAAI,IAAI,CAAC2C,SAAS,EAAE;UAClB3C,cAAc,CAACD,OAAO,CAAC,CAACO,KAAK,CAAC,CAAC;UAC/B,IAAI,CAACqC,SAAS,GAAG,KAAK;QACxB,CAAC,MAAM;UACL3C,cAAc,CAACD,OAAO,CAAC,CAACM,IAAI,CAAC,CAAC;UAC9B,IAAI,CAACsC,SAAS,GAAG,IAAI;QACvB;QAEA,IAAI,CAACC,sBAAsB,CAAC,IAAI,CAACD,SAAS,CAAC;QAC3C,IAAI,CAACE,iBAAiB,GAAG,IAAI;MAC/B;IAAC;MAAAlD,IAAA;MAAAqC,UAAA,GAEA1D,YAAY,CAAC,qBAAqB,CAAC;MAAAsB,GAAA;MAAAC,KAAA,EAApC,SACUiD,0BAA0BA,CAACZ,KAAkB,EAAE;QACvD,MAAM;UAAEnC;QAAQ,CAAC,GAAGmC,KAAK,CAACI,MAAM;QAChC,IAAIvC,OAAO,EAAE;UAAA,IAAAgD,kBAAA;UACX,IAAI,CAACH,sBAAsB,CAAC,CAAC,IAAI,CAACD,SAAS,CAAC;;UAE5C;UACA,CAAAI,kBAAA,OAAI,CAACnB,WAAW,cAAAmB,kBAAA,eAAhBA,kBAAA,CAAAlB,IAAA,KAAI,EAAe9B,OAAO,CAAC;UAC3B,IAAI,IAAI,CAAC4C,SAAS,EAAE;YAClB,IAAI,CAACZ,cAAc,CAAC,CAAC;UACvB,CAAC,MAAM;YACL,IAAI,CAACD,aAAa,CAAC,CAAC;UACtB;QACF;MACF;IAAC;MAAAnC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAkC,cAAcA,CAACiB,wBAAwB,GAAG,IAAI,EAAE;QAC9C,MAAM;UAAEhD,cAAc,GAAG,CAAC;QAAE,CAAC,GAAG,IAAI;QAEpCC,MAAM,CAACC,IAAI,CAACF,cAAc,CAAC,CAACG,OAAO,CAAEJ,OAAO,IAAK;UAAA,IAAAkD,qBAAA;UAC/C,CAAAA,qBAAA,GAAAjD,cAAc,CAACD,OAAO,CAAC,cAAAkD,qBAAA,eAAvBA,qBAAA,CAAyB3C,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC;QACF,IAAI,CAACqC,SAAS,GAAG,KAAK;QACtB,IAAIK,wBAAwB,EAAE;UAC5B,IAAI,CAACJ,sBAAsB,CAAC,KAAK,CAAC;QACpC;MACF;IAAC;MAAAjD,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAiC,aAAaA,CAACkB,wBAAwB,GAAG,IAAI,EAAE;QAC7C,MAAM;UAAEhD,cAAc,GAAG,CAAC;QAAE,CAAC,GAAG,IAAI;QAEpCC,MAAM,CAACC,IAAI,CAACF,cAAc,CAAC,CAACG,OAAO,CAAEJ,OAAO,IAAK;UAAA,IAAAmD,sBAAA;UAC/C,CAAAA,sBAAA,GAAAlD,cAAc,CAACD,OAAO,CAAC,cAAAmD,sBAAA,eAAvBA,sBAAA,CAAyB7C,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,IAAI,CAACsC,SAAS,GAAG,IAAI;QACrB,IAAI,CAACE,iBAAiB,GAAG,IAAI;QAC7B,IAAIG,wBAAwB,EAAE;UAC5B,IAAI,CAACJ,sBAAsB,CAAC,IAAI,CAAC;QACnC;MACF;IAAC;MAAAjD,IAAA;MAAAC,GAAA;MAAAC,KAAA,EACD,SAAAsD,iBAAiBA,CAAA,EAAG;QAAA,IAAAC,qBAAA;QAClB,MAAMC,MAAM,GAAG,IAAI,CAAC7C,aAAa,CAAC,QAAQ,CAAC;QAC3C,MAAM8C,eAAe,GACnBD,MAAM,aAANA,MAAM,gBAAAD,qBAAA,GAANC,MAAM,CAAEE,aAAa,cAAAH,qBAAA,uBAArBA,qBAAA,CAAuBI,QAAQ,CAAChD,aAAa,CAAC,gBAAgB,CAAC;QACjE,OAAO,EAAE8C,eAAe,IAAI,IAAI,CAAC;MACnC;;MAEA;AACF;AACA;IAFE;MAAA3D,IAAA;MAAAqC,UAAA,GAGC5D,QAAQ,CAAC;QAAEqF,IAAI,EAAEC,OAAO;QAAEC,SAAS,EAAE;MAAY,CAAC,CAAC;MAAA/D,GAAA;MAAAC,MAAA;QAAA,OACzC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAKf5D,QAAQ,CAAC;QAAEqF,IAAI,EAAEC,OAAO;QAAEC,SAAS,EAAE;MAAQ,CAAC,CAAC;MAAA/D,GAAA;MAAAC,MAAA;QAAA,OACxC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAKZ5D,QAAQ,CAAC;QAAEuF,SAAS,EAAE;MAAM,CAAC,CAAC;MAAA/D,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAM9B5D,QAAQ,CAAC;QAAEwF,OAAO,EAAE,IAAI;QAAED,SAAS,EAAE;MAAU,CAAC,CAAC;MAAA/D,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAMjD5D,QAAQ,CAAC;QAAEwF,OAAO,EAAE,IAAI;QAAED,SAAS,EAAE;MAAoB,CAAC,CAAC;MAAA/D,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAO3D5D,QAAQ,CAAC;QAAEuF,SAAS,EAAE;MAAM,CAAC,CAAC;MAAA/D,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAa9B5D,QAAQ,CAAC;QAAEuF,SAAS,EAAE;MAAM,CAAC,CAAC;MAAA/D,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAM9B5D,QAAQ,CAAC;QAAEqF,IAAI,EAAEC,OAAO;QAAEC,SAAS,EAAE;MAAe,CAAC,CAAC;MAAA/D,GAAA;MAAAC,MAAA;QAAA,OACzC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAKlB5D,QAAQ,CAAC;QAAEqF,IAAI,EAAEC,OAAO;QAAEC,SAAS,EAAE,iBAAiB;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAhE,GAAA;MAAAC,MAAA;QAAA,OACxD,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAKrB5D,QAAQ,CAAC;QAAEuF,SAAS,EAAE,mBAAmB;QAAEC,OAAO,EAAE,IAAI;QAAEH,IAAI,EAAEC;MAAQ,CAAC,CAAC;MAAA9D,GAAA;MAAAC,MAAA;QAAA,OACxD,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAKvB5D,QAAQ,CAAC;QAAEuF,SAAS,EAAE,iBAAiB;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAhE,GAAA;MAAAC,MAAA;QAAA,OACzCd,eAAe,CAAC8E,YAAY;MAAA;IAAA;MAAAlE,IAAA;MAAAqC,UAAA,GAK5C3D,KAAK,CAAC,CAAC;MAAAuB,GAAA;MAAAC,MAAA;QAAA,OACY,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAKxB5D,QAAQ,CAAC;QAAEuF,SAAS,EAAE;MAAM,CAAC,CAAC;MAAA/D,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAM9B5D,QAAQ,CAAC;QAAEuF,SAAS,EAAE;MAAW,CAAC,CAAC;MAAA/D,GAAA;MAAAC,MAAA;QAAA,OAC1B,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAKX5D,QAAQ,CAAC;QAAEuF,SAAS,EAAE;MAAe,CAAC,CAAC;MAAA/D,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAMvC5D,QAAQ,CAAC;QAAEqF,IAAI,EAAEC;MAAQ,CAAC,CAAC;MAAA9D,GAAA;MAAAC,MAAA;QAAA,OAChB,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAKhB5D,QAAQ,CAAC;QAAEwF,OAAO,EAAE,IAAI;QAAED,SAAS,EAAE;MAAe,CAAC,CAAC;MAAA/D,GAAA;MAAAC,MAAA;QAAA,OACzCjB,yBAAyB,CAAC4D,MAAM;MAAA;IAAA;MAAA7C,IAAA;MAAAqC,UAAA,GAK7C5D,QAAQ,CAAC;QAAEwF,OAAO,EAAE,IAAI;QAAED,SAAS,EAAE;MAAY,CAAC,CAAC;MAAA/D,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAMnD5D,QAAQ,CAAC;QAAEqF,IAAI,EAAEK,MAAM;QAAEH,SAAS,EAAE;MAAwB,CAAC,CAAC;MAAA/D,GAAA;MAAAC,MAAA;QAAA,OACzC,CAAC;MAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAKtB5D,QAAQ,CAAC;QAAEqF,IAAI,EAAEC;MAAQ,CAAC,CAAC;MAAA9D,GAAA;MAAAC,MAAA;QAAA,OACpB,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAqC,UAAA,GAKZ5D,QAAQ,CAAC;QAAEuF,SAAS,EAAE;MAAM,CAAC,CAAC;MAAA/D,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA;MA7H/B;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;AACA;MAUE;AACF;AACA;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAME;AACF;AACA;MAGE;AACF;AACA;MAGE,SAAAkE,iBAAiBA,CAAA,EAAG;QAClBC,aAAA,CAvWE7E,uBAAuB;QAyWzB,IAAI,IAAI,CAAC8E,cAAc,EAAE;UACvB,IAAI,CAACC,WAAW,GAAG,IAAI;QACzB;QAEA,IAAI,IAAI,CAACC,QAAQ,IAAI,IAAI,CAACF,cAAc,EAAE;UACxC,MAAMG,gBAAgB,GAAG,IAAI,CAAC1C,sBAAsB,CAAC,CAAC;UACtD,IAAI0C,gBAAgB,KAAK,IAAI,EAAE;YAC7B,IAAI,CAACzB,SAAS,GAAG,CAAC0B,MAAM,CAACC,UAAU,CAAC,kCAAkC,CAAC,CACpEC,OAAO;UACZ,CAAC,MAAM;YACL,IAAI,CAAC5B,SAAS,GAAGyB,gBAAgB;UACnC;QACF;QAEA,IAAI,IAAI,CAACI,gBAAgB,EAAE;UACzB,IAAI,CAAC/D,mCAAmC,CAAC;YAAEC,MAAM,EAAE;UAAK,CAAC,CAAC;QAC5D;;QAEA;QACA,IAAI,CAAC+D,QAAQ,GAAG,IAAIC,gBAAgB,CAAC,MAAM;UACzC,IAAI,CAACC,KAAK,GACR,IAAI,CAACC,GAAG,KAAK,KAAK,IAAIC,gBAAgB,CAAC,IAAI,CAAC,CAACC,SAAS,KAAK,KAAK;QACpE,CAAC,CAAC;;QAEF;QACA,IAAI,CAACL,QAAQ,CAACnD,OAAO,CAACkC,QAAQ,CAACuB,eAAe,EAAE;UAC9CC,UAAU,EAAE,IAAI;UAChBC,eAAe,EAAE,CAAC,KAAK;QACzB,CAAC,CAAC;;QAEF;QACA,IAAI,CAACN,KAAK,GACR,IAAI,CAACC,GAAG,KAAK,KAAK,IAAIC,gBAAgB,CAAC,IAAI,CAAC,CAACC,SAAS,KAAK,KAAK;MACpE;IAAC;MAAAnF,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAqF,oBAAoBA,CAAA,EAAG;QACrBlB,aAAA,CA7YE7E,uBAAuB;QA8YzB,IAAI,CAACsB,mCAAmC,CAAC,CAAC;MAC5C;IAAC;MAAAd,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAsF,OAAOA,CAACC,iBAAiB,EAAE;QACzB,IAAIA,iBAAiB,CAACC,GAAG,CAAC,SAAS,CAAC,EAAE;UACpC,MAAM;YAAElB,QAAQ;YAAEpE,OAAO;YAAEkE;UAAe,CAAC,GAAG,IAAI;UAClD,IAAI,CAACnE,sBAAsB,CAACC,OAAO,CAAC;UACpC,IAAIA,OAAO,EAAE;YAAA,IAAAuF,oBAAA;YACX,CAAAA,oBAAA,OAAI,CAACC,cAAc,cAAAD,oBAAA,eAAnBA,oBAAA,CAAAzD,IAAA,KAAI,EAAkB9B,OAAO,CAAC;YAC9B,IAAIoE,QAAQ,IAAIF,cAAc,EAAE;cAAA,IAAAuB,kBAAA;cAC9B,CAAAA,kBAAA,OAAI,CAAC5D,WAAW,cAAA4D,kBAAA,eAAhBA,kBAAA,CAAA3D,IAAA,KAAI,EAAe9B,OAAO,CAAC;YAC7B;UACF;QACF;MACF;IAAC;MAAAJ,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAA4F,cAAcA,CAAA,EAAG;QAAA,IAAAC,mBAAA;QACf;QACA,CAAAA,mBAAA,OAAI,CAAClF,aAAa,CAAC,2BAA2B,CAAC,cAAAkF,mBAAA,eAA/CA,mBAAA,CAAiDC,YAAY,CAC3D,UAAU,EACV,GAAG,IAAI,CAAChB,KAAK,GAAG,KAAK,GAAG,KAAK,EAC/B,CAAC;QAED,MAAM;UACJiB,WAAW;UACXC,aAAa;UACbC,cAAc;UACd5B,WAAW;UACX6B,OAAO;UACPC,sBAAsB;UACtBC,SAAS,GAAG,CAAC,CAAC;UACdlG,OAAO;UACPmG,mBAAmB;UACnBC,SAAS;UACT/D,WAAW;UACXgE;QACF,CAAC,GAAG,IAAI;QAER,MAAM;UAAE,CAACrG,OAAO,GAAGsG,gBAAgB,GAAG,CAAC;QAAe,CAAC,GAAGJ,SAAS;QACnE,MAAM;UAAEK,QAAQ;UAAEC;QAAK,CAAC,GAAGF,gBAAgB;QAC3C,MAAMG,YAAY,GAChBL,SAAS,IACT1H,gBAAgB,CAACgI,eAAe,CAAC;UAC/BC,OAAO,EAAE3G,OAAO;UAChB4G,KAAK,EAAET;QACT,CAAC,CAAC;QACJ,OAAO/H,IAAI,CAAAyI,EAAA,KAAAA,EAAA,GAAAC,CAAA;AACf;AACA;AACA,oBAHe;AACf,wBADe;AACf,gBADe;AACf,6BADe;AACf,yBADe;AACf,oBADe;AACf,wBADe;AACf,wBADe;AACf,yBADe;AACf,2BADe;AACf,0BADe;AACf,2BADe;AACf,qBADe;AACf;AACA,KAFe,GAGK7H,UAAU,CAACsH,QAAQ,CAAC,EAChBpC,WAAW,EACnBlF,UAAU,CAAC+G,OAAO,IAAIQ,IAAI,CAAC,EACdvH,UAAU,CAACgH,sBAAsB,CAAC,EACtChH,UAAU,CAACwH,YAAY,CAAC,EAC7BxH,UAAU,CAACe,OAAO,CAAC,EACff,UAAU,CAAC4G,WAAW,CAAC,EACvB5G,UAAU,CAACoD,WAAW,CAAC,EACtB,IAAI,CAACS,iBAAiB,GACnClE,0BAA0B,CAAC4D,KAAK,GAChC5D,0BAA0B,CAACmI,SAAS,EACrBV,cAAc,EACfpH,UAAU,CAAC6G,aAAa,CAAC,EACxB7G,UAAU,CAAC8G,cAAc,CAAC,EAChC,IAAI,CAACnD,SAAS;MAGjC;IAAC;MAAAhD,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAkH,MAAMA,CAAA,EAAG;QACP,OAAO5I,IAAI,CAAA6I,GAAA,KAAAA,GAAA,GAAAH,CAAA;MACb;;MAEA;AACF;AACA;IAFE;MAAAlH,IAAA;MAAAsH,MAAA;MAAArH,GAAA;MAAAC,KAAA,EAGA,SAAAA,CAAA,EAAiC;QAC/B,OAAO,GAAGX,SAAS,kBAAkB;MACvC;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAsH,MAAA;MAAArH,GAAA;MAAAC,KAAA,EAGA,SAAAA,CAAA,EAAqC;QACnC,OAAO,GAAGX,SAAS,qCAAqC;MAC1D;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAsH,MAAA;MAAArH,GAAA;MAAAC,KAAA,EAGA,SAAAA,CAAA,EAAsC;QACpC,OAAO,GAAGX,SAAS,sCAAsC;MAC3D;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAsH,MAAA;MAAArH,GAAA;MAAAC,KAAA,EAGA,SAAAA,CAAA,EAAiC;QAC/B,OAAO,GAAGX,SAAS,+BAA+B;MACpD;IAAC;EAAA;AAAA,GAhfmCR,iBAAiB,CACrDH,iBAAiB,CAACL,UAAU,CAC9B,CAAC;AAifD;AACA,eAAeiB,uBAAuB","ignoreList":[]}
1
+ {"version":3,"file":"video-player-composite.js","names":["LitElement","html","property","state","HostListener","HostListenerMixin","settings","KalturaPlayerAPI","HybridRenderMixin","VIDEO_PLAYER_CONTENT_STATE","VIDEO_PLAYER_PLAYING_MODE","carbonElement","customElement","BUTTON_POSITION","ifNonEmpty","stablePrefix","c4dPrefix","C4DVideoPlayerComposite","_decorate","_initialize","_HybridRenderMixin","constructor","args","F","d","kind","key","value","_activateEmbeddedVideo","videoId","embeddedVideos","Object","keys","forEach","kalturaPlayer","play","pause","selectorVideoPlayer","querySelector","_cleanAndCreateObserverIntersection","create","_observerIntersectionIntoView","unobserve","_observerIntersectionOutOfView","IntersectionObserver","_intersectionIntoViewHandler","bind","root","closest","rootMargin","threshold","_intersectionOutOfViewHandler","observe","entries","entry","isIntersecting","_getAutoplayPreference","_this$_embedMedia","_this$_embedMedia$the","_this$_embedMedia$the2","updateComplete","_embedMedia","call","then","player","playAllVideos","catch","err","process","env","NODE_ENV","console","warn","pauseAllVideos","decorators","_handleContentStateChange","event","contentState","playingMode","ctaElement","detail","VIDEO","INLINE","_this$_embedMedia2","_handlePlaybackStateChange","isPlaying","_setAutoplayPreference","playbackTriggered","_handleEventTogglePlayback","_this$_embedMedia3","updateAutoplayPreference","_embeddedVideos$video","_embeddedVideos$video2","getIsVideoPlaying","_iframe$contentWindow","iframe","playerContainer","contentWindow","document","type","Boolean","attribute","reflect","BOTTOM_RIGHT","Number","connectedCallback","_superPropGet","backgroundMode","hideCaption","autoPlay","storedPreference","window","matchMedia","matches","intersectionMode","_adobe","prehidingEl","getElementById","atObj","adobe","target","realAtJs","getOffers","getOffer","applyOffers","checkScript","settled","setupIO","onATSettle","removeEventListener","_atPrehidingObserver","disconnect","undefined","_atFallback","clearTimeout","_atSettleHandler","addEventListener","once","MutationObserver","parentNode","documentElement","childList","setTimeout","observer","isRTL","dir","getComputedStyle","direction","attributes","attributeFilter","disconnectedCallback","_ibmPendingEmbedDivs","div","remove","clear","values","_player$destroy","destroy","error","updated","changedProperties","has","_this$_loadVideoData","_loadVideoData","_this$_embedMedia4","renderLightDOM","_this$querySelector","setAttribute","aspectRatio","formatCaption","formatDuration","caption","customVideoDescription","mediaData","videoThumbnailWidth","thumbnail","buttonPosition","currentVideoData","duration","name","thumbnailUrl","getThumbnailUrl","mediaId","width","_t","_","THUMBNAIL","render","_t2","static"],"sources":["components/video-player-v7/video-player-composite.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport HostListener from '@carbon/web-components/es/globals/decorators/host-listener.js';\nimport HostListenerMixin from '@carbon/web-components/es/globals/mixins/host-listener.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport KalturaPlayerAPI from '@carbon/ibmdotcom-services/es/services/KalturaPlayerV7/KalturaPlayer.js';\nimport HybridRenderMixin from '../../globals/mixins/hybrid-render';\nimport { MediaData } from '../../internal/vendor/@carbon/ibmdotcom-services-store/types/kalturaPlayerAPIv7';\nimport {\n VIDEO_PLAYER_CONTENT_STATE,\n VIDEO_PLAYER_PLAYING_MODE,\n} from './video-player';\n// Above import is interface-only ref and thus code won't be brought into the build\nimport './video-player';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport { BUTTON_POSITION } from './defs';\nimport ifNonEmpty from '@carbon/web-components/es/globals/directives/if-non-empty.js';\n\nconst { stablePrefix: c4dPrefix } = settings;\n\n/**\n * Component that renders video player from its metadata, etc.\n *\n * @element c4d-video-player-composite-v7\n * @csspart video-player - The video player. Usage `c4d-video-player-composite-v7::part(video-player)`\n */\n@customElement(`${c4dPrefix}-video-player-composite-v7`)\nclass C4DVideoPlayerComposite extends HybridRenderMixin(\n HostListenerMixin(LitElement)\n) {\n /**\n * The placeholder for `_loadVideoData()` Redux action that may be mixed in.\n *\n * @internal\n */\n _loadVideoData?: (videoId: string) => Promise<MediaData>;\n\n /**\n * The placeholder for `_loadVideoData()` Redux action that may be mixed in.\n *\n * @internal\n */\n _embedMedia?: (videoId: string) => Promise<any>;\n\n /**\n * Listener registered on `at-content-rendering-succeeded/failed` while waiting\n * for Adobe Target to settle before setting up the IntersectionObserver.\n * Stored so it can be removed in `disconnectedCallback`.\n */\n private _atSettleHandler?: () => void;\n\n /**\n * Fallback timer ID used when Adobe Target never fires its settle events.\n */\n private _atFallback?: number;\n\n /**\n * Observer watching for removal of the AEP Web SDK (alloy) prehiding style\n * (`<style id=\"alloy-prehiding\">`), which signals that personalization\n * decisions have been rendered. Used instead of the at.js\n * `at-content-rendering-*` events on pages running alloy, which never fires\n * those events.\n */\n private _atPrehidingObserver?: MutationObserver;\n\n /**\n * Placeholder divs parked in `document.body` by `_embedVideoImpl` (mixed in\n * by the container) while a Kaltura embed is queued or in flight. Tracked so\n * `disconnectedCallback` can remove them: once removed, the\n * `getElementById(targetId)` guard in `legacyPromiseKWidget` returns null\n * and the dead embed drains from `_ibmKalturaEmbedQueue` immediately instead\n * of fully embedding a hidden orphaned player.\n *\n * @internal\n */\n _ibmPendingEmbedDivs?: Set<HTMLElement>;\n\n /**\n * The placeholder for `_setAutoplayPreference()` Redux action that may be mixed in.\n */\n // @ts-ignore\n _setAutoplayPreference: (preference: boolean) => void;\n\n /**\n * The placeholder for `_getAutoplayPreference()` Redux action that may be mixed in.\n */\n // @ts-ignore\n _getAutoplayPreference: () => null | boolean;\n\n /**\n * Activate the DOM nodes for the embedded video of the given video ID, and deactivates others.\n *\n * @param videoId The video ID to activate.\n */\n protected _activateEmbeddedVideo(videoId: string) {\n const { embeddedVideos = {} } = this;\n Object.keys(embeddedVideos).forEach((key) => {\n const kalturaPlayer = embeddedVideos[key];\n key === videoId ? kalturaPlayer.play() : kalturaPlayer.pause();\n });\n }\n\n /**\n * The video player.\n */\n protected get _videoPlayer() {\n const { selectorVideoPlayer } = this\n .constructor as typeof C4DVideoPlayerComposite;\n return this.querySelector(selectorVideoPlayer);\n }\n\n /**\n * Clean-up and create intersection observers.\n *\n * When this.intersectionMode, we use intersection observers to track when\n * the video container is in view, and embed / play / pause the video\n * accordingly.\n *\n * @param [options] The options.\n * @param [options.create] `true` to create necessary intersection observers.\n */\n private _cleanAndCreateObserverIntersection({\n create,\n }: { create?: boolean } = {}) {\n // Cleanup.\n if (this._observerIntersectionIntoView) {\n this._observerIntersectionIntoView.unobserve(this);\n }\n if (this._observerIntersectionOutOfView) {\n this._observerIntersectionOutOfView.unobserve(this);\n }\n // Create new intersection observers.\n if (create) {\n this._observerIntersectionIntoView = new IntersectionObserver(\n this._intersectionIntoViewHandler.bind(this),\n {\n root: this.closest('c4d-carousel'),\n rootMargin: '0px',\n threshold: 0.9,\n }\n );\n this._observerIntersectionOutOfView = new IntersectionObserver(\n this._intersectionOutOfViewHandler.bind(this),\n {\n root: this.closest('c4d-carousel'),\n rootMargin: '0px',\n threshold: 0.5,\n }\n );\n this._observerIntersectionIntoView.observe(this);\n this._observerIntersectionOutOfView.observe(this);\n }\n }\n\n /**\n * Observer for when the video container enters into view.\n *\n * Autoplay the video, resecting the users stored autoplay preference.\n */\n private _intersectionIntoViewHandler(entries: IntersectionObserverEntry[]) {\n const { videoId } = this;\n entries.forEach(async (entry) => {\n if (entry.isIntersecting && this._getAutoplayPreference() !== false) {\n await this.updateComplete;\n this._embedMedia?.(videoId)\n ?.then?.((player) => {\n if (player) {\n this.playAllVideos();\n }\n })\n ?.catch?.((err) => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[VP-DEBUG] embed failed in IO handler', err);\n }\n });\n }\n });\n }\n\n /**\n * Observer for when the video container goes out of view.\n *\n * Auto-pause the video, video playback controlled by intersection observers\n * here are meant to be ambient, without audio. No reason for playback when\n * user is not seeing the video content.\n */\n private _intersectionOutOfViewHandler(entries: IntersectionObserverEntry[]) {\n entries.forEach((entry) => {\n if (!entry.isIntersecting) {\n this.pauseAllVideos(false);\n }\n });\n }\n\n /**\n * Handles `c4d-video-player-content-state-changed` event.\n * Such event is fired when user changes video content state, e.g. from thumbnail to video player.\n *\n * @param event The event.\n */\n @HostListener('eventContentStateChange')\n protected _handleContentStateChange(event: CustomEvent) {\n const { contentState, playingMode, videoId, ctaElement } = event.detail;\n\n // Store CTA element for potential forwarding\n if (ctaElement) {\n this.ctaElement = ctaElement;\n }\n\n if (\n contentState === VIDEO_PLAYER_CONTENT_STATE.VIDEO &&\n playingMode === VIDEO_PLAYER_PLAYING_MODE.INLINE &&\n videoId\n ) {\n this._embedMedia?.(videoId);\n }\n }\n\n @HostListener('eventPlaybackStateChange')\n protected _handlePlaybackStateChange(event: CustomEvent) {\n const { videoId } = event.detail;\n const { embeddedVideos = {} } = this;\n\n if (this.isPlaying) {\n embeddedVideos[videoId].pause();\n this.isPlaying = false;\n } else {\n embeddedVideos[videoId].play();\n this.isPlaying = true;\n }\n\n this._setAutoplayPreference(this.isPlaying);\n this.playbackTriggered = true;\n }\n\n @HostListener('eventTogglePlayback')\n protected _handleEventTogglePlayback(event: CustomEvent) {\n const { videoId } = event.detail;\n if (videoId) {\n this._setAutoplayPreference(!this.isPlaying);\n\n // First ensure that the media has actually been embedded.\n this._embedMedia?.(videoId);\n if (this.isPlaying) {\n this.pauseAllVideos();\n } else {\n this.playAllVideos();\n }\n }\n }\n\n pauseAllVideos(updateAutoplayPreference = true) {\n const { embeddedVideos = {} } = this;\n\n Object.keys(embeddedVideos).forEach((videoId) => {\n embeddedVideos[videoId]?.pause();\n });\n this.isPlaying = false;\n if (updateAutoplayPreference) {\n this._setAutoplayPreference(false);\n }\n }\n\n playAllVideos(updateAutoplayPreference = true) {\n const { embeddedVideos = {} } = this;\n\n Object.keys(embeddedVideos).forEach((videoId) => {\n embeddedVideos[videoId]?.play();\n });\n this.isPlaying = true;\n this.playbackTriggered = true;\n if (updateAutoplayPreference) {\n this._setAutoplayPreference(true);\n }\n }\n getIsVideoPlaying() {\n const iframe = this.querySelector('iframe');\n const playerContainer =\n iframe?.contentWindow?.document.querySelector('div.play-state');\n return !(playerContainer == null);\n }\n\n /**\n * `true` to autoplay the videos.\n */\n @property({ type: Boolean, attribute: 'auto-play' })\n autoPlay = false;\n\n /**\n * `true` load videos with sound muted.\n */\n @property({ type: Boolean, attribute: 'muted' })\n muted = false;\n\n /**\n * The embedded Kaltura player element (that has APIs), keyed by the video ID.\n */\n @property({ attribute: false })\n embeddedVideos?: { [videoId: string]: any };\n\n /**\n * Optional custom video caption.\n */\n @property({ reflect: true, attribute: 'caption' })\n caption?: '';\n\n /**\n * Custom video description. This property should only be set when `playing-mode=\"lightbox\"`.\n */\n @property({ reflect: true, attribute: 'video-description' })\n customVideoDescription?: string;\n\n /**\n * The formatter for the video caption, composed with the video name and the video duration.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatCaption?: ({\n duration,\n name,\n }: {\n duration?: string;\n name?: string;\n }) => string;\n\n /**\n * The formatter for the video duration.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatDuration?: ({ duration }: { duration?: number }) => string;\n\n /**\n * `true` to hide the caption.\n */\n @property({ type: Boolean, attribute: 'hide-caption' })\n hideCaption = false;\n\n /**\n * `true` to autoplay, mute, and hide player UI.\n */\n @property({ type: Boolean, attribute: 'background-mode', reflect: true })\n backgroundMode = false;\n\n /**\n * Triggers playback on intersection with the viewport / carousel.\n */\n @property({ attribute: 'intersection-mode', reflect: true, type: Boolean })\n intersectionMode = false;\n\n /**\n * The position of the toggle playback button.\n */\n @property({ attribute: 'button-position', reflect: true })\n buttonPosition = BUTTON_POSITION.BOTTOM_RIGHT;\n\n /**\n * Track when we have triggered initial playback.\n */\n @state()\n playbackTriggered = false;\n\n /**\n * The video data, keyed by the video ID.\n */\n @property({ attribute: false })\n mediaData?: { [videoId: string]: MediaData };\n\n /**\n * The video ID.\n */\n @property({ attribute: 'video-id' })\n videoId = '';\n\n /**\n * The aspect ratio.\n */\n @property({ attribute: 'aspect-ratio' })\n aspectRatio?: '';\n\n /**\n * The current playback state\n */\n @property({ type: Boolean })\n isPlaying = false;\n\n /**\n * The video player's mode showing Inline or Lightbox.\n */\n @property({ reflect: true, attribute: 'playing-mode' })\n playingMode = VIDEO_PLAYER_PLAYING_MODE.INLINE;\n\n /**\n * Optional custom video thumbnail\n */\n @property({ reflect: true, attribute: 'thumbnail' })\n thumbnail?: '';\n\n /**\n * The video thumbnail width.\n */\n @property({ type: Number, attribute: 'video-thumbnail-width' })\n videoThumbnailWidth = 3;\n\n /**\n * Determines if the direction is right-to-left\n */\n @property({ type: Boolean })\n isRTL = false;\n\n /**\n * Stored CTA element for forwarding to lightbox\n */\n @property({ attribute: false })\n ctaElement?: HTMLElement | null;\n\n private observer!: MutationObserver;\n\n /**\n * Observe when the video container enters into view.\n */\n private _observerIntersectionIntoView?: IntersectionObserver;\n\n /**\n * Observe when the video container goes out of view.\n */\n private _observerIntersectionOutOfView?: IntersectionObserver;\n\n connectedCallback() {\n super.connectedCallback();\n\n if (this.backgroundMode) {\n this.hideCaption = true;\n }\n\n if (this.autoPlay || this.backgroundMode) {\n const storedPreference = this._getAutoplayPreference();\n if (storedPreference === null) {\n this.isPlaying = !window.matchMedia('(prefers-reduced-motion: reduce)')\n .matches;\n } else {\n this.isPlaying = storedPreference;\n }\n }\n\n if (this.intersectionMode) {\n // alloy never fires at.js events, so we watch for #alloy-prehiding\n // removal instead; classic at.js fires at-content-rendering-*. No\n // signal pending means no personalization is coming, so skip the wait.\n const prehidingEl = document.getElementById('alloy-prehiding');\n const atObj = (window as any).adobe?.target;\n const realAtJs =\n !!atObj &&\n (typeof atObj.getOffers === 'function' ||\n typeof atObj.getOffer === 'function' ||\n typeof atObj.applyOffers === 'function');\n if (prehidingEl || realAtJs) {\n // Warm the Kaltura SDK while we wait for AT to settle, so loader.js\n // downloads in parallel with the AT defer instead of after it.\n KalturaPlayerAPI.checkScript().catch(() => {});\n let settled = false;\n const setupIO = () =>\n this._cleanAndCreateObserverIntersection({ create: true });\n const onATSettle = () => {\n if (settled) {\n return;\n }\n settled = true;\n document.removeEventListener(\n 'at-content-rendering-succeeded',\n onATSettle\n );\n document.removeEventListener(\n 'at-content-rendering-failed',\n onATSettle\n );\n if (this._atPrehidingObserver) {\n this._atPrehidingObserver.disconnect();\n this._atPrehidingObserver = undefined;\n }\n if (this._atFallback) {\n clearTimeout(this._atFallback);\n this._atFallback = undefined;\n }\n this._atSettleHandler = undefined;\n setupIO();\n };\n this._atSettleHandler = onATSettle;\n document.addEventListener(\n 'at-content-rendering-succeeded',\n onATSettle,\n { once: true }\n );\n document.addEventListener('at-content-rendering-failed', onATSettle, {\n once: true,\n });\n if (prehidingEl) {\n // alloy: settle when the prehiding style is removed from the DOM.\n this._atPrehidingObserver = new MutationObserver(() => {\n if (!document.getElementById('alloy-prehiding')) {\n onATSettle();\n }\n });\n this._atPrehidingObserver.observe(\n prehidingEl.parentNode || document.documentElement,\n { childList: true }\n );\n // Guard against a race: removed between getElementById and observe().\n if (!document.getElementById('alloy-prehiding')) {\n onATSettle();\n }\n }\n // Fallback: if no settle signal ever arrives, set up IO after 4s so video still works\n if (!settled) {\n this._atFallback = setTimeout(onATSettle, 4000) as unknown as number;\n }\n } else {\n this._cleanAndCreateObserverIntersection({ create: true });\n }\n }\n\n // initializing the MutationObserver to observe for changes in the direction mode\n this.observer = new MutationObserver(() => {\n this.isRTL =\n this.dir === 'rtl' || getComputedStyle(this).direction === 'rtl';\n });\n\n // observing the 'dir' attr in the root element\n this.observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['dir'],\n });\n\n // Initial check for the direction\n this.isRTL =\n this.dir === 'rtl' || getComputedStyle(this).direction === 'rtl';\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this._atSettleHandler) {\n document.removeEventListener(\n 'at-content-rendering-succeeded',\n this._atSettleHandler\n );\n document.removeEventListener(\n 'at-content-rendering-failed',\n this._atSettleHandler\n );\n this._atSettleHandler = undefined;\n }\n if (this._atPrehidingObserver) {\n this._atPrehidingObserver.disconnect();\n this._atPrehidingObserver = undefined;\n }\n if (this._atFallback) {\n clearTimeout(this._atFallback);\n this._atFallback = undefined;\n }\n // Removing these placeholders makes legacyPromiseKWidget's getElementById\n // guard fail fast, draining dead embeds from the queue instead of\n // blocking the next one behind a hidden orphaned player.\n if (this._ibmPendingEmbedDivs) {\n this._ibmPendingEmbedDivs.forEach((div) => div.remove());\n this._ibmPendingEmbedDivs.clear();\n }\n this._cleanAndCreateObserverIntersection();\n const { embeddedVideos = {} } = this;\n Object.values(embeddedVideos).forEach((player: any) => {\n try {\n player?.destroy?.();\n } catch (error) {\n // Ignore errors from destroy.\n }\n });\n }\n\n updated(changedProperties) {\n if (changedProperties.has('videoId')) {\n const { autoPlay, videoId, backgroundMode } = this;\n this._activateEmbeddedVideo(videoId);\n if (videoId) {\n this._loadVideoData?.(videoId);\n if (autoPlay || backgroundMode) {\n this._embedMedia?.(videoId);\n }\n }\n }\n }\n\n renderLightDOM() {\n // setting the direction mode of the video player.\n this.querySelector('.c4d--video-player__video')?.setAttribute(\n 'dir-mode',\n `${this.isRTL ? 'rtl' : 'ltr'}`\n );\n\n const {\n aspectRatio,\n formatCaption,\n formatDuration,\n hideCaption,\n caption,\n customVideoDescription,\n mediaData = {},\n videoId,\n videoThumbnailWidth,\n thumbnail,\n playingMode,\n buttonPosition,\n } = this;\n\n const { [videoId]: currentVideoData = {} as MediaData } = mediaData;\n const { duration, name } = currentVideoData;\n const thumbnailUrl =\n thumbnail ||\n KalturaPlayerAPI.getThumbnailUrl({\n mediaId: videoId,\n width: videoThumbnailWidth,\n });\n return html`\n <c4d-video-player-v7\n part=\"video-player\"\n duration=\"${ifNonEmpty(duration)}\"\n ?hide-caption=${hideCaption}\n name=\"${ifNonEmpty(caption || name)}\"\n video-description=\"${ifNonEmpty(customVideoDescription)}\"\n thumbnail-url=\"${ifNonEmpty(thumbnailUrl)}\"\n video-id=\"${ifNonEmpty(videoId)}\"\n aspect-ratio=\"${ifNonEmpty(aspectRatio)}\"\n playing-mode=\"${ifNonEmpty(playingMode)}\"\n content-state=\"${this.playbackTriggered\n ? VIDEO_PLAYER_CONTENT_STATE.VIDEO\n : VIDEO_PLAYER_CONTENT_STATE.THUMBNAIL}\"\n button-position=\"${buttonPosition}\"\n .formatCaption=\"${ifNonEmpty(formatCaption)}\"\n .formatDuration=\"${ifNonEmpty(formatDuration)}\"\n .isPlaying=${this.isPlaying}>\n </c4d-video-player-v7>\n `;\n }\n\n render() {\n return html` <slot></slot> `;\n }\n\n /**\n * A selector selecting the video player component.\n */\n static get selectorVideoPlayer() {\n return `${c4dPrefix}-video-player-v7`;\n }\n\n /**\n * The name of the custom event fired after video content state is changed upon a user gesture.\n */\n static get eventContentStateChange() {\n return `${c4dPrefix}-video-player-content-state-changed`;\n }\n\n /**\n * The name of the custom event fired requesting playback state change.\n */\n static get eventPlaybackStateChange() {\n return `${c4dPrefix}-video-player-playback-state-changed`;\n }\n\n /**\n * The name of the custom event fired requesting to toggle playback.\n */\n static get eventTogglePlayback() {\n return `${c4dPrefix}-video-player-toggle-playback`;\n }\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DVideoPlayerComposite;\n"],"mappings":"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","ignoreList":[]}
@@ -68,6 +68,16 @@ export declare const C4DVideoPlayerContainerMixin: <T extends Constructor<HTMLEl
68
68
  _requestsEmbedVideo: {
69
69
  [videoId: string]: Promise<any>;
70
70
  };
71
+ /**
72
+ * Placeholder divs parked in `document.body` by `_embedVideoImpl` while a
73
+ * Kaltura embed is queued or in flight. `disconnectedCallback` (in the
74
+ * composite) removes them so dead embeds drain from
75
+ * `_ibmKalturaEmbedQueue` immediately after this component is removed
76
+ * (e.g. when Adobe Target swaps DC for an XF).
77
+ *
78
+ * @internal
79
+ */
80
+ _ibmPendingEmbedDivs?: Set<HTMLElement>;
71
81
  /**
72
82
  * Custom video name
73
83
  */
@@ -827,6 +837,16 @@ declare const C4DVideoPlayerContainer_base: {
827
837
  _requestsEmbedVideo: {
828
838
  [videoId: string]: Promise<any>;
829
839
  };
840
+ /**
841
+ * Placeholder divs parked in `document.body` by `_embedVideoImpl` while a
842
+ * Kaltura embed is queued or in flight. `disconnectedCallback` (in the
843
+ * composite) removes them so dead embeds drain from
844
+ * `_ibmKalturaEmbedQueue` immediately after this component is removed
845
+ * (e.g. when Adobe Target swaps DC for an XF).
846
+ *
847
+ * @internal
848
+ */
849
+ _ibmPendingEmbedDivs?: Set<HTMLElement>;
830
850
  /**
831
851
  * Custom video name
832
852
  */
@@ -128,6 +128,16 @@ export const C4DVideoPlayerContainerMixin = Base => {
128
128
  */
129
129
  // Not using TypeScript `private` due to: microsoft/TypeScript#17744
130
130
 
131
+ /**
132
+ * Placeholder divs parked in `document.body` by `_embedVideoImpl` while a
133
+ * Kaltura embed is queued or in flight. `disconnectedCallback` (in the
134
+ * composite) removes them so dead embeds drain from
135
+ * `_ibmKalturaEmbedQueue` immediately after this component is removed
136
+ * (e.g. when Adobe Target swaps DC for an XF).
137
+ *
138
+ * @internal
139
+ */
140
+
131
141
  /**
132
142
  * Custom video name
133
143
  */
@@ -327,16 +337,59 @@ export const C4DVideoPlayerContainerMixin = Base => {
327
337
  if (!videoPlayer) {
328
338
  throw new TypeError('Cannot find the video player component to put the video content into.');
329
339
  }
330
- videoPlayer.appendChild(div);
331
- const embedVideoHandle = await KalturaPlayerAPI.embedMedia(videoId, playerId, this._getPlayerOptions());
332
- const {
333
- width,
334
- height
335
- } = await KalturaPlayerAPI.api(videoId);
336
- videoPlayer.style.setProperty('--native-file-width', `${width}px`);
337
- videoPlayer.style.setProperty('--native-file-height', `${height}px`);
338
- videoPlayer.style.setProperty('--native-file-aspect-ratio', `${width} / ${height}`);
339
- doc.getElementById(playerId).dataset.videoId = videoId;
340
+ // Parked in document.body, not videoPlayer, so Lit's renderLightDOM()
341
+ // can't detach it mid-embed (the queue wait can run 6-20s) and orphan
342
+ // legacyPromiseKWidget's getElementById(playerId) lookup.
343
+ div.style.cssText = 'position:fixed;left:-9999px;visibility:hidden';
344
+ document.body.appendChild(div);
345
+ // Tracked so disconnectedCallback can remove it if this component is
346
+ // torn down mid-queue, freeing the embed instead of leaving it to
347
+ // finish as a hidden orphan.
348
+ if (!this._ibmPendingEmbedDivs) {
349
+ this._ibmPendingEmbedDivs = new Set();
350
+ }
351
+ this._ibmPendingEmbedDivs.add(div);
352
+ let embedVideoHandle;
353
+ try {
354
+ var _this$_videoPlayer, _this$_ibmPendingEmbe2;
355
+ // Run the embed and the metadata fetch in parallel — saves a round-trip.
356
+ const [handle, {
357
+ width,
358
+ height
359
+ }] = await Promise.all([KalturaPlayerAPI.embedMedia(videoId, playerId, this._getPlayerOptions()), KalturaPlayerAPI.api(videoId)]);
360
+ embedVideoHandle = handle;
361
+
362
+ // If we were disconnected during the wait, discard the embed.
363
+ if (!this.isConnected) {
364
+ var _this$_ibmPendingEmbe;
365
+ div.remove();
366
+ (_this$_ibmPendingEmbe = this._ibmPendingEmbedDivs) === null || _this$_ibmPendingEmbe === void 0 || _this$_ibmPendingEmbe.delete(div);
367
+ return null;
368
+ }
369
+
370
+ // Move the div (now containing Kaltura's iframe) into the video player.
371
+ // Re-fetch _videoPlayer in case Lit re-rendered and replaced the element
372
+ // while we were awaiting the embed queue.
373
+ const currentVideoPlayer = (_this$_videoPlayer = this._videoPlayer) !== null && _this$_videoPlayer !== void 0 ? _this$_videoPlayer : videoPlayer;
374
+ div.style.cssText = '';
375
+ currentVideoPlayer.appendChild(div);
376
+ (_this$_ibmPendingEmbe2 = this._ibmPendingEmbedDivs) === null || _this$_ibmPendingEmbe2 === void 0 || _this$_ibmPendingEmbe2.delete(div);
377
+ currentVideoPlayer.style.setProperty('--native-file-width', `${width}px`);
378
+ currentVideoPlayer.style.setProperty('--native-file-height', `${height}px`);
379
+ currentVideoPlayer.style.setProperty('--native-file-aspect-ratio', `${width} / ${height}`);
380
+ } catch (error) {
381
+ var _this$_ibmPendingEmbe3;
382
+ // Clean up hidden div if embed failed
383
+ if (div.parentElement) {
384
+ div.remove();
385
+ }
386
+ (_this$_ibmPendingEmbe3 = this._ibmPendingEmbedDivs) === null || _this$_ibmPendingEmbe3 === void 0 || _this$_ibmPendingEmbe3.delete(div);
387
+ throw error;
388
+ }
389
+ const playerEl = doc.getElementById(playerId);
390
+ if (playerEl) {
391
+ playerEl.dataset.videoId = videoId;
392
+ }
340
393
  const videoEmbed = (_getElementById = doc.getElementById(playerId)) === null || _getElementById === void 0 ? void 0 : _getElementById.firstElementChild;
341
394
  if (videoEmbed) {
342
395
  videoEmbed.focus({
@@ -1 +1 @@
1
- {"version":3,"file":"video-player-container.js","names":["bindActionCreators","property","KalturaPlayerAPI","settings","store","loadMediaData","ConnectMixin","StableSelectorMixin","C4DVideoPlayerComposite","carbonElement","customElement","LocaleAPI","stablePrefix","c4dPrefix","mapStateToProps","state","kalturaPlayerAPI","mediaData","mapDispatchToProps","dispatch","_loadVideoData","C4DVideoPlayerContainerMixin","Base","C4DVideoPlayerContainerMixinImpl","_decorate","_initialize","_StableSelectorMixin","constructor","args","F","d","kind","key","value","decorators","type","String","attribute","_captureCTA","ctaElement","querySelector","parentNode","removeChild","_returnCTA","appendChild","_setRequestEmbedVideoInProgress","videoId","request","_requestsEmbedVideo","oldRequestsEmbedVideo","_objectSpread","_setErrorRequestEmbedVideo","error","Promise","reject","_setEmbeddedVideo","kalturaPlayer","resolve","embeddedVideos","oldEmbeddedVideos","_setAutoplayPreference","preference","updatedValue","localStorage","setItem","prefersAutoplayStorageKey","_getAutoplayPreference","storedValue","getItem","window","matchMedia","matches","Boolean","parseInt","_getPlayerOptions","backgroundMode","intersectionMode","autoPlay","muted","mediaTitle","lc","toLowerCase","playerOptions","autoplayPreference","playerMode","loop","playerType","_embedVideoImpl","_getElementById","doc","Object","prototype","hasOwnProperty","call","getRootNode","ownerDocument","playerId","Math","random","toString","slice","div","document","createElement","id","className","_videoPlayer","videoPlayer","TypeError","embedVideoHandle","embedMedia","width","height","api","style","setProperty","getElementById","dataset","videoEmbed","firstElementChild","focus","preventScroll","requestsEmbedVideo","requestEmbedVideo","promiseEmbedVideo","firstUpdated","requestAnimationFrame","_this$querySelector","button","shadowRoot","getAttribute","setAttribute","transposeAttributes","getLocale","C4DVideoPlayerContainer","_initialize2","_ConnectMixin"],"sources":["components/video-player-v7/video-player-container.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n ActionCreatorsMapObject,\n Dispatch,\n Store,\n bindActionCreators,\n} from 'redux';\nimport {} from 'lit';\nimport { property } from 'lit/decorators.js';\nimport KalturaPlayerAPI from '@carbon/ibmdotcom-services/es/services/KalturaPlayerV7/KalturaPlayer.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport store from '../../internal/vendor/@carbon/ibmdotcom-services-store/store.js';\nimport {\n MediaData,\n MediaPlayerAPIState,\n} from '../../internal/vendor/@carbon/ibmdotcom-services-store/types/kalturaPlayerAPIv7';\nimport { loadMediaData } from '../../internal/vendor/@carbon/ibmdotcom-services-store/actions/kalturaPlayerAPIv7.js';\nimport { MediaPlayerAPIActions } from '../../internal/vendor/@carbon/ibmdotcom-services-store/actions/kalturaPlayerAPIv7';\nimport { Constructor } from '../../globals/defs';\nimport ConnectMixin from '../../globals/mixins/connect';\nimport StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport C4DVideoPlayerComposite from './video-player-composite';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport { LocaleAPI } from '@carbon/ibmdotcom-services/es/services/Locale/index';\n\nconst { stablePrefix: c4dPrefix } = settings;\n\n/**\n * The Redux state used for `<c4d-video-player-container-v7>`.\n */\nexport interface VideoPlayerContainerState {\n /**\n * The Redux state for `KalturaPlayerAPI`.\n */\n kalturaPlayerAPI?: MediaPlayerAPIState;\n}\n\n/**\n * The properties for `<c4d-video-player-container-v7>` from Redux state.\n */\nexport interface VideoPlayerContainerStateProps {\n /**\n * The video data, keyed by the video ID.\n */\n mediaData?: { [videoId: string]: MediaData };\n}\n\nexport type VideoPlayerActions = ReturnType<typeof loadMediaData>;\n\n/**\n * @param state The Redux state for video player.\n * @returns The converted version of the given state, tailored for `<c4d-video-player-container-v7>`.\n */\nexport function mapStateToProps(\n state: VideoPlayerContainerState\n): VideoPlayerContainerStateProps {\n const { kalturaPlayerAPI } = state;\n const { mediaData } = kalturaPlayerAPI ?? {};\n return !mediaData ? {} : { mediaData };\n}\n\n/**\n * @param dispatch The Redux `dispatch()` API.\n * @returns The methods in `<c4d-video-player-container-v7>` to dispatch Redux actions.\n */\nexport function mapDispatchToProps(dispatch: Dispatch<MediaPlayerAPIActions>) {\n return bindActionCreators<\n VideoPlayerActions,\n ActionCreatorsMapObject<VideoPlayerActions>\n >(\n {\n _loadVideoData: loadMediaData,\n },\n dispatch as Dispatch // TS definition of `bindActionCreators()` seems to have no templated `Dispatch`\n );\n}\n\n/**\n * @param Base The base class.\n * @returns A mix-in that implements video embedding API calls.\n */\nexport const C4DVideoPlayerContainerMixin = <\n T extends Constructor<HTMLElement>\n>(\n Base: T\n) => {\n /**\n * A mix-in class that sets up and cleans up event listeners defined by `@HostListener` decorator.\n */\n abstract class C4DVideoPlayerContainerMixinImpl extends StableSelectorMixin(\n Base\n ) {\n /**\n * The video player.\n */\n abstract _videoPlayer?: HTMLElement;\n\n /**\n * The embedded Kaltura player element (that has APIs), keyed by the video ID.\n */\n abstract embeddedVideos?: { [videoId: string]: any };\n\n /**\n * The request for the embedded Kaltura player element (that has APIs), keyed by the video ID.\n *\n * @protected\n */\n // Not using TypeScript `private` due to: microsoft/TypeScript#17744\n _requestsEmbedVideo: { [videoId: string]: Promise<any> } = {};\n\n /**\n * Custom video name\n */\n @property({ type: String, attribute: 'customvideoname' })\n customVideoName = '';\n\n /**\n * Language code\n */\n @property()\n lc = '';\n\n /**\n * Stored CTA element for forwarding to lightbox\n */\n @property({ attribute: false })\n ctaElement?: HTMLElement | null;\n\n /**\n * Captures and removes the CTA element from light DOM\n * @returns The captured CTA element or null\n */\n _captureCTA(): HTMLElement | null {\n const ctaElement = this.querySelector('[slot=\"cta\"]');\n if (ctaElement && ctaElement.parentNode) {\n this.ctaElement = ctaElement.parentNode.removeChild(\n ctaElement\n ) as HTMLElement;\n return this.ctaElement;\n }\n return null;\n }\n\n /**\n * Returns the CTA element to the container\n */\n _returnCTA(): void {\n if (this.ctaElement) {\n this.appendChild(this.ctaElement);\n }\n }\n\n /**\n * Sets the state that the API call for embedding the video for the given video ID is in progress.\n *\n * @param videoId The video ID.\n * @param request The promise of the API call for embedding the video of the given video ID that is in progress.\n * @private\n */\n // Not using TypeScript `private` due to: microsoft/TypeScript#17744\n _setRequestEmbedVideoInProgress(videoId: string, request: Promise<any>) {\n const { _requestsEmbedVideo: oldRequestsEmbedVideo } = this;\n this._requestsEmbedVideo = {\n ...oldRequestsEmbedVideo,\n [videoId]: request,\n };\n }\n\n /**\n * Set the state that the API call for embedding the video for the given video ID is failed.\n *\n * @param videoId The video ID.\n * @param error An error from the API call for embedding the video of the given video ID.\n * @private\n */\n // Not using TypeScript `private` due to: microsoft/TypeScript#17744\n _setErrorRequestEmbedVideo(videoId: string, error: Error) {\n this._setRequestEmbedVideoInProgress(videoId, Promise.reject(error));\n }\n\n /**\n * Sets the given embedded Kaltura player element (that has APIs) for the given video ID.\n *\n * @param videoId The video ID.\n * @param kalturaPlayer The embedded Kaltura player element (that has APIs).\n * @private\n */\n // Not using TypeScript `private` due to: microsoft/TypeScript#17744\n _setEmbeddedVideo(videoId: string, kalturaPlayer: any) {\n this._setRequestEmbedVideoInProgress(\n videoId,\n Promise.resolve(kalturaPlayer)\n );\n const { embeddedVideos: oldEmbeddedVideos } = this;\n this.embeddedVideos = {\n ...oldEmbeddedVideos,\n [videoId]: kalturaPlayer,\n };\n }\n\n _setAutoplayPreference(preference: boolean) {\n const updatedValue = preference ? '1' : '0';\n localStorage.setItem(`${this.prefersAutoplayStorageKey}`, updatedValue);\n }\n\n _getAutoplayPreference() {\n const storedValue = localStorage.getItem(\n `${this.prefersAutoplayStorageKey}`\n );\n\n if (storedValue === null) {\n return !window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n } else {\n return Boolean(parseInt(storedValue, 10));\n }\n }\n\n _getPlayerOptions() {\n const { backgroundMode, intersectionMode, autoPlay, muted } =\n this as unknown as C4DVideoPlayerComposite;\n /**\n * The overwritten media title.\n *\n * Quick and dirty turn around as C4DVideoPlayerComposite uses caption\n * and C4DLightboxVideoPlayer uses customVideoName and none are\n * part of the same type\n *\n * <c4d-video-player-container-v7 customVideoName=\"overwritten media title here\">...\n *\n */\n\n let mediaTitle: string;\n\n if (this.lc.toLowerCase() === 'en') {\n mediaTitle = this?.['customVideoName'] || this?.['caption'];\n } else {\n mediaTitle = ' ';\n }\n\n let playerOptions: any = {};\n const autoplayPreference = this._getAutoplayPreference();\n\n switch (true) {\n case autoPlay:\n playerOptions = {\n muted,\n autoPlay: autoplayPreference,\n };\n break;\n\n case backgroundMode || intersectionMode:\n playerOptions = {\n playerMode: 'background',\n loop: true,\n muted: true,\n autoPlay: autoplayPreference,\n };\n break;\n\n default:\n playerOptions = {\n muted,\n };\n break;\n }\n\n if (mediaTitle) {\n playerOptions = {\n ...playerOptions,\n mediaTitle,\n };\n }\n\n /**\n * In the video player, the player type\n * will always be video\n */\n playerOptions.playerType = 'VIDEO';\n\n return playerOptions;\n }\n\n /**\n * Sets up and sends the API call for embedding video for the given video ID.\n *\n * @param videoId The video ID.\n * @private\n */\n // Not using TypeScript `private` due to: microsoft/TypeScript#17744\n async _embedVideoImpl(videoId: string) {\n const doc = Object.prototype.hasOwnProperty.call(this, 'getRootNode')\n ? (this.getRootNode() as Document | ShadowRoot)\n : this.ownerDocument;\n // Given Kaltura replaces the `<div>` here with `<iframe>` with the video player,\n // rendering this `<div>` in `renderLightDOM()` will cause the video player being clobbered\n const playerId = Math.random().toString(36).slice(2);\n const div = document.createElement('div');\n div.id = playerId;\n div.className = `${c4dPrefix}--video-player__video`;\n const { _videoPlayer: videoPlayer } = this;\n if (!videoPlayer) {\n throw new TypeError(\n 'Cannot find the video player component to put the video content into.'\n );\n }\n videoPlayer.appendChild(div);\n\n const embedVideoHandle = await KalturaPlayerAPI.embedMedia(\n videoId,\n playerId,\n this._getPlayerOptions()\n );\n const { width, height } = await KalturaPlayerAPI.api(videoId);\n videoPlayer.style.setProperty('--native-file-width', `${width}px`);\n videoPlayer.style.setProperty('--native-file-height', `${height}px`);\n videoPlayer.style.setProperty(\n '--native-file-aspect-ratio',\n `${width} / ${height}`\n );\n\n doc!.getElementById(playerId)!.dataset.videoId = videoId;\n const videoEmbed = doc!.getElementById(playerId)?.firstElementChild;\n if (videoEmbed) {\n (videoEmbed as HTMLElement).focus({ preventScroll: true });\n }\n return embedVideoHandle;\n }\n\n /**\n * Sends the API call for embedding video for the given video ID, and tracks the progress and the error of the REST call.\n *\n * @param videoId The video ID.\n * @internal\n */\n _embedMedia = async (videoId: string) => {\n const { _requestsEmbedVideo: requestsEmbedVideo } = this;\n const requestEmbedVideo = requestsEmbedVideo[videoId];\n\n if (requestEmbedVideo) {\n return requestEmbedVideo;\n }\n\n const promiseEmbedVideo = this._embedVideoImpl(videoId);\n\n this._setRequestEmbedVideoInProgress(videoId, promiseEmbedVideo);\n try {\n this._setEmbeddedVideo(videoId, await promiseEmbedVideo);\n } catch (error) {\n this._setErrorRequestEmbedVideo(videoId, error as Error);\n }\n return promiseEmbedVideo;\n };\n\n /**\n * Calls the data-* attribute transpose function to target `c4d-video-player`'s button element.\n */\n async firstUpdated() {\n window.requestAnimationFrame(() => {\n const button = this.querySelector(\n 'c4d-video-player-v7'\n )?.shadowRoot?.querySelector('button');\n if (!this.getAttribute('href') && this.getAttribute('video-id')) {\n this.setAttribute(\n 'href',\n `https://mediacenter.ibm.com/id/${this.getAttribute('video-id')}`\n );\n }\n this.transposeAttributes(button, ['href']);\n });\n\n //get LC\n const { lc } = await LocaleAPI.getLocale();\n this.lc = lc;\n }\n\n prefersAutoplayStorageKey = `${c4dPrefix}-background-video-prefers-autoplay`;\n }\n\n return C4DVideoPlayerContainerMixinImpl;\n};\n\n/**\n * Container component for video player.\n *\n * @element c4d-video-player-container-v7\n */\n@customElement(`${c4dPrefix}-video-player-container-v7`)\nclass C4DVideoPlayerContainer extends ConnectMixin<\n VideoPlayerContainerState,\n MediaPlayerAPIActions,\n VideoPlayerContainerStateProps,\n ActionCreatorsMapObject<VideoPlayerActions>\n>(\n store as Store<VideoPlayerContainerState, MediaPlayerAPIActions>,\n mapStateToProps,\n mapDispatchToProps\n)(C4DVideoPlayerContainerMixin(C4DVideoPlayerComposite)) {}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DVideoPlayerContainer;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"video-player-container.js","names":["bindActionCreators","property","KalturaPlayerAPI","settings","store","loadMediaData","ConnectMixin","StableSelectorMixin","C4DVideoPlayerComposite","carbonElement","customElement","LocaleAPI","stablePrefix","c4dPrefix","mapStateToProps","state","kalturaPlayerAPI","mediaData","mapDispatchToProps","dispatch","_loadVideoData","C4DVideoPlayerContainerMixin","Base","C4DVideoPlayerContainerMixinImpl","_decorate","_initialize","_StableSelectorMixin","constructor","args","F","d","kind","key","value","decorators","type","String","attribute","_captureCTA","ctaElement","querySelector","parentNode","removeChild","_returnCTA","appendChild","_setRequestEmbedVideoInProgress","videoId","request","_requestsEmbedVideo","oldRequestsEmbedVideo","_objectSpread","_setErrorRequestEmbedVideo","error","Promise","reject","_setEmbeddedVideo","kalturaPlayer","resolve","embeddedVideos","oldEmbeddedVideos","_setAutoplayPreference","preference","updatedValue","localStorage","setItem","prefersAutoplayStorageKey","_getAutoplayPreference","storedValue","getItem","window","matchMedia","matches","Boolean","parseInt","_getPlayerOptions","backgroundMode","intersectionMode","autoPlay","muted","mediaTitle","lc","toLowerCase","playerOptions","autoplayPreference","playerMode","loop","playerType","_embedVideoImpl","_getElementById","doc","Object","prototype","hasOwnProperty","call","getRootNode","ownerDocument","playerId","Math","random","toString","slice","div","document","createElement","id","className","_videoPlayer","videoPlayer","TypeError","style","cssText","body","_ibmPendingEmbedDivs","Set","add","embedVideoHandle","_this$_videoPlayer","_this$_ibmPendingEmbe2","handle","width","height","all","embedMedia","api","isConnected","_this$_ibmPendingEmbe","remove","delete","currentVideoPlayer","setProperty","_this$_ibmPendingEmbe3","parentElement","playerEl","getElementById","dataset","videoEmbed","firstElementChild","focus","preventScroll","requestsEmbedVideo","requestEmbedVideo","promiseEmbedVideo","firstUpdated","requestAnimationFrame","_this$querySelector","button","shadowRoot","getAttribute","setAttribute","transposeAttributes","getLocale","C4DVideoPlayerContainer","_initialize2","_ConnectMixin"],"sources":["components/video-player-v7/video-player-container.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n ActionCreatorsMapObject,\n Dispatch,\n Store,\n bindActionCreators,\n} from 'redux';\nimport {} from 'lit';\nimport { property } from 'lit/decorators.js';\nimport KalturaPlayerAPI from '@carbon/ibmdotcom-services/es/services/KalturaPlayerV7/KalturaPlayer.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport store from '../../internal/vendor/@carbon/ibmdotcom-services-store/store.js';\nimport {\n MediaData,\n MediaPlayerAPIState,\n} from '../../internal/vendor/@carbon/ibmdotcom-services-store/types/kalturaPlayerAPIv7';\nimport { loadMediaData } from '../../internal/vendor/@carbon/ibmdotcom-services-store/actions/kalturaPlayerAPIv7.js';\nimport { MediaPlayerAPIActions } from '../../internal/vendor/@carbon/ibmdotcom-services-store/actions/kalturaPlayerAPIv7';\nimport { Constructor } from '../../globals/defs';\nimport ConnectMixin from '../../globals/mixins/connect';\nimport StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport C4DVideoPlayerComposite from './video-player-composite';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport { LocaleAPI } from '@carbon/ibmdotcom-services/es/services/Locale/index';\n\nconst { stablePrefix: c4dPrefix } = settings;\n\n/**\n * The Redux state used for `<c4d-video-player-container-v7>`.\n */\nexport interface VideoPlayerContainerState {\n /**\n * The Redux state for `KalturaPlayerAPI`.\n */\n kalturaPlayerAPI?: MediaPlayerAPIState;\n}\n\n/**\n * The properties for `<c4d-video-player-container-v7>` from Redux state.\n */\nexport interface VideoPlayerContainerStateProps {\n /**\n * The video data, keyed by the video ID.\n */\n mediaData?: { [videoId: string]: MediaData };\n}\n\nexport type VideoPlayerActions = ReturnType<typeof loadMediaData>;\n\n/**\n * @param state The Redux state for video player.\n * @returns The converted version of the given state, tailored for `<c4d-video-player-container-v7>`.\n */\nexport function mapStateToProps(\n state: VideoPlayerContainerState\n): VideoPlayerContainerStateProps {\n const { kalturaPlayerAPI } = state;\n const { mediaData } = kalturaPlayerAPI ?? {};\n return !mediaData ? {} : { mediaData };\n}\n\n/**\n * @param dispatch The Redux `dispatch()` API.\n * @returns The methods in `<c4d-video-player-container-v7>` to dispatch Redux actions.\n */\nexport function mapDispatchToProps(dispatch: Dispatch<MediaPlayerAPIActions>) {\n return bindActionCreators<\n VideoPlayerActions,\n ActionCreatorsMapObject<VideoPlayerActions>\n >(\n {\n _loadVideoData: loadMediaData,\n },\n dispatch as Dispatch // TS definition of `bindActionCreators()` seems to have no templated `Dispatch`\n );\n}\n\n/**\n * @param Base The base class.\n * @returns A mix-in that implements video embedding API calls.\n */\nexport const C4DVideoPlayerContainerMixin = <\n T extends Constructor<HTMLElement>\n>(\n Base: T\n) => {\n /**\n * A mix-in class that sets up and cleans up event listeners defined by `@HostListener` decorator.\n */\n abstract class C4DVideoPlayerContainerMixinImpl extends StableSelectorMixin(\n Base\n ) {\n /**\n * The video player.\n */\n abstract _videoPlayer?: HTMLElement;\n\n /**\n * The embedded Kaltura player element (that has APIs), keyed by the video ID.\n */\n abstract embeddedVideos?: { [videoId: string]: any };\n\n /**\n * The request for the embedded Kaltura player element (that has APIs), keyed by the video ID.\n *\n * @protected\n */\n // Not using TypeScript `private` due to: microsoft/TypeScript#17744\n _requestsEmbedVideo: { [videoId: string]: Promise<any> } = {};\n\n /**\n * Placeholder divs parked in `document.body` by `_embedVideoImpl` while a\n * Kaltura embed is queued or in flight. `disconnectedCallback` (in the\n * composite) removes them so dead embeds drain from\n * `_ibmKalturaEmbedQueue` immediately after this component is removed\n * (e.g. when Adobe Target swaps DC for an XF).\n *\n * @internal\n */\n _ibmPendingEmbedDivs?: Set<HTMLElement>;\n\n /**\n * Custom video name\n */\n @property({ type: String, attribute: 'customvideoname' })\n customVideoName = '';\n\n /**\n * Language code\n */\n @property()\n lc = '';\n\n /**\n * Stored CTA element for forwarding to lightbox\n */\n @property({ attribute: false })\n ctaElement?: HTMLElement | null;\n\n /**\n * Captures and removes the CTA element from light DOM\n * @returns The captured CTA element or null\n */\n _captureCTA(): HTMLElement | null {\n const ctaElement = this.querySelector('[slot=\"cta\"]');\n if (ctaElement && ctaElement.parentNode) {\n this.ctaElement = ctaElement.parentNode.removeChild(\n ctaElement\n ) as HTMLElement;\n return this.ctaElement;\n }\n return null;\n }\n\n /**\n * Returns the CTA element to the container\n */\n _returnCTA(): void {\n if (this.ctaElement) {\n this.appendChild(this.ctaElement);\n }\n }\n\n /**\n * Sets the state that the API call for embedding the video for the given video ID is in progress.\n *\n * @param videoId The video ID.\n * @param request The promise of the API call for embedding the video of the given video ID that is in progress.\n * @private\n */\n // Not using TypeScript `private` due to: microsoft/TypeScript#17744\n _setRequestEmbedVideoInProgress(videoId: string, request: Promise<any>) {\n const { _requestsEmbedVideo: oldRequestsEmbedVideo } = this;\n this._requestsEmbedVideo = {\n ...oldRequestsEmbedVideo,\n [videoId]: request,\n };\n }\n\n /**\n * Set the state that the API call for embedding the video for the given video ID is failed.\n *\n * @param videoId The video ID.\n * @param error An error from the API call for embedding the video of the given video ID.\n * @private\n */\n // Not using TypeScript `private` due to: microsoft/TypeScript#17744\n _setErrorRequestEmbedVideo(videoId: string, error: Error) {\n this._setRequestEmbedVideoInProgress(videoId, Promise.reject(error));\n }\n\n /**\n * Sets the given embedded Kaltura player element (that has APIs) for the given video ID.\n *\n * @param videoId The video ID.\n * @param kalturaPlayer The embedded Kaltura player element (that has APIs).\n * @private\n */\n // Not using TypeScript `private` due to: microsoft/TypeScript#17744\n _setEmbeddedVideo(videoId: string, kalturaPlayer: any) {\n this._setRequestEmbedVideoInProgress(\n videoId,\n Promise.resolve(kalturaPlayer)\n );\n const { embeddedVideos: oldEmbeddedVideos } = this;\n this.embeddedVideos = {\n ...oldEmbeddedVideos,\n [videoId]: kalturaPlayer,\n };\n }\n\n _setAutoplayPreference(preference: boolean) {\n const updatedValue = preference ? '1' : '0';\n localStorage.setItem(`${this.prefersAutoplayStorageKey}`, updatedValue);\n }\n\n _getAutoplayPreference() {\n const storedValue = localStorage.getItem(\n `${this.prefersAutoplayStorageKey}`\n );\n\n if (storedValue === null) {\n return !window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n } else {\n return Boolean(parseInt(storedValue, 10));\n }\n }\n\n _getPlayerOptions() {\n const { backgroundMode, intersectionMode, autoPlay, muted } =\n this as unknown as C4DVideoPlayerComposite;\n /**\n * The overwritten media title.\n *\n * Quick and dirty turn around as C4DVideoPlayerComposite uses caption\n * and C4DLightboxVideoPlayer uses customVideoName and none are\n * part of the same type\n *\n * <c4d-video-player-container-v7 customVideoName=\"overwritten media title here\">...\n *\n */\n\n let mediaTitle: string;\n\n if (this.lc.toLowerCase() === 'en') {\n mediaTitle = this?.['customVideoName'] || this?.['caption'];\n } else {\n mediaTitle = ' ';\n }\n\n let playerOptions: any = {};\n const autoplayPreference = this._getAutoplayPreference();\n\n switch (true) {\n case autoPlay:\n playerOptions = {\n muted,\n autoPlay: autoplayPreference,\n };\n break;\n\n case backgroundMode || intersectionMode:\n playerOptions = {\n playerMode: 'background',\n loop: true,\n muted: true,\n autoPlay: autoplayPreference,\n };\n break;\n\n default:\n playerOptions = {\n muted,\n };\n break;\n }\n\n if (mediaTitle) {\n playerOptions = {\n ...playerOptions,\n mediaTitle,\n };\n }\n\n /**\n * In the video player, the player type\n * will always be video\n */\n playerOptions.playerType = 'VIDEO';\n\n return playerOptions;\n }\n\n /**\n * Sets up and sends the API call for embedding video for the given video ID.\n *\n * @param videoId The video ID.\n * @private\n */\n // Not using TypeScript `private` due to: microsoft/TypeScript#17744\n async _embedVideoImpl(videoId: string) {\n const doc = Object.prototype.hasOwnProperty.call(this, 'getRootNode')\n ? (this.getRootNode() as Document | ShadowRoot)\n : this.ownerDocument;\n // Given Kaltura replaces the `<div>` here with `<iframe>` with the video player,\n // rendering this `<div>` in `renderLightDOM()` will cause the video player being clobbered\n const playerId = Math.random().toString(36).slice(2);\n const div = document.createElement('div');\n div.id = playerId;\n div.className = `${c4dPrefix}--video-player__video`;\n const { _videoPlayer: videoPlayer } = this;\n if (!videoPlayer) {\n throw new TypeError(\n 'Cannot find the video player component to put the video content into.'\n );\n }\n // Parked in document.body, not videoPlayer, so Lit's renderLightDOM()\n // can't detach it mid-embed (the queue wait can run 6-20s) and orphan\n // legacyPromiseKWidget's getElementById(playerId) lookup.\n div.style.cssText = 'position:fixed;left:-9999px;visibility:hidden';\n document.body.appendChild(div);\n // Tracked so disconnectedCallback can remove it if this component is\n // torn down mid-queue, freeing the embed instead of leaving it to\n // finish as a hidden orphan.\n if (!this._ibmPendingEmbedDivs) {\n this._ibmPendingEmbedDivs = new Set();\n }\n this._ibmPendingEmbedDivs.add(div);\n\n let embedVideoHandle;\n try {\n // Run the embed and the metadata fetch in parallel — saves a round-trip.\n const [handle, { width, height }] = await Promise.all([\n KalturaPlayerAPI.embedMedia(\n videoId,\n playerId,\n this._getPlayerOptions()\n ),\n KalturaPlayerAPI.api(videoId),\n ]);\n embedVideoHandle = handle;\n\n // If we were disconnected during the wait, discard the embed.\n if (!this.isConnected) {\n div.remove();\n this._ibmPendingEmbedDivs?.delete(div);\n return null;\n }\n\n // Move the div (now containing Kaltura's iframe) into the video player.\n // Re-fetch _videoPlayer in case Lit re-rendered and replaced the element\n // while we were awaiting the embed queue.\n const currentVideoPlayer = this._videoPlayer ?? videoPlayer;\n div.style.cssText = '';\n currentVideoPlayer.appendChild(div);\n this._ibmPendingEmbedDivs?.delete(div);\n\n currentVideoPlayer.style.setProperty(\n '--native-file-width',\n `${width}px`\n );\n currentVideoPlayer.style.setProperty(\n '--native-file-height',\n `${height}px`\n );\n currentVideoPlayer.style.setProperty(\n '--native-file-aspect-ratio',\n `${width} / ${height}`\n );\n } catch (error) {\n // Clean up hidden div if embed failed\n if (div.parentElement) {\n div.remove();\n }\n this._ibmPendingEmbedDivs?.delete(div);\n throw error;\n }\n\n const playerEl = doc!.getElementById(playerId);\n if (playerEl) {\n playerEl.dataset.videoId = videoId;\n }\n const videoEmbed = doc!.getElementById(playerId)?.firstElementChild;\n if (videoEmbed) {\n (videoEmbed as HTMLElement).focus({ preventScroll: true });\n }\n return embedVideoHandle;\n }\n\n /**\n * Sends the API call for embedding video for the given video ID, and tracks the progress and the error of the REST call.\n *\n * @param videoId The video ID.\n * @internal\n */\n _embedMedia = async (videoId: string) => {\n const { _requestsEmbedVideo: requestsEmbedVideo } = this;\n const requestEmbedVideo = requestsEmbedVideo[videoId];\n\n if (requestEmbedVideo) {\n return requestEmbedVideo;\n }\n\n const promiseEmbedVideo = this._embedVideoImpl(videoId);\n\n this._setRequestEmbedVideoInProgress(videoId, promiseEmbedVideo);\n try {\n this._setEmbeddedVideo(videoId, await promiseEmbedVideo);\n } catch (error) {\n this._setErrorRequestEmbedVideo(videoId, error as Error);\n }\n return promiseEmbedVideo;\n };\n\n /**\n * Calls the data-* attribute transpose function to target `c4d-video-player`'s button element.\n */\n async firstUpdated() {\n window.requestAnimationFrame(() => {\n const button = this.querySelector(\n 'c4d-video-player-v7'\n )?.shadowRoot?.querySelector('button');\n if (!this.getAttribute('href') && this.getAttribute('video-id')) {\n this.setAttribute(\n 'href',\n `https://mediacenter.ibm.com/id/${this.getAttribute('video-id')}`\n );\n }\n this.transposeAttributes(button, ['href']);\n });\n\n //get LC\n const { lc } = await LocaleAPI.getLocale();\n this.lc = lc;\n }\n\n prefersAutoplayStorageKey = `${c4dPrefix}-background-video-prefers-autoplay`;\n }\n\n return C4DVideoPlayerContainerMixinImpl;\n};\n\n/**\n * Container component for video player.\n *\n * @element c4d-video-player-container-v7\n */\n@customElement(`${c4dPrefix}-video-player-container-v7`)\nclass C4DVideoPlayerContainer extends ConnectMixin<\n VideoPlayerContainerState,\n MediaPlayerAPIActions,\n VideoPlayerContainerStateProps,\n ActionCreatorsMapObject<VideoPlayerActions>\n>(\n store as Store<VideoPlayerContainerState, MediaPlayerAPIActions>,\n mapStateToProps,\n mapDispatchToProps\n)(C4DVideoPlayerContainerMixin(C4DVideoPlayerComposite)) {}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DVideoPlayerContainer;\n"],"mappings":"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","ignoreList":[]}