@ukic/web-components 3.21.0 → 3.22.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 +1 -1
- 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-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/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-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-tab-panel.js.map +1 -1
- 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/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-9057a186.entry.js → p-0b728f50.entry.js} +2 -2
- package/dist/core/{p-9057a186.entry.js.map → p-0b728f50.entry.js.map} +1 -1
- 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-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-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 +1 -1
- 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-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.d.ts +234 -5
- package/dist/types/utils/helpers.d.ts +2 -4
- package/hydrate/index.js +1141 -771
- package/hydrate/index.mjs +1141 -771
- 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-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-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-41a5da12.entry.js.map → p-1b81ec88.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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icSelectCss","IcSelectStyle0","inputIds","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","Select","constructor","hostRef","this","blurredBecauseButtonPressed","hasSetDefaultValue","hasTimedOut","inheritedAttributes","initialOptionsEmpty","inputId","menuId","retryButtonClick","searchableMenuItemSelected","ungroupedOptions","hostMutationObserver","clearButtonFocused","noOptions","open","pressedCharacters","searchableSelectInputValue","disabled","disableAutoFiltering","emptyOptionListText","fullWidth","helperText","hideLabel","includeDescriptionsInSearch","includeGroupTitlesInSearch","loadingErrorLabel","loadingLabel","multiple","name","placeholder","readonly","required","searchable","searchMatchPosition","selectOnEnter","showClearButton","size","theme","validationAriaLive","validationStatus","validationText","loading","options","filteredOptions","uniqueOptions","debounce","currDebounce","value","initialValue","inputValueToFilter","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","type","addedNodes","removedNodes","attribute","el","getAttribute","includes","checkSlotInChildMutations","forceUpdate","handleRetry","ev","detail","keyPressed","_a","searchableSelectElement","focus","icRetryLoad","emit","hiddenInputValue","emitIcChange","Array","isArray","valueArray","slice","splice","indexOf","push","getValueSortedByOptions","length","icChange","emitIcInput","clearTimeout","debounceIcInput","window","setTimeout","icInput","setOptions","timeoutTimer","setOptionsValuesFromLabels","deduplicateOptions","label","isExternalFiltering","updateSearchableSelectResultAriaLive","setDefaultValue","uniqueValues","dedupedOptions","option","children","dedupedChildren","child","console","warn","Object","assign","map","setUngroupedOptions","event","setTextColor","nativeSelectElement","className","selectedIndex","setMenuChange","getLabelFromValue","getMultipleOptionsString","selectedValues","filter","join","getFilteredChildMenuOptions","getFilteredMenuOptions","valuesFromAllOptions","sort","a","b","handleNativeSelectChange","icOptionSelect","handleCustomSelectChange","optionId","currValue","getValueFromLabel","_b","icOptionDeselect","ariaActiveDescendant","handleSelectAllChange","allValues","select","unselectedValues","handleMenuChange","handleFocusIndicatorDisplay","handleMenuKeyPress","cancelBubble","handleCharacterKeyDown","key","focusIndicator","shadowRoot","querySelector","classList","add","remove","handleMouseDown","preventDefault","handleClick","menu","handleClickOpen","handleExpandIconMouseDown","handleClear","stopPropagation","clearInput","icClear","customSelectElement","characterKeyPressTimer","handleFilter","handleNativeSelectKeyDown","handleKeyDown","isArrowKey","isCtrlA","isMacDevice","metaKey","ctrlKey","handleKeyboardOpen","handleClearButtonFocus","handleClearButtonBlur","retryButton","relatedTarget","isGrouped","some","newFilteredOptions","menuOptionsFiltered","triggerLoading","timeout","timedOut","find","handleSearchableSelectInput","target","debounceAria","searchableSelectResultsStatusEl","innerText","updateMultiSelectedCountAriaLive","multiSelectSelectedCountEl","selectedCount","getOptionsWithoutGroupTitlesCount","getDefaultValue","onFocus","icFocus","onBlur","tagName","from","querySelectorAll","clearButton","icBlur","onTimeoutBlur","handleFormReset","setAttribute","renderNativeOption","h","selected","watchDisabledHandler","removeDisabledFalse","loadingHandler","newValue","watchOptionsHandler","debounceChangedHandler","valueChangedHandler","String","openChangedHandler","icOpen","icClose","disconnectedCallback","removeFormResetListener","disconnect","componentWillLoad","valueInOptions","inheritAttributes","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","MutationObserver","observe","attributes","childList","componentDidRender","setFocus","render","form","renderHiddenInput","invalid","IcInformationStatus","Error","showValidation","hasValidationStatus","describedBy","getInputDescribedByText","trim","valueLabelString","isClearable","Host","class","for","slot","ref","anchorEl","isSlotUsed","isMobileOrTablet","onChange","id","onKeyDown","role","autocomplete","undefined","onInput","onClick","innerHTML","Clear","variant","onMouseDown","Expand","_d","_c","inputEl","inputLabel","onMenuStateChange","onMenuOptionSelect","onMenuOptionSelectAll","onMenuKeyPress","onUngroupedOptionsSet","onRetryButtonClicked","parentEl","activationType","closeOnSelect","multiSelect","searchableSelect","ariaLiveMode","status","message"],"sources":["src/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","src/components/ic-select/ic-select.tsx"],"sourcesContent":["@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.searchable-select-results-status,\n.multi-select-selected-count {\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 Method,\n Prop,\n h,\n State,\n Watch,\n forceUpdate,\n} from \"@stencil/core\";\n\nimport {\n getInputDescribedByText,\n getLabelFromValue,\n hasValidationStatus,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n isMobileOrTablet,\n getFilteredMenuOptions,\n getOptionsWithoutGroupTitlesCount,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n checkSlotInChildMutations,\n isSlotUsed,\n isMacDevice,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcAriaLive,\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcMenuOption,\n IcSearchMatchPositions,\n IcMultiValueEventDetail,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nimport {\n IcMenuChangeEventDetail,\n IcOptionSelectEventDetail,\n} from \"../ic-menu/ic-menu.types\";\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 anchorEl?: HTMLElement;\n private blurredBecauseButtonPressed = false;\n private characterKeyPressTimer?: number;\n private clearButton?: HTMLIcButtonElement;\n private customSelectElement?: HTMLButtonElement;\n private debounceAria?: number;\n private hasSetDefaultValue = false;\n private hasTimedOut = false;\n private inheritedAttributes: { [k: string]: string } = {};\n private initialOptionsEmpty = false;\n private inputId = `ic-select-input-${inputIds++}`;\n private menu?: HTMLIcMenuElement;\n private menuId = `${this.inputId}-menu`;\n private nativeSelectElement?: HTMLSelectElement;\n private retryButtonClick = false;\n private searchableMenuItemSelected = false;\n private searchableSelectElement?: HTMLInputElement;\n private timeoutTimer?: number;\n private ungroupedOptions: IcMenuOption[] = [];\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el!: HTMLIcSelectElement;\n\n @State() ariaActiveDescendant?: string;\n @State() clearButtonFocused = false;\n @State() debounceIcInput?: number;\n @State() hiddenInputValue: string | null;\n @State() noOptions: IcMenuOption[] | null = null;\n @State() open = false;\n @State() pressedCharacters = \"\";\n @State() searchableSelectInputValue: string | null = null;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled = false;\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`, 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 newValue ? this.triggerLoading() : this.setOptions();\n }\n\n /**\n * The possible selection options.\n */\n @Prop() options: IcMenuOption[] = [];\n @State() filteredOptions: IcMenuOption[] = this.options;\n @State() uniqueOptions: IcMenuOption[] = this.options;\n @Watch(\"options\")\n watchOptionsHandler(): void {\n this.setOptions();\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 @State() inputValueToFilter: string | null = this.value as string;\n @State() currValue: string | string[] | null;\n @Watch(\"value\")\n valueChangedHandler(): void {\n if (this.value !== this.currValue) {\n if (this.value && this.multiple) {\n this.currValue = this.getMultipleOptionsString(this.value as string[])\n ? this.getValueSortedByOptions(this.value as string[])\n : null;\n this.updateMultiSelectedCountAriaLive();\n } else {\n this.currValue = this.getLabelFromValue(this.value as string)\n ? this.value\n : null;\n }\n }\n\n if (this.searchable && this.value) {\n // Only set if value not null - prevents whole input value being cleared when edited\n this.searchableSelectInputValue =\n this.getLabelFromValue(String(this.currValue)) || null;\n }\n }\n\n @Watch(\"open\")\n openChangedHandler(): void {\n this.open ? this.icOpen.emit() : this.icClose.emit();\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 disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n const valueInOptions = this.multiple\n ? this.getMultipleOptionsString(this.value as string[])\n : this.getLabelFromValue(this.value as string);\n this.currValue = valueInOptions ? this.value : null;\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.setOptionsValuesFromLabels();\n\n addFormResetListener(this.el, this.handleFormReset);\n\n if (!this.options.length) {\n this.initialOptionsEmpty = true;\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n this.filteredOptions = this.noOptions;\n } else {\n this.setDefaultValue();\n this.uniqueOptions = this.deduplicateOptions(this.options);\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Select\"\n );\n\n if (this.loading) {\n this.triggerLoading();\n }\n\n if (this.searchable) {\n this.hiddenInputValue = this.currValue as string;\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n\n componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n }\n\n /**\n * Sets focus on the input box.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.focus();\n } else if (this.customSelectElement) {\n this.customSelectElement.focus();\n } else if (this.searchableSelectElement) {\n this.searchableSelectElement.focus();\n }\n }\n\n // triggered when attributes of host element change\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 handleRetry = (ev: CustomEvent<IcMultiValueEventDetail>) => {\n if (ev.detail.keyPressed) this.searchableSelectElement?.focus();\n this.blurredBecauseButtonPressed = true;\n this.retryButtonClick = true;\n this.hasSetDefaultValue = true;\n this.icRetryLoad.emit({\n value: this.searchable\n ? this.searchableSelectInputValue\n : this.hiddenInputValue,\n });\n };\n\n private emitIcChange = (value: string | string[] | null) => {\n // If \"Select all\" button clicked, replace value with new value (array of all option values)\n if (this.multiple && !Array.isArray(value) && value !== null) {\n // Update selected options - adds / removes them, in order of option list\n // Create new array if value prop is undefined\n if (this.value) {\n let valueArray = (this.value as string[]).slice();\n\n if (this.value.includes(value)) {\n valueArray.splice(valueArray.indexOf(value), 1);\n } else {\n valueArray.push(value);\n valueArray = this.getValueSortedByOptions(valueArray);\n }\n\n this.value = valueArray.length === 0 ? null : valueArray;\n } else {\n this.value = [value];\n }\n } else {\n this.value = value;\n }\n\n this.icChange.emit({ value: this.multiple ? this.value : value });\n };\n\n private emitIcInput = (value: string) => {\n clearTimeout(this.debounceIcInput);\n this.debounceIcInput = window.setTimeout(\n () => this.icInput.emit({ value }),\n this.currDebounce\n );\n };\n\n private setOptions = () => {\n if (!this.hasTimedOut && this.options !== this.noOptions) {\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n\n if (this.options.length > 0) {\n this.setOptionsValuesFromLabels();\n this.uniqueOptions = this.deduplicateOptions(this.options);\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n }\n\n this.filteredOptions = this.uniqueOptions;\n\n if (this.isExternalFiltering()) {\n // When searchable select\n this.noOptions = null;\n this.updateSearchableSelectResultAriaLive();\n this.setDefaultValue();\n } else if (this.initialOptionsEmpty) {\n this.setDefaultValue();\n this.initialOptionsEmpty = false;\n }\n } else if (!this.searchable) {\n this.options = this.noOptions || [];\n }\n };\n\n /**\n * Processes the provided array of IcMenuOptions, removing duplicates and reporting them with a console.warn\n * @param options array of IcMenuOptions\n * @returns a new options object, with all entries possessing a duplicate 'value' field removed\n */\n private deduplicateOptions = (options: IcMenuOption[]) => {\n const uniqueValues: string[] = [];\n const dedupedOptions: IcMenuOption[] = [];\n\n options.forEach((option) => {\n if (option.children) {\n //If an option has children, we will loop through them\n const dedupedChildren: IcMenuOption[] = [];\n option.children.forEach((child) => {\n if (uniqueValues.includes(child.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${child.value}) which has been removed.`\n );\n } else {\n uniqueValues.push(child.value);\n dedupedChildren.push(child);\n }\n });\n // construct a modified option, inserting the deduplicated children alongside the original information\n dedupedOptions.push({\n ...option,\n children: dedupedChildren,\n });\n } else {\n // If an option does not have children, assess to see if it's value has been included already\n if (uniqueValues.includes(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 } else {\n uniqueValues.push(option.value);\n dedupedOptions.push(option);\n }\n }\n });\n return dedupedOptions;\n };\n\n /**\n * Loop through options array and for all options with no value, infer it from the label\n */\n private setOptionsValuesFromLabels = () => {\n if (this.options.length > 0) {\n this.options.map((option) => {\n if (!option.value) {\n option.value = option.label;\n }\n });\n }\n };\n\n private setUngroupedOptions = (event: CustomEvent) => {\n this.ungroupedOptions = event.detail.options;\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 setMenuChange = (open: boolean) => {\n if (this.open !== open) {\n this.open = open;\n }\n };\n\n private getLabelFromValue = (value: string) =>\n getLabelFromValue(value, this.uniqueOptions);\n\n private getMultipleOptionsString = (selectedValues: string[]) =>\n selectedValues\n ?.map((value) => this.getLabelFromValue(value))\n .filter((label) => !!label)\n .join(\", \");\n\n private getFilteredChildMenuOptions = (\n option: IcMenuOption\n ): IcMenuOption => ({\n ...option,\n children:\n option.children &&\n getFilteredMenuOptions(\n option.children,\n this.searchable && !!this.includeDescriptionsInSearch,\n this.searchable\n ? this.searchableSelectInputValue || \"\"\n : this.pressedCharacters,\n this.searchable ? this.searchMatchPosition : \"start\"\n ),\n });\n\n // (For multi-select) get value array, i.e. selected option values, in order they appear in option list\n private getValueSortedByOptions = (value: string[]) => {\n const valueArray = value;\n const valuesFromAllOptions = this.ungroupedOptions.map(\n (option) => option.value\n );\n\n valueArray.sort(\n (a, b) =>\n valuesFromAllOptions.indexOf(a) - valuesFromAllOptions.indexOf(b)\n );\n\n return valueArray;\n };\n\n private handleNativeSelectChange = () => {\n if (this.nativeSelectElement) {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.emitIcChange(this.nativeSelectElement.value);\n }\n this.setTextColor();\n };\n\n // Handle option select for when a custom input box and menu is rendered\n // (rather than native <select> - rendered when viewed on a mobile / tablet screen)\n private handleCustomSelectChange = (\n event: CustomEvent<IcOptionSelectEventDetail>\n ) => {\n const { value, label, optionId } = event.detail;\n\n if (label === this.emptyOptionListText) {\n this.searchableSelectElement?.focus();\n return;\n }\n\n if (this.searchable) {\n this.value = value || null;\n this.searchableMenuItemSelected = true;\n\n // After editing the input, if selecting the same option as before, set the input value to label again\n if (this.value === this.currValue) {\n this.searchableSelectInputValue =\n this.getLabelFromValue(this.value as string) || null;\n }\n\n this.inputValueToFilter = null;\n this.hiddenInputValue =\n this.getValueFromLabel(this.searchableSelectInputValue) || null;\n }\n\n if (value) {\n if (this.multiple && this.value?.includes(value)) {\n this.icOptionDeselect.emit({ value });\n } else {\n this.icOptionSelect.emit({ value });\n }\n }\n\n this.ariaActiveDescendant = optionId;\n this.emitIcChange(value || null);\n };\n\n private handleSelectAllChange = ({\n detail,\n }: CustomEvent<{ select: boolean }>) => {\n const allValues = this.ungroupedOptions\n .filter((option) => !option.disabled)\n .map((option) => option.value);\n\n if (detail.select) {\n // Only emit icOptionSelect for all values that are newly selected\n const unselectedValues = this.value\n ? allValues.filter(\n (value) => this.value && !(this.value as string[]).includes(value)\n )\n : allValues;\n\n unselectedValues.forEach((value) => this.icOptionSelect.emit({ value }));\n } else {\n // Only emit icOptionDeselect for values that were selected\n (this.value as string[]).forEach((value) =>\n this.icOptionDeselect.emit({ value })\n );\n }\n\n this.emitIcChange(detail.select ? allValues : null);\n };\n\n private handleMenuChange = (event: CustomEvent<IcMenuChangeEventDetail>) => {\n this.open = event.detail.open;\n this.pressedCharacters = \"\";\n\n if (this.searchable) this.handleFocusIndicatorDisplay();\n };\n\n // clears the debounce delay when navigating the menu with arrow keys etc\n // to prevent delay in change event, which should only occur when typing in input\n private handleMenuKeyPress = (ev: CustomEvent): void => {\n ev.cancelBubble = true;\n if (!this.multiple) {\n this.handleCharacterKeyDown(ev.detail.key);\n }\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 handleMouseDown = (event: Event) => {\n if (!this.open) {\n event.preventDefault();\n }\n };\n\n private isExternalFiltering = () =>\n this.searchable && !!this.disableAutoFiltering;\n\n private handleClick = (event: MouseEvent) => {\n if (!this.open && this.menu) {\n if (this.isExternalFiltering()) {\n this.menu.options = this.filteredOptions;\n } else if (\n !this.hasTimedOut &&\n !this.loading &&\n !this.noOptions?.length &&\n (!this.searchable || this.searchableMenuItemSelected)\n ) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n\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 handleClear = (event: Event) => {\n event.stopPropagation();\n this.hasTimedOut = false;\n clearTimeout(this.timeoutTimer);\n this.clearInput();\n this.emitIcChange(null);\n this.icClear.emit();\n\n if (this.searchable) {\n this.hiddenInputValue = null;\n this.searchableSelectElement?.focus();\n } else {\n this.customSelectElement?.focus();\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.setMenuChange(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 this.handleFilter();\n\n if (!this.noOptions) {\n this.emitIcChange(this.filteredOptions[0].value);\n }\n }\n };\n\n private handleNativeSelectKeyDown = (event: KeyboardEvent) => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n this.handleCharacterKeyDown(event.key);\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n const isArrowKey = event.key === \"ArrowDown\" || event.key === \"ArrowUp\";\n\n if (this.menu && !this.open) {\n if (this.isExternalFiltering() && (event.key === \"Enter\" || isArrowKey)) {\n this.menu.options = this.filteredOptions;\n } else if (!this.hasTimedOut) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n\n if (this.open && event.key === \"Enter\") {\n this.setMenuChange(false);\n } else {\n if (!isArrowKey || this.noOptions === null) {\n if (event.key !== \" \" || this.pressedCharacters.length <= 0) {\n // Keyboard events get passed onto ic-menu except in the case of ctrl-a on a searchable select\n const isCtrlA =\n event.key === \"a\" &&\n ((isMacDevice() && event.metaKey) ||\n (!isMacDevice() && event.ctrlKey));\n\n if (!(this.searchable && isCtrlA)) {\n this.menu?.handleKeyboardOpen(event);\n }\n }\n if (!this.multiple) {\n this.handleCharacterKeyDown(event.key);\n }\n }\n }\n };\n\n private handleClearButtonFocus = () => {\n this.clearButtonFocused = true;\n };\n\n private handleClearButtonBlur = (ev: FocusEvent) => {\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n if (\n (!this.searchableSelectElement ||\n ev.relatedTarget !== this.searchableSelectElement) &&\n (!retryButton || ev.relatedTarget !== retryButton)\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n }\n this.clearButtonFocused = false;\n };\n\n private handleFilter = () => {\n const options = this.deduplicateOptions(\n this.searchable ? [...this.uniqueOptions] : this.ungroupedOptions\n );\n\n const isGrouped = options.some((option) => !!option.children);\n let newFilteredOptions: IcMenuOption[] = [];\n\n let menuOptionsFiltered: IcMenuOption[];\n\n if (this.searchable) {\n menuOptionsFiltered = getFilteredMenuOptions(\n options,\n !!this.includeDescriptionsInSearch,\n this.inputValueToFilter || \"\",\n this.searchMatchPosition\n );\n this.searchableMenuItemSelected = false;\n } else {\n menuOptionsFiltered = getFilteredMenuOptions(\n options,\n false,\n this.pressedCharacters,\n \"start\"\n );\n }\n\n if (\n !isGrouped &&\n menuOptionsFiltered[0]?.label !== this.emptyOptionListText\n ) {\n newFilteredOptions = menuOptionsFiltered;\n } else if (isGrouped) {\n newFilteredOptions = options.map((option) =>\n this.includeGroupTitlesInSearch &&\n menuOptionsFiltered.indexOf(option) !== -1\n ? option\n : this.getFilteredChildMenuOptions(option)\n );\n }\n\n if (\n newFilteredOptions.length > 0 &&\n (!isGrouped ||\n newFilteredOptions.some(\n ({ children }) => children && children.length > 0\n ))\n ) {\n this.noOptions = null;\n this.filteredOptions = newFilteredOptions;\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.filteredOptions = this.noOptions;\n }\n };\n\n /**\n * Put the select component into loading state.\n * Replace options with the loading message. If timeout is enabled, set the timeout and once passed, replace options with the loading error message\n */\n private triggerLoading = () => {\n this.hasTimedOut = false;\n this.noOptions = [{ label: this.loadingLabel, value: \"\", loading: true }];\n if (this.filteredOptions !== this.noOptions && this.searchable) {\n this.filteredOptions = this.noOptions;\n } else if (this.uniqueOptions !== this.noOptions && !this.searchable) {\n this.uniqueOptions = this.noOptions;\n }\n if (this.timeout) {\n this.timeoutTimer = window.setTimeout(() => {\n this.loading = false;\n this.hasTimedOut = true;\n this.noOptions = [\n { label: this.loadingErrorLabel, value: \"\", timedOut: true },\n ];\n this.filteredOptions = this.noOptions;\n if (!this.searchable) this.uniqueOptions = this.noOptions;\n }, this.timeout);\n }\n };\n\n private getValueFromLabel = (label: string | null): string | undefined =>\n label && this.uniqueOptions.find((option) => option.label === label)?.value;\n\n private handleSearchableSelectInput = (event: Event) => {\n this.searchableSelectInputValue = (event.target as HTMLInputElement).value;\n this.emitIcInput(this.searchableSelectInputValue);\n\n // De-select previous selection when input is edited\n // Only emit icChange once when editing input\n if (this.value != null) {\n this.emitIcChange(null);\n }\n\n this.hiddenInputValue = null;\n this.inputValueToFilter = this.searchableSelectInputValue;\n this.setMenuChange(true);\n\n if (!this.disableAutoFiltering) {\n this.handleFilter();\n clearTimeout(this.debounceAria);\n\n window.setTimeout(() => {\n this.updateSearchableSelectResultAriaLive();\n }, 800);\n }\n };\n\n private updateSearchableSelectResultAriaLive = () => {\n const searchableSelectResultsStatusEl =\n this.el.shadowRoot?.querySelector<HTMLDivElement>(\n \".searchable-select-results-status\"\n );\n\n if (searchableSelectResultsStatusEl) {\n searchableSelectResultsStatusEl.innerText =\n this.noOptions !== null ? this.emptyOptionListText : \"\";\n }\n };\n\n private updateMultiSelectedCountAriaLive = () => {\n const multiSelectSelectedCountEl =\n this.el.shadowRoot?.querySelector<HTMLDivElement>(\n \".multi-select-selected-count\"\n );\n\n const selectedCount = `${\n this.currValue?.length\n } of ${getOptionsWithoutGroupTitlesCount(this.options)} selected`;\n\n if (\n multiSelectSelectedCountEl &&\n multiSelectSelectedCountEl.innerText !== selectedCount\n ) {\n multiSelectSelectedCountEl.innerText = selectedCount;\n }\n };\n\n private getDefaultValue = (value: string) =>\n this.getLabelFromValue(value) || null;\n\n private setDefaultValue = () => {\n if (!this.hasSetDefaultValue && this.currValue) {\n this.searchableSelectInputValue = this.searchable\n ? this.getDefaultValue(this.currValue as string)\n : null;\n\n this.initialValue = this.currValue;\n this.hasSetDefaultValue = true;\n }\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = ({ relatedTarget }: FocusEvent) => {\n const target = relatedTarget as HTMLElement;\n if (\n target !== null &&\n ((target.tagName === \"UL\" && target.className.includes(\"menu\")) ||\n (target.tagName === \"LI\" && target.className.includes(\"option\")))\n ) {\n return;\n }\n\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n\n if (\n this.searchable &&\n !!this.menu &&\n target !== this.menu &&\n !Array.from(this.menu.querySelectorAll(\"[role='option']\")).includes(\n target\n ) &&\n (!this.clearButton || target !== this.clearButton) &&\n (!retryButton || target !== retryButton)\n ) {\n if (!this.retryButtonClick) {\n this.setMenuChange(false);\n // Clear input field on blur when searchable if no option is selected\n if (!this.value) {\n this.clearInput();\n }\n }\n this.handleFocusIndicatorDisplay();\n }\n\n this.retryButtonClick = false;\n this.icBlur.emit();\n };\n\n private onTimeoutBlur = (ev: CustomEvent) => {\n if (\n (ev.detail.ev as FocusEvent).relatedTarget !==\n this.searchableSelectElement &&\n !this.blurredBecauseButtonPressed\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n this.icBlur.emit();\n }\n this.blurredBecauseButtonPressed = false;\n };\n\n private handleFormReset = () => {\n this.value = this.initialValue;\n if (this.searchable) {\n this.searchableSelectInputValue = this.getDefaultValue(\n this.value as string\n );\n this.hiddenInputValue = this.value as string;\n }\n };\n\n private clearInput = () => {\n this.noOptions = null;\n\n if (this.searchable) {\n this.searchableSelectElement?.setAttribute(\"value\", \"\");\n this.searchableSelectInputValue = null;\n this.filteredOptions = this.uniqueOptions;\n }\n };\n\n private renderNativeOption = (option: IcMenuOption) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === this.currValue}\n >\n {option.label}\n </option>\n );\n\n render() {\n const {\n size,\n disabled,\n fullWidth,\n helperText,\n hideLabel,\n label,\n menuId,\n multiple,\n name,\n options,\n placeholder,\n readonly,\n required,\n searchable,\n showClearButton,\n validationAriaLive,\n validationStatus,\n validationText,\n currValue,\n theme,\n hiddenInputValue,\n open,\n inputId,\n searchableSelectInputValue,\n loading,\n value,\n emptyOptionListText,\n uniqueOptions,\n selectOnEnter,\n form,\n inheritedAttributes,\n ariaActiveDescendant,\n hasTimedOut,\n filteredOptions,\n clearButtonFocused,\n } = this;\n\n // HTML inputs only accept 'string' for their value\n // Does not cause errors when it is a multi-select - sets value correctly, to a comma-separated string\n renderHiddenInput(\n this.el,\n searchable ? hiddenInputValue : (currValue as string),\n name || inputId,\n disabled\n );\n\n const invalid = `${validationStatus === IcInformationStatus.Error}`;\n\n const showValidation = hasValidationStatus(validationStatus, !!disabled);\n\n const describedBy = getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n showValidation\n ).trim();\n\n const valueLabelString = multiple\n ? this.getMultipleOptionsString(currValue as string[])\n : this.getLabelFromValue(currValue as string);\n\n const isClearable =\n !disabled &&\n (searchable\n ? !!searchableSelectInputValue\n : !!currValue && !loading && showClearButton);\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 onBlur={this.onBlur}\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 {readonly ? (\n <ic-typography>\n <p>{valueLabelString}</p>\n </ic-typography>\n ) : isMobileOrTablet() && !multiple ? (\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}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\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 option.children ? (\n <optgroup label={option.label}>\n {option.children.map((child) =>\n this.renderNativeOption(child)\n )}\n </optgroup>\n ) : (\n this.renderNativeOption(option)\n )\n )}\n </select>\n ) : searchable ? (\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}\n aria-required={`${required}`}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={inputId}\n value={searchableSelectInputValue || undefined}\n placeholder={placeholder}\n disabled={disabled}\n onInput={this.handleSearchableSelectInput}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n form={form}\n ></input>\n {isClearable && (\n <div class=\"clear-button-container\">\n <ic-button\n id=\"clear-button\"\n ref={(el) => (this.clearButton = el)}\n aria-label={\n searchableSelectInputValue &&\n (currValue === null || loading)\n ? \"Clear input\"\n : \"Clear selection\"\n }\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={size}\n variant=\"icon-tertiary\"\n theme={clearButtonFocused ? \"light\" : \"dark\"}\n ></ic-button>\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\n aria-live=\"polite\"\n role=\"status\"\n class=\"searchable-select-results-status\"\n ></div>\n </div>\n ) : (\n <div class=\"select-container\">\n <button\n role=\"combobox\"\n class=\"select-input\"\n ref={(el) => (this.customSelectElement = el)}\n id={inputId}\n aria-label={`${label}, ${\n (multiple && currValue\n ? `${\n currValue.length\n } of ${getOptionsWithoutGroupTitlesCount(\n options\n )} selected, ${valueLabelString}`\n : valueLabelString) || placeholder\n }`}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-haspopup=\"listbox\"\n aria-expanded={`${open}`}\n aria-owns={menuId}\n aria-controls={menuId}\n aria-required={`${required}`}\n disabled={disabled}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.handleClick}\n onMouseDown={this.handleMouseDown}\n onKeyDown={this.handleKeyDown}\n >\n <ic-typography\n variant=\"body\"\n class={{\n \"value-text\": true,\n \"with-clear-button\": isClearable,\n placeholder:\n !loading && multiple\n ? !value || value.length < 1\n : !this.getLabelFromValue(currValue as string),\n }}\n >\n {valueLabelString || placeholder}\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 && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear selection\"\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={size}\n variant=\"icon-tertiary\"\n theme={clearButtonFocused ? \"light\" : \"dark\"}\n ></ic-button>\n )}\n </div>\n )}\n </ic-input-component-container>\n {(!isMobileOrTablet() || multiple) && (\n <ic-menu\n class={{\n \"no-results\":\n loading ||\n hasTimedOut ||\n (searchable &&\n this.filteredOptions?.[0]?.label === emptyOptionListText) ||\n (!searchable &&\n this.uniqueOptions?.[0]?.label === emptyOptionListText),\n }}\n ref={(el) => (this.menu = el)}\n inputEl={\n searchable\n ? this.searchableSelectElement\n : this.customSelectElement\n }\n inputLabel={label}\n anchorEl={this.anchorEl}\n size={size}\n menuId={menuId}\n open={open}\n options={searchable ? filteredOptions : uniqueOptions}\n value={multiple ? (currValue as string[]) : (currValue as string)}\n fullWidth={fullWidth}\n selectOnEnter={selectOnEnter}\n onMenuStateChange={this.handleMenuChange}\n onMenuOptionSelect={this.handleCustomSelectChange}\n onMenuOptionSelectAll={this.handleSelectAllChange}\n onMenuKeyPress={this.handleMenuKeyPress}\n onUngroupedOptionsSet={this.setUngroupedOptions}\n onRetryButtonClicked={this.handleRetry}\n parentEl={this.el}\n onTimeoutBlur={this.onTimeoutBlur}\n activationType={\n searchable || multiple || selectOnEnter ? \"manual\" : \"automatic\"\n }\n closeOnSelect={!multiple}\n multiSelect={multiple ? true : false}\n searchableSelect={searchable ? true : false}\n ></ic-menu>\n )}\n {multiple && (\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"multi-select-selected-count\"\n ></div>\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"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icCheckboxCss","IcCheckboxStyle0","Checkbox","constructor","hostRef","this","additionalFieldDisplay","checked","initiallyChecked","disabled","dynamicText","hideLabel","indeterminate","displayIndeterminate","nativeIndeterminateBehaviour","theme","value","handleClick","icCheck","emit","handleFormReset","watchDisabledHandler","removeDisabledFalse","el","watchIndeterminateHandler","componentWillLoad","addFormResetListener","parentElement","tagName","name","label","size","groupLabel","componentDidLoad","hasLabelSlot","arrangeLabel","onComponentRequiredPropUndefined","prop","propName","componentDidRender","querySelectorAll","forEach","textfield","setAttribute","additionalFieldContainer","style","display","disconnectedCallback","removeFormResetListener","setFocus","_a","checkboxEl","focus","getCheckboxGroupId","replace","labelSlot","querySelector","textContent","trim","render","form","inputId","isDynamicAdditionalField","renderHiddenInput","removeHiddenInput","LabelContent","h","class","variant","htmlFor","Host","key","viewBox","xmlns","d","role","checkbox","ref","type","id","onClick","undefined","isSlotUsed"],"sources":["src/components/ic-checkbox/ic-checkbox.css?tag=ic-checkbox&encapsulation=shadow","src/components/ic-checkbox/ic-checkbox.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host(.ic-checkbox-disabled) {\n pointer-events: none;\n}\n\n.container {\n display: flex;\n width: fit-content;\n padding: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-xxs);\n margin-bottom: var(--ic-space-xxs);\n align-items: center;\n}\n\n:host(.ic-data-table-checkbox) .container {\n padding: 0;\n margin-bottom: 0;\n}\n\n:host(.ic-checkbox-small) .container {\n margin-bottom: var(--ic-space-xxxs);\n}\n\n.checkbox {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n display: block;\n position: relative;\n top: 0;\n left: 0;\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n background-color: var(--ic-checkbox-background-unselected);\n border: var(--ic-border-width) solid var(--ic-checkbox-border-unselected);\n border-radius: var(--ic-border-radius);\n outline: none;\n cursor: pointer;\n transition: var(--ic-easing-transition-fast);\n flex-shrink: 0;\n}\n\n:host .container svg {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-checkbox-small) .checkbox,\n:host(.ic-checkbox-small) .container svg {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n:host(.ic-checkbox-large) .checkbox,\n:host(.ic-checkbox-large) .container svg {\n width: var(--ic-space-xl);\n height: var(--ic-space-xl);\n}\n\n.checkbox:checked {\n background-color: var(--ic-checkbox-background-selected);\n border: var(--ic-border-width) solid var(--ic-checkbox-background-selected);\n transition: var(--ic-easing-transition-slow);\n}\n\n.checkbox:checked:disabled {\n background-color: var(--ic-checkbox-background-selected-disabled);\n border: var(--ic-border-width) solid\n var(--ic-checkbox-background-selected-disabled);\n}\n\n.checkbox:indeterminate,\n.checkbox.indeterminate:checked {\n background-color: var(--ic-checkbox-background-indeterminate);\n border: 0.125rem solid var(--ic-checkbox-background-indeterminate);\n}\n\n.checkbox:indeterminate:disabled,\n.checkbox.indeterminate:checked:disabled {\n background-color: var(--ic-checkbox-background-indeterminate-disabled);\n border: 0.125rem solid var(--ic-checkbox-background-indeterminate-disabled);\n}\n\n.checkbox:checked:hover {\n background-color: var(--ic-checkbox-background-selected-hover);\n}\n\n.checkbox:indeterminate:hover,\n.checkbox.indeterminate:checked:hover {\n background-color: var(--ic-checkbox-background-indeterminate-hover);\n border: 0.125rem solid var(--ic-checkbox-background-indeterminate-hover);\n}\n\n.checkbox:checked:active {\n background-color: var(--ic-checkbox-background-selected-pressed);\n}\n\n.checkbox:indeterminate:active,\n.checkbox.indeterminate:checked:active {\n background-color: var(--ic-checkbox-background-indeterminate-pressed);\n border: 0.125rem solid var(--ic-checkbox-background-indeterminate-pressed);\n}\n\n.checkbox:hover {\n box-shadow: 0 0 0 0.25rem var(--ic-checkbox-action-background-hover);\n border: var(--ic-border-width) solid\n var(--ic-checkbox-border-unselected-hover);\n}\n\n.checkbox:active {\n box-shadow: 0 0 0 0.25rem var(--ic-checkbox-action-background-pressed);\n border: var(--ic-border-width) solid\n var(--ic-checkbox-border-unselected-pressed);\n}\n\n.checkbox:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n.checkbox:disabled {\n border: var(--ic-border-width) dashed\n var(--ic-checkbox-border-unselected-disabled);\n}\n\n.checkbox-label {\n --ic-typography-color: var(--ic-checkbox-text);\n}\n\n.checkbox-label > label {\n padding-left: var(--ic-space-sm);\n display: inline-block;\n}\n\n::slotted([slot=\"label\"]) {\n padding-left: var(--ic-space-sm) !important;\n color: var(--ic-checkbox-text);\n}\n\n:host(.ic-checkbox-disabled) .checkbox-label {\n color: var(--ic-checkbox-text-disabled);\n\n --ic-typography-color: var(--ic-checkbox-text-disabled);\n}\n\n:host(.ic-checkbox-disabled) ::slotted([slot=\"label\"]) {\n color: var(--ic-checkbox-text-disabled);\n\n --ic-typography-color: var(--ic-checkbox-text-disabled);\n}\n\n.checkbox-label:hover {\n cursor: pointer;\n}\n\n.checkmark {\n position: relative;\n right: calc(-1 * var(--ic-space-lg));\n margin-left: calc(-1 * var(--ic-space-lg));\n fill: var(--ic-checkbox-icon-pressed);\n z-index: 1;\n background-color: transparent;\n pointer-events: none;\n flex-shrink: 0;\n}\n\n:host(.ic-checkbox-small) .checkmark {\n margin-left: calc(-1 * var(--ic-space-md));\n right: calc(-1 * var(--ic-space-md));\n}\n\n:host(.ic-checkbox-large) .checkmark {\n margin-left: calc(-1 * var(--ic-space-xl));\n right: calc(-1 * var(--ic-space-xl));\n}\n\n.indeterminate-symbol {\n position: relative;\n width: 0.875rem;\n height: var(--ic-space-xxxs);\n right: -1.188rem;\n margin-left: -0.875rem;\n z-index: 1;\n background-color: var(--ic-checkbox-icon-indeterminate);\n pointer-events: none;\n flex-shrink: 0;\n}\n\n:host(.ic-checkbox-small) .indeterminate-symbol {\n width: 0.6rem;\n right: -0.8rem;\n margin-left: -0.6rem;\n}\n\n:host(.ic-checkbox-large) .indeterminate-symbol {\n width: 1.25rem;\n right: -1.625rem;\n margin-left: -1.25rem;\n}\n\n.additional-field-wrapper {\n margin-left: calc(var(--ic-space-md) + var(--ic-space-lg));\n margin-top: calc(var(--ic-space-sm) / 2);\n}\n\n.branch-corner {\n height: var(--ic-space-md);\n width: var(--ic-space-xl);\n border-radius: 0 0 0 0.188rem;\n border-bottom: 0.125rem solid var(--ic-checkbox-required-bar);\n border-left: 0.125rem solid var(--ic-checkbox-required-bar);\n}\n\n.dynamic-container {\n display: flex;\n position: relative;\n margin: var(--ic-space-xxxs) 0 var(--ic-space-xxs) var(--ic-space-md);\n gap: var(--ic-space-xs);\n}\n\n.dynamic-text {\n color: var(--ic-checkbox-required-text);\n\n --ic-typography-color: var(--ic-checkbox-required-text);\n\n margin-top: calc(var(--ic-space-sm) / 2);\n margin-bottom: var(--ic-space-xs);\n border-radius: 2%;\n}\n\n.dynamic-field-container {\n flex: 100%;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n@media (max-width: 576px) {\n ::slotted(*) {\n --input-width: 100%;\n }\n\n .dynamic-field-container {\n flex: initial;\n }\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n .checkbox {\n appearance: revert;\n }\n\n .checkbox:focus-visible {\n outline: 0.125rem solid highlight;\n }\n\n .checkbox:disabled:not(:checked) {\n appearance: none;\n border-color: GrayText;\n }\n\n .checkmark {\n fill: none;\n }\n\n .indeterminate-symbol {\n display: none;\n }\n}\n\n/* Right to left */\n.checkmark:dir(rtl) {\n right: 0;\n}\n\n.checkbox-label:dir(rtl) {\n padding-right: var(--ic-space-sm);\n padding-left: 0;\n}\n\n.indeterminate-symbol:dir(rtl) {\n right: 0.288rem;\n}\n\n.branch-corner:dir(rtl) {\n border-radius: 0 0 0.188rem;\n border-right: 0.125rem solid var(--ic-action-default);\n border-left: none;\n}\n\n.dynamic-container:dir(rtl) {\n margin: var(--ic-space-xxxs) var(--ic-space-sm) var(--ic-space-xxs) 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .checkbox,\n .checkbox:checked {\n transition: none;\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAdditionalFieldTypes,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n removeHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\n\n/**\n * @slot additional-field - Content to be displayed alongside a checkbox.\n * @slot label - Label for the checkbox.\n */\n@Component({\n tag: \"ic-checkbox\",\n styleUrl: \"ic-checkbox.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Checkbox {\n private additionalFieldContainer?: HTMLDivElement;\n private checkboxEl?: HTMLInputElement;\n private labelSlot: HTMLElement | null;\n\n @Element() el: HTMLIcCheckboxElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the checkbox will be set to the checked state. This is only the initial state and will be updated to unchecked if the checkbox is clicked.\n */\n @Prop({ reflect: true, mutable: true }) checked = false;\n @State() initiallyChecked = this.checked;\n\n /**\n * If `true`, the checkbox will be set to the disabled state.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The text to be displayed when dynamic.\n */\n\n @Prop() dynamicText = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the checkbox with.\n */\n @Prop() form?: string;\n\n /**\n * The group label for the checkbox.\n */\n @Prop({ mutable: true }) groupLabel?: string;\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`, the indeterminate state will be displayed when checked.\n */\n @Prop() indeterminate = false;\n @State() displayIndeterminate = this.indeterminate;\n @Watch(\"indeterminate\")\n watchIndeterminateHandler(): void {\n this.displayIndeterminate =\n this.indeterminate && (this.nativeIndeterminateBehaviour || this.checked);\n }\n\n /**\n * The label for the checkbox.\n */\n @Prop() label!: string;\n\n /**\n * The name for the checkbox. If not set when used in a checkbox group, the name will be based on the group name.\n */\n @Prop({ mutable: true }) name?: string;\n\n /**\n * If `true`, the checkbox will behave like a native checkbox where the `indeterminate` prop sets the indeterminate visual styling, independent of the `checked` state.\n */\n @Prop() nativeIndeterminateBehaviour = false;\n\n /**\n * The size of the checkbox to be displayed. This does not affect the font size of the label. If a checkbox is contained in a checkbox group, this will override the size set on checkbox group.\n */\n @Prop({ mutable: true }) size?: IcSizes;\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 for the checkbox.\n */\n @Prop() value = \"\";\n\n /**\n * Emitted when a checkbox has been checked.\n */\n @Event() icCheck: EventEmitter<void>;\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n addFormResetListener(this.el, this.handleFormReset);\n\n const { parentElement } = this.el;\n if (parentElement?.tagName === \"IC-CHECKBOX-GROUP\") {\n const { name, label, size } = parentElement as HTMLIcCheckboxGroupElement;\n\n if (!this.name) this.name = name;\n if (!this.size) this.size = size;\n this.groupLabel = label;\n }\n }\n\n componentDidLoad(): void {\n if (this.hasLabelSlot()) {\n this.arrangeLabel();\n } else {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Checkbox\"\n );\n }\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n this.el\n .querySelectorAll(\"ic-text-field\")\n .forEach((textfield) =>\n textfield.setAttribute(\"disabled\", `${!this.checked}`)\n );\n } else if (this.additionalFieldContainer) {\n this.additionalFieldContainer.style.display = !this.checked\n ? \"none\"\n : \"flex\";\n }\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n /**\n * Sets focus on the checkbox.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.checkboxEl?.focus();\n }\n\n private getCheckboxGroupId() {\n return `ic-checkbox-${this.label}-${this.groupLabel}`.replace(/ /g, \"-\");\n }\n\n private hasLabelSlot() {\n this.labelSlot = this.el.querySelector('[slot=\"label\"]');\n return !!this.labelSlot;\n }\n\n private arrangeLabel() {\n if (this.labelSlot) {\n this.label = this.labelSlot.textContent?.trim() || \"\";\n this.labelSlot.setAttribute(\"for\", this.getCheckboxGroupId());\n if (this.disabled) {\n this.labelSlot.setAttribute(\"aria-disabled\", \"true\");\n }\n }\n }\n\n private handleClick = () => {\n this.checked = !this.checked;\n this.displayIndeterminate =\n !this.nativeIndeterminateBehaviour && this.indeterminate && this.checked;\n this.icCheck.emit();\n };\n\n private handleFormReset = (): void => {\n this.checked = this.initiallyChecked;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n checked,\n disabled,\n displayIndeterminate,\n dynamicText,\n el,\n form,\n handleClick,\n hideLabel,\n label,\n name,\n size,\n theme,\n value,\n } = this;\n\n const inputId = this.getCheckboxGroupId();\n\n const isDynamicAdditionalField = additionalFieldDisplay === \"dynamic\";\n\n checked\n ? renderHiddenInput(el, value, name, disabled)\n : removeHiddenInput(el);\n\n const LabelContent = () =>\n this.hasLabelSlot() ? (\n <slot name=\"label\"></slot>\n ) : (\n <ic-typography class=\"checkbox-label\" variant=\"body\">\n <label htmlFor={inputId}>{label}</label>\n </ic-typography>\n );\n\n return (\n <Host\n class={{\n \"ic-checkbox-disabled\": disabled,\n [`ic-checkbox-${size}`]: !!size,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class=\"container\">\n {displayIndeterminate ? (\n <div class=\"indeterminate-symbol\" />\n ) : (\n checked && (\n <svg\n class=\"checkmark\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n >\n <title>checkmark icon</title>\n <path d=\"M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z\" />\n </svg>\n )\n )}\n <input\n role=\"checkbox\"\n class={{\n checkbox: true,\n checked,\n indeterminate: displayIndeterminate,\n }}\n ref={(el) => (this.checkboxEl = el)}\n type=\"checkbox\"\n name={name}\n id={inputId}\n value={value}\n disabled={disabled}\n checked={checked}\n indeterminate={displayIndeterminate}\n onClick={handleClick}\n form={form}\n aria-label={hideLabel || this.hasLabelSlot() ? label : undefined}\n ></input>\n {!hideLabel && <LabelContent />}\n </div>\n <span\n id={`${inputId}-additional-field-description`}\n role=\"alert\"\n class=\"sr-only\"\n >\n {isDynamicAdditionalField && checked ? dynamicText : \"\"}\n </span>\n {isSlotUsed(el, \"additional-field\") && (\n <div\n class=\"dynamic-container\"\n ref={(el) => (this.additionalFieldContainer = el)}\n >\n {isDynamicAdditionalField && <div class=\"branch-corner\"></div>}\n <div class=\"dynamic-field-container\">\n {isDynamicAdditionalField && (\n <ic-typography variant=\"caption\">\n <p class=\"dynamic-text\">\n {isDynamicAdditionalField && checked ? dynamicText : \"\"}\n </p>\n </ic-typography>\n )}\n <div\n class={{\n \"additional-field-wrapper\": !isDynamicAdditionalField,\n }}\n >\n <slot name=\"additional-field\"></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icActionChipCss","IcActionChipStyle0","ActionChip","constructor","hostRef","this","disabled","download","monochrome","size","theme","transparentBackground","type","variant","watchDisabledHandler","removeDisabledFalse","el","disconnectedCallback","_a","hostMutationObserver","disconnect","componentWillLoad","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","MutationObserver","mutationList","renderDynamicChildSlots","observe","childList","setFocus","chipEl","focus","render","form","formaction","formenctype","formmethod","formnovalidate","formtarget","href","hreflang","referrerpolicy","rel","target","TagType","isButtonElement","chipAttrs","h","Host","key","class","Object","assign","chip","ref","isSlotUsed","name","isElInAGGrid","innerHTML","OpenInNew"],"sources":["src/components/ic-action-chip/ic-action-chip.css?tag=ic-action-chip&encapsulation=shadow","src/components/ic-action-chip/ic-action-chip.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: inline-block;\n max-width: 100%;\n vertical-align: middle;\n}\n\n.chip {\n --icon-color: var(--ic-action-chip-filled-icon);\n --text-color: var(--ic-action-chip-filled-label);\n --ic-typography-color: var(--text-color);\n\n align-items: center;\n background-color: var(--ic-action-chip-filled-background-default);\n border: var(--ic-border-width) solid transparent;\n border-radius: var(--ic-space-md);\n color: var(--text-color);\n cursor: pointer;\n display: flex;\n padding: calc(var(--ic-space-xxs) - var(--ic-space-1px)) var(--ic-space-xxs);\n position: relative;\n text-decoration: none;\n\n &:hover {\n background-color: var(--ic-action-chip-filled-background-hover);\n }\n\n &:active {\n background-color: var(--ic-action-chip-filled-background-pressed);\n }\n\n &:focus {\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n z-index: 1;\n }\n}\n\n.small {\n border-radius: calc(var(--ic-space-md) - var(--ic-space-xxxs));\n padding: var(--ic-space-1px) var(--ic-space-xxxs);\n}\n\n.large {\n border-radius: calc(var(--ic-space-md) + var(--ic-space-xxs));\n padding: calc(var(--ic-space-xs) - var(--ic-space-1px)) var(--ic-space-xs);\n}\n\n.outlined {\n --icon-color: var(--ic-action-chip-outlined-icon);\n --text-color: var(--ic-action-chip-outlined-label);\n\n background-color: transparent;\n border-color: var(--ic-action-chip-outlined-border-default);\n\n &.non-transparent {\n background-color: var(--ic-action-chip-outlined-background-default);\n }\n\n &:hover {\n --icon-color: var(--ic-action-chip-outlined-icon-hover);\n --text-color: var(--ic-action-chip-outlined-label-hover);\n\n background-color: var(--ic-action-chip-outlined-background-hover);\n border-color: var(--ic-action-chip-outlined-border-hover);\n }\n\n &:active {\n --icon-color: var(--ic-action-chip-outlined-icon-pressed);\n --text-color: var(--ic-action-chip-outlined-label-pressed);\n\n background-color: var(--ic-action-chip-outlined-background-pressed);\n border-color: var(--ic-action-chip-outlined-border-pressed);\n }\n}\n\n.monochrome {\n &.filled {\n background-color: var(\n --ic-action-chip-monochrome-filled-background-default\n );\n\n &:hover {\n background-color: var(\n --ic-action-chip-monochrome-filled-background-hover\n );\n }\n\n &:active {\n background-color: var(\n --ic-action-chip-monochrome-filled-background-pressed\n );\n }\n }\n\n &.outlined {\n --icon-color: var(--ic-action-chip-monochrome-outlined-icon);\n --text-color: var(--ic-action-chip-monochrome-outlined-label);\n\n border-color: var(--ic-action-chip-monochrome-outlined-border-default);\n\n &.non-transparent {\n background-color: var(\n --ic-action-chip-monochrome-outlined-background-default\n );\n }\n\n &:hover {\n --icon-color: var(--ic-action-chip-monochrome-outlined-icon-hover);\n --text-color: var(--ic-action-chip-monochrome-outlined-label-hover);\n\n background-color: var(\n --ic-action-chip-monochrome-outlined-background-hover\n );\n border-color: var(--ic-action-chip-monochrome-outlined-border-hover);\n }\n\n &:active {\n --icon-color: var(--ic-action-chip-monochrome-outlined-icon-pressed);\n --text-color: var(--ic-action-chip-monochrome-outlined-label-pressed);\n\n background-color: var(\n --ic-action-chip-monochrome-outlined-background-pressed\n );\n border-color: var(--ic-action-chip-monochrome-outlined-border-pressed);\n }\n }\n}\n\n.disabled {\n --icon-color: var(--ic-action-chip-icon-disabled) !important;\n --text-color: var(--ic-action-chip-label-disabled) !important;\n\n background-color: var(--ic-action-chip-background-disabled) !important;\n cursor: default;\n\n &.outlined {\n border-color: var(--ic-action-chip-outlined-border-disabled) !important;\n border-style: dashed;\n\n &:not(.non-transparent) {\n background-color: transparent !important;\n }\n }\n}\n\n.label {\n padding: 0 var(--ic-space-xs);\n}\n\n.icon {\n box-sizing: border-box;\n color: var(--icon-color);\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n padding: var(--ic-space-xxxs);\n}\n\n.open-in-new-icon {\n box-sizing: border-box;\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n}\n\n.open-in-new-icon > svg {\n fill: var(--icon-color);\n height: inherit;\n width: inherit;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n .chip {\n transition: var(--ic-easing-transition-fast);\n }\n}\n\n@media (forced-colors: active) {\n .chip {\n border: var(--ic-border-hc);\n\n &.disabled {\n --text-color: GrayText;\n\n appearance: none;\n border-color: GrayText;\n\n svg,\n ::slotted(svg) {\n fill: GrayText;\n }\n }\n\n &:focus {\n border-color: Highlight;\n outline: none;\n }\n }\n}\n","import {\n Component,\n Element,\n h,\n Host,\n Method,\n Prop,\n Watch,\n} from \"@stencil/core\";\nimport OpenInNew from \"../../assets/OpenInNew.svg\";\nimport {\n isElInAGGrid,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport { IcEmphasisType, IcSizes, IcThemeMode } from \"../../utils/types\";\nimport { IcButtonTypes } from \"../ic-button/ic-button.types\";\n\n/**\n * @slot badge - Badge component overlaying the top right of the chip.\n * @slot icon - Content will be rendered at the start of the chip.\n */\n@Component({\n tag: \"ic-action-chip\",\n styleUrl: \"ic-action-chip.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ActionChip {\n private chipEl?: HTMLButtonElement | HTMLAnchorElement;\n private hostMutationObserver?: MutationObserver;\n\n @Element() el: HTMLIcActionChipElement;\n\n /**\n * If `true`, the chip will appear disabled.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download: string | boolean = false;\n\n /**\n * The <form> element to associate the chip with.\n */\n @Prop() form?: string;\n\n /**\n * The URL that processes the information submitted by the chip. It overrides the action attribute of the chip's form owner. Does nothing if there is no form owner.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the chip's form owner.\n */\n @Prop() formtarget?: string;\n\n /**\n * The URL that the link points to. This will render the chip as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The text rendered within the chip.\n */\n @Prop() label!: string;\n\n /**\n * If `true`, the button will display as monochromatic in either `light` or `dark` theme.\n */\n @Prop() monochrome = false;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The size of the chip.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the chip to the dark or light theme colors. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * If `true`, the outlined variant of chip will have a transparent background rather than the theme defined color.\n */\n @Prop() transparentBackground = true;\n\n /**\n * The type of the chip.\n */\n @Prop() type: IcButtonTypes = \"button\";\n\n /**\n * The emphasis of the chip.\n */\n @Prop() variant: IcEmphasisType = \"filled\";\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Chip\"\n );\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, [\"icon\", \"badge\"], this)\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n /**\n * Sets focus on the chip.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.chipEl?.focus();\n }\n\n render() {\n const {\n disabled,\n download,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n href,\n hreflang,\n label,\n monochrome,\n referrerpolicy,\n rel,\n size,\n target,\n theme,\n transparentBackground,\n type,\n variant,\n } = this;\n\n const TagType = href ? \"a\" : \"button\";\n const isButtonElement = TagType === \"button\";\n\n const chipAttrs = isButtonElement\n ? {\n disabled,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n type,\n }\n : {\n download: download !== false ? download : null,\n href,\n hreflang,\n referrerpolicy,\n rel,\n target,\n };\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <TagType\n class={{\n chip: true,\n disabled: isButtonElement && disabled,\n monochrome,\n \"non-transparent\": variant === \"outlined\" && !transparentBackground,\n [`${size}`]: true,\n [`${variant}`]: true,\n }}\n ref={(el) => (this.chipEl = el)}\n {...chipAttrs}\n >\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography\n variant=\"label\"\n class={{ label: true, \"in-ag-grid\": isElInAGGrid(this.el) }}\n >\n <span>{label}</span>\n </ic-typography>\n {!isButtonElement && target === \"_blank\" && (\n <span class=\"open-in-new-icon\" innerHTML={OpenInNew} />\n )}\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </TagType>\n </Host>\n );\n }\n}\n"],"mappings":"qLAAA,MAAMA,EAAkB,wsYACxB,MAAAC,EAAeD,E,MC8BFE,EAAU,MAPvB,WAAAC,CAAAC,G,UAgBUC,KAAAC,SAAW,MASXD,KAAAE,SAA6B,MAkD7BF,KAAAG,WAAa,MAebH,KAAAI,KAAgB,SAUhBJ,KAAAK,MAAqB,UAKrBL,KAAAM,sBAAwB,KAKxBN,KAAAO,KAAsB,SAKtBP,KAAAQ,QAA0B,Q,CAjGlC,oBAAAC,GACEC,EAAoBV,KAAKC,SAAUD,KAAKW,G,CAkG1C,oBAAAC,G,OACEC,EAAAb,KAAKc,wBAAoB,MAAAD,SAAA,SAAAA,EAAEE,Y,CAG7B,iBAAAC,GACEN,EAAoBV,KAAKC,SAAUD,KAAKW,G,CAG1C,gBAAAM,GACEC,EACE,CAAC,CAAEC,KAAMnB,KAAKoB,MAAOC,SAAU,UAC/B,QAGFrB,KAAKc,qBAAuB,IAAIQ,kBAAkBC,GAChDC,EAAwBD,EAAc,CAAC,OAAQ,SAAUvB,QAE3DA,KAAKc,qBAAqBW,QAAQzB,KAAKW,GAAI,CACzCe,UAAW,M,CAQf,cAAMC,G,OACJd,EAAAb,KAAK4B,UAAM,MAAAf,SAAA,SAAAA,EAAEgB,O,CAGf,MAAAC,GACE,MAAM7B,SACJA,EAAQC,SACRA,EAAQ6B,KACRA,EAAIC,WACJA,EAAUC,YACVA,EAAWC,WACXA,EAAUC,eACVA,EAAcC,WACdA,EAAUC,KACVA,EAAIC,SACJA,EAAQlB,MACRA,EAAKjB,WACLA,EAAUoC,eACVA,EAAcC,IACdA,EAAGpC,KACHA,EAAIqC,OACJA,EAAMpC,MACNA,EAAKC,sBACLA,EAAqBC,KACrBA,EAAIC,QACJA,GACER,KAEJ,MAAM0C,EAAUL,EAAO,IAAM,SAC7B,MAAMM,EAAkBD,IAAY,SAEpC,MAAME,EAAYD,EACd,CACE1C,WACA8B,OACAC,aACAC,cACAC,aACAC,iBACAC,aACA7B,QAEF,CACEL,SAAUA,IAAa,MAAQA,EAAW,KAC1CmC,OACAC,WACAC,iBACAC,MACAC,UAGN,OACEI,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,CAAC,YAAY3C,KAAUA,IAAU,YAGnCwC,EAACH,EAAOO,OAAAC,OAAA,CAAAH,IAAA,2CACNC,MAAO,CACLG,KAAM,KACNlD,SAAU0C,GAAmB1C,EAC7BE,aACA,kBAAmBK,IAAY,aAAeF,EAC9C,CAAC,GAAGF,KAAS,KACb,CAAC,GAAGI,KAAY,MAElB4C,IAAMzC,GAAQX,KAAK4B,OAASjB,GACxBiC,GAEHS,EAAWrD,KAAKW,GAAI,SACnBkC,EAAA,OAAAE,IAAA,2CAAKC,MAAM,QACTH,EAAA,QAAAE,IAAA,2CAAMO,KAAK,UAGfT,EAAA,iBAAAE,IAAA,2CACEvC,QAAQ,QACRwC,MAAO,CAAE5B,MAAO,KAAM,aAAcmC,EAAavD,KAAKW,MAEtDkC,EAAA,QAAAE,IAAA,4CAAO3B,KAEPuB,GAAmBF,IAAW,UAC9BI,EAAA,QAAAE,IAAA,2CAAMC,MAAM,mBAAmBQ,UAAWC,IAE3CJ,EAAWrD,KAAKW,GAAI,UAAYkC,EAAA,QAAAE,IAAA,2CAAMO,KAAK,W","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as i,c as t,h as a,H as e,g as s}from"./p-8e4e97b4.js";import{c as o}from"./p-f074ef5b.js";import{C as n}from"./p-3b185c32.js";import{C as d,f as l,D as r,g as p,i as c,P as h,h as v,o as g,y as m,I as b,e as u}from"./p-dbc8bf0c.js";import"./p-6215e2ae.js";const f=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">\n <path d="M0 0h24v24H0V0z" fill="none" />\n <path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" />\n <title>menu icon</title>\n</svg>\n`;const y=':host{display:block;--ic-typography-color:currentcolor;--side-navigation-position:fixed;--side-navigation-position-left:0;--side-navigation-position-top:var(--ic-space-xxl);--side-navigation-height:var(--ic-space-xxl);--sm-side-navigation-top-bar-height:3.5rem;--sm-side-navigation-collapsed-labels-width:6rem;--sm-side-navigation-expand-transition-duration:var(\n --ic-transition-duration-slow\n );--side-navigation-width:20rem;--sm-side-navigation-bottom-bar-height:3.5rem;--keyline-lighten:var(--ic-space-1px) solid var(--ic-side-navigation-keyline);--keyline-darken:var(--ic-space-1px) solid var(--ic-state-layer-darken-20);--ic-button-secondary-text-monochrome:var(--ic-brand-text-color);--ic-button-secondary-border-monochrome:var(--ic-brand-text-color);z-index:var(--ic-z-index-side-navigation)}:host>*{box-sizing:border-box}.side-navigation{display:flex;flex-direction:column;width:var(--side-navigation-width);color:var(--ic-side-navigation-text);position:var(--side-navigation-position);top:var(--side-navigation-position-top);left:calc(var(--side-navigation-width) * -1);bottom:0;background-color:var(--ic-side-navigation-background);z-index:var(--ic-z-index-side-navigation)}:host(.ic-side-navigation-inline) .side-navigation{position:absolute;height:100%}:host(.anchor-right) .side-navigation{right:calc(var(--side-navigation-width) * -1)}.classification-spacing{margin-bottom:var(--ic-space-lg)}.navigation-list{padding:0;margin:0;list-style:none}.side-navigation-inner{background-color:var(--ic-side-navigation-background);display:flex;flex-direction:column;flex:1 1 4rem;overflow:auto}:host(.ic-side-navigation-inline) .side-navigation-inner{flex:1}:host(.xs-menu-open) .side-navigation{transition:left var(--ic-easing-transition-slow);left:0}:host(:has(.xs-menu-open,.xs-menu-close)) ::slotted(ic-navigation-item){--navigation-item-side-nav-right:var(--ic-space-xl)}:host(.xs-menu-close) .side-navigation{left:calc(var(--side-navigation-width) * -1);transition:left var(--ic-easing-transition-slow)}:host(.xs-menu-close) .side-navigation>*{visibility:hidden}:host(.anchor-right.xs-menu-open) .side-navigation{right:0;left:auto}:host(.anchor-right.xs-menu-close) .side-navigation{right:calc(var(--side-navigation-width) * -1);left:auto;transition:right var(--ic-easing-transition-slow)}.bottom-wrapper{border-top:var(--keyline-lighten);bottom:0;left:0;z-index:2;background-color:var(--ic-side-navigation-background);display:flex;flex-direction:column}:host(.ic-side-navigation-inline) .bottom-wrapper{position:sticky}:host(.ic-side-navigation-dark) .bottom-wrapper{border-top:var(--keyline-darken)}.top-bar{display:flex;flex-direction:row;align-items:center;min-height:var(--side-navigation-height);padding:var(--ic-space-xs);box-sizing:border-box;background-color:var(--ic-side-navigation-background);position:fixed;top:0;left:0;right:0;border-bottom:var(--keyline-lighten);box-shadow:var(--ic-elevation-overlay);z-index:2;overflow:hidden;visibility:visible}:host(.ic-side-navigation-inline) .top-bar{position:absolute}:host(.ic-side-navigation-dark) .top-bar{border-bottom:var(--keyline-darken)}.top-bar.dark a:focus{box-shadow:var(--ic-border-focus)}.app-title-wrapper{display:flex;margin-left:var(--ic-space-xs);border-left:var(--keyline-lighten);padding-left:var(--ic-space-xxs);color:var(--ic-side-navigation-text);align-items:center}:host(.ic-side-navigation-dark) .app-title-wrapper{border-left:var(--keyline-darken)}.app-title-wrapper ic-typography h1{margin:0}@media screen and (min-width: 340px){.app-title-wrapper ic-typography{margin-left:var(--ic-space-xs)}}:host .title-link{display:flex;align-items:center;transition:box-shadow var(--ic-easing-transition-fast),\n background-color var(--ic-easing-transition-fast);text-decoration:none;padding:var(--ic-space-xxs);color:var(--ic-side-navigation-text)}:host .title-link:visited,:host .title-link:active{color:var(--ic-side-navigation-text)}slot[name="app-title"]::slotted(a),slot[name="app-icon"]::slotted(a){color:var(--ic-side-navigation-text);outline:none;text-decoration:none;display:flex}slot[name="app-title"]::slotted(ic-typography),slot[name="app-title"]::slotted(a){margin-left:var(--ic-space-xs) !important}slot[name="app-title"]::slotted(a){font:var(--ic-font-subtitle-small)}:host .title-link:hover{border-radius:var(--ic-border-radius);background-color:var(--ic-side-navigation-hover)}:host .title-link:active{background-color:var(--ic-side-navigation-pressed)}:host .title-link:focus,:host .title-link:focus-within{border-radius:var(--ic-border-radius);box-shadow:var(--ic-border-focus);outline:var(--ic-hc-focus-outline);background-color:transparent}:host .title-link ic-typography{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.app-title-wrapper ::slotted(svg){fill:var(--ic-side-navigation-text)}.app-icon-container{display:none}.button-label{display:flex;align-items:center}.mobile-top-bar-menu-icon{display:flex}.menu-button{width:6.5rem}.app-status-wrapper{inset:0 var(--ic-space-sm) 0 3.5rem;width:auto;display:flex;gap:var(--ic-space-xs);padding:var(--ic-space-sm) 0;justify-content:flex-end;align-items:flex-end;pointer-events:none;height:-moz-fit-content;height:fit-content;margin:0 var(--ic-space-xs)}.app-status-wrapper .app-version{display:flex;overflow-wrap:break-word;padding-bottom:var(--ic-space-xxs)}.app-status-wrapper .app-status{display:flex;border-radius:1rem;background-color:var(--ic-side-navigation-text);color:var(--ic-side-navigation-status-tag-text);padding:var(--ic-space-xxs) var(--ic-space-lg);min-width:1rem}.app-status-wrapper .app-status-text{overflow-wrap:break-word}:host(.ic-side-navigation-dark) .app-status-wrapper .app-status{--ic-typography-color:var(--ic-architectural-white)}.navigation-landmark-title{position:absolute;width:var(--ic-space-1px);height:var(--ic-space-1px);padding:0;margin:calc(-1 * var(--ic-space-1px));overflow:hidden}::slotted(ic-navigation-group){--navigation-group-height:2.75rem;--navigation-group-justify-content:space-between;--navigation-group-hover:var(--ic-side-navigation-hover);--navigation-group-text-hover:var(--ic-side-navigation-text);--navigation-item-child-height:3.5rem;--navigation-item-child-active:var(--ic-action-dark-bg-pressed);--navigation-item-child-color:var(--ic-side-navigation-text);--navigation-group-expand-toggle-padding:0.25rem}::slotted(ic-navigation-item),::slotted(ic-navigation-group){--navigation-item-justify-content:flex-start;--navigation-item-min-height:56px;--navigation-item-height:auto}.bottom-side-nav{position:relative;align-content:flex-end;min-height:var(--sm-side-navigation-top-bar-height)}.bottom-side-nav ic-divider{position:absolute;top:0}.primary-navigation{flex:1;display:flex;flex-direction:column;overflow-y:auto;scrollbar-width:none}.primary-navigation::-webkit-scrollbar{display:none}.primary-navigation,.secondary-navigation{overflow-x:hidden}.bottom-side-nav .menu-expand-button{position:absolute;display:none}.menu-visibility-visible{visibility:visible;width:100%}.app-title-show{min-width:15.5rem}:host(.side-display){display:flex;flex-direction:column;height:100vh;position:var(--side-navigation-position);left:0;top:0;bottom:0}:host(.side-display) .app-icon-container{height:40px;display:flex;align-items:center}:host(.side-display) .top-bar{--side-navigation-height:var(--sm-side-navigation-top-bar-height);position:relative;padding:0;box-shadow:none}:host(.ic-side-navigation-inline.side-display) .top-bar{position:sticky}:host(.anchor-right.side-display) .top-bar{box-shadow:0.188rem 0.188rem 0.5rem rgb(0 0 0 / 20%)}:host(.anchor-right.side-display) .bottom-wrapper{box-shadow:0.188rem -0.188rem 0.5rem rgb(0 0 0 / 20%)}:host(.side-display) .side-navigation,:host(.side-display) .top-bar{width:var(--sm-side-navigation-top-bar-height)}:host(.sm-collapsed.side-display){width:var(--sm-side-navigation-top-bar-height);transition:width var(--ic-easing-transition-slow)}:host(.sm-collapsed.collapsed-labels.side-display){width:var(--sm-side-navigation-collapsed-labels-width)}:host(.sm-expanded.side-display){width:var(--side-navigation-width);transition:width var(--ic-easing-transition-slow);box-shadow:var(--ic-elevation-overlay)}:host(.side-display) .side-navigation{--side-navigation-position-top:0;flex:1;position:relative;top:auto;left:auto;bottom:auto}:host(.ic-side-navigation-inline.side-display) .side-navigation{position:relative}:host(.anchor-right.side-display) .side-navigation{left:auto;right:0}:host(.side-display) .app-title-wrapper{margin-left:0;border-left:none;padding:var(--ic-space-xs) var(--ic-space-sm)}:host(.side-display) .app-title-wrapper ::slotted(svg){height:var(--ic-space-lg);width:var(--ic-space-lg)}:host(.side-display) .app-title-wrapper ic-typography{font-weight:var(--ic-font-weight-semibold)}:host(.sm-collapsed.side-display) .app-title-wrapper ic-typography{position:absolute;left:-9999px;opacity:0;transition:opacity var(--ic-easing-transition-slow)}:host(.sm-collapsed.side-display) .app-title-wrapper ic-typography:dir(rtl){right:-9999px}:host(.sm-expanded.side-display) ic-typography{position:relative;left:0}:host(.sm-expanded.side-display) :is(.side-navigation,.top-bar){width:var(--side-navigation-width);transition:width var(--ic-easing-transition-slow)}:host(.sm-collapsed.side-display) :is(.side-navigation,.top-bar){width:var(--sm-side-navigation-top-bar-height);transition:width var(--ic-easing-transition-slow)}:host(.anchor-right.sm-expanded.side-display) :is(.side-navigation,.top-bar){left:auto;right:0}:host(.side-display) .app-status-wrapper,:host(.sm-collapsed.side-display) .app-status-wrapper{display:none;margin-left:0}:host(.sm-expanded.side-display) .app-status-wrapper{display:flex;max-width:16rem;margin-right:calc(var(--ic-space-xxxs) + var(--ic-space-xs))}:host(.side-display) .bottom-side-nav{justify-items:flex-end;align-items:flex-end;justify-content:flex-end;display:flex;outline:none}:host(.side-display) .bottom-side-nav .menu-expand-button{padding-left:var(--ic-space-md);height:var(--sm-side-navigation-top-bar-height);width:100%;color:var(--ic-side-navigation-text);background-color:transparent;outline:var(--ic-hc-focus-outline);border:none;cursor:pointer;display:flex;transition:var(--ic-easing-transition-fast)}:host(.sm-expanded.side-display) .bottom-side-nav .menu-expand-button{height:100%}:host(.side-display) .bottom-side-nav .menu-expand-button svg{justify-items:flex-start;align-self:center;display:inline-block;width:var(--ic-space-lg);height:var(--ic-space-lg)}:host(.side-display) .bottom-side-nav .menu-expand-button:hover{background-color:var(--ic-side-navigation-hover)}:host(.side-display) .bottom-side-nav .menu-expand-button:focus{box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);background-color:transparent}:host(.sm-collapsed.side-display) .bottom-side-nav .menu-expand-button svg{transform:scaleX(1);transition:transform var(--ic-easing-transition-slow)}:host(.sm-expanded.side-display) .bottom-side-nav .menu-expand-button svg{transform:scaleX(-1);transition:transform var(--ic-easing-transition-slow);align-self:flex-end;margin-bottom:0.875rem}:host(.anchor-right.sm-collapsed.side-display) .bottom-side-nav .menu-expand-button svg{transform:scaleX(-1)}:host(.anchor-right.sm-expanded.side-display) .bottom-side-nav .menu-expand-button svg{transform:scaleX(1)}:host(.sm-collapsed.side-display) ::slotted(ic-navigation-item){--navigation-item-label-opacity:1}:host(.sm-collapsed.side-display) ::slotted(ic-navigation-item),:host(.sm-collapsed.side-display) ::slotted(ic-navigation-group){--navigation-item-label-opacity:0;--navigation-item-min-height:3.5rem;--navigation-item-height:3.5rem}:host(.sm-expanded.side-display) ::slotted(ic-navigation-item),:host(.sm-expanded.side-display) ::slotted(ic-navigation-group){--navigation-item-label-opacity:1;--navigation-item-height:auto;--navigation-item-min-height:3.5rem;--navigation-item-width:20rem;--navigation-item-side-nav-right:var(--ic-space-xl);--navigation-group-width:20rem}:host(.sm-collapsed.side-display) ::slotted(ic-navigation-group){--navigation-group-title-position:absolute;--navigation-group-title-position-left:-9999px;--navigation-group-title-opacity:none}:host(.sm-expanded.side-display) ::slotted(ic-navigation-group){--navigation-group-title-position:relative;--navigation-group-title-position-left:0;--navigation-group-expand-toggle-padding:0.25rem;--navigation-group-title-opacity:flex}:host(.sm-collapsed.collapsed-labels.side-display) .side-navigation,:host(.sm-collapsed.collapsed-labels.side-display) .top-bar{width:var(--sm-side-navigation-collapsed-labels-width)}:host(.sm-collapsed.collapsed-labels.side-display) .menu-expand-button{padding:0}:host(.sm-collapsed.collapsed-labels.side-display) .app-title-wrapper{width:100%;justify-content:center}:host(.sm-collapsed.collapsed-labels.side-display) ::slotted(ic-navigation-group){--navigation-group-justify-content:center;--navigation-item-label-opacity:1;--navigation-group-item-min-width:100%;--navigation-group-expand-toggle-padding:1rem}:host(.collapsed-labels.side-display) .bottom-side-nav .menu-expand-button{justify-content:center}:host(.side-display) .collapsed-icon-labels-start{visibility:hidden;opacity:0}:host(.side-display) .collapsed-icon-labels-end{visibility:visible;opacity:1;transition:visibility 0s, opacity var(--ic-easing-transition-slow)}@media screen and (max-width: 419px){.top-bar{height:var(--side-navigation-height)}}@media screen and (max-width: 319px){.side-navigation{width:100%}}@media screen and (min-width: 340px){.app-icon-container{display:flex}}@media screen and (min-width: 577px){:host(.sm-collapsed) slot[name="app-title"]::slotted(ic-typography),:host(.sm-collapsed) slot[name="app-title"]::slotted(a){position:absolute;left:-9999px;opacity:0;transition:opacity var(--ic-easing-transition-slow)}@media (prefers-reduced-motion: reduce){:host(.sm-collapsed) slot[name="app-title"]::slotted(ic-typography),:host(.sm-collapsed) slot[name="app-title"]::slotted(a){transition:none}}:host(.sm-collapsed) slot[name="app-title"]:dir(rtl)::slotted(ic-typography),:host(.sm-collapsed) slot[name="app-title"]:dir(rtl)::slotted(a){right:-9999px}:host(.sm-expanded) slot[name="app-title"]::slotted(a){font:var(--ic-font-h3) !important;font-weight:var(--ic-font-weight-semibold) !important;margin-left:var(--ic-space-xs) !important}}@media screen and (min-width: 993px){:host(.side-display){position:sticky;left:auto;top:0;bottom:0}:host(.sm-expanded.side-display){box-shadow:none}}@media (forced-colors: active){.side-navigation,.top-bar{border-right:var(--ic-border-hc)}.menu-expand-button{color:Highlight !important}slot[name="app-icon"]::slotted(svg){fill:currentcolor}}@media (prefers-reduced-motion: reduce){:host(.xs-menu-open) .side-navigation,:host(.xs-menu-close) .side-navigation,:host(.anchor-right.xs-menu-close) .side-navigation,:host .title-link,:host(.sm-collapsed.side-display),:host(.sm-expanded.side-display),:host(.sm-collapsed.side-display) .app-title-wrapper ic-typography,:host(.sm-collapsed.side-display) :is(.side-navigation,.top-bar),:host(.sm-expanded.side-display) :is(.side-navigation,.top-bar),:host(.side-display) .bottom-side-nav .menu-expand-button,:host(.sm-collapsed.side-display) .bottom-side-nav .menu-expand-button svg,:host(.sm-expanded.side-display) .bottom-side-nav .menu-expand-button svg,:host(.side-display) .collapsed-icon-labels-end{transition:none}}';const x=y;const w=class{constructor(e){i(this,e);this.icSideNavExpanded=t(this,"icSideNavExpanded",7);this.ANIMATION_DURATION=window.matchMedia("(prefers-reduced-motion: reduce)").matches?0:parseInt(d("--ic-transition-duration-slow"))||0;this.IC_NAVIGATION_ITEM="ic-navigation-item";this.resizeObserver=null;this.COLLAPSED_ICON_LABELS_END="collapsed-icon-labels-end";this.COLLAPSED_ICON_LABELS_START="collapsed-icon-labels-start";this.deviceSize=l();this.deviceSizeAppTitle=r.S;this.foregroundColor=p();this.hasSecondaryNavigation=false;this.menuExpanded=false;this.menuOpen=false;this.closeOnNavItemClick=false;this.collapsedIconLabels=false;this.disableAutoParentStyling=false;this.disableTopBarBehaviour=false;this.expanded=false;this.href="/";this.inline=false;this.shortAppTitle="";this.static=false;this.emitSideNavigationExpanded=i=>{this.icSideNavExpanded.emit({sideNavExpanded:i.sideNavExpanded,sideNavMobile:!!i.sideNavMobile})};this.toggleMenu=()=>{this.menuOpen=!this.menuOpen;this.setMobileMenuAriaAttributes(this.menuOpen);this.arrangeSlottedNavigationItem(this.menuOpen);this.setToggleMenuFlyoutMenuVisibility(this.menuOpen);this.emitSideNavigationExpanded({sideNavExpanded:this.menuOpen,sideNavMobile:true})};this.setToggleMenuFlyoutMenuVisibility=i=>{var t;const a=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("#side-navigation");const e=a.querySelector(".side-navigation-inner");const s=a.querySelector(".bottom-wrapper");const o="menu-visibility-visible";if(i){s.classList.add(o);e.classList.add(o)}else{setTimeout((()=>{e.classList.remove(o);s.classList.remove(o)}),this.ANIMATION_DURATION)}};this.setMobileMenuAriaAttributes=i=>{if(this.menuButton){this.menuButton.setAttribute("aria-expanded",`${i}`);this.menuButton.setAttribute("aria-label",`${i?"Close":"Open"} navigation menu`)}};this.setAndRemoveNoWrapAfterMenuExpanded=()=>{var i;const t=((i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector(".title-link ic-typography"))||this.el.querySelector("[slot='app-title']");t===null||t===void 0?void 0:t.classList.add("ic-typography-no-wrap");setTimeout((()=>{t===null||t===void 0?void 0:t.classList.remove("ic-typography-no-wrap")}),this.ANIMATION_DURATION)};this.toggleMenuExpanded=i=>{var t,a,e,s;this.menuExpanded=i;if(this.menuExpanded){this.setAndRemoveNoWrapAfterMenuExpanded();(a=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(".app-title-inner-wrapper"))===null||a===void 0?void 0:a.classList.add("app-title-show")}else{this.el.style.setProperty("--navigation-item-width","320px");(s=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(".app-title-inner-wrapper"))===null||s===void 0?void 0:s.classList.remove("app-title-show");this.el.addEventListener("transitionend",(i=>{if(i.propertyName==="width"){this.el.style.setProperty("--navigation-item-width",null)}}))}this.arrangeSlottedNavigationItem(this.menuExpanded);this.displayTooltipWithExpandedLongLabel(this.menuExpanded);if(this.collapsedIconLabels){this.animateCollapsedIconLabels()}this.setExpandedButtonHeight();this.emitSideNavigationExpanded({sideNavExpanded:this.menuExpanded})};this.arrangeSlottedNavigationItem=i=>{const t=this.el.querySelectorAll("ic-navigation-item");t.forEach((t=>{var a;const e=c(t,"navigation-item");const s=t.children[0]&&!t.children[0].getAttribute("slot");if(e||s){let s;if(e){s=t.querySelector("[slot='navigation-item']")}else{s=t.children[0]}const o=document.createElement("div");const n=s===null||s===void 0?void 0:s.querySelector("svg");const d=s===null||s===void 0?void 0:s.querySelector("ic-badge");const l=(a=t.textContent)===null||a===void 0?void 0:a.trim();const r=document.createElement("ic-typography");r.classList.add("ic-typography-label","hydrated","navigation-item-side-nav-slotted-text");o.style.position="relative";o.style.height="var(--ic-space-lg)";n&&o.append(n);d&&o.append(d);if(l){r.textContent=l}if(s){s.textContent="";s.append(o);s.append(r)}if(this.collapsedIconLabels){this.styleSlottedCollapsedIconLabels(!!i,r)}else{this.styleSlottedIconLabels(!!i,r)}}}))};this.styleSlottedCollapsedIconLabels=(i,t)=>{if(i){t.style.marginTop="0";t.style.whiteSpace="nowrap";t.style.overflow="hidden";t.style.textOverflow="ellipsis"}else{t.style.marginTop="10px";t.style.whiteSpace="nowrap";t.style.overflow="hidden";t.style.textOverflow="ellipsis"}};this.setExpandedButtonHeight=()=>{var i;const t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector("#side-navigation > .bottom-wrapper > .bottom-side-nav > .app-status-wrapper");if(t.offsetHeight!==0){this.el.style.setProperty("--sm-side-navigation-bottom-bar-height",`${t.offsetHeight}px`)}};this.styleSlottedIconLabels=(i,t)=>{if(i){t.style.opacity="1";t.style.visibility="visible";if(!window.matchMedia("(prefers-reduced-motion: reduce)").matches){t.style.transition="visibility 0s, opacity var(--ic-easing-transition-slow)"}}else{t.style.opacity="0";t.style.visibility="hidden";if(!window.matchMedia("(prefers-reduced-motion: reduce)").matches){t.style.transition="visibility 0s, opacity var(--ic-easing-transition-slow)"}}};this.transitionHandler=i=>{var t,a;const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(".primary-navigation");const s=(a=this.el.shadowRoot)===null||a===void 0?void 0:a.querySelector(".bottom-wrapper > .secondary-navigation");const o=i==="start"?this.COLLAPSED_ICON_LABELS_END:this.COLLAPSED_ICON_LABELS_START;const n=i==="start"?this.COLLAPSED_ICON_LABELS_START:this.COLLAPSED_ICON_LABELS_END;if(e){e.classList.remove(o);e.classList.add(n)}if(s){s.classList.remove(o);s.classList.add(n)}};this.transitionEndHandler=()=>{this.transitionHandler("end")};this.animateCollapsedIconLabels=()=>{this.transitionHandler("start");this.transitionEndHandler();this.el.addEventListener("transitionend",this.transitionEndHandler)};this.paddingIconWidth=i=>{const t=i[0].shadowRoot&&(i[0].shadowRoot.querySelector("ic-tooltip a")||i[0].shadowRoot.querySelector("ic-tooltip div"))||i[0].querySelector("a")||i[0].querySelector("div");const a=i[0].querySelector("svg");if(t&&a){const i={gap:window.getComputedStyle(t).gap,iconWidth:window.getComputedStyle(a).width,paddingLeft:window.getComputedStyle(t).paddingLeft};return Object.values(i).reduce(((i,t)=>i+=parseInt(t)),0)}return 0};this.displayTooltipWithExpandedLongLabel=i=>{let t;if(i){t=setTimeout((()=>{const i=this.el.clientWidth;const t=Array.from(this.el.querySelectorAll(this.IC_NAVIGATION_ITEM));const a=t.length?this.paddingIconWidth(t):0;t.forEach((t=>{var e,s;const o=((e=t.shadowRoot&&t.shadowRoot.querySelector("ic-tooltip .link ic-typography.ic-typography-label"))===null||e===void 0?void 0:e.scrollWidth)||((s=t.querySelector("ic-typography.ic-typography-label"))===null||s===void 0?void 0:s.scrollWidth);if(o&&o>i-a){t.setAttribute("display-navigation-tooltip","true")}}))}),this.ANIMATION_DURATION)}else{clearTimeout(t);const i=Array.from(this.el.querySelectorAll(this.IC_NAVIGATION_ITEM));i.forEach((i=>{i.setAttribute("display-navigation-tooltip","false")}))}};this.setMenuExpanded=i=>{this.menuExpanded=i};this.handleNavItemClicked=()=>{if(!this.menuOpen&&this.deviceSize>r.S&&this.menuExpanded){setTimeout((()=>{this.toggleMenuExpanded(false)}),0)}};this.setParentPaddingTop=i=>{var t;(t=this.el.parentElement)===null||t===void 0?void 0:t.style.setProperty("padding-top",i)};this.setParentPaddingLeft=i=>{var t;(t=this.el.parentElement)===null||t===void 0?void 0:t.style.setProperty("padding-left",i)};this.renderAppTitle=i=>{const t=this.deviceSize<=r.S&&!h(this.shortAppTitle);return a("ic-typography",{variant:t||i?"subtitle-small":"h3","aria-label":t?`${this.appTitle} (${this.shortAppTitle})`:undefined},a("h1",null,t?this.shortAppTitle:this.appTitle))};this.resizeObserverCallback=i=>{var t,a,e,s;this.deviceSize=i;const o=i===r.S&&!this.disableTopBarBehaviour;if(!this.disableAutoParentStyling){const i=(a=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(".top-bar"))===null||a===void 0?void 0:a.scrollHeight;this.setParentPaddingTop(o?`${i}px`:"0");if(o)this.setParentPaddingLeft("0");if(o&&this.inline){(e=this.el.parentElement)===null||e===void 0?void 0:e.style.setProperty("height",`calc(100% - ${i}px)`)}else if(!o){(s=this.el.parentElement)===null||s===void 0?void 0:s.style.setProperty("height","100%")}}const n=i>r.S||this.disableTopBarBehaviour;if(!this.disableAutoParentStyling){const t=`calc(var(--ic-space-xxl) ${this.collapsedIconLabels?"* 2":"+ var(--ic-space-xs)"})`;if(i>r.L){this.setParentPaddingTop("0");this.setParentPaddingLeft("0")}else if(n&&i<=r.M&&this.static){this.setParentPaddingLeft(t)}else if(n&&i<=r.L){this.setParentPaddingLeft(this.static&&this.menuExpanded?"calc(var(--ic-space-xl) * 10)":t)}}};this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{const i=l();this.deviceSizeAppTitle=i;this.resizeObserverCallback(i)}));this.resizeObserver.observe(document.body,{box:"content-box"})};this.setCollapsedIconLabels=()=>{const i=Array.from(this.el.querySelectorAll(this.IC_NAVIGATION_ITEM));i.forEach((i=>{i.setAttribute("collapsed-icon-label","true")}))};this.styleSlottedCollapsedIconLabel=()=>{const i=Array.from(this.el.querySelectorAll(".navigation-item-side-nav-slotted-text"));i.forEach((i=>{var t,a;if((a=(t=i.parentElement)===null||t===void 0?void 0:t.parentElement)===null||a===void 0?void 0:a.classList.contains("navigation-item-side-nav-collapsed-with-label")){i.style.whiteSpace="nowrap";i.style.overflow="hidden";i.style.textOverflow="ellipsis";i.style.marginTop="10px"}}))};this.renderTopBar=({isSDevice:i,foregroundColor:t,menuOpen:e,href:s,isAppNameSubtitleVariant:n})=>{const d=this.appTitle!==""&&u(this.appTitle);const l=c(this.el,"app-title")?"div":"a";const r=l=="a"&&{href:s};return a("div",{class:{"top-bar":true,[this.foregroundColor]:true}},i&&a("nav",{"aria-labelledby":"menu-navigation-toggle-button-landmark","aria-hidden":"false"},a("ic-button",{"aria-label":"Open navigation menu",class:"menu-button",id:"menu-button",variant:"secondary",size:"small","full-width":"true",theme:t=="default"||t=="light"?"light":"dark",monochrome:true,onClick:this.toggleMenu,ariaOwnsId:"side-navigation","aria-haspopup":"true","aria-expanded":"false",ref:i=>this.menuButton=i},a("span",{class:"mobile-top-bar-menu-icon",slot:"left-icon",innerHTML:e?o:f}),e?"Close":"Menu"),a("span",{id:"menu-navigation-toggle-button-landmark",class:"navigation-landmark-title","aria-hidden":"true"},"Navigation menu toggle button")),a("div",{class:"app-title-wrapper"},(d||c(this.el,"app-title"))&&a(l,Object.assign({},r,{class:"title-link"}),a("div",{class:"app-icon-container","aria-hidden":"true"},a("slot",{name:"app-icon"})),a("div",{class:"app-title-inner-wrapper"},c(this.el,"app-title")?a("slot",{name:"app-title"}):this.renderAppTitle(n)))))}}watchExpandedHandler(){this.toggleMenuExpanded(this.expanded)}componentWillLoad(){this.setMenuExpanded(this.expanded);if(this.collapsedIconLabels){this.setCollapsedIconLabels()}this.hasSecondaryNavigation=c(this.el,"secondary-navigation")}componentDidLoad(){this.emitSideNavigationExpanded({sideNavExpanded:this.menuExpanded,sideNavMobile:this.deviceSize===r.S&&!this.disableTopBarBehaviour});v(this.runResizeObserver);this.styleSlottedCollapsedIconLabel();this.arrangeSlottedNavigationItem(this.menuExpanded);this.displayTooltipWithExpandedLongLabel(this.menuExpanded);this.setExpandedButtonHeight();if(this.closeOnNavItemClick){this.el.addEventListener("navItemClicked",this.handleNavItemClicked)}!c(this.el,"app-title")&&g([{prop:this.appTitle,propName:"app-title"}],"Side Navigation")}disconnectedCallback(){var i;if(this.resizeObserver!==null){this.resizeObserver.disconnect()}(i=this.el)===null||i===void 0?void 0:i.removeEventListener("transitionend",this.transitionEndHandler);if(this.closeOnNavItemClick){this.el.removeEventListener("navItemClicked",this.handleNavItemClicked)}}brandChangeHandler({detail:i}){this.foregroundColor=i.mode}render(){const{appTitle:i,menuOpen:t,foregroundColor:s,menuExpanded:o,href:d,status:l,version:p,collapsedIconLabels:h,inline:v}=this;const g=!this.disableTopBarBehaviour&&this.deviceSize===r.S;const u=this.disableTopBarBehaviour&&this.deviceSize===r.S;const f=this.deviceSize===r.M;const y=this.deviceSize>=r.L;const x=this.deviceSizeAppTitle===r.S;const w=f||u||y&&!this.static;const k={isSDevice:g,foregroundColor:s,menuOpen:t,href:d,isAppNameSubtitleVariant:x,appTitle:i||""};return a(e,{key:"048b8b8cc51848714f6f0367995c271b39b1a9a2",class:{"xs-menu-open":t&&g,"xs-menu-close":!t&&g,"sm-collapsed":!g&&!o,"sm-expanded":!g&&o,"side-display":this.deviceSize>r.S||!!this.disableTopBarBehaviour,[`ic-side-navigation-${b.Dark}`]:s===b.Dark,["collapsed-labels"]:!g&&!o&&!!h,["ic-side-navigation-inline"]:!!v}},g&&this.renderTopBar(Object.assign({},k)),a("div",{key:"2a83fe000c46bc9ce54ca9de5cead38dddb5f88f",class:"side-navigation",id:"side-navigation"},!g&&this.renderTopBar(Object.assign({},k)),a("div",{key:"464c9687f196364f27ab261377b523a6a7d19b5a",class:"side-navigation-inner"},c(this.el,"primary-navigation")&&a("nav",{key:"6eeedc489baacc84591354bf7be4537ff1d9fc56",class:"primary-navigation","aria-labelledby":"primary-navigation-landmark"},a("span",{key:"8b49aaab6a419cae1198c1cc4295ea15aa10523f","aria-hidden":"true",class:"navigation-landmark-title",id:"primary-navigation-landmark"},"Primary"),a("ul",{key:"90e051cd18572f31bb02e8dc1832aa2105328f6c",class:"navigation-list"},a("slot",{key:"b06759220c19e6a243bf84d17a6bcb0c321fee73",name:"primary-navigation"})))),a("div",{key:"db63c182321cbe7d77bebd732a3a5f2ddedbff7d",class:{["bottom-wrapper"]:true,["classification-spacing"]:m()}},c(this.el,"secondary-navigation")&&a("nav",{key:"953cd6095e452078d068efc58cf689d558bdd4a1",class:"secondary-navigation","aria-labelledby":"secondary-navigation-landmark"},a("span",{key:"8d5b3dcfce47bc1594e5541ed41731a0fd795589","aria-hidden":"true",class:"navigation-landmark-title",id:"secondary-navigation-landmark"},"Secondary"),a("ul",{key:"57b6d08a7a6f0f15341a4b0289bf4a876fc5b30e",class:"navigation-list"},a("slot",{key:"36c42a128bbc9f0144496d6af042656bfe26d713",name:"secondary-navigation"}))),a("div",{key:"e34d40920163c830039d772d997549ebf0ff2162",class:"bottom-side-nav"},this.hasSecondaryNavigation&&a("ic-divider",{key:"2984e8ca896aef5c7e6374e5c996c8a3fe4dc4a7"}),w&&a("button",{key:"cbf4ae4787ae4b5c2beaf9629db0c22df6e3910e",class:"menu-expand-button",innerHTML:n,onClick:()=>this.toggleMenuExpanded(!this.menuExpanded),"aria-label":`${o?"Collapse":"Expand"} side navigation`}),a("div",{key:"a330285250b908cb7ac14e9ae9f39612d4bcfce2",class:"app-status-wrapper"},l&&a("div",{key:"d90a9dd03f2ba41f1305afb96d78d46c85611aef",class:{["app-status"]:true}},a("ic-typography",{key:"070e2696a97002c88022049ceb4af7e204ce509e","aria-label":"app tag",variant:"label-uppercase",class:"app-status-text"},l)),p&&a("ic-typography",{key:"acb4321ec1814ab47772570c0098b1998f9ea68e",variant:"label",class:"app-version","aria-label":"app version"},p))))))}get el(){return s(this)}static get watchers(){return{expanded:["watchExpandedHandler"]}}};w.style=x;export{w as ic_side_navigation};
|
|
2
|
-
//# sourceMappingURL=p-c5b9519d.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icSideNavigationCss","IcSideNavigationStyle0","SideNavigation","constructor","hostRef","this","ANIMATION_DURATION","window","matchMedia","matches","parseInt","getCssProperty","IC_NAVIGATION_ITEM","resizeObserver","COLLAPSED_ICON_LABELS_END","COLLAPSED_ICON_LABELS_START","deviceSize","getCurrentDeviceSize","deviceSizeAppTitle","DEVICE_SIZES","S","foregroundColor","getBrandForegroundAppearance","hasSecondaryNavigation","menuExpanded","menuOpen","closeOnNavItemClick","collapsedIconLabels","disableAutoParentStyling","disableTopBarBehaviour","expanded","href","inline","shortAppTitle","static","emitSideNavigationExpanded","objDetails","icSideNavExpanded","emit","sideNavExpanded","sideNavMobile","toggleMenu","setMobileMenuAriaAttributes","arrangeSlottedNavigationItem","setToggleMenuFlyoutMenuVisibility","sideNav","_a","el","shadowRoot","querySelector","sideNavInner","bottomWrapper","menuVisibilityVisible","classList","add","setTimeout","remove","menuButton","setAttribute","setAndRemoveNoWrapAfterMenuExpanded","appTitle","toggleMenuExpanded","_b","style","setProperty","_d","_c","addEventListener","e","propertyName","displayTooltipWithExpandedLongLabel","animateCollapsedIconLabels","setExpandedButtonHeight","navItems","querySelectorAll","forEach","navItem","isNamedSlot","isSlotUsed","isUnnamedSlot","children","getAttribute","navItemSlot","iconWrapper","document","createElement","icon","badge","label","textContent","trim","icTypography","position","height","append","styleSlottedCollapsedIconLabels","styleSlottedIconLabels","marginTop","whiteSpace","overflow","textOverflow","appStatusWrapper","offsetHeight","opacity","visibility","transition","transitionHandler","type","primaryNavigationWrapper","secondaryNavigationWrapper","classToRemove","classToAdd","transitionEndHandler","paddingIconWidth","navItemLink","navItemSVG","navStyles","gap","getComputedStyle","iconWidth","width","paddingLeft","Object","values","reduce","prev","curr","timer","sideNavWidth","clientWidth","navigationItems","Array","from","paddingIconDelta","length","navigationItem","icTypographyScrollWidth","scrollWidth","clearTimeout","setMenuExpanded","handleNavItemClicked","setParentPaddingTop","value","parentElement","setParentPaddingLeft","renderAppTitle","isAppNameSubtitleVariant","displayShortAppTitle","isEmptyString","h","variant","undefined","resizeObserverCallback","currSize","isSDeviceEnableTop","topBarHeight","scrollHeight","notSmallDisableTop","L","M","runResizeObserver","ResizeObserver","observe","body","box","setCollapsedIconLabels","styleSlottedCollapsedIconLabel","dynamicSlottedIcTypographyComps","contains","renderTopBar","isSDevice","hasTitle","isPropDefined","Component","attrs","class","id","size","theme","monochrome","onClick","ariaOwnsId","ref","slot","innerHTML","closeIcon","menuIcon","assign","name","watchExpandedHandler","componentWillLoad","componentDidLoad","checkResizeObserver","onComponentRequiredPropUndefined","prop","propName","disconnectedCallback","disconnect","removeEventListener","brandChangeHandler","detail","mode","render","status","version","isSDeviceDisableTop","isMdDevice","isLgDevice","displayExpandBtn","topBarProps","Host","key","IcBrandForegroundEnum","Dark","hasClassificationBanner","chevronIcon"],"sources":["src/components/ic-side-navigation/ic-side-navigation.css?tag=ic-side-navigation&encapsulation=shadow","src/components/ic-side-navigation/ic-side-navigation.tsx"],"sourcesContent":["/**\n * @prop --ic-z-index-side-navigation: z-index of side navigation panel\n */\n\n:host {\n display: block;\n\n --ic-typography-color: currentcolor;\n --side-navigation-position: fixed;\n --side-navigation-position-left: 0;\n --side-navigation-position-top: var(--ic-space-xxl);\n --side-navigation-height: var(--ic-space-xxl);\n --sm-side-navigation-top-bar-height: 3.5rem;\n --sm-side-navigation-collapsed-labels-width: 6rem;\n --sm-side-navigation-expand-transition-duration: var(\n --ic-transition-duration-slow\n );\n --side-navigation-width: 20rem;\n --sm-side-navigation-bottom-bar-height: 3.5rem;\n --keyline-lighten: var(--ic-space-1px) solid var(--ic-side-navigation-keyline);\n --keyline-darken: var(--ic-space-1px) solid var(--ic-state-layer-darken-20);\n --ic-button-secondary-text-monochrome: var(--ic-brand-text-color);\n --ic-button-secondary-border-monochrome: var(--ic-brand-text-color);\n\n z-index: var(--ic-z-index-side-navigation);\n}\n\n:host > * {\n box-sizing: border-box;\n}\n\n.side-navigation {\n display: flex;\n flex-direction: column;\n width: var(--side-navigation-width);\n color: var(--ic-side-navigation-text);\n position: var(--side-navigation-position);\n top: var(--side-navigation-position-top);\n left: calc(var(--side-navigation-width) * -1);\n bottom: 0;\n background-color: var(--ic-side-navigation-background);\n z-index: var(--ic-z-index-side-navigation);\n}\n\n:host(.ic-side-navigation-inline) .side-navigation {\n position: absolute;\n height: 100%;\n}\n\n:host(.anchor-right) .side-navigation {\n right: calc(var(--side-navigation-width) * -1);\n}\n\n.classification-spacing {\n margin-bottom: var(--ic-space-lg);\n}\n\n.navigation-list {\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.side-navigation-inner {\n background-color: var(--ic-side-navigation-background);\n display: flex;\n flex-direction: column;\n flex: 1 1 4rem;\n overflow: auto;\n}\n\n:host(.ic-side-navigation-inline) .side-navigation-inner {\n flex: 1;\n}\n\n:host(.xs-menu-open) .side-navigation {\n transition: left var(--ic-easing-transition-slow);\n left: 0;\n}\n\n:host(:has(.xs-menu-open, .xs-menu-close)) ::slotted(ic-navigation-item) {\n --navigation-item-side-nav-right: var(--ic-space-xl);\n}\n\n:host(.xs-menu-close) .side-navigation {\n left: calc(var(--side-navigation-width) * -1);\n transition: left var(--ic-easing-transition-slow);\n}\n\n:host(.xs-menu-close) .side-navigation > * {\n visibility: hidden;\n}\n\n:host(.anchor-right.xs-menu-open) .side-navigation {\n right: 0;\n left: auto;\n}\n\n:host(.anchor-right.xs-menu-close) .side-navigation {\n right: calc(var(--side-navigation-width) * -1);\n left: auto;\n transition: right var(--ic-easing-transition-slow);\n}\n\n.bottom-wrapper {\n border-top: var(--keyline-lighten);\n bottom: 0;\n left: 0;\n z-index: 2;\n background-color: var(--ic-side-navigation-background);\n display: flex;\n flex-direction: column;\n}\n\n:host(.ic-side-navigation-inline) .bottom-wrapper {\n position: sticky;\n}\n\n:host(.ic-side-navigation-dark) .bottom-wrapper {\n border-top: var(--keyline-darken);\n}\n\n/* Mobile Top Bar */\n\n.top-bar {\n display: flex;\n flex-direction: row;\n align-items: center;\n min-height: var(--side-navigation-height);\n padding: var(--ic-space-xs);\n box-sizing: border-box;\n background-color: var(--ic-side-navigation-background);\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n border-bottom: var(--keyline-lighten);\n box-shadow: var(--ic-elevation-overlay);\n z-index: 2;\n overflow: hidden;\n visibility: visible;\n}\n\n:host(.ic-side-navigation-inline) .top-bar {\n position: absolute;\n}\n\n:host(.ic-side-navigation-dark) .top-bar {\n border-bottom: var(--keyline-darken);\n}\n\n.top-bar.dark a:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n.app-title-wrapper {\n display: flex;\n margin-left: var(--ic-space-xs);\n border-left: var(--keyline-lighten);\n padding-left: var(--ic-space-xxs);\n color: var(--ic-side-navigation-text);\n align-items: center;\n}\n\n:host(.ic-side-navigation-dark) .app-title-wrapper {\n border-left: var(--keyline-darken);\n}\n\n.app-title-wrapper ic-typography h1 {\n margin: 0;\n}\n\n@media screen and (min-width: 340px) {\n .app-title-wrapper ic-typography {\n margin-left: var(--ic-space-xs);\n }\n}\n\n:host .title-link {\n display: flex;\n align-items: center;\n transition: box-shadow var(--ic-easing-transition-fast),\n background-color var(--ic-easing-transition-fast);\n text-decoration: none;\n padding: var(--ic-space-xxs);\n color: var(--ic-side-navigation-text);\n}\n\n:host .title-link:visited,\n:host .title-link:active {\n color: var(--ic-side-navigation-text);\n}\n\nslot[name=\"app-title\"]::slotted(a),\nslot[name=\"app-icon\"]::slotted(a) {\n color: var(--ic-side-navigation-text);\n outline: none;\n text-decoration: none;\n display: flex;\n}\n\nslot[name=\"app-title\"]::slotted(ic-typography),\nslot[name=\"app-title\"]::slotted(a) {\n margin-left: var(--ic-space-xs) !important;\n}\n\nslot[name=\"app-title\"]::slotted(a) {\n font: var(--ic-font-subtitle-small);\n}\n\n:host .title-link:hover {\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-side-navigation-hover);\n}\n\n:host .title-link:active {\n background-color: var(--ic-side-navigation-pressed);\n}\n\n:host .title-link:focus,\n:host .title-link:focus-within {\n border-radius: var(--ic-border-radius);\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n background-color: transparent;\n}\n\n:host .title-link ic-typography {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.app-title-wrapper ::slotted(svg) {\n fill: var(--ic-side-navigation-text);\n}\n\n.app-icon-container {\n display: none;\n}\n\n.button-label {\n display: flex;\n align-items: center;\n}\n\n.mobile-top-bar-menu-icon {\n display: flex;\n}\n\n.menu-button {\n width: 6.5rem;\n}\n\n.app-status-wrapper {\n inset: 0 var(--ic-space-sm) 0 3.5rem;\n width: auto;\n display: flex;\n gap: var(--ic-space-xs);\n padding: var(--ic-space-sm) 0;\n justify-content: flex-end;\n align-items: flex-end;\n pointer-events: none;\n height: fit-content;\n margin: 0 var(--ic-space-xs);\n}\n\n.app-status-wrapper .app-version {\n display: flex;\n overflow-wrap: break-word;\n padding-bottom: var(--ic-space-xxs);\n}\n\n.app-status-wrapper .app-status {\n display: flex;\n border-radius: 1rem;\n background-color: var(--ic-side-navigation-text);\n color: var(--ic-side-navigation-status-tag-text);\n padding: var(--ic-space-xxs) var(--ic-space-lg);\n min-width: 1rem;\n}\n\n.app-status-wrapper .app-status-text {\n overflow-wrap: break-word;\n}\n\n:host(.ic-side-navigation-dark) .app-status-wrapper .app-status {\n --ic-typography-color: var(--ic-architectural-white);\n}\n\n.navigation-landmark-title {\n position: absolute;\n width: var(--ic-space-1px);\n height: var(--ic-space-1px);\n padding: 0;\n margin: calc(-1 * var(--ic-space-1px));\n overflow: hidden;\n}\n\n/* Navigation Group */\n\n::slotted(ic-navigation-group) {\n --navigation-group-height: 2.75rem;\n --navigation-group-justify-content: space-between;\n --navigation-group-hover: var(--ic-side-navigation-hover);\n --navigation-group-text-hover: var(--ic-side-navigation-text);\n --navigation-item-child-height: 3.5rem;\n --navigation-item-child-active: var(--ic-action-dark-bg-pressed);\n --navigation-item-child-color: var(--ic-side-navigation-text);\n --navigation-group-expand-toggle-padding: 0.25rem;\n}\n\n/* Navigation Items */\n\n::slotted(ic-navigation-item),\n::slotted(ic-navigation-group) {\n --navigation-item-justify-content: flex-start;\n --navigation-item-min-height: 56px;\n --navigation-item-height: auto;\n}\n\n/* Toggle Chevron */\n\n.bottom-side-nav {\n position: relative;\n align-content: flex-end;\n min-height: var(--sm-side-navigation-top-bar-height);\n}\n\n.bottom-side-nav ic-divider {\n position: absolute;\n top: 0;\n}\n\n.primary-navigation {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n\n /* Hide scrollbar when required but keep functionality */\n scrollbar-width: none;\n}\n\n.primary-navigation::-webkit-scrollbar {\n display: none;\n}\n\n.primary-navigation,\n.secondary-navigation {\n overflow-x: hidden;\n}\n\n.bottom-side-nav .menu-expand-button {\n position: absolute;\n display: none;\n}\n\n.menu-visibility-visible {\n visibility: visible;\n width: 100%;\n}\n\n.app-title-show {\n min-width: 15.5rem;\n}\n\n:host(.side-display) {\n display: flex;\n flex-direction: column;\n height: 100vh;\n position: var(--side-navigation-position);\n left: 0;\n top: 0;\n bottom: 0;\n}\n\n:host(.side-display) .app-icon-container {\n height: 40px;\n display: flex;\n align-items: center;\n}\n\n:host(.side-display) .top-bar {\n --side-navigation-height: var(--sm-side-navigation-top-bar-height);\n\n position: relative;\n padding: 0;\n box-shadow: none;\n}\n\n:host(.ic-side-navigation-inline.side-display) .top-bar {\n position: sticky;\n}\n\n:host(.anchor-right.side-display) .top-bar {\n box-shadow: 0.188rem 0.188rem 0.5rem rgb(0 0 0 / 20%);\n}\n\n:host(.anchor-right.side-display) .bottom-wrapper {\n box-shadow: 0.188rem -0.188rem 0.5rem rgb(0 0 0 / 20%);\n}\n\n:host(.side-display) .side-navigation,\n:host(.side-display) .top-bar {\n width: var(--sm-side-navigation-top-bar-height);\n}\n\n:host(.sm-collapsed.side-display) {\n width: var(--sm-side-navigation-top-bar-height);\n transition: width var(--ic-easing-transition-slow);\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display) {\n width: var(--sm-side-navigation-collapsed-labels-width);\n}\n\n:host(.sm-expanded.side-display) {\n width: var(--side-navigation-width);\n transition: width var(--ic-easing-transition-slow);\n box-shadow: var(--ic-elevation-overlay);\n}\n\n:host(.side-display) .side-navigation {\n --side-navigation-position-top: 0;\n\n flex: 1;\n position: relative;\n top: auto;\n left: auto;\n bottom: auto;\n}\n\n:host(.ic-side-navigation-inline.side-display) .side-navigation {\n position: relative;\n}\n\n:host(.anchor-right.side-display) .side-navigation {\n left: auto;\n right: 0;\n}\n\n:host(.side-display) .app-title-wrapper {\n margin-left: 0;\n border-left: none;\n padding: var(--ic-space-xs) var(--ic-space-sm);\n}\n\n:host(.side-display) .app-title-wrapper ::slotted(svg) {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host(.side-display) .app-title-wrapper ic-typography {\n font-weight: var(--ic-font-weight-semibold);\n}\n\n:host(.sm-collapsed.side-display) .app-title-wrapper ic-typography {\n position: absolute;\n left: -9999px;\n opacity: 0;\n transition: opacity var(--ic-easing-transition-slow);\n}\n\n:host(.sm-collapsed.side-display) .app-title-wrapper ic-typography:dir(rtl) {\n right: -9999px;\n}\n\n:host(.sm-expanded.side-display) ic-typography {\n position: relative;\n left: 0;\n}\n\n:host(.sm-expanded.side-display) :is(.side-navigation, .top-bar) {\n width: var(--side-navigation-width);\n transition: width var(--ic-easing-transition-slow);\n}\n\n:host(.sm-collapsed.side-display) :is(.side-navigation, .top-bar) {\n width: var(--sm-side-navigation-top-bar-height);\n transition: width var(--ic-easing-transition-slow);\n}\n\n:host(.anchor-right.sm-expanded.side-display) :is(.side-navigation, .top-bar) {\n left: auto;\n right: 0;\n}\n\n:host(.side-display) .app-status-wrapper,\n:host(.sm-collapsed.side-display) .app-status-wrapper {\n display: none;\n margin-left: 0;\n}\n\n:host(.sm-expanded.side-display) .app-status-wrapper {\n display: flex;\n max-width: 16rem;\n margin-right: calc(var(--ic-space-xxxs) + var(--ic-space-xs));\n}\n\n:host(.side-display) .bottom-side-nav {\n justify-items: flex-end;\n align-items: flex-end;\n justify-content: flex-end;\n display: flex;\n outline: none;\n}\n\n:host(.side-display) .bottom-side-nav .menu-expand-button {\n padding-left: var(--ic-space-md);\n height: var(--sm-side-navigation-top-bar-height);\n width: 100%;\n color: var(--ic-side-navigation-text);\n background-color: transparent;\n outline: var(--ic-hc-focus-outline);\n border: none;\n cursor: pointer;\n display: flex;\n transition: var(--ic-easing-transition-fast);\n}\n\n:host(.sm-expanded.side-display) .bottom-side-nav .menu-expand-button {\n height: 100%;\n}\n\n:host(.side-display) .bottom-side-nav .menu-expand-button svg {\n justify-items: flex-start;\n align-self: center;\n display: inline-block;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host(.side-display) .bottom-side-nav .menu-expand-button:hover {\n background-color: var(--ic-side-navigation-hover);\n}\n\n:host(.side-display) .bottom-side-nav .menu-expand-button:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background-color: transparent;\n}\n\n:host(.sm-collapsed.side-display) .bottom-side-nav .menu-expand-button svg {\n transform: scaleX(1);\n transition: transform var(--ic-easing-transition-slow);\n}\n\n:host(.sm-expanded.side-display) .bottom-side-nav .menu-expand-button svg {\n transform: scaleX(-1);\n transition: transform var(--ic-easing-transition-slow);\n align-self: flex-end;\n margin-bottom: 0.875rem;\n}\n\n:host(.anchor-right.sm-collapsed.side-display)\n .bottom-side-nav\n .menu-expand-button\n svg {\n transform: scaleX(-1);\n}\n\n:host(.anchor-right.sm-expanded.side-display)\n .bottom-side-nav\n .menu-expand-button\n svg {\n transform: scaleX(1);\n}\n\n:host(.sm-collapsed.side-display) ::slotted(ic-navigation-item) {\n --navigation-item-label-opacity: 1;\n}\n\n:host(.sm-collapsed.side-display) ::slotted(ic-navigation-item),\n:host(.sm-collapsed.side-display) ::slotted(ic-navigation-group) {\n --navigation-item-label-opacity: 0;\n --navigation-item-min-height: 3.5rem;\n --navigation-item-height: 3.5rem;\n}\n\n:host(.sm-expanded.side-display) ::slotted(ic-navigation-item),\n:host(.sm-expanded.side-display) ::slotted(ic-navigation-group) {\n --navigation-item-label-opacity: 1;\n --navigation-item-height: auto;\n --navigation-item-min-height: 3.5rem;\n --navigation-item-width: 20rem;\n --navigation-item-side-nav-right: var(--ic-space-xl);\n --navigation-group-width: 20rem;\n}\n\n:host(.sm-collapsed.side-display) ::slotted(ic-navigation-group) {\n --navigation-group-title-position: absolute;\n --navigation-group-title-position-left: -9999px;\n --navigation-group-title-opacity: none;\n}\n\n:host(.sm-expanded.side-display) ::slotted(ic-navigation-group) {\n --navigation-group-title-position: relative;\n --navigation-group-title-position-left: 0;\n --navigation-group-expand-toggle-padding: 0.25rem;\n --navigation-group-title-opacity: flex;\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display) .side-navigation,\n:host(.sm-collapsed.collapsed-labels.side-display) .top-bar {\n width: var(--sm-side-navigation-collapsed-labels-width);\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display) .menu-expand-button {\n padding: 0;\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display) .app-title-wrapper {\n width: 100%;\n justify-content: center;\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display)\n ::slotted(ic-navigation-group) {\n --navigation-group-justify-content: center;\n --navigation-item-label-opacity: 1;\n --navigation-group-item-min-width: 100%;\n --navigation-group-expand-toggle-padding: 1rem;\n}\n\n:host(.collapsed-labels.side-display) .bottom-side-nav .menu-expand-button {\n justify-content: center;\n}\n\n:host(.side-display) .collapsed-icon-labels-start {\n visibility: hidden;\n opacity: 0;\n}\n\n:host(.side-display) .collapsed-icon-labels-end {\n visibility: visible;\n opacity: 1;\n transition: visibility 0s, opacity var(--ic-easing-transition-slow);\n}\n\n/* Media Queries */\n\n@media screen and (max-width: 419px) {\n .top-bar {\n height: var(--side-navigation-height);\n }\n}\n\n@media screen and (max-width: 319px) {\n .side-navigation {\n width: 100%;\n }\n}\n\n@media screen and (min-width: 340px) {\n .app-icon-container {\n display: flex;\n }\n}\n\n@media screen and (min-width: 577px) {\n :host(.sm-collapsed) slot[name=\"app-title\"]::slotted(ic-typography),\n :host(.sm-collapsed) slot[name=\"app-title\"]::slotted(a) {\n position: absolute;\n left: -9999px;\n opacity: 0;\n transition: opacity var(--ic-easing-transition-slow);\n }\n\n @media (prefers-reduced-motion: reduce) {\n :host(.sm-collapsed) slot[name=\"app-title\"]::slotted(ic-typography),\n :host(.sm-collapsed) slot[name=\"app-title\"]::slotted(a) {\n transition: none;\n }\n }\n\n :host(.sm-collapsed) slot[name=\"app-title\"]:dir(rtl)::slotted(ic-typography),\n :host(.sm-collapsed) slot[name=\"app-title\"]:dir(rtl)::slotted(a) {\n right: -9999px;\n }\n\n :host(.sm-expanded) slot[name=\"app-title\"]::slotted(a) {\n font: var(--ic-font-h3) !important;\n font-weight: var(--ic-font-weight-semibold) !important;\n margin-left: var(--ic-space-xs) !important;\n }\n}\n\n@media screen and (min-width: 993px) {\n :host(.side-display) {\n position: sticky;\n left: auto;\n top: 0;\n bottom: 0;\n }\n\n :host(.sm-expanded.side-display) {\n box-shadow: none;\n }\n}\n\n@media (forced-colors: active) {\n .side-navigation,\n .top-bar {\n border-right: var(--ic-border-hc);\n }\n\n .menu-expand-button {\n color: Highlight !important;\n }\n\n slot[name=\"app-icon\"]::slotted(svg) {\n fill: currentcolor;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host(.xs-menu-open) .side-navigation,\n :host(.xs-menu-close) .side-navigation,\n :host(.anchor-right.xs-menu-close) .side-navigation,\n :host .title-link,\n :host(.sm-collapsed.side-display),\n :host(.sm-expanded.side-display),\n :host(.sm-collapsed.side-display) .app-title-wrapper ic-typography,\n :host(.sm-collapsed.side-display) :is(.side-navigation, .top-bar),\n :host(.sm-expanded.side-display) :is(.side-navigation, .top-bar),\n :host(.side-display) .bottom-side-nav .menu-expand-button,\n :host(.sm-collapsed.side-display) .bottom-side-nav .menu-expand-button svg,\n :host(.sm-expanded.side-display) .bottom-side-nav .menu-expand-button svg,\n :host(.side-display) .collapsed-icon-labels-end {\n transition: none;\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Listen,\n Event,\n EventEmitter,\n Watch,\n} from \"@stencil/core\";\n\nimport menuIcon from \"../../assets/hamburger-menu-icon.svg\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport {\n getCurrentDeviceSize,\n DEVICE_SIZES,\n checkResizeObserver,\n isSlotUsed,\n getBrandForegroundAppearance,\n getCssProperty,\n hasClassificationBanner,\n onComponentRequiredPropUndefined,\n isEmptyString,\n isPropDefined,\n} from \"../../utils/helpers\";\nimport {\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n} from \"../../utils/types\";\nimport { IcTopBar, IcExpandedDetail } from \"./ic-side-navigation.types\";\n\n/**\n * @slot app-icon - Content will be rendered adjacent to the app title at the very top of the side navigation.\n * @slot app-title - Handle routing by nesting a route in the app title.\n * @slot primary-navigation - Content will be rendered at the top of the side navigation.\n * @slot secondary-navigation - Content will be rendered at the bottom of the side navigation.\n */\n\n@Component({\n tag: \"ic-side-navigation\",\n styleUrl: \"ic-side-navigation.css\",\n shadow: true,\n})\nexport class SideNavigation {\n private ANIMATION_DURATION = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n ).matches\n ? 0\n : parseInt(getCssProperty(\"--ic-transition-duration-slow\")) || 0;\n private IC_NAVIGATION_ITEM: string = \"ic-navigation-item\";\n private resizeObserver: ResizeObserver | null = null;\n private COLLAPSED_ICON_LABELS_END = \"collapsed-icon-labels-end\";\n private COLLAPSED_ICON_LABELS_START = \"collapsed-icon-labels-start\";\n private menuButton?: HTMLIcButtonElement;\n\n @Element() el: HTMLIcSideNavigationElement;\n\n @State() deviceSize: number = getCurrentDeviceSize();\n @State() deviceSizeAppTitle: number = DEVICE_SIZES.S;\n @State() foregroundColor: IcBrandForeground = getBrandForegroundAppearance();\n @State() hasSecondaryNavigation: boolean = false;\n @State() menuExpanded: boolean = false;\n @State() menuOpen: boolean = false;\n\n /**\n * The app title to be displayed. This is required, unless a slotted app title link is used.\n */\n @Prop() appTitle?: string;\n\n /**\n * If `true`, the side navigation will close when a navigation item is clicked. This behaviour is only applicable on larger device sizes.\n */\n @Prop() closeOnNavItemClick?: boolean = false;\n\n /**\n * If `true`, the icon and label will appear when side navigation is collapsed.\n */\n @Prop() collapsedIconLabels?: boolean = false;\n\n /**\n * If `true`, automatic parent wrapper styling will be disabled.\n */\n @Prop() disableAutoParentStyling?: boolean = false;\n\n /**\n * If `true`, the side navigation will not display as a top bar on small devices.\n */\n @Prop() disableTopBarBehaviour?: boolean = false;\n\n /**\n * If `true`, the side navigation will display in an expanded state.\n */\n @Prop() expanded?: boolean = false;\n\n @Watch(\"expanded\")\n watchExpandedHandler(): void {\n this.toggleMenuExpanded(this.expanded!);\n }\n\n /**\n * The URL that the app title link points to.\n */\n @Prop() href?: string = \"/\";\n\n /**\n * @internal If `true`, side navigation will be contained by its parent element.\n */\n @Prop() inline?: boolean = false;\n\n /**\n * The short title of the app to be displayed at small screen sizes in place of the app title.\n */\n @Prop() shortAppTitle?: string = \"\";\n\n /**\n * If `true`, the menu expand button will be removed (PLEASE NOTE: This takes effect on screen sizes 992px and above).\n */\n @Prop() static?: boolean = false;\n\n /**\n * The status of the app to be displayed.\n */\n @Prop() status?: string;\n\n /**\n * The version of the app to be displayed.\n */\n @Prop() version?: string;\n\n /**\n * Emitted when the side navigation is collapsed and expanded.\n */\n @Event() icSideNavExpanded: EventEmitter<IcExpandedDetail>;\n\n componentWillLoad(): void {\n this.setMenuExpanded(this.expanded!);\n\n if (this.collapsedIconLabels) {\n this.setCollapsedIconLabels();\n }\n\n this.hasSecondaryNavigation = isSlotUsed(this.el, \"secondary-navigation\");\n }\n\n componentDidLoad(): void {\n this.emitSideNavigationExpanded({\n sideNavExpanded: this.menuExpanded,\n sideNavMobile:\n this.deviceSize === DEVICE_SIZES.S && !this.disableTopBarBehaviour,\n });\n\n checkResizeObserver(this.runResizeObserver);\n this.styleSlottedCollapsedIconLabel();\n this.arrangeSlottedNavigationItem(this.menuExpanded);\n this.displayTooltipWithExpandedLongLabel(this.menuExpanded);\n\n this.setExpandedButtonHeight();\n\n if (this.closeOnNavItemClick) {\n this.el.addEventListener(\n \"navItemClicked\",\n this.handleNavItemClicked as EventListener\n );\n }\n\n !isSlotUsed(this.el, \"app-title\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.appTitle, propName: \"app-title\" }],\n \"Side Navigation\"\n );\n }\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n\n this.el?.removeEventListener(\"transitionend\", this.transitionEndHandler);\n\n if (this.closeOnNavItemClick) {\n this.el.removeEventListener(\n \"navItemClicked\",\n this.handleNavItemClicked as EventListener\n );\n }\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.foregroundColor = detail.mode;\n }\n\n private emitSideNavigationExpanded = (objDetails: {\n sideNavExpanded: boolean;\n sideNavMobile?: boolean;\n }): void => {\n this.icSideNavExpanded.emit({\n sideNavExpanded: objDetails.sideNavExpanded,\n sideNavMobile: !!objDetails.sideNavMobile,\n });\n };\n\n private toggleMenu = (): void => {\n this.menuOpen = !this.menuOpen;\n this.setMobileMenuAriaAttributes(this.menuOpen);\n\n this.arrangeSlottedNavigationItem(this.menuOpen);\n\n this.setToggleMenuFlyoutMenuVisibility(this.menuOpen);\n\n this.emitSideNavigationExpanded({\n sideNavExpanded: this.menuOpen,\n sideNavMobile: true,\n });\n };\n\n private setToggleMenuFlyoutMenuVisibility = (menuOpen: boolean) => {\n const sideNav = this.el.shadowRoot?.querySelector(\n \"#side-navigation\"\n ) as HTMLDivElement;\n const sideNavInner = sideNav.querySelector(\n \".side-navigation-inner\"\n ) as HTMLElement;\n const bottomWrapper = sideNav.querySelector(\n \".bottom-wrapper\"\n ) as HTMLElement;\n\n const menuVisibilityVisible = \"menu-visibility-visible\";\n\n if (menuOpen) {\n bottomWrapper.classList.add(menuVisibilityVisible);\n sideNavInner.classList.add(menuVisibilityVisible);\n } else {\n setTimeout(() => {\n sideNavInner.classList.remove(menuVisibilityVisible);\n bottomWrapper.classList.remove(menuVisibilityVisible);\n }, this.ANIMATION_DURATION);\n }\n };\n\n private setMobileMenuAriaAttributes = (menuOpen: boolean) => {\n if (this.menuButton) {\n this.menuButton.setAttribute(\"aria-expanded\", `${menuOpen}`);\n this.menuButton.setAttribute(\n \"aria-label\",\n `${menuOpen ? \"Close\" : \"Open\"} navigation menu`\n );\n }\n };\n\n private setAndRemoveNoWrapAfterMenuExpanded = () => {\n const appTitle =\n this.el.shadowRoot?.querySelector(\".title-link ic-typography\") ||\n this.el.querySelector(\"[slot='app-title']\");\n\n appTitle?.classList.add(\"ic-typography-no-wrap\");\n\n setTimeout(() => {\n appTitle?.classList.remove(\"ic-typography-no-wrap\");\n }, this.ANIMATION_DURATION);\n };\n\n private toggleMenuExpanded = (expanded: boolean): void => {\n this.menuExpanded = expanded;\n\n if (this.menuExpanded) {\n this.setAndRemoveNoWrapAfterMenuExpanded();\n this.el.shadowRoot\n ?.querySelector(\".app-title-inner-wrapper\")\n ?.classList.add(\"app-title-show\");\n } else {\n this.el.style.setProperty(\"--navigation-item-width\", \"320px\");\n this.el.shadowRoot\n ?.querySelector(\".app-title-inner-wrapper\")\n ?.classList.remove(\"app-title-show\");\n\n this.el.addEventListener(\"transitionend\", (e) => {\n if (e.propertyName === \"width\") {\n this.el.style.setProperty(\"--navigation-item-width\", null);\n }\n });\n }\n\n this.arrangeSlottedNavigationItem(this.menuExpanded);\n\n this.displayTooltipWithExpandedLongLabel(this.menuExpanded);\n\n if (this.collapsedIconLabels) {\n this.animateCollapsedIconLabels();\n }\n\n this.setExpandedButtonHeight();\n this.emitSideNavigationExpanded({ sideNavExpanded: this.menuExpanded });\n };\n\n /**\n * In order to style nested slotted elements (e.g. using React Router components), this method\n * rearranges the a tag and labels and adds inline styling expand/collapsed animations as external CSS classes are not\n * do not take affect.\n * @param menuExpanded boolean - true or false depending on side navigation state\n */\n private arrangeSlottedNavigationItem = (menuExpanded?: boolean) => {\n const navItems = this.el.querySelectorAll(\"ic-navigation-item\");\n navItems.forEach((navItem) => {\n const isNamedSlot = isSlotUsed(navItem, \"navigation-item\");\n const isUnnamedSlot =\n navItem.children[0] && !navItem.children[0].getAttribute(\"slot\");\n if (isNamedSlot || isUnnamedSlot) {\n let navItemSlot;\n if (isNamedSlot) {\n navItemSlot = navItem.querySelector(\"[slot='navigation-item']\");\n } else {\n navItemSlot = navItem.children[0];\n }\n const iconWrapper = document.createElement(\"div\");\n const icon = navItemSlot?.querySelector(\"svg\");\n const badge = navItemSlot?.querySelector(\"ic-badge\");\n const label = navItem.textContent?.trim();\n const icTypography = document.createElement(\"ic-typography\");\n icTypography.classList.add(\n \"ic-typography-label\",\n \"hydrated\",\n \"navigation-item-side-nav-slotted-text\"\n );\n\n iconWrapper.style.position = \"relative\";\n iconWrapper.style.height = \"var(--ic-space-lg)\";\n\n icon && iconWrapper.append(icon);\n badge && iconWrapper.append(badge);\n\n if (label) {\n icTypography.textContent = label;\n }\n\n if (navItemSlot) {\n navItemSlot.textContent = \"\";\n navItemSlot.append(iconWrapper);\n navItemSlot.append(icTypography);\n }\n\n if (this.collapsedIconLabels) {\n this.styleSlottedCollapsedIconLabels(!!menuExpanded, icTypography);\n } else {\n this.styleSlottedIconLabels(!!menuExpanded, icTypography);\n }\n }\n });\n };\n\n private styleSlottedCollapsedIconLabels = (\n menuExpanded: boolean,\n icTypography: HTMLIcTypographyElement\n ) => {\n if (menuExpanded) {\n icTypography.style.marginTop = \"0\";\n icTypography.style.whiteSpace = \"nowrap\";\n icTypography.style.overflow = \"hidden\";\n icTypography.style.textOverflow = \"ellipsis\";\n } else {\n icTypography.style.marginTop = \"10px\";\n icTypography.style.whiteSpace = \"nowrap\";\n icTypography.style.overflow = \"hidden\";\n icTypography.style.textOverflow = \"ellipsis\";\n }\n };\n\n private setExpandedButtonHeight = () => {\n const appStatusWrapper = this.el.shadowRoot?.querySelector(\n \"#side-navigation > .bottom-wrapper > .bottom-side-nav > .app-status-wrapper\"\n ) as HTMLDivElement;\n\n if (appStatusWrapper.offsetHeight !== 0) {\n this.el.style.setProperty(\n \"--sm-side-navigation-bottom-bar-height\",\n `${appStatusWrapper.offsetHeight}px`\n );\n }\n };\n\n private styleSlottedIconLabels = (\n menuExpanded: boolean,\n icTypography: HTMLSpanElement\n ) => {\n if (menuExpanded) {\n icTypography.style.opacity = \"1\";\n icTypography.style.visibility = \"visible\";\n if (!window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches) {\n icTypography.style.transition =\n \"visibility 0s, opacity var(--ic-easing-transition-slow)\";\n }\n } else {\n icTypography.style.opacity = \"0\";\n icTypography.style.visibility = \"hidden\";\n if (!window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches) {\n icTypography.style.transition =\n \"visibility 0s, opacity var(--ic-easing-transition-slow)\";\n }\n }\n };\n\n private transitionHandler = (type: string) => {\n const primaryNavigationWrapper = this.el.shadowRoot?.querySelector(\n \".primary-navigation\"\n );\n\n const secondaryNavigationWrapper = this.el.shadowRoot?.querySelector(\n \".bottom-wrapper > .secondary-navigation\"\n );\n\n const classToRemove =\n type === \"start\"\n ? this.COLLAPSED_ICON_LABELS_END\n : this.COLLAPSED_ICON_LABELS_START;\n\n const classToAdd =\n type === \"start\"\n ? this.COLLAPSED_ICON_LABELS_START\n : this.COLLAPSED_ICON_LABELS_END;\n\n if (primaryNavigationWrapper) {\n primaryNavigationWrapper.classList.remove(classToRemove);\n primaryNavigationWrapper.classList.add(classToAdd);\n }\n\n if (secondaryNavigationWrapper) {\n secondaryNavigationWrapper.classList.remove(classToRemove);\n secondaryNavigationWrapper.classList.add(classToAdd);\n }\n };\n\n private transitionEndHandler = () => {\n this.transitionHandler(\"end\");\n };\n\n private animateCollapsedIconLabels = () => {\n this.transitionHandler(\"start\");\n this.transitionEndHandler();\n\n this.el.addEventListener(\"transitionend\", this.transitionEndHandler);\n };\n\n private paddingIconWidth = (\n navItems: HTMLIcNavigationItemElement[]\n ): number => {\n const navItemLink =\n (navItems[0].shadowRoot &&\n (navItems[0].shadowRoot.querySelector(\"ic-tooltip a\") ||\n navItems[0].shadowRoot.querySelector(\"ic-tooltip div\"))) ||\n navItems[0].querySelector(\"a\") ||\n navItems[0].querySelector(\"div\");\n const navItemSVG = navItems[0].querySelector(\"svg\");\n\n if (navItemLink && navItemSVG) {\n const navStyles = {\n gap: window.getComputedStyle(navItemLink).gap,\n iconWidth: window.getComputedStyle(navItemSVG).width,\n paddingLeft: window.getComputedStyle(navItemLink).paddingLeft,\n };\n\n return Object.values(navStyles).reduce((prev, curr) => {\n return (prev += parseInt(curr));\n }, 0);\n }\n\n return 0;\n };\n\n private displayTooltipWithExpandedLongLabel = (menuExpanded: boolean) => {\n let timer;\n\n if (menuExpanded) {\n timer = setTimeout(() => {\n const sideNavWidth = this.el.clientWidth;\n\n const navigationItems: HTMLIcNavigationItemElement[] = Array.from(\n this.el.querySelectorAll(this.IC_NAVIGATION_ITEM)\n );\n\n const paddingIconDelta = navigationItems.length\n ? this.paddingIconWidth(navigationItems)\n : 0;\n\n navigationItems.forEach(\n (navigationItem: HTMLIcNavigationItemElement) => {\n const icTypographyScrollWidth =\n (\n navigationItem.shadowRoot &&\n navigationItem.shadowRoot.querySelector(\n \"ic-tooltip .link ic-typography.ic-typography-label\"\n )\n )?.scrollWidth ||\n navigationItem.querySelector(\"ic-typography.ic-typography-label\")\n ?.scrollWidth;\n\n if (\n icTypographyScrollWidth &&\n icTypographyScrollWidth > sideNavWidth - paddingIconDelta\n ) {\n navigationItem.setAttribute(\"display-navigation-tooltip\", \"true\");\n }\n }\n );\n }, this.ANIMATION_DURATION);\n } else {\n clearTimeout(timer);\n\n const navigationItems: HTMLIcNavigationItemElement[] = Array.from(\n this.el.querySelectorAll(this.IC_NAVIGATION_ITEM)\n );\n navigationItems.forEach((navigationItem: HTMLIcNavigationItemElement) => {\n navigationItem.setAttribute(\"display-navigation-tooltip\", \"false\");\n });\n }\n };\n\n private setMenuExpanded = (expanded: boolean): void => {\n this.menuExpanded = expanded;\n };\n\n private handleNavItemClicked = () => {\n if (\n !this.menuOpen &&\n this.deviceSize > DEVICE_SIZES.S &&\n this.menuExpanded\n ) {\n setTimeout(() => {\n this.toggleMenuExpanded(false);\n }, 0);\n }\n };\n\n /**\n * As the mobile top bar is fixed, a padding top is required\n * to push main content down the height of the mobile top bar\n * @param value - padding-top css value\n */\n private setParentPaddingTop = (value: string) => {\n this.el.parentElement?.style.setProperty(\"padding-top\", value);\n };\n\n private setParentPaddingLeft = (value: string) => {\n this.el.parentElement?.style.setProperty(\"padding-left\", value);\n };\n\n private renderAppTitle = (isAppNameSubtitleVariant: boolean) => {\n const displayShortAppTitle =\n this.deviceSize <= DEVICE_SIZES.S && !isEmptyString(this.shortAppTitle);\n return (\n <ic-typography\n variant={\n displayShortAppTitle || isAppNameSubtitleVariant\n ? \"subtitle-small\"\n : \"h3\"\n }\n aria-label={\n displayShortAppTitle\n ? `${this.appTitle} (${this.shortAppTitle})`\n : undefined\n }\n >\n <h1>{displayShortAppTitle ? this.shortAppTitle : this.appTitle}</h1>\n </ic-typography>\n );\n };\n\n private resizeObserverCallback = (currSize: number) => {\n this.deviceSize = currSize;\n\n const isSDeviceEnableTop =\n currSize === DEVICE_SIZES.S && !this.disableTopBarBehaviour;\n\n if (!this.disableAutoParentStyling) {\n const topBarHeight =\n this.el.shadowRoot?.querySelector(\".top-bar\")?.scrollHeight;\n this.setParentPaddingTop(isSDeviceEnableTop ? `${topBarHeight}px` : \"0\");\n if (isSDeviceEnableTop) this.setParentPaddingLeft(\"0\");\n if (isSDeviceEnableTop && this.inline) {\n this.el.parentElement?.style.setProperty(\n \"height\",\n `calc(100% - ${topBarHeight}px)`\n );\n } else if (!isSDeviceEnableTop) {\n this.el.parentElement?.style.setProperty(\"height\", \"100%\");\n }\n }\n\n const notSmallDisableTop =\n currSize > DEVICE_SIZES.S || this.disableTopBarBehaviour;\n\n if (!this.disableAutoParentStyling) {\n const paddingLeft = `calc(var(--ic-space-xxl) ${\n this.collapsedIconLabels ? \"* 2\" : \"+ var(--ic-space-xs)\"\n })`;\n\n if (currSize > DEVICE_SIZES.L) {\n this.setParentPaddingTop(\"0\");\n this.setParentPaddingLeft(\"0\");\n } else if (\n notSmallDisableTop &&\n currSize <= DEVICE_SIZES.M &&\n this.static\n ) {\n this.setParentPaddingLeft(paddingLeft);\n } else if (notSmallDisableTop && currSize <= DEVICE_SIZES.L) {\n this.setParentPaddingLeft(\n this.static && this.menuExpanded\n ? \"calc(var(--ic-space-xl) * 10)\"\n : paddingLeft\n );\n }\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = getCurrentDeviceSize();\n this.deviceSizeAppTitle = currSize;\n this.resizeObserverCallback(currSize);\n });\n\n this.resizeObserver.observe(document.body, { box: \"content-box\" });\n };\n\n private setCollapsedIconLabels = () => {\n const navigationItems: HTMLIcNavigationItemElement[] = Array.from(\n this.el.querySelectorAll(this.IC_NAVIGATION_ITEM)\n );\n navigationItems.forEach((navigationItem: HTMLIcNavigationItemElement) => {\n navigationItem.setAttribute(\"collapsed-icon-label\", \"true\");\n });\n };\n\n private styleSlottedCollapsedIconLabel = () => {\n const dynamicSlottedIcTypographyComps: HTMLIcTypographyElement[] =\n Array.from(\n this.el.querySelectorAll(\".navigation-item-side-nav-slotted-text\")\n );\n\n dynamicSlottedIcTypographyComps.forEach((icTypography) => {\n if (\n icTypography.parentElement?.parentElement?.classList.contains(\n \"navigation-item-side-nav-collapsed-with-label\"\n )\n ) {\n icTypography.style.whiteSpace = \"nowrap\";\n icTypography.style.overflow = \"hidden\";\n icTypography.style.textOverflow = \"ellipsis\";\n icTypography.style.marginTop = \"10px\";\n }\n });\n };\n\n private renderTopBar = ({\n isSDevice,\n foregroundColor,\n menuOpen,\n href,\n isAppNameSubtitleVariant,\n }: IcTopBar) => {\n const hasTitle = this.appTitle !== \"\" && isPropDefined(this.appTitle);\n\n const Component = isSlotUsed(this.el, \"app-title\") ? \"div\" : \"a\";\n\n const attrs = Component == \"a\" && {\n href: href,\n };\n\n return (\n <div\n class={{\n \"top-bar\": true,\n [this.foregroundColor]: true,\n }}\n >\n {isSDevice && (\n <nav\n aria-labelledby=\"menu-navigation-toggle-button-landmark\"\n aria-hidden=\"false\"\n >\n <ic-button\n aria-label=\"Open navigation menu\"\n class=\"menu-button\"\n id=\"menu-button\"\n variant=\"secondary\"\n size=\"small\"\n full-width=\"true\"\n theme={\n foregroundColor == \"default\" || foregroundColor == \"light\"\n ? \"light\"\n : \"dark\"\n }\n monochrome\n onClick={this.toggleMenu}\n ariaOwnsId=\"side-navigation\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n ref={(el) => (this.menuButton = el)}\n >\n <span\n class=\"mobile-top-bar-menu-icon\"\n slot=\"left-icon\"\n innerHTML={menuOpen ? closeIcon : menuIcon}\n ></span>\n {menuOpen ? \"Close\" : \"Menu\"}\n </ic-button>\n <span\n id=\"menu-navigation-toggle-button-landmark\"\n class=\"navigation-landmark-title\"\n aria-hidden=\"true\"\n >\n Navigation menu toggle button\n </span>\n </nav>\n )}\n <div class=\"app-title-wrapper\">\n {(hasTitle || isSlotUsed(this.el, \"app-title\")) && (\n <Component {...attrs} class=\"title-link\">\n <div class=\"app-icon-container\" aria-hidden=\"true\">\n <slot name=\"app-icon\"></slot>\n </div>\n <div class=\"app-title-inner-wrapper\">\n {isSlotUsed(this.el, \"app-title\") ? (\n <slot name=\"app-title\"></slot>\n ) : (\n this.renderAppTitle(isAppNameSubtitleVariant)\n )}\n </div>\n </Component>\n )}\n </div>\n </div>\n );\n };\n\n render() {\n const {\n appTitle,\n menuOpen,\n foregroundColor,\n menuExpanded,\n href,\n status,\n version,\n collapsedIconLabels,\n inline,\n } = this;\n\n const isSDevice =\n !this.disableTopBarBehaviour && this.deviceSize === DEVICE_SIZES.S;\n const isSDeviceDisableTop =\n this.disableTopBarBehaviour && this.deviceSize === DEVICE_SIZES.S;\n const isMdDevice = this.deviceSize === DEVICE_SIZES.M;\n const isLgDevice = this.deviceSize >= DEVICE_SIZES.L;\n const isAppNameSubtitleVariant = this.deviceSizeAppTitle === DEVICE_SIZES.S;\n const displayExpandBtn =\n isMdDevice || isSDeviceDisableTop || (isLgDevice && !this.static);\n\n const topBarProps: IcTopBar = {\n isSDevice,\n foregroundColor,\n menuOpen,\n href: href!,\n isAppNameSubtitleVariant,\n appTitle: appTitle || \"\",\n };\n\n return (\n <Host\n class={{\n \"xs-menu-open\": menuOpen && isSDevice,\n \"xs-menu-close\": !menuOpen && isSDevice,\n \"sm-collapsed\": !isSDevice && !menuExpanded,\n \"sm-expanded\": !isSDevice && menuExpanded,\n \"side-display\":\n this.deviceSize > DEVICE_SIZES.S || !!this.disableTopBarBehaviour,\n [`ic-side-navigation-${IcBrandForegroundEnum.Dark}`]:\n foregroundColor === IcBrandForegroundEnum.Dark,\n [\"collapsed-labels\"]:\n !isSDevice && !menuExpanded && !!collapsedIconLabels,\n [\"ic-side-navigation-inline\"]: !!inline,\n }}\n >\n {isSDevice && this.renderTopBar({ ...topBarProps })}\n <div class=\"side-navigation\" id=\"side-navigation\">\n {!isSDevice && this.renderTopBar({ ...topBarProps })}\n <div class=\"side-navigation-inner\">\n {isSlotUsed(this.el, \"primary-navigation\") && (\n <nav\n class=\"primary-navigation\"\n aria-labelledby=\"primary-navigation-landmark\"\n >\n <span\n aria-hidden=\"true\"\n class=\"navigation-landmark-title\"\n id=\"primary-navigation-landmark\"\n >\n Primary\n </span>\n <ul class=\"navigation-list\">\n <slot name=\"primary-navigation\"></slot>\n </ul>\n </nav>\n )}\n </div>\n <div\n class={{\n [\"bottom-wrapper\"]: true,\n [\"classification-spacing\"]: hasClassificationBanner(),\n }}\n >\n {isSlotUsed(this.el, \"secondary-navigation\") && (\n <nav\n class=\"secondary-navigation\"\n aria-labelledby=\"secondary-navigation-landmark\"\n >\n <span\n aria-hidden=\"true\"\n class=\"navigation-landmark-title\"\n id=\"secondary-navigation-landmark\"\n >\n Secondary\n </span>\n <ul class=\"navigation-list\">\n <slot name=\"secondary-navigation\"></slot>\n </ul>\n </nav>\n )}\n <div class=\"bottom-side-nav\">\n {this.hasSecondaryNavigation && <ic-divider></ic-divider>}\n {displayExpandBtn && (\n <button\n class=\"menu-expand-button\"\n innerHTML={chevronIcon}\n onClick={() => this.toggleMenuExpanded(!this.menuExpanded)}\n aria-label={`${\n menuExpanded ? \"Collapse\" : \"Expand\"\n } side navigation`}\n ></button>\n )}\n <div class=\"app-status-wrapper\">\n {status && (\n <div\n class={{\n [\"app-status\"]: true,\n }}\n >\n <ic-typography\n aria-label=\"app tag\"\n variant=\"label-uppercase\"\n class=\"app-status-text\"\n >\n {status}\n </ic-typography>\n </div>\n )}\n {version && (\n <ic-typography\n variant=\"label\"\n class=\"app-version\"\n aria-label=\"app version\"\n >\n {version}\n </ic-typography>\n )}\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,c as t,f as i,h as a,H as s,g as r}from"./p-8e4e97b4.js";import{P as o,K as n,r as l,J as c,l as d,z as h,k as u,o as b,O as f,q as p,m,n as v,i as x}from"./p-dbc8bf0c.js";import{e as g,I as y}from"./p-6215e2ae.js";const w='/*! 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-input-label-helpertext-padding:var(--ic-space-xs);--border-color:var(--ic-text-field-border-neutral);--border-color-hover:var(--ic-text-field-border-neutral-hover);--border-color-pressed:var(--ic-text-field-border-neutral-pressed);--border-color-disabled:var(--ic-text-field-border-disabled);--border-color-error:var(--ic-text-field-border-error);--border-color-error-hover:var(--ic-text-field-border-error-hover);--border-color-error-pressed:var(--ic-text-field-border-error-pressed);--border-color-success:var(--ic-text-field-border-success);--border-color-success-hover:var(--ic-text-field-border-success-hover);--border-color-success-pressed:var(--ic-text-field-border-success-pressed);--border-color-warning:var(--ic-text-field-border-warning);--border-color-warning-hover:var(--ic-text-field-border-warning-hover);--border-color-warning-pressed:var(--ic-text-field-border-warning-pressed);--ic-input-label-text-color:var(--ic-text-field-label);--ic-input-label-helper-text-color:var(--ic-text-field-subtitle);--ic-input-validation-status-text-color:var(--ic-text-field-state-text);--ic-input-validation-error:var(--ic-text-field-state-icon-error);--ic-input-validation-warning-icon-color:var(\n --ic-text-field-state-icon-warning\n );--ic-input-validation-success-icon-color:var(\n --ic-text-field-state-icon-success\n );--ic-input-component-container-success-icon-inline-color:var(\n --ic-text-field-state-icon-success\n )}:host(.ic-text-field-disabled){--ic-input-label-text-color:var(--ic-text-field-label-disabled);--ic-input-label-helper-text-color:var(--ic-text-field-subtitle-disabled);--text-field-placeholder-color:var(\n --ic-text-field-text-area-placeholder-text-disabled\n )}:host(.ic-text-field-full-width){width:100%}::-moz-placeholder{color:var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );opacity:1}::placeholder{color:var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );opacity:1}input,textarea{border:0;border-radius:var(--ic-border-radius);color:var(--text-field-text-color, var(--ic-text-field-text));background-color:var(--input-bg-color, var(--ic-text-field-background));line-height:1.5rem;letter-spacing:0.005rem;width:100%;padding-right:var(--ic-space-xs);padding-left:var(--ic-space-xs);caret-color:var(\n --text-field-typing-cursor,\n var(--ic-text-field-typing-cursor)\n )}textarea{min-height:var(--ic-space-lg);resize:vertical;padding-top:0.375rem}input:focus,textarea:focus{border:0;outline:0}input:disabled,textarea:disabled{color:var(\n --text-field-disabled-text-color,\n var(--ic-text-field-text-disabled)\n )}input.readonly,textarea.readonly{color:var(--ic-text-field-read-only-input-text-internal);background:transparent}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type="number"]{-moz-appearance:textfield}textarea.no-resize{resize:none}.char-count-text{--ic-typography-color:var(--ic-text-field-character-limit);padding-right:var(--ic-space-xxxs)}:host(.ic-text-field-disabled) .char-count-text{--ic-typography-color:var(--ic-text-field-character-limit-disabled)}.no-left-pad{padding-left:0}::slotted([slot="icon"]){fill:var(--ic-text-field-text-disabled)}.has-value ::slotted([slot="icon"]){fill:var(--ic-text-field-input-internal-icon)}.char-count{margin-right:calc(-1 * var(--ic-space-xxxs))}.remaining-char-count-desc{position:absolute;left:-9999px}.show-validation{margin-top:var(--ic-space-xs)}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-results-button,input[type="search"]::-webkit-search-results-decoration{display:none}input[type="search"].truncate-value{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media (forced-colors: active){input.readonly,textarea.readonly{color:canvastext}.has-value ::slotted([slot="icon"]){fill:currentcolor}}';const k=w;let z=0;const C=[...y,"title"];const $=class{constructor(a){e(this,a);this.getValidationText=t(this,"getValidationText",7);this.icBlur=t(this,"icBlur",7);this.icChange=t(this,"icChange",7);this.icFocus=t(this,"icFocus",7);this.icInput=t(this,"icInput",7);this.icKeydown=t(this,"icKeydown",7);this.icScroll=t(this,"icScroll",7);this.inheritedAttributes={};this.hostMutationObserver=null;this.numChars=0;this.maxCharactersReached=false;this.maxCharactersWarning=false;this.minCharactersUnattained=false;this.maxValueExceeded=false;this.minValueUnattained=false;this.isFocussed=false;this.autocapitalize="off";this.autocomplete="off";this.autocorrect="off";this.autofocus=false;this.disabled=false;this.fullWidth=false;this.helperText="";this.hideCharCount=false;this.hideLabel=false;this.hiddenInput=true;this.inputId=`ic-text-field-input-${z++}`;this.inputmode="text";this.maxCharacters=0;this.maxCharactersMessage=`Maximum input is ${this.maxCharacters} characters`;this.maxMessage=`Maximum value of ${this.max} exceeded`;this.minCharacters=0;this.minCharactersMessage=`Minimum input is ${this.minCharacters} characters`;this.minMessage=`Minimum value of ${this.min} not met`;this.name=this.inputId;this.placeholder="";this.readonly=false;this.required=false;this.resize=false;this.rows=1;this.size="medium";this.spellcheck=false;this.theme="inherit";this.truncateValue=false;this.type="text";this.validationAriaLive="default";this.validationInline=false;this.validationInlineInternal=false;this.validationStatus="";this.validationText="";this.debounce=0;this.value="";this.initialValue=this.value;this.checkChildHydration=()=>{var e,t;if(this.hideLabel||((t=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector("ic-typography"))===null||t===void 0?void 0:t.classList.contains("hydrated"))){this.setFocus();clearInterval(this.interval)}};this.getNumberOfCharacters=e=>e!==null&&e!==undefined?e.length:0;this.getMaxValueExceeded=e=>{this.numChars=this.getNumberOfCharacters(e);if(this.type==="number"){this.minValueUnattained=!!e&&Number(e)<Number(this.min);this.maxValueExceeded=Number(e)>Number(this.max)}};this.getMaxCharactersReached=e=>{this.numChars=this.getNumberOfCharacters(e);this.maxCharactersReached=this.maxCharacters>0&&this.numChars>=this.maxCharacters;if(this.maxCharactersWarning&&!this.maxCharactersReached){this.maxCharactersWarning=false}};this.onInput=e=>{this.value=e.target.value;this.icInput.emit({value:this.value})};this.onBlur=e=>{const t=e.target;t.removeEventListener("wheel",this.onWheel);const{value:i}=t;this.numChars=i.length;this.minCharactersUnattained=this.minCharacters>0&&this.numChars<this.minCharacters;this.icBlur.emit({value:i});this.isFocussed=false};this.onFocus=e=>{const t=e.target;t.addEventListener("wheel",this.onWheel);this.icFocus.emit({value:t.value});this.isFocussed=true};this.onTextAreaScroll=()=>{this.icScroll.emit()};this.onWheel=e=>{const t=e.target;if(t.type==="number"){t.blur();setTimeout((()=>{t.focus()}),0)}};this.hasStatus=e=>e!==""&&!this.disabled;this.handleFormReset=()=>{this.value=this.initialValue};this.showValidationMargin=()=>{const e=this.readonly?0:this.maxCharacters;const t=o(this.validationStatus)||o(this.validationText);const i=this.minValueUnattained||this.maxValueExceeded;const a=e>0||this.minCharactersUnattained;return(!t||i||a)&&!this.validationInlineInternal};this.hostMutationCallback=e=>{let t=false;e.forEach((({attributeName:e,type:i,addedNodes:a,removedNodes:s})=>{if(e&&C.includes(e)){const i=this.el.getAttribute(e);if(i){this.inheritedAttributes[e]=i}t=true}else if(i==="childList"){t=n(a,s,"icon")}}));if(t){i(this)}}}watchDisabledHandler(){l(this.disabled,this.el)}debounceChanged(){this.icChange=c(this.icChange,this.debounce)}watchValueHandler(e){let t;if(this.maxCharacters>0){t=e.substring(0,this.maxCharacters);if(t.length<e.length){this.maxCharactersWarning=true}this.value=t}else{t=e}if(this.inputEl&&this.inputEl.value!==t){this.inputEl.value=t}this.getMaxValueExceeded(t);this.getMaxCharactersReached(t);this.icChange.emit({value:t})}connectedCallback(){this.debounceChanged()}disconnectedCallback(){var e;d(this.el,this.handleFormReset);(e=this.hostMutationObserver)===null||e===void 0?void 0:e.disconnect()}componentWillLoad(){if(this.value!==this.initialValue){this.watchValueHandler(this.value)}else if(this.maxCharacters>0){this.value=this.value.substring(0,this.maxCharacters)}this.getMaxValueExceeded(this.value);this.getMaxCharactersReached(this.value);this.inheritedAttributes=h(this.el,C);if(this.readonly){this.maxValueExceeded=false;this.minValueUnattained=false}u(this.el,this.handleFormReset);l(this.disabled,this.el)}componentDidLoad(){b([{prop:this.label,propName:"label"}],"Text Field");if(this.validationInlineInternal){this.getValidationText.emit({value:this.validationText})}this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{attributes:true,childList:true});if(this.autofocus&&!this.disabled&&!this.readonly){this.interval=setInterval(this.checkChildHydration,50)}}handleKeyDown(e){var t,i;this.icKeydown.emit({event:e,cursorPosition:(t=this.inputEl.selectionStart)!==null&&t!==void 0?t:0,selectionEnd:(i=this.inputEl.selectionEnd)!==null&&i!==void 0?i:0});if(!e.ctrlKey&&!g.includes(e.key)){this.maxCharactersWarning=this.maxCharactersReached}}async setFocus(){var e;(e=this.inputEl)===null||e===void 0?void 0:e.focus()}render(){const{inputId:e,name:t,label:i,required:r,size:o,placeholder:n,helperText:l,hideCharCount:c,rows:d,resize:h,disabled:u,value:b,min:g,max:y,numChars:w,readonly:k,maxCharacters:z,maxCharactersMessage:C,maxCharactersWarning:$,maxCharactersReached:I,maxMessage:M,minCharacters:L,minCharactersMessage:N,minCharactersUnattained:T,minMessage:j,minValueUnattained:q,maxValueExceeded:F,validationAriaLive:V,validationStatus:D,validationText:H,validationInline:O,validationInlineInternal:W,spellcheck:B,inputmode:S,fullWidth:A,truncateValue:E,hiddenInput:K,theme:P,hideLabel:U,type:_,autocapitalize:J,ariaActiveDescendant:R,inheritedAttributes:G,ariaExpanded:Q,ariaOwns:X,autocomplete:Y,role:Z,isFocussed:ee}=this;const te=this.el;const ie=k||u;const ae=F||q||T||$?$?f.Warning:f.Error:D;const se=$?C:F?M:q?j:T?N:H;const re=k?0:z;const oe=V==="default"?$||F||q||ae===f.Error?"assertive":"polite":V;const ne=this.hasStatus(ae)&&!(ae==f.Success&&O)&&!W;const le=d>1;const ce=z>0?`${e}-char-count-desc`:"";const de=re-w;const he=z>0?`${e}-remaining-char-count-desc`:"";const ue=`${de} character${de===1?"":"s"} remaining.`;const be=`${p(this.el,e,l!=="",ne)} ${ce} ${w>0?he:""}`.trim();const fe=ie&&!k;const pe=!!this.el.querySelector(`[slot="icon"]`)&&!fe;const me=`${ae===f.Error}`;K?m(this.el,b,t,ie):v(this.el);return a(s,{key:"6300558c65d21c3cf9fcb2af66774cbdf274cf89",class:{"ic-text-field-full-width":A,"ic-text-field-disabled":ie,[`ic-theme-${P}`]:P!=="inherit"}},a("ic-input-container",{key:"6f0d1a6cf4ed01bd98c3b69d37f6ffb473e1201e",readonly:k,disabled:ie},!U&&a("ic-input-label",{key:"71cc64b0733fbe16b21f389000c8a6813ad9f07f",for:e,label:i,helperText:l,required:r,disabled:fe,readonly:k},a("slot",{key:"985b82195b09acc991bbed6c0be5210cba70f59e",name:"helper-text",slot:"helper-text"})),a("ic-input-component-container",{key:"95df2f453e06c5dec6788e98db94e5e4ce129d04",size:o,validationStatus:ae,multiLine:le,disabled:ie,readonly:k,validationInline:O,fullWidth:A},pe&&a("span",{key:"62a052203a6b9e35858e7103f505bdf38eda7349",class:{readonly:k,"has-value":this.getNumberOfCharacters(b)>0},slot:"left-icon"},a("slot",{key:"12ee0976840d954f7f855740db4098983ccf73a5",name:"icon"})),!le?a("input",Object.assign({id:e,name:t,ref:e=>this.inputEl=e,type:_,min:g,max:y,value:b,class:{"no-left-pad":!pe&&k,readonly:k,"truncate-value":E},placeholder:n?n:"",required:r,disabled:ie,readonly:k,onInput:this.onInput,onBlur:this.onBlur,onFocus:this.onFocus,"aria-label":i,"aria-describedby":be,"aria-invalid":me,"aria-activedescendant":R,"aria-expanded":Q,"aria-owns":X,autocomplete:Y,autocapitalize:J,spellcheck:B,inputmode:S,role:Z||undefined,maxlength:I?z:undefined,minlength:T?L:undefined},G)):a("textarea",Object.assign({id:e,class:{"no-resize":h===false||!!k,"no-left-pad":!pe&&!!k,readonly:!!k},name:t,ref:e=>this.inputEl=e,value:b,rows:d,required:r,disabled:ie,placeholder:n,readonly:k,onInput:this.onInput,onBlur:this.onBlur,onFocus:this.onFocus,onScroll:this.onTextAreaScroll,"aria-label":i,"aria-describedby":be,"aria-invalid":me,autocomplete:Y,autocapitalize:J,spellcheck:B,inputmode:S,maxlength:I?z:undefined,minlength:T?L:undefined},G)),x(te,"clear-button")&&a("slot",{key:"4bd5b1b44a9fded9be98c35d3e49f357b99adf26",name:"clear-button"}),x(te,"search-submit-button")&&a("slot",{key:"fccd3ae4e454d661540f45b748440aa8c9c28baf",name:"search-submit-button"})),x(te,"menu")&&a("slot",{key:"aca9fabb2b029547a713e75be81c179e3c1e3b52",name:"menu"}),a("ic-input-validation",{key:"1d2443ab140751bd21f247f5136254498ffc8004",class:{"show-validation":this.showValidationMargin()},status:this.hasStatus(ae)===false||ae===f.Success&&O||W?"":ae,message:ne?se:"",ariaLiveMode:oe,for:e,fullWidth:A},x(te,"validation-text")&&a("slot",{key:"e8f5abdc72b047998c5164ec7bef70eab2d7af81",name:"validation-text",slot:"validation-message"}),!k&&re>0&&a("div",{key:"9458320139c6c17b4db3f40ef91ed8f35667e612",slot:"validation-message-adornment"},!c&&a("ic-typography",{key:"26663bbc0dbc1e5183cfb4af5b2f9a244fa303c5",variant:"caption",class:"char-count-text"},a("span",{key:"84a9de3338f2fee09b3712fcc56dd509bbc672e2",class:"char-count"},w,"/",re)),a("span",{key:"cb1d19f9755ea5b393e03ab19da262c67ce6e19e",class:"remaining-char-count-desc","aria-live":"polite",hidden:!ee,id:he},ue),a("span",{key:"87cfdac09956c5e749ff4c06bb58228d2d40feb5",hidden:true,id:ce},"Field can contain a maximum of ",re," characters.")))))}get el(){return r(this)}static get watchers(){return{disabled:["watchDisabledHandler"],debounce:["debounceChanged"],value:["watchValueHandler"]}}};$.style=k;export{$ as ic_text_field};
|
|
2
|
-
//# sourceMappingURL=p-d1730d4d.entry.js.map
|