@ukic/web-components 3.0.0-alpha.13 → 3.0.0-alpha.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/app-globals-1608a8a5.js +54 -0
- package/dist/cjs/app-globals-1608a8a5.js.map +1 -0
- package/dist/cjs/core.cjs.js +3 -3
- package/dist/cjs/{helpers-08a9ec1c.js → helpers-7a599012.js} +2 -2
- package/dist/cjs/{helpers-08a9ec1c.js.map → helpers-7a599012.js.map} +1 -1
- package/dist/cjs/ic-accordion-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-accordion.cjs.entry.js +2 -2
- package/dist/cjs/ic-alert.cjs.entry.js +2 -2
- package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -2
- package/dist/cjs/ic-badge.cjs.entry.js +3 -3
- package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/ic-button_3.cjs.entry.js +61 -3
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card-vertical.cjs.entry.js +3 -3
- package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +7 -7
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +3 -3
- package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-classification-banner.cjs.entry.js +3 -3
- package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-list.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
- package/dist/cjs/ic-dialog.cjs.entry.js +38 -47
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +2 -2
- package/dist/cjs/ic-empty-state.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer.cjs.entry.js +2 -2
- package/dist/cjs/ic-hero.cjs.entry.js +2 -2
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +3 -3
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +2 -2
- package/dist/cjs/ic-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-menu-item.cjs.entry.js +3 -3
- package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +2 -2
- package/dist/cjs/ic-navigation-group.cjs.entry.js +23 -17
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +38 -24
- package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +12 -11
- package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination-item.cjs.entry.js +4 -4
- package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination.cjs.entry.js +7 -7
- package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +7 -6
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +7 -7
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +2 -2
- package/dist/cjs/ic-search-bar.cjs.entry.js +3 -3
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-section-container.cjs.entry.js +3 -3
- package/dist/cjs/ic-select.cjs.entry.js +15 -12
- package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +10 -7
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skeleton.cjs.entry.js +3 -3
- package/dist/cjs/ic-skip-link.cjs.entry.js +11 -10
- package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-status-tag.cjs.entry.js +5 -5
- package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +17 -16
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +4 -4
- package/dist/cjs/ic-switch.cjs.entry.js +6 -6
- package/dist/cjs/ic-tab-context.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab-group.cjs.entry.js +4 -4
- package/dist/cjs/ic-tab-panel.cjs.entry.js +3 -3
- package/dist/cjs/ic-tab.cjs.entry.js +3 -3
- package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +33 -15
- package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +3 -3
- package/dist/cjs/ic-toast-region.cjs.entry.js +2 -2
- package/dist/cjs/ic-toast.cjs.entry.js +6 -6
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +4 -4
- package/dist/cjs/ic-toggle-button.cjs.entry.js +5 -5
- package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +5 -9
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +2 -2
- package/dist/cjs/{index-d337cd8a.js → index-0236cc4b.js} +3 -1
- package/dist/cjs/index-0236cc4b.js.map +1 -0
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/collection/components/ic-badge/ic-badge.css +4 -0
- package/dist/collection/components/ic-button/ic-button.css +29 -13
- package/dist/collection/components/ic-button/ic-button.js +58 -0
- package/dist/collection/components/ic-button/ic-button.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.stories.js +184 -5
- package/dist/collection/components/ic-card-vertical/ic-card-vertical.css +1 -1
- package/dist/collection/components/ic-checkbox/ic-checkbox.css +5 -0
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +4 -0
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +5 -5
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
- package/dist/collection/components/ic-chip/ic-chip.css +2 -2
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.css +4 -0
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +1 -1
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.js.map +1 -1
- package/dist/collection/components/ic-dialog/ic-dialog.js +57 -66
- package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
- package/dist/collection/components/ic-dialog/ic-dialog.stories.js +3 -2
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +2 -1
- package/dist/collection/components/ic-menu-item/ic-menu-item.css +1 -0
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +47 -49
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +47 -17
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.types.js.map +1 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +36 -22
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
- package/dist/collection/components/ic-page-header/ic-page-header.js +10 -9
- package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
- package/dist/collection/components/ic-pagination/ic-pagination.css +10 -2
- package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
- package/dist/collection/components/ic-pagination-item/ic-pagination-item.css +19 -3
- package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +5 -4
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.stories.js +70 -1
- package/dist/collection/components/ic-radio-group/ic-radio-group.js +6 -6
- package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.css +6 -13
- package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
- package/dist/collection/components/ic-select/ic-select.css +11 -1
- package/dist/collection/components/ic-select/ic-select.js +12 -9
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +10 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +7 -4
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.stories.js +57 -36
- package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
- package/dist/collection/components/ic-skip-link/ic-skip-link.css +22 -2
- package/dist/collection/components/ic-skip-link/ic-skip-link.js +13 -12
- package/dist/collection/components/ic-skip-link/ic-skip-link.js.map +1 -1
- package/dist/collection/components/ic-skip-link/ic-skip-link.stories.js +375 -31
- package/dist/collection/components/ic-status-tag/ic-status-tag.css +2 -1
- package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
- package/dist/collection/components/ic-step/ic-step.css +8 -31
- package/dist/collection/components/ic-step/ic-step.js +14 -13
- package/dist/collection/components/ic-step/ic-step.js.map +1 -1
- package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
- package/dist/collection/components/ic-stepper/ic-stepper.stories.js +5 -1
- package/dist/collection/components/ic-switch/ic-switch.js +4 -4
- package/dist/collection/components/ic-tab/ic-tab.css +13 -3
- package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
- package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
- package/dist/collection/components/ic-text-field/ic-text-field.css +1 -0
- package/dist/collection/components/ic-text-field/ic-text-field.js +111 -13
- package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
- package/dist/collection/components/ic-text-field/ic-text-field.stories.js +195 -9
- package/dist/collection/components/ic-theme/ic-theme.js +1 -1
- package/dist/collection/components/ic-toast/ic-toast.css +1 -1
- package/dist/collection/components/ic-toast/ic-toast.js +3 -3
- package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
- package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +1 -1
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +5 -1
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +2 -6
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +12 -19
- package/dist/components/helpers.js +1 -1
- package/dist/components/ic-badge.js +1 -1
- package/dist/components/ic-badge.js.map +1 -1
- package/dist/components/ic-button2.js +59 -1
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card-vertical.js +1 -1
- package/dist/components/ic-card-vertical.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +5 -5
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox.js +1 -1
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-chip.js +1 -1
- package/dist/components/ic-chip.js.map +1 -1
- package/dist/components/ic-classification-banner.js +2 -2
- package/dist/components/ic-classification-banner.js.map +1 -1
- package/dist/components/ic-dialog.js +38 -47
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +1 -1
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-menu-item2.js +1 -1
- package/dist/components/ic-menu-item2.js.map +1 -1
- package/dist/components/ic-navigation-group.js +22 -15
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-menu2.js +37 -23
- package/dist/components/ic-navigation-menu2.js.map +1 -1
- package/dist/components/ic-page-header.js +10 -9
- package/dist/components/ic-page-header.js.map +1 -1
- package/dist/components/ic-pagination-item2.js +2 -2
- package/dist/components/ic-pagination-item2.js.map +1 -1
- package/dist/components/ic-pagination.js +5 -5
- package/dist/components/ic-pagination.js.map +1 -1
- package/dist/components/ic-popover-menu.js +5 -4
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +5 -5
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-search-bar.js +1 -1
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-section-container2.js +2 -2
- package/dist/components/ic-select.js +13 -10
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-side-navigation.js +8 -5
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.js +2 -2
- package/dist/components/ic-skeleton.js.map +1 -1
- package/dist/components/ic-skip-link.js +10 -9
- package/dist/components/ic-skip-link.js.map +1 -1
- package/dist/components/ic-status-tag.js +3 -3
- package/dist/components/ic-status-tag.js.map +1 -1
- package/dist/components/ic-step.js +15 -14
- package/dist/components/ic-step.js.map +1 -1
- package/dist/components/ic-stepper.js +2 -2
- package/dist/components/ic-switch.js +4 -4
- package/dist/components/ic-tab-context.js +1 -1
- package/dist/components/ic-tab-group.js +2 -2
- package/dist/components/ic-tab-panel.js +2 -2
- package/dist/components/ic-tab-panel.js.map +1 -1
- package/dist/components/ic-tab.js +1 -1
- package/dist/components/ic-tab.js.map +1 -1
- package/dist/components/ic-text-field.js +35 -13
- package/dist/components/ic-text-field.js.map +1 -1
- package/dist/components/ic-theme.js +1 -1
- package/dist/components/ic-toast-region.js +1 -1
- package/dist/components/ic-toast.js +5 -5
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-toggle-button-group.js +2 -2
- package/dist/components/ic-toggle-button.js +3 -3
- package/dist/components/ic-toggle-button.js.map +1 -1
- package/dist/components/ic-top-navigation.js +4 -8
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/components/index.js +50 -0
- package/dist/components/index.js.map +1 -1
- package/dist/core/core.css +353 -245
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/p-03248270.entry.js +2 -0
- package/dist/core/p-03248270.entry.js.map +1 -0
- package/dist/core/p-0e5e9a11.entry.js +2 -0
- package/dist/core/p-0e5e9a11.entry.js.map +1 -0
- package/dist/core/{p-0f34465d.entry.js → p-115a684f.entry.js} +2 -2
- package/dist/core/p-1446973e.js +2 -0
- package/dist/core/p-1446973e.js.map +1 -0
- package/dist/core/p-167834c7.entry.js +2 -0
- package/dist/core/p-167834c7.entry.js.map +1 -0
- package/dist/core/{p-4e4014cd.entry.js → p-2180f2d1.entry.js} +2 -2
- package/dist/core/{p-8856dff4.entry.js → p-22eed13e.entry.js} +2 -2
- package/dist/core/p-26c50065.entry.js +2 -0
- package/dist/core/p-26c50065.entry.js.map +1 -0
- package/dist/core/{p-e25feba1.entry.js → p-2af04ace.entry.js} +2 -2
- package/dist/core/{p-e25feba1.entry.js.map → p-2af04ace.entry.js.map} +1 -1
- package/dist/core/{p-196e3d33.entry.js → p-2dd6e5bb.entry.js} +2 -2
- package/dist/core/p-2dd6e5bb.entry.js.map +1 -0
- package/dist/core/{p-fbce5f9a.entry.js → p-2f30c66a.entry.js} +2 -2
- package/dist/core/p-30b56108.entry.js +2 -0
- package/dist/core/p-30b56108.entry.js.map +1 -0
- package/dist/core/p-3373b7c4.entry.js +2 -0
- package/dist/core/p-3373b7c4.entry.js.map +1 -0
- package/dist/core/{p-de7542fa.entry.js → p-33c4851a.entry.js} +2 -2
- package/dist/core/p-33c4851a.entry.js.map +1 -0
- package/dist/core/p-38dfe702.entry.js +2 -0
- package/dist/core/p-38dfe702.entry.js.map +1 -0
- package/dist/core/{p-c19cdc86.entry.js → p-44594b52.entry.js} +2 -2
- package/dist/core/{p-72140621.entry.js → p-4681ab85.entry.js} +2 -2
- package/dist/core/{p-78c3ca49.entry.js → p-51aa5330.entry.js} +2 -2
- package/dist/core/p-54100d6b.entry.js +2 -0
- package/dist/core/p-54100d6b.entry.js.map +1 -0
- package/dist/core/p-54f6ad93.entry.js +2 -0
- package/dist/core/p-54f6ad93.entry.js.map +1 -0
- package/dist/core/p-5537abe7.entry.js +2 -0
- package/dist/core/p-5537abe7.entry.js.map +1 -0
- package/dist/core/{p-1fccec19.entry.js → p-56eb4f02.entry.js} +2 -2
- package/dist/core/p-5af75c16.entry.js +2 -0
- package/dist/core/p-5af75c16.entry.js.map +1 -0
- package/dist/core/p-5d944741.entry.js +2 -0
- package/dist/core/p-5d944741.entry.js.map +1 -0
- package/dist/core/p-5ee41fb7.entry.js +2 -0
- package/dist/core/p-5ee41fb7.entry.js.map +1 -0
- package/dist/core/{p-c3785d57.entry.js → p-5f9a9490.entry.js} +2 -2
- package/dist/core/{p-2cb55e86.entry.js → p-62a3ddd1.entry.js} +2 -2
- package/dist/core/{p-df56bc50.entry.js → p-6ab9a62b.entry.js} +2 -2
- package/dist/core/{p-9206379d.entry.js → p-702166d2.entry.js} +2 -2
- package/dist/core/{p-27de359f.entry.js → p-79e9381d.entry.js} +2 -2
- package/dist/core/p-79fef925.js +3 -0
- package/dist/core/p-79fef925.js.map +1 -0
- package/dist/core/p-7acf9ff5.entry.js +2 -0
- package/dist/core/p-7acf9ff5.entry.js.map +1 -0
- package/dist/core/{p-5fa5ba50.entry.js → p-7b1869e9.entry.js} +2 -2
- package/dist/core/{p-9ee2fe04.entry.js → p-7e243134.entry.js} +2 -2
- package/dist/core/{p-111b3186.entry.js → p-8db464d3.entry.js} +2 -2
- package/dist/core/{p-55eb89cc.entry.js → p-8faa9411.entry.js} +2 -2
- package/dist/core/p-8faa9411.entry.js.map +1 -0
- package/dist/core/{p-8870d5d8.entry.js → p-8fbcf586.entry.js} +2 -2
- package/dist/core/{p-bfee1e84.entry.js → p-9b3be8b9.entry.js} +2 -2
- package/dist/core/{p-5b7d8ee9.entry.js → p-9f6cfe53.entry.js} +2 -2
- package/dist/core/{p-98f906ba.entry.js → p-a3607521.entry.js} +2 -2
- package/dist/core/{p-59fc58e1.entry.js → p-a509a2ac.entry.js} +2 -2
- package/dist/core/p-b34dffde.entry.js +2 -0
- package/dist/core/p-b34dffde.entry.js.map +1 -0
- package/dist/core/{p-1d6638c8.entry.js → p-b504da19.entry.js} +2 -2
- package/dist/core/p-b504da19.entry.js.map +1 -0
- package/dist/core/{p-a56ec6d8.entry.js → p-b8b0146c.entry.js} +2 -2
- package/dist/core/{p-f486d4f4.entry.js → p-b8d90c6d.entry.js} +2 -2
- package/dist/core/p-b9827aa1.entry.js +2 -0
- package/dist/core/p-b9827aa1.entry.js.map +1 -0
- package/dist/core/{p-180ea8ac.entry.js → p-c23d8e7f.entry.js} +2 -2
- package/dist/core/{p-ce0fb53a.entry.js → p-c7321a55.entry.js} +2 -2
- package/dist/core/{p-94748b96.entry.js → p-cb0b0d39.entry.js} +2 -2
- package/dist/core/{p-bd802c2f.entry.js → p-cccf78f3.entry.js} +2 -2
- package/dist/core/{p-144a31ec.entry.js → p-d15aa9a1.entry.js} +2 -2
- package/dist/core/{p-90de3f5d.entry.js → p-d5054edb.entry.js} +2 -2
- package/dist/core/p-d5054edb.entry.js.map +1 -0
- package/dist/core/{p-269f841d.js → p-db4c581c.js} +2 -2
- package/dist/core/p-e3314b15.entry.js +2 -0
- package/dist/core/p-e3314b15.entry.js.map +1 -0
- package/dist/core/{p-47b46637.entry.js → p-e4f34246.entry.js} +2 -2
- package/dist/core/{p-30a262d2.entry.js → p-e54842c7.entry.js} +2 -2
- package/dist/core/p-e54842c7.entry.js.map +1 -0
- package/dist/core/{p-40bc1f3e.entry.js → p-e758962b.entry.js} +2 -2
- package/dist/core/p-e758962b.entry.js.map +1 -0
- package/dist/core/p-e97d282e.entry.js +2 -0
- package/dist/core/p-e97d282e.entry.js.map +1 -0
- package/dist/core/p-ecf68c88.entry.js +2 -0
- package/dist/core/p-ecf68c88.entry.js.map +1 -0
- package/dist/core/{p-999102ee.entry.js → p-f27ae8e6.entry.js} +2 -2
- package/dist/core/{p-78c51cba.entry.js → p-f482f6d9.entry.js} +2 -2
- package/dist/core/{p-4a5ab31e.entry.js → p-f6e19998.entry.js} +2 -2
- package/dist/core/p-f6e19998.entry.js.map +1 -0
- package/dist/core/{p-e30c6d79.entry.js → p-ff6f7f3e.entry.js} +2 -2
- package/dist/core/p-ff6f7f3e.entry.js.map +1 -0
- package/dist/esm/app-globals-85eb2251.js +52 -0
- package/dist/esm/app-globals-85eb2251.js.map +1 -0
- package/dist/esm/core.js +4 -4
- package/dist/esm/{helpers-de6293bf.js → helpers-0bd0d9f3.js} +2 -2
- package/dist/esm/{helpers-de6293bf.js.map → helpers-0bd0d9f3.js.map} +1 -1
- package/dist/esm/ic-accordion-group.entry.js +2 -2
- package/dist/esm/ic-accordion.entry.js +2 -2
- package/dist/esm/ic-alert.entry.js +2 -2
- package/dist/esm/ic-back-to-top.entry.js +2 -2
- package/dist/esm/ic-badge.entry.js +3 -3
- package/dist/esm/ic-badge.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb-group.entry.js +2 -2
- package/dist/esm/ic-breadcrumb.entry.js +2 -2
- package/dist/esm/ic-button_3.entry.js +61 -3
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card-vertical.entry.js +3 -3
- package/dist/esm/ic-card-vertical.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +7 -7
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +3 -3
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +3 -3
- package/dist/esm/ic-chip.entry.js.map +1 -1
- package/dist/esm/ic-classification-banner.entry.js +3 -3
- package/dist/esm/ic-classification-banner.entry.js.map +1 -1
- package/dist/esm/ic-data-list.entry.js +1 -1
- package/dist/esm/ic-data-row.entry.js +2 -2
- package/dist/esm/ic-dialog.entry.js +38 -47
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +2 -2
- package/dist/esm/ic-empty-state.entry.js +2 -2
- package/dist/esm/ic-footer-link-group.entry.js +2 -2
- package/dist/esm/ic-footer-link.entry.js +2 -2
- package/dist/esm/ic-footer.entry.js +2 -2
- package/dist/esm/ic-hero.entry.js +2 -2
- package/dist/esm/ic-horizontal-scroll.entry.js +2 -2
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +3 -3
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +2 -2
- package/dist/esm/ic-link.entry.js +2 -2
- package/dist/esm/ic-menu-group.entry.js +2 -2
- package/dist/esm/ic-menu-item.entry.js +3 -3
- package/dist/esm/ic-menu-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-button.entry.js +2 -2
- package/dist/esm/ic-navigation-group.entry.js +23 -17
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +2 -2
- package/dist/esm/ic-navigation-menu.entry.js +38 -24
- package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
- package/dist/esm/ic-page-header.entry.js +12 -11
- package/dist/esm/ic-page-header.entry.js.map +1 -1
- package/dist/esm/ic-pagination-item.entry.js +4 -4
- package/dist/esm/ic-pagination-item.entry.js.map +1 -1
- package/dist/esm/ic-pagination.entry.js +7 -7
- package/dist/esm/ic-pagination.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +7 -6
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +7 -7
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +2 -2
- package/dist/esm/ic-search-bar.entry.js +3 -3
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-section-container.entry.js +3 -3
- package/dist/esm/ic-select.entry.js +15 -12
- package/dist/esm/ic-select.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +10 -7
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-skeleton.entry.js +3 -3
- package/dist/esm/ic-skip-link.entry.js +11 -10
- package/dist/esm/ic-skip-link.entry.js.map +1 -1
- package/dist/esm/ic-status-tag.entry.js +5 -5
- package/dist/esm/ic-status-tag.entry.js.map +1 -1
- package/dist/esm/ic-step.entry.js +17 -16
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-stepper.entry.js +4 -4
- package/dist/esm/ic-switch.entry.js +6 -6
- package/dist/esm/ic-tab-context.entry.js +2 -2
- package/dist/esm/ic-tab-group.entry.js +4 -4
- package/dist/esm/ic-tab-panel.entry.js +3 -3
- package/dist/esm/ic-tab.entry.js +3 -3
- package/dist/esm/ic-tab.entry.js.map +1 -1
- package/dist/esm/ic-text-field.entry.js +33 -15
- package/dist/esm/ic-text-field.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +3 -3
- package/dist/esm/ic-toast-region.entry.js +2 -2
- package/dist/esm/ic-toast.entry.js +6 -6
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button-group.entry.js +4 -4
- package/dist/esm/ic-toggle-button.entry.js +5 -5
- package/dist/esm/ic-toggle-button.entry.js.map +1 -1
- package/dist/esm/ic-top-navigation.entry.js +5 -9
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/ic-typography.entry.js +2 -2
- package/dist/esm/{index-a7a720e7.js → index-0eefab7d.js} +3 -2
- package/dist/esm/index-0eefab7d.js.map +1 -0
- package/dist/esm/loader.js +4 -4
- package/dist/types/components/ic-button/ic-button.d.ts +1 -0
- package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +1 -1
- package/dist/types/components/ic-dialog/ic-dialog.d.ts +4 -4
- package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +9 -4
- package/dist/types/components/ic-navigation-group/ic-navigation-group.types.d.ts +3 -0
- package/dist/types/components/ic-navigation-menu/ic-navigation-menu.d.ts +2 -0
- package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +1 -1
- package/dist/types/components/ic-skip-link/ic-skip-link.d.ts +4 -4
- package/dist/types/components/ic-text-field/ic-text-field.d.ts +17 -1
- package/dist/types/components.d.ts +59 -26
- package/hydrate/index.js +358 -211
- package/hydrate/index.mjs +358 -211
- package/package.json +2 -2
- package/vscode-data.json +28 -12
- package/dist/cjs/app-globals-3a1e7e63.js +0 -7
- package/dist/cjs/app-globals-3a1e7e63.js.map +0 -1
- package/dist/cjs/index-d337cd8a.js.map +0 -1
- package/dist/core/p-052d1ff0.entry.js +0 -2
- package/dist/core/p-052d1ff0.entry.js.map +0 -1
- package/dist/core/p-08fbea60.entry.js +0 -2
- package/dist/core/p-08fbea60.entry.js.map +0 -1
- package/dist/core/p-0b757d78.entry.js +0 -2
- package/dist/core/p-0b757d78.entry.js.map +0 -1
- package/dist/core/p-196e3d33.entry.js.map +0 -1
- package/dist/core/p-1d6638c8.entry.js.map +0 -1
- package/dist/core/p-1d9a929b.entry.js +0 -2
- package/dist/core/p-1d9a929b.entry.js.map +0 -1
- package/dist/core/p-30a262d2.entry.js.map +0 -1
- package/dist/core/p-40bc1f3e.entry.js.map +0 -1
- package/dist/core/p-4a5ab31e.entry.js.map +0 -1
- package/dist/core/p-55eb89cc.entry.js.map +0 -1
- package/dist/core/p-59287779.entry.js +0 -2
- package/dist/core/p-59287779.entry.js.map +0 -1
- package/dist/core/p-6c8e72b4.entry.js +0 -2
- package/dist/core/p-6c8e72b4.entry.js.map +0 -1
- package/dist/core/p-6fdb8a79.entry.js +0 -2
- package/dist/core/p-6fdb8a79.entry.js.map +0 -1
- package/dist/core/p-76bdbc98.entry.js +0 -2
- package/dist/core/p-76bdbc98.entry.js.map +0 -1
- package/dist/core/p-7ea79205.entry.js +0 -2
- package/dist/core/p-7ea79205.entry.js.map +0 -1
- package/dist/core/p-8577de91.entry.js +0 -2
- package/dist/core/p-8577de91.entry.js.map +0 -1
- package/dist/core/p-8b928cc9.entry.js +0 -2
- package/dist/core/p-8b928cc9.entry.js.map +0 -1
- package/dist/core/p-8d1bee7a.entry.js +0 -2
- package/dist/core/p-8d1bee7a.entry.js.map +0 -1
- package/dist/core/p-8e4e97b4.js +0 -3
- package/dist/core/p-8e4e97b4.js.map +0 -1
- package/dist/core/p-8f319e1e.entry.js +0 -2
- package/dist/core/p-8f319e1e.entry.js.map +0 -1
- package/dist/core/p-90de3f5d.entry.js.map +0 -1
- package/dist/core/p-912c8594.entry.js +0 -2
- package/dist/core/p-912c8594.entry.js.map +0 -1
- package/dist/core/p-9b741f96.entry.js +0 -2
- package/dist/core/p-9b741f96.entry.js.map +0 -1
- package/dist/core/p-9bcd2c77.entry.js +0 -2
- package/dist/core/p-9bcd2c77.entry.js.map +0 -1
- package/dist/core/p-abf767e3.entry.js +0 -2
- package/dist/core/p-abf767e3.entry.js.map +0 -1
- package/dist/core/p-b594bf26.entry.js +0 -2
- package/dist/core/p-b594bf26.entry.js.map +0 -1
- package/dist/core/p-caa46d81.entry.js +0 -2
- package/dist/core/p-caa46d81.entry.js.map +0 -1
- package/dist/core/p-de7542fa.entry.js.map +0 -1
- package/dist/core/p-e1255160.js +0 -2
- package/dist/core/p-e1255160.js.map +0 -1
- package/dist/core/p-e30c6d79.entry.js.map +0 -1
- package/dist/esm/app-globals-0f993ce5.js +0 -5
- package/dist/esm/app-globals-0f993ce5.js.map +0 -1
- package/dist/esm/index-a7a720e7.js.map +0 -1
- /package/dist/core/{p-0f34465d.entry.js.map → p-115a684f.entry.js.map} +0 -0
- /package/dist/core/{p-4e4014cd.entry.js.map → p-2180f2d1.entry.js.map} +0 -0
- /package/dist/core/{p-8856dff4.entry.js.map → p-22eed13e.entry.js.map} +0 -0
- /package/dist/core/{p-fbce5f9a.entry.js.map → p-2f30c66a.entry.js.map} +0 -0
- /package/dist/core/{p-c19cdc86.entry.js.map → p-44594b52.entry.js.map} +0 -0
- /package/dist/core/{p-72140621.entry.js.map → p-4681ab85.entry.js.map} +0 -0
- /package/dist/core/{p-78c3ca49.entry.js.map → p-51aa5330.entry.js.map} +0 -0
- /package/dist/core/{p-1fccec19.entry.js.map → p-56eb4f02.entry.js.map} +0 -0
- /package/dist/core/{p-c3785d57.entry.js.map → p-5f9a9490.entry.js.map} +0 -0
- /package/dist/core/{p-2cb55e86.entry.js.map → p-62a3ddd1.entry.js.map} +0 -0
- /package/dist/core/{p-df56bc50.entry.js.map → p-6ab9a62b.entry.js.map} +0 -0
- /package/dist/core/{p-9206379d.entry.js.map → p-702166d2.entry.js.map} +0 -0
- /package/dist/core/{p-27de359f.entry.js.map → p-79e9381d.entry.js.map} +0 -0
- /package/dist/core/{p-5fa5ba50.entry.js.map → p-7b1869e9.entry.js.map} +0 -0
- /package/dist/core/{p-9ee2fe04.entry.js.map → p-7e243134.entry.js.map} +0 -0
- /package/dist/core/{p-111b3186.entry.js.map → p-8db464d3.entry.js.map} +0 -0
- /package/dist/core/{p-8870d5d8.entry.js.map → p-8fbcf586.entry.js.map} +0 -0
- /package/dist/core/{p-bfee1e84.entry.js.map → p-9b3be8b9.entry.js.map} +0 -0
- /package/dist/core/{p-5b7d8ee9.entry.js.map → p-9f6cfe53.entry.js.map} +0 -0
- /package/dist/core/{p-98f906ba.entry.js.map → p-a3607521.entry.js.map} +0 -0
- /package/dist/core/{p-59fc58e1.entry.js.map → p-a509a2ac.entry.js.map} +0 -0
- /package/dist/core/{p-a56ec6d8.entry.js.map → p-b8b0146c.entry.js.map} +0 -0
- /package/dist/core/{p-f486d4f4.entry.js.map → p-b8d90c6d.entry.js.map} +0 -0
- /package/dist/core/{p-180ea8ac.entry.js.map → p-c23d8e7f.entry.js.map} +0 -0
- /package/dist/core/{p-ce0fb53a.entry.js.map → p-c7321a55.entry.js.map} +0 -0
- /package/dist/core/{p-94748b96.entry.js.map → p-cb0b0d39.entry.js.map} +0 -0
- /package/dist/core/{p-bd802c2f.entry.js.map → p-cccf78f3.entry.js.map} +0 -0
- /package/dist/core/{p-144a31ec.entry.js.map → p-d15aa9a1.entry.js.map} +0 -0
- /package/dist/core/{p-269f841d.js.map → p-db4c581c.js.map} +0 -0
- /package/dist/core/{p-47b46637.entry.js.map → p-e4f34246.entry.js.map} +0 -0
- /package/dist/core/{p-999102ee.entry.js.map → p-f27ae8e6.entry.js.map} +0 -0
- /package/dist/core/{p-78c51cba.entry.js.map → p-f482f6d9.entry.js.map} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-navigation-group.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-group/ic-navigation-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n State,\n Listen,\n h,\n Method,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getBrandForegroundAppearance,\n getNavItemParentDetails,\n} from \"../../utils/helpers\";\nimport {\n IcNavType,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundNoDefault,\n IcThemeMode,\n} from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport { IcNavigationOpenEventDetail } from \"./ic-navigation-group.types\";\n\n@Component({\n tag: \"ic-navigation-group\",\n styleUrl: \"ic-navigation-group.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationGroup {\n private allGroupedNavigationItems: HTMLIcNavigationItemElement[] = [];\n private collapsedNavItemsHeight: string;\n private dropdown?: HTMLElement;\n private DYNAMIC_GROUPED_LINKS_HEIGHT_MS = 100;\n private expandedNavItemsHeight: string;\n private groupEl?: HTMLElement;\n private IC_NAVIGATION_ITEM = \"ic-navigation-item\";\n private isSideNavExpanded: boolean;\n private mouseGate: boolean = false;\n private nodeName = \"IC-NAVIGATION-GROUP\";\n private GROUPED_LINKS_WRAPPER_CLASS = \".grouped-links-wrapper\";\n\n @Element() el: HTMLIcNavigationGroupElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() dropdownOpen: boolean = false;\n @State() expanded: boolean = true;\n @State() focusStyle: IcBrandForegroundNoDefault | IcBrandForeground =\n getBrandForegroundAppearance();\n @State() inTopNavSideMenu: boolean = false;\n @State() navigationType: IcNavType | \"\";\n @State() parentEl: HTMLElement | null;\n\n /**\n * If `true`, the group will be expandable in the side menu.\n */\n @Prop() expandable?: boolean = false;\n\n /**\n * The label to display on the group.\n */\n @Prop() label!: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * @internal Emitted when a navigation group opens.\n */\n @Event() navigationGroupOpened: EventEmitter<IcNavigationOpenEventDetail>;\n\n disconnectedCallback(): void {\n if (this.navigationType === \"side\") {\n this.parentEl?.removeEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler as EventListener\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl?.removeEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler as EventListener\n );\n }\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n const { navType, parent } = getNavItemParentDetails(this.el);\n this.navigationType = navType;\n this.parentEl = parent;\n\n if (this.navigationType === \"side\") {\n this.parentEl?.addEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler as EventListener\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl?.addEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler as EventListener\n );\n if (\n this.deviceSize <=\n (this.parentEl as HTMLIcTopNavigationElement).customMobileBreakpoint!\n )\n this.inTopNavSideMenu = true;\n }\n }\n\n componentDidLoad(): void {\n this.allGroupedNavigationItems = Array.from(\n this.el.querySelectorAll(this.IC_NAVIGATION_ITEM)\n );\n\n /**\n * debounce is required as the incorrect height was retrieved instantly after\n * componentDidLoad is invoked.\n */\n setTimeout(\n () => this.setInitialGroupedLinksWrapperHeight(),\n this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS\n );\n }\n\n @Listen(\"childBlur\")\n childBlurHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"navigationGroupOpened\", { target: \"document\" })\n handleNavigationGroupOpened(event: CustomEvent): void {\n if (event.detail.source !== this.el) {\n this.hideDropdown();\n }\n }\n\n @Listen(\"navItemClicked\")\n navItemClickHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.focusStyle = ev.detail.mode;\n }\n\n /**\n * Sets focus on the nav item.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.groupEl) {\n this.groupEl.focus();\n }\n }\n\n private sideNavExpandHandler = (event: CustomEvent): void => {\n this.isSideNavExpanded = event.detail.sideNavExpanded;\n const linkWrapper = this.el.shadowRoot?.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n\n if (!linkWrapper) return;\n\n if (this.isSideNavExpanded) {\n if (this.expanded && this.expandedNavItemsHeight) {\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n } else if (this.expanded) {\n setTimeout(() => {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n } else {\n if (this.expanded && this.collapsedNavItemsHeight) {\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n } else if (this.expanded) {\n setTimeout(() => {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n }\n };\n\n private topNavResizedHandler = ({\n detail,\n }: CustomEvent<{ size: number }>): void => {\n const { size } = detail;\n if (size !== this.deviceSize) {\n this.deviceSize = size;\n this.inTopNavSideMenu =\n size <=\n ((this.parentEl as HTMLIcTopNavigationElement)\n ?.customMobileBreakpoint || DEVICE_SIZES.L);\n }\n };\n\n private toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n }\n\n private setGroupedNavItemTabIndex = (tabIndexValue: string) => {\n this.el\n .querySelectorAll(this.IC_NAVIGATION_ITEM)\n .forEach((navigationItem) => {\n const navItem =\n navigationItem.shadowRoot?.querySelector(\"a\") ||\n navigationItem.querySelector(\"a\");\n if (navItem) {\n navItem.setAttribute(\"tabindex\", tabIndexValue);\n }\n });\n };\n\n private toggleGroupedLinkWrapperHeight = (\n wrapper: HTMLElement,\n expanded: boolean\n ) => {\n if (!wrapper) return;\n\n if (expanded) {\n if (this.isSideNavExpanded) {\n this.setGroupedLinksElementHeight(wrapper, this.expandedNavItemsHeight);\n } else {\n this.setGroupedLinksElementHeight(\n wrapper,\n this.collapsedNavItemsHeight\n );\n }\n this.setGroupedNavItemTabIndex(\"0\");\n } else {\n wrapper.style.setProperty(\"--navigation-child-items-height\", \"0\");\n this.setGroupedNavItemTabIndex(\"-1\");\n }\n };\n\n private toggleExpanded = () => {\n this.expanded = !this.expanded;\n const linkWrapper = this.el.shadowRoot?.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n this.toggleGroupedLinkWrapperHeight(linkWrapper, this.expanded);\n };\n\n private showDropdown() {\n if (!this.dropdownOpen) {\n this.navigationGroupOpened.emit({\n source: this.el,\n });\n\n this.toggleDropdown();\n }\n }\n\n private hideDropdown() {\n document.removeEventListener(\"keydown\", this.handleKeydown);\n if (this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private handleClick = (ev: MouseEvent) => {\n if (this.navigationType === \"top\" && ev.detail) {\n this.toggleDropdown();\n } else {\n this.toggleExpanded();\n }\n };\n\n private handleBlur = (ev: FocusEvent) => {\n const target = ev.relatedTarget as HTMLElement;\n if (!this.el.contains(target)) {\n this.hideDropdown();\n }\n };\n\n private handleTopNavKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \" \" || ev.key === \"Enter\") {\n this.toggleDropdown();\n } else if (!this.inTopNavSideMenu && ev.key === \"Escape\") {\n this.hideDropdown();\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \"Enter\" || ev.key === \" \" || ev.key === \"Escape\") {\n switch (this.navigationType) {\n case \"top\":\n this.handleTopNavKeydown(ev as KeyboardEvent);\n break;\n case \"side\":\n this.toggleExpanded();\n ev.preventDefault();\n break;\n default:\n this.toggleExpanded();\n break;\n }\n }\n };\n\n private handleMouseLeave = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n\n this.mouseGate = false;\n\n if (\n !this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n document.activeElement !== this.el &&\n !this.el.contains(document.activeElement) &&\n relTarget?.nodeName === this.nodeName &&\n this.dropdownOpen === true\n ) {\n this.mouseGate = true;\n this.hideDropdown();\n } else if (\n !this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n !this.el.contains(document.activeElement)\n ) {\n this.mouseGate = false;\n setTimeout(() => {\n this.dropdownOpen ? this.hideDropdown() : null;\n }, 500);\n }\n };\n\n private handleMouseEnter = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n document.addEventListener(\"keydown\", this.handleKeydown);\n\n if (relTarget?.nodeName === this.nodeName && this.mouseGate === true) {\n this.showDropdown();\n } else if (\n this.dropdownOpen === false &&\n relTarget !== null &&\n this.mouseGate === false\n ) {\n this.mouseGate = true;\n setTimeout(() => {\n this.mouseGate && this.showDropdown();\n }, 500);\n }\n };\n\n private renderDropdownGroupedLinks = (): HTMLDivElement => (\n <div\n class={{\n [\"navigation-group-dropdown\"]: !this.inTopNavSideMenu,\n [\"navigation-group-dropdown-side-menu\"]: this.inTopNavSideMenu,\n [\"selected\"]: this.dropdownOpen && !this.inTopNavSideMenu,\n }}\n onMouseLeave={!this.inTopNavSideMenu ? this.handleMouseLeave : undefined}\n ref={(el) => (this.dropdown = el)}\n >\n <nav\n class={{\n [\"navigation-group-dropdown-items\"]: !this.inTopNavSideMenu,\n }}\n >\n <ul>\n <slot></slot>\n </ul>\n </nav>\n </div>\n );\n\n private renderGroupedLinks = (): HTMLDivElement => (\n <ul class=\"grouped-links-wrapper\">\n <slot></slot>\n </ul>\n );\n\n /**\n * Gets the total height of navigation links to improve\n * smoothness of expand/collapse animations\n */\n private getNavigationChildItemsHeight = (): string => {\n let navigationChildItemsHeight = 0;\n this.allGroupedNavigationItems.forEach((navItem) => {\n navigationChildItemsHeight += navItem.offsetHeight;\n });\n\n return `${navigationChildItemsHeight}px`;\n };\n\n private setInitialGroupedLinksWrapperHeight = () => {\n const linkWrapper = this.el.shadowRoot?.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n\n if (!linkWrapper) return;\n\n if (\n !this.isSideNavExpanded &&\n !this.collapsedNavItemsHeight &&\n this.expanded\n ) {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n }\n\n if (this.isSideNavExpanded && this.expanded) {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n }\n };\n\n private renderNavigationItems = (): HTMLDivElement | null => {\n if (this.dropdownOpen || (this.inTopNavSideMenu && !this.expandable)) {\n return this.renderDropdownGroupedLinks();\n }\n\n if (this.navigationType !== \"top\") {\n return this.renderGroupedLinks();\n }\n\n return null;\n };\n\n private setGroupedLinksElementHeight(\n groupedNavItemWrapper: HTMLElement,\n height: string\n ) {\n groupedNavItemWrapper.style.setProperty(\n \"--navigation-child-items-height\",\n height\n );\n }\n\n render() {\n const { label, dropdownOpen, inTopNavSideMenu, expandable } = this;\n\n return (\n <Host\n class={{\n [\"in-side-menu\"]: inTopNavSideMenu,\n \"ic-navigation-group-expanded\": this.expanded,\n \"ic-navigation-group-collapsed\": !this.expanded,\n [\"ic-navigation-group-side-nav\"]: this.navigationType === \"side\",\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n role=\"listitem\"\n >\n <button\n onMouseEnter={\n !inTopNavSideMenu && this.navigationType === \"top\"\n ? this.handleMouseEnter\n : undefined\n }\n onMouseLeave={\n this.navigationType === \"top\" ? this.handleMouseLeave : undefined\n }\n tabindex={inTopNavSideMenu && !expandable ? \"-1\" : \"0\"}\n onBlur={this.handleBlur}\n onClick={expandable ? this.handleClick : undefined}\n onKeyDown={this.handleKeydown}\n class={{\n [\"navigation-group\"]: true,\n [this.focusStyle]: !inTopNavSideMenu,\n [\"navigation-group-side-menu\"]: inTopNavSideMenu && !expandable,\n [\"navigation-group-side-menu-collapsed\"]:\n inTopNavSideMenu && !!expandable && !dropdownOpen,\n [\"navigation-group-side-menu-expanded\"]:\n inTopNavSideMenu && !!expandable && dropdownOpen,\n [\"selected\"]: dropdownOpen && !inTopNavSideMenu,\n }}\n ref={(el) => (this.groupEl = el)}\n aria-expanded={`${dropdownOpen || this.expanded}`}\n aria-haspopup={`${\n !inTopNavSideMenu && this.navigationType === \"top\"\n }`}\n >\n <ic-typography\n variant={this.navigationType === \"side\" ? \"caption\" : \"label\"}\n >\n {label}\n </ic-typography>\n {this.navigationType === \"side\" && expandable && (\n <div\n class={{\n \"chevron-toggle-icon-wrapper\": true,\n \"chevron-toggle-icon-closed\": this.expanded,\n }}\n innerHTML={chevronIcon}\n ></div>\n )}\n </button>\n {this.renderNavigationItems()}\n </Host>\n );\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"ic-navigation-group.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-group/ic-navigation-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n State,\n Listen,\n h,\n Method,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getBrandForegroundAppearance,\n getNavItemParentDetails,\n} from \"../../utils/helpers\";\nimport {\n IcNavType,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundNoDefault,\n IcThemeMode,\n} from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport {\n IcNavigationExpandEventDetail,\n IcNavigationOpenEventDetail,\n} from \"./ic-navigation-group.types\";\n\n@Component({\n tag: \"ic-navigation-group\",\n styleUrl: \"ic-navigation-group.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationGroup {\n private allGroupedNavigationItems: HTMLIcNavigationItemElement[] = [];\n private collapsedNavItemsHeight: string;\n private dropdown?: HTMLElement;\n private DYNAMIC_GROUPED_LINKS_HEIGHT_MS = 100;\n private expandedNavItemsHeight: string;\n private groupEl?: HTMLElement;\n private IC_NAVIGATION_ITEM = \"ic-navigation-item\";\n private mouseGate: boolean = false;\n private nodeName = \"IC-NAVIGATION-GROUP\";\n private GROUPED_LINKS_WRAPPER_CLASS = \".grouped-links-wrapper\";\n\n @Element() el: HTMLIcNavigationGroupElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() dropdownOpen: boolean = false;\n @State() expanded: boolean = true;\n @State() focusStyle: IcBrandForegroundNoDefault | IcBrandForeground =\n getBrandForegroundAppearance();\n @State() inTopNavSideMenu: boolean = false;\n @State() navigationType: IcNavType | \"\";\n @State() parentEl: HTMLElement | null;\n @State() isSideNavExpanded: boolean;\n\n /**\n * If `true`, the group will be expandable when in an ic-side-navigation component, or, when in an ic-top-navigation component, in the side menu displayed at small screen sizes.\n */\n @Prop() expandable?: boolean = false;\n\n /**\n * The label to display on the group.\n */\n @Prop() label!: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * @internal Emitted when a navigation group is opened - when within an ic-top-navigation at large screen sizes.\n */\n @Event() navigationGroupOpened: EventEmitter<IcNavigationOpenEventDetail>;\n\n /**\n * @internal Emitted when a navigation group is expanded - when within an ic-top-navigation at small screen sizes.\n */\n @Event() navigationGroupExpanded: EventEmitter<IcNavigationExpandEventDetail>;\n\n disconnectedCallback(): void {\n if (this.navigationType === \"side\") {\n this.parentEl?.removeEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler as EventListener\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl?.removeEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler as EventListener\n );\n }\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n const { navType, parent } = getNavItemParentDetails(this.el);\n this.navigationType = navType;\n this.parentEl = parent;\n\n if (this.navigationType === \"side\") {\n this.parentEl?.addEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler as EventListener\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl?.addEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler as EventListener\n );\n if (\n this.deviceSize <=\n (this.parentEl as HTMLIcTopNavigationElement).customMobileBreakpoint!\n )\n this.inTopNavSideMenu = true;\n }\n }\n\n componentDidLoad(): void {\n this.allGroupedNavigationItems = Array.from(\n this.el.querySelectorAll(this.IC_NAVIGATION_ITEM)\n );\n\n /**\n * debounce is required as the incorrect height was retrieved instantly after\n * componentDidLoad is invoked.\n */\n setTimeout(\n () => this.setInitialGroupedLinksWrapperHeight(),\n this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS\n );\n }\n\n @Listen(\"childBlur\")\n childBlurHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"navigationGroupOpened\", { target: \"document\" })\n handleNavigationGroupOpened(event: CustomEvent): void {\n if (event.detail.source !== this.el) {\n this.hideDropdown();\n }\n }\n\n @Listen(\"navItemClicked\")\n navItemClickHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.focusStyle = ev.detail.mode;\n }\n\n /**\n * Sets focus on the nav item.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.groupEl) {\n this.groupEl.focus();\n }\n }\n\n private sideNavExpandHandler = (event: CustomEvent): void => {\n this.isSideNavExpanded = event.detail.sideNavExpanded;\n const linkWrapper = this.el.shadowRoot?.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n\n if (!linkWrapper) return;\n\n if (this.isSideNavExpanded) {\n if (this.expanded && this.expandedNavItemsHeight) {\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n } else if (this.expanded) {\n setTimeout(() => {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n } else {\n if (this.expanded && this.collapsedNavItemsHeight) {\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n } else if (this.expanded) {\n setTimeout(() => {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n }\n };\n\n private topNavResizedHandler = ({\n detail,\n }: CustomEvent<{ size: number }>): void => {\n const { size } = detail;\n if (size !== this.deviceSize) {\n this.deviceSize = size;\n this.inTopNavSideMenu =\n size <=\n ((this.parentEl as HTMLIcTopNavigationElement)\n ?.customMobileBreakpoint || DEVICE_SIZES.L);\n }\n };\n\n private toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n this.inTopNavSideMenu &&\n this.navigationGroupExpanded.emit({ expanded: this.dropdownOpen });\n }\n\n private setGroupedNavItemTabIndex = (tabIndexValue: string) => {\n this.el\n .querySelectorAll(this.IC_NAVIGATION_ITEM)\n .forEach((navigationItem) => {\n const navItem =\n navigationItem.shadowRoot?.querySelector(\"a\") ||\n navigationItem.querySelector(\"a\");\n if (navItem) {\n navItem.setAttribute(\"tabindex\", tabIndexValue);\n }\n });\n };\n\n private toggleGroupedLinkWrapperHeight = (\n wrapper: HTMLElement,\n expanded: boolean\n ) => {\n if (!wrapper) return;\n\n if (expanded) {\n if (this.isSideNavExpanded) {\n this.setGroupedLinksElementHeight(wrapper, this.expandedNavItemsHeight);\n } else {\n this.setGroupedLinksElementHeight(\n wrapper,\n this.collapsedNavItemsHeight\n );\n }\n this.setGroupedNavItemTabIndex(\"0\");\n } else {\n wrapper.style.setProperty(\"--navigation-child-items-height\", \"0\");\n this.setGroupedNavItemTabIndex(\"-1\");\n }\n };\n\n private toggleExpanded = () => {\n this.expanded = !this.expanded;\n const linkWrapper = this.el.shadowRoot?.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n this.toggleGroupedLinkWrapperHeight(linkWrapper, this.expanded);\n };\n\n private showDropdown() {\n if (!this.dropdownOpen) {\n this.navigationGroupOpened.emit({\n source: this.el,\n });\n\n this.toggleDropdown();\n }\n }\n\n private hideDropdown() {\n document.removeEventListener(\"keydown\", this.handleKeydown);\n if (this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private handleClick = (ev: MouseEvent) => {\n if (this.navigationType === \"top\" && ev.detail) {\n this.toggleDropdown();\n } else {\n this.toggleExpanded();\n }\n };\n\n private handleBlur = (ev: FocusEvent) => {\n const target = ev.relatedTarget as HTMLElement;\n if (!this.el.contains(target)) {\n this.hideDropdown();\n }\n };\n\n private handleTopNavKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \" \" || ev.key === \"Enter\") {\n this.toggleDropdown();\n } else if (!this.inTopNavSideMenu && ev.key === \"Escape\") {\n this.hideDropdown();\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \"Enter\" || ev.key === \" \" || ev.key === \"Escape\") {\n switch (this.navigationType) {\n case \"top\":\n this.handleTopNavKeydown(ev as KeyboardEvent);\n break;\n case \"side\":\n this.toggleExpanded();\n ev.preventDefault();\n break;\n default:\n this.toggleExpanded();\n break;\n }\n }\n };\n\n private handleMouseLeave = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n\n this.mouseGate = false;\n\n if (\n !this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n document.activeElement !== this.el &&\n !this.el.contains(document.activeElement) &&\n relTarget?.nodeName === this.nodeName &&\n this.dropdownOpen === true\n ) {\n this.mouseGate = true;\n this.hideDropdown();\n } else if (\n !this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n !this.el.contains(document.activeElement)\n ) {\n this.mouseGate = false;\n setTimeout(() => {\n this.dropdownOpen ? this.hideDropdown() : null;\n }, 500);\n }\n };\n\n private handleMouseEnter = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n document.addEventListener(\"keydown\", this.handleKeydown);\n\n if (relTarget?.nodeName === this.nodeName && this.mouseGate === true) {\n this.showDropdown();\n } else if (\n this.dropdownOpen === false &&\n relTarget !== null &&\n this.mouseGate === false\n ) {\n this.mouseGate = true;\n setTimeout(() => {\n this.mouseGate && this.showDropdown();\n }, 500);\n }\n };\n\n private renderDropdownGroupedLinks = (): HTMLDivElement => (\n <div\n class={{\n [\"navigation-group-dropdown\"]: !this.inTopNavSideMenu,\n [\"navigation-group-dropdown-side-menu\"]: this.inTopNavSideMenu,\n [\"selected\"]: this.dropdownOpen && !this.inTopNavSideMenu,\n }}\n onMouseLeave={!this.inTopNavSideMenu ? this.handleMouseLeave : undefined}\n ref={(el) => (this.dropdown = el)}\n >\n <nav\n class={{\n [\"navigation-group-dropdown-items\"]: !this.inTopNavSideMenu,\n }}\n aria-labelledby=\"nav-group-title\"\n >\n <ul>\n <slot></slot>\n </ul>\n </nav>\n </div>\n );\n\n private renderGroupedLinks = (): HTMLDivElement => (\n <ul class=\"grouped-links-wrapper\">\n <slot></slot>\n </ul>\n );\n\n /**\n * Gets the total height of navigation links to improve\n * smoothness of expand/collapse animations\n */\n private getNavigationChildItemsHeight = (): string => {\n let navigationChildItemsHeight = 0;\n this.allGroupedNavigationItems.forEach((navItem) => {\n navigationChildItemsHeight += navItem.offsetHeight;\n });\n\n return `${navigationChildItemsHeight}px`;\n };\n\n private setInitialGroupedLinksWrapperHeight = () => {\n const linkWrapper = this.el.shadowRoot?.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n\n if (!linkWrapper) return;\n\n if (\n !this.isSideNavExpanded &&\n !this.collapsedNavItemsHeight &&\n this.expanded\n ) {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n }\n\n if (this.isSideNavExpanded && this.expanded) {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n }\n };\n\n private renderGroupTitleText = (): HTMLIcTypographyElement => (\n <ic-typography\n id=\"nav-group-title\"\n variant={this.navigationType === \"side\" ? \"caption\" : \"label\"}\n >\n {this.label}\n </ic-typography>\n );\n\n private renderNavigationItems = (): HTMLDivElement | null => {\n if (this.dropdownOpen || (this.inTopNavSideMenu && !this.expandable)) {\n return this.renderDropdownGroupedLinks();\n }\n\n if (this.navigationType !== \"top\") {\n return this.renderGroupedLinks();\n }\n\n return null;\n };\n\n private setGroupedLinksElementHeight(\n groupedNavItemWrapper: HTMLElement,\n height: string\n ) {\n groupedNavItemWrapper.style.setProperty(\n \"--navigation-child-items-height\",\n height\n );\n }\n\n render() {\n const { dropdownOpen, inTopNavSideMenu, expandable } = this;\n\n const navGroupTitleClassNames = {\n [\"navigation-group\"]: true,\n [this.focusStyle]: !inTopNavSideMenu,\n [\"navigation-group-side-menu-collapsed\"]:\n inTopNavSideMenu && !!expandable && !dropdownOpen,\n [\"navigation-group-side-menu-expanded\"]:\n inTopNavSideMenu && !!expandable && dropdownOpen,\n [\"selected\"]: dropdownOpen && !inTopNavSideMenu,\n };\n\n return (\n <Host\n class={{\n [\"in-side-menu\"]: inTopNavSideMenu,\n \"ic-navigation-group-expanded\": this.expanded,\n \"ic-navigation-group-collapsed\": !this.expanded,\n [\"ic-navigation-group-side-nav\"]: this.navigationType === \"side\",\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n [\"ic-navigation-group-expandable\"]: !!expandable,\n }}\n role=\"listitem\"\n >\n {this.expandable ||\n (!inTopNavSideMenu && this.navigationType === \"top\") ? (\n <button\n onMouseEnter={\n !inTopNavSideMenu && this.navigationType === \"top\"\n ? this.handleMouseEnter\n : undefined\n }\n onMouseLeave={\n this.navigationType === \"top\" ? this.handleMouseLeave : undefined\n }\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown}\n class={navGroupTitleClassNames}\n ref={(el) => (this.groupEl = el)}\n aria-expanded={`${dropdownOpen || this.expanded}`}\n aria-haspopup={`${\n !inTopNavSideMenu && this.navigationType === \"top\"\n }`}\n >\n {this.renderGroupTitleText()}\n {this.navigationType === \"side\" && expandable && (\n <div\n class={{\n \"chevron-toggle-icon-wrapper\": true,\n \"chevron-toggle-icon-closed\": this.expanded,\n }}\n innerHTML={chevronIcon}\n ></div>\n )}\n </button>\n ) : this.navigationType === \"side\" && !this.isSideNavExpanded ? null : (\n <div class={navGroupTitleClassNames}>\n {this.renderGroupTitleText()}\n </div>\n )}\n {this.renderNavigationItems()}\n </Host>\n );\n }\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-navigation-group.types.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-group/ic-navigation-group.types.ts"],"names":[],"mappings":"","sourcesContent":["export interface IcNavigationOpenEventDetail {\n source: HTMLElement;\n}\n"]}
|
1
|
+
{"version":3,"file":"ic-navigation-group.types.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-group/ic-navigation-group.types.ts"],"names":[],"mappings":"","sourcesContent":["export interface IcNavigationOpenEventDetail {\n source: HTMLElement;\n}\n\nexport interface IcNavigationExpandEventDetail {\n expanded: boolean;\n}\n"]}
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import { Host, h, } from "@stencil/core";
|
2
2
|
import { getSlot, getSlotContent, isSlotUsed } from "../../utils/helpers";
|
3
|
+
const NAV_GROUP_TAG = "IC-NAVIGATION-GROUP";
|
4
|
+
const NAV_ITEM_TAG = "IC-NAVIGATION-ITEM";
|
3
5
|
/**
|
4
6
|
* @slot navigation - Content will be rendered at top of panel.
|
5
7
|
* @slot buttons - Content will be rendered above version info and below navigation.
|
@@ -23,6 +25,21 @@ export class NavigationMenu {
|
|
23
25
|
* The version info to display.
|
24
26
|
*/
|
25
27
|
this.version = "";
|
28
|
+
this.setLastTabStop = (lastNavGroupExpanded) => {
|
29
|
+
let lastEl = this.navigationEls[this.navigationEls.length - 1];
|
30
|
+
if (lastEl.tagName === NAV_GROUP_TAG && lastNavGroupExpanded) {
|
31
|
+
const childNavItems = lastEl.children;
|
32
|
+
lastEl = childNavItems[childNavItems.length - 1];
|
33
|
+
}
|
34
|
+
if (lastEl.tagName === NAV_ITEM_TAG) {
|
35
|
+
//check for slotted content i.e. react router link
|
36
|
+
const slotContent = getSlot(lastEl, "navigation-item");
|
37
|
+
if (slotContent !== null) {
|
38
|
+
lastEl = slotContent;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
this.lastTabStop = lastEl;
|
42
|
+
};
|
26
43
|
this.closeMenu = () => {
|
27
44
|
this.icNavigationMenuClose.emit();
|
28
45
|
};
|
@@ -35,8 +52,8 @@ export class NavigationMenu {
|
|
35
52
|
if (this.lastTabStop !== null) {
|
36
53
|
switch (this.lastTabStop.tagName) {
|
37
54
|
case "IC-NAVIGATION-BUTTON":
|
38
|
-
case
|
39
|
-
case
|
55
|
+
case NAV_ITEM_TAG:
|
56
|
+
case NAV_GROUP_TAG:
|
40
57
|
focusEl = this.lastTabStop;
|
41
58
|
focusEl.focus();
|
42
59
|
break;
|
@@ -49,15 +66,20 @@ export class NavigationMenu {
|
|
49
66
|
}
|
50
67
|
componentWillLoad() {
|
51
68
|
this.navBarEl = document.querySelector("ic-top-navigation");
|
52
|
-
|
53
|
-
if (navigationEls) {
|
69
|
+
this.navigationEls = getSlotContent(this.el, "navigation");
|
70
|
+
if (this.navigationEls) {
|
54
71
|
this.hasNavigation = true;
|
55
|
-
const lastEl = navigationEls[navigationEls.length - 1];
|
56
|
-
if (lastEl.tagName ===
|
72
|
+
const lastEl = this.navigationEls[this.navigationEls.length - 1];
|
73
|
+
if (lastEl.tagName === NAV_ITEM_TAG) {
|
57
74
|
this.navItemAboveButtons = true;
|
58
75
|
}
|
59
|
-
|
60
|
-
|
76
|
+
else if (lastEl.tagName === NAV_GROUP_TAG) {
|
77
|
+
lastEl.addEventListener("navigationGroupExpanded", ((event) => {
|
78
|
+
this.setLastTabStop(event.detail.expanded);
|
79
|
+
}));
|
80
|
+
}
|
81
|
+
const firstEl = this.navigationEls[0];
|
82
|
+
if (firstEl.tagName === NAV_GROUP_TAG) {
|
61
83
|
this.navGroupFirst = true;
|
62
84
|
}
|
63
85
|
}
|
@@ -67,16 +89,8 @@ export class NavigationMenu {
|
|
67
89
|
this.lastTabStop = buttonContent[buttonContent.length - 1];
|
68
90
|
}
|
69
91
|
else {
|
70
|
-
if (this.hasNavigation && navigationEls) {
|
71
|
-
|
72
|
-
//check for slotted content i.e. react router link
|
73
|
-
const slotContent = getSlot(lastEl, "navigation-item");
|
74
|
-
if (slotContent !== null) {
|
75
|
-
this.lastTabStop = slotContent;
|
76
|
-
}
|
77
|
-
else {
|
78
|
-
this.lastTabStop = lastEl;
|
79
|
-
}
|
92
|
+
if (this.hasNavigation && this.navigationEls) {
|
93
|
+
this.setLastTabStop(false);
|
80
94
|
}
|
81
95
|
}
|
82
96
|
}
|
@@ -109,16 +123,16 @@ export class NavigationMenu {
|
|
109
123
|
}
|
110
124
|
}
|
111
125
|
render() {
|
112
|
-
return (h(Host, { key: '
|
126
|
+
return (h(Host, { key: 'd8a429fb76fa3a1ef80580957fd6481e240f5317', class: { [`ic-theme-${this.theme}`]: this.theme !== "inherit" } }, h("div", { key: '7bf2fffdc59f70baa6674deae32a1bc4b94ad1c7', class: "popout-modal", onClick: this.closeMenu }), h("div", { key: '5f040801d741e34fa84396292a7ff2e6c371c004', class: "popout-menu", role: "dialog", "aria-modal": "true", "aria-label": `${this.hasNavigation ? "Navigation" : "App"} menu` }, h("span", { key: 'e1b5a6eb1689c24845f8dde72d4b4439333889a2', "aria-hidden": "true", id: "navigation-landmark-text", class: "navigation-landmark-text" }, "Main navigation"), h("nav", { key: 'cfe33959155fc33481c1d71b43e740c97d59447f', "aria-labelledby": "navigation-landmark-text", "aria-hidden": this.hasNavigation ? "false" : "true" }, h("div", { key: 'd6bcbb09f3477305ec0dacd2274d7be1b92818c4', class: {
|
113
127
|
["menu-close-button-container"]: true,
|
114
128
|
["nav-group-first"]: this.navGroupFirst,
|
115
|
-
} }, h("ic-button", { key: '
|
129
|
+
} }, h("ic-button", { key: '29c00c1baf94e77fc12c4f5808b7f959261b9307', ref: (el) => (this.closeButton = el), id: "menu-close-button", class: "menu-close-button", variant: "icon", size: "large", "aria-label": `Close ${this.hasNavigation ? "navigation" : "app"} menu`, onClick: this.closeMenu }, h("svg", { key: '8117252bd49a7fb0a884730ed79d059955cd973e', width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'f7b68f7e0b0860dc30f3477ef49f3b9da41e2625', d: "M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z" })))), this.hasNavigation && h("slot", { key: '42a9be2b531c8aeffd12ecbe1b8b089121416def', name: "navigation" })), this.hasButtons && (h("div", { key: '53bd2be53748f6ce6aff7d835e2fa05ae4a4302f', class: {
|
116
130
|
["menu-buttons-container"]: true,
|
117
131
|
["menu-buttons-container-nav-item-above"]: this.navItemAboveButtons,
|
118
|
-
} }, h("slot", { key: '
|
132
|
+
} }, h("slot", { key: 'fc5df99477f01b812d5ff4fdcadf8766a613734d', name: "buttons" }))), (this.status !== "" || this.version !== "") && (h("div", { key: '74d83ccdcd72f225733da95a63313d1ac1fc9cbd', class: {
|
119
133
|
["menu-status-version-container"]: true,
|
120
134
|
["status-version-no-buttons"]: !this.hasButtons,
|
121
|
-
} }, this.status !== "" && (h("div", { key: '
|
135
|
+
} }, this.status !== "" && (h("div", { key: '5b41cca5949cb96006b7660334561c378e039fd9', class: "menu-status" }, h("ic-typography", { key: 'c068f6a9e6f4f3dcb4386185e5b34547c93dcbc2', variant: "label-uppercase", "aria-label": "app tag", class: "menu-status-text" }, this.status))), this.version !== "" && (h("div", { key: 'bcd01f93742c4a3b1106437da91ec7e6541e5e13', class: "menu-version" }, h("ic-typography", { key: 'aa25f91209bd326e9b2f4f34869885e9e78d263c', variant: "label", class: "menu-version-text", "aria-label": "app version" }, this.version))))))));
|
122
136
|
}
|
123
137
|
static get is() { return "ic-navigation-menu"; }
|
124
138
|
static get encapsulation() { return "shadow"; }
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-navigation-menu.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-menu/ic-navigation-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Event,\n EventEmitter,\n Listen,\n} from \"@stencil/core\";\nimport { IcThemeMode } from \"../../utils/types\";\nimport { getSlot, getSlotContent, isSlotUsed } from \"../../utils/helpers\";\n\n/**\n * @slot navigation - Content will be rendered at top of panel.\n * @slot buttons - Content will be rendered above version info and below navigation.\n */\n@Component({\n tag: \"ic-navigation-menu\",\n styleUrl: \"ic-navigation-menu.css\",\n shadow: true,\n})\nexport class NavigationMenu {\n private closeButton?: HTMLIcButtonElement;\n private hasButtons: boolean = false;\n private hasNavigation: boolean = false;\n private lastTabStop: HTMLElement | null = null;\n private navBarEl: HTMLIcTopNavigationElement | null;\n private navGroupFirst: boolean = false;\n private navItemAboveButtons: boolean = false;\n\n @Element() el: HTMLIcNavigationMenuElement;\n\n /**\n * The status info to display.\n */\n @Prop() status?: string = \"\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The version info to display.\n */\n @Prop() version?: string = \"\";\n\n /**\n * @internal - Emitted when the menu is closed.\n */\n @Event() icNavigationMenuClose: EventEmitter<void>;\n\n componentWillLoad(): void {\n this.navBarEl = document.querySelector(\"ic-top-navigation\");\n const navigationEls = getSlotContent(this.el, \"navigation\");\n if (navigationEls) {\n this.hasNavigation = true;\n const lastEl = navigationEls[navigationEls.length - 1] as HTMLElement;\n if (lastEl.tagName === \"IC-NAVIGATION-ITEM\") {\n this.navItemAboveButtons = true;\n }\n const firstEl = navigationEls[0] as HTMLElement;\n if (firstEl.tagName === \"IC-NAVIGATION-GROUP\") {\n this.navGroupFirst = true;\n }\n }\n const buttonContent = getSlotContent(this.el, \"buttons\");\n\n if (buttonContent !== null) {\n this.hasButtons = true;\n this.lastTabStop = buttonContent[buttonContent.length - 1] as HTMLElement;\n } else {\n if (this.hasNavigation && navigationEls) {\n const lastEl = navigationEls[navigationEls.length - 1] as HTMLElement;\n //check for slotted content i.e. react router link\n const slotContent = getSlot(lastEl, \"navigation-item\");\n if (slotContent !== null) {\n this.lastTabStop = slotContent as HTMLElement;\n } else {\n this.lastTabStop = lastEl;\n }\n }\n }\n }\n\n componentDidLoad(): void {\n this.focusCloseButton();\n }\n\n componentWillRender(): void {\n this.hasNavigation = isSlotUsed(this.el, \"navigation\");\n this.hasButtons = isSlotUsed(this.el, \"buttons\");\n }\n\n @Listen(\"navItemClicked\")\n navItemClickHandler(): void {\n this.closeMenu();\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyDown(ev: KeyboardEvent): void {\n if (ev.key === \"Tab\") {\n if (ev.shiftKey) {\n if (document.activeElement === this.navBarEl) {\n ev.preventDefault();\n this.focusLastTabStop();\n }\n } else if (\n document.activeElement === this.lastTabStop ||\n this.lastTabStop === null\n ) {\n ev.preventDefault();\n this.focusCloseButton();\n }\n } else if (ev.key === \"Escape\") {\n this.closeMenu();\n }\n }\n\n private closeMenu = () => {\n this.icNavigationMenuClose.emit();\n };\n\n private focusCloseButton = () => {\n this.closeButton?.focus();\n };\n\n private focusLastTabStop = () => {\n let focusEl;\n if (this.lastTabStop !== null) {\n switch (this.lastTabStop.tagName) {\n case \"IC-NAVIGATION-BUTTON\":\n case \"IC-NAVIGATION-ITEM\":\n case \"IC-NAVIGATION-GROUP\":\n focusEl = this.lastTabStop as HTMLElement;\n focusEl.focus();\n break;\n case \"A\":\n this.lastTabStop.focus();\n break;\n }\n }\n };\n\n render() {\n return (\n <Host class={{ [`ic-theme-${this.theme}`]: this.theme !== \"inherit\" }}>\n <div class=\"popout-modal\" onClick={this.closeMenu}></div>\n <div\n class=\"popout-menu\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={`${this.hasNavigation ? \"Navigation\" : \"App\"} menu`}\n >\n <span\n aria-hidden=\"true\"\n id=\"navigation-landmark-text\"\n class=\"navigation-landmark-text\"\n >\n Main navigation\n </span>\n <nav\n aria-labelledby=\"navigation-landmark-text\"\n aria-hidden={this.hasNavigation ? \"false\" : \"true\"}\n >\n <div\n class={{\n [\"menu-close-button-container\"]: true,\n [\"nav-group-first\"]: this.navGroupFirst,\n }}\n >\n <ic-button\n ref={(el) => (this.closeButton = el)}\n id=\"menu-close-button\"\n class=\"menu-close-button\"\n variant=\"icon\"\n size=\"large\"\n aria-label={`Close ${\n this.hasNavigation ? \"navigation\" : \"app\"\n } menu`}\n onClick={this.closeMenu}\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z\" />\n </svg>\n </ic-button>\n </div>\n {this.hasNavigation && <slot name=\"navigation\"></slot>}\n </nav>\n {this.hasButtons && (\n <div\n class={{\n [\"menu-buttons-container\"]: true,\n [\"menu-buttons-container-nav-item-above\"]:\n this.navItemAboveButtons,\n }}\n >\n <slot name=\"buttons\"></slot>\n </div>\n )}\n {(this.status !== \"\" || this.version !== \"\") && (\n <div\n class={{\n [\"menu-status-version-container\"]: true,\n [\"status-version-no-buttons\"]: !this.hasButtons,\n }}\n >\n {this.status !== \"\" && (\n <div class=\"menu-status\">\n <ic-typography\n variant=\"label-uppercase\"\n aria-label=\"app tag\"\n class=\"menu-status-text\"\n >\n {this.status}\n </ic-typography>\n </div>\n )}\n {this.version !== \"\" && (\n <div class=\"menu-version\">\n <ic-typography\n variant=\"label\"\n class=\"menu-version-text\"\n aria-label=\"app version\"\n >\n {this.version}\n </ic-typography>\n </div>\n )}\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"ic-navigation-menu.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-menu/ic-navigation-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Event,\n EventEmitter,\n Listen,\n} from \"@stencil/core\";\nimport { IcThemeMode } from \"../../utils/types\";\nimport { getSlot, getSlotContent, isSlotUsed } from \"../../utils/helpers\";\n\nconst NAV_GROUP_TAG = \"IC-NAVIGATION-GROUP\";\nconst NAV_ITEM_TAG = \"IC-NAVIGATION-ITEM\";\n\n/**\n * @slot navigation - Content will be rendered at top of panel.\n * @slot buttons - Content will be rendered above version info and below navigation.\n */\n@Component({\n tag: \"ic-navigation-menu\",\n styleUrl: \"ic-navigation-menu.css\",\n shadow: true,\n})\nexport class NavigationMenu {\n private closeButton?: HTMLIcButtonElement;\n private hasButtons: boolean = false;\n private hasNavigation: boolean = false;\n private lastTabStop: HTMLElement | null = null;\n private navBarEl: HTMLIcTopNavigationElement | null;\n private navGroupFirst: boolean = false;\n private navigationEls: HTMLElement[];\n private navItemAboveButtons: boolean = false;\n\n @Element() el: HTMLIcNavigationMenuElement;\n\n /**\n * The status info to display.\n */\n @Prop() status?: string = \"\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The version info to display.\n */\n @Prop() version?: string = \"\";\n\n /**\n * @internal - Emitted when the menu is closed.\n */\n @Event() icNavigationMenuClose: EventEmitter<void>;\n\n componentWillLoad(): void {\n this.navBarEl = document.querySelector(\"ic-top-navigation\");\n this.navigationEls = getSlotContent(this.el, \"navigation\") as HTMLElement[];\n\n if (this.navigationEls) {\n this.hasNavigation = true;\n const lastEl = this.navigationEls[this.navigationEls.length - 1];\n if (lastEl.tagName === NAV_ITEM_TAG) {\n this.navItemAboveButtons = true;\n } else if (lastEl.tagName === NAV_GROUP_TAG) {\n lastEl.addEventListener(\"navigationGroupExpanded\", ((\n event: CustomEvent\n ) => {\n this.setLastTabStop(event.detail.expanded);\n }) as EventListener);\n }\n const firstEl = this.navigationEls[0];\n if (firstEl.tagName === NAV_GROUP_TAG) {\n this.navGroupFirst = true;\n }\n }\n const buttonContent = getSlotContent(this.el, \"buttons\");\n\n if (buttonContent !== null) {\n this.hasButtons = true;\n this.lastTabStop = buttonContent[buttonContent.length - 1] as HTMLElement;\n } else {\n if (this.hasNavigation && this.navigationEls) {\n this.setLastTabStop(false);\n }\n }\n }\n\n componentDidLoad(): void {\n this.focusCloseButton();\n }\n\n componentWillRender(): void {\n this.hasNavigation = isSlotUsed(this.el, \"navigation\");\n this.hasButtons = isSlotUsed(this.el, \"buttons\");\n }\n\n @Listen(\"navItemClicked\")\n navItemClickHandler(): void {\n this.closeMenu();\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyDown(ev: KeyboardEvent): void {\n if (ev.key === \"Tab\") {\n if (ev.shiftKey) {\n if (document.activeElement === this.navBarEl) {\n ev.preventDefault();\n this.focusLastTabStop();\n }\n } else if (\n document.activeElement === this.lastTabStop ||\n this.lastTabStop === null\n ) {\n ev.preventDefault();\n this.focusCloseButton();\n }\n } else if (ev.key === \"Escape\") {\n this.closeMenu();\n }\n }\n\n private setLastTabStop = (lastNavGroupExpanded: boolean) => {\n let lastEl = this.navigationEls[\n this.navigationEls.length - 1\n ] as HTMLElement;\n\n if (lastEl.tagName === NAV_GROUP_TAG && lastNavGroupExpanded) {\n const childNavItems = lastEl.children;\n lastEl = childNavItems[childNavItems.length - 1] as HTMLElement;\n }\n\n if (lastEl.tagName === NAV_ITEM_TAG) {\n //check for slotted content i.e. react router link\n const slotContent = getSlot(lastEl, \"navigation-item\");\n if (slotContent !== null) {\n lastEl = slotContent as HTMLElement;\n }\n }\n\n this.lastTabStop = lastEl;\n };\n\n private closeMenu = () => {\n this.icNavigationMenuClose.emit();\n };\n\n private focusCloseButton = () => {\n this.closeButton?.focus();\n };\n\n private focusLastTabStop = () => {\n let focusEl;\n if (this.lastTabStop !== null) {\n switch (this.lastTabStop.tagName) {\n case \"IC-NAVIGATION-BUTTON\":\n case NAV_ITEM_TAG:\n case NAV_GROUP_TAG:\n focusEl = this.lastTabStop as HTMLElement;\n focusEl.focus();\n break;\n case \"A\":\n this.lastTabStop.focus();\n break;\n }\n }\n };\n\n render() {\n return (\n <Host class={{ [`ic-theme-${this.theme}`]: this.theme !== \"inherit\" }}>\n <div class=\"popout-modal\" onClick={this.closeMenu}></div>\n <div\n class=\"popout-menu\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={`${this.hasNavigation ? \"Navigation\" : \"App\"} menu`}\n >\n <span\n aria-hidden=\"true\"\n id=\"navigation-landmark-text\"\n class=\"navigation-landmark-text\"\n >\n Main navigation\n </span>\n <nav\n aria-labelledby=\"navigation-landmark-text\"\n aria-hidden={this.hasNavigation ? \"false\" : \"true\"}\n >\n <div\n class={{\n [\"menu-close-button-container\"]: true,\n [\"nav-group-first\"]: this.navGroupFirst,\n }}\n >\n <ic-button\n ref={(el) => (this.closeButton = el)}\n id=\"menu-close-button\"\n class=\"menu-close-button\"\n variant=\"icon\"\n size=\"large\"\n aria-label={`Close ${\n this.hasNavigation ? \"navigation\" : \"app\"\n } menu`}\n onClick={this.closeMenu}\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z\" />\n </svg>\n </ic-button>\n </div>\n {this.hasNavigation && <slot name=\"navigation\"></slot>}\n </nav>\n {this.hasButtons && (\n <div\n class={{\n [\"menu-buttons-container\"]: true,\n [\"menu-buttons-container-nav-item-above\"]:\n this.navItemAboveButtons,\n }}\n >\n <slot name=\"buttons\"></slot>\n </div>\n )}\n {(this.status !== \"\" || this.version !== \"\") && (\n <div\n class={{\n [\"menu-status-version-container\"]: true,\n [\"status-version-no-buttons\"]: !this.hasButtons,\n }}\n >\n {this.status !== \"\" && (\n <div class=\"menu-status\">\n <ic-typography\n variant=\"label-uppercase\"\n aria-label=\"app tag\"\n class=\"menu-status-text\"\n >\n {this.status}\n </ic-typography>\n </div>\n )}\n {this.version !== \"\" && (\n <div class=\"menu-version\">\n <ic-typography\n variant=\"label\"\n class=\"menu-version-text\"\n aria-label=\"app version\"\n >\n {this.version}\n </ic-typography>\n </div>\n )}\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
|
@@ -106,23 +106,24 @@ export class PageHeader {
|
|
106
106
|
checkResizeObserver(this.runResizeObserver);
|
107
107
|
}
|
108
108
|
render() {
|
109
|
+
var _a, _b;
|
109
110
|
const { size, border, heading, subheading, aligned, sticky, stickyDesktopOnly, theme, } = this;
|
110
|
-
const navAriaLabel = heading
|
111
|
-
?
|
112
|
-
: "
|
113
|
-
return (h(Host, { key: '
|
111
|
+
const navAriaLabel = `${isSlotUsed(this.el, "heading")
|
112
|
+
? (_b = (_a = this.el.querySelector('[slot="heading"]')) === null || _a === void 0 ? void 0 : _a.textContent) !== null && _b !== void 0 ? _b : ""
|
113
|
+
: heading !== null && heading !== void 0 ? heading : ""} page sections`;
|
114
|
+
return (h(Host, { key: 'cf0a316e1397ddc7fb6d3c31dc9a311583e16a91', class: {
|
114
115
|
["ic-page-header-sticky"]: !!sticky,
|
115
116
|
["ic-page-header-sticky-desktop"]: !sticky && !!stickyDesktopOnly,
|
116
117
|
[`ic-theme-${theme}`]: theme !== "inherit",
|
117
|
-
}, "aria-label": this.el.ariaLabel || "page header" }, h("header", { key: '
|
118
|
+
}, "aria-label": this.el.ariaLabel || "page header" }, h("header", { key: 'a4f043e2af90f690fba09b93a4013d1389515e0a', class: {
|
118
119
|
["border-bottom"]: !!border,
|
119
120
|
["tabs"]: isSlotUsed(this.el, "tabs"),
|
120
|
-
}, role: "presentation" }, h("ic-section-container", { key: '
|
121
|
+
}, role: "presentation" }, h("ic-section-container", { key: '2face790c85ada31be50963b94cb4a238f35472c', aligned: aligned, fullHeight: isSlotUsed(this.el, "tabs") }, isSlotUsed(this.el, "breadcrumbs") && (h("div", { key: '54976512713ea354459fc3531070db32feb92e71', class: "breadcrumb-area" }, h("slot", { key: '1ae4415737707e7d83ae0d8d20def16162584d31', name: "breadcrumbs" }))), h("div", { key: '1bb89b5a996f3f1dafcfdefd901e04e7b4e43143', class: "main-content" }, h("div", { key: '0e9da2b22ef20eba75b79727ec52f6451c165547', class: "title-area" }, h("div", { key: '80977a001794dbfbfb8388936b5c08486ab2a55a', class: "header-content" }, h("slot", { key: '011e08fffff718640e5d1fd85deab17aa13f52ec', name: "heading" }, h("ic-typography", { key: '41c906715db6466ca30c3e1826feb8e385a6ed15', variant: size === "small" ? "h4" : "h2", class: "heading" }, h("h2", { key: '17036720f03d87e51c5c35c9c36a4d3ffc44445a' }, heading))), h("slot", { key: '3002be9cc0995887ccc71379062a73380afc289d', name: "heading-adornment" })), h("div", { key: 'e8f563e8010b6167533fbc89dbb7f8c9c760d420', class: {
|
121
122
|
["subheading-content"]: !!subheading || isSlotUsed(this.el, "subheading"),
|
122
123
|
["small"]: size === "small",
|
123
|
-
} }, h("slot", { key: '
|
124
|
-
isSlotUsed(this.el, "tabs")) && (h("div", { key: '
|
125
|
-
!isSlotUsed(this.el, "tabs") && h("slot", { key: '
|
124
|
+
} }, h("slot", { key: '5ade2c01dfbdb1c808486b126e081c1877a513ff', name: "subheading" }, h("ic-typography", { key: 'fb6900da321f46663774ceab59982e56741f877d', variant: "body" }, subheading)))), isSlotUsed(this.el, "actions") && (h("div", { key: 'f4f481e78ace183a6da6533b5fc9cbe5086b5c0b', class: "action-area" }, h("slot", { key: '7d7afb45226d1bcde3e3e4416f2bdf4c08ef2983', name: "actions" }))), isSlotUsed(this.el, "input") && (h("div", { key: '2d9c41769a6b4719e81923e43c58fcafc939e139', class: "input-area" }, h("slot", { key: 'b873a5210cbf2bc353a249bcac581d5132f3f36f', name: "input" })))), (isSlotUsed(this.el, "stepper") ||
|
125
|
+
isSlotUsed(this.el, "tabs")) && (h("div", { key: 'a9d7f5aa5982d2a0add73f08eae35346009c7509', class: "navigation-area" }, isSlotUsed(this.el, "stepper") &&
|
126
|
+
!isSlotUsed(this.el, "tabs") && h("slot", { key: '73959a3937f2a1b29dcabf1c6f005f4f51038cbc', name: "stepper" }), isSlotUsed(this.el, "tabs") && (h("nav", { key: 'b50e37d8d8463483735ef40ba438cc2ede29c0bd', "aria-label": navAriaLabel }, h("ic-horizontal-scroll", { key: '4d52cf2984deed193908dbbd23e8a14fe8ac0724' }, h("ul", { key: '8cfa92fd9424ea59182b4a20ab2d968351129589', class: "tabs-slot" }, h("slot", { key: 'd59fc58ca6aaa2f266ab64a26071047c89bec440', name: "tabs" })))))))))));
|
126
127
|
}
|
127
128
|
static get is() { return "ic-page-header"; }
|
128
129
|
static get encapsulation() { return "shadow"; }
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-page-header.js","sourceRoot":"","sources":["../../../src/components/ic-page-header/ic-page-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, Element, State } from \"@stencil/core\";\n\nimport { IcAlignment, IcSizesNoLarge, IcThemeMode } from \"../../utils/types\";\n\nimport {\n isSlotUsed,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n checkResizeObserver,\n} from \"../../utils/helpers\";\n\n/**\n * @slot breadcrumbs - Content will be rendered in the breadcrumb area, above the title and action areas.\n * @slot heading - Content will be rendered in the title area, in place of the heading.\n * @slot subheading - Content will be rendered in the title area, in place of the subheading.\n * @slot heading-adornment - Content will be rendered in the title area, adjacent to the heading.\n * @slot actions - Content will be rendered in the action area, adjacent to the title area.\n * @slot input - Content will be rendered in the input area, below the title area and adjacent to the action area.\n * @slot stepper - Content will be rendered in the navigation area, below the title and action areas. Note: stepper slot cannot be used when the tabs slot is being used.\n * @slot tabs - Content will be rendered in the navigation area, below the title and action areas. Note: the stepper slot cannot be used when the tabs slot is being used.\n */\n\n@Component({\n tag: \"ic-page-header\",\n styleUrl: \"ic-page-header.css\",\n shadow: true,\n})\nexport class PageHeader {\n private resizeObserver: ResizeObserver | null = null;\n\n @Element() el: HTMLIcPageHeaderElement;\n\n @State() actionContent: Node[];\n @State() areButtonsReversed: boolean = false;\n @State() deviceSize: number = DEVICE_SIZES.XL;\n\n /**\n * The alignment of the page header.\n */\n @Prop() aligned?: IcAlignment = \"left\";\n\n /**\n * If `true`, a border will be displayed along the bottom of the page header.\n */\n @Prop() border?: boolean = true;\n\n /**\n * The title to render on the page header.\n */\n @Prop() heading?: string;\n\n /**\n * If `true`, the reading pattern and tab order will change in the action area for viewport widths of above 576px and when actions have not wrapped.\n */\n @Prop() reverseOrder?: boolean = false;\n\n /**\n * The size of the page header component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * If `true`, the page header will be sticky at all breakpoints.\n */\n @Prop() sticky?: boolean = false;\n\n /**\n * If `true`, the page header will only be sticky for viewport widths of 992px and above.\n */\n @Prop() stickyDesktopOnly?: boolean = false;\n\n /**\n * The subtitle to render on the page header.\n */\n @Prop() subheading?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n this.actionContent = Array.from(\n this.el.querySelectorAll(`[slot=\"actions\"]`)\n );\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n }\n\n private resizeObserverCallback = () => {\n if (this.reverseOrder && isSlotUsed(this.el, \"actions\")) {\n this.applyReverseOrder();\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.resizeObserverCallback();\n });\n this.resizeObserver.observe(this.el);\n };\n\n private applyReverseOrder = (): void => {\n const currSize = getCurrentDeviceSize();\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n }\n\n const actionArea = this.el.shadowRoot?.querySelector(\n \"div.action-area\"\n ) as HTMLElement;\n const actionHeights: number[] = [];\n\n /* For each button in the actions slot, check the height of the button and push this number into the actionHeights array and then find the greatest number in this array (i.e. find the height of the tallest button) */\n for (let i = 0; i < this.actionContent.length; i++) {\n const action = this.actionContent[i] as HTMLElement;\n let actionHeight = action.offsetHeight;\n if (actionHeight === undefined) {\n actionHeight = 0;\n }\n actionHeights.push(actionHeight);\n }\n\n const max = Math.max(...actionHeights);\n\n /* The smallest breakpoint displays buttons in the same order the user has slotted them in. When the device size is larger than the small breakpoint then the order of the button reverses due to best practice for reading patterns. If the device size is larger than the small breakpoint and the buttons have started to wrap then they follow the order the user has slotted them in. This logic is programmed based on the height of the action-area div that wraps the actions slot. If the height of the action-area div is taller than the height of the tallest button, then it is assumed that the taller height is caused by the buttons wrapping */\n let actionAreaHeight = actionArea.offsetHeight;\n\n if (actionAreaHeight === undefined) {\n actionAreaHeight = 0;\n }\n\n const appendActionContent = () => {\n this.actionContent = this.actionContent.reverse();\n this.actionContent.forEach((btn: string | Node) => {\n this.el.append(btn);\n });\n this.areButtonsReversed = !this.areButtonsReversed;\n };\n\n if (\n (this.deviceSize > DEVICE_SIZES.S &&\n actionAreaHeight <= max &&\n !this.areButtonsReversed) ||\n (((this.deviceSize > DEVICE_SIZES.S && actionAreaHeight > max) ||\n this.deviceSize <= DEVICE_SIZES.S) &&\n this.areButtonsReversed)\n ) {\n appendActionContent();\n }\n };\n\n render() {\n const {\n size,\n border,\n heading,\n subheading,\n aligned,\n sticky,\n stickyDesktopOnly,\n theme,\n } = this;\n\n const navAriaLabel = heading\n ? `${heading} page sections`\n : \"navigation-landmark-page-header\";\n\n return (\n <Host\n class={{\n [\"ic-page-header-sticky\"]: !!sticky,\n [\"ic-page-header-sticky-desktop\"]: !sticky && !!stickyDesktopOnly,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n aria-label={this.el.ariaLabel || \"page header\"}\n >\n <header\n class={{\n [\"border-bottom\"]: !!border,\n [\"tabs\"]: isSlotUsed(this.el, \"tabs\"),\n }}\n role=\"presentation\"\n >\n <ic-section-container\n aligned={aligned}\n fullHeight={isSlotUsed(this.el, \"tabs\")}\n >\n {isSlotUsed(this.el, \"breadcrumbs\") && (\n <div class=\"breadcrumb-area\">\n <slot name=\"breadcrumbs\" />\n </div>\n )}\n <div class=\"main-content\">\n <div class=\"title-area\">\n <div class=\"header-content\">\n <slot name=\"heading\">\n <ic-typography\n variant={size === \"small\" ? \"h4\" : \"h2\"}\n class=\"heading\"\n >\n <h2>{heading}</h2>\n </ic-typography>\n </slot>\n <slot name=\"heading-adornment\" />\n </div>\n <div\n class={{\n [\"subheading-content\"]:\n !!subheading || isSlotUsed(this.el, \"subheading\"),\n [\"small\"]: size === \"small\",\n }}\n >\n <slot name=\"subheading\">\n <ic-typography variant=\"body\">{subheading}</ic-typography>\n </slot>\n </div>\n </div>\n {isSlotUsed(this.el, \"actions\") && (\n <div class=\"action-area\">\n <slot name=\"actions\" />\n </div>\n )}\n {isSlotUsed(this.el, \"input\") && (\n <div class=\"input-area\">\n <slot name=\"input\" />\n </div>\n )}\n </div>\n\n {(isSlotUsed(this.el, \"stepper\") ||\n isSlotUsed(this.el, \"tabs\")) && (\n <div class=\"navigation-area\">\n {isSlotUsed(this.el, \"stepper\") &&\n !isSlotUsed(this.el, \"tabs\") && <slot name=\"stepper\" />}\n {isSlotUsed(this.el, \"tabs\") && (\n <nav aria-label={navAriaLabel}>\n <ic-horizontal-scroll>\n <ul class=\"tabs-slot\">\n <slot name=\"tabs\" />\n </ul>\n </ic-horizontal-scroll>\n </nav>\n )}\n </div>\n )}\n </ic-section-container>\n </header>\n </Host>\n );\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"ic-page-header.js","sourceRoot":"","sources":["../../../src/components/ic-page-header/ic-page-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, Element, State } from \"@stencil/core\";\n\nimport { IcAlignment, IcSizesNoLarge, IcThemeMode } from \"../../utils/types\";\n\nimport {\n isSlotUsed,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n checkResizeObserver,\n} from \"../../utils/helpers\";\n\n/**\n * @slot breadcrumbs - Content will be rendered in the breadcrumb area, above the title and action areas.\n * @slot heading - Content will be rendered in the title area, in place of the heading.\n * @slot subheading - Content will be rendered in the title area, in place of the subheading.\n * @slot heading-adornment - Content will be rendered in the title area, adjacent to the heading.\n * @slot actions - Content will be rendered in the action area, adjacent to the title area.\n * @slot input - Content will be rendered in the input area, below the title area and adjacent to the action area.\n * @slot stepper - Content will be rendered in the navigation area, below the title and action areas. Note: stepper slot cannot be used when the tabs slot is being used.\n * @slot tabs - Content will be rendered in the navigation area, below the title and action areas. Note: the stepper slot cannot be used when the tabs slot is being used.\n */\n\n@Component({\n tag: \"ic-page-header\",\n styleUrl: \"ic-page-header.css\",\n shadow: true,\n})\nexport class PageHeader {\n private resizeObserver: ResizeObserver | null = null;\n\n @Element() el: HTMLIcPageHeaderElement;\n\n @State() actionContent: Node[];\n @State() areButtonsReversed: boolean = false;\n @State() deviceSize: number = DEVICE_SIZES.XL;\n\n /**\n * The alignment of the page header.\n */\n @Prop() aligned?: IcAlignment = \"left\";\n\n /**\n * If `true`, a border will be displayed along the bottom of the page header.\n */\n @Prop() border?: boolean = true;\n\n /**\n * The title to render on the page header.\n */\n @Prop() heading?: string;\n\n /**\n * If `true`, the reading pattern and tab order will change in the action area for viewport widths of above 576px and when actions have not wrapped.\n */\n @Prop() reverseOrder?: boolean = false;\n\n /**\n * The size of the page header component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * If `true`, the page header will be sticky at all breakpoints.\n */\n @Prop() sticky?: boolean = false;\n\n /**\n * If `true`, the page header will only be sticky for viewport widths of 992px and above.\n */\n @Prop() stickyDesktopOnly?: boolean = false;\n\n /**\n * The subtitle to render on the page header.\n */\n @Prop() subheading?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n this.actionContent = Array.from(\n this.el.querySelectorAll(`[slot=\"actions\"]`)\n );\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n }\n\n private resizeObserverCallback = () => {\n if (this.reverseOrder && isSlotUsed(this.el, \"actions\")) {\n this.applyReverseOrder();\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.resizeObserverCallback();\n });\n this.resizeObserver.observe(this.el);\n };\n\n private applyReverseOrder = (): void => {\n const currSize = getCurrentDeviceSize();\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n }\n\n const actionArea = this.el.shadowRoot?.querySelector(\n \"div.action-area\"\n ) as HTMLElement;\n const actionHeights: number[] = [];\n\n /* For each button in the actions slot, check the height of the button and push this number into the actionHeights array and then find the greatest number in this array (i.e. find the height of the tallest button) */\n for (let i = 0; i < this.actionContent.length; i++) {\n const action = this.actionContent[i] as HTMLElement;\n let actionHeight = action.offsetHeight;\n if (actionHeight === undefined) {\n actionHeight = 0;\n }\n actionHeights.push(actionHeight);\n }\n\n const max = Math.max(...actionHeights);\n\n /* The smallest breakpoint displays buttons in the same order the user has slotted them in. When the device size is larger than the small breakpoint then the order of the button reverses due to best practice for reading patterns. If the device size is larger than the small breakpoint and the buttons have started to wrap then they follow the order the user has slotted them in. This logic is programmed based on the height of the action-area div that wraps the actions slot. If the height of the action-area div is taller than the height of the tallest button, then it is assumed that the taller height is caused by the buttons wrapping */\n let actionAreaHeight = actionArea.offsetHeight;\n\n if (actionAreaHeight === undefined) {\n actionAreaHeight = 0;\n }\n\n const appendActionContent = () => {\n this.actionContent = this.actionContent.reverse();\n this.actionContent.forEach((btn: string | Node) => {\n this.el.append(btn);\n });\n this.areButtonsReversed = !this.areButtonsReversed;\n };\n\n if (\n (this.deviceSize > DEVICE_SIZES.S &&\n actionAreaHeight <= max &&\n !this.areButtonsReversed) ||\n (((this.deviceSize > DEVICE_SIZES.S && actionAreaHeight > max) ||\n this.deviceSize <= DEVICE_SIZES.S) &&\n this.areButtonsReversed)\n ) {\n appendActionContent();\n }\n };\n\n render() {\n const {\n size,\n border,\n heading,\n subheading,\n aligned,\n sticky,\n stickyDesktopOnly,\n theme,\n } = this;\n\n const navAriaLabel = `${\n isSlotUsed(this.el, \"heading\")\n ? this.el.querySelector('[slot=\"heading\"]')?.textContent ?? \"\"\n : heading ?? \"\"\n } page sections`;\n\n return (\n <Host\n class={{\n [\"ic-page-header-sticky\"]: !!sticky,\n [\"ic-page-header-sticky-desktop\"]: !sticky && !!stickyDesktopOnly,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n aria-label={this.el.ariaLabel || \"page header\"}\n >\n <header\n class={{\n [\"border-bottom\"]: !!border,\n [\"tabs\"]: isSlotUsed(this.el, \"tabs\"),\n }}\n role=\"presentation\"\n >\n <ic-section-container\n aligned={aligned}\n fullHeight={isSlotUsed(this.el, \"tabs\")}\n >\n {isSlotUsed(this.el, \"breadcrumbs\") && (\n <div class=\"breadcrumb-area\">\n <slot name=\"breadcrumbs\" />\n </div>\n )}\n <div class=\"main-content\">\n <div class=\"title-area\">\n <div class=\"header-content\">\n <slot name=\"heading\">\n <ic-typography\n variant={size === \"small\" ? \"h4\" : \"h2\"}\n class=\"heading\"\n >\n <h2>{heading}</h2>\n </ic-typography>\n </slot>\n <slot name=\"heading-adornment\" />\n </div>\n <div\n class={{\n [\"subheading-content\"]:\n !!subheading || isSlotUsed(this.el, \"subheading\"),\n [\"small\"]: size === \"small\",\n }}\n >\n <slot name=\"subheading\">\n <ic-typography variant=\"body\">{subheading}</ic-typography>\n </slot>\n </div>\n </div>\n {isSlotUsed(this.el, \"actions\") && (\n <div class=\"action-area\">\n <slot name=\"actions\" />\n </div>\n )}\n {isSlotUsed(this.el, \"input\") && (\n <div class=\"input-area\">\n <slot name=\"input\" />\n </div>\n )}\n </div>\n\n {(isSlotUsed(this.el, \"stepper\") ||\n isSlotUsed(this.el, \"tabs\")) && (\n <div class=\"navigation-area\">\n {isSlotUsed(this.el, \"stepper\") &&\n !isSlotUsed(this.el, \"tabs\") && <slot name=\"stepper\" />}\n {isSlotUsed(this.el, \"tabs\") && (\n <nav aria-label={navAriaLabel}>\n <ic-horizontal-scroll>\n <ul class=\"tabs-slot\">\n <slot name=\"tabs\" />\n </ul>\n </ic-horizontal-scroll>\n </nav>\n )}\n </div>\n )}\n </ic-section-container>\n </header>\n </Host>\n );\n }\n}\n"]}
|
@@ -483,12 +483,16 @@ ic-button.next-previous::part(button) {
|
|
483
483
|
}
|
484
484
|
|
485
485
|
ic-button.ic-button-disabled.first-last::part(button),
|
486
|
-
ic-button.ic-button-disabled.next-previous::part(button)
|
486
|
+
ic-button.ic-button-disabled.next-previous::part(button),
|
487
|
+
:host(.ic-pagination-monochrome)
|
488
|
+
ic-button.ic-button-disabled.first-last::part(button),
|
489
|
+
:host(.ic-pagination-monochrome)
|
490
|
+
ic-button.ic-button-disabled.next-previous::part(button) {
|
487
491
|
color: var(--ic-pagination-chevron-disabled);
|
488
492
|
}
|
489
493
|
|
490
494
|
.disabled {
|
491
|
-
color: var(--ic-
|
495
|
+
color: var(--ic-color-text-disabled-mid);
|
492
496
|
pointer-events: none;
|
493
497
|
cursor: none;
|
494
498
|
-webkit-user-select: none;
|
@@ -504,3 +508,7 @@ ic-button.ic-button-disabled.next-previous::part(button) {
|
|
504
508
|
position: absolute;
|
505
509
|
left: -9999px;
|
506
510
|
}
|
511
|
+
|
512
|
+
.sr-only:dir(rtl) {
|
513
|
+
right: -9999px;
|
514
|
+
}
|
@@ -239,14 +239,14 @@ export class Pagination {
|
|
239
239
|
}
|
240
240
|
render() {
|
241
241
|
const { type, currentPage, hideCurrentPage, disabled, hideFirstAndLastPageButton, label, theme, monochrome, } = this;
|
242
|
-
return (h(Host, { key: '
|
242
|
+
return (h(Host, { key: '4787d5960a8d0742450c667f69fb5bec1b9fd904', class: {
|
243
243
|
[`ic-theme-${theme}`]: theme !== "inherit",
|
244
244
|
["ic-pagination-monochrome"]: !!monochrome,
|
245
|
-
} }, type === "simple" && (h("nav", { key: '
|
245
|
+
} }, type === "simple" && (h("nav", { key: '6e048bd0824217797cac254036ed755da3438e0f', class: {
|
246
246
|
["disabled"]: !!disabled,
|
247
|
-
}, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), h("ic-pagination-item", { key: '
|
247
|
+
}, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), h("ic-pagination-item", { key: 'df77f23f3b194257466323bb5d5948afaa989fd0', theme: this.theme, monochrome: this.monochrome, type: "simple-current", page: currentPage, label: label, class: { ["hide-current-page"]: !!hideCurrentPage }, disabled: disabled }), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (h("nav", { key: '4be33ba10d0b4444e57746408b77e651007f1753', class: {
|
248
248
|
["disabled"]: !!disabled,
|
249
|
-
}, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), this.renderStartItems(), this.startEllipsis && this.renderStartEllipsis(), this.renderMiddleItems(), this.endEllipsis && this.renderEndEllipsis(), this.renderEndItems(), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (h("span", { key: '
|
249
|
+
}, role: "navigation", "aria-label": "Pagination Navigation" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), this.renderStartItems(), this.startEllipsis && this.renderStartEllipsis(), this.renderMiddleItems(), this.endEllipsis && this.renderEndEllipsis(), this.renderEndItems(), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === "complex" && (h("span", { key: 'ef4efbec3670434f55022b9bd15e3218b7fb1546', class: "sr-only", "aria-live": "polite" }, "Page ", this.currentPage))));
|
250
250
|
}
|
251
251
|
static get is() { return "ic-pagination"; }
|
252
252
|
static get encapsulation() { return "shadow"; }
|
@@ -554,7 +554,7 @@ ic-typography.page-selected.light {
|
|
554
554
|
width: 100%;
|
555
555
|
position: absolute;
|
556
556
|
bottom: 0;
|
557
|
-
background-color: var(--ic-action-
|
557
|
+
background-color: var(--ic-action-monochrome);
|
558
558
|
}
|
559
559
|
|
560
560
|
/** DARK STATES **/
|
@@ -576,11 +576,11 @@ ic-typography.dark {
|
|
576
576
|
width: 100%;
|
577
577
|
position: absolute;
|
578
578
|
bottom: 0;
|
579
|
-
background-color: var(--ic-action-dark);
|
579
|
+
background-color: var(--ic-action-monochrome-dark);
|
580
580
|
}
|
581
581
|
|
582
582
|
.disabled {
|
583
|
-
--ic-typography-color: var(--ic-
|
583
|
+
--ic-typography-color: var(--ic-pagination-text-disabled);
|
584
584
|
|
585
585
|
pointer-events: none;
|
586
586
|
cursor: none;
|
@@ -589,6 +589,22 @@ ic-typography.dark {
|
|
589
589
|
user-select: none;
|
590
590
|
}
|
591
591
|
|
592
|
+
.disabled.page ic-typography {
|
593
|
+
--ic-typography-color: var(--ic-pagination-page-number-disabled);
|
594
|
+
}
|
595
|
+
|
596
|
+
.disabled.ellipsis {
|
597
|
+
--ic-typography-color: var(--ic-pagination-ellipsis-disabled);
|
598
|
+
}
|
599
|
+
|
600
|
+
.monochrome .disabled.page {
|
601
|
+
--ic-typography-color: var(--ic-pagination-page-number-monochrome-disabled);
|
602
|
+
}
|
603
|
+
|
604
|
+
.monochrome .disabled.ellipsis {
|
605
|
+
--ic-typography-color: var(--ic-pagination-ellipsis-monochrome-disabled);
|
606
|
+
}
|
607
|
+
|
592
608
|
@media (forced-colors: active) {
|
593
609
|
.selected::after {
|
594
610
|
background-color: Highlight;
|
@@ -38,7 +38,7 @@ export class PaginationItem {
|
|
38
38
|
}
|
39
39
|
render() {
|
40
40
|
const { page, selected, type, disabled, label, capitalizedLabel, monochrome, } = this;
|
41
|
-
return (h("a", { key: '
|
41
|
+
return (h("a", { key: '96b78185d8162b10bbd8d728f87ff50df44f9b79', class: { ["monochrome"]: !!monochrome } }, type === "ellipsis" ? (h("div", { class: {
|
42
42
|
["item-container"]: true,
|
43
43
|
["ellipsis"]: true,
|
44
44
|
["disabled"]: !!disabled,
|
@@ -163,6 +163,7 @@ export class PopoverMenu {
|
|
163
163
|
this.el.getAttribute(this.ARIA_LABEL) === null) {
|
164
164
|
console.error(`No aria-label specified for popover menu component - aria-label required`);
|
165
165
|
}
|
166
|
+
this.watchOpenHandler();
|
166
167
|
}
|
167
168
|
componentWillRender() {
|
168
169
|
this.anchorEl = this.findAnchorEl(this.anchor);
|
@@ -262,17 +263,17 @@ export class PopoverMenu {
|
|
262
263
|
}
|
263
264
|
}
|
264
265
|
render() {
|
265
|
-
return (h(Host, { key: '
|
266
|
+
return (h(Host, { key: 'cc25af9952d51db883220b52946da6c645a87bd1', class: {
|
266
267
|
["ic-popover-menu-open"]: !!this.open,
|
267
268
|
[`ic-theme-${this.theme}`]: this.theme !== "inherit",
|
268
|
-
} }, h("div", { key: '
|
269
|
+
} }, h("div", { key: '19757297884b585b4f8fe182237757aa7c36f696', id: this.parentPopover === undefined
|
269
270
|
? `ic-popover-submenu-${this.submenuId}`
|
270
271
|
: "", class: {
|
271
272
|
menu: true,
|
272
|
-
} }, h("span", { key: '
|
273
|
+
} }, h("span", { key: '8a6facb49d5c5c3d6eec3107bfcf9ae625d4dfc9', class: {
|
273
274
|
"opening-from-parent": this.openingFromParent,
|
274
275
|
"opening-from-child": this.openingFromChild,
|
275
|
-
} }, isPropDefined(this.submenuId) && (h("span", { key: '
|
276
|
+
} }, isPropDefined(this.submenuId) && (h("span", { key: 'c64495ca5447f34b430140bf8fd9f75dbd89ed68' }, h("span", { key: 'cdbcf7e3ddf674e941534e6742c3679257f5a88e', role: "menu" }, h("ic-menu-item", { key: '9d70b7621f9173af0000591a5e8cc328c352f849', class: "ic-popover-submenu-back-button", ref: (el) => (this.backButton = el), label: "Back", onClick: this.handleBackButtonClick, id: `ic-popover-submenu-back-button-${this.submenuLevel}` }, h("svg", { key: '7bc91d66855037df4cf642b7dc112186dff28cf8', slot: "icon", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: "submenu-back-icon" }, h("path", { key: '72bb21d3a27e3093cdd8544574a9be3f3876bd27', d: "M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z", fill: "currentColor" })))), h("ic-typography", { key: '9a09923d96579833195956fc92951ff5ebcc1b05', variant: "subtitle-small", class: "parent-label" }, this.parentLabel))), h("ul", { key: '4c0490b94abbb32c9be46c05a1b72c83f3835696', class: "button", "aria-label": this.getMenuAriaLabel(), role: "menu" }, h("slot", { key: 'ab1e92b234c4c1e41bccb7824db02f3d022566c8' }))))));
|
276
277
|
}
|
277
278
|
static get is() { return "ic-popover-menu"; }
|
278
279
|
static get encapsulation() { return "shadow"; }
|