@ukic/web-components 2.7.0 → 2.8.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +2 -2
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card.cjs.entry.js +1 -1
- package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-entity.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +86 -65
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +76 -67
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -2
- package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +28 -59
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +2 -2
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-select.cjs.entry.js +3 -2
- package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
- package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +1 -1
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +1 -1
- 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-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +16 -24
- package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +8 -4
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js +3 -0
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js.map +1 -1
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js +3 -0
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js.map +1 -1
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +3 -3
- package/dist/collection/components/ic-badge/ic-badge.js +1 -1
- package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.css +3 -1
- package/dist/collection/components/ic-card/ic-card.css +1 -1
- package/dist/collection/components/ic-checkbox/ic-checkbox.css +5 -5
- package/dist/collection/components/ic-chip/ic-chip.css +1 -1
- package/dist/collection/components/ic-data-entity/ic-data-entity.css +1 -1
- package/dist/collection/components/ic-data-row/ic-data-row.css +1 -1
- package/dist/collection/components/ic-data-row/test/a11y/ic-data-row.test.a11y.js +3 -1
- package/dist/collection/components/ic-data-row/test/a11y/ic-data-row.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-dialog/ic-dialog.css +56 -22
- package/dist/collection/components/ic-dialog/ic-dialog.js +103 -64
- package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js +129 -48
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js.map +1 -1
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +38 -39
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
- package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js +2 -0
- package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-horizontal-scroll/test/a11y/ic-horizontal-scroll.test.a11y.js +2 -0
- package/dist/collection/components/ic-horizontal-scroll/test/a11y/ic-horizontal-scroll.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +4 -4
- package/dist/collection/components/ic-menu/ic-menu.css +1 -5
- package/dist/collection/components/ic-menu/ic-menu.js +124 -65
- package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
- package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +17 -0
- package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -1
- package/dist/collection/components/ic-navigation-group/test/a11y/ic-navigation-group.test.a11y.js +2 -0
- package/dist/collection/components/ic-navigation-group/test/a11y/ic-navigation-group.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +11 -5
- package/dist/collection/components/ic-navigation-item/test/a11y/ic-navigation-item.test.a11y.js +2 -0
- package/dist/collection/components/ic-navigation-item/test/a11y/ic-navigation-item.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.css +7 -3
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
- package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js +1 -1
- package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js +37 -36
- package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js.map +1 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +28 -59
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
- package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js +3 -0
- package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js.map +1 -1
- package/dist/collection/components/ic-radio-option/ic-radio-option.css +3 -3
- package/dist/collection/components/ic-search-bar/ic-search-bar.css +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.js +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
- package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js +14 -30
- package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select.css +1 -1
- package/dist/collection/components/ic-select/ic-select.js +20 -1
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +1 -0
- package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js.map +1 -1
- package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +2 -2
- package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +1 -2
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
- package/dist/collection/components/ic-status-tag/ic-status-tag.css +4 -4
- package/dist/collection/components/ic-step/ic-step.css +1 -1
- package/dist/collection/components/ic-switch/ic-switch.css +3 -2
- package/dist/collection/components/ic-tab-group/ic-tab-group.css +1 -1
- package/dist/collection/components/ic-text-field/ic-text-field.js +16 -24
- package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
- package/dist/collection/components/ic-tooltip/ic-tooltip.css +2 -2
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +3 -3
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +8 -3
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js +2 -0
- package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js +15 -0
- package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js.map +1 -1
- package/dist/components/ic-back-to-top.js +1 -1
- package/dist/components/ic-back-to-top.js.map +1 -1
- package/dist/components/ic-badge.js +1 -1
- package/dist/components/ic-badge.js.map +1 -1
- package/dist/components/ic-button2.js +1 -1
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card.js +1 -1
- package/dist/components/ic-card.js.map +1 -1
- package/dist/components/ic-checkbox.js +1 -1
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-chip.js +1 -1
- package/dist/components/ic-chip.js.map +1 -1
- package/dist/components/ic-data-entity.js +1 -1
- package/dist/components/ic-data-entity.js.map +1 -1
- package/dist/components/ic-data-row.js +1 -1
- package/dist/components/ic-data-row.js.map +1 -1
- package/dist/components/ic-dialog.js +88 -66
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +1 -1
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-menu2.js +79 -67
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-group.js +1 -1
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-item.js +1 -1
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-navigation-menu2.js +5 -2
- package/dist/components/ic-navigation-menu2.js.map +1 -1
- package/dist/components/ic-popover-menu.js +28 -59
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-option.js +1 -1
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +2 -2
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-select.js +4 -2
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-status-tag.js +1 -1
- package/dist/components/ic-status-tag.js.map +1 -1
- package/dist/components/ic-step.js +1 -1
- package/dist/components/ic-step.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-tab-group.js +1 -1
- package/dist/components/ic-tab-group.js.map +1 -1
- package/dist/components/ic-text-field2.js +16 -24
- package/dist/components/ic-text-field2.js.map +1 -1
- package/dist/components/ic-tooltip2.js +1 -1
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-top-navigation.js +8 -4
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/core/core.css +1 -1
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/p-24da56e7.entry.js +2 -0
- package/dist/core/p-24da56e7.entry.js.map +1 -0
- package/dist/core/p-43af3cf6.entry.js +2 -0
- package/dist/core/p-43af3cf6.entry.js.map +1 -0
- package/dist/core/p-4bc35224.entry.js +2 -0
- package/dist/core/p-4bc35224.entry.js.map +1 -0
- package/dist/core/p-5a3ca50a.entry.js +2 -0
- package/dist/core/p-5a3ca50a.entry.js.map +1 -0
- package/dist/core/{p-eb063498.entry.js → p-5ccbb042.entry.js} +2 -2
- package/dist/core/p-5ccbb042.entry.js.map +1 -0
- package/dist/core/p-657513b5.entry.js +2 -0
- package/dist/core/p-657513b5.entry.js.map +1 -0
- package/dist/core/p-69d15528.entry.js +2 -0
- package/dist/core/p-69d15528.entry.js.map +1 -0
- package/dist/core/p-6c376756.entry.js +2 -0
- package/dist/core/p-6c376756.entry.js.map +1 -0
- package/dist/core/p-717907de.entry.js +2 -0
- package/dist/core/p-717907de.entry.js.map +1 -0
- package/dist/core/p-748159fe.entry.js +2 -0
- package/dist/core/p-748159fe.entry.js.map +1 -0
- package/dist/core/p-7ce86152.entry.js +2 -0
- package/dist/core/p-7ce86152.entry.js.map +1 -0
- package/dist/core/p-8b18346a.entry.js.map +1 -1
- package/dist/core/p-99fad66b.entry.js +2 -0
- package/dist/core/p-99fad66b.entry.js.map +1 -0
- package/dist/core/p-9f6ffced.entry.js +2 -0
- package/dist/core/p-9f6ffced.entry.js.map +1 -0
- package/dist/core/{p-af9f1caa.entry.js → p-9ff57f09.entry.js} +2 -2
- package/dist/core/p-9ff57f09.entry.js.map +1 -0
- package/dist/core/p-a76912b0.entry.js +2 -0
- package/dist/core/p-a76912b0.entry.js.map +1 -0
- package/dist/core/p-b879fa3e.entry.js +2 -0
- package/dist/core/p-b879fa3e.entry.js.map +1 -0
- package/dist/core/p-c0719bf4.entry.js +2 -0
- package/dist/core/p-c0719bf4.entry.js.map +1 -0
- package/dist/core/{p-ec82fa24.entry.js → p-ca6073be.entry.js} +2 -2
- package/dist/core/p-ca6073be.entry.js.map +1 -0
- package/dist/core/p-cb5f19ea.entry.js +2 -0
- package/dist/core/p-cb5f19ea.entry.js.map +1 -0
- package/dist/core/p-d80f99e0.entry.js +2 -0
- package/dist/core/p-d80f99e0.entry.js.map +1 -0
- package/dist/core/p-e9ddb8cd.entry.js +2 -0
- package/dist/core/p-e9ddb8cd.entry.js.map +1 -0
- package/dist/core/p-eb4641a9.entry.js +2 -0
- package/dist/core/p-eb4641a9.entry.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/ic-back-to-top.entry.js +1 -1
- package/dist/esm/ic-back-to-top.entry.js.map +1 -1
- package/dist/esm/ic-badge.entry.js.map +1 -1
- package/dist/esm/ic-button_3.entry.js +2 -2
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card.entry.js +1 -1
- package/dist/esm/ic-card.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +1 -1
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +1 -1
- package/dist/esm/ic-chip.entry.js.map +1 -1
- package/dist/esm/ic-data-entity.entry.js +1 -1
- package/dist/esm/ic-data-entity.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js +1 -1
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-dialog.entry.js +87 -66
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +76 -67
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-navigation-group.entry.js +1 -1
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +1 -1
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +5 -2
- package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +28 -59
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +1 -1
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +2 -2
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-select.entry.js +3 -2
- package/dist/esm/ic-select.entry.js.map +1 -1
- package/dist/esm/ic-status-tag.entry.js +1 -1
- package/dist/esm/ic-status-tag.entry.js.map +1 -1
- package/dist/esm/ic-step.entry.js +1 -1
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +1 -1
- 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-group.entry.js.map +1 -1
- package/dist/esm/ic-text-field.entry.js +16 -24
- package/dist/esm/ic-text-field.entry.js.map +1 -1
- package/dist/esm/ic-top-navigation.entry.js +8 -4
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-dialog/ic-dialog.d.ts +13 -2
- package/dist/types/components/ic-menu/ic-menu.d.ts +12 -2
- package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +1 -1
- package/dist/types/components/ic-select/ic-select.d.ts +4 -0
- package/dist/types/components/ic-text-field/ic-text-field.d.ts +1 -0
- package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +1 -0
- package/dist/types/components.d.ts +18 -0
- package/hydrate/index.js +246 -242
- package/package.json +2 -2
- package/dist/core/p-0dc4f225.entry.js +0 -2
- package/dist/core/p-0dc4f225.entry.js.map +0 -1
- package/dist/core/p-12124e24.entry.js +0 -2
- package/dist/core/p-12124e24.entry.js.map +0 -1
- package/dist/core/p-1cf2a6aa.entry.js +0 -2
- package/dist/core/p-1cf2a6aa.entry.js.map +0 -1
- package/dist/core/p-3fd897c9.entry.js +0 -2
- package/dist/core/p-3fd897c9.entry.js.map +0 -1
- package/dist/core/p-432f8ff0.entry.js +0 -2
- package/dist/core/p-432f8ff0.entry.js.map +0 -1
- package/dist/core/p-4559600a.entry.js +0 -2
- package/dist/core/p-4559600a.entry.js.map +0 -1
- package/dist/core/p-5b487daa.entry.js +0 -2
- package/dist/core/p-5b487daa.entry.js.map +0 -1
- package/dist/core/p-5ca39ed5.entry.js +0 -2
- package/dist/core/p-5ca39ed5.entry.js.map +0 -1
- package/dist/core/p-763d0822.entry.js +0 -2
- package/dist/core/p-763d0822.entry.js.map +0 -1
- package/dist/core/p-7bb3c340.entry.js +0 -2
- package/dist/core/p-7bb3c340.entry.js.map +0 -1
- package/dist/core/p-9ccfb863.entry.js +0 -2
- package/dist/core/p-9ccfb863.entry.js.map +0 -1
- package/dist/core/p-a448d873.entry.js +0 -2
- package/dist/core/p-a448d873.entry.js.map +0 -1
- package/dist/core/p-af9f1caa.entry.js.map +0 -1
- package/dist/core/p-b77ab20a.entry.js +0 -2
- package/dist/core/p-b77ab20a.entry.js.map +0 -1
- package/dist/core/p-c36cbd8a.entry.js +0 -2
- package/dist/core/p-c36cbd8a.entry.js.map +0 -1
- package/dist/core/p-e2903ce9.entry.js +0 -2
- package/dist/core/p-e2903ce9.entry.js.map +0 -1
- package/dist/core/p-ea6ad791.entry.js +0 -2
- package/dist/core/p-ea6ad791.entry.js.map +0 -1
- package/dist/core/p-eb063498.entry.js.map +0 -1
- package/dist/core/p-ec82fa24.entry.js.map +0 -1
- package/dist/core/p-f00e510b.entry.js +0 -2
- package/dist/core/p-f00e510b.entry.js.map +0 -1
- package/dist/core/p-f69fb26b.entry.js +0 -2
- package/dist/core/p-f69fb26b.entry.js.map +0 -1
- package/dist/core/p-fe6e0c0e.entry.js +0 -2
- package/dist/core/p-fe6e0c0e.entry.js.map +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icNavigationGroupCss","NavigationGroup","this","allGroupedNavigationItems","DYNAMIC_GROUPED_LINKS_HEIGHT_MS","IC_NAVIGATION_ITEM","mouseGate","nodeName","GROUPED_LINKS_WRAPPER_CLASS","sideNavExpandHandler","event","isSideNavExpanded","detail","sideNavExpanded","linkWrapper","el","shadowRoot","querySelector","expanded","expandedNavItemsHeight","setGroupedLinksElementHeight","setTimeout","getNavigationChildItemsHeight","collapsedNavItemsHeight","topNavResizedHandler","ev","newSize","size","deviceSize","inTopNavSideMenu","DEVICE_SIZES","L","setGroupedNavItemTabIndex","tabIndexValue","querySelectorAll","forEach","navigationItem","navItem","setAttribute","toggleGroupedLinkWrapperHeight","wrapper","style","setProperty","toggleExpanded","handleClick","navigationType","toggleDropdown","handleBlur","target","relatedTarget","contains","hideDropdown","handleTopNavKeydown","key","handleKeydown","preventDefault","handleMouseLeave","relTarget","dropdown","document","activeElement","dropdownOpen","handleMouseEnter","addEventListener","showDropdown","renderDropdownGroupedLinks","h","class","onMouseLeave","ref","renderGroupedLinks","navigationChildItemsHeight","offsetHeight","setInitialGroupedLinksWrapperHeight","renderNavigationItems","expandable","XL","getThemeForegroundColor","disconnectedCallback","parentEl","removeEventListener","componentWillLoad","getCurrentDeviceSize","navParentDetails","getNavItemParentDetails","navType","parent","componentDidLoad","Array","from","childBlurHandler","navItemClickHandler","themeChangeHandler","theme","focusStyle","mode","setFocus","groupEl","focus","groupedNavItemWrapper","height","render","label","NavigationGroupElement","Host","collapsed","role","onMouseEnter","tabindex","onBlur","onClick","onKeyDown","variant","innerHTML","chevronIcon"],"sources":["src/components/ic-navigation-group/ic-navigation-group.css?tag=ic-navigation-group&encapsulation=shadow","src/components/ic-navigation-group/ic-navigation-group.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-navigation-item: z-index of navigation group item\n */\n\n:host {\n display: block;\n}\n\n:host(.in-side-menu) {\n border-bottom: var(--ic-space-1px) solid var(--ic-architectural-200);\n padding: var(--ic-space-md) 0;\n}\n\n:host .navigation-group {\n height: 100%;\n width: fit-content;\n color: var(--ic-theme-text);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 var(--ic-space-md);\n transition: var(--ic-easing-transition-slow);\n position: relative;\n background: none;\n border: none;\n}\n\n:host(.in-side-menu) .navigation-group {\n height: 2.5rem;\n width: 100%;\n text-align: left;\n}\n\n:host(.in-side-menu) .navigation-group .ic-typography-label {\n width: 11.875rem;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu {\n color: var(--ic-action-default);\n justify-content: flex-start;\n padding: 0 var(--ic-space-md) 0 var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed,\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n color: var(--ic-action-default);\n justify-content: flex-start;\n padding-left: var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed::after,\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n border-style: solid;\n border-width: 0.125em 0.125em 0 0;\n content: \"\";\n display: inline-block;\n height: 0.45em;\n left: 0.75em;\n position: relative;\n top: -0.1em;\n transform: rotate(135deg);\n vertical-align: top;\n width: 0.45em;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n top: 0.15em;\n transform: rotate(-45deg);\n}\n\n:host .navigation-group:hover,\n:host .navigation-group:active,\n:host .selected {\n background-color: var(--ic-architectural-20);\n color: var(--ic-color-primary-text);\n outline: none;\n cursor: pointer;\n}\n\n:host(:not(.in-side-menu)) .navigation-group:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n z-index: var(--ic-z-index-navigation-item);\n transition: box-shadow var(--ic-easing-transition-fast);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:hover,\n:host(.in-side-menu) .navigation-group-side-menu:active,\n:host(.in-side-menu) .navigation-group-side-menu:focus {\n background-color: var(--ic-architectural-20);\n color: var(--ic-action-default);\n cursor: auto;\n box-shadow: none;\n outline: none;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:focus {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:hover:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:hover:not(:focus) {\n background-color: var(--ic-action-dark-bg-hover);\n color: var(--ic-action-default);\n cursor: pointer;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:active:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:active:not(:focus) {\n background-color: var(--ic-action-dark-bg-active);\n color: var(--ic-action-default);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:focus,\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:focus {\n color: var(--ic-action-default);\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host .navigation-group-dropdown {\n background-color: var(--ic-architectural-20);\n border-bottom: var(--ic-border-default);\n position: absolute;\n left: 0;\n right: 0;\n padding: var(--ic-space-xs) var(--ic-space-md);\n box-shadow: 0 0.375rem 0.5rem -0.375rem rgba(0 0 0 / 20%);\n z-index: calc(var(--ic-z-index-navigation-item) - 1);\n}\n\n:host .navigation-group-dropdown-items-list {\n list-style: none;\n display: flex;\n flex-flow: column wrap;\n align-content: flex-start;\n padding-left: var(--ic-space-md);\n max-height: 16.5rem;\n}\n\n:host .chevron-toggle-icon-wrapper {\n display: flex;\n align-items: center;\n}\n\n:host .chevron-toggle-icon-wrapper svg {\n transform: rotate(90deg);\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host .chevron-toggle-icon-closed svg {\n transform: rotate(-90deg);\n}\n\n:host(.expanded) .grouped-links-wrapper {\n height: var(--navigation-child-items-height, auto) !important;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.navigation-group-side-nav) .link,\n:host(.navigation-group-side-nav) ::slotted(a) {\n height: var(--navigation-child-items-height, auto);\n}\n\n:host(.collapsed) .grouped-links-wrapper {\n height: 0;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.navigation-group-side-nav) .navigation-group {\n height: var(--navigation-group-height);\n width: var(--navigation-group-width);\n justify-content: var(--navigation-group-justify-content);\n padding-right: var(--navigation-group-expand-toggle-padding);\n}\n\n:host(.navigation-group-side-nav) .navigation-group:hover,\n:host(.navigation-group-side-nav) .navigation-group:active,\n:host(.navigation-group-side-nav) .selected {\n background-color: var(--navigation-group-hover);\n color: var(--navigation-group-text-hover);\n}\n\n:host(.navigation-group-side-nav) .navigation-group:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background: none;\n}\n\n:host(.navigation-group-side-nav) .ic-typography-caption {\n position: var(--navigation-group-title-position);\n left: var(--navigation-group-title-position-left);\n white-space: nowrap;\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n State,\n Listen,\n h,\n Method,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getThemeForegroundColor,\n getNavItemParentDetails,\n} from \"../../utils/helpers\";\nimport { IcNavType, IcTheme } from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n@Component({\n tag: \"ic-navigation-group\",\n styleUrl: \"ic-navigation-group.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationGroup {\n private allGroupedNavigationItems: HTMLIcNavigationItemElement[] = [];\n private collapsedNavItemsHeight: string;\n private dropdown: HTMLElement;\n private DYNAMIC_GROUPED_LINKS_HEIGHT_MS = 100;\n private expandedNavItemsHeight: string;\n private groupEl: HTMLElement;\n private IC_NAVIGATION_ITEM = \"ic-navigation-item\";\n private isSideNavExpanded: boolean;\n private mouseGate: boolean = false;\n private nodeName = \"IC-NAVIGATION-GROUP\";\n private GROUPED_LINKS_WRAPPER_CLASS = \".grouped-links-wrapper\";\n\n @Element() el: HTMLIcNavigationGroupElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() dropdownOpen: boolean = false;\n @State() expanded: boolean = true;\n @State() focusStyle = getThemeForegroundColor();\n @State() inTopNavSideMenu: boolean = false;\n @State() navigationType: IcNavType | \"\";\n @State() parentEl: HTMLElement;\n\n /**\n * If `true`, the group will be expandable in the side menu.\n */\n @Prop() expandable: boolean = false;\n\n /**\n * The label to display on the group.\n */\n @Prop() label: string;\n\n disconnectedCallback(): void {\n if (this.navigationType === \"side\") {\n this.parentEl.removeEventListener(\n \"sideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.removeEventListener(\n \"topNavResized\",\n this.topNavResizedHandler\n );\n }\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n const navParentDetails = getNavItemParentDetails(this.el);\n this.navigationType = navParentDetails.navType;\n this.parentEl = navParentDetails.parent;\n if (this.deviceSize <= DEVICE_SIZES.L && this.navigationType === \"top\") {\n this.inTopNavSideMenu = true;\n }\n\n if (this.navigationType === \"side\") {\n this.parentEl.addEventListener(\n \"sideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.addEventListener(\n \"topNavResized\",\n this.topNavResizedHandler\n );\n }\n }\n\n componentDidLoad(): void {\n this.allGroupedNavigationItems = Array.from(\n this.el.querySelectorAll(this.IC_NAVIGATION_ITEM)\n );\n\n /**\n * debounce is required as the incorrect height was retrieved instantly after\n * componentDidLoad is invoked.\n */\n setTimeout(\n () => this.setInitialGroupedLinksWrapperHeight(),\n this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS\n );\n }\n\n @Listen(\"childBlur\")\n childBlurHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"navItemClicked\")\n navItemClickHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.focusStyle = theme.mode;\n }\n\n /**\n * Sets focus on the nav item.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.groupEl) {\n this.groupEl.focus();\n }\n }\n\n private sideNavExpandHandler = (event?: CustomEvent): void => {\n this.isSideNavExpanded = event.detail.sideNavExpanded;\n const linkWrapper = this.el.shadowRoot.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n\n if (!linkWrapper) return;\n\n if (this.isSideNavExpanded) {\n if (this.expanded && this.expandedNavItemsHeight) {\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n } else if (this.expanded) {\n setTimeout(() => {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n } else {\n if (this.expanded && this.collapsedNavItemsHeight) {\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n } else if (this.expanded) {\n setTimeout(() => {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n }\n };\n\n private topNavResizedHandler = (ev: CustomEvent): void => {\n const newSize = ev.detail.size;\n if (newSize !== this.deviceSize) {\n this.deviceSize = newSize;\n this.inTopNavSideMenu = newSize <= DEVICE_SIZES.L;\n }\n };\n\n private toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n }\n\n private setGroupedNavItemTabIndex = (tabIndexValue: string) => {\n this.el\n .querySelectorAll(this.IC_NAVIGATION_ITEM)\n .forEach((navigationItem) => {\n const navItem =\n navigationItem.shadowRoot.querySelector(\"a\") ||\n navigationItem.querySelector(\"a\");\n if (navItem) {\n navItem.setAttribute(\"tabindex\", tabIndexValue);\n }\n });\n };\n\n private toggleGroupedLinkWrapperHeight = (\n wrapper: HTMLElement,\n expanded: boolean\n ) => {\n if (!wrapper) return;\n\n if (expanded) {\n if (this.isSideNavExpanded) {\n this.setGroupedLinksElementHeight(wrapper, this.expandedNavItemsHeight);\n } else {\n this.setGroupedLinksElementHeight(\n wrapper,\n this.collapsedNavItemsHeight\n );\n }\n this.setGroupedNavItemTabIndex(\"0\");\n } else {\n wrapper.style.setProperty(\"--navigation-child-items-height\", \"0\");\n this.setGroupedNavItemTabIndex(\"-1\");\n }\n };\n\n private toggleExpanded = () => {\n this.expanded = !this.expanded;\n const linkWrapper = this.el.shadowRoot.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n this.toggleGroupedLinkWrapperHeight(linkWrapper, this.expanded);\n };\n\n private showDropdown() {\n if (!this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private hideDropdown() {\n document.removeEventListener(\"keydown\", this.handleKeydown);\n if (this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private handleClick = (ev: MouseEvent) => {\n if (this.navigationType === \"top\" && ev.detail) {\n this.toggleDropdown();\n } else {\n this.toggleExpanded();\n }\n };\n\n private handleBlur = (ev: FocusEvent) => {\n const target = ev.relatedTarget as HTMLElement;\n if (!this.el.contains(target)) {\n this.hideDropdown();\n }\n };\n\n private handleTopNavKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \" \" || ev.key === \"Enter\") {\n this.toggleDropdown();\n } else if (!this.inTopNavSideMenu && ev.key === \"Escape\") {\n this.hideDropdown();\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \"Enter\" || ev.key === \" \" || ev.key === \"Escape\") {\n switch (this.navigationType) {\n case \"top\":\n this.handleTopNavKeydown(ev as KeyboardEvent);\n break;\n case \"side\":\n this.toggleExpanded();\n ev.preventDefault();\n break;\n default:\n this.toggleExpanded();\n break;\n }\n }\n };\n\n private handleMouseLeave = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n\n this.mouseGate = false;\n\n if (\n !this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n document.activeElement !== this.el &&\n !this.el.contains(document.activeElement) &&\n relTarget.nodeName === this.nodeName &&\n this.dropdownOpen === true\n ) {\n this.mouseGate = true;\n this.hideDropdown();\n } else if (\n !this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n !this.el.contains(document.activeElement)\n ) {\n this.mouseGate = false;\n setTimeout(() => {\n this.dropdownOpen ? this.hideDropdown() : null;\n }, 500);\n }\n };\n\n private handleMouseEnter = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n document.addEventListener(\"keydown\", this.handleKeydown);\n\n if (relTarget.nodeName === this.nodeName && this.mouseGate === true) {\n this.showDropdown();\n } else if (\n this.dropdownOpen === false &&\n relTarget !== null &&\n this.mouseGate === false\n ) {\n this.mouseGate = true;\n setTimeout(() => {\n this.mouseGate && this.showDropdown();\n }, 500);\n }\n };\n\n private renderDropdownGroupedLinks = (): HTMLDivElement => (\n <div\n class={{\n [\"navigation-group-dropdown\"]: !this.inTopNavSideMenu,\n [\"navigation-group-dropdown-side-menu\"]: this.inTopNavSideMenu,\n [\"selected\"]: this.dropdownOpen && !this.inTopNavSideMenu,\n }}\n onMouseLeave={!this.inTopNavSideMenu ? this.handleMouseLeave : null}\n ref={(el) => (this.dropdown = el)}\n >\n <nav\n class={{\n [\"navigation-group-dropdown-items\"]: !this.inTopNavSideMenu,\n }}\n >\n <ul>\n <slot></slot>\n </ul>\n </nav>\n </div>\n );\n\n private renderGroupedLinks = (): HTMLDivElement => (\n <ul class=\"grouped-links-wrapper\">\n <slot></slot>\n </ul>\n );\n\n /**\n * Gets the total height of navigation links to improve\n * smoothness of expand/collapse animations\n */\n private getNavigationChildItemsHeight = (): string => {\n let navigationChildItemsHeight = 0;\n this.allGroupedNavigationItems.forEach((navItem) => {\n navigationChildItemsHeight += navItem.offsetHeight;\n });\n\n return `${navigationChildItemsHeight}px`;\n };\n\n private setInitialGroupedLinksWrapperHeight = () => {\n const linkWrapper = this.el.shadowRoot.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n\n if (!linkWrapper) return;\n\n if (\n !this.isSideNavExpanded &&\n !this.collapsedNavItemsHeight &&\n this.expanded\n ) {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n }\n\n if (this.isSideNavExpanded && this.expanded) {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n }\n };\n\n private renderNavigationItems = (): HTMLDivElement | null => {\n if (this.dropdownOpen || (this.inTopNavSideMenu && !this.expandable)) {\n return this.renderDropdownGroupedLinks();\n }\n\n if (this.navigationType !== \"top\") {\n return this.renderGroupedLinks();\n }\n\n return null;\n };\n\n private setGroupedLinksElementHeight(\n groupedNavItemWrapper: HTMLElement,\n height: string\n ) {\n groupedNavItemWrapper.style.setProperty(\n \"--navigation-child-items-height\",\n height\n );\n }\n\n render() {\n const { label, dropdownOpen, inTopNavSideMenu, expandable } = this;\n const NavigationGroupElement =\n !inTopNavSideMenu || expandable ? \"button\" : \"div\";\n return (\n <Host\n class={{\n [\"in-side-menu\"]: inTopNavSideMenu,\n expanded: this.expanded,\n collapsed: !this.expanded,\n [\"navigation-group-side-nav\"]: this.navigationType === \"side\",\n }}\n role=\"listitem\"\n >\n <NavigationGroupElement\n onMouseEnter={\n !inTopNavSideMenu &&\n this.navigationType === \"top\" &&\n this.handleMouseEnter\n }\n onMouseLeave={this.navigationType === \"top\" && this.handleMouseLeave}\n tabindex={inTopNavSideMenu && !expandable ? \"-1\" : \"0\"}\n onBlur={this.handleBlur}\n onClick={expandable ? this.handleClick : null}\n onKeyDown={this.handleKeydown}\n class={{\n [\"navigation-group\"]: true,\n [this.focusStyle]: !inTopNavSideMenu,\n [\"navigation-group-side-menu\"]: inTopNavSideMenu && !expandable,\n [\"navigation-group-side-menu-collapsed\"]:\n inTopNavSideMenu && expandable && !dropdownOpen,\n [\"navigation-group-side-menu-expanded\"]:\n inTopNavSideMenu && expandable && dropdownOpen,\n [\"selected\"]: dropdownOpen && !inTopNavSideMenu,\n }}\n ref={(el) => (this.groupEl = el)}\n aria-expanded={dropdownOpen || this.expanded ? \"true\" : \"false\"}\n aria-haspopup={\n !inTopNavSideMenu && this.navigationType === \"top\"\n ? \"true\"\n : \"false\"\n }\n >\n <ic-typography\n variant={this.navigationType === \"side\" ? \"caption\" : \"label\"}\n >\n {label}\n </ic-typography>\n {this.navigationType === \"side\" && expandable && (\n <div\n class={{\n \"chevron-toggle-icon-wrapper\": true,\n \"chevron-toggle-icon-closed\": this.expanded,\n }}\n innerHTML={chevronIcon}\n ></div>\n )}\n </NavigationGroupElement>\n {this.renderNavigationItems()}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,h as r,H as a}from"./p-9d124fc7.js";import{a as o}from"./p-8fb4f0c0.js";import{I as e}from"./p-613aa265.js";const i=":host{--border-bottom-color:var(--ic-architectural-300);display:block;margin-bottom:var(--ic-space-md);border-bottom:var(--ic-border-default)}:host(.inline){margin-bottom:0;border-bottom:none}.light{border-bottom:var(--ic-space-1px) solid var(--ic-architectural-white)}.tabs-container{display:flex;flex-direction:row}.tabs-container::-webkit-scrollbar{display:none}";const s=class{constructor(r){t(this,r);this.appearance="dark";this.contextId="default";this.inline=false;this.label=undefined}componentDidLoad(){o([{prop:this.label,propName:"label"}],"Tab Group")}render(){const{appearance:t,label:o}=this;return r(a,{role:"tablist","aria-label":o,class:{["light"]:t===e.Light,["inline"]:this.inline}},r("ic-horizontal-scroll",{appearance:t===e.Dark?e.Default:t,"focus-trigger":"tabFocus"},r("div",{class:"tabs-container"},r("slot",null))))}static get delegatesFocus(){return true}};s.style=i;export{s as ic_tab_group};
|
2
|
-
//# sourceMappingURL=p-e2903ce9.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icTabGroupCss","TabGroup","componentDidLoad","onComponentRequiredPropUndefined","prop","this","label","propName","render","appearance","h","Host","role","class","IcThemeForegroundEnum","Light","inline","Dark","Default"],"sources":["src/components/ic-tab-group/ic-tab-group.css?tag=ic-tab-group&encapsulation=shadow","src/components/ic-tab-group/ic-tab-group.tsx"],"sourcesContent":[":host {\n --border-bottom-color: var(--ic-architectural-300);\n\n display: block;\n margin-bottom: var(--ic-space-md);\n border-bottom: var(--ic-border-default);\n}\n\n:host(.inline) {\n margin-bottom: 0;\n border-bottom: none;\n}\n\n.light {\n border-bottom: var(--ic-space-1px) solid var(--ic-architectural-white);\n}\n\n.tabs-container {\n display: flex;\n flex-direction: row;\n}\n\n.tabs-container::-webkit-scrollbar {\n display: none;\n}\n","import { Component, Host, Prop, h } from \"@stencil/core\";\n\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\nimport {\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\n@Component({\n tag: \"ic-tab-group\",\n styleUrl: \"ic-tab-group.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class TabGroup {\n /**\n * @internal The appearance of the tab group, e.g dark, or light.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * @deprecated This is no longer required.\n * The context id is passed down from `ic-tab-context`\n */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * If `true`, the tabs and tab panels will be positioned separately.\n */\n @Prop({ reflect: true }) inline?: boolean = false;\n\n /**\n * The label to describe the purpose of the set of tabs to screen reader users.\n */\n @Prop() label!: string;\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tab Group\"\n );\n }\n\n render() {\n const { appearance, label } = this;\n\n return (\n <Host\n role=\"tablist\"\n aria-label={label}\n class={{\n [\"light\"]: appearance === IcThemeForegroundEnum.Light,\n [\"inline\"]: this.inline,\n }}\n >\n <ic-horizontal-scroll\n appearance={\n appearance === IcThemeForegroundEnum.Dark\n ? IcThemeForegroundEnum.Default\n : appearance\n }\n focus-trigger=\"tabFocus\"\n >\n <div class=\"tabs-container\">\n <slot></slot>\n </div>\n </ic-horizontal-scroll>\n </Host>\n );\n }\n}\n"],"mappings":"0HAAA,MAAMA,EAAgB,gX,MCeTC,EAAQ,M,yCAI+B,O,eAMJ,U,YAKF,M,qBAO5C,gBAAAC,GACEC,EACE,CAAC,CAAEC,KAAMC,KAAKC,MAAOC,SAAU,UAC/B,Y,CAIJ,MAAAC,GACE,MAAMC,WAAEA,EAAUH,MAAEA,GAAUD,KAE9B,OACEK,EAACC,EAAI,CACHC,KAAK,UAAS,aACFN,EACZO,MAAO,CACL,CAAC,SAAUJ,IAAeK,EAAsBC,MAChD,CAAC,UAAWV,KAAKW,SAGnBN,EAAA,wBACED,WACEA,IAAeK,EAAsBG,KACjCH,EAAsBI,QACtBT,EAAU,gBAEF,YAEdC,EAAA,OAAKG,MAAM,kBACTH,EAAA,e"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as e,c as i,h as t,H as a,g as o}from"./p-9d124fc7.js";import{j as c,l as r,a as n,m as s,n as d,p as l,i as h,d as p}from"./p-8fb4f0c0.js";import"./p-613aa265.js";const b='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host(.disabled){color:var(--ic-architectural-200);pointer-events:none}.container{display:flex;width:-moz-fit-content;width:fit-content;padding:var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-xxs);margin-bottom:var(--ic-space-xxs);align-items:center}:host(.small) .container{margin-bottom:var(--ic-space-xxxs)}.checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;position:relative;top:0;left:0;height:var(--ic-space-lg);width:var(--ic-space-lg);background-color:transparent;border:var(--ic-space-1px) solid var(--ic-architectural-300);border-radius:var(--ic-border-radius);outline:none;cursor:pointer;transition:var(--ic-easing-transition-fast);flex-shrink:0}:host(.small) .checkbox,:host(.small) .container svg{width:var(--ic-space-md);height:var(--ic-space-md)}:host(.large) .checkbox,:host(.large) .container svg{width:var(--ic-space-xl);height:var(--ic-space-xl)}.checkbox:checked{background-color:var(--ic-action-default);border:var(--ic-space-1px) solid var(--ic-action-default);transition:var(--ic-easing-transition-slow)}.checkbox:checked:disabled{background-color:var(--ic-architectural-200)}.checkbox:indeterminate,.checkbox.indeterminate:checked{background-color:transparent;border:0.125rem solid var(--ic-action-default)}.checkbox:checked:hover{background-color:var(--ic-action-default-hover)}.checkbox:indeterminate:hover,.checkbox.indeterminate:checked:hover{background-color:var(--ic-action-default-bg-hover);border:0.125rem solid var(--ic-action-default-hover)}.checkbox:checked:active{background-color:var(--ic-action-default-active)}.checkbox:indeterminate:active,.checkbox.indeterminate:checked:active{background-color:var(--ic-action-default-bg-active);border:0.125rem solid var(--ic-action-default-active)}.checkbox:hover{background-color:var(--ic-action-default-bg-hover);box-shadow:0 0 0 0.25rem var(--ic-action-default-bg-hover);border:var(--ic-space-1px) solid var(--ic-action-default-hover)}.checkbox:active{background-color:var(--ic-action-default-bg-active);box-shadow:0 0 0 0.25rem var(--ic-action-default-bg-active);border:var(--ic-space-1px) solid var(--ic-action-default-active)}.checkbox:focus{box-shadow:var(--ic-border-focus)}.checkbox:disabled{border:var(--ic-space-1px) dashed var(--ic-architectural-200)}.checkbox-label{padding-left:var(--ic-space-sm)}.checkbox-label:hover{cursor:pointer}.checkmark{position:relative;right:calc(-1 * var(--ic-space-lg));margin-left:calc(-1 * var(--ic-space-lg));fill:white;z-index:1;background-color:transparent;pointer-events:none;flex-shrink:0}:host(.small) .checkmark{margin-left:calc(-1 * var(--ic-space-md));right:calc(-1 * var(--ic-space-md))}:host(.large) .checkmark{margin-left:calc(-1 * var(--ic-space-xl));right:calc(-1 * var(--ic-space-xl))}.indeterminate-symbol{position:relative;width:0.875rem;height:var(--ic-space-xxxs);right:-1.188rem;margin-left:-0.875rem;z-index:1;background-color:var(--ic-action-default);pointer-events:none;flex-shrink:0}:host(.small) .indeterminate-symbol{width:0.6rem;right:-0.8rem;margin-left:-0.6rem}:host(.large) .indeterminate-symbol{width:1.25rem;right:-1.625rem;margin-left:-1.25rem}.container:hover .indeterminate-symbol{background-color:var(--ic-action-default-hover)}.container:active .indeterminate-symbol{background-color:var(--ic-action-default-active)}.additional-field-wrapper{margin-left:calc(var(--ic-space-md) + var(--ic-space-lg));margin-top:calc(var(--ic-space-sm) / 2)}.branch-corner{color:var(--ic-action-default);height:var(--ic-space-md);width:var(--ic-space-xl);border-radius:0 0 0 0.188rem;border-bottom:0.125rem solid var(--ic-action-default);border-left:0.125rem solid var(--ic-action-default)}.dynamic-container{display:flex;position:relative;margin:var(--ic-space-xxxs) 0 var(--ic-space-xxs) var(--ic-space-md);gap:var(--ic-space-xs)}.dynamic-text{color:var(--ic-action-default);margin-top:calc(var(--ic-space-sm) / 2);margin-bottom:var(--ic-space-xs);border-radius:2%}@media (max-width: 576px){::slotted(ic-text-field){--input-width:100%}}@media (forced-colors: active){.checkbox{-webkit-appearance:revert;-moz-appearance:revert;appearance:revert;transition:none}.checkbox:checked{transition:none}.checkbox:focus-visible{outline:0.125rem solid highlight}.checkbox:disabled:not(:checked){-webkit-appearance:none;-moz-appearance:none;appearance:none;border-color:GrayText}.checkmark{fill:none}.indeterminate-symbol{display:none}}';const m=class{constructor(t){e(this,t);this.checkboxChecked=i(this,"checkboxChecked",7);this.icCheck=i(this,"icCheck",7);this.IC_TEXT_FIELD="ic-text-field";this.handleClick=()=>{this.checked=!this.checked;this.icCheck.emit();this.checkboxChecked.emit()};this.handleFormReset=()=>{this.checked=this.initiallyChecked};this.additionalFieldDisplay="static";this.checked=false;this.initiallyChecked=this.checked;this.disabled=false;this.dynamicText="This selection requires additional answers";this.form=undefined;this.formaction=undefined;this.formenctype=undefined;this.formmethod=undefined;this.formnovalidate=undefined;this.formtarget=undefined;this.groupLabel=undefined;this.indeterminate=false;this.label=undefined;this.name=undefined;this.size=undefined;this.small=false;this.value=undefined}componentWillLoad(){c(this.disabled,this.el);r(this.el,this.handleFormReset)}componentDidLoad(){n([{prop:this.label,propName:"label"},{prop:this.value,propName:"value"}],"Checkbox")}componentDidRender(){if(this.additionalFieldDisplay==="static"){const e=this.el.querySelector(this.IC_TEXT_FIELD);if(!this.checked){e&&e.setAttribute("disabled","")}else{e&&e.removeAttribute("disabled")}}else if(this.additionalFieldContainer){if(!this.checked){this.additionalFieldContainer.style.display="none"}else{this.additionalFieldContainer.style.display="flex"}}}disconnectedCallback(){s(this.el,this.handleFormReset)}async setFocus(){const e=this.el.shadowRoot.querySelector(".checkbox");if(e){e.focus()}}render(){let e=`ic-checkbox-${p(this.label)?this.label:this.value}-${this.groupLabel}`;e=e.replace(/ /g,"-");const i=this.el.parentElement.size;this.checked?d(true,this.el,this.name,this.checked&&this.value,this.disabled):l(this.el);return t(a,{class:{["disabled"]:this.disabled,["small"]:this.small,[`${this.size||i}`]:true}},t("div",{class:"container"},this.checked&&!this.indeterminate&&t("svg",{class:"checkmark",width:"1.5rem",height:"1.5rem",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","fill-rule":"evenodd","clip-rule":"evenodd"},t("title",null,"checkmark icon"),t("path",{d:"M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z"})),this.checked&&this.indeterminate&&t("div",{class:"indeterminate-symbol"}),t("input",{role:"checkbox",class:{["checkbox"]:true,["checked"]:this.checked,["indeterminate"]:this.indeterminate},type:"checkbox",name:this.name,id:e,value:this.value,disabled:this.disabled?true:null,checked:this.checked,indeterminate:this.indeterminate,onClick:this.handleClick,form:this.form,formaction:this.formaction,formenctype:this.formenctype,formmethod:this.formmethod,formnovalidate:this.formnovalidate,formtarget:this.formtarget}),t("ic-typography",{class:"checkbox-label",variant:"body"},t("label",{htmlFor:e},this.label))),h(this.el,"additional-field")&&t("div",{class:"dynamic-container",ref:e=>this.additionalFieldContainer=e},this.additionalFieldDisplay==="dynamic"&&t("div",{class:"branch-corner"}),t("div",null,this.additionalFieldDisplay==="dynamic"&&t("ic-typography",{variant:"caption"},t("p",{class:"dynamic-text","aria-live":"polite"},this.dynamicText)),t("div",{class:{"additional-field-wrapper":this.additionalFieldDisplay==="static"}},t("slot",{name:"additional-field"})))))}static get delegatesFocus(){return true}get el(){return o(this)}};m.style=b;export{m as ic_checkbox};
|
2
|
-
//# sourceMappingURL=p-ea6ad791.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icCheckboxCss","Checkbox","this","IC_TEXT_FIELD","handleClick","checked","icCheck","emit","checkboxChecked","handleFormReset","initiallyChecked","componentWillLoad","removeDisabledFalse","disabled","el","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","value","componentDidRender","additionalFieldDisplay","textfield","querySelector","setAttribute","removeAttribute","additionalFieldContainer","style","display","disconnectedCallback","removeFormResetListener","setFocus","checkboxEl","shadowRoot","focus","render","id","isPropDefined","groupLabel","replace","parentElementSize","parentElement","size","renderHiddenInput","name","removeHiddenInput","h","Host","class","small","indeterminate","width","height","viewBox","xmlns","d","role","type","onClick","form","formaction","formenctype","formmethod","formnovalidate","formtarget","variant","htmlFor","isSlotUsed","ref","dynamicText"],"sources":["src/components/ic-checkbox/ic-checkbox.css?tag=ic-checkbox&encapsulation=shadow","src/components/ic-checkbox/ic-checkbox.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host(.disabled) {\n color: var(--ic-architectural-200);\n pointer-events: none;\n}\n\n.container {\n display: flex;\n width: fit-content;\n padding: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-xxs);\n margin-bottom: var(--ic-space-xxs);\n align-items: center;\n}\n\n:host(.small) .container {\n margin-bottom: var(--ic-space-xxxs);\n}\n\n.checkbox {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n display: block;\n position: relative;\n top: 0;\n left: 0;\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n background-color: transparent;\n border: var(--ic-space-1px) solid var(--ic-architectural-300);\n border-radius: var(--ic-border-radius);\n outline: none;\n cursor: pointer;\n transition: var(--ic-easing-transition-fast);\n flex-shrink: 0;\n}\n\n:host(.small) .checkbox,\n:host(.small) .container svg {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n:host(.large) .checkbox,\n:host(.large) .container svg {\n width: var(--ic-space-xl);\n height: var(--ic-space-xl);\n}\n\n.checkbox:checked {\n background-color: var(--ic-action-default);\n border: var(--ic-space-1px) solid var(--ic-action-default);\n transition: var(--ic-easing-transition-slow);\n}\n\n.checkbox:checked:disabled {\n background-color: var(--ic-architectural-200);\n}\n\n.checkbox:indeterminate,\n.checkbox.indeterminate:checked {\n background-color: transparent;\n border: 0.125rem solid var(--ic-action-default);\n}\n\n.checkbox:checked:hover {\n background-color: var(--ic-action-default-hover);\n}\n\n.checkbox:indeterminate:hover,\n.checkbox.indeterminate:checked:hover {\n background-color: var(--ic-action-default-bg-hover);\n border: 0.125rem solid var(--ic-action-default-hover);\n}\n\n.checkbox:checked:active {\n background-color: var(--ic-action-default-active);\n}\n\n.checkbox:indeterminate:active,\n.checkbox.indeterminate:checked:active {\n background-color: var(--ic-action-default-bg-active);\n border: 0.125rem solid var(--ic-action-default-active);\n}\n\n.checkbox:hover {\n background-color: var(--ic-action-default-bg-hover);\n box-shadow: 0 0 0 0.25rem var(--ic-action-default-bg-hover);\n border: var(--ic-space-1px) solid var(--ic-action-default-hover);\n}\n\n.checkbox:active {\n background-color: var(--ic-action-default-bg-active);\n box-shadow: 0 0 0 0.25rem var(--ic-action-default-bg-active);\n border: var(--ic-space-1px) solid var(--ic-action-default-active);\n}\n\n.checkbox:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n.checkbox:disabled {\n border: var(--ic-space-1px) dashed var(--ic-architectural-200);\n}\n\n.checkbox-label {\n padding-left: var(--ic-space-sm);\n}\n\n.checkbox-label:hover {\n cursor: pointer;\n}\n\n.checkmark {\n position: relative;\n right: calc(-1 * var(--ic-space-lg));\n margin-left: calc(-1 * var(--ic-space-lg));\n fill: white;\n z-index: 1;\n background-color: transparent;\n pointer-events: none;\n flex-shrink: 0;\n}\n\n:host(.small) .checkmark {\n margin-left: calc(-1 * var(--ic-space-md));\n right: calc(-1 * var(--ic-space-md));\n}\n\n:host(.large) .checkmark {\n margin-left: calc(-1 * var(--ic-space-xl));\n right: calc(-1 * var(--ic-space-xl));\n}\n\n.indeterminate-symbol {\n position: relative;\n width: 0.875rem;\n height: var(--ic-space-xxxs);\n right: -1.188rem;\n margin-left: -0.875rem;\n z-index: 1;\n background-color: var(--ic-action-default);\n pointer-events: none;\n flex-shrink: 0;\n}\n\n:host(.small) .indeterminate-symbol {\n width: 0.6rem;\n right: -0.8rem;\n margin-left: -0.6rem;\n}\n\n:host(.large) .indeterminate-symbol {\n width: 1.25rem;\n right: -1.625rem;\n margin-left: -1.25rem;\n}\n\n.container:hover .indeterminate-symbol {\n background-color: var(--ic-action-default-hover);\n}\n\n.container:active .indeterminate-symbol {\n background-color: var(--ic-action-default-active);\n}\n\n.additional-field-wrapper {\n margin-left: calc(var(--ic-space-md) + var(--ic-space-lg));\n margin-top: calc(var(--ic-space-sm) / 2);\n}\n\n.branch-corner {\n color: var(--ic-action-default);\n height: var(--ic-space-md);\n width: var(--ic-space-xl);\n border-radius: 0 0 0 0.188rem;\n border-bottom: 0.125rem solid var(--ic-action-default);\n border-left: 0.125rem solid var(--ic-action-default);\n}\n\n.dynamic-container {\n display: flex;\n position: relative;\n margin: var(--ic-space-xxxs) 0 var(--ic-space-xxs) var(--ic-space-md);\n gap: var(--ic-space-xs);\n}\n\n.dynamic-text {\n color: var(--ic-action-default);\n margin-top: calc(var(--ic-space-sm) / 2);\n margin-bottom: var(--ic-space-xs);\n border-radius: 2%;\n}\n\n@media (max-width: 576px) {\n ::slotted(ic-text-field) {\n --input-width: 100%;\n }\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n .checkbox {\n appearance: revert;\n transition: none;\n }\n\n .checkbox:checked {\n transition: none;\n }\n\n .checkbox:focus-visible {\n outline: 0.125rem solid highlight;\n }\n\n .checkbox:disabled:not(:checked) {\n appearance: none;\n border-color: GrayText;\n }\n\n .checkmark {\n fill: none;\n }\n\n .indeterminate-symbol {\n display: none;\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n} from \"@stencil/core\";\nimport { IcAdditionalFieldTypes, IcSizes } from \"../../utils/types\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n removeHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n} from \"../../utils/helpers\";\n\n/**\n * @slot additional-field - Content to be displayed alongside a checkbox.\n */\n@Component({\n tag: \"ic-checkbox\",\n styleUrl: \"ic-checkbox.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Checkbox {\n private additionalFieldContainer: HTMLDivElement;\n private IC_TEXT_FIELD: string = \"ic-text-field\";\n\n @Element() el: HTMLIcCheckboxElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the checkbox will be set to the checked state.\n */\n @Prop({ reflect: true, mutable: true }) checked?: boolean = false;\n @State() initiallyChecked = this.checked;\n\n /**\n * If `true`, the checkbox will be set to the disabled state.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The text to be displayed when dynamic.\n */\n\n @Prop() dynamicText: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the checkbox with.\n */\n @Prop() form?: string;\n\n /**\n * The URL that processes the information submitted by the checkbox. It overrides the action attribute of the checkbox's form owner. Does nothing if there is no form owner.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the checkbox's form owner.\n */\n @Prop() formtarget?: string;\n\n /**\n * The group label for the checkbox.\n */\n @Prop() groupLabel: string;\n\n /**\n * If `true`, the indeterminate state will be displayed when checked.\n */\n @Prop() indeterminate: boolean = false;\n\n /**\n * The label for the checkbox.\n */\n @Prop() label!: string;\n\n /**\n * The name for the checkbox. If not set when used in a checkbox group, the name will be based on the group name.\n */\n @Prop() name: string;\n\n /**\n * The size of the checkbox to be displayed. This does not affect the font size of the label. If a checkbox is contained in a checkbox group, this will override the size set on checkbox group.\n */\n @Prop() size?: IcSizes;\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `size` to \"small\" instead.\n */\n @Prop() small?: boolean = false;\n\n /**\n * The value for the checkbox.\n */\n @Prop() value!: string;\n\n /**\n * @deprecated This event should not be used anymore. Use icCheck instead.\n */\n @Event() checkboxChecked: EventEmitter<void>;\n\n /**\n * Emitted when a checkbox has been checked.\n */\n @Event() icCheck: EventEmitter<void>;\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n addFormResetListener(this.el, this.handleFormReset);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n { prop: this.label, propName: \"label\" },\n { prop: this.value, propName: \"value\" },\n ],\n \"Checkbox\"\n );\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const textfield = this.el.querySelector(this.IC_TEXT_FIELD);\n if (!this.checked) {\n textfield && textfield.setAttribute(\"disabled\", \"\");\n } else {\n textfield && textfield.removeAttribute(\"disabled\");\n }\n } else if (this.additionalFieldContainer) {\n if (!this.checked) {\n this.additionalFieldContainer.style.display = \"none\";\n } else {\n this.additionalFieldContainer.style.display = \"flex\";\n }\n }\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n /**\n * Sets focus on the checkbox.\n */\n @Method()\n async setFocus(): Promise<void> {\n const checkboxEl: HTMLElement =\n this.el.shadowRoot.querySelector(\".checkbox\");\n if (checkboxEl) {\n checkboxEl.focus();\n }\n }\n\n private handleClick = () => {\n this.checked = !this.checked;\n this.icCheck.emit();\n this.checkboxChecked.emit();\n };\n\n private handleFormReset = (): void => {\n this.checked = this.initiallyChecked;\n };\n\n render() {\n let id = `ic-checkbox-${\n isPropDefined(this.label) ? this.label : this.value\n }-${this.groupLabel}`;\n\n id = id.replace(/ /g, \"-\");\n\n const parentElementSize = (\n this.el.parentElement as HTMLIcCheckboxGroupElement\n ).size;\n\n this.checked\n ? renderHiddenInput(\n true,\n this.el,\n this.name,\n this.checked && this.value,\n this.disabled\n )\n : removeHiddenInput(this.el);\n\n return (\n <Host\n class={{\n [\"disabled\"]: this.disabled,\n [\"small\"]: this.small,\n [`${this.size || parentElementSize}`]: true,\n }}\n >\n <div class=\"container\">\n {this.checked && !this.indeterminate && (\n <svg\n class=\"checkmark\"\n width=\"1.5rem\"\n height=\"1.5rem\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n >\n <title>checkmark icon</title>\n <path d=\"M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z\" />\n </svg>\n )}\n {this.checked && this.indeterminate && (\n <div class=\"indeterminate-symbol\" />\n )}\n <input\n role=\"checkbox\"\n class={{\n [\"checkbox\"]: true,\n [\"checked\"]: this.checked,\n [\"indeterminate\"]: this.indeterminate,\n }}\n type=\"checkbox\"\n name={this.name}\n id={id}\n value={this.value}\n disabled={this.disabled ? true : null}\n checked={this.checked}\n indeterminate={this.indeterminate}\n onClick={this.handleClick}\n form={this.form}\n formaction={this.formaction}\n formenctype={this.formenctype}\n formmethod={this.formmethod}\n formnovalidate={this.formnovalidate}\n formtarget={this.formtarget}\n ></input>\n <ic-typography class=\"checkbox-label\" variant=\"body\">\n <label htmlFor={id}>{this.label}</label>\n </ic-typography>\n </div>\n {isSlotUsed(this.el, \"additional-field\") && (\n <div\n class=\"dynamic-container\"\n ref={(el) => (this.additionalFieldContainer = el)}\n >\n {this.additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {this.additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\">\n <p class=\"dynamic-text\" aria-live=\"polite\">\n {this.dynamicText}\n </p>\n </ic-typography>\n )}\n <div\n class={{\n \"additional-field-wrapper\":\n this.additionalFieldDisplay === \"static\",\n }}\n >\n <slot name=\"additional-field\"></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icDataRowCss","DataRow","this","hasEndComponent","resizeObserver","runResizeObserver","ResizeObserver","checkLabelAbove","observe","el","renderLabel","label","isSlotUsed","h","class","name","variant","entitySize","DEVICE_SIZES","XL","disconnectedCallback","disconnect","componentWillLoad","deviceSize","getCurrentDeviceSize","slotHasContent","componentDidLoad","checkResizeObserver","labelEndComponent","rowSize","_a","shadowRoot","querySelector","clientWidth","S","M","component","querySelectorAll","forEach","child","setAttribute","render","value","small","size","Host","role"],"sources":["src/components/ic-data-row/ic-data-row.css?tag=ic-data-row&encapsulation=shadow","src/components/ic-data-row/ic-data-row.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n position: relative;\n display: block;\n}\n\n.data {\n display: flex;\n align-items: center;\n}\n\n.text-cells {\n display: flex;\n flex-grow: 1;\n min-width: 0;\n}\n\n.label {\n width: 12.5rem;\n min-width: 12.5rem;\n margin-right: var(--ic-space-md);\n color: var(--ic-color-tertiary-text);\n}\n\n.value {\n flex-grow: 1;\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[readonly][hide-label]) {\n margin-top: calc(var(--ic-space-xs) * -1);\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[small][readonly][hide-label]) {\n margin-top: calc(var(--ic-space-xxs) * -1);\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[readonly][hide-label][rows]) {\n margin-top: calc(var(--ic-space-xxs) * -1 - var(--ic-space-xxxs));\n}\n\n.end-component {\n width: fit-content;\n margin-left: 3.5rem;\n}\n\n.divider {\n margin-top: var(--ic-space-md);\n height: var(--ic-space-1px);\n background-color: var(--ic-architectural-300);\n}\n\n:host(.small) .divider {\n margin-top: var(--ic-space-xs);\n}\n\n:host(.breakpoint-medium) .label {\n width: 10rem;\n min-width: 10rem;\n}\n\n:host(.breakpoint-xs) .text-cells {\n flex-direction: column;\n}\n\n:host(.breakpoint-xs) .label {\n width: 8rem;\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.breakpoint-xs) .value {\n max-width: 95%;\n}\n\n:host(.breakpoint-xs) .end-component {\n margin-left: 0;\n}\n\n@media (forced-colors: active) {\n .divider {\n background-color: canvastext;\n }\n}\n","import { Component, Element, Host, Prop, h, State } from \"@stencil/core\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\nimport { IcSizesNoLarge } from \"../../utils/types\";\n\n/**\n * @slot label - Content will be rendered in the leftmost cell.\n * @slot value - Content will be rendered to the right of the label.\n * @slot end-component - Content will be displayed in the rightmost cell.\n */\n@Component({\n tag: \"ic-data-row\",\n styleUrl: \"ic-data-row.css\",\n shadow: true,\n})\nexport class DataRow {\n private hasEndComponent: boolean = false;\n private resizeObserver: ResizeObserver = null;\n\n @Element() el: HTMLIcDataRowElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() entitySize: \"xl\" | \"m\" | \"xs\";\n\n /**\n * The label in the leftmost cell of the row.\n */\n @Prop() label: string;\n\n /**\n * The size of the data row component.\n */\n @Prop() size?: IcSizesNoLarge = \"default\";\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `size` to \"small\" instead.\n */\n @Prop() small?: boolean = false;\n\n /**\n * The value of the middle (right if no end-component supplied) cell of the row.\n */\n @Prop() value: string;\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n this.hasEndComponent = slotHasContent(this.el, \"end-component\");\n this.checkLabelAbove();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n if (this.hasEndComponent) {\n this.labelEndComponent();\n }\n }\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkLabelAbove();\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n private checkLabelAbove() {\n const rowSize = this.el.shadowRoot.querySelector(\".data\")?.clientWidth;\n if (rowSize) {\n if (rowSize + 46 < DEVICE_SIZES.S) {\n this.entitySize = \"xs\";\n } else if (rowSize + 46 < DEVICE_SIZES.M) {\n this.entitySize = \"m\";\n } else {\n this.entitySize = \"xl\";\n }\n }\n }\n\n /**\n * Renders the label either as a ic-typography or slot. Slotted content takes precedence.\n * @param label string - label of value\n * @returns HTMLDivElement - returns label as slot or ic-typography with label as textContent\n */\n private renderLabel = (label: string) => {\n if (isSlotUsed(this.el, \"label\")) {\n return (\n <div class=\"label\">\n <slot name=\"label\"></slot>\n </div>\n );\n } else if (label) {\n return (\n <div class=\"label\">\n <ic-typography\n variant={this.entitySize === \"xs\" ? \"label\" : \"subtitle-large\"}\n >\n {label}\n </ic-typography>\n </div>\n );\n }\n\n return null;\n };\n\n private labelEndComponent(): void {\n const component = this.el.shadowRoot.querySelectorAll(\n \"slot[name=end-component]\"\n );\n\n component.forEach((child: HTMLElement) =>\n child.setAttribute(\"aria-label\", \"for \" + this.label + \" row\")\n );\n }\n\n render() {\n const { label, value, small, size } = this;\n\n return (\n <Host\n class={{\n [\"small\"]: small || size === \"small\",\n [\"breakpoint-medium\"]: this.entitySize === \"m\",\n [\"breakpoint-xs\"]: this.entitySize === \"xs\",\n }}\n role=\"listitem\"\n >\n <div class=\"data\">\n <div class=\"text-cells\">\n {this.renderLabel(label)}\n <div class=\"value\">\n <slot name=\"value\">\n <ic-typography variant=\"body\">{value}</ic-typography>\n </slot>\n </div>\n </div>\n {this.hasEndComponent && (\n <div class=\"end-component\">\n <div role=\"cell\">\n <slot name=\"end-component\"></slot>\n </div>\n </div>\n )}\n </div>\n <div class=\"divider\" />\n </Host>\n );\n }\n}\n"],"mappings":"iJAAA,MAAMA,EAAe,mhH,MCoBRC,EAAO,M,yBACVC,KAAAC,gBAA2B,MAC3BD,KAAAE,eAAiC,KA8CjCF,KAAAG,kBAAoB,KAC1BH,KAAKE,eAAiB,IAAIE,gBAAe,KACvCJ,KAAKK,iBAAiB,IAGxBL,KAAKE,eAAeI,QAAQN,KAAKO,GAAG,EAqB9BP,KAAAQ,YAAeC,IACrB,GAAIC,EAAWV,KAAKO,GAAI,SAAU,CAChC,OACEI,EAAA,OAAKC,MAAM,SACTD,EAAA,QAAME,KAAK,U,MAGV,GAAIJ,EAAO,CAChB,OACEE,EAAA,OAAKC,MAAM,SACTD,EAAA,iBACEG,QAASd,KAAKe,aAAe,KAAO,QAAU,kBAE7CN,G,CAMT,OAAO,IAAI,E,gBAvFiBO,EAAaC,G,yDAWX,U,WAKN,M,qBAO1B,oBAAAC,GACE,GAAIlB,KAAKE,iBAAmB,KAAM,CAChCF,KAAKE,eAAeiB,Y,EAIxB,iBAAAC,GACEpB,KAAKqB,WAAaC,IAClBtB,KAAKC,gBAAkBsB,EAAevB,KAAKO,GAAI,iBAC/CP,KAAKK,iB,CAGP,gBAAAmB,GACEC,EAAoBzB,KAAKG,mBACzB,GAAIH,KAAKC,gBAAiB,CACxBD,KAAK0B,mB,EAYD,eAAArB,G,MACN,MAAMsB,GAAUC,EAAA5B,KAAKO,GAAGsB,WAAWC,cAAc,YAAQ,MAAAF,SAAA,SAAAA,EAAEG,YAC3D,GAAIJ,EAAS,CACX,GAAIA,EAAU,GAAKX,EAAagB,EAAG,CACjChC,KAAKe,WAAa,I,MACb,GAAIY,EAAU,GAAKX,EAAaiB,EAAG,CACxCjC,KAAKe,WAAa,G,KACb,CACLf,KAAKe,WAAa,I,GAgChB,iBAAAW,GACN,MAAMQ,EAAYlC,KAAKO,GAAGsB,WAAWM,iBACnC,4BAGFD,EAAUE,SAASC,GACjBA,EAAMC,aAAa,aAAc,OAAStC,KAAKS,MAAQ,S,CAI3D,MAAA8B,GACE,MAAM9B,MAAEA,EAAK+B,MAAEA,EAAKC,MAAEA,EAAKC,KAAEA,GAAS1C,KAEtC,OACEW,EAACgC,EAAI,CACH/B,MAAO,CACL,CAAC,SAAU6B,GAASC,IAAS,QAC7B,CAAC,qBAAsB1C,KAAKe,aAAe,IAC3C,CAAC,iBAAkBf,KAAKe,aAAe,MAEzC6B,KAAK,YAELjC,EAAA,OAAKC,MAAM,QACTD,EAAA,OAAKC,MAAM,cACRZ,KAAKQ,YAAYC,GAClBE,EAAA,OAAKC,MAAM,SACTD,EAAA,QAAME,KAAK,SACTF,EAAA,iBAAeG,QAAQ,QAAQ0B,MAIpCxC,KAAKC,iBACJU,EAAA,OAAKC,MAAM,iBACTD,EAAA,OAAKiC,KAAK,QACRjC,EAAA,QAAME,KAAK,qBAKnBF,EAAA,OAAKC,MAAM,Y"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icChipCss","Chip","this","dismissAction","dismiss","emit","icDismiss","mouseEnterHandler","isHovered","mouseLeaveHandler","componentWillLoad","removeDisabledFalse","disabled","el","appearance","variant","componentDidLoad","dismissible","_a","shadowRoot","querySelector","setAttribute","onComponentRequiredPropUndefined","prop","label","propName","handleClick","visible","setFocus","focus","render","size","h","class","undefined","isSlotUsed","name","target","id","tabindex","onClick","onMouseEnter","onMouseLeave","innerHTML","dismissIcon"],"sources":["src/components/ic-chip/ic-chip.css?tag=ic-chip&encapsulation=shadow","src/components/ic-chip/ic-chip.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: inline-block;\n}\n\n.chip {\n display: flex;\n padding: var(--ic-space-xxs);\n font-size: 0.875rem;\n border-radius: var(--ic-space-md);\n text-align: left;\n text-decoration: none;\n transition: var(--ic-easing-transition-fast);\n position: relative;\n}\n\n.chip.small {\n padding: var(--ic-space-xxxs);\n border-radius: calc(var(--ic-space-md) - var(--ic-space-xxxs));\n}\n\n.chip.large {\n padding: var(--ic-space-xs);\n border-radius: calc(var(--ic-space-md) + var(--ic-space-xxs));\n}\n\n.label {\n padding: 0 var(--ic-space-xs);\n}\n\n.chip.hovered:not(:focus-within) {\n background-color: var(--ic-architectural-300);\n}\n\n.chip:focus-within {\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n z-index: 1;\n}\n\n.chip.outline.hovered:not(:focus-within),\n.chip.outlined.hovered:not(:focus-within) {\n background-color: var(--ic-action-dark-bg-hover);\n}\n\nic-tooltip:focus-within {\n z-index: 1;\n}\n\n.filled {\n background-color: var(--ic-architectural-200);\n color: black;\n border: none;\n}\n\n.filled.disabled {\n background-color: var(--ic-architectural-100);\n}\n\n.outline,\n.outlined {\n color: var(--ic-architectural-900);\n border: var(--ic-space-1px) solid var(--ic-architectural-900);\n padding: calc(var(--ic-space-xxs) - var(--ic-space-1px));\n}\n\n.outline.small,\n.outlined.small {\n padding: calc(var(--ic-space-xxxs) - var(--ic-space-1px));\n}\n\n.outline.large,\n.outlined.large {\n padding: calc(var(--ic-space-xs) - var(--ic-space-1px));\n}\n\n.outline.disabled,\n.outlined.disabled {\n border: var(--ic-border-disabled);\n background: none;\n}\n\n.chip.disabled ic-typography {\n color: var(--ic-architectural-200);\n}\n\n.dismiss-icon {\n border: none;\n border-radius: 50%;\n padding: 0;\n background: none;\n cursor: pointer;\n margin: var(--ic-space-xxxs);\n height: calc(var(--ic-space-lg) - var(--ic-space-xxs));\n width: calc(var(--ic-space-lg) - var(--ic-space-xxs));\n}\n\n.dismiss-icon:focus {\n outline: var(--ic-hc-focus-outline);\n}\n\n.dismiss-icon[disabled] {\n pointer-events: none;\n color: var(--ic-architectural-200);\n}\n\n.icon {\n padding: var(--ic-space-xxxs);\n box-sizing: border-box;\n}\n\n.icon,\nic-tooltip {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n.chip.disabled path,\n.chip.disabled ::slotted(svg) {\n fill: var(--ic-architectural-200);\n}\n\n@media (forced-colors: active) {\n .chip {\n border: var(--ic-hc-border);\n }\n\n .filled.small {\n padding: calc(var(--ic-space-xxxs) - var(--ic-space-1px));\n }\n\n .filled {\n padding: calc(var(--ic-space-xxxs) + var(--ic-space-1px));\n }\n\n .filled.large {\n padding: calc(var(--ic-space-xs) - var(--ic-space-1px));\n }\n\n .chip.disabled {\n appearance: none;\n border-color: GrayText;\n }\n\n .chip.disabled ic-typography {\n color: GrayText;\n }\n\n .chip.disabled path,\n .chip.disabled ::slotted(svg) {\n fill: GrayText;\n }\n\n .chip:focus-within {\n outline: none;\n border-color: Highlight;\n }\n}\n","import {\n Component,\n h,\n Prop,\n State,\n Listen,\n Event,\n EventEmitter,\n Element,\n Method,\n} from \"@stencil/core\";\nimport {\n onComponentRequiredPropUndefined,\n isSlotUsed,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport { IcChipAppearance } from \"./ic-chip.types\";\nimport { IcEmphasisType, IcSizes } from \"../../utils/types\";\nimport dismissIcon from \"../../assets/dismiss-icon.svg\";\n\n/**\n * @slot icon - Content will be rendered at the start of the chip.\n * @slot badge - Badge component overlaying the top right of the chip.\n */\n@Component({\n tag: \"ic-chip\",\n styleUrl: \"ic-chip.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Chip {\n @Element() el: HTMLIcChipElement;\n\n @State() isHovered: boolean = false;\n @State() visible: boolean = true;\n\n /**\n * @deprecated This prop should not be used anymore. Use variant prop instead.\n */\n @Prop() appearance?: IcChipAppearance;\n\n /**\n * If `true`, the chip will appear disabled.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * If `true`, the chip will have a close button at the end to dismiss it.\n */\n @Prop() dismissible?: boolean = false;\n\n /**\n * The text rendered within the chip.\n */\n @Prop() label!: string;\n\n /**\n * The size of the chip.\n */\n @Prop() size?: IcSizes = \"default\";\n\n /**\n * The emphasis of the chip.\n */\n @Prop() variant?: IcEmphasisType = \"filled\";\n\n /**\n * @deprecated This event should not be used anymore. Use icDismiss instead.\n */\n @Event() dismiss: EventEmitter<void>;\n\n /**\n * Is emitted when the user dismisses the chip.\n */\n @Event() icDismiss: EventEmitter<void>;\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n if (this.appearance === \"outline\") {\n this.variant = \"outlined\";\n }\n }\n\n componentDidLoad(): void {\n this.dismissible &&\n this.el.shadowRoot\n .querySelector(\"span.ic-tooltip-label\")\n ?.setAttribute(\"aria-hidden\", \"true\");\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Chip\"\n );\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleClick(): void {\n this.visible = !this.visible;\n }\n\n /**\n * Sets focus on the chip.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"button\")) {\n this.el.shadowRoot.querySelector(\"button\").focus();\n }\n }\n\n private dismissAction = (): void => {\n this.dismiss.emit();\n this.icDismiss.emit();\n };\n\n private mouseEnterHandler = (): void => {\n this.isHovered = true;\n };\n\n private mouseLeaveHandler = (): void => {\n this.isHovered = false;\n };\n\n render() {\n const {\n label,\n appearance,\n variant,\n size,\n dismissible,\n visible,\n disabled,\n isHovered,\n } = this;\n\n return (\n visible && (\n <div\n class={{\n [\"chip\"]: true,\n [`${appearance}`]: appearance !== undefined,\n [`${variant}`]: true,\n [`${size}`]: true,\n [\"disabled\"]: disabled,\n [\"dismissible\"]: dismissible,\n [\"hovered\"]: isHovered,\n }}\n >\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography\n variant=\"label\"\n apply-vertical-margins={false}\n class=\"label\"\n >\n <span>{label}</span>\n </ic-typography>\n {dismissible && (\n <ic-tooltip\n label=\"Dismiss\"\n target=\"dismiss-icon\"\n class={{ [\"tooltip-disabled\"]: disabled }}\n >\n <button\n id=\"dismiss-icon\"\n class={{\n [\"dismiss-icon\"]: true,\n }}\n aria-label={`Dismiss ${label} chip`}\n disabled={disabled}\n tabindex={disabled ? -1 : 0}\n onClick={this.dismissAction}\n onMouseEnter={this.mouseEnterHandler}\n onMouseLeave={this.mouseLeaveHandler}\n innerHTML={dismissIcon}\n ></button>\n </ic-tooltip>\n )}\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </div>\n )\n );\n }\n}\n"],"mappings":"0cAAA,MAAMA,EAAY,q0J,MC+BLC,EAAI,M,+FAgFPC,KAAAC,cAAgB,KACtBD,KAAKE,QAAQC,OACbH,KAAKI,UAAUD,MAAM,EAGfH,KAAAK,kBAAoB,KAC1BL,KAAKM,UAAY,IAAI,EAGfN,KAAAO,kBAAoB,KAC1BP,KAAKM,UAAY,KAAK,E,eAvFM,M,aACF,K,wCAUC,M,iBAKG,M,+BAUP,U,aAKU,Q,CAYnC,iBAAAE,GACEC,EAAoBT,KAAKU,SAAUV,KAAKW,IAExC,GAAIX,KAAKY,aAAe,UAAW,CACjCZ,KAAKa,QAAU,U,EAInB,gBAAAC,G,MACEd,KAAKe,eACHC,EAAAhB,KAAKW,GAAGM,WACLC,cAAc,4BAAwB,MAAAF,SAAA,SAAAA,EACrCG,aAAa,cAAe,SAClCC,EACE,CAAC,CAAEC,KAAMrB,KAAKsB,MAAOC,SAAU,UAC/B,O,CAKJ,WAAAC,GACExB,KAAKyB,SAAWzB,KAAKyB,O,CAOvB,cAAMC,GACJ,GAAI1B,KAAKW,GAAGM,WAAWC,cAAc,UAAW,CAC9ClB,KAAKW,GAAGM,WAAWC,cAAc,UAAUS,O,EAiB/C,MAAAC,GACE,MAAMN,MACJA,EAAKV,WACLA,EAAUC,QACVA,EAAOgB,KACPA,EAAId,YACJA,EAAWU,QACXA,EAAOf,SACPA,EAAQJ,UACRA,GACEN,KAEJ,OACEyB,GACEK,EAAA,OACEC,MAAO,CACL,CAAC,QAAS,KACV,CAAC,GAAGnB,KAAeA,IAAeoB,UAClC,CAAC,GAAGnB,KAAY,KAChB,CAAC,GAAGgB,KAAS,KACb,CAAC,YAAanB,EACd,CAAC,eAAgBK,EACjB,CAAC,WAAYT,IAGd2B,EAAWjC,KAAKW,GAAI,SACnBmB,EAAA,OAAKC,MAAM,QACTD,EAAA,QAAMI,KAAK,UAGfJ,EAAA,iBACEjB,QAAQ,QAAO,yBACS,MACxBkB,MAAM,SAEND,EAAA,YAAOR,IAERP,GACCe,EAAA,cACER,MAAM,UACNa,OAAO,eACPJ,MAAO,CAAE,CAAC,oBAAqBrB,IAE/BoB,EAAA,UACEM,GAAG,eACHL,MAAO,CACL,CAAC,gBAAiB,MACnB,aACW,WAAWT,SACvBZ,SAAUA,EACV2B,SAAU3B,GAAY,EAAI,EAC1B4B,QAAStC,KAAKC,cACdsC,aAAcvC,KAAKK,kBACnBmC,aAAcxC,KAAKO,kBACnBkC,UAAWC,KAIhBT,EAAWjC,KAAKW,GAAI,UAAYmB,EAAA,QAAMI,KAAK,U"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,c as e,h as i,H as s,g as a}from"./p-9d124fc7.js";import{a as n}from"./p-613aa265.js";import{M as o,m as r,w as l,l as h,j as c,a as d,q as u,n as p,i as b,G as m,x as f}from"./p-8fb4f0c0.js";const y='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block}:host(.fullwidth){width:100%}::-moz-placeholder{color:var(--ic-color-tertiary-text);opacity:1}::placeholder{color:var(--ic-color-tertiary-text);opacity:1}input,textarea{border:0;border-radius:var(--ic-border-radius);background-color:var(--ic-architectural-white);line-height:1.5rem;letter-spacing:0.005rem;width:100%;padding-right:var(--ic-space-xs);padding-left:var(--ic-space-xs)}textarea{min-height:var(--ic-space-lg);resize:vertical;padding-top:0.375rem}input:focus,textarea:focus{border:0;outline:0}input:disabled,textarea:disabled{color:var(--ic-architectural-200)}input.readonly,textarea.readonly{color:var(--ic-color-primary-text)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type="number"]{-moz-appearance:textfield}textarea.no-resize{resize:none}.maxlengthtext{color:var(--ic-color-secondary-text)}.no-left-pad{padding-left:0}::slotted([slot="icon"]){fill:var(--ic-color-tertiary-text)}.has-value ::slotted([slot="icon"]){fill:var(--ic-color-primary-text)}.charcount{margin-right:calc(-1 * var(--ic-space-xxxs))}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-results-button,input[type="search"]::-webkit-search-results-decoration{display:none}input[type="search"].truncate-value{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media (forced-colors: active){input.readonly,textarea.readonly{color:canvastext}.has-value ::slotted([slot="icon"]){fill:currentcolor}}';let x=0;const g=class{constructor(i){t(this,i);this.getValidationText=e(this,"getValidationText",7);this.icBlur=e(this,"icBlur",7);this.icChange=e(this,"icChange",7);this.icFocus=e(this,"icFocus",7);this.icInput=e(this,"icInput",7);this.icKeydown=e(this,"icKeydown",7);this.inheritedAttributes={};this.showLeftIcon=this.hasLeftIconSlot();this.onInput=t=>{this.value=t.target.value;this.icInput.emit({value:this.value})};this.onBlur=t=>{const e=t.target.value;this.icBlur.emit({value:e})};this.onFocus=t=>{const e=t.target.value;this.icFocus.emit({value:e})};this.isTextArea=()=>this.rows>1;this.getInlineValidationText=()=>{this.getValidationText.emit({value:this.validationText})};this.hasStatus=t=>t!==""&&!this.disabled;this.showStatusText=t=>this.hasStatus(t)&&!(t==n.Success&&this.validationInline)&&!this.validationInlineInternal;this.handleFormReset=()=>{this.value=this.initialValue};this.numChars=0;this.maxLengthExceeded=false;this.maxValueExceeded=false;this.minValueUnattained=false;this.ariaActiveDescendant=undefined;this.ariaAutocomplete=undefined;this.ariaExpanded=undefined;this.ariaOwns=undefined;this.autocapitalize="off";this.autocomplete="off";this.autocorrect="off";this.autoFocus=false;this.disabled=false;this.fullWidth=false;this.helperText="";this.hideLabel=false;this.hiddenInput=true;this.inputId=`ic-text-field-input-${x++}`;this.inputmode="text";this.label=undefined;this.max=undefined;this.maxLength=0;this.min=undefined;this.name=this.inputId;this.placeholder="";this.readonly=false;this.required=false;this.resize=false;this.role=undefined;this.rows=1;this.size="default";this.small=false;this.spellcheck=false;this.truncateValue=undefined;this.type="text";this.validationInline=false;this.validationInlineInternal=false;this.validationStatus="";this.validationText="";this.debounce=0;this.value="";this.initialValue=this.value}debounceChanged(){this.icChange=o(this.icChange,this.debounce)}watchValueHandler(t){if(this.inputEl&&this.inputEl.value!==t){this.inputEl.value=t}this.numChars=t.length;if(this.type==="number"){if(t&&Number(t)<Number(this.min)){this.minValueUnattained=true}else{this.minValueUnattained=false}if(Number(t)>Number(this.max)){this.maxValueExceeded=true}else{this.maxValueExceeded=false}}if(this.maxLength>0){if(t.length>this.maxLength){this.maxLengthExceeded=true}else{this.maxLengthExceeded=false}}this.icChange.emit({value:t})}connectedCallback(){this.debounceChanged()}disconnectedCallback(){r(this.el,this.handleFormReset)}componentWillLoad(){this.watchValueHandler(this.value);this.inheritedAttributes=l(this.el,[...f,"title"]);if(this.readonly){this.maxLengthExceeded=false;this.maxValueExceeded=false;this.minValueUnattained=false}h(this.el,this.handleFormReset);c(this.disabled,this.el)}componentDidLoad(){d([{prop:this.label,propName:"label"}],"Text Field");if(this.validationInlineInternal){this.getInlineValidationText()}}handleKeyDown(t){this.icKeydown.emit({event:t})}async setFocus(){if(this.inputEl){this.inputEl.focus()}}hasLeftIconSlot(){const t=this.el.querySelector(`[slot="icon"]`);return t!==null}render(){const{inputId:t,name:e,label:a,required:o,size:r,placeholder:l,helperText:h,rows:c,resize:d,disabled:f,value:y,min:x,max:g,maxLength:v,numChars:w,readonly:k,maxLengthExceeded:z,minValueUnattained:I,maxValueExceeded:j,validationStatus:F,validationText:L,validationInline:q,validationInlineInternal:T,spellcheck:C,inputmode:M,fullWidth:V,truncateValue:N,hiddenInput:B}=this;const W=k?true:f;const $=f?"":l;const H=z||j||I?n.Error:F;const S=z?"Maximum length exceeded":j?`Maximum value of ${g} exceeded`:I?`Minimum value of ${x} not met`:L;const D=k?0:v;const E=z||j||I||v===0&&H===n.Error?"assertive":"polite";const K=this.showStatusText(H);const O=this.isTextArea();const _=v>0?t+"-charcount-desc":"";const G=(_+" "+u(t,h!=="",K)).trim();if(this.showLeftIcon&&!k&&W){this.showLeftIcon=false}const U=H===n.Error?"true":"false";const A=W&&!k;if(B){p(true,this.el,e,y,W)}return i(s,{class:{["fullwidth"]:V}},i("ic-input-container",{readonly:k,disabled:W},!this.hideLabel&&i("ic-input-label",{for:t,label:a,helperText:h,required:o,disabled:A,readonly:k}),i("ic-input-component-container",{size:r,validationStatus:H,multiLine:O,disabled:W,readonly:k,validationInline:q,fullWidth:V},this.showLeftIcon&&i("span",{class:{["readonly"]:k,["has-value"]:y.length>0},slot:"left-icon"},i("slot",{name:"icon"})),!O&&i("input",Object.assign({id:t,name:e,ref:t=>this.inputEl=t,type:this.type,min:x,max:g,value:y,class:{["no-left-pad"]:!this.showLeftIcon&&k,["readonly"]:k,["truncate-value"]:N},placeholder:$,required:o,disabled:W,readonly:k,onInput:this.onInput,onBlur:this.onBlur,onFocus:this.onFocus,"aria-label":a,"aria-describedby":G,"aria-invalid":U,"aria-activedescendant":this.ariaActiveDescendant,"aria-expanded":this.ariaExpanded,"aria-owns":this.ariaOwns,autocomplete:this.autocomplete,autocapitalize:this.autocapitalize,autoFocus:this.autoFocus,spellcheck:C,inputmode:M,role:this.role},this.inheritedAttributes)),O&&i("textarea",Object.assign({id:t,class:{["no-resize"]:d===false||k,["no-left-pad"]:!this.showLeftIcon&&k,["readonly"]:k},name:e,ref:t=>this.inputEl=t,value:y,rows:c,required:o,disabled:W,placeholder:$,readonly:k,onInput:this.onInput,onBlur:this.onBlur,onFocus:this.onFocus,"aria-label":a,"aria-describedby":G,"aria-invalid":U,autocapitalize:this.autocapitalize,autoFocus:this.autoFocus,spellcheck:C,inputmode:M},this.inheritedAttributes)),b(this.el,"clear-button")&&i("slot",{name:"clear-button"}),b(this.el,"search-submit-button")&&i("slot",{name:"search-submit-button"})),b(this.el,"menu")&&i("slot",{name:"menu"}),(!m(F)||!m(L)||D>0||j||I)&&!T&&i("ic-input-validation",{status:this.hasStatus(H)===false||H===n.Success&&q||T?"":H,message:K?S:"",ariaLiveMode:E,for:t,fullWidth:V},!k&&D>0&&i("div",{slot:"validation-message-adornment"},i("ic-typography",{variant:"caption",class:{["maxlengthtext"]:true,["error"]:z,["disabled"]:A}},i("span",{"aria-live":"polite",id:`${t}-charcount`,class:"charcount"},w,"/",D),i("span",{hidden:true,id:_},"Field can contain a maximum of ",D," characters."))))))}get el(){return a(this)}static get watchers(){return{debounce:["debounceChanged"],value:["watchValueHandler"]}}};g.style=y;export{g as ic_text_field};
|
2
|
-
//# sourceMappingURL=p-f00e510b.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icTextFieldCss","inputIds","TextField","this","inheritedAttributes","showLeftIcon","hasLeftIconSlot","onInput","ev","value","target","icInput","emit","onBlur","icBlur","onFocus","icFocus","isTextArea","rows","getInlineValidationText","getValidationText","validationText","hasStatus","status","disabled","showStatusText","IcInformationStatus","Success","validationInline","validationInlineInternal","handleFormReset","initialValue","undefined","inputId","debounceChanged","icChange","debounceEvent","debounce","watchValueHandler","newValue","inputEl","numChars","length","type","Number","min","minValueUnattained","max","maxValueExceeded","maxLength","maxLengthExceeded","connectedCallback","disconnectedCallback","removeFormResetListener","el","componentWillLoad","inheritAttributes","IC_INHERITED_ARIA","readonly","addFormResetListener","removeDisabledFalse","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","handleKeyDown","icKeydown","event","setFocus","focus","iconEl","querySelector","render","name","required","size","placeholder","helperText","resize","validationStatus","spellcheck","inputmode","fullWidth","truncateValue","hiddenInput","disabledMode","placeholderText","currentStatus","Error","currentValidationText","maxNumChars","messageAriaLive","multiline","hiddenCharCountDescId","describedBy","getInputDescribedByText","trim","invalid","disabledText","renderHiddenInput","h","Host","class","hideLabel","for","multiLine","slot","Object","assign","id","ref","ariaActiveDescendant","ariaExpanded","ariaOwns","autocomplete","autocapitalize","autoFocus","role","isSlotUsed","isEmptyString","message","ariaLiveMode","variant","hidden"],"sources":["src/components/ic-text-field/ic-text-field.css?tag=ic-text-field&encapsulation=shadow","src/components/ic-text-field/ic-text-field.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n /**\n * @prop --input-width: Width of the input field\n */\n display: block;\n}\n\n:host(.fullwidth) {\n width: 100%;\n}\n\n::placeholder {\n color: var(--ic-color-tertiary-text);\n opacity: 1;\n}\n\ninput,\ntextarea {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-architectural-white);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n padding-right: var(--ic-space-xs);\n padding-left: var(--ic-space-xs);\n}\n\ntextarea {\n min-height: var(--ic-space-lg);\n resize: vertical;\n padding-top: 0.375rem;\n}\n\ninput:focus,\ntextarea:focus {\n border: 0;\n outline: 0;\n}\n\ninput:disabled,\ntextarea:disabled {\n color: var(--ic-architectural-200);\n}\n\ninput.readonly,\ntextarea.readonly {\n color: var(--ic-color-primary-text);\n}\n\n/* Chrome, Safari, Edge */\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n/* Firefox */\ninput[type=\"number\"] {\n -moz-appearance: textfield;\n}\n\ntextarea.no-resize {\n resize: none;\n}\n\n.maxlengthtext {\n color: var(--ic-color-secondary-text);\n}\n\n.no-left-pad {\n padding-left: 0;\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-color-tertiary-text);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-color-primary-text);\n}\n\n.charcount {\n margin-right: calc(-1 * var(--ic-space-xxxs));\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n display: none;\n}\n\ninput[type=\"search\"].truncate-value {\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n@media (forced-colors: active) {\n input.readonly,\n textarea.readonly {\n color: canvastext;\n }\n\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n Method,\n h,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcInformationStatusOrEmpty,\n IcValueEventDetail,\n IcSizesNoLarge,\n} from \"../../utils/types\";\nimport {\n inheritAttributes,\n debounceEvent,\n getInputDescribedByText,\n renderHiddenInput,\n isEmptyString,\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n isSlotUsed,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcAriaAutocompleteTypes,\n IcTextFieldInputModes,\n IcTextFieldTypes,\n} from \"./ic-text-field.types\";\n\nlet inputIds = 0;\n\n/**\n * @slot icon - Content will be placed to the left of the text input.\n */\n@Component({\n tag: \"ic-text-field\",\n styleUrl: \"ic-text-field.css\",\n shadow: true,\n})\nexport class TextField {\n private inheritedAttributes: { [k: string]: unknown } = {};\n private inputEl: HTMLInputElement | HTMLTextAreaElement;\n private showLeftIcon: boolean = this.hasLeftIconSlot();\n\n @Element() el: HTMLIcTextFieldElement;\n\n @State() numChars: number = 0;\n @State() maxLengthExceeded: boolean = false;\n @State() maxValueExceeded: boolean = false;\n @State() minValueUnattained: boolean = false;\n\n /**\n * @slot clear-button - an ic-button clear component will render as an end adornment to the input.\n * @slot search-submit-button - an ic-button search submit component will render as an end adornment to the input.\n * @slot menu - an ic-menu component will appear below the input.\n */\n\n /**\n * @internal The active element when focus is on the ic-menu items.\n */\n @Prop() ariaActiveDescendant?: string;\n\n /**\n * @internal Used to identify whether inputting any text triggers more predictions\n */\n @Prop() ariaAutocomplete: IcAriaAutocompleteTypes = undefined;\n\n /**\n * @internal Used to identify if the slotted menu is rendered\n */\n @Prop() ariaExpanded: string;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwns: string;\n\n /**\n * The automatic capitalisation of the text value as it is entered/edited by the user.\n * Available options: \"off\", \"none\", \"on\", \"sentences\", \"words\", \"characters\".\n */\n @Prop() autocapitalize = \"off\";\n\n /**\n * The state of autocompletion the browser can apply on the text value.\n */\n @Prop() autocomplete: IcAutocompleteTypes = \"off\";\n\n /**\n * The state of autocorrection the browser can apply when the user is entering/editing the text value.\n */\n @Prop() autocorrect: IcAutocorrectStates = \"off\";\n\n /**\n * If `true`, the form control will have input focus when the page loads.\n */\n @Prop() autoFocus = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Specify whether the text field fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * @internal If `true`, the hidden form input will stop rendering for form submission.\n */\n @Prop() hiddenInput: boolean = true;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId?: string = `ic-text-field-input-${inputIds++}`;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode: IcTextFieldInputModes = \"text\";\n\n /**\n * The label for the input.\n */\n @Prop() label!: string;\n\n /**\n * The maximum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of max value in `helperText` or `label`)\n */\n @Prop() max: string | number = undefined;\n\n /**\n * The maximum number of characters that can be entered in the field.\n */\n @Prop() maxLength: number = 0;\n\n /**\n * The minimum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of min value in `helperText` or `label`)\n */\n @Prop() min: string | number = undefined;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder: string = \"\";\n\n /**\n * If `true`, the read only state will be set.\n */\n @Prop({ reflect: true }) readonly: boolean = false;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required: boolean = false;\n\n /**\n * If `true`, the multiline text area will be resizeable.\n */\n @Prop() resize: boolean = false;\n\n /**\n * @internal Used to set the role if not default textbox;\n */\n @Prop() role: string;\n\n /**\n * The number of rows to transform the text field into a text area with a specific height.\n */\n @Prop() rows: number = 1;\n\n /**\n * The size of the text field component.\n */\n @Prop() size?: IcSizesNoLarge = \"default\";\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `size` to \"small\" instead.\n */\n @Prop() small?: boolean = false;\n\n /**\n * If `true`, the value of the text field will have its spelling and grammar checked.\n */\n @Prop() spellcheck: boolean = false;\n /**\n * @internal If `true`, an ellipsis will be displayed at the end of the value if the value is longer than the container.\n */\n @Prop() truncateValue?: boolean;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop() type: IcTextFieldTypes = \"text\";\n\n /**\n * If `true`, the icon in input control will be displayed - only applies when validationStatus ='success'.\n */\n @Prop() validationInline: boolean = false;\n\n /**\n * @internal If `true`, the validation will display inline.\n */\n @Prop() validationInlineInternal: boolean = false;\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce: number = 0;\n\n @Watch(\"debounce\")\n private debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\n\n /**\n * The value of the text field.\n */\n @Prop({ reflect: true, mutable: true }) value: string = \"\";\n @State() initialValue = this.value;\n\n @Watch(\"value\")\n private watchValueHandler(newValue: string): void {\n if (this.inputEl && this.inputEl.value !== newValue) {\n this.inputEl.value = newValue;\n }\n\n this.numChars = newValue.length;\n\n if (this.type === \"number\") {\n if (newValue && Number(newValue) < Number(this.min)) {\n this.minValueUnattained = true;\n } else {\n this.minValueUnattained = false;\n }\n if (Number(newValue) > Number(this.max)) {\n this.maxValueExceeded = true;\n } else {\n this.maxValueExceeded = false;\n }\n }\n\n if (this.maxLength > 0) {\n if (newValue.length > this.maxLength) {\n this.maxLengthExceeded = true;\n } else {\n this.maxLengthExceeded = false;\n }\n }\n this.icChange.emit({ value: newValue });\n }\n\n /**\n * @internal Emitted when the validationInlineInternal is `true`\n */\n @Event() getValidationText: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input loses focus.\n */\n @Event() icBlur: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input gains focus.\n */\n @Event() icFocus: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keydown event occurred.\n */\n @Event() icKeydown: EventEmitter<{ event: KeyboardEvent }>;\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.watchValueHandler(this.value);\n\n this.inheritedAttributes = inheritAttributes(this.el, [\n ...IC_INHERITED_ARIA,\n \"title\",\n ]);\n\n if (this.readonly) {\n this.maxLengthExceeded = false;\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n }\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Text Field\"\n );\n if (this.validationInlineInternal) {\n this.getInlineValidationText();\n }\n }\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n this.icKeydown.emit({ event: ev });\n }\n\n /**\n * Sets focus on the native `input`.\n */\n\n @Method()\n async setFocus(): Promise<void> {\n if (this.inputEl) {\n this.inputEl.focus();\n }\n }\n\n private onInput = (ev: Event) => {\n this.value = (ev.target as HTMLInputElement).value;\n this.icInput.emit({ value: this.value });\n };\n\n private onBlur = (ev: Event) => {\n const value = (ev.target as HTMLInputElement).value;\n this.icBlur.emit({ value: value });\n };\n\n private onFocus = (ev: Event) => {\n const value = (ev.target as HTMLInputElement).value;\n this.icFocus.emit({ value: value });\n };\n\n private isTextArea = (): boolean => {\n return this.rows > 1;\n };\n\n private getInlineValidationText = () => {\n this.getValidationText.emit({ value: this.validationText });\n };\n\n private hasLeftIconSlot(): boolean {\n const iconEl = this.el.querySelector(`[slot=\"icon\"]`);\n return iconEl !== null;\n }\n\n private hasStatus = (status: IcInformationStatusOrEmpty): boolean => {\n return status !== \"\" && !this.disabled;\n };\n\n private showStatusText = (status: IcInformationStatusOrEmpty): boolean => {\n return (\n this.hasStatus(status) &&\n !(status == IcInformationStatus.Success && this.validationInline) &&\n !this.validationInlineInternal\n );\n };\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n };\n\n render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n placeholder,\n helperText,\n rows,\n resize,\n disabled,\n value,\n min,\n max,\n maxLength,\n numChars,\n readonly,\n maxLengthExceeded,\n minValueUnattained,\n maxValueExceeded,\n validationStatus,\n validationText,\n validationInline,\n validationInlineInternal,\n spellcheck,\n inputmode,\n fullWidth,\n truncateValue,\n hiddenInput,\n } = this;\n\n const disabledMode = readonly ? true : disabled;\n\n const placeholderText = disabled ? \"\" : placeholder;\n\n const currentStatus =\n maxLengthExceeded || maxValueExceeded || minValueUnattained\n ? IcInformationStatus.Error\n : validationStatus;\n\n const currentValidationText = maxLengthExceeded\n ? \"Maximum length exceeded\"\n : maxValueExceeded\n ? `Maximum value of ${max} exceeded`\n : minValueUnattained\n ? `Minimum value of ${min} not met`\n : validationText;\n\n const maxNumChars = readonly ? 0 : maxLength;\n\n const messageAriaLive =\n maxLengthExceeded ||\n maxValueExceeded ||\n minValueUnattained ||\n (maxLength === 0 && currentStatus === IcInformationStatus.Error)\n ? \"assertive\"\n : \"polite\";\n\n const showStatusText = this.showStatusText(currentStatus);\n const multiline = this.isTextArea();\n const hiddenCharCountDescId =\n maxLength > 0 ? inputId + \"-charcount-desc\" : \"\";\n const describedBy = (\n hiddenCharCountDescId +\n \" \" +\n getInputDescribedByText(inputId, helperText !== \"\", showStatusText)\n ).trim();\n\n if (this.showLeftIcon && !readonly && disabledMode) {\n this.showLeftIcon = false;\n }\n\n const invalid =\n currentStatus === IcInformationStatus.Error ? \"true\" : \"false\";\n const disabledText = disabledMode && !readonly;\n\n if (hiddenInput) {\n renderHiddenInput(true, this.el, name, value, disabledMode);\n }\n return (\n <Host class={{ [\"fullwidth\"]: fullWidth }}>\n <ic-input-container readonly={readonly} disabled={disabledMode}>\n {!this.hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabledText}\n readonly={readonly}\n ></ic-input-label>\n )}\n\n <ic-input-component-container\n size={size}\n validationStatus={currentStatus}\n multiLine={multiline}\n disabled={disabledMode}\n readonly={readonly}\n validationInline={validationInline}\n fullWidth={fullWidth}\n >\n {this.showLeftIcon && (\n <span\n class={{\n [\"readonly\"]: readonly,\n [\"has-value\"]: value.length > 0,\n }}\n slot=\"left-icon\"\n >\n <slot name=\"icon\" />\n </span>\n )}\n\n {!multiline && (\n <input\n id={inputId}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n type={this.type}\n min={min}\n max={max}\n value={value}\n class={{\n [\"no-left-pad\"]: !this.showLeftIcon && readonly,\n [\"readonly\"]: readonly,\n [\"truncate-value\"]: truncateValue,\n }}\n placeholder={placeholderText}\n required={required}\n disabled={disabledMode}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-activedescendant={this.ariaActiveDescendant}\n aria-expanded={this.ariaExpanded}\n aria-owns={this.ariaOwns}\n autocomplete={this.autocomplete}\n autocapitalize={this.autocapitalize}\n autoFocus={this.autoFocus}\n spellcheck={spellcheck}\n inputmode={inputmode}\n role={this.role}\n {...this.inheritedAttributes}\n ></input>\n )}\n {multiline && (\n <textarea\n id={inputId}\n class={{\n [\"no-resize\"]: resize === false || readonly,\n [\"no-left-pad\"]: !this.showLeftIcon && readonly,\n [\"readonly\"]: readonly,\n }}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLTextAreaElement)}\n value={value}\n rows={rows}\n required={required}\n disabled={disabledMode}\n placeholder={placeholderText}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n autocapitalize={this.autocapitalize}\n autoFocus={this.autoFocus}\n spellcheck={spellcheck}\n inputmode={inputmode}\n {...this.inheritedAttributes}\n ></textarea>\n )}\n {isSlotUsed(this.el, \"clear-button\") && (\n <slot name=\"clear-button\"></slot>\n )}\n {isSlotUsed(this.el, \"search-submit-button\") && (\n <slot name=\"search-submit-button\"></slot>\n )}\n </ic-input-component-container>\n {isSlotUsed(this.el, \"menu\") && <slot name=\"menu\"></slot>}\n {(!isEmptyString(validationStatus) ||\n !isEmptyString(validationText) ||\n maxNumChars > 0 ||\n maxValueExceeded ||\n minValueUnattained) &&\n !validationInlineInternal && (\n <ic-input-validation\n status={\n this.hasStatus(currentStatus) === false ||\n (currentStatus === IcInformationStatus.Success &&\n validationInline) ||\n validationInlineInternal\n ? \"\"\n : currentStatus\n }\n message={showStatusText ? currentValidationText : \"\"}\n ariaLiveMode={messageAriaLive}\n for={inputId}\n fullWidth={fullWidth}\n >\n {!readonly && maxNumChars > 0 && (\n <div slot=\"validation-message-adornment\">\n <ic-typography\n variant=\"caption\"\n class={{\n [\"maxlengthtext\"]: true,\n [\"error\"]: maxLengthExceeded,\n [\"disabled\"]: disabledText,\n }}\n >\n <span\n aria-live=\"polite\"\n id={`${inputId}-charcount`}\n class=\"charcount\"\n >\n {numChars}/{maxNumChars}\n </span>\n <span hidden={true} id={hiddenCharCountDescId}>\n Field can contain a maximum of {maxNumChars} characters.\n </span>\n </ic-typography>\n </div>\n )}\n </ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,h as e,H as s,g as i}from"./p-9d124fc7.js";import{C as a}from"./p-c2e091d7.js";import{d as c}from"./p-8fb4f0c0.js";import"./p-613aa265.js";const r=`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M7.99935 4.32666L13.0193 13H2.97935L7.99935 4.32666ZM7.99935 1.66666L0.666016 14.3333H15.3327L7.99935 1.66666ZM8.66602 11H7.33268V12.3333H8.66602V11ZM8.66602 6.99999H7.33268V9.66666H8.66602V6.99999Z" fill="currentColor"/>\n</svg>`;const o=":host{display:flex;flex:auto}.step{display:flex;flex:1 1 0}.step-icon{display:flex;justify-content:center}.step-title,.step-subtitle,.step-status,.next-step{white-space:pre-line}.visually-hidden{position:absolute;left:-625rem;top:auto;width:1px;height:1px;overflow:hidden}:host(.compact){-moz-column-gap:var(--ic-space-sm);column-gap:var(--ic-space-sm);--compact-step-inner-color:var(--ic-status-info);--compact-step-circular-line-width:var(--ic-space-xxs)}:host(.compact) .step{-moz-column-gap:var(--ic-space-sm);column-gap:var(--ic-space-sm)}:host(.compact) .step:not(.current){display:none;opacity:0;visibility:hidden}.compact-step-progress-indicator{margin:var(--ic-space-xs) 0 0}:host(.compact) .step-title-area{display:flex;flex-direction:column;width:14.25rem}.info-line{display:flex;-moz-column-gap:var(--ic-space-xs);column-gap:var(--ic-space-xs)}.step-status{display:flex;color:var(--ic-color-secondary-text);-moz-column-gap:var(--ic-space-xxxs);column-gap:var(--ic-space-xxxs)}.compact-step-completed .step-status{color:var(--ic-status-success)}.compact-step-disabled :is(.step-title,.step-status){color:var(--ic-color-tertiary-text)}.step-num{color:var(--ic-color-secondary-text);white-space:nowrap}:host(.compact) .step-icon{margin:var(--ic-space-xxxs)}:host(.compact) .step-icon svg{width:var(--ic-space-md);height:var(--ic-space-md)}:host(.default) .step{flex-direction:column}:host(.default.last-step){flex-grow:initial}.step-top{display:flex;width:100%;align-items:center;align-self:flex-start;height:2.5rem}:host(.default) .step-icon{border-radius:50%}.step-icon-inner{width:var(--ic-space-xl);height:var(--ic-space-xl);display:flex;justify-content:center;align-items:center;border-radius:50%}:host(.default) .current{color:var(--ic-status-info)}:host(.default) .step-title-area{margin:var(--ic-space-xs) 0;padding-right:var(--ic-space-xs);width:100%}:host(.default) .step-title,.step-subtitle{width:-moz-fit-content;width:fit-content}.step-subtitle{color:var(--ic-color-tertiary-text)}.current .step-subtitle{color:var(--ic-color-primary-text)}:host(.default) .completed{color:var(--ic-status-success)}.active .step-icon-inner{box-shadow:inset var(--ic-architectural-200) 0 0 0 0.125rem}.current .step-icon-inner{background-color:var(--ic-status-info);color:white}.disabled{color:var(--ic-architectural-200)}.disabled .step-icon-inner{border:var(--ic-space-1px) dashed var(--ic-architectural-200);width:calc(var(--ic-space-xl) - var(--ic-space-xxxs));height:calc(var(--ic-space-xl) - var(--ic-space-xxxs))}.disabled .step-title-area{color:var(--ic-color-tertiary-text)}.completed .step-icon-inner{background:var(--ic-status-success);box-shadow:inset var(--ic-status-success) 0 0 0 var(--ic-space-xxxs);border-radius:100%}:host(.default) .current .step-icon{border:var(--ic-space-xxxs) solid var(--ic-status-info);padding:var(--ic-space-xxxs);margin:0 calc(-1 * var(--ic-space-xxxs));}.step-connect{height:var(--ic-space-xxxs);background-color:var(--ic-architectural-200);margin:0 var(--ic-space-xs);border-radius:var(--ic-space-xxs);width:100%}.aligned-full-width.step-connect{min-width:6.25rem;width:100%}.disabled .step-connect{height:0;background-color:rgb(0 0 0 / 0%);border-top:0.125rem dashed var(--ic-architectural-200);border-radius:0}.completed .step-connect{background-color:var(--ic-status-success)}.step-connect-inner{width:70%;display:flex;flex:auto;height:var(--ic-space-xxxs);border-radius:var(--ic-space-xxs);background-color:var(--ic-status-info)}.step-icon-inner .check-icon{padding-top:var(--ic-space-xxs)}.step-icon-inner .check-icon svg{width:var(--ic-space-md);height:auto}.step-icon-inner .check-icon>svg>path{fill:var(--ic-color-white-text)}@media (forced-colors: active){.compact-step-disabled :is(.step-title,.step-status){color:GrayText}.step-connect:not(.disabled .step-connect){border:var(--ic-hc-border)}.active .step-icon-inner,.completed .step-icon-inner,.current .step-icon-inner{forced-color-adjust:none;box-shadow:inset canvastext 0 0 0 0.125rem;background-color:transparent;color:canvastext}:host(.default) .current .step-icon{padding:0;border:none}.disabled,.disabled .step-title-area{color:GrayText}.step-connect-inner,.completed .step-connect{background-color:canvastext}.step-icon-inner .check-icon>svg>path{fill:canvastext}}";const n=class{constructor(e){t(this,e);this.compactStepStyling=undefined;this.current=false;this.lastStep=undefined;this.lastStepNum=undefined;this.nextStepTitle=undefined;this.progress=undefined;this.stepNum=undefined;this.stepStatus=undefined;this.stepSubtitle=undefined;this.stepTitle=undefined;this.variant=undefined;this.stepType="active"}stepTypeChangeHandler(){if(this.variant==="compact"&&this.stepType==="current"){this.current=true}else{this.current=false}}render(){let t="";if(this.stepType==="completed"){t=". Completed step"}else if(this.stepType==="disabled"){t=". Non-required step"}else if(this.stepStatus==="required"){t=". Required step"}else if(this.stepStatus==="optional"){t=". Optional step"}let i;if(c(this.stepStatus)){i=this.stepStatus[0].toUpperCase()+this.stepStatus.slice(1)}let o;if(this.stepType==="disabled"||this.compactStepStyling==="disabled"){o="Not required"}else if(this.compactStepStyling==="completed"){o="Completed"}let n;if(this.stepType==="completed"||this.compactStepStyling==="completed"){n=e("span",{class:"check-icon step-icon","aria-hidden":"true",innerHTML:a})}else if(this.stepType==="disabled"||this.compactStepStyling==="disabled"){n=e("span",{class:"warning-icon step-icon","aria-hidden":"true",innerHTML:r})}const l=e("div",{class:{["step"]:true,["current"]:this.current,[`compact-step-${this.compactStepStyling}`]:!!this.compactStepStyling}},e("ic-loading-indicator",{class:{"compact-step-progress-indicator":true,"not-required":this.stepType==="disabled"||this.compactStepStyling==="disabled"},"aria-hidden":"true",size:"small","inner-label":this.stepNum,progress:this.progress}),e("div",{class:"step-title-area"},e("ic-typography",{variant:"h4",class:"step-title"},this.stepTitle),e("div",{class:"info-line"},e("ic-typography",{variant:"caption",class:"step-num"},`${this.stepNum} of ${this.lastStepNum}`,e("span",{class:"visually-hidden"}," steps")),(this.stepSubtitle||this.stepType==="completed"||this.stepType==="disabled"||this.variant==="compact"&&!!this.compactStepStyling&&this.compactStepStyling!=="active"||!!this.stepStatus)&&e("div",{class:"step-status"},n!==undefined&&n,(this.stepSubtitle||o)&&e("ic-typography",{variant:"caption"},this.stepSubtitle!==null&&c(this.stepSubtitle)?this.stepSubtitle:this.stepType==="disabled"||this.variant==="compact"&&this.compactStepStyling==="disabled"||this.stepType==="completed"||this.variant==="compact"&&this.compactStepStyling==="completed"?o:this.stepStatus&&i))),this.lastStep?e("ic-typography",{variant:"subtitle-small",class:"next-step"},"Last step"):c(this.nextStepTitle)&&e("ic-typography",{variant:"subtitle-small",class:"next-step"},"Next",e("span",{class:"visually-hidden"}," step is"),":"," ",this.nextStepTitle)));let p;if(this.stepType!=="completed"){p=e("ic-typography",{variant:"subtitle-small"},e("span",{class:"step-icon-inner","aria-hidden":"true"},this.stepNum))}else{p=e("div",{class:"step-icon-inner","aria-hidden":"true"},e("span",{class:"check-icon",innerHTML:a}))}const d=this.stepType==="current"&&e("div",{class:"step-connect-inner"});const h=!this.lastStep&&e("div",{class:{["step-connect"]:true,["aligned-full-width"]:this.el.parentElement.classList.contains("default")&&!this.el.parentElement.classList.contains("aligned-left")}},d);const u=e("div",{class:{["step"]:true,[`${this.stepType}`]:true}},e("div",{class:"step-top"},e("div",{class:"step-icon"},p),h),(this.stepTitle||this.stepSubtitle||this.stepStatus)&&e("div",{class:"step-title-area"},this.stepTitle&&e("ic-typography",{variant:"subtitle-large",class:"step-title"},this.stepTitle),this.stepTitle&&(this.stepSubtitle||this.stepStatus)&&e("ic-typography",{variant:"caption",class:"step-subtitle"},this.stepSubtitle!==null&&c(this.stepSubtitle)?this.stepSubtitle:i)));return e(s,{role:"listitem","aria-label":`Step ${this.stepNum}${t}`,"aria-current":(this.current||this.stepType==="current")&&"step",class:{["aligned-full-width"]:this.el.parentElement.classList.contains("default")&&!this.el.parentElement.classList.contains("aligned-left"),[`${this.variant}`]:true}},this.variant==="compact"?l:u)}get el(){return i(this)}static get watchers(){return{stepType:["stepTypeChangeHandler"]}}};n.style=o;export{n as ic_step};
|
2
|
-
//# sourceMappingURL=p-f69fb26b.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icStepCss","Step","stepTypeChangeHandler","this","variant","stepType","current","render","ariaLabel","stepStatus","isPropDefined","toUpperCase","slice","compactStepStyling","statusIcon","h","class","innerHTML","checkIcon","warningIcon","compactStep","size","stepNum","progress","stepTitle","lastStepNum","stepSubtitle","undefined","lastStep","nextStepTitle","icon","partialBar","finalStep","el","parentElement","classList","contains","defaultStep","Host","role"],"sources":["src/components/ic-step/ic-step.css?tag=ic-step&encapsulation=shadow","src/components/ic-step/ic-step.tsx"],"sourcesContent":["/* SHARED STYLING */\n:host {\n display: flex;\n flex: auto;\n}\n\n.step {\n display: flex;\n flex: 1 1 0;\n}\n\n.step-icon {\n display: flex;\n justify-content: center;\n}\n\n.step-title,\n.step-subtitle,\n.step-status,\n.next-step {\n white-space: pre-line;\n}\n\n.visually-hidden {\n position: absolute;\n left: -625rem;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n\n/* COMPACT STEP STYLING */\n:host(.compact) {\n column-gap: var(--ic-space-sm);\n\n --compact-step-inner-color: var(--ic-status-info);\n --compact-step-circular-line-width: var(--ic-space-xxs);\n}\n\n:host(.compact) .step {\n column-gap: var(--ic-space-sm);\n}\n\n:host(.compact) .step:not(.current) {\n display: none;\n opacity: 0;\n visibility: hidden;\n}\n\n.compact-step-progress-indicator {\n margin: var(--ic-space-xs) 0 0;\n}\n\n:host(.compact) .step-title-area {\n display: flex;\n flex-direction: column;\n width: 14.25rem;\n}\n\n.info-line {\n display: flex;\n column-gap: var(--ic-space-xs);\n}\n\n.step-status {\n display: flex;\n color: var(--ic-color-secondary-text);\n column-gap: var(--ic-space-xxxs);\n}\n\n.compact-step-completed .step-status {\n color: var(--ic-status-success);\n}\n\n.compact-step-disabled :is(.step-title, .step-status) {\n color: var(--ic-color-tertiary-text);\n}\n\n.step-num {\n color: var(--ic-color-secondary-text);\n white-space: nowrap;\n}\n\n:host(.compact) .step-icon {\n margin: var(--ic-space-xxxs);\n}\n\n:host(.compact) .step-icon svg {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n/* DEFAULT STEP STYLING */\n:host(.default) .step {\n flex-direction: column;\n}\n\n:host(.default.last-step) {\n flex-grow: initial;\n}\n\n.step-top {\n display: flex;\n width: 100%;\n align-items: center;\n align-self: flex-start;\n height: 2.5rem;\n}\n\n:host(.default) .step-icon {\n border-radius: 50%;\n}\n\n.step-icon-inner {\n width: var(--ic-space-xl);\n height: var(--ic-space-xl);\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n}\n\n:host(.default) .current {\n color: var(--ic-status-info);\n}\n\n:host(.default) .step-title-area {\n margin: var(--ic-space-xs) 0;\n padding-right: var(--ic-space-xs);\n width: 100%;\n}\n\n:host(.default) .step-title,\n.step-subtitle {\n width: fit-content;\n}\n\n.step-subtitle {\n color: var(--ic-color-tertiary-text);\n}\n\n.current .step-subtitle {\n color: var(--ic-color-primary-text);\n}\n\n:host(.default) .completed {\n color: var(--ic-status-success);\n}\n\n.active .step-icon-inner {\n box-shadow: inset var(--ic-architectural-200) 0 0 0 0.125rem;\n}\n\n.current .step-icon-inner {\n background-color: var(--ic-status-info);\n color: white;\n}\n\n.disabled {\n color: var(--ic-architectural-200);\n}\n\n.disabled .step-icon-inner {\n border: var(--ic-space-1px) dashed var(--ic-architectural-200);\n width: calc(var(--ic-space-xl) - var(--ic-space-xxxs));\n height: calc(var(--ic-space-xl) - var(--ic-space-xxxs));\n}\n\n.disabled .step-title-area {\n color: var(--ic-color-tertiary-text);\n}\n\n.completed .step-icon-inner {\n background: var(--ic-status-success);\n box-shadow: inset var(--ic-status-success) 0 0 0 var(--ic-space-xxxs);\n border-radius: 100%;\n}\n\n:host(.default) .current .step-icon {\n border: var(--ic-space-xxxs) solid var(--ic-status-info);\n padding: var(--ic-space-xxxs);\n margin: 0 calc(-1 * var(--ic-space-xxxs));\n\n /* compensating for the circle being bigger than other steps */\n}\n\n.step-connect {\n height: var(--ic-space-xxxs);\n background-color: var(--ic-architectural-200);\n margin: 0 var(--ic-space-xs);\n border-radius: var(--ic-space-xxs);\n width: 100%;\n}\n\n.aligned-full-width.step-connect {\n min-width: 6.25rem;\n width: 100%;\n}\n\n.disabled .step-connect {\n height: 0;\n background-color: rgb(0 0 0 / 0%);\n border-top: 0.125rem dashed var(--ic-architectural-200);\n border-radius: 0;\n}\n\n.completed .step-connect {\n background-color: var(--ic-status-success);\n}\n\n.step-connect-inner {\n width: 70%;\n display: flex;\n flex: auto;\n height: var(--ic-space-xxxs);\n border-radius: var(--ic-space-xxs);\n background-color: var(--ic-status-info);\n}\n\n.step-icon-inner .check-icon {\n padding-top: var(--ic-space-xxs);\n}\n\n.step-icon-inner .check-icon svg {\n width: var(--ic-space-md);\n height: auto;\n}\n\n.step-icon-inner .check-icon > svg > path {\n fill: var(--ic-color-white-text);\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n /* COMPACT STEP */\n .compact-step-disabled :is(.step-title, .step-status) {\n color: GrayText;\n }\n\n /* DEFAULT STEP */\n .step-connect:not(.disabled .step-connect) {\n border: var(--ic-hc-border);\n }\n\n .active .step-icon-inner,\n .completed .step-icon-inner,\n .current .step-icon-inner {\n forced-color-adjust: none;\n box-shadow: inset canvastext 0 0 0 0.125rem;\n background-color: transparent;\n color: canvastext;\n }\n\n :host(.default) .current .step-icon {\n padding: 0;\n border: none;\n }\n\n .disabled,\n .disabled .step-title-area {\n color: GrayText;\n }\n\n .step-connect-inner,\n .completed .step-connect {\n background-color: canvastext;\n }\n\n .step-icon-inner .check-icon > svg > path {\n fill: canvastext;\n }\n}\n","import { Component, Host, h, Prop, Element, Watch } from \"@stencil/core\";\nimport checkIcon from \"../../assets/check-icon.svg\";\nimport warningIcon from \"../../assets/warning-icon-outline.svg\";\nimport { IcStepVariants, IcStepStatuses, IcStepTypes } from \"./ic-step.types\";\nimport { isPropDefined } from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-step\",\n styleUrl: \"ic-step.css\",\n shadow: true,\n})\nexport class Step {\n @Element() el: HTMLIcStepElement;\n\n /**\n * @internal If a compact stepper is being used, this sets the styling of the step.\n */\n @Prop() compactStepStyling?: IcStepTypes;\n\n /**\n * @internal If `true`, and a compact stepper is being used, the current step will be the only step in view.\n */\n @Prop({ mutable: true }) current?: boolean = false;\n\n /**\n * @internal If `true`, the step will be marked as being the last one in the series. This is managed by ic-stepper.\n */\n @Prop() lastStep!: boolean;\n\n /**\n * @internal The step number of the final step. This is managed by ic-stepper.\n */\n @Prop() lastStepNum?: number;\n\n /**\n * @internal The name of the next step. This is managed by ic-stepper.\n */\n @Prop() nextStepTitle?: string;\n\n /**\n * @internal The progress of the next step, calculated by dividing the current step number by the total number of steps. This is managed by ic-stepper.\n */\n @Prop() progress?: number;\n\n /**\n * @internal The step number, managed by ic-stepper.\n */\n @Prop() stepNum?: number;\n\n /**\n * The status of the step. Use this prop to display a status message on the step if it is required or optional.\n */\n @Prop() stepStatus?: IcStepStatuses;\n\n /**\n * Additional information about the step. Use this prop to override the default step status messaging displayed when selecting a step type or step status.\n */\n @Prop() stepSubtitle?: string;\n\n /**\n * The title of the step within the stepper.\n */\n @Prop() stepTitle?: string;\n\n /**\n * @internal The variant of the step. This is managed by ic-stepper.\n */\n @Prop() variant!: IcStepVariants;\n\n /**\n * The state of the step within the stepper.\n */\n @Prop() stepType?: IcStepTypes = \"active\";\n\n @Watch(\"stepType\")\n stepTypeChangeHandler(): void {\n if (this.variant === \"compact\" && this.stepType === \"current\") {\n this.current = true;\n } else {\n this.current = false;\n }\n }\n\n render() {\n // ARIA LABEL\n let ariaLabel = \"\";\n\n if (this.stepType === \"completed\") {\n ariaLabel = \". Completed step\";\n } else if (this.stepType === \"disabled\") {\n ariaLabel = \". Non-required step\";\n } else if (this.stepStatus === \"required\") {\n ariaLabel = \". Required step\";\n } else if (this.stepStatus === \"optional\") {\n ariaLabel = \". Optional step\";\n }\n\n // STEP STATUS\n let stepStatus;\n if (isPropDefined(this.stepStatus)) {\n stepStatus = this.stepStatus[0].toUpperCase() + this.stepStatus.slice(1);\n }\n\n // STEP TYPE\n let stepType;\n if (\n this.stepType === \"disabled\" ||\n this.compactStepStyling === \"disabled\"\n ) {\n stepType = \"Not required\";\n } else if (this.compactStepStyling === \"completed\") {\n stepType = \"Completed\";\n }\n\n // STATUS ICON FOR COMPACT STEP\n let statusIcon;\n if (\n this.stepType === \"completed\" ||\n this.compactStepStyling === \"completed\"\n ) {\n statusIcon = (\n <span\n class=\"check-icon step-icon\"\n aria-hidden=\"true\"\n innerHTML={checkIcon}\n ></span>\n );\n } else if (\n this.stepType === \"disabled\" ||\n this.compactStepStyling === \"disabled\"\n ) {\n statusIcon = (\n <span\n class=\"warning-icon step-icon\"\n aria-hidden=\"true\"\n innerHTML={warningIcon}\n ></span>\n );\n }\n\n // COMPACT STEP COMPONENT\n const compactStep = (\n <div\n class={{\n [\"step\"]: true,\n [\"current\"]: this.current,\n [`compact-step-${this.compactStepStyling}`]:\n !!this.compactStepStyling,\n }}\n >\n <ic-loading-indicator\n class={{\n \"compact-step-progress-indicator\": true,\n \"not-required\":\n this.stepType === \"disabled\" ||\n this.compactStepStyling === \"disabled\",\n }}\n aria-hidden=\"true\"\n size=\"small\"\n inner-label={this.stepNum}\n progress={this.progress}\n ></ic-loading-indicator>\n <div class=\"step-title-area\">\n <ic-typography variant=\"h4\" class=\"step-title\">\n {this.stepTitle}\n </ic-typography>\n <div class=\"info-line\">\n <ic-typography variant=\"caption\" class=\"step-num\">\n {`${this.stepNum} of ${this.lastStepNum}`}\n <span class=\"visually-hidden\"> steps</span>\n </ic-typography>\n {(this.stepSubtitle ||\n this.stepType === \"completed\" ||\n this.stepType === \"disabled\" ||\n (this.variant === \"compact\" &&\n !!this.compactStepStyling &&\n this.compactStepStyling !== \"active\") ||\n !!this.stepStatus) && (\n <div class=\"step-status\">\n {statusIcon !== undefined && statusIcon}\n {(this.stepSubtitle || stepType) && (\n <ic-typography variant=\"caption\">\n {this.stepSubtitle !== null &&\n isPropDefined(this.stepSubtitle)\n ? this.stepSubtitle\n : this.stepType === \"disabled\" ||\n (this.variant === \"compact\" &&\n this.compactStepStyling === \"disabled\") ||\n this.stepType === \"completed\" ||\n (this.variant === \"compact\" &&\n this.compactStepStyling === \"completed\")\n ? stepType\n : this.stepStatus && stepStatus}\n </ic-typography>\n )}\n </div>\n )}\n </div>\n {this.lastStep ? (\n <ic-typography variant=\"subtitle-small\" class=\"next-step\">\n Last step\n </ic-typography>\n ) : (\n isPropDefined(this.nextStepTitle) && (\n <ic-typography variant=\"subtitle-small\" class=\"next-step\">\n Next<span class=\"visually-hidden\"> step is</span>:{\" \"}\n {this.nextStepTitle}\n </ic-typography>\n )\n )}\n </div>\n </div>\n );\n\n // ICON FOR DEFAULT STEP\n let icon;\n if (this.stepType !== \"completed\") {\n icon = (\n <ic-typography variant=\"subtitle-small\">\n <span class=\"step-icon-inner\" aria-hidden=\"true\">\n {this.stepNum}\n </span>\n </ic-typography>\n );\n } else {\n icon = (\n <div class=\"step-icon-inner\" aria-hidden=\"true\">\n <span class=\"check-icon\" innerHTML={checkIcon}></span>\n </div>\n );\n }\n\n // STEP CONNECT FOR DEFAULT STEP\n const partialBar = this.stepType === \"current\" && (\n <div class=\"step-connect-inner\"></div>\n );\n\n const finalStep = !this.lastStep && (\n <div\n class={{\n [\"step-connect\"]: true,\n [\"aligned-full-width\"]:\n this.el.parentElement.classList.contains(\"default\") &&\n !this.el.parentElement.classList.contains(\"aligned-left\"),\n }}\n >\n {partialBar}\n </div>\n );\n\n // DEFAULT STEP COMPONENT\n const defaultStep = (\n <div\n class={{\n [\"step\"]: true,\n [`${this.stepType}`]: true,\n }}\n >\n <div class=\"step-top\">\n <div class=\"step-icon\">{icon}</div>\n {finalStep}\n </div>\n {(this.stepTitle || this.stepSubtitle || this.stepStatus) && (\n <div class=\"step-title-area\">\n {this.stepTitle && (\n <ic-typography variant=\"subtitle-large\" class=\"step-title\">\n {this.stepTitle}\n </ic-typography>\n )}\n {this.stepTitle && (this.stepSubtitle || this.stepStatus) && (\n <ic-typography variant=\"caption\" class=\"step-subtitle\">\n {this.stepSubtitle !== null && isPropDefined(this.stepSubtitle)\n ? this.stepSubtitle\n : stepStatus}\n </ic-typography>\n )}\n </div>\n )}\n </div>\n );\n\n return (\n <Host\n role=\"listitem\"\n aria-label={`Step ${this.stepNum}${ariaLabel}`}\n aria-current={(this.current || this.stepType === \"current\") && \"step\"}\n class={{\n [\"aligned-full-width\"]:\n this.el.parentElement.classList.contains(\"default\") &&\n !this.el.parentElement.classList.contains(\"aligned-left\"),\n [`${this.variant}`]: true,\n }}\n >\n {this.variant === \"compact\" ? compactStep : defaultStep}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,c as i,h as e,H as s,g as a}from"./p-9d124fc7.js";import{c as o}from"./p-f074ef5b.js";import{d as n,f as r,i as l}from"./p-8fb4f0c0.js";import"./p-613aa265.js";const h='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;min-height:100% !important;background:rgb(0 0 0 / 60%);z-index:var(--ic-z-index-dialog);opacity:0;transition:opacity var(--ic-easing-transition-slow)}:host(.fade-in){opacity:1;transition:opacity var(--ic-easing-transition-slow)}:host(.hidden){display:none}.dialog{background-color:var(--ic-architectural-white);border:var(--ic-border-default);border-radius:var(--ic-border-radius);padding:var(--ic-space-xs) var(--ic-space-md) var(--ic-space-md)\n var(--ic-space-md);transform:translateY(-3rem);transition:transform 1000s;display:flex;flex-direction:column;box-sizing:border-box}:host(.fade-in) .dialog{transform:translateY(0);transition:transform var(--ic-easing-transition-slow)}.small{width:50%;max-width:25rem;min-height:11rem;max-height:70vh}.medium{width:70vw;max-width:44rem;min-height:12.5rem;max-height:70vh}.large{width:90vw;max-width:62.5rem;min-height:12.5rem;max-height:90vh}.heading-area{display:flex;margin-bottom:var(--ic-space-xs)}.close-icon{margin-left:auto}.close-icon-svg{display:flex;align-items:center}.content-area{-ms-overflow-style:none;scrollbar-width:none;padding:0 var(--ic-space-xs);margin:0 calc(-1 * var(--ic-space-xs))}:host([data-overflow="false"]) .content-area{overflow-y:visible}:host([data-overflow="true"]) .content-area{overflow-y:scroll}:host([data-overflow="false"]) .dialog{overflow:visible}.content-area::-webkit-scrollbar{display:none}#dialog-content{margin-bottom:var(--ic-space-sm)}.status-alert{margin-bottom:var(--ic-space-xs)}.dialog-controls{margin-top:auto;padding-top:var(--ic-space-xs);display:flex;justify-content:flex-end;gap:var(--ic-space-md)}.dialog-control-button{width:-moz-fit-content;width:fit-content}@media (min-width: 800px){:host([size="large"]) .content-area{width:75%}}@media (max-width: 576px){.dialog{width:100vw;height:100vh;transform:translateY(-5rem);max-width:none;max-height:none;box-sizing:border-box}}@media (max-width: 364px){.triple-button{flex-direction:column;gap:var(--ic-space-xs)}.dialog-control-button{width:unset}}';const c=class{constructor(e){t(this,e);this.icDialogCancelled=i(this,"icDialogCancelled",7);this.icDialogClosed=i(this,"icDialogClosed",7);this.icDialogConfirmed=i(this,"icDialogConfirmed",7);this.icDialogOpened=i(this,"icDialogOpened",7);this.DATA_OVERFLOW="data-overflow";this.DATA_GETS_FOCUS="data-gets-focus";this.DATA_GETS_FOCUS_SELECTOR="[data-gets-focus]";this.DIALOG_CONTROLS="dialog-controls";this.dialogHeight=0;this.focusedElementIndex=0;this.IC_TEXT_FIELD="IC-TEXT-FIELD";this.IC_ACCORDION="IC-ACCORDION";this.resizeObserver=null;this.setContentOverflow=()=>{if(this.dialogEl.clientHeight<this.dialogEl.scrollHeight){this.el.setAttribute(this.DATA_OVERFLOW,"true")}else{this.el.setAttribute(this.DATA_OVERFLOW,"false")}};this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{clearTimeout(this.resizeTimeout);this.resizeTimeout=window.setTimeout(this.resizeObserverCallback,80)}));this.resizeObserver.observe(this.dialogEl)};this.resizeObserverCallback=()=>{if(this.dialogEl.clientHeight!==this.dialogHeight){this.el.setAttribute(this.DATA_OVERFLOW,"false");this.setContentOverflow();this.dialogHeight=this.dialogEl.clientHeight}};this.setInitialFocus=()=>{this.sourceElement=document.activeElement;let t;if(this.el.querySelector(this.DATA_GETS_FOCUS_SELECTOR)!==null){t=this.el.querySelector(this.DATA_GETS_FOCUS_SELECTOR)}else{t=this.el.shadowRoot.querySelector(this.DATA_GETS_FOCUS_SELECTOR)}if(t.tagName===this.IC_TEXT_FIELD){t.setFocus()}else if(t.tagName===this.IC_ACCORDION){t.setFocus()}else{t.focus()}};this.getFocusedElementIndex=()=>{for(let t=0;t<this.interactiveElementList.length;t++){if(this.interactiveElementList[t]===(this.el.shadowRoot.activeElement||document.activeElement)){this.focusedElementIndex=t}}};this.setAlertVariant=()=>{if(n(this.status)&&this.status!==null){const t=this.el.shadowRoot.querySelector("ic-alert");t.setAttribute("variant",this.status)}};this.closeIconClick=()=>{this.open=false};this.getInteractiveElements=()=>{this.interactiveElementList=Array.from(this.el.shadowRoot.querySelectorAll("ic-button"));const t=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, ic-radio-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`));if(t.length>0){if(t[0].slot!==this.DIALOG_CONTROLS){t[0].setAttribute(this.DATA_GETS_FOCUS,"")}else if(!this.destructive){t[t.length-1].setAttribute(this.DATA_GETS_FOCUS,"")}}for(let i=0;i<t.length;i++){this.interactiveElementList.splice(1+i,0,t[i])}};this.getNextFocusEl=t=>this.interactiveElementList[t];this.focusNextInteractiveElement=t=>{this.getFocusedElementIndex();this.setFocusIndexBasedOnShiftKey(t);this.loopNextFocusIndexIfLastElement();let i=this.getNextFocusEl(this.focusedElementIndex);const e=getComputedStyle(i).visibility==="hidden";if(i.tagName===this.IC_TEXT_FIELD){i.setFocus()}else{if(e){this.setFocusIndexBasedOnShiftKey(t);this.loopNextFocusIndexIfLastElement();i=this.getNextFocusEl(this.focusedElementIndex)}if(i.tagName===this.IC_ACCORDION){i.setFocus()}else{i.focus()}}};this.setButtonOnClick=()=>{var t,i,e;if(this.buttons){this.buttonOnclick0=new Function((t=this.buttonProps[0])===null||t===void 0?void 0:t.onclick);this.buttonOnclick1=new Function((i=this.buttonProps[1])===null||i===void 0?void 0:i.onclick);this.buttonOnclick2=new Function((e=this.buttonProps[2])===null||e===void 0?void 0:e.onclick)}};this.getButtonOnclick=t=>{if(t===0){return this.buttonOnclick0()}else if(t===1){return this.buttonOnclick1()}else{return this.buttonOnclick2()}};this.getButtonVariant=t=>{const i=this.destructive?"destructive":"primary";if(this.buttonProps.length===1){return i}else if(this.buttonProps.length===2){if(t===0){return"tertiary"}else{return i}}else{if(t===2){return i}else{return"secondary"}}};this.dialogRendered=false;this.fadeIn=false;this.alertHeading=undefined;this.alertMessage=undefined;this.buttons=true;this.closeOnBackdropClick=true;this.destructive=false;this.dismissLabel="Dismiss";this.hideCloseButton=false;this.heading=undefined;this.label=undefined;this.open=undefined;this.size="small";this.status=undefined;this.buttonProps=[{label:"Cancel",onclick:"this.cancelDialog();"},{label:"Confirm",onclick:"this.confirmDialog();"}]}watchOpenHandler(){if(this.open){this.dialogRendered=true;this.dialogEl.showModal();setTimeout((()=>{this.fadeIn=true}),10);setTimeout((()=>{this.setInitialFocus();r(this.runResizeObserver)}),75);setTimeout((()=>{this.getFocusedElementIndex();this.icDialogOpened.emit()}),80)}else{this.fadeIn=false;if(this.resizeObserver!==null){this.resizeObserver.disconnect()}setTimeout((()=>{var t;this.dialogRendered=false;this.dialogEl.close();(t=this.sourceElement)===null||t===void 0?void 0:t.focus();this.el.removeAttribute(this.DATA_OVERFLOW);this.dialogHeight=0;this.icDialogClosed.emit()}),80)}}watchPropHandler(){this.setButtonOnClick()}componentWillLoad(){this.setButtonOnClick()}componentDidLoad(){this.getInteractiveElements();this.setAlertVariant()}handleKeyboard(t){if(this.dialogRendered){switch(t.key){case"Tab":t.preventDefault();this.focusNextInteractiveElement(t.shiftKey);break;case"Escape":if(!t.repeat){this.open=false}t.stopImmediatePropagation();break}}}handleClick(t){const i=this.el.shadowRoot.querySelector("dialog");if(this.closeOnBackdropClick&&t.composedPath().indexOf(i)<=0){const i=this.dialogEl.getBoundingClientRect();const e=i.top<=t.clientY&&t.clientY<=i.top+i.height&&i.left<=t.clientX&&t.clientX<=i.left+i.width;if(!e){this.open=false}}}async showDialog(){this.dialogRendered=true;this.dialogEl.showModal();setTimeout((()=>{this.fadeIn=true}),10);setTimeout((()=>{this.setInitialFocus();r(this.runResizeObserver)}),75);setTimeout((()=>{this.getFocusedElementIndex();this.icDialogOpened.emit()}),80)}async hideDialog(){this.fadeIn=false;if(this.resizeObserver!==null){this.resizeObserver.disconnect()}setTimeout((()=>{var t;this.dialogRendered=false;this.dialogEl.close();(t=this.sourceElement)===null||t===void 0?void 0:t.focus();this.el.removeAttribute(this.DATA_OVERFLOW);this.dialogHeight=0;this.icDialogClosed.emit()}),80)}async cancelDialog(){this.icDialogCancelled.emit();this.open=false}async confirmDialog(){this.icDialogConfirmed.emit()}loopNextFocusIndexIfLastElement(){if(this.focusedElementIndex>this.interactiveElementList.length-1)this.focusedElementIndex=0;else if(this.focusedElementIndex<0){this.focusedElementIndex=this.interactiveElementList.length-1}}setFocusIndexBasedOnShiftKey(t){if(t){this.focusedElementIndex-=1}else{this.focusedElementIndex+=1}}render(){const{alertHeading:t,alertMessage:i,buttons:a,buttonProps:n,size:r,heading:h,label:c,status:d,destructive:u,dismissLabel:m,hideCloseButton:f}=this;return e(s,{class:{["hidden"]:!this.dialogRendered,["fade-in"]:this.fadeIn}},e("dialog",{class:{["dialog"]:true,[`${r}`]:true},"aria-labelledby":"dialog-label dialog-heading","aria-describedby":"dialog-alert dialog-content",ref:t=>this.dialogEl=t},e("div",{class:"heading-area"},e("div",{class:"heading-content"},e("div",{class:"label"},e("slot",{name:"label"},e("ic-typography",{variant:"label",id:"dialog-label"},c))),e("div",{class:"heading"},e("slot",{name:"heading"},e("ic-typography",{variant:"h4",id:"dialog-heading"},h)))),!f&&e("ic-button",{class:"close-icon",variant:"icon","aria-label":m,onClick:this.closeIconClick,"data-gets-focus":u||!a?"":null},e("span",{class:"close-icon-svg",innerHTML:o}))),e("div",{class:"content-area"},l(this.el,"alert")?e("slot",{name:"alert"}):d&&e("ic-alert",{variant:d,heading:t,message:i,"title-above":true,class:"status-alert",id:"dialog-alert"}),e("div",{id:"dialog-content"},e("slot",null))),(a||l(this.el,this.DIALOG_CONTROLS))&&e("div",{class:{[this.DIALOG_CONTROLS]:true,["triple-button"]:n.length===3}},e("slot",{name:this.DIALOG_CONTROLS},!l(this.el,this.DIALOG_CONTROLS)&&n.map(((t,i)=>{if(i>2){return}else{return e("ic-button",{variant:this.getButtonVariant(i),onClick:()=>this.getButtonOnclick(i),class:"dialog-control-button","full-width":n.length===3,"data-gets-focus":this.getButtonVariant(i)==="primary"?"":null},t.label)}}))))))}get el(){return a(this)}static get watchers(){return{open:["watchOpenHandler"],buttonProps:["watchPropHandler"]}}};c.style=h;export{c as ic_dialog};
|
2
|
-
//# sourceMappingURL=p-fe6e0c0e.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icDialogCss","Dialog","this","DATA_OVERFLOW","DATA_GETS_FOCUS","DATA_GETS_FOCUS_SELECTOR","DIALOG_CONTROLS","dialogHeight","focusedElementIndex","IC_TEXT_FIELD","IC_ACCORDION","resizeObserver","setContentOverflow","dialogEl","clientHeight","scrollHeight","el","setAttribute","runResizeObserver","ResizeObserver","clearTimeout","resizeTimeout","window","setTimeout","resizeObserverCallback","observe","setInitialFocus","sourceElement","document","activeElement","focusedElement","querySelector","shadowRoot","tagName","setFocus","focus","getFocusedElementIndex","i","interactiveElementList","length","setAlertVariant","isPropDefined","status","alert","closeIconClick","open","getInteractiveElements","Array","from","querySelectorAll","slottedInteractiveElements","slot","destructive","splice","getNextFocusEl","focusNextInteractiveElement","shiftKey","setFocusIndexBasedOnShiftKey","loopNextFocusIndexIfLastElement","nextFocusEl","isHidden","getComputedStyle","visibility","setButtonOnClick","buttons","buttonOnclick0","Function","_a","buttonProps","onclick","buttonOnclick1","_b","buttonOnclick2","_c","getButtonOnclick","index","getButtonVariant","mainVariant","undefined","label","watchOpenHandler","dialogRendered","showModal","fadeIn","checkResizeObserver","icDialogOpened","emit","disconnect","close","removeAttribute","icDialogClosed","watchPropHandler","componentWillLoad","componentDidLoad","handleKeyboard","ev","key","preventDefault","repeat","stopImmediatePropagation","handleClick","dialogElement","closeOnBackdropClick","composedPath","indexOf","rect","getBoundingClientRect","isInDialog","top","clientY","height","left","clientX","width","showDialog","hideDialog","cancelDialog","icDialogCancelled","confirmDialog","icDialogConfirmed","render","alertHeading","alertMessage","size","heading","dismissLabel","hideCloseButton","h","Host","class","ref","name","variant","id","onClick","innerHTML","closeIcon","isSlotUsed","message","map","props"],"sources":["src/components/ic-dialog/ic-dialog.css?tag=ic-dialog&encapsulation=shadow","src/components/ic-dialog/ic-dialog.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\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 transition: opacity var(--ic-easing-transition-slow);\n}\n\n:host(.fade-in) {\n opacity: 1;\n transition: opacity var(--ic-easing-transition-slow);\n}\n\n:host(.hidden) {\n display: none;\n}\n\n.dialog {\n background-color: var(--ic-architectural-white);\n border: var(--ic-border-default);\n border-radius: var(--ic-border-radius);\n padding: var(--ic-space-xs) var(--ic-space-md) var(--ic-space-md)\n var(--ic-space-md);\n transform: translateY(-3rem);\n transition: transform 1000s;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n}\n\n:host(.fade-in) .dialog {\n transform: translateY(0);\n transition: transform var(--ic-easing-transition-slow);\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}\n\n.close-icon {\n margin-left: auto;\n}\n\n.close-icon-svg {\n display: flex;\n align-items: center;\n}\n\n.content-area {\n -ms-overflow-style: none;\n scrollbar-width: none;\n padding: 0 var(--ic-space-xs);\n margin: 0 calc(-1 * var(--ic-space-xs));\n}\n\n:host([data-overflow=\"false\"]) .content-area {\n overflow-y: visible;\n}\n\n:host([data-overflow=\"true\"]) .content-area {\n overflow-y: scroll;\n}\n\n:host([data-overflow=\"false\"]) .dialog {\n overflow: visible;\n}\n\n.content-area::-webkit-scrollbar {\n display: none;\n}\n\n#dialog-content {\n margin-bottom: var(--ic-space-sm);\n}\n\n.status-alert {\n margin-bottom: var(--ic-space-xs);\n}\n\n.dialog-controls {\n margin-top: auto;\n padding-top: var(--ic-space-xs);\n display: flex;\n justify-content: flex-end;\n gap: var(--ic-space-md);\n}\n\n.dialog-control-button {\n width: fit-content;\n}\n\n@media (min-width: 800px) {\n :host([size=\"large\"]) .content-area {\n width: 75%;\n }\n}\n\n@media (max-width: 576px) {\n .dialog {\n width: 100vw;\n height: 100vh;\n transform: translateY(-5rem);\n max-width: none;\n max-height: none;\n box-sizing: border-box;\n }\n}\n\n@media (max-width: 364px) {\n .triple-button {\n flex-direction: column;\n gap: var(--ic-space-xs);\n }\n\n .dialog-control-button {\n width: unset;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n State,\n Method,\n Listen,\n Watch,\n h,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport {\n isSlotUsed,\n checkResizeObserver,\n isPropDefined,\n} from \"../../utils/helpers\";\n\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 */\n@Component({\n tag: \"ic-dialog\",\n styleUrl: \"ic-dialog.css\",\n shadow: true,\n})\nexport class Dialog {\n private DATA_OVERFLOW: string = \"data-overflow\";\n private DATA_GETS_FOCUS: string = \"data-gets-focus\";\n private DATA_GETS_FOCUS_SELECTOR: string = \"[data-gets-focus]\";\n private DIALOG_CONTROLS: string = \"dialog-controls\";\n private dialogEl: HTMLDialogElement;\n private dialogHeight: number = 0;\n private focusedElementIndex = 0;\n private IC_TEXT_FIELD: string = \"IC-TEXT-FIELD\";\n private IC_ACCORDION: string = \"IC-ACCORDION\";\n private interactiveElementList: HTMLElement[];\n private resizeObserver: ResizeObserver = null;\n private resizeTimeout: number;\n private sourceElement: HTMLElement;\n\n /* eslint-disable */\n\n private buttonOnclick0: Function;\n private buttonOnclick1: Function;\n private buttonOnclick2: Function;\n\n /* eslint-enable */\n\n @Element() el: HTMLIcDialogElement;\n\n @State() dialogRendered: boolean = false;\n @State() fadeIn: boolean = false;\n\n /**\n * @deprecated This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a heading instead.\n */\n @Prop() alertHeading?: string;\n\n /**\n * @deprecated This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a message instead.\n */\n @Prop() alertMessage?: string;\n\n /**\n * If set to `false`, dialog controls will not be displayed overriding buttonProps or slotted dialog controls.\n */\n @Prop() buttons?: boolean = true;\n\n /**\n * If set to `true`, the dialog will not close when the backdrop is clicked.\n */\n @Prop() closeOnBackdropClick?: boolean = true;\n\n /**\n * If default buttons are displayed, 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 @Prop() destructive?: boolean = false;\n\n /**\n * Sets the dismiss label tooltip and aria label.\n */\n @Prop() dismissLabel?: string = \"Dismiss\";\n\n /**\n * If `true`, the close button will not be displayed.\n */\n @Prop() hideCloseButton?: boolean = false;\n\n /**\n * Sets the heading for the dialog.\n */\n @Prop() heading!: string;\n\n /**\n * Sets the optional label for the dialog which appears above the heading.\n */\n @Prop() label?: string;\n\n /**\n * If `true`, the dialog will be displayed.\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = undefined;\n\n @Watch(\"open\")\n watchOpenHandler(): void {\n if (this.open) {\n this.dialogRendered = true;\n this.dialogEl.showModal();\n setTimeout(() => {\n this.fadeIn = true;\n }, 10);\n setTimeout(() => {\n this.setInitialFocus();\n checkResizeObserver(this.runResizeObserver);\n }, 75);\n setTimeout(() => {\n this.getFocusedElementIndex();\n this.icDialogOpened.emit();\n }, 80);\n } else {\n this.fadeIn = false;\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n setTimeout(() => {\n this.dialogRendered = false;\n this.dialogEl.close();\n this.sourceElement?.focus();\n this.el.removeAttribute(this.DATA_OVERFLOW);\n this.dialogHeight = 0;\n this.icDialogClosed.emit();\n }, 80);\n }\n }\n\n /**\n * Sets the maximum and minimum height and width for the dialog.\n */\n @Prop() size?: \"small\" | \"medium\" | \"large\" = \"small\";\n\n /**\n * @deprecated This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a variant instead.\n */\n @Prop() status?: \"neutral\" | \"info\" | \"warning\" | \"error\" | \"success\";\n\n /**\n * Sets the label and onclick functions for default buttons.\n */\n @Prop() buttonProps?: { label: string; onclick: string }[] = [\n {\n label: \"Cancel\",\n onclick: \"this.cancelDialog();\",\n },\n { label: \"Confirm\", onclick: \"this.confirmDialog();\" },\n ];\n\n @Watch(\"buttonProps\")\n watchPropHandler(): void {\n this.setButtonOnClick();\n }\n\n /**\n * Cancelation event emitted when default 'Cancel' button clicked or 'cancelDialog' method is called.\n */\n @Event() icDialogCancelled: EventEmitter<void>;\n\n /**\n * Emitted when dialog has closed.\n */\n @Event() icDialogClosed: EventEmitter<void>;\n\n /**\n * Confirmation event emitted when default 'Confirm' primary button clicked or 'confirmDialog' method is called.\n */\n @Event() icDialogConfirmed: EventEmitter<void>;\n\n /**\n * Emitted when dialog has opened.\n */\n @Event() icDialogOpened: EventEmitter<void>;\n\n componentWillLoad(): void {\n this.setButtonOnClick();\n }\n\n componentDidLoad(): void {\n this.getInteractiveElements();\n this.setAlertVariant();\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyboard(ev: KeyboardEvent): void {\n if (this.dialogRendered) {\n switch (ev.key) {\n case \"Tab\":\n ev.preventDefault();\n this.focusNextInteractiveElement(ev.shiftKey);\n break;\n case \"Escape\":\n if (!ev.repeat) {\n this.open = false;\n }\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n\n @Listen(\"click\", {})\n handleClick(ev: MouseEvent): void {\n const dialogElement = this.el.shadowRoot.querySelector(\"dialog\");\n if (\n this.closeOnBackdropClick &&\n ev.composedPath().indexOf(dialogElement) <= 0\n ) {\n const rect = this.dialogEl.getBoundingClientRect();\n const isInDialog =\n rect.top <= ev.clientY &&\n ev.clientY <= rect.top + rect.height &&\n rect.left <= ev.clientX &&\n ev.clientX <= rect.left + rect.width;\n if (!isInDialog) {\n this.open = false;\n }\n }\n }\n\n /**\n * @deprecated This method should not be used anymore. Use open prop to set dialog visibility.\n */\n @Method()\n async showDialog(): Promise<void> {\n this.dialogRendered = true;\n this.dialogEl.showModal();\n setTimeout(() => {\n this.fadeIn = true;\n }, 10);\n setTimeout(() => {\n this.setInitialFocus();\n checkResizeObserver(this.runResizeObserver);\n }, 75);\n setTimeout(() => {\n this.getFocusedElementIndex();\n this.icDialogOpened.emit();\n }, 80);\n }\n\n /**\n * @deprecated This method should not be used anymore. Use open prop to set dialog visibility.\n */\n @Method()\n async hideDialog(): Promise<void> {\n this.fadeIn = false;\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n setTimeout(() => {\n this.dialogRendered = false;\n this.dialogEl.close();\n this.sourceElement?.focus();\n this.el.removeAttribute(this.DATA_OVERFLOW);\n this.dialogHeight = 0;\n this.icDialogClosed.emit();\n }, 80);\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 @Method()\n async cancelDialog(): Promise<void> {\n this.icDialogCancelled.emit();\n this.open = false;\n }\n\n /**\n * Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\n */\n @Method()\n async confirmDialog(): Promise<void> {\n this.icDialogConfirmed.emit();\n }\n\n private setContentOverflow = (): void => {\n if (this.dialogEl.clientHeight < this.dialogEl.scrollHeight) {\n this.el.setAttribute(this.DATA_OVERFLOW, \"true\");\n } else {\n this.el.setAttribute(this.DATA_OVERFLOW, \"false\");\n }\n };\n\n private runResizeObserver = () => {\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 private resizeObserverCallback = () => {\n if (this.dialogEl.clientHeight !== this.dialogHeight) {\n this.el.setAttribute(this.DATA_OVERFLOW, \"false\");\n this.setContentOverflow();\n this.dialogHeight = this.dialogEl.clientHeight;\n }\n };\n\n private setInitialFocus = () => {\n this.sourceElement = document.activeElement as HTMLElement;\n\n let focusedElement;\n\n if (this.el.querySelector(this.DATA_GETS_FOCUS_SELECTOR) !== null) {\n focusedElement = this.el.querySelector(\n this.DATA_GETS_FOCUS_SELECTOR\n ) as HTMLElement;\n } else {\n focusedElement = this.el.shadowRoot.querySelector(\n this.DATA_GETS_FOCUS_SELECTOR\n ) as HTMLElement;\n }\n if (focusedElement.tagName === this.IC_TEXT_FIELD) {\n (focusedElement as HTMLIcTextFieldElement).setFocus();\n } else if (focusedElement.tagName === this.IC_ACCORDION) {\n (focusedElement as HTMLIcAccordionElement).setFocus();\n } else {\n focusedElement.focus();\n }\n };\n\n private getFocusedElementIndex = () => {\n for (let i = 0; i < this.interactiveElementList.length; i++) {\n if (\n (this.interactiveElementList[i] as HTMLElement) ===\n (this.el.shadowRoot.activeElement || document.activeElement)\n ) {\n this.focusedElementIndex = i;\n }\n }\n };\n\n private setAlertVariant = () => {\n if (isPropDefined(this.status) && this.status !== null) {\n const alert = this.el.shadowRoot.querySelector(\"ic-alert\");\n alert.setAttribute(\"variant\", this.status);\n }\n };\n\n private closeIconClick = () => {\n this.open = false;\n };\n\n private getInteractiveElements = () => {\n this.interactiveElementList = Array.from(\n this.el.shadowRoot.querySelectorAll(\"ic-button\")\n );\n const slottedInteractiveElements = Array.from(\n this.el.querySelectorAll(\n `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, ic-radio-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`\n )\n );\n if (slottedInteractiveElements.length > 0) {\n if (slottedInteractiveElements[0].slot !== this.DIALOG_CONTROLS) {\n slottedInteractiveElements[0].setAttribute(this.DATA_GETS_FOCUS, \"\");\n } else if (!this.destructive) {\n slottedInteractiveElements[\n slottedInteractiveElements.length - 1\n ].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n }\n for (let i = 0; i < slottedInteractiveElements.length; i++) {\n this.interactiveElementList.splice(\n 1 + i,\n 0,\n slottedInteractiveElements[i] as HTMLElement\n );\n }\n };\n\n private getNextFocusEl = (focusedElementIndex: number) =>\n this.interactiveElementList[focusedElementIndex];\n\n private focusNextInteractiveElement = (shiftKey: boolean) => {\n this.getFocusedElementIndex();\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n\n let nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n\n const isHidden = getComputedStyle(nextFocusEl).visibility === \"hidden\";\n\n if (nextFocusEl.tagName === this.IC_TEXT_FIELD) {\n (nextFocusEl as HTMLIcTextFieldElement).setFocus();\n } else {\n if (isHidden) {\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n\n nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n }\n if (nextFocusEl.tagName === this.IC_ACCORDION) {\n (nextFocusEl as HTMLIcAccordionElement).setFocus();\n } else {\n (nextFocusEl as HTMLElement).focus();\n }\n }\n };\n\n private setButtonOnClick = () => {\n if (this.buttons) {\n this.buttonOnclick0 = new Function(this.buttonProps[0]?.onclick);\n this.buttonOnclick1 = new Function(this.buttonProps[1]?.onclick);\n this.buttonOnclick2 = new Function(this.buttonProps[2]?.onclick);\n }\n };\n\n private getButtonOnclick = (index: number) => {\n if (index === 0) {\n return this.buttonOnclick0();\n } else if (index === 1) {\n return this.buttonOnclick1();\n } else {\n return this.buttonOnclick2();\n }\n };\n\n private getButtonVariant = (index: number) => {\n const mainVariant = this.destructive ? \"destructive\" : \"primary\";\n if (this.buttonProps.length === 1) {\n return mainVariant;\n } else if (this.buttonProps.length === 2) {\n if (index === 0) {\n return \"tertiary\";\n } else {\n return mainVariant;\n }\n } else {\n if (index === 2) {\n return mainVariant;\n } else {\n return \"secondary\";\n }\n }\n };\n\n private 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\n private setFocusIndexBasedOnShiftKey(shiftKey: boolean) {\n if (shiftKey) {\n this.focusedElementIndex -= 1;\n } else {\n this.focusedElementIndex += 1;\n }\n }\n\n render() {\n const {\n alertHeading,\n alertMessage,\n buttons,\n buttonProps,\n size,\n heading,\n label,\n status,\n destructive,\n dismissLabel,\n hideCloseButton,\n } = this;\n\n return (\n <Host\n class={{ [\"hidden\"]: !this.dialogRendered, [\"fade-in\"]: this.fadeIn }}\n >\n <dialog\n class={{ [\"dialog\"]: true, [`${size}`]: true }}\n aria-labelledby=\"dialog-label dialog-heading\"\n aria-describedby=\"dialog-alert dialog-content\"\n ref={(el) => (this.dialogEl = el)}\n >\n <div class=\"heading-area\">\n <div class=\"heading-content\">\n <div class=\"label\">\n <slot name=\"label\">\n <ic-typography variant=\"label\" id=\"dialog-label\">\n {label}\n </ic-typography>\n </slot>\n </div>\n <div class=\"heading\">\n <slot name=\"heading\">\n <ic-typography variant=\"h4\" id=\"dialog-heading\">\n {heading}\n </ic-typography>\n </slot>\n </div>\n </div>\n {!hideCloseButton && (\n <ic-button\n class=\"close-icon\"\n variant=\"icon\"\n aria-label={dismissLabel}\n onClick={this.closeIconClick}\n data-gets-focus={destructive || !buttons ? \"\" : null}\n >\n <span class=\"close-icon-svg\" innerHTML={closeIcon} />\n </ic-button>\n )}\n </div>\n <div class=\"content-area\">\n {isSlotUsed(this.el, \"alert\") ? (\n <slot name=\"alert\"></slot>\n ) : (\n status && (\n <ic-alert\n variant={status}\n heading={alertHeading}\n message={alertMessage}\n title-above\n class=\"status-alert\"\n id=\"dialog-alert\"\n ></ic-alert>\n )\n )}\n <div id=\"dialog-content\">\n <slot></slot>\n </div>\n </div>\n {(buttons || isSlotUsed(this.el, this.DIALOG_CONTROLS)) && (\n <div\n class={{\n [this.DIALOG_CONTROLS]: true,\n [\"triple-button\"]: buttonProps.length === 3,\n }}\n >\n <slot name={this.DIALOG_CONTROLS}>\n {!isSlotUsed(this.el, this.DIALOG_CONTROLS) &&\n buttonProps.map((props, index) => {\n if (index > 2) {\n return;\n } else {\n return (\n <ic-button\n variant={this.getButtonVariant(index)}\n onClick={() => this.getButtonOnclick(index)}\n class=\"dialog-control-button\"\n full-width={buttonProps.length === 3}\n data-gets-focus={\n this.getButtonVariant(index) === \"primary\"\n ? \"\"\n : null\n }\n >\n {props.label}\n </ic-button>\n );\n }\n })}\n </slot>\n </div>\n )}\n </dialog>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|