@carbon/ibmdotcom-web-components 2.26.0 → 2.27.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.
- package/dist/dotcom-shell.js +3 -3
- package/dist/dotcom-shell.min.js +2 -2
- package/dist/ibmdotcom-web-components-dotcom-shell.js +3 -3
- package/dist/ibmdotcom-web-components-dotcom-shell.min.js +2 -2
- package/dist/{index-deaa3dbf.js → index-9093e00c.js} +4 -4
- package/dist/{index-a32abdb4.js → index-cf2955ed.js} +6 -6
- package/dist/{left-nav-menu-b4069e95.js → left-nav-menu-1f86918d.js} +2 -2
- package/dist/{left-nav-menu-897b00e7.js → left-nav-menu-7bcce0d1.js} +3 -3
- package/dist/{left-nav-menu-category-heading-4bac199c.js → left-nav-menu-category-heading-0156b27c.js} +2 -2
- package/dist/{left-nav-menu-category-heading-2ea4ff02.js → left-nav-menu-category-heading-35203104.js} +3 -3
- package/dist/{left-nav-menu-item-f9684776.js → left-nav-menu-item-5cff423a.js} +3 -3
- package/dist/{left-nav-menu-item-327fea7e.js → left-nav-menu-item-b893e7f7.js} +2 -2
- package/dist/{left-nav-menu-section-1ec9a148.js → left-nav-menu-section-bee537c4.js} +3 -3
- package/dist/{left-nav-menu-section-c2bd7681.js → left-nav-menu-section-ddf09c38.js} +2 -2
- package/dist/{left-nav-overlay-66939887.js → left-nav-overlay-72013a50.js} +3 -3
- package/dist/{left-nav-overlay-4180d21e.js → left-nav-overlay-86d5044f.js} +2 -2
- package/dist/{megamenu-category-group-90406acb.js → megamenu-category-group-bfcb5657.js} +3 -3
- package/dist/{megamenu-category-group-copy-b82b6fbd.js → megamenu-category-group-copy-6b3c004f.js} +2 -2
- package/dist/{megamenu-category-group-copy-b7446957.js → megamenu-category-group-copy-dc3bb032.js} +3 -3
- package/dist/{megamenu-category-group-768fb88e.js → megamenu-category-group-f99535df.js} +2 -2
- package/dist/{megamenu-category-heading-5c15169c.js → megamenu-category-heading-828d9604.js} +3 -3
- package/dist/{megamenu-category-heading-bf714d2d.js → megamenu-category-heading-a911cb5f.js} +2 -2
- package/dist/{megamenu-category-link-946fe0f7.js → megamenu-category-link-2b0e9a4e.js} +3 -3
- package/dist/{megamenu-category-link-57607b4d.js → megamenu-category-link-579720a6.js} +6 -6
- package/dist/{megamenu-category-link-group-4aeebfe3.js → megamenu-category-link-group-860c0049.js} +2 -2
- package/dist/{megamenu-category-link-group-0ab9f401.js → megamenu-category-link-group-9144ccd0.js} +3 -3
- package/dist/{megamenu-left-navigation-98bb7a6e.js → megamenu-left-navigation-5775f854.js} +2 -2
- package/dist/{megamenu-left-navigation-8ef67743.js → megamenu-left-navigation-fbc044dc.js} +3 -3
- package/dist/{megamenu-overlay-8a978980.js → megamenu-overlay-19d404f6.js} +2 -2
- package/dist/{megamenu-overlay-0c76222d.js → megamenu-overlay-b13619af.js} +3 -3
- package/dist/{megamenu-tab-37f4b709.js → megamenu-tab-bf19353d.js} +3 -3
- package/dist/{megamenu-tab-2ed6f468.js → megamenu-tab-d7031165.js} +2 -2
- package/es/components/carousel/carousel.js +3 -0
- package/es/components/carousel/carousel.js.map +1 -1
- package/es/components/content-block-simple/content-block-simple.css.js +1 -1
- package/es/internal/vendor/@carbon/ibmdotcom-utilities/utilities/settings/settings.js +2 -2
- package/lib/internal/vendor/@carbon/ibmdotcom-utilities/utilities/settings/settings.js +2 -2
- package/package.json +6 -6
- package/scss/components/content-block-simple/content-block-simple.scss +8 -1
|
@@ -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","dir","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, 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 */\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 = 600; // max time allowed to do swipe\nconst MIN_DISTANCE_TRAVELLED = 25; // 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 if (this.dir === 'rtl') {\n return;\n }\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 this._handleIsScrolling();\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
|
+
{"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","dir","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, 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 */\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 = 600; // max time allowed to do swipe\nconst MIN_DISTANCE_TRAVELLED = 25; // 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 if (this.dir === 'rtl') {\n return;\n }\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 this._handleIsScrolling();\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 if (this.dir === 'rtl') {\n return;\n }\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":[]}
|