@ukic/web-components 2.24.0 → 2.25.1
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-80016ff7.js → helpers-4af10d35.js} +4 -2
- package/dist/cjs/helpers-4af10d35.js.map +1 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-accordion.cjs.entry.js +3 -3
- package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +17 -1
- package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +8 -2
- package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js +1 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +24 -2
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card.cjs.entry.js +26 -2
- package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +1 -1
- package/dist/cjs/ic-classification-banner.cjs.entry.js +12 -3
- package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +1 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +20 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +3 -3
- package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +17 -1
- package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
- package/dist/cjs/ic-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +4 -4
- package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-pagination.cjs.entry.js +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
- package/dist/cjs/ic-select.cjs.entry.js +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +2 -2
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-status-tag.cjs.entry.js +3 -2
- 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-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +3 -4
- package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +1 -1
- package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +3 -3
- 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/loader.cjs.js +1 -1
- package/dist/collection/components/ic-accordion/ic-accordion.css +7 -2
- package/dist/collection/components/ic-accordion/ic-accordion.js +1 -1
- package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
- package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js +2 -2
- package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js.map +1 -1
- package/dist/collection/components/ic-accordion-group/ic-accordion-group.css +2 -2
- package/dist/collection/components/ic-alert/ic-alert.js +18 -2
- package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
- package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js +15 -0
- package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js.map +1 -1
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +7 -1
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
- package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +1 -1
- package/dist/collection/components/ic-button/ic-button.js +14 -1
- package/dist/collection/components/ic-button/ic-button.js.map +1 -1
- package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +19 -0
- package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -1
- package/dist/collection/components/ic-card/ic-card.css +7 -2
- package/dist/collection/components/ic-card/ic-card.js +26 -2
- package/dist/collection/components/ic-card/ic-card.js.map +1 -1
- package/dist/collection/components/ic-card/test/basic/ic-card.spec.js +21 -0
- package/dist/collection/components/ic-card/test/basic/ic-card.spec.js.map +1 -1
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +12 -3
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.js.map +1 -1
- package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js +48 -0
- package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js.map +1 -1
- package/dist/collection/components/ic-empty-state/ic-empty-state.js +21 -2
- package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -1
- package/dist/collection/components/ic-footer/ic-footer.js +1 -1
- package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
- package/dist/collection/components/ic-footer-link/ic-footer-link.css +1 -1
- package/dist/collection/components/ic-footer-link/ic-footer-link.js +1 -1
- package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
- package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js +2 -18
- package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js.map +1 -1
- package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +2 -2
- package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
- package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js +2 -34
- package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js.map +1 -1
- package/dist/collection/components/ic-hero/ic-hero.js +18 -2
- package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
- package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js +15 -0
- package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js.map +1 -1
- package/dist/collection/components/ic-link/ic-link.css +1 -1
- package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +2 -2
- package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
- package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js +2 -2
- package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js.map +1 -1
- package/dist/collection/components/ic-page-header/ic-page-header.js +3 -3
- package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
- package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js +7 -0
- package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js.map +1 -1
- package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js +2 -2
- package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js.map +1 -1
- package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js +2 -2
- package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js.map +1 -1
- package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +1 -1
- package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +1 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
- package/dist/collection/components/ic-status-tag/ic-status-tag.css +10 -0
- package/dist/collection/components/ic-status-tag/ic-status-tag.js +5 -4
- package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
- package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js +2 -2
- package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js.map +1 -1
- package/dist/collection/components/ic-stepper/ic-stepper.js +1 -1
- package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
- package/dist/collection/components/ic-tab/ic-tab.js +1 -1
- package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
- package/dist/collection/components/ic-tab-context/ic-tab-context.js +2 -2
- package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
- package/dist/collection/components/ic-text-field/ic-text-field.js +4 -5
- package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
- package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +2 -2
- package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
- package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +4 -4
- package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +1 -1
- package/dist/collection/components/ic-tooltip/ic-tooltip.js +29 -0
- package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +2 -2
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
- package/dist/collection/components/ic-typography/ic-typography.css +1 -1
- package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js +1 -1
- package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js.map +1 -1
- package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +1 -1
- package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +1 -1
- package/dist/collection/utils/helpers.js +3 -1
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/components/helpers.js +4 -2
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ic-accordion-group.js +1 -1
- package/dist/components/ic-accordion-group.js.map +1 -1
- package/dist/components/ic-accordion.js +2 -2
- package/dist/components/ic-accordion.js.map +1 -1
- package/dist/components/ic-alert2.js +18 -2
- package/dist/components/ic-alert2.js.map +1 -1
- package/dist/components/ic-back-to-top.js +8 -2
- package/dist/components/ic-back-to-top.js.map +1 -1
- package/dist/components/ic-badge.js +1 -1
- package/dist/components/ic-breadcrumb-group.js +1 -1
- package/dist/components/ic-breadcrumb2.js +1 -1
- package/dist/components/ic-breadcrumb2.js.map +1 -1
- package/dist/components/ic-button2.js +14 -1
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card.js +27 -3
- package/dist/components/ic-card.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +1 -1
- package/dist/components/ic-checkbox.js +1 -1
- package/dist/components/ic-chip.js +1 -1
- package/dist/components/ic-classification-banner.js +12 -3
- package/dist/components/ic-classification-banner.js.map +1 -1
- package/dist/components/ic-data-row.js +1 -1
- package/dist/components/ic-divider2.js +1 -1
- package/dist/components/ic-empty-state.js +21 -2
- package/dist/components/ic-empty-state.js.map +1 -1
- package/dist/components/ic-footer-link-group.js +3 -3
- package/dist/components/ic-footer-link-group.js.map +1 -1
- package/dist/components/ic-footer-link.js +3 -3
- package/dist/components/ic-footer-link.js.map +1 -1
- package/dist/components/ic-footer.js +2 -2
- package/dist/components/ic-footer.js.map +1 -1
- package/dist/components/ic-hero.js +18 -2
- package/dist/components/ic-hero.js.map +1 -1
- package/dist/components/ic-horizontal-scroll2.js +1 -1
- package/dist/components/ic-input-component-container2.js +1 -1
- package/dist/components/ic-input-label2.js +1 -1
- package/dist/components/ic-input-validation2.js +1 -1
- package/dist/components/ic-link2.js +1 -1
- package/dist/components/ic-link2.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 +1 -1
- package/dist/components/ic-page-header.js +4 -4
- package/dist/components/ic-page-header.js.map +1 -1
- package/dist/components/ic-popover-menu.js +1 -1
- package/dist/components/ic-radio-group.js +1 -1
- package/dist/components/ic-radio-option.js +1 -1
- package/dist/components/ic-search-bar.js +1 -1
- package/dist/components/ic-select.js +1 -1
- package/dist/components/ic-side-navigation.js +2 -2
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-status-tag.js +2 -1
- package/dist/components/ic-status-tag.js.map +1 -1
- package/dist/components/ic-stepper.js.map +1 -1
- package/dist/components/ic-switch.js +1 -1
- package/dist/components/ic-tab-context.js +2 -2
- package/dist/components/ic-tab-context.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 +3 -4
- package/dist/components/ic-text-field2.js.map +1 -1
- package/dist/components/ic-theme.js +1 -1
- package/dist/components/ic-tooltip2.js +11 -1
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-top-navigation.js +3 -3
- 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.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-910ab8e5.entry.js → p-014342a2.entry.js} +2 -2
- package/dist/core/p-03434b02.entry.js +2 -0
- package/dist/core/p-03434b02.entry.js.map +1 -0
- package/dist/core/{p-072a5366.entry.js → p-038a2ea1.entry.js} +2 -2
- package/dist/core/{p-e3675a83.entry.js → p-08781606.entry.js} +2 -2
- package/dist/core/p-08781606.entry.js.map +1 -0
- package/dist/core/{p-e4f0fc68.entry.js → p-0a2cdf34.entry.js} +2 -2
- package/dist/core/{p-bf70fe93.entry.js → p-13f2c9dc.entry.js} +2 -2
- package/dist/core/{p-bf70fe93.entry.js.map → p-13f2c9dc.entry.js.map} +1 -1
- package/dist/core/p-14c47aed.entry.js +2 -0
- package/dist/core/p-14c47aed.entry.js.map +1 -0
- package/dist/core/{p-96f92fdc.entry.js → p-15138df1.entry.js} +2 -2
- package/dist/core/p-15138df1.entry.js.map +1 -0
- package/dist/core/{p-af439ab9.entry.js → p-191d2571.entry.js} +2 -2
- package/dist/core/{p-cc3f2353.entry.js → p-1d9fceb1.entry.js} +2 -2
- package/dist/core/{p-4c5eafd6.entry.js → p-1e33ac04.entry.js} +2 -2
- package/dist/core/p-1e33ac04.entry.js.map +1 -0
- package/dist/core/p-1eb6fc19.entry.js +2 -0
- package/dist/core/p-1eb6fc19.entry.js.map +1 -0
- package/dist/core/p-1ef00a47.entry.js +2 -0
- package/dist/core/p-1ef00a47.entry.js.map +1 -0
- package/dist/core/{p-de8d16f8.entry.js → p-1f4698e7.entry.js} +2 -2
- package/dist/core/{p-81d3b43b.entry.js → p-24e6c926.entry.js} +2 -2
- package/dist/core/p-261debaf.entry.js +2 -0
- package/dist/core/p-261debaf.entry.js.map +1 -0
- package/dist/core/{p-8df60639.entry.js → p-277c3199.entry.js} +2 -2
- package/dist/core/{p-65ddd1b0.entry.js → p-2bc8a51d.entry.js} +2 -2
- package/dist/core/p-2bc8a51d.entry.js.map +1 -0
- package/dist/core/{p-a5dd7065.js → p-36cd5d32.js} +2 -2
- package/dist/core/p-36cd5d32.js.map +1 -0
- package/dist/core/{p-d79a1565.entry.js → p-37d152b9.entry.js} +2 -2
- package/dist/core/p-37d152b9.entry.js.map +1 -0
- package/dist/core/{p-4661ee3b.entry.js → p-3b41756e.entry.js} +2 -2
- package/dist/core/{p-4c97f1e6.entry.js → p-41b93fc2.entry.js} +2 -2
- package/dist/core/p-4a64ec92.entry.js +2 -0
- package/dist/core/p-4a64ec92.entry.js.map +1 -0
- package/dist/core/{p-6167880d.entry.js → p-4a9eecd7.entry.js} +2 -2
- package/dist/core/p-4a9eecd7.entry.js.map +1 -0
- package/dist/core/{p-7ce6fb3b.entry.js → p-4ad38ad7.entry.js} +2 -2
- package/dist/core/{p-d4e6c64e.entry.js → p-4ecf210f.entry.js} +2 -2
- package/dist/core/p-4ecf210f.entry.js.map +1 -0
- package/dist/core/{p-b85c5581.entry.js → p-5128fc04.entry.js} +2 -2
- package/dist/core/{p-6fdc8bef.entry.js → p-59732bc5.entry.js} +2 -2
- package/dist/core/{p-deebcbe3.entry.js → p-5bba7e31.entry.js} +2 -2
- package/dist/core/p-6a4a0752.entry.js +2 -0
- package/dist/core/p-6a4a0752.entry.js.map +1 -0
- package/dist/core/{p-a0e94ddd.entry.js → p-6e36ff34.entry.js} +2 -2
- package/dist/core/{p-3cc52cbc.entry.js → p-6fae7e1f.entry.js} +2 -2
- package/dist/core/{p-3cc52cbc.entry.js.map → p-6fae7e1f.entry.js.map} +1 -1
- package/dist/core/{p-a399de54.entry.js → p-70a7cfa5.entry.js} +2 -2
- package/dist/core/{p-1c654ddd.entry.js → p-7e5936a3.entry.js} +2 -2
- package/dist/core/{p-a340a923.entry.js → p-80b87940.entry.js} +2 -2
- package/dist/core/p-80b87940.entry.js.map +1 -0
- package/dist/core/{p-74176f4c.entry.js → p-85f6a2ef.entry.js} +2 -2
- package/dist/core/{p-c623e1b0.entry.js → p-8ce2dfd4.entry.js} +2 -2
- package/dist/core/{p-8619c625.entry.js → p-92b9b56a.entry.js} +2 -2
- package/dist/core/{p-21885256.entry.js → p-967d5546.entry.js} +2 -2
- package/dist/core/{p-a3fa8e25.entry.js → p-98708868.entry.js} +2 -2
- package/dist/core/p-98708868.entry.js.map +1 -0
- package/dist/core/{p-09a2f6ff.entry.js → p-a332f7d8.entry.js} +2 -2
- package/dist/core/{p-c9efaee1.entry.js → p-a646c117.entry.js} +2 -2
- package/dist/core/{p-c9efaee1.entry.js.map → p-a646c117.entry.js.map} +1 -1
- package/dist/core/{p-5443b79a.entry.js → p-a8aea311.entry.js} +2 -2
- package/dist/core/{p-8d98835c.entry.js → p-a9a2987c.entry.js} +2 -2
- package/dist/core/{p-984e07a2.entry.js → p-bb2f2048.entry.js} +2 -2
- package/dist/core/{p-984e07a2.entry.js.map → p-bb2f2048.entry.js.map} +1 -1
- package/dist/core/p-c1db024d.entry.js +2 -0
- package/dist/core/p-c1db024d.entry.js.map +1 -0
- package/dist/core/{p-cbb92eb0.entry.js → p-cf3a721c.entry.js} +2 -2
- package/dist/core/{p-9419b840.entry.js → p-d19d50b6.entry.js} +2 -2
- package/dist/core/{p-2e8aaf89.entry.js → p-d69f353b.entry.js} +2 -2
- package/dist/core/p-e735d773.entry.js +2 -0
- package/dist/core/p-e735d773.entry.js.map +1 -0
- package/dist/core/{p-f807e600.entry.js → p-e928928a.entry.js} +2 -2
- package/dist/core/{p-b3178032.entry.js → p-ea61b524.entry.js} +2 -2
- package/dist/core/{p-4e6c5e80.entry.js → p-eb1d00a7.entry.js} +2 -2
- package/dist/core/{p-9128a8e0.entry.js → p-f13195ab.entry.js} +2 -2
- package/dist/core/{p-9128a8e0.entry.js.map → p-f13195ab.entry.js.map} +1 -1
- package/dist/core/{p-de7c0f2c.entry.js → p-f861a72a.entry.js} +2 -2
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-988ce06b.js → helpers-354dbb8d.js} +5 -3
- package/dist/esm/helpers-354dbb8d.js.map +1 -0
- package/dist/esm/ic-accordion-group.entry.js +2 -2
- package/dist/esm/ic-accordion-group.entry.js.map +1 -1
- package/dist/esm/ic-accordion.entry.js +3 -3
- package/dist/esm/ic-accordion.entry.js.map +1 -1
- package/dist/esm/ic-alert.entry.js +18 -2
- package/dist/esm/ic-alert.entry.js.map +1 -1
- package/dist/esm/ic-back-to-top.entry.js +8 -2
- package/dist/esm/ic-back-to-top.entry.js.map +1 -1
- package/dist/esm/ic-badge.entry.js +1 -1
- package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
- package/dist/esm/ic-breadcrumb.entry.js +2 -2
- package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
- package/dist/esm/ic-button_3.entry.js +24 -2
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card.entry.js +27 -3
- package/dist/esm/ic-card.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +1 -1
- package/dist/esm/ic-checkbox.entry.js +1 -1
- package/dist/esm/ic-chip.entry.js +1 -1
- package/dist/esm/ic-classification-banner.entry.js +12 -3
- package/dist/esm/ic-classification-banner.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js +1 -1
- package/dist/esm/ic-dialog.entry.js +1 -1
- package/dist/esm/ic-divider.entry.js +1 -1
- package/dist/esm/ic-empty-state.entry.js +21 -2
- package/dist/esm/ic-empty-state.entry.js.map +1 -1
- package/dist/esm/ic-footer-link-group.entry.js +3 -3
- package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
- package/dist/esm/ic-footer-link.entry.js +3 -3
- package/dist/esm/ic-footer-link.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +2 -2
- package/dist/esm/ic-footer.entry.js.map +1 -1
- package/dist/esm/ic-hero.entry.js +18 -2
- package/dist/esm/ic-hero.entry.js.map +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +1 -1
- package/dist/esm/ic-input-label_2.entry.js +1 -1
- package/dist/esm/ic-link.entry.js +2 -2
- package/dist/esm/ic-link.entry.js.map +1 -1
- package/dist/esm/ic-menu-group.entry.js +1 -1
- package/dist/esm/ic-menu-item.entry.js +1 -1
- package/dist/esm/ic-navigation-button.entry.js +1 -1
- package/dist/esm/ic-navigation-group.entry.js +1 -1
- package/dist/esm/ic-navigation-item.entry.js +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +1 -1
- package/dist/esm/ic-page-header.entry.js +4 -4
- package/dist/esm/ic-page-header.entry.js.map +1 -1
- package/dist/esm/ic-pagination-item.entry.js +1 -1
- package/dist/esm/ic-pagination.entry.js +1 -1
- package/dist/esm/ic-popover-menu.entry.js +1 -1
- package/dist/esm/ic-radio-group.entry.js +1 -1
- package/dist/esm/ic-radio-option.entry.js +1 -1
- package/dist/esm/ic-search-bar.entry.js +1 -1
- package/dist/esm/ic-select.entry.js +1 -1
- package/dist/esm/ic-side-navigation.entry.js +2 -2
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-status-tag.entry.js +3 -2
- 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-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +1 -1
- package/dist/esm/ic-tab-context.entry.js +2 -2
- package/dist/esm/ic-tab-context.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +1 -1
- package/dist/esm/ic-tab-panel.entry.js +1 -1
- package/dist/esm/ic-tab.entry.js +2 -2
- package/dist/esm/ic-tab.entry.js.map +1 -1
- package/dist/esm/ic-text-field.entry.js +3 -4
- package/dist/esm/ic-text-field.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +1 -1
- package/dist/esm/ic-toast.entry.js +1 -1
- package/dist/esm/ic-toggle-button.entry.js +1 -1
- package/dist/esm/ic-top-navigation.entry.js +3 -3
- 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/loader.js +1 -1
- package/dist/types/components/ic-alert/ic-alert.d.ts +3 -0
- package/dist/types/components/ic-back-to-top/ic-back-to-top.d.ts +1 -0
- package/dist/types/components/ic-button/ic-button.d.ts +2 -0
- package/dist/types/components/ic-card/ic-card.d.ts +2 -0
- package/dist/types/components/ic-empty-state/ic-empty-state.d.ts +3 -0
- package/dist/types/components/ic-hero/ic-hero.d.ts +3 -0
- package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +1 -1
- package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +2 -2
- package/dist/types/components/ic-stepper/ic-stepper.d.ts +1 -1
- package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +1 -1
- package/dist/types/components/ic-text-field/ic-text-field.d.ts +2 -2
- package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +4 -0
- package/dist/types/components.d.ts +9 -8
- package/dist/types/utils/helpers.d.ts +1 -1
- package/hydrate/index.js +139 -32
- package/package.json +2 -2
- package/vscode-data.json +6 -3
- package/dist/cjs/helpers-80016ff7.js.map +0 -1
- package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.e2e.js +0 -29
- package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.e2e.js.map +0 -1
- package/dist/core/p-04f98d04.entry.js +0 -2
- package/dist/core/p-04f98d04.entry.js.map +0 -1
- package/dist/core/p-2eb95212.entry.js +0 -2
- package/dist/core/p-2eb95212.entry.js.map +0 -1
- package/dist/core/p-4c5eafd6.entry.js.map +0 -1
- package/dist/core/p-4d1490ce.entry.js +0 -2
- package/dist/core/p-4d1490ce.entry.js.map +0 -1
- package/dist/core/p-6167880d.entry.js.map +0 -1
- package/dist/core/p-65ddd1b0.entry.js.map +0 -1
- package/dist/core/p-7e801198.entry.js +0 -2
- package/dist/core/p-7e801198.entry.js.map +0 -1
- package/dist/core/p-905e4232.entry.js +0 -2
- package/dist/core/p-905e4232.entry.js.map +0 -1
- package/dist/core/p-96f92fdc.entry.js.map +0 -1
- package/dist/core/p-a2704b98.entry.js +0 -2
- package/dist/core/p-a2704b98.entry.js.map +0 -1
- package/dist/core/p-a340a923.entry.js.map +0 -1
- package/dist/core/p-a3fa8e25.entry.js.map +0 -1
- package/dist/core/p-a5dd7065.js.map +0 -1
- package/dist/core/p-c532b8bd.entry.js +0 -2
- package/dist/core/p-c532b8bd.entry.js.map +0 -1
- package/dist/core/p-d4e6c64e.entry.js.map +0 -1
- package/dist/core/p-d79a1565.entry.js.map +0 -1
- package/dist/core/p-defa21f5.entry.js +0 -2
- package/dist/core/p-defa21f5.entry.js.map +0 -1
- package/dist/core/p-e3675a83.entry.js.map +0 -1
- package/dist/core/p-e5a6218b.entry.js +0 -2
- package/dist/core/p-e5a6218b.entry.js.map +0 -1
- package/dist/esm/helpers-988ce06b.js.map +0 -1
- /package/dist/core/{p-910ab8e5.entry.js.map → p-014342a2.entry.js.map} +0 -0
- /package/dist/core/{p-072a5366.entry.js.map → p-038a2ea1.entry.js.map} +0 -0
- /package/dist/core/{p-e4f0fc68.entry.js.map → p-0a2cdf34.entry.js.map} +0 -0
- /package/dist/core/{p-af439ab9.entry.js.map → p-191d2571.entry.js.map} +0 -0
- /package/dist/core/{p-cc3f2353.entry.js.map → p-1d9fceb1.entry.js.map} +0 -0
- /package/dist/core/{p-de8d16f8.entry.js.map → p-1f4698e7.entry.js.map} +0 -0
- /package/dist/core/{p-81d3b43b.entry.js.map → p-24e6c926.entry.js.map} +0 -0
- /package/dist/core/{p-8df60639.entry.js.map → p-277c3199.entry.js.map} +0 -0
- /package/dist/core/{p-4661ee3b.entry.js.map → p-3b41756e.entry.js.map} +0 -0
- /package/dist/core/{p-4c97f1e6.entry.js.map → p-41b93fc2.entry.js.map} +0 -0
- /package/dist/core/{p-7ce6fb3b.entry.js.map → p-4ad38ad7.entry.js.map} +0 -0
- /package/dist/core/{p-b85c5581.entry.js.map → p-5128fc04.entry.js.map} +0 -0
- /package/dist/core/{p-6fdc8bef.entry.js.map → p-59732bc5.entry.js.map} +0 -0
- /package/dist/core/{p-deebcbe3.entry.js.map → p-5bba7e31.entry.js.map} +0 -0
- /package/dist/core/{p-a0e94ddd.entry.js.map → p-6e36ff34.entry.js.map} +0 -0
- /package/dist/core/{p-a399de54.entry.js.map → p-70a7cfa5.entry.js.map} +0 -0
- /package/dist/core/{p-1c654ddd.entry.js.map → p-7e5936a3.entry.js.map} +0 -0
- /package/dist/core/{p-74176f4c.entry.js.map → p-85f6a2ef.entry.js.map} +0 -0
- /package/dist/core/{p-c623e1b0.entry.js.map → p-8ce2dfd4.entry.js.map} +0 -0
- /package/dist/core/{p-8619c625.entry.js.map → p-92b9b56a.entry.js.map} +0 -0
- /package/dist/core/{p-21885256.entry.js.map → p-967d5546.entry.js.map} +0 -0
- /package/dist/core/{p-09a2f6ff.entry.js.map → p-a332f7d8.entry.js.map} +0 -0
- /package/dist/core/{p-5443b79a.entry.js.map → p-a8aea311.entry.js.map} +0 -0
- /package/dist/core/{p-8d98835c.entry.js.map → p-a9a2987c.entry.js.map} +0 -0
- /package/dist/core/{p-cbb92eb0.entry.js.map → p-cf3a721c.entry.js.map} +0 -0
- /package/dist/core/{p-9419b840.entry.js.map → p-d19d50b6.entry.js.map} +0 -0
- /package/dist/core/{p-2e8aaf89.entry.js.map → p-d69f353b.entry.js.map} +0 -0
- /package/dist/core/{p-f807e600.entry.js.map → p-e928928a.entry.js.map} +0 -0
- /package/dist/core/{p-b3178032.entry.js.map → p-ea61b524.entry.js.map} +0 -0
- /package/dist/core/{p-4e6c5e80.entry.js.map → p-eb1d00a7.entry.js.map} +0 -0
- /package/dist/core/{p-de7c0f2c.entry.js.map → p-f861a72a.entry.js.map} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-classification-banner.js","sourceRoot":"","sources":["../../../src/components/ic-classification-banner/ic-classification-banner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGzD,MAAM,kBAAkB,GAAG;IACzB,OAAO,EAAE,4BAA4B;IACrC,QAAQ,EAAE,UAAU;IACpB,oBAAoB,EAAE,oBAAoB;IAC1C,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,YAAY;CAC3B,CAAC;AAOF,MAAM,OAAO,oBAAoB;;mCAIQ,EAAE;8BAIO,SAAS;uBAI9B,IAAI;sBAIJ,KAAK;oBAIP,KAAK;;IAE9B,MAAM;QACJ,MAAM,EAAE,
|
1
|
+
{"version":3,"file":"ic-classification-banner.js","sourceRoot":"","sources":["../../../src/components/ic-classification-banner/ic-classification-banner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGzD,MAAM,kBAAkB,GAAG;IACzB,OAAO,EAAE,4BAA4B;IACrC,QAAQ,EAAE,UAAU;IACpB,oBAAoB,EAAE,oBAAoB;IAC1C,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,YAAY;CAC3B,CAAC;AAOF,MAAM,OAAO,oBAAoB;;mCAIQ,EAAE;8BAIO,SAAS;uBAI9B,IAAI;sBAIJ,KAAK;oBAIP,KAAK;;IAE9B,MAAM;QACJ,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAE9B,qDAAqD;QACrD,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAC5D,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB;YAAE,mBAAmB,GAAG,EAAE,CAAC;QACnD,IACE,CAAC,cAAc;YACf,CAAC,cAAc,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAEvD,cAAc,GAAG,SAAS,CAAC;QAE7B,OAAO,CACL,EAAC,IAAI,IAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE;YACjC,4BACa,oBAAoB,EAC/B,KAAK,EAAE;oBACL,CAAC,uBAAuB,CAAC,EAAE,IAAI;oBAC/B,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,cAAc;iBACtC;gBAEA,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,CAC9B,YAAM,KAAK,EAAC,WAAW;;oBACmB,GAAG,CACtC,CACR,CAAC,CAAC,CAAC,IAAI;gBACR,qBAAe,OAAO,EAAC,mBAAmB,IACvC,cAAc,KAAK,SAAS;oBAC3B,CAAC,CAAC,kBAAkB,CAAC,cAAc,CAAC;oBACpC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;iBACrB,OAAO;iBACP,kBAAkB,CAAC,cAAc,CAAC;iBAClC,mBAAmB,EAAE,CACZ,CACT,CACJ,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host } from \"@stencil/core\";\nimport { IcProtectiveMarkings } from \"./ic-classification-banner.types\";\n\nconst classificationText = {\n default: \"protective marking not set\",\n official: \"official\",\n \"official-sensitive\": \"official sensitive\",\n secret: \"secret\",\n \"top-secret\": \"top secret\",\n};\n\n@Component({\n tag: \"ic-classification-banner\",\n styleUrl: \"ic-classification-banner.css\",\n shadow: true,\n})\nexport class ClassificationBanner {\n /**\n * The additional information that will be displayed after the classification.\n */\n @Prop() additionalSelectors?: string = \"\";\n /**\n * The classification level to be displayed - also determines the banner and text colour.\n */\n @Prop() classification?: IcProtectiveMarkings = \"default\";\n /**\n * The optional text that will be displayed before classification to specify relevant country/countries.\n */\n @Prop() country?: string = \"uk\";\n /**\n * If `true`, the banner will appear inline with the page, instead of sticking to the bottom of the page.\n */\n @Prop() inline?: boolean = false;\n /**\n * If `true`, \"Up to\" will be displayed before the classification and country.\n */\n @Prop() upTo?: boolean = false;\n\n render() {\n const { inline, upTo } = this;\n\n // In case of unrecognized props, fallback to default\n let { country, additionalSelectors, classification } = this;\n if (!country) country = \"\";\n if (!additionalSelectors) additionalSelectors = \"\";\n if (\n !classification ||\n (classification && !classificationText[classification])\n )\n classification = \"default\";\n\n return (\n <Host class={{ [\"inline\"]: inline }}>\n <banner\n aria-label=\"Protective marking\"\n class={{\n [\"classification-banner\"]: true,\n [`${classification}`]: classification,\n }}\n >\n {classification !== \"default\" ? (\n <span class=\"offscreen\">\n The protective marking of this page is:{\" \"}\n </span>\n ) : null}\n <ic-typography variant=\"caption-uppercase\">\n {classification === \"default\"\n ? classificationText[classification]\n : `${upTo ? \"up to\" : \"\"} \n ${country} \n ${classificationText[classification]} \n ${additionalSelectors}`}\n </ic-typography>\n </banner>\n </Host>\n );\n }\n}\n"]}
|
@@ -121,6 +121,54 @@ describe("ic-classification-banner component", () => {
|
|
121
121
|
</mock:shadow-root>
|
122
122
|
</ic-classification-banner>`);
|
123
123
|
});
|
124
|
+
it("should render default banner if no props are passed", async () => {
|
125
|
+
const page = await newSpecPage({
|
126
|
+
components: [ClassificationBanner],
|
127
|
+
html: `<ic-classification-banner></ic-classification-banner>`,
|
128
|
+
});
|
129
|
+
expect(page.root).toEqualHtml(`
|
130
|
+
<ic-classification-banner>
|
131
|
+
<mock:shadow-root>
|
132
|
+
<banner aria-label="Protective marking" class="classification-banner default">
|
133
|
+
<ic-typography variant="caption-uppercase">
|
134
|
+
protective marking not set
|
135
|
+
</ic-typography>
|
136
|
+
</banner>
|
137
|
+
</mock:shadow-root>
|
138
|
+
</ic-classification-banner>`);
|
139
|
+
});
|
140
|
+
it("should render default banner if props with empty strings are passed", async () => {
|
141
|
+
const page = await newSpecPage({
|
142
|
+
components: [ClassificationBanner],
|
143
|
+
html: `<ic-classification-banner classification="" country="" additionalSelectors=""></ic-classification-banner>`,
|
144
|
+
});
|
145
|
+
expect(page.root).toEqualHtml(`
|
146
|
+
<ic-classification-banner classification="" country="" additionalSelectors="">
|
147
|
+
<mock:shadow-root>
|
148
|
+
<banner aria-label="Protective marking" class="classification-banner default">
|
149
|
+
<ic-typography variant="caption-uppercase">
|
150
|
+
protective marking not set
|
151
|
+
</ic-typography>
|
152
|
+
</banner>
|
153
|
+
</mock:shadow-root>
|
154
|
+
</ic-classification-banner>`);
|
155
|
+
});
|
156
|
+
it("should render default banner if props with undefined are passed", async () => {
|
157
|
+
const page = await newSpecPage({
|
158
|
+
components: [ClassificationBanner],
|
159
|
+
html: `<ic-classification-banner classification=${undefined} country=${undefined} additionalSelectors=${undefined}></ic-classification-banner>`,
|
160
|
+
});
|
161
|
+
expect(page.root).toEqualHtml(`
|
162
|
+
<ic-classification-banner classification="undefined" country="undefined" additionalSelectors="undefined">
|
163
|
+
<mock:shadow-root>
|
164
|
+
<banner aria-label="Protective marking" class="classification-banner default">
|
165
|
+
<ic-typography variant="caption-uppercase">
|
166
|
+
protective marking not set
|
167
|
+
</ic-typography>
|
168
|
+
</banner>
|
169
|
+
</mock:shadow-root>
|
170
|
+
</ic-classification-banner>`);
|
171
|
+
});
|
124
172
|
it("should render with additional selectors after classification when supplied", async () => {
|
125
173
|
const page = await newSpecPage({
|
126
174
|
components: [ClassificationBanner],
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-classification-banner.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-classification-banner/test/basic/ic-classification-banner.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,oBAAoB,CAAC;YAClC,IAAI,EAAE,uDAAuD;SAC9D,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;CAQjC,CAAC,CAAC;IACD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,oBAAoB,CAAC;YAClC,IAAI,EAAE,iFAAiF;SACxF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;oCAQE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,oBAAoB,CAAC;YAClC,IAAI,EAAE,2FAA2F;SAClG,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;oCAQE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,oBAAoB,CAAC;YAClC,IAAI,EAAE,+EAA+E;SACtF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;oCAQE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,oBAAoB,CAAC;YAClC,IAAI,EAAE,mFAAmF;SAC1F,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;oCAQE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,oBAAoB,CAAC;YAClC,IAAI,EAAE,4FAA4F;SACnG,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;oCAQE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,oBAAoB,CAAC;YAClC,IAAI,EAAE,8FAA8F;SACrG,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;oCAQE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,oBAAoB,CAAC;YAClC,IAAI,EAAE,4FAA4F;SACnG,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;oCAQE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,oBAAoB,CAAC;YAClC,IAAI,EAAE,6GAA6G;SACpH,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;oCAQE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { ClassificationBanner } from \"../../ic-classification-banner\";\n\ndescribe(\"ic-classification-banner component\", () => {\n it(\"should render with default classification text when no classification set\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner>\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner default\">\n <ic-typography variant=\"caption-uppercase\">protective marking not set</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>\n`);\n });\n\n it(\"should render with official classification text\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"official\"></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"official\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner official\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">uk official</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render with official sensitive classification text\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"official-sensitive\"></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"official-sensitive\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner official-sensitive\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">uk official sensitive</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render with secret classification text\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"secret\"></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"secret\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner secret\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">uk secret</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render with top secret classification text\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"top-secret\"></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"top-secret\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner top-secret\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">uk top secret</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render with up to before classification\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"official\" up-to=true></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"official\" up-to=true>\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner official\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">up to uk official</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render with a different country when supplied\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"official\" country=\"us\"></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"official\" country=\"us\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner official\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">us official</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it('should render with no country when supplied \"\"', async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"official\" country=\"\"></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"official\" country=\"\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner official\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">official</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render with additional selectors after classification when supplied\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"official\" additional-selectors=\"ukic\"></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"official\" additional-selectors=\"ukic\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner official\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">uk official ukic</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n});\n"]}
|
1
|
+
{"version":3,"file":"ic-classification-banner.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-classification-banner/test/basic/ic-classification-banner.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { ClassificationBanner } from \"../../ic-classification-banner\";\n\ndescribe(\"ic-classification-banner component\", () => {\n it(\"should render with default classification text when no classification set\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner>\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner default\">\n <ic-typography variant=\"caption-uppercase\">protective marking not set</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>\n`);\n });\n\n it(\"should render with official classification text\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"official\"></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"official\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner official\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">uk official</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render with official sensitive classification text\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"official-sensitive\"></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"official-sensitive\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner official-sensitive\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">uk official sensitive</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render with secret classification text\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"secret\"></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"secret\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner secret\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">uk secret</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render with top secret classification text\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"top-secret\"></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"top-secret\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner top-secret\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">uk top secret</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render with up to before classification\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"official\" up-to=true></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"official\" up-to=true>\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner official\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">up to uk official</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render with a different country when supplied\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"official\" country=\"us\"></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"official\" country=\"us\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner official\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">us official</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it('should render with no country when supplied \"\"', async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"official\" country=\"\"></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"official\" country=\"\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner official\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">official</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render default banner if no props are passed\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner></ic-classification-banner>`,\n });\n expect(page.root).toEqualHtml(`\n <ic-classification-banner>\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner default\">\n <ic-typography variant=\"caption-uppercase\">\n protective marking not set\n </ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render default banner if props with empty strings are passed\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"\" country=\"\" additionalSelectors=\"\"></ic-classification-banner>`,\n });\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"\" country=\"\" additionalSelectors=\"\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner default\">\n <ic-typography variant=\"caption-uppercase\">\n protective marking not set\n </ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render default banner if props with undefined are passed\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=${undefined} country=${undefined} additionalSelectors=${undefined}></ic-classification-banner>`,\n });\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"undefined\" country=\"undefined\" additionalSelectors=\"undefined\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner default\">\n <ic-typography variant=\"caption-uppercase\">\n protective marking not set\n </ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n\n it(\"should render with additional selectors after classification when supplied\", async () => {\n const page = await newSpecPage({\n components: [ClassificationBanner],\n html: `<ic-classification-banner classification=\"official\" additional-selectors=\"ukic\"></ic-classification-banner>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-classification-banner classification=\"official\" additional-selectors=\"ukic\">\n <mock:shadow-root>\n <banner aria-label=\"Protective marking\" class=\"classification-banner official\">\n <span class=\"offscreen\">The protective marking of this page is: </span>\n <ic-typography variant=\"caption-uppercase\">uk official ukic</ic-typography>\n </banner>\n </mock:shadow-root>\n </ic-classification-banner>`);\n });\n});\n"]}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { h, Host } from "@stencil/core";
|
2
|
-
import { isSlotUsed, onComponentRequiredPropUndefined, } from "../../utils/helpers";
|
1
|
+
import { h, Host, forceUpdate } from "@stencil/core";
|
2
|
+
import { isSlotUsed, onComponentRequiredPropUndefined, checkSlotInChildMutations, } from "../../utils/helpers";
|
3
3
|
/**
|
4
4
|
* @slot image - Content is placed at the top above all other content.
|
5
5
|
* @slot actions - Content is placed at the bottom below all other content.
|
@@ -9,6 +9,17 @@ import { isSlotUsed, onComponentRequiredPropUndefined, } from "../../utils/helpe
|
|
9
9
|
*/
|
10
10
|
export class EmptyState {
|
11
11
|
constructor() {
|
12
|
+
this.hostMutationObserver = null;
|
13
|
+
this.hostMutationCallback = (mutationList) => {
|
14
|
+
if (mutationList.some(({ type, addedNodes, removedNodes }) => type === "childList"
|
15
|
+
? checkSlotInChildMutations(addedNodes, removedNodes, [
|
16
|
+
"image",
|
17
|
+
"actions",
|
18
|
+
])
|
19
|
+
: false)) {
|
20
|
+
forceUpdate(this);
|
21
|
+
}
|
22
|
+
};
|
12
23
|
this.aligned = "left";
|
13
24
|
this.body = undefined;
|
14
25
|
this.bodyMaxLines = undefined;
|
@@ -16,9 +27,17 @@ export class EmptyState {
|
|
16
27
|
this.imageSize = "default";
|
17
28
|
this.subheading = undefined;
|
18
29
|
}
|
30
|
+
disconnectedCallback() {
|
31
|
+
var _a;
|
32
|
+
(_a = this.hostMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
33
|
+
}
|
19
34
|
componentDidLoad() {
|
20
35
|
!isSlotUsed(this.el, "heading") &&
|
21
36
|
onComponentRequiredPropUndefined([{ prop: this.heading, propName: "heading" }], "Empty State");
|
37
|
+
this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);
|
38
|
+
this.hostMutationObserver.observe(this.el, {
|
39
|
+
childList: true,
|
40
|
+
});
|
22
41
|
}
|
23
42
|
render() {
|
24
43
|
const { aligned, body, bodyMaxLines, heading, imageSize, subheading } = this;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-empty-state.js","sourceRoot":"","sources":["../../../src/components/ic-empty-state/ic-empty-state.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
1
|
+
{"version":3,"file":"ic-empty-state.js","sourceRoot":"","sources":["../../../src/components/ic-empty-state/ic-empty-state.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG/E,OAAO,EACL,UAAU,EACV,gCAAgC,EAChC,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAG7B;;;;;;GAMG;AAMH,MAAM,OAAO,UAAU;;QACb,yBAAoB,GAAqB,IAAI,CAAC;QAmD9C,yBAAoB,GAAG,CAAC,YAA8B,EAAQ,EAAE;YACtE,IACE,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE,CACvD,IAAI,KAAK,WAAW;gBAClB,CAAC,CAAC,yBAAyB,CAAC,UAAU,EAAE,YAAY,EAAE;oBAClD,OAAO;oBACP,SAAS;iBACV,CAAC;gBACJ,CAAC,CAAC,KAAK,CACV,EACD,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;uBAzDwC,MAAM;;;;yBAoBlB,SAAS;;;IAOvC,oBAAoB;;QAClB,MAAA,IAAI,CAAC,oBAAoB,0CAAE,UAAU,EAAE,CAAC;IAC1C,CAAC;IAED,gBAAgB;QACd,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC;YAC7B,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAC7C,aAAa,CACd,CAAC;QAEJ,IAAI,CAAC,oBAAoB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC5E,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE;YACzC,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAiBD,MAAM;QACJ,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GACnE,IAAI,CAAC;QACP,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE;gBACL,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,IAAI;gBACpB,CAAC,SAAS,SAAS,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC;aACrD;YAEA,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,YAAM,IAAI,EAAC,OAAO,GAAQ;YAC3D;gBACE,YAAM,IAAI,EAAC,SAAS;oBAClB,qBAAe,OAAO,EAAC,IAAI,IAAE,OAAO,CAAiB,CAChD;gBACP,YAAM,IAAI,EAAC,YAAY;oBACrB,qBAAe,OAAO,EAAC,gBAAgB,IAAE,UAAU,CAAiB,CAC/D;gBACP,YAAM,IAAI,EAAC,MAAM;oBACf,qBAAe,QAAQ,EAAE,YAAY,IAAG,IAAI,CAAiB,CACxD,CACH;YACL,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CACjC,WAAK,KAAK,EAAC,aAAa;gBACtB,YAAM,IAAI,EAAC,SAAS,GAAG,CACnB,CACP,CACI,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { h, Component, Host, Prop, Element, forceUpdate } from \"@stencil/core\";\n\nimport { IcEmptyStateAlignment } from \"./ic-empty-state.types\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\nimport { IcSizes } from \"../../utils/types\";\n\n/**\n * @slot image - Content is placed at the top above all other content.\n * @slot actions - Content is placed at the bottom below all other content.\n * @slot heading - Content will be rendered in place of the heading prop.\n * @slot subheading - Content will be rendered in place of the subheading prop.\n * @slot body - Content will be rendered in place of the body prop.\n */\n@Component({\n tag: \"ic-empty-state\",\n styleUrl: \"ic-empty-state.css\",\n shadow: true,\n})\nexport class EmptyState {\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcEmptyStateElement;\n\n /**\n * The alignment of the empty state container.\n */\n @Prop() aligned?: IcEmptyStateAlignment = \"left\";\n\n /**\n * The body text rendered in the empty state container.\n */\n @Prop() body?: string;\n\n /**\n * The number of lines of body text to display before truncating.\n */\n @Prop() bodyMaxLines?: number;\n\n /**\n * The title rendered in the empty state container.\n */\n @Prop() heading?: string;\n\n /**\n * The size of the image or icon used in the image slot.\n */\n @Prop() imageSize?: IcSizes = \"default\";\n\n /**\n * The subtitle rendered in the empty state container.\n */\n @Prop() subheading?: string;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n componentDidLoad(): void {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Empty State\"\n );\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n if (\n mutationList.some(({ type, addedNodes, removedNodes }) =>\n type === \"childList\"\n ? checkSlotInChildMutations(addedNodes, removedNodes, [\n \"image\",\n \"actions\",\n ])\n : false\n )\n ) {\n forceUpdate(this);\n }\n };\n\n render() {\n const { aligned, body, bodyMaxLines, heading, imageSize, subheading } =\n this;\n return (\n <Host\n class={{\n [`${aligned}`]: true,\n [`image-${imageSize}`]: isSlotUsed(this.el, \"image\"),\n }}\n >\n {isSlotUsed(this.el, \"image\") && <slot name=\"image\"></slot>}\n <div>\n <slot name=\"heading\">\n <ic-typography variant=\"h4\">{heading}</ic-typography>\n </slot>\n <slot name=\"subheading\">\n <ic-typography variant=\"subtitle-small\">{subheading}</ic-typography>\n </slot>\n <slot name=\"body\">\n <ic-typography maxLines={bodyMaxLines}>{body}</ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, \"actions\") && (\n <div class=\"action-area\">\n <slot name=\"actions\" />\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
|
@@ -73,7 +73,7 @@ export class Footer {
|
|
73
73
|
// Slots will be able to infer their own color
|
74
74
|
[IcThemeForegroundEnum.Dark]: foregroundColor === IcThemeForegroundEnum.Dark,
|
75
75
|
[IcThemeForegroundEnum.Light]: foregroundColor === IcThemeForegroundEnum.Light,
|
76
|
-
} }, h("footer", { ref: (footerEl) => (this.footerEl = footerEl) }, (isSlotUsed(this.el, "description") || description) && (h("div", { class: "footer-description" }, h("ic-section-container", { aligned: aligned, fullHeight: true }, h("div", { class: "footer-description-inner" }, h("ic-typography", { variant: "body" }, h("slot", { name: "description" }, description)))))), isSlotUsed(this.el, "link") && (h("div", { class: "footer-links" }, groupLinks && small ? (h("div", { class: "footer-links-inner" }, h("slot", { name: "link" }))) : (h("ic-section-container", { fullHeight: true, aligned: aligned }, h("div", { class: "footer-links-inner" }, h("slot", { name: "link" })))))), h("div", { class: "footer-compliance" }, h("ic-section-container", { aligned: aligned, fullHeight: true }, h("div", { class: "footer-compliance-inner" }, isSlotUsed(this.el, "logo") && (h("div", { class: "footer-logo" }, h("slot", { name: "logo" }))), (isSlotUsed(this.el, "caption") || caption) && (h("div", { class: "footer-caption" }, h("ic-typography", { variant: this.deviceSize <= IC_DEVICE_SIZES.M
|
76
|
+
} }, h("footer", { ref: (footerEl) => (this.footerEl = footerEl) }, (isSlotUsed(this.el, "description") || description) && (h("div", { class: "footer-description" }, h("ic-section-container", { aligned: aligned, fullHeight: true }, h("div", { class: "footer-description-inner" }, h("ic-typography", { variant: "body" }, h("slot", { name: "description" }, description)))))), isSlotUsed(this.el, "link") && (h("div", { class: "footer-links" }, groupLinks && small ? (h("div", { class: "footer-links-inner", role: "list" }, h("slot", { name: "link" }))) : (h("ic-section-container", { fullHeight: true, aligned: aligned }, h("div", { class: "footer-links-inner", role: "list" }, h("slot", { name: "link" })))))), h("div", { class: "footer-compliance" }, h("ic-section-container", { aligned: aligned, fullHeight: true }, h("div", { class: "footer-compliance-inner" }, isSlotUsed(this.el, "logo") && (h("div", { class: "footer-logo" }, h("slot", { name: "logo" }))), (isSlotUsed(this.el, "caption") || caption) && (h("div", { class: "footer-caption" }, h("ic-typography", { variant: this.deviceSize <= IC_DEVICE_SIZES.M
|
77
77
|
? "caption"
|
78
78
|
: "body" }, h("slot", { name: "caption" }, caption)))), copyright && (h("div", { class: {
|
79
79
|
["footer-copyright"]: true,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-footer.js","sourceRoot":"","sources":["../../../src/components/ic-footer/ic-footer.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,KAAK,EAEL,IAAI,EACJ,KAAK,EACL,CAAC,EACD,IAAI,EACJ,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIL,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAG3B;;;;;GAKG;AAOH,MAAM,OAAO,MAAM;;QAET,mBAAc,GAAmB,IAAI,CAAC;QA8EtC,2BAAsB,GAAG,CAAC,QAAgB,EAAE,EAAE;YACpD,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC,CAAC;QAEM,sBAAiB,GAAG,GAAG,EAAE;YAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE;gBAC5C,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;gBACxC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC;0BAxF4B,eAAe,CAAC,EAAE;+BACF,uBAAuB,EAAE;uBAKvC,MAAM;0BAKK,QAAQ;;yBAUtB,IAAI;;0BAUF,KAAK;;IAOpC,oBAAoB;QAClB,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,UAAU,GAAG,oBAAoB,EAAE,CAAC;IAC3C,CAAC;IAED,gBAAgB;QACd,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC;IAGD,kBAAkB,CAAC,EAAe;QAChC,MAAM,KAAK,GAAY,EAAE,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC;IACpC,CAAC;IAEO,OAAO;QACb,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAE3B,OAAO,EAAE,KAAK,aAAa;YACzB,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,EAAE;YACtC,CAAC,CAAC,EAAE,KAAK,OAAO;gBAChB,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,CAAC;gBACrC,CAAC,CAAC,EAAE,KAAK,QAAQ;oBACjB,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,CAAC;oBACrC,CAAC,CAAC,EAAE,KAAK,OAAO;wBAChB,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,CAAC;wBACrC,CAAC,CAAC,EAAE,KAAK,aAAa;4BACtB,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,EAAE;4BACtC,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC;IAkBD,MAAM;QACJ,MAAM,EACJ,OAAO,EACP,OAAO,EACP,SAAS,EACT,WAAW,EACX,UAAU,EACV,eAAe,GAChB,GAAG,IAAI,CAAC;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE7B,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;gBACZ,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI;gBAC9C,CAAC,UAAU,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI;gBACxD,CAAC,UAAU,eAAe,EAAE,CAAC,EAAE,IAAI;gBACnC,8CAA8C;gBAC9C,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAC1B,eAAe,KAAK,qBAAqB,CAAC,IAAI;gBAChD,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAC3B,eAAe,KAAK,qBAAqB,CAAC,KAAK;aAClD;YAED,cAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAElD,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,WAAW,CAAC,IAAI,CACtD,WAAK,KAAK,EAAC,oBAAoB;oBAC7B,4BAAsB,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI;wBACtD,WAAK,KAAK,EAAC,0BAA0B;4BACnC,qBAAe,OAAO,EAAC,MAAM;gCAC3B,YAAM,IAAI,EAAC,aAAa,IAAE,WAAW,CAAQ,CAC/B,CACZ,CACe,CACnB,CACP;gBAGA,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAC9B,WAAK,KAAK,EAAC,cAAc,IACtB,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,CACrB,WAAK,KAAK,EAAC,oBAAoB;oBAC7B,YAAM,IAAI,EAAC,MAAM,GAAG,CAChB,CACP,CAAC,CAAC,CAAC,CACF,4BAAsB,UAAU,QAAC,OAAO,EAAE,OAAO;oBAC/C,WAAK,KAAK,EAAC,oBAAoB;wBAC7B,YAAM,IAAI,EAAC,MAAM,GAAG,CAChB,CACe,CACxB,CACG,CACP;gBAGD,WAAK,KAAK,EAAC,mBAAmB;oBAC5B,4BAAsB,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI;wBACtD,WAAK,KAAK,EAAC,yBAAyB;4BACjC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAC9B,WAAK,KAAK,EAAC,aAAa;gCAEtB,YAAM,IAAI,EAAC,MAAM,GAAG,CAChB,CACP;4BACA,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,OAAO,CAAC,IAAI,CAC9C,WAAK,KAAK,EAAC,gBAAgB;gCACzB,qBACE,OAAO,EACL,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,CAAC;wCAClC,CAAC,CAAC,SAAS;wCACX,CAAC,CAAC,MAAM;oCAGZ,YAAM,IAAI,EAAC,SAAS,IAAE,OAAO,CAAQ,CACvB,CACZ,CACP;4BACA,SAAS,IAAI,CACZ,WACE,KAAK,EAAE;oCACL,CAAC,kBAAkB,CAAC,EAAE,IAAI;oCAC1B,CAAC,wBAAwB,CAAC,EAAE,uBAAuB,EAAE;iCACtD;gCAED,qBACE,OAAO,EACL,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,CAAC;wCAClC,CAAC,CAAC,mBAAmB;wCACrB,CAAC,CAAC,iBAAiB,6BAIT,CACZ,CACP,CACG,CACe,CACnB,CACC,CACJ,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Prop,\n State,\n h,\n Host,\n Listen,\n} from \"@stencil/core\";\nimport { IC_DEVICE_SIZES } from \"../../utils/constants\";\nimport {\n getCurrentDeviceSize,\n getThemeForegroundColor,\n checkResizeObserver,\n hasClassificationBanner,\n isSlotUsed,\n} from \"../../utils/helpers\";\nimport {\n IcAlignment,\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { IcFooterBreakpoints } from \"./ic-footer.types\";\n\n/**\n * @slot description - Content will be rendered at the top of the footer.\n * @slot link - Content will be rendered between description and logos.\n * @slot logo - Content will be rendered underneath footer links.\n * @slot caption - Content will be rendered above Crown Copyright.\n */\n\n@Component({\n tag: \"ic-footer\",\n styleUrl: \"ic-footer.css\",\n shadow: true,\n})\nexport class Footer {\n private footerEl: HTMLElement;\n private resizeObserver: ResizeObserver = null;\n\n @Element() el: HTMLIcFooterElement;\n\n @State() deviceSize: number = IC_DEVICE_SIZES.XL;\n @State() foregroundColor: IcThemeForeground = getThemeForegroundColor();\n\n /**\n * The alignment of the section containers used within the footer.\n */\n @Prop() aligned?: IcAlignment = \"left\";\n\n /**\n * The screen size breakpoint at which to switch to the small layout.\n */\n @Prop() breakpoint?: IcFooterBreakpoints = \"medium\";\n\n /**\n * The caption displayed at the bottom of the footer.\n */\n @Prop() caption: string;\n\n /**\n * If `true`, the footer will display the crown copyright at the bottom.\n */\n @Prop() copyright: boolean = true;\n\n /**\n * The description displayed at the top of the footer.\n */\n @Prop() description: string;\n\n /**\n * If `true`, the footer will be set up to handle link groups instead of standalone links.\n */\n @Prop() groupLinks?: boolean = false;\n\n /**\n * @internal Triggers on page resize and triggers style changes in footer links and link groups\n */\n @Event() footerResized: EventEmitter<void>;\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.foregroundColor = theme.mode;\n }\n\n private isSmall() {\n const bp = this.breakpoint;\n\n return bp === \"extra small\"\n ? this.deviceSize < IC_DEVICE_SIZES.XS\n : bp === \"small\"\n ? this.deviceSize < IC_DEVICE_SIZES.S\n : bp === \"medium\"\n ? this.deviceSize < IC_DEVICE_SIZES.M\n : bp === \"large\"\n ? this.deviceSize < IC_DEVICE_SIZES.L\n : bp === \"extra large\"\n ? this.deviceSize < IC_DEVICE_SIZES.XL\n : false;\n }\n\n private resizeObserverCallback = (currSize: number) => {\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n }\n this.footerResized.emit();\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = getCurrentDeviceSize();\n this.resizeObserverCallback(currSize);\n });\n\n this.resizeObserver.observe(this.footerEl);\n };\n\n render() {\n const {\n aligned,\n caption,\n copyright,\n description,\n groupLinks,\n foregroundColor,\n } = this;\n const small = this.isSmall();\n\n return (\n <Host\n class={{\n footer: true,\n [`footer-${small ? \"small\" : \"sparse\"}`]: true,\n [`footer-${groupLinks ? \"grouped\" : \"ungrouped\"}`]: true,\n [`footer-${foregroundColor}`]: true,\n // Slots will be able to infer their own color\n [IcThemeForegroundEnum.Dark]:\n foregroundColor === IcThemeForegroundEnum.Dark,\n [IcThemeForegroundEnum.Light]:\n foregroundColor === IcThemeForegroundEnum.Light,\n }}\n >\n <footer ref={(footerEl) => (this.footerEl = footerEl)}>\n {/* Description */}\n {(isSlotUsed(this.el, \"description\") || description) && (\n <div class=\"footer-description\">\n <ic-section-container aligned={aligned} fullHeight={true}>\n <div class=\"footer-description-inner\">\n <ic-typography variant=\"body\">\n <slot name=\"description\">{description}</slot>\n </ic-typography>\n </div>\n </ic-section-container>\n </div>\n )}\n\n {/* Links */}\n {isSlotUsed(this.el, \"link\") && (\n <div class=\"footer-links\">\n {groupLinks && small ? (\n <div class=\"footer-links-inner\">\n <slot name=\"link\" />\n </div>\n ) : (\n <ic-section-container fullHeight aligned={aligned}>\n <div class=\"footer-links-inner\">\n <slot name=\"link\" />\n </div>\n </ic-section-container>\n )}\n </div>\n )}\n\n {/* Compliance (logo, caption, copyright) */}\n <div class=\"footer-compliance\">\n <ic-section-container aligned={aligned} fullHeight={true}>\n <div class=\"footer-compliance-inner\">\n {isSlotUsed(this.el, \"logo\") && (\n <div class=\"footer-logo\">\n {/* Logo */}\n <slot name=\"logo\" />\n </div>\n )}\n {(isSlotUsed(this.el, \"caption\") || caption) && (\n <div class=\"footer-caption\">\n <ic-typography\n variant={\n this.deviceSize <= IC_DEVICE_SIZES.M\n ? \"caption\"\n : \"body\"\n }\n >\n <slot name=\"caption\">{caption}</slot>\n </ic-typography>\n </div>\n )}\n {copyright && (\n <div\n class={{\n [\"footer-copyright\"]: true,\n [\"classification-spacing\"]: hasClassificationBanner(),\n }}\n >\n <ic-typography\n variant={\n this.deviceSize <= IC_DEVICE_SIZES.M\n ? \"caption-uppercase\"\n : \"label-uppercase\"\n }\n >\n © Crown Copyright\n </ic-typography>\n </div>\n )}\n </div>\n </ic-section-container>\n </div>\n </footer>\n </Host>\n );\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"ic-footer.js","sourceRoot":"","sources":["../../../src/components/ic-footer/ic-footer.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Prop,\n State,\n h,\n Host,\n Listen,\n} from \"@stencil/core\";\nimport { IC_DEVICE_SIZES } from \"../../utils/constants\";\nimport {\n getCurrentDeviceSize,\n getThemeForegroundColor,\n checkResizeObserver,\n hasClassificationBanner,\n isSlotUsed,\n} from \"../../utils/helpers\";\nimport {\n IcAlignment,\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { IcFooterBreakpoints } from \"./ic-footer.types\";\n\n/**\n * @slot description - Content will be rendered at the top of the footer.\n * @slot link - Content will be rendered between description and logos.\n * @slot logo - Content will be rendered underneath footer links.\n * @slot caption - Content will be rendered above Crown Copyright.\n */\n\n@Component({\n tag: \"ic-footer\",\n styleUrl: \"ic-footer.css\",\n shadow: true,\n})\nexport class Footer {\n private footerEl: HTMLElement;\n private resizeObserver: ResizeObserver = null;\n\n @Element() el: HTMLIcFooterElement;\n\n @State() deviceSize: number = IC_DEVICE_SIZES.XL;\n @State() foregroundColor: IcThemeForeground = getThemeForegroundColor();\n\n /**\n * The alignment of the section containers used within the footer.\n */\n @Prop() aligned?: IcAlignment = \"left\";\n\n /**\n * The screen size breakpoint at which to switch to the small layout.\n */\n @Prop() breakpoint?: IcFooterBreakpoints = \"medium\";\n\n /**\n * The caption displayed at the bottom of the footer.\n */\n @Prop() caption: string;\n\n /**\n * If `true`, the footer will display the crown copyright at the bottom.\n */\n @Prop() copyright: boolean = true;\n\n /**\n * The description displayed at the top of the footer.\n */\n @Prop() description: string;\n\n /**\n * If `true`, the footer will be set up to handle link groups instead of standalone links.\n */\n @Prop() groupLinks?: boolean = false;\n\n /**\n * @internal Triggers on page resize and triggers style changes in footer links and link groups\n */\n @Event() footerResized: EventEmitter<void>;\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.foregroundColor = theme.mode;\n }\n\n private isSmall() {\n const bp = this.breakpoint;\n\n return bp === \"extra small\"\n ? this.deviceSize < IC_DEVICE_SIZES.XS\n : bp === \"small\"\n ? this.deviceSize < IC_DEVICE_SIZES.S\n : bp === \"medium\"\n ? this.deviceSize < IC_DEVICE_SIZES.M\n : bp === \"large\"\n ? this.deviceSize < IC_DEVICE_SIZES.L\n : bp === \"extra large\"\n ? this.deviceSize < IC_DEVICE_SIZES.XL\n : false;\n }\n\n private resizeObserverCallback = (currSize: number) => {\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n }\n this.footerResized.emit();\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = getCurrentDeviceSize();\n this.resizeObserverCallback(currSize);\n });\n\n this.resizeObserver.observe(this.footerEl);\n };\n\n render() {\n const {\n aligned,\n caption,\n copyright,\n description,\n groupLinks,\n foregroundColor,\n } = this;\n const small = this.isSmall();\n\n return (\n <Host\n class={{\n footer: true,\n [`footer-${small ? \"small\" : \"sparse\"}`]: true,\n [`footer-${groupLinks ? \"grouped\" : \"ungrouped\"}`]: true,\n [`footer-${foregroundColor}`]: true,\n // Slots will be able to infer their own color\n [IcThemeForegroundEnum.Dark]:\n foregroundColor === IcThemeForegroundEnum.Dark,\n [IcThemeForegroundEnum.Light]:\n foregroundColor === IcThemeForegroundEnum.Light,\n }}\n >\n <footer ref={(footerEl) => (this.footerEl = footerEl)}>\n {/* Description */}\n {(isSlotUsed(this.el, \"description\") || description) && (\n <div class=\"footer-description\">\n <ic-section-container aligned={aligned} fullHeight={true}>\n <div class=\"footer-description-inner\">\n <ic-typography variant=\"body\">\n <slot name=\"description\">{description}</slot>\n </ic-typography>\n </div>\n </ic-section-container>\n </div>\n )}\n\n {/* Links */}\n {isSlotUsed(this.el, \"link\") && (\n <div class=\"footer-links\">\n {groupLinks && small ? (\n <div class=\"footer-links-inner\" role=\"list\">\n <slot name=\"link\" />\n </div>\n ) : (\n <ic-section-container fullHeight aligned={aligned}>\n <div class=\"footer-links-inner\" role=\"list\">\n <slot name=\"link\" />\n </div>\n </ic-section-container>\n )}\n </div>\n )}\n\n {/* Compliance (logo, caption, copyright) */}\n <div class=\"footer-compliance\">\n <ic-section-container aligned={aligned} fullHeight={true}>\n <div class=\"footer-compliance-inner\">\n {isSlotUsed(this.el, \"logo\") && (\n <div class=\"footer-logo\">\n {/* Logo */}\n <slot name=\"logo\" />\n </div>\n )}\n {(isSlotUsed(this.el, \"caption\") || caption) && (\n <div class=\"footer-caption\">\n <ic-typography\n variant={\n this.deviceSize <= IC_DEVICE_SIZES.M\n ? \"caption\"\n : \"body\"\n }\n >\n <slot name=\"caption\">{caption}</slot>\n </ic-typography>\n </div>\n )}\n {copyright && (\n <div\n class={{\n [\"footer-copyright\"]: true,\n [\"classification-spacing\"]: hasClassificationBanner(),\n }}\n >\n <ic-typography\n variant={\n this.deviceSize <= IC_DEVICE_SIZES.M\n ? \"caption-uppercase\"\n : \"label-uppercase\"\n }\n >\n © Crown Copyright\n </ic-typography>\n </div>\n )}\n </div>\n </ic-section-container>\n </div>\n </footer>\n </Host>\n );\n }\n}\n"]}
|
@@ -527,7 +527,7 @@ a:link:visited > ::slotted(svg) {
|
|
527
527
|
text-decoration: none;
|
528
528
|
}
|
529
529
|
|
530
|
-
@supports (text-
|
530
|
+
@supports (text-underline-offset: 25%) {
|
531
531
|
:host(.footer-link) a:link:hover,
|
532
532
|
:host(.footer-link) a:link:focus,
|
533
533
|
:host(.footer-link) a ::slotted(a:link:hover),
|
@@ -46,7 +46,7 @@ export class FooterLink {
|
|
46
46
|
"footer-link": true,
|
47
47
|
[`footer-link-${grouped ? "grouped" : "ungrouped"}-${small ? "small" : "sparse"}`]: true,
|
48
48
|
[`footer-link-${this.foregroundColor}`]: true,
|
49
|
-
} }, h("a", { href: href, hreflang: hreflang, referrerPolicy: referrerpolicy, rel: rel, download: download !== false ? download : null, target: target }, h("slot", null), target === "_blank" && (h("span", { class: "open-in-new-icon", innerHTML: OpenInNew })))));
|
49
|
+
}, role: "listitem" }, h("a", { href: href, hreflang: hreflang, referrerPolicy: referrerpolicy, rel: rel, download: download !== false ? download : null, target: target }, h("slot", null), target === "_blank" && (h("span", { class: "open-in-new-icon", innerHTML: OpenInNew })))));
|
50
50
|
}
|
51
51
|
static get is() { return "ic-footer-link"; }
|
52
52
|
static get encapsulation() { return "shadow"; }
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-footer-link.js","sourceRoot":"","sources":["../../../src/components/ic-footer-link/ic-footer-link.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,CAAC,EACD,KAAK,GACN,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAG5E,OAAO,SAAS,MAAM,4BAA4B,CAAC;AAWnD,MAAM,OAAO,UAAU;;0BAGS,YAAY,CAAC,EAAE;4BACP,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;+BACxB,uBAAuB,EAAE;wBAKjC,KAAK;oBAKnB,IAAI;;;;;;IAsB5B,iBAAiB;QACf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAGD,mBAAmB;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAGD,wBAAwB,CAAC,EAAe;QACtC,MAAM,KAAK,GAAY,EAAE,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC;IACpC,CAAC;IAEO,WAAW,CAAC,CAAc;QAChC,IAAI,CAAC,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjD,OAAO;oBACL,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;oBACzD,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC;iBAC9D,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,EACJ,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,GAAG,EACH,MAAM,EACN,QAAQ,GACT,GAAG,IAAI,CAAC;QACT,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;QAExC,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE;gBACL,aAAa,EAAE,IAAI;gBACnB,CAAC,eAAe,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,IAC/C,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QACpB,EAAE,CAAC,EAAE,IAAI;gBACT,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,IAAI;aAC9C;
|
1
|
+
{"version":3,"file":"ic-footer-link.js","sourceRoot":"","sources":["../../../src/components/ic-footer-link/ic-footer-link.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Listen,\n Prop,\n h,\n State,\n} from \"@stencil/core\";\nimport { DEVICE_SIZES, getThemeForegroundColor } from \"../../utils/helpers\";\nimport { IcTheme, IcThemeForeground } from \"../../utils/types\";\n\nimport OpenInNew from \"../../assets/OpenInNew.svg\";\n\ntype FooterConfig = { small: boolean; grouped: boolean };\n\n@Component({\n tag: \"ic-footer-link\",\n styleUrl: \"ic-footer-link.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class FooterLink {\n @Element() el: HTMLIcFooterLinkElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() footerConfig: FooterConfig = { small: false, grouped: false };\n @State() foregroundColor: IcThemeForeground = getThemeForegroundColor();\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * The URL that the link points to.\n */\n @Prop() href?: string = null;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n componentWillLoad(): void {\n this.footerConfig = this.inferConfig(this.el);\n }\n\n @Listen(\"footerResized\", { target: \"document\" })\n footerResizeHandler(): void {\n this.footerConfig = this.inferConfig(this.el);\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n footerThemeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.foregroundColor = theme.mode;\n }\n\n private inferConfig(e: HTMLElement): FooterConfig {\n if (e.parentElement !== null) {\n if (e.parentElement.classList.contains(\"footer\")) {\n return {\n small: e.parentElement.classList.contains(\"footer-small\"),\n grouped: e.parentElement.classList.contains(\"footer-grouped\"),\n };\n } else {\n return this.inferConfig(e.parentElement);\n }\n } else {\n return { small: false, grouped: false };\n }\n }\n\n render() {\n const {\n footerConfig,\n href,\n hreflang,\n referrerpolicy,\n rel,\n target,\n download,\n } = this;\n const { small, grouped } = footerConfig;\n\n return (\n <Host\n class={{\n \"footer-link\": true,\n [`footer-link-${grouped ? \"grouped\" : \"ungrouped\"}-${\n small ? \"small\" : \"sparse\"\n }`]: true,\n [`footer-link-${this.foregroundColor}`]: true,\n }}\n role=\"listitem\"\n >\n <a\n href={href}\n hreflang={hreflang}\n referrerPolicy={referrerpolicy}\n rel={rel}\n download={download !== false ? download : null}\n target={target}\n >\n <slot />\n {target === \"_blank\" && (\n <span class=\"open-in-new-icon\" innerHTML={OpenInNew} />\n )}\n </a>\n </Host>\n );\n }\n}\n"]}
|
@@ -6,15 +6,7 @@ describe("ic-footer-link", () => {
|
|
6
6
|
components: [FooterLink],
|
7
7
|
html: `<ic-footer-link href="/">Link</ic-footer-link>`,
|
8
8
|
});
|
9
|
-
expect(page.root).
|
10
|
-
<ic-footer-link class="footer-link footer-link-light footer-link-ungrouped-sparse" href="/">
|
11
|
-
<mock:shadow-root>
|
12
|
-
<a href="/">
|
13
|
-
<slot></slot>
|
14
|
-
</a>
|
15
|
-
</mock:shadow-root>
|
16
|
-
Link
|
17
|
-
</ic-footer-link>`);
|
9
|
+
expect(page.root).toMatchSnapshot("footer-link");
|
18
10
|
});
|
19
11
|
it("should render small with grouped links", async () => {
|
20
12
|
const page = await newSpecPage({
|
@@ -23,15 +15,7 @@ describe("ic-footer-link", () => {
|
|
23
15
|
});
|
24
16
|
page.rootInstance.footerConfig = { small: true, grouped: true };
|
25
17
|
await page.waitForChanges();
|
26
|
-
expect(page.root).
|
27
|
-
<ic-footer-link class="footer-link footer-link-light footer-link-grouped-small" href="/">
|
28
|
-
<mock:shadow-root>
|
29
|
-
<a href="/">
|
30
|
-
<slot></slot>
|
31
|
-
</a>
|
32
|
-
</mock:shadow-root>
|
33
|
-
Link
|
34
|
-
</ic-footer-link>`);
|
18
|
+
expect(page.root).toMatchSnapshot("small-footer-link-with-grouped-links");
|
35
19
|
});
|
36
20
|
it("should set foregroundColor on theme change", async () => {
|
37
21
|
const page = await newSpecPage({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-footer-link.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-footer-link/test/basic/ic-footer-link.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,UAAU,CAAC;YACxB,IAAI,EAAE,gDAAgD;SACvD,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,
|
1
|
+
{"version":3,"file":"ic-footer-link.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-footer-link/test/basic/ic-footer-link.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,UAAU,CAAC;YACxB,IAAI,EAAE,gDAAgD;SACvD,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,UAAU,CAAC;YACxB,IAAI,EAAE,gDAAgD;SACvD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAChE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,sCAAsC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,UAAU,CAAC;YACxB,IAAI,EAAE;wBACY;SACnB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC;YAC/C,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SAC1B,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,UAAU,CAAC;YACxB,IAAI,EAAE;wBACY;SACnB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QAC9C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC;YACnD,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { FooterLink } from \"../../ic-footer-link\";\n\ndescribe(\"ic-footer-link\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [FooterLink],\n html: `<ic-footer-link href=\"/\">Link</ic-footer-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"footer-link\");\n });\n\n it(\"should render small with grouped links\", async () => {\n const page = await newSpecPage({\n components: [FooterLink],\n html: `<ic-footer-link href=\"/\">Link</ic-footer-link>`,\n });\n\n page.rootInstance.footerConfig = { small: true, grouped: true };\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot(\"small-footer-link-with-grouped-links\");\n });\n\n it(\"should set foregroundColor on theme change\", async () => {\n const page = await newSpecPage({\n components: [FooterLink],\n html: `<ic-footer-link label=\"button1\" onclick=\"alert('test')\">\n </ic-footer-link>`,\n });\n\n await page.rootInstance.footerThemeChangeHandler({\n detail: { mode: \"light\" },\n });\n await page.waitForChanges();\n\n expect(page.rootInstance.foregroundColor).toEqual(\"light\");\n });\n\n it(\"should test footer resize handler\", async () => {\n const page = await newSpecPage({\n components: [FooterLink],\n html: `<ic-footer-link label=\"button1\" onclick=\"alert('test')\">\n </ic-footer-link>`,\n });\n\n await page.rootInstance.footerResizeHandler();\n await page.waitForChanges();\n\n expect(page.rootInstance.footerConfig).toStrictEqual({\n grouped: false,\n small: false,\n });\n });\n});\n"]}
|
@@ -47,10 +47,10 @@ export class FooterLinkGroup {
|
|
47
47
|
return !small ? (h(Host, { class: {
|
48
48
|
["footer-link-group footer-link-group-sparse"]: true,
|
49
49
|
[`footer-link-group-${this.dropdownIconStyle}`]: true,
|
50
|
-
} }, h("div", { class: "footer-link-group-title" }, h("ic-typography", { variant: "subtitle-small" }, groupTitle)), h("div", { class: "footer-link-group-links" }, h("slot", null)))) : (h(Host, { class: {
|
50
|
+
}, role: "listitem" }, h("div", { class: "footer-link-group-title" }, h("ic-typography", { variant: "subtitle-small" }, groupTitle)), h("div", { class: "footer-link-group-links", role: "list" }, h("slot", null)))) : (h(Host, { class: {
|
51
51
|
["footer-link-group footer-link-group-small"]: true,
|
52
52
|
[`footer-link-group-${this.dropdownIconStyle}`]: true,
|
53
|
-
}, tabIndex: "1", onClick: this.toggleExpanded, onKeydown: this.handleKeydown, "aria-expanded": this.expanded }, h("ic-section-container", { fullHeight: true }, h("div", { class: "footer-link-group-header" }, h("div", { class: "footer-link-group-title" }, h("ic-typography", { variant: "label" }, groupTitle)), this.expanded ? (h("svg", { class: "footer-link-group-toggle", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", role: "img", width: "1em", height: "1em", preserveAspectRatio: "xMidYMid meet", viewBox: "0 0 1200 1200" }, h("path", { fill: "currentColor", d: "M600.002 210.605L421.285 389.336L0 810.559l178.721 178.836l421.281-421.341l421.281 421.341L1200 810.559L778.733 389.336L600.002 210.605z" }))) : (h("svg", { class: "footer-link-group-toggle", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", role: "img", width: "1em", height: "1em", preserveAspectRatio: "xMidYMid meet", viewBox: "0 0 1200 1200" }, h("g", { transform: "translate(0 1200) scale(1 -1)" }, h("path", { fill: "currentColor", d: "M600.002 210.605L421.285 389.336L0 810.559l178.721 178.836l421.281-421.341l421.281 421.341L1200 810.559L778.733 389.336L600.002 210.605z" }))))), this.expanded && (h("div", { class: "footer-link-group-links" }, h("slot", null))))));
|
53
|
+
}, tabIndex: "1", onClick: this.toggleExpanded, onKeydown: this.handleKeydown, "aria-expanded": this.expanded }, h("ic-section-container", { fullHeight: true }, h("div", { class: "footer-link-group-header" }, h("div", { class: "footer-link-group-title" }, h("ic-typography", { variant: "label" }, groupTitle)), this.expanded ? (h("svg", { class: "footer-link-group-toggle", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", role: "img", width: "1em", height: "1em", preserveAspectRatio: "xMidYMid meet", viewBox: "0 0 1200 1200" }, h("path", { fill: "currentColor", d: "M600.002 210.605L421.285 389.336L0 810.559l178.721 178.836l421.281-421.341l421.281 421.341L1200 810.559L778.733 389.336L600.002 210.605z" }))) : (h("svg", { class: "footer-link-group-toggle", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", role: "img", width: "1em", height: "1em", preserveAspectRatio: "xMidYMid meet", viewBox: "0 0 1200 1200" }, h("g", { transform: "translate(0 1200) scale(1 -1)" }, h("path", { fill: "currentColor", d: "M600.002 210.605L421.285 389.336L0 810.559l178.721 178.836l421.281-421.341l421.281 421.341L1200 810.559L778.733 389.336L600.002 210.605z" }))))), this.expanded && (h("div", { class: "footer-link-group-links", role: "list" }, h("slot", null))))));
|
54
54
|
}
|
55
55
|
static get is() { return "ic-footer-link-group"; }
|
56
56
|
static get encapsulation() { return "shadow"; }
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-footer-link-group.js","sourceRoot":"","sources":["../../../src/components/ic-footer-link-group/ic-footer-link-group.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,IAAI,EACJ,OAAO,EACP,MAAM,EACN,IAAI,EACJ,CAAC,EACD,KAAK,GACN,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,gCAAgC,GACjC,MAAM,qBAAqB,CAAC;AAU7B,MAAM,OAAO,eAAe;;QA+ClB,kBAAa,GAAG,CAAC,KAAoB,EAAQ,EAAE;YACrD,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;QAEM,mBAAc,GAAG,GAAS,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjC,CAAC,CAAC;wBApD2B,KAAK;0BACJ,YAAY,CAAC,EAAE;iCAChB,uBAAuB,EAAE;qBAC5B,KAAK;;;IAO/B,iBAAiB;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,gBAAgB;QACd,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,EACpD,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAGD,mBAAmB;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAGD,wBAAwB,CAAC,EAAe;QACtC,MAAM,KAAK,GAAY,EAAE,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC;IACtC,CAAC;IAEO,OAAO,CAAC,CAAc;QAC5B,IAAI,CAAC,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjD,OAAO,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAYD,MAAM;QACJ,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAEnC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CACd,EAAC,IAAI,IACH,KAAK,EAAE;gBACL,CAAC,4CAA4C,CAAC,EAAE,IAAI;gBACpD,CAAC,qBAAqB,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI;aACtD;
|
1
|
+
{"version":3,"file":"ic-footer-link-group.js","sourceRoot":"","sources":["../../../src/components/ic-footer-link-group/ic-footer-link-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n Element,\n Listen,\n Prop,\n h,\n State,\n} from \"@stencil/core\";\nimport {\n DEVICE_SIZES,\n getThemeForegroundColor,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport { IcTheme } from \"../../utils/types\";\n\n@Component({\n tag: \"ic-footer-link-group\",\n styleUrl: \"ic-footer-link-group.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class FooterLinkGroup {\n @Element() el: HTMLIcFooterLinkGroupElement;\n\n @State() expanded: boolean = false;\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() dropdownIconStyle = getThemeForegroundColor();\n @State() small: boolean = false;\n\n /**\n * The title of the link group to be displayed.\n */\n @Prop() groupTitle!: string;\n\n componentWillLoad(): void {\n this.small = this.isSmall(this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.groupTitle, propName: \"group-title\" }],\n \"Footer Link Group\"\n );\n }\n\n @Listen(\"footerResized\", { target: \"document\" })\n footerResizeHandler(): void {\n this.small = this.isSmall(this.el);\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n footerThemeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.dropdownIconStyle = theme.mode;\n }\n\n private isSmall(e: HTMLElement): boolean {\n if (e.parentElement !== null) {\n if (e.parentElement.classList.contains(\"footer\")) {\n return e.parentElement.classList.contains(\"footer-small\");\n } else {\n return this.isSmall(e.parentElement);\n }\n } else {\n return false;\n }\n }\n\n private handleKeydown = (event: KeyboardEvent): void => {\n if (event.key === \" \" || event.key === \"Enter\") {\n this.toggleExpanded();\n }\n };\n\n private toggleExpanded = (): void => {\n this.expanded = !this.expanded;\n };\n\n render() {\n const { small, groupTitle } = this;\n\n return !small ? (\n <Host\n class={{\n [\"footer-link-group footer-link-group-sparse\"]: true,\n [`footer-link-group-${this.dropdownIconStyle}`]: true,\n }}\n role=\"listitem\"\n >\n <div class=\"footer-link-group-title\">\n <ic-typography variant=\"subtitle-small\">{groupTitle}</ic-typography>\n </div>\n <div class=\"footer-link-group-links\" role=\"list\">\n <slot />\n </div>\n </Host>\n ) : (\n <Host\n class={{\n [\"footer-link-group footer-link-group-small\"]: true,\n [`footer-link-group-${this.dropdownIconStyle}`]: true,\n }}\n tabIndex=\"1\"\n onClick={this.toggleExpanded}\n onKeydown={this.handleKeydown}\n aria-expanded={this.expanded}\n >\n <ic-section-container fullHeight={true}>\n <div class=\"footer-link-group-header\">\n <div class=\"footer-link-group-title\">\n <ic-typography variant=\"label\">{groupTitle}</ic-typography>\n </div>\n {this.expanded ? (\n <svg\n class=\"footer-link-group-toggle\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n role=\"img\"\n width=\"1em\"\n height=\"1em\"\n preserveAspectRatio=\"xMidYMid meet\"\n viewBox=\"0 0 1200 1200\"\n >\n <path\n fill=\"currentColor\"\n d=\"M600.002 210.605L421.285 389.336L0 810.559l178.721 178.836l421.281-421.341l421.281 421.341L1200 810.559L778.733 389.336L600.002 210.605z\"\n />\n </svg>\n ) : (\n <svg\n class=\"footer-link-group-toggle\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n role=\"img\"\n width=\"1em\"\n height=\"1em\"\n preserveAspectRatio=\"xMidYMid meet\"\n viewBox=\"0 0 1200 1200\"\n >\n <g transform=\"translate(0 1200) scale(1 -1)\">\n <path\n fill=\"currentColor\"\n d=\"M600.002 210.605L421.285 389.336L0 810.559l178.721 178.836l421.281-421.341l421.281 421.341L1200 810.559L778.733 389.336L600.002 210.605z\"\n />\n </g>\n </svg>\n )}\n </div>\n {this.expanded && (\n <div class=\"footer-link-group-links\" role=\"list\">\n <slot />\n </div>\n )}\n </ic-section-container>\n </Host>\n );\n }\n}\n"]}
|
package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js
CHANGED
@@ -8,46 +8,14 @@ describe("ic-footer-link-group", () => {
|
|
8
8
|
components: [FooterLinkGroup],
|
9
9
|
html: `<ic-footer-link-group group-title="Link group"></ic-footer-link-group>`,
|
10
10
|
});
|
11
|
-
expect(page.root).
|
12
|
-
<ic-footer-link-group class="footer-link-group footer-link-group-light footer-link-group-sparse" group-title="Link group">
|
13
|
-
<mock:shadow-root>
|
14
|
-
<div class="footer-link-group-title">
|
15
|
-
<ic-typography variant="subtitle-small">
|
16
|
-
Link group
|
17
|
-
</ic-typography>
|
18
|
-
</div>
|
19
|
-
<div class="footer-link-group-links">
|
20
|
-
<slot></slot>
|
21
|
-
</div>
|
22
|
-
</mock:shadow-root>
|
23
|
-
</ic-footer-link-group>`);
|
11
|
+
expect(page.root).toMatchSnapshot("footer-link-group");
|
24
12
|
});
|
25
13
|
it("should render with links", async () => {
|
26
14
|
const page = await newSpecPage({
|
27
15
|
components: [FooterLinkGroup, FooterLink],
|
28
16
|
html: `<ic-footer-link-group group-title="Link group"><ic-footer-link href="/">Link</ic-footer-link></ic-footer-link-group>`,
|
29
17
|
});
|
30
|
-
expect(page.root).
|
31
|
-
<ic-footer-link-group class="footer-link-group footer-link-group-light footer-link-group-sparse" group-title="Link group">
|
32
|
-
<mock:shadow-root>
|
33
|
-
<div class="footer-link-group-title">
|
34
|
-
<ic-typography variant="subtitle-small">
|
35
|
-
Link group
|
36
|
-
</ic-typography>
|
37
|
-
</div>
|
38
|
-
<div class="footer-link-group-links">
|
39
|
-
<slot></slot>
|
40
|
-
</div>
|
41
|
-
</mock:shadow-root>
|
42
|
-
<ic-footer-link class="footer-link footer-link-light footer-link-ungrouped-sparse" href="/">
|
43
|
-
<mock:shadow-root>
|
44
|
-
<a href="/">
|
45
|
-
<slot></slot>
|
46
|
-
</a>
|
47
|
-
</mock:shadow-root>
|
48
|
-
Link
|
49
|
-
</ic-footer-link>
|
50
|
-
</ic-footer-link-group>`);
|
18
|
+
expect(page.root).toMatchSnapshot("footer-link-group-with-links");
|
51
19
|
});
|
52
20
|
it("should render within footer", async () => {
|
53
21
|
const page = await newSpecPage({
|
package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-footer-link-group.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEpE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,IAAI,EAAE,wEAAwE;SAC/E,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,
|
1
|
+
{"version":3,"file":"ic-footer-link-group.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Footer } from \"../../../ic-footer/ic-footer\";\nimport { FooterLinkGroup } from \"../../ic-footer-link-group\";\nimport { FooterLink } from \"../../../ic-footer-link/ic-footer-link\";\n\ndescribe(\"ic-footer-link-group\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [FooterLinkGroup],\n html: `<ic-footer-link-group group-title=\"Link group\"></ic-footer-link-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"footer-link-group\");\n });\n\n it(\"should render with links\", async () => {\n const page = await newSpecPage({\n components: [FooterLinkGroup, FooterLink],\n html: `<ic-footer-link-group group-title=\"Link group\"><ic-footer-link href=\"/\">Link</ic-footer-link></ic-footer-link-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"footer-link-group-with-links\");\n });\n\n it(\"should render within footer\", async () => {\n const page = await newSpecPage({\n components: [Footer, FooterLinkGroup, FooterLink],\n html: `<ic-footer><ic-footer-link-group group-title=\"Link group\"><ic-footer-link href=\"/\">Link</ic-footer-link></ic-footer-link-group><ic-footer>`,\n });\n\n expect(page.root).toMatchSnapshot(\"footer-link-group-in-footer\");\n });\n\n it(\"should expand and collapse\", async () => {\n const page = await newSpecPage({\n components: [Footer, FooterLinkGroup, FooterLink],\n html: `<ic-footer-link-group group-title=\"Link group\"><ic-footer-link href=\"/\">Link</ic-footer-link></ic-footer-link-group>`,\n });\n\n expect(page.rootInstance.expanded).toBe(false);\n\n const event = new KeyboardEvent(\"keydown\", { key: \"Enter\" });\n\n await page.rootInstance.handleKeydown(event);\n\n expect(page.rootInstance.expanded).toBe(true);\n\n await page.rootInstance.handleKeydown(event);\n\n expect(page.rootInstance.expanded).toBe(false);\n });\n\n it(\"should check and set small state\", async () => {\n const page = await newSpecPage({\n components: [Footer, FooterLinkGroup, FooterLink],\n html: `<ic-footer-link-group group-title=\"Link group\"><ic-footer-link href=\"/\">Link</ic-footer-link></ic-footer-link-group>`,\n });\n\n await page.rootInstance.footerResizeHandler();\n\n expect(page.rootInstance.small).toBe(false);\n });\n\n it(\"should update theme\", async () => {\n const page = await newSpecPage({\n components: [Footer, FooterLinkGroup, FooterLink],\n html: `<ic-footer-link-group group-title=\"Link group\"><ic-footer-link href=\"/\">Link</ic-footer-link></ic-footer-link-group>`,\n });\n\n await page.rootInstance.footerThemeChangeHandler({\n detail: { mode: \"dark\" },\n });\n\n expect(page.rootInstance.dropdownIconStyle).toBe(\"dark\");\n });\n\n it(\"should render small\", async () => {\n const page = await newSpecPage({\n components: [Footer, FooterLinkGroup, FooterLink],\n html: `<ic-footer breakpoint=\"extra large\"><ic-footer-link-group small=true group-title=\"Link group\"><ic-footer-link href=\"/\">Link</ic-footer-link></ic-footer-link-group></ic-footer>`,\n });\n\n expect(page.root).not.toBeNull;\n\n expect(page.root).toMatchSnapshot(\"footer-link-group-small\");\n });\n});\n"]}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { Host, h, } from "@stencil/core";
|
1
|
+
import { Host, h, forceUpdate, } from "@stencil/core";
|
2
2
|
import { IcThemeForegroundEnum, } from "../../utils/types";
|
3
|
-
import { slotHasContent, getThemeForegroundColor, onComponentRequiredPropUndefined, isPropDefined, isSlotUsed, } from "../../utils/helpers";
|
3
|
+
import { slotHasContent, getThemeForegroundColor, onComponentRequiredPropUndefined, isPropDefined, isSlotUsed, checkSlotInChildMutations, } from "../../utils/helpers";
|
4
4
|
/**
|
5
5
|
* @slot heading - Content will be rendered in the title area, in place of the heading.
|
6
6
|
* @slot subheading - Content will be rendered in the title area, in place of the subheading.
|
@@ -9,6 +9,14 @@ import { slotHasContent, getThemeForegroundColor, onComponentRequiredPropUndefin
|
|
9
9
|
*/
|
10
10
|
export class Hero {
|
11
11
|
constructor() {
|
12
|
+
this.hostMutationObserver = null;
|
13
|
+
this.hostMutationCallback = (mutationList) => {
|
14
|
+
if (mutationList.some(({ type, addedNodes, removedNodes }) => type === "childList"
|
15
|
+
? checkSlotInChildMutations(addedNodes, removedNodes, "secondary")
|
16
|
+
: false)) {
|
17
|
+
forceUpdate(this);
|
18
|
+
}
|
19
|
+
};
|
12
20
|
this.foregroundColor = getThemeForegroundColor();
|
13
21
|
this.rightContent = false;
|
14
22
|
this.leftContentFullWidth = !this.rightContent && this.secondaryHeading === undefined;
|
@@ -24,12 +32,20 @@ export class Hero {
|
|
24
32
|
this.small = false;
|
25
33
|
this.subheading = undefined;
|
26
34
|
}
|
35
|
+
disconnectedCallback() {
|
36
|
+
var _a;
|
37
|
+
(_a = this.hostMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
38
|
+
}
|
27
39
|
componentWillLoad() {
|
28
40
|
this.rightContent = slotHasContent(this.el, "secondary");
|
29
41
|
}
|
30
42
|
componentDidLoad() {
|
31
43
|
!isSlotUsed(this.el, "heading") &&
|
32
44
|
onComponentRequiredPropUndefined([{ prop: this.heading, propName: "heading" }], "Hero");
|
45
|
+
this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);
|
46
|
+
this.hostMutationObserver.observe(this.el, {
|
47
|
+
childList: true,
|
48
|
+
});
|
33
49
|
}
|
34
50
|
componentWillRender() {
|
35
51
|
this.rightContent = slotHasContent(this.el, "secondary");
|