@ukic/canary-web-components 2.0.0-canary.14 → 2.0.0-canary.16
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/{helpers-6d736902.js → helpers-4f5f087e.js} +59 -99
- package/dist/cjs/helpers-4f5f087e.js.map +1 -0
- package/dist/cjs/{helpers-f75cf7cf.js → helpers-fc9441f8.js} +34 -1
- package/dist/cjs/helpers-fc9441f8.js.map +1 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js +3 -1
- package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +15 -9
- package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js +55 -77
- package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +3 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +14 -14
- 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-group.cjs.entry.js +23 -16
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +33 -31
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +21 -31
- package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +57 -0
- package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-data-table.cjs.entry.js +163 -36
- package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-date-input.cjs.entry.js +1 -1
- package/dist/cjs/ic-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +4 -2
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +1 -1
- package/dist/cjs/ic-empty-state_2.cjs.entry.js +345 -0
- package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +3 -2
- package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -3
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_4.cjs.entry.js +2 -2
- package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js +4 -10
- package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-with-multi.cjs.entry.js +176 -35
- package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu.cjs.entry.js +4 -4
- package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
- package/dist/cjs/ic-pagination_4.cjs.entry.js +54 -29
- package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +13 -18
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +12 -16
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +37 -37
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
- package/dist/cjs/ic-select-with-multi.cjs.entry.js +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
- package/dist/cjs/ic-skeleton.cjs.entry.js +16 -35
- package/dist/cjs/ic-skeleton.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-stepper.cjs.entry.js +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +2 -2
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +13 -15
- package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +1 -1
- package/dist/cjs/ic-toggle-button.cjs.entry.js +2 -2
- package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +15 -24
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +2 -2
- package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
- package/dist/cjs/index-4cf27b16.js +8 -8
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/ic-data-table/ic-data-table.css +76 -1
- package/dist/collection/components/ic-data-table/ic-data-table.js +372 -53
- package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
- package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
- package/dist/collection/components/ic-data-table/story-data.js +262 -4
- package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
- package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +324 -3
- package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
- package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.css +91 -0
- package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +160 -0
- package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js.map +1 -0
- package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js +11 -0
- package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js.map +1 -0
- package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js +70 -0
- package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js.map +1 -0
- package/dist/collection/components/ic-menu-with-multi/ic-menu.js +176 -35
- package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +1 -1
- package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js +226 -49
- package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js.map +1 -1
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +180 -119
- package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
- package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js +56 -11
- package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js.map +1 -1
- package/dist/collection/utils/helpers.js +4 -1
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/components/helpers.js +57 -97
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/helpers2.js +31 -1
- package/dist/components/helpers2.js.map +1 -1
- package/dist/components/ic-accordion-group.js +2 -1
- package/dist/components/ic-accordion-group.js.map +1 -1
- package/dist/components/ic-back-to-top.js +22 -9
- package/dist/components/ic-back-to-top.js.map +1 -1
- package/dist/components/ic-badge.js +59 -77
- package/dist/components/ic-badge.js.map +1 -1
- package/dist/components/ic-breadcrumb-group.js +2 -0
- package/dist/components/ic-breadcrumb-group.js.map +1 -1
- package/dist/components/ic-button2.js +11 -11
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +26 -16
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox.js +33 -31
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-chip.js +21 -31
- package/dist/components/ic-chip.js.map +1 -1
- package/dist/components/ic-data-table-title-bar.d.ts +11 -0
- package/dist/components/ic-data-table-title-bar.js +136 -0
- package/dist/components/ic-data-table-title-bar.js.map +1 -0
- package/dist/components/ic-data-table.js +189 -43
- package/dist/components/ic-data-table.js.map +1 -1
- package/dist/components/ic-date-input2.js +1 -1
- package/dist/components/ic-date-picker.js +1 -1
- package/dist/components/ic-dialog.js +4 -2
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-divider2.js +1 -1
- package/dist/components/ic-empty-state.js +1 -57
- package/dist/components/ic-empty-state.js.map +1 -1
- package/dist/{esm/ic-empty-state.entry.js → components/ic-empty-state2.js} +38 -11
- package/dist/components/ic-empty-state2.js.map +1 -0
- package/dist/components/ic-footer-link-group.js +2 -2
- package/dist/components/ic-footer-link-group.js.map +1 -1
- package/dist/components/ic-footer-link.js +1 -1
- package/dist/components/ic-footer.js +2 -2
- package/dist/components/ic-footer.js.map +1 -1
- package/dist/components/ic-hero.js +3 -2
- package/dist/components/ic-hero.js.map +1 -1
- package/dist/components/ic-horizontal-scroll2.js +1 -2
- package/dist/components/ic-horizontal-scroll2.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +2 -2
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-link2.js +1 -1
- package/dist/components/ic-link2.js.map +1 -1
- package/dist/components/ic-loading-indicator2.js +1 -1
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu-item2.js +4 -10
- package/dist/components/ic-menu-item2.js.map +1 -1
- package/dist/components/ic-menu2.js +3 -3
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-menu3.js +177 -36
- package/dist/components/ic-menu3.js.map +1 -1
- package/dist/components/ic-navigation-button.js +1 -1
- package/dist/components/ic-navigation-group.js +1 -1
- package/dist/components/ic-navigation-item.js +2 -2
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-pagination-bar2.js +160 -103
- package/dist/components/ic-pagination-bar2.js.map +1 -1
- package/dist/components/ic-pagination-item2.js +22 -12
- package/dist/components/ic-pagination-item2.js.map +1 -1
- package/dist/components/ic-pagination2.js +23 -8
- package/dist/components/ic-pagination2.js.map +1 -1
- package/dist/components/ic-popover-menu.js +12 -17
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +11 -15
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js +37 -37
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +1 -1
- package/dist/components/ic-select-with-multi.js +1 -1
- package/dist/components/ic-select2.js +10 -6
- package/dist/components/ic-select2.js.map +1 -1
- package/dist/components/ic-side-navigation.js +1 -1
- package/dist/components/ic-skeleton.js +17 -40
- package/dist/components/ic-skeleton.js.map +1 -1
- package/dist/components/ic-status-tag.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.js +1 -1
- package/dist/components/ic-tab.js.map +1 -1
- package/dist/components/ic-text-field2.js +8 -8
- package/dist/components/ic-text-field2.js.map +1 -1
- package/dist/components/ic-theme.js +13 -15
- package/dist/components/ic-theme.js.map +1 -1
- package/dist/components/ic-toggle-button.js +1 -1
- package/dist/components/ic-toggle-button.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 +15 -24
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/components/ic-typography2.js +1 -1
- package/dist/components/ic-typography2.js.map +1 -1
- package/dist/core/core.css +2 -2
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/p-0e51d58e.entry.js +2 -0
- package/dist/core/p-0e51d58e.entry.js.map +1 -0
- package/dist/core/{p-4fd58768.entry.js → p-11b243c9.entry.js} +2 -2
- package/dist/core/{p-4bd13376.entry.js → p-185e91f0.entry.js} +2 -2
- package/dist/core/p-185e91f0.entry.js.map +1 -0
- package/dist/core/p-1a45f961.entry.js +2 -0
- package/dist/core/{p-e8151d13.entry.js.map → p-1a45f961.entry.js.map} +1 -1
- package/dist/core/p-1b4f852c.js +2 -0
- package/dist/core/p-1b4f852c.js.map +1 -0
- package/dist/core/{p-4ad3012a.entry.js → p-1fb48c84.entry.js} +2 -2
- package/dist/core/{p-6dce8e88.entry.js → p-1fff20ce.entry.js} +2 -2
- package/dist/core/p-1fff20ce.entry.js.map +1 -0
- package/dist/core/{p-1a91e842.entry.js → p-201ec29e.entry.js} +2 -2
- package/dist/core/{p-1a91e842.entry.js.map → p-201ec29e.entry.js.map} +1 -1
- package/dist/core/p-20d4ded5.js +2 -0
- package/dist/core/p-20d4ded5.js.map +1 -0
- package/dist/core/p-20f244ad.entry.js +2 -0
- package/dist/core/p-20f244ad.entry.js.map +1 -0
- package/dist/core/p-2536b95b.entry.js +2 -0
- package/dist/core/p-2536b95b.entry.js.map +1 -0
- package/dist/core/{p-730f058b.entry.js → p-25bbf4be.entry.js} +2 -2
- package/dist/core/p-25bbf4be.entry.js.map +1 -0
- package/dist/core/p-303dc008.entry.js +2 -0
- package/dist/core/p-303dc008.entry.js.map +1 -0
- package/dist/core/p-3484b15b.entry.js +2 -0
- package/dist/core/p-3484b15b.entry.js.map +1 -0
- package/dist/core/{p-aabab75f.entry.js → p-3fa986f8.entry.js} +2 -2
- package/dist/core/{p-f8f36680.entry.js → p-450f72b2.entry.js} +2 -2
- package/dist/core/{p-8b820365.entry.js → p-48c39d2a.entry.js} +2 -2
- package/dist/core/{p-a2dc10d8.entry.js → p-4aac2373.entry.js} +2 -2
- package/dist/core/{p-db3a35fb.entry.js → p-5201cd2b.entry.js} +2 -2
- package/dist/core/{p-db3a35fb.entry.js.map → p-5201cd2b.entry.js.map} +1 -1
- package/dist/core/p-53aeca18.entry.js +2 -0
- package/dist/core/p-53aeca18.entry.js.map +1 -0
- package/dist/core/{p-6eb58b0a.entry.js → p-5447f2fd.entry.js} +2 -2
- package/dist/core/{p-e1963c78.entry.js → p-5a5a52d3.entry.js} +2 -2
- package/dist/core/p-5a5a52d3.entry.js.map +1 -0
- package/dist/core/{p-946625a3.entry.js → p-60494f69.entry.js} +2 -2
- package/dist/core/p-60494f69.entry.js.map +1 -0
- package/dist/core/p-646b886c.entry.js +2 -0
- package/dist/core/p-646b886c.entry.js.map +1 -0
- package/dist/core/p-6996b750.entry.js +2 -0
- package/dist/core/p-6996b750.entry.js.map +1 -0
- package/dist/core/{p-849f43c3.entry.js → p-7114ae3b.entry.js} +2 -2
- package/dist/core/{p-494c3cbe.entry.js → p-71ddb6d9.entry.js} +2 -2
- package/dist/core/{p-baf81f30.entry.js → p-787ffd96.entry.js} +2 -2
- package/dist/core/p-787ffd96.entry.js.map +1 -0
- package/dist/core/p-7c569c2d.entry.js +2 -0
- package/dist/core/p-7c569c2d.entry.js.map +1 -0
- package/dist/core/{p-c621d6b0.entry.js → p-7f6de032.entry.js} +2 -2
- package/dist/core/p-7f6de032.entry.js.map +1 -0
- package/dist/core/{p-c14a897d.entry.js → p-7fe37432.entry.js} +2 -2
- package/dist/core/{p-9567c117.entry.js → p-86e679ab.entry.js} +2 -2
- package/dist/core/{p-a8c15117.entry.js → p-87075008.entry.js} +2 -2
- package/dist/core/p-895472da.entry.js +2 -0
- package/dist/core/p-895472da.entry.js.map +1 -0
- package/dist/core/{p-00bd7919.entry.js → p-8a67e960.entry.js} +2 -2
- package/dist/core/{p-9d8883d7.entry.js → p-8ccb23bd.entry.js} +2 -2
- package/dist/core/{p-9d8883d7.entry.js.map → p-8ccb23bd.entry.js.map} +1 -1
- package/dist/core/{p-d2d63a61.entry.js → p-9c22b14f.entry.js} +2 -2
- package/dist/core/{p-d2d63a61.entry.js.map → p-9c22b14f.entry.js.map} +1 -1
- package/dist/core/{p-19c1e271.entry.js → p-a1df23b4.entry.js} +2 -2
- package/dist/core/p-a1df23b4.entry.js.map +1 -0
- package/dist/core/{p-3dcc61cc.entry.js → p-a821c21f.entry.js} +2 -2
- package/dist/core/{p-3dcc61cc.entry.js.map → p-a821c21f.entry.js.map} +1 -1
- package/dist/core/{p-cca482e2.entry.js → p-b3b834b3.entry.js} +2 -2
- package/dist/core/p-b3b834b3.entry.js.map +1 -0
- package/dist/core/p-b4949e9a.entry.js +2 -0
- package/dist/core/p-b4949e9a.entry.js.map +1 -0
- package/dist/core/p-b7c644d1.entry.js +2 -0
- package/dist/core/p-b7c644d1.entry.js.map +1 -0
- package/dist/core/{p-0af27517.entry.js → p-b94ef8de.entry.js} +2 -2
- package/dist/core/p-ba1c1804.entry.js +2 -0
- package/dist/core/p-ba1c1804.entry.js.map +1 -0
- package/dist/core/{p-7fda2f94.entry.js → p-bbb1ce94.entry.js} +2 -2
- package/dist/core/p-bda7d350.entry.js +2 -0
- package/dist/core/p-bda7d350.entry.js.map +1 -0
- package/dist/core/{p-8b1f9648.entry.js → p-c5147498.entry.js} +2 -2
- package/dist/core/{p-ff6f1e3a.entry.js → p-d3a13342.entry.js} +2 -2
- package/dist/core/{p-843bdaae.entry.js → p-d4fed5f6.entry.js} +2 -2
- package/dist/core/p-d4fed5f6.entry.js.map +1 -0
- package/dist/core/p-d6ad82d8.entry.js +2 -0
- package/dist/core/p-d6ad82d8.entry.js.map +1 -0
- package/dist/core/{p-a05755b1.entry.js → p-d79bfead.entry.js} +2 -2
- package/dist/core/{p-a05755b1.entry.js.map → p-d79bfead.entry.js.map} +1 -1
- package/dist/core/p-db5c4969.entry.js +2 -0
- package/dist/core/{p-06c27edb.entry.js.map → p-db5c4969.entry.js.map} +1 -1
- package/dist/core/{p-957de939.entry.js → p-dd787b5b.entry.js} +2 -2
- package/dist/core/p-e42b66d5.entry.js +2 -0
- package/dist/core/p-e42b66d5.entry.js.map +1 -0
- package/dist/core/{p-9528b29e.entry.js → p-e4e89a4d.entry.js} +2 -2
- package/dist/core/{p-e16f73ba.entry.js → p-f704629e.entry.js} +2 -2
- package/dist/core/p-f704629e.entry.js.map +1 -0
- package/dist/core/p-fae5b518.entry.js +2 -0
- package/dist/core/p-fae5b518.entry.js.map +1 -0
- package/dist/core/{p-00c5639e.entry.js → p-ff697d68.entry.js} +2 -2
- package/dist/core/p-ff697d68.entry.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-f328a7b6.js → helpers-1cd71f8a.js} +32 -2
- package/dist/esm/helpers-1cd71f8a.js.map +1 -0
- package/dist/esm/{helpers-c34e4042.js → helpers-84d21612.js} +58 -98
- package/dist/esm/helpers-84d21612.js.map +1 -0
- package/dist/esm/ic-accordion-group.entry.js +3 -1
- package/dist/esm/ic-accordion-group.entry.js.map +1 -1
- package/dist/esm/ic-accordion.entry.js +1 -1
- package/dist/esm/ic-alert.entry.js +1 -1
- package/dist/esm/ic-back-to-top.entry.js +15 -9
- package/dist/esm/ic-back-to-top.entry.js.map +1 -1
- package/dist/esm/ic-badge.entry.js +55 -77
- package/dist/esm/ic-badge.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb-group.entry.js +3 -1
- package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb.entry.js +1 -1
- package/dist/esm/ic-button_3.entry.js +14 -14
- 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-group.entry.js +23 -16
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +33 -31
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +21 -31
- package/dist/esm/ic-chip.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js +1 -1
- package/dist/esm/ic-data-table-title-bar.entry.js +53 -0
- package/dist/esm/ic-data-table-title-bar.entry.js.map +1 -0
- package/dist/esm/ic-data-table.entry.js +164 -37
- package/dist/esm/ic-data-table.entry.js.map +1 -1
- package/dist/esm/ic-date-input.entry.js +1 -1
- package/dist/esm/ic-date-picker.entry.js +1 -1
- package/dist/esm/ic-dialog.entry.js +4 -2
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +1 -1
- package/dist/esm/ic-empty-state_2.entry.js +340 -0
- package/dist/esm/ic-empty-state_2.entry.js.map +1 -0
- package/dist/esm/ic-footer-link-group.entry.js +2 -2
- package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
- package/dist/esm/ic-footer-link.entry.js +1 -1
- package/dist/esm/ic-footer.entry.js +2 -2
- package/dist/esm/ic-footer.entry.js.map +1 -1
- package/dist/esm/ic-hero.entry.js +3 -2
- package/dist/esm/ic-hero.entry.js.map +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js +2 -3
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_4.entry.js +2 -2
- package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
- package/dist/esm/ic-link.entry.js +2 -2
- package/dist/esm/ic-link.entry.js.map +1 -1
- package/dist/esm/ic-menu-group.entry.js +1 -1
- package/dist/esm/ic-menu-item.entry.js +4 -10
- package/dist/esm/ic-menu-item.entry.js.map +1 -1
- package/dist/esm/ic-menu-with-multi.entry.js +176 -35
- package/dist/esm/ic-menu-with-multi.entry.js.map +1 -1
- package/dist/esm/ic-menu.entry.js +4 -4
- package/dist/esm/ic-menu.entry.js.map +1 -1
- package/dist/esm/ic-navigation-button.entry.js +1 -1
- package/dist/esm/ic-navigation-group.entry.js +1 -1
- package/dist/esm/ic-navigation-item.entry.js +2 -2
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +1 -1
- package/dist/esm/ic-page-header.entry.js +1 -1
- package/dist/esm/ic-pagination_4.entry.js +54 -29
- package/dist/esm/ic-pagination_4.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +13 -18
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +12 -16
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +37 -37
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +1 -1
- package/dist/esm/ic-select-with-multi.entry.js +1 -1
- package/dist/esm/ic-side-navigation.entry.js +1 -1
- package/dist/esm/ic-skeleton.entry.js +16 -35
- package/dist/esm/ic-skeleton.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-stepper.entry.js +1 -1
- package/dist/esm/ic-switch.entry.js +2 -2
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +1 -1
- package/dist/esm/ic-tab-panel.entry.js +1 -1
- package/dist/esm/ic-tab.entry.js +2 -2
- package/dist/esm/ic-tab.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +13 -15
- package/dist/esm/ic-theme.entry.js.map +1 -1
- package/dist/esm/ic-toast.entry.js +1 -1
- package/dist/esm/ic-toggle-button.entry.js +2 -2
- package/dist/esm/ic-toggle-button.entry.js.map +1 -1
- package/dist/esm/ic-top-navigation.entry.js +15 -24
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/ic-typography.entry.js +2 -2
- package/dist/esm/ic-typography.entry.js.map +1 -1
- package/dist/esm/index-93509377.js +8 -8
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-data-table/ic-data-table.d.ts +79 -13
- package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +9 -0
- package/dist/types/components/ic-data-table/story-data.d.ts +59 -0
- package/dist/types/components/ic-data-table-title-bar/ic-data-table-title-bar.d.ts +36 -0
- package/dist/types/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.d.ts +1 -0
- package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +10 -0
- package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +33 -13
- package/dist/types/components.d.ts +211 -46
- package/dist/types/utils/helpers.d.ts +1 -0
- package/dist/types/utils/types.d.ts +21 -5
- package/hydrate/index.js +1414 -1058
- package/package.json +3 -3
- package/dist/cjs/helpers-6d736902.js.map +0 -1
- package/dist/cjs/helpers-f75cf7cf.js.map +0 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +0 -38
- package/dist/cjs/ic-empty-state.cjs.entry.js.map +0 -1
- package/dist/cjs/ic-pagination-bar.cjs.entry.js +0 -269
- package/dist/cjs/ic-pagination-bar.cjs.entry.js.map +0 -1
- package/dist/collection/components/ic-pagination/ic-pagination.types.js +0 -2
- package/dist/collection/components/ic-pagination/ic-pagination.types.js.map +0 -1
- package/dist/core/p-00c5639e.entry.js.map +0 -1
- package/dist/core/p-06c27edb.entry.js +0 -2
- package/dist/core/p-162f3e36.entry.js +0 -2
- package/dist/core/p-162f3e36.entry.js.map +0 -1
- package/dist/core/p-19c1e271.entry.js.map +0 -1
- package/dist/core/p-1c3bd46d.entry.js +0 -2
- package/dist/core/p-1c3bd46d.entry.js.map +0 -1
- package/dist/core/p-2c9d6334.entry.js +0 -2
- package/dist/core/p-2c9d6334.entry.js.map +0 -1
- package/dist/core/p-3e9a8977.entry.js +0 -2
- package/dist/core/p-3e9a8977.entry.js.map +0 -1
- package/dist/core/p-41b682dc.entry.js +0 -2
- package/dist/core/p-41b682dc.entry.js.map +0 -1
- package/dist/core/p-4bd13376.entry.js.map +0 -1
- package/dist/core/p-6dce8e88.entry.js.map +0 -1
- package/dist/core/p-730f058b.entry.js.map +0 -1
- package/dist/core/p-7f53d1be.entry.js +0 -2
- package/dist/core/p-7f53d1be.entry.js.map +0 -1
- package/dist/core/p-843bdaae.entry.js.map +0 -1
- package/dist/core/p-946625a3.entry.js.map +0 -1
- package/dist/core/p-99bf38e3.entry.js +0 -2
- package/dist/core/p-99bf38e3.entry.js.map +0 -1
- package/dist/core/p-9e3178e8.entry.js +0 -2
- package/dist/core/p-9e3178e8.entry.js.map +0 -1
- package/dist/core/p-a1556d97.entry.js +0 -2
- package/dist/core/p-a1556d97.entry.js.map +0 -1
- package/dist/core/p-baf81f30.entry.js.map +0 -1
- package/dist/core/p-c621d6b0.entry.js.map +0 -1
- package/dist/core/p-c7590421.entry.js +0 -2
- package/dist/core/p-c7590421.entry.js.map +0 -1
- package/dist/core/p-c953edb9.entry.js +0 -2
- package/dist/core/p-c953edb9.entry.js.map +0 -1
- package/dist/core/p-cca482e2.entry.js.map +0 -1
- package/dist/core/p-cd799087.js +0 -2
- package/dist/core/p-cd799087.js.map +0 -1
- package/dist/core/p-d32d331b.entry.js +0 -2
- package/dist/core/p-d32d331b.entry.js.map +0 -1
- package/dist/core/p-dc5e1f8f.entry.js +0 -2
- package/dist/core/p-dc5e1f8f.entry.js.map +0 -1
- package/dist/core/p-e16f73ba.entry.js.map +0 -1
- package/dist/core/p-e189f1d0.entry.js +0 -2
- package/dist/core/p-e189f1d0.entry.js.map +0 -1
- package/dist/core/p-e1963c78.entry.js.map +0 -1
- package/dist/core/p-e8151d13.entry.js +0 -2
- package/dist/core/p-ee765ad5.js +0 -2
- package/dist/core/p-ee765ad5.js.map +0 -1
- package/dist/core/p-f2147136.entry.js +0 -2
- package/dist/core/p-f2147136.entry.js.map +0 -1
- package/dist/core/p-fca46bd9.entry.js +0 -2
- package/dist/core/p-fca46bd9.entry.js.map +0 -1
- package/dist/core/p-ff3a01f3.entry.js +0 -2
- package/dist/core/p-ff3a01f3.entry.js.map +0 -1
- package/dist/esm/helpers-c34e4042.js.map +0 -1
- package/dist/esm/helpers-f328a7b6.js.map +0 -1
- package/dist/esm/ic-empty-state.entry.js.map +0 -1
- package/dist/esm/ic-pagination-bar.entry.js +0 -265
- package/dist/esm/ic-pagination-bar.entry.js.map +0 -1
- package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +0 -6
- /package/dist/core/{p-4fd58768.entry.js.map → p-11b243c9.entry.js.map} +0 -0
- /package/dist/core/{p-4ad3012a.entry.js.map → p-1fb48c84.entry.js.map} +0 -0
- /package/dist/core/{p-aabab75f.entry.js.map → p-3fa986f8.entry.js.map} +0 -0
- /package/dist/core/{p-f8f36680.entry.js.map → p-450f72b2.entry.js.map} +0 -0
- /package/dist/core/{p-8b820365.entry.js.map → p-48c39d2a.entry.js.map} +0 -0
- /package/dist/core/{p-a2dc10d8.entry.js.map → p-4aac2373.entry.js.map} +0 -0
- /package/dist/core/{p-6eb58b0a.entry.js.map → p-5447f2fd.entry.js.map} +0 -0
- /package/dist/core/{p-849f43c3.entry.js.map → p-7114ae3b.entry.js.map} +0 -0
- /package/dist/core/{p-494c3cbe.entry.js.map → p-71ddb6d9.entry.js.map} +0 -0
- /package/dist/core/{p-c14a897d.entry.js.map → p-7fe37432.entry.js.map} +0 -0
- /package/dist/core/{p-9567c117.entry.js.map → p-86e679ab.entry.js.map} +0 -0
- /package/dist/core/{p-a8c15117.entry.js.map → p-87075008.entry.js.map} +0 -0
- /package/dist/core/{p-00bd7919.entry.js.map → p-8a67e960.entry.js.map} +0 -0
- /package/dist/core/{p-0af27517.entry.js.map → p-b94ef8de.entry.js.map} +0 -0
- /package/dist/core/{p-7fda2f94.entry.js.map → p-bbb1ce94.entry.js.map} +0 -0
- /package/dist/core/{p-8b1f9648.entry.js.map → p-c5147498.entry.js.map} +0 -0
- /package/dist/core/{p-ff6f1e3a.entry.js.map → p-d3a13342.entry.js.map} +0 -0
- /package/dist/core/{p-957de939.entry.js.map → p-dd787b5b.entry.js.map} +0 -0
- /package/dist/core/{p-9528b29e.entry.js.map → p-e4e89a4d.entry.js.map} +0 -0
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icTypographyCss","Typography","constructor","hostRef","this","focusBtnFromKeyboard","lastMarkerTop","lastWidth","resizeObserver","truncatedHeight","toggleExpanded","expanded","checkMaxLines","height","numLines","Math","floor","maxLines","el","setAttribute","clientHeight","truncated","checkMarkerPosition","elTop","markerTop","getElementTop","getClientRects","top","runResizeObserver","ResizeObserver","clearTimeout","resizeInterval","window","setTimeout","resizeObserverCallback","observe","truncWrapperEl","clientWidth","marker","truncButtonFocus","truncButtonFocussed","truncButtonBlur","truncButtonFocusFromMouse","applyVerticalMargins","bold","italic","undefined","strikethrough","underline","variant","watchExpandedHandler","disconnectedCallback","disconnect","componentDidLoad","_a","_b","getRootNode","host","tagName","document","createElement","style","visibility","appendChild","checkResizeObserver","render","h","Host","class","ref","focus","onFocus","onBlur","onMouseDown","onClick"],"sources":["../web-components/dist/collection/components/ic-typography/ic-typography.css?tag=ic-typography&encapsulation=shadow","../web-components/dist/collection/components/ic-typography/ic-typography.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n:host {\n display: block;\n position: relative;\n}\n\n:host(.ic-typography-vertical-margins-h1) {\n margin: 0 0 var(--ic-space-xl);\n}\n\n:host(.ic-typography-vertical-margins-h2) {\n margin: var(--ic-space-xxl) 0 var(--ic-space-lg);\n}\n\n:host(.ic-typography-vertical-margins-h3) {\n margin: var(--ic-space-xl) 0 var(--ic-space-md);\n}\n\n:host(.ic-typography-vertical-margins-h4) {\n margin: var(--ic-space-lg) 0 var(--ic-space-md);\n}\n\n:host(.ic-typography-vertical-margins-subtitle-large),\n:host(.ic-typography-vertical-margins-subtitle-small),\n:host(.ic-typography-vertical-margins-body),\n:host(.ic-typography-vertical-margins-code-large),\n:host(.ic-typography-vertical-margins-code-small),\n:host(.ic-typography-vertical-margins-code-extra-small) {\n margin: 0 0 var(--ic-space-md);\n}\n\n:host(.ic-typography-vertical-margins-caption),\n:host(.ic-typography-vertical-margins-caption-uppercase) {\n margin: 0 0 var(--ic-space-xs);\n}\n\n:host(.ic-typography-vertical-margins-h2:first-child),\n:host(.ic-typography-vertical-margins-h3:first-child),\n:host(.ic-typography-vertical-margins-h4:first-child) {\n margin-top: 0;\n}\n\n:host(.ic-typography-h1) {\n font: var(--ic-font-h1) !important;\n}\n\n:host(.ic-typography-h2) {\n font: var(--ic-font-h2);\n letter-spacing: var(--ic-font-letter-spacing-0pt0025);\n}\n\n:host(.ic-typography-h3) {\n font: var(--ic-font-h3);\n}\n\n:host(.ic-typography-h4) {\n font: var(--ic-font-h4);\n letter-spacing: var(--ic-font-letter-spacing-0pt0015);\n}\n\n:host(.ic-typography-subtitle-large) {\n font: var(--ic-font-subtitle-large);\n letter-spacing: var(--ic-font-letter-spacing-0pt0015);\n}\n\n:host(.ic-typography-subtitle-small) {\n font: var(--ic-font-subtitle-small);\n letter-spacing: var(--ic-font-letter-spacing-0pt0015);\n}\n\n:host(.ic-typography-body) {\n font: var(--ic-font-body);\n letter-spacing: var(--ic-font-letter-spacing-0pt005);\n}\n\n:host(.ic-typography-caption) {\n font: var(--ic-font-caption);\n letter-spacing: var(--ic-font-letter-spacing-0pt0025);\n}\n\n:host(.ic-typography-caption-uppercase) {\n font: var(--ic-font-caption);\n letter-spacing: var(--ic-font-letter-spacing-0pt0025);\n text-transform: uppercase;\n}\n\n:host(.ic-typography-label) {\n font: var(--ic-font-label);\n letter-spacing: var(--ic-font-letter-spacing-0pt025);\n}\n\n:host(.ic-typography-label-uppercase) {\n font: var(--ic-font-label);\n letter-spacing: var(--ic-font-letter-spacing-0pt025);\n text-transform: uppercase;\n}\n\n:host(.ic-typography-code-large) {\n font: var(--ic-font-code-large);\n letter-spacing: var(--ic-font-letter-spacing-0pt025);\n}\n\n:host(.ic-typography-code-small) {\n font: var(--ic-font-code-small);\n letter-spacing: var(--ic-font-letter-spacing-0pt005);\n}\n\n:host(.ic-typography-code-extra-small) {\n font: var(--ic-font-code-extra-small);\n letter-spacing: var(--ic-font-letter-spacing-0pt025);\n}\n\n:host(.ic-typography-badge) {\n font: var(--ic-font-badge);\n letter-spacing: var(--ic-font-letter-spacing-0pt0025);\n}\n\n:host(.ic-typography-badge-small) {\n font: var(--ic-font-badge-small);\n letter-spacing: var(--ic-font-letter-spacing-0pt0025);\n}\n\n:host(.ic-typography-no-wrap) {\n white-space: nowrap;\n}\n\n:host ::slotted(h1),\n:host ::slotted(h2),\n:host ::slotted(h3),\n:host ::slotted(h4),\n:host ::slotted(h5),\n:host ::slotted(h6),\n:host ::slotted(p),\n:host ::slotted(label) {\n font: inherit;\n letter-spacing: inherit;\n}\n\n.trunc-wrapper {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n line-clamp: var(--truncation-max-lines, initial);\n -webkit-line-clamp: var(--truncation-max-lines, initial);\n overflow: hidden;\n}\n\n.trunc-btn {\n border: none;\n background: none;\n padding: 0;\n color: var(--ic-color-primary-text);\n text-decoration: underline;\n font-weight: var(--ic-font-weight-bold);\n transition: var(--ic-easing-transition-fast);\n}\n\n.trunc-btn:hover,\n.trunc-btn.focus {\n outline: none;\n border-bottom: var(--ic-space-xxs) solid !important;\n margin-bottom: calc(-1 * var(--ic-space-xxs)) !important;\n text-decoration: none;\n cursor: pointer;\n}\n\n:host(.strikethrough) {\n text-decoration: line-through;\n}\n\n:host(.underline) {\n text-decoration: underline;\n}\n\n:host(.underline.strikethrough) {\n text-decoration: line-through underline;\n}\n\n:host(.italic) {\n font-style: italic !important;\n}\n\n:host(.bold) {\n font-weight: var(--ic-font-weight-bold);\n}\n\n@supports (text-decoration-thickness: 25%) {\n .trunc-btn:hover,\n .trunc-btn.focus {\n text-decoration-line: underline;\n text-decoration-thickness: 25%;\n text-underline-offset: 25%;\n border-bottom: 0 !important;\n margin-bottom: 0 !important;\n }\n}\n","import { h, Host } from \"@stencil/core\";\nimport { checkResizeObserver } from \"../../utils/helpers\";\nexport class Typography {\n constructor() {\n this.focusBtnFromKeyboard = true;\n this.lastMarkerTop = 0;\n this.lastWidth = 0;\n this.resizeObserver = null;\n this.truncatedHeight = 0;\n this.toggleExpanded = () => {\n this.expanded = !this.expanded;\n };\n this.checkMaxLines = (height) => {\n //24 is the height of a single line\n const numLines = Math.floor(height / 24);\n if (numLines > this.maxLines) {\n this.el.setAttribute(\"style\", `--truncation-max-lines: ${this.maxLines}`);\n this.truncatedHeight = this.el.clientHeight;\n this.truncated = true;\n }\n };\n this.checkMarkerPosition = (elTop, markerTop) => {\n if (markerTop - elTop < this.truncatedHeight) {\n this.truncated = false;\n this.expanded = false;\n }\n else {\n this.truncated = true;\n }\n };\n this.getElementTop = (el) => {\n return el.getClientRects ? el.getClientRects()[0].top : 0;\n };\n this.runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n clearTimeout(this.resizeInterval);\n this.resizeInterval = window.setTimeout(this.resizeObserverCallback, 50);\n });\n this.resizeObserver.observe(this.truncWrapperEl);\n };\n this.resizeObserverCallback = () => {\n if (this.lastWidth === this.el.clientWidth) {\n return;\n }\n if (this.truncatedHeight === 0) {\n this.checkMaxLines(this.el.clientHeight);\n return;\n }\n const markerTop = this.getElementTop(this.marker);\n if (markerTop === this.lastMarkerTop) {\n return;\n }\n this.checkMarkerPosition(this.getElementTop(this.el), markerTop);\n this.lastMarkerTop = markerTop;\n this.lastWidth = this.el.clientWidth;\n };\n this.truncButtonFocus = () => {\n if (this.focusBtnFromKeyboard) {\n this.truncButtonFocussed = true;\n }\n };\n this.truncButtonBlur = () => {\n this.focusBtnFromKeyboard = true;\n this.truncButtonFocussed = false;\n };\n this.truncButtonFocusFromMouse = () => {\n this.focusBtnFromKeyboard = false;\n };\n this.truncated = false;\n this.truncButtonFocussed = false;\n this.applyVerticalMargins = false;\n this.bold = false;\n this.italic = false;\n this.maxLines = undefined;\n this.strikethrough = false;\n this.underline = false;\n this.variant = \"body\";\n this.expanded = false;\n }\n watchExpandedHandler() {\n this.el.setAttribute(\"style\", `--truncation-max-lines: ${this.expanded ? \"initial\" : this.maxLines}`);\n }\n disconnectedCallback() {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n componentDidLoad() {\n var _a, _b;\n if ((this.variant === \"body\" ||\n ((_b = (_a = this.el.getRootNode()) === null || _a === void 0 ? void 0 : _a.host) === null || _b === void 0 ? void 0 : _b.tagName) ===\n \"IC-TOOLTIP\") &&\n this.maxLines > 0) {\n const marker = document.createElement(\"span\");\n marker.style.visibility = \"hidden\";\n this.el.appendChild(marker);\n this.marker = marker;\n this.lastWidth = this.el.clientWidth;\n this.checkMaxLines(this.el.clientHeight);\n checkResizeObserver(this.runResizeObserver);\n }\n }\n render() {\n var _a, _b;\n const { variant, applyVerticalMargins, maxLines, truncated, expanded, strikethrough, underline, italic, bold, } = this;\n return (h(Host, { class: {\n [`ic-typography-${variant}`]: true,\n [`ic-typography-vertical-margins-${variant}`]: applyVerticalMargins,\n [\"bold\"]: bold,\n [\"italic\"]: italic,\n [\"strikethrough\"]: strikethrough,\n [\"underline\"]: underline,\n } }, (variant === \"body\" ||\n ((_b = (_a = this.el.getRootNode()) === null || _a === void 0 ? void 0 : _a.host) === null || _b === void 0 ? void 0 : _b.tagName) ===\n \"IC-TOOLTIP\") &&\n maxLines > 0 ? (h(\"div\", { class: \"trunc-wrapper\", ref: (el) => (this.truncWrapperEl = el) }, h(\"slot\", null))) : (h(\"slot\", null)), variant === \"body\" && maxLines > 0 && truncated && (h(\"button\", { class: { \"trunc-btn\": true, focus: this.truncButtonFocussed }, onFocus: this.truncButtonFocus, onBlur: this.truncButtonBlur, onMouseDown: this.truncButtonFocusFromMouse, onClick: this.toggleExpanded, \"aria-hidden\": \"true\" }, expanded ? \"See less\" : \"See more\"))));\n }\n static get is() { return \"ic-typography\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-typography.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-typography.css\"]\n };\n }\n static get properties() {\n return {\n \"applyVerticalMargins\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, appropriate top and bottom margins will be applied to the typography.\"\n },\n \"attribute\": \"apply-vertical-margins\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"bold\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the typography will have a bold font weight.\\nNote: This will have no impact on variants that already use an equivalent or higher font weight (h1, h2, and subtitle-large).\"\n },\n \"attribute\": \"bold\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"italic\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the typography will have an italic font style.\"\n },\n \"attribute\": \"italic\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"maxLines\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The number of lines to display before truncating the text, only used for the 'body' variant.\"\n },\n \"attribute\": \"max-lines\",\n \"reflect\": false\n },\n \"strikethrough\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the typography will have a line through it.\"\n },\n \"attribute\": \"strikethrough\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"underline\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the typography will have a line under it.\"\n },\n \"attribute\": \"underline\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"variant\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcTypographyVariants\",\n \"resolved\": \"\\\"badge\\\" | \\\"badge-small\\\" | \\\"body\\\" | \\\"caption\\\" | \\\"caption-uppercase\\\" | \\\"code-extra-small\\\" | \\\"code-large\\\" | \\\"code-small\\\" | \\\"h1\\\" | \\\"h2\\\" | \\\"h3\\\" | \\\"h4\\\" | \\\"label\\\" | \\\"label-uppercase\\\" | \\\"subtitle-large\\\" | \\\"subtitle-small\\\"\",\n \"references\": {\n \"IcTypographyVariants\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcTypographyVariants\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ICDS typography style to use.\"\n },\n \"attribute\": \"variant\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"body\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"truncated\": {},\n \"truncButtonFocussed\": {},\n \"expanded\": {}\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"expanded\",\n \"methodName\": \"watchExpandedHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-typography.js.map\n"],"mappings":"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"}
|
package/dist/core/p-cd799087.js
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
var n;(function(n){n["Warning"]="warning";n["Error"]="error";n["Success"]="success"})(n||(n={}));var e;(function(n){n["Default"]="default";n["Dark"]="dark";n["Light"]="light"})(e||(e={}));var t;(function(n){n[n["January"]=0]="January";n[n["February"]=1]="February";n[n["March"]=2]="March";n[n["April"]=3]="April";n[n["May"]=4]="May";n[n["June"]=5]="June";n[n["July"]=6]="July";n[n["August"]=7]="August";n[n["September"]=8]="September";n[n["October"]=9]="October";n[n["November"]=10]="November";n[n["December"]=11]="December"})(t||(t={}));var o;(function(n){n[n["Sun"]=0]="Sun";n[n["Mon"]=1]="Mon";n[n["Tue"]=2]="Tue";n[n["Wed"]=3]="Wed";n[n["Thu"]=4]="Thu";n[n["Fri"]=5]="Fri";n[n["Sat"]=6]="Sat"})(o||(o={}));var s;(function(n){n[n["Sunday"]=0]="Sunday";n[n["Monday"]=1]="Monday";n[n["Tuesday"]=2]="Tuesday";n[n["Wednesday"]=3]="Wednesday";n[n["Thursday"]=4]="Thursday";n[n["Friday"]=5]="Friday";n[n["Saturday"]=6]="Saturday"})(s||(s={}));var a;(function(n){n[n["Sunday"]=0]="Sunday";n[n["Monday"]=1]="Monday";n[n["Tuesday"]=2]="Tuesday";n[n["Wednesday"]=3]="Wednesday";n[n["Thursday"]=4]="Thursday";n[n["Friday"]=5]="Friday";n[n["Saturday"]=6]="Saturday"})(a||(a={}));const i=n=>{const e=[];Object.values(n).forEach((n=>{if(isNaN(Number(n))){const t=n;e.push(t)}}));return e};const r=(n,e=[])=>{const t={};e.forEach((e=>{if(n.hasAttribute(e)){const o=n.getAttribute(e);if(o!==null){t[e]=n.getAttribute(e)}n.removeAttribute(e)}}));return t};const c=(n,e,t,o,s)=>{if(t!==undefined&&(n||l(e))){const n=e.querySelectorAll("input.ic-input");const a=Array.from(n);const i=a.filter((n=>e===n.parentElement));let r=i[0];if(r===null||r===undefined){r=e.ownerDocument.createElement("input");r.type="hidden";r.classList.add("ic-input");e.appendChild(r)}r.disabled=s;r.name=t;if(o instanceof Date){r.value=o?o.toISOString():null}else{r.value=o||""}}};const u=n=>n?n.trim().length===0:true;const d=n=>getComputedStyle(document.documentElement).getPropertyValue(n);({XS:Number(d("--ic-breakpoint-xs").replace("px","")),S:Number(d("--ic-breakpoint-sm").replace("px","")),M:Number(d("--ic-breakpoint-md").replace("px","")),L:Number(d("--ic-breakpoint-lg").replace("px","")),XL:Number(d("--ic-breakpoint-xl").replace("px","")),UNDEFINED:1200});const l=n=>!!n.shadowRoot&&!!n.attachShadow;const f=n=>n+"-helper-text";const p=n=>n+"-validation-text";const y=(n,e,t)=>`${e?f(n):""} ${t?p(n):""}`.trim();const b=()=>"maxTouchPoints"in navigator?navigator.maxTouchPoints>0:false;const v=(n,e,t="value",o="label")=>{const s=[];if(e.length>0&&e.map){e.map((n=>{if(n.children){n.children.map((n=>s.push(n)))}else{s.push(n)}}));const a=s.find((e=>e[t]===n));if(a!==undefined)return a[o]}return undefined};const m=(n,e,t,o,s="label")=>n.filter((n=>{var a;const i=n[s].toLowerCase();const r=(a=n.description)===null||a===void 0?void 0:a.toLowerCase();const c=t.toLowerCase();return o==="anywhere"?e?i.includes(c)||(r===null||r===void 0?void 0:r.includes(c)):i.includes(c):e?i.startsWith(c)||(r===null||r===void 0?void 0:r.startsWith(c)):i.startsWith(c)}));const N=n=>{const e=[];if(n.length>0&&n.map){n.map((n=>{if(n.children){n.children.map((n=>e.push(n)))}else{e.push(n)}}))}return e.length};const x=n=>/^-?\d+$/.test(n);const h=(n,e)=>n!==""&&!e;const S=(n,e)=>{for(let t=0;t<n.length;t++){const{prop:o,propName:s}=n[t];if(o===null||o===undefined){console.error(`No ${s} specified for ${e} component - prop '${s}' (web components) / '${w(s)}' (react) required`)}}};const w=n=>{n=n.toLowerCase();const e=n.split("-");let t=e[0];for(let n=1;n<e.length;n++){t+=e[n].substring(0,1).toUpperCase()+e[n].substring(1)}return t};const g=n=>{if(typeof window!=="undefined"&&typeof window.ResizeObserver!=="undefined"){n()}};const M=n=>n.closest("FORM");const k=(n,e)=>{const t=M(n);if(t!==null){t.addEventListener("reset",e)}};const T=(n,e)=>{const t=M(n);if(t!==null){t.removeEventListener("reset",e)}};const $=(n,e)=>{if(!n){e.removeAttribute("disabled")}};const F=()=>window.navigator.userAgent.toUpperCase().indexOf("MAC")>=0;export{s as I,t as a,a as b,o as c,m as d,N as e,$ as f,v as g,k as h,r as i,c as j,y as k,b as l,e as m,h as n,S as o,n as p,u as q,T as r,i as s,x as t,F as u,g as v};
|
2
|
-
//# sourceMappingURL=p-cd799087.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["IcInformationStatus","IcThemeForegroundEnum","IcDateInputMonths","IcShortDayNames","IcDayNames","IcWeekDays","stringEnumToArray","theEnum","arr","Object","values","forEach","val","isNaN","Number","str","push","inheritAttributes","element","attributes","attributeObject","attr","hasAttribute","value","getAttribute","removeAttribute","renderHiddenInput","always","container","name","disabled","undefined","hasShadowDom","inputs","querySelectorAll","inputEls","Array","from","filtered","filter","el","parentElement","input","ownerDocument","createElement","type","classList","add","appendChild","Date","toISOString","isEmptyString","trim","length","getCssProperty","cssVar","getComputedStyle","document","documentElement","getPropertyValue","XS","replace","S","M","L","XL","UNDEFINED","shadowRoot","attachShadow","getInputHelperTextID","id","getInputValidationTextID","getInputDescribedByText","inputId","helperText","validationText","isMobileOrTablet","navigator","maxTouchPoints","getLabelFromValue","options","valueField","labelField","ungroupedOptions","map","option","children","matchingValue","find","getFilteredMenuOptions","includeDescriptions","searchString","position","label","toLowerCase","description","_a","lowerSearchString","includes","startsWith","getOptionsWithoutGroupTitlesCount","optionsWithoutGroupTitles","isNumeric","test","hasValidationStatus","status","onComponentRequiredPropUndefined","props","component","i","prop","propName","console","error","kebabToCamelCase","kebabCase","individualWords","split","camelCase","substring","toUpperCase","checkResizeObserver","callbackFn","window","ResizeObserver","getForm","closest","addFormResetListener","form","addEventListener","removeFormResetListener","removeEventListener","removeDisabledFalse","isMacDevice","userAgent","indexOf"],"sources":["src/utils/types.ts","src/utils/helpers.ts"],"sourcesContent":["export type IcFocusableComponents =\n | HTMLIcBreadcrumbElement\n | HTMLIcButtonElement\n | HTMLIcCardElement\n | HTMLIcCheckboxElement\n | HTMLIcChipElement\n | HTMLIcLinkElement\n | HTMLIcNavigationButtonElement\n | HTMLIcNavigationGroupElement\n | HTMLIcNavigationItemElement\n | HTMLIcRadioOptionElement\n | HTMLIcSearchBarElement\n | HTMLIcSelectElement\n | HTMLIcSwitchElement\n | HTMLIcTabElement\n | HTMLIcTextFieldElement;\n\nexport type IcStatusVariants =\n | \"neutral\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"success\";\n\nexport enum IcInformationStatus {\n Warning = \"warning\",\n Error = \"error\",\n Success = \"success\",\n}\n\nexport type IcSearchMatchPositions = \"start\" | \"anywhere\";\n\nexport type IcSizes = \"default\" | \"large\" | \"small\";\n\nexport type IcSizesNoLarge = \"default\" | \"small\";\n\nexport type IcInformationStatusOrEmpty = \"warning\" | \"error\" | \"success\" | \"\";\n\nexport type IcNavType = \"side\" | \"top\" | \"page-header\";\n\n// From: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\nexport type IcAutocompleteTypes =\n | \"on\"\n | \"off\"\n | \"name\"\n | \"honorific-prefix\"\n | \"given-name\"\n | \"additional-name\"\n | \"family-name\"\n | \"honorific-suffix\"\n | \"nickname\"\n | \"email\"\n | \"username\"\n | \"new-password\"\n | \"current-password\"\n | \"one-time-code\"\n | \"organization-title\"\n | \"organization\"\n | \"street-address\"\n | \"address-line1\"\n | \"address-line2\"\n | \"address-line3\"\n | \"address-level4\"\n | \"address-level3\"\n | \"address-level2\"\n | \"address-level1\"\n | \"country\"\n | \"country-name\"\n | \"postal-code\"\n | \"cc-name\"\n | \"cc-given-name\"\n | \"cc-additional-name\"\n | \"cc-family-name\"\n | \"cc-family-name\"\n | \"cc-number\"\n | \"cc-exp\"\n | \"cc-exp-month\"\n | \"cc-exp-year\"\n | \"cc-csc\"\n | \"cc-type\"\n | \"transaction-currency\"\n | \"transaction-amount\"\n | \"language\"\n | \"bday\"\n | \"bday-day\"\n | \"bday-month\"\n | \"bday-year\"\n | \"sex\"\n | \"tel\"\n | \"tel-country-code\"\n | \"tel-national\"\n | \"tel-area-code\"\n | \"tel-local\"\n | \"tel-extension\"\n | \"impp\"\n | \"url\"\n | \"photo\";\n\nexport type IcAlignment = \"left\" | \"center\" | \"full-width\";\n\nexport enum IcThemeForegroundEnum {\n Default = \"default\",\n Dark = \"dark\",\n Light = \"light\",\n}\n\nexport interface IcValueEventDetail {\n value: string | string[];\n keyPressed?: string;\n}\n\nexport type IcThemeForeground = \"default\" | \"dark\" | \"light\";\n\nexport type IcThemeForegroundNoDefault = \"dark\" | \"light\";\n\nexport type IcTheme = {\n mode: IcThemeForeground;\n color: IcColorRGB;\n};\n\nexport type IcAdditionalFieldTypes = \"static\" | \"dynamic\";\n\nexport type IcColorRGB = {\n r: number;\n g: number;\n b: number;\n};\n\nexport type IcColorRGBA = IcColorRGB & {\n a: number;\n};\n\nexport type IcActivationTypes = \"automatic\" | \"manual\";\n\nexport type IcAutocorrectStates = \"on\" | \"off\";\n\nexport type IcNavParentDetails = {\n navType: IcNavType | \"\";\n parent: HTMLElement;\n};\n\nexport type IcTypographyVariants =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"subtitle-large\"\n | \"subtitle-small\"\n | \"body\"\n | \"label\"\n | \"label-uppercase\"\n | \"caption\"\n | \"caption-uppercase\"\n | \"code-large\"\n | \"code-small\"\n | \"code-extra-small\"\n | \"badge\"\n | \"badge-small\";\n\n/**\n * @interface IcMenuOption\n * @field {string} A label field to options. Defaults to \"label\", but can have any custom name.\n * @field {string} A value field to options. Defaults to \"value\", but can have any custom name.\n */\nexport interface IcMenuOption {\n description?: string;\n disabled?: boolean;\n recommended?: boolean;\n children?: IcMenuOption[];\n loading?: boolean;\n timedOut?: boolean;\n [key: string]: any;\n element?: {\n component: any;\n ariaLabel: string;\n };\n icon?: any;\n}\n\nexport type IcCallbackFunctionNoReturn = (...args: unknown[]) => void;\n\nexport type IcDateFormat = \"DD/MM/YYYY\" | \"MM/DD/YYYY\" | \"YYYY/MM/DD\";\n\nexport enum IcDateInputMonths {\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n}\n\nexport enum IcShortDayNames {\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\",\n}\n\nexport enum IcDayNames {\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n}\n\nexport enum IcWeekDays {\n Sunday = 0,\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6,\n}\n","/**\n * To investigate:\n * IcColorRGBA works via @ukic/web-components but IcThemeForeground does not even though they are exported\n * from @ukic/web-components in the same file. Why?\n */\nimport {\n IcCallbackFunctionNoReturn,\n IcInformationStatusOrEmpty,\n IcNavParentDetails,\n IcPropObject,\n IcSearchMatchPositions,\n IcColorRGBA,\n} from \"@ukic/web-components\";\nimport {\n IC_BLOCK_COLOR_COMPONENTS,\n IC_BLOCK_COLOR_EXCEPTIONS,\n IC_FIXED_COLOR_COMPONENTS,\n} from \"./constants\"; // Using @ukic/web-components/dist/types/utils/constants does not work so duplicated constants into canary package\nimport {\n IcMenuOption,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"./types\"; // Using @ukic/web-components/dist/types/utils/types does not work so duplicated constants into canary package\nimport { EventEmitter } from \"@stencil/core\";\n\nconst DARK_MODE_THRESHOLD = 133.3505;\n\n/**\n * converts an enum of strings into an array of strings\n */\nexport const stringEnumToArray = (\n theEnum: Record<string, string | number>\n): string[] => {\n const arr: string[] = [];\n Object.values(theEnum).forEach((val) => {\n if (isNaN(Number(val))) {\n const str = val as string;\n arr.push(str);\n }\n });\n return arr;\n};\n\n/**\n * Used to inherit global attributes set on the host. Called in componentWillLoad and assigned\n * to a variable that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (\n element: HTMLElement,\n attributes: string[] = []\n): { [key: string]: unknown } => {\n const attributeObject: { [key: string]: unknown } = {};\n\n attributes.forEach((attr) => {\n if (element.hasAttribute(attr)) {\n const value = element.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = element.getAttribute(attr);\n }\n element.removeAttribute(attr);\n }\n });\n\n return attributeObject;\n};\n\nexport const debounceEvent = (\n event: EventEmitter,\n wait: number\n): EventEmitter => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n } as EventEmitter;\n};\n\nexport const debounce = (\n func: (...args: unknown[]) => void,\n wait = 0\n): unknown => {\n let timer: ReturnType<typeof setTimeout>;\n return (...args: unknown[]) => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\n/**\n * This method is used to add a hidden input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param always Add a hidden input even if the container does not use Shadow\n * @param container The element where the input will be added\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n */\nexport const renderHiddenInput = (\n always: boolean,\n container: HTMLElement,\n name: string,\n value: string | Date | undefined | null,\n disabled: boolean\n): void => {\n if (name !== undefined && (always || hasShadowDom(container))) {\n const inputs = container.querySelectorAll(\"input.ic-input\");\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n\n let input = filtered[0] as HTMLInputElement;\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.type = \"hidden\";\n input.classList.add(\"ic-input\");\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n\n if (value instanceof Date) {\n input.value = value ? value.toISOString() : null;\n } else {\n input.value = value || \"\";\n }\n }\n};\n\nexport const removeHiddenInput = (container: HTMLElement): void => {\n const inputs = container.querySelectorAll(\"input.ic-input\");\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n const input = filtered[0] as HTMLInputElement;\n input?.remove();\n};\n\n/**\n * This method helps to understand the context in which a component exists,\n * to assist with choosing appropriate foreground colours to use. For example,\n * this method will help you use the 'white' version of a button if it's within\n * a block colour element using white foreground text.\n *\n * This only works for components/elements passed via <slot> and not if they\n * are part of an IC component.\n *\n * \"\"\n * @returns IcThemeForeground depending on the context\n */\nexport const getThemeFromContext = (\n el: Element,\n themeFromEvent: IcThemeForeground = null\n): IcThemeForeground => {\n const parentElement =\n el.parentElement || (<ShadowRoot>el.getRootNode()).host.parentElement;\n const blockColorParent = parentElement.closest(\n IC_BLOCK_COLOR_COMPONENTS.join(\",\")\n );\n\n // If within a block color component\n if (blockColorParent !== null) {\n const parentTag = blockColorParent.tagName.toLowerCase();\n const currentTag = el.tagName.toLowerCase();\n\n if (IC_BLOCK_COLOR_EXCEPTIONS[parentTag]?.includes(currentTag)) {\n return IcThemeForegroundEnum.Default;\n } else if (\n themeFromEvent !== null &&\n !IC_FIXED_COLOR_COMPONENTS.includes(parentTag)\n ) {\n return themeFromEvent;\n } else if (\n blockColorParent.classList.contains(IcThemeForegroundEnum.Dark)\n ) {\n return IcThemeForegroundEnum.Dark;\n }\n\n return IcThemeForegroundEnum.Light;\n }\n\n return IcThemeForegroundEnum.Default;\n};\n\n/**\n * Will create a button within the lightDOM which interacts with the parent form.\n * This is required as buttons within the shadowDOM will not invoke a submit or reset\n *\n * @param form - parent form element which contains shadowDom button\n * @param button - shadowDOM button\n */\nexport const handleHiddenFormButtonClick = (\n form: HTMLFormElement,\n button: HTMLIcButtonElement | HTMLButtonElement\n): void => {\n const hiddenFormButton = document.createElement(\"button\");\n\n hiddenFormButton.setAttribute(\"type\", button.type);\n hiddenFormButton.style.display = \"none\";\n\n form.appendChild(hiddenFormButton);\n\n hiddenFormButton.click();\n hiddenFormButton.remove();\n};\n\nexport const isEmptyString = (value: string): boolean =>\n value ? value.trim().length === 0 : true;\n\n// A helper function that checks if a prop has been defined\nexport const isPropDefined = (prop: string): string | null =>\n prop !== undefined ? prop : null;\n\nexport const deviceSizeMatches = (size: number): boolean =>\n window.matchMedia(`(max-width: ${size}px)`).matches;\n\nexport const getCurrentDeviceSize = (): number => {\n if (deviceSizeMatches(DEVICE_SIZES.S)) {\n return DEVICE_SIZES.S;\n }\n if (deviceSizeMatches(DEVICE_SIZES.M)) {\n return DEVICE_SIZES.M;\n }\n if (deviceSizeMatches(DEVICE_SIZES.L)) {\n return DEVICE_SIZES.L;\n }\n if (deviceSizeMatches(DEVICE_SIZES.XL)) {\n return DEVICE_SIZES.XL;\n }\n //fallback needed as all of above get initialised to 0 in jest tests\n return DEVICE_SIZES.UNDEFINED;\n};\n\nexport const getCssProperty = (cssVar: string): string =>\n getComputedStyle(document.documentElement).getPropertyValue(cssVar);\n\n/**\n * Returns the brightness of the theme colour, calculated by using the theme RGB CSS values by:\n * - Multiplying each RGB value by a set number: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding them together and dividing by 1000\n * This is a similar calculation to its CSS counterpart: \"--ic-theme-text\"\n * @returns number representing the brightness of the theme colour\n */\nexport const getThemeColorBrightness = (): number => {\n const themeRed = getCssProperty(\"--ic-theme-primary-r\");\n const themeGreen = getCssProperty(\"--ic-theme-primary-g\");\n const themeBlue = getCssProperty(\"--ic-theme-primary-b\");\n return (\n (parseInt(themeRed) * 299 +\n parseInt(themeGreen) * 587 +\n parseInt(themeBlue) * 114) /\n 1000\n );\n};\n\n/**\n * Returns if dark or light foreground colors should be used for color contrast reasons\n * @returns \"dark\" or \"light\"\n */\nexport const getThemeForegroundColor = (): IcThemeForeground =>\n getThemeColorBrightness() > DARK_MODE_THRESHOLD\n ? IcThemeForegroundEnum.Dark\n : IcThemeForegroundEnum.Light;\n\nexport const getSlot = (element: HTMLElement, name: string): Element | null => {\n if (element && element.querySelector) {\n return element.querySelector(`[slot=\"${name}\"]`);\n }\n return null;\n};\n\nexport const slotHasContent = (element: HTMLElement, name: string): boolean =>\n getSlot(element, name) !== null;\n\nexport const getSlotContent = (\n element: HTMLElement,\n name: string\n): Element[] | NodeListOf<ChildNode> | null => {\n const slot = getSlot(element, name);\n if (slot) {\n return getSlotElements(slot);\n }\n\n return null;\n};\n\nexport const getSlotElements = (\n slot: Element\n): NodeListOf<ChildNode> | Element[] => {\n const slotContent = slot.firstElementChild as HTMLSlotElement;\n\n if (slotContent !== null) {\n const elements = slotContent.assignedElements\n ? slotContent.assignedElements()\n : slotContent.childNodes;\n return elements.length ? elements : null;\n } else {\n //check for single element\n return slot === null ? null : [slot];\n }\n};\n\nexport const getNavItemParentDetails = (\n el: HTMLElement\n): IcNavParentDetails => {\n let navType: IcNavParentDetails = { navType: \"\", parent: null };\n switch (getParentElementType(el)) {\n case \"IC-NAVIGATION-GROUP\":\n navType = getNavItemParentDetails(el.parentElement);\n break;\n case \"IC-TOP-NAVIGATION\":\n navType = { navType: \"top\", parent: getParentElement(el) };\n break;\n case \"IC-SIDE-NAVIGATION\":\n navType = { navType: \"side\", parent: getParentElement(el) };\n break;\n case \"IC-PAGE-HEADER\":\n navType = { navType: \"page-header\", parent: null };\n break;\n }\n return navType;\n};\n\nexport const DEVICE_SIZES = {\n XS: Number(getCssProperty(\"--ic-breakpoint-xs\").replace(\"px\", \"\")), // 0\n S: Number(getCssProperty(\"--ic-breakpoint-sm\").replace(\"px\", \"\")), // 576\n M: Number(getCssProperty(\"--ic-breakpoint-md\").replace(\"px\", \"\")), // 768\n L: Number(getCssProperty(\"--ic-breakpoint-lg\").replace(\"px\", \"\")), // 992\n XL: Number(getCssProperty(\"--ic-breakpoint-xl\").replace(\"px\", \"\")), // 1200\n UNDEFINED: 1200,\n};\n\nexport const isSlotUsed = (element: HTMLElement, slotName: string): boolean =>\n Array.from(element.children).some(\n (child) => child.getAttribute(\"slot\") === slotName\n );\n\n// added as a common method to allow detection of gatsby hydration issue, where (camelCase) props are initially undefined & then update\n// with a value. Allows a callback function to be executed when this is the case\nexport const onComponentPropUndefinedChange = (\n oldValue: string | undefined,\n newValue: string | undefined,\n callback: IcCallbackFunctionNoReturn\n): void => {\n if (oldValue === undefined && newValue !== oldValue) {\n callback();\n }\n};\n\nexport const hasShadowDom = (el: HTMLElement): boolean =>\n !!el.shadowRoot && !!el.attachShadow;\n\nexport const getInputHelperTextID = (id: string): string => id + \"-helper-text\";\n\nexport const getInputValidationTextID = (id: string): string =>\n id + \"-validation-text\";\n\nexport const getInputDescribedByText = (\n inputId: string,\n helperText: boolean,\n validationText: boolean\n): string =>\n `${helperText ? getInputHelperTextID(inputId) : \"\"} ${\n validationText ? getInputValidationTextID(inputId) : \"\"\n }`.trim();\n\nexport const isMobileOrTablet = (): boolean =>\n \"maxTouchPoints\" in navigator ? navigator.maxTouchPoints > 0 : false;\n\n/**\n * Extracts the label using the value from an object. Requires the object to have a label and value property.\n * @param value - value from object\n * @param options - list of menu items\n * @returns - label corresponding to value\n */\nexport const getLabelFromValue = (\n value: string,\n options: IcMenuOption[],\n valueField = \"value\",\n labelField = \"label\"\n): string | undefined => {\n const ungroupedOptions: IcMenuOption[] = [];\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option: IcMenuOption) =>\n ungroupedOptions.push(option)\n );\n } else {\n ungroupedOptions.push(option);\n }\n });\n const matchingValue = ungroupedOptions.find(\n (option) => option[valueField] === value\n );\n if (matchingValue !== undefined) return matchingValue[labelField];\n }\n\n return undefined;\n};\n\n/**\n * Filters the options based on the search string.\n * @param options - array of options\n * @param includeDescriptions - determines whether option descriptions are included when filtering options\n * @param searchString - string used to filter the options\n * @param position - whether the search string matches the start of or anywhere in the options\n * @returns filtered array of options\n */\nexport const getFilteredMenuOptions = (\n options: IcMenuOption[],\n includeDescriptions: boolean,\n searchString: string,\n position: IcSearchMatchPositions,\n labelField = \"label\"\n): IcMenuOption[] =>\n options.filter((option) => {\n const label: string = option[labelField].toLowerCase();\n const description = option.description?.toLowerCase();\n const lowerSearchString = searchString.toLowerCase();\n\n return position === \"anywhere\"\n ? includeDescriptions\n ? label.includes(lowerSearchString) ||\n description?.includes(lowerSearchString)\n : label.includes(lowerSearchString)\n : includeDescriptions\n ? label.startsWith(lowerSearchString) ||\n description?.startsWith(lowerSearchString)\n : label.startsWith(lowerSearchString);\n });\n\n/**\n * Gets count of options where only group title \"parent\" options have been removed.\n * Disabled options are included in the count.\n * @param options - array of options\n * @returns number of options not including group titles\n */\nexport const getOptionsWithoutGroupTitlesCount = (\n options: IcMenuOption[]\n): number => {\n const optionsWithoutGroupTitles: IcMenuOption[] = [];\n\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option) => optionsWithoutGroupTitles.push(option));\n } else {\n optionsWithoutGroupTitles.push(option);\n }\n });\n }\n\n return optionsWithoutGroupTitles.length;\n};\n\nconst hex2dec = function (v: string) {\n return parseInt(v, 16);\n};\n\nexport const hexToRgba = (hex: string): IcColorRGBA => {\n let c;\n if (hex.length === 4) {\n c = hex.replace(\"#\", \"\").split(\"\");\n return {\n r: hex2dec(c[0] + c[0]),\n g: hex2dec(c[1] + c[1]),\n b: hex2dec(c[2] + c[2]),\n a: 1,\n };\n } else {\n return {\n r: hex2dec(hex.slice(1, 3)),\n g: hex2dec(hex.slice(3, 5)),\n b: hex2dec(hex.slice(5)),\n a: 1,\n };\n }\n};\n\nexport const rgbaStrToObj = (rgbaStr: string): IcColorRGBA => {\n const fourthChar = rgbaStr.slice(3, 4);\n let colorRGBA: IcColorRGBA;\n if (fourthChar.toLowerCase() === \"a\") {\n colorRGBA = { r: null, g: null, b: null, a: null };\n const rgba = rgbaStr\n .substring(5, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\");\n colorRGBA.r = Number(rgba[0]);\n colorRGBA.g = Number(rgba[1]);\n colorRGBA.b = Number(rgba[2]);\n colorRGBA.a = Number(rgba[3]);\n } else {\n colorRGBA = { r: null, g: null, b: null, a: 1 };\n const rgb = rgbaStr\n .substring(4, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\");\n colorRGBA.r = Number(rgb[0]);\n colorRGBA.g = Number(rgb[1]);\n colorRGBA.b = Number(rgb[2]);\n }\n\n return colorRGBA;\n};\n\nexport const elementOverflowsX = (element: HTMLElement): boolean =>\n element.scrollWidth > element.clientWidth;\n\n/**\n *\n * @param child - The child element\n * @returns string\n */\nexport const getParentElementType = (child: HTMLElement): string =>\n child.parentElement.tagName;\n\nexport const getParentElement = (child: HTMLElement): HTMLElement =>\n child.parentElement;\n\nexport const hasClassificationBanner = (): boolean =>\n !!document.querySelector(\"ic-classification-banner:not([inline='true'])\");\n\nexport const pxToRem = (px: string, base = 16): string =>\n `${(1 / base) * parseInt(px)}rem`;\n\nexport const isNumeric = (value: string) => {\n return /^-?\\d+$/.test(value);\n};\n\nexport const hasValidationStatus = (\n status: IcInformationStatusOrEmpty,\n disabled: boolean\n): boolean => {\n return status !== \"\" && !disabled;\n};\n\nexport const onComponentRequiredPropUndefined = (\n props: IcPropObject[],\n component: string\n): void => {\n for (let i = 0; i < props.length; i++) {\n const { prop, propName } = props[i];\n if (prop === null || prop === undefined) {\n console.error(\n `No ${propName} specified for ${component} component - prop '${propName}' (web components) / '${kebabToCamelCase(\n propName\n )}' (react) required`\n );\n }\n }\n};\n\nexport const kebabToCamelCase = (kebabCase: string): string => {\n kebabCase = kebabCase.toLowerCase();\n const individualWords: string[] = kebabCase.split(\"-\");\n let camelCase = individualWords[0];\n for (let i = 1; i < individualWords.length; i++) {\n camelCase +=\n individualWords[i].substring(0, 1).toUpperCase() +\n individualWords[i].substring(1);\n }\n return camelCase;\n};\n\nexport const checkResizeObserver = (\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n if (\n typeof window !== \"undefined\" &&\n typeof window.ResizeObserver !== \"undefined\"\n ) {\n callbackFn();\n }\n};\n\nexport const getForm = (el: HTMLElement): HTMLFormElement => el.closest(\"FORM\");\n\nexport const addFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n const form = getForm(el);\n if (form !== null) {\n form.addEventListener(\"reset\", callbackFn);\n }\n};\n\nexport const removeFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n const form = getForm(el);\n if (form !== null) {\n form.removeEventListener(\"reset\", callbackFn);\n }\n};\n\nexport const removeDisabledFalse = (\n disabled: boolean,\n element: HTMLElement\n): void => {\n if (!disabled) {\n element.removeAttribute(\"disabled\");\n }\n};\n\nexport const isMacDevice = (): boolean => {\n return window.navigator.userAgent.toUpperCase().indexOf(\"MAC\") >= 0;\n};\n\nexport async function waitForHydration(): Promise<boolean> {\n const elements = document.getElementsByTagName(\"*\");\n\n for (let i = 0; i < elements.length; i++) {\n if (elements[i].tagName.startsWith(\"IC-\")) {\n if (elements[i].classList.contains(\"hydrated\")) {\n return true;\n }\n } else {\n return false;\n }\n }\n\n return false;\n}\n"],"mappings":"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"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as o,c as t,h as r,H as i}from"./p-8455d1bb.js";import{H as s,J as e,W as c,c as h,u as a}from"./p-ee765ad5.js";import"./p-fd186591.js";const n=class{constructor(r){o(this,r);this.themeChange=t(this,"themeChange",7);this.checkThemeColorContrast=()=>{if(s()<e&&s()>c){console.warn(`The theme colour does not provide enough contrast with either of the ICDS black or white foreground colours. Consider choosing a colour with a different brightness to achieve sufficient colour contrast for good visibility. See https://www.w3.org/TR/AERT/#color-contrast for more information about colour contrast.`)}};this.setThemeColor=()=>{if(this.color!==null&&h(this.color)!==null){const o=h(this.color);this.setThemeRGBA(o)}};this.setThemeRGBA=o=>{if(o!==null){const t=document.documentElement;t.style.setProperty("--ic-theme-primary-r",o.r.toString());t.style.setProperty("--ic-theme-primary-g",o.g.toString());t.style.setProperty("--ic-theme-primary-b",o.b.toString());t.style.setProperty("--ic-theme-primary-a",o.a.toString());this.checkThemeColorContrast();const r=a();this.themeChange.emit({mode:r,color:o})}};this.color=null}watchColorPropHandler(){this.setThemeColor()}componentWillLoad(){this.setThemeColor()}render(){return r(i,null)}static get watchers(){return{color:["watchColorPropHandler"]}}};export{n as ic_theme};
|
2
|
-
//# sourceMappingURL=p-d32d331b.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["Theme","constructor","hostRef","this","checkThemeColorContrast","getThemeColorBrightness","BLACK_MIN_COLOR_BRIGHTNESS","WHITE_MAX_COLOR_BRIGHTNESS","console","warn","setThemeColor","color","convertToRGBA","colorRGBA","setThemeRGBA","root","document","documentElement","style","setProperty","r","toString","g","b","a","foregroundColor","getThemeForegroundColor","themeChange","emit","mode","watchColorPropHandler","componentWillLoad","render","h","Host"],"sources":["../web-components/dist/collection/components/ic-theme/ic-theme.js"],"sourcesContent":["import { Host, h, } from \"@stencil/core\";\nimport { convertToRGBA, getThemeForegroundColor } from \"../../utils/helpers\";\nimport { getThemeColorBrightness } from \"../../utils/helpers\";\nimport { BLACK_MIN_COLOR_BRIGHTNESS, WHITE_MAX_COLOR_BRIGHTNESS, } from \"../../utils/constants\";\nexport class Theme {\n constructor() {\n this.checkThemeColorContrast = () => {\n if (getThemeColorBrightness() < BLACK_MIN_COLOR_BRIGHTNESS &&\n getThemeColorBrightness() > WHITE_MAX_COLOR_BRIGHTNESS) {\n console.warn(`The theme colour does not provide enough contrast with either of the ICDS black or white foreground colours. Consider choosing a colour with a different brightness to achieve sufficient colour contrast for good visibility. See https://www.w3.org/TR/AERT/#color-contrast for more information about colour contrast.`);\n }\n };\n this.setThemeColor = () => {\n if (this.color !== null && convertToRGBA(this.color) !== null) {\n const colorRGBA = convertToRGBA(this.color);\n this.setThemeRGBA(colorRGBA);\n }\n };\n this.setThemeRGBA = (colorRGBA) => {\n if (colorRGBA !== null) {\n const root = document.documentElement;\n root.style.setProperty(\"--ic-theme-primary-r\", colorRGBA.r.toString());\n root.style.setProperty(\"--ic-theme-primary-g\", colorRGBA.g.toString());\n root.style.setProperty(\"--ic-theme-primary-b\", colorRGBA.b.toString());\n root.style.setProperty(\"--ic-theme-primary-a\", colorRGBA.a.toString());\n this.checkThemeColorContrast();\n const foregroundColor = getThemeForegroundColor();\n this.themeChange.emit({ mode: foregroundColor, color: colorRGBA });\n }\n };\n this.color = null;\n }\n watchColorPropHandler() {\n this.setThemeColor();\n }\n componentWillLoad() {\n this.setThemeColor();\n }\n render() {\n return h(Host, null);\n }\n static get is() { return \"ic-theme\"; }\n static get encapsulation() { return \"shadow\"; }\n static get properties() {\n return {\n \"color\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The theme colour. Can be a hex value e.g. \\\"#ff0000\\\", RGB e.g. \\\"rgb(255, 0, 0)\\\", or RGBA e.g. \\\"rgba(255, 0, 0, 1)\\\".\"\n },\n \"attribute\": \"color\",\n \"reflect\": false,\n \"defaultValue\": \"null\"\n }\n };\n }\n static get events() {\n return [{\n \"method\": \"themeChange\",\n \"name\": \"themeChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when the theme is changed.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcTheme\",\n \"resolved\": \"{ mode: IcThemeForeground; color: IcColorRGB; }\",\n \"references\": {\n \"IcTheme\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcTheme\"\n }\n }\n }\n }];\n }\n static get watchers() {\n return [{\n \"propName\": \"color\",\n \"methodName\": \"watchColorPropHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-theme.js.map\n"],"mappings":"uJAIaA,EAAK,MACd,WAAAC,CAAAC,G,mDACIC,KAAKC,wBAA0B,KAC3B,GAAIC,IAA4BC,GAC5BD,IAA4BE,EAA4B,CACxDC,QAAQC,KAAK,4T,GAGrBN,KAAKO,cAAgB,KACjB,GAAIP,KAAKQ,QAAU,MAAQC,EAAcT,KAAKQ,SAAW,KAAM,CAC3D,MAAME,EAAYD,EAAcT,KAAKQ,OACrCR,KAAKW,aAAaD,E,GAG1BV,KAAKW,aAAgBD,IACjB,GAAIA,IAAc,KAAM,CACpB,MAAME,EAAOC,SAASC,gBACtBF,EAAKG,MAAMC,YAAY,uBAAwBN,EAAUO,EAAEC,YAC3DN,EAAKG,MAAMC,YAAY,uBAAwBN,EAAUS,EAAED,YAC3DN,EAAKG,MAAMC,YAAY,uBAAwBN,EAAUU,EAAEF,YAC3DN,EAAKG,MAAMC,YAAY,uBAAwBN,EAAUW,EAAEH,YAC3DlB,KAAKC,0BACL,MAAMqB,EAAkBC,IACxBvB,KAAKwB,YAAYC,KAAK,CAAEC,KAAMJ,EAAiBd,MAAOE,G,GAG9DV,KAAKQ,MAAQ,I,CAEjB,qBAAAmB,GACI3B,KAAKO,e,CAET,iBAAAqB,GACI5B,KAAKO,e,CAET,MAAAsB,GACI,OAAOC,EAAEC,EAAM,K"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as i,c as e,h as t,H as c,g as s}from"./p-8455d1bb.js";import{m as a,l as o,r,a as n,n as l,q as h}from"./p-ee765ad5.js";import"./p-fd186591.js";const d='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:inline-block}input{overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}.ic-switch-container{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ic-space-xxs);cursor:pointer}.ic-switch-label{margin-left:var(--ic-space-xxs);margin-bottom:var(--ic-space-sm)}.ic-switch-label-small{margin-bottom:0.625rem}.ic-switch-toggle{display:flex;align-items:center;justify-content:space-around;width:4rem;height:var(--ic-space-xl);position:relative;border-radius:100vw;background-color:var(--ic-architectural-200);border:var(--ic-border-width) solid var(--ic-architectural-700);box-sizing:border-box;transition:var(--ic-transition-duration-fast)}.ic-switch-line-break{flex:1 0 100%}.ic-switch-checked-status{padding-left:var(--ic-space-xxs);width:var(--ic-space-lg)}.ic-switch-toggle::before{content:"";width:1.333rem;height:1.333rem;border-radius:50%;position:absolute;z-index:2;top:50%;left:0.333rem;transform:translate(0, -50%);background-color:var(--ic-architectural-700);transition:var(--ic-transition-duration-slow)}.ic-switch-icon{display:inline-block;vertical-align:middle;width:0.625rem;height:0.625rem}.ic-switch-icon-circle,.ic-switch-icon-line{stroke-width:1}.ic-switch-icon-circle{stroke:var(--ic-architectural-700)}.ic-switch-icon-line{stroke:var(--ic-architectural-white)}@media (prefers-reduced-motion: reduce){.ic-switch-toggle::before{transition-duration:0ms}}.ic-switch-input:checked+.ic-switch-toggle{background-color:var(--ic-action-default);border:none}.ic-switch-input:checked+.ic-switch-toggle::before{transform:translate(var(--ic-space-xl), -50%);background-color:var(--ic-architectural-white)}.ic-switch-input:not([disabled])+.ic-switch-toggle:hover::before{box-shadow:0 0 0 0.75rem var(--ic-action-dark-bg-hover)}.ic-switch-input:not([disabled])+.ic-switch-toggle:active::before{box-shadow:0 0 0 0.75rem var(--ic-action-dark-bg-active)}.ic-switch-input:not([disabled]):checked+.ic-switch-toggle:hover::before{box-shadow:0 0 0 0.75rem var(--ic-action-default-bg-hover)}.ic-switch-input:not([disabled]):checked+.ic-switch-toggle:active::before{box-shadow:0 0 0 0.75rem var(--ic-action-default-bg-active)}.ic-switch-input:focus:not([disabled])+.ic-switch-toggle,.ic-switch-input:focus-visible:not([disabled])+.ic-switch-toggle{box-shadow:0 0 0 var(--ic-space-1px) var(--ic-architectural-white),\n 0 0 0 0.188rem var(--ic-action-default),\n 0 0 0 0.5rem var(--ic-action-default-active-alpha)}.ic-switch-disabled{cursor:default}.ic-switch-disabled .ic-switch-icon-circle{stroke:var(--ic-architectural-300)}.ic-switch-disabled .ic-switch-icon-line{stroke:var(--ic-action-default-bg-active)}.ic-switch-input:disabled+.ic-switch-toggle{background-color:var(--ic-architectural-80);border:var(--ic-border-disabled)}.ic-switch-input:disabled~.ic-switch-checked-status{color:var(--ic-architectural-300)}.ic-switch-input:disabled+.ic-switch-toggle::before{background-color:var(--ic-architectural-300)}.ic-switch-input:disabled:checked+.ic-switch-toggle{background-color:var(--ic-status-info-light);border:var(--ic-border-width) dashed #98c9f5}.ic-switch-input:disabled:checked+.ic-switch-toggle::before{background-color:var(--ic-architectural-white)}.ic-switch-small{gap:var(--ic-space-xxxs)}.ic-switch-small .ic-switch-checked-status{padding-left:0.375rem}.ic-switch-small .ic-switch-toggle{width:var(--ic-space-xxl);height:var(--ic-space-lg)}.ic-switch-small .ic-switch-toggle::before{width:var(--ic-space-md);height:var(--ic-space-md);left:var(--ic-space-xxs)}.ic-switch-small .ic-switch-input:checked+.ic-switch-toggle::before{transform:translate(var(--ic-space-lg), -50%)}::slotted(*){margin-left:var(--ic-space-sm)}::slotted(svg){fill:currentcolor}@media (forced-colors: active){.ic-switch-toggle::before,.ic-switch-input:checked+.ic-switch-toggle{border:var(--ic-hc-border)}.ic-switch-input:checked+.ic-switch-toggle::before{transform:translate(calc(var(--ic-space-xl) - 0.125rem), -50%)}.ic-switch-input:disabled+.ic-switch-toggle,.ic-switch-input:disabled:checked+.ic-switch-toggle,.ic-switch-input:disabled+.ic-switch-toggle::before{border-color:GrayText}.ic-switch-input:disabled~.ic-switch-checked-status{color:GrayText}.ic-switch-disabled .ic-switch-icon-circle,.ic-switch-disabled .ic-switch-icon-line{stroke:GrayText}}';let b=0;const u=class{constructor(t){i(this,t);this.icBlur=e(this,"icBlur",7);this.icChange=e(this,"icChange",7);this.icFocus=e(this,"icFocus",7);this.inputId=`ic-switch-input-${b++}`;this.handleChange=()=>{this.checkedState=!this.checkedState;this.icChange.emit({checked:this.checkedState,value:this.value})};this.onFocus=()=>{this.icFocus.emit()};this.onBlur=()=>{this.icBlur.emit()};this.handleFormReset=()=>{this.checkedState=this.initiallyChecked};this.checkedState=false;this.initiallyChecked=this.checked;this.checked=false;this.disabled=false;this.helperText="";this.hideLabel=false;this.label=undefined;this.name=this.inputId;this.showState=false;this.size="default";this.small=false;this.value="on"}checkedChangeHandler(){this.checkedState=this.checked}disconnectedCallback(){a(this.el,this.handleFormReset)}componentWillLoad(){this.checkedState=this.checked;o(this.el,this.handleFormReset);r(this.disabled,this.el)}componentDidLoad(){n([{prop:this.label,propName:"label"}],"Switch")}async setFocus(){if(this.el.shadowRoot.querySelector("input")){this.el.shadowRoot.querySelector("input").focus()}}render(){const{label:i,checkedState:e,small:s,size:a,disabled:o,name:r,showState:n,value:d,hideLabel:b,helperText:u,inputId:p}=this;l(true,this.el,r,e?d:"",o);const g=h(p,u!=="",false);return t(c,null,t("label",{class:{["ic-switch-container"]:true,["ic-switch-disabled"]:o,["ic-switch-small"]:s||a==="small"},htmlFor:p},!b&&t("ic-input-label",{for:p,label:i,helperText:u,readonly:true,disabled:o,class:{["ic-switch-label"]:true,["ic-switch-label-small"]:s||a==="small"}}),!b&&t("span",{class:"ic-switch-line-break"}),t("input",{checked:e,disabled:o,"aria-label":i,"aria-checked":e?"true":"false","aria-describedby":g,role:"switch",class:"ic-switch-input",type:"checkbox",name:"toggle",id:p,onFocus:this.onFocus,onBlur:this.onBlur,onChange:this.handleChange}),t("span",{class:"ic-switch-toggle"},t("svg",{class:"ic-switch-icon","aria-hidden":"true",focusable:"false",viewBox:"0 0 10 10",xmlns:"http://www.w3.org/2000/svg"},t("line",{class:"ic-switch-icon-line",x1:"9",y1:s||a==="small"?"2":"1",x2:"9",y2:s||a==="small"?"8":"9"})),t("svg",{class:"ic-switch-icon","aria-hidden":"true",focusable:"false",viewBox:"0 0 10 10",xmlns:"http://www.w3.org/2000/svg"},t("circle",{class:"ic-switch-icon-circle",fill:"none",cx:"5",cy:"5",r:s||a==="small"?"3.335":"4.445"}))),t("slot",{name:"right-adornment"}),n&&t("ic-typography",{"aria-hidden":"true",variant:"label",class:"ic-switch-checked-status"},e?"On":"Off")))}static get delegatesFocus(){return true}get el(){return s(this)}static get watchers(){return{checked:["checkedChangeHandler"]}}};u.style=d;export{u as ic_switch};
|
2
|
-
//# sourceMappingURL=p-dc5e1f8f.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icSwitchCss","inputIds","Switch","constructor","hostRef","this","inputId","handleChange","checkedState","icChange","emit","checked","value","onFocus","icFocus","onBlur","icBlur","handleFormReset","initiallyChecked","disabled","helperText","hideLabel","label","undefined","name","showState","size","small","checkedChangeHandler","disconnectedCallback","removeFormResetListener","el","componentWillLoad","addFormResetListener","removeDisabledFalse","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","setFocus","shadowRoot","querySelector","focus","render","renderHiddenInput","describedBy","getInputDescribedByText","h","Host","class","htmlFor","for","readonly","role","type","id","onChange","focusable","viewBox","xmlns","x1","y1","x2","y2","fill","cx","cy","r","variant","delegatesFocus"],"sources":["../web-components/dist/collection/components/ic-switch/ic-switch.css?tag=ic-switch&encapsulation=shadow","../web-components/dist/collection/components/ic-switch/ic-switch.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n:host {\n display: inline-block;\n}\n\ninput {\n overflow: hidden;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.ic-switch-container {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--ic-space-xxs);\n cursor: pointer;\n}\n\n.ic-switch-label {\n margin-left: var(--ic-space-xxs);\n margin-bottom: var(--ic-space-sm);\n}\n\n.ic-switch-label-small {\n margin-bottom: 0.625rem;\n}\n\n.ic-switch-toggle {\n display: flex;\n align-items: center;\n justify-content: space-around;\n width: 4rem;\n height: var(--ic-space-xl);\n position: relative;\n border-radius: 100vw;\n background-color: var(--ic-architectural-200);\n border: var(--ic-border-width) solid var(--ic-architectural-700);\n box-sizing: border-box;\n transition: var(--ic-transition-duration-fast);\n}\n\n.ic-switch-line-break {\n flex: 1 0 100%;\n}\n\n.ic-switch-checked-status {\n padding-left: var(--ic-space-xxs);\n width: var(--ic-space-lg);\n}\n\n.ic-switch-toggle::before {\n content: \"\";\n width: 1.333rem;\n height: 1.333rem;\n border-radius: 50%;\n position: absolute;\n z-index: 2;\n top: 50%;\n left: 0.333rem;\n transform: translate(0, -50%);\n background-color: var(--ic-architectural-700);\n transition: var(--ic-transition-duration-slow);\n}\n\n.ic-switch-icon {\n display: inline-block;\n vertical-align: middle;\n width: 0.625rem;\n height: 0.625rem;\n}\n\n.ic-switch-icon-circle,\n.ic-switch-icon-line {\n stroke-width: 1;\n}\n\n.ic-switch-icon-circle {\n stroke: var(--ic-architectural-700);\n}\n\n.ic-switch-icon-line {\n stroke: var(--ic-architectural-white);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ic-switch-toggle::before {\n transition-duration: 0ms;\n }\n}\n\n.ic-switch-input:checked + .ic-switch-toggle {\n background-color: var(--ic-action-default);\n border: none;\n}\n\n.ic-switch-input:checked + .ic-switch-toggle::before {\n transform: translate(var(--ic-space-xl), -50%);\n background-color: var(--ic-architectural-white);\n}\n\n.ic-switch-input:not([disabled]) + .ic-switch-toggle:hover::before {\n box-shadow: 0 0 0 0.75rem var(--ic-action-dark-bg-hover);\n}\n\n.ic-switch-input:not([disabled]) + .ic-switch-toggle:active::before {\n box-shadow: 0 0 0 0.75rem var(--ic-action-dark-bg-active);\n}\n\n.ic-switch-input:not([disabled]):checked + .ic-switch-toggle:hover::before {\n box-shadow: 0 0 0 0.75rem var(--ic-action-default-bg-hover);\n}\n\n.ic-switch-input:not([disabled]):checked + .ic-switch-toggle:active::before {\n box-shadow: 0 0 0 0.75rem var(--ic-action-default-bg-active);\n}\n\n.ic-switch-input:focus:not([disabled]) + .ic-switch-toggle,\n.ic-switch-input:focus-visible:not([disabled]) + .ic-switch-toggle {\n box-shadow: 0 0 0 var(--ic-space-1px) var(--ic-architectural-white),\n 0 0 0 0.188rem var(--ic-action-default),\n 0 0 0 0.5rem var(--ic-action-default-active-alpha);\n}\n\n.ic-switch-disabled {\n cursor: default;\n}\n\n.ic-switch-disabled .ic-switch-icon-circle {\n stroke: var(--ic-architectural-300);\n}\n\n.ic-switch-disabled .ic-switch-icon-line {\n stroke: var(--ic-action-default-bg-active);\n}\n\n.ic-switch-input:disabled + .ic-switch-toggle {\n background-color: var(--ic-architectural-80);\n border: var(--ic-border-disabled);\n}\n\n.ic-switch-input:disabled ~ .ic-switch-checked-status {\n color: var(--ic-architectural-300);\n}\n\n.ic-switch-input:disabled + .ic-switch-toggle::before {\n background-color: var(--ic-architectural-300);\n}\n\n.ic-switch-input:disabled:checked + .ic-switch-toggle {\n background-color: var(--ic-status-info-light);\n border: var(--ic-border-width) dashed #98c9f5;\n}\n\n.ic-switch-input:disabled:checked + .ic-switch-toggle::before {\n background-color: var(--ic-architectural-white);\n}\n\n.ic-switch-small {\n gap: var(--ic-space-xxxs);\n}\n\n.ic-switch-small .ic-switch-checked-status {\n padding-left: 0.375rem;\n}\n\n.ic-switch-small .ic-switch-toggle {\n width: var(--ic-space-xxl);\n height: var(--ic-space-lg);\n}\n\n.ic-switch-small .ic-switch-toggle::before {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n left: var(--ic-space-xxs);\n}\n\n.ic-switch-small .ic-switch-input:checked + .ic-switch-toggle::before {\n transform: translate(var(--ic-space-lg), -50%);\n}\n\n::slotted(*) {\n margin-left: var(--ic-space-sm);\n}\n\n::slotted(svg) {\n fill: currentcolor;\n}\n\n@media (forced-colors: active) {\n .ic-switch-toggle::before,\n .ic-switch-input:checked + .ic-switch-toggle {\n border: var(--ic-hc-border);\n }\n\n .ic-switch-input:checked + .ic-switch-toggle::before {\n transform: translate(calc(var(--ic-space-xl) - 0.125rem), -50%);\n }\n\n .ic-switch-input:disabled + .ic-switch-toggle,\n .ic-switch-input:disabled:checked + .ic-switch-toggle,\n .ic-switch-input:disabled + .ic-switch-toggle::before {\n border-color: GrayText;\n }\n\n .ic-switch-input:disabled ~ .ic-switch-checked-status {\n color: GrayText;\n }\n\n .ic-switch-disabled .ic-switch-icon-circle,\n .ic-switch-disabled .ic-switch-icon-line {\n stroke: GrayText;\n }\n}\n","import { Host, h, } from \"@stencil/core\";\nimport { getInputDescribedByText, onComponentRequiredPropUndefined, renderHiddenInput, addFormResetListener, removeFormResetListener, removeDisabledFalse, } from \"../../utils/helpers\";\nlet inputIds = 0;\n/**\n * @slot right-adornment - Content is placed to the right of switch before state label.\n */\nexport class Switch {\n constructor() {\n this.inputId = `ic-switch-input-${inputIds++}`;\n this.handleChange = () => {\n this.checkedState = !this.checkedState;\n this.icChange.emit({\n checked: this.checkedState,\n value: this.value,\n });\n };\n this.onFocus = () => {\n this.icFocus.emit();\n };\n this.onBlur = () => {\n this.icBlur.emit();\n };\n this.handleFormReset = () => {\n this.checkedState = this.initiallyChecked;\n };\n this.checkedState = false;\n this.initiallyChecked = this.checked;\n this.checked = false;\n this.disabled = false;\n this.helperText = \"\";\n this.hideLabel = false;\n this.label = undefined;\n this.name = this.inputId;\n this.showState = false;\n this.size = \"default\";\n this.small = false;\n this.value = \"on\";\n }\n checkedChangeHandler() {\n this.checkedState = this.checked;\n }\n disconnectedCallback() {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n componentWillLoad() {\n this.checkedState = this.checked;\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.label, propName: \"label\" }], \"Switch\");\n }\n /**\n * Sets focus on the switch.\n */\n async setFocus() {\n if (this.el.shadowRoot.querySelector(\"input\")) {\n this.el.shadowRoot.querySelector(\"input\").focus();\n }\n }\n render() {\n const { label, checkedState, small, size, disabled, name, showState, value, hideLabel, helperText, inputId, } = this;\n renderHiddenInput(true, this.el, name, checkedState ? value : \"\", disabled);\n const describedBy = getInputDescribedByText(inputId, helperText !== \"\", false);\n return (h(Host, null, h(\"label\", { class: {\n [\"ic-switch-container\"]: true,\n [\"ic-switch-disabled\"]: disabled,\n [\"ic-switch-small\"]: small || size === \"small\",\n }, htmlFor: inputId }, !hideLabel && (h(\"ic-input-label\", { for: inputId, label: label, helperText: helperText, readonly: true, disabled: disabled, class: {\n [\"ic-switch-label\"]: true,\n [\"ic-switch-label-small\"]: small || size === \"small\",\n } })), !hideLabel && h(\"span\", { class: \"ic-switch-line-break\" }), h(\"input\", { checked: checkedState, disabled: disabled, \"aria-label\": label, \"aria-checked\": checkedState ? \"true\" : \"false\", \"aria-describedby\": describedBy, role: \"switch\", class: \"ic-switch-input\", type: \"checkbox\", name: \"toggle\", id: inputId, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.handleChange }), h(\"span\", { class: \"ic-switch-toggle\" }, h(\"svg\", { class: \"ic-switch-icon\", \"aria-hidden\": \"true\", focusable: \"false\", viewBox: \"0 0 10 10\", xmlns: \"http://www.w3.org/2000/svg\" }, h(\"line\", { class: \"ic-switch-icon-line\", x1: \"9\", y1: small || size === \"small\" ? \"2\" : \"1\", x2: \"9\", y2: small || size === \"small\" ? \"8\" : \"9\" })), h(\"svg\", { class: \"ic-switch-icon\", \"aria-hidden\": \"true\", focusable: \"false\", viewBox: \"0 0 10 10\", xmlns: \"http://www.w3.org/2000/svg\" }, h(\"circle\", { class: \"ic-switch-icon-circle\", fill: \"none\", cx: \"5\", cy: \"5\", r: small || size === \"small\" ? \"3.335\" : \"4.445\" }))), h(\"slot\", { name: \"right-adornment\" }), showState && (h(\"ic-typography\", { \"aria-hidden\": \"true\", variant: \"label\", class: \"ic-switch-checked-status\" }, checkedState ? \"On\" : \"Off\")))));\n }\n static get is() { return \"ic-switch\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-switch.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-switch.css\"]\n };\n }\n static get properties() {\n return {\n \"checked\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the switch will display as checked.\"\n },\n \"attribute\": \"checked\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"helperText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The helper text that will be displayed for additional field guidance.\"\n },\n \"attribute\": \"helper-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"hideLabel\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the label will be hidden and the required label value will be applied as an aria-label.\"\n },\n \"attribute\": \"hide-label\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The aria-label applied to the switch when no visual 'name' is provided.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The name of the control, which is submitted with the form data.\"\n },\n \"attribute\": \"name\",\n \"reflect\": false,\n \"defaultValue\": \"this.inputId\"\n },\n \"showState\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the switch will render the On/Off state text.\"\n },\n \"attribute\": \"show-state\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizesNoLarge\",\n \"resolved\": \"\\\"default\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizesNoLarge\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizesNoLarge\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the switch component.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"small\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This prop should not be used anymore. Set prop `size` to \\\"small\\\" instead.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"small\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"value\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | null\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The value of the toggle does not mean if it's checked or not, use the `checked`\\nproperty for that.\\n\\nThe value of a toggle is analogous to the value of a `<input type=\\\"checkbox\\\">`,\\nit's only used when the toggle participates in a native `<form>`.\"\n },\n \"attribute\": \"value\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"on\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"checkedState\": {},\n \"initiallyChecked\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icBlur\",\n \"name\": \"icBlur\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the toggle loses focus.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icChange\",\n \"name\": \"icChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the value property has changed.\"\n },\n \"complexType\": {\n \"original\": \"IcSwitchChangeEventDetail\",\n \"resolved\": \"IcSwitchChangeEventDetail\",\n \"references\": {\n \"IcSwitchChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-switch.types\",\n \"id\": \"src/components/ic-switch/ic-switch.types.ts::IcSwitchChangeEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"icFocus\",\n \"name\": \"icFocus\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the toggle has focus.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"setFocus\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Sets focus on the switch.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"checked\",\n \"methodName\": \"checkedChangeHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-switch.js.map\n"],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icCheckboxGroupCss","CheckboxGroup","constructor","hostRef","this","disabled","helperText","hideLabel","label","undefined","name","required","size","small","validationStatus","validationText","handleChange","ev","target","tagName","stopImmediatePropagation","componentWillLoad","removeDisabledFalse","el","componentDidLoad","Array","from","querySelectorAll","forEach","checkbox","groupLabel","onComponentRequiredPropUndefined","prop","propName","selectHandler","checkedOptions","filter","checked","icChange","emit","value","map","opt","_a","textFieldValue","querySelector","selectedOption","render","describedBy","getInputDescribedByText","hadValidationStatus","hasValidationStatus","h","Host","class","id","trim","for","ariaLiveMode","status","message"],"sources":["../web-components/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css?tag=ic-checkbox-group&encapsulation=shadow","../web-components/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n:host {\n display: block;\n}\n\nic-input-label.error {\n color: var(--ic-status-error);\n}\n\nic-input-label ic-typography {\n margin-bottom: var(--ic-space-sm);\n}\n\n:host(.small) ic-input-label ic-typography {\n margin-bottom: calc(var(--ic-space-sm) / 2);\n}\n\nic-input-validation {\n margin-top: var(--ic-space-sm);\n}\n\n:host(.small) ic-input-validation {\n margin-top: calc(var(--ic-space-sm) / 2);\n}\n\n.checkboxes-container {\n margin-bottom: calc(-1 * var(--ic-space-xxs));\n}\n\n:host(.small) .checkboxes-container {\n margin-bottom: calc(-1 * var(--ic-space-xxxs));\n}\n\n.screen-reader-only-text {\n position: absolute;\n left: -9999px;\n background-color: #fff;\n color: #000;\n text-transform: none;\n}\n","import { Host, h, } from \"@stencil/core\";\nimport { getInputDescribedByText, hasValidationStatus, onComponentRequiredPropUndefined, removeDisabledFalse, } from \"../../utils/helpers\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class CheckboxGroup {\n constructor() {\n this.disabled = false;\n this.helperText = \"\";\n this.hideLabel = false;\n this.label = undefined;\n this.name = undefined;\n this.required = false;\n this.size = \"default\";\n this.small = false;\n this.validationStatus = \"\";\n this.validationText = \"\";\n }\n handleChange(ev) {\n //don't pass on the event if it has come from slotted text field\n //otherwise any icChange handler bound to the checkbox group will also run\n if (ev.target.tagName === \"IC-TEXT-FIELD\") {\n ev.stopImmediatePropagation();\n }\n }\n componentWillLoad() {\n removeDisabledFalse(this.disabled, this.el);\n }\n componentDidLoad() {\n Array.from(this.el.querySelectorAll(\"ic-checkbox\")).forEach((checkbox) => {\n if (!checkbox.name)\n checkbox.name = this.name;\n checkbox.groupLabel = this.label;\n });\n onComponentRequiredPropUndefined([\n { prop: this.label, propName: \"label\" },\n { prop: this.name, propName: \"name\" },\n ], \"Checkbox Group\");\n }\n selectHandler(ev) {\n const checkedOptions = Array.from(this.el.querySelectorAll(\"ic-checkbox\")).filter((checkbox) => checkbox.checked && !checkbox.disabled);\n this.icChange.emit({\n value: checkedOptions.map((opt) => opt.value),\n checkedOptions: checkedOptions.map((opt) => {\n var _a;\n return ({\n checkbox: opt,\n textFieldValue: (_a = opt.querySelector(\"ic-text-field\")) === null || _a === void 0 ? void 0 : _a.value,\n });\n }),\n selectedOption: ev.target,\n });\n }\n render() {\n const describedBy = getInputDescribedByText(this.name, this.helperText !== \"\", this.validationStatus !== \"\");\n const hadValidationStatus = hasValidationStatus(this.validationStatus, this.disabled);\n return (h(Host, { class: { [\"small\"]: this.small, [`${this.size}`]: true } }, (this.validationStatus === \"error\" ||\n this.required ||\n this.hideLabel) && (h(\"span\", { id: \"screenReaderOnlyText\", class: \"screen-reader-only-text\", \"aria-hidden\": \"true\" }, this.label, \" \", this.validationStatus === \"error\" ? \"invalid data \" : null, \" \", this.required ? \"required\" : null)), h(\"fieldset\", { id: this.name, \"aria-labelledby\": `${this.validationStatus === \"error\" || this.required || this.hideLabel\n ? \"screenReaderOnlyText\"\n : \"\"} ${describedBy}`.trim(), disabled: this.disabled }, !this.hideLabel && (h(\"legend\", null, h(\"ic-input-label\", { class: { [`${this.validationStatus}`]: true }, label: this.label, helperText: this.helperText, required: this.required, disabled: this.disabled, for: this.name }))), h(\"div\", { class: \"checkboxes-container\" }, h(\"slot\", null))), hadValidationStatus && (h(\"ic-input-validation\", { for: this.name, ariaLiveMode: \"polite\", status: this.validationStatus, message: this.validationText }))));\n }\n static get is() { return \"ic-checkbox-group\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-checkbox-group.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-checkbox-group.css\"]\n };\n }\n static get properties() {\n return {\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the checkbox group will be set to the disabled state.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"helperText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The helper text that will be displayed for additional field guidance.\"\n },\n \"attribute\": \"helper-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"hideLabel\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the label will be hidden and the required label value will be applied as an aria-label.\"\n },\n \"attribute\": \"hide-label\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label for the checkbox group to be displayed.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The name for the checkbox group to differentiate from other groups.\"\n },\n \"attribute\": \"name\",\n \"reflect\": false\n },\n \"required\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the checkbox group will require a value.\"\n },\n \"attribute\": \"required\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"default\\\" | \\\"large\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the checkboxes to be displayed. This does not affect the font size of the label.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"small\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This prop should not be used anymore. Set prop `size` to \\\"small\\\" instead.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"small\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"validationStatus\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcInformationStatusOrEmpty\",\n \"resolved\": \"\\\"\\\" | \\\"error\\\" | \\\"success\\\" | \\\"warning\\\"\",\n \"references\": {\n \"IcInformationStatusOrEmpty\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcInformationStatusOrEmpty\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation status - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"attribute\": \"validation-status\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"validationText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation text - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"attribute\": \"validation-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n }\n };\n }\n static get events() {\n return [{\n \"method\": \"icChange\",\n \"name\": \"icChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when a checkbox is checked.\"\n },\n \"complexType\": {\n \"original\": \"IcChangeEventDetail\",\n \"resolved\": \"IcChangeEventDetail\",\n \"references\": {\n \"IcChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-checkbox-group.types\",\n \"id\": \"src/components/ic-checkbox-group/ic-checkbox-group.types.ts::IcChangeEventDetail\"\n }\n }\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"icChange\",\n \"method\": \"handleChange\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"icCheck\",\n \"method\": \"selectHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-checkbox-group.js.map\n"],"mappings":"iJAAA,MAAMA,EAAqB,47F,MCGdC,EAAa,MACtB,WAAAC,CAAAC,G,6CACIC,KAAKC,SAAW,MAChBD,KAAKE,WAAa,GAClBF,KAAKG,UAAY,MACjBH,KAAKI,MAAQC,UACbL,KAAKM,KAAOD,UACZL,KAAKO,SAAW,MAChBP,KAAKQ,KAAO,UACZR,KAAKS,MAAQ,MACbT,KAAKU,iBAAmB,GACxBV,KAAKW,eAAiB,E,CAE1B,YAAAC,CAAaC,GAGT,GAAIA,EAAGC,OAAOC,UAAY,gBAAiB,CACvCF,EAAGG,0B,EAGX,iBAAAC,GACIC,EAAoBlB,KAAKC,SAAUD,KAAKmB,G,CAE5C,gBAAAC,GACIC,MAAMC,KAAKtB,KAAKmB,GAAGI,iBAAiB,gBAAgBC,SAASC,IACzD,IAAKA,EAASnB,KACVmB,EAASnB,KAAON,KAAKM,KACzBmB,EAASC,WAAa1B,KAAKI,KAAK,IAEpCuB,EAAiC,CAC7B,CAAEC,KAAM5B,KAAKI,MAAOyB,SAAU,SAC9B,CAAED,KAAM5B,KAAKM,KAAMuB,SAAU,SAC9B,iB,CAEP,aAAAC,CAAcjB,GACV,MAAMkB,EAAiBV,MAAMC,KAAKtB,KAAKmB,GAAGI,iBAAiB,gBAAgBS,QAAQP,GAAaA,EAASQ,UAAYR,EAASxB,WAC9HD,KAAKkC,SAASC,KAAK,CACfC,MAAOL,EAAeM,KAAKC,GAAQA,EAAIF,QACvCL,eAAgBA,EAAeM,KAAKC,IAChC,IAAIC,EACJ,OACId,SAAUa,EACVE,gBAAiBD,EAAKD,EAAIG,cAAc,oBAAsB,MAAQF,SAAY,OAAS,EAAIA,EAAGH,MACrG,IAELM,eAAgB7B,EAAGC,Q,CAG3B,MAAA6B,GACI,MAAMC,EAAcC,EAAwB7C,KAAKM,KAAMN,KAAKE,aAAe,GAAIF,KAAKU,mBAAqB,IACzG,MAAMoC,EAAsBC,EAAoB/C,KAAKU,iBAAkBV,KAAKC,UAC5E,OAAQ+C,EAAEC,EAAM,CAAEC,MAAO,CAAE,CAAC,SAAUlD,KAAKS,MAAO,CAAC,GAAGT,KAAKQ,QAAS,QAAWR,KAAKU,mBAAqB,SACrGV,KAAKO,UACLP,KAAKG,YAAe6C,EAAE,OAAQ,CAAEG,GAAI,uBAAwBD,MAAO,0BAA2B,cAAe,QAAUlD,KAAKI,MAAO,IAAKJ,KAAKU,mBAAqB,QAAU,gBAAkB,KAAM,IAAKV,KAAKO,SAAW,WAAa,MAAQyC,EAAE,WAAY,CAAEG,GAAInD,KAAKM,KAAM,kBAAmB,GAAGN,KAAKU,mBAAqB,SAAWV,KAAKO,UAAYP,KAAKG,UACxV,uBACA,MAAMyC,IAAcQ,OAAQnD,SAAUD,KAAKC,WAAaD,KAAKG,WAAc6C,EAAE,SAAU,KAAMA,EAAE,iBAAkB,CAAEE,MAAO,CAAE,CAAC,GAAGlD,KAAKU,oBAAqB,MAAQN,MAAOJ,KAAKI,MAAOF,WAAYF,KAAKE,WAAYK,SAAUP,KAAKO,SAAUN,SAAUD,KAAKC,SAAUoD,IAAKrD,KAAKM,QAAW0C,EAAE,MAAO,CAAEE,MAAO,wBAA0BF,EAAE,OAAQ,QAASF,GAAwBE,EAAE,sBAAuB,CAAEK,IAAKrD,KAAKM,KAAMgD,aAAc,SAAUC,OAAQvD,KAAKU,iBAAkB8C,QAASxD,KAAKW,iB"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,h as e,g as i}from"./p-8455d1bb.js";const a=`<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24">\n <path d="M9 3 5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"></path>\n</svg>`;const s=`<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" style="transform: rotate(-90deg);">\n <path d="M16.01 11H4v2h12.01v3L20 12l-3.99-4z"></path>\n</svg>`;const n=`<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" style="transform: rotate(90deg)">\n <path d="M16.01 11H4v2h12.01v3L20 12l-3.99-4z"></path>\n</svg>`;const r=':host{position:relative;display:block;height:100%;max-height:100%}.table-container{position:relative;height:calc(100% - var(--ic-space-xxxs))}.table-row-container{position:relative;height:100%;overflow:auto;transition:var(--ic-easing-transition-fast);overflow-anchor:none}:host([show-pagination="true"]) .table-row-container{height:calc(100% - 3.5625rem)}table{table-layout:fixed;border-spacing:0;width:100%}.table-row-container:focus{outline:none;box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-fast);z-index:1}:host([embedded="true"]) .table-container{border:var(--ic-border-light)}.column-header-sticky{position:sticky;top:0;z-index:1}.column-header-overlay{position:sticky;top:0;z-index:1;box-shadow:0 0.375rem var(--ic-space-xs) calc(var(--ic-space-xxs * -1))\n rgb(0 0 0 / 20%)}.row-header-sticky{position:sticky;left:0}.column-header,.table-row{box-sizing:border-box}.table-row-selected{background-color:var(--ic-table-row-selected) !important}.sort-button{margin-left:auto}.sort-button:hover{background-color:var(--ic-action-dark-bg-hover)}.sort-button:active{background-color:var(--ic-action-dark-bg-active)}.sort-button svg{color:var(--ic-architectural-black)}.sort-button-unsorted svg{color:var(--ic-color-tertiary-text)}.table-density-dense{padding:var(--ic-space-xxs) var(--ic-space-xs) !important}.text-dense{font-size:var(--ic-font-size-label)}.table-density-spacious{padding:0.625rem var(--ic-space-xs) !important}.text-spacious{font-size:1.125rem}.column-header-text{font-weight:var(--ic-font-weight-bold)}.column-header,.row-header{text-align:left;padding:var(--ic-space-xs);background-color:var(--ic-architectural-40);border-right:var(--ic-border-light);border-bottom:var(--ic-border-light)}.column-header:last-child{border-right:none}.scrollable .column-header:last-child{border-right:var(--ic-border-light) !important}:host([embedded="true"]) tr:last-child .table-cell,:host([embedded="true"]) tr:last-child .row-header{border-bottom:none}.column-header-alignment-left,.row-header-alignment-left,.cell-alignment-left{text-align:left !important}.column-header-alignment-right,.row-header-alignment-right,.cell-alignment-right{text-align:right !important}.column-header-alignment-center,.row-header-alignment-center,.cell-alignment-center{text-align:center !important}.table-row:nth-child(even){background-color:var(--ic-architectural-20)}.table-cell{padding:var(--ic-space-xs);border-bottom:solid var(--ic-architectural-100) var(--ic-space-1px)}.data-type-string{text-align:left;vertical-align:top}.data-type-number,.data-type-date{text-align:right;vertical-align:top}.cell-alignment-top{vertical-align:top}.cell-alignment-middle{vertical-align:middle}.cell-alignment-bottom{vertical-align:bottom}.cell-emphasis-low{color:var(--ic-color-secondary-text)}.cell-emphasis-high{font-weight:var(--ic-font-weight-bold)}.pagination-container{background-color:var(--ic-architectural-40);border-top:var(--ic-border-light)}.screen-reader-sort-text,.table-caption{position:absolute;left:-100rem}.table-cell,.column-header,.row-header{word-wrap:break-word;white-space:pre-wrap}@media screen and (min-width: 576px){.column-header-inner-container{display:flex;align-items:center}}';const o=class{constructor(i){t(this,i);this.SORT_ICONS={unsorted:a,ascending:s,descending:n};this.isObject=t=>typeof t==="object";this.notDefaultDensity=()=>this.density!=="default";this.getCellContent=(t,e)=>{switch(e){case"element":return undefined;case"date":return(t instanceof Date?t:new Date(t)).toLocaleDateString();default:return t}};this.getCellAlignment=(t,e)=>{if(this.isObject(t)&&Object.keys(t).includes("cellAlignment")){return this.getObjectValue(this.getObjectValue(t,"cellAlignment"),e)}};this.createCells=t=>{const i=Object.values(t);const a=Object.keys(t);let s;let n;const r=a.indexOf("header");if(r>-1){s=this.getObjectValue(i[r],"rowAlignment");n=this.getObjectValue(i[r],"emphasis")}return i.map(((t,i)=>{const{columnAlignment:r,dataType:o,emphasis:l}=this.columns[i];const h=e=>this.getObjectValue(t,e);return a[i]==="header"?e("th",{scope:"row",colSpan:h("colspan"),class:{["row-header"]:true,[`row-header-alignment-${h("cellAlignment")}`]:!!h("cellAlignment"),["row-header-sticky"]:this.stickyRowHeaders}},h("title")):e("td",{innerHTML:o==="element"?t:null,class:{["table-cell"]:true,[`table-density-${this.density}`]:this.notDefaultDensity(),[`data-type-${o}`]:true,[`cell-alignment-${(r===null||r===void 0?void 0:r.horizontal)||this.getCellAlignment(t,"horizontal")}`]:!!(r===null||r===void 0?void 0:r.horizontal)||!!this.getCellAlignment(t,"horizontal"),[`cell-alignment-${(r===null||r===void 0?void 0:r.vertical)||s||this.getCellAlignment(t,"vertical")}`]:!!(r===null||r===void 0?void 0:r.vertical)||!!s||!!this.getCellAlignment(t,"vertical")}},e("ic-typography",{variant:"body",class:{[`cell-emphasis-${this.isObject(t)&&h("emphasis")||l||n}`]:this.isObject(t)&&!!h("emphasis")||!!l||!!n,[`text-${this.density}`]:this.notDefaultDensity()}},this.isObject(t)&&o!=="date"?Object.keys(t).includes("href")?e("ic-link",{href:h("href")},h("data")):h("data"):this.getCellContent(t,o)))}))};this.createColumnHeaders=()=>this.columns.map((({cellAlignment:t,colspan:i,key:a,title:s})=>e("th",{scope:"col",class:{["column-header"]:true,[`column-header-alignment-${t}`]:!!t,[`table-density-${this.density}`]:this.notDefaultDensity()},colSpan:i},this.sortable?e("div",{class:"column-header-inner-container"},e("ic-typography",{variant:"body",class:{["column-header-text"]:true,[`text-${this.density}`]:this.notDefaultDensity()}},s),e("ic-button",{variant:"icon",id:`sort-button-${a}`,"aria-label":this.getSortButtonLabel(a),onClick:()=>this.sortRows(a),innerHTML:this.SORT_ICONS[this.sortedColumn===a?this.sortedColumnOrder:"unsorted"],class:{["sort-button"]:true,["sort-button-unsorted"]:this.sortedColumn!==a||this.sortedColumnOrder==="unsorted"}})):e("ic-typography",{variant:"body",class:{["column-header-text"]:true,[`text-${this.density}`]:this.notDefaultDensity()}},s))));this.createRows=()=>{const t=this.showPagination?this.data.slice(this.fromRow,this.toRow):this.data.slice();return t.sort(!this.sortable?undefined:this.getSortFunction()).map((t=>e("tr",{onClick:()=>this.selectedRow=this.selectedRow!==t&&t,class:{["table-row"]:true,["table-row-selected"]:this.selectedRow===t}},this.createCells(t))))};this.getObjectValue=(t,e)=>Object.values(t)[Object.keys(t).indexOf(e)];this.getSortButtonLabel=t=>{let e="";const i=t=>{const e=this.sortOptions.sortOrders;return e[(e.indexOf(t)+1)%e.length]};if(this.sortedColumn===t){const t=i(this.sortedColumnOrder);e=t!=="unsorted"?`Sort ${t}`:"Remove sort"}else{e=`Sort ${i("unsorted")}`}return e};this.getComparison=(t,e)=>{const i=t[this.sortedColumn];const a=e[this.sortedColumn];return this.columns.find((t=>t.key===this.sortedColumn)).dataType==="date"?new Date(i).valueOf()-new Date(a).valueOf():String(this.isObject(i)?Object.values(i)[0]:i).localeCompare(String(this.isObject(a)?Object.values(a)[0]:a),undefined,{numeric:true,sensitivity:"base"})};this.getSortFunction=()=>{switch(this.sortedColumnOrder){case"ascending":return(t,e)=>this.getComparison(t,e);case"descending":return(t,e)=>this.getComparison(e,t);default:return undefined}};this.sortRows=t=>{const e=this.el.shadowRoot.querySelector(`#sort-button-${t}`);const i=this.sortOptions.sortOrders;if(t!==this.sortedColumn){if(this.sortedColumn){const e=this.el.shadowRoot.querySelector(`#sort-button-${this.sortedColumn}`);e.setAttribute("aria-label",this.getSortButtonLabel(t))}this.sortedColumn=t;this.sortedColumnOrder="unsorted"}let a=i.indexOf(this.sortedColumnOrder)+1;if(a>i.length-1){a=0}this.sortedColumnOrder=i[a];e.setAttribute("aria-label",this.getSortButtonLabel(t))};this.updateScrollOffset=()=>{this.scrollOffset=this.el.shadowRoot.querySelector(".table-row-container").scrollTop};this.fromRow=0;this.previousRowsPerPage=undefined;this.rowsPerPage=undefined;this.scrollable=false;this.scrollOffset=0;this.selectedRow=undefined;this.sortedColumn=undefined;this.sortedColumnOrder=undefined;this.toRow=undefined;this.caption=undefined;this.columns=undefined;this.data=undefined;this.density="default";this.embedded=false;this.hideColumnHeaders=false;this.paginationOptions={itemsPerPage:[{label:"10",value:"10"},{label:"25",value:"25"},{label:"50",value:"50"}],type:"page",control:"simple",itemsPerPageControl:true,goToPageControl:true,alignment:"right"};this.showPagination=false;this.sortable=false;this.sortOptions={sortOrders:["unsorted","ascending","descending"],defaultColumn:""};this.stickyColumnHeaders=false;this.stickyRowHeaders=false}componentWillLoad(){this.rowsPerPage=Number(this.paginationOptions.itemsPerPage[0].value);this.previousRowsPerPage=this.rowsPerPage;this.toRow=this.rowsPerPage;this.sortedColumn=this.sortOptions.defaultColumn;this.sortedColumnOrder=this.sortOptions.sortOrders[0]}componentDidLoad(){const t=this.el.shadowRoot.querySelector("table");const e=this.el.shadowRoot.querySelector(".table-container");if((t===null||t===void 0?void 0:t.clientHeight)>(e===null||e===void 0?void 0:e.clientHeight)||(t===null||t===void 0?void 0:t.clientWidth)>(e===null||e===void 0?void 0:e.clientWidth)){this.scrollable=true}}handleItemsPerPageChange(t){this.previousRowsPerPage=this.rowsPerPage;this.rowsPerPage=t.detail.value}handlePageChange(t){this.fromRow=(t.detail.value-1)*this.rowsPerPage;this.toRow=this.fromRow+this.rowsPerPage;const e=this.el.shadowRoot.querySelector(".table-row-container");if(this.previousRowsPerPage===this.rowsPerPage){e.scrollTop=0}else if(this.previousRowsPerPage<this.rowsPerPage){e.scrollTop=this.scrollOffset;this.previousRowsPerPage=this.rowsPerPage}else{this.previousRowsPerPage=this.rowsPerPage}}clickListener(t){if(t.target!==this.el)this.selectedRow=undefined}render(){const{caption:t,createColumnHeaders:i,createRows:a,data:s,hideColumnHeaders:n,paginationOptions:r,scrollable:o,scrollOffset:l,showPagination:h,sortable:c,sortedColumnOrder:d,sortedColumn:u,stickyColumnHeaders:g,updateScrollOffset:b}=this;return e("div",{class:"table-container"},e("div",{class:{["table-row-container"]:true,scrollable:o},tabIndex:o?0:null,onScroll:b},e("table",null,e("caption",{class:"table-caption"},t),!n&&e("thead",{class:{["column-header-sticky"]:g,["column-header-overlay"]:g&&l!==0}},e("tr",null,i())),(s===null||s===void 0?void 0:s.length)>0&&e("tbody",null,a()))),h&&e("div",{class:"pagination-container"},e("ic-pagination-bar",{totalItems:s.length,paginationType:r.type,paginationControl:r.control,showItemsPerPageControl:r.itemsPerPageControl,showGoToPageControl:r.goToPageControl,itemsPerPageOptions:r.itemsPerPage,alignment:r.alignment})),c&&e("div",{class:"screen-reader-sort-text","aria-live":"polite"},d!=="unsorted"&&u?`${u} sorted ${d}`:"table unsorted"))}get el(){return i(this)}};o.style=r;export{o as ic_data_table};
|
2
|
-
//# sourceMappingURL=p-e189f1d0.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icDataTableCss","DataTable","this","SORT_ICONS","unsorted","unsortedIcon","ascending","ascendingIcon","descending","descendingIcon","isObject","value","notDefaultDensity","density","getCellContent","cell","dataType","undefined","Date","toLocaleDateString","getCellAlignment","alignment","Object","keys","includes","getObjectValue","createCells","row","rowValues","values","rowKeys","rowAlignment","rowEmphasis","headerIndex","indexOf","map","index","columnAlignment","emphasis","columns","cellValue","key","h","scope","colSpan","class","stickyRowHeaders","innerHTML","horizontal","vertical","variant","href","createColumnHeaders","cellAlignment","colspan","title","sortable","id","getSortButtonLabel","onClick","sortRows","sortedColumn","sortedColumnOrder","createRows","data","showPagination","slice","fromRow","toRow","sort","getSortFunction","selectedRow","label","getNextSortOption","option","sortOrders","sortOptions","length","sortOption","getComparison","targetRow","comparisonRow","targetRowValue","comparisonRowValue","find","col","valueOf","String","localeCompare","numeric","sensitivity","a","b","column","sortButton","el","shadowRoot","querySelector","previousSortedButton","setAttribute","nextSortOrderIndex","updateScrollOffset","scrollOffset","scrollTop","itemsPerPage","type","control","itemsPerPageControl","goToPageControl","defaultColumn","componentWillLoad","rowsPerPage","Number","paginationOptions","previousRowsPerPage","componentDidLoad","tableElement","tableContainer","clientHeight","clientWidth","scrollable","handleItemsPerPageChange","ev","detail","handlePageChange","tableRowsContainer","clickListener","target","render","caption","hideColumnHeaders","stickyColumnHeaders","tabIndex","onScroll","totalItems","paginationType","paginationControl","showItemsPerPageControl","showGoToPageControl","itemsPerPageOptions"],"sources":["src/components/ic-data-table/ic-data-table.css?tag=ic-data-table&encapsulation=shadow","src/components/ic-data-table/ic-data-table.tsx"],"sourcesContent":[":host {\n position: relative;\n display: block;\n height: 100%;\n max-height: 100%;\n}\n\n.table-container {\n position: relative;\n height: calc(100% - var(--ic-space-xxxs));\n}\n\n.table-row-container {\n position: relative;\n height: 100%;\n overflow: auto;\n transition: var(--ic-easing-transition-fast);\n overflow-anchor: none;\n}\n\n:host([show-pagination=\"true\"]) .table-row-container {\n height: calc(100% - 3.5625rem);\n}\n\ntable {\n table-layout: fixed;\n border-spacing: 0;\n width: 100%;\n}\n\n.table-row-container:focus {\n outline: none;\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-fast);\n z-index: 1;\n}\n\n:host([embedded=\"true\"]) .table-container {\n border: var(--ic-border-light);\n}\n\n.column-header-sticky {\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.column-header-overlay {\n position: sticky;\n top: 0;\n z-index: 1;\n box-shadow: 0 0.375rem var(--ic-space-xs) calc(var(--ic-space-xxs * -1))\n rgb(0 0 0 / 20%);\n}\n\n.row-header-sticky {\n position: sticky;\n left: 0;\n}\n\n.column-header,\n.table-row {\n box-sizing: border-box;\n}\n\n.table-row-selected {\n background-color: var(--ic-table-row-selected) !important;\n}\n\n.sort-button {\n margin-left: auto;\n}\n\n.sort-button:hover {\n background-color: var(--ic-action-dark-bg-hover);\n}\n\n.sort-button:active {\n background-color: var(--ic-action-dark-bg-active);\n}\n\n.sort-button svg {\n color: var(--ic-architectural-black);\n}\n\n.sort-button-unsorted svg {\n color: var(--ic-color-tertiary-text);\n}\n\n.table-density-dense {\n padding: var(--ic-space-xxs) var(--ic-space-xs) !important;\n}\n\n.text-dense {\n font-size: var(--ic-font-size-label);\n}\n\n.table-density-spacious {\n padding: 0.625rem var(--ic-space-xs) !important;\n}\n\n.text-spacious {\n font-size: 1.125rem;\n}\n\n.column-header-text {\n font-weight: var(--ic-font-weight-bold);\n}\n\n.column-header,\n.row-header {\n text-align: left;\n padding: var(--ic-space-xs);\n background-color: var(--ic-architectural-40);\n border-right: var(--ic-border-light);\n border-bottom: var(--ic-border-light);\n}\n\n.column-header:last-child {\n border-right: none;\n}\n\n.scrollable .column-header:last-child {\n border-right: var(--ic-border-light) !important;\n}\n\n:host([embedded=\"true\"]) tr:last-child .table-cell,\n:host([embedded=\"true\"]) tr:last-child .row-header {\n border-bottom: none;\n}\n\n.column-header-alignment-left,\n.row-header-alignment-left,\n.cell-alignment-left {\n text-align: left !important;\n}\n\n.column-header-alignment-right,\n.row-header-alignment-right,\n.cell-alignment-right {\n text-align: right !important;\n}\n\n.column-header-alignment-center,\n.row-header-alignment-center,\n.cell-alignment-center {\n text-align: center !important;\n}\n\n.table-row:nth-child(even) {\n background-color: var(--ic-architectural-20);\n}\n\n.table-cell {\n padding: var(--ic-space-xs);\n border-bottom: solid var(--ic-architectural-100) var(--ic-space-1px);\n}\n\n.data-type-string {\n text-align: left;\n vertical-align: top;\n}\n\n.data-type-number,\n.data-type-date {\n text-align: right;\n vertical-align: top;\n}\n\n.cell-alignment-top {\n vertical-align: top;\n}\n\n.cell-alignment-middle {\n vertical-align: middle;\n}\n\n.cell-alignment-bottom {\n vertical-align: bottom;\n}\n\n.cell-emphasis-low {\n color: var(--ic-color-secondary-text);\n}\n\n.cell-emphasis-high {\n font-weight: var(--ic-font-weight-bold);\n}\n\n.pagination-container {\n background-color: var(--ic-architectural-40);\n border-top: var(--ic-border-light);\n}\n\n.screen-reader-sort-text,\n.table-caption {\n position: absolute;\n left: -100rem;\n}\n\n.table-cell,\n.column-header,\n.row-header {\n word-wrap: break-word;\n white-space: pre-wrap;\n}\n\n@media screen and (min-width: 576px) {\n .column-header-inner-container {\n display: flex;\n align-items: center;\n }\n}\n","import { Component, Element, h, Prop, State, Listen } from \"@stencil/core\";\nimport unsortedIcon from \"./assets/unsorted-icon.svg\";\nimport ascendingIcon from \"./assets/ascending-icon.svg\";\nimport descendingIcon from \"./assets/descending-icon.svg\";\nimport {\n IcDataTableColumnDataTypes,\n IcDataTableColumnObject,\n IcDataTableDensityOptions,\n IcDataTableSortOrderOptions,\n} from \"./ic-data-table.types\";\nimport {\n IcPaginationAlignmentOptions,\n IcPaginationControlTypes,\n IcPaginationTypes,\n} from \"../ic-pagination/ic-pagination.types\";\n\n@Component({\n tag: \"ic-data-table\",\n styleUrl: \"ic-data-table.css\",\n shadow: true,\n})\nexport class DataTable {\n private SORT_ICONS = {\n unsorted: unsortedIcon,\n ascending: ascendingIcon,\n descending: descendingIcon,\n };\n\n @Element() el: HTMLIcDataTableElement;\n\n @State() fromRow: number = 0;\n\n @State() previousRowsPerPage: number;\n\n @State() rowsPerPage: number;\n\n @State() scrollable: boolean = false;\n\n @State() scrollOffset: number = 0;\n\n @State() selectedRow: object;\n\n @State() sortedColumn: string;\n\n @State() sortedColumnOrder: IcDataTableSortOrderOptions;\n\n @State() toRow: number;\n\n /**\n * The title for the table only visible to screen readers.\n */\n @Prop() caption!: string;\n\n /**\n * The column headers for the table.\n */\n @Prop() columns!: IcDataTableColumnObject[];\n\n /**\n * The row content for the table.\n */\n @Prop() data: { [key: string]: any }[];\n\n /**\n * Set the density of the table including font and padding.\n */\n @Prop() density?: IcDataTableDensityOptions = \"default\";\n\n /**\n * Applies a border to the table container.\n */\n @Prop() embedded?: boolean = false;\n\n /**\n * If `true`, column headers will not be visible.\n */\n @Prop() hideColumnHeaders?: boolean = false;\n\n /**\n * Sets the props for the pagination bar.\n */\n @Prop() paginationOptions?: {\n itemsPerPage?: { label: string; value: string }[];\n type?: IcPaginationTypes;\n control?: IcPaginationControlTypes;\n itemsPerPageControl?: boolean;\n goToPageControl?: boolean;\n alignment?: IcPaginationAlignmentOptions;\n } = {\n itemsPerPage: [\n { label: \"10\", value: \"10\" },\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n ],\n type: \"page\",\n control: \"simple\",\n itemsPerPageControl: true,\n goToPageControl: true,\n alignment: \"right\",\n };\n\n /**\n * If `true`, adds a pagination bar to the bottom of the table.\n */\n @Prop() showPagination?: boolean = false;\n\n /**\n * If `true`, allows table columns to be sorted using applied sort buttons.\n */\n @Prop() sortable?: boolean = false;\n\n /**\n * Sets the order columns will be sorted in and allows for 'default' sorts to be added.\n */\n @Prop() sortOptions?: {\n sortOrders: IcDataTableSortOrderOptions[];\n defaultColumn?: string;\n } = {\n sortOrders: [\"unsorted\", \"ascending\", \"descending\"],\n defaultColumn: \"\",\n };\n\n /**\n * If `true`, column headers will remain at the top of the table when scrolling vertically.\n */\n @Prop() stickyColumnHeaders?: boolean = false;\n\n /**\n * If `true`, row headers will remain to the left when scrolling horizontally.\n */\n @Prop() stickyRowHeaders?: boolean = false;\n\n componentWillLoad(): void {\n this.rowsPerPage = Number(this.paginationOptions.itemsPerPage[0].value);\n this.previousRowsPerPage = this.rowsPerPage;\n this.toRow = this.rowsPerPage;\n this.sortedColumn = this.sortOptions.defaultColumn;\n this.sortedColumnOrder = this.sortOptions.sortOrders[0];\n }\n\n componentDidLoad(): void {\n const tableElement = this.el.shadowRoot.querySelector(\"table\");\n const tableContainer = this.el.shadowRoot.querySelector(\".table-container\");\n if (\n tableElement?.clientHeight > tableContainer?.clientHeight ||\n tableElement?.clientWidth > tableContainer?.clientWidth\n ) {\n this.scrollable = true;\n }\n }\n\n @Listen(\"icItemsPerPageChange\")\n handleItemsPerPageChange(ev: CustomEvent): void {\n this.previousRowsPerPage = this.rowsPerPage;\n this.rowsPerPage = ev.detail.value;\n }\n\n @Listen(\"icPageChange\")\n handlePageChange(ev: CustomEvent): void {\n this.fromRow = (ev.detail.value - 1) * this.rowsPerPage;\n this.toRow = this.fromRow + this.rowsPerPage;\n const tableRowsContainer = this.el.shadowRoot.querySelector(\n \".table-row-container\"\n );\n if (this.previousRowsPerPage === this.rowsPerPage) {\n tableRowsContainer.scrollTop = 0;\n } else if (this.previousRowsPerPage < this.rowsPerPage) {\n tableRowsContainer.scrollTop = this.scrollOffset;\n this.previousRowsPerPage = this.rowsPerPage;\n } else {\n this.previousRowsPerPage = this.rowsPerPage;\n }\n }\n\n @Listen(\"click\", { target: \"window\" })\n clickListener(ev: MouseEvent): void {\n if (ev.target !== this.el) this.selectedRow = undefined;\n }\n\n private isObject = (value: any) => typeof value === \"object\";\n\n private notDefaultDensity = () => this.density !== \"default\";\n\n private getCellContent = (\n cell: any,\n dataType: IcDataTableColumnDataTypes\n ): any => {\n switch (dataType) {\n case \"element\":\n return undefined;\n case \"date\":\n return (\n cell instanceof Date ? cell : new Date(cell)\n ).toLocaleDateString();\n default:\n return cell;\n }\n };\n\n private getCellAlignment = (\n cell: any,\n alignment: \"horizontal\" | \"vertical\"\n ) => {\n if (this.isObject(cell) && Object.keys(cell).includes(\"cellAlignment\")) {\n return this.getObjectValue(\n this.getObjectValue(cell, \"cellAlignment\"),\n alignment\n );\n }\n };\n\n private createCells = (row: object) => {\n const rowValues = Object.values(row);\n const rowKeys = Object.keys(row);\n let rowAlignment: string;\n let rowEmphasis: string;\n const headerIndex = rowKeys.indexOf(\"header\");\n if (headerIndex > -1) {\n rowAlignment = this.getObjectValue(\n rowValues[headerIndex],\n \"rowAlignment\"\n );\n rowEmphasis = this.getObjectValue(rowValues[headerIndex], \"emphasis\");\n }\n return rowValues.map((cell, index) => {\n const { columnAlignment, dataType, emphasis } = this.columns[index];\n const cellValue = (key: string) => this.getObjectValue(cell, key);\n\n return rowKeys[index] === \"header\" ? (\n <th\n scope=\"row\"\n colSpan={cellValue(\"colspan\")}\n class={{\n [\"row-header\"]: true,\n [`row-header-alignment-${cellValue(\"cellAlignment\")}`]:\n !!cellValue(\"cellAlignment\"),\n [\"row-header-sticky\"]: this.stickyRowHeaders,\n }}\n >\n {cellValue(\"title\")}\n </th>\n ) : (\n <td\n innerHTML={dataType === \"element\" ? (cell as string) : null}\n class={{\n [\"table-cell\"]: true,\n [`table-density-${this.density}`]: this.notDefaultDensity(),\n [`data-type-${dataType}`]: true,\n [`cell-alignment-${\n columnAlignment?.horizontal ||\n this.getCellAlignment(cell, \"horizontal\")\n }`]:\n !!columnAlignment?.horizontal ||\n !!this.getCellAlignment(cell, \"horizontal\"),\n [`cell-alignment-${\n columnAlignment?.vertical ||\n rowAlignment ||\n this.getCellAlignment(cell, \"vertical\")\n }`]:\n !!columnAlignment?.vertical ||\n !!rowAlignment ||\n !!this.getCellAlignment(cell, \"vertical\"),\n }}\n >\n <ic-typography\n variant=\"body\"\n class={{\n [`cell-emphasis-${\n (this.isObject(cell) && cellValue(\"emphasis\")) ||\n emphasis ||\n rowEmphasis\n }`]:\n (this.isObject(cell) && !!cellValue(\"emphasis\")) ||\n !!emphasis ||\n !!rowEmphasis,\n [`text-${this.density}`]: this.notDefaultDensity(),\n }}\n >\n {this.isObject(cell) && dataType !== \"date\" ? (\n Object.keys(cell).includes(\"href\") ? (\n <ic-link href={cellValue(\"href\")}>{cellValue(\"data\")}</ic-link>\n ) : (\n cellValue(\"data\")\n )\n ) : (\n this.getCellContent(cell, dataType)\n )}\n </ic-typography>\n </td>\n );\n });\n };\n\n private createColumnHeaders = () => {\n return this.columns.map(({ cellAlignment, colspan, key, title }) => (\n <th\n scope=\"col\"\n class={{\n [\"column-header\"]: true,\n [`column-header-alignment-${cellAlignment}`]: !!cellAlignment,\n [`table-density-${this.density}`]: this.notDefaultDensity(),\n }}\n colSpan={colspan}\n >\n {this.sortable ? (\n <div class=\"column-header-inner-container\">\n <ic-typography\n variant=\"body\"\n class={{\n [\"column-header-text\"]: true,\n [`text-${this.density}`]: this.notDefaultDensity(),\n }}\n >\n {title}\n </ic-typography>\n <ic-button\n variant=\"icon\"\n id={`sort-button-${key}`}\n aria-label={this.getSortButtonLabel(key)}\n // eslint-disable-next-line react/jsx-no-bind\n onClick={() => this.sortRows(key)}\n innerHTML={\n this.SORT_ICONS[\n this.sortedColumn === key\n ? this.sortedColumnOrder\n : \"unsorted\"\n ]\n }\n class={{\n [\"sort-button\"]: true,\n [\"sort-button-unsorted\"]:\n this.sortedColumn !== key ||\n this.sortedColumnOrder === \"unsorted\",\n }}\n ></ic-button>\n </div>\n ) : (\n <ic-typography\n variant=\"body\"\n class={{\n [\"column-header-text\"]: true,\n [`text-${this.density}`]: this.notDefaultDensity(),\n }}\n >\n {title}\n </ic-typography>\n )}\n </th>\n ));\n };\n\n private createRows = () => {\n const data = this.showPagination\n ? this.data.slice(this.fromRow, this.toRow)\n : this.data.slice();\n return data\n .sort(!this.sortable ? undefined : this.getSortFunction())\n .map((row) => (\n <tr\n onClick={() => (this.selectedRow = this.selectedRow !== row && row)}\n class={{\n [\"table-row\"]: true,\n [\"table-row-selected\"]: this.selectedRow === row,\n }}\n >\n {this.createCells(row)}\n </tr>\n ));\n };\n\n private getObjectValue = (cell: object, key: string) => {\n return Object.values(cell)[Object.keys(cell).indexOf(key)];\n };\n\n private getSortButtonLabel = (key: string) => {\n let label = \"\";\n const getNextSortOption = (option: IcDataTableSortOrderOptions) => {\n const sortOrders = this.sortOptions.sortOrders;\n return sortOrders[(sortOrders.indexOf(option) + 1) % sortOrders.length];\n };\n\n if (this.sortedColumn === key) {\n const sortOption = getNextSortOption(this.sortedColumnOrder);\n label = sortOption !== \"unsorted\" ? `Sort ${sortOption}` : \"Remove sort\";\n } else {\n label = `Sort ${getNextSortOption(\"unsorted\")}`;\n }\n\n return label;\n };\n\n private getComparison = (targetRow: any, comparisonRow: any): number => {\n const targetRowValue = targetRow[this.sortedColumn];\n const comparisonRowValue = comparisonRow[this.sortedColumn];\n return this.columns.find((col) => col.key === this.sortedColumn)\n .dataType === \"date\"\n ? new Date(targetRowValue).valueOf() -\n new Date(comparisonRowValue).valueOf()\n : String(\n this.isObject(targetRowValue)\n ? Object.values(targetRowValue)[0]\n : targetRowValue\n ).localeCompare(\n String(\n this.isObject(comparisonRowValue)\n ? Object.values(comparisonRowValue)[0]\n : comparisonRowValue\n ),\n undefined,\n { numeric: true, sensitivity: \"base\" }\n );\n };\n\n private getSortFunction = () => {\n switch (this.sortedColumnOrder) {\n case \"ascending\":\n return (a: any, b: any) => this.getComparison(a, b);\n case \"descending\":\n return (a: any, b: any) => this.getComparison(b, a);\n default:\n return undefined;\n }\n };\n\n private sortRows = (column: string) => {\n const sortButton = this.el.shadowRoot.querySelector(\n `#sort-button-${column}`\n ) as HTMLIcButtonElement;\n\n const sortOrders = this.sortOptions.sortOrders;\n\n if (column !== this.sortedColumn) {\n if (this.sortedColumn) {\n const previousSortedButton = this.el.shadowRoot.querySelector(\n `#sort-button-${this.sortedColumn}`\n ) as HTMLIcButtonElement;\n previousSortedButton.setAttribute(\n \"aria-label\",\n this.getSortButtonLabel(column)\n ); // Passing through unsorted column returns correct label for newly unsorted column\n }\n this.sortedColumn = column;\n this.sortedColumnOrder = \"unsorted\";\n }\n\n let nextSortOrderIndex = sortOrders.indexOf(this.sortedColumnOrder) + 1;\n\n if (nextSortOrderIndex > sortOrders.length - 1) {\n nextSortOrderIndex = 0;\n }\n\n this.sortedColumnOrder = sortOrders[nextSortOrderIndex];\n\n sortButton.setAttribute(\"aria-label\", this.getSortButtonLabel(column));\n };\n\n private updateScrollOffset = () => {\n this.scrollOffset = this.el.shadowRoot.querySelector(\n \".table-row-container\"\n ).scrollTop;\n };\n\n render() {\n const {\n caption,\n createColumnHeaders,\n createRows,\n data,\n hideColumnHeaders,\n paginationOptions,\n scrollable,\n scrollOffset,\n showPagination,\n sortable,\n sortedColumnOrder,\n sortedColumn,\n stickyColumnHeaders,\n updateScrollOffset,\n } = this;\n\n return (\n <div class=\"table-container\">\n <div\n class={{\n [\"table-row-container\"]: true,\n scrollable,\n }}\n tabIndex={scrollable ? 0 : null}\n onScroll={updateScrollOffset}\n >\n <table>\n <caption class=\"table-caption\">{caption}</caption>\n {!hideColumnHeaders && (\n <thead\n class={{\n [\"column-header-sticky\"]: stickyColumnHeaders,\n [\"column-header-overlay\"]:\n stickyColumnHeaders && scrollOffset !== 0,\n }}\n >\n <tr>{createColumnHeaders()}</tr>\n </thead>\n )}\n {data?.length > 0 && <tbody>{createRows()}</tbody>}\n </table>\n </div>\n {showPagination && (\n <div class=\"pagination-container\">\n <ic-pagination-bar\n totalItems={data.length}\n paginationType={paginationOptions.type}\n paginationControl={paginationOptions.control}\n showItemsPerPageControl={paginationOptions.itemsPerPageControl}\n showGoToPageControl={paginationOptions.goToPageControl}\n itemsPerPageOptions={paginationOptions.itemsPerPage}\n alignment={paginationOptions.alignment}\n ></ic-pagination-bar>\n </div>\n )}\n {sortable && (\n <div class=\"screen-reader-sort-text\" aria-live=\"polite\">\n {sortedColumnOrder !== \"unsorted\" && sortedColumn\n ? `${sortedColumn} sorted ${sortedColumnOrder}`\n : \"table unsorted\"}\n </div>\n )}\n </div>\n );\n }\n}\n"],"mappings":"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"}
|