@ukic/canary-web-components 3.0.0-canary.20 → 3.0.0-canary.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/{helpers-274ac318.js → helpers-74cf2649.js} +14 -2
- package/dist/cjs/helpers-74cf2649.js.map +1 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +8 -8
- 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 +13 -4
- package/dist/cjs/ic-badge.cjs.entry.js.map +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 +32 -30
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox_3.cjs.entry.js +9 -8
- package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-table.cjs.entry.js +42 -25
- package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-date-input.cjs.entry.js +5 -7
- package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-date-picker.cjs.entry.js +17 -10
- package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +3 -3
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +40 -48
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +2 -2
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +16 -8
- package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +6 -16
- 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 +1 -1
- package/dist/cjs/ic-pagination_4.cjs.entry.js +5 -5
- package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +16 -11
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +4 -4
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +3 -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 +2 -2
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.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 +1 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +16 -5
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button.cjs.entry.js +14 -5
- package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
- package/dist/cjs/ic-tree-item.cjs.entry.js +14 -8
- package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tree-view.cjs.entry.js +23 -15
- 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/loader.cjs.js +1 -1
- package/dist/collection/components/ic-data-table/ic-data-table.css +3 -2
- package/dist/collection/components/ic-data-table/ic-data-table.js +41 -24
- package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
- package/dist/collection/components/ic-data-table/ic-data-table.stories.js +2 -2
- package/dist/collection/components/ic-data-table/ic-data-table.stories.js.map +1 -1
- package/dist/collection/components/ic-data-table/story-data.js +32 -73
- package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
- package/dist/collection/components/ic-date-input/ic-date-input.css +1 -1
- package/dist/collection/components/ic-date-input/ic-date-input.js +4 -6
- package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
- package/dist/collection/components/ic-date-picker/ic-date-picker.js +37 -10
- package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
- package/dist/collection/components/ic-tree-item/ic-tree-item.js +14 -8
- package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
- package/dist/collection/components/ic-tree-view/ic-tree-view.js +23 -15
- package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
- package/dist/components/helpers.js +13 -1
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ic-alert.js +7 -7
- package/dist/components/ic-alert.js.map +1 -1
- package/dist/components/ic-badge.js +12 -3
- package/dist/components/ic-badge.js.map +1 -1
- package/dist/components/ic-button2.js +1 -1
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +1 -1
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox2.js +8 -7
- package/dist/components/ic-checkbox2.js.map +1 -1
- package/dist/components/ic-data-table.js +42 -25
- package/dist/components/ic-data-table.js.map +1 -1
- package/dist/components/ic-date-input2.js +5 -7
- package/dist/components/ic-date-input2.js.map +1 -1
- package/dist/components/ic-date-picker.js +18 -10
- package/dist/components/ic-date-picker.js.map +1 -1
- package/dist/components/ic-dialog.js +2 -2
- package/dist/components/ic-dialog.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-input-label2.js +1 -1
- package/dist/components/ic-input-label2.js.map +1 -1
- package/dist/components/ic-link2.js +1 -1
- package/dist/components/ic-link2.js.map +1 -1
- package/dist/components/ic-loading-indicator2.js +23 -28
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu2.js +42 -47
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-button.js +18 -9
- package/dist/components/ic-navigation-button.js.map +1 -1
- package/dist/components/ic-navigation-item.js +5 -15
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-popover-menu.js +18 -11
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-search-bar.js +3 -3
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-select2.js +3 -3
- package/dist/components/ic-select2.js.map +1 -1
- package/dist/components/ic-side-navigation.js +2 -2
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-switch.js +1 -1
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-text-field2.js +1 -1
- package/dist/components/ic-text-field2.js.map +1 -1
- package/dist/components/ic-toggle-button-group.js +17 -4
- package/dist/components/ic-toggle-button-group.js.map +1 -1
- package/dist/components/ic-toggle-button.js +14 -4
- package/dist/components/ic-toggle-button.js.map +1 -1
- package/dist/components/ic-tooltip2.js +12 -4
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-tree-item.js +15 -9
- package/dist/components/ic-tree-item.js.map +1 -1
- package/dist/components/ic-tree-view.js +24 -16
- package/dist/components/ic-tree-view.js.map +1 -1
- package/dist/core/core.css +38 -24
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-826a4e46.entry.js → p-032113b9.entry.js} +2 -2
- package/dist/core/{p-acc884bc.entry.js → p-0dc0d839.entry.js} +2 -2
- package/dist/core/{p-13f52d7b.js → p-0fe08a58.js} +2 -2
- package/dist/core/p-0fe08a58.js.map +1 -0
- package/dist/core/{p-972f21fa.entry.js → p-137dd76e.entry.js} +2 -2
- package/dist/core/p-156fc5f1.entry.js +2 -0
- package/dist/core/p-156fc5f1.entry.js.map +1 -0
- package/dist/core/p-15ec796a.entry.js +2 -0
- package/dist/core/p-15ec796a.entry.js.map +1 -0
- package/dist/core/{p-4271e7f4.entry.js → p-1e256460.entry.js} +2 -2
- package/dist/core/p-1ffac8ae.entry.js +2 -0
- package/dist/core/p-1ffac8ae.entry.js.map +1 -0
- package/dist/core/p-224b2e14.entry.js +2 -0
- package/dist/core/p-224b2e14.entry.js.map +1 -0
- package/dist/core/{p-09acf70a.entry.js → p-2c4bf16f.entry.js} +2 -2
- package/dist/core/{p-0bc8652d.entry.js → p-2d8900bf.entry.js} +2 -2
- package/dist/core/{p-a6b573c0.entry.js → p-2de3287c.entry.js} +2 -2
- package/dist/core/{p-28b10396.entry.js → p-33404c14.entry.js} +2 -2
- package/dist/core/{p-29601c16.entry.js → p-3cf99186.entry.js} +2 -2
- package/dist/core/{p-3f45c7ce.entry.js → p-42913c5b.entry.js} +2 -2
- package/dist/core/p-497918fd.entry.js +2 -0
- package/dist/core/p-497918fd.entry.js.map +1 -0
- package/dist/core/{p-6938e1d9.entry.js → p-5237f3ac.entry.js} +2 -2
- package/dist/core/{p-f35563a0.entry.js → p-5d987f8f.entry.js} +2 -2
- package/dist/core/p-64372a57.entry.js +2 -0
- package/dist/core/p-64372a57.entry.js.map +1 -0
- package/dist/core/{p-c6bd71e5.entry.js → p-6e7aaca5.entry.js} +2 -2
- package/dist/core/{p-c6bd71e5.entry.js.map → p-6e7aaca5.entry.js.map} +1 -1
- package/dist/core/{p-3b994e61.entry.js → p-6f72e6ac.entry.js} +2 -2
- package/dist/core/p-755bdc43.entry.js +2 -0
- package/dist/core/p-755bdc43.entry.js.map +1 -0
- package/dist/core/{p-afff5652.entry.js → p-75901d06.entry.js} +2 -2
- package/dist/core/p-78635447.entry.js +2 -0
- package/dist/core/p-78635447.entry.js.map +1 -0
- package/dist/core/p-826a6c25.entry.js +2 -0
- package/dist/core/p-826a6c25.entry.js.map +1 -0
- package/dist/core/{p-7436d8de.entry.js → p-832c7042.entry.js} +2 -2
- package/dist/core/{p-ef444b18.entry.js → p-8397766e.entry.js} +2 -2
- package/dist/core/p-8397766e.entry.js.map +1 -0
- package/dist/core/p-88c5ec78.entry.js +2 -0
- package/dist/core/p-88c5ec78.entry.js.map +1 -0
- package/dist/core/{p-e3059589.entry.js → p-8cb5deba.entry.js} +2 -2
- package/dist/core/{p-301131d6.entry.js → p-8d908a57.entry.js} +2 -2
- package/dist/core/{p-2c27c85b.entry.js → p-90364cef.entry.js} +2 -2
- package/dist/core/{p-6f7e8b3e.entry.js → p-9097a16a.entry.js} +2 -2
- package/dist/core/p-9097a16a.entry.js.map +1 -0
- package/dist/core/{p-b522ce0a.entry.js → p-94065f7a.entry.js} +2 -2
- package/dist/core/p-95881758.entry.js +2 -0
- package/dist/core/p-95881758.entry.js.map +1 -0
- package/dist/core/{p-b093cecd.entry.js → p-97abdbf7.entry.js} +2 -2
- package/dist/core/p-a220535c.entry.js +2 -0
- package/dist/core/p-a220535c.entry.js.map +1 -0
- package/dist/core/{p-91eacea5.entry.js → p-a26a60ff.entry.js} +2 -2
- package/dist/core/{p-b401ff42.entry.js → p-a54eb1d1.entry.js} +2 -2
- package/dist/core/p-a54eb1d1.entry.js.map +1 -0
- package/dist/core/{p-da82bbef.entry.js → p-b27bc1a1.entry.js} +2 -2
- package/dist/core/{p-856e0cda.entry.js → p-b88585bf.entry.js} +2 -2
- package/dist/core/p-b88585bf.entry.js.map +1 -0
- package/dist/core/{p-9e19560f.entry.js → p-bbf39a76.entry.js} +2 -2
- package/dist/core/{p-9e19560f.entry.js.map → p-bbf39a76.entry.js.map} +1 -1
- package/dist/core/p-bc974a3e.entry.js +2 -0
- package/dist/core/p-bc974a3e.entry.js.map +1 -0
- package/dist/core/{p-a34c894b.entry.js → p-bf93baea.entry.js} +2 -2
- package/dist/core/p-c67381b1.entry.js +2 -0
- package/dist/core/p-c67381b1.entry.js.map +1 -0
- package/dist/core/{p-6c97db37.entry.js → p-c77d6efc.entry.js} +2 -2
- package/dist/core/{p-c21317e5.entry.js → p-c94e7b0b.entry.js} +2 -2
- package/dist/core/p-c94e7b0b.entry.js.map +1 -0
- package/dist/core/{p-4d5dfb71.entry.js → p-cc36abaa.entry.js} +2 -2
- package/dist/core/{p-4e2ef907.entry.js → p-cd8178a9.entry.js} +2 -2
- package/dist/core/{p-693a568b.entry.js → p-cdd6d5e8.entry.js} +2 -2
- package/dist/core/p-d04b75cb.entry.js +2 -0
- package/dist/core/p-d04b75cb.entry.js.map +1 -0
- package/dist/core/{p-704c5fee.entry.js → p-e18ba5d6.entry.js} +2 -2
- package/dist/core/p-e2103bcc.entry.js +2 -0
- package/dist/core/p-e2103bcc.entry.js.map +1 -0
- package/dist/core/{p-95d3ff68.entry.js → p-f569a91f.entry.js} +2 -2
- package/dist/core/p-fb7f4e2e.entry.js +2 -0
- package/dist/core/p-fb7f4e2e.entry.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-f094ef64.js → helpers-574534c9.js} +14 -2
- package/dist/esm/helpers-574534c9.js.map +1 -0
- package/dist/esm/ic-accordion-group.entry.js +1 -1
- package/dist/esm/ic-accordion.entry.js +1 -1
- package/dist/esm/ic-alert.entry.js +8 -8
- 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 +13 -4
- package/dist/esm/ic-badge.entry.js.map +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 +32 -30
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card-vertical.entry.js +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +2 -2
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox_3.entry.js +9 -8
- package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +1 -1
- package/dist/esm/ic-data-row.entry.js +1 -1
- package/dist/esm/ic-data-table.entry.js +42 -25
- package/dist/esm/ic-data-table.entry.js.map +1 -1
- package/dist/esm/ic-date-input.entry.js +5 -7
- package/dist/esm/ic-date-input.entry.js.map +1 -1
- package/dist/esm/ic-date-picker.entry.js +17 -10
- package/dist/esm/ic-date-picker.entry.js.map +1 -1
- package/dist/esm/ic-dialog.entry.js +3 -3
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +1 -1
- package/dist/esm/ic-footer-link-group.entry.js +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 +1 -1
- package/dist/esm/ic-hero.entry.js +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +40 -48
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +2 -2
- package/dist/esm/ic-input-label_2.entry.js.map +1 -1
- package/dist/esm/ic-link.entry.js +2 -2
- package/dist/esm/ic-link.entry.js.map +1 -1
- package/dist/esm/ic-menu-group.entry.js +1 -1
- package/dist/esm/ic-menu-item.entry.js +1 -1
- package/dist/esm/ic-navigation-button.entry.js +16 -8
- package/dist/esm/ic-navigation-button.entry.js.map +1 -1
- package/dist/esm/ic-navigation-group.entry.js +1 -1
- package/dist/esm/ic-navigation-item.entry.js +6 -16
- 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 +1 -1
- package/dist/esm/ic-pagination_4.entry.js +5 -5
- package/dist/esm/ic-pagination_4.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +16 -11
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +1 -1
- package/dist/esm/ic-radio-option.entry.js +1 -1
- package/dist/esm/ic-search-bar.entry.js +4 -4
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +3 -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 +2 -2
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.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 +1 -1
- package/dist/esm/ic-toggle-button-group.entry.js +16 -5
- package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button.entry.js +14 -5
- package/dist/esm/ic-toggle-button.entry.js.map +1 -1
- package/dist/esm/ic-top-navigation.entry.js +1 -1
- package/dist/esm/ic-tree-item.entry.js +15 -9
- package/dist/esm/ic-tree-item.entry.js.map +1 -1
- package/dist/esm/ic-tree-view.entry.js +24 -16
- package/dist/esm/ic-tree-view.entry.js.map +1 -1
- package/dist/esm/ic-typography.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-data-table/ic-data-table.d.ts +2 -2
- package/dist/types/components/ic-data-table/ic-data-table.stories.d.ts +1 -1
- package/dist/types/components/ic-data-table/story-data.d.ts +0 -64
- package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +4 -0
- package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +2 -0
- package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +2 -1
- package/dist/types/components.d.ts +8 -0
- package/hydrate/index.js +300 -216
- package/hydrate/index.mjs +300 -216
- package/package.json +3 -3
- package/dist/cjs/helpers-274ac318.js.map +0 -1
- package/dist/core/p-13f52d7b.js.map +0 -1
- package/dist/core/p-304c6a01.entry.js +0 -2
- package/dist/core/p-304c6a01.entry.js.map +0 -1
- package/dist/core/p-3352cb6c.entry.js +0 -2
- package/dist/core/p-3352cb6c.entry.js.map +0 -1
- package/dist/core/p-4150f333.entry.js +0 -2
- package/dist/core/p-4150f333.entry.js.map +0 -1
- package/dist/core/p-4f941e4c.entry.js +0 -2
- package/dist/core/p-4f941e4c.entry.js.map +0 -1
- package/dist/core/p-57e881b4.entry.js +0 -2
- package/dist/core/p-57e881b4.entry.js.map +0 -1
- package/dist/core/p-5f8b09e4.entry.js +0 -2
- package/dist/core/p-5f8b09e4.entry.js.map +0 -1
- package/dist/core/p-6f7e8b3e.entry.js.map +0 -1
- package/dist/core/p-7001f1c1.entry.js +0 -2
- package/dist/core/p-7001f1c1.entry.js.map +0 -1
- package/dist/core/p-795afeb2.entry.js +0 -2
- package/dist/core/p-795afeb2.entry.js.map +0 -1
- package/dist/core/p-7dcdb89b.entry.js +0 -2
- package/dist/core/p-7dcdb89b.entry.js.map +0 -1
- package/dist/core/p-82941d0a.entry.js +0 -2
- package/dist/core/p-82941d0a.entry.js.map +0 -1
- package/dist/core/p-856e0cda.entry.js.map +0 -1
- package/dist/core/p-8e70b907.entry.js +0 -2
- package/dist/core/p-8e70b907.entry.js.map +0 -1
- package/dist/core/p-961d7718.entry.js +0 -2
- package/dist/core/p-961d7718.entry.js.map +0 -1
- package/dist/core/p-b401ff42.entry.js.map +0 -1
- package/dist/core/p-b9369ce5.entry.js +0 -2
- package/dist/core/p-b9369ce5.entry.js.map +0 -1
- package/dist/core/p-c21317e5.entry.js.map +0 -1
- package/dist/core/p-c73418dc.entry.js +0 -2
- package/dist/core/p-c73418dc.entry.js.map +0 -1
- package/dist/core/p-cd21aee7.entry.js +0 -2
- package/dist/core/p-cd21aee7.entry.js.map +0 -1
- package/dist/core/p-e04d2e51.entry.js +0 -2
- package/dist/core/p-e04d2e51.entry.js.map +0 -1
- package/dist/core/p-e4bff243.entry.js +0 -2
- package/dist/core/p-e4bff243.entry.js.map +0 -1
- package/dist/core/p-ef444b18.entry.js.map +0 -1
- package/dist/esm/helpers-f094ef64.js.map +0 -1
- /package/dist/core/{p-826a4e46.entry.js.map → p-032113b9.entry.js.map} +0 -0
- /package/dist/core/{p-acc884bc.entry.js.map → p-0dc0d839.entry.js.map} +0 -0
- /package/dist/core/{p-972f21fa.entry.js.map → p-137dd76e.entry.js.map} +0 -0
- /package/dist/core/{p-4271e7f4.entry.js.map → p-1e256460.entry.js.map} +0 -0
- /package/dist/core/{p-09acf70a.entry.js.map → p-2c4bf16f.entry.js.map} +0 -0
- /package/dist/core/{p-0bc8652d.entry.js.map → p-2d8900bf.entry.js.map} +0 -0
- /package/dist/core/{p-a6b573c0.entry.js.map → p-2de3287c.entry.js.map} +0 -0
- /package/dist/core/{p-28b10396.entry.js.map → p-33404c14.entry.js.map} +0 -0
- /package/dist/core/{p-29601c16.entry.js.map → p-3cf99186.entry.js.map} +0 -0
- /package/dist/core/{p-3f45c7ce.entry.js.map → p-42913c5b.entry.js.map} +0 -0
- /package/dist/core/{p-6938e1d9.entry.js.map → p-5237f3ac.entry.js.map} +0 -0
- /package/dist/core/{p-f35563a0.entry.js.map → p-5d987f8f.entry.js.map} +0 -0
- /package/dist/core/{p-3b994e61.entry.js.map → p-6f72e6ac.entry.js.map} +0 -0
- /package/dist/core/{p-afff5652.entry.js.map → p-75901d06.entry.js.map} +0 -0
- /package/dist/core/{p-7436d8de.entry.js.map → p-832c7042.entry.js.map} +0 -0
- /package/dist/core/{p-e3059589.entry.js.map → p-8cb5deba.entry.js.map} +0 -0
- /package/dist/core/{p-301131d6.entry.js.map → p-8d908a57.entry.js.map} +0 -0
- /package/dist/core/{p-2c27c85b.entry.js.map → p-90364cef.entry.js.map} +0 -0
- /package/dist/core/{p-b522ce0a.entry.js.map → p-94065f7a.entry.js.map} +0 -0
- /package/dist/core/{p-b093cecd.entry.js.map → p-97abdbf7.entry.js.map} +0 -0
- /package/dist/core/{p-91eacea5.entry.js.map → p-a26a60ff.entry.js.map} +0 -0
- /package/dist/core/{p-da82bbef.entry.js.map → p-b27bc1a1.entry.js.map} +0 -0
- /package/dist/core/{p-a34c894b.entry.js.map → p-bf93baea.entry.js.map} +0 -0
- /package/dist/core/{p-6c97db37.entry.js.map → p-c77d6efc.entry.js.map} +0 -0
- /package/dist/core/{p-4d5dfb71.entry.js.map → p-cc36abaa.entry.js.map} +0 -0
- /package/dist/core/{p-4e2ef907.entry.js.map → p-cd8178a9.entry.js.map} +0 -0
- /package/dist/core/{p-693a568b.entry.js.map → p-cdd6d5e8.entry.js.map} +0 -0
- /package/dist/core/{p-704c5fee.entry.js.map → p-e18ba5d6.entry.js.map} +0 -0
- /package/dist/core/{p-95d3ff68.entry.js.map → p-f569a91f.entry.js.map} +0 -0
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icInputLabelCss","IcInputLabelStyle0","InputLabel","constructor","hostRef","this","disabled","helperText","hideLabel","readonly","required","status","useLabelTag","isHelperTextSlotUsed","slot","assignedEls","assignedElements","length","el","tagName","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","render","labelText","helperTextId","for","getInputHelperTextID","helperTextClass","helpertext","helperTextSlot","querySelector","h","Host","key","class","variant","htmlFor","id","name","icInputValidationCss","IcInputValidationStyle0","icon","IcInformationStatus","Warning","warningIcon","Error","errorIcon","Success","successIcon","InputValidation","ariaLiveMode","fullWidth","message","displayIcon","innerHTML","getInputValidationTextID"],"sources":["../web-components/dist/collection/components/ic-input-label/ic-input-label.css?tag=ic-input-label","../web-components/dist/collection/components/ic-input-label/ic-input-label.js","../web-components/dist/collection/components/ic-input-validation/ic-input-validation.css?tag=ic-input-validation","../web-components/dist/collection/components/ic-input-validation/ic-input-validation.js"],"sourcesContent":["ic-input-label {\n margin-bottom: var(--ic-space-xs);\n\n --ic-typography-color: var(\n --ic-input-label-text-color,\n var(--ic-color-text-primary)\n );\n}\n\nic-input-label.with-helper {\n margin-bottom: var(--ic-space-xxxs);\n}\n\nic-input-label.ic-input-label-readonly {\n --ic-typography-color: var(--ic-input-label-readonly-typography-color);\n}\n\nic-input-label .helpertext,\nic-input-label .helpertext ::slotted(*) {\n margin-top: var(--ic-space-xxxs);\n padding-bottom: var(--ic-input-label-helpertext-padding, 0);\n\n --ic-typography-color: var(\n --ic-input-label-helper-text-color,\n var(--ic-color-text-secondary)\n );\n}\n\nic-input-label .helpertext-normal {\n --ic-typography-color: var(\n --ic-input-label-helper-text-color,\n var(--ic-color-text-secondary)\n );\n}\n\nic-input-label .helpertext-readonly {\n --ic-typography-color: var(--ic-input-label-readonly-helpertext-color);\n}\n\nic-input-label .readonly-label {\n --ic-typography-color: var(--ic-input-label-readonly-label-color);\n}\n\nic-input-label .error-label {\n --ic-typography-color: var(--ic-input-label-error-label-color);\n}\n","import { Host, h } from \"@stencil/core\";\nimport { getInputHelperTextID, onComponentRequiredPropUndefined, } from \"../../utils/helpers\";\nexport class InputLabel {\n constructor() {\n /**\n * If `true`, the disabled state will be set.\n */\n this.disabled = false;\n /**\n * The helper text that will be displayed.\n */\n this.helperText = \"\";\n /**\n * The label will be visually hidden.\n */\n this.hideLabel = false;\n /**\n * If `true`, the readonly state will be set.\n */\n this.readonly = false;\n /**\n * If `true`, the input label will require a value.\n */\n this.required = false;\n /**\n * The status of the label - e.g. 'error'.\n */\n this.status = \"\";\n /**\n * @internal If `true`, wraps label text in label tag\n */\n this.useLabelTag = true;\n this.isHelperTextSlotUsed = (slot) => {\n const assignedEls = slot === null || slot === void 0 ? void 0 : slot.assignedElements();\n if (assignedEls && assignedEls.length) {\n for (const el of assignedEls) {\n if (el.tagName === \"SLOT\") {\n // Recursion needed for when slot is forwarded multiple times - through child components\n // (e.g. in date picker)\n if (this.isHelperTextSlotUsed(el)) {\n return true;\n }\n }\n else {\n // Found an assigned element which is not a nested <slot>\n return true;\n }\n }\n }\n return false;\n };\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.label, propName: \"label\" }], \"Input Label\");\n }\n render() {\n const { disabled, readonly, label, required, helperText, status, hideLabel, useLabelTag, } = this;\n const labelText = required ? label + \" *\" : label;\n const helperTextId = this.for && getInputHelperTextID(this.for);\n const helperTextClass = {\n helpertext: true,\n \"helpertext-normal\": !disabled && !readonly,\n \"helpertext-readonly\": readonly,\n };\n const helperTextSlot = this.el.querySelector(\"slot[name='helper-text']\");\n return (h(Host, { key: 'f03d8032ac769d4ecea37fe7a60e9d5acea54cd9', class: {\n \"ic-input-label-disabled\": !!disabled,\n \"ic-input-label-readonly\": readonly,\n \"with-helper\": this.isHelperTextSlotUsed(helperTextSlot) || helperText !== \"\",\n } }, !hideLabel && (h(\"ic-typography\", { key: '7af61c1f2a1b9068fb9a9b649f60da1784207aa3', variant: \"label\", class: {\n \"readonly-label\": readonly,\n \"error-label\": status === \"error\" && !(readonly || disabled),\n } }, readonly || !useLabelTag ? (`${labelText}`) : (h(\"label\", { htmlFor: this.for }, labelText)))), this.isHelperTextSlotUsed(helperTextSlot) ? (h(\"span\", { id: helperTextId, class: helperTextClass }, h(\"slot\", { name: \"helper-text\" }))) : (helperText !== \"\" && (h(\"ic-typography\", { variant: \"caption\", class: helperTextClass }, h(\"span\", { id: helperTextId }, helperText))))));\n }\n static get is() { return \"ic-input-label\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"./ic-input-label.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-input-label.css\"]\n };\n }\n static get properties() {\n return {\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"for\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ID of the form element the label is bound to.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"for\",\n \"reflect\": false\n },\n \"helperText\": {\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 helper text that will be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"helper-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"hideLabel\": {\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\": \"The label will be visually hidden.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"hide-label\",\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\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text content of the label.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"readonly\": {\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`, the readonly state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"readonly\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"required\": {\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`, the input label will require a value.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"required\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"status\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"error\\\" | \\\"\\\"\",\n \"resolved\": \"\\\"\\\" | \\\"error\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The status of the label - e.g. 'error'.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"status\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"useLabelTag\": {\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 \"name\": \"internal\",\n \"text\": \"If `true`, wraps label text in label tag\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"use-label-tag\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=ic-input-label.js.map\n","ic-input-validation {\n width: var(--input-width, 20rem);\n margin-top: var(--ic-space-xs);\n display: flex;\n}\n\nic-input-validation.ic-input-validation-full-width {\n width: 100%;\n}\n\nic-input-validation span.status-icon {\n padding-right: var(--ic-space-xxs);\n}\n\nic-input-validation span.status-icon > svg {\n height: 1.25rem;\n width: 1.25rem;\n}\n\nic-input-validation span.icon-success > svg {\n fill: var(--ic-input-validation-success-icon-color);\n}\n\nic-input-validation span.icon-error > svg {\n fill: var(--ic-input-validation-error, var(--ic-atoms-status-icon-error));\n}\n\nic-input-validation span.icon-warning > svg {\n fill: var(--ic-input-validation-warning-icon-color);\n}\n\nic-input-validation .statustext {\n flex-grow: 1;\n color: var(\n --ic-input-validation-status-text-color,\n var(--ic-color-text-primary)\n );\n\n --ic-typography-color: var(\n --ic-input-validation-status-text-color,\n var(--ic-color-text-primary)\n );\n}\n","import { Host, h } from \"@stencil/core\";\nimport { IcInformationStatus, } from \"../../utils/types\";\nimport errorIcon from \"../../assets/error-icon.svg\";\nimport successIcon from \"../../assets/success-icon.svg\";\nimport warningIcon from \"../../assets/warning-icon.svg\";\nimport { getInputValidationTextID, onComponentRequiredPropUndefined, } from \"../../utils/helpers\";\nconst icon = {\n [IcInformationStatus.Warning]: warningIcon,\n [IcInformationStatus.Error]: errorIcon,\n [IcInformationStatus.Success]: successIcon,\n};\n/**\n * @slot validation-message-adornment - Content will be placed to the right of the validation message.\n */\nexport class InputValidation {\n constructor() {\n /**\n * The ARIA live mode to apply to the message.\n */\n this.ariaLiveMode = \"polite\";\n /**\n * If `true`, the input validation will fill the width of the container.\n */\n this.fullWidth = false;\n /**\n * The status of the validation - e.g. 'error' | 'warning' | 'success'.\n */\n this.status = \"\";\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.message, propName: \"message\" }], \"Input Validation\");\n }\n render() {\n const { ariaLiveMode, fullWidth, status, message } = this;\n const displayIcon = status !== \"\" ? icon[status] : \"\";\n return (h(Host, { key: '2ab746f75a46252bc0755dfd28220dbe555b93b3', class: {\n [`ic-input-validation-${status}`]: status !== \"\",\n \"ic-input-validation-full-width\": !!fullWidth,\n } }, displayIcon !== \"\" && (h(\"span\", { key: 'fc02067a0c0f1e9672e190f1bd30774cd2cfcfe0', class: {\n \"status-icon\": true,\n [`icon-${status}`]: true,\n }, innerHTML: displayIcon })), h(\"ic-typography\", { key: 'f8d3c1d9d7f30e232ebbc827033ad318485f7c98', variant: \"caption\", class: \"statustext\" }, h(\"span\", { key: '73b35c4a5c4dbe77fe4c71032020a0346e34fcfd', \"aria-live\": ariaLiveMode, id: this.for && getInputValidationTextID(this.for) }, message)), h(\"slot\", { key: '629f37113c9354db274019eadc9ae7140adf921a', name: \"validation-message-adornment\" })));\n }\n static get is() { return \"ic-input-validation\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-input-validation.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-input-validation.css\"]\n };\n }\n static get properties() {\n return {\n \"ariaLiveMode\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcAriaLiveModeVariants\",\n \"resolved\": \"\\\"assertive\\\" | \\\"polite\\\" | undefined\",\n \"references\": {\n \"IcAriaLiveModeVariants\": {\n \"location\": \"import\",\n \"path\": \"./ic-input-validation.types\",\n \"id\": \"src/components/ic-input-validation/ic-input-validation.types.tsx::IcAriaLiveModeVariants\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ARIA live mode to apply to the message.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"aria-live-mode\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"polite\\\"\"\n },\n \"for\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ID of the form element the validation is bound to.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"for\",\n \"reflect\": false\n },\n \"fullWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the input validation will fill the width of the container.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"message\": {\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 validation message to display.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"message\",\n \"reflect\": false\n },\n \"status\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcInformationStatusOrEmpty\",\n \"resolved\": \"\\\"\\\" | \\\"error\\\" | \\\"success\\\" | \\\"warning\\\" | undefined\",\n \"references\": {\n \"IcInformationStatusOrEmpty\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcInformationStatusOrEmpty\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The status of the validation - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"status\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=ic-input-validation.js.map\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,c as e,h as o,H as i,g as n}from"./p-8e4e97b4.js";import{r}from"./p-13f52d7b.js";const s='/*! 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}:root{display:block}:host{display:flex;flex-direction:row;width:-moz-fit-content;width:fit-content;min-width:-moz-min-content;min-width:min-content;border:var(--ic-border-width) solid var(--ic-toggle-button-unselected-border);border-radius:var(--ic-border-radius)}:host(.ic-toggle-button-group-full-width){width:100%;max-width:100%}:host(.ic-toggle-button-group-loading){min-width:-moz-max-content;min-width:max-content}:host(:focus){box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-transition-duration-fast);outline:none}::slotted(ic-toggle-button){flex-grow:1;width:-moz-min-content;width:min-content;--toggle-button-border:none !important;--toggle-button-border-hover:none !important;--toggle-button-border-active:none !important}::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border)}:host(.ic-toggle-button-group-disabled){border:var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled);pointer-events:none}:host(.ic-toggle-button-group-disabled) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled)}:host(.ic-toggle-button-group-monochrome){border:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome)}:host(.ic-toggle-button-group-monochrome) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome)}:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome){border:var(--ic-border-width) dashed\n var(--ic-toggle-button-unselected-border-disabled-monochrome)}:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-disabled-monochrome)}';const a=s;const d="IC-TOGGLE-BUTTON-GROUP";const l=class{constructor(o){t(this,o);this.icChange=e(this,"icChange",7);this.lastKeyPressed={key:null,shift:false};this.accessibleLabel="Toggle button group";this.disabled=false;this.fullWidth=false;this.loading=false;this.monochrome=false;this.selectMethod="manual";this.selectType="single";this.size="medium";this.theme="inherit";this.tooltipPlacement="bottom";this.variant="default";this.keyListener=t=>{this.lastKeyPressed={key:t.key,shift:t.shiftKey}};this.handleHostFocus=({target:t,relatedTarget:e})=>{var o;if(this.loading||this.disabled)return;const i=t;const n=e;const r=Array.from((i===null||i===void 0?void 0:i.querySelectorAll("ic-toggle-button"))||[]);const s=r.every((t=>!t.checked));const{shift:a}=this.lastKeyPressed;if((s||this.selectType!=="single")&&!a||s&&a&&(n===null||n===void 0?void 0:n.tagName)==d){(o=r[0])===null||o===void 0?void 0:o.focus()}else if(!a||(n===null||n===void 0?void 0:n.tagName)==d){r.filter((t=>t.checked))[0].focus()}};this.handleKeyDown=({key:t})=>{if(t!=="ArrowDown"&&t!=="ArrowRight"&&t!=="ArrowLeft"&&t!=="ArrowUp")return;const e=this.getAllToggleButtons();const o=e[this.getNextItemToSelect(e.indexOf(e.filter((t=>t===document.activeElement))[0]),t==="ArrowDown"||t==="ArrowRight")];if(this.selectMethod==="auto"){o.checked=true;this.selectHandler(new CustomEvent("icToggleChecked",{detail:{checked:o.checked}}),o)}else{o.focus()}};this.getNextItemToSelect=(t,e)=>{const o=this.getAllToggleButtons();const i=o.length-1;if(t<1){t=0}let n=e?t+1:t-1;if(n<0){n=i}else if(n>i){n=0}if(o[n].disabled){n=this.getNextItemToSelect(n,e)}return n};this.getAllToggleButtons=()=>Array.from(this.el.querySelectorAll("ic-toggle-button"))}watchDisabledHandler(){this.getAllToggleButtons().forEach((t=>{t.disabled=this.disabled}));r(this.disabled,this.el)}watchFullWidthHandler(){this.getAllToggleButtons().forEach((t=>{t.fullWidth=this.fullWidth}))}watchLoadingHandler(){this.getAllToggleButtons().forEach((t=>{t.loading=this.loading}))}watchMonochromeHandler(){this.getAllToggleButtons().forEach((t=>{t.monochrome=this.monochrome}))}watchSizeHandler(){this.getAllToggleButtons().forEach((t=>{t.size=this.size}))}watchThemeHandler(){this.getAllToggleButtons().forEach((t=>{t.theme=this.theme}))}watchTooltipPlacementHandler(){this.getAllToggleButtons().forEach((t=>{t.tooltipPlacement=this.tooltipPlacement}))}watchVariantHandler(){this.getAllToggleButtons().forEach((t=>{t.variant=this.variant}))}selectHandler(t,e){const o=this.getAllToggleButtons();let i=t.target;if(e)e.focus();if(this.selectType==="single"){if(!i&&e){i=e}o.forEach((t=>{if(t.id!==i.id&&t.checked){t.checked=false}}));this.icChange.emit({checked:t.detail.checked,selectedOption:i})}else{const t=o.filter((t=>t.checked&&!t.disabled));this.icChange.emit({checked:t.map((t=>t.checked)),toggledOptions:t.map((t=>({toggleButton:t}))),selectedOption:i})}}componentWillLoad(){if(this.selectType==="multi")this.selectMethod="manual";document.addEventListener("keydown",this.keyListener);r(this.disabled,this.el)}componentDidLoad(){this.getAllToggleButtons().forEach(((t,e)=>{var o,i,n;const r=(n=(i=(o=t.shadowRoot)===null||o===void 0?void 0:o.querySelector("ic-button"))===null||i===void 0?void 0:i.shadowRoot)===null||n===void 0?void 0:n.querySelector("button");if(r){const t=r.getAttribute("aria-label");const e=t?`${t}, `:"";r.setAttribute("aria-label",`${e}${this.accessibleLabel}`)}t.id=e.toString();t.tabIndex=-1;t.addEventListener("keydown",(t=>{this.handleKeyDown(t)}));t.classList.add("expand-toggle-group-child")}))}disconnectedCallback(){document===null||document===void 0?void 0:document.removeEventListener("keydown",this.keyListener)}render(){const{accessibleLabel:t,disabled:e,fullWidth:n,loading:r,monochrome:s,theme:a}=this;return o(i,{key:"c82ba602f319c2074da44667618cc5d7b7c3499b",role:"group","aria-label":t,tabindex:0,class:{"ic-toggle-button-group-disabled":e,"ic-toggle-button-group-full-width":n,"ic-toggle-button-group-loading":r,"ic-toggle-button-group-monochrome":s,[`ic-theme-${a}`]:a!=="inherit"},onFocus:this.handleHostFocus},o("slot",{key:"98defd37fd3f5c87d4d0aceefd1b5ac0c5ad6123"}))}get el(){return n(this)}static get watchers(){return{disabled:["watchDisabledHandler"],fullWidth:["watchFullWidthHandler"],loading:["watchLoadingHandler"],monochrome:["watchMonochromeHandler"],size:["watchSizeHandler"],theme:["watchThemeHandler"],tooltipPlacement:["watchTooltipPlacementHandler"],variant:["watchVariantHandler"]}}};l.style=a;export{l as ic_toggle_button_group};
|
2
|
-
//# sourceMappingURL=p-57e881b4.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icToggleButtonGroupCss","IcToggleButtonGroupStyle0","TOGGLE_GROUP","ToggleButtonGroup","constructor","hostRef","this","lastKeyPressed","key","shift","accessibleLabel","disabled","fullWidth","loading","monochrome","selectMethod","selectType","size","theme","tooltipPlacement","variant","keyListener","ev","shiftKey","handleHostFocus","target","relatedTarget","_a","el","relEl","toggleButtons","Array","from","querySelectorAll","noToggleButtonsChecked","every","checked","tagName","focus","filter","handleKeyDown","toggleButtonOptions","getAllToggleButtons","targetToggle","getNextItemToSelect","indexOf","document","activeElement","selectHandler","CustomEvent","detail","currentItem","movingDown","numToggles","length","nextItem","watchDisabledHandler","forEach","removeDisabledFalse","watchFullWidthHandler","watchLoadingHandler","watchMonochromeHandler","watchSizeHandler","watchThemeHandler","watchTooltipPlacementHandler","watchVariantHandler","tabTarget","allToggles","clickedToggle","id","icChange","emit","selectedOption","toggledOptions","map","opt","toggleButton","componentWillLoad","addEventListener","componentDidLoad","i","_b","_c","btn","shadowRoot","querySelector","btnAriaLabel","getAttribute","aria","setAttribute","toString","tabIndex","classList","add","disconnectedCallback","removeEventListener","render","h","Host","role","tabindex","class","onFocus"],"sources":["../web-components/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css?tag=ic-toggle-button-group&encapsulation=shadow","../web-components/dist/collection/components/ic-toggle-button-group/ic-toggle-button-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/* PARENT HOST */\n\n:root {\n display: block;\n}\n\n:host {\n display: flex;\n flex-direction: row;\n width: -moz-fit-content;\n width: fit-content;\n min-width: -moz-min-content;\n min-width: min-content;\n border: var(--ic-border-width) solid var(--ic-toggle-button-unselected-border);\n border-radius: var(--ic-border-radius);\n}\n\n:host(.ic-toggle-button-group-full-width) {\n width: 100%;\n max-width: 100%;\n}\n\n:host(.ic-toggle-button-group-loading) {\n min-width: -moz-max-content;\n min-width: max-content;\n}\n\n:host(:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-transition-duration-fast);\n outline: none;\n}\n\n/* CHILDREN SLOTTED */\n\n::slotted(ic-toggle-button) {\n flex-grow: 1;\n width: -moz-min-content;\n width: min-content;\n\n --toggle-button-border: none !important;\n --toggle-button-border-hover: none !important;\n --toggle-button-border-active: none !important;\n}\n\n::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border);\n}\n\n/* DISABLED */\n:host(.ic-toggle-button-group-disabled) {\n border: var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled);\n pointer-events: none;\n}\n\n:host(.ic-toggle-button-group-disabled)\n ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled);\n}\n\n:host(.ic-toggle-button-group-monochrome) {\n border: var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome);\n}\n\n:host(.ic-toggle-button-group-monochrome)\n ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome);\n}\n\n:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome) {\n border: var(--ic-border-width) dashed\n var(--ic-toggle-button-unselected-border-disabled-monochrome);\n}\n\n:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome)\n ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-disabled-monochrome);\n}\n","import { Host, h, } from \"@stencil/core\";\nimport { removeDisabledFalse } from \"../../utils/helpers\";\nconst TOGGLE_GROUP = \"IC-TOGGLE-BUTTON-GROUP\";\nexport class ToggleButtonGroup {\n constructor() {\n this.lastKeyPressed = {\n key: null,\n shift: false,\n };\n /**\n * The accessible label of the toggle button group component to provide context for screen reader users.\n */\n this.accessibleLabel = \"Toggle button group\";\n /**\n * If `true`, the toggle button group will be set to the disabled state.\n */\n this.disabled = false;\n /**\n * If `true`, the toggle button group will fill the width of the container.\n */\n this.fullWidth = false;\n /**\n * If `true`, the toggle button group will be in loading state.\n */\n this.loading = false;\n /**\n * If `true`, the toggle button group will display as black in the light theme, and white in dark theme.\n */\n this.monochrome = false;\n /**\n * If `auto`, controls are toggled automatically when navigated to. If `manual`, the controls must be actioned to change their toggled state. The value of this prop is ignored if `selectType` is set to`multi`.\n */\n this.selectMethod = \"manual\";\n /**\n * Sets whether single or multiple options can be toggled. If `multi`, then the `selectMethod` is always `manual`.\n */\n this.selectType = \"single\";\n /**\n * The size of the toggle buttons to be displayed. This does not affect the font size of the accessible label.\n */\n this.size = \"medium\";\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n this.theme = \"inherit\";\n /**\n * The position of the tooltip in relation to the toggle buttons.\n */\n this.tooltipPlacement = \"bottom\";\n /**\n * The variant of the toggle button.\n */\n this.variant = \"default\";\n this.keyListener = (ev) => {\n this.lastKeyPressed = {\n key: ev.key,\n shift: ev.shiftKey,\n };\n };\n this.handleHostFocus = ({ target, relatedTarget }) => {\n var _a;\n if (this.loading || this.disabled)\n return;\n const el = target;\n const relEl = relatedTarget;\n const toggleButtons = Array.from((el === null || el === void 0 ? void 0 : el.querySelectorAll(\"ic-toggle-button\")) || []);\n const noToggleButtonsChecked = toggleButtons.every((el) => !el.checked);\n const { shift } = this.lastKeyPressed;\n if (((noToggleButtonsChecked || this.selectType !== \"single\") && !shift) ||\n (noToggleButtonsChecked && shift && (relEl === null || relEl === void 0 ? void 0 : relEl.tagName) == TOGGLE_GROUP)) {\n (_a = toggleButtons[0]) === null || _a === void 0 ? void 0 : _a.focus();\n }\n else if (!shift || (relEl === null || relEl === void 0 ? void 0 : relEl.tagName) == TOGGLE_GROUP) {\n // if checked is true and selectMethod is \"single\", focus that toggle\n toggleButtons.filter((el) => el.checked)[0].focus();\n }\n };\n this.handleKeyDown = ({ key }) => {\n if (key !== \"ArrowDown\" &&\n key !== \"ArrowRight\" &&\n key !== \"ArrowLeft\" &&\n key !== \"ArrowUp\")\n return;\n const toggleButtonOptions = this.getAllToggleButtons();\n const targetToggle = toggleButtonOptions[this.getNextItemToSelect(toggleButtonOptions.indexOf(toggleButtonOptions.filter((el) => el === document.activeElement)[0]), key === \"ArrowDown\" || key === \"ArrowRight\")];\n if (this.selectMethod === \"auto\") {\n // trigger selectHandler when unable to add 'target'\n targetToggle.checked = true;\n this.selectHandler(new CustomEvent(\"icToggleChecked\", {\n detail: {\n checked: targetToggle.checked,\n },\n }), targetToggle);\n }\n else {\n targetToggle.focus();\n }\n };\n this.getNextItemToSelect = (currentItem, movingDown) => {\n const toggleButtonOptions = this.getAllToggleButtons();\n const numToggles = toggleButtonOptions.length - 1;\n if (currentItem < 1) {\n currentItem = 0;\n }\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n if (nextItem < 0) {\n nextItem = numToggles;\n }\n else if (nextItem > numToggles) {\n nextItem = 0;\n }\n if (toggleButtonOptions[nextItem].disabled) {\n nextItem = this.getNextItemToSelect(nextItem, movingDown);\n }\n return nextItem;\n };\n this.getAllToggleButtons = () => Array.from(this.el.querySelectorAll(\"ic-toggle-button\"));\n }\n watchDisabledHandler() {\n this.getAllToggleButtons().forEach((el) => {\n el.disabled = this.disabled;\n });\n removeDisabledFalse(this.disabled, this.el);\n }\n watchFullWidthHandler() {\n this.getAllToggleButtons().forEach((el) => {\n el.fullWidth = this.fullWidth;\n });\n }\n watchLoadingHandler() {\n this.getAllToggleButtons().forEach((el) => {\n el.loading = this.loading;\n });\n }\n watchMonochromeHandler() {\n this.getAllToggleButtons().forEach((el) => {\n el.monochrome = this.monochrome;\n });\n }\n watchSizeHandler() {\n this.getAllToggleButtons().forEach((el) => {\n el.size = this.size;\n });\n }\n watchThemeHandler() {\n this.getAllToggleButtons().forEach((el) => {\n el.theme = this.theme;\n });\n }\n watchTooltipPlacementHandler() {\n this.getAllToggleButtons().forEach((el) => {\n el.tooltipPlacement = this.tooltipPlacement;\n });\n }\n watchVariantHandler() {\n this.getAllToggleButtons().forEach((el) => {\n el.variant = this.variant;\n });\n }\n selectHandler(ev, tabTarget) {\n const allToggles = this.getAllToggleButtons();\n let clickedToggle = ev.target;\n if (tabTarget)\n tabTarget.focus(); // tabTarget used in proxySelectHandler\n if (this.selectType === \"single\") {\n if (!clickedToggle && tabTarget) {\n clickedToggle = tabTarget;\n }\n allToggles.forEach((el) => {\n if (el.id !== clickedToggle.id && el.checked) {\n el.checked = false;\n }\n });\n this.icChange.emit({\n checked: ev.detail.checked,\n selectedOption: clickedToggle,\n });\n }\n else {\n const toggledOptions = allToggles.filter((el) => el.checked && !el.disabled);\n this.icChange.emit({\n checked: toggledOptions.map((opt) => opt.checked),\n toggledOptions: toggledOptions.map((opt) => ({\n toggleButton: opt,\n })),\n selectedOption: clickedToggle,\n });\n }\n }\n componentWillLoad() {\n if (this.selectType === \"multi\")\n this.selectMethod = \"manual\";\n if (this.selectMethod === \"auto\")\n this.selectType === \"single\";\n document.addEventListener(\"keydown\", this.keyListener);\n removeDisabledFalse(this.disabled, this.el);\n }\n componentDidLoad() {\n this.getAllToggleButtons().forEach((el, i) => {\n var _a, _b, _c;\n const btn = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\"ic-button\")) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector(\"button\");\n if (btn) {\n const btnAriaLabel = btn.getAttribute(\"aria-label\");\n const aria = btnAriaLabel ? `${btnAriaLabel}, ` : \"\";\n btn.setAttribute(\"aria-label\", `${aria}${this.accessibleLabel}`);\n }\n el.id = i.toString();\n el.tabIndex = -1;\n el.addEventListener(\"keydown\", (ev) => {\n this.handleKeyDown(ev);\n });\n el.classList.add(\"expand-toggle-group-child\");\n });\n }\n disconnectedCallback() {\n document === null || document === void 0 ? void 0 : document.removeEventListener(\"keydown\", this.keyListener);\n }\n render() {\n const { accessibleLabel, disabled, fullWidth, loading, monochrome, theme } = this;\n return (h(Host, { key: 'c82ba602f319c2074da44667618cc5d7b7c3499b', role: \"group\", \"aria-label\": accessibleLabel, tabindex: 0, class: {\n \"ic-toggle-button-group-disabled\": disabled,\n \"ic-toggle-button-group-full-width\": fullWidth,\n \"ic-toggle-button-group-loading\": loading,\n \"ic-toggle-button-group-monochrome\": monochrome,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }, onFocus: this.handleHostFocus }, h(\"slot\", { key: '98defd37fd3f5c87d4d0aceefd1b5ac0c5ad6123' })));\n }\n static get is() { return \"ic-toggle-button-group\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-toggle-button-group.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-toggle-button-group.css\"]\n };\n }\n static get properties() {\n return {\n \"accessibleLabel\": {\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 label of the toggle button group component to provide context for screen reader users.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"accessible-label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Toggle button group\\\"\"\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\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the toggle button group will be set to the disabled state.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"fullWidth\": {\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`, the toggle button group will fill the width of the container.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"iconPlacement\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcIconPlacementOptions\",\n \"resolved\": \"\\\"left\\\" | \\\"right\\\" | \\\"top\\\" | undefined\",\n \"references\": {\n \"IcIconPlacementOptions\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcIconPlacementOptions\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The placement of the icons in relation to the toggle button labels.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"icon-placement\",\n \"reflect\": false\n },\n \"loading\": {\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`, the toggle button group will be in loading state.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"loading\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"monochrome\": {\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`, the toggle button group will display as black in the light theme, and white in dark theme.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"monochrome\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"selectMethod\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"IcSelectMethodTypes\",\n \"resolved\": \"\\\"auto\\\" | \\\"manual\\\"\",\n \"references\": {\n \"IcSelectMethodTypes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSelectMethodTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `auto`, controls are toggled automatically when navigated to. If `manual`, the controls must be actioned to change their toggled state. The value of this prop is ignored if `selectType` is set to`multi`.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"select-method\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"manual\\\"\"\n },\n \"selectType\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSelectTypes\",\n \"resolved\": \"\\\"multi\\\" | \\\"single\\\"\",\n \"references\": {\n \"IcSelectTypes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSelectTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets whether single or multiple options can be toggled. If `multi`, then the `selectMethod` is always `manual`.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"select-type\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"single\\\"\"\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\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the toggle buttons to be displayed. This does not affect the font size of the accessible label.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"medium\\\"\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\"\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n },\n \"tooltipPlacement\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcButtonTooltipPlacement\",\n \"resolved\": \"\\\"bottom\\\" | \\\"left\\\" | \\\"right\\\" | \\\"top\\\"\",\n \"references\": {\n \"IcButtonTooltipPlacement\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcButtonTooltipPlacement\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The position of the tooltip in relation to the toggle buttons.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"tooltip-placement\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"bottom\\\"\"\n },\n \"variant\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"default\\\" | \\\"icon\\\"\",\n \"resolved\": \"\\\"default\\\" | \\\"icon\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The variant of the toggle button.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"variant\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"default\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"lastKeyPressed\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icChange\",\n \"name\": \"icChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when a toggle button is selected.\"\n },\n \"complexType\": {\n \"original\": \"IcChangeEventDetail\",\n \"resolved\": \"IcChangeEventDetail\",\n \"references\": {\n \"IcChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-toggle-button-group.types\",\n \"id\": \"src/components/ic-toggle-button-group/ic-toggle-button-group.types.ts::IcChangeEventDetail\"\n }\n }\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"disabled\",\n \"methodName\": \"watchDisabledHandler\"\n }, {\n \"propName\": \"fullWidth\",\n \"methodName\": \"watchFullWidthHandler\"\n }, {\n \"propName\": \"loading\",\n \"methodName\": \"watchLoadingHandler\"\n }, {\n \"propName\": \"monochrome\",\n \"methodName\": \"watchMonochromeHandler\"\n }, {\n \"propName\": \"size\",\n \"methodName\": \"watchSizeHandler\"\n }, {\n \"propName\": \"theme\",\n \"methodName\": \"watchThemeHandler\"\n }, {\n \"propName\": \"tooltipPlacement\",\n \"methodName\": \"watchTooltipPlacementHandler\"\n }, {\n \"propName\": \"variant\",\n \"methodName\": \"watchVariantHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"icToggleChecked\",\n \"method\": \"selectHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-toggle-button-group.js.map\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as i,h as e,H as t,g as s}from"./p-8e4e97b4.js";import{q as a,D as h,t as c,i as r,f as n,a as o}from"./p-e253a857.js";const l=':host{display:block;width:var(--tree-view-width, 100%);background-color:var(--ic-tree-view-background)}:host .heading-area-container{border-bottom:var(--ic-space-1px) solid var(--ic-tree-view-divider);display:flex;align-items:center;min-height:calc(\n var(--ic-space-xl) + var(--ic-space-xs) - var(--ic-space-1px)\n );padding:0 var(--ic-space-xs);--ic-typography-color:var(--ic-tree-view-text)}:host(.ic-tree-view-small) .heading-area-container{min-height:calc(var(--ic-space-xl) - var(--ic-space-1px))}:host(.ic-tree-view-large) .heading-area-container{min-height:calc(var(--ic-space-xxl) - var(--ic-space-1px))}:host(.ic-tree-view-truncate) .heading-area-container{height:calc(var(--ic-space-xl) + var(--ic-space-xs) - var(--ic-space-1px))}:host(.ic-tree-view-truncate.ic-tree-view-small) .heading-area-container{height:calc(var(--ic-space-xl) - var(--ic-space-1px))}:host(.ic-tree-view-truncate.ic-tree-view-large) .heading-area-container{height:calc(var(--ic-space-xxl) - var(--ic-space-1px))}.icon-container{width:var(--ic-space-lg);min-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}.tree-view-header.with-padding{padding-right:var(--ic-space-xs)}.tree-items-container-hidden{visibility:hidden}::slotted([slot="icon"]){fill:var(--ic-tree-view-icon)}@media (forced-colors: active){::slotted([slot="icon"]){fill:currentcolor}}';const d=l;var v=undefined&&undefined.__rest||function(i,e){var t={};for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)&&e.indexOf(s)<0)t[s]=i[s];if(i!=null&&typeof Object.getOwnPropertySymbols==="function")for(var a=0,s=Object.getOwnPropertySymbols(i);a<s.length;a++){if(e.indexOf(s[a])<0&&Object.prototype.propertyIsEnumerable.call(i,s[a]))t[s[a]]=i[s[a]]}return t};let f=0;const p=class{constructor(e){i(this,e);this.treeViewId=`ic-tree-view-${f++}`;this.treeItemTag="IC-TREE-ITEM";this.hostMutationObserver=null;this.isLoaded=false;this.resizeObserver=null;this.TOOLTIP="ic-tooltip";this.previousTruncateHeading=false;this.previousTruncateTreeItems=false;this.smallDevice=false;this.heading="";this.size="medium";this.theme="inherit";this.treeItemData=[];this.truncateHeading=false;this.truncateTreeItems=false;this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{const i=a()<=h.S;if(this.smallDevice!==i)this.smallDevice=i}));this.resizeObserver.observe(document.body)};this.removeTruncation=()=>{this.truncateHeading=false;this.truncateTreeItems=false};this.handleKeyDown=i=>{var e,t;const s=this.treeItems.indexOf(this.treeItems.filter((i=>i===document.activeElement))[0]);const a=(e=this.treeItems[s])===null||e===void 0?void 0:e.expanded;switch(i.key){case"ArrowDown":this.treeItems[this.getNextItemToSelect(s,true)].setFocus();if(s!==this.treeItems.length-1){i.preventDefault()}break;case"ArrowUp":this.treeItems[this.getNextItemToSelect(s,false)].setFocus();if(s!==0){i.preventDefault()}break;case"ArrowRight":if(this.treeItems[s].isParent&&!a){this.treeItems[s].expanded=true;this.treeItems[s].hasParentExpanded=true;this.treeItems[s].updateAriaLabel()}else if(this.treeItems[s].isParent&&a){this.treeItems[s].children[0].setFocus()}i.preventDefault();break;case"ArrowLeft":if(this.treeItems[s].isParent&&a){this.treeItems[s].expanded=false;this.treeItems[s].hasParentExpanded=false;this.treeItems[s].updateAriaLabel()}else if(((t=this.treeItems[s].parentElement)===null||t===void 0?void 0:t.tagName)===this.treeItemTag){this.treeItems[s].parentElement.setFocus()}i.preventDefault();break}};this.getNextItemToSelect=(i,e)=>{var t;const s=this.treeItems.length-1;if(i<1){i=0}let a=e?i+1:i-1;if(a<0){a=0}else if(a>s){a=s}const h=s+1;let c=0;while(c<h){if(a<0||a>s){return i}if(((t=this.treeItems[a].parentElement)===null||t===void 0?void 0:t.tagName)!==this.treeItemTag||this.treeItems[a].parentElement.expanded&&this.treeItems[a].offsetHeight>0){return a}if(a===s&&this.treeItems[a].disabled){return i}a=e?a+1:a-1;c++}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=()=>{var i,e;const t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector(".tree-view-header");const s=t===null||t===void 0?void 0:t.closest(this.TOOLTIP);const a=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(".heading-area-container");if(t&&a&&t.scrollHeight>a.clientHeight){t.classList.add("ic-text-overflow");if(!s){const i=document.createElement("ic-tooltip");i.setAttribute("target",this.el.id);i.setAttribute("label",t.textContent);i.classList.add("ic-tooltip-overflow");i.setAttribute("placement","right");a.appendChild(i);i.appendChild(t)}}};this.removeHeadingTruncation=()=>{var i,e,t;const s=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector(".tree-view-header");const a=s===null||s===void 0?void 0:s.closest(this.TOOLTIP);if(a&&s){s.classList.remove("ic-text-overflow");(t=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(".heading-area-container"))===null||t===void 0?void 0:t.replaceChild(s,a)}};this.isHeadingDefined=()=>c(this.heading)&&this.heading!==null;this.hasHeadingAreaContent=()=>r(this.el,"heading")||this.isHeadingDefined()||r(this.el,"icon")}watchSmallDeviceHandler(){if(this.smallDevice){this.previousTruncateHeading=this.truncateHeading;this.previousTruncateTreeItems=this.truncateTreeItems;this.removeTruncation()}else{this.truncateHeading=this.previousTruncateHeading;this.truncateTreeItems=this.previousTruncateTreeItems}}watchSizeHandler(){this.treeItems.forEach((i=>{i.size=this.size}))}watchThemeHandler(){this.treeItems.forEach((i=>{i.theme=this.theme}))}watchTreeItemOptionsHandler(){this.setTreeItems()}watchTruncateTreeItemsHandler(){this.treeItems.forEach((i=>{if(this.smallDevice){i.previousTruncateTreeItem=i.truncateTreeItem;i.truncateTreeItem=this.truncateTreeItems}else{i.truncateTreeItem=i.previousTruncateTreeItem}}))}disconnectedCallback(){var i,e,t;(i=this.el)===null||i===void 0?void 0:i.removeEventListener("slotchange",this.setTreeItems);(e=this.hostMutationObserver)===null||e===void 0?void 0:e.disconnect();(t=this.resizeObserver)===null||t===void 0?void 0:t.disconnect()}componentWillLoad(){this.setTreeItems();this.previousTruncateHeading=this.truncateHeading;this.previousTruncateTreeItems=this.truncateTreeItems;n(this.runResizeObserver);this.watchSizeHandler();this.watchThemeHandler();this.treeItems.forEach((i=>{if(i.truncateTreeItem===undefined){i.truncateTreeItem=this.truncateTreeItems}}))}componentDidRender(){this.truncateHeading?this.truncateTreeViewHeading():this.removeHeadingTruncation()}componentDidLoad(){this.addSlotChangeListener();this.hostMutationObserver=new MutationObserver((i=>o(i,"icon",this)));this.hostMutationObserver.observe(this.el,{childList:true});this.isLoaded=true}handleTreeItemSelected(i){this.treeItems.forEach((e=>{if(e.selected&&e.id!==i.detail.id){e.selected=false}}))}getAllTreeItems(i){const e=[];const t=i=>{Array.from(i.children).forEach((i=>{if(i.tagName===this.treeItemTag){e.push(i)}t(i)}))};const s=(i,t)=>{Array.from(t.children).forEach((i=>{if(i.tagName===this.treeItemTag){t.removeChild(i)}}));i.forEach((i=>{const a=document.createElement(this.treeItemTag);const{children:h,icon:c}=i,r=v(i,["children","icon"]);Object.assign(a,r);if(c){const i=document.createElement("div");i.setAttribute("slot","icon");i.innerHTML=c;a.appendChild(i)}t.appendChild(a);e.push(a);if(h&&h.length>0){s(h,a)}}))};if(this.treeItemData.length>0){s(this.treeItemData,i)}else{t(i)}return e}render(){const{heading:i,isLoaded:s,size:a,theme:h,truncateHeading:c}=this;return e(t,{key:"10d73dbe1cf5483e085e42098719cf24546964a7","context-id":this.treeViewId,class:{[`ic-tree-view-${a}`]:a!=="medium",[`ic-theme-${h}`]:h!=="inherit","ic-tree-view-truncate":c},onKeyDown:this.handleKeyDown,"aria-label":this.isHeadingDefined()?i:null},this.hasHeadingAreaContent()&&e("div",{key:"037b388be0d0346b060f5f277e20a6c389f5b618",class:"heading-area-container"},r(this.el,"icon")&&e("div",{key:"5d388bd69d7ced75435399e66a3cd28e6b4d7c8e",class:"icon-container"},e("slot",{key:"6baa9d4d0ea215d64e5978d4bb3ad1ea96d0b23b",name:"icon"})),e("ic-typography",{key:"8ed1a2b54949c4333c9647e3eb28cf58d968af61",variant:"subtitle-large",class:{"tree-view-header":true,"with-padding":this.truncateHeading&&!s}},r(this.el,"heading")?e("slot",{name:"heading"}):i)),e("slot",{key:"fa3be8905fce45ae60e2b6634487b9cee208913d"}))}get el(){return s(this)}static get watchers(){return{smallDevice:["watchSmallDeviceHandler"],size:["watchSizeHandler"],theme:["watchThemeHandler"],treeItemData:["watchTreeItemOptionsHandler"],truncateTreeItems:["watchTruncateTreeItemsHandler"]}}};p.style=d;export{p as ic_tree_view};
|
2
|
-
//# sourceMappingURL=p-5f8b09e4.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icTreeViewCss","IcTreeViewStyle0","treeViewIds","TreeView","constructor","hostRef","this","treeViewId","treeItemTag","hostMutationObserver","isLoaded","resizeObserver","TOOLTIP","previousTruncateHeading","previousTruncateTreeItems","smallDevice","heading","size","theme","treeItemData","truncateHeading","truncateTreeItems","runResizeObserver","ResizeObserver","isSmallDevice","getCurrentDeviceSize","DEVICE_SIZES","S","observe","document","body","removeTruncation","handleKeyDown","event","focussedChild","treeItems","indexOf","filter","el","activeElement","expanded","_a","key","getNextItemToSelect","setFocus","length","preventDefault","isParent","hasParentExpanded","updateAriaLabel","children","_b","parentElement","tagName","currentItem","movingDown","numItems","nextItem","maxAttempts","attempts","offsetHeight","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","removeHeadingTruncation","remove","_c","replaceChild","isHeadingDefined","isPropDefined","hasHeadingAreaContent","isSlotUsed","watchSmallDeviceHandler","watchSizeHandler","watchThemeHandler","watchTreeItemOptionsHandler","watchTruncateTreeItemsHandler","previousTruncateTreeItem","truncateTreeItem","disconnectedCallback","removeEventListener","disconnect","componentWillLoad","checkResizeObserver","undefined","componentDidRender","componentDidLoad","MutationObserver","mutationList","renderDynamicChildSlots","childList","handleTreeItemSelected","selected","detail","element","collectTreeItemsFromSlottedContent","Array","from","child","push","collectTreeItemsFromData","items","removeChild","item","icon","props","__rest","Object","assign","iconSlot","innerHTML","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 background-color: var(--ic-tree-view-background);\n}\n\n:host .heading-area-container {\n border-bottom: var(--ic-space-1px) solid var(--ic-tree-view-divider);\n display: flex;\n align-items: center;\n min-height: calc(\n var(--ic-space-xl) + var(--ic-space-xs) - var(--ic-space-1px)\n );\n padding: 0 var(--ic-space-xs);\n\n --ic-typography-color: var(--ic-tree-view-text);\n}\n\n:host(.ic-tree-view-small) .heading-area-container {\n min-height: calc(var(--ic-space-xl) - var(--ic-space-1px));\n}\n\n:host(.ic-tree-view-large) .heading-area-container {\n min-height: calc(var(--ic-space-xxl) - var(--ic-space-1px));\n}\n\n:host(.ic-tree-view-truncate) .heading-area-container {\n height: calc(var(--ic-space-xl) + var(--ic-space-xs) - var(--ic-space-1px));\n}\n\n:host(.ic-tree-view-truncate.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-truncate.ic-tree-view-large) .heading-area-container {\n height: calc(var(--ic-space-xxl) - var(--ic-space-1px));\n}\n\n.icon-container {\n width: var(--ic-space-lg);\n min-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/* Ensures truncation works - accounts for text width increase as component hydrates */\n.tree-view-header.with-padding {\n padding-right: var(--ic-space-xs);\n}\n\n.tree-items-container-hidden {\n visibility: hidden;\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-tree-view-icon);\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} from \"@stencil/core\";\nimport { IcSizes, IcThemeMode } from \"../../utils/types\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n isPropDefined,\n isSlotUsed,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport { IcTreeItemOptions } from \"./ic-tree-view.types\";\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 = null;\n private isLoaded = false;\n private resizeObserver: ResizeObserver | null = null;\n private TOOLTIP = \"ic-tooltip\";\n\n private previousTruncateHeading: boolean = false;\n private previousTruncateTreeItems: boolean = false;\n\n @Element() el: HTMLIcTreeViewElement;\n\n @State() smallDevice: boolean = false;\n @Watch(\"smallDevice\")\n watchSmallDeviceHandler(): void {\n if (this.smallDevice) {\n this.previousTruncateHeading = this.truncateHeading;\n this.previousTruncateTreeItems = this.truncateTreeItems;\n this.removeTruncation();\n } else {\n this.truncateHeading = this.previousTruncateHeading;\n this.truncateTreeItems = this.previousTruncateTreeItems;\n }\n }\n\n @State() treeItems: HTMLIcTreeItemElement[];\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(): void {\n this.treeItems.forEach((treeItem) => {\n treeItem.size = this.size;\n });\n }\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n @Watch(\"theme\")\n watchThemeHandler(): void {\n this.treeItems.forEach((treeItem) => {\n treeItem.theme = this.theme;\n });\n }\n\n /**\n * The content within the tree view tree items. This will take precedence over slotted content.\n * */\n @Prop() treeItemData: IcTreeItemOptions[] = [];\n @Watch(\"treeItemData\")\n watchTreeItemOptionsHandler(): void {\n this.setTreeItems();\n }\n\n /**\n * If `true`, the tree view heading will be truncated instead of text wrapping.\n * When used on small devices, this prop will be overridden and headings will be set to text-wrap.\n */\n @Prop({ mutable: true }) truncateHeading: boolean = false;\n\n /**\n * If `true`, tree items will be truncated, unless they are individually overridden.\n * When used on small devices, this prop will be overridden and tree-items will be set to text-wrap.\n */\n @Prop({ mutable: true }) truncateTreeItems: boolean = false;\n @Watch(\"truncateTreeItems\")\n watchTruncateTreeItemsHandler(): void {\n this.treeItems.forEach((treeItem) => {\n if (this.smallDevice) {\n treeItem.previousTruncateTreeItem = treeItem.truncateTreeItem;\n treeItem.truncateTreeItem = this.truncateTreeItems;\n } else {\n treeItem.truncateTreeItem = treeItem.previousTruncateTreeItem;\n }\n });\n }\n\n disconnectedCallback(): void {\n this.el?.removeEventListener(\"slotchange\", this.setTreeItems);\n\n this.hostMutationObserver?.disconnect();\n this.resizeObserver?.disconnect();\n }\n componentWillLoad(): void {\n this.setTreeItems();\n\n this.previousTruncateHeading = this.truncateHeading;\n this.previousTruncateTreeItems = this.truncateTreeItems;\n\n checkResizeObserver(this.runResizeObserver);\n\n this.watchSizeHandler();\n this.watchThemeHandler();\n this.treeItems.forEach((treeItem) => {\n if (treeItem.truncateTreeItem === undefined) {\n treeItem.truncateTreeItem = this.truncateTreeItems;\n }\n });\n }\n\n componentDidRender(): void {\n this.truncateHeading\n ? this.truncateTreeViewHeading()\n : this.removeHeadingTruncation();\n }\n\n componentDidLoad(): void {\n this.addSlotChangeListener();\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, \"icon\", this)\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n\n this.isLoaded = true;\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 runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const isSmallDevice = getCurrentDeviceSize() <= DEVICE_SIZES.S;\n if (this.smallDevice !== isSmallDevice) this.smallDevice = isSmallDevice;\n });\n\n this.resizeObserver.observe(document.body);\n };\n\n private removeTruncation = (): void => {\n this.truncateHeading = false;\n this.truncateTreeItems = false;\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].parentElement?.tagName !== this.treeItemTag ||\n ((this.treeItems[nextItem].parentElement as HTMLIcTreeItemElement)\n .expanded &&\n this.treeItems[nextItem].offsetHeight > 0)\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 collectTreeItemsFromSlottedContent = (el: HTMLElement) => {\n Array.from(el.children).forEach((child) => {\n if (child.tagName === this.treeItemTag) {\n treeItems.push(child as HTMLIcTreeItemElement);\n }\n\n collectTreeItemsFromSlottedContent(child as HTMLElement);\n });\n };\n\n const collectTreeItemsFromData = (\n items: IcTreeItemOptions[],\n parentElement: HTMLElement\n ) => {\n Array.from(parentElement.children).forEach((child) => {\n if (child.tagName === this.treeItemTag) {\n parentElement.removeChild(child);\n }\n });\n\n items.forEach((item) => {\n const treeItem = document.createElement(\n this.treeItemTag\n ) as HTMLIcTreeItemElement;\n const { children, icon, ...props } = item;\n Object.assign(treeItem, props);\n\n if (icon) {\n const iconSlot = document.createElement(\"div\");\n iconSlot.setAttribute(\"slot\", \"icon\");\n iconSlot.innerHTML = icon;\n treeItem.appendChild(iconSlot);\n }\n\n parentElement.appendChild(treeItem);\n treeItems.push(treeItem);\n\n if (children && children.length > 0) {\n collectTreeItemsFromData(children, treeItem);\n }\n });\n };\n\n if (this.treeItemData.length > 0) {\n collectTreeItemsFromData(this.treeItemData, element);\n } else {\n collectTreeItemsFromSlottedContent(element);\n }\n\n return treeItems;\n }\n\n private addSlotChangeListener = () => {\n this.el.addEventListener(\"slotchange\", this.setTreeItems);\n };\n\n private truncateTreeViewHeading = () => {\n const typographyEl =\n this.el.shadowRoot?.querySelector<HTMLIcTypographyElement>(\n \".tree-view-header\"\n );\n const tooltip = typographyEl?.closest(this.TOOLTIP);\n const headingContainer = this.el.shadowRoot?.querySelector<HTMLElement>(\n \".heading-area-container\"\n );\n\n if (\n typographyEl &&\n headingContainer &&\n typographyEl.scrollHeight > headingContainer.clientHeight\n ) {\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 removeHeadingTruncation = () => {\n const typographyEl =\n this.el.shadowRoot?.querySelector<HTMLIcTypographyElement>(\n \".tree-view-header\"\n );\n const tooltipEl = typographyEl?.closest<HTMLIcTooltipElement>(this.TOOLTIP);\n\n if (tooltipEl && typographyEl) {\n typographyEl.classList.remove(\"ic-text-overflow\");\n this.el.shadowRoot\n ?.querySelector(\".heading-area-container\")\n ?.replaceChild(typographyEl, tooltipEl);\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 { heading, isLoaded, size, theme, truncateHeading } = this;\n\n return (\n <Host\n context-id={this.treeViewId}\n class={{\n [`ic-tree-view-${size}`]: size !== \"medium\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n \"ic-tree-view-truncate\": truncateHeading,\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\n variant=\"subtitle-large\"\n class={{\n \"tree-view-header\": true,\n \"with-padding\": this.truncateHeading && !isLoaded,\n }}\n >\n {isSlotUsed(this.el, \"heading\") ? (\n <slot name=\"heading\" />\n ) : (\n heading\n )}\n </ic-typography>\n </div>\n )}\n\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icDialogCss","IcDialogStyle0","Dialog","constructor","hostRef","this","contentAreaMutationObserver","DATA_GETS_FOCUS","DIALOG_CONTROLS","dialogHeight","focusedElementIndex","IC_TEXT_FIELD","IC_ACCORDION","IC_ACCORDION_GROUP","IC_CHECKBOX","IC_SEARCH_BAR","resizeObserver","dialogRendered","fadeIn","closeOnBackdropClick","destructive","dismissLabel","disableHeightConstraint","disableWidthConstraint","hideCloseButton","hideDefaultControls","open","size","theme","dialogOpened","_a","_b","dialogEl","show","showModal","setTimeout","backdropEl","scrollTop","setInitialFocus","checkResizeObserver","runResizeObserver","icDialogOpened","emit","ResizeObserver","clearTimeout","resizeTimeout","window","resizeObserverCallback","observe","clientHeight","refreshInteractiveElementsOnSlotChange","_c","contentWrapper","el","shadowRoot","querySelector","contentArea","addEventListener","getInteractiveElements","MutationObserver","getSlotElements","forEach","childList","subtree","removeSlotChangeListener","removeEventListener","disconnect","sourceElement","document","activeElement","interactiveElementList","findIndex","element","hasAttribute","focusElement","getFocusedElementIndex","i","length","closeIconClick","Array","from","querySelectorAll","slottedInteractiveElements","slot","setAttribute","splice","getNextFocusEl","onTabKeyPress","shiftKey","tagName","setFocusIndexBasedOnShiftKey","loopNextFocusIndexIfLastElement","shouldSkipElement","isHidden","getComputedStyle","visibility","offsetHeight","radioEl","closest","getAttribute","nextFocusEl","setFocus","focus","renderDialog","heading","label","controlsSlotUsed","isSlotUsed","h","class","dialog","ref","name","variant","id","innerHTML","closeIcon","onClick","Fragment","cancelDialog","confirmDialog","watchOpenHandler","close","icDialogClosed","disconnectedCallback","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentDidRender","body","style","overflow","display","handleKeyboard","ev","key","preventDefault","repeat","stopImmediatePropagation","handleClick","composedPath","indexOf","top","height","left","width","getBoundingClientRect","isInDialog","clientY","clientX","icDialogCancelled","icDialogConfirmed","render","Host"],"sources":["../web-components/dist/collection/components/ic-dialog/ic-dialog.css?tag=ic-dialog&encapsulation=shadow","../web-components/dist/collection/components/ic-dialog/ic-dialog.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/**\n * @prop --ic-z-index-dialog: z-index of dialog \n */\n\n:host {\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100% !important;\n background: rgb(0 0 0 / 60%);\n z-index: var(--ic-z-index-dialog);\n opacity: 0;\n}\n\n:host(.ic-dialog-fade-in) {\n opacity: 1;\n}\n\n:host(.disable-height-constraint) {\n background: none;\n justify-content: unset;\n align-items: unset;\n}\n\n.dialog.disable-height-constraint {\n max-height: none;\n position: relative;\n}\n\n.dialog.disable-height-constraint .content-area {\n overflow-y: visible;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :host {\n transition: opacity var(--ic-easing-transition-slow);\n }\n\n .dialog {\n transform: translateY(-3rem);\n transition: transform 1000s;\n }\n\n :host(.ic-dialog-fade-in) .dialog {\n transform: translateY(0);\n transition: transform var(--ic-easing-transition-slow);\n }\n}\n\n:host(.ic-dialog-hidden) {\n display: none;\n}\n\n.dialog {\n background-color: var(--ic-dialog-background);\n color: var(--ic-dialog-text-primary);\n\n --ic-typography-color: var(--ic-dialog-text-primary);\n\n border: var(--ic-space-1px) solid var(--ic-dialog-border);\n border-radius: var(--ic-border-radius);\n padding: var(--ic-space-xs) 0 var(--ic-space-md);\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n overflow-x: visible;\n}\n\n.small {\n width: 50%;\n max-width: 25rem;\n min-height: 11rem;\n max-height: 70vh;\n}\n\n.medium {\n width: 70vw;\n max-width: 44rem;\n min-height: 12.5rem;\n max-height: 70vh;\n}\n\n.large {\n width: 90vw;\n max-width: 62.5rem;\n min-height: 12.5rem;\n max-height: 90vh;\n}\n\n.heading-area {\n display: flex;\n margin-bottom: var(--ic-space-xs);\n padding: 0 var(--ic-space-md);\n}\n\n.heading {\n overflow-wrap: break-word;\n}\n\n.close-icon {\n margin-left: auto;\n}\n\n.close-icon > svg {\n color: var(--ic-dialog-clear-button);\n}\n\n.content-area {\n padding: 0 var(--ic-space-md);\n margin: 0;\n overflow-y: auto;\n}\n\n#dialog-content {\n margin-bottom: var(--ic-space-sm);\n}\n\n#dialog-content ::slotted(ic-typography) {\n overflow-wrap: break-word;\n}\n\n#dialog-content ::slotted(*) {\n position: relative;\n}\n\n.dialog-controls {\n margin-top: auto;\n padding: var(--ic-space-xs) var(--ic-space-md) 0;\n display: flex;\n justify-content: flex-end;\n gap: var(--ic-space-md);\n}\n\n.dialog-control-button {\n width: -moz-fit-content;\n width: fit-content;\n}\n\n.backdrop {\n overflow-y: auto;\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgb(0 0 0 / 60%);\n z-index: var(--ic-z-index-dialog);\n padding-top: 16px;\n padding-bottom: 16px;\n}\n\n.heading ic-typography {\n --ic-typography-color: var(--ic-dialog-text-primary);\n}\n\n.label ic-typography {\n --ic-typography-color: var(--ic-dialog-label);\n}\n\n@media (min-width: 800px) {\n :host([size=\"large\"]) .dialog:not(.disable-width-constraint) > .content-area {\n width: 75%;\n }\n}\n\n@media (max-width: 576px) {\n .dialog {\n width: 100vw;\n height: 100vh;\n max-width: none;\n max-height: none;\n box-sizing: border-box;\n }\n\n .backdrop {\n padding: 0;\n }\n\n .dialog.disable-height-constraint {\n height: auto;\n min-height: 100vh;\n }\n}\n\n@media (max-width: 364px) {\n .dialog-control-button {\n width: unset;\n }\n}\n","import { Host, h, Fragment, } from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { isSlotUsed, checkResizeObserver, onComponentRequiredPropUndefined, getSlotElements, } from \"../../utils/helpers\";\n/**\n * @slot dialog-controls - Content will be place at the bottom of the dialog.\n * @slot heading - Content will be placed at the top of the dialog.\n * @slot label - Content will be placed above the dialog heading.\n * @slot alert - Content will be placed at the top of the content area of the dialog.\n */\nexport class Dialog {\n constructor() {\n this.contentAreaMutationObserver = null;\n this.DATA_GETS_FOCUS = \"data-gets-focus\";\n this.DIALOG_CONTROLS = \"dialog-controls\";\n this.dialogHeight = 0;\n this.focusedElementIndex = 0;\n this.IC_TEXT_FIELD = \"IC-TEXT-FIELD\";\n this.IC_ACCORDION = \"IC-ACCORDION\";\n this.IC_ACCORDION_GROUP = \"IC-ACCORDION-GROUP\";\n this.IC_CHECKBOX = \"IC-CHECKBOX\";\n this.IC_SEARCH_BAR = \"IC-SEARCH-BAR\";\n this.resizeObserver = null;\n this.dialogRendered = false;\n this.fadeIn = false;\n /**\n * If set to `false`, the dialog will not close when the backdrop is clicked.\n */\n this.closeOnBackdropClick = true;\n /**\n * If 'true', sets the 'primary' or rightmost button to the destructive variant. Stops initial focus being set on the 'primary' or rightmost default or slotted button.\n */\n this.destructive = false;\n /**\n * Sets the dismiss label tooltip and aria label.\n */\n this.dismissLabel = \"Dismiss\";\n /**\n * If set to `true`, the content area max height and overflow properties are removed allowing the dialog to stretch below the fold.\n * This prop also prevents popover elements from being cut off within the content area.\n */\n this.disableHeightConstraint = false;\n /**\n * If set to `true`, the content area width property is removed, allowing content to take the full width of the dialog when using the large variant.\n */\n this.disableWidthConstraint = false;\n /**\n * If `true`, the close button will not be displayed.\n */\n this.hideCloseButton = false;\n /**\n * If set to `true`, default button controls will not be shown, but slotted dialog controls will still be displayed.\n */\n this.hideDefaultControls = false;\n /**\n * If `true`, the dialog will be displayed.\n */\n this.open = false;\n /**\n * Sets the maximum and minimum height and width for the dialog.\n */\n this.size = \"small\";\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n this.theme = \"inherit\";\n this.dialogOpened = () => {\n var _a, _b;\n this.dialogRendered = true;\n if (this.disableHeightConstraint) {\n (_a = this.dialogEl) === null || _a === void 0 ? void 0 : _a.show();\n }\n else {\n (_b = this.dialogEl) === null || _b === void 0 ? void 0 : _b.showModal();\n }\n setTimeout(() => {\n this.fadeIn = true;\n /**\n * This is required to set scroll back to top if:\n * - dialog content goes below the fold\n * - is closed using cancel or confirm and reopened.\n *\n * Without this, the scroll bar will start from the dialog's last scroll-x coordinate.\n */\n if (this.backdropEl &&\n this.disableHeightConstraint &&\n this.backdropEl.scrollTop !== 0) {\n this.backdropEl.scrollTop = 0;\n }\n }, 10);\n setTimeout(() => {\n this.setInitialFocus();\n checkResizeObserver(this.runResizeObserver);\n }, 75);\n setTimeout(() => {\n this.icDialogOpened.emit();\n }, 80);\n };\n this.runResizeObserver = () => {\n if (this.dialogEl) {\n this.resizeObserver = new ResizeObserver(() => {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = window.setTimeout(this.resizeObserverCallback, 80);\n });\n this.resizeObserver.observe(this.dialogEl);\n }\n };\n this.resizeObserverCallback = () => {\n if (this.dialogEl && this.dialogEl.clientHeight !== this.dialogHeight) {\n this.dialogHeight = this.dialogEl.clientHeight;\n }\n };\n this.refreshInteractiveElementsOnSlotChange = () => {\n var _a, _b, _c;\n const contentWrapper = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\"#dialog-content\");\n if (contentWrapper) {\n this.contentArea = contentWrapper.querySelector(\"slot\");\n // Detect changes to slotted elements\n (_b = this.contentArea) === null || _b === void 0 ? void 0 : _b.addEventListener(\"slotchange\", this.getInteractiveElements);\n this.contentAreaMutationObserver = new MutationObserver(() => {\n this.getInteractiveElements();\n });\n // Detect changes to children of slotted elements\n (_c = getSlotElements(contentWrapper)) === null || _c === void 0 ? void 0 : _c.forEach((el) => {\n var _a;\n (_a = this.contentAreaMutationObserver) === null || _a === void 0 ? void 0 : _a.observe(el, {\n childList: true,\n subtree: true,\n });\n });\n }\n };\n this.removeSlotChangeListener = () => {\n var _a;\n if (this.contentArea) {\n this.contentArea.removeEventListener(\"slotchange\", this.getInteractiveElements);\n (_a = this.contentAreaMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n }\n };\n this.setInitialFocus = () => {\n this.sourceElement = document.activeElement;\n this.focusedElementIndex = this.interactiveElementList\n ? this.interactiveElementList.findIndex((element) => element.hasAttribute(this.DATA_GETS_FOCUS))\n : 0;\n this.focusElement(this.interactiveElementList[this.focusedElementIndex]);\n };\n this.getFocusedElementIndex = () => {\n var _a;\n for (let i = 0; i < this.interactiveElementList.length; i++) {\n if (this.interactiveElementList[i] ===\n (((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) || document.activeElement)) {\n this.focusedElementIndex = i;\n }\n }\n };\n this.closeIconClick = () => {\n this.open = false;\n };\n this.getInteractiveElements = () => {\n var _a;\n this.interactiveElementList = Array.from(((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(\"ic-button\")) || []);\n const slottedInteractiveElements = Array.from(this.el.querySelectorAll(`a[href], button, input:not(.ic-input), textarea, select, details, [tabindex]:not([tabindex=\"-1\"]),\n ic-button, ic-checkbox, ic-select, ic-search-bar, ic-tab-group, \n ic-back-to-top, ic-breadcrumb, ic-chip[dismissible=\"true\"], ic-footer-link, ic-link, ic-navigation-button,\n ic-navigation-item, ic-switch, ic-text-field, ic-accordion-group, ic-accordion, ic-date-input, ic-date-picker`));\n if (slottedInteractiveElements.length > 0) {\n if (slottedInteractiveElements[0].slot !== this.DIALOG_CONTROLS) {\n slottedInteractiveElements[0].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n else if (!this.destructive) {\n slottedInteractiveElements[slottedInteractiveElements.length - 1].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n }\n for (let i = 0; i < slottedInteractiveElements.length; i++) {\n this.interactiveElementList.splice(1 + i, 0, slottedInteractiveElements[i]);\n }\n };\n this.getNextFocusEl = (focusedElementIndex) => this.interactiveElementList[focusedElementIndex];\n this.onTabKeyPress = (shiftKey) => {\n this.getFocusedElementIndex();\n if (this.interactiveElementList[this.focusedElementIndex].tagName ===\n this.IC_SEARCH_BAR) {\n return false;\n }\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n this.focusElement(this.getNextFocusEl(this.focusedElementIndex), shiftKey);\n return true;\n };\n this.shouldSkipElement = (element) => {\n const isHidden = getComputedStyle(element).visibility === \"hidden\" ||\n element.offsetHeight === 0 ||\n element.hasAttribute(\"disabled\") ||\n (element.tagName === this.IC_ACCORDION_GROUP &&\n element.hasAttribute(\"single-expansion\"));\n const radioEl = element.closest(\"ic-radio-option\");\n return (isHidden ||\n (element.getAttribute(\"type\") === \"radio\" &&\n !!radioEl &&\n !radioEl.hasAttribute(\"selected\")));\n };\n this.focusElement = (element, shiftKey = false) => {\n let nextFocusEl = element;\n if (this.shouldSkipElement(element)) {\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n this.focusElement(nextFocusEl, shiftKey);\n }\n else {\n switch (element.tagName) {\n case this.IC_ACCORDION_GROUP:\n case this.IC_ACCORDION:\n case this.IC_SEARCH_BAR:\n case this.IC_TEXT_FIELD:\n case this.IC_CHECKBOX:\n element.setFocus();\n break;\n default:\n element.focus();\n }\n }\n };\n this.renderDialog = () => {\n const { hideDefaultControls, size, heading, label, destructive, dismissLabel, hideCloseButton, disableHeightConstraint, disableWidthConstraint, closeIconClick, DIALOG_CONTROLS, } = this;\n const controlsSlotUsed = isSlotUsed(this.el, DIALOG_CONTROLS);\n return (h(\"dialog\", { class: {\n dialog: true,\n [`${size}`]: true,\n \"disable-height-constraint\": !!disableHeightConstraint,\n \"disable-width-constraint\": !!disableWidthConstraint,\n }, \"aria-labelledby\": \"dialog-label dialog-heading\", \"aria-describedby\": \"dialog-alert dialog-content\", ref: (el) => (this.dialogEl = el) }, h(\"div\", { class: \"heading-area\" }, h(\"div\", { class: \"heading-content\" }, h(\"div\", { class: \"label\" }, h(\"slot\", { name: \"label\" }, h(\"ic-typography\", { variant: \"label\", id: \"dialog-label\" }, label))), h(\"div\", { class: \"heading\" }, h(\"slot\", { name: \"heading\" }, h(\"ic-typography\", { variant: \"h4\", id: \"dialog-heading\" }, heading)))), !hideCloseButton && (h(\"ic-button\", { class: \"close-icon\", variant: \"icon\", innerHTML: closeIcon, \"aria-label\": dismissLabel, onClick: closeIconClick, \"data-gets-focus\": destructive || (hideDefaultControls && !controlsSlotUsed)\n ? \"\"\n : null }))), h(\"div\", { class: \"content-area\" }, isSlotUsed(this.el, \"alert\") && h(\"slot\", { name: \"alert\" }), h(\"div\", { id: \"dialog-content\" }, h(\"slot\", null))), (controlsSlotUsed || !hideDefaultControls) && (h(\"div\", { class: {\n [DIALOG_CONTROLS]: true,\n } }, controlsSlotUsed ? (h(\"slot\", { name: DIALOG_CONTROLS })) : (h(Fragment, null, h(\"ic-button\", { variant: \"tertiary\", onClick: () => this.cancelDialog(), class: \"dialog-control-button\", \"data-gets-focus\": null }, \"Cancel\"), h(\"ic-button\", { variant: destructive ? \"destructive\" : \"primary\", onClick: () => this.confirmDialog(), class: \"dialog-control-button\", \"data-gets-focus\": \"\" }, \"Confirm\")))))));\n };\n }\n watchOpenHandler() {\n if (this.open) {\n this.dialogOpened();\n }\n else {\n this.fadeIn = false;\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n setTimeout(() => {\n var _a, _b;\n this.dialogRendered = false;\n (_a = this.dialogEl) === null || _a === void 0 ? void 0 : _a.close();\n (_b = this.sourceElement) === null || _b === void 0 ? void 0 : _b.focus();\n this.dialogHeight = 0;\n this.icDialogClosed.emit();\n }, 80);\n }\n }\n disconnectedCallback() {\n this.removeSlotChangeListener();\n }\n componentDidLoad() {\n this.getInteractiveElements();\n this.refreshInteractiveElementsOnSlotChange();\n if (this.open) {\n this.dialogOpened();\n }\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined([{ prop: this.heading, propName: \"heading\" }], \"Dialog\");\n }\n componentDidRender() {\n document.body.style.overflow =\n getComputedStyle(this.el).display !== \"none\" &&\n this.disableHeightConstraint\n ? \"hidden\"\n : \"auto\";\n }\n handleKeyboard(ev) {\n if (this.dialogRendered) {\n switch (ev.key) {\n case \"Tab\":\n if (this.onTabKeyPress(ev.shiftKey)) {\n ev.preventDefault();\n }\n break;\n case \"Escape\":\n if (!ev.repeat) {\n this.open = false;\n }\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n handleClick(ev) {\n if (this.dialogEl &&\n this.closeOnBackdropClick &&\n ev.composedPath().indexOf(this.dialogEl) <= 0) {\n const { top, height, left, width } = this.dialogEl.getBoundingClientRect();\n const isInDialog = top <= ev.clientY &&\n ev.clientY <= top + height &&\n left <= ev.clientX &&\n ev.clientX <= left + width;\n if (!isInDialog) {\n this.open = false;\n }\n }\n }\n /**\n * Cancels the dialog. Used by the default 'Cancel' button or can be called manually to trigger cancelling of dialog.\n */\n async cancelDialog() {\n this.icDialogCancelled.emit();\n this.open = false;\n }\n /**\n * Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\n */\n async confirmDialog() {\n this.icDialogConfirmed.emit();\n }\n loopNextFocusIndexIfLastElement() {\n if (this.focusedElementIndex > this.interactiveElementList.length - 1)\n this.focusedElementIndex = 0;\n else if (this.focusedElementIndex < 0) {\n this.focusedElementIndex = this.interactiveElementList.length - 1;\n }\n }\n setFocusIndexBasedOnShiftKey(shiftKey) {\n if (shiftKey) {\n this.focusedElementIndex -= 1;\n }\n else {\n this.focusedElementIndex += 1;\n }\n }\n render() {\n const { dialogRendered, disableHeightConstraint, fadeIn, theme } = this;\n return (h(Host, { key: 'e8517bd103f365705b664f80c494df70972dd9c4', class: {\n \"ic-dialog-hidden\": !dialogRendered,\n \"ic-dialog-fade-in\": fadeIn,\n \"disable-height-constraint\": !!disableHeightConstraint,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n } }, disableHeightConstraint ? (h(\"div\", { class: \"backdrop\", ref: (el) => (this.backdropEl = el) }, this.renderDialog())) : (this.renderDialog())));\n }\n static get is() { return \"ic-dialog\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-dialog.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-dialog.css\"]\n };\n }\n static get properties() {\n return {\n \"closeOnBackdropClick\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `false`, the dialog will not close when the backdrop is clicked.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"close-on-backdrop-click\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"destructive\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If 'true', sets the 'primary' or rightmost button to the destructive variant. Stops initial focus being set on the 'primary' or rightmost default or slotted button.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"destructive\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"dismissLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the dismiss label tooltip and aria label.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"dismiss-label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Dismiss\\\"\"\n },\n \"disableHeightConstraint\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `true`, the content area max height and overflow properties are removed allowing the dialog to stretch below the fold.\\nThis prop also prevents popover elements from being cut off within the content area.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disable-height-constraint\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disableWidthConstraint\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `true`, the content area width property is removed, allowing content to take the full width of the dialog when using the large variant.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disable-width-constraint\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"hideCloseButton\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the close button will not be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"hide-close-button\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"hideDefaultControls\": {\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 set to `true`, default button controls will not be shown, but slotted dialog controls will still be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"hide-default-controls\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"heading\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the heading for the dialog.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"heading\",\n \"reflect\": false\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the optional label for the dialog which appears above the heading.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"open\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the dialog will be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"open\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"small\\\" | \\\"medium\\\" | \\\"large\\\"\",\n \"resolved\": \"\\\"large\\\" | \\\"medium\\\" | \\\"small\\\" | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the maximum and minimum height and width for the dialog.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"small\\\"\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\" | undefined\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"dialogRendered\": {},\n \"fadeIn\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icDialogCancelled\",\n \"name\": \"icDialogCancelled\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Cancelation event emitted when default 'Cancel' button clicked or 'cancelDialog' method is called.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogClosed\",\n \"name\": \"icDialogClosed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when dialog has closed.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogConfirmed\",\n \"name\": \"icDialogConfirmed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Confirmation event emitted when default 'Confirm' primary button clicked or 'confirmDialog' method is called.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogOpened\",\n \"name\": \"icDialogOpened\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when dialog has opened.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"cancelDialog\": {\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\": \"Cancels the dialog. Used by the default 'Cancel' button or can be called manually to trigger cancelling of dialog.\",\n \"tags\": []\n }\n },\n \"confirmDialog\": {\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\": \"Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"open\",\n \"methodName\": \"watchOpenHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"keydown\",\n \"method\": \"handleKeyboard\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"click\",\n \"method\": \"handleClick\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-dialog.js.map\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,c as e,h as i,H as s,g as o}from"./p-8e4e97b4.js";import{r,i as c,o as a,a as l}from"./p-e253a857.js";const n=`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M7 9.5L12 14.5L17 9.5H7Z" fill="currentColor"/>\n</svg>`;const h=':host{display:block;border:none;position:relative}:host .tree-item-content{display:flex;align-items:center;min-height:var(--ic-space-xl);padding:var(--ic-space-xxs) var(--ic-space-xs);text-decoration:none;color:var(--ic-tree-view-text);--ic-typography-color:var(--ic-tree-view-text)}::slotted([slot="router-item"]){display:flex;align-items:center;min-height:var(--ic-space-xl);text-decoration:none;font-family:var(--ic-font-body-family);color:var(--ic-tree-view-text);padding:var(--ic-space-xxs) var(--ic-space-xs) !important}:host(.ic-tree-item-truncate) .tree-item-content,:host(.ic-tree-item-truncate) ::slotted([slot="router-item"]){height:calc(var(--ic-space-xl) + var(--ic-space-xs))}::slotted([slot="router-item"].ic-tree-item-single){padding-left:calc(var(--ic-space-xl) + var(--ic-space-xs)) !important}:host .tree-item-content:focus,::slotted([slot="router-item"]:focus){box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);transition:var(--ic-transition-duration-fast);outline:none}:host .tree-item-content:hover,::slotted([slot="router-item"]:hover){background-color:var(--ic-tree-view-hover) !important;cursor:pointer}:host .tree-item-content:active,::slotted([slot="router-item"]:active){background-color:var(--ic-tree-view-pressed) !important}:host(.ic-tree-item-selected) .tree-item-content,:host(.ic-tree-item-selected) ::slotted([slot="router-item"]){background-color:var(--ic-tree-view-selected) !important}:host(.ic-tree-item-small) .tree-item-content,:host(.ic-tree-item-small) ::slotted([slot="router-item"]){min-height:var(--ic-space-lg)}:host(.ic-tree-item-large) .tree-item-content,:host(.ic-tree-item-large) ::slotted([slot="router-item"]){min-height:calc(var(--ic-space-xl) + var(--ic-space-xs))}:host(.ic-tree-item-truncate.ic-tree-item-small) .tree-item-content,:host(.ic-tree-item-truncate.ic-tree-item-small) ::slotted([slot="router-item"]){height:var(--ic-space-lg)}:host(.ic-tree-item-truncate.ic-tree-item-large) .tree-item-content,:host(.ic-tree-item-truncate.ic-tree-item-large) ::slotted([slot="router-item"]){height:calc(var(--ic-space-xl) + var(--ic-space-xs))}:host(.ic-tree-item-disabled){pointer-events:none}:host(.ic-tree-item-disabled) .tree-item-content,:host(.ic-tree-item-disabled) ::slotted([slot="icon"]),:host(.ic-tree-item-disabled) ::slotted([slot="router-item"]){color:var(--ic-tree-view-text-disabled) !important;--ic-typography-color:var(--ic-tree-view-text-disabled) !important;fill:var(--ic-tree-view-icon-disabled);pointer-events:none}:host .arrow-dropdown{color:var(--ic-tree-view-dropdown-arrow);margin-right:var(--ic-space-xs);margin-bottom:calc(var(--ic-space-xxs) * -1)}:host(.ic-tree-item-disabled) .arrow-dropdown{color:var(--ic-tree-view-dropdown-arrow-disabled)}:host(.ic-tree-item-small) .arrow-dropdown{margin-right:var(--ic-space-xxs)}:host .tree-item-expanded{transform:rotate(180deg);margin-top:calc(-1 * var(--ic-space-xxs));margin-bottom:0}:host .ic-tree-item-single{padding-left:calc(var(--ic-space-xl) + var(--ic-space-xs))}:host(.ic-tree-item-small) .ic-tree-item-single{padding-left:calc(var(--ic-space-xl) + var(--ic-space-xxs))}.icon-container{min-width:var(--ic-space-lg);width:var(--ic-space-lg);height:var(--ic-space-lg);margin:0 var(--ic-space-xs) 0 0}:host(.ic-tree-item-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}::slotted([slot="icon"]){fill:var(--ic-tree-view-icon)}@media (forced-colors: active){::slotted([slot="icon"]){fill:currentcolor}:host .tree-item-content:hover,::slotted([slot="router-item"]:hover),:host .tree-item-content:active,::slotted([slot="router-item"]:active),:host(.ic-tree-item-selected) .tree-item-content,:host(.ic-tree-item-selected) ::slotted([slot="router-item"]){background-color:none !important}:host(.ic-tree-item-disabled) .tree-item-content,:host(.ic-tree-item-disabled) .arrow-dropdown,:host(.ic-tree-item-disabled) ::slotted([slot="icon"]),:host(.ic-tree-item-disabled) ::slotted([slot="router-item"]){color:GrayText !important;--ic-typography-color:GrayText !important;fill:GrayText !important}:host .tree-item-content:focus,::slotted([slot="router-item"]:focus){border:var(--ic-border-hc) !important}:host(.ic-tree-item-selected) .tree-item-content,:host(.ic-tree-item-selected) ::slotted([slot="router-item"]){color:Highlight !important;--ic-typography-color:Highlight !important}}';const d=h;let m=0;const v=class{constructor(i){t(this,i);this.icTreeItemSelected=e(this,"icTreeItemSelected",7);this.icTreeItemExpanded=e(this,"icTreeItemExpanded",7);this.treeItemTag="IC-TREE-ITEM";this.hostMutationObserver=null;this.TOOLTIP="ic-tooltip";this.TREE_ITEM_LABEL_CLASS_SELECTOR=".tree-item-label";this.TREE_ITEM_CONTENT_CLASS_SELECTOR=".tree-item-content";this.disabled=false;this.expanded=false;this.hasParentExpanded=false;this.hreflang="";this.isParent=false;this.label="";this.selected=false;this.size="medium";this.theme="inherit";this.handleTreeItemClicked=()=>{if(this.isParent){this.expanded=!this.expanded;this.hasParentExpanded=true}this.updateAriaLabel();this.selected=true;this.watchSelectedHandler()};this.setTreeItemPadding=()=>{var t;let e=1;let i=this.el.parentElement;const s=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(this.TREE_ITEM_CONTENT_CLASS_SELECTOR);if(!i){return}const o=Array.from(i.children).some((t=>t!==this.el&&!t.querySelector('[slot="router-item"]')&&!t.querySelector('[slot="label"]')&&t.children.length>0));if(o&&!this.el.isParent||i.tagName===this.treeItemTag&&!this.el.isParent){if(this.hasRouterSlot()){this.routerSlot.classList.add("ic-tree-item-single")}else{s.classList.add("ic-tree-item-single")}}while(i){if(i.tagName===this.treeItemTag){e++;s.style.paddingLeft=!this.el.isParent?`calc(var(--ic-space-${o?"xl":"xs"}) + ${e*(o?16:24)}px)`:`${e*16}px`}i=i.parentElement}};this.truncateTreeItemLabel=t=>{var e,i;let s=(e=t.shadowRoot)===null||e===void 0?void 0:e.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR);const o=t.querySelector("[slot='router-item']");let r=o===null||o===void 0?void 0:o.scrollHeight;if(!s&&o){const t=document.createElement("ic-typography");t.innerHTML=o.textContent;t.classList.add("tree-item-label");o.replaceChild(t,o.firstChild);s=t}else if(s){r=s.scrollHeight}const c=!!(s===null||s===void 0?void 0:s.closest(this.TOOLTIP));const a=((i=t.shadowRoot)===null||i===void 0?void 0:i.querySelector(this.TREE_ITEM_CONTENT_CLASS_SELECTOR))||o;if(a){const t=parseFloat(getComputedStyle(a).height);if(r&&t&&r>t&&!c&&s){const t=document.createElement("ic-tooltip");t.setAttribute("target",this.el.id);t.setAttribute("label",s.textContent);t.setAttribute("placement","right");if(a===o){a.addEventListener("focus",(()=>this.handleDisplayTooltip(true)));a.addEventListener("blur",(()=>this.handleDisplayTooltip(false)));t.setAttribute("style","overflow:hidden;");s.setAttribute("style","overflow:hidden;text-overflow:ellipsis;white-space:nowrap;")}else{t.classList.add("ic-tooltip-overflow");s.classList.add("ic-text-overflow")}a.appendChild(t);t.appendChild(s)}}};this.removeTreeItemTruncation=t=>{var e,i;const s=t.querySelector("[slot='router-item']");const o=((e=t.shadowRoot)===null||e===void 0?void 0:e.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR))||s.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR);const r=o===null||o===void 0?void 0:o.closest(this.TOOLTIP);const c=((i=t.shadowRoot)===null||i===void 0?void 0:i.querySelector(this.TREE_ITEM_CONTENT_CLASS_SELECTOR))||s;if(r){o.classList.remove("ic-text-overflow");c.replaceChild(c===s?o.firstChild:o,r)}};this.handleDisplayTooltip=t=>{var e;const i=((e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR))||this.el.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR);const s=i===null||i===void 0?void 0:i.closest(this.TOOLTIP);s===null||s===void 0?void 0:s.displayTooltip(t)}}watchDisabledHandler(){r(this.disabled,this.el)}watchExpandedHandler(){this.icTreeItemExpanded.emit({isExpanded:this.expanded,id:this.el.id})}watchSelectedHandler(){if(this.selected){this.icTreeItemSelected.emit({id:this.el.id})}this.updateAriaLabel()}disconnectedCallback(){var t;(t=this.hostMutationObserver)===null||t===void 0?void 0:t.disconnect()}componentWillLoad(){r(this.disabled,this.el);this.childTreeItems=Array.from(this.el.children).filter((t=>t.tagName===this.treeItemTag));if(this.childTreeItems.length>0){this.isParent=true}}componentDidLoad(){this.setTreeItemPadding();this.updateAriaLabel();!c(this.el,"label")&&a([{prop:this.label,propName:"label"}],"Tree item");this.hostMutationObserver=new MutationObserver((t=>l(t,"icon",this)));this.hostMutationObserver.observe(this.el,{childList:true})}componentDidRender(){this.truncateTreeItem?this.truncateTreeItemLabel(this.el):this.removeTreeItemTruncation(this.el);if(this.expanded){this.childTreeItems.forEach((t=>{t.truncateTreeItem?this.truncateTreeItemLabel(t):this.removeTreeItemTruncation(t)}))}}componentDidUpdate(){if(this.hasParentExpanded){this.childTreeItems.forEach((t=>{t.truncateTreeItem?this.truncateTreeItemLabel(t):this.removeTreeItemTruncation(t)}));this.hasParentExpanded=false}}handleKeyDown(t){if(t.key==="Enter"||t.key===" "){t.stopImmediatePropagation();this.handleTreeItemClicked()}}async setFocus(){var t,e;if(this.hasRouterSlot()){(t=this.routerSlot)===null||t===void 0?void 0:t.focus()}else{(e=this.treeItemElement)===null||e===void 0?void 0:e.focus()}}async updateAriaLabel(){let t;if(this.hasRouterSlot()){t=this.routerSlot.textContent}else if(c(this.el,"label")){t=this.el.querySelector('[slot="label"]').textContent}else{t=this.label}if(this.isParent){t=`${t}, triggers submenu, ${this.expanded?"expanded":"collapsed"}`}if(this.el.parentElement){const e=Array.from(this.el.parentElement.children).filter((t=>t.tagName===this.treeItemTag));const i=e.indexOf(this.el)+1;const s=e.length;t=`${t}, ${i} of ${s}`}if(this.selected){t=`${t}, active`}if(this.disabled){t=`${t}, dimmed`}if(this.hasRouterSlot()){this.routerSlot.ariaLabel=t}else{this.treeItemElement.ariaLabel=t}}hasRouterSlot(){this.routerSlot=this.el.querySelector('[slot="router-item"]');return!!this.routerSlot}render(){var t;const{disabled:e,label:o,selected:r,size:a,expanded:l,theme:h}=this;const d=this.href&&!this.disabled?"a":"div";const v=d=="a"&&{href:this.href,hrefLang:this.hreflang,referrerPolicy:this.referrerpolicy,rel:this.rel,target:this.target};return i(s,{key:"14eade7c0b23b1c2c2918dda4f011953d6463ec6",class:{"ic-tree-item-disabled":e,"ic-tree-item-selected":!e&&r,[`ic-tree-item-${a}`]:a!=="medium",[`ic-theme-${h}`]:h!=="inherit","ic-tree-item-truncate":!!this.truncateTreeItem},id:(t=this.treeItemId)!==null&&t!==void 0?t:`ic-tree-item-${m++}`},this.hasRouterSlot()?i("slot",{name:"router-item"}):i(d,Object.assign({class:{"tree-item-content":true},tabIndex:e?-1:0,onClick:this.handleTreeItemClicked,ref:t=>this.treeItemElement=t,"aria-disabled":e?"true":"false","aria-live":"polite"},v,{onFocus:()=>this.handleDisplayTooltip(true),onBlur:()=>this.handleDisplayTooltip(false)}),this.isParent&&i("span",{class:{["arrow-dropdown"]:true,["tree-item-expanded"]:l},"aria-hidden":"true",innerHTML:n}),c(this.el,"icon")&&i("div",{class:"icon-container"},i("slot",{name:"icon"})),i("ic-typography",{class:"tree-item-label"},c(this.el,"label")?i("slot",{name:"label"}):o)),l&&i("div",{key:"0a7704d93ccba8640265eacd9c81971d3717a233","aria-hidden":`${!l}`},i("slot",{key:"27eb9361c885e589eac4a3bd6cfd303efb60e1fb"})))}get el(){return o(this)}static get watchers(){return{disabled:["watchDisabledHandler"],expanded:["watchExpandedHandler"],selected:["watchSelectedHandler"]}}};v.style=d;export{v as ic_tree_item};
|
2
|
-
//# sourceMappingURL=p-7001f1c1.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icTreeItemCss","IcTreeItemStyle0","treeItemIds","TreeItem","constructor","hostRef","this","treeItemTag","hostMutationObserver","TOOLTIP","TREE_ITEM_LABEL_CLASS_SELECTOR","TREE_ITEM_CONTENT_CLASS_SELECTOR","disabled","expanded","hasParentExpanded","hreflang","isParent","label","selected","size","theme","handleTreeItemClicked","updateAriaLabel","watchSelectedHandler","setTreeItemPadding","level","parentElement","el","treeItemContent","_a","shadowRoot","querySelector","isSiblingOfParent","Array","from","children","some","sibling","length","tagName","hasRouterSlot","routerSlot","classList","add","style","paddingLeft","truncateTreeItemLabel","treeItem","typographyEl","slottedContent","contentHeight","scrollHeight","newTypographyEl","document","createElement","innerHTML","textContent","replaceChild","firstChild","tooltipAlreadyExists","closest","treeContent","_b","computedHeight","parseFloat","getComputedStyle","height","tooltipEl","setAttribute","id","addEventListener","handleDisplayTooltip","appendChild","removeTreeItemTruncation","remove","display","tooltip","displayTooltip","watchDisabledHandler","removeDisabledFalse","watchExpandedHandler","icTreeItemExpanded","emit","isExpanded","icTreeItemSelected","disconnectedCallback","disconnect","componentWillLoad","childTreeItems","filter","child","componentDidLoad","isSlotUsed","onComponentRequiredPropUndefined","prop","propName","MutationObserver","mutationList","renderDynamicChildSlots","observe","childList","componentDidRender","truncateTreeItem","forEach","componentDidUpdate","handleKeyDown","ev","key","stopImmediatePropagation","setFocus","focus","treeItemElement","ariaLabel","treeItems","index","indexOf","parentChildren","render","Component","href","attrs","hrefLang","referrerPolicy","referrerpolicy","rel","target","h","Host","class","treeItemId","name","Object","assign","tabIndex","onClick","ref","onFocus","onBlur","arrowDropdown"],"sources":["src/components/ic-tree-item/ic-tree-item.css?tag=ic-tree-item&encapsulation=shadow","src/components/ic-tree-item/ic-tree-item.tsx"],"sourcesContent":[":host {\n display: block;\n border: none;\n position: relative;\n}\n\n:host .tree-item-content {\n display: flex;\n align-items: center;\n min-height: var(--ic-space-xl);\n padding: var(--ic-space-xxs) var(--ic-space-xs);\n text-decoration: none;\n color: var(--ic-tree-view-text);\n\n --ic-typography-color: var(--ic-tree-view-text);\n}\n\n::slotted([slot=\"router-item\"]) {\n display: flex;\n align-items: center;\n min-height: var(--ic-space-xl);\n text-decoration: none;\n font-family: var(--ic-font-body-family);\n color: var(--ic-tree-view-text);\n padding: var(--ic-space-xxs) var(--ic-space-xs) !important;\n}\n\n:host(.ic-tree-item-truncate) .tree-item-content,\n:host(.ic-tree-item-truncate) ::slotted([slot=\"router-item\"]) {\n height: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n::slotted([slot=\"router-item\"].ic-tree-item-single) {\n padding-left: calc(var(--ic-space-xl) + var(--ic-space-xs)) !important;\n}\n\n:host .tree-item-content:focus,\n::slotted([slot=\"router-item\"]:focus) {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n transition: var(--ic-transition-duration-fast);\n outline: none;\n}\n\n:host .tree-item-content:hover,\n::slotted([slot=\"router-item\"]:hover) {\n background-color: var(--ic-tree-view-hover) !important;\n cursor: pointer;\n}\n\n:host .tree-item-content:active,\n::slotted([slot=\"router-item\"]:active) {\n background-color: var(--ic-tree-view-pressed) !important;\n}\n\n:host(.ic-tree-item-selected) .tree-item-content,\n:host(.ic-tree-item-selected) ::slotted([slot=\"router-item\"]) {\n background-color: var(--ic-tree-view-selected) !important;\n}\n\n:host(.ic-tree-item-small) .tree-item-content,\n:host(.ic-tree-item-small) ::slotted([slot=\"router-item\"]) {\n min-height: var(--ic-space-lg);\n}\n\n:host(.ic-tree-item-large) .tree-item-content,\n:host(.ic-tree-item-large) ::slotted([slot=\"router-item\"]) {\n min-height: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.ic-tree-item-truncate.ic-tree-item-small) .tree-item-content,\n:host(.ic-tree-item-truncate.ic-tree-item-small)\n ::slotted([slot=\"router-item\"]) {\n height: var(--ic-space-lg);\n}\n\n:host(.ic-tree-item-truncate.ic-tree-item-large) .tree-item-content,\n:host(.ic-tree-item-truncate.ic-tree-item-large)\n ::slotted([slot=\"router-item\"]) {\n height: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.ic-tree-item-disabled) {\n pointer-events: none;\n}\n\n:host(.ic-tree-item-disabled) .tree-item-content,\n:host(.ic-tree-item-disabled) ::slotted([slot=\"icon\"]),\n:host(.ic-tree-item-disabled) ::slotted([slot=\"router-item\"]) {\n color: var(--ic-tree-view-text-disabled) !important;\n\n --ic-typography-color: var(--ic-tree-view-text-disabled) !important;\n\n fill: var(--ic-tree-view-icon-disabled);\n pointer-events: none;\n}\n\n:host .arrow-dropdown {\n color: var(--ic-tree-view-dropdown-arrow);\n margin-right: var(--ic-space-xs);\n margin-bottom: calc(var(--ic-space-xxs) * -1);\n}\n\n:host(.ic-tree-item-disabled) .arrow-dropdown {\n color: var(--ic-tree-view-dropdown-arrow-disabled);\n}\n\n:host(.ic-tree-item-small) .arrow-dropdown {\n margin-right: var(--ic-space-xxs);\n}\n\n:host .tree-item-expanded {\n transform: rotate(180deg);\n margin-top: calc(-1 * var(--ic-space-xxs));\n margin-bottom: 0;\n}\n\n:host .ic-tree-item-single {\n padding-left: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.ic-tree-item-small) .ic-tree-item-single {\n padding-left: calc(var(--ic-space-xl) + var(--ic-space-xxs));\n}\n\n.icon-container {\n min-width: var(--ic-space-lg);\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-item-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::slotted([slot=\"icon\"]) {\n fill: var(--ic-tree-view-icon);\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n\n :host .tree-item-content:hover,\n ::slotted([slot=\"router-item\"]:hover),\n :host .tree-item-content:active,\n ::slotted([slot=\"router-item\"]:active),\n :host(.ic-tree-item-selected) .tree-item-content,\n :host(.ic-tree-item-selected) ::slotted([slot=\"router-item\"]) {\n background-color: none !important;\n }\n\n :host(.ic-tree-item-disabled) .tree-item-content,\n :host(.ic-tree-item-disabled) .arrow-dropdown,\n :host(.ic-tree-item-disabled) ::slotted([slot=\"icon\"]),\n :host(.ic-tree-item-disabled) ::slotted([slot=\"router-item\"]) {\n color: GrayText !important;\n\n --ic-typography-color: GrayText !important;\n\n fill: GrayText !important;\n }\n\n :host .tree-item-content:focus,\n ::slotted([slot=\"router-item\"]:focus) {\n border: var(--ic-border-hc) !important;\n }\n\n :host(.ic-tree-item-selected) .tree-item-content,\n :host(.ic-tree-item-selected) ::slotted([slot=\"router-item\"]) {\n color: Highlight !important;\n\n --ic-typography-color: Highlight !important;\n }\n}\n","import {\n Component,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Host,\n Watch,\n State,\n Listen,\n Method,\n} from \"@stencil/core\";\nimport { IcSizes, IcThemeMode } from \"../../utils/types\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport arrowDropdown from \"../../assets/arrow-dropdown.svg\";\n\nlet treeItemIds = 0;\n\n/**\n * @slot label - Content is set as the tree item label.\n * @slot icon - Content is placed to the left of the label.\n * @slot router-item - Handle routing by nesting your routes in this slot.\n */\n@Component({\n tag: \"ic-tree-item\",\n styleUrl: \"ic-tree-item.css\",\n shadow: true,\n})\nexport class TreeItem {\n private treeItemElement: HTMLElement | undefined;\n private treeItemTag = \"IC-TREE-ITEM\";\n private routerSlot: HTMLElement | null;\n private hostMutationObserver: MutationObserver | null = null;\n private TOOLTIP = \"ic-tooltip\";\n private TREE_ITEM_LABEL_CLASS_SELECTOR = \".tree-item-label\";\n private TREE_ITEM_CONTENT_CLASS_SELECTOR = \".tree-item-content\";\n\n @Element() el: HTMLIcTreeItemElement;\n\n @State() childTreeItems: HTMLIcTreeItemElement[];\n\n /**\n * If `true`, the tree item appears in the disabled state.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the tree item appears in the expanded state.\n */\n @Prop({ mutable: true }) expanded: boolean = false;\n @Watch(\"expanded\")\n watchExpandedHandler(): void {\n this.icTreeItemExpanded.emit({ isExpanded: this.expanded, id: this.el.id });\n }\n\n /**\n * @internal Determines if the parent tree item has been expanded.\n */\n @Prop({ mutable: true }) hasParentExpanded: boolean = false;\n\n /**\n * The URL that the tree item link points to. If set, the tree item will render as an \"a\" tag, otherwise it will render as a div.\n */\n @Prop() href?: string | undefined;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n\n /**\n * @internal If `true`, the tree item is a parent of other tree items.\n */\n @Prop({ mutable: true }) isParent: boolean = false;\n\n /**\n * The label of the tree item.\n */\n @Prop() label: string = \"\";\n\n /**\n * @internal Holds the previous truncation state before the screen switches to a small viewport, so it can be reset when screen size changes again.\n */\n @Prop() previousTruncateTreeItem?: boolean;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * If `true`, the tree item appears in the selected state.\n */\n @Prop({ mutable: true }) selected: boolean = false;\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n if (this.selected) {\n this.icTreeItemSelected.emit({ id: this.el.id });\n }\n this.updateAriaLabel();\n }\n\n /**\n * @internal Determines the size of the tree item.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the tree item id. Must be unique.\n */\n @Prop() treeItemId?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * If `true`, the tree item label will be truncated instead of text wrapping.\n */\n @Prop() truncateTreeItem?: boolean;\n\n /**\n * Emitted when tree item is selected.\n */\n @Event() icTreeItemSelected: EventEmitter<{ id: string }>;\n\n /**\n * Emitted when tree item is expanded.\n */\n @Event() icTreeItemExpanded: EventEmitter<{\n isExpanded: boolean;\n id: string;\n }>;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n this.childTreeItems = Array.from((this.el as HTMLElement).children).filter(\n (child) => child.tagName === this.treeItemTag\n ) as HTMLIcTreeItemElement[];\n\n if (this.childTreeItems.length > 0) {\n this.isParent = true;\n }\n }\n\n componentDidLoad(): void {\n this.setTreeItemPadding();\n\n this.updateAriaLabel();\n\n !isSlotUsed(this.el, \"label\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tree item\"\n );\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, \"icon\", this)\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n componentDidRender(): void {\n this.truncateTreeItem\n ? this.truncateTreeItemLabel(this.el)\n : this.removeTreeItemTruncation(this.el);\n if (this.expanded) {\n this.childTreeItems.forEach((child: HTMLIcTreeItemElement) => {\n child.truncateTreeItem\n ? this.truncateTreeItemLabel(child)\n : this.removeTreeItemTruncation(child);\n });\n }\n }\n\n componentDidUpdate(): void {\n if (this.hasParentExpanded) {\n this.childTreeItems.forEach((child: HTMLIcTreeItemElement) => {\n child.truncateTreeItem\n ? this.truncateTreeItemLabel(child)\n : this.removeTreeItemTruncation(child);\n });\n this.hasParentExpanded = false;\n }\n }\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n if (ev.key === \"Enter\" || ev.key === \" \") {\n ev.stopImmediatePropagation();\n this.handleTreeItemClicked();\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.hasRouterSlot()) {\n this.routerSlot?.focus();\n } else {\n this.treeItemElement?.focus();\n }\n }\n\n private handleTreeItemClicked = (): void => {\n if (this.isParent) {\n this.expanded = !this.expanded;\n this.hasParentExpanded = true;\n }\n\n this.updateAriaLabel();\n this.selected = true;\n this.watchSelectedHandler();\n };\n\n /**\n * @internal Updates the aria-label of the tree item.\n */\n @Method()\n async updateAriaLabel(): Promise<void> {\n let ariaLabel;\n\n if (this.hasRouterSlot()) {\n ariaLabel = this.routerSlot!.textContent;\n } else if (isSlotUsed(this.el, \"label\")) {\n ariaLabel = this.el.querySelector('[slot=\"label\"]')!.textContent;\n } else {\n ariaLabel = this.label;\n }\n\n if (this.isParent) {\n ariaLabel = `${ariaLabel}, triggers submenu, ${\n this.expanded ? \"expanded\" : \"collapsed\"\n }`;\n }\n\n if (this.el.parentElement) {\n const treeItems = Array.from(\n (this.el.parentElement as HTMLElement).children\n ).filter(\n (child) => child.tagName === this.treeItemTag\n ) as HTMLIcTreeItemElement[];\n\n const index = treeItems.indexOf(this.el) + 1;\n const parentChildren = treeItems.length;\n\n ariaLabel = `${ariaLabel}, ${index} of ${parentChildren}`;\n }\n\n if (this.selected) {\n ariaLabel = `${ariaLabel}, active`;\n }\n\n if (this.disabled) {\n ariaLabel = `${ariaLabel}, dimmed`;\n }\n\n if (this.hasRouterSlot()) {\n this.routerSlot!.ariaLabel = ariaLabel;\n } else {\n this.treeItemElement!.ariaLabel = ariaLabel;\n }\n }\n\n private setTreeItemPadding = () => {\n let level = 1;\n let parentElement = this.el.parentElement;\n const treeItemContent = this.el.shadowRoot?.querySelector(\n this.TREE_ITEM_CONTENT_CLASS_SELECTOR\n ) as HTMLElement;\n\n if (!parentElement) {\n return;\n }\n\n const isSiblingOfParent = Array.from(parentElement.children).some(\n (sibling) =>\n sibling !== this.el &&\n !sibling.querySelector('[slot=\"router-item\"]') &&\n !sibling.querySelector('[slot=\"label\"]') &&\n sibling.children.length > 0\n );\n\n if (\n (isSiblingOfParent && !this.el.isParent) ||\n (parentElement.tagName === this.treeItemTag && !this.el.isParent)\n ) {\n if (this.hasRouterSlot()) {\n this.routerSlot!.classList.add(\"ic-tree-item-single\");\n } else {\n treeItemContent.classList.add(\"ic-tree-item-single\");\n }\n }\n\n while (parentElement) {\n if (parentElement.tagName === this.treeItemTag) {\n level++;\n treeItemContent.style.paddingLeft = !this.el.isParent\n ? `calc(var(--ic-space-${isSiblingOfParent ? \"xl\" : \"xs\"}) + ${\n level * (isSiblingOfParent ? 16 : 24)\n }px)`\n : `${level * 16}px`;\n }\n parentElement = parentElement.parentElement;\n }\n };\n\n private truncateTreeItemLabel = (treeItem: HTMLIcTreeItemElement) => {\n let typographyEl =\n treeItem.shadowRoot?.querySelector<HTMLIcTypographyElement>(\n this.TREE_ITEM_LABEL_CLASS_SELECTOR\n );\n const slottedContent = treeItem.querySelector(\"[slot='router-item']\");\n let contentHeight = slottedContent?.scrollHeight;\n\n if (!typographyEl && slottedContent) {\n const newTypographyEl = document.createElement(\"ic-typography\");\n newTypographyEl.innerHTML = slottedContent.textContent!;\n newTypographyEl.classList.add(\"tree-item-label\");\n slottedContent.replaceChild(newTypographyEl, slottedContent.firstChild!);\n typographyEl = newTypographyEl;\n } else if (typographyEl) {\n contentHeight = typographyEl.scrollHeight;\n }\n\n const tooltipAlreadyExists = !!typographyEl?.closest(this.TOOLTIP);\n const treeContent =\n treeItem.shadowRoot?.querySelector(\n this.TREE_ITEM_CONTENT_CLASS_SELECTOR\n ) || slottedContent;\n\n if (treeContent) {\n const computedHeight = parseFloat(getComputedStyle(treeContent).height);\n if (\n contentHeight &&\n computedHeight &&\n contentHeight > computedHeight &&\n !tooltipAlreadyExists &&\n typographyEl\n ) {\n const tooltipEl = document.createElement(\"ic-tooltip\");\n tooltipEl.setAttribute(\"target\", this.el.id);\n tooltipEl.setAttribute(\"label\", typographyEl.textContent!);\n tooltipEl.setAttribute(\"placement\", \"right\");\n\n if (treeContent === slottedContent) {\n treeContent.addEventListener(\"focus\", () =>\n this.handleDisplayTooltip(true)\n );\n treeContent.addEventListener(\"blur\", () =>\n this.handleDisplayTooltip(false)\n );\n tooltipEl.setAttribute(\"style\", \"overflow:hidden;\");\n typographyEl.setAttribute(\n \"style\",\n \"overflow:hidden;text-overflow:ellipsis;white-space:nowrap;\"\n );\n } else {\n tooltipEl.classList.add(\"ic-tooltip-overflow\");\n typographyEl.classList.add(\"ic-text-overflow\");\n }\n\n treeContent.appendChild(tooltipEl);\n tooltipEl.appendChild(typographyEl);\n }\n }\n };\n\n private removeTreeItemTruncation = (treeItem: HTMLIcTreeItemElement) => {\n const slottedContent = treeItem.querySelector(\"[slot='router-item']\");\n const typographyEl: HTMLIcTypographyElement =\n treeItem.shadowRoot?.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR) ||\n slottedContent!.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR)!;\n const tooltipEl = typographyEl?.closest<HTMLIcTooltipElement>(this.TOOLTIP);\n const treeContent =\n treeItem.shadowRoot?.querySelector(\n this.TREE_ITEM_CONTENT_CLASS_SELECTOR\n ) || slottedContent!;\n\n if (tooltipEl) {\n typographyEl.classList.remove(\"ic-text-overflow\");\n treeContent.replaceChild(\n treeContent === slottedContent\n ? typographyEl.firstChild!\n : typographyEl,\n tooltipEl\n );\n }\n };\n\n private hasRouterSlot(): boolean {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n return !!this.routerSlot;\n }\n\n private handleDisplayTooltip = (display: boolean) => {\n const typographyEl =\n this.el.shadowRoot?.querySelector<HTMLIcTypographyElement>(\n this.TREE_ITEM_LABEL_CLASS_SELECTOR\n ) || this.el.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR);\n const tooltip = typographyEl?.closest<HTMLIcTooltipElement>(this.TOOLTIP);\n\n tooltip?.displayTooltip(display);\n };\n\n render() {\n const { disabled, label, selected, size, expanded, theme } = this;\n\n const Component = this.href && !this.disabled ? \"a\" : \"div\";\n\n const attrs = Component == \"a\" && {\n href: this.href,\n hrefLang: this.hreflang,\n referrerPolicy: this.referrerpolicy,\n rel: this.rel,\n target: this.target,\n };\n\n return (\n <Host\n class={{\n \"ic-tree-item-disabled\": disabled,\n \"ic-tree-item-selected\": !disabled && selected,\n [`ic-tree-item-${size}`]: size !== \"medium\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n \"ic-tree-item-truncate\": !!this.truncateTreeItem,\n }}\n id={this.treeItemId ?? `ic-tree-item-${treeItemIds++}`}\n >\n {this.hasRouterSlot() ? (\n <slot name=\"router-item\" />\n ) : (\n <Component\n class={{\n \"tree-item-content\": true,\n }}\n tabIndex={disabled ? -1 : 0}\n onClick={this.handleTreeItemClicked}\n ref={(el) => (this.treeItemElement = el)}\n aria-disabled={disabled ? \"true\" : \"false\"}\n aria-live=\"polite\"\n {...attrs}\n onFocus={() => this.handleDisplayTooltip(true)}\n onBlur={() => this.handleDisplayTooltip(false)}\n >\n {this.isParent && (\n <span\n class={{\n [\"arrow-dropdown\"]: true,\n [\"tree-item-expanded\"]: expanded,\n }}\n aria-hidden=\"true\"\n innerHTML={arrowDropdown}\n />\n )}\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography class=\"tree-item-label\">\n {isSlotUsed(this.el, \"label\") ? <slot name=\"label\" /> : label}\n </ic-typography>\n </Component>\n )}\n {expanded && (\n <div aria-hidden={`${!expanded}`}>\n <slot />\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|