@carbon/ibmdotcom-web-components 2.16.3 → 2.17.0-rc.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 (55) hide show
  1. package/custom-elements.json +14 -0
  2. package/dist/dotcom-shell.js +3 -3
  3. package/dist/dotcom-shell.min.js +3 -3
  4. package/dist/ibmdotcom-web-components-dotcom-shell.js +3 -3
  5. package/dist/ibmdotcom-web-components-dotcom-shell.min.js +3 -3
  6. package/dist/{index-6eab3305.js → index-8d3f3549.js} +5 -5
  7. package/dist/{index-3275d9a0.js → index-9e20bd35.js} +6 -6
  8. package/dist/{left-nav-menu-c5edae3c.js → left-nav-menu-3b31278d.js} +3 -3
  9. package/dist/{left-nav-menu-category-heading-148e2a21.js → left-nav-menu-category-heading-06933b4e.js} +3 -3
  10. package/dist/{left-nav-menu-category-heading-6b8e0e50.js → left-nav-menu-category-heading-36e341bc.js} +3 -3
  11. package/dist/{left-nav-menu-30776e92.js → left-nav-menu-d2bd8482.js} +3 -3
  12. package/dist/{left-nav-menu-item-6f1d9bdc.js → left-nav-menu-item-7dfb09b2.js} +3 -3
  13. package/dist/{left-nav-menu-item-1b1d0a2a.js → left-nav-menu-item-b77cabbd.js} +3 -3
  14. package/dist/{left-nav-menu-section-5f0e1c37.js → left-nav-menu-section-34a575e0.js} +3 -3
  15. package/dist/{left-nav-menu-section-6760c53a.js → left-nav-menu-section-98f88b8f.js} +3 -3
  16. package/dist/{left-nav-overlay-72904b5c.js → left-nav-overlay-246572d6.js} +3 -3
  17. package/dist/{left-nav-overlay-e02a35b2.js → left-nav-overlay-f0cbba35.js} +3 -3
  18. package/dist/{megamenu-category-group-e751fa62.js → megamenu-category-group-7fcf5b86.js} +3 -3
  19. package/dist/{megamenu-category-group-3468c0a6.js → megamenu-category-group-8a7c6f13.js} +3 -3
  20. package/dist/{megamenu-category-group-copy-c5037e56.js → megamenu-category-group-copy-04fcb236.js} +3 -3
  21. package/dist/{megamenu-category-group-copy-2f105045.js → megamenu-category-group-copy-15e89d02.js} +3 -3
  22. package/dist/{megamenu-category-heading-f7a3e453.js → megamenu-category-heading-1e036ad2.js} +3 -3
  23. package/dist/{megamenu-category-heading-e2930aea.js → megamenu-category-heading-d16f009f.js} +3 -3
  24. package/dist/{megamenu-category-link-b221ded3.js → megamenu-category-link-ac189ac2.js} +3 -3
  25. package/dist/{megamenu-category-link-8748b545.js → megamenu-category-link-cf4f15c6.js} +7 -7
  26. package/dist/{megamenu-category-link-group-d54b15df.js → megamenu-category-link-group-53a23f4c.js} +3 -3
  27. package/dist/{megamenu-category-link-group-25a472c1.js → megamenu-category-link-group-eaa8f41f.js} +3 -3
  28. package/dist/{megamenu-left-navigation-4514020e.js → megamenu-left-navigation-372fe5b7.js} +3 -3
  29. package/dist/{megamenu-left-navigation-accb4e75.js → megamenu-left-navigation-d54b5d5b.js} +3 -3
  30. package/dist/{megamenu-overlay-2941471a.js → megamenu-overlay-393aac8d.js} +3 -3
  31. package/dist/{megamenu-overlay-5e7df4a6.js → megamenu-overlay-e5b15c9a.js} +3 -3
  32. package/dist/{megamenu-tab-9884855b.js → megamenu-tab-5b162db1.js} +3 -3
  33. package/dist/{megamenu-tab-6d423c79.js → megamenu-tab-addeba30.js} +3 -3
  34. package/es/components/carousel/carousel.js +46 -41
  35. package/es/components/carousel/carousel.js.map +1 -1
  36. package/es/components/content-block/content-block-paragraph.d.ts +3 -1
  37. package/es/components/content-block/content-block-paragraph.js +45 -1
  38. package/es/components/content-block/content-block-paragraph.js.map +1 -1
  39. package/es/components/feature-section/defs.d.ts +14 -1
  40. package/es/components/feature-section/defs.js +10 -1
  41. package/es/components/feature-section/defs.js.map +1 -1
  42. package/es/components/feature-section/feature-section.d.ts +3 -2
  43. package/es/components/feature-section/feature-section.js +74 -30
  44. package/es/components/feature-section/feature-section.js.map +1 -1
  45. package/es/components/notice-choice/notice-choice.d.ts +1 -3
  46. package/es/components/notice-choice/notice-choice.js +69 -170
  47. package/es/components/notice-choice/notice-choice.js.map +1 -1
  48. package/es/components/notice-choice/services.d.ts +1 -1
  49. package/es/components/notice-choice/services.js +4 -4
  50. package/es/components/notice-choice/services.js.map +1 -1
  51. package/es/internal/vendor/@carbon/ibmdotcom-utilities/utilities/settings/settings.js +2 -2
  52. package/lib/components/feature-section/defs.js +10 -2
  53. package/lib/components/feature-section/defs.js.map +1 -1
  54. package/lib/internal/vendor/@carbon/ibmdotcom-utilities/utilities/settings/settings.js +2 -2
  55. package/package.json +6 -6
@@ -23,7 +23,7 @@
23
23
  * lit-html:
24
24
  *
25
25
  * @license
26
- * Copyright 2017 Google LLC
26
+ * Copyright 2022 Google LLC
27
27
  * SPDX-License-Identifier: BSD-3-Clause
28
28
  *
29
29
  * lit-element:
@@ -80,14 +80,14 @@
80
80
  * https://www.npmjs.com/package/redux
81
81
  * https://www.npmjs.com/package/lodash-es
82
82
  * https://www.npmjs.com/package/window-or-global
83
- * https://www.npmjs.com/package/redux-logger
84
83
  * https://www.npmjs.com/package/redux-thunk
84
+ * https://www.npmjs.com/package/redux-logger
85
85
  * https://www.npmjs.com/package/axios
86
86
  * https://www.npmjs.com/package/isomorphic-dompurify
87
87
  * https://www.npmjs.com/package/striptags
88
88
  */
89
89
 
