@carbon/ibmdotcom-web-components 2.22.0 → 2.24.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/custom-elements.json +28 -0
- package/dist/dotcom-shell.js +2 -2
- package/dist/dotcom-shell.min.js +2 -2
- package/dist/ibmdotcom-web-components-dotcom-shell.js +2 -2
- package/dist/ibmdotcom-web-components-dotcom-shell.min.js +2 -2
- package/dist/{index-d1d84c2f.js → index-e763be5b.js} +525 -703
- package/dist/{index-fe85c5e6.js → index-e9e0dc0d.js} +7 -7
- package/dist/{left-nav-menu-497c9169.js → left-nav-menu-353311b3.js} +2 -2
- package/dist/{left-nav-menu-cd889d8d.js → left-nav-menu-a2e98b5a.js} +2 -2
- package/dist/{left-nav-menu-category-heading-8ccb4ce7.js → left-nav-menu-category-heading-404801f6.js} +2 -2
- package/dist/{left-nav-menu-category-heading-14bacdd1.js → left-nav-menu-category-heading-70403118.js} +2 -2
- package/dist/{left-nav-menu-item-803e8924.js → left-nav-menu-item-1930f6e3.js} +2 -2
- package/dist/{left-nav-menu-item-2a3c9eb0.js → left-nav-menu-item-1c788c22.js} +2 -2
- package/dist/{left-nav-menu-section-462064ef.js → left-nav-menu-section-a5aacf10.js} +2 -2
- package/dist/{left-nav-menu-section-024ec574.js → left-nav-menu-section-ce8644e6.js} +2 -2
- package/dist/{left-nav-overlay-9ec9772c.js → left-nav-overlay-5abc69f8.js} +2 -2
- package/dist/{left-nav-overlay-38b81f2f.js → left-nav-overlay-5e37dc8f.js} +2 -2
- package/dist/{megamenu-category-group-4229cc92.js → megamenu-category-group-921d7e31.js} +2 -2
- package/dist/{megamenu-category-group-f874016c.js → megamenu-category-group-a9045c01.js} +2 -2
- package/dist/{megamenu-category-group-copy-7525e13d.js → megamenu-category-group-copy-d173c916.js} +2 -2
- package/dist/{megamenu-category-group-copy-18d5977c.js → megamenu-category-group-copy-dc085be6.js} +2 -2
- package/dist/{megamenu-category-heading-6c437eed.js → megamenu-category-heading-90e67482.js} +2 -2
- package/dist/{megamenu-category-heading-05c91ceb.js → megamenu-category-heading-f07f73c0.js} +2 -2
- package/dist/{megamenu-category-link-8d5476f0.js → megamenu-category-link-dcd41f45.js} +2 -2
- package/dist/{megamenu-category-link-09ed50a1.js → megamenu-category-link-e0c9fc7a.js} +6 -6
- package/dist/{megamenu-category-link-group-fc4af18d.js → megamenu-category-link-group-1a30ccc7.js} +2 -2
- package/dist/{megamenu-category-link-group-a1418c5c.js → megamenu-category-link-group-6ff3a30d.js} +2 -2
- package/dist/{megamenu-left-navigation-cb55e7c7.js → megamenu-left-navigation-4b810f29.js} +2 -2
- package/dist/{megamenu-left-navigation-f972fc38.js → megamenu-left-navigation-fcd7c3f0.js} +2 -2
- package/dist/{megamenu-overlay-720be39f.js → megamenu-overlay-69613b97.js} +2 -2
- package/dist/{megamenu-overlay-6e2c8d97.js → megamenu-overlay-e179976a.js} +2 -2
- package/dist/{megamenu-tab-d96128cd.js → megamenu-tab-4e651fc9.js} +2 -2
- package/dist/{megamenu-tab-de78d556.js → megamenu-tab-fa23e87d.js} +2 -2
- package/es/components/callout-quote/callout-quote.css.js +1 -1
- package/es/components/card-group/card-group.css.js +1 -1
- package/es/components/card-group/card-group.d.ts +689 -2
- package/es/components/card-group/card-group.js +53 -13
- package/es/components/card-group/card-group.js.map +1 -1
- package/es/components/content-block/content-block.css.js +1 -1
- package/es/components/content-block-cards/content-block-cards.d.ts +2 -1
- package/es/components/content-block-cards/content-block-cards.js +17 -1
- package/es/components/content-block-cards/content-block-cards.js.map +1 -1
- package/es/components/content-item/content-item.d.ts +6 -2
- package/es/components/content-item/content-item.js +16 -1
- package/es/components/content-item/content-item.js.map +1 -1
- package/es/components/cta-block/cta-block-item-row.d.ts +3 -1
- package/es/components/cta-block/cta-block-item-row.js +38 -6
- package/es/components/cta-block/cta-block-item-row.js.map +1 -1
- package/es/components/cta-block/cta-block-item.d.ts +2 -2
- package/es/components/cta-block/cta-block-item.js +5 -1
- package/es/components/cta-block/cta-block-item.js.map +1 -1
- package/es/components/cta-block/cta-block.css.js +1 -1
- package/es/components/dotcom-shell/dotcom-shell.css.js +1 -1
- package/es/components/masthead/left-nav.d.ts +2 -1
- package/es/components/masthead/left-nav.js +23 -6
- package/es/components/masthead/left-nav.js.map +1 -1
- package/es/components/masthead/masthead-l1.css.js +1 -1
- package/es/components/masthead/masthead.css.js +1 -1
- package/es/components/pricing-table/pricing-table.css.js +1 -1
- package/es/components/quote/defs.d.ts +6 -2
- package/es/components/quote/defs.js +2 -1
- package/es/components/quote/defs.js.map +1 -1
- package/es/components/quote/quote.css.js +1 -1
- package/es/components/quote/quote.d.ts +4 -1
- package/es/components/quote/quote.js +45 -6
- package/es/components/quote/quote.js.map +1 -1
- package/es/components/structured-list/structured-list.css.js +1 -1
- package/es/components/table-of-contents/table-of-contents.js +2 -2
- package/es/components/table-of-contents/table-of-contents.js.map +1 -1
- package/es/components/video-player/video-player.d.ts +2 -1
- package/es/components/video-player/video-player.js +5 -3
- package/es/components/video-player/video-player.js.map +1 -1
- package/es/components-react/quote/quote.d.ts +3 -0
- package/es/components-react/video-player/video-player.d.ts +1 -0
- package/es/internal/vendor/@carbon/ibmdotcom-utilities/utilities/settings/settings.js +2 -2
- package/lib/components/quote/defs.js +2 -1
- package/lib/components/quote/defs.js.map +1 -1
- package/lib/internal/vendor/@carbon/ibmdotcom-utilities/utilities/settings/settings.js +2 -2
- package/package.json +6 -6
- package/scss/components/cta-block/cta-block.scss +37 -2
- package/scss/components/masthead/masthead-l1.scss +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-of-contents.js","names":["classMap","ifDefined","html","LitElement","property","query","queryAll","state","ChevronLeft20","ChevronRight20","HostListener","HostListenerMixin","throttle","StickyHeader","settings","styles","TOC_TYPES","StableSelectorMixin","carbonElement","customElement","MediaQueryMixin","MQBreakpoints","MQDirs","prefix","stablePrefix","c4dPrefix","buttonWidthOffset","findLastIndex","a","predicate","thisObject","i","length","C4DTableOfContents","_decorate","_initialize","_MediaQueryMixin","constructor","args","F","d","kind","decorators","reflect","attribute","key","value","DEFAULT","carbonBreakpoints","lg","matches","ownerDocument","documentElement","dir","_handleClickItem","event","_target$matches","selectorItem","target","call","_handleUserInitiatedJump","dataset","_isMobile","scrollIntoView","block","inline","behavior","preventDefault","_handleOnKeyDown","_target$matches2","_pageIsRTL","pageIsRTL","paginateAccessibile","layout","HORIZONTAL","_target$parentElement","_target$parentElement2","_target$parentElement3","parentElement","nextElementSibling","children","focus","previousElementSibling","getBoundingClientRect","right","_navBar","_paginateLeft","_target$parentElement4","_target$parentElement5","_target$parentElement6","left","_paginateRight","_target$parentElement7","_target$parentElement8","_target$parentElement9","_target$parentElement10","_target$parentElement11","_target$parentElement12","defaultView","requestAnimationFrame","_targets","items","map","elem","index","arr","height","y","position","filter","stickyOffset","bottomReached","scrollingElement","scrollTop","clientHeight","scrollHeight","_currentTarget","MutationObserver","_contentObserverCallback","bind","shadowRoot","allSlots","Array","from","querySelectorAll","allSlottedNodes","flatMap","slot","assignedNodes","_setTargets","nodes","_tagNamesToAvoid","tagNamesToAvoid","_disableTargetAttribute","disableTargetAttribute","selectorTarget","reduce","acc","node","HTMLElement","descendants","elems","_elem$innerText","_elem$dataset$title","innerText","undefined","notWhiteSpace","hasTitle","match","title","hasNameAttr","notExcluded","includes","tagName","toLowerCase","closest","push","_handleSlotChange","slottedElements","_contentMutationObserver","disconnect","forEach","observe","subtree","childList","attributeFilter","_handleSlotChangeHeading","_hasHeading","some","nodeType","Node","TEXT_NODE","textContent","trim","querySelector","masthead","currentY","window","scrollY","targetY","offsetTop","offsetHeight","parseInt","getComputedStyle","getPropertyValue","_contentDiv","scrollTo","top","setAttribute","preventScroll","addEventListener","focusoutTarget","removeAttribute","once","_cleanAndCreateIntersectionObserverContainer","create","_intersectionLeftSentinelNode","intersectionLeftSentinelNode","_intersectionRightSentinelNode","intersectionRightSentinelNode","_observerIntersection","IntersectionObserver","_observeIntersectionContainer","root","threshold","records","isIntersecting","_isIntersectionLeftTrackerInContent","_isIntersectionRightTrackerInContent","_currentScrollPosition","currentScrollPosition","navBar","_itemNodes","itemNodes","prototype","slice","interimLeft","lastVisibleElementIndex","lastVisibleElementRight","newScrollPosition","_contentNode","contentNode","firstVisibleElementIndex","findIndex","firstVisibleElementLeft","Math","abs","maxLeft","scrollWidth","offsetWidth","min","interimRight","mediaQueryCallbackLG","type","Number","_throttleScroll","connectedCallback","_superPropGet","_handleOnScroll","disconnectedCallback","cancel","firstUpdated","global","tableOfContents","render","currentTarget","hasHeading","isIntersectionLeftTrackerInContent","isIntersectionRightTrackerInContent","isMobile","targets","handleClickItem","handleOnKeyDown","handleSlotChange","handleSlotChangeHeading","paginateLeft","paginateRight","containerClasses","navigationClasses","chevronLeftContainerClasses","chevronRightContainerClasses","_t","_","_t2","item","_ref","_item$dataset$title","name","getAttribute","selected","itemClasses","_t3","_t4","_t5","_t6","_t7","_t8","_t9","_ref2","_item$dataset$title2","_t10","_t11","_t12","_t13","_t14","_t15","_t16","static","LG","MIN"],"sources":["components/table-of-contents/table-of-contents.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 { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { html, LitElement } from 'lit';\nimport { property, query, queryAll, state } from 'lit/decorators.js';\nimport ChevronLeft20 from '@carbon/web-components/es/icons/chevron--left/20.js';\nimport ChevronRight20 from '@carbon/web-components/es/icons/chevron--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 throttle from 'lodash-es/throttle.js';\nimport StickyHeader from '@carbon/ibmdotcom-utilities/es/utilities/StickyHeader/StickyHeader.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport styles from './table-of-contents.scss';\nimport { TOC_TYPES } from './defs';\nimport StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport MediaQueryMixin, {\n MQBreakpoints,\n MQDirs,\n} from '../../component-mixins/media-query/media-query';\n\nconst { prefix, stablePrefix: c4dPrefix } = settings;\n\n// total button width - grid offset\nconst buttonWidthOffset = 32;\n\ninterface Cancelable {\n cancel(): void;\n}\n\n/**\n * @param a An array.\n * @param predicate The callback function.\n * @param [thisObject] The context object for the given callback function.\n * @returns The index of the last item in the given array where `predicate` returns `true`. `-1` if no such item is found.\n */\nfunction findLastIndex<T>(\n a: T[],\n predicate: (search: T, index?: number, thisObject?: any) => boolean,\n thisObject?: any\n): number {\n for (let i = a.length - 1; i >= 0; --i) {\n if (predicate(a[i], i, thisObject)) {\n return i;\n }\n }\n return -1;\n}\n\n/**\n * Table of contents.\n *\n * @element c4d-table-of-contents\n * @csspart list - The menu list. Usage `c4d-table-of-contents::part(list)`\n * @csspart list-item - The menu items. Usage `c4d-table-of-contents::part(list-item)`\n * @csspart list-item--active - The menu items as active. Usage `c4d-table-of-contents::part(list-item--active)`\n * @csspart link - The links under TOC. Usage `c4d-table-of-contents::part(link)`\n * @csspart container - The container. Usage `c4d-table-of-contents::part(container)`\n * @csspart table - The table UI. Usage `c4d-table-of-contents::part(table)`\n * @csspart heading - The headings. Usage `c4d-table-of-contents::part(heading)`\n * @csspart prev-button - The previous button. Usage `c4d-table-of-contents::part(prev-button)`\n * @csspart item-container - The item container. Usage `c4d-table-of-contents::part(item-container)`\n * @csspart content - The content. Usage `c4d-table-of-contents::part(content)`\n * @csspart sub-content-right - The right side content. Usage `c4d-table-of-contents::part(sub-content-right)`\n * @csspart sub-content-left - The left side content. Usage `c4d-table-of-contents::part(sub-content-left)`\n * @csspart next-button - The next button. Usage `c4d-table-of-contents::part(next-button)`\n * @csspart content-table - The content table. Usage `c4d-table-of-contents::part(content-table)`\n * @csspart wrapper - The wrapper. Usage `c4d-table-of-contents::part(wrapper)`\n * @slot heading - The heading content.\n * @slot menu-rule - The menu rule.\n */\n@customElement(`${c4dPrefix}-table-of-contents`)\nclass C4DTableOfContents extends MediaQueryMixin(\n HostListenerMixin(StableSelectorMixin(LitElement)),\n { [MQBreakpoints.LG]: MQDirs.MIN }\n) {\n /**\n * Defines TOC type, \"\" for default, `horizontal` for horizontal variant.\n */\n @property({ reflect: true, attribute: 'toc-layout' })\n layout = TOC_TYPES.DEFAULT;\n\n /**\n * The current scroll position.\n */\n @state()\n private _currentScrollPosition = 0;\n\n /**\n * The current target `<a>` that should be in view.\n */\n @state()\n private _currentTarget: HTMLAnchorElement | null = null;\n\n /**\n * `true` if left-hand scroll intersection sentinel intersects with the host element.\n * In this condition, the left-hand paginator button should be hidden.\n */\n @state()\n private _isIntersectionLeftTrackerInContent = true;\n\n /**\n * `true` if right-hand scroll intersection sentinel intersects with the host element.\n * In this condition, the right-hand paginator button should be hidden.\n */\n @state()\n private _isIntersectionRightTrackerInContent = true;\n\n /**\n * `true` if there is a heading content.\n */\n @state()\n private _hasHeading = false;\n\n /**\n * The observer for the intersection of left-side content edge.\n */\n private _observerIntersection: IntersectionObserver | null = null;\n\n /**\n * The scrolling content.\n */\n @query(`.${prefix}--tableofcontents`)\n private _contentNode?: HTMLElement;\n\n /**\n * The left-hand sentinel to track intersection with the host element.\n * If they intersect, the left-hand paginator button should be hidden.\n */\n @query(`.${prefix}--sub-content-left`)\n private _intersectionLeftSentinelNode?: HTMLElement;\n\n /**\n * The right-hand sentinel to track intersection with the host element.\n * If they intersect, the right-hand paginator button should be hidden.\n */\n @query(`.${prefix}--sub-content-right`)\n private _intersectionRightSentinelNode?: HTMLElement;\n @queryAll(`.${prefix}--tableofcontents__item`)\n private _itemNodes?: HTMLElement[] = [];\n\n @query(`.${prefix}--tableofcontents__content`)\n private _contentDiv?: HTMLElement;\n\n @query(`.${prefix}--tableofcontents__navbar`)\n private _navBar?: HTMLElement;\n\n /**\n * Whether we're viewing smaller or larger window.\n */\n @state()\n _isMobile = !this.carbonBreakpoints.lg.matches;\n\n /**\n * The target elements matching `[name]` harvested from the document.\n */\n @state()\n private _targets: HTMLElement[] = [];\n\n /**\n * The Element.tagName values that should never be used as a TOC target.\n * Typically added here because these elements have their own `[name]` attribute.\n */\n private _tagNamesToAvoid = [`${c4dPrefix}-video-player`];\n\n /**\n * The name of an attribute that will prevent the DOM element and any elements\n * in its subtree from being added to the ToC.\n */\n private _disableTargetAttribute = 'no-toc';\n\n /**\n * Boolean checking if page is RTL\n */\n @state()\n private _pageIsRTL: boolean =\n this.ownerDocument!.documentElement.dir === 'rtl';\n\n /**\n * The handler for throttled scrolling\n */\n private _throttleScroll: (((event: Event) => void) & Cancelable) | null =\n null;\n\n /**\n * Handles `click` event on a menu item.\n *\n * @param event The event.\n */\n private _handleClickItem(event: MouseEvent) {\n const { selectorItem } = this.constructor as typeof C4DTableOfContents;\n const target = event.target as HTMLAnchorElement;\n if (target.matches?.(selectorItem)) {\n this._handleUserInitiatedJump(target.dataset.target!);\n\n // This will make sure the clicked tab scrolls into view and is centered being completely visible in mobile res.\n if (this._isMobile) {\n target.scrollIntoView({\n block: 'nearest',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n event.preventDefault();\n }\n }\n\n /**\n * Handles `keyboard` event on a TOC navigation item.\n *\n * @param event The event.\n */\n private _handleOnKeyDown(event: KeyboardEvent) {\n const { selectorItem } = this.constructor as typeof C4DTableOfContents;\n const target = event.target as HTMLAnchorElement;\n const { _pageIsRTL: pageIsRTL } = this;\n const paginateAccessibile =\n this.layout === TOC_TYPES.HORIZONTAL || this._isMobile;\n\n if (target.matches?.(selectorItem)) {\n if (pageIsRTL) {\n if (event.key === 'ArrowLeft') {\n (\n target.parentElement?.nextElementSibling\n ?.children[0] as HTMLAnchorElement\n )?.focus();\n if (\n paginateAccessibile &&\n target.parentElement?.previousElementSibling &&\n target.parentElement?.previousElementSibling.getBoundingClientRect()\n .right >\n this._navBar!.getBoundingClientRect().right - buttonWidthOffset\n ) {\n this._paginateLeft();\n }\n }\n if (event.key === 'ArrowRight') {\n (\n target.parentElement?.previousElementSibling\n ?.children[0] as HTMLAnchorElement\n )?.focus();\n if (\n paginateAccessibile &&\n target.parentElement?.nextElementSibling &&\n target.parentElement?.nextElementSibling.getBoundingClientRect()\n .left <\n this._navBar!.getBoundingClientRect().left + buttonWidthOffset\n ) {\n this._paginateRight();\n }\n }\n } else {\n if (event.key === 'ArrowLeft') {\n (\n target.parentElement?.previousElementSibling\n ?.children[0] as HTMLAnchorElement\n )?.focus();\n if (\n paginateAccessibile &&\n target.parentElement?.previousElementSibling &&\n target.parentElement?.previousElementSibling!.getBoundingClientRect()\n .left <\n this._navBar!.getBoundingClientRect().left + buttonWidthOffset\n ) {\n this._paginateLeft();\n }\n }\n if (event.key === 'ArrowRight') {\n (\n target.parentElement?.nextElementSibling\n ?.children[0] as HTMLAnchorElement\n )?.focus();\n if (\n paginateAccessibile &&\n target.parentElement?.nextElementSibling &&\n target.parentElement?.nextElementSibling!.getBoundingClientRect()\n .right >\n this._navBar!.getBoundingClientRect().right - buttonWidthOffset\n ) {\n this._paginateRight();\n }\n }\n }\n }\n }\n\n /**\n * Handles intersection of target `<a>`s with the viewport by checking which target's\n * immediate siblings are close to the viewport, and set the active target depending\n * on their positions.\n */\n private _handleOnScroll = () => {\n this.ownerDocument!.defaultView!.requestAnimationFrame(() => {\n if (this._targets) {\n const items = this._targets\n .map((elem, index, arr) => ({\n elem,\n height: arr[index + 1]\n ? arr[index + 1].getBoundingClientRect().y -\n elem.getBoundingClientRect().y\n : null,\n position: elem.getBoundingClientRect().y,\n }))\n .filter((elem, index, arr) =>\n elem.height === null\n ? arr[index - 1].position < arr[index - 1].height!\n : elem.position - 50 - this.stickyOffset > -elem.height\n );\n\n // Sets last section as active at the end of page in case there is not enough height for it to dynamically activate\n const bottomReached =\n this.ownerDocument!.scrollingElement!.scrollTop +\n this.ownerDocument!.scrollingElement!.clientHeight ===\n this.ownerDocument!.scrollingElement!.scrollHeight;\n if (items && items[0] && items[items.length - 1]) {\n this._currentTarget = !bottomReached\n ? (items[0].elem as HTMLAnchorElement)\n : (items[items.length - 1].elem as HTMLAnchorElement);\n }\n }\n });\n };\n\n /**\n * Watches for changes to content in the default slot.\n */\n private _contentMutationObserver = new MutationObserver(\n this._contentObserverCallback.bind(this)\n );\n\n /**\n * Sets table of contents targets whenever any node tree mutation is observed.\n */\n private _contentObserverCallback() {\n const shadowRoot = this.shadowRoot as ShadowRoot;\n const allSlots = Array.from(\n shadowRoot.querySelectorAll(`slot`)\n ) as HTMLSlotElement[];\n const allSlottedNodes = allSlots.flatMap((slot) => slot.assignedNodes());\n this._setTargets(allSlottedNodes);\n }\n\n /**\n * Sets targets used for generating the table of contents.\n */\n private _setTargets(nodes: Node[]) {\n const {\n _tagNamesToAvoid: tagNamesToAvoid,\n _disableTargetAttribute: disableTargetAttribute,\n } = this;\n const { selectorTarget } = this.constructor as typeof C4DTableOfContents;\n this._targets = nodes.reduce((acc, node) => {\n if (node instanceof HTMLElement) {\n const descendants = node.querySelectorAll(\n selectorTarget\n ) as NodeListOf<HTMLElement>;\n const elems = [node, ...descendants].filter((elem) => {\n if (elem.innerText == null && elem.innerText == undefined) {\n return false;\n }\n const notWhiteSpace = /[^\\s\\n\\r]/g;\n const hasTitle =\n elem.innerText?.match(notWhiteSpace) ||\n elem.dataset.title?.match(notWhiteSpace);\n const hasNameAttr = elem.matches(selectorTarget);\n const notExcluded =\n !tagNamesToAvoid.includes(elem.tagName.toLowerCase()) &&\n !elem.closest(`[${disableTargetAttribute}]`);\n\n return hasTitle && hasNameAttr && notExcluded;\n });\n\n acc.push(...(elems as HTMLElement[]));\n }\n\n return acc;\n }, [] as HTMLElement[]);\n }\n\n /**\n * Handles `slotchange` event on the default `<slot>`.\n *\n * @param event The event.\n */\n private _handleSlotChange(event: Event) {\n // Handle changes to immediate slotted children.\n const slottedElements = (event.target as HTMLSlotElement)\n .assignedNodes()\n .filter((node) => node instanceof HTMLElement);\n this._setTargets(slottedElements as HTMLElement[]);\n\n // Handle changes to slotted contents' children.\n this._contentMutationObserver.disconnect();\n (event.target as HTMLSlotElement).assignedNodes().forEach((node) => {\n if (node instanceof HTMLElement) {\n this._contentMutationObserver.observe(node, {\n subtree: true,\n childList: true,\n attributeFilter: ['name', 'data-title'],\n });\n }\n });\n }\n\n /**\n * Handles `slotchange` event on `<slot name=\"heading\">`.\n */\n private _handleSlotChangeHeading() {\n this._hasHeading = Array.from(\n this.querySelectorAll('[slot=\"heading\"]')\n ).some(\n (node) => node.nodeType !== Node.TEXT_NODE || node!.textContent!.trim()\n );\n }\n\n /**\n * Handles user-initiated jump to a hash.\n *\n * @param target The hash name.\n */\n private _handleUserInitiatedJump(target: string) {\n const elem = this.querySelector(`[name=\"${target}\"]`);\n const masthead: HTMLElement | null = this.ownerDocument.querySelector(\n `${c4dPrefix}-masthead`\n );\n\n if (elem instanceof HTMLElement) {\n const currentY = window.scrollY;\n let targetY;\n\n if (currentY > elem.offsetTop && masthead) {\n targetY = elem.offsetTop - masthead.offsetHeight;\n } else {\n targetY =\n elem.offsetTop -\n parseInt(\n window.getComputedStyle(elem).getPropertyValue('padding-top')\n ) -\n parseInt(\n window\n .getComputedStyle(this._contentDiv!)\n .getPropertyValue('padding-top')\n );\n }\n\n window.scrollTo({\n top: targetY,\n left: 0,\n behavior: 'smooth',\n });\n\n elem.setAttribute('tabindex', '0');\n (elem as HTMLElement).focus({ preventScroll: true });\n elem.addEventListener(\n 'focusout',\n ({ target: focusoutTarget }) => {\n (focusoutTarget as HTMLElement)?.removeAttribute('tabindex');\n },\n {\n once: true,\n }\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 _cleanAndCreateIntersectionObserverContainer({\n create,\n }: { create?: boolean } = {}) {\n const {\n _intersectionLeftSentinelNode: intersectionLeftSentinelNode,\n _intersectionRightSentinelNode: intersectionRightSentinelNode,\n } = this;\n if (this._observerIntersection) {\n this._observerIntersection.disconnect();\n this._observerIntersection = null;\n }\n if (create) {\n this._observerIntersection = new IntersectionObserver(\n this._observeIntersectionContainer,\n {\n root: this._navBar,\n threshold: 0,\n }\n );\n if (intersectionLeftSentinelNode) {\n this._observerIntersection.observe(intersectionLeftSentinelNode);\n }\n if (intersectionRightSentinelNode) {\n this._observerIntersection.observe(intersectionRightSentinelNode);\n }\n }\n }\n\n /**\n * The intersection observer callback for the scrolling container.\n *\n * @param records The intersection observer records.\n */\n private _observeIntersectionContainer = (records) => {\n const {\n _intersectionLeftSentinelNode: intersectionLeftSentinelNode,\n _intersectionRightSentinelNode: intersectionRightSentinelNode,\n } = this;\n records.forEach(({ isIntersecting, target }) => {\n if (target === intersectionLeftSentinelNode) {\n this._isIntersectionLeftTrackerInContent = isIntersecting;\n }\n if (target === intersectionRightSentinelNode) {\n this._isIntersectionRightTrackerInContent = isIntersecting;\n }\n });\n };\n\n /**\n * Handles `click` event on the left-hand paginator button.\n */\n private _paginateLeft() {\n const {\n _currentScrollPosition: currentScrollPosition,\n _navBar: navBar,\n _itemNodes: itemNodes,\n _pageIsRTL: pageIsRTL,\n } = this;\n // If the right-side intersection sentinel is in the view, it means that right-side chevron button is hidden.\n // Given scrolling to left makes it shown,\n // `contentContainerNode!.offsetWidth` will shrink as we scroll and we need to adjust for it.\n const elems = Array.prototype.slice.call(itemNodes);\n if (elems) {\n if (pageIsRTL) {\n const interimLeft = navBar!.getBoundingClientRect().right;\n const lastVisibleElementIndex = findLastIndex(\n elems,\n (elem) =>\n elem.getBoundingClientRect().right > interimLeft - buttonWidthOffset\n );\n if (lastVisibleElementIndex >= 0) {\n const lastVisibleElementRight =\n elems[lastVisibleElementIndex].getBoundingClientRect().left;\n // 48 = button width - button gradient\n const newScrollPosition =\n currentScrollPosition - lastVisibleElementRight + 48;\n this._currentScrollPosition =\n newScrollPosition <= 0 ? 0 : newScrollPosition;\n }\n } else {\n const lastVisibleElementIndex = findLastIndex(\n elems,\n (elem) =>\n elem.getBoundingClientRect().left <\n buttonWidthOffset + navBar!.getBoundingClientRect().left\n );\n if (lastVisibleElementIndex >= 0) {\n const lastVisibleElementRight =\n elems[lastVisibleElementIndex].getBoundingClientRect().right;\n const newScrollPosition =\n lastVisibleElementRight +\n currentScrollPosition -\n navBar!.getBoundingClientRect().right +\n buttonWidthOffset;\n // If the new scroll position is less than the width of the left chevron button,\n // it means that hiding the left chevron button reveals the whole of the left-most nav item.\n // Snaps the left-most nav item to the left edge of nav container in this case.\n this._currentScrollPosition =\n newScrollPosition <= 0 ? 0 : newScrollPosition;\n }\n }\n }\n }\n\n /**\n * Handles `click` event on the right-hand paginator button.\n */\n private _paginateRight() {\n const {\n _navBar: navBar,\n _contentNode: contentNode,\n _currentScrollPosition: currentScrollPosition,\n _itemNodes: itemNodes,\n _pageIsRTL: pageIsRTL,\n } = this;\n\n const elems = Array.prototype.slice.call(itemNodes);\n if (elems) {\n if (pageIsRTL) {\n const interimLeft = navBar!.getBoundingClientRect().left;\n const firstVisibleElementIndex = elems.findIndex(\n (elem) =>\n elem.getBoundingClientRect().left < interimLeft + buttonWidthOffset\n );\n if (firstVisibleElementIndex > 0) {\n const firstVisibleElementLeft = Math.abs(\n elems[firstVisibleElementIndex].getBoundingClientRect().right +\n buttonWidthOffset -\n navBar!.getBoundingClientRect().right\n );\n const maxLeft = contentNode!.scrollWidth - navBar!.offsetWidth;\n this._currentScrollPosition = Math.min(\n firstVisibleElementLeft + currentScrollPosition,\n maxLeft\n );\n }\n } else {\n const interimRight = navBar!.getBoundingClientRect().right;\n const firstVisibleElementIndex = elems.findIndex(\n (elem) =>\n elem.getBoundingClientRect().right >\n interimRight - buttonWidthOffset\n );\n if (firstVisibleElementIndex > 0) {\n const firstVisibleElementLeft =\n elems[firstVisibleElementIndex].getBoundingClientRect().left -\n navBar!.getBoundingClientRect().left -\n buttonWidthOffset;\n // Ensures that is there is no blank area at the right hand side in scroll area\n // if we see the right remainder nav items can be contained in a page\n const maxLeft = contentNode!.scrollWidth - navBar!.offsetWidth;\n this._currentScrollPosition = Math.min(\n firstVisibleElementLeft + currentScrollPosition,\n maxLeft\n );\n }\n }\n }\n }\n\n mediaQueryCallbackLG() {\n this._isMobile = !this.carbonBreakpoints.lg.matches;\n }\n\n /**\n * The current 0px offset from the top of page.\n */\n @property({ type: Number })\n stickyOffset = 0;\n\n /**\n * The throttled scroll listener.\n *\n * @param event scroll handler\n */\n @HostListener('window:scroll')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleScroll = (event: Event) => {\n this._throttleScroll!(event);\n };\n\n /**\n * The trigger reharvest listener.\n */\n @HostListener(`document:${c4dPrefix}-table-of-contents-reharvest`)\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _retriggerHarvest = () => {\n this._targets = Array.from(this.querySelectorAll('[name]'));\n };\n\n connectedCallback() {\n super.connectedCallback();\n this._cleanAndCreateIntersectionObserverContainer({ create: true });\n if (!this._throttleScroll) {\n this._throttleScroll = throttle(this._handleOnScroll, 250);\n this._handleOnScroll();\n }\n }\n\n disconnectedCallback() {\n this._cleanAndCreateIntersectionObserverContainer();\n this._contentMutationObserver.disconnect();\n if (this._throttleScroll) {\n this._throttleScroll.cancel();\n this._throttleScroll = null;\n }\n super.disconnectedCallback();\n }\n\n firstUpdated() {\n super.firstUpdated();\n this._cleanAndCreateIntersectionObserverContainer({ create: true });\n\n StickyHeader.global.tableOfContents = this;\n }\n\n render() {\n const {\n layout,\n stickyOffset,\n _currentTarget: currentTarget,\n _currentScrollPosition: currentScrollPosition,\n _hasHeading: hasHeading,\n _isIntersectionLeftTrackerInContent: isIntersectionLeftTrackerInContent,\n _isIntersectionRightTrackerInContent: isIntersectionRightTrackerInContent,\n _isMobile: isMobile,\n _targets: targets,\n _handleClickItem: handleClickItem,\n _handleOnKeyDown: handleOnKeyDown,\n _handleSlotChange: handleSlotChange,\n _handleSlotChangeHeading: handleSlotChangeHeading,\n _paginateLeft: paginateLeft,\n _paginateRight: paginateRight,\n _pageIsRTL: pageIsRTL,\n } = this;\n\n const containerClasses = classMap({\n [`${c4dPrefix}-ce--table-of-contents__container`]:\n layout === TOC_TYPES.DEFAULT && !isMobile,\n [`${c4dPrefix}-ce--table-of-contents-horizontal__container`]:\n layout === TOC_TYPES.HORIZONTAL || isMobile,\n });\n\n const navigationClasses = classMap({\n [`${prefix}--tableofcontents__sidebar`]:\n layout === TOC_TYPES.DEFAULT && !isMobile,\n [`${prefix}--tableofcontents__navbar`]:\n layout === TOC_TYPES.HORIZONTAL || isMobile,\n });\n\n const chevronLeftContainerClasses = classMap({\n [`${prefix}--toc__navbar-chevron-left-container`]: true,\n [`${c4dPrefix}-ce--toc__navbar-chevron-container--hidden`]:\n isIntersectionLeftTrackerInContent,\n });\n\n const chevronRightContainerClasses = classMap({\n [`${prefix}--toc__navbar-chevron-right-container`]: true,\n [`${c4dPrefix}-ce--toc__navbar-chevron-container--hidden`]:\n isIntersectionRightTrackerInContent,\n });\n\n return html`\n ${this.layout === 'horizontal'\n ? html`\n <ul class=\"${prefix}--toc__print-styles\" part=\"list\">\n ${targets.map((item) => {\n const name = item.getAttribute('name');\n const title = (\n item.dataset.title ??\n item.textContent ??\n ''\n ).trim();\n const selected = item === currentTarget;\n const itemClasses = classMap({\n [`${prefix}--tableofcontents__item`]: true,\n [`${prefix}--tableofcontents__item--active`]: selected,\n });\n return html`\n <li\n class=\"${itemClasses}\"\n part=\"list-item${selected ? ' list-item--active' : ''}\"\n @click=\"${handleClickItem}\"\n @keydown=\"${handleOnKeyDown}\">\n <a\n aria-current=\"${ifDefined(\n !selected ? undefined : 'location'\n )}\"\n data-target=\"${name!}\"\n href=\"#${name}\"\n part=\"link\">\n ${title}\n </a>\n </li>\n `;\n })}\n </ul>\n `\n : ``}\n <div part=\"container\" class=\"${containerClasses}\">\n <div part=\"table\" class=\"${navigationClasses}\">\n ${isMobile\n ? ''\n : html`\n <div\n ?hidden=\"${!hasHeading}\"\n class=\"${prefix}--tableofcontents__children\"\n part=\"heading\">\n <slot\n name=\"heading\"\n @slotchange=\"${handleSlotChangeHeading}\"></slot>\n <slot name=\"menu-rule\"></slot>\n </div>\n `}\n ${layout === 'horizontal' || isMobile\n ? html`\n ${pageIsRTL\n ? html`\n <button\n part=\"prev-button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"${chevronRightContainerClasses}\"\n @click=\"${paginateLeft}\">\n ${ChevronLeft20()}\n </button>\n `\n : html`\n <button\n part=\"prev-button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"${chevronLeftContainerClasses}\"\n @click=\"${paginateLeft}\">\n ${ChevronLeft20()}\n </button>\n `}\n `\n : ``}\n <div\n class=\"${c4dPrefix}-ce--table-of-contents__items-container\"\n part=\"items-container\"\n style=\"position: sticky; top: ${stickyOffset &&\n this.layout !== TOC_TYPES.HORIZONTAL\n ? `${stickyOffset}px`\n : 0}\">\n <div\n class=\"${prefix}--tableofcontents-container\"\n part=\"item-container\">\n <div\n class=\"${prefix}--tableofcontents\"\n part=\"content\"\n style=\"${pageIsRTL\n ? 'right'\n : 'left'}: -${currentScrollPosition}px\">\n ${pageIsRTL\n ? html`\n <div\n class=\"${prefix}--sub-content-right\"\n part=\"sub-content-right\"></div>\n `\n : html`\n <div\n class=\"${prefix}--sub-content-left\"\n part=\"sub-content-left\"></div>\n `}\n <ul part=\"list\">\n ${targets.map((item) => {\n const name = item.getAttribute('name');\n const title = (\n item.dataset.title ??\n item.textContent ??\n ''\n ).trim();\n const selected = item === currentTarget;\n const itemClasses = classMap({\n [`${prefix}--tableofcontents__item`]: true,\n [`${prefix}--tableofcontents__item--active`]: selected,\n });\n return html`\n <li\n class=\"${itemClasses}\"\n part=\"list-item${selected ? ' list-item--active' : ''}\"\n @click=\"${handleClickItem}\"\n @keydown=\"${handleOnKeyDown}\">\n <a\n aria-current=\"${ifDefined(\n !selected ? undefined : 'location'\n )}\"\n data-target=\"${name!}\"\n href=\"#${name}\"\n tabindex=\"${selected ? 0 : -1}\"\n part=\"link\">\n ${title}\n </a>\n </li>\n `;\n })}\n </ul>\n ${pageIsRTL\n ? html`\n <div\n class=\"${prefix}--sub-content-left\"\n part=\"sub-content-left\"></div>\n `\n : html`\n <div\n class=\"${prefix}--sub-content-right\"\n part=\"sub-content-right\"></div>\n `}\n </div>\n </div>\n </div>\n\n ${this.layout === 'horizontal' || isMobile\n ? html`\n ${pageIsRTL\n ? html`\n <button\n part=\"next-button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"${chevronLeftContainerClasses}\"\n @click=\"${paginateRight}\">\n ${ChevronRight20()}\n </button>\n `\n : html`\n <button\n part=\"next-button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"${chevronRightContainerClasses}\"\n @click=\"${paginateRight}\">\n ${ChevronRight20()}\n </button>\n `}\n `\n : ``}\n </div>\n\n <div class=\"${prefix}--tableofcontents__content\" part=\"content-table\">\n <div\n class=\"${prefix}--tableofcontents__content-wrapper\"\n part=\"wrapper\">\n ${!isMobile\n ? ''\n : html`\n <div\n ?hidden=\"${!hasHeading}\"\n class=\"${prefix}--tableofcontents__children\"\n part=\"heading\">\n <slot\n name=\"heading\"\n @slotchange=\"${handleSlotChangeHeading}\"></slot>\n <slot name=\"menu-rule\"></slot>\n </div>\n `}\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n </div>\n </div>\n </div>\n `;\n }\n\n /**\n * The selector that selects the link items.\n */\n static get selectorItem() {\n return `.${prefix}--tableofcontents__item a`;\n }\n\n /**\n * The selector that determines where to harvest the table of contents from.\n */\n static selectorTarget = '[name]';\n\n static get stableSelector() {\n return `${c4dPrefix}--table-of-contents`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DTableOfContents;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"table-of-contents.js","names":["classMap","ifDefined","html","LitElement","property","query","queryAll","state","ChevronLeft20","ChevronRight20","HostListener","HostListenerMixin","throttle","StickyHeader","settings","styles","TOC_TYPES","StableSelectorMixin","carbonElement","customElement","MediaQueryMixin","MQBreakpoints","MQDirs","prefix","stablePrefix","c4dPrefix","buttonWidthOffset","findLastIndex","a","predicate","thisObject","i","length","C4DTableOfContents","_decorate","_initialize","_MediaQueryMixin","constructor","args","F","d","kind","decorators","reflect","attribute","key","value","DEFAULT","carbonBreakpoints","lg","matches","ownerDocument","documentElement","dir","_handleClickItem","event","_target$matches","selectorItem","target","call","_handleUserInitiatedJump","dataset","_isMobile","scrollIntoView","block","inline","behavior","preventDefault","_handleOnKeyDown","_target$matches2","_pageIsRTL","pageIsRTL","paginateAccessibile","layout","HORIZONTAL","_target$parentElement","_target$parentElement2","_target$parentElement3","parentElement","nextElementSibling","children","focus","previousElementSibling","getBoundingClientRect","right","_navBar","_paginateLeft","_target$parentElement4","_target$parentElement5","_target$parentElement6","left","_paginateRight","_target$parentElement7","_target$parentElement8","_target$parentElement9","_target$parentElement10","_target$parentElement11","_target$parentElement12","defaultView","requestAnimationFrame","_targets","items","map","elem","index","arr","height","y","position","filter","stickyOffset","bottomReached","scrollingElement","scrollTop","clientHeight","scrollHeight","_currentTarget","MutationObserver","_contentObserverCallback","bind","shadowRoot","allSlots","Array","from","querySelectorAll","allSlottedNodes","flatMap","slot","assignedNodes","_setTargets","nodes","_tagNamesToAvoid","tagNamesToAvoid","_disableTargetAttribute","disableTargetAttribute","selectorTarget","reduce","acc","node","HTMLElement","descendants","elems","_elem$innerText","_elem$dataset$title","innerText","undefined","notWhiteSpace","hasTitle","match","title","hasNameAttr","notExcluded","includes","tagName","toLowerCase","closest","push","_handleSlotChange","slottedElements","_contentMutationObserver","disconnect","forEach","observe","subtree","childList","attributeFilter","_handleSlotChangeHeading","_hasHeading","some","nodeType","Node","TEXT_NODE","textContent","trim","querySelector","masthead","currentY","window","scrollY","targetY","offsetTop","offsetHeight","parseInt","getComputedStyle","getPropertyValue","_contentDiv","scrollTo","top","setAttribute","preventScroll","addEventListener","focusoutTarget","removeAttribute","once","_cleanAndCreateIntersectionObserverContainer","create","_intersectionLeftSentinelNode","intersectionLeftSentinelNode","_intersectionRightSentinelNode","intersectionRightSentinelNode","_observerIntersection","IntersectionObserver","_observeIntersectionContainer","root","threshold","records","isIntersecting","_isIntersectionLeftTrackerInContent","_isIntersectionRightTrackerInContent","_currentScrollPosition","currentScrollPosition","navBar","_itemNodes","itemNodes","prototype","slice","interimLeft","lastVisibleElementIndex","lastVisibleElementRight","newScrollPosition","_contentNode","contentNode","firstVisibleElementIndex","findIndex","firstVisibleElementLeft","Math","abs","maxLeft","scrollWidth","offsetWidth","min","interimRight","mediaQueryCallbackLG","type","Number","_throttleScroll","connectedCallback","_superPropGet","_handleOnScroll","disconnectedCallback","cancel","firstUpdated","global","tableOfContents","render","currentTarget","hasHeading","isIntersectionLeftTrackerInContent","isIntersectionRightTrackerInContent","isMobile","targets","handleClickItem","handleOnKeyDown","handleSlotChange","handleSlotChangeHeading","paginateLeft","paginateRight","containerClasses","navigationClasses","chevronLeftContainerClasses","chevronRightContainerClasses","_t","_","_t2","item","_ref","_item$dataset$title","name","getAttribute","selected","itemClasses","_t3","_t4","_t5","_t6","_t7","_t8","_t9","_ref2","_item$dataset$title2","_t10","_t11","_t12","_t13","_t14","_t15","_t16","static","LG","MIN"],"sources":["components/table-of-contents/table-of-contents.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 { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { html, LitElement } from 'lit';\nimport { property, query, queryAll, state } from 'lit/decorators.js';\nimport ChevronLeft20 from '@carbon/web-components/es/icons/chevron--left/20.js';\nimport ChevronRight20 from '@carbon/web-components/es/icons/chevron--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 throttle from 'lodash-es/throttle.js';\nimport StickyHeader from '@carbon/ibmdotcom-utilities/es/utilities/StickyHeader/StickyHeader.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport styles from './table-of-contents.scss';\nimport { TOC_TYPES } from './defs';\nimport StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport MediaQueryMixin, {\n MQBreakpoints,\n MQDirs,\n} from '../../component-mixins/media-query/media-query';\n\nconst { prefix, stablePrefix: c4dPrefix } = settings;\n\n// total button width - grid offset\nconst buttonWidthOffset = 32;\n\ninterface Cancelable {\n cancel(): void;\n}\n\n/**\n * @param a An array.\n * @param predicate The callback function.\n * @param [thisObject] The context object for the given callback function.\n * @returns The index of the last item in the given array where `predicate` returns `true`. `-1` if no such item is found.\n */\nfunction findLastIndex<T>(\n a: T[],\n predicate: (search: T, index?: number, thisObject?: any) => boolean,\n thisObject?: any\n): number {\n for (let i = a.length - 1; i >= 0; --i) {\n if (predicate(a[i], i, thisObject)) {\n return i;\n }\n }\n return -1;\n}\n\n/**\n * Table of contents.\n *\n * @element c4d-table-of-contents\n * @csspart list - The menu list. Usage `c4d-table-of-contents::part(list)`\n * @csspart list-item - The menu items. Usage `c4d-table-of-contents::part(list-item)`\n * @csspart list-item--active - The menu items as active. Usage `c4d-table-of-contents::part(list-item--active)`\n * @csspart link - The links under TOC. Usage `c4d-table-of-contents::part(link)`\n * @csspart container - The container. Usage `c4d-table-of-contents::part(container)`\n * @csspart table - The table UI. Usage `c4d-table-of-contents::part(table)`\n * @csspart heading - The headings. Usage `c4d-table-of-contents::part(heading)`\n * @csspart prev-button - The previous button. Usage `c4d-table-of-contents::part(prev-button)`\n * @csspart item-container - The item container. Usage `c4d-table-of-contents::part(item-container)`\n * @csspart content - The content. Usage `c4d-table-of-contents::part(content)`\n * @csspart sub-content-right - The right side content. Usage `c4d-table-of-contents::part(sub-content-right)`\n * @csspart sub-content-left - The left side content. Usage `c4d-table-of-contents::part(sub-content-left)`\n * @csspart next-button - The next button. Usage `c4d-table-of-contents::part(next-button)`\n * @csspart content-table - The content table. Usage `c4d-table-of-contents::part(content-table)`\n * @csspart wrapper - The wrapper. Usage `c4d-table-of-contents::part(wrapper)`\n * @slot heading - The heading content.\n * @slot menu-rule - The menu rule.\n */\n@customElement(`${c4dPrefix}-table-of-contents`)\nclass C4DTableOfContents extends MediaQueryMixin(\n HostListenerMixin(StableSelectorMixin(LitElement)),\n { [MQBreakpoints.LG]: MQDirs.MIN }\n) {\n /**\n * Defines TOC type, \"\" for default, `horizontal` for horizontal variant.\n */\n @property({ reflect: true, attribute: 'toc-layout' })\n layout = TOC_TYPES.DEFAULT;\n\n /**\n * The current scroll position.\n */\n @state()\n private _currentScrollPosition = 0;\n\n /**\n * The current target `<a>` that should be in view.\n */\n @state()\n private _currentTarget: HTMLAnchorElement | null = null;\n\n /**\n * `true` if left-hand scroll intersection sentinel intersects with the host element.\n * In this condition, the left-hand paginator button should be hidden.\n */\n @state()\n private _isIntersectionLeftTrackerInContent = true;\n\n /**\n * `true` if right-hand scroll intersection sentinel intersects with the host element.\n * In this condition, the right-hand paginator button should be hidden.\n */\n @state()\n private _isIntersectionRightTrackerInContent = true;\n\n /**\n * `true` if there is a heading content.\n */\n @state()\n private _hasHeading = false;\n\n /**\n * The observer for the intersection of left-side content edge.\n */\n private _observerIntersection: IntersectionObserver | null = null;\n\n /**\n * The scrolling content.\n */\n @query(`.${prefix}--tableofcontents`)\n private _contentNode?: HTMLElement;\n\n /**\n * The left-hand sentinel to track intersection with the host element.\n * If they intersect, the left-hand paginator button should be hidden.\n */\n @query(`.${prefix}--sub-content-left`)\n private _intersectionLeftSentinelNode?: HTMLElement;\n\n /**\n * The right-hand sentinel to track intersection with the host element.\n * If they intersect, the right-hand paginator button should be hidden.\n */\n @query(`.${prefix}--sub-content-right`)\n private _intersectionRightSentinelNode?: HTMLElement;\n @queryAll(`.${prefix}--tableofcontents__item`)\n private _itemNodes?: HTMLElement[] = [];\n\n @query(`.${prefix}--tableofcontents__content`)\n private _contentDiv?: HTMLElement;\n\n @query(`.${prefix}--tableofcontents__navbar`)\n private _navBar?: HTMLElement;\n\n /**\n * Whether we're viewing smaller or larger window.\n */\n @state()\n _isMobile = !this.carbonBreakpoints.lg.matches;\n\n /**\n * The target elements matching `[name]` harvested from the document.\n */\n @state()\n private _targets: HTMLElement[] = [];\n\n /**\n * The Element.tagName values that should never be used as a TOC target.\n * Typically added here because these elements have their own `[name]` attribute.\n */\n private _tagNamesToAvoid = [`${c4dPrefix}-video-player`, 'select', 'input'];\n\n /**\n * The name of an attribute that will prevent the DOM element and any elements\n * in its subtree from being added to the ToC.\n */\n private _disableTargetAttribute = 'no-toc';\n\n /**\n * Boolean checking if page is RTL\n */\n @state()\n private _pageIsRTL: boolean =\n this.ownerDocument!.documentElement.dir === 'rtl';\n\n /**\n * The handler for throttled scrolling\n */\n private _throttleScroll: (((event: Event) => void) & Cancelable) | null =\n null;\n\n /**\n * Handles `click` event on a menu item.\n *\n * @param event The event.\n */\n private _handleClickItem(event: MouseEvent) {\n const { selectorItem } = this.constructor as typeof C4DTableOfContents;\n const target = event.target as HTMLAnchorElement;\n if (target.matches?.(selectorItem)) {\n this._handleUserInitiatedJump(target.dataset.target!);\n\n // This will make sure the clicked tab scrolls into view and is centered being completely visible in mobile res.\n if (this._isMobile) {\n target.scrollIntoView({\n block: 'nearest',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n event.preventDefault();\n }\n }\n\n /**\n * Handles `keyboard` event on a TOC navigation item.\n *\n * @param event The event.\n */\n private _handleOnKeyDown(event: KeyboardEvent) {\n const { selectorItem } = this.constructor as typeof C4DTableOfContents;\n const target = event.target as HTMLAnchorElement;\n const { _pageIsRTL: pageIsRTL } = this;\n const paginateAccessibile =\n this.layout === TOC_TYPES.HORIZONTAL || this._isMobile;\n\n if (target.matches?.(selectorItem)) {\n if (pageIsRTL) {\n if (event.key === 'ArrowLeft') {\n (\n target.parentElement?.nextElementSibling\n ?.children[0] as HTMLAnchorElement\n )?.focus();\n if (\n paginateAccessibile &&\n target.parentElement?.previousElementSibling &&\n target.parentElement?.previousElementSibling.getBoundingClientRect()\n .right >\n this._navBar!.getBoundingClientRect().right - buttonWidthOffset\n ) {\n this._paginateLeft();\n }\n }\n if (event.key === 'ArrowRight') {\n (\n target.parentElement?.previousElementSibling\n ?.children[0] as HTMLAnchorElement\n )?.focus();\n if (\n paginateAccessibile &&\n target.parentElement?.nextElementSibling &&\n target.parentElement?.nextElementSibling.getBoundingClientRect()\n .left <\n this._navBar!.getBoundingClientRect().left + buttonWidthOffset\n ) {\n this._paginateRight();\n }\n }\n } else {\n if (event.key === 'ArrowLeft') {\n (\n target.parentElement?.previousElementSibling\n ?.children[0] as HTMLAnchorElement\n )?.focus();\n if (\n paginateAccessibile &&\n target.parentElement?.previousElementSibling &&\n target.parentElement?.previousElementSibling!.getBoundingClientRect()\n .left <\n this._navBar!.getBoundingClientRect().left + buttonWidthOffset\n ) {\n this._paginateLeft();\n }\n }\n if (event.key === 'ArrowRight') {\n (\n target.parentElement?.nextElementSibling\n ?.children[0] as HTMLAnchorElement\n )?.focus();\n if (\n paginateAccessibile &&\n target.parentElement?.nextElementSibling &&\n target.parentElement?.nextElementSibling!.getBoundingClientRect()\n .right >\n this._navBar!.getBoundingClientRect().right - buttonWidthOffset\n ) {\n this._paginateRight();\n }\n }\n }\n }\n }\n\n /**\n * Handles intersection of target `<a>`s with the viewport by checking which target's\n * immediate siblings are close to the viewport, and set the active target depending\n * on their positions.\n */\n private _handleOnScroll = () => {\n this.ownerDocument!.defaultView!.requestAnimationFrame(() => {\n if (this._targets) {\n const items = this._targets\n .map((elem, index, arr) => ({\n elem,\n height: arr[index + 1]\n ? arr[index + 1].getBoundingClientRect().y -\n elem.getBoundingClientRect().y\n : null,\n position: elem.getBoundingClientRect().y,\n }))\n .filter((elem, index, arr) =>\n elem.height === null\n ? arr[index - 1].position < arr[index - 1].height!\n : elem.position - 50 - this.stickyOffset > -elem.height\n );\n\n // Sets last section as active at the end of page in case there is not enough height for it to dynamically activate\n const bottomReached =\n this.ownerDocument!.scrollingElement!.scrollTop +\n this.ownerDocument!.scrollingElement!.clientHeight ===\n this.ownerDocument!.scrollingElement!.scrollHeight;\n if (items && items[0] && items[items.length - 1]) {\n this._currentTarget = !bottomReached\n ? (items[0].elem as HTMLAnchorElement)\n : (items[items.length - 1].elem as HTMLAnchorElement);\n }\n }\n });\n };\n\n /**\n * Watches for changes to content in the default slot.\n */\n private _contentMutationObserver = new MutationObserver(\n this._contentObserverCallback.bind(this)\n );\n\n /**\n * Sets table of contents targets whenever any node tree mutation is observed.\n */\n private _contentObserverCallback() {\n const shadowRoot = this.shadowRoot as ShadowRoot;\n const allSlots = Array.from(\n shadowRoot.querySelectorAll(`slot`)\n ) as HTMLSlotElement[];\n const allSlottedNodes = allSlots.flatMap((slot) => slot.assignedNodes());\n this._setTargets(allSlottedNodes);\n }\n\n /**\n * Sets targets used for generating the table of contents.\n */\n private _setTargets(nodes: Node[]) {\n const {\n _tagNamesToAvoid: tagNamesToAvoid,\n _disableTargetAttribute: disableTargetAttribute,\n } = this;\n const { selectorTarget } = this.constructor as typeof C4DTableOfContents;\n this._targets = nodes.reduce((acc, node) => {\n if (node instanceof HTMLElement) {\n const descendants = node.querySelectorAll(\n selectorTarget\n ) as NodeListOf<HTMLElement>;\n const elems = [node, ...descendants].filter((elem) => {\n if (elem.innerText == null && elem.innerText == undefined) {\n return false;\n }\n const notWhiteSpace = /[^\\s\\n\\r]/g;\n const hasTitle =\n elem.innerText?.match(notWhiteSpace) ||\n elem.dataset.title?.match(notWhiteSpace);\n const hasNameAttr = elem.matches(selectorTarget);\n const notExcluded =\n !tagNamesToAvoid.includes(elem.tagName.toLowerCase()) &&\n !elem.closest(`[${disableTargetAttribute}]`);\n\n return hasTitle && hasNameAttr && notExcluded;\n });\n\n acc.push(...(elems as HTMLElement[]));\n }\n\n return acc;\n }, [] as HTMLElement[]);\n }\n\n /**\n * Handles `slotchange` event on the default `<slot>`.\n *\n * @param event The event.\n */\n private _handleSlotChange(event: Event) {\n // Handle changes to immediate slotted children.\n const slottedElements = (event.target as HTMLSlotElement)\n .assignedNodes()\n .filter((node) => node instanceof HTMLElement);\n this._setTargets(slottedElements as HTMLElement[]);\n\n // Handle changes to slotted contents' children.\n this._contentMutationObserver.disconnect();\n (event.target as HTMLSlotElement).assignedNodes().forEach((node) => {\n if (node instanceof HTMLElement) {\n this._contentMutationObserver.observe(node, {\n subtree: true,\n childList: true,\n attributeFilter: ['name', 'data-title'],\n });\n }\n });\n }\n\n /**\n * Handles `slotchange` event on `<slot name=\"heading\">`.\n */\n private _handleSlotChangeHeading() {\n this._hasHeading = Array.from(\n this.querySelectorAll('[slot=\"heading\"]')\n ).some(\n (node) => node.nodeType !== Node.TEXT_NODE || node!.textContent!.trim()\n );\n }\n\n /**\n * Handles user-initiated jump to a hash.\n *\n * @param target The hash name.\n */\n private _handleUserInitiatedJump(target: string) {\n const elem = this.querySelector(`[name=\"${target}\"]`);\n const masthead: HTMLElement | null = this.ownerDocument.querySelector(\n `${c4dPrefix}-masthead`\n );\n\n if (elem instanceof HTMLElement) {\n const currentY = window.scrollY;\n let targetY;\n\n if (currentY > elem.offsetTop && masthead) {\n targetY = elem.offsetTop - masthead.offsetHeight;\n } else {\n targetY =\n elem.offsetTop -\n parseInt(\n window.getComputedStyle(elem).getPropertyValue('padding-top')\n ) -\n parseInt(\n window\n .getComputedStyle(this._contentDiv!)\n .getPropertyValue('padding-top')\n );\n }\n\n window.scrollTo({\n top: targetY,\n left: 0,\n behavior: 'smooth',\n });\n\n elem.setAttribute('tabindex', '0');\n (elem as HTMLElement).focus({ preventScroll: true });\n elem.addEventListener(\n 'focusout',\n ({ target: focusoutTarget }) => {\n (focusoutTarget as HTMLElement)?.removeAttribute('tabindex');\n },\n {\n once: true,\n }\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 _cleanAndCreateIntersectionObserverContainer({\n create,\n }: { create?: boolean } = {}) {\n const {\n _intersectionLeftSentinelNode: intersectionLeftSentinelNode,\n _intersectionRightSentinelNode: intersectionRightSentinelNode,\n } = this;\n if (this._observerIntersection) {\n this._observerIntersection.disconnect();\n this._observerIntersection = null;\n }\n if (create) {\n this._observerIntersection = new IntersectionObserver(\n this._observeIntersectionContainer,\n {\n root: this._navBar,\n threshold: 0,\n }\n );\n if (intersectionLeftSentinelNode) {\n this._observerIntersection.observe(intersectionLeftSentinelNode);\n }\n if (intersectionRightSentinelNode) {\n this._observerIntersection.observe(intersectionRightSentinelNode);\n }\n }\n }\n\n /**\n * The intersection observer callback for the scrolling container.\n *\n * @param records The intersection observer records.\n */\n private _observeIntersectionContainer = (records) => {\n const {\n _intersectionLeftSentinelNode: intersectionLeftSentinelNode,\n _intersectionRightSentinelNode: intersectionRightSentinelNode,\n } = this;\n records.forEach(({ isIntersecting, target }) => {\n if (target === intersectionLeftSentinelNode) {\n this._isIntersectionLeftTrackerInContent = isIntersecting;\n }\n if (target === intersectionRightSentinelNode) {\n this._isIntersectionRightTrackerInContent = isIntersecting;\n }\n });\n };\n\n /**\n * Handles `click` event on the left-hand paginator button.\n */\n private _paginateLeft() {\n const {\n _currentScrollPosition: currentScrollPosition,\n _navBar: navBar,\n _itemNodes: itemNodes,\n _pageIsRTL: pageIsRTL,\n } = this;\n // If the right-side intersection sentinel is in the view, it means that right-side chevron button is hidden.\n // Given scrolling to left makes it shown,\n // `contentContainerNode!.offsetWidth` will shrink as we scroll and we need to adjust for it.\n const elems = Array.prototype.slice.call(itemNodes);\n if (elems) {\n if (pageIsRTL) {\n const interimLeft = navBar!.getBoundingClientRect().right;\n const lastVisibleElementIndex = findLastIndex(\n elems,\n (elem) =>\n elem.getBoundingClientRect().right > interimLeft - buttonWidthOffset\n );\n if (lastVisibleElementIndex >= 0) {\n const lastVisibleElementRight =\n elems[lastVisibleElementIndex].getBoundingClientRect().left;\n // 48 = button width - button gradient\n const newScrollPosition =\n currentScrollPosition - lastVisibleElementRight + 48;\n this._currentScrollPosition =\n newScrollPosition <= 0 ? 0 : newScrollPosition;\n }\n } else {\n const lastVisibleElementIndex = findLastIndex(\n elems,\n (elem) =>\n elem.getBoundingClientRect().left <\n buttonWidthOffset + navBar!.getBoundingClientRect().left\n );\n if (lastVisibleElementIndex >= 0) {\n const lastVisibleElementRight =\n elems[lastVisibleElementIndex].getBoundingClientRect().right;\n const newScrollPosition =\n lastVisibleElementRight +\n currentScrollPosition -\n navBar!.getBoundingClientRect().right +\n buttonWidthOffset;\n // If the new scroll position is less than the width of the left chevron button,\n // it means that hiding the left chevron button reveals the whole of the left-most nav item.\n // Snaps the left-most nav item to the left edge of nav container in this case.\n this._currentScrollPosition =\n newScrollPosition <= 0 ? 0 : newScrollPosition;\n }\n }\n }\n }\n\n /**\n * Handles `click` event on the right-hand paginator button.\n */\n private _paginateRight() {\n const {\n _navBar: navBar,\n _contentNode: contentNode,\n _currentScrollPosition: currentScrollPosition,\n _itemNodes: itemNodes,\n _pageIsRTL: pageIsRTL,\n } = this;\n\n const elems = Array.prototype.slice.call(itemNodes);\n if (elems) {\n if (pageIsRTL) {\n const interimLeft = navBar!.getBoundingClientRect().left;\n const firstVisibleElementIndex = elems.findIndex(\n (elem) =>\n elem.getBoundingClientRect().left < interimLeft + buttonWidthOffset\n );\n if (firstVisibleElementIndex > 0) {\n const firstVisibleElementLeft = Math.abs(\n elems[firstVisibleElementIndex].getBoundingClientRect().right +\n buttonWidthOffset -\n navBar!.getBoundingClientRect().right\n );\n const maxLeft = contentNode!.scrollWidth - navBar!.offsetWidth;\n this._currentScrollPosition = Math.min(\n firstVisibleElementLeft + currentScrollPosition,\n maxLeft\n );\n }\n } else {\n const interimRight = navBar!.getBoundingClientRect().right;\n const firstVisibleElementIndex = elems.findIndex(\n (elem) =>\n elem.getBoundingClientRect().right >\n interimRight - buttonWidthOffset\n );\n if (firstVisibleElementIndex > 0) {\n const firstVisibleElementLeft =\n elems[firstVisibleElementIndex].getBoundingClientRect().left -\n navBar!.getBoundingClientRect().left -\n buttonWidthOffset;\n // Ensures that is there is no blank area at the right hand side in scroll area\n // if we see the right remainder nav items can be contained in a page\n const maxLeft = contentNode!.scrollWidth - navBar!.offsetWidth;\n this._currentScrollPosition = Math.min(\n firstVisibleElementLeft + currentScrollPosition,\n maxLeft\n );\n }\n }\n }\n }\n\n mediaQueryCallbackLG() {\n this._isMobile = !this.carbonBreakpoints.lg.matches;\n }\n\n /**\n * The current 0px offset from the top of page.\n */\n @property({ type: Number })\n stickyOffset = 0;\n\n /**\n * The throttled scroll listener.\n *\n * @param event scroll handler\n */\n @HostListener('window:scroll')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleScroll = (event: Event) => {\n this._throttleScroll!(event);\n };\n\n /**\n * The trigger reharvest listener.\n */\n @HostListener(`document:${c4dPrefix}-table-of-contents-reharvest`)\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _retriggerHarvest = () => {\n this._targets = Array.from(this.querySelectorAll('a[name]'));\n };\n\n connectedCallback() {\n super.connectedCallback();\n this._cleanAndCreateIntersectionObserverContainer({ create: true });\n if (!this._throttleScroll) {\n this._throttleScroll = throttle(this._handleOnScroll, 250);\n this._handleOnScroll();\n }\n }\n\n disconnectedCallback() {\n this._cleanAndCreateIntersectionObserverContainer();\n this._contentMutationObserver.disconnect();\n if (this._throttleScroll) {\n this._throttleScroll.cancel();\n this._throttleScroll = null;\n }\n super.disconnectedCallback();\n }\n\n firstUpdated() {\n super.firstUpdated();\n this._cleanAndCreateIntersectionObserverContainer({ create: true });\n\n StickyHeader.global.tableOfContents = this;\n }\n\n render() {\n const {\n layout,\n stickyOffset,\n _currentTarget: currentTarget,\n _currentScrollPosition: currentScrollPosition,\n _hasHeading: hasHeading,\n _isIntersectionLeftTrackerInContent: isIntersectionLeftTrackerInContent,\n _isIntersectionRightTrackerInContent: isIntersectionRightTrackerInContent,\n _isMobile: isMobile,\n _targets: targets,\n _handleClickItem: handleClickItem,\n _handleOnKeyDown: handleOnKeyDown,\n _handleSlotChange: handleSlotChange,\n _handleSlotChangeHeading: handleSlotChangeHeading,\n _paginateLeft: paginateLeft,\n _paginateRight: paginateRight,\n _pageIsRTL: pageIsRTL,\n } = this;\n\n const containerClasses = classMap({\n [`${c4dPrefix}-ce--table-of-contents__container`]:\n layout === TOC_TYPES.DEFAULT && !isMobile,\n [`${c4dPrefix}-ce--table-of-contents-horizontal__container`]:\n layout === TOC_TYPES.HORIZONTAL || isMobile,\n });\n\n const navigationClasses = classMap({\n [`${prefix}--tableofcontents__sidebar`]:\n layout === TOC_TYPES.DEFAULT && !isMobile,\n [`${prefix}--tableofcontents__navbar`]:\n layout === TOC_TYPES.HORIZONTAL || isMobile,\n });\n\n const chevronLeftContainerClasses = classMap({\n [`${prefix}--toc__navbar-chevron-left-container`]: true,\n [`${c4dPrefix}-ce--toc__navbar-chevron-container--hidden`]:\n isIntersectionLeftTrackerInContent,\n });\n\n const chevronRightContainerClasses = classMap({\n [`${prefix}--toc__navbar-chevron-right-container`]: true,\n [`${c4dPrefix}-ce--toc__navbar-chevron-container--hidden`]:\n isIntersectionRightTrackerInContent,\n });\n\n return html`\n ${this.layout === 'horizontal'\n ? html`\n <ul class=\"${prefix}--toc__print-styles\" part=\"list\">\n ${targets.map((item) => {\n const name = item.getAttribute('name');\n const title = (\n item.dataset.title ??\n item.textContent ??\n ''\n ).trim();\n const selected = item === currentTarget;\n const itemClasses = classMap({\n [`${prefix}--tableofcontents__item`]: true,\n [`${prefix}--tableofcontents__item--active`]: selected,\n });\n return html`\n <li\n class=\"${itemClasses}\"\n part=\"list-item${selected ? ' list-item--active' : ''}\"\n @click=\"${handleClickItem}\"\n @keydown=\"${handleOnKeyDown}\">\n <a\n aria-current=\"${ifDefined(\n !selected ? undefined : 'location'\n )}\"\n data-target=\"${name!}\"\n href=\"#${name}\"\n part=\"link\">\n ${title}\n </a>\n </li>\n `;\n })}\n </ul>\n `\n : ``}\n <div part=\"container\" class=\"${containerClasses}\">\n <div part=\"table\" class=\"${navigationClasses}\">\n ${isMobile\n ? ''\n : html`\n <div\n ?hidden=\"${!hasHeading}\"\n class=\"${prefix}--tableofcontents__children\"\n part=\"heading\">\n <slot\n name=\"heading\"\n @slotchange=\"${handleSlotChangeHeading}\"></slot>\n <slot name=\"menu-rule\"></slot>\n </div>\n `}\n ${layout === 'horizontal' || isMobile\n ? html`\n ${pageIsRTL\n ? html`\n <button\n part=\"prev-button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"${chevronRightContainerClasses}\"\n @click=\"${paginateLeft}\">\n ${ChevronLeft20()}\n </button>\n `\n : html`\n <button\n part=\"prev-button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"${chevronLeftContainerClasses}\"\n @click=\"${paginateLeft}\">\n ${ChevronLeft20()}\n </button>\n `}\n `\n : ``}\n <div\n class=\"${c4dPrefix}-ce--table-of-contents__items-container\"\n part=\"items-container\"\n style=\"position: sticky; top: ${stickyOffset &&\n this.layout !== TOC_TYPES.HORIZONTAL\n ? `${stickyOffset}px`\n : 0}\">\n <div\n class=\"${prefix}--tableofcontents-container\"\n part=\"item-container\">\n <div\n class=\"${prefix}--tableofcontents\"\n part=\"content\"\n style=\"${pageIsRTL\n ? 'right'\n : 'left'}: -${currentScrollPosition}px\">\n ${pageIsRTL\n ? html`\n <div\n class=\"${prefix}--sub-content-right\"\n part=\"sub-content-right\"></div>\n `\n : html`\n <div\n class=\"${prefix}--sub-content-left\"\n part=\"sub-content-left\"></div>\n `}\n <ul part=\"list\">\n ${targets.map((item) => {\n const name = item.getAttribute('name');\n const title = (\n item.dataset.title ??\n item.textContent ??\n ''\n ).trim();\n const selected = item === currentTarget;\n const itemClasses = classMap({\n [`${prefix}--tableofcontents__item`]: true,\n [`${prefix}--tableofcontents__item--active`]: selected,\n });\n return html`\n <li\n class=\"${itemClasses}\"\n part=\"list-item${selected ? ' list-item--active' : ''}\"\n @click=\"${handleClickItem}\"\n @keydown=\"${handleOnKeyDown}\">\n <a\n aria-current=\"${ifDefined(\n !selected ? undefined : 'location'\n )}\"\n data-target=\"${name!}\"\n href=\"#${name}\"\n tabindex=\"${selected ? 0 : -1}\"\n part=\"link\">\n ${title}\n </a>\n </li>\n `;\n })}\n </ul>\n ${pageIsRTL\n ? html`\n <div\n class=\"${prefix}--sub-content-left\"\n part=\"sub-content-left\"></div>\n `\n : html`\n <div\n class=\"${prefix}--sub-content-right\"\n part=\"sub-content-right\"></div>\n `}\n </div>\n </div>\n </div>\n\n ${this.layout === 'horizontal' || isMobile\n ? html`\n ${pageIsRTL\n ? html`\n <button\n part=\"next-button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"${chevronLeftContainerClasses}\"\n @click=\"${paginateRight}\">\n ${ChevronRight20()}\n </button>\n `\n : html`\n <button\n part=\"next-button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"${chevronRightContainerClasses}\"\n @click=\"${paginateRight}\">\n ${ChevronRight20()}\n </button>\n `}\n `\n : ``}\n </div>\n\n <div class=\"${prefix}--tableofcontents__content\" part=\"content-table\">\n <div\n class=\"${prefix}--tableofcontents__content-wrapper\"\n part=\"wrapper\">\n ${!isMobile\n ? ''\n : html`\n <div\n ?hidden=\"${!hasHeading}\"\n class=\"${prefix}--tableofcontents__children\"\n part=\"heading\">\n <slot\n name=\"heading\"\n @slotchange=\"${handleSlotChangeHeading}\"></slot>\n <slot name=\"menu-rule\"></slot>\n </div>\n `}\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n </div>\n </div>\n </div>\n `;\n }\n\n /**\n * The selector that selects the link items.\n */\n static get selectorItem() {\n return `.${prefix}--tableofcontents__item a`;\n }\n\n /**\n * The selector that determines where to harvest the table of contents from.\n */\n static selectorTarget = '[name]';\n\n static get stableSelector() {\n return `${c4dPrefix}--table-of-contents`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DTableOfContents;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
*
|
|
4
|
-
* Copyright IBM Corp. 2020,
|
|
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.
|
|
@@ -687,6 +687,7 @@ declare const C4DVideoPlayer_base: (new (...args: any[]) => {
|
|
|
687
687
|
* @csspart video - The video. Usage `c4d-video-player::part(video)`
|
|
688
688
|
* @csspart button - The play button. Usage `c4d-video-player::part(button)`
|
|
689
689
|
* @csspart image - The thumbnail image. Usage `c4d-video-player::part(image)`
|
|
690
|
+
* @csspart play-video - The play video icon. Usage `c4d-video-player::part(play-video)`
|
|
690
691
|
* @csspart video-container - The video container. Usage `c4d-video-player::part(video-container)`
|
|
691
692
|
* @csspart caption - The caption. Usage `c4d-video-player::part(caption)`
|
|
692
693
|
*/
|
|
@@ -14,7 +14,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
14
14
|
/**
|
|
15
15
|
* @license
|
|
16
16
|
*
|
|
17
|
-
* Copyright IBM Corp. 2020,
|
|
17
|
+
* Copyright IBM Corp. 2020, 2025
|
|
18
18
|
*
|
|
19
19
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
20
20
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -49,6 +49,7 @@ const {
|
|
|
49
49
|
* @csspart video - The video. Usage `c4d-video-player::part(video)`
|
|
50
50
|
* @csspart button - The play button. Usage `c4d-video-player::part(button)`
|
|
51
51
|
* @csspart image - The thumbnail image. Usage `c4d-video-player::part(image)`
|
|
52
|
+
* @csspart play-video - The play video icon. Usage `c4d-video-player::part(play-video)`
|
|
52
53
|
* @csspart video-container - The video container. Usage `c4d-video-player::part(video-container)`
|
|
53
54
|
* @csspart caption - The caption. Usage `c4d-video-player::part(caption)`
|
|
54
55
|
*/
|
|
@@ -189,7 +190,8 @@ let C4DVideoPlayer = _decorate([customElement(`${c4dPrefix}-video-player`)], fun
|
|
|
189
190
|
</button>
|
|
190
191
|
</div>
|
|
191
192
|
`), c4dPrefix, c4dPrefix, handleClickOverlay, thumbnailUrl, ifNonEmpty(name), PlayVideo({
|
|
192
|
-
slot: 'icon'
|
|
193
|
+
slot: 'icon',
|
|
194
|
+
part: 'play-video'
|
|
193
195
|
})) : html(_t5 || (_t5 = _` <slot></slot> `));
|
|
194
196
|
}
|
|
195
197
|
};
|
|
@@ -436,7 +438,7 @@ let C4DVideoPlayer = _decorate([customElement(`${c4dPrefix}-video-player`)], fun
|
|
|
436
438
|
[`${c4dPrefix}--video-player__toggle-playback--${buttonPosition}`]: true
|
|
437
439
|
});
|
|
438
440
|
return html(_t6 || (_t6 = _`
|
|
439
|
-
<div class="${0}">
|
|
441
|
+
<div class="${0}" part="video-container">
|
|
440
442
|
${0}
|
|
441
443
|
${0}
|
|
442
444
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-player.js","names":["LitElement","html","property","classMap","FocusMixin","PlayVideo","PlayOutline","PauseOutline","formatVideoCaption","formatVideoDuration","settings","KalturaPlayerAPI","BUTTON_POSITION","VIDEO_PLAYER_CONTENT_STATE","VIDEO_PLAYER_PLAYING_MODE","styles","StableSelectorMixin","carbonElement","customElement","ifNonEmpty","stablePrefix","c4dPrefix","C4DVideoPlayer","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","decorators","reflect","attribute","key","value","INLINE","type","Boolean","BOTTOM_RIGHT","playingMode","contentState","VIDEO","videoId","name","customVideoDescription","eventContentStateChange","dispatchEvent","CustomEvent","bubbles","composed","detail","eventTogglePlayback","thumbnailUrl","backgroundMode","_handleClickOverlay","handleClickOverlay","intersectionMode","_t","_","THUMBNAIL","_t2","_t3","autoplay","_t4","slot","_t5","_updateThumbnailUrl","thumbnailSrc","URL","error","host","toLowerCase","includes","pathname","getThumbnailUrl","mediaId","width","String","offsetWidth","userInitiatedTogglePlaybackState","eventPlaybackStateChange","Number","render","aspectRatio","duration","formatCaption","formatDuration","hideCaption","buttonPosition","_handleTogglePlayback","handleTogglePlayback","_renderContent","renderContent","aspectRatioClass","togglePlaybackClass","_t6","_t7","isPlaying","undefined","_t8","updated","changedProperties","has","caption","setAttribute","setTimeout","updateComplete","endsWith","firstUpdated","_this$parentElement","_this$parentElement2","_this$parentElement3","tabIndex","parentElement","autoPlay","static","_objectSpread","shadowRootOptions","delegatesFocus"],"sources":["components/video-player/video-player.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport FocusMixin from '@carbon/web-components/es/globals/mixins/focus.js';\nimport PlayVideo from '../../../es/icons/play-video.js';\nimport PlayOutline from '@carbon/web-components/es/icons/play--outline/20.js';\nimport PauseOutline from '@carbon/web-components/es/icons/pause--outline/20.js';\nimport {\n formatVideoCaption,\n formatVideoDuration,\n} from '@carbon/ibmdotcom-utilities/es/utilities/formatVideoCaption/formatVideoCaption.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport KalturaPlayerAPI from '@carbon/ibmdotcom-services/es/services/KalturaPlayer/KalturaPlayer.js';\nimport {\n BUTTON_POSITION,\n VIDEO_PLAYER_CONTENT_STATE,\n VIDEO_PLAYER_PLAYING_MODE,\n} from './defs';\nimport '../image/image';\nimport styles from './video-player.scss';\nimport StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport ifNonEmpty from '@carbon/web-components/es/globals/directives/if-non-empty.js';\nimport C4DVideoPlayerComposite from './video-player-composite';\n\nexport { VIDEO_PLAYER_CONTENT_STATE };\nexport { VIDEO_PLAYER_PLAYING_MODE };\n\nconst { stablePrefix: c4dPrefix } = settings;\n\n/**\n * Video player.\n *\n * @element c4d-video-player\n * @csspart video - The video. Usage `c4d-video-player::part(video)`\n * @csspart button - The play button. Usage `c4d-video-player::part(button)`\n * @csspart image - The thumbnail image. Usage `c4d-video-player::part(image)`\n * @csspart video-container - The video container. Usage `c4d-video-player::part(video-container)`\n * @csspart caption - The caption. Usage `c4d-video-player::part(caption)`\n */\n@customElement(`${c4dPrefix}-video-player`)\nclass C4DVideoPlayer extends FocusMixin(StableSelectorMixin(LitElement)) {\n /**\n * The video player's mode showing Inline or Lightbox.\n */\n @property({ reflect: true, attribute: 'playing-mode' })\n playingMode = VIDEO_PLAYER_PLAYING_MODE.INLINE;\n\n /**\n * Triggers playback on intersection with the viewport / carousel.\n */\n @property({ attribute: 'intersection-mode', reflect: true, type: Boolean })\n intersectionMode = false;\n\n /**\n * The current playback state, inherited from the parent.\n */\n @property()\n isPlaying = false;\n\n /**\n * The position of the toggle playback button.\n */\n @property({ attribute: 'button-position', reflect: true })\n buttonPosition = BUTTON_POSITION.BOTTOM_RIGHT;\n\n /**\n * Handles `click` event on the video thumbnail.\n */\n protected _handleClickOverlay = () => {\n if (this.playingMode === VIDEO_PLAYER_PLAYING_MODE.INLINE) {\n this.contentState = VIDEO_PLAYER_CONTENT_STATE.VIDEO;\n }\n const { videoId, name, customVideoDescription } = this;\n const { eventContentStateChange } = this\n .constructor as typeof C4DVideoPlayer;\n this.dispatchEvent(\n new CustomEvent(eventContentStateChange, {\n bubbles: true,\n composed: true,\n detail: {\n videoId,\n contentState: VIDEO_PLAYER_CONTENT_STATE.VIDEO,\n playingMode: this.playingMode,\n name,\n customVideoDescription,\n },\n })\n );\n };\n\n protected _handleTogglePlayback = () => {\n const { videoId } = this;\n const { eventTogglePlayback } = this.constructor as typeof C4DVideoPlayer;\n this.dispatchEvent(\n new CustomEvent(eventTogglePlayback, {\n bubbles: true,\n composed: true,\n detail: {\n videoId,\n },\n })\n );\n };\n\n /**\n * @returns The video content.\n */\n protected _renderContent = () => {\n const {\n contentState,\n name,\n thumbnailUrl,\n backgroundMode,\n _handleClickOverlay: handleClickOverlay,\n intersectionMode,\n } = this;\n if (intersectionMode) {\n return html`\n <div class=\"${c4dPrefix}--video-player__video\">\n ${contentState === VIDEO_PLAYER_CONTENT_STATE.THUMBNAIL\n ? html`\n <c4d-image\n default-src=\"${thumbnailUrl}\"\n alt=\"${ifNonEmpty(name)}\"\n part=\"image\">\n </c4d-image>\n `\n : html` <slot></slot> `}\n </div>\n `;\n } else {\n return contentState === VIDEO_PLAYER_CONTENT_STATE.THUMBNAIL &&\n !backgroundMode &&\n !this.autoplay\n ? html`\n <div class=\"${c4dPrefix}--video-player__video\" part=\"video\">\n <button\n class=\"${c4dPrefix}--video-player__image-overlay\"\n part=\"button\"\n @click=\"${handleClickOverlay}\">\n <c4d-image\n default-src=\"${thumbnailUrl}\"\n alt=\"${ifNonEmpty(name)}\"\n part=\"image\">\n ${PlayVideo({ slot: 'icon' })}\n </c4d-image>\n </button>\n </div>\n `\n : html` <slot></slot> `;\n }\n };\n\n /**\n * Updates video thumbnail url to match video width\n */\n protected _updateThumbnailUrl() {\n let thumbnailSrc: false | URL = false;\n\n try {\n thumbnailSrc = new URL(this.thumbnailUrl);\n } catch (error) {\n // Do nothing.\n }\n\n // If current thumbnail is from Kaltura and includes this video's ID we should be able to safely update it.\n if (\n thumbnailSrc &&\n thumbnailSrc.host.toLowerCase().includes('kaltura') &&\n thumbnailSrc.pathname.includes(this.videoId!)\n ) {\n this.thumbnailUrl = KalturaPlayerAPI.getThumbnailUrl({\n mediaId: this.videoId,\n width: String(this.offsetWidth),\n });\n }\n }\n\n /**\n * userInitiatedTogglePlaybackState\n */\n public userInitiatedTogglePlaybackState() {\n const { videoId } = this;\n const { eventPlaybackStateChange } = this\n .constructor as typeof C4DVideoPlayer;\n this.dispatchEvent(\n new CustomEvent(eventPlaybackStateChange, {\n bubbles: true,\n composed: true,\n detail: {\n videoId,\n playingMode: this.playingMode,\n },\n })\n );\n }\n\n /**\n * The video player's content state.\n */\n @property({ reflect: true, attribute: 'content-state' })\n contentState = VIDEO_PLAYER_CONTENT_STATE.THUMBNAIL;\n\n /**\n * The video duration.\n */\n @property({ type: Number })\n duration?: number;\n\n /**\n * The formatter for the video caption, composed with the video name and the video duration.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatCaption = formatVideoCaption;\n\n /**\n * The formatter for the video duration.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatDuration = formatVideoDuration;\n\n /**\n * `true` to hide the caption.\n */\n @property({ type: Boolean, attribute: 'hide-caption' })\n hideCaption = false;\n\n /**\n * The video name.\n */\n @property()\n name = '';\n\n /**\n * `true` to autoplay, mute video, and hide UI\n */\n @property({ attribute: 'background-mode', reflect: true, type: Boolean })\n backgroundMode = false;\n\n /**\n * `true` to autoplay\n */\n @property({ attribute: 'auto-play', reflect: true, type: Boolean })\n autoplay = false;\n\n /**\n * Custom video description. This property should only be set when using `playing-mode=\"lightbox\"`\n */\n @property({ attribute: 'video-description' })\n customVideoDescription?: string;\n\n /**\n * The thumbnail URL.\n */\n @property({ attribute: 'thumbnail-url' })\n thumbnailUrl = '';\n\n /**\n * The video ID.\n */\n @property({ attribute: 'video-id' })\n videoId?: string;\n\n /**\n * Override default aspect ratio of `16x9`.\n * Available aspect ratios:\n *\n * `16x9`, `9x16`, `2x1`, `1x2`, `4x3`, `3x4`, `1x1`\n */\n @property({ attribute: 'aspect-ratio' })\n aspectRatio?: string;\n\n render() {\n const {\n aspectRatio,\n duration,\n formatCaption,\n formatDuration,\n hideCaption,\n name,\n buttonPosition,\n intersectionMode,\n _handleTogglePlayback: handleTogglePlayback,\n _renderContent: renderContent,\n } = this;\n\n const aspectRatioClass = classMap({\n [`${c4dPrefix}--video-player__video-container`]: true,\n [`${c4dPrefix}--video-player__aspect-ratio--${aspectRatio}`]:\n !!aspectRatio,\n });\n const togglePlaybackClass = classMap({\n [`${c4dPrefix}--video-player__toggle-playback`]: true,\n [`${c4dPrefix}--video-player__toggle-playback--${buttonPosition}`]: true,\n });\n\n return html`\n <div class=\"${aspectRatioClass}\">\n ${intersectionMode\n ? html`\n <button\n class=\"${togglePlaybackClass}\"\n @click=\"${handleTogglePlayback}\"\n tabindex=\"0\"\n part=\"button\">\n ${this.isPlaying\n ? PauseOutline({ 'aria-label': 'Pause' })\n : PlayOutline({ 'aria-label': 'Play' })}\n </button>\n `\n : null}\n ${renderContent()}\n </div>\n ${hideCaption\n ? undefined\n : html`\n <div\n class=\"${c4dPrefix}--video-player__video-caption\"\n part=\"caption\">\n ${formatCaption({\n duration: formatDuration({\n duration: !duration ? duration : duration * 1000,\n }),\n name,\n })}\n </div>\n `}\n `;\n }\n\n updated(changedProperties) {\n if (\n changedProperties.has('duration') ||\n changedProperties.has('formatCaption') ||\n changedProperties.has('name') ||\n changedProperties.has('backgroundMode')\n ) {\n const { duration, formatCaption, formatDuration, name } = this;\n const caption = formatCaption({\n duration: formatDuration({\n duration: !duration ? duration : duration * 1000,\n }),\n name,\n });\n if (caption) {\n this.setAttribute('aria-label', caption);\n }\n }\n\n // Move measurement & API call to callback queue & wait for update to complete.\n setTimeout(async () => {\n await this.updateComplete;\n if (!this.thumbnailUrl.endsWith(`${this.offsetWidth}`)) {\n this._updateThumbnailUrl();\n }\n }, 0);\n }\n\n firstUpdated() {\n this.tabIndex = 0;\n this.backgroundMode = Boolean(\n (this.parentElement as C4DVideoPlayerComposite)?.backgroundMode\n );\n this.intersectionMode = Boolean(\n (this.parentElement as C4DVideoPlayerComposite)?.intersectionMode\n );\n this.autoplay = Boolean(\n (this.parentElement as C4DVideoPlayerComposite)?.autoPlay\n );\n }\n\n /**\n * The name of the custom event fired after video content state is changed upon a user gesture.\n */\n static get eventContentStateChange() {\n return `${c4dPrefix}-video-player-content-state-changed`;\n }\n\n /**\n * The name of the custom event fired requesting playback state change.\n */\n static get eventPlaybackStateChange() {\n return `${c4dPrefix}-video-player-playback-state-changed`;\n }\n\n static get stableSelector() {\n return `${c4dPrefix}--video-player`;\n }\n\n /**\n * The name of the custom event fired when a user action toggles playback.\n */\n static get eventTogglePlayback() {\n return `${c4dPrefix}-video-player-toggle-playback`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DVideoPlayer;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"video-player.js","names":["LitElement","html","property","classMap","FocusMixin","PlayVideo","PlayOutline","PauseOutline","formatVideoCaption","formatVideoDuration","settings","KalturaPlayerAPI","BUTTON_POSITION","VIDEO_PLAYER_CONTENT_STATE","VIDEO_PLAYER_PLAYING_MODE","styles","StableSelectorMixin","carbonElement","customElement","ifNonEmpty","stablePrefix","c4dPrefix","C4DVideoPlayer","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","decorators","reflect","attribute","key","value","INLINE","type","Boolean","BOTTOM_RIGHT","playingMode","contentState","VIDEO","videoId","name","customVideoDescription","eventContentStateChange","dispatchEvent","CustomEvent","bubbles","composed","detail","eventTogglePlayback","thumbnailUrl","backgroundMode","_handleClickOverlay","handleClickOverlay","intersectionMode","_t","_","THUMBNAIL","_t2","_t3","autoplay","_t4","slot","part","_t5","_updateThumbnailUrl","thumbnailSrc","URL","error","host","toLowerCase","includes","pathname","getThumbnailUrl","mediaId","width","String","offsetWidth","userInitiatedTogglePlaybackState","eventPlaybackStateChange","Number","render","aspectRatio","duration","formatCaption","formatDuration","hideCaption","buttonPosition","_handleTogglePlayback","handleTogglePlayback","_renderContent","renderContent","aspectRatioClass","togglePlaybackClass","_t6","_t7","isPlaying","undefined","_t8","updated","changedProperties","has","caption","setAttribute","setTimeout","updateComplete","endsWith","firstUpdated","_this$parentElement","_this$parentElement2","_this$parentElement3","tabIndex","parentElement","autoPlay","static","_objectSpread","shadowRootOptions","delegatesFocus"],"sources":["components/video-player/video-player.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 { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport FocusMixin from '@carbon/web-components/es/globals/mixins/focus.js';\nimport PlayVideo from '../../../es/icons/play-video.js';\nimport PlayOutline from '@carbon/web-components/es/icons/play--outline/20.js';\nimport PauseOutline from '@carbon/web-components/es/icons/pause--outline/20.js';\nimport {\n formatVideoCaption,\n formatVideoDuration,\n} from '@carbon/ibmdotcom-utilities/es/utilities/formatVideoCaption/formatVideoCaption.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport KalturaPlayerAPI from '@carbon/ibmdotcom-services/es/services/KalturaPlayer/KalturaPlayer.js';\nimport {\n BUTTON_POSITION,\n VIDEO_PLAYER_CONTENT_STATE,\n VIDEO_PLAYER_PLAYING_MODE,\n} from './defs';\nimport '../image/image';\nimport styles from './video-player.scss';\nimport StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport ifNonEmpty from '@carbon/web-components/es/globals/directives/if-non-empty.js';\nimport C4DVideoPlayerComposite from './video-player-composite';\n\nexport { VIDEO_PLAYER_CONTENT_STATE };\nexport { VIDEO_PLAYER_PLAYING_MODE };\n\nconst { stablePrefix: c4dPrefix } = settings;\n\n/**\n * Video player.\n *\n * @element c4d-video-player\n * @csspart video - The video. Usage `c4d-video-player::part(video)`\n * @csspart button - The play button. Usage `c4d-video-player::part(button)`\n * @csspart image - The thumbnail image. Usage `c4d-video-player::part(image)`\n * @csspart play-video - The play video icon. Usage `c4d-video-player::part(play-video)`\n * @csspart video-container - The video container. Usage `c4d-video-player::part(video-container)`\n * @csspart caption - The caption. Usage `c4d-video-player::part(caption)`\n */\n@customElement(`${c4dPrefix}-video-player`)\nclass C4DVideoPlayer extends FocusMixin(StableSelectorMixin(LitElement)) {\n /**\n * The video player's mode showing Inline or Lightbox.\n */\n @property({ reflect: true, attribute: 'playing-mode' })\n playingMode = VIDEO_PLAYER_PLAYING_MODE.INLINE;\n\n /**\n * Triggers playback on intersection with the viewport / carousel.\n */\n @property({ attribute: 'intersection-mode', reflect: true, type: Boolean })\n intersectionMode = false;\n\n /**\n * The current playback state, inherited from the parent.\n */\n @property()\n isPlaying = false;\n\n /**\n * The position of the toggle playback button.\n */\n @property({ attribute: 'button-position', reflect: true })\n buttonPosition = BUTTON_POSITION.BOTTOM_RIGHT;\n\n /**\n * Handles `click` event on the video thumbnail.\n */\n protected _handleClickOverlay = () => {\n if (this.playingMode === VIDEO_PLAYER_PLAYING_MODE.INLINE) {\n this.contentState = VIDEO_PLAYER_CONTENT_STATE.VIDEO;\n }\n const { videoId, name, customVideoDescription } = this;\n const { eventContentStateChange } = this\n .constructor as typeof C4DVideoPlayer;\n this.dispatchEvent(\n new CustomEvent(eventContentStateChange, {\n bubbles: true,\n composed: true,\n detail: {\n videoId,\n contentState: VIDEO_PLAYER_CONTENT_STATE.VIDEO,\n playingMode: this.playingMode,\n name,\n customVideoDescription,\n },\n })\n );\n };\n\n protected _handleTogglePlayback = () => {\n const { videoId } = this;\n const { eventTogglePlayback } = this.constructor as typeof C4DVideoPlayer;\n this.dispatchEvent(\n new CustomEvent(eventTogglePlayback, {\n bubbles: true,\n composed: true,\n detail: {\n videoId,\n },\n })\n );\n };\n\n /**\n * @returns The video content.\n */\n protected _renderContent = () => {\n const {\n contentState,\n name,\n thumbnailUrl,\n backgroundMode,\n _handleClickOverlay: handleClickOverlay,\n intersectionMode,\n } = this;\n if (intersectionMode) {\n return html`\n <div class=\"${c4dPrefix}--video-player__video\">\n ${contentState === VIDEO_PLAYER_CONTENT_STATE.THUMBNAIL\n ? html`\n <c4d-image\n default-src=\"${thumbnailUrl}\"\n alt=\"${ifNonEmpty(name)}\"\n part=\"image\">\n </c4d-image>\n `\n : html` <slot></slot> `}\n </div>\n `;\n } else {\n return contentState === VIDEO_PLAYER_CONTENT_STATE.THUMBNAIL &&\n !backgroundMode &&\n !this.autoplay\n ? html`\n <div class=\"${c4dPrefix}--video-player__video\" part=\"video\">\n <button\n class=\"${c4dPrefix}--video-player__image-overlay\"\n part=\"button\"\n @click=\"${handleClickOverlay}\">\n <c4d-image\n default-src=\"${thumbnailUrl}\"\n alt=\"${ifNonEmpty(name)}\"\n part=\"image\">\n ${PlayVideo({ slot: 'icon', part: 'play-video' })}\n </c4d-image>\n </button>\n </div>\n `\n : html` <slot></slot> `;\n }\n };\n\n /**\n * Updates video thumbnail url to match video width\n */\n protected _updateThumbnailUrl() {\n let thumbnailSrc: false | URL = false;\n\n try {\n thumbnailSrc = new URL(this.thumbnailUrl);\n } catch (error) {\n // Do nothing.\n }\n\n // If current thumbnail is from Kaltura and includes this video's ID we should be able to safely update it.\n if (\n thumbnailSrc &&\n thumbnailSrc.host.toLowerCase().includes('kaltura') &&\n thumbnailSrc.pathname.includes(this.videoId!)\n ) {\n this.thumbnailUrl = KalturaPlayerAPI.getThumbnailUrl({\n mediaId: this.videoId,\n width: String(this.offsetWidth),\n });\n }\n }\n\n /**\n * userInitiatedTogglePlaybackState\n */\n public userInitiatedTogglePlaybackState() {\n const { videoId } = this;\n const { eventPlaybackStateChange } = this\n .constructor as typeof C4DVideoPlayer;\n this.dispatchEvent(\n new CustomEvent(eventPlaybackStateChange, {\n bubbles: true,\n composed: true,\n detail: {\n videoId,\n playingMode: this.playingMode,\n },\n })\n );\n }\n\n /**\n * The video player's content state.\n */\n @property({ reflect: true, attribute: 'content-state' })\n contentState = VIDEO_PLAYER_CONTENT_STATE.THUMBNAIL;\n\n /**\n * The video duration.\n */\n @property({ type: Number })\n duration?: number;\n\n /**\n * The formatter for the video caption, composed with the video name and the video duration.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatCaption = formatVideoCaption;\n\n /**\n * The formatter for the video duration.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatDuration = formatVideoDuration;\n\n /**\n * `true` to hide the caption.\n */\n @property({ type: Boolean, attribute: 'hide-caption' })\n hideCaption = false;\n\n /**\n * The video name.\n */\n @property()\n name = '';\n\n /**\n * `true` to autoplay, mute video, and hide UI\n */\n @property({ attribute: 'background-mode', reflect: true, type: Boolean })\n backgroundMode = false;\n\n /**\n * `true` to autoplay\n */\n @property({ attribute: 'auto-play', reflect: true, type: Boolean })\n autoplay = false;\n\n /**\n * Custom video description. This property should only be set when using `playing-mode=\"lightbox\"`\n */\n @property({ attribute: 'video-description' })\n customVideoDescription?: string;\n\n /**\n * The thumbnail URL.\n */\n @property({ attribute: 'thumbnail-url' })\n thumbnailUrl = '';\n\n /**\n * The video ID.\n */\n @property({ attribute: 'video-id' })\n videoId?: string;\n\n /**\n * Override default aspect ratio of `16x9`.\n * Available aspect ratios:\n *\n * `16x9`, `9x16`, `2x1`, `1x2`, `4x3`, `3x4`, `1x1`\n */\n @property({ attribute: 'aspect-ratio' })\n aspectRatio?: string;\n\n render() {\n const {\n aspectRatio,\n duration,\n formatCaption,\n formatDuration,\n hideCaption,\n name,\n buttonPosition,\n intersectionMode,\n _handleTogglePlayback: handleTogglePlayback,\n _renderContent: renderContent,\n } = this;\n\n const aspectRatioClass = classMap({\n [`${c4dPrefix}--video-player__video-container`]: true,\n [`${c4dPrefix}--video-player__aspect-ratio--${aspectRatio}`]:\n !!aspectRatio,\n });\n const togglePlaybackClass = classMap({\n [`${c4dPrefix}--video-player__toggle-playback`]: true,\n [`${c4dPrefix}--video-player__toggle-playback--${buttonPosition}`]: true,\n });\n\n return html`\n <div class=\"${aspectRatioClass}\" part=\"video-container\">\n ${intersectionMode\n ? html`\n <button\n class=\"${togglePlaybackClass}\"\n @click=\"${handleTogglePlayback}\"\n tabindex=\"0\"\n part=\"button\">\n ${this.isPlaying\n ? PauseOutline({ 'aria-label': 'Pause' })\n : PlayOutline({ 'aria-label': 'Play' })}\n </button>\n `\n : null}\n ${renderContent()}\n </div>\n ${hideCaption\n ? undefined\n : html`\n <div\n class=\"${c4dPrefix}--video-player__video-caption\"\n part=\"caption\">\n ${formatCaption({\n duration: formatDuration({\n duration: !duration ? duration : duration * 1000,\n }),\n name,\n })}\n </div>\n `}\n `;\n }\n\n updated(changedProperties) {\n if (\n changedProperties.has('duration') ||\n changedProperties.has('formatCaption') ||\n changedProperties.has('name') ||\n changedProperties.has('backgroundMode')\n ) {\n const { duration, formatCaption, formatDuration, name } = this;\n const caption = formatCaption({\n duration: formatDuration({\n duration: !duration ? duration : duration * 1000,\n }),\n name,\n });\n if (caption) {\n this.setAttribute('aria-label', caption);\n }\n }\n\n // Move measurement & API call to callback queue & wait for update to complete.\n setTimeout(async () => {\n await this.updateComplete;\n if (!this.thumbnailUrl.endsWith(`${this.offsetWidth}`)) {\n this._updateThumbnailUrl();\n }\n }, 0);\n }\n\n firstUpdated() {\n this.tabIndex = 0;\n this.backgroundMode = Boolean(\n (this.parentElement as C4DVideoPlayerComposite)?.backgroundMode\n );\n this.intersectionMode = Boolean(\n (this.parentElement as C4DVideoPlayerComposite)?.intersectionMode\n );\n this.autoplay = Boolean(\n (this.parentElement as C4DVideoPlayerComposite)?.autoPlay\n );\n }\n\n /**\n * The name of the custom event fired after video content state is changed upon a user gesture.\n */\n static get eventContentStateChange() {\n return `${c4dPrefix}-video-player-content-state-changed`;\n }\n\n /**\n * The name of the custom event fired requesting playback state change.\n */\n static get eventPlaybackStateChange() {\n return `${c4dPrefix}-video-player-playback-state-changed`;\n }\n\n static get stableSelector() {\n return `${c4dPrefix}--video-player`;\n }\n\n /**\n * The name of the custom event fired when a user action toggles playback.\n */\n static get eventTogglePlayback() {\n return `${c4dPrefix}-video-player-toggle-playback`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default C4DVideoPlayer;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -28,6 +28,9 @@ export interface ComponentProps {
|
|
|
28
28
|
* @csspart container - Quote container. Usage `c4d-quote::part(container)`
|
|
29
29
|
* @csspart wrapper - Quote wrapper. Usage `c4d-quote::part(wrapper)`
|
|
30
30
|
* @csspart hr - Horizontal rule. Usage `c4d-quote::part(wrapper)`
|
|
31
|
+
* @csspart bubble-pointer-svg - The bubble quote variation pointer. Usage `c4d-quote::part(bubble-pointer-svg)`
|
|
32
|
+
* @csspart bubble-pointer-fill-svg - The fill color of the pointer. Usage `c4d-quote::part(bubble-pointer-fill-svg)`
|
|
33
|
+
* @csspart bubble-pointer-stroke-svg - The stroke color of the pointer. Usage `c4d-quote::part(bubble-pointer-stroke-svg)`
|
|
31
34
|
*/
|
|
32
35
|
declare class C4DQuote extends Component<ComponentProps> {}
|
|
33
36
|
export default C4DQuote;
|
|
@@ -29,6 +29,7 @@ export interface ComponentProps {
|
|
|
29
29
|
* @csspart video - The video. Usage `c4d-video-player::part(video)`
|
|
30
30
|
* @csspart button - The play button. Usage `c4d-video-player::part(button)`
|
|
31
31
|
* @csspart image - The thumbnail image. Usage `c4d-video-player::part(image)`
|
|
32
|
+
* @csspart play-video - The play video icon. Usage `c4d-video-player::part(play-video)`
|
|
32
33
|
* @csspart video-container - The video container. Usage `c4d-video-player::part(video-container)`
|
|
33
34
|
* @csspart caption - The caption. Usage `c4d-video-player::part(caption)`
|
|
34
35
|
*/
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
* @type {object} Settings object
|
|
13
13
|
* @property {string} [stablePrefix=c4d] stable prefix
|
|
14
14
|
* @property {string} [prefix=cds] core Carbon prefix
|
|
15
|
-
* Carbon for IBM.com v2.
|
|
15
|
+
* Carbon for IBM.com v2.24.0',
|
|
16
16
|
*/
|
|
17
17
|
var settings = {
|
|
18
|
-
version: 'Carbon for IBM.com v2.
|
|
18
|
+
version: 'Carbon for IBM.com v2.24.0',
|
|
19
19
|
stablePrefix: 'c4d',
|
|
20
20
|
prefix: 'cds'
|
|
21
21
|
};
|
|
@@ -7,7 +7,7 @@ exports.QUOTE_TYPES = void 0;
|
|
|
7
7
|
/**
|
|
8
8
|
* @license
|
|
9
9
|
*
|
|
10
|
-
* Copyright IBM Corp. 2020,
|
|
10
|
+
* Copyright IBM Corp. 2020, 2025
|
|
11
11
|
*
|
|
12
12
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
13
13
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -20,5 +20,6 @@ let QUOTE_TYPES = exports.QUOTE_TYPES = void 0;
|
|
|
20
20
|
QUOTE_TYPES["DOUBLE_ANGLE"] = "double-angle";
|
|
21
21
|
QUOTE_TYPES["LOW_HIGH_REVERSED_DOUBLE_CURVED"] = "low-high-reversed-double-curved";
|
|
22
22
|
QUOTE_TYPES["CORNER_BRACKET"] = "corner-bracket";
|
|
23
|
+
QUOTE_TYPES["BUBBLE_QUOTE"] = "bubble-quote";
|
|
23
24
|
})(QUOTE_TYPES || (exports.QUOTE_TYPES = QUOTE_TYPES = {}));
|
|
24
25
|
//# sourceMappingURL=defs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.js","names":["QUOTE_TYPES","exports"],"sources":["components/quote/defs.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020,
|
|
1
|
+
{"version":3,"file":"defs.js","names":["QUOTE_TYPES","exports"],"sources":["components/quote/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\nexport enum QUOTE_TYPES {\n /**\n * Default - double-curved\n */\n DEFAULT = 'double-curved',\n\n /**\n * single-curved\n */\n SINGLE_CURVED = 'single-curved',\n\n /**\n * single-angle\n */\n SINGLE_ANGLE = 'single-angle',\n\n /**\n * double-angle\n */\n DOUBLE_ANGLE = 'double-angle',\n\n /**\n * low-high-reversed-double-curved\n */\n LOW_HIGH_REVERSED_DOUBLE_CURVED = 'low-high-reversed-double-curved',\n\n /**\n * corner-bracket\n */\n CORNER_BRACKET = 'corner-bracket',\n\n /**\n * bubble-quote\n */\n BUBBLE_QUOTE = 'bubble-quote',\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,IASYA,WAAW,GAAAC,OAAA,CAAAD,WAAA;AAAA,WAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;AAAA,GAAXA,WAAW,KAAAC,OAAA,CAAAD,WAAA,GAAXA,WAAW","ignoreList":[]}
|
|
@@ -18,10 +18,10 @@ exports.default = void 0;
|
|
|
18
18
|
* @type {object} Settings object
|
|
19
19
|
* @property {string} [stablePrefix=c4d] stable prefix
|
|
20
20
|
* @property {string} [prefix=cds] core Carbon prefix
|
|
21
|
-
* Carbon for IBM.com v2.
|
|
21
|
+
* Carbon for IBM.com v2.24.0',
|
|
22
22
|
*/
|
|
23
23
|
var settings = {
|
|
24
|
-
version: 'Carbon for IBM.com v2.
|
|
24
|
+
version: 'Carbon for IBM.com v2.24.0',
|
|
25
25
|
stablePrefix: 'c4d',
|
|
26
26
|
prefix: 'cds'
|
|
27
27
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carbon/ibmdotcom-web-components",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.24.0",
|
|
4
4
|
"description": "Carbon for IBM.com Web Components",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"exports": {
|
|
@@ -92,9 +92,9 @@
|
|
|
92
92
|
"cypress:verify": "cypress verify"
|
|
93
93
|
},
|
|
94
94
|
"dependencies": {
|
|
95
|
-
"@carbon/ibmdotcom-services": "2.
|
|
96
|
-
"@carbon/ibmdotcom-styles": "2.
|
|
97
|
-
"@carbon/ibmdotcom-utilities": "2.
|
|
95
|
+
"@carbon/ibmdotcom-services": "2.24.0",
|
|
96
|
+
"@carbon/ibmdotcom-styles": "2.24.0",
|
|
97
|
+
"@carbon/ibmdotcom-utilities": "2.24.0",
|
|
98
98
|
"@carbon/layout": "11.27.0",
|
|
99
99
|
"@carbon/motion": "11.24.0",
|
|
100
100
|
"@carbon/styles": "1.65.0",
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
"cypress-wait-until": "^1.7.2",
|
|
185
185
|
"del": "^6.0.0",
|
|
186
186
|
"doctoc": "^2.0.0",
|
|
187
|
-
"dompurify": "
|
|
187
|
+
"dompurify": "3.2.5",
|
|
188
188
|
"enzyme": "^3.11.0",
|
|
189
189
|
"file-loader": "^6.2.0",
|
|
190
190
|
"fs-extra": "^10.0.0",
|
|
@@ -243,5 +243,5 @@
|
|
|
243
243
|
"web-component-analyzer": "1.2.0-next.0",
|
|
244
244
|
"webpack": "^4.46.0"
|
|
245
245
|
},
|
|
246
|
-
"gitHead": "
|
|
246
|
+
"gitHead": "fa8caaccbd76c72beac47f83c0d6da573fdb413e"
|
|
247
247
|
}
|