@ukic/canary-web-components 3.0.0-canary.2 → 3.0.0-canary.4
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/{helpers-33b42cd6.js → helpers-36cdc6cb.js} +24 -1
- package/dist/cjs/helpers-36cdc6cb.js.map +1 -0
- package/dist/cjs/{helpers-6817cfbb.js → helpers-a67ad3a4.js} +15 -129
- package/dist/cjs/helpers-a67ad3a4.js.map +1 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js +10 -10
- package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-accordion.cjs.entry.js +5 -5
- package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +7 -5
- package/dist/cjs/ic-alert.cjs.entry.js.map +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 +2 -2
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card-horizontal.cjs.entry.js +21 -26
- package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card-vertical.cjs.entry.js +22 -24
- package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +17 -6
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +6 -4
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +1 -1
- package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
- 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-data-table-title-bar.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-table.cjs.entry.js +86 -10
- package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-date-input.cjs.entry.js +13 -11
- package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-date-picker.cjs.entry.js +4 -2
- package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +4 -2
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +71 -7
- package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-empty-state_2.cjs.entry.js +31 -16
- package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +2 -2
- package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +4 -3
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +1013 -0
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-input-label_2.cjs.entry.js +86 -0
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-link.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +3 -3
- package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js +11 -11
- package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +5 -4
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +29 -2
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +5 -5
- package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination_4.cjs.entry.js +191 -62
- package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +11 -11
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +15 -6
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +31 -22
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +12 -9
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +4 -3
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +7 -4
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +2 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab.cjs.entry.js +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +3 -3
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
- package/dist/cjs/ic-tree-item.cjs.entry.js +10 -6
- package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tree-view.cjs.entry.js +19 -11
- package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +1 -1
- package/dist/cjs/index-4cf27b16.js +4 -12
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +0 -2
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.css +18 -21
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +44 -25
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -1
- package/dist/collection/components/ic-data-table/ic-data-table.css +20 -0
- package/dist/collection/components/ic-data-table/ic-data-table.js +106 -10
- package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
- package/dist/collection/components/ic-data-table/story-data.js +7 -0
- package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
- package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +17 -0
- package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
- package/dist/collection/components/ic-date-input/ic-date-input.css +8 -0
- package/dist/collection/components/ic-date-input/ic-date-input.js +29 -9
- package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
- package/dist/collection/components/ic-date-picker/ic-date-picker.css +1 -0
- package/dist/collection/components/ic-date-picker/ic-date-picker.js +20 -0
- package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.css +8 -7
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +87 -36
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
- package/dist/collection/components/ic-tree-item/ic-tree-item.css +25 -21
- package/dist/collection/components/ic-tree-item/ic-tree-item.js +51 -32
- package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
- package/dist/collection/components/ic-tree-view/ic-tree-view.css +8 -9
- package/dist/collection/components/ic-tree-view/ic-tree-view.js +51 -23
- package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
- package/dist/collection/utils/helpers.js +1 -1
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/components/helpers.js +22 -1
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/helpers2.js +14 -121
- package/dist/components/helpers2.js.map +1 -1
- package/dist/components/ic-accordion-group.js +11 -11
- package/dist/components/ic-accordion-group.js.map +1 -1
- package/dist/components/ic-accordion.js +5 -5
- package/dist/components/ic-accordion.js.map +1 -1
- package/dist/components/ic-alert.js +8 -5
- package/dist/components/ic-alert.js.map +1 -1
- package/dist/components/ic-card-horizontal.js +22 -26
- package/dist/components/ic-card-horizontal.js.map +1 -1
- package/dist/components/ic-card-vertical.js +23 -24
- package/dist/components/ic-card-vertical.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +19 -6
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox.js +6 -3
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-classification-banner.js +1 -1
- package/dist/components/ic-classification-banner.js.map +1 -1
- package/dist/components/ic-data-table.js +88 -10
- package/dist/components/ic-data-table.js.map +1 -1
- package/dist/components/ic-date-input2.js +14 -11
- package/dist/components/ic-date-input2.js.map +1 -1
- package/dist/components/ic-date-picker.js +5 -2
- package/dist/components/ic-date-picker.js.map +1 -1
- package/dist/components/ic-dialog.js +4 -1
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-divider2.js +86 -9
- package/dist/components/ic-divider2.js.map +1 -1
- package/dist/components/ic-footer-link-group.js +1 -1
- package/dist/components/ic-footer-link-group.js.map +1 -1
- package/dist/components/ic-footer-link.js +1 -1
- package/dist/components/ic-footer-link.js.map +1 -1
- package/dist/components/ic-footer.js +2 -2
- package/dist/components/ic-footer.js.map +1 -1
- package/dist/components/ic-hero.js +1 -1
- package/dist/components/ic-hero.js.map +1 -1
- package/dist/components/ic-horizontal-scroll2.js +4 -3
- package/dist/components/ic-horizontal-scroll2.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +1 -1
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-input-label2.js +10 -6
- package/dist/components/ic-input-label2.js.map +1 -1
- package/dist/components/ic-input-validation2.js +1 -1
- package/dist/components/ic-input-validation2.js.map +1 -1
- package/dist/components/ic-loading-indicator2.js +1 -1
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu-group.js +2 -2
- package/dist/components/ic-menu-group.js.map +1 -1
- package/dist/components/ic-menu-item2.js +11 -11
- package/dist/components/ic-menu-item2.js.map +1 -1
- package/dist/components/ic-menu2.js +453 -169
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-group.js +5 -4
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-item.js +31 -3
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-navigation-menu2.js +1 -1
- package/dist/components/ic-page-header.js +4 -4
- package/dist/components/ic-page-header.js.map +1 -1
- package/dist/components/ic-pagination-bar2.js +34 -17
- package/dist/components/ic-pagination-bar2.js.map +1 -1
- package/dist/components/ic-pagination-item2.js +10 -12
- package/dist/components/ic-pagination-item2.js.map +1 -1
- package/dist/components/ic-pagination2.js +38 -15
- package/dist/components/ic-pagination2.js.map +1 -1
- package/dist/components/ic-popover-menu.js +12 -11
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +17 -6
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js +32 -22
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +13 -9
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-select2.js +148 -37
- package/dist/components/ic-select2.js.map +1 -1
- package/dist/components/ic-side-navigation.js +4 -3
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-stepper.js +1 -1
- package/dist/components/ic-switch.js +7 -3
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-tab-context.js +2 -1
- package/dist/components/ic-tab-context.js.map +1 -1
- package/dist/components/ic-text-field2.js +2 -2
- package/dist/components/ic-text-field2.js.map +1 -1
- package/dist/components/ic-theme.js +1 -1
- package/dist/components/ic-toast.js +3 -3
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-toggle-button-group.js +1 -1
- package/dist/components/ic-toggle-button-group.js.map +1 -1
- package/dist/components/ic-top-navigation.js +1 -1
- package/dist/components/ic-tree-item.js +11 -6
- package/dist/components/ic-tree-item.js.map +1 -1
- package/dist/components/ic-tree-view.js +24 -14
- package/dist/components/ic-tree-view.js.map +1 -1
- package/dist/core/core.css +692 -10
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/p-00ff3a06.entry.js +2 -0
- package/dist/core/p-00ff3a06.entry.js.map +1 -0
- package/dist/core/{p-7e1603cc.entry.js → p-01ab3a15.entry.js} +2 -2
- package/dist/core/p-01ab3a15.entry.js.map +1 -0
- package/dist/core/{p-c033e7d6.entry.js → p-036d251b.entry.js} +2 -2
- package/dist/core/{p-9397b15b.js → p-043cf5de.js} +2 -2
- package/dist/core/p-043cf5de.js.map +1 -0
- package/dist/core/{p-d2e7a256.entry.js → p-13d2db9b.entry.js} +2 -2
- package/dist/core/p-1d24a02a.entry.js +2 -0
- package/dist/core/{p-7c80d79c.entry.js.map → p-1d24a02a.entry.js.map} +1 -1
- package/dist/core/p-235b461f.entry.js +2 -0
- package/dist/core/p-235b461f.entry.js.map +1 -0
- package/dist/core/{p-897b8d16.entry.js → p-24d03bbd.entry.js} +2 -2
- package/dist/core/{p-bb1252fa.entry.js → p-26613dbd.entry.js} +2 -2
- package/dist/core/p-2873f871.entry.js +2 -0
- package/dist/core/p-2873f871.entry.js.map +1 -0
- package/dist/core/{p-77a32de5.entry.js → p-2a3bd99a.entry.js} +2 -2
- package/dist/core/p-2f4bec06.entry.js +2 -0
- package/dist/core/p-2f4bec06.entry.js.map +1 -0
- package/dist/core/p-350074d4.entry.js +2 -0
- package/dist/core/p-350074d4.entry.js.map +1 -0
- package/dist/core/{p-5cfb5821.entry.js → p-39101ffc.entry.js} +2 -2
- package/dist/core/{p-5cfb5821.entry.js.map → p-39101ffc.entry.js.map} +1 -1
- package/dist/core/p-3b0fae40.entry.js +2 -0
- package/dist/core/p-3b0fae40.entry.js.map +1 -0
- package/dist/core/p-42f1b9cc.entry.js +2 -0
- package/dist/core/p-42f1b9cc.entry.js.map +1 -0
- package/dist/core/p-50dd2744.entry.js +2 -0
- package/dist/core/p-50dd2744.entry.js.map +1 -0
- package/dist/core/p-53228014.entry.js +2 -0
- package/dist/core/p-53228014.entry.js.map +1 -0
- package/dist/core/p-574355c9.entry.js +2 -0
- package/dist/core/p-574355c9.entry.js.map +1 -0
- package/dist/core/p-5af1273f.entry.js +2 -0
- package/dist/core/p-5af1273f.entry.js.map +1 -0
- package/dist/core/p-5eecd3fc.entry.js +2 -0
- package/dist/core/p-5eecd3fc.entry.js.map +1 -0
- package/dist/core/{p-4e28ef60.entry.js → p-606ad46f.entry.js} +2 -2
- package/dist/core/p-606ad46f.entry.js.map +1 -0
- package/dist/core/{p-4dcc37e7.entry.js → p-620b758c.entry.js} +2 -2
- package/dist/core/p-637035c3.entry.js +2 -0
- package/dist/core/p-637035c3.entry.js.map +1 -0
- package/dist/core/{p-6beffd0e.entry.js → p-6727166b.entry.js} +2 -2
- package/dist/core/{p-8ca2e329.entry.js → p-6dc00a8f.entry.js} +2 -2
- package/dist/core/{p-aeb6016c.entry.js → p-6dffaac0.entry.js} +2 -2
- package/dist/core/{p-aeb6016c.entry.js.map → p-6dffaac0.entry.js.map} +1 -1
- package/dist/core/p-72210cd4.entry.js +2 -0
- package/dist/core/p-72210cd4.entry.js.map +1 -0
- package/dist/core/{p-d5ca3bcb.entry.js → p-7aa6b76e.entry.js} +2 -2
- package/dist/core/{p-e5d99316.entry.js → p-7b90f0ae.entry.js} +2 -2
- package/dist/core/p-7c3c080a.entry.js +2 -0
- package/dist/core/p-7c3c080a.entry.js.map +1 -0
- package/dist/core/p-7c663d4a.entry.js +2 -0
- package/dist/core/p-7c663d4a.entry.js.map +1 -0
- package/dist/core/p-7c6710f8.entry.js +2 -0
- package/dist/core/p-7c6710f8.entry.js.map +1 -0
- package/dist/core/{p-50019ede.entry.js → p-80b296cd.entry.js} +2 -2
- package/dist/core/{p-b0751bd9.entry.js → p-80dee118.entry.js} +2 -2
- package/dist/core/p-80dee118.entry.js.map +1 -0
- package/dist/core/{p-eb65e556.entry.js → p-82aa8136.entry.js} +2 -2
- package/dist/core/{p-2e49fb22.entry.js → p-83b4efe2.entry.js} +2 -2
- package/dist/core/p-83e4d955.entry.js +2 -0
- package/dist/core/p-83e4d955.entry.js.map +1 -0
- package/dist/core/p-85d51975.entry.js +2 -0
- package/dist/core/p-85d51975.entry.js.map +1 -0
- package/dist/core/{p-5accf0bb.entry.js → p-878df16f.entry.js} +2 -2
- package/dist/core/{p-1fe35de1.entry.js → p-8bec76d1.entry.js} +2 -2
- package/dist/core/p-8ffdd236.entry.js +2 -0
- package/dist/core/p-8ffdd236.entry.js.map +1 -0
- package/dist/core/p-97953d8b.entry.js +2 -0
- package/dist/core/p-97953d8b.entry.js.map +1 -0
- package/dist/core/p-9a62c3b8.entry.js +2 -0
- package/dist/core/p-9a62c3b8.entry.js.map +1 -0
- package/dist/core/p-a22d335b.entry.js +2 -0
- package/dist/core/p-a22d335b.entry.js.map +1 -0
- package/dist/core/p-a22e5356.entry.js +2 -0
- package/dist/core/p-a22e5356.entry.js.map +1 -0
- package/dist/core/p-b03218df.entry.js +2 -0
- package/dist/core/p-b03218df.entry.js.map +1 -0
- package/dist/core/{p-486d8d43.entry.js → p-b3d93bc1.entry.js} +2 -2
- package/dist/core/p-c1feb2b2.entry.js +2 -0
- package/dist/core/p-c1feb2b2.entry.js.map +1 -0
- package/dist/core/{p-ed4cde5a.entry.js → p-c40c57ee.entry.js} +2 -2
- package/dist/core/p-c883b5c1.entry.js +2 -0
- package/dist/core/p-c883b5c1.entry.js.map +1 -0
- package/dist/core/{p-0ab10600.entry.js → p-cc22644d.entry.js} +2 -2
- package/dist/core/{p-505250cf.entry.js → p-d7632baf.entry.js} +2 -2
- package/dist/core/p-dcbfc485.entry.js +2 -0
- package/dist/core/p-dcbfc485.entry.js.map +1 -0
- package/dist/core/{p-44ee5375.entry.js → p-e3e0cf46.entry.js} +2 -2
- package/dist/core/p-e3e0cf46.entry.js.map +1 -0
- package/dist/core/p-e6a330e4.js +2 -0
- package/dist/core/p-e6a330e4.js.map +1 -0
- package/dist/core/{p-1109636a.entry.js → p-e7b6d9c5.entry.js} +2 -2
- package/dist/core/{p-1109636a.entry.js.map → p-e7b6d9c5.entry.js.map} +1 -1
- package/dist/core/p-ea3e2419.entry.js +2 -0
- package/dist/core/p-ea3e2419.entry.js.map +1 -0
- package/dist/core/p-f32ab3de.entry.js +2 -0
- package/dist/core/p-f32ab3de.entry.js.map +1 -0
- package/dist/core/p-f3f9acbb.entry.js +2 -0
- package/dist/core/p-f3f9acbb.entry.js.map +1 -0
- package/dist/core/{p-d03374fc.entry.js → p-fbb5c8f2.entry.js} +2 -2
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-5bd2012a.js → helpers-1e2516ae.js} +15 -122
- package/dist/esm/helpers-1e2516ae.js.map +1 -0
- package/dist/esm/{helpers-dab8ddfe.js → helpers-c326255f.js} +23 -2
- package/dist/esm/helpers-c326255f.js.map +1 -0
- package/dist/esm/ic-accordion-group.entry.js +10 -10
- package/dist/esm/ic-accordion-group.entry.js.map +1 -1
- package/dist/esm/ic-accordion.entry.js +5 -5
- package/dist/esm/ic-accordion.entry.js.map +1 -1
- package/dist/esm/ic-alert.entry.js +7 -5
- package/dist/esm/ic-alert.entry.js.map +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 +2 -2
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card-horizontal.entry.js +22 -27
- package/dist/esm/ic-card-horizontal.entry.js.map +1 -1
- package/dist/esm/ic-card-vertical.entry.js +23 -25
- package/dist/esm/ic-card-vertical.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +17 -6
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +6 -4
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +1 -1
- package/dist/esm/ic-classification-banner.entry.js +1 -1
- 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-data-table-title-bar.entry.js +1 -1
- package/dist/esm/ic-data-table.entry.js +86 -10
- package/dist/esm/ic-data-table.entry.js.map +1 -1
- package/dist/esm/ic-date-input.entry.js +13 -11
- package/dist/esm/ic-date-input.entry.js.map +1 -1
- package/dist/esm/ic-date-picker.entry.js +4 -2
- package/dist/esm/ic-date-picker.entry.js.map +1 -1
- package/dist/esm/ic-dialog.entry.js +4 -2
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +72 -8
- package/dist/esm/ic-divider.entry.js.map +1 -1
- package/dist/esm/ic-empty-state_2.entry.js +31 -16
- package/dist/esm/ic-empty-state_2.entry.js.map +1 -1
- package/dist/esm/ic-footer-link-group.entry.js +2 -2
- package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
- package/dist/esm/ic-footer-link.entry.js +2 -2
- package/dist/esm/ic-footer-link.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +2 -2
- package/dist/esm/ic-footer.entry.js.map +1 -1
- package/dist/esm/ic-hero.entry.js +2 -2
- package/dist/esm/ic-hero.entry.js.map +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js +4 -3
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/{collection/components/ic-menu-with-multi/ic-menu.js → esm/ic-input-component-container_3.entry.js} +160 -729
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -0
- package/dist/esm/ic-input-label_2.entry.js +81 -0
- package/dist/esm/ic-input-label_2.entry.js.map +1 -0
- package/dist/esm/ic-link.entry.js +1 -1
- package/dist/esm/ic-menu-group.entry.js +3 -3
- package/dist/esm/ic-menu-group.entry.js.map +1 -1
- package/dist/esm/ic-menu-item.entry.js +11 -11
- package/dist/esm/ic-menu-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-button.entry.js +1 -1
- package/dist/esm/ic-navigation-group.entry.js +5 -4
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +30 -3
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +1 -1
- package/dist/esm/ic-page-header.entry.js +5 -5
- package/dist/esm/ic-page-header.entry.js.map +1 -1
- package/dist/esm/ic-pagination_4.entry.js +191 -62
- package/dist/esm/ic-pagination_4.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +11 -11
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +15 -6
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +31 -22
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +12 -9
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +4 -3
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-status-tag.entry.js +1 -1
- package/dist/esm/ic-step.entry.js +1 -1
- package/dist/esm/ic-stepper.entry.js +1 -1
- package/dist/esm/ic-switch.entry.js +7 -4
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-context.entry.js +2 -1
- package/dist/esm/ic-tab-context.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +1 -1
- package/dist/esm/ic-tab-panel.entry.js +1 -1
- package/dist/esm/ic-tab.entry.js +1 -1
- package/dist/esm/ic-theme.entry.js +1 -1
- package/dist/esm/ic-toast.entry.js +3 -3
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button-group.entry.js +1 -1
- package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button.entry.js +1 -1
- package/dist/esm/ic-top-navigation.entry.js +1 -1
- package/dist/esm/ic-tree-item.entry.js +10 -6
- package/dist/esm/ic-tree-item.entry.js.map +1 -1
- package/dist/esm/ic-tree-view.entry.js +19 -11
- package/dist/esm/ic-tree-view.entry.js.map +1 -1
- package/dist/esm/ic-typography.entry.js +1 -1
- package/dist/esm/index-93509377.js +4 -12
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +6 -2
- package/dist/types/components/ic-data-table/ic-data-table.d.ts +13 -0
- package/dist/types/components/ic-data-table/story-data.d.ts +1 -0
- package/dist/types/components/ic-date-input/ic-date-input.d.ts +4 -0
- package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +4 -0
- package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +15 -6
- package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +11 -6
- package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +10 -4
- package/dist/types/components.d.ts +94 -484
- package/dist/types/utils/helpers.d.ts +1 -1
- package/dist/types/utils/types.d.ts +4 -1
- package/hydrate/index.js +3373 -6380
- package/package.json +3 -3
- package/dist/cjs/helpers-33b42cd6.js.map +0 -1
- package/dist/cjs/helpers-6817cfbb.js.map +0 -1
- package/dist/cjs/ic-input-component-container_4.cjs.entry.js +0 -156
- package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +0 -1
- package/dist/cjs/ic-menu-with-multi.cjs.entry.js +0 -2738
- package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +0 -1
- package/dist/cjs/ic-menu.cjs.entry.js +0 -658
- package/dist/cjs/ic-menu.cjs.entry.js.map +0 -1
- package/dist/cjs/ic-select-with-multi.cjs.entry.js +0 -788
- package/dist/cjs/ic-select-with-multi.cjs.entry.js.map +0 -1
- package/dist/collection/components/ic-menu-with-multi/ic-menu.css +0 -712
- package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +0 -1
- package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js +0 -1057
- package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js.map +0 -1
- package/dist/collection/components/ic-select-with-multi/assets/Check.svg +0 -3
- package/dist/collection/components/ic-select-with-multi/assets/Clear.svg +0 -3
- package/dist/collection/components/ic-select-with-multi/assets/Expand.svg +0 -3
- package/dist/collection/components/ic-select-with-multi/ic-select.css +0 -695
- package/dist/collection/components/ic-select-with-multi/ic-select.js +0 -1520
- package/dist/collection/components/ic-select-with-multi/ic-select.js.map +0 -1
- package/dist/collection/components/ic-select-with-multi/story-data.js +0 -216
- package/dist/collection/components/ic-select-with-multi/story-data.js.map +0 -1
- package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js +0 -1518
- package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js.map +0 -1
- package/dist/components/ic-menu-with-multi.d.ts +0 -11
- package/dist/components/ic-menu-with-multi.js +0 -8
- package/dist/components/ic-menu-with-multi.js.map +0 -1
- package/dist/components/ic-menu3.js +0 -2803
- package/dist/components/ic-menu3.js.map +0 -1
- package/dist/components/ic-select-with-multi.d.ts +0 -11
- package/dist/components/ic-select-with-multi.js +0 -906
- package/dist/components/ic-select-with-multi.js.map +0 -1
- package/dist/core/p-0894cab1.entry.js +0 -2
- package/dist/core/p-0894cab1.entry.js.map +0 -1
- package/dist/core/p-130a05cf.entry.js +0 -2
- package/dist/core/p-130a05cf.entry.js.map +0 -1
- package/dist/core/p-1e2aa8a6.entry.js +0 -2
- package/dist/core/p-1e2aa8a6.entry.js.map +0 -1
- package/dist/core/p-202bc922.entry.js +0 -2
- package/dist/core/p-202bc922.entry.js.map +0 -1
- package/dist/core/p-28323849.entry.js +0 -2
- package/dist/core/p-28323849.entry.js.map +0 -1
- package/dist/core/p-297e99cf.js +0 -2
- package/dist/core/p-297e99cf.js.map +0 -1
- package/dist/core/p-2ff4e283.entry.js +0 -2
- package/dist/core/p-2ff4e283.entry.js.map +0 -1
- package/dist/core/p-30b046b2.entry.js +0 -2
- package/dist/core/p-30b046b2.entry.js.map +0 -1
- package/dist/core/p-3db785f0.entry.js +0 -2
- package/dist/core/p-3db785f0.entry.js.map +0 -1
- package/dist/core/p-42883e4c.entry.js +0 -2
- package/dist/core/p-42883e4c.entry.js.map +0 -1
- package/dist/core/p-42e0f3bd.entry.js +0 -2
- package/dist/core/p-42e0f3bd.entry.js.map +0 -1
- package/dist/core/p-44ee5375.entry.js.map +0 -1
- package/dist/core/p-4e28ef60.entry.js.map +0 -1
- package/dist/core/p-53e00a8a.entry.js +0 -2
- package/dist/core/p-53e00a8a.entry.js.map +0 -1
- package/dist/core/p-59028160.entry.js +0 -2
- package/dist/core/p-59028160.entry.js.map +0 -1
- package/dist/core/p-5b7dfe57.entry.js +0 -2
- package/dist/core/p-5b7dfe57.entry.js.map +0 -1
- package/dist/core/p-603fea14.entry.js +0 -2
- package/dist/core/p-603fea14.entry.js.map +0 -1
- package/dist/core/p-64933069.entry.js +0 -2
- package/dist/core/p-64933069.entry.js.map +0 -1
- package/dist/core/p-7c268030.entry.js +0 -2
- package/dist/core/p-7c268030.entry.js.map +0 -1
- package/dist/core/p-7c78f6c6.entry.js +0 -2
- package/dist/core/p-7c78f6c6.entry.js.map +0 -1
- package/dist/core/p-7c80d79c.entry.js +0 -2
- package/dist/core/p-7e1603cc.entry.js.map +0 -1
- package/dist/core/p-8df49808.entry.js +0 -2
- package/dist/core/p-8df49808.entry.js.map +0 -1
- package/dist/core/p-8f12659d.entry.js +0 -2
- package/dist/core/p-8f12659d.entry.js.map +0 -1
- package/dist/core/p-903ee57e.entry.js +0 -2
- package/dist/core/p-903ee57e.entry.js.map +0 -1
- package/dist/core/p-92e3ccb9.entry.js +0 -2
- package/dist/core/p-92e3ccb9.entry.js.map +0 -1
- package/dist/core/p-9397b15b.js.map +0 -1
- package/dist/core/p-9b54feca.entry.js +0 -2
- package/dist/core/p-9b54feca.entry.js.map +0 -1
- package/dist/core/p-a78cf2cb.entry.js +0 -2
- package/dist/core/p-a78cf2cb.entry.js.map +0 -1
- package/dist/core/p-a9151d0b.entry.js +0 -2
- package/dist/core/p-a9151d0b.entry.js.map +0 -1
- package/dist/core/p-acc76b80.entry.js +0 -2
- package/dist/core/p-acc76b80.entry.js.map +0 -1
- package/dist/core/p-b0751bd9.entry.js.map +0 -1
- package/dist/core/p-c1698936.entry.js +0 -2
- package/dist/core/p-c1698936.entry.js.map +0 -1
- package/dist/core/p-c1e90c85.entry.js +0 -2
- package/dist/core/p-c1e90c85.entry.js.map +0 -1
- package/dist/core/p-cb63e656.entry.js +0 -2
- package/dist/core/p-cb63e656.entry.js.map +0 -1
- package/dist/core/p-d3c0bffb.entry.js +0 -2
- package/dist/core/p-d3c0bffb.entry.js.map +0 -1
- package/dist/core/p-da3e8c54.entry.js +0 -2
- package/dist/core/p-da3e8c54.entry.js.map +0 -1
- package/dist/core/p-ec53b435.entry.js +0 -2
- package/dist/core/p-ec53b435.entry.js.map +0 -1
- package/dist/core/p-f9810621.entry.js +0 -2
- package/dist/core/p-f9810621.entry.js.map +0 -1
- package/dist/core/p-fb7b99dd.entry.js +0 -2
- package/dist/core/p-fb7b99dd.entry.js.map +0 -1
- package/dist/esm/helpers-5bd2012a.js.map +0 -1
- package/dist/esm/helpers-dab8ddfe.js.map +0 -1
- package/dist/esm/ic-input-component-container_4.entry.js +0 -149
- package/dist/esm/ic-input-component-container_4.entry.js.map +0 -1
- package/dist/esm/ic-menu-with-multi.entry.js +0 -2734
- package/dist/esm/ic-menu-with-multi.entry.js.map +0 -1
- package/dist/esm/ic-menu.entry.js +0 -654
- package/dist/esm/ic-menu.entry.js.map +0 -1
- package/dist/esm/ic-select-with-multi.entry.js +0 -784
- package/dist/esm/ic-select-with-multi.entry.js.map +0 -1
- package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +0 -214
- package/dist/types/components/ic-select-with-multi/ic-select.d.ts +0 -259
- package/dist/types/components/ic-select-with-multi/story-data.d.ts +0 -32
- /package/dist/core/{p-c033e7d6.entry.js.map → p-036d251b.entry.js.map} +0 -0
- /package/dist/core/{p-d2e7a256.entry.js.map → p-13d2db9b.entry.js.map} +0 -0
- /package/dist/core/{p-897b8d16.entry.js.map → p-24d03bbd.entry.js.map} +0 -0
- /package/dist/core/{p-bb1252fa.entry.js.map → p-26613dbd.entry.js.map} +0 -0
- /package/dist/core/{p-77a32de5.entry.js.map → p-2a3bd99a.entry.js.map} +0 -0
- /package/dist/core/{p-4dcc37e7.entry.js.map → p-620b758c.entry.js.map} +0 -0
- /package/dist/core/{p-6beffd0e.entry.js.map → p-6727166b.entry.js.map} +0 -0
- /package/dist/core/{p-8ca2e329.entry.js.map → p-6dc00a8f.entry.js.map} +0 -0
- /package/dist/core/{p-d5ca3bcb.entry.js.map → p-7aa6b76e.entry.js.map} +0 -0
- /package/dist/core/{p-e5d99316.entry.js.map → p-7b90f0ae.entry.js.map} +0 -0
- /package/dist/core/{p-50019ede.entry.js.map → p-80b296cd.entry.js.map} +0 -0
- /package/dist/core/{p-eb65e556.entry.js.map → p-82aa8136.entry.js.map} +0 -0
- /package/dist/core/{p-2e49fb22.entry.js.map → p-83b4efe2.entry.js.map} +0 -0
- /package/dist/core/{p-5accf0bb.entry.js.map → p-878df16f.entry.js.map} +0 -0
- /package/dist/core/{p-1fe35de1.entry.js.map → p-8bec76d1.entry.js.map} +0 -0
- /package/dist/core/{p-486d8d43.entry.js.map → p-b3d93bc1.entry.js.map} +0 -0
- /package/dist/core/{p-ed4cde5a.entry.js.map → p-c40c57ee.entry.js.map} +0 -0
- /package/dist/core/{p-0ab10600.entry.js.map → p-cc22644d.entry.js.map} +0 -0
- /package/dist/core/{p-505250cf.entry.js.map → p-d7632baf.entry.js.map} +0 -0
- /package/dist/core/{p-d03374fc.entry.js.map → p-fbb5c8f2.entry.js.map} +0 -0
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icSelectCss","inputIds","Select","this","hasSetDefaultValue","inheritedAttributes","initialOptionsEmpty","inputId","menuId","searchableMenuItemSelected","ungroupedOptions","handleRetry","ev","detail","keyPressed","_a","searchableSelectElement","focus","blurredBecauseButtonPressed","retryButtonClick","icRetryLoad","emit","value","hiddenInputValue","emitIcChange","searchable","multiple","Array","isArray","handleMultipleSelectChange","clearTimeout","debounceIcChange","window","setTimeout","valueToEmit","icChange","currDebounce","emitImmediateIcChange","deduplicateOptions","options","uniqueValues","dedupedOptions","dedupedChildren","forEach","option","children","child","includes","console","warn","label","push","modifiedParent","Object","assign","setOptionsValuesFromLabels","length","map","setUngroupedOptions","event","setTextColor","nativeSelectElement","selectedIndex","className","setMenuChange","open","getLabelFromValue","uniqueOptions","getMultipleOptionsString","selectedValues","selectedLabels","join","getFilteredChildMenuOptions","getFilteredMenuOptions","includeDescriptionsInSearch","searchableSelectInputValue","searchMatchPosition","pressedCharacters","newOption","getValueSortedByOptions","valueArray","valuesFromAllOptions","sort","a","b","indexOf","handleNativeSelectChange","icOptionSelect","handleCustomSelectChange","emptyOptionListText","currValue","inputValueToFilter","getValueFromLabel","icOptionDeselect","ariaActiveDescendant","optionId","slice","valueIndex","splice","handleSelectAllChange","selectAllOptions","select","allEnabledOptions","filter","disabled","allValues","newValue","unselectedValues","handleMenuChange","handleFocusIndicatorDisplay","handleMenuKeyPress","cancelBubble","handleCharacterKeyDown","key","focusIndicator","el","shadowRoot","querySelector","classList","add","remove","handleMouseDown","preventDefault","isExternalFiltering","disableAutoFiltering","handleClick","menu","filteredOptions","hasTimedOut","loading","noOptions","handleClickOpen","handleExpandIconMouseDown","handleClear","stopPropagation","timeoutTimer","icClear","customSelectElement","characterKeyPressTimer","handleFilter","handleNativeSelectKeyDown","handleKeyDown","isArrowKey","handleKeyboardOpen","handleClearButtonFocus","clearButtonFocused","handleClearButtonBlur","retryButton","relatedTarget","isGrouped","newFilteredOptions","menuOptionsFiltered","includeGroupTitlesInSearch","noChildOptionsWhenFiltered","triggerLoading","loadingLabel","timeout","loadingErrorLabel","timedOut","find","handleSearchableSelectInput","target","icInput","debounceAriaLiveUpdate","updateSearchableSelectResultAriaLive","searchableSelectResultsStatusEl","innerText","updateMultiSelectedCountAriaLive","multiSelectSelectedCountEl","selectedCount","getOptionsWithoutGroupTitlesCount","getDefaultValue","setDefaultValue","initialValue","onFocus","icFocus","onBlur","tagName","isSearchableAndNoFocusedInternalElements","from","querySelectorAll","clearButton","icBlur","onTimeoutBlur","handleFormReset","debounce","loadingHandler","watchOptionsHandler","debounceChangedHandler","updateOnChangeDebounce","valueChangedHandler","disconnectedCallback","removeFormResetListener","componentWillLoad","inheritAttributes","IC_INHERITED_ARIA","removeDisabledFalse","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentDidRender","setFocus","debounceAria","render","size","fullWidth","helperText","hideLabel","name","placeholder","readonly","required","showClearButton","validationStatus","validationText","renderHiddenInput","invalid","IcInformationStatus","Error","describedBy","getInputDescribedByText","hasValidationStatus","trim","optionsSelectedCount","h","Host","class","for","ref","anchorEl","isMobileOrTablet","onChange","id","onKeyDown","form","selected","role","autocomplete","onInput","onClick","innerHTML","Clear","variant","appearance","IcThemeForegroundEnum","Light","Dark","onMouseDown","Expand","inputEl","inputLabel","selectOnEnter","onMenuStateChange","onMenuOptionSelect","onMenuOptionSelectAll","onMenuKeyPress","onUngroupedOptionsSet","onRetryButtonClicked","parentEl","activationType","closeOnSelect","ariaLiveMode","status","message"],"sources":["src/components/ic-select-with-multi/ic-select.css?tag=ic-select-with-multi&encapsulation=shadow","src/components/ic-select-with-multi/ic-select.tsx"],"sourcesContent":["@import \"../../../dist/core/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 --menu-max-height: 100px;\n}\n\n:host(.ic-select-full-width) {\n width: 100%;\n}\n\nic-input-component-container:hover {\n --border-color: var(--ic-action-dark-hover);\n}\n\nic-input-component-container:active {\n --border-color: var(--ic-action-dark-pressed);\n\n color: var(--ic-action-dark-pressed);\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-architectural-400);\n\n color: var(--ic-action-dark);\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) !important;\n}\n\nselect {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-architectural-white);\n color: var(--ic-color-text-primary);\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: url(\"data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>\");\n}\n\nselect option,\n.select-option-selected {\n color: var(--ic-color-text-primary);\n}\n\nselect:disabled {\n color: var(--ic-architectural-200);\n background-image: url(\"data:image/svg+xml;utf8,<svg fill='grey' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>\");\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}\n\n.select-input:focus {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(:not(.ic-select-disabled))\n ic-input-component-container:hover\n .select-input {\n background-color: var(--ic-architectural-white);\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}\n\n.value-text.with-clear-button {\n padding-right: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n.value-text p {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin-bottom: 0 !important;\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-action-dark);\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-architectural-200);\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 0.375rem;\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-action-dark);\n}\n\n.expand-icon-open,\n:host(.ic-select-searchable) .expand-icon-open {\n transform: rotateX(180deg);\n}\n\n:host(.ic-select-disabled) .value-text,\n.placeholder {\n color: var(--ic-color-text-tertiary);\n}\n\n.select-input-end {\n display: flex;\n align-items: center;\n}\n\n.clear-button-container {\n display: flex;\n}\n\n.divider {\n width: var(--ic-space-1px);\n background-color: var(--ic-architectural-400);\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 position: absolute;\n right: calc(var(--ic-space-xl) + var(--ic-space-xxs));\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 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 fill: white;\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","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n h,\n State,\n Watch,\n} from \"@stencil/core\";\nimport { IcOptionSelectEventDetail } from \"@ukic/web-components/dist/types/components\";\nimport { IcMenuOption } from \"@ukic/web-components/dist/types/utils/types\";\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} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcSearchMatchPositions,\n IcThemeForegroundEnum,\n IcValueEventDetail,\n IcSizes,\n} from \"../../utils/types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\n\nlet inputIds = 0;\n\n@Component({\n tag: \"ic-select-with-multi\",\n styleUrl: \"ic-select.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Select {\n private anchorEl: HTMLElement;\n private blurredBecauseButtonPressed: boolean;\n private characterKeyPressTimer: number;\n private clearButton: HTMLIcButtonElement;\n private customSelectElement: HTMLButtonElement;\n private debounceAria: number;\n private hasSetDefaultValue = false;\n private hasTimedOut: boolean;\n private inheritedAttributes: { [k: string]: unknown } = {};\n private initialOptionsEmpty = false;\n private inputId = `ic-select-input-${inputIds++}`;\n private menu: HTMLIcMenuWithMultiElement;\n private menuId = `${this.inputId}-menu`;\n private nativeSelectElement: HTMLSelectElement;\n private retryButtonClick: boolean;\n private searchableMenuItemSelected: boolean = false;\n private searchableSelectElement: HTMLInputElement;\n private timeoutTimer: number;\n private ungroupedOptions: IcMenuOption[] = [];\n\n @Element() el!: HTMLIcSelectWithMultiElement;\n\n @State() ariaActiveDescendant: string;\n @State() clearButtonFocused: boolean = false;\n @State() debounceIcChange: number;\n @State() hiddenInputValue: string;\n @State() noOptions: IcMenuOption[] = null;\n @State() open: boolean = false;\n @State() pressedCharacters: string = \"\";\n @State() searchableSelectInputValue: string = null;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled?: boolean = false;\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?: boolean = 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 element will fill the width of the container. This prop should only be used with searchable select and will only be applied if searchable is true.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: 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?: boolean = 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?: boolean = 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?: boolean = 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?: string = \"Loading Error\";\n\n /**\n * The message displayed whilst the options are being loaded externally.\n */\n @Prop() loadingLabel?: string = \"Loading...\";\n\n /**\n * If `true`, multiple options can be selected.\n */\n @Prop() multiple?: boolean = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder?: string = \"Select an option\";\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly?: boolean = false;\n\n /**\n * If `true`, the select will require a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * If `true`, a searchable variant of the select will be displayed which can be typed in to filter options.\n */\n @Prop() searchable?: boolean = 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.\n */\n @Prop() selectOnEnter?: boolean = 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?: boolean = 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 * 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?: string = \"\";\n\n /**\n * If `true`, the loading state will be triggered when fetching options asynchronously.\n */\n @Prop({ mutable: true }) loading?: boolean = false;\n\n @Watch(\"loading\")\n loadingHandler(newValue: boolean): void {\n newValue && this.triggerLoading();\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\n @Watch(\"options\")\n watchOptionsHandler(): void {\n if (!this.hasTimedOut && this.options !== this.noOptions) {\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n if (this.isExternalFiltering()) {\n // When searchable select\n if (this.options.length > 0) {\n this.setOptionsValuesFromLabels();\n this.noOptions = null;\n this.uniqueOptions = this.deduplicateOptions(this.options);\n this.filteredOptions = this.uniqueOptions;\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n this.filteredOptions = this.noOptions;\n }\n this.updateSearchableSelectResultAriaLive();\n this.setDefaultValue();\n } else {\n this.setOptionsValuesFromLabels();\n this.uniqueOptions = this.deduplicateOptions(this.options);\n this.filteredOptions = this.uniqueOptions;\n if (this.initialOptionsEmpty) {\n this.setDefaultValue();\n this.initialOptionsEmpty = false;\n }\n }\n } else {\n if (!this.searchable) this.options = this.noOptions;\n }\n }\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce?: number = 0;\n @State() currDebounce = this.debounce;\n\n @Watch(\"debounce\")\n debounceChangedHandler(newValue: number): void {\n this.updateOnChangeDebounce(newValue);\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[];\n @State() initialValue = this.value;\n @State() inputValueToFilter = this.value as string;\n @State() currValue = this.value;\n\n @Watch(\"value\")\n valueChangedHandler(): void {\n if (this.value !== this.currValue) {\n if (this.value && this.multiple) {\n this.currValue = this.getValueSortedByOptions(this.value as string[]);\n this.updateMultiSelectedCountAriaLive();\n } else {\n this.currValue = this.value;\n }\n }\n\n if (this.searchable) {\n this.searchableSelectInputValue =\n this.getLabelFromValue(this.currValue as string) ||\n (this.currValue as string);\n }\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<IcValueEventDetail>;\n\n /**\n * Emitted when the clear button is clicked.\n */\n @Event() icClear!: 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<IcValueEventDetail>;\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<IcValueEventDetail>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, [\n ...IC_INHERITED_ARIA,\n \"tabindex\",\n \"title\",\n ]);\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 this.hiddenInputValue = this.searchable && (this.currValue as string);\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 private handleRetry = (ev: CustomEvent<IcValueEventDetail>) => {\n if (ev.detail.keyPressed) this.searchableSelectElement?.focus();\n this.blurredBecauseButtonPressed = true;\n this.retryButtonClick = true;\n this.hasSetDefaultValue = true;\n this.icRetryLoad.emit({ value: this.hiddenInputValue });\n };\n\n private updateOnChangeDebounce(newValue: number) {\n if (this.currDebounce !== newValue) {\n this.currDebounce = newValue;\n }\n }\n\n private emitIcChange = (value: string | string[] | null) => {\n if (!this.searchable) {\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 this.handleMultipleSelectChange(value as string);\n } else {\n this.value = value;\n }\n }\n\n clearTimeout(this.debounceIcChange);\n this.debounceIcChange = window.setTimeout(() => {\n const valueToEmit = this.multiple ? this.value : value;\n this.icChange.emit({ value: valueToEmit });\n }, this.currDebounce);\n };\n\n private emitImmediateIcChange = (value: string) => {\n this.value = value;\n clearTimeout(this.debounceIcChange);\n this.icChange.emit({ value });\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[]): IcMenuOption[] => {\n const uniqueValues: string[] = [];\n const dedupedOptions: IcMenuOption[] = [];\n let dedupedChildren: IcMenuOption[];\n\n options.forEach((option: IcMenuOption) => {\n if (option.children) {\n //If an option has children, we will loop through them\n dedupedChildren = [];\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 const modifiedParent: IcMenuOption = {\n ...option,\n children: dedupedChildren,\n };\n dedupedOptions.push(modifiedParent);\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 = (): void => {\n if (this.options.length > 0 && this.options.map) {\n this.options.map((option) => {\n if (!option.value) {\n option.value = option.label;\n }\n });\n }\n };\n\n private setUngroupedOptions = (event: CustomEvent): void => {\n this.ungroupedOptions = event.detail.options;\n };\n\n private setTextColor = (): void => {\n if (this.nativeSelectElement.selectedIndex === 0) {\n this.nativeSelectElement.className = \"placeholder\";\n } else {\n this.nativeSelectElement.className = \"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): string | undefined => {\n return getLabelFromValue(value, this.uniqueOptions);\n };\n\n private getMultipleOptionsString = (selectedValues: string[]) => {\n const selectedLabels = selectedValues?.map((value) =>\n this.getLabelFromValue(value)\n );\n return selectedLabels?.join(\", \");\n };\n\n private getFilteredChildMenuOptions = (option: IcMenuOption) => {\n let children = option.children;\n\n if (this.searchable) {\n children = getFilteredMenuOptions(\n option.children,\n this.includeDescriptionsInSearch,\n this.searchableSelectInputValue,\n this.searchMatchPosition\n );\n } else {\n children = getFilteredMenuOptions(\n option.children,\n false,\n this.pressedCharacters,\n \"start\"\n );\n }\n\n const newOption = { ...option };\n newOption.children = children;\n return newOption;\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 = (): void => {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.emitImmediateIcChange(this.nativeSelectElement.value);\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 = (event: CustomEvent): void => {\n const value = event.detail.value;\n\n if (this.searchable && event.detail.label === this.emptyOptionListText) {\n this.searchableSelectElement.focus();\n return;\n }\n\n if (this.searchable) {\n this.value = value;\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 = this.getLabelFromValue(\n this.value as string\n );\n }\n\n this.inputValueToFilter = null;\n this.hiddenInputValue = this.getValueFromLabel(\n this.searchableSelectInputValue\n );\n }\n\n if (this.multiple && this.value?.includes(value)) {\n this.icOptionDeselect.emit({ value });\n } else {\n this.icOptionSelect.emit({ value });\n }\n\n this.ariaActiveDescendant = event.detail.optionId;\n this.emitIcChange(value);\n };\n\n // Update selected options - adds / removes them, in order of option list\n // Create new array if value prop is undefined\n private handleMultipleSelectChange = (value: string) => {\n if (this.value) {\n let valueArray = (this.value as string[]).slice();\n\n if (this.value.includes(value)) {\n const valueIndex = valueArray.indexOf(value);\n valueArray.splice(valueIndex, 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 const valueArray = [];\n valueArray.push(value);\n this.value = valueArray;\n }\n };\n\n private handleSelectAllChange = (event: CustomEvent) => {\n const selectAllOptions = event.detail.select;\n const allEnabledOptions = this.ungroupedOptions.filter(\n (option) => !option.disabled\n );\n const allValues = allEnabledOptions.map((option) => option.value);\n let newValue: string[];\n\n if (selectAllOptions) {\n let unselectedValues;\n\n // Only emit icOptionSelect for all values that are newly selected\n if (this.value) {\n unselectedValues = allValues.filter(\n (value) => this.value && !(this.value as string[]).includes(value)\n );\n } else {\n unselectedValues = allValues;\n }\n\n unselectedValues.forEach((value) => this.icOptionSelect.emit({ value }));\n newValue = allValues;\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 newValue = null;\n }\n\n this.emitIcChange(newValue);\n };\n\n private handleMenuChange = (event: CustomEvent): void => {\n this.open = event.detail.open;\n this.pressedCharacters = \"\";\n\n 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 = this.el.shadowRoot.querySelector(\".focus-indicator\");\n\n if (this.open) {\n focusIndicator.classList.add(\"focus-indicator-enabled\");\n } else {\n focusIndicator.classList.remove(\"focus-indicator-enabled\");\n }\n };\n\n private handleMouseDown = (event: Event): void => {\n if (!this.open) {\n event.preventDefault();\n }\n };\n\n private isExternalFiltering = (): boolean =>\n this.searchable && this.disableAutoFiltering;\n\n private handleClick = (event: MouseEvent): void => {\n if (!this.open) {\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): void => {\n event.stopPropagation();\n this.hasTimedOut = false;\n clearTimeout(this.timeoutTimer);\n this.noOptions = null;\n this.emitImmediateIcChange(null);\n this.icClear.emit();\n\n if (this.searchable) {\n this.searchableSelectElement.value = null;\n this.searchableSelectInputValue = null;\n this.filteredOptions = this.uniqueOptions;\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 (\n this.open &&\n key === \" \" &&\n this.pressedCharacters.length === 0 &&\n !this.hasTimedOut &&\n !this.loading\n ) {\n this.setMenuChange(false);\n }\n\n if (key.length === 1 && !this.searchable) {\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.emitImmediateIcChange(this.filteredOptions[0].value);\n }\n }\n } else {\n this.pressedCharacters = \"\";\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): void => {\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.open) {\n if (this.isExternalFiltering() && (event.key === \"Enter\" || isArrowKey)) {\n this.menu.options = this.filteredOptions;\n } else {\n if (!this.hasTimedOut) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\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\n this.menu.handleKeyboardOpen(event);\n }\n if (!this.multiple) {\n this.handleCharacterKeyDown(event.key);\n }\n }\n }\n };\n\n private handleClearButtonFocus = (): void => {\n this.clearButtonFocused = true;\n };\n\n private handleClearButtonBlur = (ev: FocusEvent): void => {\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n if (\n !(\n this.searchableSelectElement &&\n ev.relatedTarget === this.searchableSelectElement\n ) &&\n !(retryButton && ev.relatedTarget === retryButton)\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n }\n this.clearButtonFocused = false;\n };\n\n private handleFilter = (): void => {\n const options = this.deduplicateOptions(\n this.searchable ? [...this.uniqueOptions] : this.ungroupedOptions\n );\n\n let isGrouped = false;\n let newFilteredOptions: IcMenuOption[] = [];\n\n options.map((option) => {\n if (option.children) isGrouped = true;\n });\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 options.map((option) => {\n if (this.includeGroupTitlesInSearch) {\n if (menuOptionsFiltered.indexOf(option) !== -1) {\n newFilteredOptions.push(option);\n } else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n } else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n });\n }\n\n let noChildOptionsWhenFiltered = false;\n\n if (isGrouped) {\n noChildOptionsWhenFiltered = true;\n newFilteredOptions.map((option) => {\n if (option.children.length > 0) {\n noChildOptionsWhenFiltered = false;\n }\n });\n }\n\n if (newFilteredOptions.length > 0 && !noChildOptionsWhenFiltered) {\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): string | undefined => {\n return this.uniqueOptions.find((option) => option.label === label)?.value;\n };\n\n private handleSearchableSelectInput = (event: Event): void => {\n this.searchableSelectInputValue = (event.target as HTMLInputElement).value;\n this.icInput.emit({ value: this.searchableSelectInputValue });\n this.emitIcChange(this.searchableSelectInputValue);\n\n this.hiddenInputValue = this.searchableSelectInputValue;\n this.inputValueToFilter = this.searchableSelectInputValue;\n this.setMenuChange(true);\n\n if (!this.disableAutoFiltering) {\n this.handleFilter();\n this.debounceAriaLiveUpdate();\n }\n };\n\n private updateSearchableSelectResultAriaLive = (): void => {\n const searchableSelectResultsStatusEl = this.el.shadowRoot.querySelector(\n \".searchable-select-results-status\"\n ) as HTMLDivElement;\n\n if (searchableSelectResultsStatusEl) {\n if (this.noOptions !== null) {\n searchableSelectResultsStatusEl.innerText = this.emptyOptionListText;\n } else {\n searchableSelectResultsStatusEl.innerText = \"\";\n }\n }\n };\n\n private debounceAriaLiveUpdate() {\n clearTimeout(this.debounceAria);\n\n window.setTimeout(() => {\n this.updateSearchableSelectResultAriaLive();\n }, 800);\n }\n\n private updateMultiSelectedCountAriaLive = (): void => {\n const multiSelectSelectedCountEl = this.el.shadowRoot.querySelector(\n \".multi-select-selected-count\"\n ) as HTMLDivElement;\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): string | null =>\n this.getLabelFromValue(value) || value || null;\n\n private setDefaultValue = (): void => {\n if (!this.hasSetDefaultValue && this.currValue) {\n this.searchableSelectInputValue =\n this.searchable && this.getDefaultValue(this.currValue as string);\n\n this.initialValue = this.currValue;\n this.hasSetDefaultValue = true;\n }\n };\n\n private onFocus = (): void => {\n this.icFocus.emit();\n };\n\n private onBlur = (event: FocusEvent): void => {\n const target = event.relatedTarget as HTMLElement;\n if (\n target !== null &&\n target.tagName === \"UL\" &&\n target.className.includes(\"menu\")\n ) {\n return;\n }\n\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n const isSearchableAndNoFocusedInternalElements =\n this.searchable &&\n event.relatedTarget !== this.menu &&\n !Array.from(this.menu.querySelectorAll(\"[role='option']\")).includes(\n event.relatedTarget as Element\n ) &&\n !(this.clearButton && event.relatedTarget === this.clearButton) &&\n !(retryButton && event.relatedTarget === retryButton);\n\n if (isSearchableAndNoFocusedInternalElements) {\n if (!this.retryButtonClick) {\n this.setMenuChange(false);\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 = (): void => {\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 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 validationStatus,\n validationText,\n currValue,\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 true,\n this.el,\n name,\n this.searchable ? this.hiddenInputValue : (currValue as string),\n disabled\n );\n\n const invalid =\n validationStatus === IcInformationStatus.Error ? \"true\" : \"false\";\n\n const describedBy = getInputDescribedByText(\n this.inputId,\n helperText !== \"\",\n hasValidationStatus(this.validationStatus, this.disabled)\n ).trim();\n\n const optionsSelectedCount = `${\n currValue?.length\n } of ${getOptionsWithoutGroupTitlesCount(this.options)} selected`;\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 }}\n onBlur={this.onBlur}\n >\n <ic-input-container readonly={readonly}>\n {!hideLabel && (\n <ic-input-label\n for={this.inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n readonly={readonly}\n ></ic-input-label>\n )}\n <ic-input-component-container\n ref={(el: HTMLElement) => (this.anchorEl = el)}\n class={{ \"menu-open\": this.open }}\n size={size}\n fullWidth={fullWidth}\n disabled={disabled}\n readonly={readonly}\n validationStatus={validationStatus}\n >\n {readonly ? (\n <ic-typography>\n <p>\n {multiple\n ? this.getMultipleOptionsString(currValue as string[])\n : this.getLabelFromValue(currValue as string)}\n </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={this.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={this.form}\n {...this.inheritedAttributes}\n >\n <option value=\"\" selected disabled={!showClearButton}>\n {placeholder}\n </option>\n {options.map((option) => {\n if (option.children) {\n return (\n <optgroup label={option.label}>\n {option.children.map((option) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === currValue}\n >\n {option.label}\n </option>\n ))}\n </optgroup>\n );\n } else {\n return (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === currValue}\n >\n {option.label}\n </option>\n );\n }\n })}\n </select>\n ) : searchable ? (\n <div class=\"searchable-select-container\">\n <input\n class={{\n \"select-input\": true,\n \"with-clear-button\": !!this.searchableSelectInputValue,\n }}\n role=\"combobox\"\n autocomplete=\"off\"\n aria-label={label}\n aria-describedby={describedBy}\n aria-activedescendant={this.ariaActiveDescendant}\n aria-autocomplete=\"list\"\n aria-expanded={this.open ? \"true\" : \"false\"}\n aria-invalid={invalid}\n aria-required={required ? \"true\" : \"false\"}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={this.inputId}\n value={this.searchableSelectInputValue}\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={this.form}\n ></input>\n {this.searchableSelectInputValue &&\n (showClearButton || searchable) && (\n <div class=\"clear-button-container\">\n <ic-button\n id=\"clear-button\"\n ref={(el: HTMLIcButtonElement) =>\n (this.clearButton = el)\n }\n aria-label={\n this.searchableSelectInputValue && currValue === null\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\"\n appearance={\n this.clearButtonFocused\n ? IcThemeForegroundEnum.Light\n : IcThemeForegroundEnum.Dark\n }\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\": this.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 class=\"select-input\"\n ref={(el) => (this.customSelectElement = el)}\n id={this.inputId}\n aria-label={`${label}, ${\n (multiple && currValue\n ? `${optionsSelectedCount}, ${this.getMultipleOptionsString(\n currValue as string[]\n )}`\n : this.getLabelFromValue(currValue as string)) ||\n placeholder\n }${required ? \", required\" : \"\"}`}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-haspopup=\"listbox\"\n aria-expanded={this.open ? \"true\" : \"false\"}\n aria-owns={menuId}\n aria-controls={menuId}\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\": currValue && showClearButton,\n placeholder:\n !this.value || (multiple && this.value.length < 1),\n }}\n >\n <p>\n {(multiple\n ? this.getMultipleOptionsString(currValue as string[])\n : this.getLabelFromValue(currValue as string)) ||\n placeholder}\n </p>\n </ic-typography>\n <div class=\"select-input-end\">\n {currValue && showClearButton && (\n <div class=\"divider\"></div>\n )}\n <span\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n </div>\n </button>\n {currValue && showClearButton && (\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\"\n appearance={\n this.clearButtonFocused\n ? IcThemeForegroundEnum.Light\n : IcThemeForegroundEnum.Dark\n }\n ></ic-button>\n )}\n </div>\n )}\n </ic-input-component-container>\n {(!isMobileOrTablet() || multiple) && (\n <ic-menu-with-multi\n class={{\n \"no-results\":\n this.loading ||\n this.hasTimedOut ||\n (this.noOptions !== null &&\n this.noOptions[0] &&\n this.noOptions[0].label === this.emptyOptionListText),\n }}\n ref={(el: HTMLIcMenuWithMultiElement) => (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={this.open}\n options={searchable ? this.filteredOptions : this.uniqueOptions}\n value={multiple ? (currValue as string[]) : (currValue as string)}\n fullWidth={fullWidth}\n selectOnEnter={this.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 this.searchable || multiple || this.selectOnEnter\n ? \"manual\"\n : \"automatic\"\n }\n closeOnSelect={!multiple}\n ></ic-menu-with-multi>\n )}\n {this.multiple && (\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"multi-select-selected-count\"\n ></div>\n )}\n {hasValidationStatus(this.validationStatus, this.disabled) && (\n <ic-input-validation\n class={{ \"menu-open\": this.open }}\n ariaLiveMode=\"polite\"\n status={validationStatus}\n message={validationText}\n for={this.inputId}\n ></ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,c as i,h as e,H as o,g as s}from"./p-8455d1bb.js";import{d as r,r as a,a as n,i as c}from"./p-9397b15b.js";import{C as l}from"./p-0aa9ce8b.js";import{C as u}from"./p-170ddfc2.js";const d='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}li{list-style:none;padding:0}:host ::part(button){color:var(--ic-color-text-primary);padding:calc(var(--ic-space-xxxs) / 2);display:flex;align-items:flex-start;gap:var(--ic-space-xs);border-radius:0;min-height:2.5rem;height:auto}.focus-border{display:flex;align-items:flex-start;gap:var(--ic-space-xs);border-radius:var(--ic-border-radius);margin:calc(var(--ic-space-xxxs) / 2);padding:var(--ic-space-xxs);border:var(--ic-space-xxxs) dashed transparent;--icon-height:auto}:host(.ic-menu-item-disabled) ::part(button){color:var(--ic-architectural-200) !important;--ic-typography-color:var(--ic-architectural-200) !important;pointer-events:none}:host(.ic-menu-item-disabled) .menu-item-label,:host(.ic-menu-item-disabled) .shortcut,:host(.ic-menu-item-disabled) .menu-item-description{--ic-typography-color:var(--ic-architectural-200) !important}:host([variant="destructive"]) ::part(button){color:var(--ic-action-destructive);--ic-typography-color:var(--ic-action-destructive)}:host ::part(button):hover{background-color:var(--ic-action-dark-bg-hover)}:host ::part(button):focus-visible,:host ::part(button):focus{color:var(--ic-color-white-text);--ic-typography-color:var(--ic-color-white-text);background-color:var(--ic-color-focus-inner);box-shadow:none}:host(.ic-menu-item-disabled) ::part(button):focus-visible,:host(.ic-menu-item-disabled) ::part(button):focus{color:var(--ic-theme-lighten-40) !important;--ic-typography-color:var(--ic-theme-lighten-40) !important}:host([variant="destructive"]) ::part(button):focus-visible,:host([variant="destructive"]) ::part(button):focus{background-color:var(--ic-action-destructive)}ic-button:focus-within .menu-item-label,ic-button:focus-within .shortcut,ic-button:focus-within .menu-item-description{--ic-typography-color:var(--ic-color-white-text)}:host(.ic-menu-item-disabled) ic-button:focus-within .focus-border{border-color:var(--ic-architectural-white)}:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-label,:host(.ic-menu-item-disabled) ic-button:focus-within .shortcut,:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-description{--ic-typography-color:var(--ic-theme-lighten-40) !important}:host ::part(button):active{background-color:var(--ic-action-dark-bg-pressed);color:var(--ic-color-text-primary) !important;--ic-typography-color:var(--ic-color-text-primary) !important}:host([variant="destructive"]) ::part(button):active{background-color:var(--ic-action-dark-bg-pressed);color:var(--ic-action-destructive) !important;--ic-typography-color:var(--ic-action-destructive) !important}.menu-item-info{display:flex;flex-direction:column;flex:1;align-items:baseline;white-space:pre-line;text-align:left}.menu-labels{display:flex;align-items:baseline;gap:var(--ic-space-xs)}.menu-item-description{--ic-typography-color:var(--ic-color-text-secondary)}.shortcut{--ic-typography-color:var(--ic-color-text-tertiary);display:flex;flex:min-content}:host([variant="destructive"]) .menu-item-label{text-transform:uppercase;font-weight:600;letter-spacing:0.025em}ic-button:active .menu-item-label{--ic-typography-color:var(--ic-color-text-primary)}ic-button:active .menu-item-description{--ic-typography-color:var(--ic-color-text-secondary)}ic-button:active .shortcut{--ic-typography-color:var(--ic-color-text-tertiary)}:host([variant="destructive"]) ic-button:active .menu-item-label{--ic-typography-color:var(--ic-action-destructive) !important}.icon,.check-icon,.submenu-icon,.icon ::slotted(svg),.check-icon svg,.submenu-icon svg{width:var(--ic-space-lg);height:var(--ic-space-lg)}.check-icon.hide{visibility:hidden}@media (forced-colors: active){:host ::part(button){border:canvas}:host ::part(button):focus-visible{outline:var(--ic-space-xxxs) solid transparent}.focus-border{border-color:canvas}:host(.ic-menu-item-disabled) ic-button:focus-within .focus-border{border-color:GrayText}:host(.ic-menu-item-disabled) .menu-item-info,:host(.ic-menu-item-disabled) .menu-item-label,:host(.ic-menu-item-disabled) .shortcut,:host(.ic-menu-item-disabled) .menu-item-description,:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-info,:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-label,:host(.ic-menu-item-disabled) ic-button:focus-within .shortcut,:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-description{--ic-typography-color:GrayText !important}:host(.ic-menu-item-disabled) ::part(button):focus-visible,:host(.ic-menu-item-disabled) ::part(button):focus{outline-color:GrayText !important}}';const h=class{constructor(e){t(this,e);this.childBlur=i(this,"childBlur",7);this.handleMenuItemClick=i(this,"handleMenuItemClick",7);this.triggerPopoverMenuInstance=i(this,"triggerPopoverMenuInstance",7);this.handleClick=t=>{if(r(this.submenuTriggerFor)){this.triggerPopoverMenuInstance.emit()}else if(this.variant==="toggle"){t.preventDefault();this.toggleChecked=!this.toggleChecked}this.handleMenuItemClick.emit({label:this.label,hasSubMenu:!!this.el.submenuTriggerFor})};this.getMenuItemAriaLabel=()=>{let t=this.label;if(r(this.description)){t=`${t}, ${this.description}`}if(r(this.keyboardShortcut)){t=`${t}, ${this.keyboardShortcut}`}if(this.variant==="destructive"){t=`${t}, destructive`}if(r(this.submenuTriggerFor)){t=`${t}, triggers submenu`}if(this.el.classList.contains("ic-popover-submenu-back-button")){t="Go back to parent menu"}const i=this.el.parentElement;if(i.tagName==="IC-MENU-GROUP"&&i.label){return`${t}, ${i.label} menu group`}else{return t}};this.toggleChecked=false;this.description=undefined;this.disabled=false;this.href=undefined;this.hreflang=undefined;this.keyboardShortcut=undefined;this.label=undefined;this.referrerpolicy=undefined;this.rel=undefined;this.submenuTriggerFor=undefined;this.target=undefined;this.variant="default"}componentWillLoad(){if(r(this.submenuTriggerFor)&&this.variant!=="default"){this.variant="default"}a(this.disabled,this.el)}componentDidLoad(){n([{prop:this.label,propName:"label"}],"Menu Item")}handleHostClick(t){if(this.disabled){t.stopImmediatePropagation()}}render(){const t=()=>e("div",{class:"menu-item-info"},e("div",{class:"menu-labels"},e("ic-typography",{class:"menu-item-label"},this.label),this.keyboardShortcut&&e("ic-typography",{variant:"caption",class:"shortcut"},this.keyboardShortcut)),this.description&&e("ic-typography",{class:"menu-item-description",variant:"caption"},this.description));return e(o,{class:{["ic-menu-item-disabled"]:this.disabled}},e("li",{role:this.variant==="toggle"?"menuitemcheckbox":"menuitem","aria-disabled":`${this.disabled}`,"aria-checked":this.variant==="toggle"?this.toggleChecked:undefined},e("ic-button",{fullWidth:true,variant:"tertiary",onClick:this.handleClick,href:r(this.href),hreflang:r(this.hreflang),target:r(this.target),rel:r(this.rel),referrerpolicy:this.referrerpolicy!==undefined?this.referrerpolicy:null,"aria-disabled":`${this.disabled}`,"aria-label":this.getMenuItemAriaLabel(),ariaControlsId:r(this.submenuTriggerFor)?`ic-popover-submenu-${this.submenuTriggerFor}`:false,"aria-haspopup":r(this.submenuTriggerFor)||this.el.classList.contains("ic-popover-submenu-back-button")?"menu":false,ariaOwnsId:r(this.submenuTriggerFor)?`ic-popover-submenu-${this.submenuTriggerFor}`:false},e("div",{class:"focus-border"},c(this.el,"icon")&&e("span",{class:"icon"},e("slot",{name:"icon"})),e(t,null),this.variant==="toggle"&&e("span",{class:{["check-icon"]:true,["hide"]:!this.toggleChecked},"aria-hidden":"true",innerHTML:l}),r(this.submenuTriggerFor)&&e("span",{class:{["submenu-icon"]:true},"aria-hidden":"true",innerHTML:u})))))}static get delegatesFocus(){return true}get el(){return s(this)}};h.style=d;export{h as ic_menu_item};
|
2
|
-
//# sourceMappingURL=p-92e3ccb9.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icMenuItemCss","MenuItem","constructor","hostRef","this","handleClick","e","isPropDefined","submenuTriggerFor","triggerPopoverMenuInstance","emit","variant","preventDefault","toggleChecked","handleMenuItemClick","label","hasSubMenu","el","getMenuItemAriaLabel","ariaLabel","description","keyboardShortcut","classList","contains","parentEl","parentElement","tagName","undefined","disabled","href","hreflang","referrerpolicy","rel","target","componentWillLoad","removeDisabledFalse","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","handleHostClick","stopImmediatePropagation","render","MenuItemInformation","h","class","Host","role","fullWidth","onClick","ariaControlsId","ariaOwnsId","isSlotUsed","name","innerHTML","Check","Chevron","delegatesFocus"],"sources":["../web-components/dist/collection/components/ic-menu-item/ic-menu-item.css?tag=ic-menu-item&encapsulation=shadow","../web-components/dist/collection/components/ic-menu-item/ic-menu-item.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\nli {\n list-style: none;\n padding: 0;\n}\n\n:host ::part(button) {\n color: var(--ic-color-text-primary);\n padding: calc(var(--ic-space-xxxs) / 2);\n display: flex;\n align-items: flex-start;\n gap: var(--ic-space-xs);\n border-radius: 0;\n min-height: 2.5rem;\n height: auto;\n}\n\n.focus-border {\n display: flex;\n align-items: flex-start;\n gap: var(--ic-space-xs);\n border-radius: var(--ic-border-radius);\n margin: calc(var(--ic-space-xxxs) / 2);\n padding: var(--ic-space-xxs);\n border: var(--ic-space-xxxs) dashed transparent;\n\n --icon-height: auto;\n}\n\n:host(.ic-menu-item-disabled) ::part(button) {\n color: var(--ic-architectural-200) !important;\n\n --ic-typography-color: var(--ic-architectural-200) !important;\n\n pointer-events: none;\n}\n\n:host(.ic-menu-item-disabled) .menu-item-label,\n:host(.ic-menu-item-disabled) .shortcut,\n:host(.ic-menu-item-disabled) .menu-item-description {\n --ic-typography-color: var(--ic-architectural-200) !important;\n}\n\n:host([variant=\"destructive\"]) ::part(button) {\n color: var(--ic-action-destructive);\n\n --ic-typography-color: var(--ic-action-destructive);\n}\n\n:host ::part(button):hover {\n background-color: var(--ic-action-dark-bg-hover);\n}\n\n:host ::part(button):focus-visible,\n:host ::part(button):focus {\n color: var(--ic-color-white-text);\n\n --ic-typography-color: var(--ic-color-white-text);\n\n background-color: var(--ic-color-focus-inner);\n box-shadow: none;\n}\n\n:host(.ic-menu-item-disabled) ::part(button):focus-visible,\n:host(.ic-menu-item-disabled) ::part(button):focus {\n color: var(--ic-theme-lighten-40) !important;\n\n --ic-typography-color: var(--ic-theme-lighten-40) !important;\n}\n\n:host([variant=\"destructive\"]) ::part(button):focus-visible,\n:host([variant=\"destructive\"]) ::part(button):focus {\n background-color: var(--ic-action-destructive);\n}\n\nic-button:focus-within .menu-item-label,\nic-button:focus-within .shortcut,\nic-button:focus-within .menu-item-description {\n --ic-typography-color: var(--ic-color-white-text);\n}\n\n:host(.ic-menu-item-disabled) ic-button:focus-within .focus-border {\n border-color: var(--ic-architectural-white);\n}\n\n:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-label,\n:host(.ic-menu-item-disabled) ic-button:focus-within .shortcut,\n:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-description {\n --ic-typography-color: var(--ic-theme-lighten-40) !important;\n}\n\n:host ::part(button):active {\n background-color: var(--ic-action-dark-bg-pressed);\n color: var(--ic-color-text-primary) !important;\n\n --ic-typography-color: var(--ic-color-text-primary) !important;\n}\n\n:host([variant=\"destructive\"]) ::part(button):active {\n background-color: var(--ic-action-dark-bg-pressed);\n color: var(--ic-action-destructive) !important;\n\n --ic-typography-color: var(--ic-action-destructive) !important;\n}\n\n.menu-item-info {\n display: flex;\n flex-direction: column;\n flex: 1;\n align-items: baseline;\n white-space: pre-line;\n text-align: left;\n}\n\n.menu-labels {\n display: flex;\n align-items: baseline;\n gap: var(--ic-space-xs);\n}\n\n.menu-item-description {\n --ic-typography-color: var(--ic-color-text-secondary);\n}\n\n.shortcut {\n --ic-typography-color: var(--ic-color-text-tertiary);\n\n display: flex;\n flex: min-content;\n}\n\n:host([variant=\"destructive\"]) .menu-item-label {\n text-transform: uppercase;\n font-weight: 600;\n letter-spacing: 0.025em;\n}\n\nic-button:active .menu-item-label {\n --ic-typography-color: var(--ic-color-text-primary);\n}\n\nic-button:active .menu-item-description {\n --ic-typography-color: var(--ic-color-text-secondary);\n}\n\nic-button:active .shortcut {\n --ic-typography-color: var(--ic-color-text-tertiary);\n}\n\n:host([variant=\"destructive\"]) ic-button:active .menu-item-label {\n --ic-typography-color: var(--ic-action-destructive) !important;\n}\n\n.icon,\n.check-icon,\n.submenu-icon,\n.icon ::slotted(svg),\n.check-icon svg,\n.submenu-icon svg {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n.check-icon.hide {\n visibility: hidden;\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n :host ::part(button) {\n border: canvas;\n }\n\n :host ::part(button):focus-visible {\n outline: var(--ic-space-xxxs) solid transparent;\n }\n\n .focus-border {\n border-color: canvas;\n }\n\n :host(.ic-menu-item-disabled) ic-button:focus-within .focus-border {\n border-color: GrayText;\n }\n\n :host(.ic-menu-item-disabled) .menu-item-info,\n :host(.ic-menu-item-disabled) .menu-item-label,\n :host(.ic-menu-item-disabled) .shortcut,\n :host(.ic-menu-item-disabled) .menu-item-description,\n :host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-info,\n :host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-label,\n :host(.ic-menu-item-disabled) ic-button:focus-within .shortcut,\n :host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-description {\n --ic-typography-color: GrayText !important;\n }\n\n :host(.ic-menu-item-disabled) ::part(button):focus-visible,\n :host(.ic-menu-item-disabled) ::part(button):focus {\n outline-color: GrayText !important;\n }\n}\n","import { Host, h, } from \"@stencil/core\";\nimport { isSlotUsed, onComponentRequiredPropUndefined, removeDisabledFalse, isPropDefined, } from \"../../utils/helpers\";\nimport Check from \"../../assets/check-icon.svg\";\nimport Chevron from \"../../assets/chevron-icon.svg\";\n/**\n * @slot icon - Content will be placed to the left of the menu item label.\n */\nexport class MenuItem {\n constructor() {\n this.handleClick = (e) => {\n if (isPropDefined(this.submenuTriggerFor)) {\n this.triggerPopoverMenuInstance.emit();\n }\n else if (this.variant === \"toggle\") {\n e.preventDefault();\n this.toggleChecked = !this.toggleChecked;\n }\n this.handleMenuItemClick.emit({\n label: this.label,\n hasSubMenu: !!this.el.submenuTriggerFor,\n });\n };\n this.getMenuItemAriaLabel = () => {\n let ariaLabel = this.label;\n if (isPropDefined(this.description)) {\n ariaLabel = `${ariaLabel}, ${this.description}`;\n }\n if (isPropDefined(this.keyboardShortcut)) {\n ariaLabel = `${ariaLabel}, ${this.keyboardShortcut}`;\n }\n if (this.variant === \"destructive\") {\n ariaLabel = `${ariaLabel}, destructive`;\n }\n if (isPropDefined(this.submenuTriggerFor)) {\n ariaLabel = `${ariaLabel}, triggers submenu`;\n }\n if (this.el.classList.contains(\"ic-popover-submenu-back-button\")) {\n ariaLabel = \"Go back to parent menu\";\n }\n const parentEl = this.el.parentElement;\n if (parentEl.tagName === \"IC-MENU-GROUP\" &&\n parentEl.label) {\n return `${ariaLabel}, ${parentEl.label} menu group`;\n }\n else {\n return ariaLabel;\n }\n };\n this.toggleChecked = false;\n this.description = undefined;\n this.disabled = false;\n this.href = undefined;\n this.hreflang = undefined;\n this.keyboardShortcut = undefined;\n this.label = undefined;\n this.referrerpolicy = undefined;\n this.rel = undefined;\n this.submenuTriggerFor = undefined;\n this.target = undefined;\n this.variant = \"default\";\n }\n componentWillLoad() {\n // This ensures that trigger menu items are always set to the default variant\n if (isPropDefined(this.submenuTriggerFor) && this.variant !== \"default\") {\n this.variant = \"default\";\n }\n removeDisabledFalse(this.disabled, this.el);\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.label, propName: \"label\" }], \"Menu Item\");\n }\n handleHostClick(e) {\n if (this.disabled) {\n e.stopImmediatePropagation();\n }\n }\n render() {\n // A sub-component to layout the menu information correctly in ic-button\n const MenuItemInformation = () => {\n return (h(\"div\", { class: \"menu-item-info\" }, h(\"div\", { class: \"menu-labels\" }, h(\"ic-typography\", { class: \"menu-item-label\" }, this.label), this.keyboardShortcut && (h(\"ic-typography\", { variant: \"caption\", class: \"shortcut\" }, this.keyboardShortcut))), this.description && (h(\"ic-typography\", { class: \"menu-item-description\", variant: \"caption\" }, this.description))));\n };\n return (h(Host, { class: {\n [\"ic-menu-item-disabled\"]: this.disabled,\n } }, h(\"li\", { role: this.variant === \"toggle\" ? \"menuitemcheckbox\" : \"menuitem\", \"aria-disabled\": `${this.disabled}`, \"aria-checked\": this.variant === \"toggle\" ? this.toggleChecked : undefined }, h(\"ic-button\", { fullWidth: true, variant: \"tertiary\", onClick: this.handleClick, href: isPropDefined(this.href), hreflang: isPropDefined(this.hreflang), target: isPropDefined(this.target), rel: isPropDefined(this.rel), referrerpolicy: this.referrerpolicy !== undefined ? this.referrerpolicy : null, \"aria-disabled\": `${this.disabled}`, \"aria-label\": this.getMenuItemAriaLabel(), ariaControlsId: isPropDefined(this.submenuTriggerFor)\n ? `ic-popover-submenu-${this.submenuTriggerFor}`\n : false, \"aria-haspopup\": isPropDefined(this.submenuTriggerFor) ||\n this.el.classList.contains(\"ic-popover-submenu-back-button\")\n ? \"menu\"\n : false, ariaOwnsId: isPropDefined(this.submenuTriggerFor)\n ? `ic-popover-submenu-${this.submenuTriggerFor}`\n : false }, h(\"div\", { class: \"focus-border\" }, isSlotUsed(this.el, \"icon\") && (h(\"span\", { class: \"icon\" }, h(\"slot\", { name: \"icon\" }))), h(MenuItemInformation, null), this.variant === \"toggle\" && (h(\"span\", { class: {\n [\"check-icon\"]: true,\n [\"hide\"]: !this.toggleChecked,\n }, \"aria-hidden\": \"true\", innerHTML: Check })), isPropDefined(this.submenuTriggerFor) && (h(\"span\", { class: { [\"submenu-icon\"]: true }, \"aria-hidden\": \"true\", innerHTML: Chevron })))))));\n }\n static get is() { return \"ic-menu-item\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-menu-item.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-menu-item.css\"]\n };\n }\n static get properties() {\n return {\n \"description\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The description displayed in the menu item, below the label.\"\n },\n \"attribute\": \"description\",\n \"reflect\": false\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the menu item will be in disabled state.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"href\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The URL that the link points to. This will render the menu item as an \\\"a\\\" tag.\"\n },\n \"attribute\": \"href\",\n \"reflect\": false\n },\n \"hreflang\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The human language of the linked URL.\"\n },\n \"attribute\": \"hreflang\",\n \"reflect\": false\n },\n \"keyboardShortcut\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label describing the keyboard shortcut for a menu item's action.\"\n },\n \"attribute\": \"keyboard-shortcut\",\n \"reflect\": false\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label to display in the menu item.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"referrerpolicy\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"ReferrerPolicy\",\n \"resolved\": \"\\\"\\\" | \\\"no-referrer\\\" | \\\"no-referrer-when-downgrade\\\" | \\\"origin\\\" | \\\"origin-when-cross-origin\\\" | \\\"same-origin\\\" | \\\"strict-origin\\\" | \\\"strict-origin-when-cross-origin\\\" | \\\"unsafe-url\\\"\",\n \"references\": {\n \"ReferrerPolicy\": {\n \"location\": \"global\",\n \"id\": \"global::ReferrerPolicy\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"How much of the referrer to send when following the link.\"\n },\n \"attribute\": \"referrerpolicy\",\n \"reflect\": false\n },\n \"rel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The relationship of the linked URL as space-separated link types.\"\n },\n \"attribute\": \"rel\",\n \"reflect\": false\n },\n \"submenuTriggerFor\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This references the popover menu instance that the menu item is a trigger for. If this prop is set, then the variant will always be default.\"\n },\n \"attribute\": \"submenu-trigger-for\",\n \"reflect\": false\n },\n \"target\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\"\n },\n \"attribute\": \"target\",\n \"reflect\": false\n },\n \"variant\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"IcMenuItemVariants\",\n \"resolved\": \"\\\"default\\\" | \\\"destructive\\\" | \\\"toggle\\\"\",\n \"references\": {\n \"IcMenuItemVariants\": {\n \"location\": \"import\",\n \"path\": \"./ic-menu-item.types\",\n \"id\": \"src/components/ic-menu-item/ic-menu-item.types.ts::IcMenuItemVariants\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The variant of the menu item.\"\n },\n \"attribute\": \"variant\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"default\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"toggleChecked\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"childBlur\",\n \"name\": \"childBlur\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when item loses focus.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"handleMenuItemClick\",\n \"name\": \"handleMenuItemClick\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when the user clicks a menu item.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"{\\n label: string;\\n hasSubMenu: boolean;\\n }\",\n \"resolved\": \"{ label: string; hasSubMenu: boolean; }\",\n \"references\": {}\n }\n }, {\n \"method\": \"triggerPopoverMenuInstance\",\n \"name\": \"triggerPopoverMenuInstance\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when the user clicks a menu item that triggers a popover menu instance.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"click\",\n \"method\": \"handleHostClick\",\n \"target\": undefined,\n \"capture\": true,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-menu-item.js.map\n"],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["IcInformationStatus","IcThemeForegroundEnum","VARIANT_ICONS","neutral","icon","neutralIcon","ariaLabel","info","infoIcon","warning","warningIcon","error","errorIcon","success","successIcon","IC_INHERITED_ARIA","IC_DEVICE_SIZES","XS","S","M","L","XL","IC_BLOCK_COLOR_COMPONENTS","IC_FIXED_COLOR_COMPONENTS","IC_BLOCK_COLOR_EXCEPTIONS","BLACK_MIN_COLOR_BRIGHTNESS","WHITE_MAX_COLOR_BRIGHTNESS","DARK_MODE_THRESHOLD","icInput","linkIcInput","inheritAttributes","element","attributes","attributeObject","forEach","attr","hasAttribute","value","getAttribute","removeAttribute","debounceEvent","event","wait","original","_original","emit","debounce","bind","func","timer","args","clearTimeout","setTimeout","renderHiddenInput","always","container","name","disabled","undefined","hasShadowDom","inputs","querySelectorAll","inputEls","Array","from","filtered","filter","el","parentElement","input","ownerDocument","createElement","type","classList","add","appendChild","Date","toISOString","renderFileHiddenInput","multiple","accept","hidden","files","onchange","click","removeHiddenInput","remove","shadowRoot","attachShadow","getInputHelperTextID","id","getInputValidationTextID","getInputDescribedByText","inputId","helperText","validationText","trim","getThemeFromContext","themeFromEvent","_a","getRootNode","host","blockColorParent","closest","join","parentTag","tagName","toLowerCase","currentTag","includes","Default","contains","Dark","Light","isMobileOrTablet","navigator","maxTouchPoints","test","userAgent","handleHiddenFormButtonClick","form","button","hiddenFormButton","document","setAttribute","style","display","isEmptyString","length","isPropDefined","prop","getLabelFromValue","options","valueField","labelField","ungroupedOptions","map","option","children","push","matchingValue","find","getFilteredMenuOptions","includeDescriptions","searchString","position","label","description","lowerSearchString","startsWith","deviceSizeMatches","size","window","matchMedia","matches","getCurrentDeviceSize","DEVICE_SIZES","UNDEFINED","getCssProperty","cssVar","getComputedStyle","documentElement","getPropertyValue","getThemeColorBrightness","themeRed","themeGreen","themeBlue","parseInt","getThemeForegroundColor","brightness","getSlot","querySelector","slotHasContent","getSlotContent","slot","getSlotElements","slotContent","firstElementChild","elements","assignedElements","childNodes","getNavItemParentDetails","navType","parent","Number","replace","hasValidationStatus","status","isSlotUsed","slotName","some","child","onComponentPropUndefinedChange","oldValue","newValue","callback","onComponentRequiredPropUndefined","props","component","propName","console","kebabToCamelCase","kebabCase","split","word","index","substring","toUpperCase","checkResizeObserver","callbackFn","ResizeObserver","hex2dec","v","hexToRgba","hex","hexChars","char","repeat","r","slice","g","b","a","rgbaStrToObj","rgbaStr","isRGBA","rgbValues","elementOverflowsX","scrollWidth","clientWidth","hasClassificationBanner","addFormResetListener","addEventListener","removeFormResetListener","removeEventListener","pxToRem","px","base","removeDisabledFalse","convertToRGBA","color","firstChar","capitalize","text","charAt","checkSlotInChildMutations","addedNodes","removedNodes","hasSlot","nodeList","node","isArray","isElInAGGrid"],"sources":["../web-components/dist/collection/utils/types.js","../web-components/dist/collection/utils/constants.js","../web-components/dist/collection/utils/helpers.js"],"sourcesContent":["export var IcInformationStatus;\n(function (IcInformationStatus) {\n IcInformationStatus[\"Warning\"] = \"warning\";\n IcInformationStatus[\"Error\"] = \"error\";\n IcInformationStatus[\"Success\"] = \"success\";\n})(IcInformationStatus || (IcInformationStatus = {}));\nexport var IcThemeForegroundEnum;\n(function (IcThemeForegroundEnum) {\n IcThemeForegroundEnum[\"Default\"] = \"default\";\n IcThemeForegroundEnum[\"Dark\"] = \"dark\";\n IcThemeForegroundEnum[\"Light\"] = \"light\";\n})(IcThemeForegroundEnum || (IcThemeForegroundEnum = {}));\n//# sourceMappingURL=types.js.map\n","import errorIcon from \"../assets/error-icon.svg\";\nimport infoIcon from \"../assets/info-icon.svg\";\nimport neutralIcon from \"../assets/neutral-icon.svg\";\nimport successIcon from \"../assets/success-icon.svg\";\nimport warningIcon from \"../assets/warning-icon.svg\";\n// Global status icons\nexport const VARIANT_ICONS = {\n neutral: {\n icon: neutralIcon,\n ariaLabel: \"Neutral\",\n },\n info: {\n icon: infoIcon,\n ariaLabel: \"For your information\",\n },\n warning: {\n icon: warningIcon,\n ariaLabel: \"Warning\",\n },\n error: {\n icon: errorIcon,\n ariaLabel: \"Error\",\n },\n success: {\n icon: successIcon,\n ariaLabel: \"Success\",\n },\n};\n// Global ARIA attributes\nexport const IC_INHERITED_ARIA = [\n \"aria-atomic\",\n \"aria-autocomplete\",\n \"aria-busy\",\n \"aria-controls\",\n \"aria-current\",\n \"aria-describedby\",\n \"aria-description\",\n \"aria-details\",\n \"aria-disabled\",\n \"aria-dropeffect\",\n \"aria-errormessage\",\n \"aria-expanded\",\n \"aria-flowto\",\n \"aria-grabbed\",\n \"aria-haspopup\",\n \"aria-hidden\",\n \"aria-invalid\",\n \"aria-keyshortcuts\",\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-live\",\n \"aria-owns\",\n \"aria-relevant\",\n \"aria-roledescription\",\n];\nexport const IC_DEVICE_SIZES = {\n XS: 576,\n S: 768,\n M: 992,\n L: 1200,\n XL: 99999,\n};\nexport const IC_BLOCK_COLOR_COMPONENTS = [\n \"ic-hero\",\n \"ic-top-navigation\",\n \"ic-footer\",\n \"ic-side-navigation\",\n \"ic-alert\",\n];\nexport const IC_FIXED_COLOR_COMPONENTS = [\"ic-alert\"];\nexport const IC_BLOCK_COLOR_EXCEPTIONS = {\n \"ic-alert\": [\"ic-link\"],\n};\n/* Range within which the chosen theme colour would not have a sufficient brightness difference with either of the black or white foreground colours\n * The brightness difference must be greater than 125 to provide good colour visibility\n * Calculated by:\n * - Using the brightness formula for both colours: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding 125 to the brightness of the black foreground colour - RGB(11, 12, 12)\n * - Subtracting 125 from the brightness of the white foreground colour - RGB(255, 255, 255)\n */\nexport const BLACK_MIN_COLOR_BRIGHTNESS = 136.701;\nexport const WHITE_MAX_COLOR_BRIGHTNESS = 130;\n//# sourceMappingURL=constants.js.map\n","import { IcThemeForegroundEnum, } from \"../utils/types\";\nimport { IC_BLOCK_COLOR_COMPONENTS, IC_BLOCK_COLOR_EXCEPTIONS, IC_FIXED_COLOR_COMPONENTS, } from \"./constants\";\nconst DARK_MODE_THRESHOLD = 133.3505;\nconst icInput = \"ic-input\";\nconst linkIcInput = \"input.ic-input\";\n/**\n * converts an enum of strings into an array of strings\n */\nexport const stringEnumToArray = (theEnum) => {\n const arr = [];\n Object.values(theEnum).forEach((val) => {\n if (isNaN(Number(val))) {\n const str = val;\n arr.push(str);\n }\n });\n return arr;\n};\n/**\n * Used to inherit global attributes set on the host. Called in componentWillLoad and assigned\n * to a variable that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (element, attributes = []) => {\n const attributeObject = {};\n attributes.forEach((attr) => {\n if (element.hasAttribute(attr)) {\n const value = element.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = value;\n }\n element.removeAttribute(attr);\n }\n });\n return attributeObject;\n};\nexport const debounceEvent = (event, wait) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = event._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n };\n};\nexport const debounce = (func, wait = 0) => {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n/**\n * This method is used to add a hidden input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param always Add a hidden input even if the container does not use Shadow\n * @param container The element where the input will be added\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n */\nexport const renderHiddenInput = (always, container, name, value, disabled) => {\n if (name !== undefined && (always || hasShadowDom(container))) {\n const inputs = container.querySelectorAll(linkIcInput);\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n let input = filtered[0];\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.type = \"hidden\";\n input.classList.add(icInput);\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n if (value instanceof Date) {\n input.value = value ? value.toISOString() : null;\n }\n else {\n input.value = value || \"\";\n }\n }\n};\n/**\n * This method is used to add a hidden file input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param event: The event that is emitted once a file is selected.\n * @param container The element where the input will be added\n * @param multiple If true, multiple files can be selected\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n * @param accept A string of the accepted files\n */\nexport const renderFileHiddenInput = (event, container, multiple, name, value, disabled, accept) => {\n if (name !== undefined && hasShadowDom(container)) {\n const inputs = container.querySelectorAll(linkIcInput);\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n let input = filtered[0];\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.classList.add(icInput);\n container.appendChild(input);\n }\n input.type = \"file\";\n input.hidden = true;\n input.multiple = multiple;\n input.name = name;\n input.files = value;\n input.disabled = disabled;\n input.accept = accept;\n input.onchange = () => {\n event.emit(input.files);\n };\n input.click();\n }\n};\nexport const removeHiddenInput = (container) => {\n const inputs = container.querySelectorAll(\"input.ic-input\");\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n const input = filtered[0];\n input === null || input === void 0 ? void 0 : input.remove();\n};\nexport const hasShadowDom = (el) => !!el.shadowRoot && !!el.attachShadow;\nexport const getInputHelperTextID = (id) => id + \"-helper-text\";\nexport const getInputValidationTextID = (id) => id + \"-validation-text\";\nexport const getInputDescribedByText = (inputId, helperText, validationText) => `${helperText ? getInputHelperTextID(inputId) : \"\"} ${validationText ? getInputValidationTextID(inputId) : \"\"}`.trim();\n/**\n * This method helps to understand the context in which a component exists,\n * to assist with choosing appropriate foreground colours to use. For example,\n * this method will help you use the 'white' version of a button if it's within\n * a block colour element using white foreground text.\n *\n * This only works for components/elements passed via <slot> and not if they\n * are part of an IC component.\n *\n * \"\"\n * @returns IcThemeForeground depending on the context\n */\nexport const getThemeFromContext = (el, themeFromEvent = null) => {\n var _a;\n const parentElement = el.parentElement || el.getRootNode().host.parentElement;\n const blockColorParent = parentElement.closest(IC_BLOCK_COLOR_COMPONENTS.join(\",\"));\n // If within a block color component\n if (blockColorParent !== null) {\n const parentTag = blockColorParent.tagName.toLowerCase();\n const currentTag = el.tagName.toLowerCase();\n if ((_a = IC_BLOCK_COLOR_EXCEPTIONS[parentTag]) === null || _a === void 0 ? void 0 : _a.includes(currentTag)) {\n return IcThemeForegroundEnum.Default;\n }\n else if (themeFromEvent !== null &&\n !IC_FIXED_COLOR_COMPONENTS.includes(parentTag)) {\n return themeFromEvent;\n }\n else if (blockColorParent.classList.contains(IcThemeForegroundEnum.Dark)) {\n return IcThemeForegroundEnum.Dark;\n }\n return IcThemeForegroundEnum.Light;\n }\n return IcThemeForegroundEnum.Default;\n};\n/**\n * Checks if the current device is a mobile or tablet device.\n * @returns {boolean} Returns true if the device is a mobile or tablet device, otherwise returns false.\n */\nexport const isMobileOrTablet = () => \"maxTouchPoints\" in navigator && \"userAgent\" in navigator\n ? navigator.maxTouchPoints > 0 &&\n /iPad|iPhone|iPod|Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\n : false;\n/**\n * Will create a button within the lightDOM which interacts with the parent form.\n * This is required as buttons within the shadowDOM will not invoke a submit or reset\n *\n * @param form - parent form element which contains shadowDom button\n * @param button - shadowDOM button\n */\nexport const handleHiddenFormButtonClick = (form, button) => {\n const hiddenFormButton = document.createElement(\"button\");\n hiddenFormButton.setAttribute(\"type\", button.type);\n hiddenFormButton.style.display = \"none\";\n form.appendChild(hiddenFormButton);\n hiddenFormButton.click();\n hiddenFormButton.remove();\n};\nexport const isEmptyString = (value) => value ? value.trim().length === 0 : true;\n// A helper function that checks if a prop has been defined\nexport const isPropDefined = (prop) => prop !== undefined ? prop : null;\n/**\n * Extracts the label using the value from an object. Requires the object to have a label and value property.\n * @param value - value from object\n * @param options - list of menu items\n * @returns - label corresponding to value\n */\nexport const getLabelFromValue = (value, options, valueField = \"value\", labelField = \"label\") => {\n const ungroupedOptions = [];\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option) => ungroupedOptions.push(option));\n }\n else {\n ungroupedOptions.push(option);\n }\n });\n const matchingValue = ungroupedOptions.find((option) => option[valueField] === value);\n if (matchingValue !== undefined)\n return matchingValue[labelField];\n }\n return undefined;\n};\n/**\n * Filters the options based on the search string.\n * @param options - array of options\n * @param includeDescriptions - determines whether option descriptions are included when filtering options\n * @param searchString - string used to filter the options\n * @param position - whether the search string matches the start of or anywhere in the options\n * @returns filtered array of options\n */\nexport const getFilteredMenuOptions = (options, includeDescriptions, searchString, position, labelField = \"label\") => options.filter((option) => {\n var _a;\n const label = option[labelField].toLowerCase();\n const description = (_a = option.description) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n const lowerSearchString = searchString.toLowerCase();\n return position === \"anywhere\"\n ? includeDescriptions\n ? label.includes(lowerSearchString) ||\n (description === null || description === void 0 ? void 0 : description.includes(lowerSearchString))\n : label.includes(lowerSearchString)\n : includeDescriptions\n ? label.startsWith(lowerSearchString) ||\n (description === null || description === void 0 ? void 0 : description.startsWith(lowerSearchString))\n : label.startsWith(lowerSearchString);\n});\nexport const deviceSizeMatches = (size) => window.matchMedia(`(max-width: ${size}px)`).matches;\nexport const getCurrentDeviceSize = () => {\n if (deviceSizeMatches(DEVICE_SIZES.S)) {\n return DEVICE_SIZES.S;\n }\n if (deviceSizeMatches(DEVICE_SIZES.M)) {\n return DEVICE_SIZES.M;\n }\n if (deviceSizeMatches(DEVICE_SIZES.L)) {\n return DEVICE_SIZES.L;\n }\n if (deviceSizeMatches(DEVICE_SIZES.XL)) {\n return DEVICE_SIZES.XL;\n }\n //fallback needed as all of above get initialised to 0 in jest tests\n return DEVICE_SIZES.UNDEFINED;\n};\nexport const getCssProperty = (cssVar) => getComputedStyle(document.documentElement).getPropertyValue(cssVar);\n/**\n * Returns the brightness of the theme colour, calculated by using the theme RGB CSS values by:\n * - Multiplying each RGB value by a set number: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding them together and dividing by 1000\n * This is a similar calculation to its CSS counterpart: \"--ic-theme-text\"\n * @returns number representing the brightness of the theme colour\n */\nexport const getThemeColorBrightness = () => {\n const themeRed = getCssProperty(\"--ic-theme-primary-r\");\n const themeGreen = getCssProperty(\"--ic-theme-primary-g\");\n const themeBlue = getCssProperty(\"--ic-theme-primary-b\");\n return ((parseInt(themeRed) * 299 +\n parseInt(themeGreen) * 587 +\n parseInt(themeBlue) * 114) /\n 1000);\n};\n/**\n * Returns if dark or light foreground colors should be used for color contrast reasons\n * @returns \"dark\" or \"light\"\n * @param brightness - Optional custom brightness value. Defaults to `getThemeColorBrightness`\n */\nexport const getThemeForegroundColor = (brightness = getThemeColorBrightness()) => brightness > DARK_MODE_THRESHOLD\n ? IcThemeForegroundEnum.Dark\n : IcThemeForegroundEnum.Light;\nexport const getSlot = (element, name) => {\n if (element && element.querySelector) {\n return element.querySelector(`[slot=\"${name}\"]`);\n }\n return null;\n};\nexport const slotHasContent = (element, name) => getSlot(element, name) !== null;\nexport const getSlotContent = (element, name) => {\n const slot = getSlot(element, name);\n if (slot) {\n return getSlotElements(slot);\n }\n return null;\n};\nexport const getSlotElements = (slot) => {\n const slotContent = slot.firstElementChild;\n if (slotContent !== null) {\n const elements = slotContent.assignedElements\n ? slotContent.assignedElements()\n : slotContent.childNodes;\n return elements.length ? elements : slot.tagName ? [slot] : null;\n }\n else {\n //check for single element\n return slot === null ? null : [slot];\n }\n};\nexport const getNavItemParentDetails = ({ parentElement, }) => {\n let navType = { navType: \"\", parent: null };\n switch (parentElement.tagName) {\n case \"IC-NAVIGATION-GROUP\":\n navType = getNavItemParentDetails(parentElement);\n break;\n case \"IC-TOP-NAVIGATION\":\n navType = { navType: \"top\", parent: parentElement };\n break;\n case \"IC-SIDE-NAVIGATION\":\n navType = { navType: \"side\", parent: parentElement };\n break;\n case \"IC-PAGE-HEADER\":\n navType = { navType: \"page-header\", parent: null };\n break;\n }\n return navType;\n};\nexport const DEVICE_SIZES = {\n XS: Number(getCssProperty(\"--ic-breakpoint-xs\").replace(\"px\", \"\")), // 0\n S: Number(getCssProperty(\"--ic-breakpoint-sm\").replace(\"px\", \"\")), // 576\n M: Number(getCssProperty(\"--ic-breakpoint-md\").replace(\"px\", \"\")), // 768\n L: Number(getCssProperty(\"--ic-breakpoint-lg\").replace(\"px\", \"\")), // 992\n XL: Number(getCssProperty(\"--ic-breakpoint-xl\").replace(\"px\", \"\")), // 1200\n UNDEFINED: 1200,\n};\nexport const hasValidationStatus = (status, disabled) => !!status && !disabled;\nexport const isSlotUsed = ({ children }, slotName) => Array.from(children).some((child) => child.getAttribute(\"slot\") === slotName);\n// added as a common method to allow detection of gatsby hydration issue, where (camelCase) props are initially undefined & then update\n// with a value. Allows a callback function to be executed when this is the case\nexport const onComponentPropUndefinedChange = (oldValue, newValue, callback) => {\n if (oldValue === undefined && newValue !== oldValue) {\n callback();\n }\n};\nexport const onComponentRequiredPropUndefined = (props, component) => {\n props.forEach(({ prop, propName }) => {\n if (prop === null || prop === undefined) {\n console.error(`No ${propName} specified for ${component} component - prop '${propName}' (web components) / '${kebabToCamelCase(propName)}' (react) required`);\n }\n });\n};\nexport const kebabToCamelCase = (kebabCase) => kebabCase\n .toLowerCase()\n .split(\"-\")\n .map((word, index) => index === 0\n ? word\n : `${word.substring(0, 1).toUpperCase()}${word.substring(1)}`)\n .join(\"\");\nexport const checkResizeObserver = (callbackFn) => {\n if (typeof window !== \"undefined\" &&\n typeof window.ResizeObserver !== \"undefined\") {\n callbackFn();\n }\n};\nconst hex2dec = (v) => parseInt(v, 16);\nexport const hexToRgba = (hex) => {\n const hexChars = hex\n .replace(\"#\", \"\")\n .split(\"\")\n .map((char) => char.repeat(2));\n return {\n r: hex2dec(hex.length === 4 ? hexChars[0] : hex.slice(1, 3)),\n g: hex2dec(hex.length === 4 ? hexChars[1] : hex.slice(3, 5)),\n b: hex2dec(hex.length === 4 ? hexChars[2] : hex.slice(5)),\n a: 1,\n };\n};\nexport const rgbaStrToObj = (rgbaStr) => {\n const isRGBA = rgbaStr.slice(3, 4).toLowerCase() === \"a\";\n const rgbValues = rgbaStr\n .substring(isRGBA ? 5 : 4, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\")\n .map(Number);\n return {\n r: rgbValues[0],\n g: rgbValues[1],\n b: rgbValues[2],\n a: isRGBA ? rgbValues[3] : 1,\n };\n};\nexport const elementOverflowsX = ({ scrollWidth, clientWidth, }) => scrollWidth > clientWidth;\nexport const hasClassificationBanner = () => !!document.querySelector(\"ic-classification-banner:not([inline='true'])\");\nexport const addFormResetListener = (el, callbackFn) => {\n var _a;\n (_a = el.closest(\"FORM\")) === null || _a === void 0 ? void 0 : _a.addEventListener(\"reset\", callbackFn);\n};\nexport const removeFormResetListener = (el, callbackFn) => {\n var _a;\n (_a = el.closest(\"FORM\")) === null || _a === void 0 ? void 0 : _a.removeEventListener(\"reset\", callbackFn);\n};\nexport const pxToRem = (px, base = 16) => `${(1 / base) * parseInt(px)}rem`;\nexport const removeDisabledFalse = (disabled, element) => {\n if (!disabled) {\n element.removeAttribute(\"disabled\");\n }\n};\nexport const isMacDevice = () => window.navigator.userAgent.toUpperCase().indexOf(\"MAC\") >= 0;\nexport const isNumeric = (value) => /^-?\\d+$/.test(value);\nexport async function waitForHydration() {\n const elements = document.getElementsByTagName(\"*\");\n for (let i = 0; i < elements.length; i++) {\n if (elements[i].tagName.startsWith(\"IC-\")) {\n if (elements[i].classList.contains(\"hydrated\")) {\n return true;\n }\n }\n else {\n return false;\n }\n }\n return false;\n}\nexport const convertToRGBA = (color) => {\n const firstChar = color === null || color === void 0 ? void 0 : color.slice(0, 1).toLowerCase();\n return firstChar === \"#\"\n ? hexToRgba(color)\n : firstChar === \"r\"\n ? rgbaStrToObj(color)\n : null;\n};\nexport const capitalize = (text) => text.charAt(0).toUpperCase() + text.slice(1);\nexport const checkSlotInChildMutations = (addedNodes, removedNodes, slotName) => {\n const hasSlot = (nodeList) => Array.from(nodeList).some((node) => Array.isArray(slotName)\n ? slotName.some((name) => node.slot === name)\n : node.slot === slotName);\n return hasSlot(addedNodes) || hasSlot(removedNodes);\n};\nexport const isElInAGGrid = (el) => !!el.closest(\".ag-cell\") && !!el.closest(\".ag-root\");\n//# sourceMappingURL=helpers.js.map\n"],"mappings":"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"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as i,f as t,h as e,H as s,g as a}from"./p-8455d1bb.js";import{c as r,A as h,i as c}from"./p-297e99cf.js";const o=':host{display:block;width:var(--tree-view-width, 100%)}:host .heading-area-container{border-bottom:var(--ic-border-default);display:flex;align-items:center;height:calc(var(--ic-space-xl) + var(--ic-space-xs) - var(--ic-space-1px));padding:0 var(--ic-space-xs)}:host(.ic-tree-view-small) .heading-area-container{height:calc(var(--ic-space-xl) - var(--ic-space-1px))}:host(.ic-tree-view-large) .heading-area-container{height:calc(var(--ic-space-xxl) - var(--ic-space-1px))}:host(.ic-tree-view-light) .heading-area-container{color:var(--ic-architectural-white);--ic-typography-color:var(--ic-architectural-white);fill:var(--ic-architectural-white)}.icon-container{width:var(--ic-space-lg);height:var(--ic-space-lg);margin:0 var(--ic-space-xs) 0 0}:host(.ic-tree-view-small) .icon-container{margin:0 var(--ic-space-xxs) 0 0}.ic-text-overflow{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ic-tooltip-overflow{overflow:hidden}@media (forced-colors: active){::slotted([slot="icon"]){fill:currentcolor}}';let n=0;const l=class{constructor(e){i(this,e);this.treeViewId=`ic-tree-view-${n++}`;this.treeItemTag="IC-TREE-ITEM";this.hostMutationObserver=null;this.handleKeyDown=i=>{var t;const e=this.treeItems.indexOf(this.treeItems.filter((i=>i===document.activeElement))[0]);const s=(t=this.treeItems[e])===null||t===void 0?void 0:t.expanded;switch(i.key){case"ArrowDown":this.treeItems[this.getNextItemToSelect(e,true)].setFocus();if(e!==this.treeItems.length-1){i.preventDefault()}break;case"ArrowUp":this.treeItems[this.getNextItemToSelect(e,false)].setFocus();if(e!==0){i.preventDefault()}break;case"ArrowRight":if(this.treeItems[e].isParent&&!s){this.treeItems[e].expanded=true;this.treeItems[e].hasParentExpanded=true;this.treeItems[e].updateAriaLabel()}else if(this.treeItems[e].isParent&&s){this.treeItems[e].children[0].setFocus()}i.preventDefault();break;case"ArrowLeft":if(this.treeItems[e].isParent&&s){this.treeItems[e].expanded=false;this.treeItems[e].hasParentExpanded=false;this.treeItems[e].updateAriaLabel()}else if(this.treeItems[e].parentElement.tagName===this.treeItemTag){this.treeItems[e].parentElement.setFocus()}i.preventDefault();break}};this.getNextItemToSelect=(i,t)=>{const e=this.treeItems.length-1;if(i<1){i=0}let s=t?i+1:i-1;if(s<0){s=0}else if(s>e){s=e}const a=e+1;let r=0;while(r<a){if(s<0||s>e){return i}if(!this.treeItems[s].disabled&&(this.treeItems[s].parentElement.tagName!==this.treeItemTag||this.treeItems[s].parentElement.expanded)){return s}if(s===e&&this.treeItems[s].disabled){return i}s=t?s+1:s-1;r++}return i};this.linkTreeItems=()=>{this.treeItems.forEach((i=>{i.setAttribute("context-id",this.treeViewId)}))};this.setTreeItems=()=>{this.treeItems=this.getAllTreeItems(this.el);this.linkTreeItems()};this.addSlotChangeListener=()=>{this.el.addEventListener("slotchange",this.setTreeItems)};this.truncateTreeViewHeading=()=>{const i=this.el.shadowRoot.querySelector(".tree-view-header");const t=i.closest("ic-tooltip");const e=this.el.shadowRoot.querySelector(".heading-area-container");if((i===null||i===void 0?void 0:i.scrollHeight)>(e===null||e===void 0?void 0:e.clientHeight)){i.classList.add("ic-text-overflow");if(!t){const t=document.createElement("ic-tooltip");t.setAttribute("target",this.el.id);t.setAttribute("label",i.textContent);t.classList.add("ic-tooltip-overflow");t.setAttribute("placement","right");e.appendChild(t);t.appendChild(i)}}};this.hostMutationCallback=i=>{if(i.some((({type:i,addedNodes:t,removedNodes:e})=>i==="childList"?r(t,e,"icon"):false))){t(this)}};this.isHeadingDefined=()=>h(this.heading)&&this.heading!==null;this.hasHeadingAreaContent=()=>c(this.el,"heading")||this.isHeadingDefined()||c(this.el,"icon");this.treeItems=undefined;this.appearance="dark";this.heading="";this.size="medium"}watchAppearanceHandler(){this.treeItems.forEach((i=>{i.appearance=this.appearance}))}watchSizeHandler(){this.treeItems.forEach((i=>{i.size=this.size}))}disconnectedCallback(){var i,t;(i=this.el)===null||i===void 0?void 0:i.removeEventListener("slotchange",this.setTreeItems);(t=this.hostMutationObserver)===null||t===void 0?void 0:t.disconnect()}componentDidLoad(){this.setTreeItems();this.watchAppearanceHandler();this.watchSizeHandler();setTimeout((()=>{this.truncateTreeViewHeading()}),100);this.addSlotChangeListener();this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{childList:true})}handleTreeItemSelected(i){this.treeItems.forEach((t=>{if(t.selected&&t.id!==i.detail.id){t.selected=false}}))}getAllTreeItems(i){const t=[];const e=i=>{Array.from(i.children).forEach((i=>{if(i.tagName===this.treeItemTag){t.push(i)}e(i)}))};e(i);return t}render(){const{appearance:i,heading:t,size:a}=this;return e(s,{"context-id":this.treeViewId,class:{[`ic-tree-view-${i}`]:true,[`ic-tree-view-${a}`]:a!=="medium"},onKeyDown:this.handleKeyDown,"aria-label":this.isHeadingDefined()?t:null},this.hasHeadingAreaContent()&&e("div",{class:"heading-area-container"},c(this.el,"icon")&&e("div",{class:"icon-container"},e("slot",{name:"icon"})),e("ic-typography",{variant:"subtitle-large",class:"tree-view-header"},c(this.el,"heading")?e("slot",{name:"heading"}):t)),e("slot",null))}get el(){return a(this)}static get watchers(){return{appearance:["watchAppearanceHandler"],size:["watchSizeHandler"]}}};l.style=o;export{l as ic_tree_view};
|
2
|
-
//# sourceMappingURL=p-9b54feca.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icTreeViewCss","treeViewIds","TreeView","this","treeViewId","treeItemTag","hostMutationObserver","handleKeyDown","event","focussedChild","treeItems","indexOf","filter","el","document","activeElement","expanded","_a","key","getNextItemToSelect","setFocus","length","preventDefault","isParent","hasParentExpanded","updateAriaLabel","children","parentElement","tagName","currentItem","movingDown","numItems","nextItem","maxAttempts","attempts","disabled","linkTreeItems","forEach","treeItem","setAttribute","setTreeItems","getAllTreeItems","addSlotChangeListener","addEventListener","truncateTreeViewHeading","typographyEl","shadowRoot","querySelector","tooltip","closest","headingContainer","scrollHeight","clientHeight","classList","add","tooltipEl","createElement","id","textContent","appendChild","hostMutationCallback","mutationList","some","type","addedNodes","removedNodes","checkSlotInChildMutations","forceUpdate","isHeadingDefined","isPropDefined","heading","hasHeadingAreaContent","isSlotUsed","watchAppearanceHandler","appearance","watchSizeHandler","size","disconnectedCallback","removeEventListener","_b","disconnect","componentDidLoad","setTimeout","MutationObserver","observe","childList","handleTreeItemSelected","selected","detail","element","collectTreeItems","Array","from","child","push","render","h","Host","class","onKeyDown","name","variant"],"sources":["src/components/ic-tree-view/ic-tree-view.css?tag=ic-tree-view&encapsulation=shadow","src/components/ic-tree-view/ic-tree-view.tsx"],"sourcesContent":["/**\n* @prop --tree-view-width: Width of the tree view\n*/\n\n:host {\n display: block;\n width: var(--tree-view-width, 100%);\n}\n\n:host .heading-area-container {\n border-bottom: var(--ic-border-default);\n display: flex;\n align-items: center;\n height: calc(var(--ic-space-xl) + var(--ic-space-xs) - var(--ic-space-1px));\n padding: 0 var(--ic-space-xs);\n}\n\n:host(.ic-tree-view-small) .heading-area-container {\n height: calc(var(--ic-space-xl) - var(--ic-space-1px));\n}\n\n:host(.ic-tree-view-large) .heading-area-container {\n height: calc(var(--ic-space-xxl) - var(--ic-space-1px));\n}\n\n:host(.ic-tree-view-light) .heading-area-container {\n color: var(--ic-architectural-white);\n\n --ic-typography-color: var(--ic-architectural-white);\n\n fill: var(--ic-architectural-white);\n}\n\n.icon-container {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n margin: 0 var(--ic-space-xs) 0 0;\n}\n\n:host(.ic-tree-view-small) .icon-container {\n margin: 0 var(--ic-space-xxs) 0 0;\n}\n\n.ic-text-overflow {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.ic-tooltip-overflow {\n overflow: hidden;\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n h,\n Prop,\n Element,\n Host,\n Watch,\n State,\n Listen,\n forceUpdate,\n} from \"@stencil/core\";\nimport { IcSizes, IcThemeForegroundNoDefault } from \"../../utils/types\";\nimport {\n isPropDefined,\n isSlotUsed,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\n\nlet treeViewIds = 0;\n\n/**\n * @slot heading - Content is set as the tree view heading.\n * @slot icon - Content is placed to the left of the heading.\n */\n\n@Component({\n tag: \"ic-tree-view\",\n styleUrl: \"ic-tree-view.css\",\n shadow: true,\n})\nexport class TreeView {\n private treeViewId = `ic-tree-view-${treeViewIds++}`;\n private treeItemTag = \"IC-TREE-ITEM\";\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcTreeViewElement;\n\n @State() treeItems: HTMLIcTreeItemElement[];\n\n /**\n * The appearance of the tree view, e.g. dark, or light.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n @Watch(\"appearance\")\n watchAppearanceHandler() {\n this.treeItems.forEach((treeItem) => {\n treeItem.appearance = this.appearance;\n });\n }\n\n /**\n * The heading of the tree view.\n */\n @Prop() heading?: string = \"\";\n\n /**\n * The size of the tree view.\n */\n @Prop() size?: IcSizes = \"medium\";\n @Watch(\"size\")\n watchSizeHandler() {\n this.treeItems.forEach((treeItem) => {\n treeItem.size = this.size;\n });\n }\n\n disconnectedCallback(): void {\n this.el?.removeEventListener(\"slotchange\", this.setTreeItems);\n\n this.hostMutationObserver?.disconnect();\n }\n\n componentDidLoad(): void {\n this.setTreeItems();\n\n this.watchAppearanceHandler();\n this.watchSizeHandler();\n setTimeout(() => {\n this.truncateTreeViewHeading();\n }, 100);\n\n this.addSlotChangeListener();\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"icTreeItemSelected\")\n handleTreeItemSelected(event: CustomEvent): void {\n this.treeItems.forEach((treeItem) => {\n if (treeItem.selected && treeItem.id !== event.detail.id) {\n treeItem.selected = false;\n }\n });\n }\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n const focussedChild = this.treeItems.indexOf(\n this.treeItems.filter((el) => el === document.activeElement)[0]\n );\n const expanded = this.treeItems[focussedChild]?.expanded;\n switch (event.key) {\n case \"ArrowDown\":\n this.treeItems[\n this.getNextItemToSelect(focussedChild, true)\n ].setFocus();\n if (focussedChild !== this.treeItems.length - 1) {\n event.preventDefault();\n }\n break;\n case \"ArrowUp\":\n this.treeItems[\n this.getNextItemToSelect(focussedChild, false)\n ].setFocus();\n if (focussedChild !== 0) {\n event.preventDefault();\n }\n break;\n case \"ArrowRight\":\n if (this.treeItems[focussedChild].isParent && !expanded) {\n this.treeItems[focussedChild].expanded = true;\n this.treeItems[focussedChild].hasParentExpanded = true;\n this.treeItems[focussedChild].updateAriaLabel();\n } else if (this.treeItems[focussedChild].isParent && expanded) {\n (\n this.treeItems[focussedChild].children[0] as HTMLIcTreeItemElement\n ).setFocus();\n }\n event.preventDefault();\n break;\n case \"ArrowLeft\":\n if (this.treeItems[focussedChild].isParent && expanded) {\n this.treeItems[focussedChild].expanded = false;\n this.treeItems[focussedChild].hasParentExpanded = false;\n this.treeItems[focussedChild].updateAriaLabel();\n } else if (\n this.treeItems[focussedChild].parentElement.tagName ===\n this.treeItemTag\n ) {\n (\n this.treeItems[focussedChild].parentElement as HTMLIcTreeItemElement\n ).setFocus();\n }\n event.preventDefault();\n break;\n }\n };\n\n private getNextItemToSelect = (\n currentItem: number,\n movingDown: boolean\n ): number => {\n const numItems = this.treeItems.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n if (nextItem < 0) {\n nextItem = 0;\n } else if (nextItem > numItems) {\n nextItem = numItems;\n }\n\n const maxAttempts = numItems + 1;\n let attempts = 0;\n\n while (attempts < maxAttempts) {\n if (nextItem < 0 || nextItem > numItems) {\n return currentItem;\n }\n\n if (\n !this.treeItems[nextItem].disabled &&\n (this.treeItems[nextItem].parentElement.tagName !== this.treeItemTag ||\n (this.treeItems[nextItem].parentElement as HTMLIcTreeItemElement)\n .expanded)\n ) {\n return nextItem;\n }\n\n if (nextItem === numItems && this.treeItems[nextItem].disabled) {\n return currentItem;\n }\n\n nextItem = movingDown ? nextItem + 1 : nextItem - 1;\n attempts++;\n }\n\n return currentItem;\n };\n\n private linkTreeItems = () => {\n this.treeItems.forEach((treeItem) => {\n treeItem.setAttribute(\"context-id\", this.treeViewId);\n });\n };\n\n private setTreeItems = () => {\n this.treeItems = this.getAllTreeItems(this.el as HTMLElement);\n\n this.linkTreeItems();\n };\n\n private getAllTreeItems(element: HTMLElement): HTMLIcTreeItemElement[] {\n const treeItems: HTMLIcTreeItemElement[] = [];\n\n const collectTreeItems = (el: HTMLElement) => {\n Array.from(el.children).forEach((child) => {\n if (child.tagName === this.treeItemTag) {\n treeItems.push(child as HTMLIcTreeItemElement);\n }\n\n collectTreeItems(child as HTMLElement);\n });\n };\n\n collectTreeItems(element);\n return treeItems;\n }\n\n private addSlotChangeListener = () => {\n this.el.addEventListener(\"slotchange\", this.setTreeItems);\n };\n\n private truncateTreeViewHeading = () => {\n const typographyEl: HTMLIcTypographyElement =\n this.el.shadowRoot.querySelector(\".tree-view-header\");\n const tooltip = typographyEl.closest(\"ic-tooltip\");\n const headingContainer: HTMLElement = this.el.shadowRoot.querySelector(\n \".heading-area-container\"\n );\n\n if (typographyEl?.scrollHeight > headingContainer?.clientHeight) {\n typographyEl.classList.add(\"ic-text-overflow\");\n\n if (!tooltip) {\n const tooltipEl = document.createElement(\"ic-tooltip\");\n tooltipEl.setAttribute(\"target\", this.el.id);\n tooltipEl.setAttribute(\"label\", typographyEl.textContent);\n tooltipEl.classList.add(\"ic-tooltip-overflow\");\n tooltipEl.setAttribute(\"placement\", \"right\");\n headingContainer.appendChild(tooltipEl);\n tooltipEl.appendChild(typographyEl);\n }\n }\n };\n\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n if (\n mutationList.some(({ type, addedNodes, removedNodes }) =>\n type === \"childList\"\n ? checkSlotInChildMutations(addedNodes, removedNodes, \"icon\")\n : false\n )\n ) {\n forceUpdate(this);\n }\n };\n\n private isHeadingDefined = () =>\n isPropDefined(this.heading) && this.heading !== null;\n\n private hasHeadingAreaContent = (): boolean => {\n return (\n isSlotUsed(this.el, \"heading\") ||\n this.isHeadingDefined() ||\n isSlotUsed(this.el, \"icon\")\n );\n };\n\n render() {\n const { appearance, heading, size } = this;\n\n return (\n <Host\n context-id={this.treeViewId}\n class={{\n [`ic-tree-view-${appearance}`]: true,\n [`ic-tree-view-${size}`]: size !== \"medium\",\n }}\n onKeyDown={this.handleKeyDown}\n aria-label={this.isHeadingDefined() ? heading : null}\n >\n {this.hasHeadingAreaContent() && (\n <div class=\"heading-area-container\">\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography variant=\"subtitle-large\" class=\"tree-view-header\">\n {isSlotUsed(this.el, \"heading\") ? (\n <slot name=\"heading\" />\n ) : (\n heading\n )}\n </ic-typography>\n </div>\n )}\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,h as e,H as i,g as o}from"./p-8455d1bb.js";import{i as a}from"./p-9397b15b.js";const n='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}.label-container{padding:var(--ic-space-xs);display:flex;justify-content:space-between;align-items:center}:host(.ic-accordion-group-small) .label-container{padding:var(--ic-space-xxs) var(--ic-space-xs)}:host(.ic-accordion-group-large) .label-container{padding:var(--ic-space-sm) var(--ic-space-xs)}:host(.ic-accordion-group-light){color:var(--ic-color-white-text);--ic-typography-color:var(--ic-color-white-text)}:host(.ic-accordion-group.ic-accordion-group-dark) ::slotted(ic-accordion){color:var(--ic-color-white-text);--ic-typography-color:var(--ic-color-white-text)}';let s=0;const r=class{constructor(e){t(this,e);this.accordionGroupId=`ic-accordion-group-${s++}`;this.handleExpanded=()=>{if(this.areAllAccordionsOpen){this.expanded=false;this.accordions.forEach((t=>{t.expanded=this.expanded}))}else{this.expanded=true;this.accordions.forEach((t=>{t.expanded=this.expanded}))}this.setExpandedToAreAllAccordionsOpen()};this.linkAccordions=()=>{this.accordions.forEach((t=>{t.setAttribute("context-id",this.accordionGroupId)}))};this.setExpandedToAreAllAccordionsOpen=()=>{this.areAllAccordionsOpen=this.accordions.every((t=>!!t.expanded))};this.accordionOpenBtnText=()=>!this.areAllAccordionsOpen?"See all":"Hide all";this.accordions=undefined;this.areAllAccordionsOpen=undefined;this.accessibleButtonLabel="accordions";this.appearance="default";this.expanded=false;this.label="";this.singleExpansion=false;this.size="medium"}watchAppearanceHandler(){this.accordions.forEach((t=>{t.appearance=this.appearance}))}watchExpandedHandler(){this.handleExpanded()}componentDidLoad(){const t=this.el.children;this.accordions=Array.from(t).filter((t=>t.tagName==="IC-ACCORDION"));this.linkAccordions();this.accordions.forEach((t=>{t.appearance=this.appearance}));this.accordions.forEach((t=>{t.size=this.size}));if(this.expanded){this.accordions.forEach((t=>{t.expanded=true}));this.setExpandedToAreAllAccordionsOpen()}else{this.setExpandedToAreAllAccordionsOpen();this.expanded=this.areAllAccordionsOpen}}handleAccordionClicked(t){if(!this.singleExpansion){this.setExpandedToAreAllAccordionsOpen()}else{this.accordions.forEach((e=>{if(e.expanded&&t.detail.id!==e.id){e.expanded=false}}))}}async setFocus(){const t=this.singleExpansion?this.accordions[0]:this.allButtonEl;t.setFocus()}render(){const{appearance:t,size:o,label:n,singleExpansion:s,accessibleButtonLabel:r}=this;return e(i,{"context-id":this.accordionGroupId,class:{[`ic-accordion-group-${t}`]:true,[`ic-accordion-group-${o}`]:true,["ic-accordion-group"]:true}},e("div",{class:"label-container"},e("ic-typography",{variant:"h4"},e("h3",null,a(this.el,"label")?e("slot",{name:"label"}):n)),!s&&e("ic-button",{ref:t=>this.allButtonEl=t,appearance:t==="light"?"light":"default",onClick:this.handleExpanded,variant:"tertiary","aria-label":`${this.accordionOpenBtnText()} ${r}`},this.accordionOpenBtnText())),e("slot",null))}get el(){return o(this)}static get watchers(){return{appearance:["watchAppearanceHandler"],expanded:["watchExpandedHandler"]}}};r.style=n;export{r as ic_accordion_group};
|
2
|
-
//# sourceMappingURL=p-a78cf2cb.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icAccordionGroupCss","accordionGroupIds","AccordionGroup","constructor","hostRef","this","accordionGroupId","handleExpanded","areAllAccordionsOpen","expanded","accordions","forEach","acc","setExpandedToAreAllAccordionsOpen","linkAccordions","accordion","setAttribute","every","accordionOpenBtnText","undefined","accessibleButtonLabel","appearance","label","singleExpansion","size","watchAppearanceHandler","watchExpandedHandler","componentDidLoad","accordionDirectChildren","el","children","Array","from","filter","child","tagName","handleAccordionClicked","event","detail","id","setFocus","focusEl","allButtonEl","render","h","Host","class","variant","isSlotUsed","name","ref","onClick"],"sources":["../web-components/dist/collection/components/ic-accordion-group/ic-accordion-group.css?tag=ic-accordion-group&encapsulation=shadow","../web-components/dist/collection/components/ic-accordion-group/ic-accordion-group.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n.label-container {\n padding: var(--ic-space-xs);\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n:host(.ic-accordion-group-small) .label-container {\n padding: var(--ic-space-xxs) var(--ic-space-xs);\n}\n\n:host(.ic-accordion-group-large) .label-container {\n padding: var(--ic-space-sm) var(--ic-space-xs);\n}\n\n:host(.ic-accordion-group-light) {\n color: var(--ic-color-white-text);\n\n --ic-typography-color: var(--ic-color-white-text);\n}\n\n:host(.ic-accordion-group.ic-accordion-group-dark) ::slotted(ic-accordion) {\n color: var(--ic-color-white-text);\n\n --ic-typography-color: var(--ic-color-white-text);\n}\n","import { h, Host, } from \"@stencil/core\";\nimport { isSlotUsed } from \"../../utils/helpers\";\nlet accordionGroupIds = 0;\n/**\n * @slot label - Content is placed as the accordion group title.\n */\nexport class AccordionGroup {\n constructor() {\n this.accordionGroupId = `ic-accordion-group-${accordionGroupIds++}`;\n this.handleExpanded = () => {\n if (this.areAllAccordionsOpen) {\n this.expanded = false;\n this.accordions.forEach((acc) => {\n acc.expanded = this.expanded;\n });\n }\n else {\n this.expanded = true;\n this.accordions.forEach((acc) => {\n acc.expanded = this.expanded;\n });\n }\n this.setExpandedToAreAllAccordionsOpen();\n };\n this.linkAccordions = () => {\n this.accordions.forEach((accordion) => {\n accordion.setAttribute(\"context-id\", this.accordionGroupId);\n });\n };\n this.setExpandedToAreAllAccordionsOpen = () => {\n this.areAllAccordionsOpen = this.accordions.every((accordion) => !!accordion.expanded);\n };\n this.accordionOpenBtnText = () => {\n return !this.areAllAccordionsOpen ? \"See all\" : \"Hide all\";\n };\n this.accordions = undefined;\n this.areAllAccordionsOpen = undefined;\n this.accessibleButtonLabel = \"accordions\";\n this.appearance = \"default\";\n this.expanded = false;\n this.label = \"\";\n this.singleExpansion = false;\n this.size = \"medium\";\n }\n watchAppearanceHandler() {\n this.accordions.forEach((acc) => {\n acc.appearance = this.appearance;\n });\n }\n watchExpandedHandler() {\n this.handleExpanded();\n }\n componentDidLoad() {\n const accordionDirectChildren = this.el.children;\n this.accordions = Array.from(accordionDirectChildren).filter((child) => child.tagName === \"IC-ACCORDION\");\n this.linkAccordions();\n this.accordions.forEach((acc) => {\n acc.appearance = this.appearance;\n });\n this.accordions.forEach((acc) => {\n acc.size = this.size;\n });\n if (this.expanded) {\n this.accordions.forEach((acc) => {\n acc.expanded = true;\n });\n this.setExpandedToAreAllAccordionsOpen();\n }\n else {\n this.setExpandedToAreAllAccordionsOpen();\n this.expanded = this.areAllAccordionsOpen;\n }\n }\n handleAccordionClicked(event) {\n if (!this.singleExpansion) {\n // 'See all' should be visible until all accordions are open, then 'Hide all' should be visible\n this.setExpandedToAreAllAccordionsOpen();\n }\n else {\n this.accordions.forEach((acc) => {\n if (acc.expanded && event.detail.id !== acc.id) {\n acc.expanded = false;\n }\n });\n }\n }\n /**\n * Sets the focus on first focusable element in the accordion group. If the \"See/Hide all\" button is present, it will be focused.\n * Otherwise, the first accordion will be focused.\n */\n async setFocus() {\n const focusEl = this.singleExpansion\n ? this.accordions[0]\n : this.allButtonEl;\n focusEl.setFocus();\n }\n render() {\n const { appearance, size, label, singleExpansion, accessibleButtonLabel } = this;\n return (h(Host, { \"context-id\": this.accordionGroupId, class: {\n [`ic-accordion-group-${appearance}`]: true,\n [`ic-accordion-group-${size}`]: true,\n [\"ic-accordion-group\"]: true,\n } }, h(\"div\", { class: \"label-container\" }, h(\"ic-typography\", { variant: \"h4\" }, h(\"h3\", null, isSlotUsed(this.el, \"label\") ? h(\"slot\", { name: \"label\" }) : label)), !singleExpansion && (h(\"ic-button\", { ref: (el) => (this.allButtonEl = el), appearance: appearance === \"light\" ? \"light\" : \"default\", onClick: this.handleExpanded, variant: \"tertiary\", \"aria-label\": `${this.accordionOpenBtnText()} ${accessibleButtonLabel}` }, this.accordionOpenBtnText()))), h(\"slot\", null)));\n }\n static get is() { return \"ic-accordion-group\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-accordion-group.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-accordion-group.css\"]\n };\n }\n static get properties() {\n return {\n \"accessibleButtonLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The accessible button label to provide more context to the 'See all/Hide all' button for screen reader users.\"\n },\n \"attribute\": \"accessible-button-label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"accordions\\\"\"\n },\n \"appearance\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeForeground\",\n \"resolved\": \"\\\"dark\\\" | \\\"default\\\" | \\\"light\\\"\",\n \"references\": {\n \"IcThemeForeground\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeForeground\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The appearance of the accordion group, e.g dark, or light.\"\n },\n \"attribute\": \"appearance\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"expanded\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the accordion will load in an expanded state.\"\n },\n \"attribute\": \"expanded\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The header for the accordion group.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"singleExpansion\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, only one accordion will open at a time.\"\n },\n \"attribute\": \"single-expansion\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"large\\\" | \\\"medium\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the accordion.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"medium\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"accordions\": {},\n \"areAllAccordionsOpen\": {}\n };\n }\n static get methods() {\n return {\n \"setFocus\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Sets the focus on first focusable element in the accordion group. If the \\\"See/Hide all\\\" button is present, it will be focused.\\nOtherwise, the first accordion will be focused.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"appearance\",\n \"methodName\": \"watchAppearanceHandler\"\n }, {\n \"propName\": \"expanded\",\n \"methodName\": \"watchExpandedHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"accordionClicked\",\n \"method\": \"handleAccordionClicked\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-accordion-group.js.map\n"],"mappings":"6FAAA,MAAMA,EAAsB,+5FCE5B,IAAIC,EAAoB,E,MAIXC,EAAc,MACvB,WAAAC,CAAAC,G,UACIC,KAAKC,iBAAmB,sBAAsBL,MAC9CI,KAAKE,eAAiB,KAClB,GAAIF,KAAKG,qBAAsB,CAC3BH,KAAKI,SAAW,MAChBJ,KAAKK,WAAWC,SAASC,IACrBA,EAAIH,SAAWJ,KAAKI,QAAQ,G,KAG/B,CACDJ,KAAKI,SAAW,KAChBJ,KAAKK,WAAWC,SAASC,IACrBA,EAAIH,SAAWJ,KAAKI,QAAQ,G,CAGpCJ,KAAKQ,mCAAmC,EAE5CR,KAAKS,eAAiB,KAClBT,KAAKK,WAAWC,SAASI,IACrBA,EAAUC,aAAa,aAAcX,KAAKC,iBAAiB,GAC7D,EAEND,KAAKQ,kCAAoC,KACrCR,KAAKG,qBAAuBH,KAAKK,WAAWO,OAAOF,KAAgBA,EAAUN,UAAS,EAE1FJ,KAAKa,qBAAuB,KAChBb,KAAKG,qBAAuB,UAAY,WAEpDH,KAAKK,WAAaS,UAClBd,KAAKG,qBAAuBW,UAC5Bd,KAAKe,sBAAwB,aAC7Bf,KAAKgB,WAAa,UAClBhB,KAAKI,SAAW,MAChBJ,KAAKiB,MAAQ,GACbjB,KAAKkB,gBAAkB,MACvBlB,KAAKmB,KAAO,Q,CAEhB,sBAAAC,GACIpB,KAAKK,WAAWC,SAASC,IACrBA,EAAIS,WAAahB,KAAKgB,UAAU,G,CAGxC,oBAAAK,GACIrB,KAAKE,gB,CAET,gBAAAoB,GACI,MAAMC,EAA0BvB,KAAKwB,GAAGC,SACxCzB,KAAKK,WAAaqB,MAAMC,KAAKJ,GAAyBK,QAAQC,GAAUA,EAAMC,UAAY,iBAC1F9B,KAAKS,iBACLT,KAAKK,WAAWC,SAASC,IACrBA,EAAIS,WAAahB,KAAKgB,UAAU,IAEpChB,KAAKK,WAAWC,SAASC,IACrBA,EAAIY,KAAOnB,KAAKmB,IAAI,IAExB,GAAInB,KAAKI,SAAU,CACfJ,KAAKK,WAAWC,SAASC,IACrBA,EAAIH,SAAW,IAAI,IAEvBJ,KAAKQ,mC,KAEJ,CACDR,KAAKQ,oCACLR,KAAKI,SAAWJ,KAAKG,oB,EAG7B,sBAAA4B,CAAuBC,GACnB,IAAKhC,KAAKkB,gBAAiB,CAEvBlB,KAAKQ,mC,KAEJ,CACDR,KAAKK,WAAWC,SAASC,IACrB,GAAIA,EAAIH,UAAY4B,EAAMC,OAAOC,KAAO3B,EAAI2B,GAAI,CAC5C3B,EAAIH,SAAW,K,MAS/B,cAAM+B,GACF,MAAMC,EAAUpC,KAAKkB,gBACflB,KAAKK,WAAW,GAChBL,KAAKqC,YACXD,EAAQD,U,CAEZ,MAAAG,GACI,MAAMtB,WAAEA,EAAUG,KAAEA,EAAIF,MAAEA,EAAKC,gBAAEA,EAAeH,sBAAEA,GAA0Bf,KAC5E,OAAQuC,EAAEC,EAAM,CAAE,aAAcxC,KAAKC,iBAAkBwC,MAAO,CACtD,CAAC,sBAAsBzB,KAAe,KACtC,CAAC,sBAAsBG,KAAS,KAChC,CAAC,sBAAuB,OACvBoB,EAAE,MAAO,CAAEE,MAAO,mBAAqBF,EAAE,gBAAiB,CAAEG,QAAS,MAAQH,EAAE,KAAM,KAAMI,EAAW3C,KAAKwB,GAAI,SAAWe,EAAE,OAAQ,CAAEK,KAAM,UAAa3B,KAAUC,GAAoBqB,EAAE,YAAa,CAAEM,IAAMrB,GAAQxB,KAAKqC,YAAcb,EAAKR,WAAYA,IAAe,QAAU,QAAU,UAAW8B,QAAS9C,KAAKE,eAAgBwC,QAAS,WAAY,aAAc,GAAG1C,KAAKa,0BAA0BE,KAA2Bf,KAAKa,yBAA2B0B,EAAE,OAAQ,M"}
|