90
- import{_ as e,F as t,g as r,n as i,p as n,x as o,l as a,m as s,c as l,o as c,q as d,T as u,r as f,t as p,u as h,s as y,a as m}from"./index-6eab3305.js";let v,k,b,g,w=e=>e,E=e([l(`${n}-content-switcher-item`)],(function(e,t){return{F:class extends t{constructor(...t){super(...t),e(this)}},d:[{kind:"field",decorators:[i({type:Boolean,reflect:!0})],key:"disabled",value:()=>!1},{kind:"field",decorators:[i({type:Boolean,reflect:!0,attribute:"hide-divider"})],key:"hideDivider",value:()=>!1},{kind:"field",decorators:[i({type:Boolean,reflect:!0})],key:"selected",value:()=>!1},{kind:"field",decorators:[i()],key:"target",value:void 0},{kind:"field",decorators:[i()],key:"value",value:()=>""},{kind:"field",decorators:[i({type:Boolean,reflect:!0})],key:"icon",value:()=>!1},{kind:"field",decorators:[i({reflect:!0,type:String})],key:"align",value:()=>"top"},{kind:"field",decorators:[i({attribute:"close-on-activation",reflect:!0,type:Boolean})],key:"closeOnActivation",value:()=>!0},{kind:"field",key:"enterDelayMs",value:()=>100},{kind:"field",key:"leaveDelayMs",value:()=>100},{kind:"method",key:"updated",value:function(e){var t;e&&(null===(t=this.shadowRoot)||void 0===t||null===(t=t.querySelector(`${n}-tooltip`))||void 0===t||null===(t=t.shadowRoot)||void 0===t||null===(t=t.querySelector(`.${n}--tooltip`))||void 0===t||t.classList.add(`${n}--icon-tooltip`))}},{kind:"method",key:"_renderTooltipContent",value:function(){return o(v||(v=w`
90
+ import{_ as e,F as t,g as r,n as i,p as n,x as o,l as a,m as s,c as l,o as c,q as d,T as u,r as f,t as p,u as h,s as y,a as m}from"./index-8d3f3549.js";let v,k,b,g,w=e=>e,E=e([l(`${n}-content-switcher-item`)],(function(e,t){return{F:class extends t{constructor(...t){super(...t),e(this)}},d:[{kind:"field",decorators:[i({type:Boolean,reflect:!0})],key:"disabled",value:()=>!1},{kind:"field",decorators:[i({type:Boolean,reflect:!0,attribute:"hide-divider"})],key:"hideDivider",value:()=>!1},{kind:"field",decorators:[i({type:Boolean,reflect:!0})],key:"selected",value:()=>!1},{kind:"field",decorators:[i()],key:"target",value:void 0},{kind:"field",decorators:[i()],key:"value",value:()=>""},{kind:"field",decorators:[i({type:Boolean,reflect:!0})],key:"icon",value:()=>!1},{kind:"field",decorators:[i({reflect:!0,type:String})],key:"align",value:()=>"top"},{kind:"field",decorators:[i({attribute:"close-on-activation",reflect:!0,type:Boolean})],key:"closeOnActivation",value:()=>!0},{kind:"field",key:"enterDelayMs",value:()=>100},{kind:"field",key:"leaveDelayMs",value:()=>100},{kind:"method",key:"updated",value:function(e){var t;e&&(null===(t=this.shadowRoot)||void 0===t||null===(t=t.querySelector(`${n}-tooltip`))||void 0===t||null===(t=t.shadowRoot)||void 0===t||null===(t=t.querySelector(`.${n}--tooltip`))||void 0===t||t.classList.add(`${n}--icon-tooltip`))}},{kind:"method",key:"_renderTooltipContent",value:function(){return o(v||(v=w`
91
91
  <cds-tooltip-content>
92
92
  <slot name="tooltip-content"></slot>
93
93
  </cds-tooltip-content>
@@ -23,7 +23,7 @@
23
23
  * lit-html:
24
24
  *
25
25
  * @license
26
- * Copyright 2017 Google LLC
26
+ * Copyright 2022 Google LLC
27
27
  * SPDX-License-Identifier: BSD-3-Clause
28
28
  *
29
29
  * lit-element:
@@ -80,15 +80,15 @@
80
80
  * https://www.npmjs.com/package/redux
81
81
  * https://www.npmjs.com/package/lodash-es
82
82
  * https://www.npmjs.com/package/window-or-global
83
- * https://www.npmjs.com/package/redux-logger
84
83
  * https://www.npmjs.com/package/redux-thunk
84
+ * https://www.npmjs.com/package/redux-logger
85
85
  * https://www.npmjs.com/package/axios
86
86
  * https://www.npmjs.com/package/isomorphic-dompurify
87
87
  * https://www.npmjs.com/package/striptags
88
88
  */
89
89
 
90
90
  let process = { env: {} };
91
- import { _ as _decorate$1, F as FocusMixin, g as s, n, p as prefix$1, x, l as _objectSpread2, m as styles, c as carbonElement, o as l, q as o, T as TABS_TYPE, r as styles$1, t as _get$1, u as _getPrototypeOf$1, s as styles$2, a as settings } from './index-3275d9a0.js';
91
+ import { _ as _decorate$1, F as FocusMixin, g as s, n, p as prefix$1, x, l as _objectSpread2, m as styles, c as carbonElement, o as l, q as o, T as TABS_TYPE, r as styles$1, t as _get$1, u as _getPrototypeOf$1, s as styles$2, a as settings } from './index-9e20bd35.js';
92
92
 
93
93
  let _$2 = t => t,
94
94
  _t$2,
@@ -2,7 +2,8 @@ import _decorate from "@babel/runtime/helpers/esm/decorate";
2
2
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
3
3
  import _get from "@babel/runtime/helpers/esm/get";
4
4
  let _ = t => t,
5
- _t;
5
+ _t,
6
+ _t2;
6
7
  function _superPropGet(t, e, r, o) { var p = _get(_getPrototypeOf(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; }
7
8
  /**
8
9
  * @license
@@ -682,14 +683,10 @@ let C4DCarousel = _decorate([customElement(`${c4dPrefix}-carousel`)], function (
682
683
  */
683
684
  function _updateGap() {
684
685
  const {
685
- _contentsNode: contentsNode,
686
686
  _slotNode: slotNode
687
687
  } = this;
688
- const elems = slotNode.assignedNodes().filter(node => node.nodeType === Node.ELEMENT_NODE);
689
- this._gap = elems.length <= 1 ? 0 : (contentsNode.scrollWidth - elems.reduce((acc, elem) => {
690
- var _offsetWidth;
691
- return acc + ((_offsetWidth = elem.offsetWidth) !== null && _offsetWidth !== void 0 ? _offsetWidth : 0);
692
- }, 0)) / (elems.length - 1);
688
+ const elems = slotNode.assignedElements();
689
+ this._gap = elems.length <= 2 ? 0 : elems[1].getBoundingClientRect().left - elems[0].getBoundingClientRect().right;
693
690
  }
694
691
  }, {
695
692
  kind: "method",
@@ -907,6 +904,11 @@ let C4DCarousel = _decorate([customElement(`${c4dPrefix}-carousel`)], function (
907
904
  [`${prefix}--carousel__scroll-contents`]: true,
908
905
  [`${prefix}--carousel__scroll-contents--scrolling`]: isScrolling
909
906
  });
907
+
908
+ // Hide the navigation controls if there is only one page
909
+ const numberOfPages = this.formatStatus(status);
910
+ const hideControls = numberOfPages === '1 / 1';
911
+
910
912
  // Use another div from the host `<c4d-carousel>` to reflect private state
911
913
  return html(_t || (_t = _`
912
914
  <div part="region" role="region" aria-labelledby="carousel-title">
@@ -928,41 +930,44 @@ let C4DCarousel = _decorate([customElement(`${c4dPrefix}-carousel`)], function (
928
930
  <slot @slotchange="${0}"></slot>
929
931
  </div>
930
932
  </div>
931
- <nav
932
- part="navigation"
933
- aria-label="Carousel Navigation"
934
- class="${0}--carousel__navigation">
935
- <button
936
- part="prev-button"
937
- class="${0}--btn ${0}--btn--tertiary ${0}--btn--icon-only ${0}--carousel__navigation__btn"
938
- ?disabled="${0}"
939
- @click="${0}"
940
- aria-label="${0}"
941
- title="${0}">
942
- ${0}
943
- </button>
944
- <span
945
- part="status"
946
- class="${0}--carousel__navigation__status"
947
- aria-hidden="true"
948
- >${0}</span
949
- >
950
- <span
951
- class="${0}--visually-hidden"
952
- aria-live="polite"
953
- part="visually-hidden"></span>
954
- <button
955
- part="next-button"
956
- class="${0}--btn ${0}--btn--tertiary ${0}--btn--icon-only ${0}--carousel__navigation__btn"
957
- ?disabled="${0}"
958
- @click="${0}"
959
- aria-label="${0}"
960
- title="${0}">
961
- ${0}
962
- </button>
963
- </nav>
933
+
934
+ ${0}
964
935
  </div>
965
- `), prefix, handleScrollFocus, handleTouchStartEvent, handleTouchEndEvent, ifDefined(pageSizeExplicit == null ? null : `${customPropertyPageSize}: ${pageSizeExplicit}`), scrollContentsClasses, handleSlotChange, prefix, prefix, prefix, prefix, prefix, pagesBefore === 0, handleClickPrevButton, prevButtonText || defaultPrevButtonText, prevButtonText || defaultPrevButtonText, CaretLeft20(), prefix, formatStatus(status), prefix, prefix, prefix, prefix, prefix, pagesSince <= 1, handleClickNextButton, nextButtonText || defaultNextButtonText, nextButtonText || defaultNextButtonText, CaretRight20());
936
+ `), prefix, handleScrollFocus, handleTouchStartEvent, handleTouchEndEvent, ifDefined(pageSizeExplicit == null ? null : `${customPropertyPageSize}: ${pageSizeExplicit}`), scrollContentsClasses, handleSlotChange, !hideControls ? html(_t2 || (_t2 = _`
937
+ <nav
938
+ part="navigation"
939
+ aria-label="Carousel Navigation"
940
+ class="${0}--carousel__navigation">
941
+ <button
942
+ part="prev-button"
943
+ class="${0}--btn ${0}--btn--tertiary ${0}--btn--icon-only ${0}--carousel__navigation__btn"
944
+ ?disabled="${0}"
945
+ @click="${0}"
946
+ aria-label="${0}"
947
+ title="${0}">
948
+ ${0}
949
+ </button>
950
+ <span
951
+ part="status"
952
+ class="${0}--carousel__navigation__status"
953
+ aria-hidden="true"
954
+ >${0}</span
955
+ >
956
+ <span
957
+ class="${0}--visually-hidden"
958
+ aria-live="polite"
959
+ part="visually-hidden"></span>
960
+ <button
961
+ part="next-button"
962
+ class="${0}--btn ${0}--btn--tertiary ${0}--btn--icon-only ${0}--carousel__navigation__btn"
963
+ ?disabled="${0}"
964
+ @click="${0}"
965
+ aria-label="${0}"
966
+ title="${0}">
967
+ ${0}
968
+ </button>
969
+ </nav>
970
+ `), prefix, prefix, prefix, prefix, prefix, pagesBefore === 0, handleClickPrevButton, prevButtonText || defaultPrevButtonText, prevButtonText || defaultPrevButtonText, CaretLeft20(), prefix, formatStatus(status), prefix, prefix, prefix, prefix, prefix, pagesSince <= 1, handleClickNextButton, nextButtonText || defaultNextButtonText, nextButtonText || defaultNextButtonText, CaretRight20()) : '');
966
971
  }
967
972
 
968
973
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.js","names":["LitElement","html","customElement","property","query","state","slow01","classMap","CaretLeft20","CaretRight20","HostListener","HostListenerMixin","selectorTabbable","settings","sameHeight","styles","StableSelectorMixin","ifDefined","prefix","stablePrefix","c4dPrefix","MAX_GESTURE_DURATION","MIN_DISTANCE_TRAVELLED","headingBottomMargin","minIntersectionRatio","C4DCarousel","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","decorators","key","value","Math","max","min","_onIntersect","entries","_announcementNode","announcementNode","formatAnnouncement","_getStatus","status","_intersectionTimeout","timeout","forEach","entry","target","isIntersecting","intersectionRatio","inert","setAttribute","clearTimeout","delay","parseInt","setTimeout","innerText","_cleanAndCreateObserverResize","create","_contentsNode","contentsNode","_observerResizeContainer","disconnect","_observerResizeRoot","ResizeObserver","_observeResizeRoot","observe","ownerDocument","documentElement","_observeResizeContainer","_cleanAndCreateObserverIntersection","_containerNode","containerNode","_intersectionObserver","IntersectionObserver","bind","root","threshold","_intersectionThresholdDifference","_handleScrollFocus","scrollTo","containsCurrent","contains","currentItemIndex","Array","from","_childItems","carouselItem","index","start","pageSize","nextStart","floor","pageOffset","event","_setSameHeight","_handleClickNextButton","_total","total","_handleIsScrolling","_handleClickPrevButton","_this$_contentsNode","_isScrolling","addEventListener","_handleTouchStartEvent","_startPos","touches","clientX","_startTime","Date","getTime","_handleTouchEndEvent","distTravelled","changedTouches","elapsedTime","abs","_handleSlotChange","_this$_intersectionOb","slot","name","assignedNodes","filter","node","nodeType","Node","ELEMENT_NODE","length","_updateGap","assignedElements","item","_this$_intersectionOb2","elem","matches","undefined","selectorItem","selectorItemVideoCTAContainer","e","_querySelector","_childItemEyebrows","push","querySelector","selectorItemEyebrow","_childItemParagraphs","selectorItemParagraph","_childItemTagGroup","selectorItemTagGroup","_childItemHeadings","selectorItemHeading","shadowRoot","heading","_childItemFooters","selectorItemFooter","records","contentRect","width","contentsBaseWidth","_contentsBaseWidth","customPropertyPageSize","defaultView","w","_pageSizeAuto","Number","getComputedStyle","getPropertyValue","pagesBefore","ceil","pagesSince","currentPage","pages","tagGroupHeight","groupHeight","offsetHeight","_e$nextElementSibling","nextElementSibling","style","marginBottom","_slotNode","slotNode","elems","_gap","scrollWidth","reduce","acc","_offsetWidth","offsetWidth","_updateContentsPosition","changedProperties","has","contentsPosition","insetInlineStart","_this$shadowRoot","selectorTabbableForCarousel","querySelectorAll","attribute","visibleItemsCount","type","_pageSize","pageSizeAuto","connectedCallback","_superPropGet","containingModal","closest","hasFocusableElements","modalBody","overflow","disconnectedCallback","firstUpdated","window","updated","render","nextButtonText","_defaultNextButtonText","defaultNextButtonText","prevButtonText","_defaultPrevButtonText","defaultPrevButtonText","pageSizeExplicit","formatStatus","handleClickNextButton","handleClickPrevButton","handleScrollFocus","handleSlotChange","handleTouchStartEvent","handleTouchEndEvent","isScrolling","scrollContentsClasses","_t","_","static"],"sources":["components/carousel/carousel.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 */\nimport { LitElement, html } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { slow01 } from '@carbon/motion';\nimport { classMap } from 'lit/directives/class-map.js';\nimport CaretLeft20 from '@carbon/web-components/es/icons/caret--left/20.js';\nimport CaretRight20 from '@carbon/web-components/es/icons/caret--right/20.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 { selectorTabbable } from '@carbon/web-components/es/globals/settings.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport sameHeight from '@carbon/ibmdotcom-utilities/es/utilities/sameHeight/sameHeight.js';\nimport styles from './carousel.scss';\nimport StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport C4DExpressiveModal from '../expressive-modal/expressive-modal';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nconst { prefix, stablePrefix: c4dPrefix } = settings;\n\nconst MAX_GESTURE_DURATION = 300; // max time allowed to do swipe\nconst MIN_DISTANCE_TRAVELLED = 75; // min distance traveled to be considered swipe\nconst headingBottomMargin = 64; // tag constants used for same height calculations\n\n/**\n * Minimum percentage of a slide being visible for it to be interactable.\n */\nconst minIntersectionRatio = 0.75;\n\n/**\n * Carousel.\n *\n * @element c4d-carousel\n * @csspart prev-button - The button to go to the previous page. Usage: `c4d-carousel::part(prev-button)`\n * @csspart next-button - The button to go to the next page. Usage: `c4d-carousel::part(next-button)`\n * @csspart region - The component container. Usage: `c4d-carousel::part(region)`\n * @csspart title - The title. Usage `c4d-carousel::part(title)`\n * @csspart scroll-container - Container for the scrolling elements. Usage: `c4d-carousel::part(scroll-container)`\n * @csspart contents - The scrolling elements. Usage: `c4d-carousel::part(contents)`\n * @csspart navigation - The navigation controls. Usage: `c4d-carousel::part(navigation)`\n * @csspart status - The navigation status. Usage: `c4d-carousel::part(status)`\n * @csspart visually-hidden - The span element used to hide content from view and keep it accessible for assistive technologies. Usage: `c4d-button::part(visually-hidden)`\n */\n@customElement(`${c4dPrefix}-carousel`)\nclass C4DCarousel extends HostListenerMixin(StableSelectorMixin(LitElement)) {\n /**\n * The scrolling container node.\n */\n @query(`.${prefix}--carousel__scroll-container`)\n private _containerNode?: HTMLElement;\n\n /**\n * The scrolling contents node.\n */\n @query(`.${prefix}--carousel__scroll-contents`)\n private _contentsNode?: HTMLElement;\n\n /**\n * The node whose text content is announced to screen readers on change.\n */\n @query('[aria-live]')\n private _announcementNode!: HTMLElement;\n\n /**\n * The width of the scroll contents area node, excluding one of overflowed contents.\n */\n @state()\n private _contentsBaseWidth = 0;\n\n /**\n * The gap width between each card.\n */\n @state()\n private _gap = 0;\n\n /**\n * Array to hold the card-heading elements within child items.\n */\n private _childItems: any[] = [];\n\n /**\n * Array to hold the card-heading elements within child items.\n */\n private _childItemHeadings: any[] = [];\n\n /**\n * Array to hold the card-eyebrow elements within child items.\n */\n private _childItemEyebrows: any[] = [];\n\n /**\n * Array to hold the tag-group elements within child items.\n */\n private _childItemTagGroup: any[] = [];\n\n /**\n * Array to hold the paragraph elements within child items.\n */\n private _childItemParagraphs: any[] = [];\n\n /**\n * Array to hold the card-cta-footer elements within child items.\n */\n private _childItemFooters: any[] = [];\n\n /**\n * The observer for the resize of the scroll container.\n */\n private _observerResizeContainer: any | null = null; // TODO: Wait for `.d.ts` update to support `ResizeObserver`\n\n /**\n * The observer for the resize of the viewport.\n */\n private _observerResizeRoot: any | null = null; // TODO: Wait for `.d.ts` update to support `ResizeObserver`\n\n private _intersectionThresholdDifference =\n Math.max(0.5, minIntersectionRatio) - Math.min(0.5, minIntersectionRatio);\n\n /**\n * IntersectionObserver to watch carousel contents.\n *\n * @see connectedCallback()\n */\n private _intersectionObserver: IntersectionObserver | null = null;\n\n private _intersectionTimeout?;\n\n /**\n * IntersectionObserver callback.\n * Carousel items with more than `minIntersectionRatio` visible will interactable.\n *\n * @param {IntersectionObserverEntry[]} entries Array of observed intersections.\n */\n private _onIntersect(entries) {\n const {\n _announcementNode: announcementNode,\n formatAnnouncement,\n _getStatus: status,\n _intersectionTimeout: timeout,\n } = this;\n\n // Mark off-screen slides as [inert]\n entries.forEach((entry) => {\n const { target, isIntersecting, intersectionRatio } = entry;\n\n if (isIntersecting && intersectionRatio > minIntersectionRatio) {\n target.inert = false;\n target.setAttribute('aria-hidden', false);\n } else {\n target.inert = true;\n target.setAttribute('aria-hidden', true);\n }\n });\n\n // Wait for slide action to finish, then announce slide information\n clearTimeout(timeout);\n\n // Delay should equal the design token in the carousel's styles.\n const delay = parseInt(slow01, 10);\n\n this._intersectionTimeout = setTimeout(() => {\n announcementNode.innerText = formatAnnouncement(status);\n }, delay);\n }\n\n /**\n * The page size that is explicitly set.\n */\n @state()\n private _pageSize?: number;\n\n /**\n * The page size that is automatically calculated upon viewport size\n * via `--c4d--carousel--page-size` CSS custom property.\n * If `page-size` attribute is set, this value is ignored.\n */\n @state()\n private _pageSizeAuto = 1;\n\n /**\n * The default slot.\n */\n @query('slot:not([name])')\n private _slotNode?: HTMLSlotElement;\n\n /**\n * The number of total items.\n */\n @state()\n private _total = 0;\n\n /**\n * Initial touch position (used to detect swipe gesture)\n */\n @state()\n private _startPos = 0;\n\n /**\n * Initial touch time (used to detect swipe gesture)\n */\n @state()\n private _startTime = 0;\n\n /**\n * Whether the carousel is scrolling\n */\n @state()\n private _isScrolling = false;\n\n /**\n * Cleans-up and creates the resize observer for the scrolling container.\n *\n * @param [options] The options.\n * @param [options.create] `true` to create the new resize observer.\n */\n private _cleanAndCreateObserverResize({ create }: { create?: boolean } = {}) {\n const { _contentsNode: contentsNode } = this;\n if (contentsNode) {\n if (this._observerResizeContainer) {\n this._observerResizeContainer.disconnect();\n this._observerResizeContainer = null;\n }\n if (this._observerResizeRoot) {\n this._observerResizeRoot.disconnect();\n this._observerResizeRoot = null;\n }\n if (create) {\n // TODO: Wait for `.d.ts` update to support `ResizeObserver`\n // @ts-ignore\n this._observerResizeRoot = new ResizeObserver(this._observeResizeRoot);\n this._observerResizeRoot.observe(this.ownerDocument!.documentElement);\n // TODO: Wait for `.d.ts` update to support `ResizeObserver`\n // @ts-ignore\n this._observerResizeContainer = new ResizeObserver(\n this._observeResizeContainer\n );\n this._observerResizeContainer.observe(contentsNode);\n }\n }\n }\n\n /**\n * Cleans-up and creates the intersection observer for the scrolling container.\n *\n * @param [options] The options.\n * @param [options.create] `true` to create the new intersection observer.\n */\n private _cleanAndCreateObserverIntersection({\n create,\n }: { create?: boolean } = {}) {\n const { _containerNode: containerNode } = this;\n // Avoid creating the intersection observer prematurely by checking that\n // this._containerNode has been set.\n if (containerNode) {\n if (this._intersectionObserver) {\n this._intersectionObserver.disconnect();\n this._intersectionObserver = null;\n }\n if (create) {\n // As items cross the minIntersectionRatio `inert` and `aria-hidden` are\n // toggled.\n this._intersectionObserver = new IntersectionObserver(\n this._onIntersect.bind(this),\n {\n root: containerNode,\n threshold: [\n 0.5 + this._intersectionThresholdDifference,\n 0.5 - this._intersectionThresholdDifference,\n ],\n }\n );\n }\n }\n }\n\n /**\n * Stops the container from scrolling when focusing on a card outside the viewport.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n // eslint-disable-next-line class-methods-use-this\n private _handleScrollFocus({ target }: Event) {\n (target as HTMLElement).scrollTo(0, 0);\n }\n\n /**\n * Handles card focus throughout pages.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n @HostListener('shadowRoot:focusin')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleFocus = async ({ target }: FocusEvent) => {\n const containsCurrent =\n target !== this && this.contains(target as HTMLElement);\n let currentItemIndex = 0;\n Array.from(this._childItems).forEach((carouselItem, index) => {\n if (carouselItem.contains(target as HTMLElement)) {\n currentItemIndex = index;\n }\n });\n\n // Calculates proper page to display if focus is outside the current page\n if (\n containsCurrent &&\n (currentItemIndex < this.start ||\n currentItemIndex >= this.start + this.pageSize)\n ) {\n // The `currentIndex` floored by `pageSize`\n const nextStart =\n Math.floor(currentItemIndex / this.pageSize) * this.pageSize;\n const pageOffset = this.start % this.pageSize;\n\n // Ensures the page moves by `this.pageSize` in either direction\n this.start = nextStart + pageOffset;\n }\n };\n\n /**\n * Handles card with video heading and applies the set same height function.\n *\n * @param event The event.\n */\n @HostListener(`document:eventVideoTitleUpdated`)\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleVideoTitleUpdate = async (event: FocusEvent) => {\n if (event) {\n this._setSameHeight();\n }\n };\n\n /**\n * Handles `click` event on the next button.\n */\n private _handleClickNextButton() {\n const { pageSize, start, _total: total } = this;\n this.start = Math.min(start + pageSize, total - 1);\n this._handleIsScrolling();\n }\n\n /**\n * Handles `click` event on the prev button.\n */\n private _handleClickPrevButton() {\n const { pageSize, start } = this;\n this.start = Math.max(start - pageSize, 0);\n this._handleIsScrolling();\n }\n\n /**\n * Sets scrolling state of carousel\n */\n private _handleIsScrolling() {\n this._isScrolling = true;\n this._contentsNode?.addEventListener('transitionend', () => {\n this._isScrolling = false;\n });\n }\n\n /**\n * Handles `touchstart` event.\n */\n private _handleTouchStartEvent(event: TouchEvent) {\n this._startPos = event.touches[0].clientX;\n this._startTime = new Date().getTime();\n }\n\n /**\n * Handles `touchend` event.\n */\n private _handleTouchEndEvent(event: TouchEvent) {\n const { _startPos, _startTime } = this;\n const { pageSize, start, _total: total } = this;\n\n const distTravelled = event.changedTouches[0].clientX - _startPos; // distance travelled\n const elapsedTime = new Date().getTime() - _startTime; // elapsed time\n\n if (\n elapsedTime <= MAX_GESTURE_DURATION &&\n Math.abs(distTravelled) >= MIN_DISTANCE_TRAVELLED\n ) {\n if (distTravelled < 0) {\n this.start = Math.min(start + pageSize, total - 1);\n } else {\n this.start = Math.max(start - pageSize, 0);\n }\n }\n }\n\n /**\n * Handles `slotchange` event.\n */\n private _handleSlotChange(event: Event) {\n const slot = event.target as HTMLSlotElement;\n const { name } = slot;\n if (!name) {\n this._total = slot\n .assignedNodes()\n .filter((node) => node.nodeType === Node.ELEMENT_NODE).length;\n }\n this._updateGap();\n\n this._childItems = (event.target as HTMLSlotElement).assignedElements();\n\n this._intersectionObserver?.disconnect();\n\n this._childItems.forEach((item) => {\n this._intersectionObserver?.observe(item);\n });\n\n // retrieve item heading, eyebrows, and footers to set same height\n if (this._childItems) {\n this._childItems\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof C4DCarousel).selectorItem\n ) ||\n (elem as HTMLElement).matches(\n (this.constructor as typeof C4DCarousel)\n .selectorItemVideoCTAContainer\n )\n : false\n )\n .forEach((e) => {\n this._childItemEyebrows.push(\n (e as HTMLElement).querySelector(\n (this.constructor as typeof C4DCarousel).selectorItemEyebrow\n )\n );\n this._childItemParagraphs.push(\n (e as HTMLElement).querySelector(\n (this.constructor as typeof C4DCarousel).selectorItemParagraph\n )\n );\n this._childItemTagGroup.push(\n (e as HTMLElement).querySelector(\n (this.constructor as typeof C4DCarousel).selectorItemTagGroup\n )\n );\n\n this._childItemHeadings.push(\n (e as HTMLElement).querySelector(\n (this.constructor as typeof C4DCarousel).selectorItemHeading\n )\n );\n\n // gets card cta-type=\"video\" headings\n this._childItemHeadings.push(\n (e as HTMLElement)\n .querySelector(\n (this.constructor as typeof C4DCarousel).selectorItem\n )\n ?.shadowRoot?.querySelector(\n (this.constructor as typeof C4DCarousel).selectorItemHeading\n )\n );\n\n this._childItemHeadings = this._childItemHeadings.filter(\n (heading) => heading\n );\n\n this._childItemFooters.push(\n (e as HTMLElement).querySelector(\n (this.constructor as typeof C4DCarousel).selectorItemFooter\n )\n );\n });\n this._observeResizeRoot();\n }\n }\n\n /**\n * The observer for the resize of the scroll container.\n */\n private _observeResizeContainer = (records) => {\n const { contentRect } = records[records.length - 1];\n const { width: contentsBaseWidth } = contentRect;\n this._contentsBaseWidth = contentsBaseWidth;\n this._updateGap();\n };\n\n /**\n * The observer for the resize of the viewport.\n */\n private _observeResizeRoot = () => {\n const { customPropertyPageSize } = this.constructor as typeof C4DCarousel;\n const { _contentsNode: contentsNode } = this;\n const { defaultView: w } = this.ownerDocument!;\n this._pageSizeAuto = Number(\n w!\n .getComputedStyle(contentsNode!)\n .getPropertyValue(customPropertyPageSize)\n );\n this._setSameHeight();\n };\n\n private get _getStatus() {\n const { start, pageSize, _total: total } = this;\n // Copes with the condition where `start % pageSize` is non-zero\n const pagesBefore = Math.ceil(start / pageSize);\n const pagesSince = Math.ceil((total - start) / pageSize);\n return {\n currentPage: Math.ceil(start / pageSize) + 1,\n pages: pagesBefore + pagesSince,\n };\n }\n\n private _setSameHeight = () => {\n // check if items are not null before using sameHeight\n\n sameHeight(\n this._childItemEyebrows.filter((item) => item !== null),\n 'sm'\n );\n\n sameHeight(\n this._childItemHeadings.filter((item) => item !== null),\n 'sm'\n );\n sameHeight(\n this._childItemParagraphs.filter((item) => item !== null),\n 'sm'\n );\n sameHeight(\n this._childItemFooters.filter((item) => item !== null),\n 'sm'\n );\n\n let tagGroupHeight = 0;\n\n // Get the tallest height of tag groups.\n this._childItemTagGroup.forEach((item) => {\n if (item) {\n const groupHeight = (item as HTMLElement).offsetHeight;\n if (groupHeight > tagGroupHeight) {\n tagGroupHeight = groupHeight;\n }\n }\n });\n\n this._childItemHeadings.forEach((e) => {\n // add tag group height to heading to the cards lacking tag group\n if (\n e &&\n !e.nextElementSibling?.matches(\n (this.constructor as typeof C4DCarousel).selectorItemTagGroup\n )\n ) {\n e.style.marginBottom = `${tagGroupHeight + headingBottomMargin}px`;\n }\n });\n };\n\n /**\n * Calculates the width between cards.\n */\n private _updateGap() {\n const { _contentsNode: contentsNode, _slotNode: slotNode } = this;\n const elems = slotNode!\n .assignedNodes()\n .filter((node) => node.nodeType === Node.ELEMENT_NODE);\n this._gap =\n elems.length <= 1\n ? 0\n : (contentsNode!.scrollWidth -\n elems.reduce(\n (acc, elem) => acc + ((elem as HTMLElement).offsetWidth ?? 0),\n 0\n )) /\n (elems.length - 1);\n }\n\n private _updateContentsPosition(changedProperties) {\n // The calculation of the contents position is base on start,\n // _contentsBaseWidth, _gap and pageSize. If none of them changed, we've\n // got nothing to do.\n if (\n !changedProperties.has('start') &&\n !changedProperties.has('_contentsBaseWidth') &&\n !changedProperties.has('_gap') &&\n !changedProperties.has('pageSize')\n ) {\n return;\n }\n\n // Hard to update the contents node if it hasn't yet been populated. Return\n // early if it's falsy.\n if (!this._contentsNode) {\n return;\n }\n\n const contentsPosition =\n (-this.start * (this._contentsBaseWidth + this._gap)) / this.pageSize;\n this._contentsNode.style.insetInlineStart = `${contentsPosition}px`;\n }\n\n get focusableElements() {\n const { selectorTabbable: selectorTabbableForCarousel } = this\n .constructor as typeof C4DExpressiveModal;\n return [\n ...Array.from(\n (this.shadowRoot?.querySelectorAll(\n selectorTabbableForCarousel\n ) as NodeListOf<HTMLElement>) || []\n ),\n ...Array.from(\n this.querySelectorAll(\n selectorTabbableForCarousel\n ) as NodeListOf<HTMLElement>\n ),\n ];\n }\n\n /**\n * The formatters for the pagination status & aria-live announcement.\n * Should be changed with the locale in which the UI is rendered.\n */\n @property({ attribute: false })\n formatStatus = ({ currentPage, pages }) => `${currentPage} / ${pages}`;\n\n @property({ attribute: false })\n formatAnnouncement = ({ currentPage, pages }) => {\n const visibleItemsCount = this._childItems.filter(\n (item) => !item.matches('[inert]')\n ).length;\n\n return `Slide ${currentPage} of ${pages}. Showing ${visibleItemsCount} items.`;\n };\n\n /**\n * Number of items per page.\n * If `--c4d--carousel--page-size` CSS custom property is set to `<div class=\"cds--carousel__scroll-container\">`\n * or its ancestor (e.g. the host `<c4d-carousel>`), this is set automatically from `--c4d--carousel--page-size`.\n */\n @property({ type: Number, attribute: 'page-size' })\n get pageSize() {\n const { _pageSize: pageSize, _pageSizeAuto: pageSizeAuto } = this;\n return pageSize ?? pageSizeAuto;\n }\n\n set pageSize(value: number) {\n this._pageSize = value;\n // Don't call `.requestUpdate()` here given we track updates via `_pageSize` and `_pageSizeAuto`\n }\n\n /**\n * The assistive text for the button to go to next slide/group.\n */\n @property({ attribute: 'next-button-text' })\n nextButtonText?: string;\n\n private _defaultNextButtonText = 'next';\n\n private _defaultPrevButtonText = 'previous';\n\n /**\n * The assistive text for the button to go to previous slide/group.\n */\n @property({ attribute: 'prev-button-text' })\n prevButtonText?: string;\n\n /**\n * The current zero-based index of the left-most card.\n */\n @property({ type: Number })\n start = 0;\n\n connectedCallback() {\n super.connectedCallback();\n this._cleanAndCreateObserverResize({ create: true });\n this._cleanAndCreateObserverIntersection({ create: true });\n\n const containingModal = this.closest(\n `${c4dPrefix}-expressive-modal`\n ) as C4DExpressiveModal | null;\n if (containingModal) {\n containingModal.hasFocusableElements.push(this);\n this.setAttribute('in-modal', '');\n\n setTimeout(() => {\n containingModal.modalBody!.style.overflow = 'hidden';\n containingModal.modalBody!.style.width = 'var(--modal-vw)';\n }, 0);\n }\n }\n\n disconnectedCallback() {\n this._cleanAndCreateObserverResize();\n this._cleanAndCreateObserverIntersection();\n super.disconnectedCallback();\n }\n\n firstUpdated() {\n this._cleanAndCreateObserverResize({ create: true });\n this._cleanAndCreateObserverIntersection({ create: true });\n // Reflect the current writing mode in the dir attribute so that we can\n // make styling adjustments.\n this.setAttribute(\n 'dir',\n window.getComputedStyle(this).getPropertyValue('direction')\n );\n }\n\n updated(changedProperties) {\n this._updateContentsPosition(changedProperties);\n }\n\n render() {\n const { customPropertyPageSize } = this.constructor as typeof C4DCarousel;\n const {\n nextButtonText,\n _defaultNextButtonText: defaultNextButtonText,\n pageSize,\n prevButtonText,\n _defaultPrevButtonText: defaultPrevButtonText,\n start,\n _pageSize: pageSizeExplicit,\n _total: total,\n _getStatus: status,\n formatStatus,\n _handleClickNextButton: handleClickNextButton,\n _handleClickPrevButton: handleClickPrevButton,\n _handleScrollFocus: handleScrollFocus,\n _handleSlotChange: handleSlotChange,\n _handleTouchStartEvent: handleTouchStartEvent,\n _handleTouchEndEvent: handleTouchEndEvent,\n _isScrolling: isScrolling,\n } = this;\n // Copes with the condition where `start % pageSize` is non-zero\n const pagesBefore = Math.ceil(start / pageSize);\n const pagesSince = Math.ceil((total - start) / pageSize);\n const scrollContentsClasses = classMap({\n [`${prefix}--carousel__scroll-contents`]: true,\n [`${prefix}--carousel__scroll-contents--scrolling`]: isScrolling,\n });\n // Use another div from the host `<c4d-carousel>` to reflect private state\n return html`\n <div part=\"region\" role=\"region\" aria-labelledby=\"carousel-title\">\n <div part=\"title\" id=\"carousel-title\">\n <slot name=\"title\">\n <span class=\"cds--visually-hidden\" part=\"visually-hidden\"\n >Carousel</span\n >\n </slot>\n </div>\n <div\n part=\"scroll-container\"\n class=\"${prefix}--carousel__scroll-container\"\n @scroll=\"${handleScrollFocus}\"\n @touchstart=\"${handleTouchStartEvent}\"\n @touchend=\"${handleTouchEndEvent}\"\n style=\"${ifDefined(\n pageSizeExplicit == null\n ? null\n : `${customPropertyPageSize}: ${pageSizeExplicit}`\n )}\">\n <div part=\"contents\" class=\"${scrollContentsClasses}\">\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n </div>\n </div>\n <nav\n part=\"navigation\"\n aria-label=\"Carousel Navigation\"\n class=\"${prefix}--carousel__navigation\">\n <button\n part=\"prev-button\"\n class=\"${prefix}--btn ${prefix}--btn--tertiary ${prefix}--btn--icon-only ${prefix}--carousel__navigation__btn\"\n ?disabled=\"${pagesBefore === 0}\"\n @click=\"${handleClickPrevButton}\"\n aria-label=\"${prevButtonText || defaultPrevButtonText}\"\n title=\"${prevButtonText || defaultPrevButtonText}\">\n ${CaretLeft20()}\n </button>\n <span\n part=\"status\"\n class=\"${prefix}--carousel__navigation__status\"\n aria-hidden=\"true\"\n >${formatStatus(status)}</span\n >\n <span\n class=\"${prefix}--visually-hidden\"\n aria-live=\"polite\"\n part=\"visually-hidden\"></span>\n <button\n part=\"next-button\"\n class=\"${prefix}--btn ${prefix}--btn--tertiary ${prefix}--btn--icon-only ${prefix}--carousel__navigation__btn\"\n ?disabled=\"${pagesSince <= 1}\"\n @click=\"${handleClickNextButton}\"\n aria-label=\"${nextButtonText || defaultNextButtonText}\"\n title=\"${nextButtonText || defaultNextButtonText}\">\n ${CaretRight20()}\n </button>\n </nav>\n </div>\n `;\n }\n\n /**\n * The CSS custom property name for the live page size.\n * If the CSS custom property is set to `<div class=\"cds--carousel__scroll-container\">`\n * or its ancestor (e.g. the host `<c4d-carousel>`), this is set automatically from the CSS custom property.\n */\n static get customPropertyPageSize() {\n return `--${c4dPrefix}--carousel--page-size`;\n }\n\n /**\n * The name of the custom event fired when the video title is updated\n */\n static get eventVideoTitleUpdated() {\n return `${c4dPrefix}-card-video-title-updated`;\n }\n\n /**\n * The selector for the card component\n */\n static get selectorItem() {\n return `${c4dPrefix}-card`;\n }\n\n // /**\n // * The selector for the card cta\n // */\n // static get selectorItemCardCTA() {\n // return `${c4dPrefix}-card`;\n // }\n\n /**\n * The selector for the video cta container\n */\n static get selectorItemVideoCTAContainer() {\n return `${c4dPrefix}-video-cta-container`;\n }\n\n /**\n * A selector that will return the card item's eyebrow\n */\n static get selectorItemEyebrow() {\n return `${c4dPrefix}-card-eyebrow`;\n }\n\n /**\n * A selector that will return the card item's tag group\n */\n static get selectorItemTagGroup() {\n return `div`;\n }\n\n /**\n * A selector that will return the card item's tag group\n */\n static get selectorItemParagraph() {\n return `p`;\n }\n\n /**\n * A selector that will return the card item's heading\n */\n static get selectorItemHeading() {\n return `${c4dPrefix}-card-heading`;\n }\n\n /**\n * A selector that will return the card item's footer\n */\n static get selectorItemFooter() {\n return `${c4dPrefix}-card-footer`;\n }\n\n static get stableSelector() {\n return `${c4dPrefix}--carousel`;\n }\n\n /**\n * A selector selecting tabbable nodes.\n */\n static get selectorTabbable() {\n return `\n ${selectorTabbable}\n `;\n }\n\n static styles = styles;\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DCarousel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"carousel.js","names":["LitElement","html","customElement","property","query","state","slow01","classMap","CaretLeft20","CaretRight20","HostListener","HostListenerMixin","selectorTabbable","settings","sameHeight","styles","StableSelectorMixin","ifDefined","prefix","stablePrefix","c4dPrefix","MAX_GESTURE_DURATION","MIN_DISTANCE_TRAVELLED","headingBottomMargin","minIntersectionRatio","C4DCarousel","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","decorators","key","value","Math","max","min","_onIntersect","entries","_announcementNode","announcementNode","formatAnnouncement","_getStatus","status","_intersectionTimeout","timeout","forEach","entry","target","isIntersecting","intersectionRatio","inert","setAttribute","clearTimeout","delay","parseInt","setTimeout","innerText","_cleanAndCreateObserverResize","create","_contentsNode","contentsNode","_observerResizeContainer","disconnect","_observerResizeRoot","ResizeObserver","_observeResizeRoot","observe","ownerDocument","documentElement","_observeResizeContainer","_cleanAndCreateObserverIntersection","_containerNode","containerNode","_intersectionObserver","IntersectionObserver","bind","root","threshold","_intersectionThresholdDifference","_handleScrollFocus","scrollTo","containsCurrent","contains","currentItemIndex","Array","from","_childItems","carouselItem","index","start","pageSize","nextStart","floor","pageOffset","event","_setSameHeight","_handleClickNextButton","_total","total","_handleIsScrolling","_handleClickPrevButton","_this$_contentsNode","_isScrolling","addEventListener","_handleTouchStartEvent","_startPos","touches","clientX","_startTime","Date","getTime","_handleTouchEndEvent","distTravelled","changedTouches","elapsedTime","abs","_handleSlotChange","_this$_intersectionOb","slot","name","assignedNodes","filter","node","nodeType","Node","ELEMENT_NODE","length","_updateGap","assignedElements","item","_this$_intersectionOb2","elem","matches","undefined","selectorItem","selectorItemVideoCTAContainer","e","_querySelector","_childItemEyebrows","push","querySelector","selectorItemEyebrow","_childItemParagraphs","selectorItemParagraph","_childItemTagGroup","selectorItemTagGroup","_childItemHeadings","selectorItemHeading","shadowRoot","heading","_childItemFooters","selectorItemFooter","records","contentRect","width","contentsBaseWidth","_contentsBaseWidth","customPropertyPageSize","defaultView","w","_pageSizeAuto","Number","getComputedStyle","getPropertyValue","pagesBefore","ceil","pagesSince","currentPage","pages","tagGroupHeight","groupHeight","offsetHeight","_e$nextElementSibling","nextElementSibling","style","marginBottom","_slotNode","slotNode","elems","_gap","getBoundingClientRect","left","right","_updateContentsPosition","changedProperties","has","contentsPosition","insetInlineStart","_this$shadowRoot","selectorTabbableForCarousel","querySelectorAll","attribute","visibleItemsCount","type","_pageSize","pageSizeAuto","connectedCallback","_superPropGet","containingModal","closest","hasFocusableElements","modalBody","overflow","disconnectedCallback","firstUpdated","window","updated","render","nextButtonText","_defaultNextButtonText","defaultNextButtonText","prevButtonText","_defaultPrevButtonText","defaultPrevButtonText","pageSizeExplicit","formatStatus","handleClickNextButton","handleClickPrevButton","handleScrollFocus","handleSlotChange","handleTouchStartEvent","handleTouchEndEvent","isScrolling","scrollContentsClasses","numberOfPages","hideControls","_t","_","_t2","static"],"sources":["components/carousel/carousel.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 */\nimport { LitElement, html } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { slow01 } from '@carbon/motion';\nimport { classMap } from 'lit/directives/class-map.js';\nimport CaretLeft20 from '@carbon/web-components/es/icons/caret--left/20.js';\nimport CaretRight20 from '@carbon/web-components/es/icons/caret--right/20.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 { selectorTabbable } from '@carbon/web-components/es/globals/settings.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport sameHeight from '@carbon/ibmdotcom-utilities/es/utilities/sameHeight/sameHeight.js';\nimport styles from './carousel.scss';\nimport StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport C4DExpressiveModal from '../expressive-modal/expressive-modal';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nconst { prefix, stablePrefix: c4dPrefix } = settings;\n\nconst MAX_GESTURE_DURATION = 300; // max time allowed to do swipe\nconst MIN_DISTANCE_TRAVELLED = 75; // min distance traveled to be considered swipe\nconst headingBottomMargin = 64; // tag constants used for same height calculations\n\n/**\n * Minimum percentage of a slide being visible for it to be interactable.\n */\nconst minIntersectionRatio = 0.75;\n\n/**\n * Carousel.\n *\n * @element c4d-carousel\n * @csspart prev-button - The button to go to the previous page. Usage: `c4d-carousel::part(prev-button)`\n * @csspart next-button - The button to go to the next page. Usage: `c4d-carousel::part(next-button)`\n * @csspart region - The component container. Usage: `c4d-carousel::part(region)`\n * @csspart title - The title. Usage `c4d-carousel::part(title)`\n * @csspart scroll-container - Container for the scrolling elements. Usage: `c4d-carousel::part(scroll-container)`\n * @csspart contents - The scrolling elements. Usage: `c4d-carousel::part(contents)`\n * @csspart navigation - The navigation controls. Usage: `c4d-carousel::part(navigation)`\n * @csspart status - The navigation status. Usage: `c4d-carousel::part(status)`\n * @csspart visually-hidden - The span element used to hide content from view and keep it accessible for assistive technologies. Usage: `c4d-button::part(visually-hidden)`\n */\n@customElement(`${c4dPrefix}-carousel`)\nclass C4DCarousel extends HostListenerMixin(StableSelectorMixin(LitElement)) {\n /**\n * The scrolling container node.\n */\n @query(`.${prefix}--carousel__scroll-container`)\n private _containerNode?: HTMLElement;\n\n /**\n * The scrolling contents node.\n */\n @query(`.${prefix}--carousel__scroll-contents`)\n private _contentsNode?: HTMLElement;\n\n /**\n * The node whose text content is announced to screen readers on change.\n */\n @query('[aria-live]')\n private _announcementNode!: HTMLElement;\n\n /**\n * The width of the scroll contents area node, excluding one of overflowed contents.\n */\n @state()\n private _contentsBaseWidth = 0;\n\n /**\n * The gap width between each card.\n */\n @state()\n private _gap = 0;\n\n /**\n * Array to hold the card-heading elements within child items.\n */\n private _childItems: any[] = [];\n\n /**\n * Array to hold the card-heading elements within child items.\n */\n private _childItemHeadings: any[] = [];\n\n /**\n * Array to hold the card-eyebrow elements within child items.\n */\n private _childItemEyebrows: any[] = [];\n\n /**\n * Array to hold the tag-group elements within child items.\n */\n private _childItemTagGroup: any[] = [];\n\n /**\n * Array to hold the paragraph elements within child items.\n */\n private _childItemParagraphs: any[] = [];\n\n /**\n * Array to hold the card-cta-footer elements within child items.\n */\n private _childItemFooters: any[] = [];\n\n /**\n * The observer for the resize of the scroll container.\n */\n private _observerResizeContainer: any | null = null; // TODO: Wait for `.d.ts` update to support `ResizeObserver`\n\n /**\n * The observer for the resize of the viewport.\n */\n private _observerResizeRoot: any | null = null; // TODO: Wait for `.d.ts` update to support `ResizeObserver`\n\n private _intersectionThresholdDifference =\n Math.max(0.5, minIntersectionRatio) - Math.min(0.5, minIntersectionRatio);\n\n /**\n * IntersectionObserver to watch carousel contents.\n *\n * @see connectedCallback()\n */\n private _intersectionObserver: IntersectionObserver | null = null;\n\n private _intersectionTimeout?;\n\n /**\n * IntersectionObserver callback.\n * Carousel items with more than `minIntersectionRatio` visible will interactable.\n *\n * @param {IntersectionObserverEntry[]} entries Array of observed intersections.\n */\n private _onIntersect(entries) {\n const {\n _announcementNode: announcementNode,\n formatAnnouncement,\n _getStatus: status,\n _intersectionTimeout: timeout,\n } = this;\n\n // Mark off-screen slides as [inert]\n entries.forEach((entry) => {\n const { target, isIntersecting, intersectionRatio } = entry;\n\n if (isIntersecting && intersectionRatio > minIntersectionRatio) {\n target.inert = false;\n target.setAttribute('aria-hidden', false);\n } else {\n target.inert = true;\n target.setAttribute('aria-hidden', true);\n }\n });\n\n // Wait for slide action to finish, then announce slide information\n clearTimeout(timeout);\n\n // Delay should equal the design token in the carousel's styles.\n const delay = parseInt(slow01, 10);\n\n this._intersectionTimeout = setTimeout(() => {\n announcementNode.innerText = formatAnnouncement(status);\n }, delay);\n }\n\n /**\n * The page size that is explicitly set.\n */\n @state()\n private _pageSize?: number;\n\n /**\n * The page size that is automatically calculated upon viewport size\n * via `--c4d--carousel--page-size` CSS custom property.\n * If `page-size` attribute is set, this value is ignored.\n */\n @state()\n private _pageSizeAuto = 1;\n\n /**\n * The default slot.\n */\n @query('slot:not([name])')\n private _slotNode?: HTMLSlotElement;\n\n /**\n * The number of total items.\n */\n @state()\n private _total = 0;\n\n /**\n * Initial touch position (used to detect swipe gesture)\n */\n @state()\n private _startPos = 0;\n\n /**\n * Initial touch time (used to detect swipe gesture)\n */\n @state()\n private _startTime = 0;\n\n /**\n * Whether the carousel is scrolling\n */\n @state()\n private _isScrolling = false;\n\n /**\n * Cleans-up and creates the resize observer for the scrolling container.\n *\n * @param [options] The options.\n * @param [options.create] `true` to create the new resize observer.\n */\n private _cleanAndCreateObserverResize({ create }: { create?: boolean } = {}) {\n const { _contentsNode: contentsNode } = this;\n if (contentsNode) {\n if (this._observerResizeContainer) {\n this._observerResizeContainer.disconnect();\n this._observerResizeContainer = null;\n }\n if (this._observerResizeRoot) {\n this._observerResizeRoot.disconnect();\n this._observerResizeRoot = null;\n }\n if (create) {\n // TODO: Wait for `.d.ts` update to support `ResizeObserver`\n // @ts-ignore\n this._observerResizeRoot = new ResizeObserver(this._observeResizeRoot);\n this._observerResizeRoot.observe(this.ownerDocument!.documentElement);\n // TODO: Wait for `.d.ts` update to support `ResizeObserver`\n // @ts-ignore\n this._observerResizeContainer = new ResizeObserver(\n this._observeResizeContainer\n );\n this._observerResizeContainer.observe(contentsNode);\n }\n }\n }\n\n /**\n * Cleans-up and creates the intersection observer for the scrolling container.\n *\n * @param [options] The options.\n * @param [options.create] `true` to create the new intersection observer.\n */\n private _cleanAndCreateObserverIntersection({\n create,\n }: { create?: boolean } = {}) {\n const { _containerNode: containerNode } = this;\n // Avoid creating the intersection observer prematurely by checking that\n // this._containerNode has been set.\n if (containerNode) {\n if (this._intersectionObserver) {\n this._intersectionObserver.disconnect();\n this._intersectionObserver = null;\n }\n if (create) {\n // As items cross the minIntersectionRatio `inert` and `aria-hidden` are\n // toggled.\n this._intersectionObserver = new IntersectionObserver(\n this._onIntersect.bind(this),\n {\n root: containerNode,\n threshold: [\n 0.5 + this._intersectionThresholdDifference,\n 0.5 - this._intersectionThresholdDifference,\n ],\n }\n );\n }\n }\n }\n\n /**\n * Stops the container from scrolling when focusing on a card outside the viewport.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n // eslint-disable-next-line class-methods-use-this\n private _handleScrollFocus({ target }: Event) {\n (target as HTMLElement).scrollTo(0, 0);\n }\n\n /**\n * Handles card focus throughout pages.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n @HostListener('shadowRoot:focusin')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleFocus = async ({ target }: FocusEvent) => {\n const containsCurrent =\n target !== this && this.contains(target as HTMLElement);\n let currentItemIndex = 0;\n Array.from(this._childItems).forEach((carouselItem, index) => {\n if (carouselItem.contains(target as HTMLElement)) {\n currentItemIndex = index;\n }\n });\n\n // Calculates proper page to display if focus is outside the current page\n if (\n containsCurrent &&\n (currentItemIndex < this.start ||\n currentItemIndex >= this.start + this.pageSize)\n ) {\n // The `currentIndex` floored by `pageSize`\n const nextStart =\n Math.floor(currentItemIndex / this.pageSize) * this.pageSize;\n const pageOffset = this.start % this.pageSize;\n\n // Ensures the page moves by `this.pageSize` in either direction\n this.start = nextStart + pageOffset;\n }\n };\n\n /**\n * Handles card with video heading and applies the set same height function.\n *\n * @param event The event.\n */\n @HostListener(`document:eventVideoTitleUpdated`)\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleVideoTitleUpdate = async (event: FocusEvent) => {\n if (event) {\n this._setSameHeight();\n }\n };\n\n /**\n * Handles `click` event on the next button.\n */\n private _handleClickNextButton() {\n const { pageSize, start, _total: total } = this;\n this.start = Math.min(start + pageSize, total - 1);\n this._handleIsScrolling();\n }\n\n /**\n * Handles `click` event on the prev button.\n */\n private _handleClickPrevButton() {\n const { pageSize, start } = this;\n this.start = Math.max(start - pageSize, 0);\n this._handleIsScrolling();\n }\n\n /**\n * Sets scrolling state of carousel\n */\n private _handleIsScrolling() {\n this._isScrolling = true;\n this._contentsNode?.addEventListener('transitionend', () => {\n this._isScrolling = false;\n });\n }\n\n /**\n * Handles `touchstart` event.\n */\n private _handleTouchStartEvent(event: TouchEvent) {\n this._startPos = event.touches[0].clientX;\n this._startTime = new Date().getTime();\n }\n\n /**\n * Handles `touchend` event.\n */\n private _handleTouchEndEvent(event: TouchEvent) {\n const { _startPos, _startTime } = this;\n const { pageSize, start, _total: total } = this;\n\n const distTravelled = event.changedTouches[0].clientX - _startPos; // distance travelled\n const elapsedTime = new Date().getTime() - _startTime; // elapsed time\n\n if (\n elapsedTime <= MAX_GESTURE_DURATION &&\n Math.abs(distTravelled) >= MIN_DISTANCE_TRAVELLED\n ) {\n if (distTravelled < 0) {\n this.start = Math.min(start + pageSize, total - 1);\n } else {\n this.start = Math.max(start - pageSize, 0);\n }\n }\n }\n\n /**\n * Handles `slotchange` event.\n */\n private _handleSlotChange(event: Event) {\n const slot = event.target as HTMLSlotElement;\n const { name } = slot;\n if (!name) {\n this._total = slot\n .assignedNodes()\n .filter((node) => node.nodeType === Node.ELEMENT_NODE).length;\n }\n this._updateGap();\n\n this._childItems = (event.target as HTMLSlotElement).assignedElements();\n\n this._intersectionObserver?.disconnect();\n\n this._childItems.forEach((item) => {\n this._intersectionObserver?.observe(item);\n });\n\n // retrieve item heading, eyebrows, and footers to set same height\n if (this._childItems) {\n this._childItems\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof C4DCarousel).selectorItem\n ) ||\n (elem as HTMLElement).matches(\n (this.constructor as typeof C4DCarousel)\n .selectorItemVideoCTAContainer\n )\n : false\n )\n .forEach((e) => {\n this._childItemEyebrows.push(\n (e as HTMLElement).querySelector(\n (this.constructor as typeof C4DCarousel).selectorItemEyebrow\n )\n );\n this._childItemParagraphs.push(\n (e as HTMLElement).querySelector(\n (this.constructor as typeof C4DCarousel).selectorItemParagraph\n )\n );\n this._childItemTagGroup.push(\n (e as HTMLElement).querySelector(\n (this.constructor as typeof C4DCarousel).selectorItemTagGroup\n )\n );\n\n this._childItemHeadings.push(\n (e as HTMLElement).querySelector(\n (this.constructor as typeof C4DCarousel).selectorItemHeading\n )\n );\n\n // gets card cta-type=\"video\" headings\n this._childItemHeadings.push(\n (e as HTMLElement)\n .querySelector(\n (this.constructor as typeof C4DCarousel).selectorItem\n )\n ?.shadowRoot?.querySelector(\n (this.constructor as typeof C4DCarousel).selectorItemHeading\n )\n );\n\n this._childItemHeadings = this._childItemHeadings.filter(\n (heading) => heading\n );\n\n this._childItemFooters.push(\n (e as HTMLElement).querySelector(\n (this.constructor as typeof C4DCarousel).selectorItemFooter\n )\n );\n });\n this._observeResizeRoot();\n }\n }\n\n /**\n * The observer for the resize of the scroll container.\n */\n private _observeResizeContainer = (records) => {\n const { contentRect } = records[records.length - 1];\n const { width: contentsBaseWidth } = contentRect;\n this._contentsBaseWidth = contentsBaseWidth;\n this._updateGap();\n };\n\n /**\n * The observer for the resize of the viewport.\n */\n private _observeResizeRoot = () => {\n const { customPropertyPageSize } = this.constructor as typeof C4DCarousel;\n const { _contentsNode: contentsNode } = this;\n const { defaultView: w } = this.ownerDocument!;\n this._pageSizeAuto = Number(\n w!\n .getComputedStyle(contentsNode!)\n .getPropertyValue(customPropertyPageSize)\n );\n this._setSameHeight();\n };\n\n private get _getStatus() {\n const { start, pageSize, _total: total } = this;\n // Copes with the condition where `start % pageSize` is non-zero\n const pagesBefore = Math.ceil(start / pageSize);\n const pagesSince = Math.ceil((total - start) / pageSize);\n return {\n currentPage: Math.ceil(start / pageSize) + 1,\n pages: pagesBefore + pagesSince,\n };\n }\n\n private _setSameHeight = () => {\n // check if items are not null before using sameHeight\n\n sameHeight(\n this._childItemEyebrows.filter((item) => item !== null),\n 'sm'\n );\n\n sameHeight(\n this._childItemHeadings.filter((item) => item !== null),\n 'sm'\n );\n sameHeight(\n this._childItemParagraphs.filter((item) => item !== null),\n 'sm'\n );\n sameHeight(\n this._childItemFooters.filter((item) => item !== null),\n 'sm'\n );\n\n let tagGroupHeight = 0;\n\n // Get the tallest height of tag groups.\n this._childItemTagGroup.forEach((item) => {\n if (item) {\n const groupHeight = (item as HTMLElement).offsetHeight;\n if (groupHeight > tagGroupHeight) {\n tagGroupHeight = groupHeight;\n }\n }\n });\n\n this._childItemHeadings.forEach((e) => {\n // add tag group height to heading to the cards lacking tag group\n if (\n e &&\n !e.nextElementSibling?.matches(\n (this.constructor as typeof C4DCarousel).selectorItemTagGroup\n )\n ) {\n e.style.marginBottom = `${tagGroupHeight + headingBottomMargin}px`;\n }\n });\n };\n\n /**\n * Calculates the width between cards.\n */\n private _updateGap() {\n const { _slotNode: slotNode } = this;\n const elems = slotNode!.assignedElements();\n\n this._gap =\n elems.length <= 2\n ? 0\n : elems[1].getBoundingClientRect().left -\n elems[0].getBoundingClientRect().right;\n }\n\n private _updateContentsPosition(changedProperties) {\n // The calculation of the contents position is base on start,\n // _contentsBaseWidth, _gap and pageSize. If none of them changed, we've\n // got nothing to do.\n if (\n !changedProperties.has('start') &&\n !changedProperties.has('_contentsBaseWidth') &&\n !changedProperties.has('_gap') &&\n !changedProperties.has('pageSize')\n ) {\n return;\n }\n\n // Hard to update the contents node if it hasn't yet been populated. Return\n // early if it's falsy.\n if (!this._contentsNode) {\n return;\n }\n\n const contentsPosition =\n (-this.start * (this._contentsBaseWidth + this._gap)) / this.pageSize;\n this._contentsNode.style.insetInlineStart = `${contentsPosition}px`;\n }\n\n get focusableElements() {\n const { selectorTabbable: selectorTabbableForCarousel } = this\n .constructor as typeof C4DExpressiveModal;\n return [\n ...Array.from(\n (this.shadowRoot?.querySelectorAll(\n selectorTabbableForCarousel\n ) as NodeListOf<HTMLElement>) || []\n ),\n ...Array.from(\n this.querySelectorAll(\n selectorTabbableForCarousel\n ) as NodeListOf<HTMLElement>\n ),\n ];\n }\n\n /**\n * The formatters for the pagination status & aria-live announcement.\n * Should be changed with the locale in which the UI is rendered.\n */\n @property({ attribute: false })\n formatStatus = ({ currentPage, pages }) => `${currentPage} / ${pages}`;\n\n @property({ attribute: false })\n formatAnnouncement = ({ currentPage, pages }) => {\n const visibleItemsCount = this._childItems.filter(\n (item) => !item.matches('[inert]')\n ).length;\n\n return `Slide ${currentPage} of ${pages}. Showing ${visibleItemsCount} items.`;\n };\n\n /**\n * Number of items per page.\n * If `--c4d--carousel--page-size` CSS custom property is set to `<div class=\"cds--carousel__scroll-container\">`\n * or its ancestor (e.g. the host `<c4d-carousel>`), this is set automatically from `--c4d--carousel--page-size`.\n */\n @property({ type: Number, attribute: 'page-size' })\n get pageSize() {\n const { _pageSize: pageSize, _pageSizeAuto: pageSizeAuto } = this;\n return pageSize ?? pageSizeAuto;\n }\n\n set pageSize(value: number) {\n this._pageSize = value;\n // Don't call `.requestUpdate()` here given we track updates via `_pageSize` and `_pageSizeAuto`\n }\n\n /**\n * The assistive text for the button to go to next slide/group.\n */\n @property({ attribute: 'next-button-text' })\n nextButtonText?: string;\n\n private _defaultNextButtonText = 'next';\n\n private _defaultPrevButtonText = 'previous';\n\n /**\n * The assistive text for the button to go to previous slide/group.\n */\n @property({ attribute: 'prev-button-text' })\n prevButtonText?: string;\n\n /**\n * The current zero-based index of the left-most card.\n */\n @property({ type: Number })\n start = 0;\n\n connectedCallback() {\n super.connectedCallback();\n this._cleanAndCreateObserverResize({ create: true });\n this._cleanAndCreateObserverIntersection({ create: true });\n\n const containingModal = this.closest(\n `${c4dPrefix}-expressive-modal`\n ) as C4DExpressiveModal | null;\n if (containingModal) {\n containingModal.hasFocusableElements.push(this);\n this.setAttribute('in-modal', '');\n\n setTimeout(() => {\n containingModal.modalBody!.style.overflow = 'hidden';\n containingModal.modalBody!.style.width = 'var(--modal-vw)';\n }, 0);\n }\n }\n\n disconnectedCallback() {\n this._cleanAndCreateObserverResize();\n this._cleanAndCreateObserverIntersection();\n super.disconnectedCallback();\n }\n\n firstUpdated() {\n this._cleanAndCreateObserverResize({ create: true });\n this._cleanAndCreateObserverIntersection({ create: true });\n // Reflect the current writing mode in the dir attribute so that we can\n // make styling adjustments.\n this.setAttribute(\n 'dir',\n window.getComputedStyle(this).getPropertyValue('direction')\n );\n }\n\n updated(changedProperties) {\n this._updateContentsPosition(changedProperties);\n }\n\n render() {\n const { customPropertyPageSize } = this.constructor as typeof C4DCarousel;\n const {\n nextButtonText,\n _defaultNextButtonText: defaultNextButtonText,\n pageSize,\n prevButtonText,\n _defaultPrevButtonText: defaultPrevButtonText,\n start,\n _pageSize: pageSizeExplicit,\n _total: total,\n _getStatus: status,\n formatStatus,\n _handleClickNextButton: handleClickNextButton,\n _handleClickPrevButton: handleClickPrevButton,\n _handleScrollFocus: handleScrollFocus,\n _handleSlotChange: handleSlotChange,\n _handleTouchStartEvent: handleTouchStartEvent,\n _handleTouchEndEvent: handleTouchEndEvent,\n _isScrolling: isScrolling,\n } = this;\n // Copes with the condition where `start % pageSize` is non-zero\n const pagesBefore = Math.ceil(start / pageSize);\n const pagesSince = Math.ceil((total - start) / pageSize);\n const scrollContentsClasses = classMap({\n [`${prefix}--carousel__scroll-contents`]: true,\n [`${prefix}--carousel__scroll-contents--scrolling`]: isScrolling,\n });\n\n // Hide the navigation controls if there is only one page\n const numberOfPages = this.formatStatus(status);\n const hideControls = numberOfPages === '1 / 1';\n\n // Use another div from the host `<c4d-carousel>` to reflect private state\n return html`\n <div part=\"region\" role=\"region\" aria-labelledby=\"carousel-title\">\n <div part=\"title\" id=\"carousel-title\">\n <slot name=\"title\">\n <span class=\"cds--visually-hidden\" part=\"visually-hidden\"\n >Carousel</span\n >\n </slot>\n </div>\n <div\n part=\"scroll-container\"\n class=\"${prefix}--carousel__scroll-container\"\n @scroll=\"${handleScrollFocus}\"\n @touchstart=\"${handleTouchStartEvent}\"\n @touchend=\"${handleTouchEndEvent}\"\n style=\"${ifDefined(\n pageSizeExplicit == null\n ? null\n : `${customPropertyPageSize}: ${pageSizeExplicit}`\n )}\">\n <div part=\"contents\" class=\"${scrollContentsClasses}\">\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n </div>\n </div>\n\n ${!hideControls\n ? html`\n <nav\n part=\"navigation\"\n aria-label=\"Carousel Navigation\"\n class=\"${prefix}--carousel__navigation\">\n <button\n part=\"prev-button\"\n class=\"${prefix}--btn ${prefix}--btn--tertiary ${prefix}--btn--icon-only ${prefix}--carousel__navigation__btn\"\n ?disabled=\"${pagesBefore === 0}\"\n @click=\"${handleClickPrevButton}\"\n aria-label=\"${prevButtonText || defaultPrevButtonText}\"\n title=\"${prevButtonText || defaultPrevButtonText}\">\n ${CaretLeft20()}\n </button>\n <span\n part=\"status\"\n class=\"${prefix}--carousel__navigation__status\"\n aria-hidden=\"true\"\n >${formatStatus(status)}</span\n >\n <span\n class=\"${prefix}--visually-hidden\"\n aria-live=\"polite\"\n part=\"visually-hidden\"></span>\n <button\n part=\"next-button\"\n class=\"${prefix}--btn ${prefix}--btn--tertiary ${prefix}--btn--icon-only ${prefix}--carousel__navigation__btn\"\n ?disabled=\"${pagesSince <= 1}\"\n @click=\"${handleClickNextButton}\"\n aria-label=\"${nextButtonText || defaultNextButtonText}\"\n title=\"${nextButtonText || defaultNextButtonText}\">\n ${CaretRight20()}\n </button>\n </nav>\n `\n : ''}\n </div>\n `;\n }\n\n /**\n * The CSS custom property name for the live page size.\n * If the CSS custom property is set to `<div class=\"cds--carousel__scroll-container\">`\n * or its ancestor (e.g. the host `<c4d-carousel>`), this is set automatically from the CSS custom property.\n */\n static get customPropertyPageSize() {\n return `--${c4dPrefix}--carousel--page-size`;\n }\n\n /**\n * The name of the custom event fired when the video title is updated\n */\n static get eventVideoTitleUpdated() {\n return `${c4dPrefix}-card-video-title-updated`;\n }\n\n /**\n * The selector for the card component\n */\n static get selectorItem() {\n return `${c4dPrefix}-card`;\n }\n\n // /**\n // * The selector for the card cta\n // */\n // static get selectorItemCardCTA() {\n // return `${c4dPrefix}-card`;\n // }\n\n /**\n * The selector for the video cta container\n */\n static get selectorItemVideoCTAContainer() {\n return `${c4dPrefix}-video-cta-container`;\n }\n\n /**\n * A selector that will return the card item's eyebrow\n */\n static get selectorItemEyebrow() {\n return `${c4dPrefix}-card-eyebrow`;\n }\n\n /**\n * A selector that will return the card item's tag group\n */\n static get selectorItemTagGroup() {\n return `div`;\n }\n\n /**\n * A selector that will return the card item's tag group\n */\n static get selectorItemParagraph() {\n return `p`;\n }\n\n /**\n * A selector that will return the card item's heading\n */\n static get selectorItemHeading() {\n return `${c4dPrefix}-card-heading`;\n }\n\n /**\n * A selector that will return the card item's footer\n */\n static get selectorItemFooter() {\n return `${c4dPrefix}-card-footer`;\n }\n\n static get stableSelector() {\n return `${c4dPrefix}--carousel`;\n }\n\n /**\n * A selector selecting tabbable nodes.\n */\n static get selectorTabbable() {\n return `\n ${selectorTabbable}\n `;\n }\n\n static styles = styles;\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DCarousel;\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, 2025
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.
@@ -354,6 +354,8 @@ declare const C4DContentBlockParagraph_base: {
354
354
  * @element c4d-content-block-paragraph
355
355
  */
356
356
  declare class C4DContentBlockParagraph extends C4DContentBlockParagraph_base {
357
+ firstUpdated(): void;
358
+ toggleVisibility(): void;
357
359
  render(): import("lit-html").TemplateResult<1>;
358
360
  static get stableSelector(): string;
359
361
  static styles: any;
@@ -4,7 +4,7 @@ let _ = t => t,
4
4
  /**
5
5
  * @license
6
6
  *
7
- * Copyright IBM Corp. 2020, 2024
7
+ * Copyright IBM Corp. 2020, 2025
8
8
  *
9
9
  * This source code is licensed under the Apache-2.0 license found in the
10
10
  * LICENSE file in the root directory of this source tree.
@@ -34,6 +34,50 @@ let C4DContentBlockParagraph = _decorate([customElement(`${c4dPrefix}-content-bl
34
34
  return {
35
35
  F: C4DContentBlockParagraph,
36
36
  d: [{
37
+ kind: "method",
38
+ key: "firstUpdated",
39
+ value: function firstUpdated() {
40
+ if (!this.shadowRoot) {
41
+ return;
42
+ }
43
+ const slot = this.shadowRoot.querySelector('slot');
44
+ if (slot) {
45
+ slot.addEventListener('slotchange', () => {
46
+ this.toggleVisibility();
47
+ });
48
+ }
49
+ this.toggleVisibility();
50
+ }
51
+ }, {
52
+ kind: "method",
53
+ key: "toggleVisibility",
54
+ value: function toggleVisibility() {
55
+ if (!this.shadowRoot) {
56
+ return;
57
+ }
58
+ const slot = this.shadowRoot.querySelector('slot');
59
+ if (!slot) {
60
+ return;
61
+ }
62
+ const assignedNodes = slot.assignedNodes({
63
+ flatten: true
64
+ });
65
+
66
+ // Check if all assigned nodes are empty or whitespace
67
+ const isEmpty = assignedNodes.every(node => {
68
+ var _node$textContent;
69
+ // Ensure `textContent` is non-null and trim for whitespace check
70
+ return node.nodeType !== Node.TEXT_NODE || !((_node$textContent = node.textContent) !== null && _node$textContent !== void 0 && _node$textContent.trim());
71
+ });
72
+
73
+ // Hide or show the element based on slot content
74
+ if (isEmpty) {
75
+ this.style.display = 'none';
76
+ } else {
77
+ this.style.display = 'block';
78
+ }
79
+ }
80
+ }, {
37
81
  kind: "method",
38
82
  key: "render",
39
83
  value: function render() {
@@ -1 +1 @@
1
- {"version":3,"file":"content-block-paragraph.js","names":["LitElement","html","settings","styles","StableSelectorMixin","carbonElement","customElement","stablePrefix","c4dPrefix","C4DContentBlockParagraph","_decorate","_initialize","_StableSelectorMixin","constructor","args","F","d","kind","key","value","render","_t","_","static"],"sources":["components/content-block/content-block-paragraph.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 settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport styles from './content-block.scss';\nimport StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\n\nconst { stablePrefix: c4dPrefix } = settings;\n\n/**\n * The paragraph content in content block.\n *\n * @element c4d-content-block-paragraph\n */\n@customElement(`${c4dPrefix}-content-block-paragraph`)\nclass C4DContentBlockParagraph extends StableSelectorMixin(LitElement) {\n render() {\n return html` <slot></slot> `;\n }\n\n static get stableSelector() {\n return `${c4dPrefix}--content-block-paragraph`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default C4DContentBlockParagraph;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,EAAEC,IAAI,QAAQ,KAAK;AACtC,OAAOC,QAAQ,MAAM,+DAA+D;AACpF,OAAOC,MAAM,MAAM,0BAAsB;AACzC,OAAOC,mBAAmB,MAAM,yCAAsC;AACtE,SAASC,aAAa,IAAIC,aAAa,QAAQ,gEAAgE;AAE/G,MAAM;EAAEC,YAAY,EAAEC;AAAU,CAAC,GAAGN,QAAQ;;AAE5C;AACA;AACA;AACA;AACA;AAJA,IAMMO,wBAAwB,GAAAC,SAAA,EAD7BJ,aAAa,CAAC,GAAGE,SAAS,0BAA0B,CAAC,aAAAG,WAAA,EAAAC,oBAAA;EAAtD,MACMH,wBAAwB,SAAAG,oBAAA,CAAyC;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAUvE;EAAC;IAAAI,CAAA,EAVKN,wBAAwB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAC5B,SAAAC,MAAMA,CAAA,EAAG;QACP,OAAOnB,IAAI,CAAAoB,EAAA,KAAAA,EAAA,GAAAC,CAAA;MACb;IAAC;MAAAL,IAAA;MAAAM,MAAA;MAAAL,GAAA;MAAAC,KAAA,EAED,SAAAA,CAAA,EAA4B;QAC1B,OAAO,GAAGX,SAAS,2BAA2B;MAChD;IAAC;MAAAS,IAAA;MAAAM,MAAA;MAAAL,GAAA;MAAAC,MAAA;QAAA,OAEehB,MAAM;MAAA;IAAA;EAAA;AAAA,GATeC,mBAAmB,CAACJ,UAAU,CAAC;AAYtE,eAAeS,wBAAwB","ignoreList":[]}
1
+ {"version":3,"file":"content-block-paragraph.js","names":["LitElement","html","settings","styles","StableSelectorMixin","carbonElement","customElement","stablePrefix","c4dPrefix","C4DContentBlockParagraph","_decorate","_initialize","_StableSelectorMixin","constructor","args","F","d","kind","key","value","firstUpdated","shadowRoot","slot","querySelector","addEventListener","toggleVisibility","assignedNodes","flatten","isEmpty","every","node","_node$textContent","nodeType","Node","TEXT_NODE","textContent","trim","style","display","render","_t","_","static"],"sources":["components/content-block/content-block-paragraph.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 { LitElement, html } from 'lit';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport styles from './content-block.scss';\nimport StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\n\nconst { stablePrefix: c4dPrefix } = settings;\n\n/**\n * The paragraph content in content block.\n *\n * @element c4d-content-block-paragraph\n */\n@customElement(`${c4dPrefix}-content-block-paragraph`)\nclass C4DContentBlockParagraph extends StableSelectorMixin(LitElement) {\n firstUpdated() {\n if (!this.shadowRoot) {\n return;\n }\n\n const slot = this.shadowRoot.querySelector('slot');\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.toggleVisibility();\n });\n }\n\n this.toggleVisibility();\n }\n\n toggleVisibility() {\n if (!this.shadowRoot) {\n return;\n }\n\n const slot = this.shadowRoot.querySelector('slot');\n if (!slot) {\n return;\n }\n\n const assignedNodes = slot.assignedNodes({ flatten: true });\n\n // Check if all assigned nodes are empty or whitespace\n const isEmpty = assignedNodes.every((node) => {\n // Ensure `textContent` is non-null and trim for whitespace check\n return node.nodeType !== Node.TEXT_NODE || !node.textContent?.trim();\n });\n\n // Hide or show the element based on slot content\n if (isEmpty) {\n this.style.display = 'none';\n } else {\n this.style.display = 'block';\n }\n }\n\n render() {\n return html` <slot></slot> `;\n }\n\n static get stableSelector() {\n return `${c4dPrefix}--content-block-paragraph`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default C4DContentBlockParagraph;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,EAAEC,IAAI,QAAQ,KAAK;AACtC,OAAOC,QAAQ,MAAM,+DAA+D;AACpF,OAAOC,MAAM,MAAM,0BAAsB;AACzC,OAAOC,mBAAmB,MAAM,yCAAsC;AACtE,SAASC,aAAa,IAAIC,aAAa,QAAQ,gEAAgE;AAE/G,MAAM;EAAEC,YAAY,EAAEC;AAAU,CAAC,GAAGN,QAAQ;;AAE5C;AACA;AACA;AACA;AACA;AAJA,IAMMO,wBAAwB,GAAAC,SAAA,EAD7BJ,aAAa,CAAC,GAAGE,SAAS,0BAA0B,CAAC,aAAAG,WAAA,EAAAC,oBAAA;EAAtD,MACMH,wBAAwB,SAAAG,oBAAA,CAAyC;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAmDvE;EAAC;IAAAI,CAAA,EAnDKN,wBAAwB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAC5B,SAAAC,YAAYA,CAAA,EAAG;QACb,IAAI,CAAC,IAAI,CAACC,UAAU,EAAE;UACpB;QACF;QAEA,MAAMC,IAAI,GAAG,IAAI,CAACD,UAAU,CAACE,aAAa,CAAC,MAAM,CAAC;QAClD,IAAID,IAAI,EAAE;UACRA,IAAI,CAACE,gBAAgB,CAAC,YAAY,EAAE,MAAM;YACxC,IAAI,CAACC,gBAAgB,CAAC,CAAC;UACzB,CAAC,CAAC;QACJ;QAEA,IAAI,CAACA,gBAAgB,CAAC,CAAC;MACzB;IAAC;MAAAR,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAM,gBAAgBA,CAAA,EAAG;QACjB,IAAI,CAAC,IAAI,CAACJ,UAAU,EAAE;UACpB;QACF;QAEA,MAAMC,IAAI,GAAG,IAAI,CAACD,UAAU,CAACE,aAAa,CAAC,MAAM,CAAC;QAClD,IAAI,CAACD,IAAI,EAAE;UACT;QACF;QAEA,MAAMI,aAAa,GAAGJ,IAAI,CAACI,aAAa,CAAC;UAAEC,OAAO,EAAE;QAAK,CAAC,CAAC;;QAE3D;QACA,MAAMC,OAAO,GAAGF,aAAa,CAACG,KAAK,CAAEC,IAAI,IAAK;UAAA,IAAAC,iBAAA;UAC5C;UACA,OAAOD,IAAI,CAACE,QAAQ,KAAKC,IAAI,CAACC,SAAS,IAAI,GAAAH,iBAAA,GAACD,IAAI,CAACK,WAAW,cAAAJ,iBAAA,eAAhBA,iBAAA,CAAkBK,IAAI,CAAC,CAAC;QACtE,CAAC,CAAC;;QAEF;QACA,IAAIR,OAAO,EAAE;UACX,IAAI,CAACS,KAAK,CAACC,OAAO,GAAG,MAAM;QAC7B,CAAC,MAAM;UACL,IAAI,CAACD,KAAK,CAACC,OAAO,GAAG,OAAO;QAC9B;MACF;IAAC;MAAArB,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAoB,MAAMA,CAAA,EAAG;QACP,OAAOtC,IAAI,CAAAuC,EAAA,KAAAA,EAAA,GAAAC,CAAA;MACb;IAAC;MAAAxB,IAAA;MAAAyB,MAAA;MAAAxB,GAAA;MAAAC,KAAA,EAED,SAAAA,CAAA,EAA4B;QAC1B,OAAO,GAAGX,SAAS,2BAA2B;MAChD;IAAC;MAAAS,IAAA;MAAAyB,MAAA;MAAAxB,GAAA;MAAAC,MAAA;QAAA,OAEehB,MAAM;MAAA;IAAA;EAAA;AAAA,GAlDeC,mBAAmB,CAACJ,UAAU,CAAC;AAqDtE,eAAeS,wBAAwB","ignoreList":[]}
@@ -1,11 +1,24 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2021
4
+ * Copyright IBM Corp. 2020, 2025
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.
8
8
  */
9
+ /**
10
+ * Type of the Media Alignment
11
+ */
12
+ export declare enum MEDIA_ALIGNMENT {
13
+ /**
14
+ * Right alignment
15
+ */
16
+ RIGHT = "right",
17
+ /**
18
+ * Left alignment
19
+ */
20
+ LEFT = "left"
21
+ }
9
22
  /**
10
23
  * Type of color scheme
11
24
  */
@@ -1,15 +1,24 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2021
4
+ * Copyright IBM Corp. 2020, 2025
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.
8
8
  */
9
9
 
10
+ /**
11
+ * Type of the Media Alignment
12
+ */
13
+ export let MEDIA_ALIGNMENT;
14
+
10
15
  /**
11
16
  * Type of color scheme
12
17
  */
18
+ (function (MEDIA_ALIGNMENT) {
19
+ MEDIA_ALIGNMENT["RIGHT"] = "right";
20
+ MEDIA_ALIGNMENT["LEFT"] = "left";
21
+ })(MEDIA_ALIGNMENT || (MEDIA_ALIGNMENT = {}));
13
22
  export let COLOR_SCHEME;
14
23
  (function (COLOR_SCHEME) {
15
24
  COLOR_SCHEME["REGULAR"] = "regular";
@@ -1 +1 @@
1
- {"version":3,"file":"defs.js","names":["COLOR_SCHEME"],"sources":["components/feature-section/defs.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2021\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\n/**\n * Type of color scheme\n */\nexport enum COLOR_SCHEME {\n /**\n * Regular color scheme\n */\n REGULAR = 'regular',\n\n /**\n * Inverse color scheme\n */\n INVERSE = 'inverse',\n\n /**\n * Cyan color scheme\n */\n CYAN = 'cyan',\n\n /**\n * Purple color scheme\n */\n PURPLE = 'purple',\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAYA,YAAY;AAoBvB,WApBWA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;AAAA,GAAZA,YAAY,KAAZA,YAAY","ignoreList":[]}
1
+ {"version":3,"file":"defs.js","names":["MEDIA_ALIGNMENT","COLOR_SCHEME"],"sources":["components/feature-section/defs.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\n/**\n * Type of the Media Alignment\n */\nexport enum MEDIA_ALIGNMENT {\n /**\n * Right alignment\n */\n RIGHT = 'right',\n\n /**\n * Left alignment\n */\n LEFT = 'left',\n}\n\n/**\n * Type of color scheme\n */\nexport enum COLOR_SCHEME {\n /**\n * Regular color scheme\n */\n REGULAR = 'regular',\n\n /**\n * Inverse color scheme\n */\n INVERSE = 'inverse',\n\n /**\n * Cyan color scheme\n */\n CYAN = 'cyan',\n\n /**\n * Purple color scheme\n */\n PURPLE = 'purple',\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAYA,eAAe;;AAY3B;AACA;AACA;AAFA,WAZYA,eAAe;EAAfA,eAAe;EAAfA,eAAe;AAAA,GAAfA,eAAe,KAAfA,eAAe;AAe3B,WAAYC,YAAY;AAoBvB,WApBWA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;AAAA,GAAZA,YAAY,KAAZA,YAAY","ignoreList":[]}