@ukic/web-components 3.21.0 → 3.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/{helpers-3a796e7a.js → helpers-81cd6930.js} +3 -16
- package/dist/cjs/helpers-81cd6930.js.map +1 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
- package/dist/cjs/ic-action-chip.cjs.entry.js +7 -3
- package/dist/cjs/ic-action-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js +1 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +5 -3
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card-horizontal.cjs.entry.js +1 -1
- package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +5 -5
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +7 -3
- package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-classification-banner.cjs.entry.js +13 -5
- package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +1 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +212 -80
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
- package/dist/cjs/ic-link.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
- package/dist/cjs/ic-pagination-bar.cjs.entry.js +389 -0
- package/dist/cjs/ic-pagination-bar.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-pagination_3.cjs.entry.js +1412 -0
- package/dist/cjs/ic-pagination_3.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
- package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +11 -11
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
- package/dist/cjs/ic-side-navigation.cjs.entry.js +18 -9
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
- package/dist/cjs/ic-step.cjs.entry.js +14 -14
- package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
- package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +5 -5
- package/dist/cjs/ic-tab-context.cjs.entry.js +1 -2
- package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
- package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab.cjs.entry.js +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +2 -2
- package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +8 -7
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
- package/dist/cjs/ic-toggle-button.cjs.entry.js +3 -3
- package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +1 -1
- package/dist/cjs/index-d337cd8a.js +12 -16
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -1
- package/dist/collection/components/ic-action-chip/ic-action-chip.css +15 -2
- package/dist/collection/components/ic-action-chip/ic-action-chip.js +5 -1
- package/dist/collection/components/ic-action-chip/ic-action-chip.js.map +1 -1
- package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -5
- package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
- package/dist/collection/components/ic-chip/ic-chip.css +15 -3
- package/dist/collection/components/ic-chip/ic-chip.js +5 -1
- package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +33 -5
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.js.map +1 -1
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.stories.js +32 -0
- package/dist/collection/components/ic-menu/ic-menu.css +6 -1
- package/dist/collection/components/ic-menu/ic-menu.js +184 -53
- package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.css +104 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +895 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.stories.js +215 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js +2 -0
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js.map +1 -0
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
- package/dist/collection/components/ic-search-bar/ic-search-bar.js +10 -11
- package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
- package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
- package/dist/collection/components/ic-select/ic-select.css +1 -2
- package/dist/collection/components/ic-select/ic-select.js +414 -589
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select.types.js +2 -0
- package/dist/collection/components/ic-select/ic-select.types.js.map +1 -0
- package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +26 -21
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +18 -9
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
- package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
- package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
- package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
- package/dist/collection/components/ic-step/ic-step.js +13 -13
- package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
- package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
- package/dist/collection/components/ic-switch/ic-switch.js +4 -4
- package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -2
- package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +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-theme/ic-theme.js +1 -1
- package/dist/collection/components/ic-toast/ic-toast.js +7 -6
- 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.js +2 -2
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
- package/dist/collection/components/ic-tooltip/ic-tooltip.js +21 -2
- package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
- package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +32 -0
- package/dist/collection/utils/helpers.js +2 -15
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/components/helpers.js +3 -16
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ic-action-chip.js +6 -2
- package/dist/components/ic-action-chip.js.map +1 -1
- package/dist/components/ic-card-vertical.js.map +1 -1
- package/dist/components/ic-checkbox.js +4 -4
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-chip.js +6 -2
- package/dist/components/ic-chip.js.map +1 -1
- package/dist/components/ic-classification-banner.js +14 -5
- package/dist/components/ic-classification-banner.js.map +1 -1
- package/dist/components/ic-menu2.js +213 -79
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-page-header.js.map +1 -1
- package/dist/components/ic-pagination-bar.d.ts +11 -0
- package/dist/components/ic-pagination-bar.js +523 -0
- package/dist/components/ic-pagination-bar.js.map +1 -0
- package/dist/components/ic-pagination.js +1 -375
- package/dist/components/ic-pagination.js.map +1 -1
- package/dist/{esm/ic-pagination.entry.js → components/ic-pagination2.js} +82 -11
- package/dist/components/ic-pagination2.js.map +1 -0
- package/dist/components/ic-popover-menu.js +4 -4
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +11 -11
- 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 +1 -994
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-select2.js +804 -0
- package/dist/components/ic-select2.js.map +1 -0
- package/dist/components/ic-side-navigation.js +18 -9
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.js +2 -2
- package/dist/components/ic-skip-link.js +2 -2
- package/dist/components/ic-status-tag.js +2 -2
- package/dist/components/ic-step.js +13 -13
- package/dist/components/ic-stepper.js +2 -2
- package/dist/components/ic-stepper.js.map +1 -1
- package/dist/components/ic-switch.js +4 -4
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-tab-context.js +1 -2
- package/dist/components/ic-tab-context.js.map +1 -1
- package/dist/components/ic-tab-group.js +2 -2
- package/dist/components/ic-tab-panel.js +2 -2
- package/dist/components/ic-text-field.js +1 -528
- package/dist/components/ic-text-field.js.map +1 -1
- package/dist/{esm/ic-text-field.entry.js → components/ic-text-field2.js} +114 -11
- package/dist/components/ic-text-field2.js.map +1 -0
- package/dist/components/ic-theme.js +1 -1
- package/dist/components/ic-toast-region.js +1 -1
- package/dist/components/ic-toast.js +7 -6
- 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 +2 -2
- package/dist/components/ic-tooltip2.js +5 -3
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-0a24c536.entry.js → p-05fd2707.entry.js} +2 -2
- package/dist/core/{p-85e15d01.entry.js → p-09505807.entry.js} +2 -2
- package/dist/core/{p-96bc7d24.entry.js → p-09caf7ed.entry.js} +2 -2
- package/dist/core/p-09caf7ed.entry.js.map +1 -0
- package/dist/core/p-0fb7f915.entry.js +2 -0
- package/dist/core/p-0fb7f915.entry.js.map +1 -0
- package/dist/core/{p-41a5da12.entry.js → p-1b81ec88.entry.js} +2 -2
- package/dist/core/p-1b81ec88.entry.js.map +1 -0
- package/dist/core/{p-99951365.entry.js → p-2691cc80.entry.js} +2 -2
- package/dist/core/{p-94916588.entry.js → p-2a124daf.entry.js} +2 -2
- package/dist/core/{p-04c77b2d.entry.js → p-2b87c592.entry.js} +2 -2
- package/dist/core/{p-4aa56990.entry.js → p-2bd80913.entry.js} +2 -2
- package/dist/core/{p-aed1c7e7.entry.js → p-347cc084.entry.js} +2 -2
- package/dist/core/p-393af2bc.entry.js +2 -0
- package/dist/core/p-393af2bc.entry.js.map +1 -0
- package/dist/core/{p-a3dea729.entry.js → p-3aed13ba.entry.js} +2 -2
- package/dist/core/{p-8da90b72.entry.js → p-46fd555f.entry.js} +2 -2
- package/dist/core/{p-43cc0f1d.entry.js → p-48a628f0.entry.js} +2 -2
- package/dist/core/{p-9a4e067f.entry.js → p-4f56acff.entry.js} +2 -2
- package/dist/core/{p-3021290f.entry.js → p-506d428a.entry.js} +2 -2
- package/dist/core/{p-a1b2f483.entry.js → p-50dca790.entry.js} +2 -2
- package/dist/core/p-53ab3c0f.entry.js +2 -0
- package/dist/core/p-53ab3c0f.entry.js.map +1 -0
- package/dist/core/{p-feef7c2c.entry.js → p-56de4f4b.entry.js} +2 -2
- package/dist/core/{p-b4e322fe.entry.js → p-5900cb65.entry.js} +2 -2
- package/dist/core/{p-78a54069.entry.js → p-5976de6e.entry.js} +2 -2
- package/dist/core/{p-2af89564.entry.js → p-61d79fc6.entry.js} +2 -2
- package/dist/core/{p-2af89564.entry.js.map → p-61d79fc6.entry.js.map} +1 -1
- package/dist/core/p-659d048d.entry.js +2 -0
- package/dist/core/{p-1edf2689.entry.js → p-67de1290.entry.js} +2 -2
- package/dist/core/p-6b4ec95f.entry.js +3 -0
- package/dist/core/p-6b4ec95f.entry.js.map +1 -0
- package/dist/core/{p-f700b759.entry.js → p-73043f57.entry.js} +2 -2
- package/dist/core/{p-7b8e5926.entry.js → p-735d3096.entry.js} +2 -2
- package/dist/core/{p-07075461.entry.js → p-7b538fd1.entry.js} +2 -2
- package/dist/core/{p-cfd43558.entry.js → p-80d85403.entry.js} +2 -2
- package/dist/core/{p-7f279c8a.entry.js → p-83578f1d.entry.js} +2 -2
- package/dist/core/{p-7f279c8a.entry.js.map → p-83578f1d.entry.js.map} +1 -1
- package/dist/core/{p-b8c0c142.entry.js → p-880f7548.entry.js} +2 -2
- package/dist/core/p-880f7548.entry.js.map +1 -0
- package/dist/core/{p-79949920.entry.js → p-8a833e82.entry.js} +2 -2
- package/dist/core/{p-0aba9e31.entry.js → p-90678e67.entry.js} +2 -2
- package/dist/core/{p-a851eb65.entry.js → p-9502fb86.entry.js} +2 -2
- package/dist/core/{p-2ca7f050.entry.js → p-99433296.entry.js} +2 -2
- package/dist/core/p-99433296.entry.js.map +1 -0
- package/dist/core/{p-f6de08fb.entry.js → p-9c2b2cb9.entry.js} +2 -2
- package/dist/core/{p-949d08d3.entry.js → p-9cb83a2e.entry.js} +2 -2
- package/dist/core/{p-f0ecb80b.entry.js → p-a08d6b46.entry.js} +2 -2
- package/dist/core/{p-9057a186.entry.js → p-a2953aad.entry.js} +2 -2
- package/dist/core/p-a2953aad.entry.js.map +1 -0
- package/dist/core/p-a321feee.entry.js +2 -0
- package/dist/core/p-a321feee.entry.js.map +1 -0
- package/dist/core/{p-208f470f.entry.js → p-a780a34b.entry.js} +2 -2
- package/dist/core/{p-387b7bca.entry.js → p-aad03a3c.entry.js} +2 -2
- package/dist/core/{p-ec14c783.entry.js → p-aaf4e367.entry.js} +2 -2
- package/dist/core/{p-707ae6e9.entry.js → p-b52c44eb.entry.js} +2 -2
- package/dist/core/{p-716e7eaf.entry.js → p-b777f0a1.entry.js} +2 -2
- package/dist/core/p-b777f0a1.entry.js.map +1 -0
- package/dist/core/p-b77b1e1f.js +2 -0
- package/dist/core/p-b77b1e1f.js.map +1 -0
- package/dist/core/{p-780babc0.entry.js → p-b997ad5e.entry.js} +2 -2
- package/dist/core/{p-a0af1b0a.entry.js → p-bb7652cd.entry.js} +2 -2
- package/dist/core/{p-ded4cd76.entry.js → p-cbca04bb.entry.js} +2 -2
- package/dist/core/{p-99687bce.entry.js → p-cc64e5ef.entry.js} +2 -2
- package/dist/core/{p-812c5e61.entry.js → p-cfbacca1.entry.js} +2 -2
- package/dist/core/{p-0da2caa2.entry.js → p-daec7e69.entry.js} +2 -2
- package/dist/core/{p-1590fd69.entry.js → p-e7767c0d.entry.js} +2 -2
- package/dist/core/p-e938eb31.entry.js +2 -0
- package/dist/core/p-e938eb31.entry.js.map +1 -0
- package/dist/core/{p-dce11b9d.entry.js → p-ea7a3d30.entry.js} +2 -2
- package/dist/core/{p-880afd4b.entry.js → p-ebd688b9.entry.js} +2 -2
- package/dist/core/p-ebd688b9.entry.js.map +1 -0
- package/dist/core/{p-a674b13b.entry.js → p-ef70ea50.entry.js} +2 -2
- package/dist/core/{p-d25d0aad.entry.js → p-f64996f1.entry.js} +2 -2
- package/dist/core/{p-db17a793.entry.js → p-f661ba76.entry.js} +2 -2
- package/dist/core/{p-a03bb31c.entry.js → p-f84ac9c6.entry.js} +2 -2
- package/dist/core/{p-f3406b42.entry.js → p-fb9376f0.entry.js} +2 -2
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-0f85537f.js → helpers-66681c73.js} +4 -17
- package/dist/esm/helpers-66681c73.js.map +1 -0
- package/dist/esm/ic-accordion-group.entry.js +1 -1
- package/dist/esm/ic-accordion.entry.js +1 -1
- package/dist/esm/ic-action-chip.entry.js +7 -3
- package/dist/esm/ic-action-chip.entry.js.map +1 -1
- package/dist/esm/ic-alert.entry.js +1 -1
- package/dist/esm/ic-back-to-top.entry.js +1 -1
- package/dist/esm/ic-badge.entry.js +1 -1
- package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
- package/dist/esm/ic-breadcrumb.entry.js +1 -1
- package/dist/esm/ic-button_3.entry.js +5 -3
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card-horizontal.entry.js +1 -1
- package/dist/esm/ic-card-vertical.entry.js +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +1 -1
- package/dist/esm/ic-checkbox.entry.js +5 -5
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +7 -3
- package/dist/esm/ic-chip.entry.js.map +1 -1
- package/dist/esm/ic-classification-banner.entry.js +13 -5
- package/dist/esm/ic-classification-banner.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js +1 -1
- package/dist/esm/ic-dialog.entry.js +1 -1
- package/dist/esm/ic-divider.entry.js +1 -1
- package/dist/esm/ic-empty-state.entry.js +1 -1
- package/dist/esm/ic-footer-link-group.entry.js +1 -1
- package/dist/esm/ic-footer-link.entry.js +1 -1
- package/dist/esm/ic-footer.entry.js +1 -1
- package/dist/esm/ic-hero.entry.js +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +212 -80
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +1 -1
- package/dist/esm/ic-link.entry.js +1 -1
- package/dist/esm/ic-menu-group.entry.js +1 -1
- package/dist/esm/ic-menu-item.entry.js +1 -1
- package/dist/esm/ic-navigation-button.entry.js +1 -1
- package/dist/esm/ic-navigation-group.entry.js +1 -1
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +1 -1
- package/dist/esm/ic-page-header.entry.js +1 -1
- package/dist/esm/ic-pagination-bar.entry.js +385 -0
- package/dist/esm/ic-pagination-bar.entry.js.map +1 -0
- package/dist/esm/ic-pagination-item.entry.js +1 -1
- package/dist/esm/ic-pagination_3.entry.js +1406 -0
- package/dist/esm/ic-pagination_3.entry.js.map +1 -0
- package/dist/esm/ic-popover-menu.entry.js +5 -5
- package/dist/esm/ic-radio-group.entry.js +1 -1
- package/dist/esm/ic-radio-option.entry.js +1 -1
- package/dist/esm/ic-search-bar.entry.js +11 -11
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-section-container.entry.js +2 -2
- package/dist/esm/ic-side-navigation.entry.js +18 -9
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-skeleton.entry.js +2 -2
- package/dist/esm/ic-skip-link.entry.js +2 -2
- package/dist/esm/ic-status-tag.entry.js +3 -3
- package/dist/esm/ic-step.entry.js +14 -14
- package/dist/esm/ic-stepper.entry.js +3 -3
- package/dist/esm/ic-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +5 -5
- package/dist/esm/ic-tab-context.entry.js +1 -2
- package/dist/esm/ic-tab-context.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +3 -3
- package/dist/esm/ic-tab-panel.entry.js +2 -2
- package/dist/esm/ic-tab.entry.js +1 -1
- package/dist/esm/ic-theme.entry.js +2 -2
- package/dist/esm/ic-toast-region.entry.js +1 -1
- package/dist/esm/ic-toast.entry.js +8 -7
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button-group.entry.js +3 -3
- package/dist/esm/ic-toggle-button.entry.js +3 -3
- package/dist/esm/ic-top-navigation.entry.js +1 -1
- package/dist/esm/ic-typography.entry.js +1 -1
- package/dist/esm/index-a7a720e7.js +12 -16
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-classification-banner/ic-classification-banner.d.ts +4 -0
- package/dist/types/components/ic-menu/ic-menu.d.ts +11 -1
- package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +162 -0
- package/dist/types/components/ic-pagination-bar/ic-pagination-bar.types.d.ts +8 -0
- package/dist/types/components/ic-select/ic-select.d.ts +53 -80
- package/dist/types/components/ic-select/ic-select.types.d.ts +43 -0
- package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +3 -2
- package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +5 -0
- package/dist/types/components.d.ts +253 -5
- package/dist/types/utils/helpers.d.ts +2 -4
- package/hydrate/index.js +1145 -773
- package/hydrate/index.mjs +1145 -773
- package/package.json +2 -2
- package/vscode-data.json +131 -0
- package/dist/cjs/helpers-3a796e7a.js.map +0 -1
- package/dist/cjs/ic-pagination.cjs.entry.js +0 -312
- package/dist/cjs/ic-pagination.cjs.entry.js.map +0 -1
- package/dist/cjs/ic-select.cjs.entry.js +0 -879
- package/dist/cjs/ic-select.cjs.entry.js.map +0 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +0 -433
- package/dist/cjs/ic-text-field.cjs.entry.js.map +0 -1
- package/dist/core/p-0d7fd892.entry.js +0 -2
- package/dist/core/p-29b61bb5.entry.js +0 -3
- package/dist/core/p-29b61bb5.entry.js.map +0 -1
- package/dist/core/p-2ca7f050.entry.js.map +0 -1
- package/dist/core/p-41a5da12.entry.js.map +0 -1
- package/dist/core/p-4aadabc8.entry.js +0 -2
- package/dist/core/p-4aadabc8.entry.js.map +0 -1
- package/dist/core/p-716e7eaf.entry.js.map +0 -1
- package/dist/core/p-808e1ef5.entry.js +0 -2
- package/dist/core/p-808e1ef5.entry.js.map +0 -1
- package/dist/core/p-880afd4b.entry.js.map +0 -1
- package/dist/core/p-8fe4e0ad.entry.js +0 -2
- package/dist/core/p-8fe4e0ad.entry.js.map +0 -1
- package/dist/core/p-9057a186.entry.js.map +0 -1
- package/dist/core/p-96bc7d24.entry.js.map +0 -1
- package/dist/core/p-b8c0c142.entry.js.map +0 -1
- package/dist/core/p-c5b9519d.entry.js +0 -2
- package/dist/core/p-c5b9519d.entry.js.map +0 -1
- package/dist/core/p-d1730d4d.entry.js +0 -2
- package/dist/core/p-d1730d4d.entry.js.map +0 -1
- package/dist/core/p-dbc8bf0c.js +0 -2
- package/dist/core/p-dbc8bf0c.js.map +0 -1
- package/dist/core/p-fdb587ab.entry.js +0 -2
- package/dist/core/p-fdb587ab.entry.js.map +0 -1
- package/dist/esm/helpers-0f85537f.js.map +0 -1
- package/dist/esm/ic-pagination.entry.js.map +0 -1
- package/dist/esm/ic-select.entry.js +0 -875
- package/dist/esm/ic-select.entry.js.map +0 -1
- package/dist/esm/ic-text-field.entry.js.map +0 -1
- /package/dist/core/{p-0a24c536.entry.js.map → p-05fd2707.entry.js.map} +0 -0
- /package/dist/core/{p-85e15d01.entry.js.map → p-09505807.entry.js.map} +0 -0
- /package/dist/core/{p-99951365.entry.js.map → p-2691cc80.entry.js.map} +0 -0
- /package/dist/core/{p-94916588.entry.js.map → p-2a124daf.entry.js.map} +0 -0
- /package/dist/core/{p-04c77b2d.entry.js.map → p-2b87c592.entry.js.map} +0 -0
- /package/dist/core/{p-4aa56990.entry.js.map → p-2bd80913.entry.js.map} +0 -0
- /package/dist/core/{p-aed1c7e7.entry.js.map → p-347cc084.entry.js.map} +0 -0
- /package/dist/core/{p-a3dea729.entry.js.map → p-3aed13ba.entry.js.map} +0 -0
- /package/dist/core/{p-8da90b72.entry.js.map → p-46fd555f.entry.js.map} +0 -0
- /package/dist/core/{p-43cc0f1d.entry.js.map → p-48a628f0.entry.js.map} +0 -0
- /package/dist/core/{p-9a4e067f.entry.js.map → p-4f56acff.entry.js.map} +0 -0
- /package/dist/core/{p-3021290f.entry.js.map → p-506d428a.entry.js.map} +0 -0
- /package/dist/core/{p-a1b2f483.entry.js.map → p-50dca790.entry.js.map} +0 -0
- /package/dist/core/{p-feef7c2c.entry.js.map → p-56de4f4b.entry.js.map} +0 -0
- /package/dist/core/{p-b4e322fe.entry.js.map → p-5900cb65.entry.js.map} +0 -0
- /package/dist/core/{p-78a54069.entry.js.map → p-5976de6e.entry.js.map} +0 -0
- /package/dist/core/{p-0d7fd892.entry.js.map → p-659d048d.entry.js.map} +0 -0
- /package/dist/core/{p-1edf2689.entry.js.map → p-67de1290.entry.js.map} +0 -0
- /package/dist/core/{p-f700b759.entry.js.map → p-73043f57.entry.js.map} +0 -0
- /package/dist/core/{p-7b8e5926.entry.js.map → p-735d3096.entry.js.map} +0 -0
- /package/dist/core/{p-07075461.entry.js.map → p-7b538fd1.entry.js.map} +0 -0
- /package/dist/core/{p-cfd43558.entry.js.map → p-80d85403.entry.js.map} +0 -0
- /package/dist/core/{p-79949920.entry.js.map → p-8a833e82.entry.js.map} +0 -0
- /package/dist/core/{p-0aba9e31.entry.js.map → p-90678e67.entry.js.map} +0 -0
- /package/dist/core/{p-a851eb65.entry.js.map → p-9502fb86.entry.js.map} +0 -0
- /package/dist/core/{p-f6de08fb.entry.js.map → p-9c2b2cb9.entry.js.map} +0 -0
- /package/dist/core/{p-949d08d3.entry.js.map → p-9cb83a2e.entry.js.map} +0 -0
- /package/dist/core/{p-f0ecb80b.entry.js.map → p-a08d6b46.entry.js.map} +0 -0
- /package/dist/core/{p-208f470f.entry.js.map → p-a780a34b.entry.js.map} +0 -0
- /package/dist/core/{p-387b7bca.entry.js.map → p-aad03a3c.entry.js.map} +0 -0
- /package/dist/core/{p-ec14c783.entry.js.map → p-aaf4e367.entry.js.map} +0 -0
- /package/dist/core/{p-707ae6e9.entry.js.map → p-b52c44eb.entry.js.map} +0 -0
- /package/dist/core/{p-780babc0.entry.js.map → p-b997ad5e.entry.js.map} +0 -0
- /package/dist/core/{p-a0af1b0a.entry.js.map → p-bb7652cd.entry.js.map} +0 -0
- /package/dist/core/{p-ded4cd76.entry.js.map → p-cbca04bb.entry.js.map} +0 -0
- /package/dist/core/{p-99687bce.entry.js.map → p-cc64e5ef.entry.js.map} +0 -0
- /package/dist/core/{p-812c5e61.entry.js.map → p-cfbacca1.entry.js.map} +0 -0
- /package/dist/core/{p-0da2caa2.entry.js.map → p-daec7e69.entry.js.map} +0 -0
- /package/dist/core/{p-1590fd69.entry.js.map → p-e7767c0d.entry.js.map} +0 -0
- /package/dist/core/{p-dce11b9d.entry.js.map → p-ea7a3d30.entry.js.map} +0 -0
- /package/dist/core/{p-a674b13b.entry.js.map → p-ef70ea50.entry.js.map} +0 -0
- /package/dist/core/{p-d25d0aad.entry.js.map → p-f64996f1.entry.js.map} +0 -0
- /package/dist/core/{p-db17a793.entry.js.map → p-f661ba76.entry.js.map} +0 -0
- /package/dist/core/{p-a03bb31c.entry.js.map → p-f84ac9c6.entry.js.map} +0 -0
- /package/dist/core/{p-f3406b42.entry.js.map → p-fb9376f0.entry.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["icPaginationCss","IcPaginationStyle0","Pagination","constructor","hostRef","this","endEllipsis","endItems","midItems","startEllipsis","startItems","accessibleLabel","adjacentPageCount","boundaryPageCount","defaultPage","disabled","hideCurrentPage","hideFirstAndLastPageButton","label","monochrome","theme","type","currentPage","handleClickFirst","icPageChange","emit","value","handleClickPrevious","handleClickNext","handleClickLast","pages","firstButton","h","id","onClick","class","variant","innerHTML","paginationFirstLast","previousButton","paginationNextPrevious","nextButton","lastButton","renderStartEllipsis","renderEndEllipsis","renderStartItems","map","page","selected","renderEndItems","renderMiddleItems","watchAdjacentPageCountHandler","watchBoundaryPageCountHandler","watchDisabledHandler","removeDisabledFalse","el","watchNumberPagesHandler","watchPageChangeHandler","watchTypeHandler","startItemCount","endStart","midStart","midEnd","i","push","numItems","componentWillLoad","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","icPageChangeHandler","ev","shadow","_a","document","activeElement","shadowRoot","activeEl","detail","some","btn","_b","querySelector","setTimeout","focus","_c","paginationItemClickHandler","setCurrentPage","console","error","render","Host","key","role","icSelectCss","IcSelectStyle0","inputIds","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","Select","inputId","menuId","inheritedAttributes","hostMutationObserver","timeoutTimer","hasTimedOut","initialRender","pressedCharacters","hasError","searchableSelectInputValue","selectButtonAriaLiveText","selectInputAriaLiveText","disableAutoFiltering","emptyOptionListText","fullWidth","helperText","hideLabel","includeDescriptionsInSearch","includeGroupTitlesInSearch","loadingErrorLabel","loadingLabel","multiple","name","placeholder","readonly","required","searchable","searchMatchPosition","selectOnEnter","showClearButton","size","validationAriaLive","validationStatus","validationText","useNativeSelectOnMobile","loading","options","flatOptions","debounce","currDebounce","initialValue","open","getValidatedValue","validValues","opt","length","arr","Array","isArray","filtered","filter","v","includes","getFilteredOptions","searchString","search","toLowerCase","match","text","method","startsWith","unflattenOptions","option","group","description","_d","getOptions","timedOut","getFlatOptions","flatMap","item","children","child","Object","assign","groupMap","Map","result","get","set","rest","__rest","getLabelFromValue","find","getLabelString","Boolean","join","handleClick","event","menu","handleClickOpen","handleExpandIconMouseDown","preventDefault","searchableSelectElement","handleBlur","relatedTarget","target","contains","clearButton","handleFocusIndicatorDisplay","icBlur","handleTimeoutBlur","handleFocus","icFocus","handleClear","clearTimer","icClear","setFocus","setTextColor","nativeSelectElement","className","selectedIndex","handleNativeSelectChange","icOptionSelect","icChange","focusIndicator","classList","add","remove","handleKeyDown","handleMenuKeyDown","handleKeyboardOpen","test","handleCharacterKeyDown","window","clearTimeout","characterKeyPressTimer","filteredOptions","firstOption","handleNativeSelectKeyDown","handleSelectChange","valueArray","index","indexOf","splice","icOptionDeselect","handleSelectAllChange","allSelectableValues","select","forEach","handleFormReset","hiddenInputValue","handleRetry","icRetryLoad","handleSearchableSelectInput","updateSearchableSelectResultAriaLive","debounceIcInput","icInput","hostMutationCallback","mutationList","forceComponentUpdate","attributeName","addedNodes","removedNodes","attribute","getAttribute","checkSlotInChildMutations","forceUpdate","updateSelectButtonAriaLive","value_label","updateAriaActiveDescendant","ariaActiveDescendant","optionId","handleMenuChange","getDeduplicatedOptions","seen","Set","has","warn","renderNativeOption","loadingHandler","newValue","timeout","optionsChangedHandler","flat","debounceChangedHandler","valueChangedHandler","validated","isEqual","every","openChangedHandler","icOpen","icClose","undefined","selectElement","componentDidRender","disconnectedCallback","removeFormResetListener","disconnect","MutationObserver","observe","attributes","childList","addFormResetListener","form","hasValue","hasInput","isClearable","showValidation","invalid","IcInformationStatus","Error","describedBy","getInputDescribedByText","trim","menuOptions","noOptions","renderHiddenInput","ClearButton","ref","Clear","onBlur","NativeSelect","onChange","onFocus","onKeyDown","SelectButton","Expand","SelectInput","autocomplete","onInput","onMouseDown","ReadOnly","for","slot","anchorEl","isSlotUsed","isMobileOrTablet","inputEl","allowMenuFocus","inputLabel","onMenuStateChange","onMenuOptionSelect","onMenuOptionSelectAll","onTimeoutBlur","onMenuOptionId","parentEl","activationType","onRetryButtonClicked","closeOnSelect","multiSelect","searchableSelect","ariaLiveMode","status","message","icTextFieldCss","IcTextFieldStyle0","TextField","numChars","maxCharactersReached","maxCharactersWarning","minCharactersUnattained","maxValueExceeded","minValueUnattained","isFocussed","autocapitalize","autocorrect","autofocus","hideCharCount","hiddenInput","inputmode","maxCharacters","maxCharactersMessage","maxMessage","max","minCharacters","minCharactersMessage","minMessage","min","resize","rows","spellcheck","truncateValue","validationInline","validationInlineInternal","checkChildHydration","clearInterval","interval","getNumberOfCharacters","getMaxValueExceeded","Number","getMaxCharactersReached","removeEventListener","onWheel","addEventListener","onTextAreaScroll","icScroll","blur","hasStatus","showValidationMargin","maxNumChars","emptyString","isEmptyString","valueOutsideRange","charsOutsideRange","debounceChanged","debounceEvent","watchValueHandler","substring","connectedCallback","inheritAttributes","getValidationText","setInterval","icKeydown","cursorPosition","selectionStart","selectionEnd","ctrlKey","IGNORED_KEYBOARD_CHARACTERS","ariaExpanded","ariaOwns","disabledMode","currentStatus","Warning","currentValidationText","messageAriaLive","showStatusText","Success","multiline","hiddenCharCountDescId","charsRemaining","remainingCharCountDescId","remainingCharCountDesc","disabledText","showLeftIcon","removeHiddenInput","multiLine","maxlength","minlength","onScroll","hidden"],"sources":["src/components/ic-pagination/ic-pagination.css?tag=ic-pagination&encapsulation=shadow","src/components/ic-pagination/ic-pagination.tsx","src/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","src/components/ic-select/ic-select.tsx","src/components/ic-text-field/ic-text-field.css?tag=ic-text-field&encapsulation=shadow","src/components/ic-text-field/ic-text-field.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\nnav {\n width: 100%;\n display: flex;\n flex-flow: row wrap;\n justify-content: flex-start;\n align-items: center;\n}\n\nic-button {\n cursor: pointer;\n}\n\nic-button.next-previous {\n --icon-width: var(--ic-space-xs);\n --icon-height: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n\n padding: 0 var(--ic-space-xxs) 0 var(--ic-space-xxxs);\n}\n\nic-button.first-last {\n --icon-width: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n --icon-height: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n}\n\nic-button.first-last::part(button),\nic-button.next-previous::part(button) {\n color: var(--ic-pagination-chevron);\n}\n\n:host(.ic-pagination-monochrome) ic-button.first-last::part(button),\n:host(.ic-pagination-monochrome) ic-button.next-previous::part(button) {\n color: var(--ic-pagination-chevron-monochrome);\n}\n\nic-button.ic-button-disabled.first-last::part(button),\nic-button.ic-button-disabled.next-previous::part(button),\n:host(.ic-pagination-monochrome)\n ic-button.ic-button-disabled.first-last::part(button),\n:host(.ic-pagination-monochrome)\n ic-button.ic-button-disabled.next-previous::part(button) {\n color: var(--ic-pagination-chevron-disabled);\n}\n\n.disabled {\n color: var(--ic-color-text-disabled-mid);\n pointer-events: none;\n cursor: none;\n user-select: none;\n}\n\n.hide-current-page {\n display: none;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n.sr-only:dir(rtl) {\n right: -9999px;\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Listen,\n State,\n Watch,\n Event,\n EventEmitter,\n Method,\n} from \"@stencil/core\";\nimport paginationNextPrevious from \"../../assets/pagination-next-previous.svg\";\nimport paginationFirstLast from \"../../assets/pagination-first-last.svg\";\nimport { IcThemeMode } from \"../../utils/types\";\nimport { IcPaginationTypes, IcChangeEventDetail } from \"./ic-pagination.types\";\nimport {\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-pagination\",\n styleUrl: \"ic-pagination.css\",\n shadow: true,\n})\nexport class Pagination {\n @Element() el: HTMLIcPaginationElement;\n\n @State() endEllipsis: boolean = false;\n @State() endItems: number[] = [];\n @State() midItems: number[] = [];\n @State() startEllipsis: boolean = false;\n @State() startItems: number[] = [];\n\n /**\n * The accessible label of the pagination component to provide context for screen reader users.\n */\n @Prop() accessibleLabel?: string = \"Pagination Navigation\";\n\n /**\n * The number of pages displayed adjacent to the current page when using 'complex' type pagination. Accepted values are 0, 1 & 2.\n */\n @Prop({ mutable: true }) adjacentPageCount?: number = 1;\n\n @Watch(\"adjacentPageCount\")\n watchAdjacentPageCountHandler(): void {\n if (this.adjacentPageCount! > 2) {\n this.adjacentPageCount = 2;\n }\n }\n\n /**\n * The number of pages displayed as boundary items to the current page when using 'complex' type pagination. Accepted values are 0, 1 & 2.\n */\n @Prop({ mutable: true }) boundaryPageCount?: number = 1;\n\n @Watch(\"boundaryPageCount\")\n watchBoundaryPageCountHandler(): void {\n if (this.boundaryPageCount! > 2) {\n this.boundaryPageCount = 2;\n }\n }\n\n /**\n * The default page to display.\n */\n @Prop() defaultPage?: number = 1;\n\n /**\n * If `true`, the pagination will not allow interaction.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the current page of the simple pagination will not be displayed.\n */\n @Prop() hideCurrentPage?: boolean = false;\n\n /**\n * If `true`, the first and last page buttons will not be displayed.\n */\n @Prop() hideFirstAndLastPageButton?: boolean = false;\n\n /**\n * The label for the pagination item (applicable when simple pagination is being used).\n */\n @Prop() label?: string = \"Page\";\n\n /**\n * If `true`, the pagination will display as black in the light theme, and white in dark theme.\n */\n @Prop() monochrome?: boolean = false;\n\n /**\n * The total number of pages.\n */\n @Prop() pages!: number;\n\n @Watch(\"pages\")\n watchNumberPagesHandler(): void {\n this.watchPageChangeHandler();\n }\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 type of pagination to be used.\n */\n @Prop() type?: IcPaginationTypes = \"simple\";\n\n @Watch(\"type\")\n watchTypeHandler(): void {\n this.watchPageChangeHandler();\n }\n\n /**\n * The current page displayed by the pagination.\n */\n @Prop({ mutable: true }) currentPage?: number = this.defaultPage;\n\n @Watch(\"currentPage\")\n watchPageChangeHandler(): void {\n if (this.type === \"simple\") {\n return;\n }\n\n this.startEllipsis = false;\n this.endEllipsis = false;\n this.startItems = [];\n this.endItems = [];\n this.midItems = [];\n\n const startItems = [];\n let startItemCount = 0;\n const endItems = [];\n let endStart = this.pages;\n const midItems = [];\n let midStart;\n let midEnd;\n let startEllipsis = false;\n let endEllipsis = false;\n\n if (\n this.pages <=\n this.boundaryPageCount! * 2 + this.adjacentPageCount! * 2 + 3\n ) {\n this.startEllipsis = false;\n this.endEllipsis = false;\n for (let i = 1; i <= this.pages; i++) {\n startItems.push(i);\n }\n this.startItems = startItems;\n return;\n }\n\n startItemCount = this.boundaryPageCount === 0 ? 1 : this.boundaryPageCount!;\n endStart =\n this.boundaryPageCount === 0\n ? this.pages\n : this.pages - this.boundaryPageCount! + 1;\n\n if (\n this.currentPage! <=\n this.adjacentPageCount! + this.boundaryPageCount! + 2\n ) {\n startEllipsis = false;\n endEllipsis = true;\n\n let numItems = 2 * this.adjacentPageCount! + 1;\n if (this.boundaryPageCount === 0) {\n numItems--;\n }\n midStart = startItemCount + 1;\n midEnd = midStart + numItems;\n } else {\n startEllipsis = true;\n if (\n this.currentPage! >\n this.pages - (this.adjacentPageCount! + this.boundaryPageCount! + 2)\n ) {\n let numItems = 2 * this.adjacentPageCount! + 1;\n if (this.boundaryPageCount === 0) {\n numItems--;\n }\n midEnd =\n this.boundaryPageCount === 0\n ? this.pages - 1\n : this.pages - this.boundaryPageCount!;\n midStart = midEnd - numItems;\n } else {\n endEllipsis = true;\n midStart = this.currentPage! - this.adjacentPageCount!;\n midEnd = this.currentPage! + this.adjacentPageCount!;\n }\n }\n\n //create array of start items\n if (\n this.boundaryPageCount! > 0 ||\n (this.boundaryPageCount === 0 && startEllipsis === false)\n ) {\n for (let i = 1; i <= startItemCount; i++) {\n startItems.push(i);\n }\n }\n\n //create array of end items\n if (\n this.boundaryPageCount! > 0 ||\n (this.boundaryPageCount === 0 && endEllipsis === false)\n ) {\n for (let i = endStart; i <= this.pages; i++) {\n endItems.push(i);\n }\n }\n\n //create array of mid items\n for (let i = midStart; i <= midEnd; i++) {\n midItems.push(i);\n }\n\n this.startEllipsis = startEllipsis;\n this.endEllipsis = endEllipsis;\n this.startItems = startItems;\n this.endItems = endItems;\n this.midItems = midItems;\n }\n\n /**\n * Emitted when a page is selected.\n */\n @Event() icPageChange: EventEmitter<IcChangeEventDetail>;\n\n componentWillLoad(): void {\n this.watchPageChangeHandler();\n this.watchBoundaryPageCountHandler();\n this.watchAdjacentPageCountHandler();\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.pages, propName: \"pages\" }],\n \"Pagination\"\n );\n }\n\n /**\n * Prevents focus lingering on a disabled element. If the currently\n * focused element is one of the back buttons (and we reach the first page),\n * move focus to \"next\" button, and vice versa.\n * @param ev\n */\n @Listen(\"icPageChange\")\n icPageChangeHandler(ev: CustomEvent<IcChangeEventDetail>) {\n const shadow = document.activeElement?.shadowRoot;\n\n const activeEl = shadow ? shadow.activeElement : document.activeElement;\n if (!shadow || !activeEl) {\n return;\n }\n\n if (\n ev.detail.value === 1 &&\n [\"first-page-button\", \"previous-page-button\"].some(\n (id) => id === activeEl?.id\n )\n ) {\n const btn = (\n shadow.querySelector(\"#next-page-button\") as HTMLElement\n ).shadowRoot?.querySelector(\"button\");\n // When navigating from firstPage->lastPage or vice versa, the to-be-selected element will be disabled. wait a tick so that it can receive focus.\n setTimeout(() => btn?.focus(), 10);\n } else if (\n ev.detail.value === this.pages &&\n [\"last-page-button\", \"next-page-button\"].some((id) => id === activeEl?.id)\n ) {\n const btn = (\n shadow!.querySelector(\"#previous-page-button\") as HTMLElement\n ).shadowRoot?.querySelector(\"button\");\n setTimeout(() => btn?.focus(), 10);\n }\n }\n\n @Listen(\"paginationItemClick\")\n paginationItemClickHandler(ev: CustomEvent): void {\n const page = ev.detail.page;\n this.currentPage = page;\n this.icPageChange.emit({ value: this.currentPage! });\n }\n\n /**\n * Sets the currently displayed page.\n * @param {number} page The page number to set as the current page\n */\n @Method()\n async setCurrentPage(page: number): Promise<void> {\n if (typeof page === \"number\" && page > 0 && page <= this.pages) {\n this.currentPage = page;\n } else {\n console.error(\n \"Current page must be a number greater than zero but less than or equal to the total number of pages\"\n );\n }\n }\n\n private handleClickFirst = () => {\n this.currentPage = 1;\n this.icPageChange.emit({ value: this.currentPage });\n };\n\n private handleClickPrevious = (): void => {\n this.currentPage!--;\n this.icPageChange.emit({ value: this.currentPage! });\n };\n\n private handleClickNext = (): void => {\n this.currentPage!++;\n this.icPageChange.emit({ value: this.currentPage! });\n };\n\n private handleClickLast = (): void => {\n this.currentPage = this.pages;\n this.icPageChange.emit({ value: this.currentPage });\n };\n\n // button rendering abstracted from component render methods for clarity\n private firstButton = () => {\n return (\n <ic-button\n id=\"first-page-button\"\n aria-label=\"Go to first page\"\n theme={this.theme}\n onClick={this.handleClickFirst}\n class=\"page-button first-last\"\n disabled={this.currentPage === 1 || this.disabled}\n variant=\"icon-tertiary\"\n monochrome={this.theme == \"light\" || this.theme == \"dark\"}\n innerHTML={paginationFirstLast}\n />\n );\n };\n\n private previousButton = () => {\n return (\n <ic-button\n id=\"previous-page-button\"\n aria-label=\"Go to previous page\"\n theme={this.theme}\n onClick={this.handleClickPrevious}\n class=\"page-button next-previous flip\"\n disabled={this.currentPage === 1 || this.disabled}\n variant=\"icon-tertiary\"\n monochrome={this.theme == \"light\" || this.theme == \"dark\"}\n innerHTML={paginationNextPrevious}\n />\n );\n };\n\n private nextButton = () => {\n return (\n <ic-button\n id=\"next-page-button\"\n aria-label=\"Go to next page\"\n theme={this.theme}\n onClick={this.handleClickNext}\n class=\"page-button next-previous\"\n disabled={this.currentPage === this.pages || this.disabled}\n variant=\"icon-tertiary\"\n monochrome={this.theme == \"light\" || this.theme == \"dark\"}\n innerHTML={paginationNextPrevious}\n />\n );\n };\n\n private lastButton = () => {\n return (\n <ic-button\n id=\"last-page-button\"\n aria-label=\"Go to last page\"\n theme={this.theme}\n onClick={this.handleClickLast}\n class=\"page-button first-last flip\"\n disabled={this.currentPage === this.pages || this.disabled}\n variant=\"icon-tertiary\"\n monochrome={this.theme == \"light\" || this.theme == \"dark\"}\n innerHTML={paginationFirstLast}\n />\n );\n };\n\n private renderStartEllipsis = () => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n type=\"ellipsis\"\n id=\"start-ellipsis\"\n disabled={this.disabled}\n />\n );\n };\n\n private renderEndEllipsis = () => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n type=\"ellipsis\"\n id=\"end-ellipsis\"\n disabled={this.disabled}\n />\n );\n };\n\n private renderStartItems = () => {\n return this.startItems.map((page: number) => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n selected={page === this.currentPage}\n id={`pagination-item-${page}`}\n type=\"page\"\n page={page}\n disabled={this.disabled}\n />\n );\n });\n };\n\n private renderEndItems = () => {\n return this.endItems.map((page: number) => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n selected={page === this.currentPage}\n id={`pagination-item-${page}`}\n type=\"page\"\n page={page}\n disabled={this.disabled}\n />\n );\n });\n };\n\n private renderMiddleItems = () => {\n return this.midItems.map((page: number) => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n selected={page === this.currentPage}\n id={`pagination-item-${page}`}\n type=\"page\"\n page={page}\n disabled={this.disabled}\n />\n );\n });\n };\n\n render() {\n const {\n type,\n currentPage,\n hideCurrentPage,\n disabled,\n hideFirstAndLastPageButton,\n label,\n theme,\n monochrome,\n } = this;\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [\"ic-pagination-monochrome\"]: !!monochrome,\n }}\n >\n {type === \"simple\" && (\n <nav\n class={{\n [\"disabled\"]: !!disabled,\n }}\n role=\"navigation\"\n aria-label={this.accessibleLabel}\n >\n {hideFirstAndLastPageButton ? null : this.firstButton()}\n {this.previousButton()}\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n type=\"simple-current\"\n page={currentPage}\n label={label}\n class={{ [\"hide-current-page\"]: !!hideCurrentPage }}\n disabled={disabled}\n />\n {this.nextButton()}\n {hideFirstAndLastPageButton ? null : this.lastButton()}\n </nav>\n )}\n {type === \"complex\" && (\n <nav\n class={{\n [\"disabled\"]: !!disabled,\n }}\n role=\"navigation\"\n aria-label={this.accessibleLabel}\n >\n {hideFirstAndLastPageButton ? null : this.firstButton()}\n {this.previousButton()}\n {this.renderStartItems()}\n {this.startEllipsis && this.renderStartEllipsis()}\n {this.renderMiddleItems()}\n {this.endEllipsis && this.renderEndEllipsis()}\n {this.renderEndItems()}\n {this.nextButton()}\n {hideFirstAndLastPageButton ? null : this.lastButton()}\n </nav>\n )}\n {type === \"complex\" && (\n <span class=\"sr-only\" aria-live=\"polite\">\n Page {this.currentPage}\n </span>\n )}\n </Host>\n );\n }\n}\n","@import \"../../global/normalize.css\";\n\n/**\n * @prop --input-width: Width of the input field\n * @prop --menu-width: Width of the dropdown menu\n * @prop --ic-z-index-menu: z-index of select menu\n */\n\n:host {\n display: block;\n position: relative;\n\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --menu-max-height: 100px;\n --border-color: var(--ic-select-field-border);\n --border-color-hover: var(--ic-select-field-border-hover);\n --border-color-pressed: var(--ic-select-field-border-pressed);\n --border-color-disabled: var(--ic-select-field-border-disabled);\n --border-color-error: var(--ic-select-field-border-error);\n --border-color-error-hover: var(--ic-select-field-border-error-hover);\n --border-color-error-pressed: var(--ic-select-field-border-error-pressed);\n --border-color-success: var(--ic-select-field-border-success);\n --border-color-success-hover: var(--ic-select-field-border-success-hover);\n --border-color-success-pressed: var(--ic-select-field-border-success-pressed);\n --border-color-warning: var(--ic-select-field-border-warning);\n --border-color-warning-hover: var(--ic-select-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-select-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-select-field-label);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle\n );\n --ic-input-validation-status-text-color: var(--ic-select-state-text);\n --ic-input-validation-error: var(--ic-select-state-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-select-state-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-select-state-icon-success);\n --menu-item-text-color: var(--ic-select-list-option-text);\n --menu-bg-color: var(--ic-select-list-option-background);\n --menu-border-color: var(--ic-select-dropdown-list-border);\n}\n\n:host(.ic-select-disabled) {\n --ic-input-label-text-color: var(--ic-select-field-label-disabled);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle-disabled\n );\n}\n\n:host(.ic-select-full-width) {\n width: 100%;\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-select-field-border-pressed);\n}\n\nic-input-validation .status-icon,\nic-input-validation .statustext {\n visibility: visible;\n}\n\nic-input-validation.menu-open .status-icon,\nic-input-validation.menu-open .statustext {\n visibility: hidden;\n transition: visibility 0s;\n}\n\nic-input-label {\n margin-bottom: var(--ic-space-xs);\n}\n\nselect {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n height: 100%;\n padding-left: 0.375rem;\n appearance: none;\n background-repeat: no-repeat;\n background-position: right 0.375rem center;\n background-image: var(--ic-select-mobile-dropdown-icon);\n caret-color: var(--ic-select-input-field-text-cursor);\n}\n\nselect option,\n.select-option-selected {\n color: var(--ic-select-list-option-text);\n}\n\nselect:disabled {\n color: var(--ic-select-content-text-disabled);\n background-image: var(--ic-select-mobile-dropdown-icon-disabled);\n}\n\nselect:focus {\n border: 0;\n outline: 0;\n}\n\nselect:not([disabled]) {\n cursor: pointer;\n}\n\n.select-container {\n width: 100%;\n display: flex;\n align-items: center;\n position: relative;\n}\n\n.select-input {\n width: 100%;\n height: 100%;\n padding: 0 0.375rem;\n display: flex;\n cursor: pointer;\n align-items: center;\n justify-content: space-between;\n background: none;\n border: none;\n background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n}\n\n.select-input:focus {\n outline: none;\n}\n\n.select-input[disabled] {\n pointer-events: none;\n}\n\n:host(.ic-select-searchable) .select-input {\n cursor: auto;\n}\n\n.select-input.with-clear-button {\n padding-right: 0;\n}\n\n.value-text {\n max-width: calc(100% - (var(--ic-space-lg) + var(--ic-space-xxs)));\n box-sizing: border-box;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin-bottom: 0 !important;\n}\n\n.value-text.with-clear-button {\n padding-right: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n.searchable-select-container {\n align-items: center;\n display: flex;\n width: 100%;\n position: relative;\n}\n\n.expand-icon {\n height: var(--ic-space-lg);\n padding-left: var(--ic-space-xxs);\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon > svg {\n display: inline-block;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-disabled) .expand-icon,\n:host(.ic-select-disabled) .expand-icon > svg > path {\n color: var(--ic-select-disabled-expand-icon-color);\n}\n\n:host(.ic-select-searchable) .expand-icon {\n padding-left: 0;\n height: 2.25rem;\n}\n\n:host(.ic-select-searchable) .expand-icon > svg {\n height: 2.25rem;\n padding: 0 calc(var(--ic-space-xxxs) + var(--ic-space-xxs)) 0\n var(--ic-space-xxs);\n}\n\n:host(.ic-select-searchable:not(.ic-select-disabled)) .expand-icon > svg {\n cursor: pointer;\n}\n\n.expand-icon-open {\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon-open,\n:host(.ic-select-searchable) .expand-icon-open {\n transform: rotateX(180deg);\n}\n\n.placeholder {\n color: var(--ic-select-content-placeholder-text);\n}\n\n:host(.ic-select-disabled) .value-text,\n:host(.ic-select-disabled) .select-input,\n:host(.ic-select-disabled) .placeholder,\n:host(.ic-select-disabled.ic-select-searchable) .select-input::placeholder {\n color: var(--ic-select-content-text-disabled);\n}\n\n.select-input-end {\n display: flex;\n align-items: center;\n}\n\n.clear-button-container {\n display: flex;\n align-items: center;\n}\n\n.divider {\n width: var(--ic-space-1px);\n background-color: var(--ic-select-content-divider);\n margin: var(--ic-space-xxs) 0;\n border-radius: var(--ic-space-1px);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-small) .divider {\n height: var(--ic-space-md);\n}\n\n:host(.ic-select-large) .divider {\n height: var(--ic-space-xl);\n}\n\n.clear-button {\n color: var(--ic-select-clear-button);\n position: absolute;\n right: calc(var(--ic-space-xl) + var(--ic-space-xxs) - var(--ic-space-1px));\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n}\n\n.clear-button:focus,\n.clear-button:active {\n background-color: var(--ic-color-focus-inner);\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer);\n border-radius: 0.25rem;\n}\n\n.clear-button:focus,\n.clear-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button.searchable {\n position: static;\n}\n\n.aria-live-hidden-text {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: var(--ic-space-1px);\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: var(--ic-space-1px);\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-placeholder-text);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-text);\n}\n\n.readonly ::slotted([slot=\"icon\"]) {\n padding: 0.375rem;\n margin-bottom: 0.75rem;\n}\n\n@media (forced-colors: active) {\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .clear-button,\n ic-input-validation.menu-open .status-icon,\n ic-input-validation.menu-open .statustext {\n transition: none;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n State,\n Watch,\n forceUpdate,\n Method,\n} from \"@stencil/core\";\nimport {\n addFormResetListener,\n checkSlotInChildMutations,\n getInputDescribedByText,\n isMobileOrTablet,\n isSlotUsed,\n removeDisabledFalse,\n removeFormResetListener,\n renderHiddenInput,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcAriaLive,\n IcInformationStatusOrEmpty,\n IcSearchMatchPositions,\n IcMultiValueEventDetail,\n IcSizes,\n IcThemeMode,\n IcInformationStatus,\n} from \"../../utils/types\";\nimport {\n IcSelectOption,\n IcSelectOptionBase,\n IcSelectOptionFlat,\n IcSelectOptionGroup,\n} from \"./ic-select.types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nimport {\n IcMenuChangeEventDetail,\n IcMenuOptionIdEventDetail,\n IcOptionSelectEventDetail,\n} from \"../ic-menu/ic-menu.types\";\nimport { IcMenuCustomEvent } from \"../../components\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"tabindex\", \"title\"];\n\n/**\n * @slot helper-text - Content is set as the helper text for the select.\n * @slot icon - Content will be placed to the left of the select text input.\n */\n@Component({\n tag: \"ic-select\",\n styleUrl: \"ic-select.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Select {\n private inputId = `ic-select-input-${inputIds++}`;\n private menu?: HTMLIcMenuElement;\n private menuId = `${this.inputId}-menu`;\n private inheritedAttributes: { [k: string]: string } = {};\n private anchorEl?: HTMLElement;\n private nativeSelectElement?: HTMLSelectElement;\n private hostMutationObserver: MutationObserver | null = null;\n private clearButton?: HTMLIcButtonElement;\n private searchableSelectElement?: HTMLInputElement;\n private timeoutTimer: number | null = null;\n private hasTimedOut: boolean = false;\n private selectElement?: HTMLButtonElement;\n private initialRender: boolean = true;\n private characterKeyPressTimer?: number;\n private pressedCharacters = \"\";\n\n @Element() el!: HTMLIcSelectElement;\n\n @State() ariaActiveDescendant?: string;\n @State() debounceIcInput?: number;\n @State() hiddenInputValue: string | null;\n @State() hasError: boolean = false;\n @State() searchableSelectInputValue: string = \"\";\n @State() selectButtonAriaLiveText: string = \"\";\n @State() selectInputAriaLiveText: string = \"\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled = false;\n\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the built in filtering will be disabled for a searchable variant. For example, if options will already be filtered from external source.\n */\n @Prop() disableAutoFiltering = false;\n\n /**\n * The text displayed when there are no options in the option list.\n */\n @Prop() emptyOptionListText = \"No results found\";\n\n /**\n * The <form> element to associate the select with.\n */\n @Prop() form?: string;\n\n /**\n * If `true`, the select will fill the width of the container.\n */\n @Prop() fullWidth = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel = false;\n\n /**\n * If `true`, descriptions of options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeDescriptionsInSearch = false;\n\n /**\n * If `true`, group titles of grouped options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeGroupTitlesInSearch = false;\n\n /**\n * The label for the select.\n */\n @Prop() label!: string;\n\n /**\n * The message displayed when external loading times out.\n */\n @Prop() loadingErrorLabel = \"Loading Error\";\n\n /**\n * The message displayed whilst the options are being loaded externally.\n */\n @Prop() loadingLabel = \"Loading...\";\n\n /**\n * If `true`, multiple options can be selected.\n */\n @Prop() multiple = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder = \"Select an option\";\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly = false;\n\n /**\n * If `true`, the select will require a value.\n */\n @Prop() required = false;\n\n /**\n * If `true`, a searchable variant of the select will be displayed which can be typed in to filter options. This functionality is only available on the single-select variant of the select component.\n */\n @Prop() searchable = false;\n\n /**\n * Whether the search string of the searchable select should match the start of or anywhere in the options. Only applies to built in filtering.\n */\n @Prop() searchMatchPosition: IcSearchMatchPositions = \"anywhere\";\n\n /**\n * If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown on the single select.\n */\n @Prop() selectOnEnter = false;\n\n /**\n * If `true`, a button which clears the select input when clicked will be displayed. The button will always appear on the searchable select.\n */\n @Prop() showClearButton = false;\n\n /**\n * The size of the select.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * If using external filtering, set a timeout for when loading takes too long.\n */\n @Prop() timeout?: number;\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 value of the `aria-live` attribute on the validation message.\n */\n @Prop() validationAriaLive: IcAriaLive = \"polite\";\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText = \"\";\n\n /**\n * If `true` and on a mobile or tablet device, the native select element will be used instead of the custom select component for better usability.\n */\n @Prop() useNativeSelectOnMobile = true;\n\n /**\n * If `true`, the loading state will be triggered when fetching options asynchronously.\n */\n @Prop({ mutable: true }) loading = false;\n @Watch(\"loading\")\n loadingHandler(newValue: boolean): void {\n this.hasTimedOut = false;\n\n if (newValue) {\n this.hasError = false;\n if (this.timeout) {\n if (this.timeoutTimer) {\n this.clearTimer();\n }\n this.timeoutTimer = window.setTimeout(() => {\n this.loading = false;\n this.hasTimedOut = true;\n forceUpdate(this);\n }, this.timeout);\n }\n } else {\n if (this.timeoutTimer) {\n this.clearTimer();\n }\n }\n }\n\n private clearTimer() {\n if (this.timeoutTimer) {\n clearTimeout(this.timeoutTimer);\n this.timeoutTimer = null;\n }\n }\n\n /**\n * The possible selection options.\n */\n @Prop() options: IcSelectOption[] = [];\n @State() flatOptions: IcSelectOptionFlat[] = [];\n @Watch(\"options\")\n optionsChangedHandler(): void {\n const flat = this.getFlatOptions(this.options)\n .filter((option) => option.value != null || option.label != null) // filter out options missing both value and label\n .map((option) => ({\n ...option,\n value: option.value ?? option.label, // if an option is missing a value, use the label as the value\n label: option.label ?? option.value, // vice versa\n }));\n this.flatOptions = this.getDeduplicatedOptions(flat);\n\n if (!this.initialRender) this.loading = false;\n this.clearTimer();\n this.updateSelectButtonAriaLive();\n }\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icInput` event after each keystroke.\n */\n @Prop() debounce = 0;\n @State() currDebounce = this.debounce;\n @Watch(\"debounce\")\n debounceChangedHandler(newValue: number): void {\n if (this.currDebounce !== newValue) {\n this.currDebounce = newValue;\n }\n }\n\n /**\n * The value of the select, reflected by the value of the currently selected option.\n * For the searchable variant, the value is also reflected by the user input.\n * For the multi-select variant, the value must be an array of option values.\n */\n @Prop({ mutable: true }) value: string | string[] | null = null;\n @State() initialValue = this.value;\n @Watch(\"value\")\n valueChangedHandler(newValue: string | string[] | null): void {\n const validated = this.getValidatedValue(newValue);\n\n const isEqual =\n Array.isArray(validated) && Array.isArray(this.value)\n ? validated.length === this.value.length &&\n validated.every((v, i) => v === (this.value as string[])[i])\n : validated === this.value;\n\n if (!isEqual) {\n this.value = validated;\n return;\n }\n\n this.updateSelectButtonAriaLive();\n this.icChange.emit({ value: this.value });\n }\n\n @State() open = false;\n @Watch(\"open\")\n openChangedHandler(): void {\n this.open ? this.icOpen.emit() : this.icClose.emit();\n if (!this.open) {\n this.ariaActiveDescendant = undefined;\n }\n this.handleFocusIndicatorDisplay();\n }\n\n /**\n * Emitted when the select loses focus.\n */\n @Event() icBlur: EventEmitter<void>;\n\n /**\n * Emitted when the value changes.\n */\n @Event() icChange: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Emitted when the clear or clear all button is clicked.\n */\n @Event() icClear: EventEmitter<void>;\n\n /**\n * Emitted when the select options menu is closed.\n */\n @Event() icClose: EventEmitter<void>;\n\n /**\n * Emitted when the select gains focus.\n */\n @Event() icFocus: EventEmitter<void>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Emitted when the select options menu is opened.\n */\n @Event() icOpen: EventEmitter<void>;\n\n /**\n * Emitted when an option is selected.\n * Selecting an option will also trigger an `icChange/onIcChange` due to the value being updated.\n */\n @Event() icOptionSelect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when `multiple` is `true` and an option is deselected.\n */\n @Event() icOptionDeselect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when the 'retry loading' button is clicked for a searchable variant.\n */\n @Event() icRetryLoad: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Sets focus on the select component.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.focus();\n } else if (this.selectElement) {\n this.selectElement.focus();\n } else if (this.searchableSelectElement) {\n this.searchableSelectElement.focus();\n }\n }\n\n componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n this.initialRender = false;\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n this.clearTimer();\n }\n\n componentDidLoad(): void {\n forceUpdate(this);\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n\n private getValidatedValue = (\n value: string | string[] | null\n ): string | string[] | null => {\n const validValues = this.flatOptions.map((opt) => opt.value);\n\n if (validValues.length === 0) return value;\n\n if (this.multiple) {\n if (!value) return null;\n const arr = Array.isArray(value) ? value : [value]; // Ensure value is an array\n const filtered = validValues.filter((v) => arr.includes(v)); // Keep only valid values\n return filtered.length > 0 ? filtered : null;\n } else {\n return validValues.includes(value as string) ? value : null;\n }\n };\n\n componentWillLoad(): void {\n this.optionsChangedHandler();\n this.value = this.getValidatedValue(this.value);\n this.initialValue = this.value;\n\n if (this.loading) this.loadingHandler(true);\n\n addFormResetListener(this.el, this.handleFormReset);\n }\n\n private getFilteredOptions = (\n searchString: string,\n searchMatchPosition: \"anywhere\" | \"start\",\n includeDescriptionsInSearch: boolean,\n includeGroupTitlesInSearch: boolean\n ): IcSelectOption[] => {\n const search = searchString.toLowerCase();\n const match = (text: string, method: \"anywhere\" | \"start\") =>\n method === \"anywhere\" ? text.includes(search) : text.startsWith(search);\n\n return this.unflattenOptions(\n this.flatOptions.filter((option) => {\n const label = option.label.toLowerCase();\n const group = option.group?.toLowerCase() ?? \"\";\n const description = option.description?.toLowerCase() ?? \"\";\n return (\n match(label, searchMatchPosition) ||\n (includeDescriptionsInSearch &&\n match(description, searchMatchPosition)) ||\n (includeGroupTitlesInSearch && match(group, searchMatchPosition))\n );\n })\n );\n };\n\n private getOptions = (): IcSelectOption[] => {\n const options =\n this.searchable &&\n !this.disableAutoFiltering &&\n this.searchableSelectInputValue\n ? this.getFilteredOptions(\n this.searchableSelectInputValue,\n this.searchMatchPosition,\n this.includeDescriptionsInSearch,\n this.includeGroupTitlesInSearch\n )\n : this.unflattenOptions(this.flatOptions);\n\n if (this.hasTimedOut)\n return [{ label: this.loadingErrorLabel, value: \"\", timedOut: true }];\n\n if (this.loading)\n return [{ label: this.loadingLabel, value: \"\", loading: true }];\n\n if (options.length > 0) return options;\n\n return [{ label: this.emptyOptionListText, value: \"\" }];\n };\n\n private getFlatOptions = (options: IcSelectOption[]): IcSelectOptionFlat[] =>\n options.flatMap(\n (item) =>\n (\"children\" in item && item.children\n ? [...item.children.map((child) => ({ group: item.label, ...child }))]\n : [item]) as IcSelectOptionFlat[]\n );\n\n private unflattenOptions = (\n flatOptions: IcSelectOptionFlat[]\n ): IcSelectOption[] => {\n const groupMap = new Map<string, IcSelectOptionGroup>();\n const result: IcSelectOption[] = [];\n\n for (const option of flatOptions) {\n if (option.group) {\n let group = groupMap.get(option.group);\n if (!group) {\n group = { label: option.group, children: [] };\n groupMap.set(option.group, group);\n result.push(group);\n }\n const { group: _, ...rest } = option;\n group.children.push(rest as IcSelectOptionBase);\n } else {\n result.push(option);\n }\n }\n return result;\n };\n\n private getLabelFromValue = (value: string | null): string =>\n this.flatOptions.find((option) => option.value === value)?.label ?? \"\";\n\n // Construct the string that will be shown in the select input or button\n private getLabelString = (): string => {\n if (Array.isArray(this.value)) {\n return this.value.map(this.getLabelFromValue).filter(Boolean).join(\", \");\n }\n return (\n this.getLabelFromValue(this.value) ||\n (this.searchable ? \"\" : this.placeholder)\n );\n };\n\n private handleClick = (event: MouseEvent) => {\n if (event.detail !== 0) {\n this.menu?.handleClickOpen();\n }\n };\n\n private handleExpandIconMouseDown = (event: MouseEvent) => {\n if (!this.disabled) {\n event.preventDefault();\n this.searchableSelectElement?.focus();\n this.handleClick(event);\n }\n };\n\n private handleBlur = ({ relatedTarget }: FocusEvent) => {\n const target = relatedTarget as HTMLElement;\n if (\n this.el.contains(target) ||\n this.el.shadowRoot?.contains(target) ||\n this.menu?.contains(target) ||\n target === this.clearButton\n ) {\n return;\n }\n\n this.open = false;\n this.handleFocusIndicatorDisplay();\n\n if (this.searchable) {\n this.searchableSelectInputValue = \"\";\n }\n this.icBlur.emit();\n };\n\n private handleTimeoutBlur = (event: CustomEvent<{ ev: FocusEvent }>) => {\n this.handleBlur(event.detail.ev);\n };\n\n private handleFocus = () => {\n this.icFocus.emit();\n };\n\n private handleClear = () => {\n this.clearTimer();\n this.loading = false;\n this.value = null;\n this.searchableSelectInputValue = \"\";\n\n this.icClear.emit();\n\n this.setFocus();\n };\n\n private setTextColor = () => {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.className =\n this.nativeSelectElement.selectedIndex === 0\n ? \"placeholder\"\n : \"select-option-selected\";\n }\n };\n\n private handleNativeSelectChange = () => {\n if (this.nativeSelectElement) {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.icChange.emit({ value: this.nativeSelectElement.value });\n }\n this.setTextColor();\n };\n\n private handleFocusIndicatorDisplay = () => {\n const focusIndicator =\n this.el.shadowRoot?.querySelector(\".focus-indicator\");\n\n if (focusIndicator) {\n if (this.open) {\n focusIndicator.classList.add(\"focus-indicator-enabled\");\n } else {\n focusIndicator.classList.remove(\"focus-indicator-enabled\");\n }\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (!(event.key === \" \" && this.pressedCharacters.length > 0)) {\n if (this.open) {\n this.menu?.handleMenuKeyDown(event);\n } else {\n this.menu?.handleKeyboardOpen(event);\n }\n }\n\n if (\n !this.multiple &&\n !this.searchable &&\n !this.selectOnEnter &&\n /^[a-zA-Z0-9 ]$/.test(event.key)\n ) {\n this.handleCharacterKeyDown(event.key);\n }\n };\n\n private handleCharacterKeyDown = (key: string) => {\n // Only close menu when space is pressed if not being used alongside character keys to quickly select options\n if (this.open && key === \" \" && this.pressedCharacters.length === 0) {\n this.open = false;\n }\n\n if (key.length !== 1 || this.searchable) {\n this.pressedCharacters = \"\";\n return;\n }\n\n window.clearTimeout(this.characterKeyPressTimer);\n this.characterKeyPressTimer = window.setTimeout(\n () => (this.pressedCharacters = \"\"),\n 1000\n );\n\n if (key !== \" \" || !!this.pressedCharacters) {\n this.pressedCharacters += key;\n const filteredOptions = this.getFilteredOptions(\n this.pressedCharacters,\n \"start\",\n false,\n false\n );\n\n if (filteredOptions.length > 0) {\n const firstOption = filteredOptions[0];\n if (\"children\" in firstOption) {\n this.value = firstOption.children[0].value;\n } else {\n this.value = firstOption.value;\n }\n }\n }\n };\n\n private handleNativeSelectKeyDown = (event: KeyboardEvent) => {\n this.handleKeyDown(event);\n };\n\n private handleSelectChange = (\n event: CustomEvent<IcOptionSelectEventDetail>\n ) => {\n const { value } = event.detail;\n if (!value || this.getLabelFromValue(value) === this.emptyOptionListText) {\n this.value = null;\n return;\n }\n\n if (this.multiple) {\n let valueArray = Array.isArray(this.value) ? [...this.value] : [];\n const index = valueArray.indexOf(value);\n\n if (index > -1) {\n valueArray.splice(index, 1);\n this.icOptionDeselect.emit({ value });\n } else {\n this.icOptionSelect.emit({ value });\n valueArray.push(value);\n valueArray = this.getValidatedValue(valueArray) as string[];\n }\n this.value = valueArray.length ? valueArray : null;\n } else {\n this.icOptionSelect.emit({ value });\n this.value = value;\n if (this.searchable) this.searchableSelectInputValue = \"\";\n }\n };\n\n private handleSelectAllChange = ({\n detail,\n }: CustomEvent<{ select: boolean }>) => {\n const allSelectableValues = this.flatOptions\n .filter((option) => !option.disabled)\n .map((option) => option.value);\n if (detail.select) {\n allSelectableValues\n .filter((value) => !((this.value ?? []) as string[]).includes(value))\n .forEach((value) => {\n this.icOptionSelect.emit({ value });\n });\n\n this.value = allSelectableValues;\n } else {\n (this.value as string[]).forEach((value) =>\n this.icOptionDeselect.emit({ value })\n );\n this.value = null;\n }\n };\n\n private handleFormReset = () => {\n this.value = this.initialValue;\n this.searchableSelectInputValue = \"\";\n if (this.searchable) {\n this.hiddenInputValue = this.initialValue as string;\n }\n };\n\n private handleRetry = () => {\n this.clearTimer();\n this.hasTimedOut = false;\n this.hasError = false;\n this.loading = true;\n this.icRetryLoad.emit({\n value: this.searchable\n ? this.searchableSelectInputValue\n : this.hiddenInputValue,\n });\n this.setFocus();\n };\n\n private handleSearchableSelectInput = (event: Event) => {\n this.updateSearchableSelectResultAriaLive();\n if (!this.multiple) {\n this.value = null;\n }\n\n this.searchableSelectInputValue =\n (event.target as HTMLInputElement).value ?? \"\";\n this.open = true;\n\n clearTimeout(this.debounceIcInput);\n this.debounceIcInput = window.setTimeout(\n () => this.icInput.emit({ value: this.searchableSelectInputValue }),\n this.currDebounce\n );\n };\n\n private hostMutationCallback = (mutationList: MutationRecord[]) => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private updateSelectButtonAriaLive = () => {\n const value_label = this.getLabelFromValue(this.value as string);\n this.selectButtonAriaLiveText = this.multiple\n ? `${this.value ? this.value.length : 0} of ${\n this.flatOptions.length\n } selected`\n : this.value\n ? value_label ?? `${value_label} selected`\n : \"\";\n };\n\n private updateSearchableSelectResultAriaLive = () => {\n this.selectInputAriaLiveText =\n this.getOptions()?.[0]?.label == this.emptyOptionListText\n ? this.emptyOptionListText\n : \"\";\n };\n\n private updateAriaActiveDescendant = (\n event: IcMenuCustomEvent<IcMenuOptionIdEventDetail>\n ) => {\n this.ariaActiveDescendant = event.detail.optionId;\n };\n\n private handleMenuChange = (event: CustomEvent<IcMenuChangeEventDetail>) => {\n this.open = event.detail.open;\n this.pressedCharacters = \"\";\n };\n\n private getDeduplicatedOptions = (\n flatOptions: IcSelectOptionFlat[]\n ): IcSelectOptionFlat[] => {\n const seen = new Set();\n return flatOptions.filter((option) => {\n if (option.value && seen.has(option.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${option.value}) which has been removed.`\n );\n return false;\n }\n if (option.value) seen.add(option.value);\n return true;\n });\n };\n\n private renderNativeOption = (option: IcSelectOptionBase) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === this.value}\n >\n {option.label}\n </option>\n );\n\n render() {\n const {\n disabled,\n searchable,\n size,\n fullWidth,\n theme,\n readonly,\n hideLabel,\n inputId,\n label,\n helperText,\n required,\n value,\n options,\n menuId,\n multiple,\n validationStatus,\n open,\n showClearButton,\n selectOnEnter,\n loading,\n searchableSelectInputValue,\n validationText,\n validationAriaLive,\n form,\n ariaActiveDescendant,\n placeholder,\n name,\n inheritedAttributes,\n selectInputAriaLiveText,\n selectButtonAriaLiveText,\n } = this;\n\n const hasValue = !!value;\n const hasInput = !!searchableSelectInputValue;\n const isClearable =\n !disabled &&\n ((searchable && (hasInput || hasValue)) ||\n (!searchable && hasValue && !loading && showClearButton));\n\n const showValidation = !!validationStatus && !disabled;\n\n const invalid = validationStatus === IcInformationStatus.Error;\n\n const describedBy = getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n showValidation\n ).trim();\n\n const menuOptions = this.getOptions();\n const noOptions =\n disabled ||\n (menuOptions.length === 1 &&\n (menuOptions[0].label === this.emptyOptionListText ||\n \"loading\" in menuOptions[0] ||\n \"timedOut\" in menuOptions[0]));\n\n renderHiddenInput(this.el, value as string, name || inputId, disabled);\n\n const ClearButton = () => (\n <ic-button\n ref={(el) => (this.clearButton = el)}\n id=\"clear-button\"\n aria-label={this.searchable ? \"Clear input\" : \"Clear selection\"}\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onBlur={this.handleBlur}\n size={size}\n variant=\"icon-tertiary\"\n ></ic-button>\n );\n\n const NativeSelect = () => (\n <select\n ref={(el) => (this.nativeSelectElement = el)}\n disabled={disabled}\n onChange={this.handleNativeSelectChange}\n required={required}\n id={inputId}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid ? \"true\" : \"false\"}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleNativeSelectKeyDown}\n form={form}\n {...inheritedAttributes}\n >\n <option value=\"\" selected disabled={!showClearButton}>\n {placeholder}\n </option>\n {options.map((option) =>\n \"children\" in option ? (\n <optgroup label={option.label}>\n {option.children.map((child) =>\n this.renderNativeOption(child as IcSelectOptionBase)\n )}\n </optgroup>\n ) : (\n this.renderNativeOption(option as IcSelectOptionBase)\n )\n )}\n </select>\n );\n\n const SelectButton = () => (\n <div class=\"select-container\">\n <button\n class=\"select-input\"\n role=\"combobox\"\n ref={(el) => (this.selectElement = el)}\n id={inputId}\n aria-label={`${label}, ${\n (multiple && value\n ? `${value.length} of ${\n this.flatOptions.length\n } selected, ${this.getLabelString()}`\n : this.getLabelString()) || placeholder\n }`}\n onClick={this.handleClick}\n aria-describedby={describedBy}\n aria-invalid={invalid ? \"true\" : \"false\"}\n aria-haspopup=\"listbox\"\n aria-expanded={`${open}`}\n aria-controls={menuId}\n aria-required={`${required}`}\n disabled={disabled}\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n aria-activedescendant={ariaActiveDescendant}\n >\n <ic-typography\n variant=\"body\"\n class={{\n \"value-text\": true,\n \"with-clear-button\": !!isClearable,\n placeholder: !value,\n }}\n >\n {this.getLabelString()}\n </ic-typography>\n <div class=\"select-input-end\">\n {isClearable && <div class=\"divider\"></div>}\n <span\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n </div>\n </button>\n {isClearable && <ClearButton></ClearButton>}\n <div\n aria-live=\"polite\"\n aria-atomic=\"true\"\n class=\"aria-live-hidden-text\"\n >\n {selectButtonAriaLiveText}\n </div>\n </div>\n );\n\n const SelectInput = () => (\n <div class=\"searchable-select-container\">\n <input\n class={{\n \"value-text\": true,\n \"select-input\": true,\n \"with-clear-button\": !!searchableSelectInputValue,\n }}\n role=\"combobox\"\n autocomplete=\"off\"\n aria-label={label}\n aria-describedby={describedBy}\n aria-activedescendant={ariaActiveDescendant}\n aria-autocomplete=\"list\"\n aria-expanded={`${open}`}\n aria-invalid={invalid ? \"true\" : \"false\"}\n aria-required={`${required}`}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={inputId}\n value={\n multiple\n ? \"\"\n : value\n ? this.getLabelString()\n : searchableSelectInputValue || undefined\n }\n disabled={disabled}\n placeholder={placeholder}\n onInput={this.handleSearchableSelectInput}\n onClick={this.handleClick}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n form={form}\n ></input>\n {isClearable && (\n <div class=\"clear-button-container\">\n <ClearButton></ClearButton>\n <div class=\"divider\"></div>\n </div>\n )}\n <span\n onMouseDown={this.handleExpandIconMouseDown}\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n <div aria-live=\"polite\" role=\"status\" class=\"aria-live-hidden-text\">\n {selectInputAriaLiveText}\n </div>\n </div>\n );\n\n const ReadOnly = () => (\n <ic-typography>\n <p>\n {this.getLabelString() === placeholder ? \"\" : this.getLabelString()}\n </p>\n </ic-typography>\n );\n\n return (\n <Host\n class={{\n \"ic-select-disabled\": disabled,\n \"ic-select-searchable\": searchable,\n [`ic-select-${size}`]: size !== \"medium\",\n \"ic-select-full-width\": fullWidth,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <ic-input-container readonly={readonly}>\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n readonly={readonly}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n <ic-input-component-container\n ref={(el) => (this.anchorEl = el)}\n class={{ \"menu-open\": open }}\n size={size}\n fullWidth={fullWidth}\n disabled={disabled}\n readonly={readonly}\n validationStatus={validationStatus}\n >\n {isSlotUsed(this.el, \"icon\") &&\n !disabled &&\n (!readonly || !!value) && (\n <span\n slot=\"left-icon\"\n class={{\n readonly,\n \"has-value\": !!value,\n }}\n >\n <slot name=\"icon\" />\n </span>\n )}\n {isMobileOrTablet() && this.useNativeSelectOnMobile && !multiple ? (\n <NativeSelect />\n ) : readonly ? (\n <ReadOnly />\n ) : !searchable ? (\n <SelectButton />\n ) : (\n <SelectInput />\n )}\n </ic-input-component-container>\n {!(\n isMobileOrTablet() &&\n this.useNativeSelectOnMobile &&\n !multiple\n ) && (\n <ic-menu\n ref={(el) => (this.menu = el)}\n class={{ \"no-results\": noOptions }}\n inputEl={\n searchable ? this.searchableSelectElement : this.selectElement\n }\n allowMenuFocus={false}\n inputLabel={label}\n anchorEl={this.anchorEl}\n size={size}\n menuId={menuId}\n open={open}\n options={this.getOptions()}\n value={multiple ? (value as string[]) : (value as string)}\n fullWidth={fullWidth}\n selectOnEnter={selectOnEnter}\n onMenuStateChange={this.handleMenuChange}\n onMenuOptionSelect={this.handleSelectChange}\n onMenuOptionSelectAll={this.handleSelectAllChange}\n onTimeoutBlur={this.handleTimeoutBlur}\n onMenuOptionId={this.updateAriaActiveDescendant}\n onClick={this.setFocus}\n parentEl={this.el}\n activationType={\n searchable || multiple || selectOnEnter ? \"manual\" : \"automatic\"\n }\n onRetryButtonClicked={this.handleRetry}\n closeOnSelect={!multiple}\n multiSelect={multiple}\n searchableSelect={searchable}\n ></ic-menu>\n )}\n <ic-input-validation\n class={{\n \"menu-open\": open,\n }}\n ariaLiveMode={validationAriaLive}\n status={showValidation ? validationStatus : \"\"}\n message={showValidation ? validationText : \"\"}\n for={inputId}\n ></ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n","@import \"../../global/normalize.css\";\n\n:host {\n /**\n * @prop --input-width: Width of the input field\n */\n display: block;\n\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --border-color: var(--ic-text-field-border-neutral);\n --border-color-hover: var(--ic-text-field-border-neutral-hover);\n --border-color-pressed: var(--ic-text-field-border-neutral-pressed);\n --border-color-disabled: var(--ic-text-field-border-disabled);\n --border-color-error: var(--ic-text-field-border-error);\n --border-color-error-hover: var(--ic-text-field-border-error-hover);\n --border-color-error-pressed: var(--ic-text-field-border-error-pressed);\n --border-color-success: var(--ic-text-field-border-success);\n --border-color-success-hover: var(--ic-text-field-border-success-hover);\n --border-color-success-pressed: var(--ic-text-field-border-success-pressed);\n --border-color-warning: var(--ic-text-field-border-warning);\n --border-color-warning-hover: var(--ic-text-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-text-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-text-field-label);\n --ic-input-label-helper-text-color: var(--ic-text-field-subtitle);\n --ic-input-validation-status-text-color: var(--ic-text-field-state-text);\n --ic-input-validation-error: var(--ic-text-field-state-icon-error);\n --ic-input-validation-warning-icon-color: var(\n --ic-text-field-state-icon-warning\n );\n --ic-input-validation-success-icon-color: var(\n --ic-text-field-state-icon-success\n );\n --ic-input-component-container-success-icon-inline-color: var(\n --ic-text-field-state-icon-success\n );\n}\n\n:host(.ic-text-field-disabled) {\n --ic-input-label-text-color: var(--ic-text-field-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-text-field-subtitle-disabled);\n --text-field-placeholder-color: var(\n --ic-text-field-text-area-placeholder-text-disabled\n );\n}\n\n:host(.ic-text-field-full-width) {\n width: 100%;\n}\n\n::placeholder {\n color: var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );\n opacity: 1;\n}\n\ninput,\ntextarea {\n border: 0;\n border-radius: var(--ic-border-radius);\n color: var(--text-field-text-color, var(--ic-text-field-text));\n background-color: var(--input-bg-color, var(--ic-text-field-background));\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n padding-right: var(--ic-space-xs);\n padding-left: var(--ic-space-xs);\n caret-color: var(\n --text-field-typing-cursor,\n var(--ic-text-field-typing-cursor)\n );\n}\n\ntextarea {\n min-height: var(--ic-space-lg);\n resize: vertical;\n padding-top: 0.375rem;\n}\n\ninput:focus,\ntextarea:focus {\n border: 0;\n outline: 0;\n}\n\ninput:disabled,\ntextarea:disabled {\n color: var(\n --text-field-disabled-text-color,\n var(--ic-text-field-text-disabled)\n );\n}\n\ninput.readonly,\ntextarea.readonly {\n color: var(--ic-text-field-read-only-input-text-internal);\n background: transparent;\n}\n\n/* Chrome, Safari, Edge */\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n/* Firefox */\ninput[type=\"number\"] {\n -moz-appearance: textfield;\n}\n\ntextarea.no-resize {\n resize: none;\n}\n\n.char-count-text {\n --ic-typography-color: var(--ic-text-field-character-limit);\n\n padding-right: var(--ic-space-xxxs);\n}\n\n:host(.ic-text-field-disabled) .char-count-text {\n --ic-typography-color: var(--ic-text-field-character-limit-disabled);\n}\n\n.no-left-pad {\n padding-left: 0;\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-text-field-text-disabled);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-text-field-input-internal-icon);\n}\n\n.char-count {\n margin-right: calc(-1 * var(--ic-space-xxxs));\n}\n\n.remaining-char-count-desc {\n position: absolute;\n left: -9999px;\n}\n\n.show-validation {\n margin-top: var(--ic-space-xs);\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n display: none;\n}\n\ninput[type=\"search\"].truncate-value {\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n@media (forced-colors: active) {\n input.readonly,\n textarea.readonly {\n color: canvastext;\n }\n\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n Method,\n h,\n forceUpdate,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcInformationStatusOrEmpty,\n IcValueEventDetail,\n IcSizesNoLarge,\n IcThemeMode,\n IcValidationAriaLive,\n} from \"../../utils/types\";\nimport {\n inheritAttributes,\n debounceEvent,\n getInputDescribedByText,\n renderHiddenInput,\n isEmptyString,\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n isSlotUsed,\n removeDisabledFalse,\n checkSlotInChildMutations,\n removeHiddenInput,\n} from \"../../utils/helpers\";\nimport {\n IC_INHERITED_ARIA,\n IGNORED_KEYBOARD_CHARACTERS,\n} from \"../../utils/constants\";\nimport {\n IcAriaAutocompleteTypes,\n IcTextFieldInputModes,\n IcTextFieldKeydownEventDetail,\n IcTextFieldTypes,\n} from \"./ic-text-field.types\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot helper-text - Content is set as the helper text for the text field.\n * @slot validation-text - Content is set as validation text for the text field.\n * @slot icon - Content will be placed to the left of the text input.\n */\n@Component({\n tag: \"ic-text-field\",\n styleUrl: \"ic-text-field.css\",\n shadow: true,\n})\nexport class TextField {\n private inheritedAttributes: { [k: string]: string } = {};\n private inputEl: HTMLInputElement | HTMLTextAreaElement;\n private hostMutationObserver: MutationObserver | null = null;\n private interval: ReturnType<typeof setInterval>;\n\n @Element() el: HTMLIcTextFieldElement;\n\n @State() numChars: number = 0;\n @State() maxCharactersReached: boolean = false;\n @State() maxCharactersWarning: boolean = false;\n @State() minCharactersUnattained: boolean = false;\n @State() maxValueExceeded: boolean = false;\n @State() minValueUnattained: boolean = false;\n @State() isFocussed: boolean = false;\n\n /**\n * @slot clear-button - an ic-button clear component will render as an end adornment to the input.\n * @slot search-submit-button - an ic-button search submit component will render as an end adornment to the input.\n * @slot menu - an ic-menu component will appear below the input.\n */\n\n /**\n * @internal The active element when focus is on the ic-menu items.\n */\n @Prop() ariaActiveDescendant?: string;\n\n /**\n * @internal Used to identify whether inputting any text triggers more predictions\n */\n @Prop() ariaAutocomplete?: IcAriaAutocompleteTypes;\n\n /**\n * @internal Used to identify if the slotted menu is rendered\n */\n @Prop() ariaExpanded: string | null;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwns?: string;\n\n /**\n * The automatic capitalisation of the text value as it is entered/edited by the user.\n * Available options: \"off\", \"none\", \"on\", \"sentences\", \"words\", \"characters\".\n */\n @Prop() autocapitalize = \"off\";\n\n /**\n * The state of autocompletion the browser can apply on the text value.\n */\n @Prop() autocomplete?: IcAutocompleteTypes = \"off\";\n\n /**\n * The state of autocorrection the browser can apply when the user is entering/editing the text value.\n */\n @Prop() autocorrect?: IcAutocorrectStates = \"off\";\n\n /**\n * If `true`, the form control will have input focus when the page loads.\n */\n @Prop() autofocus = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n /**\n * Specify whether the text field fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\n */\n @Prop() fullWidth = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText = \"\";\n\n /**\n * If `true`, the character count which is displayed when `maxCharacters` is set will be visually hidden.\n */\n @Prop() hideCharCount = false;\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel = false;\n\n /**\n * @internal If `true`, the hidden form input will stop rendering for form submission.\n */\n @Prop() hiddenInput = true;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId = `ic-text-field-input-${inputIds++}`;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode: IcTextFieldInputModes = \"text\";\n\n /**\n * The label for the input.\n */\n @Prop() label!: string;\n\n /**\n * The maximum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of max value in `helperText` or `label`)\n */\n @Prop() max?: string | number;\n\n /**\n * The count of characters in the field. Will display a warning if the bound is reached. (NOTE: If the value of the text field has been set using the `value` prop, it will be truncated to this number of characters)\n */\n @Prop() maxCharacters = 0;\n\n /**\n * The text to display as the warning message when the maximum number of characters (the `maxCharacters` prop value) is reached.\n */\n // prettier-ignore\n @Prop() maxCharactersMessage = `Maximum input is ${this.maxCharacters} characters`;\n\n /**\n * The text to display as the error message when the maximum value (the `max` prop value) has been exceeded.\n */\n @Prop() maxMessage = `Maximum value of ${this.max} exceeded`;\n\n /**\n * The minimum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of min value in `helperText` or `label`)\n */\n @Prop() min?: string | number;\n\n /**\n * The minimum number of characters that can be entered in the field.\n */\n @Prop() minCharacters = 0;\n\n /**\n * The text to display as the error message when the minimum number of characters (the `minCharacters` prop value) has not been met.\n */\n // prettier-ignore\n @Prop() minCharactersMessage = `Minimum input is ${this.minCharacters} characters`;\n\n /**\n * The text to display as the error message when the minimum value (the `min` prop value) has not been met.\n */\n @Prop() minMessage = `Minimum value of ${this.min} not met`;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder = \"\";\n\n /**\n * If `true`, the read only state will be set.\n */\n @Prop({ reflect: true }) readonly = false;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the multiline text area will be resizeable.\n */\n @Prop() resize = false;\n\n /**\n * @internal Used to set the role if not default textbox;\n */\n @Prop() role: string | null;\n\n /**\n * The number of rows to transform the text field into a text area with a specific height.\n */\n @Prop() rows = 1;\n\n /**\n * The size of the text field component.\n */\n @Prop() size: IcSizesNoLarge = \"medium\";\n\n /**\n * If `true`, the value of the text field will have its spelling and grammar checked.\n */\n @Prop() spellcheck = false;\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 If `true`, an ellipsis will be displayed at the end of the value if the value is longer than the container.\n */\n @Prop() truncateValue = false;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop() type: IcTextFieldTypes = \"text\";\n\n /**\n * The value of the `aria-live` attribute on the validation message. When set to \"default\", the `aria-live` value will be handled automatically, e.g. \"assertive\" for `validation-status=\"error\"`.\n */\n @Prop() validationAriaLive: IcValidationAriaLive = \"default\";\n\n /**\n * If `true`, the icon in input control will be displayed - only applies when validationStatus ='success'.\n */\n @Prop() validationInline = false;\n\n /**\n * @internal If `true`, the validation will display inline.\n */\n @Prop() validationInlineInternal = false;\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n @Watch(\"debounce\")\n private debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\n\n /**\n * The value of the text field.\n */\n @Prop({ reflect: true, mutable: true }) value = \"\";\n @State() initialValue = this.value;\n @Watch(\"value\")\n private watchValueHandler(newValue: string): void {\n let value;\n\n if (this.maxCharacters > 0) {\n value = newValue.substring(0, this.maxCharacters);\n if (value.length < newValue.length) {\n this.maxCharactersWarning = true;\n }\n this.value = value;\n } else {\n value = newValue;\n }\n\n if (this.inputEl && this.inputEl.value !== value) {\n this.inputEl.value = value;\n }\n\n this.getMaxValueExceeded(value);\n\n this.getMaxCharactersReached(value);\n\n this.icChange.emit({ value });\n }\n\n /**\n * @internal Emitted when the validationInlineInternal is `true`\n */\n @Event() getValidationText: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input loses focus.\n */\n @Event() icBlur: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input gains focus.\n */\n @Event() icFocus: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keydown event occurred.\n */\n @Event() icKeydown: EventEmitter<IcTextFieldKeydownEventDetail>;\n\n /**\n * Emitted when the textarea variant is scrolled.\n */\n @Event() icScroll: EventEmitter;\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el as HTMLElement, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n if (this.value !== this.initialValue) {\n this.watchValueHandler(this.value);\n } else if (this.maxCharacters > 0) {\n this.value = this.value.substring(0, this.maxCharacters);\n }\n\n this.getMaxValueExceeded(this.value);\n this.getMaxCharactersReached(this.value);\n\n this.inheritedAttributes = inheritAttributes(\n this.el as HTMLElement,\n MUTABLE_ATTRIBUTES\n );\n\n if (this.readonly) {\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n }\n\n addFormResetListener(this.el as HTMLElement, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Text Field\"\n );\n if (this.validationInlineInternal) {\n this.getValidationText.emit({ value: this.validationText });\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n\n if (this.autofocus && !this.disabled && !this.readonly) {\n this.interval = setInterval(this.checkChildHydration, 50);\n }\n }\n\n private checkChildHydration = () => {\n if (\n this.hideLabel ||\n this.el.shadowRoot\n ?.querySelector(\"ic-typography\")\n ?.classList.contains(\"hydrated\")\n ) {\n this.setFocus();\n clearInterval(this.interval);\n }\n };\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n this.icKeydown.emit({\n event: ev,\n cursorPosition: this.inputEl.selectionStart ?? 0,\n selectionEnd: this.inputEl.selectionEnd ?? 0,\n });\n\n if (!ev.ctrlKey && !IGNORED_KEYBOARD_CHARACTERS.includes(ev.key)) {\n this.maxCharactersWarning = this.maxCharactersReached;\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n\n @Method()\n async setFocus(): Promise<void> {\n this.inputEl?.focus();\n }\n\n private getNumberOfCharacters = (value: string) =>\n value !== null && value !== undefined ? value.length : 0;\n\n private getMaxValueExceeded = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n if (this.type === \"number\") {\n this.minValueUnattained = !!value && Number(value) < Number(this.min);\n this.maxValueExceeded = Number(value) > Number(this.max);\n }\n };\n\n private getMaxCharactersReached = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n this.maxCharactersReached =\n this.maxCharacters > 0 && this.numChars >= this.maxCharacters;\n\n if (this.maxCharactersWarning && !this.maxCharactersReached) {\n this.maxCharactersWarning = false;\n }\n };\n\n private onInput = (ev: Event) => {\n this.value = (ev.target as HTMLInputElement).value;\n this.icInput.emit({ value: this.value });\n };\n\n private onBlur = (ev: Event) => {\n const target = ev.target as HTMLInputElement;\n target.removeEventListener(\"wheel\", this.onWheel);\n const { value } = target;\n this.numChars = value.length;\n this.minCharactersUnattained =\n this.minCharacters > 0 && this.numChars < this.minCharacters;\n this.icBlur.emit({ value });\n this.isFocussed = false;\n };\n\n private onFocus = (ev: Event) => {\n const target = ev.target as HTMLInputElement;\n target.addEventListener(\"wheel\", this.onWheel);\n this.icFocus.emit({ value: target.value });\n this.isFocussed = true;\n };\n\n private onTextAreaScroll = () => {\n this.icScroll.emit();\n };\n\n private onWheel = (ev: WheelEvent) => {\n const target = ev.target as HTMLInputElement;\n if (target.type === \"number\") {\n target.blur();\n setTimeout(() => {\n target.focus();\n }, 0);\n }\n };\n\n private hasStatus = (status: IcInformationStatusOrEmpty) =>\n status !== \"\" && !this.disabled;\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n };\n\n private showValidationMargin = (): boolean => {\n const maxNumChars = this.readonly ? 0 : this.maxCharacters;\n const emptyString =\n isEmptyString(this.validationStatus) ||\n isEmptyString(this.validationText);\n const valueOutsideRange = this.minValueUnattained || this.maxValueExceeded;\n const charsOutsideRange = maxNumChars > 0 || this.minCharactersUnattained;\n return (\n (!emptyString || valueOutsideRange || charsOutsideRange) &&\n !this.validationInlineInternal\n );\n };\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (attributeName && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n this.inheritedAttributes[attributeName] = attribute;\n }\n forceComponentUpdate = true;\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n placeholder,\n helperText,\n hideCharCount,\n rows,\n resize,\n disabled,\n value,\n min,\n max,\n numChars,\n readonly,\n maxCharacters,\n maxCharactersMessage,\n maxCharactersWarning,\n maxCharactersReached,\n maxMessage,\n minCharacters,\n minCharactersMessage,\n minCharactersUnattained,\n minMessage,\n minValueUnattained,\n maxValueExceeded,\n validationAriaLive,\n validationStatus,\n validationText,\n validationInline,\n validationInlineInternal,\n spellcheck,\n inputmode,\n fullWidth,\n truncateValue,\n hiddenInput,\n theme,\n hideLabel,\n type,\n autocapitalize,\n ariaActiveDescendant,\n inheritedAttributes,\n ariaExpanded,\n ariaOwns,\n autocomplete,\n role,\n isFocussed,\n } = this;\n\n const el = this.el as HTMLElement;\n\n const disabledMode = readonly || disabled;\n\n const currentStatus =\n maxValueExceeded ||\n minValueUnattained ||\n minCharactersUnattained ||\n maxCharactersWarning\n ? maxCharactersWarning\n ? IcInformationStatus.Warning\n : IcInformationStatus.Error\n : validationStatus;\n\n const currentValidationText = maxCharactersWarning\n ? maxCharactersMessage\n : maxValueExceeded\n ? maxMessage\n : minValueUnattained\n ? minMessage\n : minCharactersUnattained\n ? minCharactersMessage\n : validationText;\n\n const maxNumChars = readonly ? 0 : maxCharacters;\n const messageAriaLive =\n validationAriaLive === \"default\"\n ? maxCharactersWarning ||\n maxValueExceeded ||\n minValueUnattained ||\n currentStatus === IcInformationStatus.Error\n ? \"assertive\"\n : \"polite\"\n : validationAriaLive;\n\n const showStatusText =\n this.hasStatus(currentStatus) &&\n !(currentStatus == IcInformationStatus.Success && validationInline) &&\n !validationInlineInternal;\n\n const multiline = rows > 1;\n\n const hiddenCharCountDescId =\n maxCharacters > 0 ? `${inputId}-char-count-desc` : \"\";\n\n const charsRemaining = maxNumChars - numChars;\n const remainingCharCountDescId =\n maxCharacters > 0 ? `${inputId}-remaining-char-count-desc` : \"\";\n const remainingCharCountDesc = `${charsRemaining} character${\n charsRemaining === 1 ? \"\" : \"s\"\n } remaining.`;\n\n const describedBy = `${getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n showStatusText\n )} ${hiddenCharCountDescId} ${\n numChars > 0 ? remainingCharCountDescId : \"\"\n }`.trim();\n\n const disabledText = disabledMode && !readonly;\n const showLeftIcon =\n !!this.el.querySelector(`[slot=\"icon\"]`) && !disabledText;\n\n const invalid = `${currentStatus === IcInformationStatus.Error}`;\n\n hiddenInput\n ? renderHiddenInput(this.el as HTMLElement, value, name, disabledMode)\n : removeHiddenInput(this.el as HTMLElement);\n\n return (\n <Host\n class={{\n \"ic-text-field-full-width\": fullWidth,\n \"ic-text-field-disabled\": disabledMode,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <ic-input-container readonly={readonly} disabled={disabledMode}>\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabledText}\n readonly={readonly}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n\n <ic-input-component-container\n size={size}\n validationStatus={currentStatus}\n multiLine={multiline}\n disabled={disabledMode}\n readonly={readonly}\n validationInline={validationInline}\n fullWidth={fullWidth}\n >\n {showLeftIcon && (\n <span\n class={{\n readonly,\n \"has-value\": this.getNumberOfCharacters(value) > 0,\n }}\n slot=\"left-icon\"\n >\n <slot name=\"icon\" />\n </span>\n )}\n\n {!multiline ? (\n <input\n id={inputId}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n type={type}\n min={min}\n max={max}\n value={value}\n class={{\n \"no-left-pad\": !showLeftIcon && readonly,\n readonly,\n \"truncate-value\": truncateValue,\n }}\n placeholder={placeholder ? placeholder : \"\"}\n required={required}\n disabled={disabledMode}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-activedescendant={ariaActiveDescendant}\n aria-expanded={ariaExpanded}\n aria-owns={ariaOwns}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n spellcheck={spellcheck}\n inputmode={inputmode}\n role={role || undefined}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...inheritedAttributes}\n ></input>\n ) : (\n <textarea\n id={inputId}\n class={{\n \"no-resize\": resize === false || !!readonly,\n \"no-left-pad\": !showLeftIcon && !!readonly,\n readonly: !!readonly,\n }}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLTextAreaElement)}\n value={value}\n rows={rows}\n required={required}\n disabled={disabledMode}\n placeholder={placeholder}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onScroll={this.onTextAreaScroll}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n spellcheck={spellcheck}\n inputmode={inputmode}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...inheritedAttributes}\n ></textarea>\n )}\n {isSlotUsed(el, \"clear-button\") && (\n <slot name=\"clear-button\"></slot>\n )}\n {isSlotUsed(el, \"search-submit-button\") && (\n <slot name=\"search-submit-button\"></slot>\n )}\n </ic-input-component-container>\n {isSlotUsed(el, \"menu\") && <slot name=\"menu\"></slot>}\n <ic-input-validation\n class={{ \"show-validation\": this.showValidationMargin() }}\n status={\n this.hasStatus(currentStatus) === false ||\n (currentStatus === IcInformationStatus.Success &&\n validationInline) ||\n validationInlineInternal\n ? \"\"\n : currentStatus\n }\n message={showStatusText ? currentValidationText : \"\"}\n ariaLiveMode={messageAriaLive}\n for={inputId}\n fullWidth={fullWidth}\n >\n {isSlotUsed(el, \"validation-text\") && (\n <slot name=\"validation-text\" slot=\"validation-message\"></slot>\n )}\n {!readonly && maxNumChars > 0 && (\n <div slot=\"validation-message-adornment\">\n {!hideCharCount && (\n <ic-typography variant=\"caption\" class=\"char-count-text\">\n <span class=\"char-count\">\n {numChars}/{maxNumChars}\n </span>\n </ic-typography>\n )}\n <span\n class=\"remaining-char-count-desc\"\n aria-live=\"polite\"\n hidden={!isFocussed}\n id={remainingCharCountDescId}\n >\n {remainingCharCountDesc}\n </span>\n <span hidden={true} id={hiddenCharCountDescId}>\n Field can contain a maximum of {maxNumChars} characters.\n </span>\n </div>\n )}\n </ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,h as t,H as i,g as a}from"./p-8e4e97b4.js";import{D as o,i as n,f as s,t as l,h as r}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,h as t,H as i,g as a}from"./p-8e4e97b4.js";import{D as o,i as n,f as s,t as l,h as r}from"./p-b77b1e1f.js";import"./p-6215e2ae.js";const d='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{position:relative;display:block}.data{display:flex;align-items:top}.text-cells{display:flex;flex-grow:1;min-width:0;--ic-typography-color:var(--ic-data-list-text-cell);color:var(--ic-data-list-text-cell)}.label{width:var(--data-row-label-width, 12.5rem);min-width:12.5rem;margin-right:var(--ic-space-md);--ic-typography-color:var(--ic-data-list-text-label);color:var(--ic-data-list-text-label)}.value{flex-grow:1}slot[name="value"]::slotted(ic-text-field[readonly][hide-label]){margin-top:calc(var(--ic-space-xs) * -1)}slot[name="value"]::slotted(ic-text-field[small][readonly][hide-label]){margin-top:calc(var(--ic-space-xxs) * -1)}slot[name="value"]::slotted(ic-text-field[readonly][hide-label][rows]){margin-top:calc(var(--ic-space-xxs) * -1 - var(--ic-space-xxxs))}.end-component{width:-moz-fit-content;width:fit-content;margin-left:3.5rem}.divider{margin-top:var(--ic-space-md);height:var(--ic-border-width);background-color:var(--ic-data-list-keyline-cell)}:host(.ic-data-row-small) .divider{margin-top:var(--ic-space-xs)}:host(.breakpoint-medium) .label{width:10rem;min-width:10rem}:host(.breakpoint-xs) .text-cells{flex-direction:column}:host(.breakpoint-xs) .label{width:8rem;margin-bottom:var(--ic-space-xs)}:host(.breakpoint-xs) .value{max-width:95%}:host(.breakpoint-xs) .end-component{margin-left:0}@media (forced-colors: active){.divider{background-color:canvastext}}';const c=d;const b=class{constructor(i){e(this,i);this.hasEndComponent=false;this.resizeObserver=null;this.deviceSize=o.XL;this.size="medium";this.theme="inherit";this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{this.checkLabelAbove()}));this.resizeObserver.observe(this.el)};this.renderCellContent=e=>{const i=e==="value";return t("div",{class:e},n(this.el,e)?t("slot",{name:e}):t("ic-typography",{variant:i?"body":this.listSize==="xs"?"label":"subtitle-large"},i?this.value:this.label))}}disconnectedCallback(){var e;(e=this.resizeObserver)===null||e===void 0?void 0:e.disconnect()}componentWillLoad(){this.deviceSize=s();this.hasEndComponent=l(this.el,"end-component");this.checkLabelAbove()}componentDidLoad(){r(this.runResizeObserver);if(this.hasEndComponent)this.labelEndComponent()}checkLabelAbove(){var e;const t=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(".data");if(t){const e=(t===null||t===void 0?void 0:t.clientWidth)+46;if(e){this.listSize=e<o.S?"xs":e<o.M?"m":"xl"}}}labelEndComponent(){var e;(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelectorAll("slot[name=end-component]").forEach((e=>e.setAttribute("aria-label",`for ${this.label} row`)))}render(){const{el:e,listSize:a,hasEndComponent:o,label:s,renderCellContent:l,size:r,theme:d,value:c}=this;return t(i,{key:"d5c6ff5a373e32e4e310dd0ddb6bbcfea0f2704a",class:{["ic-data-row-small"]:r==="small",["breakpoint-medium"]:a==="m",["breakpoint-xs"]:a==="xs",[`ic-theme-${d}`]:d!=="inherit"},role:"listitem"},t("div",{key:"b2867cd3b8a493ec7e4f4cff48849d94560c1fdc",class:"data"},t("div",{key:"d3fd667e4612907b81081ddae99c3228e2dbb954",class:"text-cells"},(n(e,"label")||s)&&l("label"),(n(e,"value")||c)&&l("value")),o&&t("div",{key:"dbbb33f8a2726f801dc72ca1f11544073ba8bc69",class:"end-component"},t("slot",{key:"fd4b247214447bac2a7a5bc9385a8f91cb44436f",name:"end-component"}))),t("div",{key:"8e19fde06b9fa34a3295e37fe726f163593f6674",class:"divider"}))}get el(){return a(this)}};b.style=c;export{b as ic_data_row};
|
|
2
|
+
//# sourceMappingURL=p-a780a34b.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as i,h as s,H as t,g as e}from"./p-8e4e97b4.js";const
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as i,h as s,H as t,g as e}from"./p-8e4e97b4.js";const c=":host{display:block}ic-link{position:absolute;left:-9999px}ic-link:focus{z-index:var(--ic-z-index-skip-link);left:var(--ic-space-sm);padding:var(--ic-space-sm);box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);width:-moz-fit-content;width:fit-content}.display-top:focus{top:var(--ic-skip-link-position-top, var(--ic-space-sm))}.inline:focus{position:static;display:inline-block;margin:var(--ic-space-xs) 0}.full-width:focus{display:flex;right:var(--ic-space-sm);width:auto}.inline.full-width:focus{justify-content:start}.show-background{background:var(--ic-skip-link-background)}";const a=c;const o=class{constructor(s){i(this,s);this.fullWidth=false;this.inline=false;this.label="Skip to main content";this.monochrome=false;this.theme="inherit";this.transparentBackground=false}async setFocus(){if(this.linkEl)this.linkEl.setFocus()}render(){const{fullWidth:i,inline:e,label:c,monochrome:a,target:o,theme:n,transparentBackground:r}=this;return s(t,{key:"90a25f2594d0169a8ee6f1d03b30a30fccb17168",class:{[`ic-theme-${n}`]:n!=="inherit"}},s("ic-link",{key:"79c0f5121c3ac8bae5992756f3c628f381ebe576",class:{"display-top":!e,"full-width":!!i,"show-background":!r,inline:!!e},href:`#${o}`,monochrome:a,theme:n,ref:i=>this.linkEl=i},c))}get el(){return e(this)}};o.style=a;export{o as ic_skip_link};
|
|
2
|
+
//# sourceMappingURL=p-aad03a3c.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,h as r,H as i,g as t}from"./p-8e4e97b4.js";import{C as c}from"./p-3b185c32.js";import{
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,h as r,H as i,g as t}from"./p-8e4e97b4.js";import{C as c}from"./p-3b185c32.js";import{F as a,i as o}from"./p-b77b1e1f.js";import"./p-6215e2ae.js";const s=`<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z" fill="currentColor"/>\n</svg>\n`;const n=":host{display:block;margin:var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0}:host .breadcrumb{display:flex;align-items:center;white-space:nowrap;gap:var(--ic-space-xs);min-height:var(--ic-space-lg)}:host .chevron{width:var(--ic-space-lg);height:var(--ic-space-lg)}:host .chevron svg,:host(.ic-breadcrumb-monochrome) .chevron svg{color:var(--ic-breadcrumb-icon-chevron)}:host(:first-child) .chevron{display:none}.back-icon svg{color:var(--ic-breadcrumb-icon)}:host(.ic-breadcrumb-monochrome) .back-icon svg{color:var(--ic-breadcrumb-icon-monochrome)}:host(.ic-breadcrumb-back){display:flex;align-items:center}:host(.ic-breadcrumb-back) .chevron{display:none}ic-link{--breadcrumb-link-display:inline-flex;--breadcrumb-link-align-items:center;--breadcrumb-link-gap:var(--ic-space-xs)}:host(.ic-breadcrumb-aria-current-page){cursor:text}:host(.ic-breadcrumb-aria-current-page) .current-page-container{display:flex;align-items:center;gap:var(--ic-space-xs);color:var(--ic-breadcrumb-text)}:host(.ic-breadcrumb-aria-current-page).ic-breadcrumb-monochrome .current-page-container{color:var(--ic-breadcrumb-text-monochrome)}:host(.ic-breadcrumb-aria-current-page) slot{pointer-events:none}:host(.collapsed-breadcrumb-wrapper){margin-right:var(--ic-space-xs) !important;display:flex;align-items:center;gap:var(--ic-space-xs)}:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb){border:none;background-color:transparent;color:var(--ic-color-hyperlink-default);text-decoration:underline;font-weight:var(--ic-font-weight-bold);cursor:pointer}:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:hover),:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:focus){outline:var(--ic-hc-focus-outline);border-bottom:0.25rem solid !important;margin-bottom:-0.25rem !important;text-decoration:none}.hide,:host(.collapsed-breadcrumb-wrapper) ::slotted(.hide){display:none}.slotted-link-container{gap:var(--ic-space-xs);display:flex}.slotted-link-container .back-icon{width:1.5rem;height:1.5rem}.slotted-link-container .link-wrapper{line-height:1.5rem}@media (forced-colors: active){.back-icon svg{color:currentcolor}}@supports (text-underline-offset: 25%){ic-link{--breadcrumb-link-display:flex}:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:hover),:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:focus){text-decoration-line:underline;text-decoration-thickness:25%;text-underline-offset:25%;border-bottom:0 !important;margin-bottom:0 !important}}";const l=n;const d=class{constructor(i){e(this,i);this.HREF_ATTR="href";this.linkSlotContent=null;this.slottedLinkEl=null;this.slottedLinkHref=null;this.current=false;this.monochrome=false;this.showBackIcon=false;this.theme="inherit";this.updatedSlottedLinkFocus=()=>{var e,r;if(this.linkSlotContent){this.linkSlotContent.tabIndex=this.current?-1:0}if(this.current){(e=this.slottedLinkEl)===null||e===void 0?void 0:e.removeAttribute(this.HREF_ATTR)}else if(this.slottedLinkHref){(r=this.slottedLinkEl)===null||r===void 0?void 0:r.setAttribute(this.HREF_ATTR,this.slottedLinkHref)}};this.getSlottedLinkEl=()=>{if(!this.linkSlotContent)return null;return this.linkSlotContent.hasAttribute(this.HREF_ATTR)?this.linkSlotContent:this.linkSlotContent.querySelector("[href]")};this.renderBackIcon=()=>r("div",{class:"back-icon",innerHTML:s})}watchCurrentHandler(){this.updatedSlottedLinkFocus();this.el.ariaCurrent=this.current?"page":null}componentDidLoad(){var e,r;const i=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(".link-wrapper");if(i){const e=a(i);if(e){this.linkSlotContent=e[0];this.slottedLinkEl=this.getSlottedLinkEl();this.slottedLinkHref=((r=this.slottedLinkEl)===null||r===void 0?void 0:r.getAttribute("href"))||null}this.updatedSlottedLinkFocus()}}componentWillRender(){const e=this.el.querySelector("ic-link");if(e){const r="current-page";e.classList.remove(r);if(this.current&&!e.classList.contains(r)){e.classList.add("breadcrumb-link",r)}}}async setFocus(){var e,r;(r=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector("ic-link"))===null||r===void 0?void 0:r.focus()}render(){const{current:e,href:t,monochrome:a,pageTitle:s,showBackIcon:n,theme:l}=this;const d=`${s===null||s===void 0?void 0:s.toLowerCase().replace(" ","-")}-describedby`;return r(i,{key:"a7096975249f31144ffd6cd3c4cf6953169118ee",class:{"ic-breadcrumb-back":n,"ic-breadcrumb-monochrome":a,[`ic-theme-${l}`]:l!=="inherit",[`ic-breadcrumb-aria-current-page`]:e},"aria-current":e&&"page",role:"listitem"},r("div",{key:"8b8254900371f6888fcbf7c9ef800acdb6804dfb",class:"breadcrumb"},r("span",{key:"1a0159b54b3f432098ba881c6563eaf563916872",innerHTML:c,class:"chevron","aria-hidden":"true"}),n&&r("span",{key:"512f88714836b57162c1920cbea4eb1203f7573b",id:d,class:"hide"},`Back to ${s}`),!t?r("div",{class:"slotted-link-container"},n&&this.renderBackIcon(),r("span",{class:"link-wrapper"},r("slot",null))):e?r("span",{class:"current-page-container"},o(this.el,"icon")&&r("slot",{name:"icon"}),s):r("ic-link",{theme:l,monochrome:a,href:t,class:"breadcrumb-link","aria-describedby":n&&d},n&&this.renderBackIcon(),o(this.el,"icon")&&r("slot",{name:"icon"}),s)))}static get delegatesFocus(){return true}get el(){return t(this)}static get watchers(){return{current:["watchCurrentHandler"]}}};d.style=l;export{d as ic_breadcrumb};
|
|
2
|
+
//# sourceMappingURL=p-aaf4e367.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,h as t,H as o,g as i}from"./p-8e4e97b4.js";const n='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}@keyframes loading{0%{background-color:var(--ic-skeleton-background)}50%{background-color:var(--ic-skeleton-background-secondary)}100%{background-color:var(--ic-skeleton-background)}}:host(.skeleton){background-color:var(--ic-skeleton-background);border-radius:var(--ic-border-radius);animation:loading 1200ms infinite;display:inline-block}:host(.skeleton)>*{opacity:0;visibility:hidden}:host(.ic-skeleton-circle){border-radius:50%}@media (forced-colors: active){:host(.skeleton){-ms-high-contrast-adjust:none;forced-color-adjust:none;background:currentcolor}}';const r=n;const a={text:"1em",circle:"25px",rectangle:"93px"};const s={text:"260px",circle:"25px",rectangle:"260px"};const
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,h as t,H as o,g as i}from"./p-8e4e97b4.js";const n='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}@keyframes loading{0%{background-color:var(--ic-skeleton-background)}50%{background-color:var(--ic-skeleton-background-secondary)}100%{background-color:var(--ic-skeleton-background)}}:host(.skeleton){background-color:var(--ic-skeleton-background);border-radius:var(--ic-border-radius);animation:loading 1200ms infinite;display:inline-block}:host(.skeleton)>*{opacity:0;visibility:hidden}:host(.ic-skeleton-circle){border-radius:50%}@media (forced-colors: active){:host(.skeleton){-ms-high-contrast-adjust:none;forced-color-adjust:none;background:currentcolor}}';const r=n;const a={text:"1em",circle:"25px",rectangle:"93px"};const s={text:"260px",circle:"25px",rectangle:"260px"};const l=class{constructor(t){e(this,t);this.theme="inherit";this.variant="rectangle"}render(){const{variant:e="rectangle",theme:i,el:n}=this;let r=this.height;let l=this.width;if(e==="circle"){if(r&&!l){l=r}else if(l&&!r){r=l}}const c=!n.firstElementChild?{height:n.style.height||r||a[e],width:n.style.width||l||s[e]}:undefined;return t(o,{key:"a68ad9122c6ad09b2283f2d6168e6286c8c8157f",class:{skeleton:true,"ic-skeleton-circle":e==="circle",[`ic-theme-${i}`]:i!=="inherit"},style:c,"aria-disabled":"true"},t("slot",{key:"a44bc7abbfb1f33581eec83e06556936ee410636"}))}get el(){return i(this)}};l.style=r;export{l as ic_skeleton};
|
|
2
|
+
//# sourceMappingURL=p-b52c44eb.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as i,c as t,h as e,H as o,g as n}from"./p-8e4e97b4.js";import{D as a,g as s,f as r,B as d}from"./p-dbc8bf0c.js";import{C as h}from"./p-3b185c32.js";import"./p-6215e2ae.js";const p='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;--ic-typography-color:currentcolor}:host(.in-side-menu){border-bottom:var(--ic-border-width) solid\n var(--ic-divider-background-monochrome);padding:var(--ic-space-md) 0}:host .navigation-group{height:100%;width:-moz-fit-content;width:fit-content;color:var(--ic-brand-text-color);display:flex;gap:var(--ic-space-xxs);align-items:center;justify-content:center;padding:0 var(--ic-space-md);transition:var(--ic-easing-transition-slow);position:relative;background:none;border:none;text-align:left;box-sizing:border-box}:host .navigation-group:hover,:host .navigation-group:active,:host .selected{background-color:var(--ic-architectural-20);color:var(--ic-color-text-primary-light);outline:none;cursor:pointer}:host(.in-side-menu) .navigation-group{min-height:2.5rem;width:100%;gap:1.25rem}:host(.in-side-menu) .navigation-group .ic-typography-label{width:100%}:host(.in-side-menu:not(.ic-navigation-group-expandable)) .navigation-group,:host(.in-side-menu) .navigation-group-side-menu-collapsed,:host(.in-side-menu) .navigation-group-side-menu-expanded{color:var(--ic-top-navigation-nav-group-link);justify-content:flex-start;padding:var(--ic-space-xs) var(--ic-space-md)}:host(.in-side-menu) .navigation-group-side-menu-expanded{margin-bottom:var(--ic-space-xs)}:host(.in-side-menu) .navigation-group-side-menu-collapsed::after,:host(.in-side-menu) .navigation-group-side-menu-expanded::after{border-style:solid;border-width:0.125em 0.125em 0 0;content:"";display:inline-block;min-height:0.45em;position:relative;top:-0.1em;transform:rotate(135deg);vertical-align:top;min-width:0.45em}:host(.in-side-menu) .navigation-group-side-menu-expanded::after{top:0.15em;transform:rotate(-45deg)}:host(:not(.in-side-menu)) .navigation-group:focus{box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);outline:var(--ic-hc-focus-outline);z-index:var(--ic-z-index-navigation-item);transition:box-shadow var(--ic-easing-transition-fast)}:host(.in-side-menu) .navigation-group-side-menu-expanded:hover:not(:focus),:host(.in-side-menu) .navigation-group-side-menu-collapsed:hover:not(:focus){background-color:var(--ic-top-navigation-nav-group-hover);cursor:pointer}:host(.in-side-menu) .navigation-group-side-menu-expanded:active:not(:focus),:host(.in-side-menu) .navigation-group-side-menu-collapsed:active:not(:focus){background-color:var(--ic-top-navigation-nav-group-pressed)}:host(.in-side-menu) .navigation-group-side-menu-expanded:focus,:host(.in-side-menu) .navigation-group-side-menu-collapsed:focus{box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);outline:var(--ic-hc-focus-outline);background:none}:host .navigation-group-dropdown{background-color:var(--ic-top-navigation-menu-background);border-bottom:var(--ic-space-1px) solid var(--ic-top-navigation-menu-border);position:absolute;left:0;right:0;padding:var(--ic-space-xs) var(--ic-space-md);box-shadow:0 0.375rem 0.5rem -0.375rem rgba(0 0 0 / 20%);z-index:calc(var(--ic-z-index-navigation-item) - 1)}:host .navigation-group-dropdown-items-list{list-style:none;display:flex;flex-flow:column wrap;align-content:flex-start;padding-left:var(--ic-space-md);max-height:16.5rem}:host .chevron-toggle-icon-wrapper{display:flex;align-items:center}:host .chevron-toggle-icon-wrapper svg{transform:rotate(90deg);height:var(--ic-space-lg);width:var(--ic-space-lg)}:host .chevron-toggle-icon-closed svg{transform:rotate(-90deg)}#nav-group-title{text-wrap:nowrap}:host(.in-side-menu) #nav-group-title{text-wrap:wrap}:host(.ic-navigation-group-side-nav) #nav-group-title{text-wrap:wrap}:host(.ic-navigation-group-expanded) .grouped-links-wrapper{height:var(--navigation-child-items-height, auto) !important;transition:var(--ic-easing-transition-slow);overflow:hidden}:host(.ic-navigation-group-side-nav) .link,:host(.ic-navigation-group-side-nav) ::slotted(a){height:var(--navigation-child-items-height, auto)}:host(.ic-navigation-group-collapsed) .grouped-links-wrapper{height:0;transition:var(--ic-easing-transition-slow);overflow:hidden}:host(.ic-navigation-group-side-nav) .navigation-group{min-height:var(--navigation-group-height);height:-moz-fit-content;height:fit-content;min-width:100%;width:var(--navigation-group-width, auto);justify-content:var(--navigation-group-justify-content);padding:var(--ic-space-md) var(--navigation-group-expand-toggle-padding)\n var(--ic-space-xs) var(--ic-space-md)}:host(.ic-navigation-group-side-nav:not(.ic-navigation-group-expandable)) .navigation-group{padding-right:var(--ic-space-md)}:host(.ic-navigation-group-side-nav) .navigation-group:hover,:host(.ic-navigation-group-side-nav) .navigation-group:active,:host(.ic-navigation-group-side-nav) .selected{background-color:var(--navigation-group-hover);color:var(--navigation-group-text-hover)}:host(.ic-navigation-group-side-nav:not(.ic-navigation-group-expandable)) .navigation-group:hover,:host(.ic-navigation-group-side-nav:not(.ic-navigation-group-expandable)) .navigation-group:active,:host(.in-side-menu:not(.ic-navigation-group-expandable)) .navigation-group:hover,:host(.in-side-menu:not(.ic-navigation-group-expandable)) .navigation-group:active{background:none;cursor:auto}:host(.ic-navigation-group-side-nav) .navigation-group:focus{box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);background:none}:host(.ic-navigation-group-side-nav) .ic-typography-caption{position:var(--navigation-group-title-position);left:var(--navigation-group-title-position-left)}@media (prefers-reduced-motion: reduce){:host .navigation-group,:host(:not(.in-side-menu)) .navigation-group:focus,:host(.ic-navigation-group-expanded) .grouped-links-wrapper,:host(.ic-navigation-group-collapsed) .grouped-links-wrapper{transition:none}}';const c=p;const u="ic-navigation-item";const g=100;const l="IC-NAVIGATION-GROUP";const v=class{constructor(o){i(this,o);this.navigationGroupOpened=t(this,"navigationGroupOpened",7);this.navigationGroupExpanded=t(this,"navigationGroupExpanded",7);this.allGroupedNavigationItemHeights="";this.collapsedNavItemsHeight=null;this.expandedNavItemsHeight=null;this.mouseGate=false;this.deviceSize=a.XL;this.dropdownOpen=false;this.focusStyle=s();this.inTopNavSideMenu=false;this.isSideNavExpanded=false;this.expandable=false;this.expanded=true;this.theme="inherit";this.sideNavExpandHandler=i=>{this.isSideNavExpanded=i.detail.sideNavExpanded;if(!this.linkWrapper||!this.expanded)return;const t=this.isSideNavExpanded?this.expandedNavItemsHeight:this.collapsedNavItemsHeight;if(t){this.setGroupedLinksElementHeight(t)}else{setTimeout((()=>{if(this.isSideNavExpanded){this.expandedNavItemsHeight=this.allGroupedNavigationItemHeights}else{this.collapsedNavItemsHeight=this.allGroupedNavigationItemHeights}this.setGroupedLinksElementHeight(this.allGroupedNavigationItemHeights)}),g)}};this.topNavResizedHandler=({detail:{size:i}})=>{var t;if(i===this.deviceSize)return;this.deviceSize=i;this.inTopNavSideMenu=i<=(((t=this.parentEl)===null||t===void 0?void 0:t.customMobileBreakpoint)||a.L)};this.toggleExpanded=()=>{this.expanded=!this.expanded;if(!this.linkWrapper)return;this.setGroupedLinksElementHeight(!this.expanded?"0":this.isSideNavExpanded?this.expandedNavItemsHeight:this.collapsedNavItemsHeight);this.el.querySelectorAll(u).forEach((i=>{var t;const e=((t=i.shadowRoot)===null||t===void 0?void 0:t.querySelector("a"))||i.querySelector("a");e===null||e===void 0?void 0:e.setAttribute("tabindex",this.expanded?"0":"-1")}))};this.handleClick=i=>{if(this.navigationType==="top"&&i.detail){this.toggleDropdown()}else{this.toggleExpanded()}};this.handleBlur=i=>{if(!this.el.contains(i.relatedTarget)){this.hideDropdown()}};this.handleKeydown=i=>{const{key:t}=i;if(t!=="Enter"&&t!==" "&&t!=="Escape")return;switch(this.navigationType){case"top":if(t===" "||t==="Enter"){this.toggleDropdown()}else if(!this.inTopNavSideMenu){this.hideDropdown()}break;case"side":this.toggleExpanded();i.preventDefault();break;default:this.toggleExpanded();break}};this.handleMouseLeave=i=>{const t=i.relatedTarget;this.mouseGate=false;if(this.el.contains(t)||t===this.dropdown||this.el.contains(document.activeElement))return;if(document.activeElement!==this.el&&(t===null||t===void 0?void 0:t.nodeName)===l&&this.dropdownOpen){this.mouseGate=true;this.hideDropdown()}else{this.mouseGate=false;setTimeout((()=>{this.dropdownOpen?this.hideDropdown():null}),500)}};this.handleMouseEnter=i=>{const t=i.relatedTarget;document.addEventListener("keydown",this.handleKeydown);if((t===null||t===void 0?void 0:t.nodeName)===l&&this.mouseGate){this.showDropdown()}else if(!this.dropdownOpen&&!this.mouseGate){this.mouseGate=true;setTimeout((()=>{if(this.mouseGate)this.showDropdown()}),500)}};this.renderGroupTitleText=()=>e("ic-typography",{id:"nav-group-title",variant:this.navigationType==="side"?"caption":"label"},this.label);this.renderNavigationItems=()=>{if(this.dropdownOpen||this.inTopNavSideMenu&&!this.expandable){return e("div",{class:{[this.inTopNavSideMenu?"navigation-group-dropdown-side-menu":"navigation-group-dropdown"]:true,selected:this.dropdownOpen&&!this.inTopNavSideMenu},onMouseLeave:!this.inTopNavSideMenu?this.handleMouseLeave:undefined,ref:i=>this.dropdown=i},e("nav",{class:{"navigation-group-dropdown-items":!this.inTopNavSideMenu},"aria-labelledby":"nav-group-title"},e("ul",null,e("slot",null))))}if(this.navigationType!=="top"){return e("ul",{ref:i=>this.linkWrapper=i,class:"grouped-links-wrapper"},e("slot",null))}return null};this.setGroupedLinksElementHeight=i=>{var t;(t=this.linkWrapper)===null||t===void 0?void 0:t.style.setProperty("--navigation-child-items-height",i)}}disconnectedCallback(){var i,t;if(this.navigationType==="side"){(i=this.parentEl)===null||i===void 0?void 0:i.removeEventListener("icSideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){(t=this.parentEl)===null||t===void 0?void 0:t.removeEventListener("icTopNavResized",this.topNavResizedHandler)}}componentWillLoad(){var i,t;this.deviceSize=r();const{navType:e,parent:o}=d(this.el);this.navigationType=e;this.parentEl=o;if(this.navigationType==="side"){(i=this.parentEl)===null||i===void 0?void 0:i.addEventListener("icSideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){(t=this.parentEl)===null||t===void 0?void 0:t.addEventListener("icTopNavResized",this.topNavResizedHandler);if(this.deviceSize<=this.parentEl.customMobileBreakpoint)this.inTopNavSideMenu=true}}componentDidLoad(){this.allGroupedNavigationItemHeights=`${Array.from(this.el.querySelectorAll(u)).reduce(((i,{offsetHeight:t})=>i+t),0)}px`;setTimeout((()=>{if(!this.linkWrapper||!this.expanded)return;if(!this.isSideNavExpanded)this.collapsedNavItemsHeight=this.allGroupedNavigationItemHeights;else this.expandedNavItemsHeight=this.allGroupedNavigationItemHeights;this.setGroupedLinksElementHeight(this.allGroupedNavigationItemHeights)}),g)}childBlurHandler(){this.hideDropdown()}handleNavigationGroupOpened(i){if(i.detail.source!==this.el){this.hideDropdown()}}navItemClickHandler(){this.hideDropdown()}brandChangeHandler(i){this.focusStyle=i.detail.mode}async setFocus(){var i;(i=this.groupEl)===null||i===void 0?void 0:i.focus()}toggleDropdown(){this.dropdownOpen=!this.dropdownOpen;if(this.inTopNavSideMenu){this.navigationGroupExpanded.emit({expanded:this.dropdownOpen})}}showDropdown(){if(!this.dropdownOpen){this.navigationGroupOpened.emit({source:this.el});this.toggleDropdown()}}hideDropdown(){document.removeEventListener("keydown",this.handleKeydown);if(this.dropdownOpen){this.toggleDropdown()}}render(){const{dropdownOpen:i,expanded:t,inTopNavSideMenu:n,expandable:a,theme:s,isSideNavExpanded:r,focusStyle:d}=this;const p=i=>i?"expanded":"collapsed";const c={"navigation-group":true,[d]:!n,[`navigation-group-side-menu-${p(i)}`]:n&&a,selected:i&&!n};const u=this.navigationType==="side";const g=this.navigationType==="top";const l=!n&&g;const v=u&&t||g&&i;return e(o,{key:"8beae9a83bf5800290e744c9f0ede4b3136d9d44",class:{"in-side-menu":n,"ic-navigation-group-expandable":a,"ic-navigation-group-side-nav":u,[`ic-navigation-group-${p(t)}`]:true,[`ic-theme-${s}`]:s!=="inherit"},role:"listitem"},a||l?e("button",{onMouseEnter:l?this.handleMouseEnter:undefined,onMouseLeave:g?this.handleMouseLeave:undefined,onBlur:this.handleBlur,onClick:this.handleClick,onKeyDown:this.handleKeydown,class:c,ref:i=>this.groupEl=i,"aria-expanded":`${v}`,"aria-haspopup":`${l}`},this.renderGroupTitleText(),u&&a&&e("div",{class:{"chevron-toggle-icon-wrapper":true,"chevron-toggle-icon-closed":!!t},innerHTML:h})):(!u||r)&&e("div",{class:c},this.renderGroupTitleText()),this.renderNavigationItems())}static get delegatesFocus(){return true}get el(){return n(this)}};v.style=c;export{v as ic_navigation_group};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as i,c as t,h as e,H as o,g as n}from"./p-8e4e97b4.js";import{D as a,g as s,f as r,B as d}from"./p-b77b1e1f.js";import{C as h}from"./p-3b185c32.js";import"./p-6215e2ae.js";const p='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;--ic-typography-color:currentcolor}:host(.in-side-menu){border-bottom:var(--ic-border-width) solid\n var(--ic-divider-background-monochrome);padding:var(--ic-space-md) 0}:host .navigation-group{height:100%;width:-moz-fit-content;width:fit-content;color:var(--ic-brand-text-color);display:flex;gap:var(--ic-space-xxs);align-items:center;justify-content:center;padding:0 var(--ic-space-md);transition:var(--ic-easing-transition-slow);position:relative;background:none;border:none;text-align:left;box-sizing:border-box}:host .navigation-group:hover,:host .navigation-group:active,:host .selected{background-color:var(--ic-architectural-20);color:var(--ic-color-text-primary-light);outline:none;cursor:pointer}:host(.in-side-menu) .navigation-group{min-height:2.5rem;width:100%;gap:1.25rem}:host(.in-side-menu) .navigation-group .ic-typography-label{width:100%}:host(.in-side-menu:not(.ic-navigation-group-expandable)) .navigation-group,:host(.in-side-menu) .navigation-group-side-menu-collapsed,:host(.in-side-menu) .navigation-group-side-menu-expanded{color:var(--ic-top-navigation-nav-group-link);justify-content:flex-start;padding:var(--ic-space-xs) var(--ic-space-md)}:host(.in-side-menu) .navigation-group-side-menu-expanded{margin-bottom:var(--ic-space-xs)}:host(.in-side-menu) .navigation-group-side-menu-collapsed::after,:host(.in-side-menu) .navigation-group-side-menu-expanded::after{border-style:solid;border-width:0.125em 0.125em 0 0;content:"";display:inline-block;min-height:0.45em;position:relative;top:-0.1em;transform:rotate(135deg);vertical-align:top;min-width:0.45em}:host(.in-side-menu) .navigation-group-side-menu-expanded::after{top:0.15em;transform:rotate(-45deg)}:host(:not(.in-side-menu)) .navigation-group:focus{box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);outline:var(--ic-hc-focus-outline);z-index:var(--ic-z-index-navigation-item);transition:box-shadow var(--ic-easing-transition-fast)}:host(.in-side-menu) .navigation-group-side-menu-expanded:hover:not(:focus),:host(.in-side-menu) .navigation-group-side-menu-collapsed:hover:not(:focus){background-color:var(--ic-top-navigation-nav-group-hover);cursor:pointer}:host(.in-side-menu) .navigation-group-side-menu-expanded:active:not(:focus),:host(.in-side-menu) .navigation-group-side-menu-collapsed:active:not(:focus){background-color:var(--ic-top-navigation-nav-group-pressed)}:host(.in-side-menu) .navigation-group-side-menu-expanded:focus,:host(.in-side-menu) .navigation-group-side-menu-collapsed:focus{box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);outline:var(--ic-hc-focus-outline);background:none}:host .navigation-group-dropdown{background-color:var(--ic-top-navigation-menu-background);border-bottom:var(--ic-space-1px) solid var(--ic-top-navigation-menu-border);position:absolute;left:0;right:0;padding:var(--ic-space-xs) var(--ic-space-md);box-shadow:0 0.375rem 0.5rem -0.375rem rgba(0 0 0 / 20%);z-index:calc(var(--ic-z-index-navigation-item) - 1)}:host .navigation-group-dropdown-items-list{list-style:none;display:flex;flex-flow:column wrap;align-content:flex-start;padding-left:var(--ic-space-md);max-height:16.5rem}:host .chevron-toggle-icon-wrapper{display:flex;align-items:center}:host .chevron-toggle-icon-wrapper svg{transform:rotate(90deg);height:var(--ic-space-lg);width:var(--ic-space-lg)}:host .chevron-toggle-icon-closed svg{transform:rotate(-90deg)}#nav-group-title{text-wrap:nowrap}:host(.in-side-menu) #nav-group-title{text-wrap:wrap}:host(.ic-navigation-group-side-nav) #nav-group-title{text-wrap:wrap}:host(.ic-navigation-group-expanded) .grouped-links-wrapper{height:var(--navigation-child-items-height, auto) !important;transition:var(--ic-easing-transition-slow);overflow:hidden}:host(.ic-navigation-group-side-nav) .link,:host(.ic-navigation-group-side-nav) ::slotted(a){height:var(--navigation-child-items-height, auto)}:host(.ic-navigation-group-collapsed) .grouped-links-wrapper{height:0;transition:var(--ic-easing-transition-slow);overflow:hidden}:host(.ic-navigation-group-side-nav) .navigation-group{min-height:var(--navigation-group-height);height:-moz-fit-content;height:fit-content;min-width:100%;width:var(--navigation-group-width, auto);justify-content:var(--navigation-group-justify-content);padding:var(--ic-space-md) var(--navigation-group-expand-toggle-padding)\n var(--ic-space-xs) var(--ic-space-md)}:host(.ic-navigation-group-side-nav:not(.ic-navigation-group-expandable)) .navigation-group{padding-right:var(--ic-space-md)}:host(.ic-navigation-group-side-nav) .navigation-group:hover,:host(.ic-navigation-group-side-nav) .navigation-group:active,:host(.ic-navigation-group-side-nav) .selected{background-color:var(--navigation-group-hover);color:var(--navigation-group-text-hover)}:host(.ic-navigation-group-side-nav:not(.ic-navigation-group-expandable)) .navigation-group:hover,:host(.ic-navigation-group-side-nav:not(.ic-navigation-group-expandable)) .navigation-group:active,:host(.in-side-menu:not(.ic-navigation-group-expandable)) .navigation-group:hover,:host(.in-side-menu:not(.ic-navigation-group-expandable)) .navigation-group:active{background:none;cursor:auto}:host(.ic-navigation-group-side-nav) .navigation-group:focus{box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);background:none}:host(.ic-navigation-group-side-nav) .ic-typography-caption{position:var(--navigation-group-title-position);left:var(--navigation-group-title-position-left)}@media (prefers-reduced-motion: reduce){:host .navigation-group,:host(:not(.in-side-menu)) .navigation-group:focus,:host(.ic-navigation-group-expanded) .grouped-links-wrapper,:host(.ic-navigation-group-collapsed) .grouped-links-wrapper{transition:none}}';const u=p;const c="ic-navigation-item";const g=100;const l="IC-NAVIGATION-GROUP";const v=class{constructor(o){i(this,o);this.navigationGroupOpened=t(this,"navigationGroupOpened",7);this.navigationGroupExpanded=t(this,"navigationGroupExpanded",7);this.allGroupedNavigationItemHeights="";this.collapsedNavItemsHeight=null;this.expandedNavItemsHeight=null;this.mouseGate=false;this.deviceSize=a.XL;this.dropdownOpen=false;this.focusStyle=s();this.inTopNavSideMenu=false;this.isSideNavExpanded=false;this.expandable=false;this.expanded=true;this.theme="inherit";this.sideNavExpandHandler=i=>{this.isSideNavExpanded=i.detail.sideNavExpanded;if(!this.linkWrapper||!this.expanded)return;const t=this.isSideNavExpanded?this.expandedNavItemsHeight:this.collapsedNavItemsHeight;if(t){this.setGroupedLinksElementHeight(t)}else{setTimeout((()=>{if(this.isSideNavExpanded){this.expandedNavItemsHeight=this.allGroupedNavigationItemHeights}else{this.collapsedNavItemsHeight=this.allGroupedNavigationItemHeights}this.setGroupedLinksElementHeight(this.allGroupedNavigationItemHeights)}),g)}};this.topNavResizedHandler=({detail:{size:i}})=>{var t;if(i===this.deviceSize)return;this.deviceSize=i;this.inTopNavSideMenu=i<=(((t=this.parentEl)===null||t===void 0?void 0:t.customMobileBreakpoint)||a.L)};this.toggleExpanded=()=>{this.expanded=!this.expanded;if(!this.linkWrapper)return;this.setGroupedLinksElementHeight(!this.expanded?"0":this.isSideNavExpanded?this.expandedNavItemsHeight:this.collapsedNavItemsHeight);this.el.querySelectorAll(c).forEach((i=>{var t;const e=((t=i.shadowRoot)===null||t===void 0?void 0:t.querySelector("a"))||i.querySelector("a");e===null||e===void 0?void 0:e.setAttribute("tabindex",this.expanded?"0":"-1")}))};this.handleClick=i=>{if(this.navigationType==="top"&&i.detail){this.toggleDropdown()}else{this.toggleExpanded()}};this.handleBlur=i=>{if(!this.el.contains(i.relatedTarget)){this.hideDropdown()}};this.handleKeydown=i=>{const{key:t}=i;if(t!=="Enter"&&t!==" "&&t!=="Escape")return;switch(this.navigationType){case"top":if(t===" "||t==="Enter"){this.toggleDropdown()}else if(!this.inTopNavSideMenu){this.hideDropdown()}break;case"side":this.toggleExpanded();i.preventDefault();break;default:this.toggleExpanded();break}};this.handleMouseLeave=i=>{const t=i.relatedTarget;this.mouseGate=false;if(this.el.contains(t)||t===this.dropdown||this.el.contains(document.activeElement))return;if(document.activeElement!==this.el&&(t===null||t===void 0?void 0:t.nodeName)===l&&this.dropdownOpen){this.mouseGate=true;this.hideDropdown()}else{this.mouseGate=false;setTimeout((()=>{this.dropdownOpen?this.hideDropdown():null}),500)}};this.handleMouseEnter=i=>{const t=i.relatedTarget;document.addEventListener("keydown",this.handleKeydown);if((t===null||t===void 0?void 0:t.nodeName)===l&&this.mouseGate){this.showDropdown()}else if(!this.dropdownOpen&&!this.mouseGate){this.mouseGate=true;setTimeout((()=>{if(this.mouseGate)this.showDropdown()}),500)}};this.renderGroupTitleText=()=>e("ic-typography",{id:"nav-group-title",variant:this.navigationType==="side"?"caption":"label"},this.label);this.renderNavigationItems=()=>{if(this.dropdownOpen||this.inTopNavSideMenu&&!this.expandable){return e("div",{class:{[this.inTopNavSideMenu?"navigation-group-dropdown-side-menu":"navigation-group-dropdown"]:true,selected:this.dropdownOpen&&!this.inTopNavSideMenu},onMouseLeave:!this.inTopNavSideMenu?this.handleMouseLeave:undefined,ref:i=>this.dropdown=i},e("nav",{class:{"navigation-group-dropdown-items":!this.inTopNavSideMenu},"aria-labelledby":"nav-group-title"},e("ul",null,e("slot",null))))}if(this.navigationType!=="top"){return e("ul",{ref:i=>this.linkWrapper=i,class:"grouped-links-wrapper"},e("slot",null))}return null};this.setGroupedLinksElementHeight=i=>{var t;(t=this.linkWrapper)===null||t===void 0?void 0:t.style.setProperty("--navigation-child-items-height",i)}}disconnectedCallback(){var i,t;if(this.navigationType==="side"){(i=this.parentEl)===null||i===void 0?void 0:i.removeEventListener("icSideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){(t=this.parentEl)===null||t===void 0?void 0:t.removeEventListener("icTopNavResized",this.topNavResizedHandler)}}componentWillLoad(){var i,t;this.deviceSize=r();const{navType:e,parent:o}=d(this.el);this.navigationType=e;this.parentEl=o;if(this.navigationType==="side"){(i=this.parentEl)===null||i===void 0?void 0:i.addEventListener("icSideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){(t=this.parentEl)===null||t===void 0?void 0:t.addEventListener("icTopNavResized",this.topNavResizedHandler);if(this.deviceSize<=this.parentEl.customMobileBreakpoint)this.inTopNavSideMenu=true}}componentDidLoad(){this.allGroupedNavigationItemHeights=`${Array.from(this.el.querySelectorAll(c)).reduce(((i,{offsetHeight:t})=>i+t),0)}px`;setTimeout((()=>{if(!this.linkWrapper||!this.expanded)return;if(!this.isSideNavExpanded)this.collapsedNavItemsHeight=this.allGroupedNavigationItemHeights;else this.expandedNavItemsHeight=this.allGroupedNavigationItemHeights;this.setGroupedLinksElementHeight(this.allGroupedNavigationItemHeights)}),g)}childBlurHandler(){this.hideDropdown()}handleNavigationGroupOpened(i){if(i.detail.source!==this.el){this.hideDropdown()}}navItemClickHandler(){this.hideDropdown()}brandChangeHandler(i){this.focusStyle=i.detail.mode}async setFocus(){var i;(i=this.groupEl)===null||i===void 0?void 0:i.focus()}toggleDropdown(){this.dropdownOpen=!this.dropdownOpen;if(this.inTopNavSideMenu){this.navigationGroupExpanded.emit({expanded:this.dropdownOpen})}}showDropdown(){if(!this.dropdownOpen){this.navigationGroupOpened.emit({source:this.el});this.toggleDropdown()}}hideDropdown(){document.removeEventListener("keydown",this.handleKeydown);if(this.dropdownOpen){this.toggleDropdown()}}render(){const{dropdownOpen:i,expanded:t,inTopNavSideMenu:n,expandable:a,theme:s,isSideNavExpanded:r,focusStyle:d}=this;const p=i=>i?"expanded":"collapsed";const u={"navigation-group":true,[d]:!n,[`navigation-group-side-menu-${p(i)}`]:n&&a,selected:i&&!n};const c=this.navigationType==="side";const g=this.navigationType==="top";const l=!n&&g;const v=c&&t||g&&i;return e(o,{key:"8beae9a83bf5800290e744c9f0ede4b3136d9d44",class:{"in-side-menu":n,"ic-navigation-group-expandable":a,"ic-navigation-group-side-nav":c,[`ic-navigation-group-${p(t)}`]:true,[`ic-theme-${s}`]:s!=="inherit"},role:"listitem"},a||l?e("button",{onMouseEnter:l?this.handleMouseEnter:undefined,onMouseLeave:g?this.handleMouseLeave:undefined,onBlur:this.handleBlur,onClick:this.handleClick,onKeyDown:this.handleKeydown,class:u,ref:i=>this.groupEl=i,"aria-expanded":`${v}`,"aria-haspopup":`${l}`},this.renderGroupTitleText(),c&&a&&e("div",{class:{"chevron-toggle-icon-wrapper":true,"chevron-toggle-icon-closed":!!t},innerHTML:h})):(!c||r)&&e("div",{class:u},this.renderGroupTitleText()),this.renderNavigationItems())}static get delegatesFocus(){return true}get el(){return n(this)}};v.style=u;export{v as ic_navigation_group};
|
|
2
|
+
//# sourceMappingURL=p-b777f0a1.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["icNavigationGroupCss","IcNavigationGroupStyle0","IC_NAVIGATION_ITEM","DYNAMIC_GROUPED_LINKS_HEIGHT_MS","NODE_NAME","NavigationGroup","constructor","hostRef","this","allGroupedNavigationItemHeights","collapsedNavItemsHeight","expandedNavItemsHeight","mouseGate","deviceSize","DEVICE_SIZES","XL","dropdownOpen","focusStyle","getBrandForegroundAppearance","inTopNavSideMenu","isSideNavExpanded","expandable","expanded","theme","sideNavExpandHandler","event","detail","sideNavExpanded","linkWrapper","navItemsHeight","setGroupedLinksElementHeight","setTimeout","topNavResizedHandler","size","_a","parentEl","customMobileBreakpoint","L","toggleExpanded","el","querySelectorAll","forEach","navigationItem","navItem","shadowRoot","querySelector","setAttribute","handleClick","ev","navigationType","toggleDropdown","handleBlur","contains","relatedTarget","hideDropdown","handleKeydown","key","preventDefault","handleMouseLeave","relTarget","dropdown","document","activeElement","nodeName","handleMouseEnter","addEventListener","showDropdown","renderGroupTitleText","h","id","variant","label","renderNavigationItems","class","selected","onMouseLeave","undefined","ref","height","style","setProperty","disconnectedCallback","removeEventListener","_b","componentWillLoad","getCurrentDeviceSize","navType","parent","getNavItemParentDetails","componentDidLoad","Array","from","reduce","childrenHeights","offsetHeight","childBlurHandler","handleNavigationGroupOpened","source","navItemClickHandler","brandChangeHandler","mode","setFocus","groupEl","focus","navigationGroupExpanded","emit","navigationGroupOpened","render","getExpandedClassSuffix","prop","navGroupTitleClassNames","isSideNav","isTopNav","isTopNavDesktop","ariaExpanded","Host","role","onMouseEnter","onBlur","onClick","onKeyDown","innerHTML","chevronIcon"],"sources":["src/components/ic-navigation-group/ic-navigation-group.css?tag=ic-navigation-group&encapsulation=shadow","src/components/ic-navigation-group/ic-navigation-group.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-navigation-item: z-index of navigation group item\n */\n\n:host {\n display: block;\n\n --ic-typography-color: currentcolor;\n}\n\n:host(.in-side-menu) {\n border-bottom: var(--ic-border-width) solid\n var(--ic-divider-background-monochrome);\n padding: var(--ic-space-md) 0;\n}\n\n:host .navigation-group {\n height: 100%;\n width: fit-content;\n color: var(--ic-brand-text-color);\n display: flex;\n gap: var(--ic-space-xxs);\n align-items: center;\n justify-content: center;\n padding: 0 var(--ic-space-md);\n transition: var(--ic-easing-transition-slow);\n position: relative;\n background: none;\n border: none;\n text-align: left;\n box-sizing: border-box;\n}\n\n:host .navigation-group:hover,\n:host .navigation-group:active,\n:host .selected {\n background-color: var(--ic-architectural-20);\n color: var(--ic-color-text-primary-light);\n outline: none;\n cursor: pointer;\n}\n\n:host(.in-side-menu) .navigation-group {\n min-height: 2.5rem;\n width: 100%;\n gap: 1.25rem;\n}\n\n:host(.in-side-menu) .navigation-group .ic-typography-label {\n width: 100%;\n}\n\n:host(.in-side-menu:not(.ic-navigation-group-expandable)) .navigation-group,\n:host(.in-side-menu) .navigation-group-side-menu-collapsed,\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n color: var(--ic-top-navigation-nav-group-link);\n justify-content: flex-start;\n padding: var(--ic-space-xs) var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed::after,\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n border-style: solid;\n border-width: 0.125em 0.125em 0 0;\n content: \"\";\n display: inline-block;\n min-height: 0.45em;\n position: relative;\n top: -0.1em;\n transform: rotate(135deg);\n vertical-align: top;\n min-width: 0.45em;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n top: 0.15em;\n transform: rotate(-45deg);\n}\n\n:host(:not(.in-side-menu)) .navigation-group:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n z-index: var(--ic-z-index-navigation-item);\n transition: box-shadow var(--ic-easing-transition-fast);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:hover:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:hover:not(:focus) {\n background-color: var(--ic-top-navigation-nav-group-hover);\n cursor: pointer;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:active:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:active:not(:focus) {\n background-color: var(--ic-top-navigation-nav-group-pressed);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:focus,\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n outline: var(--ic-hc-focus-outline);\n background: none;\n}\n\n:host .navigation-group-dropdown {\n background-color: var(--ic-top-navigation-menu-background);\n border-bottom: var(--ic-space-1px) solid var(--ic-top-navigation-menu-border);\n position: absolute;\n left: 0;\n right: 0;\n padding: var(--ic-space-xs) var(--ic-space-md);\n box-shadow: 0 0.375rem 0.5rem -0.375rem rgba(0 0 0 / 20%);\n z-index: calc(var(--ic-z-index-navigation-item) - 1);\n}\n\n:host .navigation-group-dropdown-items-list {\n list-style: none;\n display: flex;\n flex-flow: column wrap;\n align-content: flex-start;\n padding-left: var(--ic-space-md);\n max-height: 16.5rem;\n}\n\n:host .chevron-toggle-icon-wrapper {\n display: flex;\n align-items: center;\n}\n\n:host .chevron-toggle-icon-wrapper svg {\n transform: rotate(90deg);\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host .chevron-toggle-icon-closed svg {\n transform: rotate(-90deg);\n}\n\n#nav-group-title {\n text-wrap: nowrap;\n}\n\n:host(.in-side-menu) #nav-group-title {\n text-wrap: wrap;\n}\n\n:host(.ic-navigation-group-side-nav) #nav-group-title {\n text-wrap: wrap;\n}\n\n:host(.ic-navigation-group-expanded) .grouped-links-wrapper {\n height: var(--navigation-child-items-height, auto) !important;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.ic-navigation-group-side-nav) .link,\n:host(.ic-navigation-group-side-nav) ::slotted(a) {\n height: var(--navigation-child-items-height, auto);\n}\n\n:host(.ic-navigation-group-collapsed) .grouped-links-wrapper {\n height: 0;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.ic-navigation-group-side-nav) .navigation-group {\n min-height: var(--navigation-group-height);\n height: fit-content;\n min-width: 100%;\n width: var(--navigation-group-width, auto);\n justify-content: var(--navigation-group-justify-content);\n padding: var(--ic-space-md) var(--navigation-group-expand-toggle-padding)\n var(--ic-space-xs) var(--ic-space-md);\n}\n\n:host(.ic-navigation-group-side-nav:not(.ic-navigation-group-expandable))\n .navigation-group {\n padding-right: var(--ic-space-md);\n}\n\n:host(.ic-navigation-group-side-nav) .navigation-group:hover,\n:host(.ic-navigation-group-side-nav) .navigation-group:active,\n:host(.ic-navigation-group-side-nav) .selected {\n background-color: var(--navigation-group-hover);\n color: var(--navigation-group-text-hover);\n}\n\n:host(.ic-navigation-group-side-nav:not(.ic-navigation-group-expandable))\n .navigation-group:hover,\n:host(.ic-navigation-group-side-nav:not(.ic-navigation-group-expandable))\n .navigation-group:active,\n:host(.in-side-menu:not(.ic-navigation-group-expandable))\n .navigation-group:hover,\n:host(.in-side-menu:not(.ic-navigation-group-expandable))\n .navigation-group:active {\n background: none;\n cursor: auto;\n}\n\n:host(.ic-navigation-group-side-nav) .navigation-group:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background: none;\n}\n\n:host(.ic-navigation-group-side-nav) .ic-typography-caption {\n position: var(--navigation-group-title-position);\n left: var(--navigation-group-title-position-left);\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host .navigation-group,\n :host(:not(.in-side-menu)) .navigation-group:focus,\n :host(.ic-navigation-group-expanded) .grouped-links-wrapper,\n :host(.ic-navigation-group-collapsed) .grouped-links-wrapper {\n transition: none;\n }\n}\n","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\nconst IC_NAVIGATION_ITEM = \"ic-navigation-item\";\nconst DYNAMIC_GROUPED_LINKS_HEIGHT_MS = 100;\nconst NODE_NAME = \"IC-NAVIGATION-GROUP\";\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 allGroupedNavigationItemHeights = \"\";\n private collapsedNavItemsHeight: string | null = null;\n private dropdown?: HTMLElement;\n private expandedNavItemsHeight: string | null = null;\n private groupEl?: HTMLElement;\n private mouseGate = false;\n private linkWrapper?: HTMLUListElement;\n\n @Element() el: HTMLIcNavigationGroupElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() dropdownOpen = false;\n @State() focusStyle: IcBrandForegroundNoDefault | IcBrandForeground =\n getBrandForegroundAppearance();\n @State() inTopNavSideMenu = false;\n @State() navigationType: IcNavType | \"\";\n @State() parentEl: HTMLElement | null;\n @State() isSideNavExpanded = false;\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 = false;\n\n /**\n * If `true`, the expandable group will be expanded by default when in an ic-side-navigation component. To enable this prop, `expandable` must also be set to `true`.\n */\n @Prop({ mutable: true }) expanded = true;\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.allGroupedNavigationItemHeights = `${Array.from(\n this.el.querySelectorAll(IC_NAVIGATION_ITEM)\n ).reduce(\n (childrenHeights, { offsetHeight }) => childrenHeights + offsetHeight,\n 0\n )}px`;\n\n /**\n * debounce is required as the incorrect height was retrieved instantly after\n * componentDidLoad is invoked.\n */\n setTimeout(() => {\n if (!this.linkWrapper || !this.expanded) return;\n\n if (!this.isSideNavExpanded)\n this.collapsedNavItemsHeight = this.allGroupedNavigationItemHeights;\n else this.expandedNavItemsHeight = this.allGroupedNavigationItemHeights;\n\n this.setGroupedLinksElementHeight(this.allGroupedNavigationItemHeights);\n }, DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\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 this.groupEl?.focus();\n }\n\n private sideNavExpandHandler = (event: CustomEvent) => {\n this.isSideNavExpanded = event.detail.sideNavExpanded;\n\n if (!this.linkWrapper || !this.expanded) return;\n\n const navItemsHeight = this.isSideNavExpanded\n ? this.expandedNavItemsHeight\n : this.collapsedNavItemsHeight;\n\n if (navItemsHeight) {\n this.setGroupedLinksElementHeight(navItemsHeight);\n } else {\n setTimeout(() => {\n if (this.isSideNavExpanded) {\n this.expandedNavItemsHeight = this.allGroupedNavigationItemHeights;\n } else {\n this.collapsedNavItemsHeight = this.allGroupedNavigationItemHeights;\n }\n\n this.setGroupedLinksElementHeight(this.allGroupedNavigationItemHeights);\n }, DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n };\n\n private topNavResizedHandler = ({\n detail: { size },\n }: CustomEvent<{ size: number }>) => {\n if (size === this.deviceSize) return;\n\n this.deviceSize = size;\n this.inTopNavSideMenu =\n size <=\n ((this.parentEl as HTMLIcTopNavigationElement)?.customMobileBreakpoint ||\n DEVICE_SIZES.L);\n };\n\n private toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n if (this.inTopNavSideMenu) {\n this.navigationGroupExpanded.emit({ expanded: this.dropdownOpen });\n }\n }\n\n private toggleExpanded = () => {\n this.expanded = !this.expanded;\n if (!this.linkWrapper) return;\n\n this.setGroupedLinksElementHeight(\n !this.expanded\n ? \"0\"\n : this.isSideNavExpanded\n ? this.expandedNavItemsHeight\n : this.collapsedNavItemsHeight\n );\n\n this.el.querySelectorAll(IC_NAVIGATION_ITEM).forEach((navigationItem) => {\n const navItem =\n navigationItem.shadowRoot?.querySelector(\"a\") ||\n navigationItem.querySelector(\"a\");\n navItem?.setAttribute(\"tabindex\", this.expanded ? \"0\" : \"-1\");\n });\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 if (!this.el.contains(ev.relatedTarget as HTMLElement)) {\n this.hideDropdown();\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n const { key } = ev;\n if (key !== \"Enter\" && key !== \" \" && key !== \"Escape\") return;\n\n switch (this.navigationType) {\n case \"top\":\n if (key === \" \" || key === \"Enter\") {\n this.toggleDropdown();\n } else if (!this.inTopNavSideMenu) {\n this.hideDropdown();\n }\n break;\n case \"side\":\n this.toggleExpanded();\n ev.preventDefault();\n break;\n default:\n this.toggleExpanded();\n break;\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 this.el.contains(document.activeElement)\n )\n return;\n\n if (\n document.activeElement !== this.el &&\n relTarget?.nodeName === NODE_NAME &&\n this.dropdownOpen\n ) {\n this.mouseGate = true;\n this.hideDropdown();\n } else {\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 | null;\n document.addEventListener(\"keydown\", this.handleKeydown);\n\n if (relTarget?.nodeName === NODE_NAME && this.mouseGate) {\n this.showDropdown();\n } else if (!this.dropdownOpen && !this.mouseGate) {\n this.mouseGate = true;\n setTimeout(() => {\n if (this.mouseGate) this.showDropdown();\n }, 500);\n }\n };\n\n private renderGroupTitleText = () => (\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 = () => {\n if (this.dropdownOpen || (this.inTopNavSideMenu && !this.expandable)) {\n return (\n <div\n class={{\n [this.inTopNavSideMenu\n ? \"navigation-group-dropdown-side-menu\"\n : \"navigation-group-dropdown\"]: true,\n selected: this.dropdownOpen && !this.inTopNavSideMenu,\n }}\n onMouseLeave={\n !this.inTopNavSideMenu ? this.handleMouseLeave : undefined\n }\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\n if (this.navigationType !== \"top\") {\n return (\n <ul ref={(el) => (this.linkWrapper = el)} class=\"grouped-links-wrapper\">\n <slot></slot>\n </ul>\n );\n }\n\n return null;\n };\n\n private setGroupedLinksElementHeight = (height: string | null) => {\n this.linkWrapper?.style.setProperty(\n \"--navigation-child-items-height\",\n height\n );\n };\n\n render() {\n const {\n dropdownOpen,\n expanded,\n inTopNavSideMenu,\n expandable,\n theme,\n isSideNavExpanded,\n focusStyle,\n } = this;\n\n const getExpandedClassSuffix = (prop: boolean) =>\n prop ? \"expanded\" : \"collapsed\";\n\n const navGroupTitleClassNames = {\n \"navigation-group\": true,\n [focusStyle]: !inTopNavSideMenu,\n [`navigation-group-side-menu-${getExpandedClassSuffix(dropdownOpen)}`]:\n inTopNavSideMenu && expandable,\n selected: dropdownOpen && !inTopNavSideMenu,\n };\n\n const isSideNav = this.navigationType === \"side\";\n const isTopNav = this.navigationType === \"top\";\n const isTopNavDesktop = !inTopNavSideMenu && isTopNav;\n\n const ariaExpanded = (isSideNav && expanded) || (isTopNav && dropdownOpen);\n\n return (\n <Host\n class={{\n \"in-side-menu\": inTopNavSideMenu,\n \"ic-navigation-group-expandable\": expandable,\n \"ic-navigation-group-side-nav\": isSideNav,\n [`ic-navigation-group-${getExpandedClassSuffix(expanded)}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n role=\"listitem\"\n >\n {expandable || isTopNavDesktop ? (\n <button\n onMouseEnter={isTopNavDesktop ? this.handleMouseEnter : undefined}\n onMouseLeave={isTopNav ? this.handleMouseLeave : undefined}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown}\n class={navGroupTitleClassNames}\n ref={(el) => (this.groupEl = el)}\n aria-expanded={`${ariaExpanded}`}\n aria-haspopup={`${isTopNavDesktop}`}\n >\n {this.renderGroupTitleText()}\n {isSideNav && expandable && (\n <div\n class={{\n \"chevron-toggle-icon-wrapper\": true,\n \"chevron-toggle-icon-closed\": !!expanded,\n }}\n innerHTML={chevronIcon}\n ></div>\n )}\n </button>\n ) : (\n (!isSideNav || isSideNavExpanded) && (\n <div class={navGroupTitleClassNames}>\n {this.renderGroupTitleText()}\n </div>\n )\n )}\n {this.renderNavigationItems()}\n </Host>\n );\n }\n}\n"],"mappings":"qLAAA,MAAMA,EAAuB,q+PAC7B,MAAAC,EAAeD,ECgCf,MAAME,EAAqB,qBAC3B,MAAMC,EAAkC,IACxC,MAAMC,EAAY,sB,MASLC,EAAe,MAP5B,WAAAC,CAAAC,G,wIAQUC,KAAAC,gCAAkC,GAClCD,KAAAE,wBAAyC,KAEzCF,KAAAG,uBAAwC,KAExCH,KAAAI,UAAY,MAKXJ,KAAAK,WAAqBC,EAAaC,GAClCP,KAAAQ,aAAe,MACfR,KAAAS,WACPC,IACOV,KAAAW,iBAAmB,MAGnBX,KAAAY,kBAAoB,MAKrBZ,KAAAa,WAAa,MAKIb,KAAAc,SAAW,KAU5Bd,KAAAe,MAAqB,UAuGrBf,KAAAgB,qBAAwBC,IAC9BjB,KAAKY,kBAAoBK,EAAMC,OAAOC,gBAEtC,IAAKnB,KAAKoB,cAAgBpB,KAAKc,SAAU,OAEzC,MAAMO,EAAiBrB,KAAKY,kBACxBZ,KAAKG,uBACLH,KAAKE,wBAET,GAAImB,EAAgB,CAClBrB,KAAKsB,6BAA6BD,E,KAC7B,CACLE,YAAW,KACT,GAAIvB,KAAKY,kBAAmB,CAC1BZ,KAAKG,uBAAyBH,KAAKC,+B,KAC9B,CACLD,KAAKE,wBAA0BF,KAAKC,+B,CAGtCD,KAAKsB,6BAA6BtB,KAAKC,gCAAgC,GACtEN,E,GAICK,KAAAwB,qBAAuB,EAC7BN,QAAUO,Y,MAEV,GAAIA,IAASzB,KAAKK,WAAY,OAE9BL,KAAKK,WAAaoB,EAClBzB,KAAKW,iBACHc,MACCC,EAAC1B,KAAK2B,YAAuC,MAAAD,SAAA,SAAAA,EAAEE,yBAC9CtB,EAAauB,EAAE,EAUb7B,KAAA8B,eAAiB,KACvB9B,KAAKc,UAAYd,KAAKc,SACtB,IAAKd,KAAKoB,YAAa,OAEvBpB,KAAKsB,8BACFtB,KAAKc,SACF,IACAd,KAAKY,kBACLZ,KAAKG,uBACLH,KAAKE,yBAGXF,KAAK+B,GAAGC,iBAAiBtC,GAAoBuC,SAASC,I,MACpD,MAAMC,IACJT,EAAAQ,EAAeE,cAAU,MAAAV,SAAA,SAAAA,EAAEW,cAAc,OACzCH,EAAeG,cAAc,KAC/BF,IAAO,MAAPA,SAAO,SAAPA,EAASG,aAAa,WAAYtC,KAAKc,SAAW,IAAM,KAAK,GAC7D,EAoBId,KAAAuC,YAAeC,IACrB,GAAIxC,KAAKyC,iBAAmB,OAASD,EAAGtB,OAAQ,CAC9ClB,KAAK0C,gB,KACA,CACL1C,KAAK8B,gB,GAID9B,KAAA2C,WAAcH,IACpB,IAAKxC,KAAK+B,GAAGa,SAASJ,EAAGK,eAA+B,CACtD7C,KAAK8C,c,GAID9C,KAAA+C,cAAiBP,IACvB,MAAMQ,IAAEA,GAAQR,EAChB,GAAIQ,IAAQ,SAAWA,IAAQ,KAAOA,IAAQ,SAAU,OAExD,OAAQhD,KAAKyC,gBACX,IAAK,MACH,GAAIO,IAAQ,KAAOA,IAAQ,QAAS,CAClChD,KAAK0C,gB,MACA,IAAK1C,KAAKW,iBAAkB,CACjCX,KAAK8C,c,CAEP,MACF,IAAK,OACH9C,KAAK8B,iBACLU,EAAGS,iBACH,MACF,QACEjD,KAAK8B,iBACL,M,EAIE9B,KAAAkD,iBAAoBV,IAC1B,MAAMW,EAAYX,EAAGK,cAErB7C,KAAKI,UAAY,MAEjB,GACEJ,KAAK+B,GAAGa,SAASO,IACjBA,IAAcnD,KAAKoD,UACnBpD,KAAK+B,GAAGa,SAASS,SAASC,eAE1B,OAEF,GACED,SAASC,gBAAkBtD,KAAK+B,KAChCoB,IAAS,MAATA,SAAS,SAATA,EAAWI,YAAa3D,GACxBI,KAAKQ,aACL,CACAR,KAAKI,UAAY,KACjBJ,KAAK8C,c,KACA,CACL9C,KAAKI,UAAY,MACjBmB,YAAW,KACTvB,KAAKQ,aAAeR,KAAK8C,eAAiB,IAAI,GAC7C,I,GAIC9C,KAAAwD,iBAAoBhB,IAC1B,MAAMW,EAAYX,EAAGK,cACrBQ,SAASI,iBAAiB,UAAWzD,KAAK+C,eAE1C,IAAII,IAAS,MAATA,SAAS,SAATA,EAAWI,YAAa3D,GAAaI,KAAKI,UAAW,CACvDJ,KAAK0D,c,MACA,IAAK1D,KAAKQ,eAAiBR,KAAKI,UAAW,CAChDJ,KAAKI,UAAY,KACjBmB,YAAW,KACT,GAAIvB,KAAKI,UAAWJ,KAAK0D,cAAc,GACtC,I,GAIC1D,KAAA2D,qBAAuB,IAC7BC,EAAA,iBACEC,GAAG,kBACHC,QAAS9D,KAAKyC,iBAAmB,OAAS,UAAY,SAErDzC,KAAK+D,OAIF/D,KAAAgE,sBAAwB,KAC9B,GAAIhE,KAAKQ,cAAiBR,KAAKW,mBAAqBX,KAAKa,WAAa,CACpE,OACE+C,EAAA,OACEK,MAAO,CACL,CAACjE,KAAKW,iBACF,sCACA,6BAA8B,KAClCuD,SAAUlE,KAAKQ,eAAiBR,KAAKW,kBAEvCwD,cACGnE,KAAKW,iBAAmBX,KAAKkD,iBAAmBkB,UAEnDC,IAAMtC,GAAQ/B,KAAKoD,SAAWrB,GAE9B6B,EAAA,OACEK,MAAO,CACL,mCAAoCjE,KAAKW,kBAC1C,kBACe,mBAEhBiD,EAAA,UACEA,EAAA,e,CAOV,GAAI5D,KAAKyC,iBAAmB,MAAO,CACjC,OACEmB,EAAA,MAAIS,IAAMtC,GAAQ/B,KAAKoB,YAAcW,EAAKkC,MAAM,yBAC9CL,EAAA,a,CAKN,OAAO,IAAI,EAGL5D,KAAAsB,6BAAgCgD,I,OACtC5C,EAAA1B,KAAKoB,eAAW,MAAAM,SAAA,SAAAA,EAAE6C,MAAMC,YACtB,kCACAF,EACD,C,CA7SH,oBAAAG,G,QACE,GAAIzE,KAAKyC,iBAAmB,OAAQ,EAClCf,EAAA1B,KAAK2B,YAAQ,MAAAD,SAAA,SAAAA,EAAEgD,oBACb,oBACA1E,KAAKgB,qB,MAEF,GAAIhB,KAAKyC,iBAAmB,MAAO,EACxCkC,EAAA3E,KAAK2B,YAAQ,MAAAgD,SAAA,SAAAA,EAAED,oBACb,kBACA1E,KAAKwB,qB,EAKX,iBAAAoD,G,QACE5E,KAAKK,WAAawE,IAClB,MAAMC,QAAEA,EAAOC,OAAEA,GAAWC,EAAwBhF,KAAK+B,IACzD/B,KAAKyC,eAAiBqC,EACtB9E,KAAK2B,SAAWoD,EAEhB,GAAI/E,KAAKyC,iBAAmB,OAAQ,EAClCf,EAAA1B,KAAK2B,YAAQ,MAAAD,SAAA,SAAAA,EAAE+B,iBACb,oBACAzD,KAAKgB,qB,MAEF,GAAIhB,KAAKyC,iBAAmB,MAAO,EACxCkC,EAAA3E,KAAK2B,YAAQ,MAAAgD,SAAA,SAAAA,EAAElB,iBACb,kBACAzD,KAAKwB,sBAEP,GACExB,KAAKK,YACJL,KAAK2B,SAAwCC,uBAE9C5B,KAAKW,iBAAmB,I,EAI9B,gBAAAsE,GACEjF,KAAKC,gCAAkC,GAAGiF,MAAMC,KAC9CnF,KAAK+B,GAAGC,iBAAiBtC,IACzB0F,QACA,CAACC,GAAmBC,kBAAmBD,EAAkBC,GACzD,OAOF/D,YAAW,KACT,IAAKvB,KAAKoB,cAAgBpB,KAAKc,SAAU,OAEzC,IAAKd,KAAKY,kBACRZ,KAAKE,wBAA0BF,KAAKC,qCACjCD,KAAKG,uBAAyBH,KAAKC,gCAExCD,KAAKsB,6BAA6BtB,KAAKC,gCAAgC,GACtEN,E,CAIL,gBAAA4F,GACEvF,KAAK8C,c,CAIP,2BAAA0C,CAA4BvE,GAC1B,GAAIA,EAAMC,OAAOuE,SAAWzF,KAAK+B,GAAI,CACnC/B,KAAK8C,c,EAKT,mBAAA4C,GACE1F,KAAK8C,c,CAIP,kBAAA6C,CAAmBnD,GACjBxC,KAAKS,WAAa+B,EAAGtB,OAAO0E,I,CAO9B,cAAMC,G,OACJnE,EAAA1B,KAAK8F,WAAO,MAAApE,SAAA,SAAAA,EAAEqE,O,CAuCR,cAAArD,GACN1C,KAAKQ,cAAgBR,KAAKQ,aAC1B,GAAIR,KAAKW,iBAAkB,CACzBX,KAAKgG,wBAAwBC,KAAK,CAAEnF,SAAUd,KAAKQ,c,EAwB/C,YAAAkD,GACN,IAAK1D,KAAKQ,aAAc,CACtBR,KAAKkG,sBAAsBD,KAAK,CAC9BR,OAAQzF,KAAK+B,KAGf/B,KAAK0C,gB,EAID,YAAAI,GACNO,SAASqB,oBAAoB,UAAW1E,KAAK+C,eAC7C,GAAI/C,KAAKQ,aAAc,CACrBR,KAAK0C,gB,EAyIT,MAAAyD,GACE,MAAM3F,aACJA,EAAYM,SACZA,EAAQH,iBACRA,EAAgBE,WAChBA,EAAUE,MACVA,EAAKH,kBACLA,EAAiBH,WACjBA,GACET,KAEJ,MAAMoG,EAA0BC,GAC9BA,EAAO,WAAa,YAEtB,MAAMC,EAA0B,CAC9B,mBAAoB,KACpB7F,CAACA,IAAcE,EACf,CAAC,8BAA8ByF,EAAuB5F,MACpDG,GAAoBE,EACtBqD,SAAU1D,IAAiBG,GAG7B,MAAM4F,EAAYvG,KAAKyC,iBAAmB,OAC1C,MAAM+D,EAAWxG,KAAKyC,iBAAmB,MACzC,MAAMgE,GAAmB9F,GAAoB6F,EAE7C,MAAME,EAAgBH,GAAazF,GAAc0F,GAAYhG,EAE7D,OACEoD,EAAC+C,EAAI,CAAA3D,IAAA,2CACHiB,MAAO,CACL,eAAgBtD,EAChB,iCAAkCE,EAClC,+BAAgC0F,EAChC,CAAC,uBAAuBH,EAAuBtF,MAAc,KAC7D,CAAC,YAAYC,KAAUA,IAAU,WAEnC6F,KAAK,YAEJ/F,GAAc4F,EACb7C,EAAA,UACEiD,aAAcJ,EAAkBzG,KAAKwD,iBAAmBY,UACxDD,aAAcqC,EAAWxG,KAAKkD,iBAAmBkB,UACjD0C,OAAQ9G,KAAK2C,WACboE,QAAS/G,KAAKuC,YACdyE,UAAWhH,KAAK+C,cAChBkB,MAAOqC,EACPjC,IAAMtC,GAAQ/B,KAAK8F,QAAU/D,EAAG,gBACjB,GAAG2E,IAAc,gBACjB,GAAGD,KAEjBzG,KAAK2D,uBACL4C,GAAa1F,GACZ+C,EAAA,OACEK,MAAO,CACL,8BAA+B,KAC/B,+BAAgCnD,GAElCmG,UAAWC,OAKfX,GAAa3F,IACbgD,EAAA,OAAKK,MAAOqC,GACTtG,KAAK2D,wBAIX3D,KAAKgE,wB","ignoreList":[]}
|