@carbon/ibmdotcom-web-components 2.47.0 → 2.49.0

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 (47) hide show
  1. package/custom-elements.json +4 -6
  2. package/dist/dotcom-shell.js +2 -2
  3. package/dist/dotcom-shell.min.js +2 -2
  4. package/dist/ibmdotcom-web-components-dotcom-shell.js +2 -2
  5. package/dist/ibmdotcom-web-components-dotcom-shell.min.js +2 -2
  6. package/dist/{index-d71fad5e.js → index-adfddc06.js} +5 -5
  7. package/dist/{index-2afb6b83.js → index-b426f051.js} +18 -74
  8. package/dist/{left-nav-menu-fd372a33.js → left-nav-menu-285b2d09.js} +2 -2
  9. package/dist/{left-nav-menu-c200cfbf.js → left-nav-menu-5e27b743.js} +2 -2
  10. package/dist/{left-nav-menu-category-heading-920e6a4d.js → left-nav-menu-category-heading-30bfb070.js} +2 -2
  11. package/dist/{left-nav-menu-category-heading-5e03be50.js → left-nav-menu-category-heading-ec5617ac.js} +2 -2
  12. package/dist/{left-nav-menu-item-4f1e5c31.js → left-nav-menu-item-d1f39a4f.js} +2 -2
  13. package/dist/{left-nav-menu-item-7fdb8ccb.js → left-nav-menu-item-eaaeb2a2.js} +2 -2
  14. package/dist/{left-nav-menu-section-030cb39a.js → left-nav-menu-section-40165248.js} +2 -2
  15. package/dist/{left-nav-menu-section-6b023c26.js → left-nav-menu-section-6343cf51.js} +2 -2
  16. package/dist/{left-nav-overlay-08587d78.js → left-nav-overlay-2ceeed16.js} +2 -2
  17. package/dist/{left-nav-overlay-889c0a90.js → left-nav-overlay-c58ce474.js} +2 -2
  18. package/dist/{megamenu-category-group-26bd14a7.js → megamenu-category-group-acc5b32b.js} +2 -2
  19. package/dist/{megamenu-category-group-copy-3b2207e3.js → megamenu-category-group-copy-0d9fac6a.js} +2 -2
  20. package/dist/{megamenu-category-group-copy-6164fd89.js → megamenu-category-group-copy-ac5247f8.js} +2 -2
  21. package/dist/{megamenu-category-group-dd55d8cd.js → megamenu-category-group-f388d208.js} +2 -2
  22. package/dist/{megamenu-category-heading-1916b04a.js → megamenu-category-heading-8f657c8d.js} +2 -2
  23. package/dist/{megamenu-category-heading-7d136716.js → megamenu-category-heading-cd3d3fe7.js} +2 -2
  24. package/dist/{megamenu-category-link-5b9838a2.js → megamenu-category-link-592c66f0.js} +2 -2
  25. package/dist/{megamenu-category-link-d47b8f6a.js → megamenu-category-link-b29c1a6a.js} +2 -2
  26. package/dist/{megamenu-category-link-group-97e7fb8f.js → megamenu-category-link-group-2448afd6.js} +2 -2
  27. package/dist/{megamenu-category-link-group-c112da07.js → megamenu-category-link-group-50b30323.js} +2 -2
  28. package/dist/{megamenu-left-navigation-8bbb4f4b.js → megamenu-left-navigation-93122184.js} +2 -2
  29. package/dist/{megamenu-left-navigation-68bc901a.js → megamenu-left-navigation-fd6e97cc.js} +2 -2
  30. package/dist/{megamenu-overlay-a191f87b.js → megamenu-overlay-bdf43cd6.js} +2 -2
  31. package/dist/{megamenu-overlay-1e5cbcc8.js → megamenu-overlay-daeba46c.js} +2 -2
  32. package/dist/{megamenu-tab-15ccf09c.js → megamenu-tab-656e4007.js} +2 -2
  33. package/dist/{megamenu-tab-70d5982a.js → megamenu-tab-90a388cf.js} +2 -2
  34. package/es/components/lightbox-media-viewer/lightbox-media-viewer-body.d.ts +5 -1
  35. package/es/components/lightbox-media-viewer/lightbox-media-viewer-body.js +17 -4
  36. package/es/components/lightbox-media-viewer/lightbox-media-viewer-body.js.map +1 -1
  37. package/es/components/lightbox-media-viewer/lightbox-media-viewer.d.ts +3 -1
  38. package/es/components/lightbox-media-viewer/lightbox-media-viewer.js +10 -2
  39. package/es/components/lightbox-media-viewer/lightbox-media-viewer.js.map +1 -1
  40. package/es/components/lightbox-media-viewer/lightbox-video-player.d.ts +1 -1
  41. package/es/components/lightbox-media-viewer/lightbox-video-player.js +16 -5
  42. package/es/components/lightbox-media-viewer/lightbox-video-player.js.map +1 -1
  43. package/es/components/masthead/masthead-cart.d.ts +0 -13
  44. package/es/components/masthead/masthead-cart.js +15 -71
  45. package/es/components/masthead/masthead-cart.js.map +1 -1
  46. package/es/components-react/lightbox-media-viewer/lightbox-media-viewer.d.ts +1 -0
  47. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"lightbox-media-viewer-body.js","names":["html","LitElement","FocusMixin","settings","styles","stablePrefix","c4dPrefix","C4DLightboxMediaViewerBody","render","_t","_","_renderMedia","_renderTitle","_renderDescription","_defineProperty"],"sources":["components/lightbox-media-viewer/lightbox-media-viewer-body.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 { html, LitElement, TemplateResult } from 'lit';\nimport FocusMixin from '@carbon/web-components/es/globals/mixins/focus.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport styles from './lightbox-media-viewer.scss';\n\nconst { stablePrefix: c4dPrefix } = settings;\n\n/**\n * Media viewer modal body.\n */\nabstract class C4DLightboxMediaViewerBody extends FocusMixin(LitElement) {\n /**\n * @returns The description content.\n */\n abstract _renderDescription(): TemplateResult | string | void;\n\n /**\n * @returns The media content.\n */\n abstract _renderMedia(): TemplateResult | string | void;\n\n /**\n * @returns The title content.\n */\n abstract _renderTitle(): TemplateResult | string | void;\n\n render() {\n return html`\n <div\n class=\"${c4dPrefix}--lightbox-media-viewer__container\"\n part=\"container\">\n <div class=\"${c4dPrefix}--lightbox-media-viewer__row\" part=\"row\">\n <div class=\"${c4dPrefix}--lightbox-media-viewer__media\" part=\"media\">\n ${this._renderMedia()}\n </div>\n <div\n class=\"${c4dPrefix}--lightbox-media-viewer__media-description\"\n part=\"content-wrapper\">\n <div\n class=\"${c4dPrefix}--lightbox-media-viewer__content\"\n part=\"content\">\n <div\n part=\"title\"\n class=\"${c4dPrefix}--lightbox-media-viewer__content__title\"\n data-autoid=\"${c4dPrefix}--lightbox-media-viewer__content__title\">\n ${this._renderTitle()}\n </div>\n <div\n part=\"description\"\n class=\"${c4dPrefix}--lightbox-media-viewer__content__desc\"\n data-autoid=\"${c4dPrefix}--lightbox-media-viewer__content__desc\">\n ${this._renderDescription()}\n </div>\n </div>\n </div>\n </div>\n </div>\n `;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DLightboxMediaViewerBody;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,UAAU,QAAwB,KAAK;AACtD,OAAOC,UAAU,MAAM,mDAAmD;AAC1E,OAAOC,QAAQ,MAAM,+DAA+D;AACpF,OAAOC,MAAM,MAAM,kCAA8B;AAEjD,MAAM;EAAEC,YAAY,EAAEC;AAAU,CAAC,GAAGH,QAAQ;;AAE5C;AACA;AACA;AACA,MAAeI,0BAA0B,SAASL,UAAU,CAACD,UAAU,CAAC,CAAC;EACvE;AACF;AACA;;EAGE;AACF;AACA;;EAGE;AACF;AACA;;EAGEO,MAAMA,CAAA,EAAG;IACP,OAAOR,IAAI,CAAAS,EAAA,KAAAA,EAAA,GAAAC,CAAA;AACf;AACA,iBAFe;AACf;AACA,sBAFe;AACf,wBADe;AACf,cADe;AACf;AACA;AACA,qBAHe;AACf;AACA;AACA,uBAHe;AACf;AACA;AACA;AACA,yBAJe;AACf,+BADe;AACf,kBADe;AACf;AACA;AACA;AACA,yBAJe;AACf,+BADe;AACf,kBADe;AACf;AACA;AACA;AACA;AACA;AACA,KANe,GAEEJ,SAAS,EAEJA,SAAS,EACPA,SAAS,EACnB,IAAI,CAACK,YAAY,CAAC,CAAC,EAGZL,SAAS,EAGPA,SAAS,EAIPA,SAAS,EACHA,SAAS,EACtB,IAAI,CAACM,YAAY,CAAC,CAAC,EAIZN,SAAS,EACHA,SAAS,EACtB,IAAI,CAACO,kBAAkB,CAAC,CAAC;EAOzC;;EAEwB;AAC1B;;AAEA;AAAAC,eAAA,CArDeP,0BAA0B,YAkDvBH,MAAM;AAIxB,eAAeG,0BAA0B","ignoreList":[]}
