wcs-core 7.6.0 → 7.7.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/bundle/index.js +1 -1
- package/{dist/wcs/p-dbf82cb9.js → bundle/p-035ad27f.js} +2 -2
- package/bundle/{p-5ef2bc63.js → p-16c7ed2e.js} +2 -2
- package/bundle/p-34ecd856.js +2 -0
- package/bundle/p-34ecd856.js.map +1 -0
- package/bundle/p-53550684.js +2 -0
- package/bundle/p-53550684.js.map +1 -0
- package/{composite-elements/p-2454bcae.js → bundle/p-5a997d17.js} +2 -2
- package/bundle/p-68ab4391.js +16 -0
- package/bundle/p-68ab4391.js.map +1 -0
- package/bundle/{p-60193ef5.js → p-791fce94.js} +2 -2
- package/bundle/{p-7a06295b.js → p-87b9556d.js} +2 -2
- package/bundle/{p-a0268a31.js → p-886109ed.js} +2 -2
- package/bundle/{p-d05140f5.js → p-9138985e.js} +2 -2
- package/bundle/p-95eb2e54.js +2 -0
- package/bundle/p-95eb2e54.js.map +1 -0
- package/bundle/{p-8b186fcf.js → p-a9a83300.js} +2 -2
- package/bundle/{p-ff261e50.js → p-c13e9bb6.js} +8 -8
- package/bundle/p-c13e9bb6.js.map +1 -0
- package/bundle/p-c70a403e.js +2 -0
- package/bundle/p-c70a403e.js.map +1 -0
- package/bundle/{p-bce8c93f.js → p-d7d1ea63.js} +2 -2
- package/bundle/p-f6d5c242.js +2 -0
- package/bundle/p-f6d5c242.js.map +1 -0
- package/bundle/wcs-accordion-panel.js +1 -1
- package/bundle/wcs-alert-drawer.js +1 -1
- package/bundle/wcs-alert-drawer.js.map +1 -1
- package/bundle/wcs-alert.js +1 -1
- package/bundle/wcs-app.js +1 -1
- package/bundle/wcs-badge.js +1 -1
- package/bundle/wcs-breadcrumb-item.js +1 -1
- package/bundle/wcs-breadcrumb.js +1 -1
- package/bundle/wcs-button.js +1 -1
- package/bundle/wcs-card-body.js +1 -1
- package/bundle/wcs-card-body.js.map +1 -1
- package/bundle/wcs-card-content.js +1 -1
- package/bundle/wcs-card-footer.js +1 -1
- package/bundle/wcs-card-header.js +1 -1
- package/bundle/wcs-card-media.js +1 -1
- package/bundle/wcs-card.js +1 -1
- package/bundle/wcs-checkbox.js +1 -1
- package/bundle/wcs-chip.js +1 -1
- package/bundle/wcs-chip.js.map +1 -1
- package/bundle/wcs-com-nav-category.js +1 -1
- package/bundle/wcs-com-nav-item.js +1 -1
- package/bundle/wcs-com-nav-submenu.js +1 -1
- package/bundle/wcs-com-nav.js +1 -1
- package/bundle/wcs-com-nav.js.map +1 -1
- package/bundle/wcs-counter.js +1 -1
- package/bundle/wcs-divider.js +1 -1
- package/bundle/wcs-dropdown-divider.js +1 -1
- package/bundle/wcs-dropdown-header.js +1 -1
- package/bundle/wcs-dropdown-item.js +1 -1
- package/bundle/wcs-dropdown.js +1 -1
- package/bundle/wcs-dropdown.js.map +1 -1
- package/bundle/wcs-editable-field.js +1 -1
- package/bundle/wcs-error.js +1 -1
- package/bundle/wcs-field-content.js +1 -1
- package/bundle/wcs-field-content.js.map +1 -1
- package/bundle/wcs-field-label.js +1 -1
- package/bundle/wcs-field.js +1 -1
- package/bundle/wcs-field.js.map +1 -1
- package/bundle/wcs-footer.js +1 -1
- package/bundle/wcs-form-field.js +1 -1
- package/bundle/wcs-galactic-menu.js +1 -1
- package/bundle/wcs-galactic.js +1 -1
- package/bundle/wcs-grid-column.js +1 -1
- package/bundle/wcs-grid-column.js.map +1 -1
- package/bundle/wcs-grid-custom-cell.js +1 -1
- package/bundle/wcs-grid-pagination.js +1 -1
- package/bundle/wcs-grid.js +1 -1
- package/bundle/wcs-grid.js.map +1 -1
- package/bundle/wcs-header.js +1 -1
- package/bundle/wcs-hint.js +1 -1
- package/bundle/wcs-horizontal-stepper.js +1 -1
- package/bundle/wcs-icon.js +1 -1
- package/bundle/wcs-input.js +1 -1
- package/bundle/wcs-label.js +1 -1
- package/bundle/wcs-list-item-properties.js +1 -1
- package/bundle/wcs-list-item-property.js +1 -1
- package/bundle/wcs-list-item.js +1 -1
- package/bundle/wcs-mat-icon.js +1 -1
- package/bundle/wcs-message.d.ts +11 -0
- package/bundle/wcs-message.js +2 -0
- package/bundle/wcs-message.js.map +1 -0
- package/bundle/wcs-modal.js +1 -1
- package/bundle/wcs-native-select.js +1 -1
- package/bundle/wcs-nav-item.js +1 -1
- package/bundle/wcs-nav.js +1 -1
- package/bundle/wcs-progress-bar.js +1 -1
- package/bundle/wcs-progress-radial.js +1 -1
- package/bundle/wcs-radio-group.js +1 -1
- package/bundle/wcs-radio.js +1 -1
- package/bundle/wcs-select-option.js +1 -1
- package/bundle/wcs-select.js +1 -1
- package/bundle/wcs-skeleton-circle.js +1 -1
- package/bundle/wcs-skeleton-rectangle.js +1 -1
- package/bundle/wcs-skeleton-text.js +1 -1
- package/bundle/wcs-spinner.js +1 -1
- package/bundle/wcs-switch.js +1 -1
- package/bundle/wcs-tab.js +1 -1
- package/bundle/wcs-tab.js.map +1 -1
- package/bundle/wcs-tabs.js +1 -1
- package/bundle/wcs-textarea.js +1 -1
- package/bundle/wcs-tooltip.js +2 -2
- package/composite-elements/{p-a90bb01e.js → p-061ccda5.js} +2 -2
- package/composite-elements/{p-ef26b4d8.js → p-2181568b.js} +2 -2
- package/composite-elements/{p-87e97a2e.js → p-61886571.js} +2 -2
- package/composite-elements/p-846e40e9.js +16 -0
- package/composite-elements/p-846e40e9.js.map +1 -0
- package/composite-elements/p-8a2107d4.js +2 -0
- package/composite-elements/p-8a2107d4.js.map +1 -0
- package/composite-elements/p-8cafb0b4.js +2 -0
- package/composite-elements/p-8cafb0b4.js.map +1 -0
- package/composite-elements/p-8f51f4cb.js +2 -0
- package/composite-elements/p-8f51f4cb.js.map +1 -0
- package/composite-elements/{p-6b91c7bd.js → p-b53ae1a8.js} +2 -2
- package/{dist/wcs/p-7af9a2f3.js → composite-elements/p-b6d0a6b4.js} +2 -2
- package/composite-elements/p-cb9faa9b.js +2 -0
- package/composite-elements/{p-5a3d7fec.js → p-cd6cca64.js} +2 -2
- package/composite-elements/{p-e4e3ed2c.js → p-d2d79425.js} +2 -2
- package/composite-elements/{p-a70a3379.js → p-f0b064a2.js} +2 -2
- package/composite-elements/{p-ec3ce4d4.js → p-f161f50b.js} +8 -8
- package/composite-elements/p-f161f50b.js.map +1 -0
- package/composite-elements/p-f6d5c242.js +2 -0
- package/composite-elements/p-f6d5c242.js.map +1 -0
- package/composite-elements/p-f85cc676.js +2 -0
- package/composite-elements/p-f85cc676.js.map +1 -0
- package/composite-elements/wcs-accordion-panel.js +1 -1
- package/composite-elements/wcs-alert-drawer.js +1 -1
- package/composite-elements/wcs-alert-drawer.js.map +1 -1
- package/composite-elements/wcs-alert.js +1 -1
- package/composite-elements/wcs-app.js +1 -1
- package/composite-elements/wcs-badge.js +1 -1
- package/composite-elements/wcs-breadcrumb-item.js +1 -1
- package/composite-elements/wcs-breadcrumb.js +1 -1
- package/composite-elements/wcs-button.js +1 -1
- package/composite-elements/wcs-card-body.js +1 -1
- package/composite-elements/wcs-card-body.js.map +1 -1
- package/composite-elements/wcs-card-content.js +1 -1
- package/composite-elements/wcs-card-footer.js +1 -1
- package/composite-elements/wcs-card-header.js +1 -1
- package/composite-elements/wcs-card-media.js +1 -1
- package/composite-elements/wcs-card.js +1 -1
- package/composite-elements/wcs-checkbox.js +1 -1
- package/composite-elements/wcs-chip.js +1 -1
- package/composite-elements/wcs-chip.js.map +1 -1
- package/composite-elements/wcs-com-nav-category.js +1 -1
- package/composite-elements/wcs-com-nav-item.js +1 -1
- package/composite-elements/wcs-com-nav-submenu.js +1 -1
- package/composite-elements/wcs-com-nav.js +1 -1
- package/composite-elements/wcs-com-nav.js.map +1 -1
- package/composite-elements/wcs-counter.js +1 -1
- package/composite-elements/wcs-divider.js +1 -1
- package/composite-elements/wcs-dropdown-divider.js +1 -1
- package/composite-elements/wcs-dropdown-header.js +1 -1
- package/composite-elements/wcs-dropdown-item.js +1 -1
- package/composite-elements/wcs-dropdown.js +1 -1
- package/composite-elements/wcs-dropdown.js.map +1 -1
- package/composite-elements/wcs-editable-field.js +1 -1
- package/composite-elements/wcs-error.js +1 -1
- package/composite-elements/wcs-field-content.js +1 -1
- package/composite-elements/wcs-field-content.js.map +1 -1
- package/composite-elements/wcs-field-label.js +1 -1
- package/composite-elements/wcs-field.js +1 -1
- package/composite-elements/wcs-field.js.map +1 -1
- package/composite-elements/wcs-footer.js +1 -1
- package/composite-elements/wcs-form-field.js +1 -1
- package/composite-elements/wcs-galactic-menu.js +1 -1
- package/composite-elements/wcs-galactic.js +1 -1
- package/composite-elements/wcs-grid-column.js +1 -1
- package/composite-elements/wcs-grid-column.js.map +1 -1
- package/composite-elements/wcs-grid-custom-cell.js +1 -1
- package/composite-elements/wcs-grid-pagination.js +1 -1
- package/composite-elements/wcs-grid.js +1 -1
- package/composite-elements/wcs-grid.js.map +1 -1
- package/composite-elements/wcs-header.js +1 -1
- package/composite-elements/wcs-hint.js +1 -1
- package/composite-elements/wcs-horizontal-stepper.js +1 -1
- package/composite-elements/wcs-icon.js +1 -1
- package/composite-elements/wcs-input.js +1 -1
- package/composite-elements/wcs-label.js +1 -1
- package/composite-elements/wcs-list-item-properties.js +1 -1
- package/composite-elements/wcs-list-item-property.js +1 -1
- package/composite-elements/wcs-list-item.js +1 -1
- package/composite-elements/wcs-mat-icon.js +1 -1
- package/composite-elements/wcs-message.d.ts +11 -0
- package/composite-elements/wcs-message.js +2 -0
- package/composite-elements/wcs-message.js.map +1 -0
- package/composite-elements/wcs-modal.js +1 -1
- package/composite-elements/wcs-native-select.js +1 -1
- package/composite-elements/wcs-nav-item.js +1 -1
- package/composite-elements/wcs-nav.js +1 -1
- package/composite-elements/wcs-progress-bar.js +1 -1
- package/composite-elements/wcs-progress-radial.js +1 -1
- package/composite-elements/wcs-radio-group.js +1 -1
- package/composite-elements/wcs-radio.js +1 -1
- package/composite-elements/wcs-select-option.js +1 -1
- package/composite-elements/wcs-select.js +1 -1
- package/composite-elements/wcs-skeleton-circle.js +1 -1
- package/composite-elements/wcs-skeleton-rectangle.js +1 -1
- package/composite-elements/wcs-skeleton-text.js +1 -1
- package/composite-elements/wcs-spinner.js +1 -1
- package/composite-elements/wcs-switch.js +1 -1
- package/composite-elements/wcs-tab.js +1 -1
- package/composite-elements/wcs-tab.js.map +1 -1
- package/composite-elements/wcs-tabs.js +1 -1
- package/composite-elements/wcs-textarea.js +1 -1
- package/composite-elements/wcs-tooltip.js +2 -2
- package/dist/cjs/alert-close-button-4435ed57.js +10 -0
- package/dist/cjs/alert-close-button-4435ed57.js.map +1 -0
- package/dist/cjs/{com-nav-utils-ff4f0bef.js → com-nav-utils-e081e998.js} +2 -2
- package/dist/cjs/{com-nav-utils-ff4f0bef.js.map → com-nav-utils-e081e998.js.map} +1 -1
- package/dist/cjs/{grid-pagination-ded127cc.js → grid-pagination-e92dca78.js} +4 -4
- package/dist/cjs/grid-pagination-e92dca78.js.map +1 -0
- package/dist/cjs/{helpers-2f1a8ddc.js → helpers-eaafd588.js} +1 -9
- package/dist/cjs/helpers-eaafd588.js.map +1 -0
- package/dist/cjs/{keyboard-event-40ecdc27.js → keyboard-event-4890c60e.js} +2 -2
- package/dist/cjs/{keyboard-event-40ecdc27.js.map → keyboard-event-4890c60e.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/wcs-accordion-panel.cjs.entry.js +1 -1
- package/dist/cjs/wcs-alert-drawer.cjs.entry.js +14 -2
- package/dist/cjs/wcs-alert-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-alert.cjs.entry.js +3 -2
- package/dist/cjs/wcs-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-app.cjs.entry.js +3 -3
- package/dist/cjs/wcs-badge.cjs.entry.js +1 -1
- package/dist/cjs/wcs-breadcrumb-item.cjs.entry.js +1 -1
- package/dist/cjs/wcs-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/{wcs-button_2.cjs.entry.js → wcs-button_3.cjs.entry.js} +40 -5
- package/dist/cjs/wcs-button_3.cjs.entry.js.map +1 -0
- package/dist/cjs/wcs-card-body.cjs.entry.js +1 -1
- package/dist/cjs/wcs-card-content.cjs.entry.js +1 -1
- package/dist/cjs/wcs-card-footer.cjs.entry.js +1 -1
- package/dist/cjs/wcs-card-header.cjs.entry.js +1 -1
- package/dist/cjs/wcs-card-media.cjs.entry.js +1 -1
- package/dist/cjs/wcs-card.cjs.entry.js +1 -1
- package/dist/cjs/wcs-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/wcs-chip.cjs.entry.js +18 -6
- package/dist/cjs/wcs-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-com-nav-category.cjs.entry.js +4 -4
- package/dist/cjs/wcs-com-nav-item.cjs.entry.js +1 -1
- package/dist/cjs/wcs-com-nav-submenu.cjs.entry.js +4 -4
- package/dist/cjs/wcs-com-nav.cjs.entry.js +4 -4
- package/dist/cjs/wcs-counter.cjs.entry.js +2 -2
- package/dist/cjs/wcs-divider.cjs.entry.js +1 -1
- package/dist/cjs/wcs-dropdown-divider.cjs.entry.js +1 -1
- package/dist/cjs/wcs-dropdown-header.cjs.entry.js +1 -1
- package/dist/cjs/wcs-dropdown-item.cjs.entry.js +2 -2
- package/dist/cjs/wcs-dropdown.cjs.entry.js +4 -4
- package/dist/cjs/wcs-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-editable-field.cjs.entry.js +2 -2
- package/dist/cjs/wcs-error_3.cjs.entry.js +4 -4
- package/dist/cjs/wcs-field-content.cjs.entry.js +1 -1
- package/dist/cjs/wcs-field-label.cjs.entry.js +1 -1
- package/dist/cjs/wcs-field.cjs.entry.js +1 -1
- package/dist/cjs/wcs-footer.cjs.entry.js +1 -1
- package/dist/cjs/wcs-galactic-menu.cjs.entry.js +3 -3
- package/dist/cjs/wcs-galactic.cjs.entry.js +1 -1
- package/dist/cjs/wcs-grid-column.cjs.entry.js +2 -2
- package/dist/cjs/wcs-grid-custom-cell.cjs.entry.js +1 -1
- package/dist/cjs/wcs-grid-pagination.cjs.entry.js +2 -2
- package/dist/cjs/wcs-grid.cjs.entry.js +13 -6
- package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-header.cjs.entry.js +2 -2
- package/dist/cjs/wcs-hint.cjs.entry.js +1 -1
- package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +1 -1
- package/dist/cjs/wcs-icon.cjs.entry.js +2 -2
- package/dist/cjs/wcs-input.cjs.entry.js +2 -2
- package/dist/cjs/wcs-list-item-properties.cjs.entry.js +1 -1
- package/dist/cjs/wcs-list-item-property.cjs.entry.js +1 -1
- package/dist/cjs/wcs-list-item.cjs.entry.js +1 -1
- package/dist/cjs/wcs-message.cjs.entry.js +56 -0
- package/dist/cjs/wcs-message.cjs.entry.js.map +1 -0
- package/dist/cjs/wcs-modal.cjs.entry.js +2 -2
- package/dist/cjs/wcs-native-select.cjs.entry.js +1 -1
- package/dist/cjs/wcs-nav-item.cjs.entry.js +2 -2
- package/dist/cjs/wcs-nav.cjs.entry.js +2 -2
- package/dist/cjs/wcs-progress-bar.cjs.entry.js +3 -3
- package/dist/cjs/wcs-progress-radial.cjs.entry.js +3 -3
- package/dist/cjs/wcs-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/wcs-radio.cjs.entry.js +2 -2
- package/dist/cjs/wcs-select_2.cjs.entry.js +11 -19
- package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-skeleton-circle.cjs.entry.js +1 -1
- package/dist/cjs/wcs-skeleton-rectangle.cjs.entry.js +1 -1
- package/dist/cjs/wcs-skeleton-text.cjs.entry.js +1 -1
- package/dist/cjs/wcs-switch.cjs.entry.js +2 -2
- package/dist/cjs/wcs-tab.cjs.entry.js +1 -1
- package/dist/cjs/wcs-tabs.cjs.entry.js +2 -2
- package/dist/cjs/wcs-textarea.cjs.entry.js +2 -2
- package/dist/cjs/wcs-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/wcs.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/alert/alert-close-button.js +3 -0
- package/dist/collection/components/alert/alert-close-button.js.map +1 -0
- package/dist/collection/components/alert/alert.css +12 -11
- package/dist/collection/components/alert/alert.js +2 -1
- package/dist/collection/components/alert/alert.js.map +1 -1
- package/dist/collection/components/alert-drawer/alert-drawer.js +34 -2
- package/dist/collection/components/alert-drawer/alert-drawer.js.map +1 -1
- package/dist/collection/components/app/app.js +3 -3
- package/dist/collection/components/badge/badge.js +1 -1
- package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
- package/dist/collection/components/breadcrumb-item/breadcrumb-item.js +1 -1
- package/dist/collection/components/button/button.css +26 -0
- package/dist/collection/components/button/button.js +47 -1
- package/dist/collection/components/button/button.js.map +1 -1
- package/dist/collection/components/card/card.js +1 -1
- package/dist/collection/components/card-body/card-body.js +1 -1
- package/dist/collection/components/card-content/card-content.js +1 -1
- package/dist/collection/components/card-footer/card-footer.js +1 -1
- package/dist/collection/components/card-header/card-header.js +1 -1
- package/dist/collection/components/card-media/card-media.js +1 -1
- package/dist/collection/components/checkbox/checkbox.js +1 -1
- package/dist/collection/components/chip/chip.e2e.playwright.js +33 -0
- package/dist/collection/components/chip/chip.e2e.playwright.js.map +1 -1
- package/dist/collection/components/chip/chip.js +19 -6
- package/dist/collection/components/chip/chip.js.map +1 -1
- package/dist/collection/components/com-nav/com-nav.js +2 -2
- package/dist/collection/components/com-nav-category/com-nav-category.js +2 -2
- package/dist/collection/components/com-nav-item/com-nav-item.js +1 -1
- package/dist/collection/components/com-nav-submenu/com-nav-submenu.js +2 -2
- package/dist/collection/components/counter/counter.js +1 -1
- package/dist/collection/components/divider/divider.js +1 -1
- package/dist/collection/components/dropdown/dropdown.css +1 -0
- package/dist/collection/components/dropdown/dropdown.e2e.playwright.js +23 -0
- package/dist/collection/components/dropdown/dropdown.e2e.playwright.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.js +1 -1
- package/dist/collection/components/dropdown-divider/dropdown-divider.js +1 -1
- package/dist/collection/components/dropdown-header/dropdown-header.js +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.js +1 -1
- package/dist/collection/components/editable-field/editable-field.js +1 -1
- package/dist/collection/components/error/error.js +1 -1
- package/dist/collection/components/field/field.js +1 -1
- package/dist/collection/components/field-content/field-content.js +1 -1
- package/dist/collection/components/field-label/field-label.js +1 -1
- package/dist/collection/components/footer/footer.js +1 -1
- package/dist/collection/components/form-field/form-field.js +1 -1
- package/dist/collection/components/galactic/galactic.js +1 -1
- package/dist/collection/components/galactic-menu/galactic-menu.js +2 -2
- package/dist/collection/components/grid/grid.e2e.playwright.js +75 -0
- package/dist/collection/components/grid/grid.e2e.playwright.js.map +1 -1
- package/dist/collection/components/grid/grid.js +10 -3
- package/dist/collection/components/grid/grid.js.map +1 -1
- package/dist/collection/components/grid-column/grid-column.js +1 -1
- package/dist/collection/components/grid-custom-cell/grid-custom-cell.js +1 -1
- package/dist/collection/components/grid-pagination/grid-pagination.css +4 -0
- package/dist/collection/components/grid-pagination/grid-pagination.js +1 -1
- package/dist/collection/components/grid-pagination/grid-pagination.js.map +1 -1
- package/dist/collection/components/header/header.js +1 -1
- package/dist/collection/components/hint/hint.js +1 -1
- package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +1 -1
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/input/input.js +1 -1
- package/dist/collection/components/label/label.js +1 -1
- package/dist/collection/components/list-item/list-item.js +1 -1
- package/dist/collection/components/list-item-properties/list-item-properties.js +1 -1
- package/dist/collection/components/list-item-property/list-item-property.js +1 -1
- package/dist/collection/components/mat-icon/mat-icon.css +8 -4
- package/dist/collection/components/mat-icon/mat-icon.js +6 -1
- package/dist/collection/components/mat-icon/mat-icon.js.map +1 -1
- package/dist/collection/components/message/message-interface.js +2 -0
- package/dist/collection/components/message/message-interface.js.map +1 -0
- package/dist/collection/components/message/message.css +101 -0
- package/dist/collection/components/message/message.js +206 -0
- package/dist/collection/components/message/message.js.map +1 -0
- package/dist/collection/components/modal/modal.js +1 -1
- package/dist/collection/components/native-select/native-select.js +1 -1
- package/dist/collection/components/nav/nav.js +1 -1
- package/dist/collection/components/nav-item/nav-item.js +1 -1
- package/dist/collection/components/progress-bar/progress-bar.js +2 -2
- package/dist/collection/components/progress-radial/progress-radial.js +2 -2
- package/dist/collection/components/radio/radio.js +1 -1
- package/dist/collection/components/radio-group/radio-group.js +1 -1
- package/dist/collection/components/select/select-interface.js.map +1 -1
- package/dist/collection/components/select/select.e2e.playwright.js +158 -7
- package/dist/collection/components/select/select.e2e.playwright.js.map +1 -1
- package/dist/collection/components/select/select.js +8 -16
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/select-option/select-option.js +2 -2
- package/dist/collection/components/skeleton-circle/skeleton-circle.js +1 -1
- package/dist/collection/components/skeleton-rectangle/skeleton-rectangle.js +1 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +1 -1
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/switch/switch.js +1 -1
- package/dist/collection/components/tab/tab.js +1 -1
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/textarea/textarea.js +1 -1
- package/dist/collection/components/tooltip/tooltip.js +1 -1
- package/dist/esm/alert-close-button-2ce5ac95.js +8 -0
- package/dist/esm/alert-close-button-2ce5ac95.js.map +1 -0
- package/dist/esm/{com-nav-utils-27c1efdf.js → com-nav-utils-a5af32af.js} +2 -2
- package/dist/esm/{com-nav-utils-27c1efdf.js.map → com-nav-utils-a5af32af.js.map} +1 -1
- package/dist/esm/{grid-pagination-23102986.js → grid-pagination-c29173f6.js} +4 -4
- package/dist/esm/grid-pagination-c29173f6.js.map +1 -0
- package/dist/esm/{helpers-89faa1b1.js → helpers-2d73ee7c.js} +2 -9
- package/dist/esm/helpers-2d73ee7c.js.map +1 -0
- package/dist/esm/{keyboard-event-dd35bb6b.js → keyboard-event-3a0579d5.js} +2 -2
- package/dist/esm/{keyboard-event-dd35bb6b.js.map → keyboard-event-3a0579d5.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/wcs-accordion-panel.entry.js +1 -1
- package/dist/esm/wcs-alert-drawer.entry.js +14 -2
- package/dist/esm/wcs-alert-drawer.entry.js.map +1 -1
- package/dist/esm/wcs-alert.entry.js +3 -2
- package/dist/esm/wcs-alert.entry.js.map +1 -1
- package/dist/esm/wcs-app.entry.js +3 -3
- package/dist/esm/wcs-badge.entry.js +1 -1
- package/dist/esm/wcs-breadcrumb-item.entry.js +1 -1
- package/dist/esm/wcs-breadcrumb.entry.js +2 -2
- package/dist/esm/{wcs-button_2.entry.js → wcs-button_3.entry.js} +41 -7
- package/dist/esm/{wcs-button_2.entry.js.map → wcs-button_3.entry.js.map} +1 -1
- package/dist/esm/wcs-card-body.entry.js +1 -1
- package/dist/esm/wcs-card-content.entry.js +1 -1
- package/dist/esm/wcs-card-footer.entry.js +1 -1
- package/dist/esm/wcs-card-header.entry.js +1 -1
- package/dist/esm/wcs-card-media.entry.js +1 -1
- package/dist/esm/wcs-card.entry.js +1 -1
- package/dist/esm/wcs-checkbox.entry.js +2 -2
- package/dist/esm/wcs-chip.entry.js +18 -6
- package/dist/esm/wcs-chip.entry.js.map +1 -1
- package/dist/esm/wcs-com-nav-category.entry.js +4 -4
- package/dist/esm/wcs-com-nav-item.entry.js +1 -1
- package/dist/esm/wcs-com-nav-submenu.entry.js +4 -4
- package/dist/esm/wcs-com-nav.entry.js +4 -4
- package/dist/esm/wcs-counter.entry.js +2 -2
- package/dist/esm/wcs-divider.entry.js +1 -1
- package/dist/esm/wcs-dropdown-divider.entry.js +1 -1
- package/dist/esm/wcs-dropdown-header.entry.js +1 -1
- package/dist/esm/wcs-dropdown-item.entry.js +2 -2
- package/dist/esm/wcs-dropdown.entry.js +4 -4
- package/dist/esm/wcs-dropdown.entry.js.map +1 -1
- package/dist/esm/wcs-editable-field.entry.js +2 -2
- package/dist/esm/wcs-error_3.entry.js +4 -4
- package/dist/esm/wcs-field-content.entry.js +1 -1
- package/dist/esm/wcs-field-label.entry.js +1 -1
- package/dist/esm/wcs-field.entry.js +1 -1
- package/dist/esm/wcs-footer.entry.js +1 -1
- package/dist/esm/wcs-galactic-menu.entry.js +3 -3
- package/dist/esm/wcs-galactic.entry.js +1 -1
- package/dist/esm/wcs-grid-column.entry.js +2 -2
- package/dist/esm/wcs-grid-custom-cell.entry.js +1 -1
- package/dist/esm/wcs-grid-pagination.entry.js +2 -2
- package/dist/esm/wcs-grid.entry.js +13 -6
- package/dist/esm/wcs-grid.entry.js.map +1 -1
- package/dist/esm/wcs-header.entry.js +2 -2
- package/dist/esm/wcs-hint.entry.js +1 -1
- package/dist/esm/wcs-horizontal-stepper.entry.js +1 -1
- package/dist/esm/wcs-icon.entry.js +2 -2
- package/dist/esm/wcs-input.entry.js +2 -2
- package/dist/esm/wcs-list-item-properties.entry.js +1 -1
- package/dist/esm/wcs-list-item-property.entry.js +1 -1
- package/dist/esm/wcs-list-item.entry.js +1 -1
- package/dist/esm/wcs-message.entry.js +52 -0
- package/dist/esm/wcs-message.entry.js.map +1 -0
- package/dist/esm/wcs-modal.entry.js +2 -2
- package/dist/esm/wcs-native-select.entry.js +1 -1
- package/dist/esm/wcs-nav-item.entry.js +2 -2
- package/dist/esm/wcs-nav.entry.js +2 -2
- package/dist/esm/wcs-progress-bar.entry.js +3 -3
- package/dist/esm/wcs-progress-radial.entry.js +3 -3
- package/dist/esm/wcs-radio-group.entry.js +2 -2
- package/dist/esm/wcs-radio.entry.js +2 -2
- package/dist/esm/wcs-select_2.entry.js +11 -19
- package/dist/esm/wcs-select_2.entry.js.map +1 -1
- package/dist/esm/wcs-skeleton-circle.entry.js +1 -1
- package/dist/esm/wcs-skeleton-rectangle.entry.js +1 -1
- package/dist/esm/wcs-skeleton-text.entry.js +1 -1
- package/dist/esm/wcs-switch.entry.js +2 -2
- package/dist/esm/wcs-tab.entry.js +1 -1
- package/dist/esm/wcs-tabs.entry.js +2 -2
- package/dist/esm/wcs-textarea.entry.js +2 -2
- package/dist/esm/wcs-tooltip.entry.js +2 -2
- package/dist/esm/wcs.js +1 -1
- package/dist/types/components/alert/alert-close-button.d.ts +4 -0
- package/dist/types/components/alert-drawer/alert-drawer.d.ts +10 -0
- package/dist/types/components/button/button.d.ts +18 -0
- package/dist/types/components/chip/chip.d.ts +1 -1
- package/dist/types/components/mat-icon/mat-icon.d.ts +5 -0
- package/dist/types/components/message/message-interface.d.ts +1 -0
- package/dist/types/components/message/message.d.ts +77 -0
- package/dist/types/components/select/select-interface.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +0 -2
- package/dist/types/components.d.ts +264 -5
- package/dist/wcs/{p-41b946b2.entry.js → p-03ae13ec.entry.js} +2 -2
- package/dist/wcs/p-07c961b4.entry.js +2 -0
- package/dist/wcs/{p-9e091c53.entry.js → p-0a0bc006.entry.js} +2 -2
- package/dist/wcs/p-0a0bc006.entry.js.map +1 -0
- package/dist/wcs/{p-b42f441f.entry.js → p-167108aa.entry.js} +2 -2
- package/dist/wcs/{p-d89ad962.entry.js → p-17c8f012.entry.js} +2 -2
- package/dist/wcs/{p-14dfa087.entry.js → p-190a8883.entry.js} +3 -3
- package/dist/wcs/{p-0758d22e.entry.js → p-276070f3.entry.js} +2 -2
- package/dist/wcs/{p-f929b66f.entry.js → p-28941abc.entry.js} +2 -2
- package/dist/wcs/p-28b3e55a.entry.js +2 -0
- package/dist/wcs/p-28b3e55a.entry.js.map +1 -0
- package/dist/wcs/{p-c169d496.entry.js → p-28d52607.entry.js} +2 -2
- package/dist/wcs/p-2d4fd96a.entry.js +2 -0
- package/dist/wcs/{p-9c6db857.entry.js → p-2d5becbf.entry.js} +2 -2
- package/dist/wcs/p-2da579f2.entry.js +2 -0
- package/dist/wcs/{p-53a395a9.entry.js → p-2e0238b6.entry.js} +2 -2
- package/dist/wcs/{p-9388283a.entry.js → p-358a505f.entry.js} +2 -2
- package/dist/wcs/{p-e35b138e.entry.js → p-38d37878.entry.js} +2 -2
- package/dist/wcs/{p-b3b31d43.entry.js → p-3bc23ef1.entry.js} +2 -2
- package/dist/wcs/p-3da303d7.entry.js +16 -0
- package/dist/wcs/p-3da303d7.entry.js.map +1 -0
- package/dist/wcs/{p-912c2c9b.entry.js → p-407d9700.entry.js} +2 -2
- package/dist/wcs/{p-6f937b20.entry.js → p-41383e84.entry.js} +2 -2
- package/dist/wcs/{p-53bc2cae.entry.js → p-4506e5e4.entry.js} +2 -2
- package/dist/wcs/{p-b9368690.entry.js → p-48541bf7.entry.js} +2 -2
- package/dist/wcs/{p-8332a7e3.entry.js → p-4a28d7a3.entry.js} +2 -2
- package/dist/wcs/p-4c43d8fc.entry.js +2 -0
- package/dist/wcs/p-4c43d8fc.entry.js.map +1 -0
- package/dist/wcs/{p-0424e545.entry.js → p-4d7bc716.entry.js} +2 -2
- package/dist/wcs/{p-cceee683.entry.js → p-4ef24e07.entry.js} +2 -2
- package/dist/wcs/{p-cceee683.entry.js.map → p-4ef24e07.entry.js.map} +1 -1
- package/dist/wcs/{p-367946fe.entry.js → p-4f20cdba.entry.js} +2 -2
- package/dist/wcs/{p-03838b42.entry.js → p-4fad6675.entry.js} +2 -2
- package/dist/wcs/p-51c93d07.entry.js +2 -0
- package/dist/wcs/p-51c93d07.entry.js.map +1 -0
- package/dist/wcs/{p-f411974e.entry.js → p-575881cd.entry.js} +2 -2
- package/dist/wcs/p-5823cd22.entry.js +2 -0
- package/dist/wcs/p-5a276237.entry.js +2 -0
- package/dist/wcs/{p-f2c49d83.entry.js → p-5b61a775.entry.js} +2 -2
- package/dist/wcs/p-5bc7a732.js +2 -0
- package/dist/wcs/p-5bc7a732.js.map +1 -0
- package/dist/wcs/p-6033c91b.entry.js +2 -0
- package/dist/wcs/p-609115fc.js +2 -0
- package/dist/wcs/p-609115fc.js.map +1 -0
- package/dist/wcs/{p-25d7b2f8.entry.js → p-6b5db6be.entry.js} +2 -2
- package/dist/wcs/{p-b04471f5.entry.js → p-6b86d4fa.entry.js} +2 -2
- package/dist/wcs/p-6c6841ac.entry.js +2 -0
- package/dist/wcs/p-6c78d16e.js +2 -0
- package/dist/wcs/{p-6e7db56e.entry.js → p-714c3cd7.entry.js} +2 -2
- package/dist/wcs/p-71af107c.js +2 -0
- package/dist/wcs/p-71af107c.js.map +1 -0
- package/dist/wcs/{p-56d9554a.entry.js → p-7b67cec9.entry.js} +2 -2
- package/dist/wcs/{p-781a956e.entry.js → p-7cd88886.entry.js} +2 -2
- package/dist/wcs/{p-3e57c746.entry.js → p-7f5eea6a.entry.js} +2 -2
- package/dist/wcs/{p-beeec782.entry.js → p-882886ae.entry.js} +2 -2
- package/dist/wcs/p-8fd515a3.entry.js +2 -0
- package/dist/wcs/{p-ff48a8b2.entry.js → p-95f35254.entry.js} +2 -2
- package/dist/wcs/{p-0cbf08fb.entry.js → p-9d47a628.entry.js} +2 -2
- package/dist/wcs/p-9d683786.entry.js +2 -0
- package/dist/wcs/{p-c42a6c1c.entry.js → p-a45a1f25.entry.js} +2 -2
- package/dist/wcs/{p-f974210c.entry.js → p-a9fa5726.entry.js} +2 -2
- package/dist/wcs/{p-1c356201.entry.js → p-ae305b09.entry.js} +2 -2
- package/dist/wcs/p-afd3e923.entry.js +2 -0
- package/dist/wcs/{p-990698a7.entry.js → p-b1b0e2cb.entry.js} +2 -2
- package/dist/wcs/p-b1b0e2cb.entry.js.map +1 -0
- package/dist/wcs/{p-3a18535f.entry.js → p-b9744cf7.entry.js} +2 -2
- package/dist/wcs/p-b99daad4.entry.js +156 -0
- package/dist/wcs/p-b99daad4.entry.js.map +1 -0
- package/dist/wcs/{p-cbbca016.entry.js → p-cefd8219.entry.js} +2 -2
- package/dist/wcs/{p-ae299c3f.entry.js → p-d18051b2.entry.js} +2 -2
- package/dist/wcs/{p-9d4c8f84.entry.js → p-d42f5883.entry.js} +2 -2
- package/{bundle/p-475be4d2.js → dist/wcs/p-d6d273d2.js} +2 -2
- package/dist/wcs/{p-63a8e5cc.entry.js → p-e08febb4.entry.js} +2 -2
- package/dist/wcs/{p-8f95bbf3.entry.js → p-e91d33e0.entry.js} +2 -2
- package/dist/wcs/p-f37d7b07.entry.js +2 -0
- package/dist/wcs/{p-6d8f0040.entry.js → p-f7897fd4.entry.js} +2 -2
- package/dist/wcs/{p-a6d64e5b.entry.js → p-fcc43c82.entry.js} +2 -2
- package/dist/wcs/{p-cb9147b8.entry.js → p-fd18dce6.entry.js} +2 -2
- package/dist/wcs/p-fed6a8cd.entry.js +2 -0
- package/dist/wcs/{p-0d233c6a.entry.js.map → p-fed6a8cd.entry.js.map} +1 -1
- package/dist/wcs/{p-d8c4dbc3.entry.js → p-ff20d08b.entry.js} +2 -2
- package/dist/wcs/wcs.esm.js +1 -1
- package/dist/wcs/wcs.esm.js.map +1 -1
- package/package.json +1 -1
- package/bundle/p-1329a1af.js +0 -16
- package/bundle/p-1329a1af.js.map +0 -1
- package/bundle/p-2f7bca1e.js +0 -2
- package/bundle/p-2f7bca1e.js.map +0 -1
- package/bundle/p-bf326ae8.js +0 -2
- package/bundle/p-bf326ae8.js.map +0 -1
- package/bundle/p-d018450c.js +0 -2
- package/bundle/p-d018450c.js.map +0 -1
- package/bundle/p-d3fe6951.js +0 -2
- package/bundle/p-ee6ff5f8.js +0 -2
- package/bundle/p-ee6ff5f8.js.map +0 -1
- package/bundle/p-ff261e50.js.map +0 -1
- package/composite-elements/p-00dd13c3.js +0 -16
- package/composite-elements/p-00dd13c3.js.map +0 -1
- package/composite-elements/p-46f752d5.js +0 -2
- package/composite-elements/p-7feba658.js +0 -2
- package/composite-elements/p-7feba658.js.map +0 -1
- package/composite-elements/p-c028b8e6.js +0 -2
- package/composite-elements/p-c028b8e6.js.map +0 -1
- package/composite-elements/p-c6adb221.js +0 -2
- package/composite-elements/p-c6adb221.js.map +0 -1
- package/composite-elements/p-e803bb26.js +0 -2
- package/composite-elements/p-e803bb26.js.map +0 -1
- package/composite-elements/p-ec3ce4d4.js.map +0 -1
- package/dist/cjs/grid-pagination-ded127cc.js.map +0 -1
- package/dist/cjs/helpers-2f1a8ddc.js.map +0 -1
- package/dist/cjs/wcs-button_2.cjs.entry.js.map +0 -1
- package/dist/cjs/wcs-mat-icon.cjs.entry.js +0 -42
- package/dist/cjs/wcs-mat-icon.cjs.entry.js.map +0 -1
- package/dist/esm/grid-pagination-23102986.js.map +0 -1
- package/dist/esm/helpers-89faa1b1.js.map +0 -1
- package/dist/esm/wcs-mat-icon.entry.js +0 -38
- package/dist/esm/wcs-mat-icon.entry.js.map +0 -1
- package/dist/wcs/p-0d233c6a.entry.js +0 -2
- package/dist/wcs/p-218b5f3d.entry.js +0 -2
- package/dist/wcs/p-218b5f3d.entry.js.map +0 -1
- package/dist/wcs/p-5314a64d.js +0 -2
- package/dist/wcs/p-5314a64d.js.map +0 -1
- package/dist/wcs/p-5443c9af.entry.js +0 -2
- package/dist/wcs/p-5443c9af.entry.js.map +0 -1
- package/dist/wcs/p-5607246c.entry.js +0 -2
- package/dist/wcs/p-59f96b21.entry.js +0 -2
- package/dist/wcs/p-6aededc6.entry.js +0 -2
- package/dist/wcs/p-7b60d4c7.js +0 -2
- package/dist/wcs/p-7b60d4c7.js.map +0 -1
- package/dist/wcs/p-7de847e0.entry.js +0 -2
- package/dist/wcs/p-8152d360.entry.js +0 -2
- package/dist/wcs/p-8152d360.entry.js.map +0 -1
- package/dist/wcs/p-82838611.entry.js +0 -16
- package/dist/wcs/p-82838611.entry.js.map +0 -1
- package/dist/wcs/p-9197e9b5.entry.js +0 -2
- package/dist/wcs/p-990698a7.entry.js.map +0 -1
- package/dist/wcs/p-9e091c53.entry.js.map +0 -1
- package/dist/wcs/p-a60ba874.entry.js +0 -156
- package/dist/wcs/p-a60ba874.entry.js.map +0 -1
- package/dist/wcs/p-c211a5d1.entry.js +0 -2
- package/dist/wcs/p-c3b733ff.entry.js +0 -2
- package/dist/wcs/p-c6808cab.entry.js +0 -2
- package/dist/wcs/p-c7812760.entry.js +0 -2
- package/dist/wcs/p-d3afc02f.entry.js +0 -2
- package/dist/wcs/p-e26c19e5.entry.js +0 -2
- /package/bundle/{p-d3fe6951.js.map → p-035ad27f.js.map} +0 -0
- /package/bundle/{p-5ef2bc63.js.map → p-16c7ed2e.js.map} +0 -0
- /package/bundle/{p-475be4d2.js.map → p-5a997d17.js.map} +0 -0
- /package/bundle/{p-60193ef5.js.map → p-791fce94.js.map} +0 -0
- /package/bundle/{p-7a06295b.js.map → p-87b9556d.js.map} +0 -0
- /package/bundle/{p-a0268a31.js.map → p-886109ed.js.map} +0 -0
- /package/bundle/{p-d05140f5.js.map → p-9138985e.js.map} +0 -0
- /package/bundle/{p-8b186fcf.js.map → p-a9a83300.js.map} +0 -0
- /package/bundle/{p-bce8c93f.js.map → p-d7d1ea63.js.map} +0 -0
- /package/composite-elements/{p-a90bb01e.js.map → p-061ccda5.js.map} +0 -0
- /package/composite-elements/{p-ef26b4d8.js.map → p-2181568b.js.map} +0 -0
- /package/composite-elements/{p-87e97a2e.js.map → p-61886571.js.map} +0 -0
- /package/composite-elements/{p-6b91c7bd.js.map → p-b53ae1a8.js.map} +0 -0
- /package/composite-elements/{p-2454bcae.js.map → p-b6d0a6b4.js.map} +0 -0
- /package/composite-elements/{p-46f752d5.js.map → p-cb9faa9b.js.map} +0 -0
- /package/composite-elements/{p-5a3d7fec.js.map → p-cd6cca64.js.map} +0 -0
- /package/composite-elements/{p-e4e3ed2c.js.map → p-d2d79425.js.map} +0 -0
- /package/composite-elements/{p-a70a3379.js.map → p-f0b064a2.js.map} +0 -0
- /package/dist/wcs/{p-41b946b2.entry.js.map → p-03ae13ec.entry.js.map} +0 -0
- /package/dist/wcs/{p-9197e9b5.entry.js.map → p-07c961b4.entry.js.map} +0 -0
- /package/dist/wcs/{p-b42f441f.entry.js.map → p-167108aa.entry.js.map} +0 -0
- /package/dist/wcs/{p-d89ad962.entry.js.map → p-17c8f012.entry.js.map} +0 -0
- /package/dist/wcs/{p-14dfa087.entry.js.map → p-190a8883.entry.js.map} +0 -0
- /package/dist/wcs/{p-0758d22e.entry.js.map → p-276070f3.entry.js.map} +0 -0
- /package/dist/wcs/{p-f929b66f.entry.js.map → p-28941abc.entry.js.map} +0 -0
- /package/dist/wcs/{p-c169d496.entry.js.map → p-28d52607.entry.js.map} +0 -0
- /package/dist/wcs/{p-c211a5d1.entry.js.map → p-2d4fd96a.entry.js.map} +0 -0
- /package/dist/wcs/{p-9c6db857.entry.js.map → p-2d5becbf.entry.js.map} +0 -0
- /package/dist/wcs/{p-7de847e0.entry.js.map → p-2da579f2.entry.js.map} +0 -0
- /package/dist/wcs/{p-53a395a9.entry.js.map → p-2e0238b6.entry.js.map} +0 -0
- /package/dist/wcs/{p-9388283a.entry.js.map → p-358a505f.entry.js.map} +0 -0
- /package/dist/wcs/{p-e35b138e.entry.js.map → p-38d37878.entry.js.map} +0 -0
- /package/dist/wcs/{p-b3b31d43.entry.js.map → p-3bc23ef1.entry.js.map} +0 -0
- /package/dist/wcs/{p-912c2c9b.entry.js.map → p-407d9700.entry.js.map} +0 -0
- /package/dist/wcs/{p-6f937b20.entry.js.map → p-41383e84.entry.js.map} +0 -0
- /package/dist/wcs/{p-53bc2cae.entry.js.map → p-4506e5e4.entry.js.map} +0 -0
- /package/dist/wcs/{p-b9368690.entry.js.map → p-48541bf7.entry.js.map} +0 -0
- /package/dist/wcs/{p-8332a7e3.entry.js.map → p-4a28d7a3.entry.js.map} +0 -0
- /package/dist/wcs/{p-0424e545.entry.js.map → p-4d7bc716.entry.js.map} +0 -0
- /package/dist/wcs/{p-367946fe.entry.js.map → p-4f20cdba.entry.js.map} +0 -0
- /package/dist/wcs/{p-03838b42.entry.js.map → p-4fad6675.entry.js.map} +0 -0
- /package/dist/wcs/{p-f411974e.entry.js.map → p-575881cd.entry.js.map} +0 -0
- /package/dist/wcs/{p-c3b733ff.entry.js.map → p-5823cd22.entry.js.map} +0 -0
- /package/dist/wcs/{p-c6808cab.entry.js.map → p-5a276237.entry.js.map} +0 -0
- /package/dist/wcs/{p-f2c49d83.entry.js.map → p-5b61a775.entry.js.map} +0 -0
- /package/dist/wcs/{p-e26c19e5.entry.js.map → p-6033c91b.entry.js.map} +0 -0
- /package/dist/wcs/{p-25d7b2f8.entry.js.map → p-6b5db6be.entry.js.map} +0 -0
- /package/dist/wcs/{p-b04471f5.entry.js.map → p-6b86d4fa.entry.js.map} +0 -0
- /package/dist/wcs/{p-6aededc6.entry.js.map → p-6c6841ac.entry.js.map} +0 -0
- /package/dist/wcs/{p-dbf82cb9.js.map → p-6c78d16e.js.map} +0 -0
- /package/dist/wcs/{p-6e7db56e.entry.js.map → p-714c3cd7.entry.js.map} +0 -0
- /package/dist/wcs/{p-56d9554a.entry.js.map → p-7b67cec9.entry.js.map} +0 -0
- /package/dist/wcs/{p-781a956e.entry.js.map → p-7cd88886.entry.js.map} +0 -0
- /package/dist/wcs/{p-3e57c746.entry.js.map → p-7f5eea6a.entry.js.map} +0 -0
- /package/dist/wcs/{p-beeec782.entry.js.map → p-882886ae.entry.js.map} +0 -0
- /package/dist/wcs/{p-5607246c.entry.js.map → p-8fd515a3.entry.js.map} +0 -0
- /package/dist/wcs/{p-ff48a8b2.entry.js.map → p-95f35254.entry.js.map} +0 -0
- /package/dist/wcs/{p-0cbf08fb.entry.js.map → p-9d47a628.entry.js.map} +0 -0
- /package/dist/wcs/{p-59f96b21.entry.js.map → p-9d683786.entry.js.map} +0 -0
- /package/dist/wcs/{p-c42a6c1c.entry.js.map → p-a45a1f25.entry.js.map} +0 -0
- /package/dist/wcs/{p-f974210c.entry.js.map → p-a9fa5726.entry.js.map} +0 -0
- /package/dist/wcs/{p-1c356201.entry.js.map → p-ae305b09.entry.js.map} +0 -0
- /package/dist/wcs/{p-d3afc02f.entry.js.map → p-afd3e923.entry.js.map} +0 -0
- /package/dist/wcs/{p-3a18535f.entry.js.map → p-b9744cf7.entry.js.map} +0 -0
- /package/dist/wcs/{p-cbbca016.entry.js.map → p-cefd8219.entry.js.map} +0 -0
- /package/dist/wcs/{p-ae299c3f.entry.js.map → p-d18051b2.entry.js.map} +0 -0
- /package/dist/wcs/{p-9d4c8f84.entry.js.map → p-d42f5883.entry.js.map} +0 -0
- /package/dist/wcs/{p-7af9a2f3.js.map → p-d6d273d2.js.map} +0 -0
- /package/dist/wcs/{p-63a8e5cc.entry.js.map → p-e08febb4.entry.js.map} +0 -0
- /package/dist/wcs/{p-8f95bbf3.entry.js.map → p-e91d33e0.entry.js.map} +0 -0
- /package/dist/wcs/{p-c7812760.entry.js.map → p-f37d7b07.entry.js.map} +0 -0
- /package/dist/wcs/{p-6d8f0040.entry.js.map → p-f7897fd4.entry.js.map} +0 -0
- /package/dist/wcs/{p-a6d64e5b.entry.js.map → p-fcc43c82.entry.js.map} +0 -0
- /package/dist/wcs/{p-cb9147b8.entry.js.map → p-fd18dce6.entry.js.map} +0 -0
- /package/dist/wcs/{p-d8c4dbc3.entry.js.map → p-ff20d08b.entry.js.map} +0 -0
|
@@ -121,9 +121,9 @@ export class ComNavSubmenu {
|
|
|
121
121
|
(_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
122
122
|
}
|
|
123
123
|
render() {
|
|
124
|
-
return (h(Host, { key: '
|
|
124
|
+
return (h(Host, { key: 'e6de47cc3e8d11be47b32229dc74a58aaf2f23c4', onClick: evt => this.onClick(evt), role: "listitem", "data-open": this.menuOpen }, this.currentActiveSizing === 'mobile' ?
|
|
125
125
|
h("h2", { role: "presentation", class: "menu-button" }, h("span", { class: "label" }, this.label), h("span", { class: "arrow-container" }, h("span", { class: "arrow-icon", "data-open": this.menuOpen }, "\uF107")))
|
|
126
|
-
: h("button", Object.assign({ onClick: _ => this.menuOpen = !this.menuOpen, "aria-expanded": this.menuOpen ? 'true' : 'false', "aria-controls": this.menuItemsId, class: "menu-button", ref: (el) => (this.nativeButton = el) }, this.inheritedAttributes), h("span", { class: "label" }, this.label), h("span", { class: "arrow-container" }, h("span", { "aria-hidden": "true", class: "arrow-icon", "data-open": this.menuOpen }, "\uF107"))), h("div", { key: '
|
|
126
|
+
: h("button", Object.assign({ onClick: _ => this.menuOpen = !this.menuOpen, "aria-expanded": this.menuOpen ? 'true' : 'false', "aria-controls": this.menuItemsId, class: "menu-button", ref: (el) => (this.nativeButton = el) }, this.inheritedAttributes), h("span", { class: "label" }, this.label), h("span", { class: "arrow-container" }, h("span", { "aria-hidden": "true", class: "arrow-icon", "data-open": this.menuOpen }, "\uF107"))), h("div", { key: '99667d527d33591f69d9591ca039a8b416322bc5', class: "drawer", "data-open": this.menuOpen, tabIndex: -1 }, h("div", { key: 'cece9395bfb103342f9f54fc89bc207ccb18db9c', class: "drawer-container" }, h("div", { key: '19482a5a7393852da570431292c0f0cde86cfdcd', class: "drawer-content" }, h("div", { key: '85387b5371209178cb451065ddd9124143bb0112', class: "drawer-description" }, h("h3", { key: '4692b2d757408142da7357cddcfb55f8efa154e7' }, this.panelTitle), h("p", { key: 'e21e9eda294bac55a85e16e82178e9ad127907f4' }, this.panelDescription)), h("div", { key: '984f302624daf4341fbb3236cde16ff7e640f458', role: "list", "aria-label": this.label, id: this.menuItemsId, class: "menu-items", onClick: (evt) => this.handleMenuItemsClick(evt), onKeyDown: evt => this.handleMenuItemsKeyDown(evt) }, h("slot", { key: '286906e6ab84bed9d990eb4cbb10fea119a9d060' })))))));
|
|
127
127
|
}
|
|
128
128
|
static get is() { return "wcs-com-nav-submenu"; }
|
|
129
129
|
static get encapsulation() { return "shadow"; }
|
|
@@ -165,7 +165,7 @@ export class Counter {
|
|
|
165
165
|
});
|
|
166
166
|
}
|
|
167
167
|
render() {
|
|
168
|
-
return (h(Host, { key: '
|
|
168
|
+
return (h(Host, { key: '4043c155f8c67913d62318235aca68123f9746b6' }, h("div", { key: 'c3207a199646cba8f00ec1c942515c0888a64234', class: "counter" }, h("wcs-button", { key: 'ff7d18184fba7ff20fcaf59539ad379310f8ddc2', class: "wcs-primary", shape: "round", size: "s", tabindex: -1, onClick: () => this.handleDecrement(), onBlur: (event) => this.wcsBlur.emit(event), disabled: this.disabled || this.value === this.min }, h("wcs-mat-icon", { key: '6749957c0b3d7ed71552bac6e57f7b1edcc2b30a', icon: "remove", size: "s" })), h("div", { key: 'ed9f5e4410f0858b2ac82b5931bc8195fb98eb7f', class: "counter-container", ref: input => this.counterContainer = input }, h("span", { key: 'e5ec58628efa9cd02ed824eec9f1f2e9773e24f1', id: "outlier-down", class: "outliers", hidden: true, "aria-hidden": "true" }, this.displayedValue - this.step), h("span", Object.assign({ key: '27100d8f18b1325dfbab458b8465ce927c21682f', tabindex: this.disabled ? -1 : 0, role: "spinbutton", ref: (el) => this.spinButton = el, class: "current-value", onBlur: (event) => this.wcsBlur.emit(event), onKeyDown: (event) => this.onKeyDown(event), "aria-disabled": this.disabled ? 'true' : null, "aria-valuenow": this.value, "aria-valuetext": this.value, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-label": this.label }, this.inheritedAttributes), this.displayedValue), h("span", { key: '7129d4872e064d799dd654975e112f4200ebb141', id: "outlier-up", class: "outliers", hidden: true, "aria-hidden": "true" }, this.displayedValue + this.step)), h("wcs-button", { key: '9fffb1c68e9ab63336983f368aeea7a4f41cd5db', class: "wcs-primary", shape: "round", size: "s", tabindex: -1, onClick: () => this.handleIncrement(), onBlur: (event) => this.wcsBlur.emit(event), disabled: this.disabled || this.value === this.max }, h("wcs-mat-icon", { key: '4e07a2939e4c3c24d52bd7c6ff698526de781ca4', icon: "add", size: "s" })))));
|
|
169
169
|
}
|
|
170
170
|
static get is() { return "wcs-counter"; }
|
|
171
171
|
static get encapsulation() { return "shadow"; }
|
|
@@ -7,7 +7,7 @@ import { h, Host } from "@stencil/core";
|
|
|
7
7
|
*/
|
|
8
8
|
export class Divider {
|
|
9
9
|
render() {
|
|
10
|
-
return (h(Host, { key: '
|
|
10
|
+
return (h(Host, { key: 'd0fea091e2fa4aa557e56be65dcb604cd4340309' }));
|
|
11
11
|
}
|
|
12
12
|
static get is() { return "wcs-divider"; }
|
|
13
13
|
static get encapsulation() { return "shadow"; }
|
|
@@ -369,5 +369,28 @@ test.describe('Dropdown component', () => {
|
|
|
369
369
|
expect(scrollY).toBe(0);
|
|
370
370
|
});
|
|
371
371
|
});
|
|
372
|
+
test.describe('Overlay positionning', () => {
|
|
373
|
+
test('should display the popover wider than the trigger button when items have long labels', async ({ page }) => {
|
|
374
|
+
// Given
|
|
375
|
+
await setWcsContent(page, `
|
|
376
|
+
<div style="display: flex; width: 100%;">
|
|
377
|
+
<wcs-dropdown id="dropdown" mode="plain" shape="normal" size="m">
|
|
378
|
+
<span slot="placeholder">OK</span>
|
|
379
|
+
<wcs-dropdown-item>Un libellé vraiment très très long qui dépasse la taille du bouton</wcs-dropdown-item>
|
|
380
|
+
<wcs-dropdown-item>Autre item</wcs-dropdown-item>
|
|
381
|
+
</wcs-dropdown>
|
|
382
|
+
</div>
|
|
383
|
+
`);
|
|
384
|
+
const dropdown = page.locator('wcs-dropdown');
|
|
385
|
+
const wcsButton = dropdown.locator('wcs-button');
|
|
386
|
+
// When
|
|
387
|
+
await wcsButton.click();
|
|
388
|
+
await page.waitForChanges();
|
|
389
|
+
// Then
|
|
390
|
+
const buttonWidth = await wcsButton.evaluate((el) => el.getBoundingClientRect().width);
|
|
391
|
+
const popoverWidth = await dropdown.locator('.popover').evaluate((el) => el.getBoundingClientRect().width);
|
|
392
|
+
expect(popoverWidth).toBeGreaterThan(buttonWidth + 50 /* some margin */);
|
|
393
|
+
});
|
|
394
|
+
});
|
|
372
395
|
});
|
|
373
396
|
//# sourceMappingURL=dropdown.e2e.playwright.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown.e2e.playwright.ts"],"names":[],"mappings":"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","sourcesContent":["import { setWcsContent } from '../../utils/playwright/test';\nimport { test, E2EPage } from \"@stencil/playwright\";\n\nimport { expect } from \"@playwright/test\";\n\ntest.describe('Dropdown component', () => {\n test.describe('keyboard interactions', () => {\n test('Enter should open menu and move focus to the first item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n\n // When\n await dropdown.focus();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'true');\n await expect(firstItem).toBeFocused();\n });\n\n test('SPACE should open menu and move focus to the first item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n\n // When\n await dropdown.focus();\n await page.keyboard.press('Space');\n await page.waitForChanges();\n\n // Then\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'true');\n await expect(firstItem).toBeFocused();\n });\n\n test('DOWN_ARROW should open menu and move focus to the first item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n\n // When\n await dropdown.focus();\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // Then\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'true');\n await expect(firstItem).toBeFocused();\n });\n\n test('UP_ARROW should open menu and move focus to the last item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const lastItem = page.locator('wcs-dropdown-item#last-item');\n\n // When\n await dropdown.focus();\n await page.keyboard.press('ArrowUp');\n await page.waitForChanges();\n\n // Then\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'true');\n await expect(lastItem).toBeFocused();\n });\n\n test('HOME should focus the first item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n\n // When\n await dropdownButton.dispatchEvent('click');\n await page.waitForChanges();\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus(); // ensure focus is on an item before pressing Home\n await page.keyboard.press('Home');\n await page.waitForChanges();\n\n // Then\n await expect(firstItem).toBeFocused();\n });\n\n test('END should focus the last item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const lastItem = page.locator('wcs-dropdown-item#last-item');\n\n // When\n await dropdownButton.dispatchEvent('click');\n await page.waitForChanges();\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus(); // ensure focus is on an item before pressing End\n await page.keyboard.press('End');\n await page.waitForChanges();\n\n // Then\n await expect(lastItem).toBeFocused();\n });\n\n test('UP_ARROW should move focus to the previous item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const lastItem = page.locator('wcs-dropdown-item#last-item');\n\n // When\n await dropdownButton.dispatchEvent('click'); // open the menu\n await page.waitForChanges();\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus(); // ensure focus is on an item before pressing ArrowUp\n await page.keyboard.press('ArrowUp');\n await page.waitForChanges();\n\n // Then\n await expect(lastItem).toBeFocused();\n });\n\n test('DOWN_ARROW should move focus to the next item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item id=\"second-item\">Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const secondItem = page.locator('wcs-dropdown-item#second-item');\n\n // When\n await dropdownButton.dispatchEvent('click');\n await page.waitForChanges();\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus(); // ensure focus is on an item before pressing Escape\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // Then\n await expect(secondItem).toBeFocused();\n });\n\n test('ESCAPE should close the menu and set focus on the dropdown button', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n\n // When\n await dropdownButton.dispatchEvent('click');\n await page.waitForChanges();\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus(); // ensure focus is on an item before pressing Escape\n await page.keyboard.press('Escape');\n await page.waitForChanges();\n\n // Then\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'false');\n await expect(dropdown).toBeFocused();\n });\n\n test('TAB should close the menu and set focus on the dropdown button', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n\n // When\n await dropdownButton.dispatchEvent('click'); // open the menu\n await page.waitForChanges();\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus(); // ensure focus is on an item before pressing Tab\n await page.keyboard.press('Tab'); // should close the menu and focus back to button\n await page.waitForChanges();\n\n // Then\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'false');\n await expect(dropdown).toBeFocused();\n });\n\n test('SHIFT+TAB should close the menu and set focus on the dropdown button', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n\n // When\n await dropdownButton.dispatchEvent('click'); // open the menu\n await page.waitForChanges();\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus(); // ensure focus is on an item before pressing Shift+Tab\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n\n // Then\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'false');\n await expect(dropdown).toBeFocused();\n });\n\n test('ENTER should activate the item, close menu, and set focus on the dropdown button', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n // spy on the custom event on the locator\n const itemClickSpy = await dropdown.spyOnEvent('wcsDropdownItemClick');\n\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n\n // When\n await dropdownButton.dispatchEvent('click');\n await page.waitForChanges();\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(itemClickSpy).toHaveReceivedEventTimes(1);\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'false');\n await expect(dropdown).toBeFocused();\n });\n });\n\n test.describe('Behavior in window with scroll', () => {\n test('should preserve the window scroll position when clicking on a dropdown inside a scrollable container', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <div id=\"scroll-container\" style=\"height: 100vh; overflow-y: auto;\">\n <div style=\"margin-top: 150vh; display: flex; gap: 16px; align-items: center;\">\n <wcs-dropdown id=\"dropdown\" mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-item>Second item</wcs-dropdown-item>\n </wcs-dropdown>\n </div>\n <div style=\"margin-top: 200vh;\">Other content</div>\n </div>\n `);\n\n const body = page.locator('body');\n const dropdown = page.locator('wcs-dropdown');\n\n await dropdown.scrollIntoViewIfNeeded();\n\n // When\n await dropdown.click();\n await page.waitForChanges();\n\n // Then\n const scrollY = await body.evaluate(() => window.scrollY);\n expect(scrollY).toBe(0);\n });\n\n test('should preserve the window scroll position when tabbing to a dropdown inside a scrollable container', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <div id=\"scroll-container\" style=\"height: 100vh; overflow-y: auto;\">\n <div style=\"margin-top: 150vh; display: flex; gap: 16px; align-items: center;\">\n <button id=\"before-dropdown\">Before dropdown</button>\n <wcs-dropdown id=\"dropdown\" mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-item>Second item</wcs-dropdown-item>\n </wcs-dropdown>\n </div>\n <div style=\"margin-top: 200vh;\">Other content</div>\n </div>\n `);\n\n const body = page.locator('body');\n const beforeDropdownButton = page.locator('#before-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n\n await beforeDropdownButton.scrollIntoViewIfNeeded();\n await beforeDropdownButton.focus();\n\n // When\n await page.keyboard.press('Tab');\n\n // Then\n await expect(dropdownButton).toBeFocused();\n const scrollY = await body.evaluate(() => window.scrollY);\n expect(scrollY).toBe(0);\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"dropdown.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown.e2e.playwright.ts"],"names":[],"mappings":"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","sourcesContent":["import { setWcsContent } from '../../utils/playwright/test';\nimport { test, E2EPage } from \"@stencil/playwright\";\n\nimport { expect } from \"@playwright/test\";\n\ntest.describe('Dropdown component', () => {\n test.describe('keyboard interactions', () => {\n test('Enter should open menu and move focus to the first item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n\n // When\n await dropdown.focus();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'true');\n await expect(firstItem).toBeFocused();\n });\n\n test('SPACE should open menu and move focus to the first item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n\n // When\n await dropdown.focus();\n await page.keyboard.press('Space');\n await page.waitForChanges();\n\n // Then\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'true');\n await expect(firstItem).toBeFocused();\n });\n\n test('DOWN_ARROW should open menu and move focus to the first item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n\n // When\n await dropdown.focus();\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // Then\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'true');\n await expect(firstItem).toBeFocused();\n });\n\n test('UP_ARROW should open menu and move focus to the last item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const lastItem = page.locator('wcs-dropdown-item#last-item');\n\n // When\n await dropdown.focus();\n await page.keyboard.press('ArrowUp');\n await page.waitForChanges();\n\n // Then\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'true');\n await expect(lastItem).toBeFocused();\n });\n\n test('HOME should focus the first item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n\n // When\n await dropdownButton.dispatchEvent('click');\n await page.waitForChanges();\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus(); // ensure focus is on an item before pressing Home\n await page.keyboard.press('Home');\n await page.waitForChanges();\n\n // Then\n await expect(firstItem).toBeFocused();\n });\n\n test('END should focus the last item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const lastItem = page.locator('wcs-dropdown-item#last-item');\n\n // When\n await dropdownButton.dispatchEvent('click');\n await page.waitForChanges();\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus(); // ensure focus is on an item before pressing End\n await page.keyboard.press('End');\n await page.waitForChanges();\n\n // Then\n await expect(lastItem).toBeFocused();\n });\n\n test('UP_ARROW should move focus to the previous item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const lastItem = page.locator('wcs-dropdown-item#last-item');\n\n // When\n await dropdownButton.dispatchEvent('click'); // open the menu\n await page.waitForChanges();\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus(); // ensure focus is on an item before pressing ArrowUp\n await page.keyboard.press('ArrowUp');\n await page.waitForChanges();\n\n // Then\n await expect(lastItem).toBeFocused();\n });\n\n test('DOWN_ARROW should move focus to the next item', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item id=\"second-item\">Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const secondItem = page.locator('wcs-dropdown-item#second-item');\n\n // When\n await dropdownButton.dispatchEvent('click');\n await page.waitForChanges();\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus(); // ensure focus is on an item before pressing Escape\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // Then\n await expect(secondItem).toBeFocused();\n });\n\n test('ESCAPE should close the menu and set focus on the dropdown button', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n\n // When\n await dropdownButton.dispatchEvent('click');\n await page.waitForChanges();\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus(); // ensure focus is on an item before pressing Escape\n await page.keyboard.press('Escape');\n await page.waitForChanges();\n\n // Then\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'false');\n await expect(dropdown).toBeFocused();\n });\n\n test('TAB should close the menu and set focus on the dropdown button', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n\n // When\n await dropdownButton.dispatchEvent('click'); // open the menu\n await page.waitForChanges();\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus(); // ensure focus is on an item before pressing Tab\n await page.keyboard.press('Tab'); // should close the menu and focus back to button\n await page.waitForChanges();\n\n // Then\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'false');\n await expect(dropdown).toBeFocused();\n });\n\n test('SHIFT+TAB should close the menu and set focus on the dropdown button', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n\n // When\n await dropdownButton.dispatchEvent('click'); // open the menu\n await page.waitForChanges();\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus(); // ensure focus is on an item before pressing Shift+Tab\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n\n // Then\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'false');\n await expect(dropdown).toBeFocused();\n });\n\n test('ENTER should activate the item, close menu, and set focus on the dropdown button', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-dropdown mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-header>ACTION HEADER</wcs-dropdown-header>\n <wcs-dropdown-item>Second item test avec un long texte</wcs-dropdown-item>\n <wcs-dropdown-item>Dernier item</wcs-dropdown-item>\n <wcs-dropdown-divider></wcs-dropdown-divider>\n <wcs-dropdown-item id=\"last-item\">Dernier item</wcs-dropdown-item>\n </wcs-dropdown>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n // spy on the custom event on the locator\n const itemClickSpy = await dropdown.spyOnEvent('wcsDropdownItemClick');\n\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n const firstItem = page.locator('wcs-dropdown-item#first-item');\n\n // When\n await dropdownButton.dispatchEvent('click');\n await page.waitForChanges();\n await firstItem.waitFor({ state: 'visible' }); // wait for menu to open\n await firstItem.focus();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(itemClickSpy).toHaveReceivedEventTimes(1);\n await expect(dropdownButton).toHaveAttribute('aria-expanded', 'false');\n await expect(dropdown).toBeFocused();\n });\n });\n\n test.describe('Behavior in window with scroll', () => {\n test('should preserve the window scroll position when clicking on a dropdown inside a scrollable container', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <div id=\"scroll-container\" style=\"height: 100vh; overflow-y: auto;\">\n <div style=\"margin-top: 150vh; display: flex; gap: 16px; align-items: center;\">\n <wcs-dropdown id=\"dropdown\" mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-item>Second item</wcs-dropdown-item>\n </wcs-dropdown>\n </div>\n <div style=\"margin-top: 200vh;\">Other content</div>\n </div>\n `);\n\n const body = page.locator('body');\n const dropdown = page.locator('wcs-dropdown');\n\n await dropdown.scrollIntoViewIfNeeded();\n\n // When\n await dropdown.click();\n await page.waitForChanges();\n\n // Then\n const scrollY = await body.evaluate(() => window.scrollY);\n expect(scrollY).toBe(0);\n });\n\n test('should preserve the window scroll position when tabbing to a dropdown inside a scrollable container', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <div id=\"scroll-container\" style=\"height: 100vh; overflow-y: auto;\">\n <div style=\"margin-top: 150vh; display: flex; gap: 16px; align-items: center;\">\n <button id=\"before-dropdown\">Before dropdown</button>\n <wcs-dropdown id=\"dropdown\" mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">Dropdown</span>\n <wcs-dropdown-item id=\"first-item\">Premier item</wcs-dropdown-item>\n <wcs-dropdown-item>Second item</wcs-dropdown-item>\n </wcs-dropdown>\n </div>\n <div style=\"margin-top: 200vh;\">Other content</div>\n </div>\n `);\n\n const body = page.locator('body');\n const beforeDropdownButton = page.locator('#before-dropdown');\n const dropdownButton = page.locator('wcs-dropdown #dropdown-button');\n\n await beforeDropdownButton.scrollIntoViewIfNeeded();\n await beforeDropdownButton.focus();\n\n // When\n await page.keyboard.press('Tab');\n\n // Then\n await expect(dropdownButton).toBeFocused();\n const scrollY = await body.evaluate(() => window.scrollY);\n expect(scrollY).toBe(0);\n });\n });\n\n test.describe('Overlay positionning', () => {\n test('should display the popover wider than the trigger button when items have long labels', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <div style=\"display: flex; width: 100%;\">\n <wcs-dropdown id=\"dropdown\" mode=\"plain\" shape=\"normal\" size=\"m\">\n <span slot=\"placeholder\">OK</span>\n <wcs-dropdown-item>Un libellé vraiment très très long qui dépasse la taille du bouton</wcs-dropdown-item>\n <wcs-dropdown-item>Autre item</wcs-dropdown-item>\n </wcs-dropdown>\n </div>\n `);\n\n const dropdown = page.locator('wcs-dropdown');\n const wcsButton = dropdown.locator('wcs-button');\n\n // When\n await wcsButton.click();\n await page.waitForChanges();\n\n // Then\n const buttonWidth = await wcsButton.evaluate((el) => el.getBoundingClientRect().width);\n const popoverWidth = await dropdown.locator('.popover').evaluate((el) => el.getBoundingClientRect().width);\n\n expect(popoverWidth).toBeGreaterThan(buttonWidth + 50 /* some margin */);\n });\n })\n});\n"]}
|
|
@@ -198,7 +198,7 @@ export class Dropdown {
|
|
|
198
198
|
this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, DROPDOWN_INHERITED_ATTRS));
|
|
199
199
|
}
|
|
200
200
|
render() {
|
|
201
|
-
return (h(Host, { key: '
|
|
201
|
+
return (h(Host, { key: '38b0312bdb316b0fb3995ac7e04b3be6f2ae80b1' }, h("button", Object.assign({ key: '5842016e2ccb71db7f793e0376d9cc948591b9fb', id: "dropdown-button", "aria-controls": "menu", disabled: this.disabled, "aria-haspopup": "true", role: "button", "aria-expanded": this.expanded ? 'true' : 'false', ref: el => this.nativeButton = el, onClick: ($event) => this.onButtonClick($event), onBlur: ($event) => $event.stopImmediatePropagation() }, this.inheritedAttributes), "Dropdown"), h("wcs-button", { key: '463316eddbafe0beaa01eca79b06aeca9768d489', mode: this.mode, shape: this.shape, disabled: this.disabled, size: this.size, ref: el => this.wcsButton = el, "aria-hidden": "true", tabindex: -1, onClick: ($event) => this.onButtonClick($event), onBlur: (e) => e.stopImmediatePropagation() }, h("div", { key: '49a3210683fa548f2baaebbc6319e78e864ca7a2', class: "wcs-button-content-wrapper" }, h("slot", { key: 'b3fb4307c73fceddfc931342dc73069dbda28835', name: "placeholder" }), this.noArrow ? null : (h(SelectArrow, { up: this.expanded })))), h("div", { key: '4a0eeee69519eb8a336120c976594aac191abc4d', class: (this.expanded ? 'show ' : '') + 'popover', id: "menu", role: "menu", "aria-labelledby": "dropdown-button", tabindex: -1, ref: el => this.popoverDiv = el }, h("div", { key: '05a7807155799f0492c4bc180d3bf998055ba148', role: "presentation", id: "arrow", "data-popper-arrow": true }), h("div", { key: '61bc7b3fcda2d10d83a68eb40db1e95ec9db3c6f', role: "presentation", class: "container" }, h("slot", { key: '30e21e28fb8c0ce46b6da18cdf67b7c567897839', name: "item" }, h("span", { key: 'ea05bd99cd367f7be8aacea33286e95ebbe82cd9', id: "is-empty" }))))));
|
|
202
202
|
}
|
|
203
203
|
static get is() { return "wcs-dropdown"; }
|
|
204
204
|
static get encapsulation() { return "shadow"; }
|
|
@@ -8,7 +8,7 @@ import { h, Host } from "@stencil/core";
|
|
|
8
8
|
*/
|
|
9
9
|
export class DropdownDivider {
|
|
10
10
|
render() {
|
|
11
|
-
return (h(Host, { key: '
|
|
11
|
+
return (h(Host, { key: 'f6099eab21640cea46aaeb81b78d744416550b62', slot: "item", tabindex: "-1", "aria-hidden": "true" }));
|
|
12
12
|
}
|
|
13
13
|
static get is() { return "wcs-dropdown-divider"; }
|
|
14
14
|
static get encapsulation() { return "shadow"; }
|
|
@@ -12,7 +12,7 @@ import { h, Host } from "@stencil/core";
|
|
|
12
12
|
*/
|
|
13
13
|
export class DropdownHeader {
|
|
14
14
|
render() {
|
|
15
|
-
return (h(Host, { key: '
|
|
15
|
+
return (h(Host, { key: '63465bc35721ca858aeb4465f0581151f372b532', slot: "item", tabindex: "-1" }, h("slot", { key: '7f064837e9840499d7916fde0ff67ef98ecf649a' })));
|
|
16
16
|
}
|
|
17
17
|
static get is() { return "wcs-dropdown-header"; }
|
|
18
18
|
static get encapsulation() { return "shadow"; }
|
|
@@ -31,7 +31,7 @@ export class DropdownItem {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
render() {
|
|
34
|
-
return (h(Host, { key: '
|
|
34
|
+
return (h(Host, { key: '5833a19574cfb6d128e6fb015ec2124e3d40d8ce', slot: "item", role: "menuitem", tabindex: "-1" }, h("slot", { key: 'c679dd4325533514ebff2934bd7d21ff2f0c3e9c' })));
|
|
35
35
|
}
|
|
36
36
|
static get is() { return "wcs-dropdown-item"; }
|
|
37
37
|
static get originalStyleUrls() {
|
|
@@ -326,7 +326,7 @@ export class EditableField {
|
|
|
326
326
|
}
|
|
327
327
|
render() {
|
|
328
328
|
const { formattedValue, formattedValueText, formattedCurrentValue } = this.formatValues();
|
|
329
|
-
return (h(Host, { key: '
|
|
329
|
+
return (h(Host, { key: '3980dc18ccf2a4ea568569dd6f072ea19d2e2ce3' }, h("div", { key: '6d853b2bfdee062fd8e8a3e0aa9f19e17def5206', class: "label" }, this.label), h("button", { key: '9e8211967d9e48ea201ee25cbd6d5df17f77a9bb', type: "button", class: 'display-container ' + (this.currentState !== EditableComponentState.DISPLAY ? 'display-none' : ''), onClick: () => this.onDisplayContainerClick(), ref: (el) => this.editModeBtn = el, "aria-label": `${EDIT_ARIA_LABEL} ${this.label} ${formattedValueText}` }, formattedValue, h("wcs-mat-icon", { key: '774fd99f237ad6c63fc8895f3d6cdfb99314adec', icon: "edit", size: "s" }), this.readonly ? this.getReadonlySvgIcon() : null), h("div", { key: 'ab98ad8b0909933b680353b46c1407b0f82af28a', class: 'load-container ' + (this.currentState !== EditableComponentState.LOAD ? 'display-none' : '') }, formattedCurrentValue, h("wcs-spinner", { key: '2ae47012c5d251b7a756a1fb13c30ad5f36ee103' })), h("wcs-form-field", { key: '0858fc4d06e5c0f1c6dfb23d904fb36ea348d9b8', "is-error": this.isError, class: 'edit-container ' + (this.currentState !== EditableComponentState.EDIT ? 'display-none' : '') }, h("wcs-label", { key: '5f901a2af267d42b20aa67b80245f63c0124fdd2', class: "visually-hidden" }, this.label), h("slot", { key: 'd7948c3e0187f6d92727167eb1737d7b6973072d' }), this.isError && this.errorMsg
|
|
330
330
|
? h("wcs-error", null, this.errorMsg)
|
|
331
331
|
: null)));
|
|
332
332
|
}
|
|
@@ -15,7 +15,7 @@ import { h, Host } from "@stencil/core";
|
|
|
15
15
|
*/
|
|
16
16
|
export class Label {
|
|
17
17
|
render() {
|
|
18
|
-
return (h(Host, { key: '
|
|
18
|
+
return (h(Host, { key: '89cbcbdb9057296fb11e99bd6f92b7b92bdad988', role: "alert", slot: "error" }, h("slot", { key: '81f37240e47e345a01901772bd095ee19d793963' })));
|
|
19
19
|
}
|
|
20
20
|
static get is() { return "wcs-error"; }
|
|
21
21
|
static get encapsulation() { return "shadow"; }
|
|
@@ -21,7 +21,7 @@ import { h, Host, } from "@stencil/core";
|
|
|
21
21
|
*/
|
|
22
22
|
export class Field {
|
|
23
23
|
render() {
|
|
24
|
-
return (h(Host, { key: '
|
|
24
|
+
return (h(Host, { key: '2f1a99e80af297bdad4ffc522c124ef998433036' }, h("slot", { key: '02ed1e93a6fa2394bb76699ebae4b85d1f693941', name: "label" }), h("slot", { key: 'de5f51186a195b070839751260a2b15aee14d75c', name: "content" })));
|
|
25
25
|
}
|
|
26
26
|
static get is() { return "wcs-field"; }
|
|
27
27
|
static get encapsulation() { return "shadow"; }
|
|
@@ -9,7 +9,7 @@ import { h, Host } from "@stencil/core";
|
|
|
9
9
|
*/
|
|
10
10
|
export class FieldContent {
|
|
11
11
|
render() {
|
|
12
|
-
return (h(Host, { key: '
|
|
12
|
+
return (h(Host, { key: 'd9e607042807d1eac96334e573b689fd556efb57', slot: "content" }, h("slot", { key: 'bfc5e88fcdaa0a74a530310c916e8e9d0686ade3' })));
|
|
13
13
|
}
|
|
14
14
|
static get is() { return "wcs-field-content"; }
|
|
15
15
|
static get encapsulation() { return "shadow"; }
|
|
@@ -9,7 +9,7 @@ import { h, Host, } from "@stencil/core";
|
|
|
9
9
|
*/
|
|
10
10
|
export class FieldLabel {
|
|
11
11
|
render() {
|
|
12
|
-
return (h(Host, { key: '
|
|
12
|
+
return (h(Host, { key: '8ec997eb8d3c959d536e915e41b6feee0abae9b5', slot: "label" }, h("slot", { key: '6388cadd5e9f3b793accd62806897550d38e2473' })));
|
|
13
13
|
}
|
|
14
14
|
static get is() { return "wcs-field-label"; }
|
|
15
15
|
static get encapsulation() { return "shadow"; }
|
|
@@ -20,7 +20,7 @@ import { h, Host } from "@stencil/core";
|
|
|
20
20
|
*/
|
|
21
21
|
export class Footer {
|
|
22
22
|
render() {
|
|
23
|
-
return (h(Host, { key: '
|
|
23
|
+
return (h(Host, { key: '1982e1bb2f8f8fab2b32039b98327b82d0f7fe5b' }, h("footer", { key: '5df2e947ab692961ff3bab26c029d1cd6b60b525', role: "contentinfo" }, h("div", { key: '1aa5188a4679ca7c8d898747fae709648bf4efd4', class: "container" }, h("div", { key: '4e0720a198a72fd4d215afa9a9b82c9a01f935c7' }, h("slot", { key: 'b982e050f713d0684eb0202a33a72394a062383b' })), h("div", { key: '2d2969a699b1b56ebc712fecbb99ccde8dc28c28', class: "end" }, h("div", { key: 'a0e18ea874704d4fd8aac0204122b9a18209ca37', class: "end-left" }, h("slot", { key: 'c70c138311778a58748dcfcdd03f8f61895bc6ec', name: "end-left" })), h("div", { key: '3339a070ca8068d7441643825fdb30e684d9aff7', class: "end-right" }, h("slot", { key: 'f576479754f88144e8ded04c90d1696882e6155e', name: "end-right" })))))));
|
|
24
24
|
}
|
|
25
25
|
static get is() { return "wcs-footer"; }
|
|
26
26
|
static get encapsulation() { return "shadow"; }
|
|
@@ -188,7 +188,7 @@ export class FormField {
|
|
|
188
188
|
if (this.hasPrefix) {
|
|
189
189
|
classes += ' has-prefix';
|
|
190
190
|
}
|
|
191
|
-
return (h(Host, { key: '
|
|
191
|
+
return (h(Host, { key: '9cfd2ef4834a62bfe77366b99ec637b71008178e', class: classes }, h("slot", { key: '26a0f59515e28ec045e8ccee2e74e143466ca183', name: "label" }), h("div", { key: '338b49d772bc0b9ec2621a783a051e4bdc8096bc', class: "input-container" }, h("slot", { key: 'f51bf6dc00f529f70a8ccf37ff54c29093fb1e20', name: "prefix" }), h("slot", { key: 'ccab32ee521ec419c89e561d4ac099a0953b6188', onSlotchange: () => this.onFormInputSlotChange() }), h("slot", { key: 'b54d01ac5b4f7f6761923b94c436b2728ff036e5', name: "suffix" })), isError ? (h("slot", { name: "error" })) : '', h("slot", { key: '40665251b2e5acc2fb8e31a4e8b46d34959b74e1', name: "messages" })));
|
|
192
192
|
}
|
|
193
193
|
onFormInputSlotChange() {
|
|
194
194
|
this.initSpiedElement();
|
|
@@ -21,7 +21,7 @@ export class Galactic {
|
|
|
21
21
|
this.show = false;
|
|
22
22
|
}
|
|
23
23
|
render() {
|
|
24
|
-
return (h(Host, { key: '
|
|
24
|
+
return (h(Host, { key: '232bedfce53c034b8cb1d65386d883bd7e3bf98d' }, h("div", { key: '0c3540994bd2b846a4668cb20f7e12207b764041', class: "container" }, h("div", { key: '5e3d1e7c948420b75383a52eb39c22acfa443e1f', class: "logo-container" }, h("img", { key: 'd3d28eab6584e0b670cd7624147033c134f0bfbe', src: SNCF_BASE64_SVG_LOGO, id: "sncf-logo", alt: "SNCF" }), h("span", { key: '46de64ef60c5b5180397dbcee9d18ddd33f42025' }, this.text)), h("div", { key: '2de7221e95f3628a2c05a9b1006b75b25f6cb25e', class: "actions-container" }, h("slot", { key: 'd91d6a26c3d9c79610e8b35c79bb7e3e42541751' })))));
|
|
25
25
|
}
|
|
26
26
|
static get is() { return "wcs-galactic"; }
|
|
27
27
|
static get encapsulation() { return "shadow"; }
|
|
@@ -71,9 +71,9 @@ export class Galactic {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
render() {
|
|
74
|
-
return (h(Host, { key: '
|
|
74
|
+
return (h(Host, { key: '8119cc6893e6dc5eda0b2f88a2d3935f9c1a6ac4' }, h("span", { key: 'c6ca18f7cb948c09d7d5fdd6bc9aacbad2e397fe' }, this.text), h("button", Object.assign({ key: 'a04475052533f24675ef125ba52117bc15279fba', "aria-haspopup": "true", "aria-controls": "menu", ref: el => {
|
|
75
75
|
this.menuButton = el;
|
|
76
|
-
}, "aria-expanded": this.showPopoverMenu ? "true" : "false" }, this.inheritedAttributes, { onClick: _ => this.toggleMenu() }), h("wcs-mat-icon", { key: '
|
|
76
|
+
}, "aria-expanded": this.showPopoverMenu ? "true" : "false" }, this.inheritedAttributes, { onClick: _ => this.toggleMenu() }), h("wcs-mat-icon", { key: '7a394bfe5e1cee3d49dba4672c6569a0f94a02ae', id: "toggle-menu-icon", icon: "more_horiz", size: "m" })), h("span", { key: '290449dc75b2d5ba33acb49865b1736cf12cb13c', id: "menu", role: "menu", "data-show": this.showPopoverMenu }, h("div", { key: 'd5224168e7f11b935453c7e883791842ffbc0c61', id: "arrow", "data-popper-arrow": true }), h("slot", { key: 'eaaffe928ece2da680be02522e16655d961261ad' }))));
|
|
77
77
|
}
|
|
78
78
|
static get is() { return "wcs-galactic-menu"; }
|
|
79
79
|
static get encapsulation() { return "shadow"; }
|
|
@@ -204,5 +204,80 @@ test.describe('Grid component', () => {
|
|
|
204
204
|
expect(scrollY).toBe(0);
|
|
205
205
|
});
|
|
206
206
|
});
|
|
207
|
+
test.describe('Pagination', () => {
|
|
208
|
+
test('should display 0/0 when no data is bound to the grid', async ({ page }) => {
|
|
209
|
+
// Given
|
|
210
|
+
await setWcsContent(page, `
|
|
211
|
+
<wcs-grid id="grid">
|
|
212
|
+
<wcs-grid-column path="first_name" name="First Name"></wcs-grid-column>
|
|
213
|
+
<wcs-grid-pagination id="pagination" available-page-sizes="2"></wcs-grid-pagination>
|
|
214
|
+
</wcs-grid>
|
|
215
|
+
`);
|
|
216
|
+
// When - no data is set at all
|
|
217
|
+
await page.waitForChanges();
|
|
218
|
+
// Then
|
|
219
|
+
const pagination = page.locator('#pagination');
|
|
220
|
+
const { currentPage, pageCount } = await pagination.evaluate((el) => ({
|
|
221
|
+
currentPage: el.currentPage,
|
|
222
|
+
pageCount: el.pageCount
|
|
223
|
+
}));
|
|
224
|
+
expect(currentPage).toBe(-1);
|
|
225
|
+
expect(pageCount).toBe(0);
|
|
226
|
+
// The displayed counter should show "0 / 0"
|
|
227
|
+
const counter = pagination.locator('.pagination-counter span');
|
|
228
|
+
await expect(counter).toHaveText('0 / 0');
|
|
229
|
+
});
|
|
230
|
+
test('should display 0/0 when data is set to an empty array', async ({ page }) => {
|
|
231
|
+
// Given
|
|
232
|
+
await setWcsContent(page, `
|
|
233
|
+
<wcs-grid id="grid">
|
|
234
|
+
<wcs-grid-column path="first_name" name="First Name"></wcs-grid-column>
|
|
235
|
+
<wcs-grid-pagination id="pagination" available-page-sizes="2"></wcs-grid-pagination>
|
|
236
|
+
</wcs-grid>
|
|
237
|
+
`);
|
|
238
|
+
const grid = page.locator('#grid');
|
|
239
|
+
// When
|
|
240
|
+
await grid.evaluate((el) => el.data = []);
|
|
241
|
+
await page.waitForChanges();
|
|
242
|
+
// Then
|
|
243
|
+
const pagination = page.locator('#pagination');
|
|
244
|
+
const { currentPage, pageCount } = await pagination.evaluate((el) => ({
|
|
245
|
+
currentPage: el.currentPage,
|
|
246
|
+
pageCount: el.pageCount
|
|
247
|
+
}));
|
|
248
|
+
expect(currentPage).toBe(-1);
|
|
249
|
+
expect(pageCount).toBe(0);
|
|
250
|
+
const counter = pagination.locator('.pagination-counter span');
|
|
251
|
+
await expect(counter).toHaveText('0 / 0');
|
|
252
|
+
});
|
|
253
|
+
test('should reset to 0/0 when data is cleared after being populated', async ({ page }) => {
|
|
254
|
+
// Given
|
|
255
|
+
const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }, { id: 3, first_name: 'Jane' }];
|
|
256
|
+
await setWcsContent(page, `
|
|
257
|
+
<wcs-grid id="grid">
|
|
258
|
+
<wcs-grid-column path="first_name" name="First Name"></wcs-grid-column>
|
|
259
|
+
<wcs-grid-pagination id="pagination" available-page-sizes="2"></wcs-grid-pagination>
|
|
260
|
+
</wcs-grid>
|
|
261
|
+
`);
|
|
262
|
+
const grid = page.locator('#grid');
|
|
263
|
+
await grid.evaluate((el, d) => el.data = d, data);
|
|
264
|
+
await page.waitForChanges();
|
|
265
|
+
// Sanity check: pagination should show data
|
|
266
|
+
const pagination = page.locator('#pagination');
|
|
267
|
+
const counterAfterData = pagination.locator('.pagination-counter span');
|
|
268
|
+
await expect(counterAfterData).toHaveText('1 / 1');
|
|
269
|
+
// When
|
|
270
|
+
await grid.evaluate((el) => el.data = []);
|
|
271
|
+
await page.waitForChanges();
|
|
272
|
+
// Then
|
|
273
|
+
const { currentPage, pageCount } = await pagination.evaluate((el) => ({
|
|
274
|
+
currentPage: el.currentPage,
|
|
275
|
+
pageCount: el.pageCount
|
|
276
|
+
}));
|
|
277
|
+
expect(currentPage).toBe(-1);
|
|
278
|
+
expect(pageCount).toBe(0);
|
|
279
|
+
await expect(counterAfterData).toHaveText('0 / 0');
|
|
280
|
+
});
|
|
281
|
+
});
|
|
207
282
|
});
|
|
208
283
|
//# sourceMappingURL=grid.e2e.playwright.js.map
|