@ukic/web-components 2.7.0 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/core.cjs.js +3 -3
- package/dist/cjs/core.cjs.js.map +1 -1
- package/dist/cjs/{helpers-0d63359f.js → helpers-3f91f63a.js} +292 -292
- package/dist/cjs/helpers-3f91f63a.js.map +1 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js +71 -71
- package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-accordion.cjs.entry.js +99 -99
- package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +58 -58
- package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +121 -121
- package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js +146 -146
- package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +172 -166
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +55 -53
- package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +616 -607
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card.cjs.entry.js +106 -106
- package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +60 -60
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +95 -95
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +67 -65
- package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-classification-banner.cjs.entry.js +23 -23
- package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-entity.cjs.entry.js +18 -18
- package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +75 -75
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +339 -318
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +16 -16
- package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +24 -24
- package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +55 -55
- package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +50 -50
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +78 -78
- package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +62 -62
- package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +151 -151
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +682 -673
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +63 -63
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-link.cjs.entry.js +55 -55
- package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +12 -12
- package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js +100 -100
- package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +79 -76
- package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +284 -284
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +153 -153
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +106 -103
- package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +93 -93
- package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination-item.cjs.entry.js +42 -42
- package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination.cjs.entry.js +196 -195
- package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +229 -260
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +156 -156
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +128 -128
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +475 -475
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-section-container.cjs.entry.js +15 -15
- package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-select.cjs.entry.js +640 -639
- package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +424 -426
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skeleton.cjs.entry.js +43 -43
- package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-status-tag.cjs.entry.js +30 -30
- package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +121 -121
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +200 -200
- package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +78 -78
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +252 -252
- package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +24 -24
- package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-panel.cjs.entry.js +31 -31
- package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab.cjs.entry.js +86 -86
- package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +209 -217
- package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +51 -51
- package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast-region.cjs.entry.js +47 -46
- package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +145 -145
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +198 -195
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +118 -118
- package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
- package/dist/{esm/index-813020f1.js → cjs/index-152d1fe5.js} +634 -376
- package/dist/cjs/index-152d1fe5.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/types-dc22e301.js +16 -0
- package/dist/cjs/{types-7d67439f.js.map → types-dc22e301.js.map} +1 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/ic-accordion/ic-accordion.js +276 -276
- package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
- package/dist/collection/components/ic-accordion/test/basic/ic-accordion.e2e.js +39 -39
- package/dist/collection/components/ic-accordion/test/basic/ic-accordion.e2e.js.map +1 -1
- package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js +215 -215
- package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js.map +1 -1
- package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +200 -200
- package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
- package/dist/collection/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.js +5 -5
- package/dist/collection/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js +70 -67
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js.map +1 -1
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js +73 -70
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js.map +1 -1
- package/dist/collection/components/ic-alert/ic-alert.js +231 -231
- package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
- package/dist/collection/components/ic-alert/test/a11y/ic-alert.test.a11y.js +5 -5
- package/dist/collection/components/ic-alert/test/a11y/ic-alert.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-alert/test/basic/ic-alert.e2e.js +12 -12
- package/dist/collection/components/ic-alert/test/basic/ic-alert.e2e.js.map +1 -1
- package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js +44 -44
- package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js.map +1 -1
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +3 -3
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +159 -159
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
- package/dist/collection/components/ic-back-to-top/test/a11y/ic-back-to-top.test.a11y.js +14 -14
- package/dist/collection/components/ic-back-to-top/test/a11y/ic-back-to-top.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.e2e.js +43 -43
- package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.e2e.js.map +1 -1
- package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js +102 -102
- package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js.map +1 -1
- package/dist/collection/components/ic-badge/ic-badge.js +385 -385
- package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
- package/dist/collection/components/ic-badge/test/a11y/ic-badge.test.a11y.js +10 -10
- package/dist/collection/components/ic-badge/test/a11y/ic-badge.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +172 -172
- package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -1
- package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +9 -1
- package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +186 -157
- package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
- package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js +43 -43
- package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js.map +1 -1
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +250 -220
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
- package/dist/collection/components/ic-breadcrumb-group/test/a11y/ic-breadcrumb-group.test.a11y.js +10 -10
- package/dist/collection/components/ic-breadcrumb-group/test/a11y/ic-breadcrumb-group.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.e2e.js +34 -34
- package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.e2e.js.map +1 -1
- package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.spec.js +156 -118
- package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.spec.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.css +17 -1
- package/dist/collection/components/ic-button/ic-button.js +798 -773
- package/dist/collection/components/ic-button/ic-button.js.map +1 -1
- package/dist/collection/components/ic-button/test/a11y/ic-button.test.a11y.js +5 -5
- package/dist/collection/components/ic-button/test/a11y/ic-button.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-button/test/basic/ic-button.e2e.js +114 -114
- 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 +249 -236
- package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -1
- package/dist/collection/components/ic-card/ic-card.css +1 -1
- package/dist/collection/components/ic-card/ic-card.js +375 -375
- package/dist/collection/components/ic-card/ic-card.js.map +1 -1
- package/dist/collection/components/ic-card/test/a11y/ic-card.test.a11y.js +15 -15
- package/dist/collection/components/ic-card/test/a11y/ic-card.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-card/test/basic/ic-card.e2e.js +19 -19
- package/dist/collection/components/ic-card/test/basic/ic-card.e2e.js.map +1 -1
- package/dist/collection/components/ic-card/test/basic/ic-card.spec.js +147 -147
- package/dist/collection/components/ic-card/test/basic/ic-card.spec.js.map +1 -1
- package/dist/collection/components/ic-checkbox/ic-checkbox.css +11 -11
- package/dist/collection/components/ic-checkbox/ic-checkbox.js +474 -474
- package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +302 -302
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/test/a11y/ic-checkbox-group.test.a11y.js +5 -5
- package/dist/collection/components/ic-checkbox-group/test/a11y/ic-checkbox-group.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.e2e.js +124 -124
- package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.e2e.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +148 -148
- package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -1
- package/dist/collection/components/ic-chip/ic-chip.css +9 -1
- package/dist/collection/components/ic-chip/ic-chip.js +291 -271
- package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
- package/dist/collection/components/ic-chip/test/a11y/ic-chip.test.a11y.js +5 -5
- package/dist/collection/components/ic-chip/test/a11y/ic-chip.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js +81 -81
- package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js.map +1 -1
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +132 -132
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.js.map +1 -1
- package/dist/collection/components/ic-classification-banner/test/a11y/ic-classification-banner.test.a11y.js +5 -5
- package/dist/collection/components/ic-classification-banner/test/a11y/ic-classification-banner.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js +55 -55
- package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js.map +1 -1
- package/dist/collection/components/ic-data-entity/ic-data-entity.css +1 -1
- package/dist/collection/components/ic-data-entity/ic-data-entity.js +92 -92
- package/dist/collection/components/ic-data-entity/ic-data-entity.js.map +1 -1
- package/dist/collection/components/ic-data-entity/test/a11y/ic-data-entity.test.a11y.js +5 -5
- package/dist/collection/components/ic-data-entity/test/a11y/ic-data-entity.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js +28 -28
- package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js.map +1 -1
- package/dist/collection/components/ic-data-row/ic-data-row.css +1 -1
- package/dist/collection/components/ic-data-row/ic-data-row.js +170 -170
- package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
- package/dist/collection/components/ic-data-row/test/a11y/ic-data-row.test.a11y.js +15 -13
- package/dist/collection/components/ic-data-row/test/a11y/ic-data-row.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js +61 -61
- package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js.map +1 -1
- package/dist/collection/components/ic-dialog/ic-dialog.css +56 -22
- package/dist/collection/components/ic-dialog/ic-dialog.js +765 -726
- package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
- package/dist/collection/components/ic-dialog/test/a11y/ic-dialog.test.a11y.js +5 -5
- package/dist/collection/components/ic-dialog/test/a11y/ic-dialog.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js +207 -126
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js.map +1 -1
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +573 -574
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
- package/dist/collection/components/ic-divider/ic-divider.js +38 -38
- package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
- package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js +17 -17
- package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js.map +1 -1
- package/dist/collection/components/ic-empty-state/ic-empty-state.js +151 -151
- package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -1
- package/dist/collection/components/ic-empty-state/test/a11y/ic-empty-state.test.a11y.js +5 -5
- package/dist/collection/components/ic-empty-state/test/a11y/ic-empty-state.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js +52 -52
- package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js.map +1 -1
- package/dist/collection/components/ic-footer/ic-footer.js +242 -242
- package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
- package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js +15 -13
- package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-footer/test/basic/ic-footer.e2e.js +25 -25
- package/dist/collection/components/ic-footer/test/basic/ic-footer.e2e.js.map +1 -1
- package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js +108 -108
- package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js.map +1 -1
- package/dist/collection/components/ic-footer-link/ic-footer-link.js +190 -190
- package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
- package/dist/collection/components/ic-footer-link/test/a11y/ic-footer-link.test.a11y.js +13 -13
- package/dist/collection/components/ic-footer-link/test/a11y/ic-footer-link.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js +36 -36
- package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js.map +1 -1
- package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +107 -107
- package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
- package/dist/collection/components/ic-footer-link-group/test/a11y/ic-footer-link-group.test.a11y.js +13 -13
- package/dist/collection/components/ic-footer-link-group/test/a11y/ic-footer-link-group.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js +52 -52
- package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js.map +1 -1
- package/dist/collection/components/ic-hero/ic-hero.js +292 -292
- package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
- package/dist/collection/components/ic-hero/test/a11y/ic-hero.test.a11y.js +5 -5
- package/dist/collection/components/ic-hero/test/a11y/ic-hero.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js +62 -62
- package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js.map +1 -1
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +241 -240
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
- package/dist/collection/components/ic-horizontal-scroll/test/a11y/ic-horizontal-scroll.test.a11y.js +17 -15
- package/dist/collection/components/ic-horizontal-scroll/test/a11y/ic-horizontal-scroll.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js +145 -145
- package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js.map +1 -1
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +4 -4
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +248 -248
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
- package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +49 -49
- package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +1 -1
- package/dist/collection/components/ic-input-container/ic-input-container.js +62 -62
- package/dist/collection/components/ic-input-container/ic-input-container.js.map +1 -1
- package/dist/collection/components/ic-input-container/test/basic/ic-input-container.spec.js +19 -19
- package/dist/collection/components/ic-input-container/test/basic/ic-input-container.spec.js.map +1 -1
- package/dist/collection/components/ic-input-label/ic-input-label.js +211 -211
- package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
- package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js +37 -37
- package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js.map +1 -1
- package/dist/collection/components/ic-input-validation/ic-input-validation.js +139 -139
- package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
- package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js +31 -31
- package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js.map +1 -1
- package/dist/collection/components/ic-link/ic-link.js +248 -248
- package/dist/collection/components/ic-link/ic-link.js.map +1 -1
- package/dist/collection/components/ic-link/test/a11y/ic-link.test.a11y.js +5 -5
- package/dist/collection/components/ic-link/test/a11y/ic-link.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-link/test/basic/ic-link.spec.js +92 -92
- package/dist/collection/components/ic-link/test/basic/ic-link.spec.js.map +1 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +416 -415
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
- package/dist/collection/components/ic-loading-indicator/test/a11y/ic-loading-indicator.test.a11y.js +5 -5
- package/dist/collection/components/ic-loading-indicator/test/a11y/ic-loading-indicator.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.e2e.js +25 -25
- package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.e2e.js.map +1 -1
- package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.spec.js +114 -114
- package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.spec.js.map +1 -1
- package/dist/collection/components/ic-menu/ic-menu.css +1 -5
- package/dist/collection/components/ic-menu/ic-menu.js +1271 -1213
- package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
- package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +684 -667
- package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
- package/dist/collection/components/ic-menu-group/ic-menu-group.js +41 -41
- package/dist/collection/components/ic-menu-group/ic-menu-group.js.map +1 -1
- package/dist/collection/components/ic-menu-group/test/basic/ic-menu-group.spec.js +16 -16
- package/dist/collection/components/ic-menu-group/test/basic/ic-menu-group.spec.js.map +1 -1
- package/dist/collection/components/ic-menu-item/ic-menu-item.js +378 -378
- package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
- package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js +67 -67
- package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js.map +1 -1
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +262 -259
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
- package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js +41 -41
- package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js.map +1 -1
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -1
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +380 -380
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
- package/dist/collection/components/ic-navigation-group/test/a11y/ic-navigation-group.test.a11y.js +14 -12
- package/dist/collection/components/ic-navigation-group/test/a11y/ic-navigation-group.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js +242 -242
- package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js.map +1 -1
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +11 -5
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +446 -446
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
- package/dist/collection/components/ic-navigation-item/test/a11y/ic-navigation-item.test.a11y.js +14 -12
- package/dist/collection/components/ic-navigation-item/test/a11y/ic-navigation-item.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js +78 -78
- package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js.map +1 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.css +7 -3
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +187 -184
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
- package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.e2e.js +25 -25
- package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.e2e.js.map +1 -1
- package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.spec.js +104 -104
- package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.spec.js.map +1 -1
- package/dist/collection/components/ic-page-header/ic-page-header.js +286 -286
- package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
- package/dist/collection/components/ic-page-header/test/a11y/ic-page-header.test.a11y.js +5 -5
- package/dist/collection/components/ic-page-header/test/a11y/ic-page-header.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-page-header/test/basic/ic-page-header.e2e.js +66 -66
- package/dist/collection/components/ic-page-header/test/basic/ic-page-header.e2e.js.map +1 -1
- package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js +82 -82
- package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js.map +1 -1
- package/dist/collection/components/ic-pagination/ic-pagination.js +487 -482
- package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
- package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js +5 -5
- package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-pagination/test/basic/ic-pagination.e2e.js +103 -103
- package/dist/collection/components/ic-pagination/test/basic/ic-pagination.e2e.js.map +1 -1
- package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js +304 -303
- package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js.map +1 -1
- package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +225 -225
- package/dist/collection/components/ic-pagination-item/ic-pagination-item.js.map +1 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +434 -465
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
- package/dist/collection/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.js +5 -5
- package/dist/collection/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js +29 -26
- package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js.map +1 -1
- package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js +283 -283
- package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js.map +1 -1
- package/dist/collection/components/ic-radio-group/ic-radio-group.js +429 -429
- package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
- package/dist/collection/components/ic-radio-group/test/a11y/ic-radio-group.test.a11y.js +5 -5
- package/dist/collection/components/ic-radio-group/test/a11y/ic-radio-group.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js +218 -218
- package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js.map +1 -1
- package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +238 -238
- package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
- package/dist/collection/components/ic-radio-option/ic-radio-option.css +8 -8
- package/dist/collection/components/ic-radio-option/ic-radio-option.js +479 -479
- package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.css +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.js +1381 -1381
- package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
- package/dist/collection/components/ic-search-bar/test/a11y/ic-search-bar.test.a11y.js +5 -5
- package/dist/collection/components/ic-search-bar/test/a11y/ic-search-bar.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js +992 -1008
- package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js.map +1 -1
- package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js +568 -568
- package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js.map +1 -1
- package/dist/collection/components/ic-section-container/ic-section-container.js +70 -70
- package/dist/collection/components/ic-section-container/ic-section-container.js.map +1 -1
- package/dist/collection/components/ic-section-container/test/basic/ic-section-container.spec.js +28 -28
- package/dist/collection/components/ic-section-container/test/basic/ic-section-container.spec.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select.css +1 -1
- package/dist/collection/components/ic-select/ic-select.js +1466 -1447
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-select/test/a11y/ic-select.test.a11y.js +5 -5
- package/dist/collection/components/ic-select/test/a11y/ic-select.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +1563 -1562
- 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 +1299 -1299
- package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +675 -654
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.types.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/test/a11y/ic-side-navigation.test.a11y.js +5 -5
- package/dist/collection/components/ic-side-navigation/test/a11y/ic-side-navigation.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +463 -464
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js +143 -143
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js.map +1 -1
- package/dist/collection/components/ic-skeleton/ic-skeleton.js +127 -127
- package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
- package/dist/collection/components/ic-skeleton/test/a11y/ic-skeleton.test.a11y.js +5 -5
- package/dist/collection/components/ic-skeleton/test/a11y/ic-skeleton.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js +38 -38
- package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js.map +1 -1
- package/dist/collection/components/ic-status-tag/ic-status-tag.css +4 -4
- package/dist/collection/components/ic-status-tag/ic-status-tag.js +194 -194
- package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
- package/dist/collection/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.js +5 -5
- package/dist/collection/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js +14 -14
- package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js.map +1 -1
- package/dist/collection/components/ic-step/ic-step.css +7 -1
- package/dist/collection/components/ic-step/ic-step.js +385 -385
- package/dist/collection/components/ic-step/ic-step.js.map +1 -1
- package/dist/collection/components/ic-step/test/basic/ic-step.spec.js +87 -87
- package/dist/collection/components/ic-step/test/basic/ic-step.spec.js.map +1 -1
- package/dist/collection/components/ic-stepper/ic-stepper.js +306 -306
- package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
- package/dist/collection/components/ic-stepper/test/a11y/ic-stepper.test.a11y.js +10 -10
- package/dist/collection/components/ic-stepper/test/a11y/ic-stepper.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-stepper/test/basic/ic-stepper.e2e.js +36 -36
- package/dist/collection/components/ic-stepper/test/basic/ic-stepper.e2e.js.map +1 -1
- package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +350 -350
- package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -1
- package/dist/collection/components/ic-switch/ic-switch.css +3 -2
- package/dist/collection/components/ic-switch/ic-switch.js +355 -355
- package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
- package/dist/collection/components/ic-switch/test/a11y/ic-switch.test.a11y.js +5 -5
- package/dist/collection/components/ic-switch/test/a11y/ic-switch.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js +88 -88
- package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js.map +1 -1
- package/dist/collection/components/ic-tab/ic-tab.js +350 -350
- package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
- package/dist/collection/components/ic-tab/test/basic/ic-tab.e2e.js +26 -26
- package/dist/collection/components/ic-tab/test/basic/ic-tab.e2e.js.map +1 -1
- package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js +93 -93
- package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js.map +1 -1
- package/dist/collection/components/ic-tab-context/ic-tab-context.js +442 -441
- package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
- package/dist/collection/components/ic-tab-context/test/a11y/ic-tab-context.test.a11y.js +5 -5
- package/dist/collection/components/ic-tab-context/test/a11y/ic-tab-context.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js +213 -213
- package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js.map +1 -1
- package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js +250 -250
- package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js.map +1 -1
- package/dist/collection/components/ic-tab-group/ic-tab-group.css +1 -1
- package/dist/collection/components/ic-tab-group/ic-tab-group.js +117 -117
- package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.css +444 -1
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +191 -191
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
- package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js +29 -29
- package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js.map +1 -1
- package/dist/collection/components/ic-text-field/ic-text-field.js +1114 -1122
- package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
- package/dist/collection/components/ic-text-field/test/a11y/ic-text-field.test.a11y.js +5 -5
- package/dist/collection/components/ic-text-field/test/a11y/ic-text-field.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-text-field/test/basic/ic-text-field.e2e.js +94 -94
- package/dist/collection/components/ic-text-field/test/basic/ic-text-field.e2e.js.map +1 -1
- package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +194 -194
- package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
- package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +92 -92
- package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +1 -1
- package/dist/collection/components/ic-theme/ic-theme.js +99 -99
- package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
- package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js +65 -65
- package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js.map +1 -1
- package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js +53 -53
- package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js.map +1 -1
- package/dist/collection/components/ic-toast/ic-toast.js +368 -368
- package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
- package/dist/collection/components/ic-toast/test/a11y/ic-toast.test.a11y.js +10 -10
- package/dist/collection/components/ic-toast/test/a11y/ic-toast.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-toast/test/basic/ic-toast.e2e.js +66 -66
- package/dist/collection/components/ic-toast/test/basic/ic-toast.e2e.js.map +1 -1
- package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js +180 -180
- package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js.map +1 -1
- package/dist/collection/components/ic-toast-region/ic-toast-region.js +115 -110
- package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -1
- package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js +58 -58
- package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js.map +1 -1
- package/dist/collection/components/ic-tooltip/ic-tooltip.css +2 -2
- package/dist/collection/components/ic-tooltip/ic-tooltip.js +347 -329
- package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
- package/dist/collection/components/ic-tooltip/test/a11y/ic-tooltip.test.a11y.js +5 -5
- package/dist/collection/components/ic-tooltip/test/a11y/ic-tooltip.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js +105 -105
- package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js.map +1 -1
- package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js +276 -276
- package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +3 -7
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +432 -414
- 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 +20 -18
- 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 +43 -43
- 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.mobile.e2e.js +191 -191
- package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js +187 -172
- package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js.map +1 -1
- package/dist/collection/components/ic-typography/ic-typography.js +270 -270
- package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
- package/dist/collection/components/ic-typography/test/a11y/ic-typography.test.a11y.js +5 -5
- package/dist/collection/components/ic-typography/test/a11y/ic-typography.test.a11y.js.map +1 -1
- package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js +25 -25
- package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js.map +1 -1
- package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +276 -276
- package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +1 -1
- package/dist/collection/testspec.setup.js +32 -32
- package/dist/collection/testspec.setup.js.map +1 -1
- package/dist/collection/utils/constants.js +55 -55
- package/dist/collection/utils/constants.js.map +1 -1
- package/dist/collection/utils/helpers.js +235 -235
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/testa11y.helpers.js +2 -2
- package/dist/collection/utils/testa11y.helpers.js.map +1 -1
- package/dist/collection/utils/types.js +6 -6
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/components/helpers.js +290 -290
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ic-accordion-group.d.ts +2 -2
- package/dist/components/ic-accordion-group.js +112 -112
- package/dist/components/ic-accordion-group.js.map +1 -1
- package/dist/components/ic-accordion.d.ts +2 -2
- package/dist/components/ic-accordion.js +125 -125
- package/dist/components/ic-accordion.js.map +1 -1
- package/dist/components/ic-alert.d.ts +2 -2
- package/dist/components/ic-alert2.js +98 -98
- package/dist/components/ic-alert2.js.map +1 -1
- package/dist/components/ic-back-to-top.d.ts +2 -2
- package/dist/components/ic-back-to-top.js +144 -144
- package/dist/components/ic-back-to-top.js.map +1 -1
- package/dist/components/ic-badge.d.ts +2 -2
- package/dist/components/ic-badge.js +174 -174
- package/dist/components/ic-badge.js.map +1 -1
- package/dist/components/ic-breadcrumb-group.d.ts +2 -2
- package/dist/components/ic-breadcrumb-group.js +199 -192
- package/dist/components/ic-breadcrumb-group.js.map +1 -1
- package/dist/components/ic-breadcrumb.d.ts +2 -2
- package/dist/components/ic-breadcrumb2.js +78 -75
- package/dist/components/ic-breadcrumb2.js.map +1 -1
- package/dist/components/ic-button.d.ts +2 -2
- package/dist/components/ic-button2.js +312 -304
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card.d.ts +2 -2
- package/dist/components/ic-card.js +156 -156
- package/dist/components/ic-card.js.map +1 -1
- package/dist/components/ic-checkbox-group.d.ts +2 -2
- package/dist/components/ic-checkbox-group.js +97 -97
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox.d.ts +2 -2
- package/dist/components/ic-checkbox.js +131 -131
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-chip.d.ts +2 -2
- package/dist/components/ic-chip.js +99 -96
- package/dist/components/ic-chip.js.map +1 -1
- package/dist/components/ic-classification-banner.d.ts +2 -2
- package/dist/components/ic-classification-banner.js +47 -47
- package/dist/components/ic-classification-banner.js.map +1 -1
- package/dist/components/ic-data-entity.d.ts +2 -2
- package/dist/components/ic-data-entity.js +40 -40
- package/dist/components/ic-data-entity.js.map +1 -1
- package/dist/components/ic-data-row.d.ts +2 -2
- package/dist/components/ic-data-row.js +98 -98
- package/dist/components/ic-data-row.js.map +1 -1
- package/dist/components/ic-dialog.d.ts +2 -2
- package/dist/components/ic-dialog.js +400 -378
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-divider.d.ts +2 -2
- package/dist/components/ic-divider2.js +28 -28
- package/dist/components/ic-divider2.js.map +1 -1
- package/dist/components/ic-empty-state.d.ts +2 -2
- package/dist/components/ic-empty-state.js +47 -47
- package/dist/components/ic-empty-state.js.map +1 -1
- package/dist/components/ic-footer-link-group.d.ts +2 -2
- package/dist/components/ic-footer-link-group.js +82 -82
- package/dist/components/ic-footer-link-group.js.map +1 -1
- package/dist/components/ic-footer-link.d.ts +2 -2
- package/dist/components/ic-footer-link.js +71 -71
- package/dist/components/ic-footer-link.js.map +1 -1
- package/dist/components/ic-footer.d.ts +2 -2
- package/dist/components/ic-footer.js +108 -108
- package/dist/components/ic-footer.js.map +1 -1
- package/dist/components/ic-hero.d.ts +2 -2
- package/dist/components/ic-hero.js +98 -98
- package/dist/components/ic-hero.js.map +1 -1
- package/dist/components/ic-horizontal-scroll.d.ts +2 -2
- package/dist/components/ic-horizontal-scroll2.js +189 -189
- package/dist/components/ic-horizontal-scroll2.js.map +1 -1
- package/dist/components/ic-input-component-container.d.ts +2 -2
- package/dist/components/ic-input-component-container2.js +62 -62
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-input-container.d.ts +2 -2
- package/dist/components/ic-input-container2.js +28 -28
- package/dist/components/ic-input-container2.js.map +1 -1
- package/dist/components/ic-input-label.d.ts +2 -2
- package/dist/components/ic-input-label2.js +62 -62
- package/dist/components/ic-input-label2.js.map +1 -1
- package/dist/components/ic-input-validation.d.ts +2 -2
- package/dist/components/ic-input-validation2.js +50 -50
- package/dist/components/ic-input-validation2.js.map +1 -1
- package/dist/components/ic-link.d.ts +2 -2
- package/dist/components/ic-link2.js +76 -76
- package/dist/components/ic-link2.js.map +1 -1
- package/dist/components/ic-loading-indicator.d.ts +2 -2
- package/dist/components/ic-loading-indicator2.js +211 -210
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu-group.d.ts +2 -2
- package/dist/components/ic-menu-group.js +30 -30
- package/dist/components/ic-menu-group.js.map +1 -1
- package/dist/components/ic-menu-item.d.ts +2 -2
- package/dist/components/ic-menu-item2.js +144 -144
- package/dist/components/ic-menu-item2.js.map +1 -1
- package/dist/components/ic-menu.d.ts +2 -2
- package/dist/components/ic-menu2.js +694 -682
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-button.d.ts +2 -2
- package/dist/components/ic-navigation-button.js +121 -118
- package/dist/components/ic-navigation-button.js.map +1 -1
- package/dist/components/ic-navigation-group.d.ts +2 -2
- package/dist/components/ic-navigation-group.js +311 -311
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-item.d.ts +2 -2
- package/dist/components/ic-navigation-item.js +195 -195
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-navigation-menu.d.ts +2 -2
- package/dist/components/ic-navigation-menu2.js +140 -137
- package/dist/components/ic-navigation-menu2.js.map +1 -1
- package/dist/components/ic-page-header.d.ts +2 -2
- package/dist/components/ic-page-header.js +147 -147
- package/dist/components/ic-page-header.js.map +1 -1
- package/dist/components/ic-pagination-item.d.ts +2 -2
- package/dist/components/ic-pagination-item2.js +67 -67
- package/dist/components/ic-pagination-item2.js.map +1 -1
- package/dist/components/ic-pagination.d.ts +2 -2
- package/dist/components/ic-pagination.js +253 -252
- package/dist/components/ic-pagination.js.map +1 -1
- package/dist/components/ic-popover-menu.d.ts +2 -2
- package/dist/components/ic-popover-menu.js +278 -309
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.d.ts +2 -2
- package/dist/components/ic-radio-group.js +200 -200
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.d.ts +2 -2
- package/dist/components/ic-radio-option.js +163 -163
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.d.ts +2 -2
- package/dist/components/ic-search-bar.js +581 -581
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-section-container.d.ts +2 -2
- package/dist/components/ic-section-container2.js +31 -31
- package/dist/components/ic-section-container2.js.map +1 -1
- package/dist/components/ic-select.d.ts +2 -2
- package/dist/components/ic-select.js +752 -750
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-side-navigation.d.ts +2 -2
- package/dist/components/ic-side-navigation.js +479 -481
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.d.ts +2 -2
- package/dist/components/ic-skeleton.js +64 -64
- package/dist/components/ic-skeleton.js.map +1 -1
- package/dist/components/ic-status-tag.d.ts +2 -2
- package/dist/components/ic-status-tag.js +54 -54
- package/dist/components/ic-status-tag.js.map +1 -1
- package/dist/components/ic-step.d.ts +2 -2
- package/dist/components/ic-step.js +157 -157
- package/dist/components/ic-step.js.map +1 -1
- package/dist/components/ic-stepper.d.ts +2 -2
- package/dist/components/ic-stepper.js +223 -223
- package/dist/components/ic-stepper.js.map +1 -1
- package/dist/components/ic-switch.d.ts +2 -2
- package/dist/components/ic-switch.js +115 -115
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-tab-context.d.ts +2 -2
- package/dist/components/ic-tab-context.js +271 -271
- package/dist/components/ic-tab-context.js.map +1 -1
- package/dist/components/ic-tab-group.d.ts +2 -2
- package/dist/components/ic-tab-group.js +65 -65
- package/dist/components/ic-tab-group.js.map +1 -1
- package/dist/components/ic-tab-panel.d.ts +2 -2
- package/dist/components/ic-tab-panel.js +48 -48
- package/dist/components/ic-tab-panel.js.map +1 -1
- package/dist/components/ic-tab.d.ts +2 -2
- package/dist/components/ic-tab.js +112 -112
- package/dist/components/ic-tab.js.map +1 -1
- package/dist/components/ic-text-field.d.ts +2 -2
- package/dist/components/ic-text-field2.js +292 -300
- package/dist/components/ic-text-field2.js.map +1 -1
- package/dist/components/ic-theme.d.ts +2 -2
- package/dist/components/ic-theme.js +65 -65
- package/dist/components/ic-theme.js.map +1 -1
- package/dist/components/ic-toast-region.d.ts +2 -2
- package/dist/components/ic-toast-region.js +63 -62
- package/dist/components/ic-toast-region.js.map +1 -1
- package/dist/components/ic-toast.d.ts +2 -2
- package/dist/components/ic-toast.js +187 -187
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-tooltip.d.ts +2 -2
- package/dist/components/ic-tooltip2.js +214 -212
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-top-navigation.d.ts +2 -2
- package/dist/components/ic-top-navigation.js +263 -260
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/components/ic-typography.d.ts +2 -2
- package/dist/components/ic-typography2.js +142 -142
- package/dist/components/ic-typography2.js.map +1 -1
- package/dist/components/types.js +6 -6
- package/dist/components/types.js.map +1 -1
- package/dist/core/core.css +2 -2
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/p-02159742.entry.js +2 -0
- package/dist/core/p-02159742.entry.js.map +1 -0
- package/dist/core/p-056f8a67.entry.js +2 -0
- package/dist/core/p-056f8a67.entry.js.map +1 -0
- package/dist/core/{p-08b59078.entry.js → p-11736fbe.entry.js} +2 -2
- package/dist/core/{p-ba495175.entry.js → p-15466b42.entry.js} +2 -2
- package/dist/core/{p-ba495175.entry.js.map → p-15466b42.entry.js.map} +1 -1
- package/dist/core/{p-eb063498.entry.js → p-15624e08.entry.js} +2 -2
- package/dist/core/p-15624e08.entry.js.map +1 -0
- package/dist/core/{p-5fcd202e.entry.js → p-15ef0674.entry.js} +2 -2
- package/dist/core/{p-88ea1e49.entry.js → p-180e36b1.entry.js} +2 -2
- package/dist/core/p-22c024ee.entry.js +2 -0
- package/dist/core/p-22c024ee.entry.js.map +1 -0
- package/dist/core/{p-613aa265.js → p-26b7b18f.js} +1 -1
- package/dist/core/{p-932fb4b7.entry.js → p-287ab47c.entry.js} +2 -2
- package/dist/core/{p-69948c3e.entry.js → p-2b24b4bf.entry.js} +2 -2
- package/dist/core/p-31969be6.entry.js +2 -0
- package/dist/core/p-31969be6.entry.js.map +1 -0
- package/dist/core/{p-475b7bd2.entry.js → p-335fc5e4.entry.js} +2 -2
- package/dist/core/{p-c9ef9f5c.entry.js → p-366bcb17.entry.js} +2 -2
- package/dist/core/{p-ed256f1d.entry.js → p-3a0ef91e.entry.js} +2 -2
- package/dist/core/p-498eb7ad.entry.js +2 -0
- package/dist/core/p-498eb7ad.entry.js.map +1 -0
- package/dist/core/p-51f9f329.entry.js +2 -0
- package/dist/core/p-51f9f329.entry.js.map +1 -0
- package/dist/core/{p-f019219c.entry.js → p-529d8955.entry.js} +2 -2
- package/dist/core/p-52e063d3.js +3 -0
- package/dist/core/p-52e063d3.js.map +1 -0
- package/dist/core/p-5c7e339f.entry.js +2 -0
- package/dist/core/p-5c7e339f.entry.js.map +1 -0
- package/dist/core/p-5f9d69ef.entry.js +2 -0
- package/dist/core/p-5f9d69ef.entry.js.map +1 -0
- package/dist/core/{p-2c30b583.entry.js → p-60c4604f.entry.js} +2 -2
- package/dist/core/p-6bc431b2.entry.js +2 -0
- package/dist/core/p-6bc431b2.entry.js.map +1 -0
- package/dist/core/{p-ccac1730.entry.js → p-6d3f9501.entry.js} +2 -2
- package/dist/core/{p-536b3c97.entry.js → p-6eb0421d.entry.js} +2 -2
- package/dist/core/{p-48525498.entry.js → p-765bdd98.entry.js} +2 -2
- package/dist/core/{p-3a814fc4.entry.js → p-7f887c1e.entry.js} +2 -2
- package/dist/core/{p-752f0f9a.entry.js → p-8a83f391.entry.js} +2 -2
- package/dist/core/p-8a83f391.entry.js.map +1 -0
- package/dist/core/{p-e3bffcae.entry.js → p-94e88827.entry.js} +2 -2
- package/dist/core/{p-8fb4f0c0.js → p-95a864bf.js} +2 -2
- package/dist/core/{p-c0c62df4.entry.js → p-9639e33f.entry.js} +2 -2
- package/dist/core/p-9639e33f.entry.js.map +1 -0
- package/dist/core/p-96da1e85.entry.js +2 -0
- package/dist/core/p-96da1e85.entry.js.map +1 -0
- package/dist/core/p-988991d3.entry.js +2 -0
- package/dist/core/p-988991d3.entry.js.map +1 -0
- package/dist/core/{p-0c82048e.entry.js → p-9c30720d.entry.js} +2 -2
- package/dist/core/p-aa0a9870.entry.js +2 -0
- package/dist/core/p-aa0a9870.entry.js.map +1 -0
- package/dist/core/{p-76563540.entry.js → p-ad36a704.entry.js} +2 -2
- package/dist/core/p-b0088956.entry.js +2 -0
- package/dist/core/p-b0088956.entry.js.map +1 -0
- package/dist/core/p-b39ecae2.entry.js +2 -0
- package/dist/core/p-b39ecae2.entry.js.map +1 -0
- package/dist/core/{p-2265e418.entry.js → p-b6a575c3.entry.js} +2 -2
- package/dist/core/{p-fbc8a739.entry.js → p-b9736cf4.entry.js} +2 -2
- package/dist/core/{p-025f9d2a.entry.js → p-b99f9e89.entry.js} +2 -2
- package/dist/core/{p-b0ce60a0.entry.js → p-c2452388.entry.js} +2 -2
- package/dist/core/{p-345fe84a.entry.js → p-c770e7a2.entry.js} +2 -2
- package/dist/core/p-ca178add.entry.js +2 -0
- package/dist/core/p-ca178add.entry.js.map +1 -0
- package/dist/core/p-ca48e97a.entry.js +2 -0
- package/dist/core/p-ca48e97a.entry.js.map +1 -0
- package/dist/core/p-cd8de4c5.entry.js +2 -0
- package/dist/core/p-cd8de4c5.entry.js.map +1 -0
- package/dist/core/{p-a4397df4.entry.js → p-cfc930f6.entry.js} +2 -2
- package/dist/core/{p-3a15202f.entry.js → p-d18450f9.entry.js} +2 -2
- package/dist/core/p-d18450f9.entry.js.map +1 -0
- package/dist/core/p-daebb58a.entry.js +2 -0
- package/dist/core/p-daebb58a.entry.js.map +1 -0
- package/dist/core/p-dbb5b008.entry.js +2 -0
- package/dist/core/p-dbb5b008.entry.js.map +1 -0
- package/dist/core/p-e278242f.entry.js +2 -0
- package/dist/core/p-e278242f.entry.js.map +1 -0
- package/dist/core/{p-af9f1caa.entry.js → p-e5abfadd.entry.js} +2 -2
- package/dist/core/p-e5abfadd.entry.js.map +1 -0
- package/dist/core/{p-41c6eaa1.entry.js → p-e9738c74.entry.js} +2 -2
- package/dist/core/p-ea17e371.entry.js +2 -0
- package/dist/core/p-ea17e371.entry.js.map +1 -0
- package/dist/core/{p-e2fd542e.entry.js → p-edd29edc.entry.js} +2 -2
- package/dist/core/p-edec0936.entry.js +2 -0
- package/dist/core/p-edec0936.entry.js.map +1 -0
- package/dist/core/p-ee97e2a5.entry.js +2 -0
- package/dist/core/p-ee97e2a5.entry.js.map +1 -0
- package/dist/core/{p-8b18346a.entry.js → p-f0809037.entry.js} +2 -2
- package/dist/core/p-f0809037.entry.js.map +1 -0
- package/dist/core/{p-5bb6c79b.entry.js → p-f2e6b9ef.entry.js} +2 -2
- package/dist/core/{p-cf4bacee.entry.js → p-fdb4b48f.entry.js} +2 -2
- package/dist/esm/core.js +4 -4
- package/dist/esm/core.js.map +1 -1
- package/dist/esm/{helpers-24f6e762.js → helpers-c597f246.js} +292 -292
- package/dist/esm/helpers-c597f246.js.map +1 -0
- package/dist/esm/ic-accordion-group.entry.js +71 -71
- package/dist/esm/ic-accordion-group.entry.js.map +1 -1
- package/dist/esm/ic-accordion.entry.js +99 -99
- package/dist/esm/ic-accordion.entry.js.map +1 -1
- package/dist/esm/ic-alert.entry.js +58 -58
- package/dist/esm/ic-alert.entry.js.map +1 -1
- package/dist/esm/ic-back-to-top.entry.js +121 -121
- package/dist/esm/ic-back-to-top.entry.js.map +1 -1
- package/dist/esm/ic-badge.entry.js +146 -146
- package/dist/esm/ic-badge.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb-group.entry.js +172 -166
- package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb.entry.js +55 -53
- package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
- package/dist/esm/ic-button_3.entry.js +616 -607
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card.entry.js +106 -106
- package/dist/esm/ic-card.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +60 -60
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +95 -95
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +67 -65
- package/dist/esm/ic-chip.entry.js.map +1 -1
- package/dist/esm/ic-classification-banner.entry.js +23 -23
- package/dist/esm/ic-classification-banner.entry.js.map +1 -1
- package/dist/esm/ic-data-entity.entry.js +18 -18
- package/dist/esm/ic-data-entity.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js +75 -75
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-dialog.entry.js +339 -318
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +16 -16
- package/dist/esm/ic-divider.entry.js.map +1 -1
- package/dist/esm/ic-empty-state.entry.js +24 -24
- package/dist/esm/ic-empty-state.entry.js.map +1 -1
- package/dist/esm/ic-footer-link-group.entry.js +55 -55
- package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
- package/dist/esm/ic-footer-link.entry.js +50 -50
- package/dist/esm/ic-footer-link.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +78 -78
- package/dist/esm/ic-footer.entry.js.map +1 -1
- package/dist/esm/ic-hero.entry.js +62 -62
- package/dist/esm/ic-hero.entry.js.map +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js +151 -151
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +682 -673
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +63 -63
- package/dist/esm/ic-input-label_2.entry.js.map +1 -1
- package/dist/esm/ic-link.entry.js +55 -55
- package/dist/esm/ic-link.entry.js.map +1 -1
- package/dist/esm/ic-menu-group.entry.js +12 -12
- package/dist/esm/ic-menu-group.entry.js.map +1 -1
- package/dist/esm/ic-menu-item.entry.js +100 -100
- package/dist/esm/ic-menu-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-button.entry.js +79 -76
- package/dist/esm/ic-navigation-button.entry.js.map +1 -1
- package/dist/esm/ic-navigation-group.entry.js +284 -284
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +153 -153
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +106 -103
- package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
- package/dist/esm/ic-page-header.entry.js +93 -93
- package/dist/esm/ic-page-header.entry.js.map +1 -1
- package/dist/esm/ic-pagination-item.entry.js +42 -42
- package/dist/esm/ic-pagination-item.entry.js.map +1 -1
- package/dist/esm/ic-pagination.entry.js +196 -195
- package/dist/esm/ic-pagination.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +229 -260
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +156 -156
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +128 -128
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +475 -475
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-section-container.entry.js +15 -15
- package/dist/esm/ic-section-container.entry.js.map +1 -1
- package/dist/esm/ic-select.entry.js +640 -639
- package/dist/esm/ic-select.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +424 -426
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-skeleton.entry.js +43 -43
- package/dist/esm/ic-skeleton.entry.js.map +1 -1
- package/dist/esm/ic-status-tag.entry.js +30 -30
- package/dist/esm/ic-status-tag.entry.js.map +1 -1
- package/dist/esm/ic-step.entry.js +121 -121
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-stepper.entry.js +200 -200
- package/dist/esm/ic-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +78 -78
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-context.entry.js +252 -252
- package/dist/esm/ic-tab-context.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +24 -24
- package/dist/esm/ic-tab-group.entry.js.map +1 -1
- package/dist/esm/ic-tab-panel.entry.js +31 -31
- package/dist/esm/ic-tab-panel.entry.js.map +1 -1
- package/dist/esm/ic-tab.entry.js +86 -86
- package/dist/esm/ic-tab.entry.js.map +1 -1
- package/dist/esm/ic-text-field.entry.js +209 -217
- package/dist/esm/ic-text-field.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +51 -51
- package/dist/esm/ic-theme.entry.js.map +1 -1
- package/dist/esm/ic-toast-region.entry.js +47 -46
- package/dist/esm/ic-toast-region.entry.js.map +1 -1
- package/dist/esm/ic-toast.entry.js +145 -145
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/ic-top-navigation.entry.js +198 -195
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/ic-typography.entry.js +118 -118
- package/dist/esm/ic-typography.entry.js.map +1 -1
- package/dist/{cjs/index-4f8c900f.js → esm/index-05003e1c.js} +603 -407
- package/dist/esm/index-05003e1c.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/types-6f6b41a5.js +16 -0
- package/dist/esm/{types-b2398b37.js.map → types-6f6b41a5.js.map} +1 -1
- package/dist/node.d.ts +12 -0
- package/dist/types/components/ic-accordion/ic-accordion.d.ts +48 -48
- package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +30 -30
- package/dist/types/components/ic-alert/ic-alert.d.ts +40 -40
- package/dist/types/components/ic-back-to-top/ic-back-to-top.d.ts +23 -23
- package/dist/types/components/ic-badge/ic-badge.d.ts +57 -57
- package/dist/types/components/ic-breadcrumb/ic-breadcrumb.d.ts +30 -25
- package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +43 -38
- package/dist/types/components/ic-button/ic-button.d.ts +142 -137
- package/dist/types/components/ic-card/ic-card.d.ts +68 -68
- package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +91 -91
- package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +50 -50
- package/dist/types/components/ic-checkbox-group/ic-checkbox-group.types.d.ts +6 -6
- package/dist/types/components/ic-chip/ic-chip.d.ts +50 -46
- package/dist/types/components/ic-classification-banner/ic-classification-banner.d.ts +21 -21
- package/dist/types/components/ic-data-entity/ic-data-entity.d.ts +14 -14
- package/dist/types/components/ic-data-row/ic-data-row.d.ts +34 -34
- package/dist/types/components/ic-dialog/ic-dialog.d.ts +139 -128
- package/dist/types/components/ic-divider/ic-divider.d.ts +3 -3
- package/dist/types/components/ic-empty-state/ic-empty-state.d.ts +27 -27
- package/dist/types/components/ic-footer/ic-footer.d.ts +41 -41
- package/dist/types/components/ic-footer-link/ic-footer-link.d.ts +35 -35
- package/dist/types/components/ic-footer-link-group/ic-footer-link-group.d.ts +17 -17
- package/dist/types/components/ic-hero/ic-hero.d.ts +51 -51
- package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.d.ts +41 -41
- package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +42 -42
- package/dist/types/components/ic-input-container/ic-input-container.d.ts +9 -9
- package/dist/types/components/ic-input-label/ic-input-label.d.ts +38 -38
- package/dist/types/components/ic-input-validation/ic-input-validation.d.ts +23 -23
- package/dist/types/components/ic-link/ic-link.d.ts +44 -44
- package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +76 -76
- package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +3 -3
- package/dist/types/components/ic-menu/ic-menu.d.ts +183 -173
- package/dist/types/components/ic-menu/ic-menu.types.d.ts +6 -6
- package/dist/types/components/ic-menu-group/ic-menu-group.d.ts +6 -6
- package/dist/types/components/ic-menu-item/ic-menu-item.d.ts +66 -66
- package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +47 -47
- package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +62 -62
- package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +80 -80
- package/dist/types/components/ic-navigation-menu/ic-navigation-menu.d.ts +29 -29
- package/dist/types/components/ic-page-header/ic-page-header.d.ts +48 -48
- package/dist/types/components/ic-pagination/ic-pagination.d.ts +78 -77
- package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +1 -1
- package/dist/types/components/ic-pagination-item/ic-pagination-item.d.ts +42 -42
- package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +60 -60
- package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +67 -67
- package/dist/types/components/ic-radio-group/ic-radio-group.types.d.ts +5 -5
- package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +89 -89
- package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +248 -248
- package/dist/types/components/ic-search-bar/ic-search-bar.types.d.ts +1 -1
- package/dist/types/components/ic-section-container/ic-section-container.d.ts +9 -9
- package/dist/types/components/ic-select/ic-select.d.ts +269 -265
- package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +103 -97
- package/dist/types/components/ic-side-navigation/ic-side-navigation.types.d.ts +10 -6
- package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +19 -19
- package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +31 -31
- package/dist/types/components/ic-step/ic-step.d.ts +51 -51
- package/dist/types/components/ic-stepper/ic-stepper.d.ts +40 -40
- package/dist/types/components/ic-switch/ic-switch.d.ts +73 -73
- package/dist/types/components/ic-switch/ic-switch.types.d.ts +2 -2
- package/dist/types/components/ic-tab/ic-tab.d.ts +51 -51
- package/dist/types/components/ic-tab/ic-tab.types.d.ts +4 -4
- package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +59 -59
- package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +19 -19
- package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +33 -33
- package/dist/types/components/ic-text-field/ic-text-field.d.ts +214 -213
- package/dist/types/components/ic-theme/ic-theme.d.ts +14 -14
- package/dist/types/components/ic-toast/ic-toast.d.ts +58 -58
- package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +16 -15
- package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +54 -50
- package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +78 -72
- package/dist/types/components/ic-typography/ic-typography.d.ts +54 -54
- package/dist/types/components.d.ts +415 -3
- package/dist/types/stencil-public-runtime.d.ts +29 -0
- package/dist/types/testspec.setup.d.ts +7 -7
- package/dist/types/utils/constants.d.ts +26 -26
- package/dist/types/utils/helpers.d.ts +7 -7
- package/dist/types/utils/types.d.ts +31 -31
- package/hydrate/index.d.ts +2 -2
- package/hydrate/index.js +16042 -14263
- package/package.json +5 -4
- package/vscode-data.json +3939 -0
- package/dist/cjs/helpers-0d63359f.js.map +0 -1
- package/dist/cjs/index-4f8c900f.js.map +0 -1
- package/dist/cjs/types-7d67439f.js +0 -16
- package/dist/core/p-03329fd0.entry.js +0 -2
- package/dist/core/p-03329fd0.entry.js.map +0 -1
- package/dist/core/p-0dc4f225.entry.js +0 -2
- package/dist/core/p-0dc4f225.entry.js.map +0 -1
- package/dist/core/p-12124e24.entry.js +0 -2
- package/dist/core/p-12124e24.entry.js.map +0 -1
- package/dist/core/p-1cf2a6aa.entry.js +0 -2
- package/dist/core/p-1cf2a6aa.entry.js.map +0 -1
- package/dist/core/p-39c8111d.entry.js +0 -2
- package/dist/core/p-39c8111d.entry.js.map +0 -1
- package/dist/core/p-3a15202f.entry.js.map +0 -1
- package/dist/core/p-3fd897c9.entry.js +0 -2
- package/dist/core/p-3fd897c9.entry.js.map +0 -1
- package/dist/core/p-432f8ff0.entry.js +0 -2
- package/dist/core/p-432f8ff0.entry.js.map +0 -1
- package/dist/core/p-4559600a.entry.js +0 -2
- package/dist/core/p-4559600a.entry.js.map +0 -1
- package/dist/core/p-59bdafff.entry.js +0 -2
- package/dist/core/p-59bdafff.entry.js.map +0 -1
- package/dist/core/p-5b487daa.entry.js +0 -2
- package/dist/core/p-5b487daa.entry.js.map +0 -1
- package/dist/core/p-5ca39ed5.entry.js +0 -2
- package/dist/core/p-5ca39ed5.entry.js.map +0 -1
- package/dist/core/p-752f0f9a.entry.js.map +0 -1
- package/dist/core/p-763d0822.entry.js +0 -2
- package/dist/core/p-763d0822.entry.js.map +0 -1
- package/dist/core/p-7bb3c340.entry.js +0 -2
- package/dist/core/p-7bb3c340.entry.js.map +0 -1
- package/dist/core/p-8b18346a.entry.js.map +0 -1
- package/dist/core/p-9ccfb863.entry.js +0 -2
- package/dist/core/p-9ccfb863.entry.js.map +0 -1
- package/dist/core/p-9d124fc7.js +0 -3
- package/dist/core/p-9d124fc7.js.map +0 -1
- package/dist/core/p-a448d873.entry.js +0 -2
- package/dist/core/p-a448d873.entry.js.map +0 -1
- package/dist/core/p-af9f1caa.entry.js.map +0 -1
- package/dist/core/p-b77ab20a.entry.js +0 -2
- package/dist/core/p-b77ab20a.entry.js.map +0 -1
- package/dist/core/p-c0c62df4.entry.js.map +0 -1
- package/dist/core/p-c36cbd8a.entry.js +0 -2
- package/dist/core/p-c36cbd8a.entry.js.map +0 -1
- package/dist/core/p-e2903ce9.entry.js +0 -2
- package/dist/core/p-e2903ce9.entry.js.map +0 -1
- package/dist/core/p-ea6ad791.entry.js +0 -2
- package/dist/core/p-ea6ad791.entry.js.map +0 -1
- package/dist/core/p-eb063498.entry.js.map +0 -1
- package/dist/core/p-ec82fa24.entry.js +0 -2
- package/dist/core/p-ec82fa24.entry.js.map +0 -1
- package/dist/core/p-f00e510b.entry.js +0 -2
- package/dist/core/p-f00e510b.entry.js.map +0 -1
- package/dist/core/p-f69fb26b.entry.js +0 -2
- package/dist/core/p-f69fb26b.entry.js.map +0 -1
- package/dist/core/p-fe6e0c0e.entry.js +0 -2
- package/dist/core/p-fe6e0c0e.entry.js.map +0 -1
- package/dist/esm/helpers-24f6e762.js.map +0 -1
- package/dist/esm/index-813020f1.js.map +0 -1
- package/dist/esm/types-b2398b37.js +0 -16
- /package/dist/core/{p-08b59078.entry.js.map → p-11736fbe.entry.js.map} +0 -0
- /package/dist/core/{p-5fcd202e.entry.js.map → p-15ef0674.entry.js.map} +0 -0
- /package/dist/core/{p-88ea1e49.entry.js.map → p-180e36b1.entry.js.map} +0 -0
- /package/dist/core/{p-613aa265.js.map → p-26b7b18f.js.map} +0 -0
- /package/dist/core/{p-932fb4b7.entry.js.map → p-287ab47c.entry.js.map} +0 -0
- /package/dist/core/{p-69948c3e.entry.js.map → p-2b24b4bf.entry.js.map} +0 -0
- /package/dist/core/{p-475b7bd2.entry.js.map → p-335fc5e4.entry.js.map} +0 -0
- /package/dist/core/{p-c9ef9f5c.entry.js.map → p-366bcb17.entry.js.map} +0 -0
- /package/dist/core/{p-ed256f1d.entry.js.map → p-3a0ef91e.entry.js.map} +0 -0
- /package/dist/core/{p-f019219c.entry.js.map → p-529d8955.entry.js.map} +0 -0
- /package/dist/core/{p-2c30b583.entry.js.map → p-60c4604f.entry.js.map} +0 -0
- /package/dist/core/{p-ccac1730.entry.js.map → p-6d3f9501.entry.js.map} +0 -0
- /package/dist/core/{p-536b3c97.entry.js.map → p-6eb0421d.entry.js.map} +0 -0
- /package/dist/core/{p-48525498.entry.js.map → p-765bdd98.entry.js.map} +0 -0
- /package/dist/core/{p-3a814fc4.entry.js.map → p-7f887c1e.entry.js.map} +0 -0
- /package/dist/core/{p-e3bffcae.entry.js.map → p-94e88827.entry.js.map} +0 -0
- /package/dist/core/{p-8fb4f0c0.js.map → p-95a864bf.js.map} +0 -0
- /package/dist/core/{p-0c82048e.entry.js.map → p-9c30720d.entry.js.map} +0 -0
- /package/dist/core/{p-76563540.entry.js.map → p-ad36a704.entry.js.map} +0 -0
- /package/dist/core/{p-2265e418.entry.js.map → p-b6a575c3.entry.js.map} +0 -0
- /package/dist/core/{p-fbc8a739.entry.js.map → p-b9736cf4.entry.js.map} +0 -0
- /package/dist/core/{p-025f9d2a.entry.js.map → p-b99f9e89.entry.js.map} +0 -0
- /package/dist/core/{p-b0ce60a0.entry.js.map → p-c2452388.entry.js.map} +0 -0
- /package/dist/core/{p-345fe84a.entry.js.map → p-c770e7a2.entry.js.map} +0 -0
- /package/dist/core/{p-a4397df4.entry.js.map → p-cfc930f6.entry.js.map} +0 -0
- /package/dist/core/{p-41c6eaa1.entry.js.map → p-e9738c74.entry.js.map} +0 -0
- /package/dist/core/{p-e2fd542e.entry.js.map → p-edd29edc.entry.js.map} +0 -0
- /package/dist/core/{p-5bb6c79b.entry.js.map → p-f2e6b9ef.entry.js.map} +0 -0
- /package/dist/core/{p-cf4bacee.entry.js.map → p-fdb4b48f.entry.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { newE2EPage } from "@stencil/core/testing";
|
|
2
2
|
beforeAll(() => {
|
|
3
|
-
|
|
3
|
+
jest.spyOn(console, "warn").mockImplementation(jest.fn());
|
|
4
4
|
});
|
|
5
5
|
const options = `[
|
|
6
6
|
{ label: 'Test label 1', value: 'Test value 1' },
|
|
@@ -92,530 +92,530 @@ const getTestSelectAsync = (firstDataset, secondDataset) => `<ic-select label="I
|
|
|
92
92
|
}, 1500)
|
|
93
93
|
</script>`;
|
|
94
94
|
const getMenuVisibility = async (page) => {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
95
|
+
return await page.evaluate(() => {
|
|
96
|
+
const menu = document
|
|
97
|
+
.querySelector("ic-select")
|
|
98
|
+
.shadowRoot.querySelector("ic-menu #ic-select-input-0-menu");
|
|
99
|
+
return window.getComputedStyle(menu).visibility;
|
|
100
|
+
});
|
|
101
101
|
};
|
|
102
102
|
const focusAndTypeIntoInput = async (value, page) => {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
});
|
|
107
|
-
value.split("").forEach(async (char) => {
|
|
108
|
-
await page.keyboard.press(char);
|
|
109
|
-
});
|
|
110
|
-
};
|
|
111
|
-
describe("ic-select", () => {
|
|
112
|
-
describe("custom", () => {
|
|
113
|
-
it("should render", async () => {
|
|
114
|
-
const page = await newE2EPage();
|
|
115
|
-
await page.setContent(getTestSelect(options));
|
|
116
|
-
await page.waitForChanges();
|
|
117
|
-
const select = await page.find("ic-select");
|
|
118
|
-
expect(select).not.toBeNull();
|
|
119
|
-
});
|
|
120
|
-
it("should render when no options are provided", async () => {
|
|
121
|
-
const page = await newE2EPage();
|
|
122
|
-
await page.setContent(`<ic-select label="IC Select Test"></ic-select>`);
|
|
123
|
-
await page.waitForChanges();
|
|
124
|
-
const select = await page.find("ic-select");
|
|
125
|
-
expect(select).not.toBeNull();
|
|
126
|
-
});
|
|
127
|
-
it("should open, set focus on menu and set aria-expanded to 'true' when input clicked", async () => {
|
|
128
|
-
const page = await newE2EPage();
|
|
129
|
-
await page.setContent(getTestSelect(options));
|
|
130
|
-
await page.waitForChanges();
|
|
131
|
-
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
132
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
133
|
-
await select.click();
|
|
134
|
-
await page.waitForChanges();
|
|
135
|
-
expect(await getMenuVisibility(page)).toBe("visible");
|
|
136
|
-
expect(select.getAttribute("aria-expanded")).toBeTruthy();
|
|
137
|
-
const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
|
|
138
|
-
expect(activeElId).toBe("ic-select-input-0-menu");
|
|
139
|
-
});
|
|
140
|
-
it("should render options correctly", async () => {
|
|
141
|
-
const page = await newE2EPage();
|
|
142
|
-
await page.setContent(getTestSelect(options));
|
|
143
|
-
await page.waitForChanges();
|
|
144
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
145
|
-
await select.click();
|
|
146
|
-
await page.waitForChanges();
|
|
147
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
148
|
-
const menuOptions = await menu.findAll("li");
|
|
149
|
-
expect(menuOptions).toHaveLength(3);
|
|
150
|
-
expect(menuOptions[0]).toEqualText("Test label 1");
|
|
151
|
-
expect(menuOptions[1]).toEqualText("Test label 2");
|
|
152
|
-
expect(menuOptions[2]).toEqualText("Test label 3");
|
|
153
|
-
});
|
|
154
|
-
it("should deduplicate options and warn about duplicate", async () => {
|
|
155
|
-
const page = await newE2EPage();
|
|
156
|
-
await page.setContent(getTestSelect(optionsWithDuplicate));
|
|
157
|
-
await page.waitForChanges();
|
|
158
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
159
|
-
await select.click();
|
|
160
|
-
await page.waitForChanges();
|
|
161
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
162
|
-
const menuOptions = await menu.findAll("li");
|
|
163
|
-
expect(menuOptions).toHaveLength(4);
|
|
164
|
-
expect(menuOptions[0]).toEqualText("Test label 1");
|
|
165
|
-
expect(menuOptions[1]).toEqualText("Test label 2");
|
|
166
|
-
expect(menuOptions[2]).toEqualText("Test label 3");
|
|
167
|
-
expect(menuOptions[3]).toEqualText("Test label 4");
|
|
168
|
-
// We can't test for ic-warn being called because it's already called seven times over 'hiddeninputvalue' changing
|
|
169
|
-
});
|
|
170
|
-
it("should call icChange when the selected option is changed", async () => {
|
|
171
|
-
const page = await newE2EPage();
|
|
172
|
-
await page.setContent(getTestSelect(options));
|
|
173
|
-
await page.waitForChanges();
|
|
174
|
-
const icChange = await page.spyOnEvent("icChange");
|
|
175
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
176
|
-
await select.press("ArrowDown");
|
|
177
|
-
await select.press("Enter");
|
|
178
|
-
await page.waitForChanges();
|
|
179
|
-
expect(icChange).toHaveReceivedEventDetail({
|
|
180
|
-
value: "Test value 1",
|
|
181
|
-
});
|
|
103
|
+
await page.$eval("ic-select", (el) => {
|
|
104
|
+
const input = el.shadowRoot.querySelector("input");
|
|
105
|
+
input.focus();
|
|
182
106
|
});
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
const page = await newE2EPage();
|
|
186
|
-
await page.setContent(getTestSelect(options));
|
|
187
|
-
await page.waitForChanges();
|
|
188
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
189
|
-
await select.press("ArrowDown");
|
|
190
|
-
await page.waitForChanges();
|
|
191
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
192
|
-
expect(await getMenuVisibility(page)).toBe("visible");
|
|
193
|
-
const firstOption = await menu.findAll("li");
|
|
194
|
-
expect(firstOption[0]).toHaveClass("focused-option");
|
|
195
|
-
expect(select).toEqualText("Test label 1");
|
|
196
|
-
});
|
|
197
|
-
it("should open menu when Space is pressed", async () => {
|
|
198
|
-
const page = await newE2EPage();
|
|
199
|
-
await page.setContent(getTestSelect(options));
|
|
200
|
-
await page.waitForChanges();
|
|
201
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
202
|
-
await select.press(" ");
|
|
203
|
-
await page.waitForChanges();
|
|
204
|
-
expect(await getMenuVisibility(page)).toBe("visible");
|
|
205
|
-
});
|
|
206
|
-
it("should open menu when Enter is pressed", async () => {
|
|
207
|
-
const page = await newE2EPage();
|
|
208
|
-
await page.setContent(getTestSelect(options));
|
|
209
|
-
await page.waitForChanges();
|
|
210
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
211
|
-
await select.press("Enter");
|
|
212
|
-
await page.waitForChanges();
|
|
213
|
-
await page.waitForTimeout(1000);
|
|
214
|
-
expect(await getMenuVisibility(page)).toBe("visible");
|
|
215
|
-
});
|
|
216
|
-
it("should open menu, apply focus style on last option and set as value when Up Arrow is pressed", async () => {
|
|
217
|
-
const page = await newE2EPage();
|
|
218
|
-
await page.setContent(getTestSelect(options));
|
|
219
|
-
await page.waitForChanges();
|
|
220
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
221
|
-
await select.press("ArrowUp");
|
|
222
|
-
await page.waitForChanges();
|
|
223
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
224
|
-
expect(await getMenuVisibility(page)).toBe("visible");
|
|
225
|
-
const lastOption = await menu.findAll("li");
|
|
226
|
-
expect(lastOption[2]).toHaveClass("focused-option");
|
|
227
|
-
expect(select).toEqualText("Test label 3");
|
|
228
|
-
});
|
|
229
|
-
it("should keep menu closed when Backspace, Home, End and Escape are pressed", async () => {
|
|
230
|
-
const page = await newE2EPage();
|
|
231
|
-
await page.setContent(getTestSelect(options));
|
|
232
|
-
await page.waitForChanges();
|
|
233
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
234
|
-
await select.press("Backspace");
|
|
235
|
-
await page.waitForChanges();
|
|
236
|
-
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
237
|
-
await select.press("Home");
|
|
238
|
-
await page.waitForChanges();
|
|
239
|
-
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
240
|
-
await select.press("End");
|
|
241
|
-
await page.waitForChanges();
|
|
242
|
-
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
243
|
-
await select.press("Escape");
|
|
244
|
-
await page.waitForChanges();
|
|
245
|
-
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
246
|
-
});
|
|
107
|
+
value.split("").forEach(async (char) => {
|
|
108
|
+
await page.keyboard.press(char);
|
|
247
109
|
});
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
258
|
-
const secondOption = await menu.findAll("li");
|
|
259
|
-
expect(secondOption[1]).toHaveClass("focused-option");
|
|
260
|
-
expect(select).toEqualText("Test label 2");
|
|
261
|
-
});
|
|
262
|
-
it("should move focus to first option and set as value when focus is on last option and Down Arrow is pressed", async () => {
|
|
263
|
-
const page = await newE2EPage();
|
|
264
|
-
await page.setContent(getTestSelect(options));
|
|
265
|
-
await page.waitForChanges();
|
|
266
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
267
|
-
await select.press("ArrowUp");
|
|
268
|
-
await select.press("ArrowDown");
|
|
269
|
-
await page.waitForChanges();
|
|
270
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
271
|
-
const firstOption = await menu.findAll("li");
|
|
272
|
-
expect(firstOption[0]).toHaveClass("focused-option");
|
|
273
|
-
expect(select).toEqualText("Test label 1");
|
|
274
|
-
});
|
|
275
|
-
it("should move focus to previous option and set as value when Up Arrow is pressed", async () => {
|
|
276
|
-
const page = await newE2EPage();
|
|
277
|
-
await page.setContent(getTestSelect(options));
|
|
278
|
-
await page.waitForChanges();
|
|
279
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
280
|
-
await select.press("ArrowUp");
|
|
281
|
-
await select.press("ArrowUp");
|
|
282
|
-
await page.waitForChanges();
|
|
283
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
284
|
-
const secondOption = await menu.findAll("li");
|
|
285
|
-
expect(secondOption[1]).toHaveClass("focused-option");
|
|
286
|
-
expect(select).toEqualText("Test label 2");
|
|
287
|
-
});
|
|
288
|
-
it("should move focus to last option and set as value when focus is on first option and Up Arrow is pressed", async () => {
|
|
289
|
-
const page = await newE2EPage();
|
|
290
|
-
await page.setContent(getTestSelect(options));
|
|
291
|
-
await page.waitForChanges();
|
|
292
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
293
|
-
await select.press("ArrowDown");
|
|
294
|
-
await select.press("ArrowUp");
|
|
295
|
-
await page.waitForChanges();
|
|
296
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
297
|
-
const lastOption = await menu.findAll("li");
|
|
298
|
-
expect(lastOption[2]).toHaveClass("focused-option");
|
|
299
|
-
expect(select).toEqualText("Test label 3");
|
|
300
|
-
});
|
|
301
|
-
it("should move focus to first option and set as value when Home is pressed", async () => {
|
|
302
|
-
const page = await newE2EPage();
|
|
303
|
-
await page.setContent(getTestSelect(options));
|
|
304
|
-
await page.waitForChanges();
|
|
305
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
306
|
-
await select.press("ArrowUp");
|
|
307
|
-
await page.keyboard.press("Home");
|
|
308
|
-
await page.waitForChanges();
|
|
309
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
310
|
-
const firstOption = await menu.findAll("li");
|
|
311
|
-
expect(firstOption[0]).toHaveClass("focused-option");
|
|
312
|
-
expect(select).toEqualText("Test label 1");
|
|
313
|
-
});
|
|
314
|
-
it("should move focus to last option and set as value when End is pressed", async () => {
|
|
315
|
-
const page = await newE2EPage();
|
|
316
|
-
await page.setContent(getTestSelect(options));
|
|
317
|
-
await page.waitForChanges();
|
|
318
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
319
|
-
await select.press("ArrowDown");
|
|
320
|
-
await page.keyboard.press("End");
|
|
321
|
-
await page.waitForChanges();
|
|
322
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
323
|
-
const lastOption = await menu.findAll("li");
|
|
324
|
-
expect(lastOption[2]).toHaveClass("focused-option");
|
|
325
|
-
expect(select).toEqualText("Test label 3");
|
|
326
|
-
});
|
|
327
|
-
it("should display a check next to the selected option and set aria-selected", async () => {
|
|
328
|
-
const page = await newE2EPage();
|
|
329
|
-
await page.setContent(getTestSelect(options));
|
|
330
|
-
await page.waitForChanges();
|
|
331
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
332
|
-
await select.press("ArrowDown");
|
|
333
|
-
await page.waitForChanges();
|
|
334
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
335
|
-
const firstOption = await menu.findAll("li");
|
|
336
|
-
expect(firstOption[0]).toHaveAttribute("aria-selected");
|
|
337
|
-
expect(await firstOption[0].find(".check-icon")).not.toBeNull;
|
|
338
|
-
expect(firstOption[1]).not.toHaveAttribute("aria-selected");
|
|
339
|
-
expect(await firstOption[1].find(".check-icon")).toBeNull;
|
|
340
|
-
});
|
|
341
|
-
it("should display a check next to the selected option and set aria-selected when a default value is applied", async () => {
|
|
342
|
-
const page = await newE2EPage();
|
|
343
|
-
await page.setContent(getTestSelect(options));
|
|
344
|
-
await page.waitForChanges();
|
|
345
|
-
const icSelect = await page.find("ic-select");
|
|
346
|
-
icSelect.setAttribute("value", "Test value 1");
|
|
347
|
-
await page.waitForChanges();
|
|
348
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
349
|
-
const firstOption = await menu.findAll("li");
|
|
350
|
-
expect(firstOption[0]).toHaveAttribute("aria-selected");
|
|
351
|
-
expect(await firstOption[0].find(".check-icon")).not.toBeNull;
|
|
352
|
-
});
|
|
353
|
-
it("should display clear button if the 'show-clear-button' prop is supplied and an option is selected", async () => {
|
|
354
|
-
const page = await newE2EPage();
|
|
355
|
-
await page.setContent(getTestSelect(options));
|
|
356
|
-
let clearButton = await page.find("ic-select >>> .clear-button");
|
|
357
|
-
expect(clearButton).toBeNull();
|
|
358
|
-
const icSelect = await page.find("ic-select");
|
|
359
|
-
icSelect.setAttribute("show-clear-button", true);
|
|
360
|
-
await page.waitForChanges();
|
|
361
|
-
clearButton = await page.find("ic-select >>> .clear-button");
|
|
362
|
-
expect(clearButton).toBeNull();
|
|
363
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
364
|
-
await select.press("ArrowDown");
|
|
365
|
-
await page.keyboard.press("Enter");
|
|
366
|
-
await page.waitForChanges();
|
|
367
|
-
clearButton = await page.find("ic-select >>> .clear-button");
|
|
368
|
-
expect(clearButton).not.toBeNull();
|
|
369
|
-
});
|
|
370
|
-
it("should clear the input if the clear button is clicked", async () => {
|
|
371
|
-
const page = await newE2EPage();
|
|
372
|
-
await page.setContent(getTestSelect(options));
|
|
373
|
-
const icSelect = await page.find("ic-select");
|
|
374
|
-
icSelect.setAttribute("show-clear-button", true);
|
|
375
|
-
await page.waitForChanges();
|
|
376
|
-
const icChange = await page.spyOnEvent("icChange");
|
|
377
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
378
|
-
await select.press("ArrowDown");
|
|
379
|
-
await page.keyboard.press("Enter");
|
|
380
|
-
await page.waitForChanges();
|
|
381
|
-
let clearButton = await page.find("ic-select >>> .clear-button");
|
|
382
|
-
await clearButton.click();
|
|
383
|
-
await page.waitForChanges();
|
|
384
|
-
expect(select).toEqualText("Select an option");
|
|
385
|
-
expect(icChange).toHaveReceivedEventDetail({
|
|
386
|
-
value: null,
|
|
110
|
+
};
|
|
111
|
+
describe("ic-select", () => {
|
|
112
|
+
describe("custom", () => {
|
|
113
|
+
it("should render", async () => {
|
|
114
|
+
const page = await newE2EPage();
|
|
115
|
+
await page.setContent(getTestSelect(options));
|
|
116
|
+
await page.waitForChanges();
|
|
117
|
+
const select = await page.find("ic-select");
|
|
118
|
+
expect(select).not.toBeNull();
|
|
387
119
|
});
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
120
|
+
it("should render when no options are provided", async () => {
|
|
121
|
+
const page = await newE2EPage();
|
|
122
|
+
await page.setContent(`<ic-select label="IC Select Test"></ic-select>`);
|
|
123
|
+
await page.waitForChanges();
|
|
124
|
+
const select = await page.find("ic-select");
|
|
125
|
+
expect(select).not.toBeNull();
|
|
126
|
+
});
|
|
127
|
+
it("should open, set focus on menu and set aria-expanded to 'true' when input clicked", async () => {
|
|
128
|
+
const page = await newE2EPage();
|
|
129
|
+
await page.setContent(getTestSelect(options));
|
|
130
|
+
await page.waitForChanges();
|
|
131
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
132
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
133
|
+
await select.click();
|
|
134
|
+
await page.waitForChanges();
|
|
135
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
136
|
+
expect(select.getAttribute("aria-expanded")).toBeTruthy();
|
|
137
|
+
const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
|
|
138
|
+
expect(activeElId).toBe("ic-select-input-0-menu");
|
|
139
|
+
});
|
|
140
|
+
it("should render options correctly", async () => {
|
|
141
|
+
const page = await newE2EPage();
|
|
142
|
+
await page.setContent(getTestSelect(options));
|
|
143
|
+
await page.waitForChanges();
|
|
144
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
145
|
+
await select.click();
|
|
146
|
+
await page.waitForChanges();
|
|
147
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
148
|
+
const menuOptions = await menu.findAll("li");
|
|
149
|
+
expect(menuOptions).toHaveLength(3);
|
|
150
|
+
expect(menuOptions[0]).toEqualText("Test label 1");
|
|
151
|
+
expect(menuOptions[1]).toEqualText("Test label 2");
|
|
152
|
+
expect(menuOptions[2]).toEqualText("Test label 3");
|
|
153
|
+
});
|
|
154
|
+
it("should deduplicate options and warn about duplicate", async () => {
|
|
155
|
+
const page = await newE2EPage();
|
|
156
|
+
await page.setContent(getTestSelect(optionsWithDuplicate));
|
|
157
|
+
await page.waitForChanges();
|
|
158
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
159
|
+
await select.click();
|
|
160
|
+
await page.waitForChanges();
|
|
161
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
162
|
+
const menuOptions = await menu.findAll("li");
|
|
163
|
+
expect(menuOptions).toHaveLength(4);
|
|
164
|
+
expect(menuOptions[0]).toEqualText("Test label 1");
|
|
165
|
+
expect(menuOptions[1]).toEqualText("Test label 2");
|
|
166
|
+
expect(menuOptions[2]).toEqualText("Test label 3");
|
|
167
|
+
expect(menuOptions[3]).toEqualText("Test label 4");
|
|
168
|
+
// We can't test for ic-warn being called because it's already called seven times over 'hiddeninputvalue' changing
|
|
169
|
+
});
|
|
170
|
+
it("should call icChange when the selected option is changed", async () => {
|
|
171
|
+
const page = await newE2EPage();
|
|
172
|
+
await page.setContent(getTestSelect(options));
|
|
173
|
+
await page.waitForChanges();
|
|
174
|
+
const icChange = await page.spyOnEvent("icChange");
|
|
175
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
176
|
+
await select.press("ArrowDown");
|
|
177
|
+
await select.press("Enter");
|
|
178
|
+
await page.waitForChanges();
|
|
179
|
+
expect(icChange).toHaveReceivedEventDetail({
|
|
180
|
+
value: "Test value 1",
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
describe("when no option is selected", () => {
|
|
184
|
+
it("should open menu, apply focus style on first option and set as value when Down Arrow is pressed", async () => {
|
|
185
|
+
const page = await newE2EPage();
|
|
186
|
+
await page.setContent(getTestSelect(options));
|
|
187
|
+
await page.waitForChanges();
|
|
188
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
189
|
+
await select.press("ArrowDown");
|
|
190
|
+
await page.waitForChanges();
|
|
191
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
192
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
193
|
+
const firstOption = await menu.findAll("li");
|
|
194
|
+
expect(firstOption[0]).toHaveClass("focused-option");
|
|
195
|
+
expect(select).toEqualText("Test label 1");
|
|
196
|
+
});
|
|
197
|
+
it("should open menu when Space is pressed", async () => {
|
|
198
|
+
const page = await newE2EPage();
|
|
199
|
+
await page.setContent(getTestSelect(options));
|
|
200
|
+
await page.waitForChanges();
|
|
201
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
202
|
+
await select.press(" ");
|
|
203
|
+
await page.waitForChanges();
|
|
204
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
205
|
+
});
|
|
206
|
+
it("should open menu when Enter is pressed", async () => {
|
|
207
|
+
const page = await newE2EPage();
|
|
208
|
+
await page.setContent(getTestSelect(options));
|
|
209
|
+
await page.waitForChanges();
|
|
210
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
211
|
+
await select.press("Enter");
|
|
212
|
+
await page.waitForChanges();
|
|
213
|
+
await page.waitForTimeout(1000);
|
|
214
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
215
|
+
});
|
|
216
|
+
it("should open menu, apply focus style on last option and set as value when Up Arrow is pressed", async () => {
|
|
217
|
+
const page = await newE2EPage();
|
|
218
|
+
await page.setContent(getTestSelect(options));
|
|
219
|
+
await page.waitForChanges();
|
|
220
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
221
|
+
await select.press("ArrowUp");
|
|
222
|
+
await page.waitForChanges();
|
|
223
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
224
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
225
|
+
const lastOption = await menu.findAll("li");
|
|
226
|
+
expect(lastOption[2]).toHaveClass("focused-option");
|
|
227
|
+
expect(select).toEqualText("Test label 3");
|
|
228
|
+
});
|
|
229
|
+
it("should keep menu closed when Backspace, Home, End and Escape are pressed", async () => {
|
|
230
|
+
const page = await newE2EPage();
|
|
231
|
+
await page.setContent(getTestSelect(options));
|
|
232
|
+
await page.waitForChanges();
|
|
233
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
234
|
+
await select.press("Backspace");
|
|
235
|
+
await page.waitForChanges();
|
|
236
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
237
|
+
await select.press("Home");
|
|
238
|
+
await page.waitForChanges();
|
|
239
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
240
|
+
await select.press("End");
|
|
241
|
+
await page.waitForChanges();
|
|
242
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
243
|
+
await select.press("Escape");
|
|
244
|
+
await page.waitForChanges();
|
|
245
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
describe("when an option is selected", () => {
|
|
249
|
+
it("should move focus to next option and set as value when Down Arrow is pressed", async () => {
|
|
250
|
+
const page = await newE2EPage();
|
|
251
|
+
await page.setContent(getTestSelect(options));
|
|
252
|
+
await page.waitForChanges();
|
|
253
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
254
|
+
await select.press("ArrowDown");
|
|
255
|
+
await select.press("ArrowDown");
|
|
256
|
+
await page.waitForChanges();
|
|
257
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
258
|
+
const secondOption = await menu.findAll("li");
|
|
259
|
+
expect(secondOption[1]).toHaveClass("focused-option");
|
|
260
|
+
expect(select).toEqualText("Test label 2");
|
|
261
|
+
});
|
|
262
|
+
it("should move focus to first option and set as value when focus is on last option and Down Arrow is pressed", async () => {
|
|
263
|
+
const page = await newE2EPage();
|
|
264
|
+
await page.setContent(getTestSelect(options));
|
|
265
|
+
await page.waitForChanges();
|
|
266
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
267
|
+
await select.press("ArrowUp");
|
|
268
|
+
await select.press("ArrowDown");
|
|
269
|
+
await page.waitForChanges();
|
|
270
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
271
|
+
const firstOption = await menu.findAll("li");
|
|
272
|
+
expect(firstOption[0]).toHaveClass("focused-option");
|
|
273
|
+
expect(select).toEqualText("Test label 1");
|
|
274
|
+
});
|
|
275
|
+
it("should move focus to previous option and set as value when Up Arrow is pressed", async () => {
|
|
276
|
+
const page = await newE2EPage();
|
|
277
|
+
await page.setContent(getTestSelect(options));
|
|
278
|
+
await page.waitForChanges();
|
|
279
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
280
|
+
await select.press("ArrowUp");
|
|
281
|
+
await select.press("ArrowUp");
|
|
282
|
+
await page.waitForChanges();
|
|
283
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
284
|
+
const secondOption = await menu.findAll("li");
|
|
285
|
+
expect(secondOption[1]).toHaveClass("focused-option");
|
|
286
|
+
expect(select).toEqualText("Test label 2");
|
|
287
|
+
});
|
|
288
|
+
it("should move focus to last option and set as value when focus is on first option and Up Arrow is pressed", async () => {
|
|
289
|
+
const page = await newE2EPage();
|
|
290
|
+
await page.setContent(getTestSelect(options));
|
|
291
|
+
await page.waitForChanges();
|
|
292
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
293
|
+
await select.press("ArrowDown");
|
|
294
|
+
await select.press("ArrowUp");
|
|
295
|
+
await page.waitForChanges();
|
|
296
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
297
|
+
const lastOption = await menu.findAll("li");
|
|
298
|
+
expect(lastOption[2]).toHaveClass("focused-option");
|
|
299
|
+
expect(select).toEqualText("Test label 3");
|
|
300
|
+
});
|
|
301
|
+
it("should move focus to first option and set as value when Home is pressed", async () => {
|
|
302
|
+
const page = await newE2EPage();
|
|
303
|
+
await page.setContent(getTestSelect(options));
|
|
304
|
+
await page.waitForChanges();
|
|
305
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
306
|
+
await select.press("ArrowUp");
|
|
307
|
+
await page.keyboard.press("Home");
|
|
308
|
+
await page.waitForChanges();
|
|
309
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
310
|
+
const firstOption = await menu.findAll("li");
|
|
311
|
+
expect(firstOption[0]).toHaveClass("focused-option");
|
|
312
|
+
expect(select).toEqualText("Test label 1");
|
|
313
|
+
});
|
|
314
|
+
it("should move focus to last option and set as value when End is pressed", async () => {
|
|
315
|
+
const page = await newE2EPage();
|
|
316
|
+
await page.setContent(getTestSelect(options));
|
|
317
|
+
await page.waitForChanges();
|
|
318
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
319
|
+
await select.press("ArrowDown");
|
|
320
|
+
await page.keyboard.press("End");
|
|
321
|
+
await page.waitForChanges();
|
|
322
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
323
|
+
const lastOption = await menu.findAll("li");
|
|
324
|
+
expect(lastOption[2]).toHaveClass("focused-option");
|
|
325
|
+
expect(select).toEqualText("Test label 3");
|
|
326
|
+
});
|
|
327
|
+
it("should display a check next to the selected option and set aria-selected", async () => {
|
|
328
|
+
const page = await newE2EPage();
|
|
329
|
+
await page.setContent(getTestSelect(options));
|
|
330
|
+
await page.waitForChanges();
|
|
331
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
332
|
+
await select.press("ArrowDown");
|
|
333
|
+
await page.waitForChanges();
|
|
334
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
335
|
+
const firstOption = await menu.findAll("li");
|
|
336
|
+
expect(firstOption[0]).toHaveAttribute("aria-selected");
|
|
337
|
+
expect(await firstOption[0].find(".check-icon")).not.toBeNull;
|
|
338
|
+
expect(firstOption[1]).not.toHaveAttribute("aria-selected");
|
|
339
|
+
expect(await firstOption[1].find(".check-icon")).toBeNull;
|
|
340
|
+
});
|
|
341
|
+
it("should display a check next to the selected option and set aria-selected when a default value is applied", async () => {
|
|
342
|
+
const page = await newE2EPage();
|
|
343
|
+
await page.setContent(getTestSelect(options));
|
|
344
|
+
await page.waitForChanges();
|
|
345
|
+
const icSelect = await page.find("ic-select");
|
|
346
|
+
icSelect.setAttribute("value", "Test value 1");
|
|
347
|
+
await page.waitForChanges();
|
|
348
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
349
|
+
const firstOption = await menu.findAll("li");
|
|
350
|
+
expect(firstOption[0]).toHaveAttribute("aria-selected");
|
|
351
|
+
expect(await firstOption[0].find(".check-icon")).not.toBeNull;
|
|
352
|
+
});
|
|
353
|
+
it("should display clear button if the 'show-clear-button' prop is supplied and an option is selected", async () => {
|
|
354
|
+
const page = await newE2EPage();
|
|
355
|
+
await page.setContent(getTestSelect(options));
|
|
356
|
+
let clearButton = await page.find("ic-select >>> .clear-button");
|
|
357
|
+
expect(clearButton).toBeNull();
|
|
358
|
+
const icSelect = await page.find("ic-select");
|
|
359
|
+
icSelect.setAttribute("show-clear-button", true);
|
|
360
|
+
await page.waitForChanges();
|
|
361
|
+
clearButton = await page.find("ic-select >>> .clear-button");
|
|
362
|
+
expect(clearButton).toBeNull();
|
|
363
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
364
|
+
await select.press("ArrowDown");
|
|
365
|
+
await page.keyboard.press("Enter");
|
|
366
|
+
await page.waitForChanges();
|
|
367
|
+
clearButton = await page.find("ic-select >>> .clear-button");
|
|
368
|
+
expect(clearButton).not.toBeNull();
|
|
369
|
+
});
|
|
370
|
+
it("should clear the input if the clear button is clicked", async () => {
|
|
371
|
+
const page = await newE2EPage();
|
|
372
|
+
await page.setContent(getTestSelect(options));
|
|
373
|
+
const icSelect = await page.find("ic-select");
|
|
374
|
+
icSelect.setAttribute("show-clear-button", true);
|
|
375
|
+
await page.waitForChanges();
|
|
376
|
+
const icChange = await page.spyOnEvent("icChange");
|
|
377
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
378
|
+
await select.press("ArrowDown");
|
|
379
|
+
await page.keyboard.press("Enter");
|
|
380
|
+
await page.waitForChanges();
|
|
381
|
+
let clearButton = await page.find("ic-select >>> .clear-button");
|
|
382
|
+
await clearButton.click();
|
|
383
|
+
await page.waitForChanges();
|
|
384
|
+
expect(select).toEqualText("Select an option");
|
|
385
|
+
expect(icChange).toHaveReceivedEventDetail({
|
|
386
|
+
value: null,
|
|
387
|
+
});
|
|
388
|
+
clearButton = await page.find("ic-select >>> .clear-button");
|
|
389
|
+
expect(clearButton).toBeNull;
|
|
390
|
+
});
|
|
391
|
+
});
|
|
392
|
+
it("should close menu when input is clicked while open and set focus on it", async () => {
|
|
393
|
+
const page = await newE2EPage();
|
|
394
|
+
await page.setContent(getTestSelect(options));
|
|
395
|
+
await page.waitForChanges();
|
|
396
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
397
|
+
await select.click();
|
|
398
|
+
await page.waitForChanges();
|
|
399
|
+
await select.click();
|
|
400
|
+
await page.waitForChanges();
|
|
401
|
+
await page.waitForTimeout(1000);
|
|
402
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
403
|
+
const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
|
|
404
|
+
expect(activeElId).toBe("ic-select-input-0");
|
|
405
|
+
});
|
|
406
|
+
it("should close menu when an option is clicked, set as value and move focus onto the input", async () => {
|
|
407
|
+
const page = await newE2EPage();
|
|
408
|
+
await page.setContent(getTestSelect(options));
|
|
409
|
+
await page.waitForChanges();
|
|
410
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
411
|
+
await select.click();
|
|
412
|
+
await page.waitForChanges();
|
|
413
|
+
const icChange = await page.spyOnEvent("icChange");
|
|
414
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
415
|
+
await menu.click();
|
|
416
|
+
await page.waitForChanges();
|
|
417
|
+
await page.waitForTimeout(1000);
|
|
418
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
419
|
+
expect(icChange).toHaveReceivedEventDetail({
|
|
420
|
+
value: "Test value 2",
|
|
421
|
+
});
|
|
422
|
+
expect(select).toEqualText("Test label 2");
|
|
423
|
+
const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
|
|
424
|
+
expect(activeElId).toBe("ic-select-input-0");
|
|
425
|
+
});
|
|
426
|
+
it("should close menu when Space is pressed and move focus to the input", async () => {
|
|
427
|
+
const page = await newE2EPage();
|
|
428
|
+
await page.setContent(getTestSelect(options));
|
|
429
|
+
await page.waitForChanges();
|
|
430
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
431
|
+
await select.press("ArrowDown");
|
|
432
|
+
await page.waitForChanges();
|
|
433
|
+
await page.keyboard.press(" ");
|
|
434
|
+
await page.waitForChanges();
|
|
435
|
+
await page.waitForTimeout(1000);
|
|
436
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
437
|
+
const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
|
|
438
|
+
expect(activeElId).toBe("ic-select-input-0");
|
|
439
|
+
});
|
|
440
|
+
it("should close menu when Enter is pressed and set focus to the input", async () => {
|
|
441
|
+
const page = await newE2EPage();
|
|
442
|
+
await page.setContent(getTestSelect(options));
|
|
443
|
+
await page.waitForChanges();
|
|
444
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
445
|
+
await select.press("ArrowDown");
|
|
446
|
+
await page.waitForChanges();
|
|
447
|
+
await page.keyboard.press("Enter");
|
|
448
|
+
await page.waitForChanges();
|
|
449
|
+
await page.waitForTimeout(1000);
|
|
450
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
451
|
+
const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
|
|
452
|
+
expect(activeElId).toBe("ic-select-input-0");
|
|
453
|
+
});
|
|
454
|
+
it("should close menu when Escape is pressed and set focus to the input", async () => {
|
|
455
|
+
const page = await newE2EPage();
|
|
456
|
+
await page.setContent(getTestSelect(options));
|
|
457
|
+
await page.waitForChanges();
|
|
458
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
459
|
+
await select.press("ArrowDown");
|
|
460
|
+
await page.waitForChanges();
|
|
461
|
+
await page.keyboard.press("Escape");
|
|
462
|
+
await page.waitForChanges();
|
|
463
|
+
await page.waitForTimeout(1000);
|
|
464
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
465
|
+
const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
|
|
466
|
+
expect(activeElId).toBe("ic-select-input-0");
|
|
467
|
+
});
|
|
468
|
+
it("should close menu when another element on the page is clicked", async () => {
|
|
469
|
+
const page = await newE2EPage();
|
|
470
|
+
await page.setContent(`${getTestSelect(options)}<button>Test button</button>`);
|
|
471
|
+
await page.waitForChanges();
|
|
472
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
473
|
+
await select.press("ArrowDown");
|
|
474
|
+
await page.waitForChanges();
|
|
475
|
+
const button = await page.find("button");
|
|
476
|
+
await button.click();
|
|
477
|
+
await page.waitForChanges();
|
|
478
|
+
await page.waitForTimeout(1000);
|
|
479
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
480
|
+
});
|
|
481
|
+
it("should close menu when Tab is pressed to move focus onto the next element on the page", async () => {
|
|
482
|
+
const page = await newE2EPage();
|
|
483
|
+
await page.setContent(`${getTestSelect(options)}<button>Test button</button>`);
|
|
484
|
+
await page.waitForChanges();
|
|
485
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
486
|
+
await select.press("ArrowDown");
|
|
487
|
+
await page.waitForChanges();
|
|
488
|
+
await page.keyboard.press("Tab");
|
|
489
|
+
await page.waitForChanges();
|
|
490
|
+
await page.waitForTimeout(1000);
|
|
491
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
492
|
+
});
|
|
493
|
+
it("should close menu when Shift + Tab is pressed to move focus onto the input", async () => {
|
|
494
|
+
const page = await newE2EPage();
|
|
495
|
+
await page.setContent(`${getTestSelect(options)}`);
|
|
496
|
+
await page.waitForChanges();
|
|
497
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
498
|
+
await select.press("ArrowDown");
|
|
499
|
+
await page.waitForChanges();
|
|
500
|
+
await page.waitForTimeout(1000);
|
|
501
|
+
await page.keyboard.down("Shift");
|
|
502
|
+
await page.keyboard.press("Tab");
|
|
503
|
+
await page.waitForChanges();
|
|
504
|
+
await page.keyboard.up("Shift");
|
|
505
|
+
await page.waitForChanges();
|
|
506
|
+
await page.waitForTimeout(1000);
|
|
507
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
508
|
+
const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
|
|
509
|
+
expect(activeElId).toBe("ic-select-input-0");
|
|
510
|
+
});
|
|
511
|
+
it("should display the label of the value passed in using the 'value' prop as the selected option", async () => {
|
|
512
|
+
const page = await newE2EPage();
|
|
513
|
+
await page.setContent(getTestSelect(options));
|
|
514
|
+
const icSelect = await page.find("ic-select");
|
|
515
|
+
icSelect.setAttribute("value", "Test value 2");
|
|
516
|
+
await page.waitForChanges();
|
|
517
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
518
|
+
expect(select).toEqualText("Test label 2");
|
|
519
|
+
});
|
|
520
|
+
it("should render options with descriptions", async () => {
|
|
521
|
+
const page = await newE2EPage();
|
|
522
|
+
const optionsWithDescription = `[
|
|
523
523
|
{ label: 'Test label 1', value: 'Test value 1', description: 'Test description 1' },
|
|
524
524
|
{ label: 'Test label 2', value: 'Test value 2' },
|
|
525
525
|
{ label: 'Test label 3', value: 'Test value 3' },
|
|
526
526
|
]`;
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
527
|
+
await page.setContent(getTestSelect(optionsWithDescription));
|
|
528
|
+
await page.waitForChanges();
|
|
529
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
530
|
+
await select.press("ArrowDown");
|
|
531
|
+
await page.waitForChanges();
|
|
532
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
533
|
+
const firstOptionDescription = await menu.find("li .option-description");
|
|
534
|
+
expect(firstOptionDescription).toEqualText("Test description 1");
|
|
535
|
+
});
|
|
536
|
+
it("should render the placeholder", async () => {
|
|
537
|
+
const page = await newE2EPage();
|
|
538
|
+
await page.setContent(getTestSelect(options));
|
|
539
|
+
const icSelect = await page.find("ic-select");
|
|
540
|
+
icSelect.setAttribute("placeholder", "Test placeholder");
|
|
541
|
+
await page.waitForChanges();
|
|
542
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
543
|
+
expect(select).toEqualText("Test placeholder");
|
|
544
|
+
});
|
|
545
|
+
it("should render as disabled correctly", async () => {
|
|
546
|
+
const page = await newE2EPage();
|
|
547
|
+
await page.setContent(getTestSelect(options));
|
|
548
|
+
const icSelect = await page.find("ic-select");
|
|
549
|
+
icSelect.setAttribute("disabled", true);
|
|
550
|
+
await page.waitForChanges();
|
|
551
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
552
|
+
expect(select).toHaveAttribute("disabled");
|
|
553
|
+
await select.click();
|
|
554
|
+
await page.waitForChanges();
|
|
555
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
556
|
+
});
|
|
557
|
+
it("should prevent click on disabled options", async () => {
|
|
558
|
+
const page = await newE2EPage();
|
|
559
|
+
const optionsWithDisabled = `[
|
|
560
560
|
{ label: 'Test label 1', value: 'Test value 1' },
|
|
561
561
|
{ label: 'Test label 2', value: 'Test value 2', disabled: true },
|
|
562
562
|
{ label: 'Test label 3', value: 'Test value 3' },
|
|
563
563
|
]`;
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
564
|
+
await page.setContent(getTestSelect(optionsWithDisabled));
|
|
565
|
+
await page.waitForChanges();
|
|
566
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
567
|
+
await select.press("ArrowDown");
|
|
568
|
+
await page.waitForChanges();
|
|
569
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
570
|
+
await menu.click();
|
|
571
|
+
await page.waitForChanges();
|
|
572
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
573
|
+
});
|
|
574
|
+
it("should set aria-disabled and skip focus when option disabled", async () => {
|
|
575
|
+
const page = await newE2EPage();
|
|
576
|
+
const optionsWithDisabled = `[
|
|
577
577
|
{ label: 'Test label 1', value: 'Test value 1', disabled: true },
|
|
578
578
|
{ label: 'Test label 2', value: 'Test value 2' },
|
|
579
579
|
{ label: 'Test label 3', value: 'Test value 3' },
|
|
580
580
|
]`;
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
581
|
+
await page.setContent(getTestSelect(optionsWithDisabled));
|
|
582
|
+
await page.waitForChanges();
|
|
583
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
584
|
+
await select.press("ArrowDown");
|
|
585
|
+
await page.waitForChanges();
|
|
586
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
587
|
+
const menuOptions = await menu.findAll("li");
|
|
588
|
+
expect(menuOptions[0]).toHaveAttribute("aria-disabled");
|
|
589
|
+
expect(menuOptions[1]).toHaveClass("focused-option");
|
|
590
|
+
});
|
|
591
|
+
it("should render as required correctly", async () => {
|
|
592
|
+
const page = await newE2EPage();
|
|
593
|
+
await page.setContent(getTestSelect(options));
|
|
594
|
+
const icSelect = await page.find("ic-select");
|
|
595
|
+
icSelect.setAttribute("required", true);
|
|
596
|
+
await page.waitForChanges();
|
|
597
|
+
const label = await page.find("ic-select >>> ic-input-label");
|
|
598
|
+
expect(label).toEqualText("IC Select Test *");
|
|
599
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
600
|
+
expect(select.getAttribute("aria-label").includes("required")).toBeTruthy();
|
|
601
|
+
});
|
|
602
|
+
it("should render selected value as text when read-only", async () => {
|
|
603
|
+
const page = await newE2EPage();
|
|
604
|
+
await page.setContent(getTestSelect(options));
|
|
605
|
+
const icSelect = await page.find("ic-select");
|
|
606
|
+
icSelect.setAttribute("value", "Test value 1");
|
|
607
|
+
icSelect.setAttribute("readonly", true);
|
|
608
|
+
await page.waitForChanges();
|
|
609
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
610
|
+
const typography = await page.evaluate(() => Array.from(document
|
|
611
|
+
.querySelector("ic-select")
|
|
612
|
+
.shadowRoot.querySelectorAll("ic-typography"), (typography) => typography.innerText));
|
|
613
|
+
expect(select).toBe(null);
|
|
614
|
+
expect(typography[1]).toBe("Test label 1");
|
|
615
|
+
});
|
|
616
|
+
it("should render options as groups if they have children", async () => {
|
|
617
|
+
const page = await newE2EPage();
|
|
618
|
+
const groupedOptions = `[
|
|
619
619
|
{
|
|
620
620
|
label: 'Test group',
|
|
621
621
|
children: [
|
|
@@ -625,21 +625,21 @@ describe("ic-select", () => {
|
|
|
625
625
|
],
|
|
626
626
|
},
|
|
627
627
|
]`;
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
628
|
+
await page.setContent(getTestSelect(groupedOptions));
|
|
629
|
+
await page.waitForChanges();
|
|
630
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
631
|
+
await select.press("ArrowDown");
|
|
632
|
+
await page.waitForChanges();
|
|
633
|
+
const optionGroupTitle = await page.find("ic-select >>> ic-menu >>> .option-group-title");
|
|
634
|
+
expect(optionGroupTitle).not.toBeNull();
|
|
635
|
+
const optionsText = await page.evaluate(() => Array.from(document
|
|
636
|
+
.querySelector("ic-select")
|
|
637
|
+
.shadowRoot.querySelectorAll("ic-menu ic-typography"), (typography) => typography.innerText));
|
|
638
|
+
expect(optionsText[0]).toBe("Test group");
|
|
639
|
+
});
|
|
640
|
+
it("should render and focus child options correctly", async () => {
|
|
641
|
+
const page = await newE2EPage();
|
|
642
|
+
const groupedOptions = `[
|
|
643
643
|
{
|
|
644
644
|
label: 'Test group',
|
|
645
645
|
children: [
|
|
@@ -649,63 +649,63 @@ describe("ic-select", () => {
|
|
|
649
649
|
],
|
|
650
650
|
},
|
|
651
651
|
]`;
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
652
|
+
await page.setContent(getTestSelect(groupedOptions));
|
|
653
|
+
await page.waitForChanges();
|
|
654
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
655
|
+
await select.press("ArrowDown");
|
|
656
|
+
await page.waitForChanges();
|
|
657
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
658
|
+
const childOptions = await menu.findAll("li");
|
|
659
|
+
expect(childOptions).toHaveLength(3);
|
|
660
|
+
expect(childOptions[0]).toEqualText("Test label 1");
|
|
661
|
+
expect(childOptions[1]).toEqualText("Test label 2");
|
|
662
|
+
expect(childOptions[2]).toEqualText("Test label 3");
|
|
663
|
+
expect(childOptions[0]).toHaveClass("focused-option");
|
|
664
|
+
});
|
|
665
|
+
it("should render options at the top of the menu if they are recommended", async () => {
|
|
666
|
+
const page = await newE2EPage();
|
|
667
|
+
const optionsWithDisabled = `[
|
|
668
668
|
{ label: 'Test label 1', value: 'Test value 1' },
|
|
669
669
|
{ label: 'Test label 2', value: 'Test value 2', recommended: true },
|
|
670
670
|
{ label: 'Test label 3', value: 'Test value 3' },
|
|
671
671
|
]`;
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
672
|
+
await page.setContent(getTestSelect(optionsWithDisabled));
|
|
673
|
+
await page.waitForChanges();
|
|
674
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
675
|
+
await select.press("ArrowDown");
|
|
676
|
+
await page.waitForChanges();
|
|
677
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
678
|
+
const firstOption = await menu.findAll("li");
|
|
679
|
+
expect(firstOption[0]).toEqualText("Test label 2");
|
|
680
|
+
});
|
|
681
|
+
it("should set aria-invalid if validation status is 'error'", async () => {
|
|
682
|
+
const page = await newE2EPage();
|
|
683
|
+
await page.setContent(getTestSelect(options));
|
|
684
|
+
const icSelect = await page.find("ic-select");
|
|
685
|
+
icSelect.setAttribute("validation-status", "error");
|
|
686
|
+
await page.waitForChanges();
|
|
687
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
688
|
+
expect(select).toHaveAttribute("aria-invalid");
|
|
689
|
+
});
|
|
690
|
+
it("should set the aria-label correctly if an option has a description", async () => {
|
|
691
|
+
const page = await newE2EPage();
|
|
692
|
+
const optionsWithDescription = `[
|
|
693
693
|
{ label: 'Test label 1', value: 'Test value 1', description: 'Test description 1' },
|
|
694
694
|
{ label: 'Test label 2', value: 'Test value 2' },
|
|
695
695
|
{ label: 'Test label 3', value: 'Test value 3' },
|
|
696
696
|
]`;
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
697
|
+
await page.setContent(getTestSelect(optionsWithDescription));
|
|
698
|
+
await page.waitForChanges();
|
|
699
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
700
|
+
await select.press("ArrowDown");
|
|
701
|
+
await page.waitForChanges();
|
|
702
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
703
|
+
const firstOption = await menu.findAll("li");
|
|
704
|
+
expect(firstOption[0].getAttribute("aria-label")).toBe("Test label 1, Test description 1");
|
|
705
|
+
});
|
|
706
|
+
it("should set the aria-label correctly if an option is within a group", async () => {
|
|
707
|
+
const page = await newE2EPage();
|
|
708
|
+
const optionsWithDescription = `[
|
|
709
709
|
{
|
|
710
710
|
label: 'Test group',
|
|
711
711
|
children: [
|
|
@@ -715,18 +715,18 @@ describe("ic-select", () => {
|
|
|
715
715
|
],
|
|
716
716
|
},
|
|
717
717
|
]`;
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
718
|
+
await page.setContent(getTestSelect(optionsWithDescription));
|
|
719
|
+
await page.waitForChanges();
|
|
720
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
721
|
+
await select.press("ArrowDown");
|
|
722
|
+
await page.waitForChanges();
|
|
723
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
724
|
+
const firstOption = await menu.findAll("li");
|
|
725
|
+
expect(firstOption[0].getAttribute("aria-label")).toBe("Test label 1, Test group group");
|
|
726
|
+
});
|
|
727
|
+
it("should set the aria-label correctly if an option has a description and is within a group", async () => {
|
|
728
|
+
const page = await newE2EPage();
|
|
729
|
+
const optionsWithDescription = `[
|
|
730
730
|
{
|
|
731
731
|
label: 'Test group',
|
|
732
732
|
children: [
|
|
@@ -736,41 +736,41 @@ describe("ic-select", () => {
|
|
|
736
736
|
],
|
|
737
737
|
},
|
|
738
738
|
]`;
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
739
|
+
await page.setContent(getTestSelect(optionsWithDescription));
|
|
740
|
+
await page.waitForChanges();
|
|
741
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
742
|
+
await select.press("ArrowDown");
|
|
743
|
+
await page.waitForChanges();
|
|
744
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
745
|
+
const firstOption = await menu.findAll("li");
|
|
746
|
+
expect(firstOption[0].getAttribute("aria-label")).toBe("Test label 1, Test description 1, Test group group");
|
|
747
|
+
});
|
|
748
|
+
it("should call icFocus when focused", async () => {
|
|
749
|
+
const page = await newE2EPage();
|
|
750
|
+
await page.setContent(`<button>Test button</button>${getTestSelect(options)}`);
|
|
751
|
+
await page.waitForChanges();
|
|
752
|
+
const button = await page.find("button");
|
|
753
|
+
await button.focus();
|
|
754
|
+
await page.waitForChanges();
|
|
755
|
+
const icFocus = await page.spyOnEvent("icFocus");
|
|
756
|
+
await page.keyboard.down("Tab");
|
|
757
|
+
await page.waitForChanges();
|
|
758
|
+
expect(icFocus).toHaveReceivedEvent();
|
|
759
|
+
});
|
|
760
|
+
it("should call icBlur when it loses focus", async () => {
|
|
761
|
+
const page = await newE2EPage();
|
|
762
|
+
await page.setContent(getTestSelect(options));
|
|
763
|
+
await page.waitForChanges();
|
|
764
|
+
const icBlur = await page.spyOnEvent("icBlur");
|
|
765
|
+
await page.keyboard.down("Tab");
|
|
766
|
+
await page.keyboard.down("Tab");
|
|
767
|
+
await page.waitForChanges();
|
|
768
|
+
expect(icBlur).toHaveReceivedEvent();
|
|
769
|
+
});
|
|
770
|
+
describe("loading", () => {
|
|
771
|
+
it("should display a loading message and then the options when fetching options externally", async () => {
|
|
772
|
+
const page = await newE2EPage();
|
|
773
|
+
await page.setContent(`<ic-select label="IC Select Test" loading="true"></ic-select>
|
|
774
774
|
<script>
|
|
775
775
|
var select = document.querySelector('ic-select');
|
|
776
776
|
select.options = [];
|
|
@@ -786,51 +786,51 @@ describe("ic-select", () => {
|
|
|
786
786
|
];
|
|
787
787
|
}, 1000);
|
|
788
788
|
</script>`);
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
789
|
+
await page.waitForChanges();
|
|
790
|
+
let firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li");
|
|
791
|
+
expect(firstOption).toEqualText("Loading...");
|
|
792
|
+
await page.waitForTimeout(1500);
|
|
793
|
+
firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li");
|
|
794
|
+
expect(firstOption).toEqualText("Test label 1");
|
|
795
|
+
const icSelect = await page.find("ic-select");
|
|
796
|
+
expect(icSelect.getAttribute("loading")).toBeFalsy;
|
|
797
|
+
});
|
|
798
|
+
it("should display a retry button and a custom loading error when it times out and should not update the options", async () => {
|
|
799
|
+
const page = await newE2EPage();
|
|
800
|
+
await page.setContent(`<ic-select label="IC Select Test" loading="true" timeout="500" options="[]" loading-error-label="Error"></ic-select>`);
|
|
801
|
+
await page.waitForChanges();
|
|
802
|
+
let firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li");
|
|
803
|
+
expect(firstOption).toEqualText("Loading...");
|
|
804
|
+
await page.waitForTimeout(560);
|
|
805
|
+
firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li ic-typography");
|
|
806
|
+
expect(firstOption).toEqualText("Error");
|
|
807
|
+
const retryButton = await page.find("ic-select >>> #retry-button");
|
|
808
|
+
expect(retryButton).not.toBeNull;
|
|
809
|
+
await page.waitForTimeout(1500);
|
|
810
|
+
firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li ic-typography");
|
|
811
|
+
expect(firstOption).toEqualText("Error");
|
|
812
|
+
});
|
|
813
|
+
it("should focus the retry button on tab and emit icBlur and close the menu when blurring", async () => {
|
|
814
|
+
const page = await newE2EPage();
|
|
815
|
+
await page.setContent(`<ic-select label="IC Select Test" loading="true" timeout="500" options="[]" loading-error-label="Error"></ic-select>`);
|
|
816
|
+
await page.waitForChanges();
|
|
817
|
+
await page.waitForTimeout(560);
|
|
818
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
819
|
+
await select.click();
|
|
820
|
+
await page.waitForChanges();
|
|
821
|
+
await page.keyboard.press("Tab");
|
|
822
|
+
await page.waitForChanges();
|
|
823
|
+
const icBlur = await page.spyOnEvent("icBlur");
|
|
824
|
+
expect(icBlur).not.toHaveReceivedEvent();
|
|
825
|
+
const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
|
|
826
|
+
expect(activeElId).toBe("retry-button");
|
|
827
|
+
await page.keyboard.press("Tab");
|
|
828
|
+
await page.waitForChanges();
|
|
829
|
+
expect(icBlur).toHaveReceivedEvent();
|
|
830
|
+
});
|
|
831
|
+
it("should retry loading and keep the menu open when retry button is clicked", async () => {
|
|
832
|
+
const page = await newE2EPage();
|
|
833
|
+
await page.setContent(`<ic-select label="IC Select Test" loading="true" timeout="500"></ic-select>
|
|
834
834
|
<script>
|
|
835
835
|
var select = document.querySelector('ic-select');
|
|
836
836
|
select.options = [];
|
|
@@ -842,139 +842,139 @@ describe("ic-select", () => {
|
|
|
842
842
|
select.loading = true;
|
|
843
843
|
});
|
|
844
844
|
</script>`);
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
});
|
|
892
|
-
describe("searchable", () => {
|
|
893
|
-
it("should open menu when character is entered in input field and filter options", async () => {
|
|
894
|
-
const page = await newE2EPage();
|
|
895
|
-
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
896
|
-
await page.waitForChanges();
|
|
897
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
898
|
-
await select.press("c");
|
|
899
|
-
await page.waitForChanges();
|
|
900
|
-
expect(await getMenuVisibility(page)).toBe("visible");
|
|
901
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
902
|
-
const menuOptions = await menu.findAll("li");
|
|
903
|
-
expect(menuOptions).toHaveLength(4);
|
|
904
|
-
expect(menuOptions[0]).toEqualText("Cappuccino");
|
|
905
|
-
expect(menuOptions[1]).toEqualText("Americano");
|
|
906
|
-
expect(menuOptions[2]).toEqualText("Mocha");
|
|
907
|
-
expect(menuOptions[3]).toEqualText("Macchiato");
|
|
908
|
-
});
|
|
909
|
-
it("should keep the same options when characters are entered and the menu is reopened", async () => {
|
|
910
|
-
const page = await newE2EPage();
|
|
911
|
-
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
912
|
-
await page.waitForChanges();
|
|
913
|
-
await focusAndTypeIntoInput("foo", page);
|
|
914
|
-
await page.waitForChanges();
|
|
915
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
916
|
-
let menuOptions = await menu.findAll("li");
|
|
917
|
-
expect(menuOptions).toHaveLength(1);
|
|
918
|
-
expect(menuOptions[0]).toEqualText("No results found");
|
|
919
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
920
|
-
select.click();
|
|
921
|
-
await page.waitForChanges();
|
|
922
|
-
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
923
|
-
select.click();
|
|
924
|
-
await page.waitForChanges();
|
|
925
|
-
expect(await getMenuVisibility(page)).toBe("visible");
|
|
926
|
-
menuOptions = await menu.findAll("li");
|
|
927
|
-
expect(menuOptions).toHaveLength(1);
|
|
928
|
-
expect(menuOptions[0]).toEqualText("No results found");
|
|
929
|
-
});
|
|
930
|
-
it("should display no results state when search term matches none of the options", async () => {
|
|
931
|
-
const page = await newE2EPage();
|
|
932
|
-
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
933
|
-
await page.waitForChanges();
|
|
934
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
935
|
-
await select.press("z");
|
|
936
|
-
await page.waitForChanges();
|
|
937
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
938
|
-
const menuOptions = await menu.findAll("li");
|
|
939
|
-
expect(menuOptions).toHaveLength(1);
|
|
940
|
-
expect(menuOptions[0]).toEqualText("No results found");
|
|
941
|
-
});
|
|
942
|
-
it("should filter options accordingly when Backspace is pressed", async () => {
|
|
943
|
-
const page = await newE2EPage();
|
|
944
|
-
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
945
|
-
await page.waitForChanges();
|
|
946
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
947
|
-
await select.press("f");
|
|
948
|
-
await page.waitForChanges();
|
|
949
|
-
await select.press("i");
|
|
950
|
-
await page.waitForChanges();
|
|
951
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
952
|
-
let menuOptions = await menu.findAll("li");
|
|
953
|
-
expect(menuOptions).toHaveLength(1);
|
|
954
|
-
await select.press("Backspace");
|
|
955
|
-
await page.waitForChanges();
|
|
956
|
-
menuOptions = await menu.findAll("li");
|
|
957
|
-
expect(menuOptions).toHaveLength(2);
|
|
958
|
-
expect(menuOptions[0]).toEqualText("Filter");
|
|
959
|
-
expect(menuOptions[1]).toEqualText("Flat white");
|
|
960
|
-
});
|
|
961
|
-
it("should filter options when search match position is set to start", async () => {
|
|
962
|
-
const page = await newE2EPage();
|
|
963
|
-
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
964
|
-
const icSelect = await page.find("ic-select");
|
|
965
|
-
icSelect.setAttribute("search-match-position", "start");
|
|
966
|
-
await page.waitForChanges();
|
|
967
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
968
|
-
await select.press("c");
|
|
969
|
-
await page.waitForChanges();
|
|
970
|
-
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
971
|
-
const menuOptions = await menu.findAll("li");
|
|
972
|
-
expect(menuOptions).toHaveLength(1);
|
|
973
|
-
expect(menuOptions[0]).toEqualText("Cappuccino");
|
|
845
|
+
await page.waitForChanges();
|
|
846
|
+
const icRetryLoad = await page.spyOnEvent("icRetryLoad");
|
|
847
|
+
await page.waitForTimeout(560);
|
|
848
|
+
let firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li ic-typography");
|
|
849
|
+
expect(firstOption).toEqualText("Loading Error");
|
|
850
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
851
|
+
await select.click();
|
|
852
|
+
await page.waitForChanges();
|
|
853
|
+
const retryButton = await page.find("ic-select >>> #retry-button");
|
|
854
|
+
await retryButton.click();
|
|
855
|
+
await page.waitForChanges();
|
|
856
|
+
expect(icRetryLoad).toHaveReceivedEvent;
|
|
857
|
+
firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li");
|
|
858
|
+
expect(firstOption).toEqualText("Loading...");
|
|
859
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
860
|
+
});
|
|
861
|
+
it("should retry loading and keep the menu open when retry button is pressed with Enter", async () => {
|
|
862
|
+
const page = await newE2EPage();
|
|
863
|
+
await page.setContent(`<ic-select label="IC Select Test" loading="true" options="[]" timeout="500"></ic-select>`);
|
|
864
|
+
await page.waitForChanges();
|
|
865
|
+
const icRetryLoad = await page.spyOnEvent("icRetryLoad");
|
|
866
|
+
await page.waitForTimeout(560);
|
|
867
|
+
const firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li ic-typography");
|
|
868
|
+
expect(firstOption).toEqualText("Loading Error");
|
|
869
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
870
|
+
await select.click();
|
|
871
|
+
await page.waitForChanges();
|
|
872
|
+
const retryButton = await page.find("ic-select >>> #retry-button");
|
|
873
|
+
await retryButton.press("Enter");
|
|
874
|
+
await page.waitForChanges();
|
|
875
|
+
expect(icRetryLoad).toHaveReceivedEvent;
|
|
876
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
877
|
+
});
|
|
878
|
+
it("should render a No results message if no options are provided on render", async () => {
|
|
879
|
+
const page = await newE2EPage();
|
|
880
|
+
await page.setContent(getTestSelect(`[]`));
|
|
881
|
+
await page.waitForChanges();
|
|
882
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
883
|
+
await select.click();
|
|
884
|
+
await page.waitForChanges();
|
|
885
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
886
|
+
const menuOptions = await menu.findAll("li");
|
|
887
|
+
expect(menuOptions).toHaveLength(1);
|
|
888
|
+
expect(menuOptions[0]).toEqualText("No results found");
|
|
889
|
+
});
|
|
890
|
+
});
|
|
974
891
|
});
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
892
|
+
describe("searchable", () => {
|
|
893
|
+
it("should open menu when character is entered in input field and filter options", async () => {
|
|
894
|
+
const page = await newE2EPage();
|
|
895
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
896
|
+
await page.waitForChanges();
|
|
897
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
898
|
+
await select.press("c");
|
|
899
|
+
await page.waitForChanges();
|
|
900
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
901
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
902
|
+
const menuOptions = await menu.findAll("li");
|
|
903
|
+
expect(menuOptions).toHaveLength(4);
|
|
904
|
+
expect(menuOptions[0]).toEqualText("Cappuccino");
|
|
905
|
+
expect(menuOptions[1]).toEqualText("Americano");
|
|
906
|
+
expect(menuOptions[2]).toEqualText("Mocha");
|
|
907
|
+
expect(menuOptions[3]).toEqualText("Macchiato");
|
|
908
|
+
});
|
|
909
|
+
it("should keep the same options when characters are entered and the menu is reopened", async () => {
|
|
910
|
+
const page = await newE2EPage();
|
|
911
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
912
|
+
await page.waitForChanges();
|
|
913
|
+
await focusAndTypeIntoInput("foo", page);
|
|
914
|
+
await page.waitForChanges();
|
|
915
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
916
|
+
let menuOptions = await menu.findAll("li");
|
|
917
|
+
expect(menuOptions).toHaveLength(1);
|
|
918
|
+
expect(menuOptions[0]).toEqualText("No results found");
|
|
919
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
920
|
+
select.click();
|
|
921
|
+
await page.waitForChanges();
|
|
922
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
923
|
+
select.click();
|
|
924
|
+
await page.waitForChanges();
|
|
925
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
926
|
+
menuOptions = await menu.findAll("li");
|
|
927
|
+
expect(menuOptions).toHaveLength(1);
|
|
928
|
+
expect(menuOptions[0]).toEqualText("No results found");
|
|
929
|
+
});
|
|
930
|
+
it("should display no results state when search term matches none of the options", async () => {
|
|
931
|
+
const page = await newE2EPage();
|
|
932
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
933
|
+
await page.waitForChanges();
|
|
934
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
935
|
+
await select.press("z");
|
|
936
|
+
await page.waitForChanges();
|
|
937
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
938
|
+
const menuOptions = await menu.findAll("li");
|
|
939
|
+
expect(menuOptions).toHaveLength(1);
|
|
940
|
+
expect(menuOptions[0]).toEqualText("No results found");
|
|
941
|
+
});
|
|
942
|
+
it("should filter options accordingly when Backspace is pressed", async () => {
|
|
943
|
+
const page = await newE2EPage();
|
|
944
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
945
|
+
await page.waitForChanges();
|
|
946
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
947
|
+
await select.press("f");
|
|
948
|
+
await page.waitForChanges();
|
|
949
|
+
await select.press("i");
|
|
950
|
+
await page.waitForChanges();
|
|
951
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
952
|
+
let menuOptions = await menu.findAll("li");
|
|
953
|
+
expect(menuOptions).toHaveLength(1);
|
|
954
|
+
await select.press("Backspace");
|
|
955
|
+
await page.waitForChanges();
|
|
956
|
+
menuOptions = await menu.findAll("li");
|
|
957
|
+
expect(menuOptions).toHaveLength(2);
|
|
958
|
+
expect(menuOptions[0]).toEqualText("Filter");
|
|
959
|
+
expect(menuOptions[1]).toEqualText("Flat white");
|
|
960
|
+
});
|
|
961
|
+
it("should filter options when search match position is set to start", async () => {
|
|
962
|
+
const page = await newE2EPage();
|
|
963
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
964
|
+
const icSelect = await page.find("ic-select");
|
|
965
|
+
icSelect.setAttribute("search-match-position", "start");
|
|
966
|
+
await page.waitForChanges();
|
|
967
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
968
|
+
await select.press("c");
|
|
969
|
+
await page.waitForChanges();
|
|
970
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
971
|
+
const menuOptions = await menu.findAll("li");
|
|
972
|
+
expect(menuOptions).toHaveLength(1);
|
|
973
|
+
expect(menuOptions[0]).toEqualText("Cappuccino");
|
|
974
|
+
});
|
|
975
|
+
it("should include option descriptions in search", async () => {
|
|
976
|
+
const page = await newE2EPage();
|
|
977
|
+
const optionsWithDescription = `[
|
|
978
978
|
{ label: "Cappuccino", value: "Cap" },
|
|
979
979
|
{ label: "Latte", value: "Lat", description: "A milkier coffee than a cappuccino" },
|
|
980
980
|
{ label: "Americano", value: "Ame" },
|
|
@@ -983,23 +983,23 @@ describe("ic-select", () => {
|
|
|
983
983
|
{ label: "Mocha", value: "Moc" },
|
|
984
984
|
{ label: "Macchiato", value: "Mac" },
|
|
985
985
|
]`;
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
986
|
+
await page.setContent(getTestSearchableSelect(optionsWithDescription));
|
|
987
|
+
const icSelect = await page.find("ic-select");
|
|
988
|
+
icSelect.setAttribute("include-descriptions-in-search", true);
|
|
989
|
+
await page.waitForChanges();
|
|
990
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
991
|
+
await select.press("m");
|
|
992
|
+
await page.waitForChanges();
|
|
993
|
+
await select.press("i");
|
|
994
|
+
await page.waitForChanges();
|
|
995
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
996
|
+
const menuOptions = await menu.findAll("li");
|
|
997
|
+
expect(menuOptions).toHaveLength(1);
|
|
998
|
+
expect(menuOptions[0].textContent.substring(0, 5)).toEqualText("Latte");
|
|
999
|
+
});
|
|
1000
|
+
it("should not include group titles in search", async () => {
|
|
1001
|
+
const page = await newE2EPage();
|
|
1002
|
+
const groupedOptions = `[
|
|
1003
1003
|
{
|
|
1004
1004
|
label: "Fancy",
|
|
1005
1005
|
children: [
|
|
@@ -1015,19 +1015,19 @@ describe("ic-select", () => {
|
|
|
1015
1015
|
],
|
|
1016
1016
|
},
|
|
1017
1017
|
]`;
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1018
|
+
await page.setContent(getTestSearchableSelect(groupedOptions));
|
|
1019
|
+
await page.waitForChanges();
|
|
1020
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
1021
|
+
await select.press("b");
|
|
1022
|
+
await page.waitForChanges();
|
|
1023
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
1024
|
+
const menuOptions = await menu.findAll("li");
|
|
1025
|
+
expect(menuOptions).toHaveLength(1);
|
|
1026
|
+
expect(menuOptions[0]).toEqualText("No results found");
|
|
1027
|
+
});
|
|
1028
|
+
it("should display whole group when group titles included in search", async () => {
|
|
1029
|
+
const page = await newE2EPage();
|
|
1030
|
+
const groupedOptions = `[
|
|
1031
1031
|
{
|
|
1032
1032
|
label: "Fancy",
|
|
1033
1033
|
children: [
|
|
@@ -1043,452 +1043,453 @@ describe("ic-select", () => {
|
|
|
1043
1043
|
],
|
|
1044
1044
|
},
|
|
1045
1045
|
]`;
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1046
|
+
await page.setContent(getTestSearchableSelect(groupedOptions));
|
|
1047
|
+
const icSelect = await page.find("ic-select");
|
|
1048
|
+
icSelect.setAttribute("include-group-titles-in-search", true);
|
|
1049
|
+
await page.waitForChanges();
|
|
1050
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
1051
|
+
await select.press("b");
|
|
1052
|
+
await page.waitForChanges();
|
|
1053
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
1054
|
+
const menuOptions = await menu.findAll("li");
|
|
1055
|
+
expect(menuOptions).toHaveLength(2);
|
|
1056
|
+
expect(menuOptions[0]).toEqualText("Filter");
|
|
1057
|
+
expect(menuOptions[1]).toEqualText("Latte");
|
|
1058
|
+
});
|
|
1059
|
+
it("should display a clear button which clears the input when clicked", async () => {
|
|
1060
|
+
const page = await newE2EPage();
|
|
1061
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
1062
|
+
await page.waitForChanges();
|
|
1063
|
+
const icChange = await page.spyOnEvent("icChange");
|
|
1064
|
+
let clearButton = await page.find("ic-select >>> .clear-button");
|
|
1065
|
+
expect(clearButton).toBeNull();
|
|
1066
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
1067
|
+
await select.press("a");
|
|
1068
|
+
await page.waitForChanges();
|
|
1069
|
+
clearButton = await page.find("ic-select >>> .clear-button");
|
|
1070
|
+
expect(clearButton).not.toBeNull();
|
|
1071
|
+
await clearButton.click();
|
|
1072
|
+
expect(select.textContent).toBe("");
|
|
1073
|
+
expect(icChange).toHaveReceivedEventDetail({
|
|
1074
|
+
value: null,
|
|
1075
|
+
});
|
|
1076
|
+
});
|
|
1077
|
+
it("should emit the value as null when the input is changed after selecting an option", async () => {
|
|
1078
|
+
const page = await newE2EPage();
|
|
1079
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
1080
|
+
await page.waitForChanges();
|
|
1081
|
+
const icChange = await page.spyOnEvent("icChange");
|
|
1082
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
1083
|
+
await select.press("ArrowDown");
|
|
1084
|
+
await page.waitForChanges();
|
|
1085
|
+
await select.press("Enter");
|
|
1086
|
+
await page.waitForChanges();
|
|
1087
|
+
expect(icChange).toHaveReceivedEventDetail({
|
|
1088
|
+
value: "Cap",
|
|
1089
|
+
});
|
|
1090
|
+
const clearButton = await page.find("ic-select >>> .clear-button");
|
|
1091
|
+
await clearButton.click();
|
|
1092
|
+
await page.waitForChanges();
|
|
1093
|
+
expect(icChange).toHaveReceivedEventDetail({
|
|
1094
|
+
value: null,
|
|
1095
|
+
});
|
|
1096
|
+
});
|
|
1097
|
+
it("should still filter the options when the input is changed after selecting an option", async () => {
|
|
1098
|
+
const page = await newE2EPage();
|
|
1099
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
1100
|
+
await page.waitForChanges();
|
|
1101
|
+
const icChange = await page.spyOnEvent("icChange");
|
|
1102
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
1103
|
+
await select.press("ArrowDown");
|
|
1104
|
+
await page.waitForChanges();
|
|
1105
|
+
await select.press("Enter");
|
|
1106
|
+
await page.waitForChanges();
|
|
1107
|
+
expect(icChange).toHaveReceivedEventDetail({
|
|
1108
|
+
value: "Cap",
|
|
1109
|
+
});
|
|
1110
|
+
for (let i = 0; i <= 7; i++) {
|
|
1111
|
+
select.press("Backspace");
|
|
1112
|
+
await page.waitForChanges();
|
|
1113
|
+
}
|
|
1114
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
1115
|
+
const menuOptions = await menu.findAll("li");
|
|
1116
|
+
await page.waitForChanges();
|
|
1117
|
+
expect(menuOptions).toHaveLength(2);
|
|
1118
|
+
expect(menuOptions[0]).toEqualText("Cappuccino");
|
|
1119
|
+
expect(menuOptions[1]).toEqualText("Americano");
|
|
1120
|
+
});
|
|
1121
|
+
it("should close menu on blur", async () => {
|
|
1122
|
+
const page = await newE2EPage();
|
|
1123
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
1124
|
+
await page.waitForChanges();
|
|
1125
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
1126
|
+
await select.click();
|
|
1127
|
+
await page.waitForChanges();
|
|
1128
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
1129
|
+
await select.press("Tab");
|
|
1130
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
1131
|
+
});
|
|
1132
|
+
it("should emit icChange on delay", async () => {
|
|
1133
|
+
const page = await newE2EPage();
|
|
1134
|
+
await page.setContent(`<ic-select label="IC Select Test" debounce="500" searchable></ic-select>`);
|
|
1135
|
+
await page.waitForChanges();
|
|
1136
|
+
const icChange = await page.spyOnEvent("icChange");
|
|
1137
|
+
await focusAndTypeIntoInput("foo", page);
|
|
1138
|
+
await page.waitForTimeout(600);
|
|
1139
|
+
expect(icChange).toHaveReceivedEventDetail({
|
|
1140
|
+
value: "foo",
|
|
1141
|
+
});
|
|
1142
|
+
await focusAndTypeIntoInput("bar", page);
|
|
1143
|
+
await page.waitForChanges();
|
|
1144
|
+
await page.waitForTimeout(100);
|
|
1145
|
+
expect(icChange).toHaveReceivedEventDetail({
|
|
1146
|
+
value: "foo",
|
|
1147
|
+
});
|
|
1148
|
+
await page.waitForTimeout(500);
|
|
1149
|
+
expect(icChange).toHaveReceivedEventDetail({
|
|
1150
|
+
value: "foobar",
|
|
1151
|
+
});
|
|
1152
|
+
});
|
|
1153
|
+
it("should update hidden input to value typed in select searchable input", async () => {
|
|
1154
|
+
const page = await newE2EPage();
|
|
1155
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
1156
|
+
await page.waitForChanges();
|
|
1157
|
+
await focusAndTypeIntoInput("bar", page);
|
|
1158
|
+
await page.waitForChanges();
|
|
1159
|
+
const hiddenInput = await page.find("input[type='hidden']");
|
|
1160
|
+
expect(hiddenInput.getAttribute("value")).toBe("bar");
|
|
1161
|
+
});
|
|
1162
|
+
it("should keep typed in hidden input value when highlighting menu options", async () => {
|
|
1163
|
+
const page = await newE2EPage();
|
|
1164
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
1165
|
+
await page.waitForChanges();
|
|
1166
|
+
await focusAndTypeIntoInput("cap", page);
|
|
1167
|
+
await page.waitForChanges();
|
|
1168
|
+
let hiddenInput = await page.find("input[type='hidden']");
|
|
1169
|
+
expect(hiddenInput.getAttribute("value")).toBe("cap");
|
|
1170
|
+
await page.keyboard.press("ArrowDown");
|
|
1171
|
+
await page.waitForChanges();
|
|
1172
|
+
const menuListItems = await page.findAll("ic-select >>> ic-menu > ul > li");
|
|
1173
|
+
expect(menuListItems[0]).toHaveClass("focused-option");
|
|
1174
|
+
hiddenInput = await page.find("input[type='hidden']");
|
|
1175
|
+
expect(hiddenInput.getAttribute("value")).toBe("cap");
|
|
1176
|
+
});
|
|
1177
|
+
it("should update hidden value from typed to selected", async () => {
|
|
1178
|
+
const page = await newE2EPage();
|
|
1179
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
1180
|
+
await page.waitForChanges();
|
|
1181
|
+
await focusAndTypeIntoInput("o", page);
|
|
1182
|
+
await page.waitForChanges();
|
|
1183
|
+
const hiddenInput = await page.find("input[type='hidden']");
|
|
1184
|
+
expect(hiddenInput.getAttribute("value")).toBe("o");
|
|
1185
|
+
await page.keyboard.press("ArrowDown");
|
|
1186
|
+
await page.waitForChanges();
|
|
1187
|
+
const menuListItems = await page.findAll("ic-select >>> ic-menu > ul > li");
|
|
1188
|
+
expect(menuListItems[0]).toHaveClass("focused-option");
|
|
1189
|
+
await page.keyboard.press("Enter");
|
|
1190
|
+
await page.waitForChanges();
|
|
1191
|
+
expect(hiddenInput.getAttribute("value")).toBe("Cap");
|
|
1192
|
+
});
|
|
1193
|
+
it("should update hidden value from typed to selected to typed", async () => {
|
|
1194
|
+
const page = await newE2EPage();
|
|
1195
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
1196
|
+
await page.waitForChanges();
|
|
1197
|
+
await focusAndTypeIntoInput("o", page);
|
|
1198
|
+
await page.waitForChanges();
|
|
1199
|
+
const hiddenInput = await page.find("input[type='hidden']");
|
|
1200
|
+
expect(hiddenInput.getAttribute("value")).toBe("o");
|
|
1201
|
+
await page.keyboard.press("ArrowDown");
|
|
1202
|
+
await page.waitForChanges();
|
|
1203
|
+
const menuListItems = await page.findAll("ic-select >>> ic-menu > ul > li");
|
|
1204
|
+
expect(menuListItems[0]).toHaveClass("focused-option");
|
|
1205
|
+
await page.keyboard.press("Enter");
|
|
1206
|
+
await page.waitForChanges();
|
|
1207
|
+
expect(hiddenInput.getAttribute("value")).toBe("Cap");
|
|
1208
|
+
await page.keyboard.press("1");
|
|
1209
|
+
await page.waitForChanges();
|
|
1210
|
+
expect(hiddenInput.getAttribute("value")).toBe("Cappuccino1");
|
|
1211
|
+
});
|
|
1212
|
+
it("should update the value of the input and options when passing the value directly", async () => {
|
|
1213
|
+
const page = await newE2EPage();
|
|
1214
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
1215
|
+
await page.waitForChanges();
|
|
1216
|
+
const select = await page.find("ic-select");
|
|
1217
|
+
select.setAttribute("value", "foo");
|
|
1218
|
+
await page.waitForChanges();
|
|
1219
|
+
const selectInput = await page.find('ic-select >>> input[role="combobox"]');
|
|
1220
|
+
expect(await selectInput.getProperty("value")).toBe("foo");
|
|
1221
|
+
});
|
|
1222
|
+
it("should trigger icChange on input for each typed value", async () => {
|
|
1223
|
+
const page = await newE2EPage();
|
|
1224
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
1225
|
+
await page.waitForChanges();
|
|
1226
|
+
const select = await page.find("ic-select");
|
|
1227
|
+
const icChange = await select.spyOnEvent("icChange");
|
|
1228
|
+
await focusAndTypeIntoInput("f", page);
|
|
1229
|
+
await page.waitForChanges();
|
|
1230
|
+
expect(icChange).toHaveReceivedEventDetail({
|
|
1231
|
+
value: "f",
|
|
1232
|
+
});
|
|
1233
|
+
await focusAndTypeIntoInput("o", page);
|
|
1234
|
+
await page.waitForChanges();
|
|
1235
|
+
expect(icChange).toHaveReceivedEventDetail({
|
|
1236
|
+
value: "fo",
|
|
1237
|
+
});
|
|
1238
|
+
await focusAndTypeIntoInput("o", page);
|
|
1239
|
+
await page.waitForChanges();
|
|
1240
|
+
expect(icChange).toHaveReceivedEventDetail({
|
|
1241
|
+
value: "foo",
|
|
1242
|
+
});
|
|
1243
|
+
});
|
|
1244
|
+
it("should not trigger icChange on highlighting menu items", async () => {
|
|
1245
|
+
const page = await newE2EPage();
|
|
1246
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
1247
|
+
await page.waitForChanges();
|
|
1248
|
+
const select = await page.find("ic-select");
|
|
1249
|
+
const icChange = await select.spyOnEvent("icChange");
|
|
1250
|
+
await page.$eval("ic-select", (el) => {
|
|
1251
|
+
const input = el.shadowRoot.querySelector("input");
|
|
1252
|
+
input.focus();
|
|
1253
|
+
});
|
|
1254
|
+
await page.waitForChanges();
|
|
1255
|
+
await page.keyboard.press("ArrowDown");
|
|
1256
|
+
await page.waitForChanges();
|
|
1257
|
+
expect(icChange).not.toHaveReceivedEvent();
|
|
1258
|
+
await page.keyboard.press("ArrowDown");
|
|
1259
|
+
await page.waitForChanges();
|
|
1260
|
+
expect(icChange).not.toHaveReceivedEvent();
|
|
1261
|
+
});
|
|
1262
|
+
it("should not select a menu option when typing into the searchable input field", async () => {
|
|
1263
|
+
const page = await newE2EPage();
|
|
1264
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
1265
|
+
await page.waitForChanges();
|
|
1266
|
+
await focusAndTypeIntoInput("Cap", page);
|
|
1267
|
+
await page.waitForChanges();
|
|
1268
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
1269
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
1270
|
+
const firstOption = await menu.findAll("li");
|
|
1271
|
+
expect(firstOption[0]).not.toHaveClass("aria-selected");
|
|
1272
|
+
});
|
|
1273
|
+
it("should not selet a menu option when one has previously been set and backspace is pressed", async () => {
|
|
1274
|
+
const page = await newE2EPage();
|
|
1275
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
1276
|
+
await page.waitForChanges();
|
|
1277
|
+
await focusAndTypeIntoInput("Lat", page);
|
|
1278
|
+
await page.waitForChanges();
|
|
1279
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
1280
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
1281
|
+
await page.keyboard.press("ArrowDown");
|
|
1282
|
+
await page.waitForChanges();
|
|
1283
|
+
await page.keyboard.press("Enter");
|
|
1284
|
+
await page.waitForChanges();
|
|
1285
|
+
const inputValue = await page.$eval("ic-select", (el) => {
|
|
1286
|
+
const input = el.shadowRoot.querySelector("input");
|
|
1287
|
+
return input.value;
|
|
1288
|
+
});
|
|
1289
|
+
expect(inputValue).toBe("Latte");
|
|
1290
|
+
await page.keyboard.press("Backspace");
|
|
1291
|
+
await page.waitForChanges();
|
|
1292
|
+
await page.keyboard.press("Backspace");
|
|
1293
|
+
await page.waitForChanges();
|
|
1294
|
+
const options = await menu.findAll("li");
|
|
1295
|
+
options.forEach((option) => {
|
|
1296
|
+
expect(option).not.toHaveClass("aria-selected");
|
|
1297
|
+
});
|
|
1298
|
+
});
|
|
1299
|
+
it("should display selected option when selecting a menu option and then opening and closing the menu", async () => {
|
|
1300
|
+
const page = await newE2EPage();
|
|
1301
|
+
await page.setContent(getTestSearchableSelect(searchableOptions));
|
|
1302
|
+
await page.waitForChanges();
|
|
1303
|
+
await focusAndTypeIntoInput("Lat", page);
|
|
1304
|
+
await page.waitForChanges();
|
|
1305
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
1306
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
1307
|
+
await page.keyboard.press("ArrowDown");
|
|
1308
|
+
await page.waitForChanges();
|
|
1309
|
+
await page.keyboard.press("Enter");
|
|
1310
|
+
await page.waitForChanges();
|
|
1311
|
+
const inputValue = await page.$eval("ic-select", (el) => {
|
|
1312
|
+
const input = el.shadowRoot.querySelector("input");
|
|
1313
|
+
return input.value;
|
|
1314
|
+
});
|
|
1315
|
+
expect(inputValue).toBe("Latte");
|
|
1316
|
+
await page.evaluate(() => {
|
|
1317
|
+
const button = document.querySelector("button");
|
|
1318
|
+
button.focus();
|
|
1319
|
+
});
|
|
1320
|
+
await page.waitForChanges();
|
|
1321
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
1322
|
+
const select = await page.find("ic-select");
|
|
1323
|
+
await select.click();
|
|
1324
|
+
await page.keyboard.press("ArrowDown");
|
|
1325
|
+
await page.waitForChanges();
|
|
1326
|
+
const latteOption = await menu.find("li[data-value='Lat']");
|
|
1327
|
+
expect(latteOption).toHaveAttribute("aria-selected");
|
|
1328
|
+
});
|
|
1329
|
+
it("hidden input value when on initial load with default value", async () => {
|
|
1330
|
+
const page = await newE2EPage();
|
|
1331
|
+
await page.setContent(getTestSelectSearchableFormReset(options));
|
|
1332
|
+
await page.waitForChanges();
|
|
1333
|
+
const hiddenInput = await page.find("ic-select > [name*='ic-select-input-0']");
|
|
1334
|
+
expect(hiddenInput.getAttribute("value")).toBe("Test value 1");
|
|
1335
|
+
});
|
|
1336
|
+
it("should submit hidden input value when updating value, pressing reset to initial value and then submitting", async () => {
|
|
1337
|
+
const page = await newE2EPage();
|
|
1338
|
+
await page.setContent(getTestSelectSearchableFormReset(options));
|
|
1339
|
+
await page.waitForChanges();
|
|
1340
|
+
const hiddenInput = await page.find("ic-select > [name*='ic-select-input-0']");
|
|
1341
|
+
expect(hiddenInput.getAttribute("value")).toBe("Test value 1");
|
|
1342
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
1343
|
+
await select.press("Backspace");
|
|
1344
|
+
await page.waitForChanges();
|
|
1345
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
1346
|
+
await page.keyboard.press("ArrowDown");
|
|
1347
|
+
await page.waitForChanges();
|
|
1348
|
+
await page.keyboard.press("ArrowDown");
|
|
1349
|
+
await page.waitForChanges();
|
|
1350
|
+
await page.keyboard.press("Enter");
|
|
1351
|
+
await page.waitForChanges();
|
|
1352
|
+
expect(hiddenInput.getAttribute("value")).toBe("Test value 2");
|
|
1353
|
+
await page.$eval("#resetButton", (el) => {
|
|
1354
|
+
const reset = el;
|
|
1355
|
+
reset.click();
|
|
1356
|
+
});
|
|
1357
|
+
await page.waitForChanges();
|
|
1358
|
+
expect(hiddenInput.getAttribute("value")).toBe("Test value 1");
|
|
1359
|
+
});
|
|
1360
|
+
it("should scroll menu", async () => {
|
|
1361
|
+
const page = await newE2EPage();
|
|
1362
|
+
await page.setContent(getTestSearchableSelect(largeOptions));
|
|
1363
|
+
await page.waitForChanges();
|
|
1364
|
+
await focusAndTypeIntoInput("Test", page);
|
|
1365
|
+
await page.waitForChanges();
|
|
1366
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
1367
|
+
await page.keyboard.press("ArrowDown");
|
|
1368
|
+
await page.waitForChanges();
|
|
1369
|
+
let menuScrollTop = await page.$eval("ic-select", (el) => {
|
|
1370
|
+
const menu = el.shadowRoot.querySelector("ic-menu ul");
|
|
1371
|
+
return menu.scrollTop;
|
|
1372
|
+
});
|
|
1373
|
+
expect(menuScrollTop).toBe(0);
|
|
1374
|
+
await page.keyboard.press("Enter");
|
|
1375
|
+
await page.waitForChanges();
|
|
1376
|
+
const inputValue = await page.$eval("ic-select", (el) => {
|
|
1377
|
+
const input = el.shadowRoot.querySelector("input");
|
|
1378
|
+
return input.value;
|
|
1379
|
+
});
|
|
1380
|
+
expect(inputValue).toBe("Test label 1");
|
|
1381
|
+
await page.$eval("ic-select", (el) => {
|
|
1382
|
+
const input = el.shadowRoot.querySelector("input");
|
|
1383
|
+
input.focus();
|
|
1384
|
+
});
|
|
1385
|
+
await page.waitForChanges();
|
|
1386
|
+
await page.keyboard.press("ArrowUp");
|
|
1387
|
+
await page.waitForChanges();
|
|
1388
|
+
menuScrollTop = await page.$eval("ic-select", (el) => {
|
|
1389
|
+
const menu = el.shadowRoot.querySelector("ic-menu ul");
|
|
1390
|
+
return menu.scrollTop;
|
|
1391
|
+
});
|
|
1392
|
+
expect(menuScrollTop).not.toBe(0);
|
|
1393
|
+
});
|
|
1394
|
+
it("should only highlight and select enabled options in searchable with arrowDown", async () => {
|
|
1395
|
+
const optionsWithDisabled = `[
|
|
1395
1396
|
{ label: 'Test label 1', value: 'Test value 1', disabled: true },
|
|
1396
1397
|
{ label: 'Test label 2', value: 'Test value 2' },
|
|
1397
1398
|
{ label: 'Test label 3', value: 'Test value 3', disabled: true },
|
|
1398
1399
|
{ label: 'Test label 4', value: 'Test value 4', disabled: true },
|
|
1399
1400
|
{ label: 'Test label 5', value: 'Test value 5' },
|
|
1400
1401
|
]`;
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1402
|
+
const page = await newE2EPage();
|
|
1403
|
+
await page.setContent(getTestSearchableSelect(optionsWithDisabled));
|
|
1404
|
+
await page.waitForChanges();
|
|
1405
|
+
await focusAndTypeIntoInput("Test", page);
|
|
1406
|
+
await page.waitForChanges();
|
|
1407
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
1408
|
+
await page.keyboard.press("ArrowDown");
|
|
1409
|
+
await page.waitForChanges();
|
|
1410
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
1411
|
+
const menuItems = await menu.findAll("li");
|
|
1412
|
+
expect(menuItems[0]).not.toHaveClass("focused-option");
|
|
1413
|
+
expect(menuItems[1]).toHaveClass("focused-option");
|
|
1414
|
+
await page.keyboard.press("Enter");
|
|
1415
|
+
await page.waitForChanges();
|
|
1416
|
+
let inputValue = await page.$eval("ic-select", (el) => {
|
|
1417
|
+
const input = el.shadowRoot.querySelector("input");
|
|
1418
|
+
return input.value;
|
|
1419
|
+
});
|
|
1420
|
+
expect(inputValue).toBe("Test label 2");
|
|
1421
|
+
await page.keyboard.press("ArrowDown");
|
|
1422
|
+
await page.waitForChanges();
|
|
1423
|
+
await page.keyboard.press("ArrowDown");
|
|
1424
|
+
await page.waitForChanges();
|
|
1425
|
+
await page.keyboard.press("Enter");
|
|
1426
|
+
await page.waitForChanges();
|
|
1427
|
+
inputValue = await page.$eval("ic-select", (el) => {
|
|
1428
|
+
const input = el.shadowRoot.querySelector("input");
|
|
1429
|
+
return input.value;
|
|
1430
|
+
});
|
|
1431
|
+
expect(inputValue).toBe("Test label 5");
|
|
1432
|
+
});
|
|
1433
|
+
it("should only highlight and select enabled options in searchable with arrowUp", async () => {
|
|
1434
|
+
const optionsWithDisabled = `[
|
|
1434
1435
|
{ label: 'Test label 1', value: 'Test value 1', disabled: true },
|
|
1435
1436
|
{ label: 'Test label 2', value: 'Test value 2' },
|
|
1436
1437
|
{ label: 'Test label 3', value: 'Test value 3', disabled: true },
|
|
1437
1438
|
{ label: 'Test label 4', value: 'Test value 4', disabled: true },
|
|
1438
1439
|
{ label: 'Test label 5', value: 'Test value 5' },
|
|
1439
1440
|
]`;
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1441
|
+
const page = await newE2EPage();
|
|
1442
|
+
await page.setContent(getTestSearchableSelect(optionsWithDisabled));
|
|
1443
|
+
await page.waitForChanges();
|
|
1444
|
+
await focusAndTypeIntoInput("Test", page);
|
|
1445
|
+
await page.waitForChanges();
|
|
1446
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
1447
|
+
await page.keyboard.press("ArrowUp");
|
|
1448
|
+
await page.waitForChanges();
|
|
1449
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
1450
|
+
const menuItems = await menu.findAll("li");
|
|
1451
|
+
expect(menuItems[menuItems.length - 1]).toHaveClass("focused-option");
|
|
1452
|
+
expect(menuItems[menuItems.length - 2]).not.toHaveClass("focused-option");
|
|
1453
|
+
await page.keyboard.press("Enter");
|
|
1454
|
+
await page.waitForChanges();
|
|
1455
|
+
let inputValue = await page.$eval("ic-select", (el) => {
|
|
1456
|
+
const input = el.shadowRoot.querySelector("input");
|
|
1457
|
+
return input.value;
|
|
1458
|
+
});
|
|
1459
|
+
expect(inputValue).toBe("Test label 5");
|
|
1460
|
+
await page.keyboard.press("ArrowUp");
|
|
1461
|
+
await page.waitForChanges();
|
|
1462
|
+
await page.keyboard.press("ArrowUp");
|
|
1463
|
+
await page.waitForChanges();
|
|
1464
|
+
await page.keyboard.press("Enter");
|
|
1465
|
+
await page.waitForChanges();
|
|
1466
|
+
inputValue = await page.$eval("ic-select", (el) => {
|
|
1467
|
+
const input = el.shadowRoot.querySelector("input");
|
|
1468
|
+
return input.value;
|
|
1469
|
+
});
|
|
1470
|
+
expect(inputValue).toBe("Test label 2");
|
|
1471
|
+
});
|
|
1472
|
+
describe("loading", () => {
|
|
1473
|
+
it("should retry loading and keep the menu open when retry button is pressed with Spacebar", async () => {
|
|
1474
|
+
const page = await newE2EPage();
|
|
1475
|
+
await page.setContent(`<ic-select label="IC Select Test" searchable="true" options="[]" loading="true" timeout="500"></ic-select>`);
|
|
1476
|
+
await page.waitForChanges();
|
|
1477
|
+
const icRetryLoad = await page.spyOnEvent("icRetryLoad");
|
|
1478
|
+
await page.waitForTimeout(560);
|
|
1479
|
+
const firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li ic-typography");
|
|
1480
|
+
expect(firstOption).toEqualText("Loading Error");
|
|
1481
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
1482
|
+
await select.click();
|
|
1483
|
+
await page.waitForChanges();
|
|
1484
|
+
const retryButton = await page.find("ic-select >>> #retry-button");
|
|
1485
|
+
await retryButton.press(" ");
|
|
1486
|
+
await page.waitForChanges();
|
|
1487
|
+
expect(icRetryLoad).toHaveReceivedEvent;
|
|
1488
|
+
expect(await getMenuVisibility(page)).toBe("visible");
|
|
1489
|
+
});
|
|
1490
|
+
it("should cancel loading if the clear button is pressed mid-load", async () => {
|
|
1491
|
+
const page = await newE2EPage();
|
|
1492
|
+
await page.setContent(`<ic-select label="IC Select Test" searchable="true" timeout="500"></ic-select>
|
|
1492
1493
|
<script>
|
|
1493
1494
|
var select = document.querySelector("ic-select");
|
|
1494
1495
|
select.options = [];
|
|
@@ -1496,147 +1497,147 @@ describe("ic-select", () => {
|
|
|
1496
1497
|
select.loading = "true";
|
|
1497
1498
|
});
|
|
1498
1499
|
</script>`);
|
|
1500
|
+
await page.waitForChanges();
|
|
1501
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
1502
|
+
await select.press("c");
|
|
1503
|
+
await page.waitForChanges();
|
|
1504
|
+
let firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li");
|
|
1505
|
+
expect(firstOption).toEqualText("Loading...");
|
|
1506
|
+
const clearButton = await page.find("ic-select >>> .clear-button");
|
|
1507
|
+
await clearButton.click();
|
|
1508
|
+
await page.waitForChanges();
|
|
1509
|
+
await page.waitForTimeout(560);
|
|
1510
|
+
firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li");
|
|
1511
|
+
expect(firstOption).toBeNull;
|
|
1512
|
+
});
|
|
1513
|
+
it("should render a No results message if no options are provided on render", async () => {
|
|
1514
|
+
const page = await newE2EPage();
|
|
1515
|
+
await page.setContent(getTestSearchableSelect(`[]`));
|
|
1516
|
+
await page.waitForChanges();
|
|
1517
|
+
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
1518
|
+
await select.click();
|
|
1519
|
+
await page.waitForChanges();
|
|
1520
|
+
const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
|
|
1521
|
+
const menuOptions = await menu.findAll("li");
|
|
1522
|
+
expect(menuOptions).toHaveLength(1);
|
|
1523
|
+
expect(menuOptions[0]).toEqualText("No results found");
|
|
1524
|
+
});
|
|
1525
|
+
});
|
|
1526
|
+
});
|
|
1527
|
+
it("should reset to initial value on form reset", async () => {
|
|
1528
|
+
const page = await newE2EPage();
|
|
1529
|
+
await page.setContent(getTestSelectFormReset(options));
|
|
1499
1530
|
await page.waitForChanges();
|
|
1531
|
+
let value = await page.$eval("ic-select", (el) => {
|
|
1532
|
+
const select = el;
|
|
1533
|
+
return select.value;
|
|
1534
|
+
});
|
|
1535
|
+
expect(value).toBe(undefined);
|
|
1500
1536
|
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
1501
|
-
await select.press("
|
|
1537
|
+
await select.press("Enter");
|
|
1502
1538
|
await page.waitForChanges();
|
|
1503
|
-
|
|
1504
|
-
expect(firstOption).toEqualText("Loading...");
|
|
1505
|
-
const clearButton = await page.find("ic-select >>> .clear-button");
|
|
1506
|
-
await clearButton.click();
|
|
1539
|
+
await select.press("ArrowDown");
|
|
1507
1540
|
await page.waitForChanges();
|
|
1508
|
-
await page
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1541
|
+
value = await page.$eval("ic-select", (el) => {
|
|
1542
|
+
const select = el;
|
|
1543
|
+
return select.value;
|
|
1544
|
+
});
|
|
1545
|
+
expect(value).toBe("Test value 1");
|
|
1546
|
+
await page.$eval("#resetButton", (el) => {
|
|
1547
|
+
const reset = el;
|
|
1548
|
+
reset.click();
|
|
1549
|
+
});
|
|
1550
|
+
await page.waitForChanges();
|
|
1551
|
+
value = await page.$eval("ic-select", (el) => {
|
|
1552
|
+
const select = el;
|
|
1553
|
+
return select.value;
|
|
1554
|
+
});
|
|
1555
|
+
expect(value).toBe(undefined);
|
|
1556
|
+
});
|
|
1557
|
+
it("menu should not be visible on initial load if setting default value and disable filter is set", async () => {
|
|
1558
|
+
const page = await newE2EPage();
|
|
1559
|
+
await page.setContent(getTestSearchableSelectAsync());
|
|
1560
|
+
await page.waitForChanges();
|
|
1561
|
+
await page.waitForTimeout(900);
|
|
1562
|
+
expect(await getMenuVisibility(page)).toBe("hidden");
|
|
1563
|
+
});
|
|
1564
|
+
it("should reset to initial value on form reset with searchable", async () => {
|
|
1513
1565
|
const page = await newE2EPage();
|
|
1514
|
-
await page.setContent(
|
|
1566
|
+
await page.setContent(getTestSelectSearchableFormReset(options));
|
|
1515
1567
|
await page.waitForChanges();
|
|
1568
|
+
let value = await page.$eval("ic-select", (el) => {
|
|
1569
|
+
const select = el;
|
|
1570
|
+
return select.value;
|
|
1571
|
+
});
|
|
1572
|
+
expect(value).toBe("Test value 1");
|
|
1516
1573
|
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
1517
|
-
await select.
|
|
1574
|
+
await select.press("ArrowDown");
|
|
1518
1575
|
await page.waitForChanges();
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
expect(value).toBe("Test value 1");
|
|
1572
|
-
const select = await page.find("ic-select >>> #ic-select-input-0");
|
|
1573
|
-
await select.press("ArrowDown");
|
|
1574
|
-
await page.waitForChanges();
|
|
1575
|
-
await select.press("ArrowDown");
|
|
1576
|
-
await page.waitForChanges();
|
|
1577
|
-
await select.press("Enter");
|
|
1578
|
-
await page.waitForChanges();
|
|
1579
|
-
value = await page.$eval("ic-select", (el) => {
|
|
1580
|
-
const select = el;
|
|
1581
|
-
return select.value;
|
|
1582
|
-
});
|
|
1583
|
-
expect(value).toBe("Test value 2");
|
|
1584
|
-
await page.$eval("#resetButton", (el) => {
|
|
1585
|
-
const reset = el;
|
|
1586
|
-
reset.click();
|
|
1587
|
-
});
|
|
1588
|
-
await page.waitForChanges();
|
|
1589
|
-
value = await page.$eval("ic-select", (el) => {
|
|
1590
|
-
const select = el;
|
|
1591
|
-
return select.value;
|
|
1592
|
-
});
|
|
1593
|
-
expect(value).toBe("Test value 1");
|
|
1594
|
-
});
|
|
1595
|
-
let page;
|
|
1596
|
-
describe("native", () => {
|
|
1597
|
-
beforeEach(async () => {
|
|
1598
|
-
page = await newE2EPage();
|
|
1599
|
-
await page.setUserAgent("Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1");
|
|
1600
|
-
await page.setViewport({
|
|
1601
|
-
width: 375,
|
|
1602
|
-
height: 667,
|
|
1603
|
-
isMobile: true,
|
|
1604
|
-
hasTouch: true,
|
|
1605
|
-
});
|
|
1606
|
-
});
|
|
1607
|
-
it("should render", async () => {
|
|
1608
|
-
await page.setContent(getTestSelect(options));
|
|
1609
|
-
await page.waitForChanges();
|
|
1610
|
-
const select = await page.find("ic-select >>> select");
|
|
1611
|
-
expect(select).not.toBeNull();
|
|
1612
|
-
});
|
|
1613
|
-
it("should render a native select when searchable is applied on mobile", async () => {
|
|
1614
|
-
await page.setContent(getTestSearchableSelect(options));
|
|
1615
|
-
await page.waitForChanges();
|
|
1616
|
-
const select = await page.find("ic-select >>> select");
|
|
1617
|
-
expect(select).not.toBeNull();
|
|
1618
|
-
});
|
|
1619
|
-
it("should render when no options are provided", async () => {
|
|
1620
|
-
await page.setContent(`<ic-select label="IC Select Test"></ic-select>`);
|
|
1621
|
-
await page.waitForChanges();
|
|
1622
|
-
const select = await page.find("ic-select >>> select");
|
|
1623
|
-
expect(select).not.toBeNull();
|
|
1624
|
-
});
|
|
1625
|
-
it("should disable options correctly", async () => {
|
|
1626
|
-
const optionsWithDisabled = `[
|
|
1576
|
+
await select.press("ArrowDown");
|
|
1577
|
+
await page.waitForChanges();
|
|
1578
|
+
await select.press("Enter");
|
|
1579
|
+
await page.waitForChanges();
|
|
1580
|
+
value = await page.$eval("ic-select", (el) => {
|
|
1581
|
+
const select = el;
|
|
1582
|
+
return select.value;
|
|
1583
|
+
});
|
|
1584
|
+
expect(value).toBe("Test value 2");
|
|
1585
|
+
await page.$eval("#resetButton", (el) => {
|
|
1586
|
+
const reset = el;
|
|
1587
|
+
reset.click();
|
|
1588
|
+
});
|
|
1589
|
+
await page.waitForChanges();
|
|
1590
|
+
value = await page.$eval("ic-select", (el) => {
|
|
1591
|
+
const select = el;
|
|
1592
|
+
return select.value;
|
|
1593
|
+
});
|
|
1594
|
+
expect(value).toBe("Test value 1");
|
|
1595
|
+
});
|
|
1596
|
+
let page;
|
|
1597
|
+
describe("native", () => {
|
|
1598
|
+
beforeEach(async () => {
|
|
1599
|
+
page = await newE2EPage();
|
|
1600
|
+
await page.setUserAgent("Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1");
|
|
1601
|
+
await page.setViewport({
|
|
1602
|
+
width: 375,
|
|
1603
|
+
height: 667,
|
|
1604
|
+
isMobile: true,
|
|
1605
|
+
hasTouch: true,
|
|
1606
|
+
});
|
|
1607
|
+
});
|
|
1608
|
+
it("should render", async () => {
|
|
1609
|
+
await page.setContent(getTestSelect(options));
|
|
1610
|
+
await page.waitForChanges();
|
|
1611
|
+
const select = await page.find("ic-select >>> select");
|
|
1612
|
+
expect(select).not.toBeNull();
|
|
1613
|
+
});
|
|
1614
|
+
it("should render a native select when searchable is applied on mobile", async () => {
|
|
1615
|
+
await page.setContent(getTestSearchableSelect(options));
|
|
1616
|
+
await page.waitForChanges();
|
|
1617
|
+
const select = await page.find("ic-select >>> select");
|
|
1618
|
+
expect(select).not.toBeNull();
|
|
1619
|
+
});
|
|
1620
|
+
it("should render when no options are provided", async () => {
|
|
1621
|
+
await page.setContent(`<ic-select label="IC Select Test"></ic-select>`);
|
|
1622
|
+
await page.waitForChanges();
|
|
1623
|
+
const select = await page.find("ic-select >>> select");
|
|
1624
|
+
expect(select).not.toBeNull();
|
|
1625
|
+
});
|
|
1626
|
+
it("should disable options correctly", async () => {
|
|
1627
|
+
const optionsWithDisabled = `[
|
|
1627
1628
|
{ label: 'Test label 1', value: 'Test value 1', disabled: true },
|
|
1628
1629
|
{ label: 'Test label 2', value: 'Test value 2' },
|
|
1629
1630
|
{ label: 'Test label 3', value: 'Test value 3' },
|
|
1630
1631
|
]`;
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1632
|
+
await page.setContent(getTestSelect(optionsWithDisabled));
|
|
1633
|
+
await page.waitForChanges();
|
|
1634
|
+
const optionsDisabled = await page.evaluate(() => Array.from(document
|
|
1635
|
+
.querySelector("ic-select")
|
|
1636
|
+
.shadowRoot.querySelectorAll("option"), (option) => option.disabled));
|
|
1637
|
+
expect(optionsDisabled[0]).toBe(true);
|
|
1638
|
+
});
|
|
1639
|
+
it("should render options as <optgroup>s if they have children", async () => {
|
|
1640
|
+
const groupedOptions = `[
|
|
1640
1641
|
{
|
|
1641
1642
|
label: 'Test group',
|
|
1642
1643
|
children: [
|
|
@@ -1646,179 +1647,179 @@ describe("ic-select", () => {
|
|
|
1646
1647
|
],
|
|
1647
1648
|
},
|
|
1648
1649
|
]`;
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1650
|
+
await page.setContent(getTestSelect(groupedOptions));
|
|
1651
|
+
await page.waitForChanges();
|
|
1652
|
+
const optGroup = await page.evaluate(() => document.querySelector("ic-select").shadowRoot.querySelector("optgroup"));
|
|
1653
|
+
expect(optGroup).toBeTruthy();
|
|
1654
|
+
});
|
|
1655
|
+
it("should render a required <select> when required", async () => {
|
|
1656
|
+
await page.setContent(getTestSelect(options));
|
|
1657
|
+
const icSelect = await page.find("ic-select");
|
|
1658
|
+
icSelect.setAttribute("required", true);
|
|
1659
|
+
await page.waitForChanges();
|
|
1660
|
+
const select = await page.find("ic-select >>> select");
|
|
1661
|
+
expect(select).toHaveAttribute("required");
|
|
1662
|
+
});
|
|
1663
|
+
it("should not render a label when the 'hide-label' prop is supplied", async () => {
|
|
1664
|
+
await page.setContent(getTestSelect(options));
|
|
1665
|
+
const icSelect = await page.find("ic-select");
|
|
1666
|
+
icSelect.setAttribute("hide-label", true);
|
|
1667
|
+
await page.waitForChanges();
|
|
1668
|
+
const label = await page.find("ic-select >>> ic-input-label");
|
|
1669
|
+
expect(label).toBeNull();
|
|
1670
|
+
});
|
|
1671
|
+
it("should render a disabled <select> when the 'disabled' prop is supplied", async () => {
|
|
1672
|
+
await page.setContent(getTestSelect(options));
|
|
1673
|
+
const icSelect = await page.find("ic-select");
|
|
1674
|
+
icSelect.setAttribute("disabled", true);
|
|
1675
|
+
await page.waitForChanges();
|
|
1676
|
+
const select = await page.find("ic-select >>> select");
|
|
1677
|
+
expect(select).toHaveAttribute("disabled");
|
|
1678
|
+
});
|
|
1679
|
+
it("should render the selected value as text instead of rendering a <select> when read-only", async () => {
|
|
1680
|
+
await page.setContent(getTestSelect(options));
|
|
1681
|
+
const icSelect = await page.find("ic-select");
|
|
1682
|
+
icSelect.setAttribute("value", "Test value 1");
|
|
1683
|
+
icSelect.setAttribute("readonly", true);
|
|
1684
|
+
await page.waitForChanges();
|
|
1685
|
+
const select = await page.find("ic-select >>> select");
|
|
1686
|
+
const typography = await page.evaluate(() => Array.from(document
|
|
1687
|
+
.querySelector("ic-select")
|
|
1688
|
+
.shadowRoot.querySelectorAll("ic-typography"), (typography) => typography.innerText));
|
|
1689
|
+
expect(select).toBe(null);
|
|
1690
|
+
expect(typography[1]).toBe("Test label 1");
|
|
1691
|
+
});
|
|
1692
|
+
it("should render the correct placeholder", async () => {
|
|
1693
|
+
await page.setContent(getTestSelect(options));
|
|
1694
|
+
const icSelect = await page.find("ic-select");
|
|
1695
|
+
icSelect.setAttribute("placeholder", "Test placeholder");
|
|
1696
|
+
await page.waitForChanges();
|
|
1697
|
+
const optionLabels = await page.evaluate(() => Array.from(document
|
|
1698
|
+
.querySelector("ic-select")
|
|
1699
|
+
.shadowRoot.querySelectorAll("option"), (option) => option.innerText));
|
|
1700
|
+
expect(optionLabels[0]).toEqual("Test placeholder");
|
|
1701
|
+
});
|
|
1702
|
+
it("should set aria-invalid if validation status is 'error'", async () => {
|
|
1703
|
+
await page.setContent(getTestSelect(options));
|
|
1704
|
+
const icSelect = await page.find("ic-select");
|
|
1705
|
+
icSelect.setAttribute("validation-status", "error");
|
|
1706
|
+
await page.waitForChanges();
|
|
1707
|
+
const select = await page.find("ic-select >>> select");
|
|
1708
|
+
expect(select).toHaveAttribute("aria-invalid");
|
|
1709
|
+
});
|
|
1710
|
+
it("should display the value passed in using the 'value' prop as the selected option", async () => {
|
|
1711
|
+
await page.setContent(getTestSelect(options));
|
|
1712
|
+
const icSelect = await page.find("ic-select");
|
|
1713
|
+
icSelect.setAttribute("value", "Test value 1");
|
|
1714
|
+
await page.waitForChanges();
|
|
1715
|
+
const optionsSelected = await page.evaluate(() => Array.from(document
|
|
1716
|
+
.querySelector("ic-select")
|
|
1717
|
+
.shadowRoot.querySelectorAll("option"), (option) => option.selected));
|
|
1718
|
+
expect(optionsSelected[1]).toBe(true);
|
|
1719
|
+
});
|
|
1720
|
+
it("should set the correct name on the hidden input", async () => {
|
|
1721
|
+
await page.setContent(getTestSelect(options));
|
|
1722
|
+
const icSelect = await page.find("ic-select");
|
|
1723
|
+
icSelect.setAttribute("name", "Test name");
|
|
1724
|
+
await page.waitForChanges();
|
|
1725
|
+
const hiddenInput = await page.find("input");
|
|
1726
|
+
const hiddenInputName = await hiddenInput.getProperty("name");
|
|
1727
|
+
expect(hiddenInputName).toEqual("Test name");
|
|
1728
|
+
});
|
|
1729
|
+
it("should call icChange when the selected option is changed", async () => {
|
|
1730
|
+
await page.setContent(getTestSelect(options));
|
|
1731
|
+
await page.waitForChanges();
|
|
1732
|
+
const icChange = await page.spyOnEvent("icChange");
|
|
1733
|
+
const select = await page.find("ic-select >>> select");
|
|
1734
|
+
await select.press("ArrowDown");
|
|
1735
|
+
await select.press("Enter");
|
|
1736
|
+
await page.waitForChanges();
|
|
1737
|
+
expect(icChange).toHaveReceivedEventDetail({
|
|
1738
|
+
value: "Test value 1",
|
|
1739
|
+
});
|
|
1740
|
+
});
|
|
1741
|
+
it("should call icFocus when focused", async () => {
|
|
1742
|
+
await page.setContent(getTestSelect(options));
|
|
1743
|
+
await page.waitForChanges();
|
|
1744
|
+
const icFocus = await page.spyOnEvent("icFocus");
|
|
1745
|
+
await page.keyboard.down("Tab");
|
|
1746
|
+
await page.waitForChanges();
|
|
1747
|
+
expect(icFocus).toHaveReceivedEvent();
|
|
1748
|
+
});
|
|
1749
|
+
it("should call icBlur when it loses focus", async () => {
|
|
1750
|
+
await page.setContent(getTestSelect(options));
|
|
1751
|
+
await page.waitForChanges();
|
|
1752
|
+
const icBlur = await page.spyOnEvent("icBlur");
|
|
1753
|
+
await page.keyboard.down("Tab");
|
|
1754
|
+
await page.keyboard.down("Tab");
|
|
1755
|
+
await page.waitForChanges();
|
|
1756
|
+
expect(icBlur).toHaveReceivedEvent();
|
|
1757
|
+
});
|
|
1758
|
+
it("should set the 'placeholder' class name if no option is selected", async () => {
|
|
1759
|
+
await page.setContent(getTestSelect(options));
|
|
1760
|
+
await page.waitForChanges();
|
|
1761
|
+
const selectClassName = await page.evaluate(() => document.querySelector("ic-select").shadowRoot.querySelector("select")
|
|
1762
|
+
.className);
|
|
1763
|
+
expect(selectClassName).toBe("placeholder");
|
|
1764
|
+
});
|
|
1765
|
+
it("should set the text colour to the primary text colour if an option is selected", async () => {
|
|
1766
|
+
await page.setContent(getTestSelect(options));
|
|
1767
|
+
const icSelect = await page.find("ic-select");
|
|
1768
|
+
icSelect.setAttribute("value", "Test value 1");
|
|
1769
|
+
await page.waitForChanges();
|
|
1770
|
+
const selectClassName = await page.evaluate(() => document.querySelector("ic-select").shadowRoot.querySelector("select")
|
|
1771
|
+
.className);
|
|
1772
|
+
expect(selectClassName).toBe("select-option-selected");
|
|
1773
|
+
});
|
|
1774
|
+
it("should change the text colour to the primary text colour when an option is selected", async () => {
|
|
1775
|
+
await page.setContent(getTestSelect(options));
|
|
1776
|
+
await page.waitForChanges();
|
|
1777
|
+
const select = await page.find("ic-select >>> select");
|
|
1778
|
+
await select.press("ArrowDown");
|
|
1779
|
+
await select.press("Enter");
|
|
1780
|
+
await page.waitForChanges();
|
|
1781
|
+
const selectClassName = await page.evaluate(() => document.querySelector("ic-select").shadowRoot.querySelector("select")
|
|
1782
|
+
.className);
|
|
1783
|
+
expect(selectClassName).toBe("select-option-selected");
|
|
1784
|
+
});
|
|
1785
|
+
it("should add .menu-scroll to menu components when options height is over 320", async () => {
|
|
1786
|
+
const page = await newE2EPage();
|
|
1787
|
+
await page.setContent(getTestSelect(largeOptions));
|
|
1788
|
+
await page.waitForChanges();
|
|
1789
|
+
const select = await page.find("ic-select >>> button.select-input");
|
|
1790
|
+
await select.click();
|
|
1791
|
+
await page.waitForChanges();
|
|
1792
|
+
const menuClasses = await page.evaluate(() => {
|
|
1793
|
+
const menu = document
|
|
1794
|
+
.querySelector("ic-select")
|
|
1795
|
+
.shadowRoot.querySelector("ic-menu .menu");
|
|
1796
|
+
return menu.classList;
|
|
1797
|
+
});
|
|
1798
|
+
expect(Object.values(menuClasses).includes("menu-scroll")).toBeTruthy();
|
|
1799
|
+
});
|
|
1800
|
+
it("should add .menu-scroll to menu components when options are initially set and then populated with large data set", async () => {
|
|
1801
|
+
const page = await newE2EPage();
|
|
1802
|
+
await page.setContent(getTestSelectAsync(options, largeOptions));
|
|
1803
|
+
await page.waitForChanges();
|
|
1804
|
+
const select = await page.find("ic-select >>> button.select-input");
|
|
1805
|
+
await select.click();
|
|
1806
|
+
await page.waitForChanges();
|
|
1807
|
+
let menuClasses = await page.evaluate(() => {
|
|
1808
|
+
const menu = document
|
|
1809
|
+
.querySelector("ic-select")
|
|
1810
|
+
.shadowRoot.querySelector("ic-menu .menu");
|
|
1811
|
+
return menu.classList;
|
|
1812
|
+
});
|
|
1813
|
+
expect(Object.values(menuClasses).includes("menu-scroll")).toBeFalsy();
|
|
1814
|
+
await page.waitForTimeout(1200);
|
|
1815
|
+
menuClasses = await page.evaluate(() => {
|
|
1816
|
+
const menu = document
|
|
1817
|
+
.querySelector("ic-select")
|
|
1818
|
+
.shadowRoot.querySelector("ic-menu .menu");
|
|
1819
|
+
return menu.classList;
|
|
1820
|
+
});
|
|
1821
|
+
expect(Object.values(menuClasses).includes("menu-scroll")).toBeTruthy();
|
|
1822
|
+
});
|
|
1821
1823
|
});
|
|
1822
|
-
});
|
|
1823
1824
|
});
|
|
1824
1825
|
//# sourceMappingURL=ic-select.e2e.js.map
|