@ukic/web-components 2.6.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/{helpers-498eb0e2.js → helpers-0d63359f.js} +36 -105
- package/dist/cjs/helpers-0d63359f.js.map +1 -0
- package/dist/cjs/ic-accordion.cjs.entry.js +5 -3
- package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -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-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +3 -3
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card.cjs.entry.js +2 -2
- package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +8 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +2 -11
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +2 -2
- package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-entity.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +88 -66
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +1 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +4 -3
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +77 -68
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
- package/dist/cjs/ic-link.cjs.entry.js +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 +2 -2
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +6 -3
- package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +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 +29 -60
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +2 -2
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +3 -3
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-select.cjs.entry.js +20 -16
- package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
- package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
- package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +2 -2
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +8 -2
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
- package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab.cjs.entry.js +1 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +17 -25
- 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-region.cjs.entry.js +20 -8
- package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +6 -5
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +9 -5
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/ic-accordion/ic-accordion.js +4 -2
- package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js +3 -0
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js.map +1 -1
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js +3 -0
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js.map +1 -1
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +3 -3
- package/dist/collection/components/ic-badge/ic-badge.js +4 -1
- package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.css +3 -1
- package/dist/collection/components/ic-card/ic-card.css +1 -1
- package/dist/collection/components/ic-checkbox/ic-checkbox.css +5 -5
- package/dist/collection/components/ic-checkbox/ic-checkbox.js +0 -9
- package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +13 -0
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
- package/dist/collection/components/ic-chip/ic-chip.css +1 -1
- package/dist/collection/components/ic-data-entity/ic-data-entity.css +1 -1
- package/dist/collection/components/ic-data-row/ic-data-row.css +1 -1
- package/dist/collection/components/ic-data-row/test/a11y/ic-data-row.test.a11y.js +3 -1
- package/dist/collection/components/ic-data-row/test/a11y/ic-data-row.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-dialog/ic-dialog.css +56 -21
- package/dist/collection/components/ic-dialog/ic-dialog.js +122 -64
- package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js +129 -48
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js.map +1 -1
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +54 -39
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
- package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js +2 -0
- package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +24 -2
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
- package/dist/collection/components/ic-horizontal-scroll/test/a11y/ic-horizontal-scroll.test.a11y.js +2 -0
- package/dist/collection/components/ic-horizontal-scroll/test/a11y/ic-horizontal-scroll.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +4 -4
- package/dist/collection/components/ic-menu/ic-menu.css +1 -5
- package/dist/collection/components/ic-menu/ic-menu.js +124 -65
- package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
- package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +17 -0
- package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -1
- package/dist/collection/components/ic-navigation-group/test/a11y/ic-navigation-group.test.a11y.js +2 -0
- package/dist/collection/components/ic-navigation-group/test/a11y/ic-navigation-group.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +11 -5
- package/dist/collection/components/ic-navigation-item/test/a11y/ic-navigation-item.test.a11y.js +2 -0
- package/dist/collection/components/ic-navigation-item/test/a11y/ic-navigation-item.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.css +7 -3
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
- package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js +1 -1
- package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js +37 -36
- package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js.map +1 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +28 -59
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
- package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js +3 -0
- package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js.map +1 -1
- package/dist/collection/components/ic-radio-option/ic-radio-option.css +3 -3
- package/dist/collection/components/ic-search-bar/ic-search-bar.css +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.js +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
- package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js +14 -30
- package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select.css +2 -1
- package/dist/collection/components/ic-select/ic-select.js +36 -14
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +25 -0
- package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js.map +1 -1
- package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +12 -4
- package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +1 -2
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
- package/dist/collection/components/ic-status-tag/ic-status-tag.css +4 -4
- package/dist/collection/components/ic-step/ic-step.css +1 -1
- package/dist/collection/components/ic-switch/ic-switch.css +3 -2
- package/dist/collection/components/ic-switch/ic-switch.js +9 -0
- package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
- package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js +35 -0
- package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js.map +1 -1
- package/dist/collection/components/ic-tab-group/ic-tab-group.css +1 -1
- package/dist/collection/components/ic-tab-group/ic-tab-group.js +1 -1
- package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
- package/dist/collection/components/ic-text-field/ic-text-field.js +16 -24
- package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
- package/dist/collection/components/ic-toast/ic-toast.js +9 -5
- package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
- package/dist/collection/components/ic-toast-region/ic-toast-region.js +53 -17
- package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -1
- package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js +23 -1
- package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js.map +1 -1
- package/dist/collection/components/ic-tooltip/ic-tooltip.css +2 -2
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +3 -3
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +8 -3
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js +2 -0
- package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js +15 -0
- package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js.map +1 -1
- package/dist/collection/utils/helpers.js +35 -104
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/components/helpers.js +35 -104
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ic-accordion.js +4 -2
- package/dist/components/ic-accordion.js.map +1 -1
- package/dist/components/ic-back-to-top.js +1 -1
- package/dist/components/ic-back-to-top.js.map +1 -1
- package/dist/components/ic-badge.js +1 -1
- package/dist/components/ic-badge.js.map +1 -1
- package/dist/components/ic-button2.js +1 -1
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card.js +1 -1
- package/dist/components/ic-card.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +8 -1
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox.js +1 -10
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-chip.js +1 -1
- package/dist/components/ic-chip.js.map +1 -1
- package/dist/components/ic-data-entity.js +1 -1
- package/dist/components/ic-data-entity.js.map +1 -1
- package/dist/components/ic-data-row.js +1 -1
- package/dist/components/ic-data-row.js.map +1 -1
- package/dist/components/ic-dialog.js +90 -66
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-horizontal-scroll2.js +4 -2
- package/dist/components/ic-horizontal-scroll2.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +1 -1
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-menu2.js +79 -67
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-group.js +1 -1
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-item.js +1 -1
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-navigation-menu2.js +5 -2
- package/dist/components/ic-navigation-menu2.js.map +1 -1
- package/dist/components/ic-popover-menu.js +28 -59
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-option.js +1 -1
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +2 -2
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-select.js +20 -15
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-status-tag.js +1 -1
- package/dist/components/ic-status-tag.js.map +1 -1
- package/dist/components/ic-step.js +1 -1
- package/dist/components/ic-step.js.map +1 -1
- package/dist/components/ic-switch.js +9 -1
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-tab-group.js +2 -2
- package/dist/components/ic-tab-group.js.map +1 -1
- package/dist/components/ic-text-field2.js +16 -24
- package/dist/components/ic-text-field2.js.map +1 -1
- package/dist/components/ic-toast-region.js +24 -9
- package/dist/components/ic-toast-region.js.map +1 -1
- package/dist/components/ic-toast.js +6 -5
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-tooltip2.js +1 -1
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-top-navigation.js +8 -4
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/core/core.css +1 -1
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-e71ec1fe.entry.js → p-025f9d2a.entry.js} +2 -2
- package/dist/core/p-025f9d2a.entry.js.map +1 -0
- package/dist/core/{p-65715458.entry.js → p-03329fd0.entry.js} +2 -2
- package/dist/core/{p-667711a8.entry.js → p-08b59078.entry.js} +2 -2
- package/dist/core/{p-f5d1a0d7.entry.js → p-0c82048e.entry.js} +2 -2
- package/dist/core/{p-7bc6eb83.entry.js → p-2265e418.entry.js} +2 -2
- package/dist/core/p-2265e418.entry.js.map +1 -0
- package/dist/core/p-24da56e7.entry.js +2 -0
- package/dist/core/p-24da56e7.entry.js.map +1 -0
- package/dist/core/{p-09022de8.entry.js → p-2c30b583.entry.js} +2 -2
- package/dist/core/{p-7c913098.entry.js → p-345fe84a.entry.js} +2 -2
- package/dist/core/{p-8fc9b82b.entry.js → p-39c8111d.entry.js} +2 -2
- package/dist/core/{p-a69c8001.entry.js → p-3a15202f.entry.js} +2 -2
- package/dist/core/{p-bb3e7ce5.entry.js → p-3a814fc4.entry.js} +2 -2
- package/dist/core/{p-1a5353ed.entry.js → p-41c6eaa1.entry.js} +2 -2
- package/dist/core/p-43af3cf6.entry.js +2 -0
- package/dist/core/p-43af3cf6.entry.js.map +1 -0
- package/dist/core/{p-5c722379.entry.js → p-475b7bd2.entry.js} +2 -2
- package/dist/core/p-4bc35224.entry.js +2 -0
- package/dist/core/p-4bc35224.entry.js.map +1 -0
- package/dist/core/{p-f2f8e4aa.entry.js → p-59bdafff.entry.js} +2 -2
- package/dist/core/p-5a3ca50a.entry.js +2 -0
- package/dist/core/p-5a3ca50a.entry.js.map +1 -0
- package/dist/core/{p-522947f5.entry.js → p-5ccbb042.entry.js} +2 -2
- package/dist/core/p-5ccbb042.entry.js.map +1 -0
- package/dist/core/{p-0dd70d92.entry.js → p-5fcd202e.entry.js} +2 -2
- package/dist/core/p-5fcd202e.entry.js.map +1 -0
- package/dist/core/p-657513b5.entry.js +2 -0
- package/dist/core/p-657513b5.entry.js.map +1 -0
- package/dist/core/p-69d15528.entry.js +2 -0
- package/dist/core/p-69d15528.entry.js.map +1 -0
- package/dist/core/p-6c376756.entry.js +2 -0
- package/dist/core/p-6c376756.entry.js.map +1 -0
- package/dist/core/p-717907de.entry.js +2 -0
- package/dist/core/p-717907de.entry.js.map +1 -0
- package/dist/core/p-748159fe.entry.js +2 -0
- package/dist/core/p-748159fe.entry.js.map +1 -0
- package/dist/core/{p-c08b5a9a.entry.js → p-752f0f9a.entry.js} +2 -2
- package/dist/core/{p-f62c902b.entry.js → p-76563540.entry.js} +2 -2
- package/dist/core/p-7ce86152.entry.js +2 -0
- package/dist/core/p-7ce86152.entry.js.map +1 -0
- package/dist/core/{p-027ea4ff.entry.js → p-88ea1e49.entry.js} +2 -2
- package/dist/core/{p-c5b6d645.entry.js → p-8b18346a.entry.js} +2 -2
- package/dist/core/p-8b18346a.entry.js.map +1 -0
- package/dist/core/p-8fb4f0c0.js +2 -0
- package/dist/core/p-8fb4f0c0.js.map +1 -0
- package/dist/core/{p-72d6619c.entry.js → p-932fb4b7.entry.js} +2 -2
- package/dist/core/p-99fad66b.entry.js +2 -0
- package/dist/core/p-99fad66b.entry.js.map +1 -0
- package/dist/core/p-9f6ffced.entry.js +2 -0
- package/dist/core/p-9f6ffced.entry.js.map +1 -0
- package/dist/core/{p-af9f1caa.entry.js → p-9ff57f09.entry.js} +2 -2
- package/dist/core/p-9ff57f09.entry.js.map +1 -0
- package/dist/core/{p-4164e7d5.entry.js → p-a4397df4.entry.js} +2 -2
- package/dist/core/p-a76912b0.entry.js +2 -0
- package/dist/core/p-a76912b0.entry.js.map +1 -0
- package/dist/core/{p-3758c2b5.entry.js → p-b0ce60a0.entry.js} +2 -2
- package/dist/core/p-b879fa3e.entry.js +2 -0
- package/dist/core/p-b879fa3e.entry.js.map +1 -0
- package/dist/core/p-ba495175.entry.js +2 -0
- package/dist/core/p-ba495175.entry.js.map +1 -0
- package/dist/core/p-c0719bf4.entry.js +2 -0
- package/dist/core/p-c0719bf4.entry.js.map +1 -0
- package/dist/core/{p-134b407d.entry.js → p-c0c62df4.entry.js} +2 -2
- package/dist/core/{p-d8022cec.entry.js → p-c9ef9f5c.entry.js} +2 -2
- package/dist/core/{p-c01d43cf.entry.js → p-ca6073be.entry.js} +2 -2
- package/dist/core/p-ca6073be.entry.js.map +1 -0
- package/dist/core/p-cb5f19ea.entry.js +2 -0
- package/dist/core/p-cb5f19ea.entry.js.map +1 -0
- package/dist/core/{p-e465a208.entry.js → p-ccac1730.entry.js} +2 -2
- package/dist/core/{p-bb085716.entry.js → p-cf4bacee.entry.js} +2 -2
- package/dist/core/p-d80f99e0.entry.js +2 -0
- package/dist/core/p-d80f99e0.entry.js.map +1 -0
- package/dist/core/{p-53533992.entry.js → p-e2fd542e.entry.js} +2 -2
- package/dist/core/p-e2fd542e.entry.js.map +1 -0
- package/dist/core/{p-09eb825d.entry.js → p-e3bffcae.entry.js} +2 -2
- package/dist/core/p-e9ddb8cd.entry.js +2 -0
- package/dist/core/p-e9ddb8cd.entry.js.map +1 -0
- package/dist/core/p-eb4641a9.entry.js +2 -0
- package/dist/core/p-eb4641a9.entry.js.map +1 -0
- package/dist/core/{p-b80520e9.entry.js → p-f019219c.entry.js} +2 -2
- package/dist/core/{p-27b46a68.entry.js → p-fbc8a739.entry.js} +2 -2
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-c325e537.js → helpers-24f6e762.js} +36 -105
- package/dist/esm/helpers-24f6e762.js.map +1 -0
- package/dist/esm/ic-accordion.entry.js +5 -3
- package/dist/esm/ic-accordion.entry.js.map +1 -1
- package/dist/esm/ic-alert.entry.js +1 -1
- package/dist/esm/ic-back-to-top.entry.js +2 -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-badge.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
- package/dist/esm/ic-breadcrumb.entry.js +1 -1
- package/dist/esm/ic-button_3.entry.js +3 -3
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card.entry.js +2 -2
- package/dist/esm/ic-card.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +8 -1
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +2 -11
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +2 -2
- package/dist/esm/ic-chip.entry.js.map +1 -1
- package/dist/esm/ic-data-entity.entry.js +1 -1
- package/dist/esm/ic-data-entity.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js +2 -2
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-dialog.entry.js +88 -66
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +1 -1
- package/dist/esm/ic-empty-state.entry.js +1 -1
- package/dist/esm/ic-footer-link-group.entry.js +1 -1
- package/dist/esm/ic-footer-link.entry.js +1 -1
- package/dist/esm/ic-footer.entry.js +1 -1
- package/dist/esm/ic-hero.entry.js +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js +4 -3
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +77 -68
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +1 -1
- package/dist/esm/ic-link.entry.js +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 +2 -2
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +2 -2
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +6 -3
- package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
- package/dist/esm/ic-page-header.entry.js +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 +29 -60
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +1 -1
- package/dist/esm/ic-radio-option.entry.js +2 -2
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +3 -3
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-select.entry.js +20 -16
- package/dist/esm/ic-select.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +1 -1
- package/dist/esm/ic-status-tag.entry.js +2 -2
- package/dist/esm/ic-status-tag.entry.js.map +1 -1
- package/dist/esm/ic-step.entry.js +2 -2
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-stepper.entry.js +1 -1
- package/dist/esm/ic-switch.entry.js +8 -2
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +3 -3
- package/dist/esm/ic-tab-group.entry.js.map +1 -1
- package/dist/esm/ic-tab-panel.entry.js +1 -1
- package/dist/esm/ic-tab.entry.js +1 -1
- package/dist/esm/ic-text-field.entry.js +17 -25
- 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-region.entry.js +20 -8
- package/dist/esm/ic-toast-region.entry.js.map +1 -1
- package/dist/esm/ic-toast.entry.js +6 -5
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/ic-top-navigation.entry.js +9 -5
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/ic-typography.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-accordion/ic-accordion.d.ts +1 -0
- package/dist/types/components/ic-badge/ic-badge.d.ts +3 -0
- package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +0 -1
- package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +1 -0
- package/dist/types/components/ic-dialog/ic-dialog.d.ts +17 -2
- package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.d.ts +4 -0
- package/dist/types/components/ic-menu/ic-menu.d.ts +12 -2
- package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +1 -1
- package/dist/types/components/ic-select/ic-select.d.ts +4 -0
- package/dist/types/components/ic-switch/ic-switch.d.ts +1 -0
- package/dist/types/components/ic-text-field/ic-text-field.d.ts +1 -0
- package/dist/types/components/ic-toast/ic-toast.d.ts +1 -1
- package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +7 -2
- package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +1 -0
- package/dist/types/components.d.ts +36 -3
- package/dist/types/utils/helpers.d.ts +2 -2
- package/hydrate/index.js +351 -386
- package/package.json +2 -2
- package/dist/cjs/helpers-498eb0e2.js.map +0 -1
- package/dist/core/p-0baa2141.entry.js +0 -2
- package/dist/core/p-0baa2141.entry.js.map +0 -1
- package/dist/core/p-0dd70d92.entry.js.map +0 -1
- package/dist/core/p-30f9fabc.entry.js +0 -2
- package/dist/core/p-30f9fabc.entry.js.map +0 -1
- package/dist/core/p-31236329.entry.js +0 -2
- package/dist/core/p-31236329.entry.js.map +0 -1
- package/dist/core/p-39db6642.entry.js +0 -2
- package/dist/core/p-39db6642.entry.js.map +0 -1
- package/dist/core/p-409e437f.js +0 -2
- package/dist/core/p-409e437f.js.map +0 -1
- package/dist/core/p-46053a32.entry.js +0 -2
- package/dist/core/p-46053a32.entry.js.map +0 -1
- package/dist/core/p-4af7cb4c.entry.js +0 -2
- package/dist/core/p-4af7cb4c.entry.js.map +0 -1
- package/dist/core/p-500e8584.entry.js +0 -2
- package/dist/core/p-500e8584.entry.js.map +0 -1
- package/dist/core/p-522947f5.entry.js.map +0 -1
- package/dist/core/p-53533992.entry.js.map +0 -1
- package/dist/core/p-5c9457e2.entry.js +0 -2
- package/dist/core/p-5c9457e2.entry.js.map +0 -1
- package/dist/core/p-6286ad7b.entry.js +0 -2
- package/dist/core/p-6286ad7b.entry.js.map +0 -1
- package/dist/core/p-6991655b.entry.js +0 -2
- package/dist/core/p-6991655b.entry.js.map +0 -1
- package/dist/core/p-6ce0a089.entry.js +0 -2
- package/dist/core/p-6ce0a089.entry.js.map +0 -1
- package/dist/core/p-700559ee.entry.js +0 -2
- package/dist/core/p-700559ee.entry.js.map +0 -1
- package/dist/core/p-78f0118c.entry.js +0 -2
- package/dist/core/p-78f0118c.entry.js.map +0 -1
- package/dist/core/p-7bc6eb83.entry.js.map +0 -1
- package/dist/core/p-8ae11ca6.entry.js +0 -2
- package/dist/core/p-8ae11ca6.entry.js.map +0 -1
- package/dist/core/p-9ea62161.entry.js +0 -2
- package/dist/core/p-9ea62161.entry.js.map +0 -1
- package/dist/core/p-ae1ed418.entry.js +0 -2
- package/dist/core/p-ae1ed418.entry.js.map +0 -1
- package/dist/core/p-af9f1caa.entry.js.map +0 -1
- package/dist/core/p-ba25f08a.entry.js +0 -2
- package/dist/core/p-ba25f08a.entry.js.map +0 -1
- package/dist/core/p-c01d43cf.entry.js.map +0 -1
- package/dist/core/p-c5b6d645.entry.js.map +0 -1
- package/dist/core/p-d4522596.entry.js +0 -2
- package/dist/core/p-d4522596.entry.js.map +0 -1
- package/dist/core/p-e71ec1fe.entry.js.map +0 -1
- package/dist/core/p-f5947c60.entry.js +0 -2
- package/dist/core/p-f5947c60.entry.js.map +0 -1
- package/dist/core/p-fee7caf1.entry.js +0 -2
- package/dist/core/p-fee7caf1.entry.js.map +0 -1
- package/dist/esm/helpers-c325e537.js.map +0 -1
- /package/dist/core/{p-65715458.entry.js.map → p-03329fd0.entry.js.map} +0 -0
- /package/dist/core/{p-667711a8.entry.js.map → p-08b59078.entry.js.map} +0 -0
- /package/dist/core/{p-f5d1a0d7.entry.js.map → p-0c82048e.entry.js.map} +0 -0
- /package/dist/core/{p-09022de8.entry.js.map → p-2c30b583.entry.js.map} +0 -0
- /package/dist/core/{p-7c913098.entry.js.map → p-345fe84a.entry.js.map} +0 -0
- /package/dist/core/{p-8fc9b82b.entry.js.map → p-39c8111d.entry.js.map} +0 -0
- /package/dist/core/{p-a69c8001.entry.js.map → p-3a15202f.entry.js.map} +0 -0
- /package/dist/core/{p-bb3e7ce5.entry.js.map → p-3a814fc4.entry.js.map} +0 -0
- /package/dist/core/{p-1a5353ed.entry.js.map → p-41c6eaa1.entry.js.map} +0 -0
- /package/dist/core/{p-5c722379.entry.js.map → p-475b7bd2.entry.js.map} +0 -0
- /package/dist/core/{p-f2f8e4aa.entry.js.map → p-59bdafff.entry.js.map} +0 -0
- /package/dist/core/{p-c08b5a9a.entry.js.map → p-752f0f9a.entry.js.map} +0 -0
- /package/dist/core/{p-f62c902b.entry.js.map → p-76563540.entry.js.map} +0 -0
- /package/dist/core/{p-027ea4ff.entry.js.map → p-88ea1e49.entry.js.map} +0 -0
- /package/dist/core/{p-72d6619c.entry.js.map → p-932fb4b7.entry.js.map} +0 -0
- /package/dist/core/{p-4164e7d5.entry.js.map → p-a4397df4.entry.js.map} +0 -0
- /package/dist/core/{p-3758c2b5.entry.js.map → p-b0ce60a0.entry.js.map} +0 -0
- /package/dist/core/{p-134b407d.entry.js.map → p-c0c62df4.entry.js.map} +0 -0
- /package/dist/core/{p-d8022cec.entry.js.map → p-c9ef9f5c.entry.js.map} +0 -0
- /package/dist/core/{p-e465a208.entry.js.map → p-ccac1730.entry.js.map} +0 -0
- /package/dist/core/{p-bb085716.entry.js.map → p-cf4bacee.entry.js.map} +0 -0
- /package/dist/core/{p-09eb825d.entry.js.map → p-e3bffcae.entry.js.map} +0 -0
- /package/dist/core/{p-b80520e9.entry.js.map → p-f019219c.entry.js.map} +0 -0
- /package/dist/core/{p-27b46a68.entry.js.map → p-fbc8a739.entry.js.map} +0 -0
|
@@ -4,6 +4,7 @@ import { checkResizeObserver, DEVICE_SIZES, getCurrentDeviceSize, getThemeForegr
|
|
|
4
4
|
/**
|
|
5
5
|
* @slot app-icon - Content will be rendered to left of app title.
|
|
6
6
|
* @slot app-title - Handle routing by nesting a route in the app title.
|
|
7
|
+
* @slot short-app-title - Handle routing by nesting a route in the short app title (to be displayed in place of app title on small screen sizes).
|
|
7
8
|
* @slot search - Content will be rendered in search area to left of buttons.
|
|
8
9
|
* @slot toggle-icon - Icon to be displayed on the button to toggle search slot content on smaller devices
|
|
9
10
|
* @slot navigation - Content will be rendered in navigation panel.
|
|
@@ -194,14 +195,18 @@ export class TopNavigation {
|
|
|
194
195
|
const attrs = Component == "a" && {
|
|
195
196
|
href: this.href,
|
|
196
197
|
};
|
|
198
|
+
const shortAppTitleSlot = isSlotUsed(this.el, "short-app-title");
|
|
197
199
|
return (h(Host, { class: {
|
|
198
200
|
["fullwidth-searchbar"]: this.hasFullWidthSearchBar,
|
|
199
201
|
[IcThemeForegroundEnum.Dark]: this.foregroundColor === IcThemeForegroundEnum.Dark,
|
|
200
|
-
} }, h("div", { class: "top-navigation" }, h("ic-section-container", { aligned: this.contentAligned, "full-height": true }, h("header", { role: "banner" }, h("div", { class: "top-panel-container" }, h("div", { class: "app-details-container" }, (hasTitle || isSlotUsed(this.el, "app-title")) && (h(Component, Object.assign({ class: "title-link" }, attrs), this.hasAppIcon && (h("div", { class: "app-icon-container"
|
|
201
|
-
!isEmptyString(this.shortAppTitle)
|
|
202
|
+
} }, h("div", { class: "top-navigation" }, h("ic-section-container", { aligned: this.contentAligned, "full-height": true }, h("header", { role: "banner" }, h("div", { class: "top-panel-container" }, h("div", { class: "app-details-container" }, (hasTitle || isSlotUsed(this.el, "app-title")) && (h(Component, Object.assign({ class: "title-link" }, attrs), this.hasAppIcon && (h("div", { class: "app-icon-container" }, h("slot", { name: "app-icon" }))), this.deviceSize <= DEVICE_SIZES.S &&
|
|
203
|
+
(!isEmptyString(this.shortAppTitle) ||
|
|
204
|
+
shortAppTitleSlot) ? (h("ic-typography", { variant: "subtitle-small", "aria-label": (!isSlotUsed(this.el, "app-title") ||
|
|
205
|
+
!shortAppTitleSlot) &&
|
|
206
|
+
`${this.appTitle} (${this.shortAppTitle})` }, h("h1", null, shortAppTitleSlot ? (h("slot", { name: "short-app-title" })) : (this.shortAppTitle)))) : (h("ic-typography", { variant: appTitleVariant }, h("h1", { class: "title-wrap" }, isSlotUsed(this.el, "app-title") ? (h("slot", { name: "app-title" })) : (this.appTitle)))))), this.status !== "" && (h("div", { class: "app-status" }, h("ic-typography", { "aria-label": "app tag", variant: "label-uppercase", class: "app-status-text" }, this.status))), this.version !== "" && (h("div", { class: "app-version" }, h("ic-typography", { variant: "label", class: "app-version-text", "aria-label": "app version" }, this.version)))), (this.hasSearchSlotContent || hasMenuContent) && (h("div", { class: "search-menu-container" }, h("div", { class: "search-actions-container" }, this.deviceSize > DEVICE_SIZES.L && (h("slot", { name: "search" })), this.hasSearchSlotContent &&
|
|
202
207
|
this.deviceSize <= DEVICE_SIZES.L && (h("ic-button", { id: "search-toggle-button", ref: (el) => (this.mobileSearchButtonEl = el), onMouseDown: this.searchButtonMouseDownHandler, variant: "icon", size: searchButtonSize, "aria-label": mobileSearchButtonTitle, appearance: this.foregroundColor, onClick: this.searchButtonClickHandler }, h("slot", { name: "toggle-icon" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "#ffffff" }, h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), h("path", { d: "M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" }))))), this.hasIconButtons && this.deviceSize > DEVICE_SIZES.L && (h("div", { class: "icon-buttons-container" }, h("slot", { name: "buttons" }))), hasMenuContent && this.deviceSize <= DEVICE_SIZES.L && (h("div", { class: "menu-button-container" }, h("span", { id: "navigation-landmark-button-text", class: "navigation-landmark-button-text", "aria-hidden": "true" }, "Main navigation button"), h("nav", { "aria-labelledby": "navigation-landmark-button-text", "aria-hidden": this.navMenuVisible ? "true" : "false" }, h("ic-button", { id: "menu-button", appearance: this.foregroundColor, variant: "secondary", "aria-expanded": this.menuOpen ? "true" : "false", "aria-haspopup": "true", "aria-label": `Open ${this.hasNavigation ? "navigation" : "app"} menu`, size: menuSize, onClick: this.menuButtonClick }, "Menu", h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#ffffff", slot: "icon" }, h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), h("path", { d: "M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" })))))))))), this.mobileSearchBarVisible && (h("div", { class: "search-bar-container" }, h("slot", { name: "search" }))), this.hasNavigation && this.deviceSize > DEVICE_SIZES.L && (h("div", { class: "navigation-tabs" }, h("span", { id: "navigation-landmark-text", class: "navigation-landmark-text", "aria-hidden": "true" }, "Main navigation"), h("nav", { "aria-labelledby": "navigation-landmark-text", class: "nav-panel-container" }, h("ic-horizontal-scroll", { appearance: this.foregroundColor }, h("ul", { class: "navigation-item-list", tabindex: "-1" }, h("slot", { name: "navigation" }))))))))), this.navMenuVisible && (h("ic-navigation-menu", { version: this.version, status: this.status, class: {
|
|
203
208
|
["inline"]: this.inline,
|
|
204
|
-
} }, h("div", { class: "menu-buttons-slot", slot: "buttons" }, h("slot", { name: "buttons" })), h("ul", { slot: "navigation" }, h("slot", { name: "navigation" }))))));
|
|
209
|
+
} }, this.hasIconButtons && (h("div", { class: "menu-buttons-slot", slot: "buttons" }, h("slot", { name: "buttons" }))), h("ul", { slot: "navigation" }, h("slot", { name: "navigation" }))))));
|
|
205
210
|
}
|
|
206
211
|
static get is() { return "ic-top-navigation"; }
|
|
207
212
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ic-top-navigation.js","sourceRoot":"","sources":["../../../src/components/ic-top-navigation/ic-top-navigation.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n h,\n State,\n Listen,\n Event,\n EventEmitter,\n Watch,\n} from \"@stencil/core\";\n\nimport {\n IcTypographyVariants,\n IcAlignment,\n IcThemeForeground,\n IcThemeForegroundEnum,\n IcTheme,\n} from \"../../utils/types\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getThemeForegroundColor,\n getSlot,\n onComponentPropUndefinedChange,\n onComponentRequiredPropUndefined,\n isSlotUsed,\n isEmptyString,\n isPropDefined,\n} from \"../../utils/helpers\";\n\n/**\n * @slot app-icon - Content will be rendered to left of app title.\n * @slot app-title - Handle routing by nesting a route in the app title.\n * @slot search - Content will be rendered in search area to left of buttons.\n * @slot toggle-icon - Icon to be displayed on the button to toggle search slot content on smaller devices\n * @slot navigation - Content will be rendered in navigation panel.\n * @slot buttons - Content will be rendered to right of search bar.\n */\n@Component({\n tag: \"ic-top-navigation\",\n styleUrl: \"ic-top-navigation.css\",\n shadow: true,\n})\nexport class TopNavigation {\n private hasAppIcon: boolean = false;\n private hasIconButtons: boolean = false;\n private hasNavigation: boolean = false;\n private hasSearchSlotContent: boolean = false;\n private mobileSearchButtonEl: HTMLIcButtonElement;\n private resizeObserver: ResizeObserver = null;\n private searchBar: HTMLIcSearchBarElement = null;\n\n @Element() el: HTMLIcTopNavigationElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() foregroundColor: IcThemeForeground = getThemeForegroundColor();\n @State() hasFullWidthSearchBar: boolean = false;\n @State() menuOpen: boolean = false;\n @State() mobileSearchBarVisible: boolean = false;\n @State() mobileSearchHiddenOnBlur: boolean = false;\n @State() navMenuVisible: boolean = false;\n @State() searchButtonClick: boolean = false;\n @State() searchValue: string = \"\";\n\n /**\n * The alignment of the top navigation content.\n */\n @Prop() contentAligned: IcAlignment = \"full-width\";\n /**\n * The URL to navigate to when the app title is clicked.\n */\n @Prop() href: string = \"/\";\n\n /**\n * If `true`, the flyout navigation menu on small devices will be contained by the parent element.\n */\n @Prop() inline: boolean = false;\n\n /**\n * The short title of the app to be displayed at small screen sizes in place of the app title.\n */\n @Prop() shortAppTitle: string = \"\";\n\n /**\n * The status info to be displayed.\n */\n @Prop() status: string = \"\";\n\n /**\n * The version info to be displayed.\n */\n @Prop() version: string = \"\";\n\n /**\n * The app title to be displayed. This is required, unless a slotted app title link is used.\n */\n @Prop() appTitle: string;\n @Watch(\"appTitle\")\n watchPropHandler(newValue: string, oldValue: string): void {\n //added for gatsby rehydration issue where prop is initially undefined but then changes to actual value\n //this watch can be removed once gatbsy hydration issue is resolved\n onComponentPropUndefinedChange(\n oldValue,\n newValue,\n this.initialiseSearchBar\n );\n }\n\n /**\n * @internal - Emitted when the menu is closed.\n */\n @Event() icNavigationMenuClosed: EventEmitter<void>;\n\n /**\n * @internal - Emitted when the menu is opened.\n */\n @Event() icNavigationMenuOpened: EventEmitter<void>;\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n this.hasAppIcon = isSlotUsed(this.el, \"app-icon\");\n this.hasNavigation = isSlotUsed(this.el, \"navigation\");\n this.hasIconButtons = isSlotUsed(this.el, \"buttons\");\n this.hasSearchSlotContent = isSlotUsed(this.el, \"search\");\n this.deviceSize = getCurrentDeviceSize();\n this.initialiseSearchBar();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n !isSlotUsed(this.el, \"app-title\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.appTitle, propName: \"app-title\" }],\n \"Top Navigation\"\n );\n }\n\n componentWillRender(): void {\n this.hasNavigation = isSlotUsed(this.el, \"navigation\");\n this.hasSearchSlotContent = isSlotUsed(this.el, \"search\");\n this.hasIconButtons = isSlotUsed(this.el, \"buttons\");\n this.hasAppIcon = isSlotUsed(this.el, \"app-icon\");\n }\n\n @Listen(\"icNavigationMenuClose\", {})\n navBarMenuCloseHandler(): void {\n this.showNavMenu(false);\n const menuBtn = this.el.shadowRoot.querySelector(\n \"#menu-button\"\n ) as HTMLElement;\n menuBtn.focus();\n }\n\n @Listen(\"icSearchBarBlur\", {})\n searchInputBlurHandler(ev: CustomEvent): void {\n if (ev.detail !== null) {\n if (this.mobileSearchBarVisible && !this.searchButtonClick) {\n //don't hide if blur was triggered by click on search button - let the click handler toggle the state\n this.toggleSearchBar();\n }\n this.searchValue = ev.detail.value;\n }\n }\n\n @Listen(\"icChange\", {})\n searchValueChangeHandler(ev: CustomEvent): void {\n this.searchValue = ev.detail.value;\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 initialiseSearchBar = () => {\n if (this.hasSearchSlotContent) {\n const slot = getSlot(this.el, \"search\");\n if (slot && slot.tagName === \"IC-SEARCH-BAR\") {\n this.searchBar = slot as HTMLIcSearchBarElement;\n } else if (slot && slot.tagName === \"FORM\") {\n this.searchBar = slot.querySelector(\n \"ic-search-bar\"\n ) as HTMLIcSearchBarElement;\n }\n\n if (this.searchBar !== null) {\n this.searchBar.hideLabel = true;\n }\n }\n };\n\n private toggleSearchBar(): void {\n this.mobileSearchBarVisible = !this.mobileSearchBarVisible;\n\n if (this.searchBar !== null) {\n if (this.mobileSearchBarVisible) {\n this.mobileSearchButtonEl.setAttribute(\"aria-label\", \"Hide search\");\n this.hasFullWidthSearchBar = true;\n this.searchBar.fullWidth = true;\n setTimeout(() => {\n this.searchBar.focus();\n }, 100);\n } else {\n this.mobileSearchButtonEl.setAttribute(\"aria-label\", \"Show search\");\n this.hasFullWidthSearchBar = false;\n this.searchBar.fullWidth = false;\n }\n }\n }\n\n private emitTopNavResized = (size: number): void => {\n const event = new CustomEvent(\"topNavResized\", { detail: { size: size } });\n this.el.dispatchEvent(event);\n };\n\n private menuButtonClick = () => {\n this.showNavMenu(true);\n };\n\n private showNavMenu(show: boolean): void {\n this.navMenuVisible = show;\n if (show) {\n this.icNavigationMenuOpened.emit();\n document.body.style.height = \"100%\";\n document.body.style.overflow = \"hidden\";\n } else {\n this.icNavigationMenuClosed.emit();\n document.body.style.height = \"auto\";\n document.body.style.overflow = \"auto\";\n }\n }\n\n private searchButtonMouseDownHandler = () => {\n this.searchButtonClick = true;\n };\n\n private searchButtonClickHandler = () => {\n this.toggleSearchBar();\n this.searchButtonClick = false;\n };\n\n private resizeObserverCallback = (currSize: number) => {\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n if (currSize > DEVICE_SIZES.L) {\n this.showNavMenu(false);\n if (this.mobileSearchBarVisible) {\n this.toggleSearchBar();\n }\n }\n this.emitTopNavResized(currSize);\n if (\n document.activeElement !== null &&\n document.activeElement !== undefined &&\n document.activeElement.tagName === \"IC-SEARCH-BAR\"\n ) {\n this.searchBar.setAttribute(\"hidden\", \"true\");\n //remove attribute again as this trigger a redraw & applies css\n this.searchBar.removeAttribute(\"hidden\");\n setTimeout(() => {\n this.searchBar.focus();\n }, 100);\n }\n }\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.el);\n };\n\n render() {\n const hasMenuContent =\n this.hasNavigation ||\n this.hasIconButtons ||\n this.status !== \"\" ||\n this.version !== \"\";\n\n const searchButtonSize =\n this.deviceSize <= DEVICE_SIZES.S ? \"default\" : \"large\";\n\n let appTitleVariant: IcTypographyVariants = \"h3\";\n\n const hasTitle = this.appTitle !== \"\" && isPropDefined(this.appTitle);\n\n if (this.deviceSize <= DEVICE_SIZES.L) {\n appTitleVariant = \"h4\";\n if (this.deviceSize <= DEVICE_SIZES.S) {\n appTitleVariant = \"subtitle-small\";\n }\n }\n\n const mobileSearchButtonTitle = this.mobileSearchBarVisible\n ? \"Hide search\"\n : \"Show search\";\n const menuSize = this.deviceSize <= DEVICE_SIZES.S ? \"small\" : \"default\";\n\n const Component = isSlotUsed(this.el, \"app-title\") ? \"div\" : \"a\";\n\n const attrs = Component == \"a\" && {\n href: this.href,\n };\n\n return (\n <Host\n class={{\n [\"fullwidth-searchbar\"]: this.hasFullWidthSearchBar,\n [IcThemeForegroundEnum.Dark]:\n this.foregroundColor === IcThemeForegroundEnum.Dark,\n }}\n >\n <div class=\"top-navigation\">\n <ic-section-container aligned={this.contentAligned} full-height>\n <header role=\"banner\">\n <div class=\"top-panel-container\">\n <div class=\"app-details-container\">\n {(hasTitle || isSlotUsed(this.el, \"app-title\")) && (\n <Component class=\"title-link\" {...attrs}>\n {this.hasAppIcon && (\n <div class=\"app-icon-container\" aria-hidden=\"true\">\n <slot name=\"app-icon\" />\n </div>\n )}\n {this.deviceSize <= DEVICE_SIZES.S &&\n !isEmptyString(this.shortAppTitle) ? (\n <ic-typography\n variant=\"subtitle-small\"\n aria-label={`${this.appTitle} (${this.shortAppTitle})`}\n >\n <h1>{this.shortAppTitle}</h1>\n </ic-typography>\n ) : (\n <ic-typography variant={appTitleVariant}>\n <h1 class=\"title-wrap\">\n {isSlotUsed(this.el, \"app-title\") ? (\n <slot name=\"app-title\"></slot>\n ) : (\n this.appTitle\n )}\n </h1>\n </ic-typography>\n )}\n </Component>\n )}\n {this.status !== \"\" && (\n <div class=\"app-status\">\n <ic-typography\n aria-label=\"app tag\"\n variant=\"label-uppercase\"\n class=\"app-status-text\"\n >\n {this.status}\n </ic-typography>\n </div>\n )}\n {this.version !== \"\" && (\n <div class=\"app-version\">\n <ic-typography\n variant=\"label\"\n class=\"app-version-text\"\n aria-label=\"app version\"\n >\n {this.version}\n </ic-typography>\n </div>\n )}\n </div>\n\n {(this.hasSearchSlotContent || hasMenuContent) && (\n <div class=\"search-menu-container\">\n <div class=\"search-actions-container\">\n {this.deviceSize > DEVICE_SIZES.L && (\n <slot name=\"search\"></slot>\n )}\n\n {this.hasSearchSlotContent &&\n this.deviceSize <= DEVICE_SIZES.L && (\n <ic-button\n id=\"search-toggle-button\"\n ref={(el) => (this.mobileSearchButtonEl = el)}\n onMouseDown={this.searchButtonMouseDownHandler}\n variant=\"icon\"\n size={searchButtonSize}\n aria-label={mobileSearchButtonTitle}\n appearance={this.foregroundColor}\n onClick={this.searchButtonClickHandler}\n >\n <slot name=\"toggle-icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"#ffffff\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\" />\n </svg>\n </slot>\n </ic-button>\n )}\n\n {this.hasIconButtons && this.deviceSize > DEVICE_SIZES.L && (\n <div class=\"icon-buttons-container\">\n <slot name=\"buttons\"></slot>\n </div>\n )}\n {hasMenuContent && this.deviceSize <= DEVICE_SIZES.L && (\n <div class=\"menu-button-container\">\n <span\n id=\"navigation-landmark-button-text\"\n class=\"navigation-landmark-button-text\"\n aria-hidden=\"true\"\n >\n Main navigation button\n </span>\n <nav\n aria-labelledby=\"navigation-landmark-button-text\"\n aria-hidden={this.navMenuVisible ? \"true\" : \"false\"}\n >\n <ic-button\n id=\"menu-button\"\n appearance={this.foregroundColor}\n variant=\"secondary\"\n aria-expanded={this.menuOpen ? \"true\" : \"false\"}\n aria-haspopup=\"true\"\n aria-label={`Open ${\n this.hasNavigation ? \"navigation\" : \"app\"\n } menu`}\n size={menuSize}\n onClick={this.menuButtonClick}\n >\n Menu\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"#ffffff\"\n slot=\"icon\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\" />\n </svg>\n </ic-button>\n </nav>\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n\n {this.mobileSearchBarVisible && (\n <div class=\"search-bar-container\">\n <slot name=\"search\"></slot>\n </div>\n )}\n\n {this.hasNavigation && this.deviceSize > DEVICE_SIZES.L && (\n <div class=\"navigation-tabs\">\n <span\n id=\"navigation-landmark-text\"\n class=\"navigation-landmark-text\"\n aria-hidden=\"true\"\n >\n Main navigation\n </span>\n <nav\n aria-labelledby=\"navigation-landmark-text\"\n class=\"nav-panel-container\"\n >\n <ic-horizontal-scroll appearance={this.foregroundColor}>\n <ul class=\"navigation-item-list\" tabindex=\"-1\">\n <slot name=\"navigation\"></slot>\n </ul>\n </ic-horizontal-scroll>\n </nav>\n </div>\n )}\n </header>\n </ic-section-container>\n </div>\n {this.navMenuVisible && (\n <ic-navigation-menu\n version={this.version}\n status={this.status}\n class={{\n [\"inline\"]: this.inline,\n }}\n >\n <div class=\"menu-buttons-slot\" slot=\"buttons\">\n <slot name=\"buttons\"></slot>\n </div>\n <ul slot=\"navigation\">\n <slot name=\"navigation\"></slot>\n </ul>\n </ic-navigation-menu>\n )}\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ic-top-navigation.js","sourceRoot":"","sources":["../../../src/components/ic-top-navigation/ic-top-navigation.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n h,\n State,\n Listen,\n Event,\n EventEmitter,\n Watch,\n} from \"@stencil/core\";\n\nimport {\n IcTypographyVariants,\n IcAlignment,\n IcThemeForeground,\n IcThemeForegroundEnum,\n IcTheme,\n} from \"../../utils/types\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getThemeForegroundColor,\n getSlot,\n onComponentPropUndefinedChange,\n onComponentRequiredPropUndefined,\n isSlotUsed,\n isEmptyString,\n isPropDefined,\n} from \"../../utils/helpers\";\n\n/**\n * @slot app-icon - Content will be rendered to left of app title.\n * @slot app-title - Handle routing by nesting a route in the app title.\n * @slot short-app-title - Handle routing by nesting a route in the short app title (to be displayed in place of app title on small screen sizes).\n * @slot search - Content will be rendered in search area to left of buttons.\n * @slot toggle-icon - Icon to be displayed on the button to toggle search slot content on smaller devices\n * @slot navigation - Content will be rendered in navigation panel.\n * @slot buttons - Content will be rendered to right of search bar.\n */\n@Component({\n tag: \"ic-top-navigation\",\n styleUrl: \"ic-top-navigation.css\",\n shadow: true,\n})\nexport class TopNavigation {\n private hasAppIcon: boolean = false;\n private hasIconButtons: boolean = false;\n private hasNavigation: boolean = false;\n private hasSearchSlotContent: boolean = false;\n private mobileSearchButtonEl: HTMLIcButtonElement;\n private resizeObserver: ResizeObserver = null;\n private searchBar: HTMLIcSearchBarElement = null;\n\n @Element() el: HTMLIcTopNavigationElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() foregroundColor: IcThemeForeground = getThemeForegroundColor();\n @State() hasFullWidthSearchBar: boolean = false;\n @State() menuOpen: boolean = false;\n @State() mobileSearchBarVisible: boolean = false;\n @State() mobileSearchHiddenOnBlur: boolean = false;\n @State() navMenuVisible: boolean = false;\n @State() searchButtonClick: boolean = false;\n @State() searchValue: string = \"\";\n\n /**\n * The alignment of the top navigation content.\n */\n @Prop() contentAligned: IcAlignment = \"full-width\";\n /**\n * The URL to navigate to when the app title is clicked.\n */\n @Prop() href: string = \"/\";\n\n /**\n * If `true`, the flyout navigation menu on small devices will be contained by the parent element.\n */\n @Prop() inline: boolean = false;\n\n /**\n * The short title of the app to be displayed at small screen sizes in place of the app title.\n */\n @Prop() shortAppTitle: string = \"\";\n\n /**\n * The status info to be displayed.\n */\n @Prop() status: string = \"\";\n\n /**\n * The version info to be displayed.\n */\n @Prop() version: string = \"\";\n\n /**\n * The app title to be displayed. This is required, unless a slotted app title link is used.\n */\n @Prop() appTitle: string;\n @Watch(\"appTitle\")\n watchPropHandler(newValue: string, oldValue: string): void {\n //added for gatsby rehydration issue where prop is initially undefined but then changes to actual value\n //this watch can be removed once gatbsy hydration issue is resolved\n onComponentPropUndefinedChange(\n oldValue,\n newValue,\n this.initialiseSearchBar\n );\n }\n\n /**\n * @internal - Emitted when the menu is closed.\n */\n @Event() icNavigationMenuClosed: EventEmitter<void>;\n\n /**\n * @internal - Emitted when the menu is opened.\n */\n @Event() icNavigationMenuOpened: EventEmitter<void>;\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n this.hasAppIcon = isSlotUsed(this.el, \"app-icon\");\n this.hasNavigation = isSlotUsed(this.el, \"navigation\");\n this.hasIconButtons = isSlotUsed(this.el, \"buttons\");\n this.hasSearchSlotContent = isSlotUsed(this.el, \"search\");\n this.deviceSize = getCurrentDeviceSize();\n this.initialiseSearchBar();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n !isSlotUsed(this.el, \"app-title\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.appTitle, propName: \"app-title\" }],\n \"Top Navigation\"\n );\n }\n\n componentWillRender(): void {\n this.hasNavigation = isSlotUsed(this.el, \"navigation\");\n this.hasSearchSlotContent = isSlotUsed(this.el, \"search\");\n this.hasIconButtons = isSlotUsed(this.el, \"buttons\");\n this.hasAppIcon = isSlotUsed(this.el, \"app-icon\");\n }\n\n @Listen(\"icNavigationMenuClose\", {})\n navBarMenuCloseHandler(): void {\n this.showNavMenu(false);\n const menuBtn = this.el.shadowRoot.querySelector(\n \"#menu-button\"\n ) as HTMLElement;\n menuBtn.focus();\n }\n\n @Listen(\"icSearchBarBlur\", {})\n searchInputBlurHandler(ev: CustomEvent): void {\n if (ev.detail !== null) {\n if (this.mobileSearchBarVisible && !this.searchButtonClick) {\n //don't hide if blur was triggered by click on search button - let the click handler toggle the state\n this.toggleSearchBar();\n }\n this.searchValue = ev.detail.value;\n }\n }\n\n @Listen(\"icChange\", {})\n searchValueChangeHandler(ev: CustomEvent): void {\n this.searchValue = ev.detail.value;\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 initialiseSearchBar = () => {\n if (this.hasSearchSlotContent) {\n const slot = getSlot(this.el, \"search\");\n if (slot && slot.tagName === \"IC-SEARCH-BAR\") {\n this.searchBar = slot as HTMLIcSearchBarElement;\n } else if (slot && slot.tagName === \"FORM\") {\n this.searchBar = slot.querySelector(\n \"ic-search-bar\"\n ) as HTMLIcSearchBarElement;\n }\n\n if (this.searchBar !== null) {\n this.searchBar.hideLabel = true;\n }\n }\n };\n\n private toggleSearchBar(): void {\n this.mobileSearchBarVisible = !this.mobileSearchBarVisible;\n\n if (this.searchBar !== null) {\n if (this.mobileSearchBarVisible) {\n this.mobileSearchButtonEl.setAttribute(\"aria-label\", \"Hide search\");\n this.hasFullWidthSearchBar = true;\n this.searchBar.fullWidth = true;\n setTimeout(() => {\n this.searchBar.focus();\n }, 100);\n } else {\n this.mobileSearchButtonEl.setAttribute(\"aria-label\", \"Show search\");\n this.hasFullWidthSearchBar = false;\n this.searchBar.fullWidth = false;\n }\n }\n }\n\n private emitTopNavResized = (size: number): void => {\n const event = new CustomEvent(\"topNavResized\", { detail: { size: size } });\n this.el.dispatchEvent(event);\n };\n\n private menuButtonClick = () => {\n this.showNavMenu(true);\n };\n\n private showNavMenu(show: boolean): void {\n this.navMenuVisible = show;\n if (show) {\n this.icNavigationMenuOpened.emit();\n document.body.style.height = \"100%\";\n document.body.style.overflow = \"hidden\";\n } else {\n this.icNavigationMenuClosed.emit();\n document.body.style.height = \"auto\";\n document.body.style.overflow = \"auto\";\n }\n }\n\n private searchButtonMouseDownHandler = () => {\n this.searchButtonClick = true;\n };\n\n private searchButtonClickHandler = () => {\n this.toggleSearchBar();\n this.searchButtonClick = false;\n };\n\n private resizeObserverCallback = (currSize: number) => {\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n if (currSize > DEVICE_SIZES.L) {\n this.showNavMenu(false);\n if (this.mobileSearchBarVisible) {\n this.toggleSearchBar();\n }\n }\n this.emitTopNavResized(currSize);\n if (\n document.activeElement !== null &&\n document.activeElement !== undefined &&\n document.activeElement.tagName === \"IC-SEARCH-BAR\"\n ) {\n this.searchBar.setAttribute(\"hidden\", \"true\");\n //remove attribute again as this trigger a redraw & applies css\n this.searchBar.removeAttribute(\"hidden\");\n setTimeout(() => {\n this.searchBar.focus();\n }, 100);\n }\n }\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.el);\n };\n\n render() {\n const hasMenuContent =\n this.hasNavigation ||\n this.hasIconButtons ||\n this.status !== \"\" ||\n this.version !== \"\";\n\n const searchButtonSize =\n this.deviceSize <= DEVICE_SIZES.S ? \"default\" : \"large\";\n\n let appTitleVariant: IcTypographyVariants = \"h3\";\n\n const hasTitle = this.appTitle !== \"\" && isPropDefined(this.appTitle);\n\n if (this.deviceSize <= DEVICE_SIZES.L) {\n appTitleVariant = \"h4\";\n if (this.deviceSize <= DEVICE_SIZES.S) {\n appTitleVariant = \"subtitle-small\";\n }\n }\n\n const mobileSearchButtonTitle = this.mobileSearchBarVisible\n ? \"Hide search\"\n : \"Show search\";\n const menuSize = this.deviceSize <= DEVICE_SIZES.S ? \"small\" : \"default\";\n\n const Component = isSlotUsed(this.el, \"app-title\") ? \"div\" : \"a\";\n\n const attrs = Component == \"a\" && {\n href: this.href,\n };\n\n const shortAppTitleSlot = isSlotUsed(this.el, \"short-app-title\");\n\n return (\n <Host\n class={{\n [\"fullwidth-searchbar\"]: this.hasFullWidthSearchBar,\n [IcThemeForegroundEnum.Dark]:\n this.foregroundColor === IcThemeForegroundEnum.Dark,\n }}\n >\n <div class=\"top-navigation\">\n <ic-section-container aligned={this.contentAligned} full-height>\n <header role=\"banner\">\n <div class=\"top-panel-container\">\n <div class=\"app-details-container\">\n {(hasTitle || isSlotUsed(this.el, \"app-title\")) && (\n <Component class=\"title-link\" {...attrs}>\n {this.hasAppIcon && (\n <div class=\"app-icon-container\">\n <slot name=\"app-icon\" />\n </div>\n )}\n {this.deviceSize <= DEVICE_SIZES.S &&\n (!isEmptyString(this.shortAppTitle) ||\n shortAppTitleSlot) ? (\n <ic-typography\n variant=\"subtitle-small\"\n aria-label={\n (!isSlotUsed(this.el, \"app-title\") ||\n !shortAppTitleSlot) &&\n `${this.appTitle} (${this.shortAppTitle})`\n }\n >\n <h1>\n {shortAppTitleSlot ? (\n <slot name=\"short-app-title\"></slot>\n ) : (\n this.shortAppTitle\n )}\n </h1>\n </ic-typography>\n ) : (\n <ic-typography variant={appTitleVariant}>\n <h1 class=\"title-wrap\">\n {isSlotUsed(this.el, \"app-title\") ? (\n <slot name=\"app-title\"></slot>\n ) : (\n this.appTitle\n )}\n </h1>\n </ic-typography>\n )}\n </Component>\n )}\n {this.status !== \"\" && (\n <div class=\"app-status\">\n <ic-typography\n aria-label=\"app tag\"\n variant=\"label-uppercase\"\n class=\"app-status-text\"\n >\n {this.status}\n </ic-typography>\n </div>\n )}\n {this.version !== \"\" && (\n <div class=\"app-version\">\n <ic-typography\n variant=\"label\"\n class=\"app-version-text\"\n aria-label=\"app version\"\n >\n {this.version}\n </ic-typography>\n </div>\n )}\n </div>\n\n {(this.hasSearchSlotContent || hasMenuContent) && (\n <div class=\"search-menu-container\">\n <div class=\"search-actions-container\">\n {this.deviceSize > DEVICE_SIZES.L && (\n <slot name=\"search\"></slot>\n )}\n\n {this.hasSearchSlotContent &&\n this.deviceSize <= DEVICE_SIZES.L && (\n <ic-button\n id=\"search-toggle-button\"\n ref={(el) => (this.mobileSearchButtonEl = el)}\n onMouseDown={this.searchButtonMouseDownHandler}\n variant=\"icon\"\n size={searchButtonSize}\n aria-label={mobileSearchButtonTitle}\n appearance={this.foregroundColor}\n onClick={this.searchButtonClickHandler}\n >\n <slot name=\"toggle-icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"#ffffff\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\" />\n </svg>\n </slot>\n </ic-button>\n )}\n\n {this.hasIconButtons && this.deviceSize > DEVICE_SIZES.L && (\n <div class=\"icon-buttons-container\">\n <slot name=\"buttons\"></slot>\n </div>\n )}\n {hasMenuContent && this.deviceSize <= DEVICE_SIZES.L && (\n <div class=\"menu-button-container\">\n <span\n id=\"navigation-landmark-button-text\"\n class=\"navigation-landmark-button-text\"\n aria-hidden=\"true\"\n >\n Main navigation button\n </span>\n <nav\n aria-labelledby=\"navigation-landmark-button-text\"\n aria-hidden={this.navMenuVisible ? \"true\" : \"false\"}\n >\n <ic-button\n id=\"menu-button\"\n appearance={this.foregroundColor}\n variant=\"secondary\"\n aria-expanded={this.menuOpen ? \"true\" : \"false\"}\n aria-haspopup=\"true\"\n aria-label={`Open ${\n this.hasNavigation ? \"navigation\" : \"app\"\n } menu`}\n size={menuSize}\n onClick={this.menuButtonClick}\n >\n Menu\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"#ffffff\"\n slot=\"icon\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\" />\n </svg>\n </ic-button>\n </nav>\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n\n {this.mobileSearchBarVisible && (\n <div class=\"search-bar-container\">\n <slot name=\"search\"></slot>\n </div>\n )}\n\n {this.hasNavigation && this.deviceSize > DEVICE_SIZES.L && (\n <div class=\"navigation-tabs\">\n <span\n id=\"navigation-landmark-text\"\n class=\"navigation-landmark-text\"\n aria-hidden=\"true\"\n >\n Main navigation\n </span>\n <nav\n aria-labelledby=\"navigation-landmark-text\"\n class=\"nav-panel-container\"\n >\n <ic-horizontal-scroll appearance={this.foregroundColor}>\n <ul class=\"navigation-item-list\" tabindex=\"-1\">\n <slot name=\"navigation\"></slot>\n </ul>\n </ic-horizontal-scroll>\n </nav>\n </div>\n )}\n </header>\n </ic-section-container>\n </div>\n {this.navMenuVisible && (\n <ic-navigation-menu\n version={this.version}\n status={this.status}\n class={{\n [\"inline\"]: this.inline,\n }}\n >\n {this.hasIconButtons && (\n <div class=\"menu-buttons-slot\" slot=\"buttons\">\n <slot name=\"buttons\"></slot>\n </div>\n )}\n <ul slot=\"navigation\">\n <slot name=\"navigation\"></slot>\n </ul>\n </ic-navigation-menu>\n )}\n </Host>\n );\n }\n}\n"]}
|
package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js
CHANGED
|
@@ -10,6 +10,8 @@ beforeEach(() => {
|
|
|
10
10
|
disconnect: jest.fn().mockReturnValue(null),
|
|
11
11
|
});
|
|
12
12
|
window.ResizeObserver = mockResizeObserver;
|
|
13
|
+
const matchMedia = jest.fn().mockReturnValue(true);
|
|
14
|
+
window.matchMedia = matchMedia;
|
|
13
15
|
});
|
|
14
16
|
describe("ic-top-navigation", () => {
|
|
15
17
|
it("passes accessibility", async () => {
|
package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ic-top-navigation.test.a11y.js","sourceRoot":"","sources":["../../../../../src/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AAExF,UAAU,CAAC,GAAG,EAAE;EACd,2DAA2D;EAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;EACrC,kBAAkB,CAAC,eAAe,CAAC;IACjC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;IACxC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;IAC1C,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;GAC5C,CAAC,CAAC;EACH,MAAM,CAAC,cAAc,GAAG,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ic-top-navigation.test.a11y.js","sourceRoot":"","sources":["../../../../../src/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AAExF,UAAU,CAAC,GAAG,EAAE;EACd,2DAA2D;EAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;EACrC,kBAAkB,CAAC,eAAe,CAAC;IACjC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;IACxC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;IAC1C,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;GAC5C,CAAC,CAAC;EACH,MAAM,CAAC,cAAc,GAAG,kBAAkB,CAAC;EAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;EACnD,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;EACjC,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACpC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;;KAExB,CAAC,CAAC;IACH,kCAAkC,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;EAC7C,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;IAC9D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;;KAExB,CAAC,CAAC;IACH,kCAAkC,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;EAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { fixture } from \"@open-wc/testing-helpers\";\nimport { axe } from \"jest-axe\";\nimport { checkShadowElementRendersCorrectly } from \"../../../../utils/testa11y.helpers\";\n\nbeforeEach(() => {\n // IntersectionObserver isn't available in test environment\n const mockResizeObserver = jest.fn();\n mockResizeObserver.mockReturnValue({\n observe: jest.fn().mockReturnValue(null),\n unobserve: jest.fn().mockReturnValue(null),\n disconnect: jest.fn().mockReturnValue(null),\n });\n window.ResizeObserver = mockResizeObserver;\n const matchMedia = jest.fn().mockReturnValue(true);\n window.matchMedia = matchMedia;\n});\n\ndescribe(\"ic-top-navigation\", () => {\n it(\"passes accessibility\", async () => {\n const el = await fixture(`\n <ic-top-navigation app-title=\"A11y test title\"/>\n `);\n checkShadowElementRendersCorrectly(el);\n expect(await axe(el)).toHaveNoViolations();\n });\n\n it(\"passes accessibility with short title prop set\", async () => {\n const el = await fixture(`\n <ic-top-navigation app-title=\"A11y test title\" short-app-title=\"A11y\"/>\n `);\n checkShadowElementRendersCorrectly(el);\n expect(await axe(el)).toHaveNoViolations();\n });\n});\n"]}
|
|
@@ -251,6 +251,21 @@ describe("ic-top-navigation", () => {
|
|
|
251
251
|
await page.waitForChanges();
|
|
252
252
|
expect(page.root).toMatchSnapshot("renders-with-short-title");
|
|
253
253
|
});
|
|
254
|
+
it("renders with slotted short-app-title", async () => {
|
|
255
|
+
const page = await newSpecPage({
|
|
256
|
+
components: [TopNavigation],
|
|
257
|
+
html: `<ic-top-navigation
|
|
258
|
+
status="alpha"
|
|
259
|
+
version="v0.0.7"
|
|
260
|
+
>
|
|
261
|
+
<a slot="app-title" href="/">App Title</a>
|
|
262
|
+
<a slot="short-app-title" href="/">Title</a>
|
|
263
|
+
</ic-top-navigation>`,
|
|
264
|
+
});
|
|
265
|
+
await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.S);
|
|
266
|
+
await page.waitForChanges();
|
|
267
|
+
expect(page.root).toMatchSnapshot("renders-with-slotted-short-title");
|
|
268
|
+
});
|
|
254
269
|
it("should test search value change", async () => {
|
|
255
270
|
const page = await newSpecPage({
|
|
256
271
|
components: [TopNavigation],
|
package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ic-top-navigation.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-top-navigation/test/basic/ic-top-navigation.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { DEVICE_SIZES } from \"../../../../utils/helpers\";\nimport { Button } from \"../../../ic-button/ic-button\";\nimport { NavigationItem } from \"../../../ic-navigation-item/ic-navigation-item\";\nimport { NavigationMenu } from \"../../../ic-navigation-menu/ic-navigation-menu\";\nimport { SearchBar } from \"../../../ic-search-bar/ic-search-bar\";\nimport { TopNavigation } from \"../../ic-top-navigation\";\nimport { TextField } from \"../../../ic-text-field/ic-text-field\";\nimport { waitForTimeout } from \"../../../../testspec.setup\";\n\nconst waitForSearchFocus = async () => {\n //delay to account for 100ms delay in search bar focus\n await waitForTimeout(200);\n};\n\ndescribe(\"ic-top-navigation\", () => {\n it(\"renders with app title\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation app-title=\"ApplicationName\"></ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-app-title\");\n });\n\n it(\"renders with app icon & title\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation app-title=\"ApplicationName\">\n <svg\n slot=\"app-icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"#000000\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5.5-2.5l7.51-3.49L17.5 6.5 9.99 9.99 6.5 17.5zm5.5-6.6c.61 0 1.1.49 1.1 1.1s-.49 1.1-1.1 1.1-1.1-.49-1.1-1.1.49-1.1 1.1-1.1z\"\n />\n </svg>\n </ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-app-icon-and-title\");\n });\n\n it(\"renders with custom title link url\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation app-title=\"ApplicationName\" href=\"https://www.google.co.uk/\">\n </ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-custom-title-link-url\");\n });\n\n it(\"renders with Title, Version & Status\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n ></ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-title-version-status\");\n });\n\n it(\"renders with search\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <ic-search-bar slot=\"search\" label=\"Search\" placeholder=\"Search\">\n </ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-search\");\n });\n\n it(\"renders with buttons\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <ic-navigation-button\n label=\"button1\"\n slot=\"buttons\"\n onclick=\"alert('test')\"\n >\n <svg\n slot=\"icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"#000000\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5.5-2.5l7.51-3.49L17.5 6.5 9.99 9.99 6.5 17.5zm5.5-6.6c.61 0 1.1.49 1.1 1.1s-.49 1.1-1.1 1.1-1.1-.49-1.1-1.1.49-1.1 1.1-1.1z\"\n />\n </svg>\n </ic-navigation-button>\n </ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-buttons\");\n });\n\n it(\"renders with navigation\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation, NavigationItem],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <ic-navigation-item label=\"Navigation 1\" slot=navigation href=\"/\"></ic-navigation-item>\n </ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-navigation\");\n });\n\n it(\"tests app title updates\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation app-title=\"ApplicationName\"></ic-top-navigation>`,\n });\n const appTitle = await page.root.shadowRoot.querySelector(\"h1\");\n\n expect(appTitle.textContent).toEqual(\"ApplicationName\");\n page.root.appTitle = \"New Application Name\";\n await page.waitForChanges();\n\n expect(appTitle.textContent).toEqual(\"New Application Name\");\n });\n\n it(\"tests form in search slot\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation app-title=\"ApplicationName\">\n <form role=\"search\" slot=\"search\">\n <ic-search-bar slot=\"search\" label=\"Search\" placeholder=\"Search\">\n </ic-search-bar>\n </form>\n </ic-top-navigation>`,\n });\n\n expect(page.root).toMatchSnapshot(\"form-in-search-slot\");\n });\n\n it(\"renders with slotted app-title content\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <a slot=\"app-title\" href=\"/\">App Title</a>\n </ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-slotted-app-title-content\");\n });\n\n it(\"tests behaviour on small device\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation, Button, NavigationMenu, SearchBar, TextField],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <ic-search-bar label=\"Search\" placeholder=\"Search\" slot=\"search\"></ic-search-bar>\n </ic-top-navigation>`,\n });\n\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.S);\n await page.waitForChanges();\n\n let searchBtn = page.root.shadowRoot.querySelector(\n \"#search-toggle-button\"\n ) as HTMLElement;\n expect(searchBtn).not.toBeNull();\n\n searchBtn.click();\n await page.waitForChanges();\n await waitForSearchFocus();\n\n let menuButton = page.root.shadowRoot.querySelector(\n \"#menu-button\"\n ) as HTMLElement;\n expect(menuButton).not.toBeNull();\n expect(page.rootInstance.searchButtonClick).toBe(false);\n page.rootInstance.searchButtonMouseDownHandler();\n expect(page.rootInstance.searchButtonClick).toBe(true);\n\n searchBtn.click();\n await page.waitForChanges();\n await waitForSearchFocus();\n expect(page.rootInstance.searchButtonClick).toBe(false);\n\n menuButton.click();\n await page.waitForChanges();\n\n let menu = page.root.shadowRoot.querySelector(\"ic-navigation-menu\");\n expect(menu).not.toBeNull();\n\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.XL);\n await page.waitForChanges();\n\n menu = page.root.shadowRoot.querySelector(\"ic-navigation-menu\");\n expect(menu).toBeNull();\n\n searchBtn = page.root.shadowRoot.querySelector(\n \"#search-toggle-button\"\n ) as HTMLElement;\n expect(searchBtn).toBeNull();\n menuButton = page.root.shadowRoot.querySelector(\n \"#menu-button\"\n ) as HTMLElement;\n expect(menuButton).toBeNull();\n });\n\n it(\"tests hiding of mobile search bar on resize\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation, Button, NavigationMenu, SearchBar, TextField],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <ic-search-bar label=\"Search\" placeholder=\"Search\" slot=\"search\"></ic-search-bar>\n </ic-top-navigation>`,\n });\n\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.S);\n await page.waitForChanges();\n const searchBtn = page.root.shadowRoot.querySelector(\n \"#search-toggle-button\"\n ) as HTMLElement;\n expect(searchBtn).not.toBeNull();\n\n searchBtn.click();\n await page.waitForChanges();\n await waitForSearchFocus();\n expect(page.rootInstance.mobileSearchBarVisible).toBe(true);\n\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.XL);\n await page.waitForChanges();\n await waitForSearchFocus();\n expect(page.rootInstance.mobileSearchBarVisible).toBe(false);\n });\n\n it(\"should test nav bar menu visibility\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation, Button, NavigationMenu, SearchBar, TextField],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <ic-search-bar label=\"Search\" placeholder=\"Search\" slot=\"search\"></ic-search-bar>\n </ic-top-navigation>`,\n });\n\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.S);\n await page.waitForChanges();\n\n const menuButton = page.root.shadowRoot.querySelector(\n \"#menu-button\"\n ) as HTMLElement;\n expect(menuButton).not.toBeNull();\n expect(page.rootInstance.navMenuVisible).toBe(false);\n menuButton.click();\n await page.waitForChanges();\n expect(page.rootInstance.navMenuVisible).toBe(true);\n await page.rootInstance.navBarMenuCloseHandler();\n await page.waitForChanges();\n expect(page.rootInstance.navMenuVisible).toBe(false);\n });\n\n it(\"tests short title on mobile devices\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n app-title=\"Application Name\"\n short-app-title=\"App Name\"\n >\n </ic-top-navigation>`,\n });\n\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.S);\n await page.waitForChanges();\n expect(page.root).toMatchSnapshot(\"renders-with-short-title\");\n });\n\n it(\"should test search value change\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n </ic-top-navigation>`,\n });\n\n //test search value change\n await page.rootInstance.searchValueChangeHandler({\n detail: { value: \"hi!\" },\n });\n expect(page.rootInstance.searchValue).toBe(\"hi!\");\n\n //test search input blur\n page.rootInstance.mobileSearchBarVisible = true;\n page.rootInstance.searchButtonClick = false;\n await page.rootInstance.searchInputBlurHandler({\n detail: { value: \"hi again!\" },\n });\n expect(page.rootInstance.searchValue).toBe(\"hi again!\");\n });\n\n it(\"should test theme change\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n </ic-top-navigation>`,\n });\n\n await page.rootInstance.themeChangeHandler({ detail: { mode: \"dark\" } });\n await page.waitForChanges();\n expect(page.rootInstance.foregroundColor).toBe(\"dark\");\n\n await page.rootInstance.themeChangeHandler({ detail: { mode: \"light\" } });\n await page.waitForChanges();\n expect(page.rootInstance.foregroundColor).toBe(\"light\");\n\n //call runResizeObserver\n await page.rootInstance.runResizeObserver();\n\n //test disconnected callback\n page.setContent(\"\");\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"ic-top-navigation.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-top-navigation/test/basic/ic-top-navigation.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { DEVICE_SIZES } from \"../../../../utils/helpers\";\nimport { Button } from \"../../../ic-button/ic-button\";\nimport { NavigationItem } from \"../../../ic-navigation-item/ic-navigation-item\";\nimport { NavigationMenu } from \"../../../ic-navigation-menu/ic-navigation-menu\";\nimport { SearchBar } from \"../../../ic-search-bar/ic-search-bar\";\nimport { TopNavigation } from \"../../ic-top-navigation\";\nimport { TextField } from \"../../../ic-text-field/ic-text-field\";\nimport { waitForTimeout } from \"../../../../testspec.setup\";\n\nconst waitForSearchFocus = async () => {\n //delay to account for 100ms delay in search bar focus\n await waitForTimeout(200);\n};\n\ndescribe(\"ic-top-navigation\", () => {\n it(\"renders with app title\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation app-title=\"ApplicationName\"></ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-app-title\");\n });\n\n it(\"renders with app icon & title\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation app-title=\"ApplicationName\">\n <svg\n slot=\"app-icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"#000000\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5.5-2.5l7.51-3.49L17.5 6.5 9.99 9.99 6.5 17.5zm5.5-6.6c.61 0 1.1.49 1.1 1.1s-.49 1.1-1.1 1.1-1.1-.49-1.1-1.1.49-1.1 1.1-1.1z\"\n />\n </svg>\n </ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-app-icon-and-title\");\n });\n\n it(\"renders with custom title link url\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation app-title=\"ApplicationName\" href=\"https://www.google.co.uk/\">\n </ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-custom-title-link-url\");\n });\n\n it(\"renders with Title, Version & Status\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n ></ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-title-version-status\");\n });\n\n it(\"renders with search\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <ic-search-bar slot=\"search\" label=\"Search\" placeholder=\"Search\">\n </ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-search\");\n });\n\n it(\"renders with buttons\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <ic-navigation-button\n label=\"button1\"\n slot=\"buttons\"\n onclick=\"alert('test')\"\n >\n <svg\n slot=\"icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"#000000\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5.5-2.5l7.51-3.49L17.5 6.5 9.99 9.99 6.5 17.5zm5.5-6.6c.61 0 1.1.49 1.1 1.1s-.49 1.1-1.1 1.1-1.1-.49-1.1-1.1.49-1.1 1.1-1.1z\"\n />\n </svg>\n </ic-navigation-button>\n </ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-buttons\");\n });\n\n it(\"renders with navigation\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation, NavigationItem],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <ic-navigation-item label=\"Navigation 1\" slot=navigation href=\"/\"></ic-navigation-item>\n </ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-navigation\");\n });\n\n it(\"tests app title updates\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation app-title=\"ApplicationName\"></ic-top-navigation>`,\n });\n const appTitle = await page.root.shadowRoot.querySelector(\"h1\");\n\n expect(appTitle.textContent).toEqual(\"ApplicationName\");\n page.root.appTitle = \"New Application Name\";\n await page.waitForChanges();\n\n expect(appTitle.textContent).toEqual(\"New Application Name\");\n });\n\n it(\"tests form in search slot\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation app-title=\"ApplicationName\">\n <form role=\"search\" slot=\"search\">\n <ic-search-bar slot=\"search\" label=\"Search\" placeholder=\"Search\">\n </ic-search-bar>\n </form>\n </ic-top-navigation>`,\n });\n\n expect(page.root).toMatchSnapshot(\"form-in-search-slot\");\n });\n\n it(\"renders with slotted app-title content\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <a slot=\"app-title\" href=\"/\">App Title</a>\n </ic-top-navigation>`,\n });\n expect(page.root).toMatchSnapshot(\"renders-with-slotted-app-title-content\");\n });\n\n it(\"tests behaviour on small device\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation, Button, NavigationMenu, SearchBar, TextField],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <ic-search-bar label=\"Search\" placeholder=\"Search\" slot=\"search\"></ic-search-bar>\n </ic-top-navigation>`,\n });\n\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.S);\n await page.waitForChanges();\n\n let searchBtn = page.root.shadowRoot.querySelector(\n \"#search-toggle-button\"\n ) as HTMLElement;\n expect(searchBtn).not.toBeNull();\n\n searchBtn.click();\n await page.waitForChanges();\n await waitForSearchFocus();\n\n let menuButton = page.root.shadowRoot.querySelector(\n \"#menu-button\"\n ) as HTMLElement;\n expect(menuButton).not.toBeNull();\n expect(page.rootInstance.searchButtonClick).toBe(false);\n page.rootInstance.searchButtonMouseDownHandler();\n expect(page.rootInstance.searchButtonClick).toBe(true);\n\n searchBtn.click();\n await page.waitForChanges();\n await waitForSearchFocus();\n expect(page.rootInstance.searchButtonClick).toBe(false);\n\n menuButton.click();\n await page.waitForChanges();\n\n let menu = page.root.shadowRoot.querySelector(\"ic-navigation-menu\");\n expect(menu).not.toBeNull();\n\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.XL);\n await page.waitForChanges();\n\n menu = page.root.shadowRoot.querySelector(\"ic-navigation-menu\");\n expect(menu).toBeNull();\n\n searchBtn = page.root.shadowRoot.querySelector(\n \"#search-toggle-button\"\n ) as HTMLElement;\n expect(searchBtn).toBeNull();\n menuButton = page.root.shadowRoot.querySelector(\n \"#menu-button\"\n ) as HTMLElement;\n expect(menuButton).toBeNull();\n });\n\n it(\"tests hiding of mobile search bar on resize\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation, Button, NavigationMenu, SearchBar, TextField],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <ic-search-bar label=\"Search\" placeholder=\"Search\" slot=\"search\"></ic-search-bar>\n </ic-top-navigation>`,\n });\n\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.S);\n await page.waitForChanges();\n const searchBtn = page.root.shadowRoot.querySelector(\n \"#search-toggle-button\"\n ) as HTMLElement;\n expect(searchBtn).not.toBeNull();\n\n searchBtn.click();\n await page.waitForChanges();\n await waitForSearchFocus();\n expect(page.rootInstance.mobileSearchBarVisible).toBe(true);\n\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.XL);\n await page.waitForChanges();\n await waitForSearchFocus();\n expect(page.rootInstance.mobileSearchBarVisible).toBe(false);\n });\n\n it(\"should test nav bar menu visibility\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation, Button, NavigationMenu, SearchBar, TextField],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <ic-search-bar label=\"Search\" placeholder=\"Search\" slot=\"search\"></ic-search-bar>\n </ic-top-navigation>`,\n });\n\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.S);\n await page.waitForChanges();\n\n const menuButton = page.root.shadowRoot.querySelector(\n \"#menu-button\"\n ) as HTMLElement;\n expect(menuButton).not.toBeNull();\n expect(page.rootInstance.navMenuVisible).toBe(false);\n menuButton.click();\n await page.waitForChanges();\n expect(page.rootInstance.navMenuVisible).toBe(true);\n await page.rootInstance.navBarMenuCloseHandler();\n await page.waitForChanges();\n expect(page.rootInstance.navMenuVisible).toBe(false);\n });\n\n it(\"tests short title on mobile devices\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n app-title=\"Application Name\"\n short-app-title=\"App Name\"\n >\n </ic-top-navigation>`,\n });\n\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.S);\n await page.waitForChanges();\n expect(page.root).toMatchSnapshot(\"renders-with-short-title\");\n });\n\n it(\"renders with slotted short-app-title\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n <a slot=\"app-title\" href=\"/\">App Title</a>\n <a slot=\"short-app-title\" href=\"/\">Title</a>\n </ic-top-navigation>`,\n });\n await page.rootInstance.resizeObserverCallback(DEVICE_SIZES.S);\n await page.waitForChanges();\n expect(page.root).toMatchSnapshot(\"renders-with-slotted-short-title\");\n });\n\n it(\"should test search value change\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n </ic-top-navigation>`,\n });\n\n //test search value change\n await page.rootInstance.searchValueChangeHandler({\n detail: { value: \"hi!\" },\n });\n expect(page.rootInstance.searchValue).toBe(\"hi!\");\n\n //test search input blur\n page.rootInstance.mobileSearchBarVisible = true;\n page.rootInstance.searchButtonClick = false;\n await page.rootInstance.searchInputBlurHandler({\n detail: { value: \"hi again!\" },\n });\n expect(page.rootInstance.searchValue).toBe(\"hi again!\");\n });\n\n it(\"should test theme change\", async () => {\n const page = await newSpecPage({\n components: [TopNavigation],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n status=\"alpha\"\n version=\"v0.0.7\"\n >\n </ic-top-navigation>`,\n });\n\n await page.rootInstance.themeChangeHandler({ detail: { mode: \"dark\" } });\n await page.waitForChanges();\n expect(page.rootInstance.foregroundColor).toBe(\"dark\");\n\n await page.rootInstance.themeChangeHandler({ detail: { mode: \"light\" } });\n await page.waitForChanges();\n expect(page.rootInstance.foregroundColor).toBe(\"light\");\n\n //call runResizeObserver\n await page.rootInstance.runResizeObserver();\n\n //test disconnected callback\n page.setContent(\"\");\n });\n});\n"]}
|
|
@@ -72,18 +72,10 @@ export const removeHiddenInput = (container) => {
|
|
|
72
72
|
const input = filtered[0];
|
|
73
73
|
input === null || input === void 0 ? void 0 : input.remove();
|
|
74
74
|
};
|
|
75
|
-
export const hasShadowDom = (el) =>
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
export const
|
|
79
|
-
return id + "-helper-text";
|
|
80
|
-
};
|
|
81
|
-
export const getInputValidationTextID = (id) => {
|
|
82
|
-
return id + "-validation-text";
|
|
83
|
-
};
|
|
84
|
-
export const getInputDescribedByText = (inputId, helperText, validationText) => {
|
|
85
|
-
return `${helperText ? getInputHelperTextID(inputId) : ""} ${validationText ? getInputValidationTextID(inputId) : ""}`.trim();
|
|
86
|
-
};
|
|
75
|
+
export const hasShadowDom = (el) => !!el.shadowRoot && !!el.attachShadow;
|
|
76
|
+
export const getInputHelperTextID = (id) => id + "-helper-text";
|
|
77
|
+
export const getInputValidationTextID = (id) => id + "-validation-text";
|
|
78
|
+
export const getInputDescribedByText = (inputId, helperText, validationText) => `${helperText ? getInputHelperTextID(inputId) : ""} ${validationText ? getInputValidationTextID(inputId) : ""}`.trim();
|
|
87
79
|
/**
|
|
88
80
|
* This method helps to understand the context in which a component exists,
|
|
89
81
|
* to assist with choosing appropriate foreground colours to use. For example,
|
|
@@ -118,13 +110,7 @@ export const getThemeFromContext = (el, themeFromEvent = null) => {
|
|
|
118
110
|
}
|
|
119
111
|
return IcThemeForegroundEnum.Default;
|
|
120
112
|
};
|
|
121
|
-
export const isMobileOrTablet = () =>
|
|
122
|
-
let isMobileOrTablet = false;
|
|
123
|
-
if ("maxTouchPoints" in navigator) {
|
|
124
|
-
isMobileOrTablet = navigator.maxTouchPoints > 0;
|
|
125
|
-
}
|
|
126
|
-
return isMobileOrTablet;
|
|
127
|
-
};
|
|
113
|
+
export const isMobileOrTablet = () => "maxTouchPoints" in navigator ? navigator.maxTouchPoints > 0 : false;
|
|
128
114
|
/**
|
|
129
115
|
* Will create a button within the lightDOM which interacts with the parent form.
|
|
130
116
|
* This is required as buttons within the shadowDOM will not invoke a submit or reset
|
|
@@ -140,29 +126,16 @@ export const handleHiddenFormButtonClick = (form, button) => {
|
|
|
140
126
|
hiddenFormButton.click();
|
|
141
127
|
hiddenFormButton.remove();
|
|
142
128
|
};
|
|
143
|
-
export const isEmptyString = (value) =>
|
|
144
|
-
if (!value) {
|
|
145
|
-
return true;
|
|
146
|
-
}
|
|
147
|
-
return value.trim().length === 0;
|
|
148
|
-
};
|
|
129
|
+
export const isEmptyString = (value) => value ? value.trim().length === 0 : true;
|
|
149
130
|
// A helper function that checks if a prop has been defined
|
|
150
|
-
export const isPropDefined = (prop) =>
|
|
151
|
-
return prop !== undefined ? prop : null;
|
|
152
|
-
};
|
|
131
|
+
export const isPropDefined = (prop) => prop !== undefined ? prop : null;
|
|
153
132
|
/**
|
|
154
133
|
* Extracts the label using the value from an object. Requires the object to have a label and value property.
|
|
155
134
|
* @param value - value from object
|
|
156
135
|
* @param options - list of menu items
|
|
157
136
|
* @returns - label corresponding to value
|
|
158
137
|
*/
|
|
159
|
-
export const getLabelFromValue = (value, options, valueField, labelField) => {
|
|
160
|
-
if (valueField === undefined) {
|
|
161
|
-
valueField = "value";
|
|
162
|
-
}
|
|
163
|
-
if (labelField === undefined) {
|
|
164
|
-
labelField = "label";
|
|
165
|
-
}
|
|
138
|
+
export const getLabelFromValue = (value, options, valueField = "value", labelField = "label") => {
|
|
166
139
|
const ungroupedOptions = [];
|
|
167
140
|
if (options.length > 0 && options.map) {
|
|
168
141
|
options.map((option) => {
|
|
@@ -173,10 +146,9 @@ export const getLabelFromValue = (value, options, valueField, labelField) => {
|
|
|
173
146
|
ungroupedOptions.push(option);
|
|
174
147
|
}
|
|
175
148
|
});
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
return
|
|
179
|
-
}
|
|
149
|
+
const matchingValue = ungroupedOptions.find((option) => option[valueField] === value);
|
|
150
|
+
if (matchingValue !== undefined)
|
|
151
|
+
return matchingValue[labelField];
|
|
180
152
|
}
|
|
181
153
|
return undefined;
|
|
182
154
|
};
|
|
@@ -188,45 +160,21 @@ export const getLabelFromValue = (value, options, valueField, labelField) => {
|
|
|
188
160
|
* @param position - whether the search string matches the start of or anywhere in the options
|
|
189
161
|
* @returns filtered array of options
|
|
190
162
|
*/
|
|
191
|
-
export const getFilteredMenuOptions = (options, includeDescriptions, searchString, position, labelField) => {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
return option[labelField]
|
|
207
|
-
.toLowerCase()
|
|
208
|
-
.includes(searchString.toLowerCase());
|
|
209
|
-
}
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
rawFilteredOptions = options.filter((option) => {
|
|
214
|
-
var _a;
|
|
215
|
-
if (includeDescriptions) {
|
|
216
|
-
return (option[labelField]
|
|
217
|
-
.toLowerCase()
|
|
218
|
-
.startsWith(searchString.toLowerCase()) ||
|
|
219
|
-
((_a = option.description) === null || _a === void 0 ? void 0 : _a.toLowerCase().startsWith(searchString.toLowerCase())));
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
return option[labelField]
|
|
223
|
-
.toLowerCase()
|
|
224
|
-
.startsWith(searchString.toLowerCase());
|
|
225
|
-
}
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
return rawFilteredOptions;
|
|
229
|
-
};
|
|
163
|
+
export const getFilteredMenuOptions = (options, includeDescriptions, searchString, position, labelField = "label") => options.filter((option) => {
|
|
164
|
+
var _a;
|
|
165
|
+
const label = option[labelField].toLowerCase();
|
|
166
|
+
const description = (_a = option.description) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
|
167
|
+
const lowerSearchString = searchString.toLowerCase();
|
|
168
|
+
return position === "anywhere"
|
|
169
|
+
? includeDescriptions
|
|
170
|
+
? label.includes(lowerSearchString) ||
|
|
171
|
+
(description === null || description === void 0 ? void 0 : description.includes(lowerSearchString))
|
|
172
|
+
: label.includes(lowerSearchString)
|
|
173
|
+
: includeDescriptions
|
|
174
|
+
? label.startsWith(lowerSearchString) ||
|
|
175
|
+
(description === null || description === void 0 ? void 0 : description.startsWith(lowerSearchString))
|
|
176
|
+
: label.startsWith(lowerSearchString);
|
|
177
|
+
});
|
|
230
178
|
export const deviceSizeMatches = (size) => window.matchMedia(`(max-width: ${size}px)`).matches;
|
|
231
179
|
export const getCurrentDeviceSize = () => {
|
|
232
180
|
if (deviceSizeMatches(DEVICE_SIZES.S)) {
|
|
@@ -244,9 +192,7 @@ export const getCurrentDeviceSize = () => {
|
|
|
244
192
|
//fallback needed as all of above get initialised to 0 in jest tests
|
|
245
193
|
return DEVICE_SIZES.UNDEFINED;
|
|
246
194
|
};
|
|
247
|
-
export const getCssProperty = (cssVar) =>
|
|
248
|
-
return getComputedStyle(document.documentElement).getPropertyValue(cssVar);
|
|
249
|
-
};
|
|
195
|
+
export const getCssProperty = (cssVar) => getComputedStyle(document.documentElement).getPropertyValue(cssVar);
|
|
250
196
|
/**
|
|
251
197
|
* Returns the brightness of the theme colour, calculated by using the theme RGB CSS values by:
|
|
252
198
|
* - Multiplying each RGB value by a set number: https://www.w3.org/TR/AERT/#color-contrast
|
|
@@ -267,11 +213,9 @@ export const getThemeColorBrightness = () => {
|
|
|
267
213
|
* Returns if dark or light foreground colors should be used for color contrast reasons
|
|
268
214
|
* @returns "dark" or "light"
|
|
269
215
|
*/
|
|
270
|
-
export const getThemeForegroundColor = () =>
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
: IcThemeForegroundEnum.Light;
|
|
274
|
-
};
|
|
216
|
+
export const getThemeForegroundColor = () => getThemeColorBrightness() > DARK_MODE_THRESHOLD
|
|
217
|
+
? IcThemeForegroundEnum.Dark
|
|
218
|
+
: IcThemeForegroundEnum.Light;
|
|
275
219
|
export const getSlot = (element, name) => {
|
|
276
220
|
if (element && element.querySelector) {
|
|
277
221
|
return element.querySelector(`[slot="${name}"]`);
|
|
@@ -328,9 +272,7 @@ export const DEVICE_SIZES = {
|
|
|
328
272
|
export const hasValidationStatus = (status, disabled) => {
|
|
329
273
|
return status !== "" && !disabled;
|
|
330
274
|
};
|
|
331
|
-
export const isSlotUsed = (element, slotName) =>
|
|
332
|
-
return Array.from(element.children).some((child) => child.getAttribute("slot") === slotName);
|
|
333
|
-
};
|
|
275
|
+
export const isSlotUsed = (element, slotName) => Array.from(element.children).some((child) => child.getAttribute("slot") === slotName);
|
|
334
276
|
// added as a common method to allow detection of gatsby hydration issue, where (camelCase) props are initially undefined & then update
|
|
335
277
|
// with a value. Allows a callback function to be executed when this is the case
|
|
336
278
|
export const onComponentPropUndefinedChange = (oldValue, newValue, callback) => {
|
|
@@ -412,9 +354,7 @@ export const rgbaStrToObj = (rgbaStr) => {
|
|
|
412
354
|
}
|
|
413
355
|
return colorRGBA;
|
|
414
356
|
};
|
|
415
|
-
export const elementOverflowsX = (element) =>
|
|
416
|
-
return element.scrollWidth > element.clientWidth;
|
|
417
|
-
};
|
|
357
|
+
export const elementOverflowsX = (element) => element.scrollWidth > element.clientWidth;
|
|
418
358
|
/**
|
|
419
359
|
*
|
|
420
360
|
* @param child - The child element
|
|
@@ -422,14 +362,8 @@ export const elementOverflowsX = (element) => {
|
|
|
422
362
|
*/
|
|
423
363
|
export const getParentElementType = (child) => child.parentElement.tagName;
|
|
424
364
|
export const getParentElement = (child) => child.parentElement;
|
|
425
|
-
export const hasClassificationBanner = () =>
|
|
426
|
-
|
|
427
|
-
? true
|
|
428
|
-
: false;
|
|
429
|
-
};
|
|
430
|
-
export const getForm = (el) => {
|
|
431
|
-
return el.closest("FORM");
|
|
432
|
-
};
|
|
365
|
+
export const hasClassificationBanner = () => !!document.querySelector("ic-classification-banner:not([inline='true'])");
|
|
366
|
+
export const getForm = (el) => el.closest("FORM");
|
|
433
367
|
export const addFormResetListener = (el, callbackFn) => {
|
|
434
368
|
const form = getForm(el);
|
|
435
369
|
if (form !== null) {
|
|
@@ -442,10 +376,7 @@ export const removeFormResetListener = (el, callbackFn) => {
|
|
|
442
376
|
form.removeEventListener("reset", callbackFn);
|
|
443
377
|
}
|
|
444
378
|
};
|
|
445
|
-
export const pxToRem = (px, base = 16) => {
|
|
446
|
-
const tempPx = parseInt(px);
|
|
447
|
-
return `${(1 / base) * tempPx}rem`;
|
|
448
|
-
};
|
|
379
|
+
export const pxToRem = (px, base = 16) => `${(1 / base) * parseInt(px)}rem`;
|
|
449
380
|
export const removeDisabledFalse = (disabled, element) => {
|
|
450
381
|
if (!disabled) {
|
|
451
382
|
element.removeAttribute("disabled");
|