1
+ {"version":3,"file":"lightbox-media-viewer-body.js","names":["html","LitElement","FocusMixin","settings","styles","stablePrefix","c4dPrefix","C4DLightboxMediaViewerBody","_renderCTAs","_t","_","render","_t2","_renderMedia","_renderTitle","_renderDescription","_defineProperty"],"sources":["components/lightbox-media-viewer/lightbox-media-viewer-body.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2026\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 { html, LitElement, TemplateResult } from 'lit';\nimport FocusMixin from '@carbon/web-components/es/globals/mixins/focus.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport styles from './lightbox-media-viewer.scss';\n\nconst { stablePrefix: c4dPrefix } = settings;\n\n/**\n * Media viewer modal body.\n */\nabstract class C4DLightboxMediaViewerBody extends FocusMixin(LitElement) {\n /**\n * @returns The description content.\n */\n abstract _renderDescription(): TemplateResult | string | void;\n\n /**\n * @returns The media content.\n */\n abstract _renderMedia(): TemplateResult | string | void;\n\n /**\n * @returns The title content.\n */\n abstract _renderTitle(): TemplateResult | string | void;\n\n /**\n * @returns The CTA content.\n */\n _renderCTAs(): TemplateResult | string | void {\n return html`<slot name=\"cta\"></slot>`;\n }\n\n render() {\n return html`\n <div\n class=\"${c4dPrefix}--lightbox-media-viewer__container\"\n part=\"container\">\n <div class=\"${c4dPrefix}--lightbox-media-viewer__row\" part=\"row\">\n <div class=\"${c4dPrefix}--lightbox-media-viewer__media\" part=\"media\">\n ${this._renderMedia()}\n </div>\n <div\n class=\"${c4dPrefix}--lightbox-media-viewer__media-description\"\n part=\"content-wrapper\">\n <div\n class=\"${c4dPrefix}--lightbox-media-viewer__content\"\n part=\"content\">\n <div\n part=\"title\"\n class=\"${c4dPrefix}--lightbox-media-viewer__content__title\"\n data-autoid=\"${c4dPrefix}--lightbox-media-viewer__content__title\">\n ${this._renderTitle()}\n </div>\n <div\n part=\"description\"\n class=\"${c4dPrefix}--lightbox-media-viewer__content__desc\"\n data-autoid=\"${c4dPrefix}--lightbox-media-viewer__content__desc\">\n ${this._renderDescription()}\n </div>\n <div\n part=\"cta\"\n class=\"${c4dPrefix}--lightbox-media-viewer__content__cta\"\n data-autoid=\"${c4dPrefix}--lightbox-media-viewer__content__cta\">\n ${this._renderCTAs()}\n </div>\n </div>\n </div>\n </div>\n </div>\n `;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DLightboxMediaViewerBody;\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,UAAU,QAAwB,KAAK;AACtD,OAAOC,UAAU,MAAM,mDAAmD;AAC1E,OAAOC,QAAQ,MAAM,+DAA+D;AACpF,OAAOC,MAAM,MAAM,kCAA8B;AAEjD,MAAM;EAAEC,YAAY,EAAEC;AAAU,CAAC,GAAGH,QAAQ;;AAE5C;AACA;AACA;AACA,MAAeI,0BAA0B,SAASL,UAAU,CAACD,UAAU,CAAC,CAAC;EACvE;AACF;AACA;;EAGE;AACF;AACA;;EAGE;AACF;AACA;;EAGE;AACF;AACA;EACEO,WAAWA,CAAA,EAAmC;IAC5C,OAAOR,IAAI,CAAAS,EAAA,KAAAA,EAAA,GAAAC,CAAA;EACb;EAEAC,MAAMA,CAAA,EAAG;IACP,OAAOX,IAAI,CAAAY,GAAA,KAAAA,GAAA,GAAAF,CAAA;AACf;AACA,iBAFe;AACf;AACA,sBAFe;AACf,wBADe;AACf,cADe;AACf;AACA;AACA,qBAHe;AACf;AACA;AACA,uBAHe;AACf;AACA;AACA;AACA,yBAJe;AACf,+BADe;AACf,kBADe;AACf;AACA;AACA;AACA,yBAJe;AACf,+BADe;AACf,kBADe;AACf;AACA;AACA;AACA,yBAJe;AACf,+BADe;AACf,kBADe;AACf;AACA;AACA;AACA;AACA;AACA,KANe,GAEEJ,SAAS,EAEJA,SAAS,EACPA,SAAS,EACnB,IAAI,CAACO,YAAY,CAAC,CAAC,EAGZP,SAAS,EAGPA,SAAS,EAIPA,SAAS,EACHA,SAAS,EACtB,IAAI,CAACQ,YAAY,CAAC,CAAC,EAIZR,SAAS,EACHA,SAAS,EACtB,IAAI,CAACS,kBAAkB,CAAC,CAAC,EAIlBT,SAAS,EACHA,SAAS,EACtB,IAAI,CAACE,WAAW,CAAC,CAAC;EAOlC;;EAEwB;AAC1B;;AAEA;AAAAQ,eAAA,CAlEeT,0BAA0B,YA+DvBH,MAAM;AAIxB,eAAeG,0BAA0B","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2020, 2024
4
+ * Copyright IBM Corp. 2020, 2026
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -13,6 +13,7 @@ import C4DLightboxMediaViewerBody from './lightbox-media-viewer-body';
13
13
  * @element c4d-lightbox-media-viewer
14
14
  * @slot title - The title content.
15
15
  * @slot description - The description content.
16
+ * @slot cta - The CTA content.
16
17
  * @csspart container - The wrapper around the lightbox media. Usage: `c4d-lightbox-video-player::part(container)`
17
18
  * @csspart row - The wrapper around the row. Usage: `c4d-lightbox-video-player::part(row)`
18
19
  * @csspart media - The wrapper around media. Usage: `c4d-lightbox-video-player::part(media)`
@@ -26,6 +27,7 @@ declare class C4DLightboxMediaViewer extends C4DLightboxMediaViewerBody {
26
27
  _renderDescription(): import("lit-html").TemplateResult<1>;
27
28
  _renderMedia(): import("lit-html").TemplateResult<1>;
28
29
  _renderTitle(): import("lit-html").TemplateResult<1>;
30
+ _renderCTAs(): import("lit-html").TemplateResult<1>;
29
31
  private _mediaItem?;
30
32
  private _mediaWindow;
31
33
  private _containingCarousel?;
@@ -4,12 +4,13 @@ import _get from "@babel/runtime/helpers/esm/get";
4
4
  let _ = t => t,
5
5
  _t,
6
6
  _t2,
7
- _t3;
7
+ _t3,
8
+ _t4;
8
9
  function _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
9
10
  /**
10
11
  * @license
11
12
  *
12
- * Copyright IBM Corp. 2020, 2024
13
+ * Copyright IBM Corp. 2020, 2026
13
14
  *
14
15
  * This source code is licensed under the Apache-2.0 license found in the
15
16
  * LICENSE file in the root directory of this source tree.
@@ -32,6 +33,7 @@ const {
32
33
  * @element c4d-lightbox-media-viewer
33
34
  * @slot title - The title content.
34
35
  * @slot description - The description content.
36
+ * @slot cta - The CTA content.
35
37
  * @csspart container - The wrapper around the lightbox media. Usage: `c4d-lightbox-video-player::part(container)`
36
38
  * @csspart row - The wrapper around the row. Usage: `c4d-lightbox-video-player::part(row)`
37
39
  * @csspart media - The wrapper around media. Usage: `c4d-lightbox-video-player::part(media)`
@@ -80,6 +82,12 @@ let C4DLightboxMediaViewer = _decorate([customElement(`${c4dPrefix}-lightbox-med
80
82
  >
81
83
  `), title);
82
84
  }
85
+ }, {
86
+ kind: "method",
87
+ key: "_renderCTAs",
88
+ value: function _renderCTAs() {
89
+ return html(_t4 || (_t4 = _` <slot name="cta"></slot> `));
90
+ }
83
91
  }, {
84
92
  kind: "field",
85
93
  decorators: [query(`.${c4dPrefix}--lightbox-media-viewer__media`)],
@@ -1 +1 @@
1
- {"version":3,"file":"lightbox-media-viewer.js","names":["html","property","query","settings","C4DLightboxMediaViewerBody","C4DVideoPlayerContainer","C4DExpressiveModal","carbonElement","customElement","stablePrefix","c4dPrefix","C4DLightboxMediaViewer","_decorate","_initialize","_C4DLightboxMediaView","constructor","args","F","d","kind","key","value","_renderDescription","description","_t","_","_renderMedia","_t2","_handleSlotChange","_renderTitle","title","_t3","decorators","event","_containingModal","containingModal","media","target","assignedNodes","_mediaItem","_intersectionObserver","IntersectionObserver","disconnect","undefined","_boundModalClosedHandler","removeEventListener","eventBeforeClose","_mediaWindow","mediaWindow","_containingCarousel","containingCarousel","callback","_handleOutOfCarouselView","bind","root","rootMargin","threshold","observe","_handleModalClosed","addEventListener","entries","forEach","entry","intersectionRatio","_pauseVideo","mediaItem","pauseAllVideos","connectedCallback","_superPropGet","closest","update","changedProperties","videoId","caption","hideCaption","thumbnail","innerHTML","alt","defaultSrc","attribute","static"],"sources":["components/lightbox-media-viewer/lightbox-media-viewer.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 { html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport C4DLightboxMediaViewerBody from './lightbox-media-viewer-body';\nimport C4DVideoPlayerContainer from '../video-player/video-player-container';\nimport C4DCarousel from '../carousel/carousel';\nimport C4DExpressiveModal from '../expressive-modal/expressive-modal';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\n\nconst { stablePrefix: c4dPrefix } = settings;\n\n/**\n * The image content of lightbox media viewer.\n *\n * @element c4d-lightbox-media-viewer\n * @slot title - The title content.\n * @slot description - The description content.\n * @csspart container - The wrapper around the lightbox media. Usage: `c4d-lightbox-video-player::part(container)`\n * @csspart row - The wrapper around the row. Usage: `c4d-lightbox-video-player::part(row)`\n * @csspart media - The wrapper around media. Usage: `c4d-lightbox-video-player::part(media)`\n * @csspart content-wrapper - The wrapper around content. Usage: `c4d-lightbox-video-player::part(content-wrapper)`\n * @csspart content - The inner wrapper around content. Usage: `c4d-lightbox-video-player::part(content)`\n * @csspart title - The title of the media. Usage: `c4d-lightbox-video-player::part(title)`\n * @csspart description - The description of the media. Usage: `c4d-lightbox-video-player::part(description)`\n * @csspart h2 - The h2 element that holds the title. Usage: `c4d-lightbox-video-player::part(h2)`\n */\n@customElement(`${c4dPrefix}-lightbox-media-viewer`)\nclass C4DLightboxMediaViewer extends C4DLightboxMediaViewerBody {\n _renderDescription() {\n const { description } = this;\n return html` <slot name=\"description\">${description}</slot> `;\n }\n\n _renderMedia() {\n return html`\n <slot name=\"media\" @slotchange=\"${this._handleSlotChange}\"></slot>\n `;\n }\n\n _renderTitle() {\n const { title } = this;\n return html`\n <slot name=\"title\"\n ><h2 part=\"h2\" style=\"all: inherit;\">${title}</h2></slot\n >\n `;\n }\n\n private _mediaItem?: HTMLElement;\n\n @query(`.${c4dPrefix}--lightbox-media-viewer__media`)\n private _mediaWindow!: HTMLDivElement;\n\n private _containingCarousel?: C4DCarousel;\n\n private _containingModal?: C4DExpressiveModal;\n\n private _handleSlotChange(event: Event) {\n const { _containingModal: containingModal } = this;\n const [media] = (event.target as HTMLSlotElement).assignedNodes();\n this._mediaItem = media as HTMLImageElement | C4DVideoPlayerContainer;\n\n // Disconnect & delete intersection observer\n if (this._intersectionObserver instanceof IntersectionObserver) {\n this._intersectionObserver.disconnect();\n this._intersectionObserver = undefined;\n }\n\n // Remove modal closed listeners from the containing modal\n if (containingModal && this._boundModalClosedHandler) {\n containingModal.removeEventListener(\n C4DExpressiveModal.eventBeforeClose,\n this._boundModalClosedHandler\n );\n this._boundModalClosedHandler = undefined;\n }\n\n if (media instanceof C4DVideoPlayerContainer) {\n const {\n _mediaWindow: mediaWindow,\n _containingCarousel: containingCarousel,\n } = this;\n\n // Watch for out-of-view if we're in a carousel\n if (mediaWindow && containingCarousel) {\n const callback = this._handleOutOfCarouselView.bind(this);\n this._intersectionObserver = new IntersectionObserver(callback, {\n root: containingCarousel,\n rootMargin: '999px 0px 999px 0px',\n threshold: 1,\n });\n\n this._intersectionObserver.observe(mediaWindow);\n }\n\n // Watch for modal close\n if (containingModal) {\n this._boundModalClosedHandler = this._handleModalClosed.bind(this);\n\n containingModal.addEventListener(\n C4DExpressiveModal.eventBeforeClose,\n this._boundModalClosedHandler\n );\n }\n }\n }\n\n private _intersectionObserver?: IntersectionObserver;\n\n private _handleOutOfCarouselView(entries) {\n entries.forEach((entry) => {\n if (entry.intersectionRatio < 1) {\n this._pauseVideo();\n }\n });\n }\n\n private _handleModalClosed() {\n this._pauseVideo();\n }\n\n private _pauseVideo() {\n const { _mediaItem: mediaItem } = this;\n\n if (mediaItem instanceof C4DVideoPlayerContainer) {\n mediaItem.pauseAllVideos();\n }\n }\n\n _boundModalClosedHandler?: EventListenerOrEventListenerObject;\n\n connectedCallback() {\n super.connectedCallback();\n\n this._containingCarousel =\n (this.closest(`${c4dPrefix}-carousel`) as C4DCarousel) || undefined;\n this._containingModal =\n (this.closest(`${c4dPrefix}-expressive-modal`) as C4DExpressiveModal) ||\n undefined;\n }\n\n update(changedProperties) {\n if (this.videoId) {\n const { videoId, caption, hideCaption, thumbnail } = this;\n this.innerHTML = `\n <c4d-video-player-container\n playing-mode=\"inline\"\n video-id=\"${videoId}\"\n caption=\"${caption}\"\n ?hide-caption=\"${hideCaption}\"\n thumbnail=\"${thumbnail}\"\n slot=\"media\"\n ></c4d-video-player-container>\n `;\n } else {\n const { alt, defaultSrc } = this;\n this.innerHTML = `\n <img\n class=\"${c4dPrefix}--image__img\"\n alt=\"${alt}\"\n src=\"${defaultSrc}\"\n loading=\"lazy\"\n slot=\"media\"\n style=\"max-width:100%;max-height:100%\"\n />\n `;\n }\n super.update(changedProperties);\n }\n\n /**\n * The alternate text.\n */\n @property()\n alt = '';\n\n /**\n * The image source.\n */\n @property({ attribute: 'default-src' })\n defaultSrc = '';\n\n /**\n * The media description.\n */\n @property()\n description = '';\n\n /**\n * The media title.\n */\n @property()\n title = '';\n\n @property({ attribute: 'video-id' })\n videoId = '';\n\n @property()\n caption = '';\n\n @property()\n hideCaption = false;\n\n @property()\n thumbnail = '';\n\n /**\n * The name of the custom event fired before this modal is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this modal.\n */\n static get eventBeforeModalClose() {\n return `${c4dPrefix}-expressive-modal-beingclosed`;\n }\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DLightboxMediaViewer;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"lightbox-media-viewer.js","names":["html","property","query","settings","C4DLightboxMediaViewerBody","C4DVideoPlayerContainer","C4DExpressiveModal","carbonElement","customElement","stablePrefix","c4dPrefix","C4DLightboxMediaViewer","_decorate","_initialize","_C4DLightboxMediaView","constructor","args","F","d","kind","key","value","_renderDescription","description","_t","_","_renderMedia","_t2","_handleSlotChange","_renderTitle","title","_t3","_renderCTAs","_t4","decorators","event","_containingModal","containingModal","media","target","assignedNodes","_mediaItem","_intersectionObserver","IntersectionObserver","disconnect","undefined","_boundModalClosedHandler","removeEventListener","eventBeforeClose","_mediaWindow","mediaWindow","_containingCarousel","containingCarousel","callback","_handleOutOfCarouselView","bind","root","rootMargin","threshold","observe","_handleModalClosed","addEventListener","entries","forEach","entry","intersectionRatio","_pauseVideo","mediaItem","pauseAllVideos","connectedCallback","_superPropGet","closest","update","changedProperties","videoId","caption","hideCaption","thumbnail","innerHTML","alt","defaultSrc","attribute","static"],"sources":["components/lightbox-media-viewer/lightbox-media-viewer.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2026\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 { html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport C4DLightboxMediaViewerBody from './lightbox-media-viewer-body';\nimport C4DVideoPlayerContainer from '../video-player/video-player-container';\nimport C4DCarousel from '../carousel/carousel';\nimport C4DExpressiveModal from '../expressive-modal/expressive-modal';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\n\nconst { stablePrefix: c4dPrefix } = settings;\n\n/**\n * The image content of lightbox media viewer.\n *\n * @element c4d-lightbox-media-viewer\n * @slot title - The title content.\n * @slot description - The description content.\n * @slot cta - The CTA content.\n * @csspart container - The wrapper around the lightbox media. Usage: `c4d-lightbox-video-player::part(container)`\n * @csspart row - The wrapper around the row. Usage: `c4d-lightbox-video-player::part(row)`\n * @csspart media - The wrapper around media. Usage: `c4d-lightbox-video-player::part(media)`\n * @csspart content-wrapper - The wrapper around content. Usage: `c4d-lightbox-video-player::part(content-wrapper)`\n * @csspart content - The inner wrapper around content. Usage: `c4d-lightbox-video-player::part(content)`\n * @csspart title - The title of the media. Usage: `c4d-lightbox-video-player::part(title)`\n * @csspart description - The description of the media. Usage: `c4d-lightbox-video-player::part(description)`\n * @csspart h2 - The h2 element that holds the title. Usage: `c4d-lightbox-video-player::part(h2)`\n */\n@customElement(`${c4dPrefix}-lightbox-media-viewer`)\nclass C4DLightboxMediaViewer extends C4DLightboxMediaViewerBody {\n _renderDescription() {\n const { description } = this;\n return html` <slot name=\"description\">${description}</slot> `;\n }\n\n _renderMedia() {\n return html`\n <slot name=\"media\" @slotchange=\"${this._handleSlotChange}\"></slot>\n `;\n }\n\n _renderTitle() {\n const { title } = this;\n return html`\n <slot name=\"title\"\n ><h2 part=\"h2\" style=\"all: inherit;\">${title}</h2></slot\n >\n `;\n }\n\n _renderCTAs() {\n return html` <slot name=\"cta\"></slot> `;\n }\n\n private _mediaItem?: HTMLElement;\n\n @query(`.${c4dPrefix}--lightbox-media-viewer__media`)\n private _mediaWindow!: HTMLDivElement;\n\n private _containingCarousel?: C4DCarousel;\n\n private _containingModal?: C4DExpressiveModal;\n\n private _handleSlotChange(event: Event) {\n const { _containingModal: containingModal } = this;\n const [media] = (event.target as HTMLSlotElement).assignedNodes();\n this._mediaItem = media as HTMLImageElement | C4DVideoPlayerContainer;\n\n // Disconnect & delete intersection observer\n if (this._intersectionObserver instanceof IntersectionObserver) {\n this._intersectionObserver.disconnect();\n this._intersectionObserver = undefined;\n }\n\n // Remove modal closed listeners from the containing modal\n if (containingModal && this._boundModalClosedHandler) {\n containingModal.removeEventListener(\n C4DExpressiveModal.eventBeforeClose,\n this._boundModalClosedHandler\n );\n this._boundModalClosedHandler = undefined;\n }\n\n if (media instanceof C4DVideoPlayerContainer) {\n const {\n _mediaWindow: mediaWindow,\n _containingCarousel: containingCarousel,\n } = this;\n\n // Watch for out-of-view if we're in a carousel\n if (mediaWindow && containingCarousel) {\n const callback = this._handleOutOfCarouselView.bind(this);\n this._intersectionObserver = new IntersectionObserver(callback, {\n root: containingCarousel,\n rootMargin: '999px 0px 999px 0px',\n threshold: 1,\n });\n\n this._intersectionObserver.observe(mediaWindow);\n }\n\n // Watch for modal close\n if (containingModal) {\n this._boundModalClosedHandler = this._handleModalClosed.bind(this);\n\n containingModal.addEventListener(\n C4DExpressiveModal.eventBeforeClose,\n this._boundModalClosedHandler\n );\n }\n }\n }\n\n private _intersectionObserver?: IntersectionObserver;\n\n private _handleOutOfCarouselView(entries) {\n entries.forEach((entry) => {\n if (entry.intersectionRatio < 1) {\n this._pauseVideo();\n }\n });\n }\n\n private _handleModalClosed() {\n this._pauseVideo();\n }\n\n private _pauseVideo() {\n const { _mediaItem: mediaItem } = this;\n\n if (mediaItem instanceof C4DVideoPlayerContainer) {\n mediaItem.pauseAllVideos();\n }\n }\n\n _boundModalClosedHandler?: EventListenerOrEventListenerObject;\n\n connectedCallback() {\n super.connectedCallback();\n\n this._containingCarousel =\n (this.closest(`${c4dPrefix}-carousel`) as C4DCarousel) || undefined;\n this._containingModal =\n (this.closest(`${c4dPrefix}-expressive-modal`) as C4DExpressiveModal) ||\n undefined;\n }\n\n update(changedProperties) {\n if (this.videoId) {\n const { videoId, caption, hideCaption, thumbnail } = this;\n this.innerHTML = `\n <c4d-video-player-container\n playing-mode=\"inline\"\n video-id=\"${videoId}\"\n caption=\"${caption}\"\n ?hide-caption=\"${hideCaption}\"\n thumbnail=\"${thumbnail}\"\n slot=\"media\"\n ></c4d-video-player-container>\n `;\n } else {\n const { alt, defaultSrc } = this;\n this.innerHTML = `\n <img\n class=\"${c4dPrefix}--image__img\"\n alt=\"${alt}\"\n src=\"${defaultSrc}\"\n loading=\"lazy\"\n slot=\"media\"\n style=\"max-width:100%;max-height:100%\"\n />\n `;\n }\n super.update(changedProperties);\n }\n\n /**\n * The alternate text.\n */\n @property()\n alt = '';\n\n /**\n * The image source.\n */\n @property({ attribute: 'default-src' })\n defaultSrc = '';\n\n /**\n * The media description.\n */\n @property()\n description = '';\n\n /**\n * The media title.\n */\n @property()\n title = '';\n\n @property({ attribute: 'video-id' })\n videoId = '';\n\n @property()\n caption = '';\n\n @property()\n hideCaption = false;\n\n @property()\n thumbnail = '';\n\n /**\n * The name of the custom event fired before this modal is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this modal.\n */\n static get eventBeforeModalClose() {\n return `${c4dPrefix}-expressive-modal-beingclosed`;\n }\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DLightboxMediaViewer;\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2020, 2024
4
+ * Copyright IBM Corp. 2020, 2026
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -9,7 +9,7 @@ function _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prot
9
9
  /**
10
10
  * @license
11
11
  *
12
- * Copyright IBM Corp. 2020, 2024
12
+ * Copyright IBM Corp. 2020, 2026
13
13
  *
14
14
  * This source code is licensed under the Apache-2.0 license found in the
15
15
  * LICENSE file in the root directory of this source tree.
@@ -86,9 +86,22 @@ let C4DLightboxVideoPlayer = _decorate([customElement(`${c4dPrefix}-lightbox-vid
86
86
  const {
87
87
  duration,
88
88
  formatCaption,
89
- formatDuration,
90
89
  name
91
90
  } = this;
91
+ let formattedDuration = '';
92
+ if (duration != null) {
93
+ const totalSeconds = Math.floor(duration);
94
+ const hours = Math.floor(totalSeconds / 3600);
95
+ const minutes = Math.floor(totalSeconds % 3600 / 60);
96
+ const seconds = totalSeconds % 60;
97
+ if (hours > 0) {
98
+ // format as HH:MM:SS
99
+ formattedDuration = `${hours}:${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;
100
+ } else {
101
+ // formatt as MM:SS
102
+ formattedDuration = `${minutes}:${String(seconds).padStart(2, '0')}`;
103
+ }
104
+ }
92
105
  return html(_t3 || (_t3 = _`
93
106
  <slot name="title">
94
107
  <h2 style="all: inherit;" part="h2">
@@ -96,9 +109,7 @@ let C4DLightboxVideoPlayer = _decorate([customElement(`${c4dPrefix}-lightbox-vid
96
109
  </h2>
97
110
  </slot>
98
111
  `), formatCaption({
99
- duration: formatDuration({
100
- duration: !duration ? duration : duration * 1000
101
- }),
112
+ duration: formattedDuration,
102
113
  name
103
114
  }));
104
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lightbox-video-player.js","names":["html","property","removeHtmlTagEntities","settings","formatVideoCaption","formatVideoDuration","C4DLightboxMediaViewerBody","carbonElement","customElement","stablePrefix","c4dPrefix","C4DLightboxVideoPlayer","_decorate","_initialize","_C4DLightboxMediaView","constructor","args","F","d","kind","key","value","_renderDescription","description","_t","_","_renderMedia","_t2","_renderTitle","duration","formatCaption","formatDuration","name","_t3","updated","changedProperties","has","setAttribute","connectedCallback","_superPropGet","decorators","type","Number","attribute"],"sources":["components/lightbox-media-viewer/lightbox-video-player.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 { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport removeHtmlTagEntities from '@carbon/ibmdotcom-utilities/es/utilities/removeHtmlTagEntities/removeHtmlTagEntities.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport {\n formatVideoCaption,\n formatVideoDuration,\n} from '@carbon/ibmdotcom-utilities/es/utilities/formatVideoCaption/formatVideoCaption.js';\nimport C4DLightboxMediaViewerBody from './lightbox-media-viewer-body';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\n\nconst { stablePrefix: c4dPrefix } = settings;\n\n/**\n * The video content of lightbox media viewer.\n *\n * @element c4d-lightbox-video-player\n * @slot title - The title content.\n * @slot description - The description content.\n * @csspart container - The wrapper around the lightbox media. Usage: `c4d-lightbox-video-player::part(container)`\n * @csspart row - The wrapper around the row. Usage: `c4d-lightbox-video-player::part(row)`\n * @csspart media - The wrapper around media. Usage: `c4d-lightbox-video-player::part(media)`\n * @csspart content-wrapper - The wrapper around content. Usage: `c4d-lightbox-video-player::part(content-wrapper)`\n * @csspart content - The inner wrapper around content. Usage: `c4d-lightbox-video-player::part(content)`\n * @csspart title - The title of the media. Usage: `c4d-lightbox-video-player::part(title)`\n * @csspart description - The description of the media. Usage: `c4d-lightbox-video-player::part(description)`\n * @csspart video-player - The wrapper around the video player. Usage: `c4d-lightbox-video-player::part(video-player)`\n * @csspart video-container - The inner wrapper around the slotted video player. Usage: `c4d-lightbox-video-player::part(video-container)`\n * @csspart h2 - The h2 element that holds the title. Usage: `c4d-lightbox-video-player::part(h2)`\n */\n@customElement(`${c4dPrefix}-lightbox-video-player`)\nclass C4DLightboxVideoPlayer extends C4DLightboxMediaViewerBody {\n _renderDescription() {\n const { description } = this;\n return html`\n <slot name=\"description\">${removeHtmlTagEntities(description)}</slot>\n `;\n }\n\n // eslint-disable-next-line class-methods-use-this\n _renderMedia() {\n return html`\n <div class=\"${c4dPrefix}--video-player\" part=\"video-player\">\n <div\n class=\"${c4dPrefix}--video-player__video-container\"\n part=\"video-container\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n _renderTitle() {\n const { duration, formatCaption, formatDuration, name } = this;\n return html`\n <slot name=\"title\">\n <h2 style=\"all: inherit;\" part=\"h2\">\n ${formatCaption({\n duration: formatDuration({\n duration: !duration ? duration : duration * 1000,\n }),\n name,\n })}\n </h2>\n </slot>\n `;\n }\n\n updated(changedProperties) {\n if (changedProperties.has('name')) {\n this.setAttribute('aria-label', this.name);\n }\n }\n\n connectedCallback() {\n this.setAttribute('role', 'dialog');\n super.connectedCallback();\n }\n\n /**\n * The media description.\n */\n @property()\n description = '';\n\n /**\n * The video duration.\n */\n @property({ type: Number })\n duration?: number;\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 = formatVideoCaption;\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 = formatVideoDuration;\n\n /**\n * The video name.\n */\n @property()\n name = '';\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DLightboxVideoPlayer;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"lightbox-video-player.js","names":["html","property","removeHtmlTagEntities","settings","formatVideoCaption","formatVideoDuration","C4DLightboxMediaViewerBody","carbonElement","customElement","stablePrefix","c4dPrefix","C4DLightboxVideoPlayer","_decorate","_initialize","_C4DLightboxMediaView","constructor","args","F","d","kind","key","value","_renderDescription","description","_t","_","_renderMedia","_t2","_renderTitle","duration","formatCaption","name","formattedDuration","totalSeconds","Math","floor","hours","minutes","seconds","String","padStart","_t3","updated","changedProperties","has","setAttribute","connectedCallback","_superPropGet","decorators","type","Number","attribute"],"sources":["components/lightbox-media-viewer/lightbox-video-player.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2026\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 { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport removeHtmlTagEntities from '@carbon/ibmdotcom-utilities/es/utilities/removeHtmlTagEntities/removeHtmlTagEntities.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport {\n formatVideoCaption,\n formatVideoDuration,\n} from '@carbon/ibmdotcom-utilities/es/utilities/formatVideoCaption/formatVideoCaption.js';\nimport C4DLightboxMediaViewerBody from './lightbox-media-viewer-body';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\n\nconst { stablePrefix: c4dPrefix } = settings;\n\n/**\n * The video content of lightbox media viewer.\n *\n * @element c4d-lightbox-video-player\n * @slot title - The title content.\n * @slot description - The description content.\n * @csspart container - The wrapper around the lightbox media. Usage: `c4d-lightbox-video-player::part(container)`\n * @csspart row - The wrapper around the row. Usage: `c4d-lightbox-video-player::part(row)`\n * @csspart media - The wrapper around media. Usage: `c4d-lightbox-video-player::part(media)`\n * @csspart content-wrapper - The wrapper around content. Usage: `c4d-lightbox-video-player::part(content-wrapper)`\n * @csspart content - The inner wrapper around content. Usage: `c4d-lightbox-video-player::part(content)`\n * @csspart title - The title of the media. Usage: `c4d-lightbox-video-player::part(title)`\n * @csspart description - The description of the media. Usage: `c4d-lightbox-video-player::part(description)`\n * @csspart video-player - The wrapper around the video player. Usage: `c4d-lightbox-video-player::part(video-player)`\n * @csspart video-container - The inner wrapper around the slotted video player. Usage: `c4d-lightbox-video-player::part(video-container)`\n * @csspart h2 - The h2 element that holds the title. Usage: `c4d-lightbox-video-player::part(h2)`\n */\n@customElement(`${c4dPrefix}-lightbox-video-player`)\nclass C4DLightboxVideoPlayer extends C4DLightboxMediaViewerBody {\n _renderDescription() {\n const { description } = this;\n return html`\n <slot name=\"description\">${removeHtmlTagEntities(description)}</slot>\n `;\n }\n\n // eslint-disable-next-line class-methods-use-this\n _renderMedia() {\n return html`\n <div class=\"${c4dPrefix}--video-player\" part=\"video-player\">\n <div\n class=\"${c4dPrefix}--video-player__video-container\"\n part=\"video-container\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n _renderTitle() {\n const { duration, formatCaption, name } = this;\n\n let formattedDuration = '';\n\n if (duration != null) {\n const totalSeconds = Math.floor(duration);\n\n const hours = Math.floor(totalSeconds / 3600);\n const minutes = Math.floor((totalSeconds % 3600) / 60);\n const seconds = totalSeconds % 60;\n\n if (hours > 0) {\n // format as HH:MM:SS\n formattedDuration = `${hours}:${String(minutes).padStart(\n 2,\n '0'\n )}:${String(seconds).padStart(2, '0')}`;\n } else {\n // formatt as MM:SS\n formattedDuration = `${minutes}:${String(seconds).padStart(2, '0')}`;\n }\n }\n\n return html`\n <slot name=\"title\">\n <h2 style=\"all: inherit;\" part=\"h2\">\n ${formatCaption({\n duration: formattedDuration,\n name,\n })}\n </h2>\n </slot>\n `;\n }\n\n updated(changedProperties) {\n if (changedProperties.has('name')) {\n this.setAttribute('aria-label', this.name);\n }\n }\n\n connectedCallback() {\n this.setAttribute('role', 'dialog');\n super.connectedCallback();\n }\n\n /**\n * The media description.\n */\n @property()\n description = '';\n\n /**\n * The video duration.\n */\n @property({ type: Number })\n duration?: number;\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 = formatVideoCaption;\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 = formatVideoDuration;\n\n /**\n * The video name.\n */\n @property()\n name = '';\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DLightboxVideoPlayer;\n"],"mappings":"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","ignoreList":[]}
@@ -371,19 +371,6 @@ declare class C4DMastheadCart extends C4DMastheadCart_base {
371
371
  cc: string;
372
372
  };
373
373
  connectedCallback(): void;
374
- disconnectedCallback(): void;
375
- /**
376
- * Updates cart state
377
- */
378
- updateCart: () => void;
379
- /**
380
- * Checks if the user has an active cart and retries a few times if the cart cookie is not available yet.
381
- */
382
- checkCartWithRetry(retries?: number, delay?: number): void;
383
- /**
384
- * Filter the correct checkout URL based on locale and country code.
385
- */
386
- handleURL(cc: string, lc: string): string;
387
374
  updated(changedProperties: any): void;
388
375
  render(): import("lit-html").TemplateResult<1>;
389
376
  static get stableSelector(): string;
@@ -93,81 +93,14 @@ let C4DMastheadCart = _decorate([customElement(`${c4dPrefix}-masthead-cart`)], f
93
93
 
94
94
  function connectedCallback() {
95
95
  _superPropGet(C4DMastheadCart, "connectedCallback", this, 3)([]);
96
+ // Check the relevant cookie for whether the user has an active cart.
97
+ this.hasActiveCart = SAPCommerceAPI.hasActiveCart();
96
98
 
97
- // Initial check
98
- this.updateCart();
99
-
100
- // Fallback retry
101
- this.checkCartWithRetry();
102
-
103
- // Listen for cross-tab updates
104
- window.addEventListener('storage', this.updateCart);
105
-
106
- // Fetch locale
99
+ // Fetch the locale for the page.
107
100
  LocaleAPI.getLocale().then(locale => {
108
101
  this.locale = locale;
109
102
  });
110
103
  }
111
- }, {
112
- kind: "method",
113
- key: "disconnectedCallback",
114
- value: function disconnectedCallback() {
115
- _superPropGet(C4DMastheadCart, "disconnectedCallback", this, 3)([]);
116
- window.removeEventListener('storage', this.updateCart);
117
- }
118
-
119
- /**
120
- * Updates cart state
121
- */
122
- }, {
123
- kind: "field",
124
- key: "updateCart",
125
- value() {
126
- return () => {
127
- const hasCart = SAPCommerceAPI.hasActiveCart();
128
- this.hasActiveCart = hasCart;
129
- };
130
- }
131
- }, {
132
- kind: "method",
133
- key: "checkCartWithRetry",
134
- value:
135
- /**
136
- * Checks if the user has an active cart and retries a few times if the cart cookie is not available yet.
137
- */
138
- function checkCartWithRetry(retries = 5, delay = 200) {
139
- const check = () => {
140
- const hasCart = SAPCommerceAPI.hasActiveCart();
141
- if (hasCart) {
142
- this.hasActiveCart = true;
143
- return;
144
- }
145
- if (retries > 0) {
146
- retries--;
147
- setTimeout(check, delay);
148
- }
149
- };
150
- check();
151
- }
152
-
153
- /**
154
- * Filter the correct checkout URL based on locale and country code.
155
- */
156
- }, {
157
- kind: "method",
158
- key: "handleURL",
159
- value: function handleURL(cc, lc) {
160
- switch (cc) {
161
- case 'uk':
162
- return `/store/en/gb/checkout`;
163
- case 'ae':
164
- return `/store/en/ae/checkout`;
165
- case 'sa':
166
- return `/store/en/sa/checkout`;
167
- default:
168
- return `/store/${lc}/${cc}/checkout`;
169
- }
170
- }
171
104
  }, {
172
105
  kind: "method",
173
106
  key: "updated",
@@ -191,6 +124,17 @@ let C4DMastheadCart = _decorate([customElement(`${c4dPrefix}-masthead-cart`)], f
191
124
  lc
192
125
  }
193
126
  } = this;
127
+ let href;
128
+ if (cc === 'uk') {
129
+ href = '/store/en/gb/checkout';
130
+ } else if (cc === 'ae') {
131
+ href = '/store/en/ae/checkout';
132
+ } else if (cc === 'sa') {
133
+ href = '/store/en/sa/checkout';
134
+ } else {
135
+ href = `/store/${lc}/${cc}/checkout`;
136
+ }
137
+ console.log(href);
194
138
  return html(_t || (_t = _`
195
139
  <a
196
140
  part="cart-link"
@@ -199,7 +143,7 @@ let C4DMastheadCart = _decorate([customElement(`${c4dPrefix}-masthead-cart`)], f
199
143
  aria-label="${0}"
200
144
  >${0}</a
201
145
  >
202
- `), this.handleURL(cc, lc), prefix, prefix, linkLabel, ShoppingCart20());
146
+ `), href, prefix, prefix, linkLabel, ShoppingCart20());
203
147
  }
204
148
  }, {
205
149
  kind: "get",
@@ -1 +1 @@
1
- {"version":3,"file":"masthead-cart.js","names":["StableSelectorMixin","html","LitElement","property","state","settings","carbonElement","customElement","ShoppingCart20","styles","LocaleAPI","SAPCommerceAPI","prefix","stablePrefix","c4dPrefix","C4DMastheadCart","_decorate","_initialize","_StableSelectorMixin","constructor","args","F","d","kind","decorators","attribute","key","value","lc","cc","connectedCallback","_superPropGet","updateCart","checkCartWithRetry","window","addEventListener","getLocale","then","locale","disconnectedCallback","removeEventListener","hasCart","hasActiveCart","retries","delay","check","setTimeout","handleURL","updated","changedProperties","has","hidden","render","linkLabel","_t","_","static"],"sources":["components/masthead/masthead-cart.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2024, 2026\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 StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport { html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport ShoppingCart20 from '@carbon/web-components/es/icons/shopping--cart/20.js';\nimport styles from './masthead.scss';\nimport LocaleAPI from '@carbon/ibmdotcom-services/es/services/Locale/Locale.js';\nimport SAPCommerceAPI from '@carbon/ibmdotcom-services/es/services/SAPCommerce/SAPCommerce.js';\n\nconst { prefix, stablePrefix: c4dPrefix } = settings;\n\n/**\n * The Cart icon in the masthead.\n *\n * @element c4d-masthead-cart\n * @csspart cart-link - The masthead cart link. Usage: `c4d-masthead-cart::part(cart-link)`\n */\n@customElement(`${c4dPrefix}-masthead-cart`)\nclass C4DMastheadCart extends StableSelectorMixin(LitElement) {\n /**\n * The `aria-label` attribute for the link.\n */\n @property({ attribute: 'link-label' })\n linkLabel = 'Cart';\n\n /**\n * Tracks whether the user has an active cart to control the display.\n */\n @state()\n hasActiveCart = false;\n\n /**\n * Store the locale. Defaults to en-us.\n */\n @state()\n locale = { lc: 'en', cc: 'us' };\n\n connectedCallback() {\n super.connectedCallback();\n\n // Initial check\n this.updateCart();\n\n // Fallback retry\n this.checkCartWithRetry();\n\n // Listen for cross-tab updates\n window.addEventListener('storage', this.updateCart);\n\n // Fetch locale\n LocaleAPI.getLocale().then((locale) => {\n this.locale = locale;\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('storage', this.updateCart);\n }\n\n /**\n * Updates cart state\n */\n updateCart = () => {\n const hasCart = SAPCommerceAPI.hasActiveCart();\n this.hasActiveCart = hasCart;\n };\n\n /**\n * Checks if the user has an active cart and retries a few times if the cart cookie is not available yet.\n */\n checkCartWithRetry(retries = 5, delay = 200) {\n const check = () => {\n const hasCart = SAPCommerceAPI.hasActiveCart();\n\n if (hasCart) {\n this.hasActiveCart = true;\n return;\n }\n\n if (retries > 0) {\n retries--;\n setTimeout(check, delay);\n }\n };\n\n check();\n }\n\n /**\n * Filter the correct checkout URL based on locale and country code.\n */\n handleURL(cc: string, lc: string) {\n switch (cc) {\n case 'uk':\n return `/store/en/gb/checkout`;\n case 'ae':\n return `/store/en/ae/checkout`;\n case 'sa':\n return `/store/en/sa/checkout`;\n default:\n return `/store/${lc}/${cc}/checkout`;\n }\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n const { hasActiveCart } = this;\n if (changedProperties.has('hasActiveCart')) {\n this.hidden = !hasActiveCart;\n }\n }\n\n render() {\n const {\n linkLabel,\n locale: { cc, lc },\n } = this;\n\n return html`\n <a\n part=\"cart-link\"\n href=\"${this.handleURL(cc, lc)}\"\n class=\"${prefix}--header__menu-item ${prefix}--header__menu-title\"\n aria-label=\"${linkLabel}\"\n >${ShoppingCart20()}</a\n >\n `;\n }\n\n static get stableSelector() {\n return `${c4dPrefix}--masthead-cart`;\n }\n\n static styles = styles;\n}\n\nexport default C4DMastheadCart;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"masthead-cart.js","names":["StableSelectorMixin","html","LitElement","property","state","settings","carbonElement","customElement","ShoppingCart20","styles","LocaleAPI","SAPCommerceAPI","prefix","stablePrefix","c4dPrefix","C4DMastheadCart","_decorate","_initialize","_StableSelectorMixin","constructor","args","F","d","kind","decorators","attribute","key","value","lc","cc","connectedCallback","_superPropGet","hasActiveCart","getLocale","then","locale","updated","changedProperties","has","hidden","render","linkLabel","href","console","log","_t","_","static"],"sources":["components/masthead/masthead-cart.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2024, 2026\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 StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport { html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport ShoppingCart20 from '@carbon/web-components/es/icons/shopping--cart/20.js';\nimport styles from './masthead.scss';\nimport LocaleAPI from '@carbon/ibmdotcom-services/es/services/Locale/Locale.js';\nimport SAPCommerceAPI from '@carbon/ibmdotcom-services/es/services/SAPCommerce/SAPCommerce.js';\n\nconst { prefix, stablePrefix: c4dPrefix } = settings;\n\n/**\n * The Cart icon in the masthead.\n *\n * @element c4d-masthead-cart\n * @csspart cart-link - The masthead cart link. Usage: `c4d-masthead-cart::part(cart-link)`\n */\n@customElement(`${c4dPrefix}-masthead-cart`)\nclass C4DMastheadCart extends StableSelectorMixin(LitElement) {\n /**\n * The `aria-label` attribute for the link.\n */\n @property({ attribute: 'link-label' })\n linkLabel = 'Cart';\n\n /**\n * Tracks whether the user has an active cart to control the display.\n */\n @state()\n hasActiveCart = false;\n\n /**\n * Store the locale. Defaults to en-us.\n */\n @state()\n locale = { lc: 'en', cc: 'us' };\n\n connectedCallback() {\n super.connectedCallback();\n // Check the relevant cookie for whether the user has an active cart.\n this.hasActiveCart = SAPCommerceAPI.hasActiveCart();\n\n // Fetch the locale for the page.\n LocaleAPI.getLocale().then((locale) => {\n this.locale = locale;\n });\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n const { hasActiveCart } = this;\n if (changedProperties.has('hasActiveCart')) {\n this.hidden = !hasActiveCart;\n }\n }\n\n render() {\n const {\n linkLabel,\n locale: { cc, lc },\n } = this;\n\n let href;\n\n if (cc === 'uk') {\n href = '/store/en/gb/checkout';\n } else if (cc === 'ae') {\n href = '/store/en/ae/checkout';\n } else if (cc === 'sa') {\n href = '/store/en/sa/checkout';\n } else {\n href = `/store/${lc}/${cc}/checkout`;\n }\n\n console.log(href);\n\n return html`\n <a\n part=\"cart-link\"\n href=\"${href}\"\n class=\"${prefix}--header__menu-item ${prefix}--header__menu-title\"\n aria-label=\"${linkLabel}\"\n >${ShoppingCart20()}</a\n >\n `;\n }\n\n static get stableSelector() {\n return `${c4dPrefix}--masthead-cart`;\n }\n\n static styles = styles;\n}\n\nexport default C4DMastheadCart;\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,mBAAmB,MAAM,yCAAsC;AACtE,SAASC,IAAI,EAAEC,UAAU,QAAQ,KAAK;AACtC,SAASC,QAAQ,EAAEC,KAAK,QAAQ,mBAAmB;AACnD,OAAOC,QAAQ,MAAM,+DAA+D;AACpF,SAASC,aAAa,IAAIC,aAAa,QAAQ,gEAAgE;AAC/G,OAAOC,cAAc,MAAM,sDAAsD;AACjF,OAAOC,MAAM,MAAM,qBAAiB;AACpC,OAAOC,SAAS,MAAM,yDAAyD;AAC/E,OAAOC,cAAc,MAAM,mEAAmE;AAE9F,MAAM;EAAEC,MAAM;EAAEC,YAAY,EAAEC;AAAU,CAAC,GAAGT,QAAQ;;AAEpD;AACA;AACA;AACA;AACA;AACA;AALA,IAOMU,eAAe,GAAAC,SAAA,EADpBT,aAAa,CAAC,GAAGO,SAAS,gBAAgB,CAAC,aAAAG,WAAA,EAAAC,oBAAA;EAA5C,MACMH,eAAe,SAAAG,oBAAA,CAAyC;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EA0E9D;EAAC;IAAAI,CAAA,EA1EKN,eAAe;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIlBrB,QAAQ,CAAC;QAAEsB,SAAS,EAAE;MAAa,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAC1B,MAAM;MAAA;IAAA;MAAAJ,IAAA;MAAAC,UAAA,GAKjBpB,KAAK,CAAC,CAAC;MAAAsB,GAAA;MAAAC,MAAA;QAAA,OACQ,KAAK;MAAA;IAAA;MAAAJ,IAAA;MAAAC,UAAA,GAKpBpB,KAAK,CAAC,CAAC;MAAAsB,GAAA;MAAAC,MAAA;QAAA,OACC;UAAEC,EAAE,EAAE,IAAI;UAAEC,EAAE,EAAE;QAAK,CAAC;MAAA;IAAA;MAAAN,IAAA;MAAAG,GAAA;MAAAC,KAAA;MAhB/B;AACF;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;;MAIE,SAAAG,iBAAiBA,CAAA,EAAG;QAClBC,aAAA,CApBEhB,eAAe;QAqBjB;QACA,IAAI,CAACiB,aAAa,GAAGrB,cAAc,CAACqB,aAAa,CAAC,CAAC;;QAEnD;QACAtB,SAAS,CAACuB,SAAS,CAAC,CAAC,CAACC,IAAI,CAAEC,MAAM,IAAK;UACrC,IAAI,CAACA,MAAM,GAAGA,MAAM;QACtB,CAAC,CAAC;MACJ;IAAC;MAAAZ,IAAA;MAAAG,GAAA;MAAAC,KAAA,EAED,SAAAS,OAAOA,CAACC,iBAAiB,EAAE;QACzBN,aAAA,CA/BEhB,eAAe,uBA+BHsB,iBAAiB;QAC/B,MAAM;UAAEL;QAAc,CAAC,GAAG,IAAI;QAC9B,IAAIK,iBAAiB,CAACC,GAAG,CAAC,eAAe,CAAC,EAAE;UAC1C,IAAI,CAACC,MAAM,GAAG,CAACP,aAAa;QAC9B;MACF;IAAC;MAAAT,IAAA;MAAAG,GAAA;MAAAC,KAAA,EAED,SAAAa,MAAMA,CAAA,EAAG;QACP,MAAM;UACJC,SAAS;UACTN,MAAM,EAAE;YAAEN,EAAE;YAAED;UAAG;QACnB,CAAC,GAAG,IAAI;QAER,IAAIc,IAAI;QAER,IAAIb,EAAE,KAAK,IAAI,EAAE;UACfa,IAAI,GAAG,uBAAuB;QAChC,CAAC,MAAM,IAAIb,EAAE,KAAK,IAAI,EAAE;UACtBa,IAAI,GAAG,uBAAuB;QAChC,CAAC,MAAM,IAAIb,EAAE,KAAK,IAAI,EAAE;UACtBa,IAAI,GAAG,uBAAuB;QAChC,CAAC,MAAM;UACLA,IAAI,GAAG,UAAUd,EAAE,IAAIC,EAAE,WAAW;QACtC;QAEAc,OAAO,CAACC,GAAG,CAACF,IAAI,CAAC;QAEjB,OAAOzC,IAAI,CAAA4C,EAAA,KAAAA,EAAA,GAAAC,CAAA;AACf;AACA;AACA,gBAHe;AACf,iBADe;AACf,sBADe;AACf,WADe;AACf;AACA,KAFe,GAGCJ,IAAI,EACH9B,MAAM,EAAuBA,MAAM,EAC9B6B,SAAS,EACpBjC,cAAc,CAAC,CAAC;MAGzB;IAAC;MAAAe,IAAA;MAAAwB,MAAA;MAAArB,GAAA;MAAAC,KAAA,EAED,SAAAA,CAAA,EAA4B;QAC1B,OAAO,GAAGb,SAAS,iBAAiB;MACtC;IAAC;MAAAS,IAAA;MAAAwB,MAAA;MAAArB,GAAA;MAAAC,MAAA;QAAA,OAEelB,MAAM;MAAA;IAAA;EAAA;AAAA,GAzEMT,mBAAmB,CAACE,UAAU,CAAC;AA4E7D,eAAea,eAAe","ignoreList":[]}
@@ -21,6 +21,7 @@ export interface ComponentProps {
21
21
  * @element c4d-lightbox-media-viewer
22
22
  * @slot title - The title content.
23
23
  * @slot description - The description content.
24
+ * @slot cta - The CTA content.
24
25
  * @csspart container - The wrapper around the lightbox media. Usage: `c4d-lightbox-video-player::part(container)`
25
26
  * @csspart row - The wrapper around the row. Usage: `c4d-lightbox-video-player::part(row)`
26
27
  * @csspart media - The wrapper around media. Usage: `c4d-lightbox-video-player::part(media)`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carbon/ibmdotcom-web-components",
3
- "version": "2.47.0",
3
+ "version": "2.49.0",
4
4
  "description": "Carbon for IBM.com Web Components",
5
5
  "license": "Apache-2.0",
6
6
  "exports": {
@@ -244,5 +244,5 @@
244
244
  "web-component-analyzer": "1.2.0-next.0",
245
245
  "webpack": "^4.46.0"
246
246
  },
247
- "gitHead": "90b587c3f867e97961d6dfa5e1a379dca0ff62bd"
247
+ "gitHead": "dc4b43dc70d648df2cd7fb4a2e8b7b2d3af251b2"
248
248
  }