@ukic/web-components 2.1.0-beta.17 → 2.1.0-beta.18
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +34 -1
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +0 -2
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +1 -0
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-select.cjs.entry.js +1 -1
- package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +18 -8
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +3 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/ic-button/ic-button.js +39 -1
- package/dist/collection/components/ic-button/ic-button.js.map +1 -1
- package/dist/collection/components/ic-button/test/basic/ic-button.e2e.js +25 -0
- package/dist/collection/components/ic-button/test/basic/ic-button.e2e.js.map +1 -1
- package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +26 -0
- package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -1
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js +3 -0
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js.map +1 -1
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +2 -2
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
- package/dist/collection/components/ic-menu/ic-menu.js +0 -2
- package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
- package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +1 -1
- 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 +0 -8
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +1 -0
- package/dist/collection/components/ic-search-bar/ic-search-bar.js +1 -0
- package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select.js +1 -1
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +3 -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 +20 -0
- package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +5 -15
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +17 -7
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +22 -2
- 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 +7 -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.e2e.js +19 -0
- package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.e2e.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js +13 -0
- package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js.map +1 -1
- package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js +3 -0
- package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js.map +1 -1
- package/dist/collection/testspec.setup.js +10 -0
- package/dist/collection/testspec.setup.js.map +1 -1
- package/dist/components/ic-button2.js +35 -1
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-horizontal-scroll2.js +2 -2
- package/dist/components/ic-horizontal-scroll2.js.map +1 -1
- package/dist/components/ic-menu2.js +0 -2
- 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-search-bar.js +1 -0
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-select.js +1 -1
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-side-navigation.js +18 -8
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-top-navigation.js +5 -2
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-6921177c.entry.js → p-060c7917.entry.js} +2 -2
- package/dist/core/{p-acdc2931.entry.js → p-08870e30.entry.js} +2 -2
- package/dist/core/{p-be6ee8a9.entry.js → p-0b05b2b9.entry.js} +2 -2
- package/dist/core/{p-7350d63d.entry.js → p-0b3e5ba2.entry.js} +2 -2
- package/dist/core/{p-5d245683.entry.js → p-0cc2442d.entry.js} +2 -2
- package/dist/core/{p-54a5e971.entry.js → p-0d6ee2ae.entry.js} +2 -2
- package/dist/core/{p-bc02816a.entry.js → p-0dcfcf8c.entry.js} +2 -2
- package/dist/core/{p-6ac8df90.entry.js → p-21cd7e76.entry.js} +2 -2
- package/dist/core/{p-75e23d08.entry.js → p-22e151f8.entry.js} +2 -2
- package/dist/core/p-22e151f8.entry.js.map +1 -0
- package/dist/core/{p-c4dcc6b9.entry.js → p-2a4a7e63.entry.js} +2 -2
- package/dist/core/{p-053b387f.entry.js → p-2a55f42e.entry.js} +2 -2
- package/dist/core/{p-0471f0a2.entry.js → p-38ac1d7a.entry.js} +2 -2
- package/dist/core/{p-1c30ece9.entry.js → p-50f253b2.entry.js} +2 -2
- package/dist/core/{p-e6d3b5f8.entry.js → p-5367574a.entry.js} +2 -2
- package/dist/core/p-55cb196e.entry.js +2 -0
- package/dist/core/p-55cb196e.entry.js.map +1 -0
- package/dist/core/{p-bf5669a2.js → p-5dd0b02e.js} +2 -2
- package/dist/core/{p-39ec4fc2.entry.js → p-6068e3f4.entry.js} +2 -2
- package/dist/core/p-6068e3f4.entry.js.map +1 -0
- package/dist/core/{p-594e88fe.entry.js → p-705aadd0.entry.js} +2 -2
- package/dist/core/{p-0d4507ef.entry.js → p-70c4e8d4.entry.js} +2 -2
- package/dist/core/{p-ddb60a4b.entry.js → p-8915a04d.entry.js} +2 -2
- package/dist/core/p-8c5ba72e.entry.js +2 -0
- package/dist/core/p-8c5ba72e.entry.js.map +1 -0
- package/dist/core/{p-11e0f917.entry.js → p-9775acc5.entry.js} +2 -2
- package/dist/core/{p-18f86ab2.entry.js → p-a600e5d8.entry.js} +2 -2
- package/dist/core/{p-6aee5f18.entry.js → p-a941124d.entry.js} +2 -2
- package/dist/core/{p-e0bbf81e.entry.js → p-add90b68.entry.js} +2 -2
- package/dist/core/{p-071bd3f5.entry.js → p-b1c3f213.entry.js} +2 -2
- package/dist/core/p-b6a1d9b6.entry.js +2 -0
- package/dist/core/p-b6a1d9b6.entry.js.map +1 -0
- package/dist/core/{p-ca0e8569.entry.js → p-b6e97f47.entry.js} +2 -2
- package/dist/core/{p-38450979.entry.js → p-ba437d36.entry.js} +2 -2
- package/dist/core/{p-0ccdb432.entry.js → p-bc161e06.entry.js} +2 -2
- package/dist/core/p-bd2f15e6.entry.js +2 -0
- package/dist/core/p-bd2f15e6.entry.js.map +1 -0
- package/dist/core/{p-9779c179.entry.js → p-bd660ff4.entry.js} +2 -2
- package/dist/core/{p-00b0c1b5.entry.js → p-c0717294.entry.js} +2 -2
- package/dist/core/{p-00b0c1b5.entry.js.map → p-c0717294.entry.js.map} +1 -1
- package/dist/core/{p-9e7b1167.entry.js → p-c2b0c19b.entry.js} +2 -2
- package/dist/core/{p-4a814585.entry.js → p-c51cfe25.entry.js} +2 -2
- package/dist/core/p-c51cfe25.entry.js.map +1 -0
- package/dist/core/{p-7ae1d7bc.entry.js → p-c5dd2bae.entry.js} +2 -2
- package/dist/core/{p-ac10763e.entry.js → p-c7eff761.entry.js} +2 -2
- package/dist/core/{p-67e99ad8.entry.js → p-d04640ac.entry.js} +2 -2
- package/dist/core/{p-221c905b.entry.js → p-d6ee986d.entry.js} +2 -2
- package/dist/core/{p-fa40a71b.entry.js → p-d824684d.entry.js} +2 -2
- package/dist/core/{p-7fafc87a.entry.js → p-dd083d96.entry.js} +2 -2
- package/dist/core/{p-3294961a.entry.js → p-e360b5a8.entry.js} +2 -2
- package/dist/core/{p-57ba3442.entry.js → p-e69f71c7.entry.js} +2 -2
- package/dist/core/p-e69f71c7.entry.js.map +1 -0
- package/dist/core/{p-bde0fcab.entry.js → p-f81ecfc2.entry.js} +2 -2
- package/dist/core/{p-4a47cc51.entry.js → p-fdc1cfa2.entry.js} +2 -2
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-c4e378c4.js → helpers-85903813.js} +2 -2
- package/dist/esm/{helpers-c4e378c4.js.map → helpers-85903813.js.map} +1 -1
- package/dist/esm/ic-alert.entry.js +1 -1
- package/dist/esm/ic-back-to-top.entry.js +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 +35 -2
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card.entry.js +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +1 -1
- package/dist/esm/ic-checkbox.entry.js +1 -1
- package/dist/esm/ic-chip.entry.js +1 -1
- package/dist/esm/ic-data-row.entry.js +1 -1
- package/dist/esm/ic-dialog.entry.js +1 -1
- package/dist/esm/ic-divider.entry.js +1 -1
- package/dist/esm/ic-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 +3 -3
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +1 -3
- 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-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 +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 +1 -1
- package/dist/esm/ic-radio-group.entry.js +1 -1
- package/dist/esm/ic-radio-option.entry.js +1 -1
- package/dist/esm/ic-search-bar.entry.js +2 -1
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-select.entry.js +2 -2
- package/dist/esm/ic-select.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +19 -9
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-status-tag.entry.js +1 -1
- package/dist/esm/ic-stepper.entry.js +1 -1
- package/dist/esm/ic-switch.entry.js +1 -1
- package/dist/esm/ic-tab-group.entry.js +1 -1
- package/dist/esm/ic-tab.entry.js +1 -1
- package/dist/esm/ic-text-field.entry.js +1 -1
- package/dist/esm/ic-theme.entry.js +1 -1
- package/dist/esm/ic-toast.entry.js +1 -1
- package/dist/esm/ic-top-navigation.entry.js +4 -2
- 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-button/ic-button.d.ts +6 -0
- package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +1 -0
- package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +4 -0
- package/dist/types/components.d.ts +8 -0
- package/hydrate/index.js +63 -17
- package/package.json +3 -3
- package/dist/core/p-206a402a.entry.js +0 -2
- package/dist/core/p-206a402a.entry.js.map +0 -1
- package/dist/core/p-2b80ce4c.entry.js +0 -2
- package/dist/core/p-2b80ce4c.entry.js.map +0 -1
- package/dist/core/p-39ec4fc2.entry.js.map +0 -1
- package/dist/core/p-4a814585.entry.js.map +0 -1
- package/dist/core/p-57ba3442.entry.js.map +0 -1
- package/dist/core/p-64584eb6.entry.js +0 -2
- package/dist/core/p-64584eb6.entry.js.map +0 -1
- package/dist/core/p-75e23d08.entry.js.map +0 -1
- package/dist/core/p-e8be020c.entry.js +0 -2
- package/dist/core/p-e8be020c.entry.js.map +0 -1
- /package/dist/core/{p-6921177c.entry.js.map → p-060c7917.entry.js.map} +0 -0
- /package/dist/core/{p-acdc2931.entry.js.map → p-08870e30.entry.js.map} +0 -0
- /package/dist/core/{p-be6ee8a9.entry.js.map → p-0b05b2b9.entry.js.map} +0 -0
- /package/dist/core/{p-7350d63d.entry.js.map → p-0b3e5ba2.entry.js.map} +0 -0
- /package/dist/core/{p-5d245683.entry.js.map → p-0cc2442d.entry.js.map} +0 -0
- /package/dist/core/{p-54a5e971.entry.js.map → p-0d6ee2ae.entry.js.map} +0 -0
- /package/dist/core/{p-bc02816a.entry.js.map → p-0dcfcf8c.entry.js.map} +0 -0
- /package/dist/core/{p-6ac8df90.entry.js.map → p-21cd7e76.entry.js.map} +0 -0
- /package/dist/core/{p-c4dcc6b9.entry.js.map → p-2a4a7e63.entry.js.map} +0 -0
- /package/dist/core/{p-053b387f.entry.js.map → p-2a55f42e.entry.js.map} +0 -0
- /package/dist/core/{p-0471f0a2.entry.js.map → p-38ac1d7a.entry.js.map} +0 -0
- /package/dist/core/{p-1c30ece9.entry.js.map → p-50f253b2.entry.js.map} +0 -0
- /package/dist/core/{p-e6d3b5f8.entry.js.map → p-5367574a.entry.js.map} +0 -0
- /package/dist/core/{p-bf5669a2.js.map → p-5dd0b02e.js.map} +0 -0
- /package/dist/core/{p-594e88fe.entry.js.map → p-705aadd0.entry.js.map} +0 -0
- /package/dist/core/{p-0d4507ef.entry.js.map → p-70c4e8d4.entry.js.map} +0 -0
- /package/dist/core/{p-ddb60a4b.entry.js.map → p-8915a04d.entry.js.map} +0 -0
- /package/dist/core/{p-11e0f917.entry.js.map → p-9775acc5.entry.js.map} +0 -0
- /package/dist/core/{p-18f86ab2.entry.js.map → p-a600e5d8.entry.js.map} +0 -0
- /package/dist/core/{p-6aee5f18.entry.js.map → p-a941124d.entry.js.map} +0 -0
- /package/dist/core/{p-e0bbf81e.entry.js.map → p-add90b68.entry.js.map} +0 -0
- /package/dist/core/{p-071bd3f5.entry.js.map → p-b1c3f213.entry.js.map} +0 -0
- /package/dist/core/{p-ca0e8569.entry.js.map → p-b6e97f47.entry.js.map} +0 -0
- /package/dist/core/{p-38450979.entry.js.map → p-ba437d36.entry.js.map} +0 -0
- /package/dist/core/{p-0ccdb432.entry.js.map → p-bc161e06.entry.js.map} +0 -0
- /package/dist/core/{p-9779c179.entry.js.map → p-bd660ff4.entry.js.map} +0 -0
- /package/dist/core/{p-9e7b1167.entry.js.map → p-c2b0c19b.entry.js.map} +0 -0
- /package/dist/core/{p-7ae1d7bc.entry.js.map → p-c5dd2bae.entry.js.map} +0 -0
- /package/dist/core/{p-ac10763e.entry.js.map → p-c7eff761.entry.js.map} +0 -0
- /package/dist/core/{p-67e99ad8.entry.js.map → p-d04640ac.entry.js.map} +0 -0
- /package/dist/core/{p-221c905b.entry.js.map → p-d6ee986d.entry.js.map} +0 -0
- /package/dist/core/{p-fa40a71b.entry.js.map → p-d824684d.entry.js.map} +0 -0
- /package/dist/core/{p-7fafc87a.entry.js.map → p-dd083d96.entry.js.map} +0 -0
- /package/dist/core/{p-3294961a.entry.js.map → p-e360b5a8.entry.js.map} +0 -0
- /package/dist/core/{p-bde0fcab.entry.js.map → p-f81ecfc2.entry.js.map} +0 -0
- /package/dist/core/{p-4a47cc51.entry.js.map → p-fdc1cfa2.entry.js.map} +0 -0
package/dist/cjs/loader.cjs.js
CHANGED
@@ -14,7 +14,7 @@ const patchEsm = () => {
|
|
14
14
|
const defineCustomElements = (win, options) => {
|
15
15
|
if (typeof window === 'undefined') return Promise.resolve();
|
16
16
|
return patchEsm().then(() => {
|
17
|
-
return index.bootstrapLazy(JSON.parse("[[\"ic-typography.cjs\",[[1,\"ic-typography\",{\"applyVerticalMargins\":[4,\"apply-vertical-margins\"],\"maxLines\":[2,\"max-lines\"],\"variant\":[1],\"truncated\":[32],\"truncButtonFocussed\":[32],\"expanded\":[32]}]]],[\"ic-search-bar.cjs\",[[17,\"ic-search-bar\",{\"autocapitalize\":[1],\"autocomplete\":[1],\"autocorrect\":[1],\"autofocus\":[4],\"charactersUntilSuggestion\":[2,\"characters-until-suggestion\"],\"disabled\":[4],\"disableFilter\":[4,\"disable-filter\"],\"debounce\":[2],\"emptyOptionListText\":[1,\"empty-option-list-text\"],\"focusOnLoad\":[4,\"focus-on-load\"],\"fullWidth\":[4,\"full-width\"],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"hintText\":[1,\"hint-text\"],\"label\":[1],\"loading\":[1028],\"loadingErrorLabel\":[1,\"loading-error-label\"],\"loadingLabel\":[1,\"loading-label\"],\"name\":[1],\"placeholder\":[1],\"readonly\":[4],\"required\":[4],\"small\":[4],\"spellcheck\":[4],\"timeout\":[2],\"options\":[16],\"value\":[1537],\"ariaActiveDescendant\":[32],\"clearButtonFocused\":[32],\"highlightedValue\":[32],\"open\":[32],\"searchSubmitFocused\":[32],\"showClearButton\":[32],\"filteredOptions\":[32],\"setFocus\":[64]},[[0,\"icKeydown\",\"handleKeyDown\"],[0,\"keyup\",\"handleKeyUp\"]]]]],[\"ic-select.cjs\",[[17,\"ic-select\",{\"charactersUntilSuggestions\":[2,\"characters-until-suggestions\"],\"disabled\":[516],\"disableFilter\":[4,\"disable-filter\"],\"emptyOptionListText\":[1,\"empty-option-list-text\"],\"fullWidth\":[4,\"full-width\"],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"includeDescriptionsInSearch\":[4,\"include-descriptions-in-search\"],\"includeGroupTitlesInSearch\":[4,\"include-group-titles-in-search\"],\"label\":[1],\"loadingErrorLabel\":[1,\"loading-error-label\"],\"loadingLabel\":[1,\"loading-label\"],\"name\":[1],\"placeholder\":[1],\"readonly\":[4],\"required\":[4],\"searchable\":[4],\"searchMatchPosition\":[1,\"search-match-position\"],\"showClearButton\":[4,\"show-clear-button\"],\"small\":[4],\"timeout\":[2],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"],\"loading\":[1028],\"options\":[16],\"debounce\":[2],\"value\":[1025],\"ariaActiveDescendant\":[32],\"clearButtonFocused\":[32],\"debounceIcChange\":[32],\"hiddenInputValue\":[32],\"noOptions\":[32],\"open\":[32],\"pressedCharacters\":[32],\"searchableSelectInputValue\":[32],\"filteredOptions\":[32],\"currDebounce\":[32],\"initialValue\":[32],\"inputValueToFilter\":[32],\"currValue\":[32],\"setFocus\":[64]}]]],[\"ic-top-navigation.cjs\",[[1,\"ic-top-navigation\",{\"contentAligned\":[1,\"content-aligned\"],\"href\":[1],\"inline\":[4],\"status\":[1],\"version\":[1],\"appTitle\":[1,\"app-title\"],\"deviceSize\":[32],\"foregroundColor\":[32],\"hasFullWidthSearchBar\":[32],\"menuOpen\":[32],\"mobileSearchBarVisible\":[32],\"mobileSearchHiddenOnBlur\":[32],\"navMenuVisible\":[32],\"searchButtonClick\":[32],\"searchValue\":[32]},[[0,\"icNavigationMenuClose\",\"navBarMenuCloseHandler\"],[0,\"icSearchBarBlur\",\"searchInputBlurHandler\"],[0,\"icChange\",\"searchValueChangeHandler\"],[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-page-header.cjs\",[[1,\"ic-page-header\",{\"aligned\":[1],\"border\":[4],\"heading\":[1],\"reverseOrder\":[4,\"reverse-order\"],\"small\":[4],\"sticky\":[4],\"stickyDesktopOnly\":[4,\"sticky-desktop-only\"],\"subheading\":[1],\"actionContent\":[32],\"areButtonsReversed\":[32],\"deviceSize\":[32]}]]],[\"ic-dialog.cjs\",[[1,\"ic-dialog\",{\"alertHeading\":[1,\"alert-heading\"],\"alertMessage\":[1,\"alert-message\"],\"buttons\":[4],\"closeOnBackdropClick\":[4,\"close-on-backdrop-click\"],\"destructive\":[4],\"dismissLabel\":[1,\"dismiss-label\"],\"heading\":[1],\"label\":[1],\"size\":[1],\"status\":[1],\"buttonProps\":[16],\"dialogRendered\":[32],\"fadeIn\":[32],\"showDialog\":[64],\"hideDialog\":[64],\"cancelDialog\":[64],\"confirmDialog\":[64]},[[4,\"keydown\",\"handleKeyboard\"],[0,\"click\",\"handleClick\"]]]]],[\"ic-pagination.cjs\",[[1,\"ic-pagination\",{\"adjacentCount\":[1026,\"adjacent-count\"],\"appearance\":[1],\"boundaryCount\":[1026,\"boundary-count\"],\"defaultPage\":[2,\"default-page\"],\"disabled\":[4],\"hideCurrentPage\":[4,\"hide-current-page\"],\"hideFirstAndLastPageButton\":[4,\"hide-first-and-last-page-button\"],\"label\":[1],\"pages\":[2],\"type\":[1],\"currentPage\":[1026,\"current-page\"],\"endEllipsis\":[32],\"endItems\":[32],\"midItems\":[32],\"startEllipsis\":[32],\"startItems\":[32],\"setCurrentPage\":[64]},[[0,\"paginationItemClick\",\"paginationItemClickHandler\"]]]]],[\"ic-popover-menu.cjs\",[[17,\"ic-popover-menu\",{\"anchor\":[1],\"parentLabel\":[1,\"parent-label\"],\"parentPopover\":[16],\"submenuId\":[1,\"submenu-id\"],\"submenuLevel\":[2,\"submenu-level\"],\"open\":[1540],\"openingFromChild\":[32],\"openingFromParent\":[32],\"openFromChild\":[64],\"openFromParent\":[64]},[[0,\"handleMenuItemClick\",\"handleMenuItemClick\"],[2,\"triggerPopoverMenuInstance\",\"handleSubmenuChange\"],[4,\"click\",\"handleClick\"],[4,\"keydown\",\"handleKeyDown\"]]]]],[\"ic-side-navigation.cjs\",[[1,\"ic-side-navigation\",{\"appTitle\":[1,\"app-title\"],\"collapsedIconLabels\":[4,\"collapsed-icon-labels\"],\"disableAutoParentStyling\":[4,\"disable-auto-parent-styling\"],\"expanded\":[4],\"href\":[1],\"inline\":[4],\"static\":[4],\"status\":[1],\"version\":[1],\"deviceSize\":[32],\"deviceSizeAppTitle\":[32],\"foregroundColor\":[32],\"hasSecondaryNavigation\":[32],\"menuExpanded\":[32],\"menuOpen\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-tab-group.cjs\",[[17,\"ic-tab-group\",{\"appearance\":[1],\"contextId\":[513,\"context-id\"],\"inline\":[516],\"label\":[1]}]]],[\"ic-card.cjs\",[[1,\"ic-card\",{\"clickable\":[1028],\"disabled\":[4],\"expandable\":[4],\"fullWidth\":[4,\"full-width\"],\"heading\":[1],\"href\":[1],\"hreflang\":[1],\"message\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"subheading\":[1],\"target\":[1],\"appearance\":[32],\"areaExpanded\":[32],\"isFocussed\":[32],\"parentEl\":[32],\"parentIsAnchorTag\":[32],\"setFocus\":[64]},[[2,\"click\",\"handleHostClick\"],[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-navigation-button.cjs\",[[17,\"ic-navigation-button\",{\"download\":[8],\"href\":[1],\"hreflang\":[1],\"label\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"target\":[1],\"initialAppearance\":[32],\"mode\":[32],\"setFocus\":[64]},[[4,\"icNavigationMenuOpened\",\"navBarMenuOpenHandler\"],[4,\"icNavigationMenuClosed\",\"navBarMenuCloseHandler\"],[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-toast.cjs\",[[1,\"ic-toast\",{\"autoDismissTimeout\":[1026,\"auto-dismiss-timeout\"],\"dismissButtonAriaLabel\":[1,\"dismiss-button-aria-label\"],\"dismissMode\":[1025,\"dismiss-mode\"],\"heading\":[1],\"message\":[1],\"neutralIconAriaLabel\":[1,\"neutral-icon-aria-label\"],\"variant\":[1025],\"timerProgress\":[32],\"visible\":[32],\"setVisible\":[64]},[[2,\"icDismiss\",\"handleDismiss\"],[4,\"keydown\",\"handleKeyboard\"],[1,\"mouseenter\",\"handleTimer\"],[1,\"mouseleave\",\"handleTimer\"]]]]],[\"ic-checkbox-group.cjs\",[[1,\"ic-checkbox-group\",{\"disabled\":[4],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"name\":[1],\"required\":[4],\"small\":[4],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"]},[[0,\"icCheck\",\"selectHandler\"]]]]],[\"ic-radio-group.cjs\",[[1,\"ic-radio-group\",{\"disabled\":[4],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"name\":[1],\"orientation\":[1537],\"required\":[4],\"small\":[4],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"],\"checkedValue\":[32],\"selectedChild\":[32]},[[0,\"icCheck\",\"selectHandler\"],[0,\"icSelectedChange\",\"changeHandler\"]]]]],[\"ic-breadcrumb-group.cjs\",[[1,\"ic-breadcrumb-group\",{\"backBreadcrumbOnly\":[4,\"back-breadcrumb-only\"],\"collapsed\":[4],\"deviceSize\":[32],\"expandedBreadcrumbs\":[32]}]]],[\"ic-chip.cjs\",[[17,\"ic-chip\",{\"appearance\":[1],\"disabled\":[4],\"dismissible\":[4],\"label\":[1],\"size\":[1],\"isHovered\":[32],\"visible\":[32],\"setFocus\":[64]},[[2,\"icDismiss\",\"handleClick\"]]]]],[\"ic-footer.cjs\",[[1,\"ic-footer\",{\"aligned\":[1],\"breakpoint\":[1],\"caption\":[1],\"copyright\":[4],\"description\":[1],\"groupLinks\":[4,\"group-links\"],\"deviceSize\":[32],\"foregroundColor\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-footer-link-group.cjs\",[[17,\"ic-footer-link-group\",{\"groupTitle\":[1,\"group-title\"],\"expanded\":[32],\"deviceSize\":[32],\"dropdownIconStyle\":[32],\"small\":[32]},[[4,\"footerResized\",\"footerResizeHandler\"],[4,\"themeChange\",\"footerThemeChangeHandler\"]]]]],[\"ic-hero.cjs\",[[1,\"ic-hero\",{\"aligned\":[1],\"backgroundImage\":[1,\"background-image\"],\"contentAligned\":[1,\"content-aligned\"],\"disableBackgroundParallax\":[4,\"disable-background-parallax\"],\"heading\":[1],\"secondaryHeading\":[1,\"secondary-heading\"],\"secondarySubheading\":[1,\"secondary-subheading\"],\"small\":[4],\"subheading\":[1],\"foregroundColor\":[32],\"rightContent\":[32],\"leftContentFullWidth\":[32],\"scrollFactor\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"],[5,\"scroll\",\"doScroll\"]]]]],[\"ic-navigation-item.cjs\",[[17,\"ic-navigation-item\",{\"collapsedIconLabel\":[4,\"collapsed-icon-label\"],\"displayNavigationTooltip\":[4,\"display-navigation-tooltip\"],\"download\":[8],\"expandable\":[4],\"href\":[1],\"hreflang\":[1],\"label\":[1],\"rel\":[1],\"referrerpolicy\":[1],\"selected\":[4],\"target\":[1],\"deviceSize\":[32],\"focusStyle\":[32],\"inTopNavSideMenu\":[32],\"isSideNavMobile\":[32],\"isTopNavChild\":[32],\"navigationType\":[32],\"parentEl\":[32],\"sideNavExpanded\":[32],\"setFocus\":[64]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-step.cjs\",[[1,\"ic-step\",{\"compactStepStyling\":[1,\"compact-step-styling\"],\"current\":[1028],\"lastStep\":[4,\"last-step\"],\"lastStepNum\":[2,\"last-step-num\"],\"nextStepTitle\":[1,\"next-step-title\"],\"progress\":[2],\"stepNum\":[2,\"step-num\"],\"stepStatus\":[1,\"step-status\"],\"stepSubtitle\":[1,\"step-subtitle\"],\"stepTitle\":[1,\"step-title\"],\"variant\":[1],\"stepType\":[1,\"step-type\"]}]]],[\"ic-switch.cjs\",[[17,\"ic-switch\",{\"checked\":[4],\"disabled\":[4],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"name\":[1],\"showState\":[4,\"show-state\"],\"small\":[4],\"value\":[1],\"checkedState\":[32],\"initiallyChecked\":[32],\"setFocus\":[64]}]]],[\"ic-back-to-top.cjs\",[[17,\"ic-back-to-top\",{\"target\":[1],\"bannerOffset\":[32],\"footerVisible\":[32],\"targetElVisible\":[32]}]]],[\"ic-checkbox.cjs\",[[17,\"ic-checkbox\",{\"additionalFieldDisplay\":[513,\"additional-field-display\"],\"checked\":[1540],\"disabled\":[4],\"dynamicText\":[1,\"dynamic-text\"],\"groupLabel\":[1,\"group-label\"],\"indeterminate\":[4],\"label\":[1],\"name\":[1],\"small\":[4],\"value\":[1],\"initiallyChecked\":[32],\"setFocus\":[64]}]]],[\"ic-classification-banner.cjs\",[[1,\"ic-classification-banner\",{\"additionalSelectors\":[1,\"additional-selectors\"],\"classification\":[1],\"country\":[1],\"inline\":[4],\"upTo\":[4,\"up-to\"]}]]],[\"ic-data-entity.cjs\",[[1,\"ic-data-entity\",{\"heading\":[1],\"small\":[4]}]]],[\"ic-data-row.cjs\",[[1,\"ic-data-row\",{\"label\":[1],\"small\":[4],\"value\":[1],\"deviceSize\":[32],\"entitySize\":[32]}]]],[\"ic-menu-group.cjs\",[[1,\"ic-menu-group\",{\"label\":[1]}]]],[\"ic-navigation-group.cjs\",[[17,\"ic-navigation-group\",{\"expandable\":[4],\"label\":[1],\"deviceSize\":[32],\"dropdownOpen\":[32],\"expanded\":[32],\"focusStyle\":[32],\"inTopNavSideMenu\":[32],\"navigationType\":[32],\"parentEl\":[32],\"setFocus\":[64]},[[0,\"childBlur\",\"childBlurHandler\"],[0,\"navItemClicked\",\"navItemClickHandler\"],[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-radio-option.cjs\",[[17,\"ic-radio-option\",{\"additionalFieldDisplay\":[513,\"additional-field-display\"],\"disabled\":[4],\"dynamicText\":[1,\"dynamic-text\"],\"groupLabel\":[1,\"group-label\"],\"label\":[1],\"name\":[1],\"value\":[1025],\"selected\":[1540],\"initiallySelected\":[32],\"setFocus\":[64]},[[0,\"icChange\",\"textfieldValueHandler\"]]]]],[\"ic-status-tag.cjs\",[[1,\"ic-status-tag\",{\"announced\":[4],\"appearance\":[1],\"label\":[1],\"small\":[4],\"status\":[1]}]]],[\"ic-tab.cjs\",[[1,\"ic-tab\",{\"appearance\":[1],\"contextId\":[513,\"context-id\"],\"disabled\":[4],\"selected\":[516],\"tabId\":[513,\"tab-id\"],\"tabPosition\":[2,\"tab-position\"],\"setFocus\":[64]}]]],[\"ic-footer-link.cjs\",[[17,\"ic-footer-link\",{\"download\":[8],\"href\":[1],\"hreflang\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"target\":[1],\"deviceSize\":[32],\"footerConfig\":[32],\"foregroundColor\":[32]},[[4,\"footerResized\",\"footerResizeHandler\"],[4,\"themeChange\",\"footerThemeChangeHandler\"]]]]],[\"ic-skeleton.cjs\",[[1,\"ic-skeleton\",{\"light\":[4],\"variant\":[1],\"default\":[32],\"hasChild\":[32],\"heightOnly\":[32],\"widthOnly\":[32]}]]],[\"ic-stepper.cjs\",[[1,\"ic-stepper\",{\"aligned\":[1],\"connectorWidth\":[2,\"connector-width\"],\"hideStepInfo\":[4,\"hide-step-info\"],\"variant\":[1025],\"alignedFullWidth\":[32],\"autoSetStepTitles\":[32],\"lastStepWidth\":[32],\"noOfResizes\":[32],\"stepperWidth\":[32],\"stepTypes\":[32],\"variantOverride\":[32]}]]],[\"ic-tab-context.cjs\",[[4,\"ic-tab-context\",{\"activationType\":[1,\"activation-type\"],\"appearance\":[1],\"contextId\":[513,\"context-id\"],\"selectedTabIndex\":[2,\"selected-tab-index\"],\"selectedTab\":[32],\"tabRemovedHandler\":[64]},[[0,\"tabClick\",\"tabClickHandler\"],[0,\"tabCreated\",\"tabCreatedHandler\"],[0,\"tabPanelCreated\",\"tabCreatedHandler\"]]]]],[\"ic-tab-panel.cjs\",[[1,\"ic-tab-panel\",{\"appearance\":[1],\"contextId\":[513,\"context-id\"],\"panelId\":[513,\"panel-id\"],\"selectedTab\":[1,\"selected-tab\"],\"tabPosition\":[514,\"tab-position\"]}]]],[\"ic-theme.cjs\",[[1,\"ic-theme\",{\"color\":[1]}]]],[\"ic-toast-region.cjs\",[[4,\"ic-toast-region\",{\"setVisible\":[64]},[[2,\"icDismiss\",\"handleDismissedToast\"]]]]],[\"ic-text-field.cjs\",[[1,\"ic-text-field\",{\"ariaActiveDescendant\":[1,\"aria-active-descendant\"],\"ariaAutocomplete\":[1,\"aria-autocomplete\"],\"ariaExpanded\":[1,\"aria-expanded\"],\"ariaOwns\":[1,\"aria-owns\"],\"autocapitalize\":[1],\"autocomplete\":[1],\"autocorrect\":[1],\"autoFocus\":[4,\"auto-focus\"],\"disabled\":[4],\"fullWidth\":[4,\"full-width\"],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"hiddenInput\":[4,\"hidden-input\"],\"inputId\":[1,\"input-id\"],\"inputmode\":[1],\"label\":[1],\"max\":[8],\"maxLength\":[2,\"max-length\"],\"min\":[8],\"name\":[1],\"placeholder\":[1],\"readonly\":[516],\"required\":[4],\"resize\":[4],\"role\":[1],\"rows\":[2],\"small\":[516],\"spellcheck\":[4],\"truncateValue\":[4,\"truncate-value\"],\"type\":[1],\"validationInline\":[4,\"validation-inline\"],\"validationInlineInternal\":[4,\"validation-inline-internal\"],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"],\"debounce\":[2],\"value\":[1537],\"numChars\":[32],\"maxLengthExceeded\":[32],\"maxValueExceeded\":[32],\"minValueUnattained\":[32],\"initialValue\":[32],\"setFocus\":[64]},[[0,\"keydown\",\"handleKeyDown\"]]]]],[\"ic-alert.cjs\",[[1,\"ic-alert\",{\"announced\":[4],\"dismissible\":[4],\"heading\":[1],\"message\":[1],\"titleAbove\":[4,\"title-above\"],\"variant\":[1],\"alertTitleWrap\":[32],\"visible\":[32]},[[2,\"icDismiss\",\"handleClick\"]]]]],[\"ic-menu-item.cjs\",[[17,\"ic-menu-item\",{\"description\":[1],\"disabled\":[4],\"href\":[1],\"hreflang\":[1],\"keyboardShortcut\":[1,\"keyboard-shortcut\"],\"label\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"submenuTriggerFor\":[1,\"submenu-trigger-for\"],\"target\":[1],\"variant\":[1537],\"toggleChecked\":[32]},[[2,\"click\",\"handleHostClick\"]]]]],[\"ic-navigation-menu.cjs\",[[1,\"ic-navigation-menu\",{\"status\":[1],\"version\":[1]},[[0,\"navItemClicked\",\"navItemClickHandler\"],[4,\"keydown\",\"handleKeyDown\"]]]]],[\"ic-breadcrumb.cjs\",[[17,\"ic-breadcrumb\",{\"current\":[4],\"href\":[1],\"pageTitle\":[1,\"page-title\"],\"showBackIcon\":[516,\"show-back-icon\"],\"setFocus\":[64]}]]],[\"ic-pagination-item.cjs\",[[1,\"ic-pagination-item\",{\"appearance\":[1],\"ariaOverride\":[4,\"aria-override\"],\"disabled\":[4],\"label\":[1],\"page\":[2],\"pages\":[2],\"selected\":[4],\"type\":[1]}]]],[\"ic-divider.cjs\",[[2,\"ic-divider\",{\"foregroundColor\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-link.cjs\",[[17,\"ic-link\",{\"appearance\":[1025],\"download\":[8],\"href\":[1],\"hreflang\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"showIcon\":[4,\"show-icon\"],\"target\":[1],\"setFocus\":[64]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-horizontal-scroll.cjs\",[[1,\"ic-horizontal-scroll\",{\"appearance\":[1],\"firstItemVisible\":[32],\"itemOverflow\":[32],\"lastItemVisible\":[32],\"scrollItemIntoView\":[64]}]]],[\"ic-section-container.cjs\",[[1,\"ic-section-container\",{\"aligned\":[1],\"fullHeight\":[4,\"full-height\"]}]]],[\"ic-input-component-container_3.cjs\",[[2,\"ic-menu\",{\"activationType\":[1,\"activation-type\"],\"anchorEl\":[16],\"autoFocusOnSelected\":[4,\"auto-focus-on-selected\"],\"fullWidth\":[4,\"full-width\"],\"inputEl\":[16],\"inputLabel\":[1,\"input-label\"],\"menuId\":[1,\"menu-id\"],\"open\":[516],\"parentEl\":[16],\"small\":[516],\"options\":[16],\"value\":[1025],\"focusFromSearchKeypress\":[32],\"initialOptionsListRender\":[32],\"keyboardNav\":[32],\"optionHighlighted\":[32],\"preventIncorrectTabOrder\":[32],\"handleClickOpen\":[64],\"handleKeyboardOpen\":[64],\"handleSetFirstOption\":[64]}],[4,\"ic-input-component-container\",{\"dark\":[4],\"disabled\":[4],\"fullWidth\":[4,\"full-width\"],\"multiLine\":[4,\"multi-line\"],\"readonly\":[4],\"small\":[4],\"validationInline\":[4,\"validation-inline\"],\"validationStatus\":[1,\"validation-status\"]}],[4,\"ic-input-container\",{\"disabled\":[4],\"readonly\":[4]}]]],[\"ic-input-label_2.cjs\",[[4,\"ic-input-validation\",{\"ariaLiveMode\":[1,\"aria-live-mode\"],\"for\":[1],\"fullWidth\":[4,\"full-width\"],\"message\":[1],\"status\":[1]}],[0,\"ic-input-label\",{\"dark\":[4],\"disabled\":[4],\"error\":[4],\"for\":[1],\"helperText\":[1,\"helper-text\"],\"label\":[1],\"readonly\":[4],\"required\":[4]}]]],[\"ic-button_3.cjs\",[[17,\"ic-button\",{\"appearance\":[1025],\"disabled\":[4],\"disableTooltip\":[4,\"disable-tooltip\"],\"download\":[8],\"form\":[1],\"formaction\":[1],\"formenctype\":[1],\"formmethod\":[1],\"formnovalidate\":[4],\"formtarget\":[1],\"fullWidth\":[4,\"full-width\"],\"href\":[1],\"hreflang\":[1],\"loading\":[4],\"referrerpolicy\":[1],\"rel\":[1],\"size\":[1],\"target\":[1],\"tooltipPlacement\":[1,\"tooltip-placement\"],\"type\":[1],\"variant\":[1],\"setFocus\":[64],\"updateAriaLabel\":[64]},[[2,\"click\",\"handleHostClick\"],[4,\"themeChange\",\"themeChangeHandler\"]]],[1,\"ic-loading-indicator\",{\"appearance\":[1],\"description\":[1],\"fullWidth\":[516,\"full-width\"],\"innerLabel\":[2,\"inner-label\"],\"labelDuration\":[2,\"label-duration\"],\"max\":[2],\"min\":[2],\"size\":[513],\"type\":[513],\"label\":[1],\"progress\":[2],\"circularDiameter\":[32],\"circularLineWidth\":[32],\"indeterminate\":[32],\"indicatorLabel\":[32],\"showSecond\":[32]}],[1,\"ic-tooltip\",{\"disableHover\":[4,\"disable-hover\"],\"placement\":[1],\"target\":[513],\"label\":[1],\"displayTooltip\":[64]}]]]]"), options);
|
17
|
+
return index.bootstrapLazy(JSON.parse("[[\"ic-typography.cjs\",[[1,\"ic-typography\",{\"applyVerticalMargins\":[4,\"apply-vertical-margins\"],\"maxLines\":[2,\"max-lines\"],\"variant\":[1],\"truncated\":[32],\"truncButtonFocussed\":[32],\"expanded\":[32]}]]],[\"ic-search-bar.cjs\",[[17,\"ic-search-bar\",{\"autocapitalize\":[1],\"autocomplete\":[1],\"autocorrect\":[1],\"autofocus\":[4],\"charactersUntilSuggestion\":[2,\"characters-until-suggestion\"],\"disabled\":[4],\"disableFilter\":[4,\"disable-filter\"],\"debounce\":[2],\"emptyOptionListText\":[1,\"empty-option-list-text\"],\"focusOnLoad\":[4,\"focus-on-load\"],\"fullWidth\":[4,\"full-width\"],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"hintText\":[1,\"hint-text\"],\"label\":[1],\"loading\":[1028],\"loadingErrorLabel\":[1,\"loading-error-label\"],\"loadingLabel\":[1,\"loading-label\"],\"name\":[1],\"placeholder\":[1],\"readonly\":[4],\"required\":[4],\"small\":[4],\"spellcheck\":[4],\"timeout\":[2],\"options\":[16],\"value\":[1537],\"ariaActiveDescendant\":[32],\"clearButtonFocused\":[32],\"highlightedValue\":[32],\"open\":[32],\"searchSubmitFocused\":[32],\"showClearButton\":[32],\"filteredOptions\":[32],\"setFocus\":[64]},[[0,\"icKeydown\",\"handleKeyDown\"],[0,\"keyup\",\"handleKeyUp\"]]]]],[\"ic-select.cjs\",[[17,\"ic-select\",{\"charactersUntilSuggestions\":[2,\"characters-until-suggestions\"],\"disabled\":[516],\"disableFilter\":[4,\"disable-filter\"],\"emptyOptionListText\":[1,\"empty-option-list-text\"],\"fullWidth\":[4,\"full-width\"],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"includeDescriptionsInSearch\":[4,\"include-descriptions-in-search\"],\"includeGroupTitlesInSearch\":[4,\"include-group-titles-in-search\"],\"label\":[1],\"loadingErrorLabel\":[1,\"loading-error-label\"],\"loadingLabel\":[1,\"loading-label\"],\"name\":[1],\"placeholder\":[1],\"readonly\":[4],\"required\":[4],\"searchable\":[4],\"searchMatchPosition\":[1,\"search-match-position\"],\"showClearButton\":[4,\"show-clear-button\"],\"small\":[4],\"timeout\":[2],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"],\"loading\":[1028],\"options\":[16],\"debounce\":[2],\"value\":[1025],\"ariaActiveDescendant\":[32],\"clearButtonFocused\":[32],\"debounceIcChange\":[32],\"hiddenInputValue\":[32],\"noOptions\":[32],\"open\":[32],\"pressedCharacters\":[32],\"searchableSelectInputValue\":[32],\"filteredOptions\":[32],\"currDebounce\":[32],\"initialValue\":[32],\"inputValueToFilter\":[32],\"currValue\":[32],\"setFocus\":[64]}]]],[\"ic-top-navigation.cjs\",[[1,\"ic-top-navigation\",{\"contentAligned\":[1,\"content-aligned\"],\"href\":[1],\"inline\":[4],\"shortAppTitle\":[1,\"short-app-title\"],\"status\":[1],\"version\":[1],\"appTitle\":[1,\"app-title\"],\"deviceSize\":[32],\"foregroundColor\":[32],\"hasFullWidthSearchBar\":[32],\"menuOpen\":[32],\"mobileSearchBarVisible\":[32],\"mobileSearchHiddenOnBlur\":[32],\"navMenuVisible\":[32],\"searchButtonClick\":[32],\"searchValue\":[32]},[[0,\"icNavigationMenuClose\",\"navBarMenuCloseHandler\"],[0,\"icSearchBarBlur\",\"searchInputBlurHandler\"],[0,\"icChange\",\"searchValueChangeHandler\"],[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-page-header.cjs\",[[1,\"ic-page-header\",{\"aligned\":[1],\"border\":[4],\"heading\":[1],\"reverseOrder\":[4,\"reverse-order\"],\"small\":[4],\"sticky\":[4],\"stickyDesktopOnly\":[4,\"sticky-desktop-only\"],\"subheading\":[1],\"actionContent\":[32],\"areButtonsReversed\":[32],\"deviceSize\":[32]}]]],[\"ic-dialog.cjs\",[[1,\"ic-dialog\",{\"alertHeading\":[1,\"alert-heading\"],\"alertMessage\":[1,\"alert-message\"],\"buttons\":[4],\"closeOnBackdropClick\":[4,\"close-on-backdrop-click\"],\"destructive\":[4],\"dismissLabel\":[1,\"dismiss-label\"],\"heading\":[1],\"label\":[1],\"size\":[1],\"status\":[1],\"buttonProps\":[16],\"dialogRendered\":[32],\"fadeIn\":[32],\"showDialog\":[64],\"hideDialog\":[64],\"cancelDialog\":[64],\"confirmDialog\":[64]},[[4,\"keydown\",\"handleKeyboard\"],[0,\"click\",\"handleClick\"]]]]],[\"ic-pagination.cjs\",[[1,\"ic-pagination\",{\"adjacentCount\":[1026,\"adjacent-count\"],\"appearance\":[1],\"boundaryCount\":[1026,\"boundary-count\"],\"defaultPage\":[2,\"default-page\"],\"disabled\":[4],\"hideCurrentPage\":[4,\"hide-current-page\"],\"hideFirstAndLastPageButton\":[4,\"hide-first-and-last-page-button\"],\"label\":[1],\"pages\":[2],\"type\":[1],\"currentPage\":[1026,\"current-page\"],\"endEllipsis\":[32],\"endItems\":[32],\"midItems\":[32],\"startEllipsis\":[32],\"startItems\":[32],\"setCurrentPage\":[64]},[[0,\"paginationItemClick\",\"paginationItemClickHandler\"]]]]],[\"ic-popover-menu.cjs\",[[17,\"ic-popover-menu\",{\"anchor\":[1],\"parentLabel\":[1,\"parent-label\"],\"parentPopover\":[16],\"submenuId\":[1,\"submenu-id\"],\"submenuLevel\":[2,\"submenu-level\"],\"open\":[1540],\"openingFromChild\":[32],\"openingFromParent\":[32],\"openFromChild\":[64],\"openFromParent\":[64]},[[0,\"handleMenuItemClick\",\"handleMenuItemClick\"],[2,\"triggerPopoverMenuInstance\",\"handleSubmenuChange\"],[4,\"click\",\"handleClick\"],[4,\"keydown\",\"handleKeyDown\"]]]]],[\"ic-side-navigation.cjs\",[[1,\"ic-side-navigation\",{\"appTitle\":[1,\"app-title\"],\"collapsedIconLabels\":[4,\"collapsed-icon-labels\"],\"disableAutoParentStyling\":[4,\"disable-auto-parent-styling\"],\"expanded\":[4],\"href\":[1],\"inline\":[4],\"static\":[4],\"status\":[1],\"version\":[1],\"deviceSize\":[32],\"deviceSizeAppTitle\":[32],\"foregroundColor\":[32],\"hasSecondaryNavigation\":[32],\"menuExpanded\":[32],\"menuOpen\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-tab-group.cjs\",[[17,\"ic-tab-group\",{\"appearance\":[1],\"contextId\":[513,\"context-id\"],\"inline\":[516],\"label\":[1]}]]],[\"ic-card.cjs\",[[1,\"ic-card\",{\"clickable\":[1028],\"disabled\":[4],\"expandable\":[4],\"fullWidth\":[4,\"full-width\"],\"heading\":[1],\"href\":[1],\"hreflang\":[1],\"message\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"subheading\":[1],\"target\":[1],\"appearance\":[32],\"areaExpanded\":[32],\"isFocussed\":[32],\"parentEl\":[32],\"parentIsAnchorTag\":[32],\"setFocus\":[64]},[[2,\"click\",\"handleHostClick\"],[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-navigation-button.cjs\",[[17,\"ic-navigation-button\",{\"download\":[8],\"href\":[1],\"hreflang\":[1],\"label\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"target\":[1],\"initialAppearance\":[32],\"mode\":[32],\"setFocus\":[64]},[[4,\"icNavigationMenuOpened\",\"navBarMenuOpenHandler\"],[4,\"icNavigationMenuClosed\",\"navBarMenuCloseHandler\"],[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-toast.cjs\",[[1,\"ic-toast\",{\"autoDismissTimeout\":[1026,\"auto-dismiss-timeout\"],\"dismissButtonAriaLabel\":[1,\"dismiss-button-aria-label\"],\"dismissMode\":[1025,\"dismiss-mode\"],\"heading\":[1],\"message\":[1],\"neutralIconAriaLabel\":[1,\"neutral-icon-aria-label\"],\"variant\":[1025],\"timerProgress\":[32],\"visible\":[32],\"setVisible\":[64]},[[2,\"icDismiss\",\"handleDismiss\"],[4,\"keydown\",\"handleKeyboard\"],[1,\"mouseenter\",\"handleTimer\"],[1,\"mouseleave\",\"handleTimer\"]]]]],[\"ic-checkbox-group.cjs\",[[1,\"ic-checkbox-group\",{\"disabled\":[4],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"name\":[1],\"required\":[4],\"small\":[4],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"]},[[0,\"icCheck\",\"selectHandler\"]]]]],[\"ic-radio-group.cjs\",[[1,\"ic-radio-group\",{\"disabled\":[4],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"name\":[1],\"orientation\":[1537],\"required\":[4],\"small\":[4],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"],\"checkedValue\":[32],\"selectedChild\":[32]},[[0,\"icCheck\",\"selectHandler\"],[0,\"icSelectedChange\",\"changeHandler\"]]]]],[\"ic-breadcrumb-group.cjs\",[[1,\"ic-breadcrumb-group\",{\"backBreadcrumbOnly\":[4,\"back-breadcrumb-only\"],\"collapsed\":[4],\"deviceSize\":[32],\"expandedBreadcrumbs\":[32]}]]],[\"ic-chip.cjs\",[[17,\"ic-chip\",{\"appearance\":[1],\"disabled\":[4],\"dismissible\":[4],\"label\":[1],\"size\":[1],\"isHovered\":[32],\"visible\":[32],\"setFocus\":[64]},[[2,\"icDismiss\",\"handleClick\"]]]]],[\"ic-footer.cjs\",[[1,\"ic-footer\",{\"aligned\":[1],\"breakpoint\":[1],\"caption\":[1],\"copyright\":[4],\"description\":[1],\"groupLinks\":[4,\"group-links\"],\"deviceSize\":[32],\"foregroundColor\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-footer-link-group.cjs\",[[17,\"ic-footer-link-group\",{\"groupTitle\":[1,\"group-title\"],\"expanded\":[32],\"deviceSize\":[32],\"dropdownIconStyle\":[32],\"small\":[32]},[[4,\"footerResized\",\"footerResizeHandler\"],[4,\"themeChange\",\"footerThemeChangeHandler\"]]]]],[\"ic-hero.cjs\",[[1,\"ic-hero\",{\"aligned\":[1],\"backgroundImage\":[1,\"background-image\"],\"contentAligned\":[1,\"content-aligned\"],\"disableBackgroundParallax\":[4,\"disable-background-parallax\"],\"heading\":[1],\"secondaryHeading\":[1,\"secondary-heading\"],\"secondarySubheading\":[1,\"secondary-subheading\"],\"small\":[4],\"subheading\":[1],\"foregroundColor\":[32],\"rightContent\":[32],\"leftContentFullWidth\":[32],\"scrollFactor\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"],[5,\"scroll\",\"doScroll\"]]]]],[\"ic-navigation-item.cjs\",[[17,\"ic-navigation-item\",{\"collapsedIconLabel\":[4,\"collapsed-icon-label\"],\"displayNavigationTooltip\":[4,\"display-navigation-tooltip\"],\"download\":[8],\"expandable\":[4],\"href\":[1],\"hreflang\":[1],\"label\":[1],\"rel\":[1],\"referrerpolicy\":[1],\"selected\":[4],\"target\":[1],\"deviceSize\":[32],\"focusStyle\":[32],\"inTopNavSideMenu\":[32],\"isSideNavMobile\":[32],\"isTopNavChild\":[32],\"navigationType\":[32],\"parentEl\":[32],\"sideNavExpanded\":[32],\"setFocus\":[64]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-step.cjs\",[[1,\"ic-step\",{\"compactStepStyling\":[1,\"compact-step-styling\"],\"current\":[1028],\"lastStep\":[4,\"last-step\"],\"lastStepNum\":[2,\"last-step-num\"],\"nextStepTitle\":[1,\"next-step-title\"],\"progress\":[2],\"stepNum\":[2,\"step-num\"],\"stepStatus\":[1,\"step-status\"],\"stepSubtitle\":[1,\"step-subtitle\"],\"stepTitle\":[1,\"step-title\"],\"variant\":[1],\"stepType\":[1,\"step-type\"]}]]],[\"ic-switch.cjs\",[[17,\"ic-switch\",{\"checked\":[4],\"disabled\":[4],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"name\":[1],\"showState\":[4,\"show-state\"],\"small\":[4],\"value\":[1],\"checkedState\":[32],\"initiallyChecked\":[32],\"setFocus\":[64]}]]],[\"ic-back-to-top.cjs\",[[17,\"ic-back-to-top\",{\"target\":[1],\"bannerOffset\":[32],\"footerVisible\":[32],\"targetElVisible\":[32]}]]],[\"ic-checkbox.cjs\",[[17,\"ic-checkbox\",{\"additionalFieldDisplay\":[513,\"additional-field-display\"],\"checked\":[1540],\"disabled\":[4],\"dynamicText\":[1,\"dynamic-text\"],\"groupLabel\":[1,\"group-label\"],\"indeterminate\":[4],\"label\":[1],\"name\":[1],\"small\":[4],\"value\":[1],\"initiallyChecked\":[32],\"setFocus\":[64]}]]],[\"ic-classification-banner.cjs\",[[1,\"ic-classification-banner\",{\"additionalSelectors\":[1,\"additional-selectors\"],\"classification\":[1],\"country\":[1],\"inline\":[4],\"upTo\":[4,\"up-to\"]}]]],[\"ic-data-entity.cjs\",[[1,\"ic-data-entity\",{\"heading\":[1],\"small\":[4]}]]],[\"ic-data-row.cjs\",[[1,\"ic-data-row\",{\"label\":[1],\"small\":[4],\"value\":[1],\"deviceSize\":[32],\"entitySize\":[32]}]]],[\"ic-menu-group.cjs\",[[1,\"ic-menu-group\",{\"label\":[1]}]]],[\"ic-navigation-group.cjs\",[[17,\"ic-navigation-group\",{\"expandable\":[4],\"label\":[1],\"deviceSize\":[32],\"dropdownOpen\":[32],\"expanded\":[32],\"focusStyle\":[32],\"inTopNavSideMenu\":[32],\"navigationType\":[32],\"parentEl\":[32],\"setFocus\":[64]},[[0,\"childBlur\",\"childBlurHandler\"],[0,\"navItemClicked\",\"navItemClickHandler\"],[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-radio-option.cjs\",[[17,\"ic-radio-option\",{\"additionalFieldDisplay\":[513,\"additional-field-display\"],\"disabled\":[4],\"dynamicText\":[1,\"dynamic-text\"],\"groupLabel\":[1,\"group-label\"],\"label\":[1],\"name\":[1],\"value\":[1025],\"selected\":[1540],\"initiallySelected\":[32],\"setFocus\":[64]},[[0,\"icChange\",\"textfieldValueHandler\"]]]]],[\"ic-status-tag.cjs\",[[1,\"ic-status-tag\",{\"announced\":[4],\"appearance\":[1],\"label\":[1],\"small\":[4],\"status\":[1]}]]],[\"ic-tab.cjs\",[[1,\"ic-tab\",{\"appearance\":[1],\"contextId\":[513,\"context-id\"],\"disabled\":[4],\"selected\":[516],\"tabId\":[513,\"tab-id\"],\"tabPosition\":[2,\"tab-position\"],\"setFocus\":[64]}]]],[\"ic-footer-link.cjs\",[[17,\"ic-footer-link\",{\"download\":[8],\"href\":[1],\"hreflang\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"target\":[1],\"deviceSize\":[32],\"footerConfig\":[32],\"foregroundColor\":[32]},[[4,\"footerResized\",\"footerResizeHandler\"],[4,\"themeChange\",\"footerThemeChangeHandler\"]]]]],[\"ic-skeleton.cjs\",[[1,\"ic-skeleton\",{\"light\":[4],\"variant\":[1],\"default\":[32],\"hasChild\":[32],\"heightOnly\":[32],\"widthOnly\":[32]}]]],[\"ic-stepper.cjs\",[[1,\"ic-stepper\",{\"aligned\":[1],\"connectorWidth\":[2,\"connector-width\"],\"hideStepInfo\":[4,\"hide-step-info\"],\"variant\":[1025],\"alignedFullWidth\":[32],\"autoSetStepTitles\":[32],\"lastStepWidth\":[32],\"noOfResizes\":[32],\"stepperWidth\":[32],\"stepTypes\":[32],\"variantOverride\":[32]}]]],[\"ic-tab-context.cjs\",[[4,\"ic-tab-context\",{\"activationType\":[1,\"activation-type\"],\"appearance\":[1],\"contextId\":[513,\"context-id\"],\"selectedTabIndex\":[2,\"selected-tab-index\"],\"selectedTab\":[32],\"tabRemovedHandler\":[64]},[[0,\"tabClick\",\"tabClickHandler\"],[0,\"tabCreated\",\"tabCreatedHandler\"],[0,\"tabPanelCreated\",\"tabCreatedHandler\"]]]]],[\"ic-tab-panel.cjs\",[[1,\"ic-tab-panel\",{\"appearance\":[1],\"contextId\":[513,\"context-id\"],\"panelId\":[513,\"panel-id\"],\"selectedTab\":[1,\"selected-tab\"],\"tabPosition\":[514,\"tab-position\"]}]]],[\"ic-theme.cjs\",[[1,\"ic-theme\",{\"color\":[1]}]]],[\"ic-toast-region.cjs\",[[4,\"ic-toast-region\",{\"setVisible\":[64]},[[2,\"icDismiss\",\"handleDismissedToast\"]]]]],[\"ic-text-field.cjs\",[[1,\"ic-text-field\",{\"ariaActiveDescendant\":[1,\"aria-active-descendant\"],\"ariaAutocomplete\":[1,\"aria-autocomplete\"],\"ariaExpanded\":[1,\"aria-expanded\"],\"ariaOwns\":[1,\"aria-owns\"],\"autocapitalize\":[1],\"autocomplete\":[1],\"autocorrect\":[1],\"autoFocus\":[4,\"auto-focus\"],\"disabled\":[4],\"fullWidth\":[4,\"full-width\"],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"hiddenInput\":[4,\"hidden-input\"],\"inputId\":[1,\"input-id\"],\"inputmode\":[1],\"label\":[1],\"max\":[8],\"maxLength\":[2,\"max-length\"],\"min\":[8],\"name\":[1],\"placeholder\":[1],\"readonly\":[516],\"required\":[4],\"resize\":[4],\"role\":[1],\"rows\":[2],\"small\":[516],\"spellcheck\":[4],\"truncateValue\":[4,\"truncate-value\"],\"type\":[1],\"validationInline\":[4,\"validation-inline\"],\"validationInlineInternal\":[4,\"validation-inline-internal\"],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"],\"debounce\":[2],\"value\":[1537],\"numChars\":[32],\"maxLengthExceeded\":[32],\"maxValueExceeded\":[32],\"minValueUnattained\":[32],\"initialValue\":[32],\"setFocus\":[64]},[[0,\"keydown\",\"handleKeyDown\"]]]]],[\"ic-alert.cjs\",[[1,\"ic-alert\",{\"announced\":[4],\"dismissible\":[4],\"heading\":[1],\"message\":[1],\"titleAbove\":[4,\"title-above\"],\"variant\":[1],\"alertTitleWrap\":[32],\"visible\":[32]},[[2,\"icDismiss\",\"handleClick\"]]]]],[\"ic-menu-item.cjs\",[[17,\"ic-menu-item\",{\"description\":[1],\"disabled\":[4],\"href\":[1],\"hreflang\":[1],\"keyboardShortcut\":[1,\"keyboard-shortcut\"],\"label\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"submenuTriggerFor\":[1,\"submenu-trigger-for\"],\"target\":[1],\"variant\":[1537],\"toggleChecked\":[32]},[[2,\"click\",\"handleHostClick\"]]]]],[\"ic-navigation-menu.cjs\",[[1,\"ic-navigation-menu\",{\"status\":[1],\"version\":[1]},[[0,\"navItemClicked\",\"navItemClickHandler\"],[4,\"keydown\",\"handleKeyDown\"]]]]],[\"ic-breadcrumb.cjs\",[[17,\"ic-breadcrumb\",{\"current\":[4],\"href\":[1],\"pageTitle\":[1,\"page-title\"],\"showBackIcon\":[516,\"show-back-icon\"],\"setFocus\":[64]}]]],[\"ic-pagination-item.cjs\",[[1,\"ic-pagination-item\",{\"appearance\":[1],\"ariaOverride\":[4,\"aria-override\"],\"disabled\":[4],\"label\":[1],\"page\":[2],\"pages\":[2],\"selected\":[4],\"type\":[1]}]]],[\"ic-divider.cjs\",[[2,\"ic-divider\",{\"foregroundColor\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-link.cjs\",[[17,\"ic-link\",{\"appearance\":[1025],\"download\":[8],\"href\":[1],\"hreflang\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"showIcon\":[4,\"show-icon\"],\"target\":[1],\"setFocus\":[64]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-horizontal-scroll.cjs\",[[1,\"ic-horizontal-scroll\",{\"appearance\":[1],\"firstItemVisible\":[32],\"itemOverflow\":[32],\"lastItemVisible\":[32],\"scrollItemIntoView\":[64]}]]],[\"ic-section-container.cjs\",[[1,\"ic-section-container\",{\"aligned\":[1],\"fullHeight\":[4,\"full-height\"]}]]],[\"ic-input-component-container_3.cjs\",[[2,\"ic-menu\",{\"activationType\":[1,\"activation-type\"],\"anchorEl\":[16],\"autoFocusOnSelected\":[4,\"auto-focus-on-selected\"],\"fullWidth\":[4,\"full-width\"],\"inputEl\":[16],\"inputLabel\":[1,\"input-label\"],\"menuId\":[1,\"menu-id\"],\"open\":[516],\"parentEl\":[16],\"small\":[516],\"options\":[16],\"value\":[1025],\"focusFromSearchKeypress\":[32],\"initialOptionsListRender\":[32],\"keyboardNav\":[32],\"optionHighlighted\":[32],\"preventIncorrectTabOrder\":[32],\"handleClickOpen\":[64],\"handleKeyboardOpen\":[64],\"handleSetFirstOption\":[64]}],[4,\"ic-input-component-container\",{\"dark\":[4],\"disabled\":[4],\"fullWidth\":[4,\"full-width\"],\"multiLine\":[4,\"multi-line\"],\"readonly\":[4],\"small\":[4],\"validationInline\":[4,\"validation-inline\"],\"validationStatus\":[1,\"validation-status\"]}],[4,\"ic-input-container\",{\"disabled\":[4],\"readonly\":[4]}]]],[\"ic-input-label_2.cjs\",[[4,\"ic-input-validation\",{\"ariaLiveMode\":[1,\"aria-live-mode\"],\"for\":[1],\"fullWidth\":[4,\"full-width\"],\"message\":[1],\"status\":[1]}],[0,\"ic-input-label\",{\"dark\":[4],\"disabled\":[4],\"error\":[4],\"for\":[1],\"helperText\":[1,\"helper-text\"],\"label\":[1],\"readonly\":[4],\"required\":[4]}]]],[\"ic-button_3.cjs\",[[17,\"ic-button\",{\"appearance\":[1025],\"disabled\":[4],\"disableTooltip\":[4,\"disable-tooltip\"],\"download\":[8],\"form\":[1],\"formaction\":[1],\"formenctype\":[1],\"formmethod\":[1],\"formnovalidate\":[4],\"formtarget\":[1],\"fullWidth\":[4,\"full-width\"],\"href\":[1],\"hreflang\":[1],\"loading\":[4],\"referrerpolicy\":[1],\"rel\":[1],\"size\":[1],\"target\":[1],\"tooltipPlacement\":[1,\"tooltip-placement\"],\"type\":[1],\"variant\":[1],\"describedByContent\":[32],\"setFocus\":[64],\"updateAriaLabel\":[64]},[[2,\"click\",\"handleHostClick\"],[4,\"themeChange\",\"themeChangeHandler\"]]],[1,\"ic-loading-indicator\",{\"appearance\":[1],\"description\":[1],\"fullWidth\":[516,\"full-width\"],\"innerLabel\":[2,\"inner-label\"],\"labelDuration\":[2,\"label-duration\"],\"max\":[2],\"min\":[2],\"size\":[513],\"type\":[513],\"label\":[1],\"progress\":[2],\"circularDiameter\":[32],\"circularLineWidth\":[32],\"indeterminate\":[32],\"indicatorLabel\":[32],\"showSecond\":[32]}],[1,\"ic-tooltip\",{\"disableHover\":[4,\"disable-hover\"],\"placement\":[1],\"target\":[513],\"label\":[1],\"displayTooltip\":[64]}]]]]"), options);
|
18
18
|
});
|
19
19
|
};
|
20
20
|
|
@@ -23,6 +23,9 @@ export class Button {
|
|
23
23
|
this.buttonIdNum = buttonIds++;
|
24
24
|
this.hasTooltip = false;
|
25
25
|
this.inheritedAttributes = {};
|
26
|
+
this.describedByEl = null;
|
27
|
+
this.describedById = null;
|
28
|
+
this.mutationObserver = null;
|
26
29
|
this.handleClick = () => {
|
27
30
|
if ((this.el.type === "submit" || this.el.type === "reset") &&
|
28
31
|
!!this.el.closest("FORM")) {
|
@@ -35,6 +38,11 @@ export class Button {
|
|
35
38
|
this.onBlur = () => {
|
36
39
|
this.icBlur.emit();
|
37
40
|
};
|
41
|
+
// triggered when text content of sibling element in light DOM changes
|
42
|
+
this.mutationCallback = () => {
|
43
|
+
this.describedByContent = this.describedByEl.innerText;
|
44
|
+
};
|
45
|
+
this.describedByContent = null;
|
38
46
|
this.appearance = "default";
|
39
47
|
this.disabled = false;
|
40
48
|
this.disableTooltip = false;
|
@@ -57,6 +65,11 @@ export class Button {
|
|
57
65
|
this.type = "button";
|
58
66
|
this.variant = "primary";
|
59
67
|
}
|
68
|
+
disconnectedCallback() {
|
69
|
+
if (this.mutationObserver !== null && this.mutationObserver !== undefined) {
|
70
|
+
this.mutationObserver.disconnect();
|
71
|
+
}
|
72
|
+
}
|
60
73
|
componentWillLoad() {
|
61
74
|
this.inheritedAttributes = inheritAttributes(this.el, [
|
62
75
|
...IC_INHERITED_ARIA,
|
@@ -68,9 +81,26 @@ export class Button {
|
|
68
81
|
const id = this.el.id;
|
69
82
|
this.id = id !== undefined ? id : null;
|
70
83
|
this.hasTooltip = this.variant === "icon" && this.disableTooltip === false;
|
84
|
+
if (!this.hasTooltip) {
|
85
|
+
const describedById = this.inheritedAttributes["aria-describedby"];
|
86
|
+
if (describedById !== undefined) {
|
87
|
+
this.describedById = describedById;
|
88
|
+
const el = this.el.parentElement.querySelector(`#${describedById}`);
|
89
|
+
this.describedByContent = el.innerText;
|
90
|
+
this.describedByEl = el;
|
91
|
+
}
|
92
|
+
}
|
71
93
|
}
|
72
94
|
componentDidLoad() {
|
73
95
|
this.updateTheme();
|
96
|
+
if (this.describedById) {
|
97
|
+
this.mutationObserver = new MutationObserver(this.mutationCallback);
|
98
|
+
this.mutationObserver.observe(this.describedByEl, {
|
99
|
+
characterData: true,
|
100
|
+
childList: true,
|
101
|
+
subtree: true,
|
102
|
+
});
|
103
|
+
}
|
74
104
|
}
|
75
105
|
handleHostClick(event) {
|
76
106
|
if (this.disabled || this.loading) {
|
@@ -158,6 +188,9 @@ export class Button {
|
|
158
188
|
: `ic-button-with-tooltip-${this.buttonIdNum}`;
|
159
189
|
describedBy = `ic-tooltip-${buttonId}`;
|
160
190
|
}
|
191
|
+
else {
|
192
|
+
describedBy = this.describedById;
|
193
|
+
}
|
161
194
|
const ButtonContent = () => {
|
162
195
|
return (h(TagType, Object.assign({ class: "button", "aria-disabled": this.loading || this.disabled ? "true" : null, "aria-label": this.loading ? "Loading" : ariaLabel }, buttonAttrs, restInheritedAttributes, titleAttr, { onFocus: this.onFocus, onBlur: this.onBlur, ref: (el) => (this.buttonEl = el), id: buttonId, "aria-describedby": describedBy, part: "button" }), this.hasIconSlot() && !this.loading && (h("div", { class: "icon-container" }, h("slot", { name: "icon" }))), this.loading ? (h("div", { class: "loading-container" }, h("ic-loading-indicator", { type: "linear", appearance: this.variant === "primary" ||
|
163
196
|
this.variant === "destructive" ||
|
@@ -175,7 +208,7 @@ export class Button {
|
|
175
208
|
["dark"]: this.appearance === IcThemeForegroundEnum.Dark,
|
176
209
|
["light"]: this.appearance === IcThemeForegroundEnum.Light,
|
177
210
|
["full-width"]: this.fullWidth,
|
178
|
-
}, onClick: this.handleClick }, this.hasTooltip && (h("ic-tooltip", { class: { ["tooltip-disabled"]: this.disableTooltip }, ref: (el) => (this.tooltipEl = el), label: tooltipText, target: buttonId, placement: this.tooltipPlacement }, h(ButtonContent, null))), !this.hasTooltip && h(ButtonContent, null)));
|
211
|
+
}, onClick: this.handleClick }, this.hasTooltip && (h("ic-tooltip", { class: { ["tooltip-disabled"]: this.disableTooltip }, ref: (el) => (this.tooltipEl = el), label: tooltipText, target: buttonId, placement: this.tooltipPlacement }, h(ButtonContent, null))), !this.hasTooltip && h(ButtonContent, null), this.describedByContent && (h("span", { id: describedBy, class: "ic-button-describedby" }, this.describedByContent))));
|
179
212
|
}
|
180
213
|
static get is() { return "ic-button"; }
|
181
214
|
static get encapsulation() { return "shadow"; }
|
@@ -590,6 +623,11 @@ export class Button {
|
|
590
623
|
}
|
591
624
|
};
|
592
625
|
}
|
626
|
+
static get states() {
|
627
|
+
return {
|
628
|
+
"describedByContent": {}
|
629
|
+
};
|
630
|
+
}
|
593
631
|
static get events() {
|
594
632
|
return [{
|
595
633
|
"method": "icBlur",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-button.js","sourceRoot":"","sources":["../../../src/components/ic-button/ic-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Method,\n Prop,\n h,\n} from \"@stencil/core\";\n\nimport {\n getThemeFromContext,\n inheritAttributes,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcButtonSizes,\n IcButtonTypes,\n IcButtonVariants,\n IcButtonTooltipPlacement,\n} from \"./ic-button.types\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\nlet buttonIds = 0;\n\n/**\n * @slot icon - Content will be placed to the left of the button label.\n */\n@Component({\n tag: \"ic-button\",\n styleUrl: \"ic-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Button {\n private buttonEl: HTMLElement;\n private buttonIdNum = buttonIds++;\n private hasTooltip: boolean = false;\n private id: string;\n private inheritedAttributes: { [k: string]: unknown } = {};\n private tooltipEl: HTMLIcTooltipElement;\n\n @Element() el: HTMLIcButtonElement;\n\n /**\n * The appearance of the button, e.g. dark, light, or the default.\n */\n @Prop({ mutable: true }) appearance?: IcThemeForeground = \"default\";\n\n /**\n * If `true`, the button will be in disabled state.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * If `true`, the ic-tooltip which is shown for icon variant will be disabled. Title or aria-label must be set if this prop is not applied.\n */\n @Prop() disableTooltip?: boolean = false;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * The <form> element to associate the button with.\n */\n @Prop() form?: string;\n\n /**\n * The URL that processes the information submitted by the button. It overrides the action attribute of the button's form owner. Does nothing if there is no form owner.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the button's form owner.\n */\n @Prop() formtarget?: string;\n\n /**\n * If `true`, the button will fill the width of the container.\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * The URL that the link points to. This will render the button as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * If `true`, the button will be in loading state.\n */\n @Prop() loading?: boolean = false;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The size of the button to be displayed.\n */\n @Prop() size?: IcButtonSizes = \"default\";\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * The position of the tooltip in relation to the button.\n */\n @Prop() tooltipPlacement?: IcButtonTooltipPlacement = \"bottom\";\n\n /**\n * The type of the button.\n */\n @Prop() type?: IcButtonTypes = \"button\";\n\n /**\n * The variant of the button to be displayed.\n */\n @Prop() variant?: IcButtonVariants = \"primary\";\n\n /**\n * Emitted when button has blur\n */\n @Event() icBlur!: EventEmitter<void>;\n\n /**\n * Emitted when button has focus\n */\n @Event() icFocus!: EventEmitter<void>;\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, [\n ...IC_INHERITED_ARIA,\n \"aria-expanded\",\n \"title\",\n ]);\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.el.setAttribute(\"exportparts\", \"button\");\n\n const id = this.el.id;\n this.id = id !== undefined ? id : null;\n this.hasTooltip = this.variant === \"icon\" && this.disableTooltip === false;\n }\n\n componentDidLoad(): void {\n this.updateTheme();\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (this.disabled || this.loading) {\n event.stopImmediatePropagation();\n }\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.updateTheme(theme.mode);\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.buttonEl) {\n this.buttonEl.focus();\n }\n }\n\n /**\n * @internal Updates tooltip/aria-label text - needed as can't watch an ARIA attribute change.\n */\n @Method()\n async updateAriaLabel(newValue: string): Promise<void> {\n if (this.hasTooltip) {\n this.tooltipEl.label = newValue;\n this.buttonEl.setAttribute(\"aria-label\", newValue);\n }\n }\n\n private hasIconSlot(): boolean {\n const iconEl = this.el.querySelector(`[slot=\"icon\"]`);\n return iconEl !== null;\n }\n\n private handleHiddenFormButtonClick(form: HTMLFormElement): void {\n const hiddenFormButton = document.createElement(\"button\");\n\n hiddenFormButton.setAttribute(\"type\", this.el.type);\n hiddenFormButton.style.display = \"none\";\n\n form.appendChild(hiddenFormButton);\n\n hiddenFormButton.click();\n hiddenFormButton.remove();\n }\n\n private handleClick = (): void => {\n if (\n (this.el.type === \"submit\" || this.el.type === \"reset\") &&\n !!this.el.closest(\"FORM\")\n ) {\n this.handleHiddenFormButtonClick(this.el.closest(\"FORM\"));\n }\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private updateTheme(newTheme: IcThemeForeground = null): void {\n const foregroundColor = getThemeFromContext(this.el, newTheme || null);\n\n if (foregroundColor !== IcThemeForegroundEnum.Default) {\n this.appearance = foregroundColor;\n }\n }\n\n render() {\n const TagType = (this.href && \"a\") || \"button\";\n const {\n title,\n \"aria-label\": ariaLabel,\n ...restInheritedAttributes\n } = this.inheritedAttributes;\n const buttonAttrs =\n TagType === \"button\"\n ? {\n type: this.type,\n disabled: this.disabled,\n form: this.form,\n formaction: this.formaction,\n formenctype: this.formenctype,\n formmethod: this.formmethod,\n formnovalidate: this.formnovalidate,\n formtarget: this.formtarget,\n }\n : {\n download: this.download !== false ? this.download : null,\n href: this.href,\n rel: this.rel,\n target: this.target,\n referrerpolicy: this.referrerpolicy,\n hreflang: this.hreflang,\n };\n const newTitle = title && (title as string);\n const titleAttr = this.hasTooltip ? {} : { title: newTitle };\n let tooltipText = \"\";\n if (this.hasTooltip) {\n if (newTitle !== undefined) {\n tooltipText = newTitle;\n } else if (ariaLabel !== null) {\n tooltipText = ariaLabel as string;\n }\n }\n\n let describedBy: string = null;\n let buttonId: string = null;\n if (this.hasTooltip) {\n buttonId =\n this.id !== null\n ? `ic-button-with-tooltip-${this.id}`\n : `ic-button-with-tooltip-${this.buttonIdNum}`;\n describedBy = `ic-tooltip-${buttonId}`;\n }\n\n const ButtonContent = () => {\n return (\n <TagType\n class=\"button\"\n aria-disabled={this.loading || this.disabled ? \"true\" : null}\n aria-label={this.loading ? \"Loading\" : ariaLabel}\n {...buttonAttrs}\n {...restInheritedAttributes}\n {...titleAttr}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n ref={(el) => (this.buttonEl = el)}\n id={buttonId}\n aria-describedby={describedBy}\n part=\"button\"\n >\n {this.hasIconSlot() && !this.loading && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n {this.loading ? (\n <div class=\"loading-container\">\n <ic-loading-indicator\n type=\"linear\"\n appearance={\n this.variant === \"primary\" ||\n this.variant === \"destructive\" ||\n this.appearance === IcThemeForegroundEnum.Dark ||\n this.appearance === IcThemeForegroundEnum.Light\n ? \"light\"\n : \"dark\"\n }\n ></ic-loading-indicator>\n </div>\n ) : (\n <slot />\n )}\n </TagType>\n );\n };\n\n return (\n <Host\n class={{\n [\"disabled\"]: this.disabled && !this.loading,\n [`button-variant-${this.variant}`]: true,\n [`button-size-${this.size}`]: true,\n [\"loading\"]: this.loading,\n [\"loading-with-icon\"]: this.loading && this.hasIconSlot(),\n [\"dark\"]: this.appearance === IcThemeForegroundEnum.Dark,\n [\"light\"]: this.appearance === IcThemeForegroundEnum.Light,\n [\"full-width\"]: this.fullWidth,\n }}\n onClick={this.handleClick}\n >\n {this.hasTooltip && (\n <ic-tooltip\n class={{ [\"tooltip-disabled\"]: this.disableTooltip }}\n ref={(el) => (this.tooltipEl = el)}\n label={tooltipText}\n target={buttonId}\n placement={this.tooltipPlacement}\n >\n <ButtonContent />\n </ic-tooltip>\n )}\n\n {!this.hasTooltip && <ButtonContent />}\n </Host>\n );\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"ic-button.js","sourceRoot":"","sources":["../../../src/components/ic-button/ic-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Method,\n Prop,\n State,\n h,\n} from \"@stencil/core\";\n\nimport {\n getThemeFromContext,\n inheritAttributes,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcButtonSizes,\n IcButtonTypes,\n IcButtonVariants,\n IcButtonTooltipPlacement,\n} from \"./ic-button.types\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\nlet buttonIds = 0;\n\n/**\n * @slot icon - Content will be placed to the left of the button label.\n */\n@Component({\n tag: \"ic-button\",\n styleUrl: \"ic-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Button {\n private buttonEl: HTMLElement;\n private buttonIdNum = buttonIds++;\n private hasTooltip: boolean = false;\n private id: string;\n private inheritedAttributes: { [k: string]: unknown } = {};\n private tooltipEl: HTMLIcTooltipElement;\n private describedByEl: HTMLElement = null;\n private describedById: string = null;\n private mutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcButtonElement;\n\n @State() describedByContent: string = null;\n\n /**\n * The appearance of the button, e.g. dark, light, or the default.\n */\n @Prop({ mutable: true }) appearance?: IcThemeForeground = \"default\";\n\n /**\n * If `true`, the button will be in disabled state.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * If `true`, the ic-tooltip which is shown for icon variant will be disabled. Title or aria-label must be set if this prop is not applied.\n */\n @Prop() disableTooltip?: boolean = false;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * The <form> element to associate the button with.\n */\n @Prop() form?: string;\n\n /**\n * The URL that processes the information submitted by the button. It overrides the action attribute of the button's form owner. Does nothing if there is no form owner.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the button's form owner.\n */\n @Prop() formtarget?: string;\n\n /**\n * If `true`, the button will fill the width of the container.\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * The URL that the link points to. This will render the button as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * If `true`, the button will be in loading state.\n */\n @Prop() loading?: boolean = false;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The size of the button to be displayed.\n */\n @Prop() size?: IcButtonSizes = \"default\";\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * The position of the tooltip in relation to the button.\n */\n @Prop() tooltipPlacement?: IcButtonTooltipPlacement = \"bottom\";\n\n /**\n * The type of the button.\n */\n @Prop() type?: IcButtonTypes = \"button\";\n\n /**\n * The variant of the button to be displayed.\n */\n @Prop() variant?: IcButtonVariants = \"primary\";\n\n /**\n * Emitted when button has blur\n */\n @Event() icBlur!: EventEmitter<void>;\n\n /**\n * Emitted when button has focus\n */\n @Event() icFocus!: EventEmitter<void>;\n\n disconnectedCallback(): void {\n if (this.mutationObserver !== null && this.mutationObserver !== undefined) {\n this.mutationObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, [\n ...IC_INHERITED_ARIA,\n \"aria-expanded\",\n \"title\",\n ]);\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.el.setAttribute(\"exportparts\", \"button\");\n\n const id = this.el.id;\n this.id = id !== undefined ? id : null;\n this.hasTooltip = this.variant === \"icon\" && this.disableTooltip === false;\n\n if (!this.hasTooltip) {\n const describedById = this.inheritedAttributes[\n \"aria-describedby\"\n ] as string;\n if (describedById !== undefined) {\n this.describedById = describedById;\n const el = this.el.parentElement.querySelector(\n `#${describedById}`\n ) as HTMLElement;\n this.describedByContent = el.innerText;\n this.describedByEl = el;\n }\n }\n }\n\n componentDidLoad(): void {\n this.updateTheme();\n\n if (this.describedById) {\n this.mutationObserver = new MutationObserver(this.mutationCallback);\n this.mutationObserver.observe(this.describedByEl, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n }\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (this.disabled || this.loading) {\n event.stopImmediatePropagation();\n }\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.updateTheme(theme.mode);\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.buttonEl) {\n this.buttonEl.focus();\n }\n }\n\n /**\n * @internal Updates tooltip/aria-label text - needed as can't watch an ARIA attribute change.\n */\n @Method()\n async updateAriaLabel(newValue: string): Promise<void> {\n if (this.hasTooltip) {\n this.tooltipEl.label = newValue;\n this.buttonEl.setAttribute(\"aria-label\", newValue);\n }\n }\n\n private hasIconSlot(): boolean {\n const iconEl = this.el.querySelector(`[slot=\"icon\"]`);\n return iconEl !== null;\n }\n\n private handleHiddenFormButtonClick(form: HTMLFormElement): void {\n const hiddenFormButton = document.createElement(\"button\");\n\n hiddenFormButton.setAttribute(\"type\", this.el.type);\n hiddenFormButton.style.display = \"none\";\n\n form.appendChild(hiddenFormButton);\n\n hiddenFormButton.click();\n hiddenFormButton.remove();\n }\n\n private handleClick = (): void => {\n if (\n (this.el.type === \"submit\" || this.el.type === \"reset\") &&\n !!this.el.closest(\"FORM\")\n ) {\n this.handleHiddenFormButtonClick(this.el.closest(\"FORM\"));\n }\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private updateTheme(newTheme: IcThemeForeground = null): void {\n const foregroundColor = getThemeFromContext(this.el, newTheme || null);\n\n if (foregroundColor !== IcThemeForegroundEnum.Default) {\n this.appearance = foregroundColor;\n }\n }\n\n // triggered when text content of sibling element in light DOM changes\n private mutationCallback = (): void => {\n this.describedByContent = this.describedByEl.innerText;\n };\n\n render() {\n const TagType = (this.href && \"a\") || \"button\";\n const {\n title,\n \"aria-label\": ariaLabel,\n ...restInheritedAttributes\n } = this.inheritedAttributes;\n const buttonAttrs =\n TagType === \"button\"\n ? {\n type: this.type,\n disabled: this.disabled,\n form: this.form,\n formaction: this.formaction,\n formenctype: this.formenctype,\n formmethod: this.formmethod,\n formnovalidate: this.formnovalidate,\n formtarget: this.formtarget,\n }\n : {\n download: this.download !== false ? this.download : null,\n href: this.href,\n rel: this.rel,\n target: this.target,\n referrerpolicy: this.referrerpolicy,\n hreflang: this.hreflang,\n };\n const newTitle = title && (title as string);\n const titleAttr = this.hasTooltip ? {} : { title: newTitle };\n let tooltipText = \"\";\n if (this.hasTooltip) {\n if (newTitle !== undefined) {\n tooltipText = newTitle;\n } else if (ariaLabel !== null) {\n tooltipText = ariaLabel as string;\n }\n }\n\n let describedBy: string = null;\n let buttonId: string = null;\n if (this.hasTooltip) {\n buttonId =\n this.id !== null\n ? `ic-button-with-tooltip-${this.id}`\n : `ic-button-with-tooltip-${this.buttonIdNum}`;\n describedBy = `ic-tooltip-${buttonId}`;\n } else {\n describedBy = this.describedById;\n }\n\n const ButtonContent = () => {\n return (\n <TagType\n class=\"button\"\n aria-disabled={this.loading || this.disabled ? \"true\" : null}\n aria-label={this.loading ? \"Loading\" : ariaLabel}\n {...buttonAttrs}\n {...restInheritedAttributes}\n {...titleAttr}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n ref={(el) => (this.buttonEl = el)}\n id={buttonId}\n aria-describedby={describedBy}\n part=\"button\"\n >\n {this.hasIconSlot() && !this.loading && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n {this.loading ? (\n <div class=\"loading-container\">\n <ic-loading-indicator\n type=\"linear\"\n appearance={\n this.variant === \"primary\" ||\n this.variant === \"destructive\" ||\n this.appearance === IcThemeForegroundEnum.Dark ||\n this.appearance === IcThemeForegroundEnum.Light\n ? \"light\"\n : \"dark\"\n }\n ></ic-loading-indicator>\n </div>\n ) : (\n <slot />\n )}\n </TagType>\n );\n };\n\n return (\n <Host\n class={{\n [\"disabled\"]: this.disabled && !this.loading,\n [`button-variant-${this.variant}`]: true,\n [`button-size-${this.size}`]: true,\n [\"loading\"]: this.loading,\n [\"loading-with-icon\"]: this.loading && this.hasIconSlot(),\n [\"dark\"]: this.appearance === IcThemeForegroundEnum.Dark,\n [\"light\"]: this.appearance === IcThemeForegroundEnum.Light,\n [\"full-width\"]: this.fullWidth,\n }}\n onClick={this.handleClick}\n >\n {this.hasTooltip && (\n <ic-tooltip\n class={{ [\"tooltip-disabled\"]: this.disableTooltip }}\n ref={(el) => (this.tooltipEl = el)}\n label={tooltipText}\n target={buttonId}\n placement={this.tooltipPlacement}\n >\n <ButtonContent />\n </ic-tooltip>\n )}\n\n {!this.hasTooltip && <ButtonContent />}\n {this.describedByContent && (\n <span id={describedBy} class=\"ic-button-describedby\">\n {this.describedByContent}\n </span>\n )}\n </Host>\n );\n }\n}\n"]}
|
@@ -169,5 +169,30 @@ describe("ic-button component", () => {
|
|
169
169
|
await page.waitForChanges();
|
170
170
|
expect(spy).toHaveReceivedEvent();
|
171
171
|
});
|
172
|
+
it("should test aria-describedby being updated", async () => {
|
173
|
+
const page = await newE2EPage();
|
174
|
+
await page.setContent(`
|
175
|
+
<script>
|
176
|
+
function btnClick(){
|
177
|
+
var descEl = document.querySelector("#button-description");
|
178
|
+
descEl.innerText = "See, I told you it was amazing!";
|
179
|
+
}
|
180
|
+
</script>
|
181
|
+
<div>
|
182
|
+
<span id="button-description">This button does something amazing</span>
|
183
|
+
<br />
|
184
|
+
<ic-button variant="primary" onclick="btnClick()" aria-describedby="button-description"
|
185
|
+
>Button</ic-button
|
186
|
+
>
|
187
|
+
</div>
|
188
|
+
`);
|
189
|
+
const button = await page.find("ic-button");
|
190
|
+
let hiddenDescribedBy = await page.find("ic-button >>> #button-description");
|
191
|
+
expect(hiddenDescribedBy.innerText).toBe("This button does something amazing");
|
192
|
+
await button.click();
|
193
|
+
await page.waitForChanges();
|
194
|
+
hiddenDescribedBy = await page.find("ic-button >>> #button-description");
|
195
|
+
expect(hiddenDescribedBy.innerText).toBe("See, I told you it was amazing!");
|
196
|
+
});
|
172
197
|
});
|
173
198
|
//# sourceMappingURL=ic-button.e2e.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-button.e2e.js","sourceRoot":"","sources":["../../../../../src/components/ic-button/test/basic/ic-button.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\n\ndescribe(\"ic-button component\", () => {\n it(\"Should have the correct text\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-button>Button</ic-button>`);\n await page.waitForChanges();\n\n const button = await page.find(\"ic-button\");\n const text = button.innerText;\n\n expect(text).toBe(\"Button\");\n });\n\n it(\"Should have loading bar when loading\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-button loading>Button</ic-button>`);\n await page.waitForChanges();\n\n const loadingBar = await page.find(\"ic-button >>> ic-loading-indicator\");\n\n expect(loadingBar).not.toBeNull();\n });\n\n it(\"Should be clickable with onclick\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <ic-button id='ic-button' onclick='change()'>Button</ic-button>\n <script>\n function change() {\n document.getElementById(\"ic-button\").innerText = 'Test';\n }\n </script>\n `\n );\n const button = await page.find(\"#ic-button\");\n\n await button.click();\n\n expect(button.innerText).toBe(\"Test\");\n });\n\n it(\"Should not be clickable when disabled\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <ic-button id='ic-button' onclick='change()' disabled>Button</ic-button>\n <script>\n function change() {\n document.getElementById(\"ic-button\").innerText = 'Test';\n }\n </script>\n `\n );\n const button = await page.find(\"#ic-button\");\n\n await button.click();\n\n expect(button.innerText).toBe(\"Button\");\n });\n\n it(\"Should not be clickable when loading\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <ic-button id='ic-button' onclick='change()' loading>Button</ic-button>\n <script>\n function change() {\n document.getElementById(\"ic-button\").innerText = 'Test';\n }\n </script>\n `\n );\n const button = await page.find(\"#ic-button\");\n\n await button.click();\n\n expect(button.innerText).toBe(\"Button\");\n });\n\n it(\"should pass onclick method\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <ic-button id='ic-button' onclick='updateText()'>Button</ic-button>\n <p id=\"text\"></p>\n <script>\n function updateText() {\n document.getElementById('text').innerText = \"Demo\"\n }\n </script>\n `\n );\n\n const p = await page.find(\"#text\");\n const button = await page.find(\"#ic-button\");\n\n await button.click();\n\n expect(p.innerText).toBe(\"Demo\");\n });\n\n it(\"should clear text field value when reset button inside form tag\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <form>\n <input type=\"text\" id=\"name\" />\n <ic-button id='ic-button' type=\"reset\">Reset</ic-button>\n </form>\n `\n );\n\n const textfield = await page.find(\"#name\");\n const button = await page.find(\"#ic-button\");\n\n await textfield.press(\"f\");\n await textfield.press(\"o\");\n await textfield.press(\"o\");\n\n expect(await textfield.getProperty(\"value\")).toBe(\"foo\");\n\n await button.click();\n\n expect(await textfield.getProperty(\"value\")).toBe(\"\");\n });\n\n it(\"should not clear text field value if reset button outside of form tag\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <div>\n <form>\n <input type=\"text\" id=\"name\" />\n </form>\n <ic-button id='ic-button' type=\"reset\">Reset</ic-button>\n </div>\n `\n );\n\n const textfield = await page.find(\"#name\");\n const button = await page.find(\"#ic-button\");\n\n await textfield.press(\"f\");\n await textfield.press(\"o\");\n await textfield.press(\"o\");\n\n await button.click();\n\n expect(await textfield.getProperty(\"value\")).toBe(\"foo\");\n });\n\n it(\"should submit form on submit button click if submit button inside form tag\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <form>\n <input type=\"text\" id=\"name\" />\n <ic-button id='ic-button' type=\"submit\">Submit</ic-button>\n </form>\n <p id=\"text\"></p>\n <script>\n document.addEventListener('submit', (ev) => {\n ev.preventDefault();\n document.getElementById('text').innerText = 'submitted';\n })\n </script>\n `\n );\n\n const button = await page.find(\"#ic-button\");\n const p = await page.find(\"#text\");\n\n await button.click();\n\n expect(p.innerText).toBe(\"submitted\");\n });\n\n it(\"should not submit form on submit button click outside of form tag\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <form>\n <input type=\"text\" id=\"name\" />\n </form>\n <ic-button id='ic-button' type=\"submit\">Submit</ic-button>\n <p id=\"text\">idle</p>\n <script>\n document.addEventListener('submit', (ev) => {\n ev.preventDefault();\n document.getElementById('text').innerText = 'submitted';\n })\n </script>\n `\n );\n\n const button = await page.find(\"#ic-button\");\n const p = await page.find(\"#text\");\n\n await button.click();\n\n expect(p.innerText).toBe(\"idle\");\n });\n\n it(\"should emit icFocus on focus event\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-button>Button</ic-button>`);\n\n const button = await page.find(\"ic-button\");\n const spy = await page.spyOnEvent(\"icFocus\");\n\n await button.callMethod(\"setFocus\");\n await page.waitForChanges();\n\n expect(spy).toHaveReceivedEvent();\n });\n\n it(\"should emit icBlur on blur event\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `<ic-button>Button</ic-button>\n <button id=\"secondary-button\">Secondary</button>`\n );\n\n const button = await page.find(\"ic-button\");\n const secButton = await page.find(\"#secondary-button\");\n const spy = await page.spyOnEvent(\"icBlur\");\n\n await button.callMethod(\"setFocus\");\n await secButton.click();\n await page.waitForChanges();\n\n expect(spy).toHaveReceivedEvent();\n });\n});\n"]}
|
1
|
+
{"version":3,"file":"ic-button.e2e.js","sourceRoot":"","sources":["../../../../../src/components/ic-button/test/basic/ic-button.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\n\ndescribe(\"ic-button component\", () => {\n it(\"Should have the correct text\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-button>Button</ic-button>`);\n await page.waitForChanges();\n\n const button = await page.find(\"ic-button\");\n const text = button.innerText;\n\n expect(text).toBe(\"Button\");\n });\n\n it(\"Should have loading bar when loading\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-button loading>Button</ic-button>`);\n await page.waitForChanges();\n\n const loadingBar = await page.find(\"ic-button >>> ic-loading-indicator\");\n\n expect(loadingBar).not.toBeNull();\n });\n\n it(\"Should be clickable with onclick\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <ic-button id='ic-button' onclick='change()'>Button</ic-button>\n <script>\n function change() {\n document.getElementById(\"ic-button\").innerText = 'Test';\n }\n </script>\n `\n );\n const button = await page.find(\"#ic-button\");\n\n await button.click();\n\n expect(button.innerText).toBe(\"Test\");\n });\n\n it(\"Should not be clickable when disabled\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <ic-button id='ic-button' onclick='change()' disabled>Button</ic-button>\n <script>\n function change() {\n document.getElementById(\"ic-button\").innerText = 'Test';\n }\n </script>\n `\n );\n const button = await page.find(\"#ic-button\");\n\n await button.click();\n\n expect(button.innerText).toBe(\"Button\");\n });\n\n it(\"Should not be clickable when loading\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <ic-button id='ic-button' onclick='change()' loading>Button</ic-button>\n <script>\n function change() {\n document.getElementById(\"ic-button\").innerText = 'Test';\n }\n </script>\n `\n );\n const button = await page.find(\"#ic-button\");\n\n await button.click();\n\n expect(button.innerText).toBe(\"Button\");\n });\n\n it(\"should pass onclick method\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <ic-button id='ic-button' onclick='updateText()'>Button</ic-button>\n <p id=\"text\"></p>\n <script>\n function updateText() {\n document.getElementById('text').innerText = \"Demo\"\n }\n </script>\n `\n );\n\n const p = await page.find(\"#text\");\n const button = await page.find(\"#ic-button\");\n\n await button.click();\n\n expect(p.innerText).toBe(\"Demo\");\n });\n\n it(\"should clear text field value when reset button inside form tag\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <form>\n <input type=\"text\" id=\"name\" />\n <ic-button id='ic-button' type=\"reset\">Reset</ic-button>\n </form>\n `\n );\n\n const textfield = await page.find(\"#name\");\n const button = await page.find(\"#ic-button\");\n\n await textfield.press(\"f\");\n await textfield.press(\"o\");\n await textfield.press(\"o\");\n\n expect(await textfield.getProperty(\"value\")).toBe(\"foo\");\n\n await button.click();\n\n expect(await textfield.getProperty(\"value\")).toBe(\"\");\n });\n\n it(\"should not clear text field value if reset button outside of form tag\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <div>\n <form>\n <input type=\"text\" id=\"name\" />\n </form>\n <ic-button id='ic-button' type=\"reset\">Reset</ic-button>\n </div>\n `\n );\n\n const textfield = await page.find(\"#name\");\n const button = await page.find(\"#ic-button\");\n\n await textfield.press(\"f\");\n await textfield.press(\"o\");\n await textfield.press(\"o\");\n\n await button.click();\n\n expect(await textfield.getProperty(\"value\")).toBe(\"foo\");\n });\n\n it(\"should submit form on submit button click if submit button inside form tag\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <form>\n <input type=\"text\" id=\"name\" />\n <ic-button id='ic-button' type=\"submit\">Submit</ic-button>\n </form>\n <p id=\"text\"></p>\n <script>\n document.addEventListener('submit', (ev) => {\n ev.preventDefault();\n document.getElementById('text').innerText = 'submitted';\n })\n </script>\n `\n );\n\n const button = await page.find(\"#ic-button\");\n const p = await page.find(\"#text\");\n\n await button.click();\n\n expect(p.innerText).toBe(\"submitted\");\n });\n\n it(\"should not submit form on submit button click outside of form tag\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <form>\n <input type=\"text\" id=\"name\" />\n </form>\n <ic-button id='ic-button' type=\"submit\">Submit</ic-button>\n <p id=\"text\">idle</p>\n <script>\n document.addEventListener('submit', (ev) => {\n ev.preventDefault();\n document.getElementById('text').innerText = 'submitted';\n })\n </script>\n `\n );\n\n const button = await page.find(\"#ic-button\");\n const p = await page.find(\"#text\");\n\n await button.click();\n\n expect(p.innerText).toBe(\"idle\");\n });\n\n it(\"should emit icFocus on focus event\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-button>Button</ic-button>`);\n\n const button = await page.find(\"ic-button\");\n const spy = await page.spyOnEvent(\"icFocus\");\n\n await button.callMethod(\"setFocus\");\n await page.waitForChanges();\n\n expect(spy).toHaveReceivedEvent();\n });\n\n it(\"should emit icBlur on blur event\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `<ic-button>Button</ic-button>\n <button id=\"secondary-button\">Secondary</button>`\n );\n\n const button = await page.find(\"ic-button\");\n const secButton = await page.find(\"#secondary-button\");\n const spy = await page.spyOnEvent(\"icBlur\");\n\n await button.callMethod(\"setFocus\");\n await secButton.click();\n await page.waitForChanges();\n\n expect(spy).toHaveReceivedEvent();\n });\n\n it(\"should test aria-describedby being updated\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function btnClick(){\n var descEl = document.querySelector(\"#button-description\");\n descEl.innerText = \"See, I told you it was amazing!\";\n }\n </script>\n <div>\n <span id=\"button-description\">This button does something amazing</span>\n <br />\n <ic-button variant=\"primary\" onclick=\"btnClick()\" aria-describedby=\"button-description\"\n >Button</ic-button\n >\n </div>\n `\n );\n\n const button = await page.find(\"ic-button\");\n let hiddenDescribedBy = await page.find(\n \"ic-button >>> #button-description\"\n );\n expect(hiddenDescribedBy.innerText).toBe(\n \"This button does something amazing\"\n );\n\n await button.click();\n await page.waitForChanges();\n\n hiddenDescribedBy = await page.find(\"ic-button >>> #button-description\");\n expect(hiddenDescribedBy.innerText).toBe(\"See, I told you it was amazing!\");\n });\n});\n"]}
|
@@ -215,6 +215,32 @@ describe("button component", () => {
|
|
215
215
|
btn.click();
|
216
216
|
expect(page.root).toMatchSnapshot();
|
217
217
|
});
|
218
|
+
it("should test aria-describedby is set", async () => {
|
219
|
+
const page = await newSpecPage({
|
220
|
+
components: [Button],
|
221
|
+
html: `<span id="button-description">
|
222
|
+
This is the button description
|
223
|
+
</span>
|
224
|
+
<ic-button id='ic-button' aria-describedby="button-description">Button</ic-button>
|
225
|
+
`,
|
226
|
+
});
|
227
|
+
expect(page.root).toMatchSnapshot();
|
228
|
+
});
|
229
|
+
it("should test aria-describedby is updated", async () => {
|
230
|
+
const page = await newSpecPage({
|
231
|
+
components: [Button],
|
232
|
+
html: `<span id="button-description">
|
233
|
+
This is the button description
|
234
|
+
</span>
|
235
|
+
<ic-button id='ic-button' aria-describedby="button-description">Button</ic-button>
|
236
|
+
`,
|
237
|
+
});
|
238
|
+
document.querySelector("#button-description").innerText =
|
239
|
+
"This is the new description";
|
240
|
+
page.rootInstance.mutationCallback();
|
241
|
+
await page.waitForChanges();
|
242
|
+
expect(page.root).toMatchSnapshot();
|
243
|
+
});
|
218
244
|
it("should test blur handler", async () => {
|
219
245
|
const page = await newSpecPage({
|
220
246
|
components: [Button],
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-button.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-button/test/basic/ic-button.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { Button } from \"../../ic-button\";\nimport { newSpecPage } from \"@stencil/core/testing\";\nimport * as helpers from \"../../../../utils/helpers\";\n\nbeforeAll(() => {\n jest.spyOn(console, \"warn\").mockImplementation(jest.fn());\n});\n\n//mocked as getThemeFromContext is always default when run in test context\nconst mockGetThemeFromContext = () => {\n const func = jest.fn(() => {\n return \"light\";\n });\n\n Object.defineProperty(helpers, \"getThemeFromContext\", {\n value: func,\n });\n};\n\ndescribe(\"button component\", () => {\n it(\"should correctly render with text\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button>Button</ic-button>\",\n supportsShadowDom: true,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should correctly render with custom text\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button>Click Me</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML for secondary variant\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='secondary'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML for tertiary variant\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='tertiary'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML for destructive variant\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='destructive'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML with Icon\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button>\n <svg slot='icon' xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n <path d=\"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\"/>\n </svg>\n Button\n </ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading>Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading - secondary\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading variant=\"secondary\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading - tertiary\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading variant=\"tertiary\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading - destructive\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading variant=\"destructive\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading - appearance light\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading appearance=\"light\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"render with correct button type when defined\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button type='reset'>Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it('should render with \"a\" tag when href is passed', async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button href = '#'>Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it('should render with defined \"a\" tag props', async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button href = '#' download rel=\"nofollow\" target=\"_blank\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render icon variant with a tooltip\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' id='test-button'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render icon variant with a tooltip based on title\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' id='test-button' title='Tooltip text'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render icon variant with a tooltip based on aria-label\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' id='test-button' aria-label='Tooltip text' tooltip-placement='top'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should disable tooltip when prop set\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' aria-label='Tooltip text' id='test-button' disable-tooltip>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should update when method called\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' aria-label='Tooltip text' id='test-button'>Button</ic-button>\",\n });\n\n expect(page.root).toMatchSnapshot();\n\n await page.root.updateAriaLabel(\"New tooltip text\");\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should stop immediate propagation of a click event when disabled\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button id='test-button' disabled=true onclick='alert('test')'>Button</ic-button>\",\n });\n\n jest.spyOn(window, \"alert\").mockImplementation();\n\n const element = document.getElementById(\"test-button\");\n\n element.click();\n\n await page.waitForChanges();\n\n expect(window.alert).not.toHaveBeenCalled;\n });\n\n it(\"should call 'setFocus' when button is focussed\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button id='ic-button'>Button</ic-button>\",\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should test theme change\", async () => {\n mockGetThemeFromContext();\n\n const page = await newSpecPage({\n components: [Button],\n html: `<ic-button id='ic-button'>Button</ic-button>`,\n });\n\n await page.rootInstance.themeChangeHandler({\n detail: { mode: \"light\" },\n });\n await page.waitForChanges();\n\n expect(page.rootInstance.appearance).toEqual(\"light\");\n });\n\n it(\"should test button as submit button on form\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `<form id=\"new-form\"><form><ic-button id='ic-button' type=\"submit\" form=\"new-form\">Button</ic-button>`,\n });\n\n const btn = document.getElementById(\"ic-button\");\n btn.click();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should test blur handler\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `<ic-button id='ic-button'>Button</ic-button>`,\n });\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icBlur\", eventSpy);\n\n await page.rootInstance.onBlur();\n await page.waitForChanges();\n expect(eventSpy).toHaveBeenCalled();\n });\n});\n"]}
|
1
|
+
{"version":3,"file":"ic-button.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-button/test/basic/ic-button.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { Button } from \"../../ic-button\";\nimport { newSpecPage } from \"@stencil/core/testing\";\nimport * as helpers from \"../../../../utils/helpers\";\n\nbeforeAll(() => {\n jest.spyOn(console, \"warn\").mockImplementation(jest.fn());\n});\n\n//mocked as getThemeFromContext is always default when run in test context\nconst mockGetThemeFromContext = () => {\n const func = jest.fn(() => {\n return \"light\";\n });\n\n Object.defineProperty(helpers, \"getThemeFromContext\", {\n value: func,\n });\n};\n\ndescribe(\"button component\", () => {\n it(\"should correctly render with text\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button>Button</ic-button>\",\n supportsShadowDom: true,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should correctly render with custom text\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button>Click Me</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML for secondary variant\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='secondary'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML for tertiary variant\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='tertiary'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML for destructive variant\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='destructive'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML with Icon\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button>\n <svg slot='icon' xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n <path d=\"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\"/>\n </svg>\n Button\n </ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading>Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading - secondary\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading variant=\"secondary\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading - tertiary\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading variant=\"tertiary\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading - destructive\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading variant=\"destructive\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading - appearance light\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading appearance=\"light\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"render with correct button type when defined\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button type='reset'>Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it('should render with \"a\" tag when href is passed', async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button href = '#'>Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it('should render with defined \"a\" tag props', async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button href = '#' download rel=\"nofollow\" target=\"_blank\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render icon variant with a tooltip\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' id='test-button'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render icon variant with a tooltip based on title\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' id='test-button' title='Tooltip text'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render icon variant with a tooltip based on aria-label\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' id='test-button' aria-label='Tooltip text' tooltip-placement='top'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should disable tooltip when prop set\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' aria-label='Tooltip text' id='test-button' disable-tooltip>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should update when method called\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' aria-label='Tooltip text' id='test-button'>Button</ic-button>\",\n });\n\n expect(page.root).toMatchSnapshot();\n\n await page.root.updateAriaLabel(\"New tooltip text\");\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should stop immediate propagation of a click event when disabled\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button id='test-button' disabled=true onclick='alert('test')'>Button</ic-button>\",\n });\n\n jest.spyOn(window, \"alert\").mockImplementation();\n\n const element = document.getElementById(\"test-button\");\n\n element.click();\n\n await page.waitForChanges();\n\n expect(window.alert).not.toHaveBeenCalled;\n });\n\n it(\"should call 'setFocus' when button is focussed\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button id='ic-button'>Button</ic-button>\",\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should test theme change\", async () => {\n mockGetThemeFromContext();\n\n const page = await newSpecPage({\n components: [Button],\n html: `<ic-button id='ic-button'>Button</ic-button>`,\n });\n\n await page.rootInstance.themeChangeHandler({\n detail: { mode: \"light\" },\n });\n await page.waitForChanges();\n\n expect(page.rootInstance.appearance).toEqual(\"light\");\n });\n\n it(\"should test button as submit button on form\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `<form id=\"new-form\"><form><ic-button id='ic-button' type=\"submit\" form=\"new-form\">Button</ic-button>`,\n });\n\n const btn = document.getElementById(\"ic-button\");\n btn.click();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should test aria-describedby is set\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `<span id=\"button-description\">\n This is the button description\n </span>\n <ic-button id='ic-button' aria-describedby=\"button-description\">Button</ic-button>\n `,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should test aria-describedby is updated\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `<span id=\"button-description\">\n This is the button description\n </span>\n <ic-button id='ic-button' aria-describedby=\"button-description\">Button</ic-button>\n `,\n });\n\n (document.querySelector(\"#button-description\") as HTMLElement).innerText =\n \"This is the new description\";\n page.rootInstance.mutationCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should test blur handler\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `<ic-button id='ic-button'>Button</ic-button>`,\n });\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icBlur\", eventSpy);\n\n await page.rootInstance.onBlur();\n await page.waitForChanges();\n expect(eventSpy).toHaveBeenCalled();\n });\n});\n"]}
|