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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/grid/grid.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('Grid component', () => {\n test.describe('Events', () => {\n test.describe('simple', () => {\n test('should emit a wcsGridSelectionChange event when a row is selected', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }, { id: 3, first_name: 'Jane' }, { id: 4, first_name: 'Smith' }];\n await setWcsContent(page, `\n <wcs-grid id=\"simpleGrid\" selection-config=\"single\" sort=\"\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n </wcs-grid>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n const selectionSpy = await page.spyOnEvent('wcsGridSelectionChange');\n\n // When\n const gridRadioFirstRow = simpleGrid.locator('table tbody tr:first-child td .grid-radio');\n await gridRadioFirstRow.click();\n await page.waitForChanges();\n\n // Then\n expect(selectionSpy).toHaveReceivedEventTimes(1);\n const detail = selectionSpy.events[0].detail;\n expect(detail.selectedRows[0].data).toEqual(data[0]);\n expect(detail.selectedRows[0].selected).toBe(true);\n expect(detail.changedRow.selected).toBe(true);\n expect(detail.changedRow.data).toEqual(data[0]);\n });\n });\n\n test.describe('multiple', () => {\n test('should emit a wcsGridSelectionChange event when a row is selected', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }, { id: 3, first_name: 'Jane' }, { id: 4, first_name: 'Smith' }];\n await setWcsContent(page, `\n <wcs-grid id=\"simpleGrid\" selection-config=\"multiple\" sort=\"\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n </wcs-grid>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n const selectionSpy = await page.spyOnEvent('wcsGridSelectionChange');\n\n // When\n const wcsCheckboxFirstRow = simpleGrid.locator('table tbody tr:first-child td wcs-checkbox');\n await wcsCheckboxFirstRow.click();\n await page.waitForChanges();\n\n // Then\n expect(selectionSpy).toHaveReceivedEventTimes(1);\n const detail = selectionSpy.events[0].detail;\n expect(detail.selectedRows[0].data).toEqual(data[0]);\n expect(detail.selectedRows[0].selected).toBe(true);\n expect(detail.changedRow.selected).toBe(true);\n expect(detail.changedRow.data).toEqual(data[0]);\n });\n\n test('should emit a wcsGridSelectionChange event when a row is unselected', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }, { id: 3, first_name: 'Jane' }, { id: 4, first_name: 'Smith' }];\n await setWcsContent(page, `\n <wcs-grid id=\"simpleGrid\" selection-config=\"multiple\" sort=\"\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n </wcs-grid>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n const wcsCheckboxFirstRow = simpleGrid.locator('table tbody tr:first-child td wcs-checkbox');\n await wcsCheckboxFirstRow.click(); // Row is selected\n await page.waitForChanges();\n\n const selectionSpy = await page.spyOnEvent('wcsGridSelectionChange');\n\n // When\n await wcsCheckboxFirstRow.click(); // Row is unselected\n await page.waitForChanges();\n\n // Then\n expect(selectionSpy).toHaveReceivedEventTimes(1);\n const detail = selectionSpy.events[0].detail;\n expect(detail.selectedRows).toEqual([]);\n expect(detail.changedRow.selected).toBe(false);\n expect(detail.changedRow.data).toEqual(data[0]);\n });\n\n test('should emit a wcsGridSelectionChange event when a new row is selected while another are already selected', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }, { id: 3, first_name: 'Jane' }, { id: 4, first_name: 'Smith' }];\n await setWcsContent(page, `\n <wcs-grid id=\"simpleGrid\" selection-config=\"multiple\" sort=\"\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n </wcs-grid>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n const wcsCheckboxFirstRow = simpleGrid.locator('table tbody tr:first-child td wcs-checkbox');\n await wcsCheckboxFirstRow.click();\n await page.waitForChanges();\n\n const selectionSpy = await page.spyOnEvent('wcsGridSelectionChange');\n\n // When\n const wcsCheckboxLastChild = simpleGrid.locator('table tbody tr:last-child td wcs-checkbox');\n await wcsCheckboxLastChild.click();\n await page.waitForChanges();\n\n // Then\n expect(selectionSpy).toHaveReceivedEventTimes(1);\n const detail = selectionSpy.events[0].detail;\n expect(detail.selectedRows.length).toBe(2);\n expect(detail.selectedRows[0].data).toEqual(data[0]);\n expect(detail.selectedRows[1].data).toEqual(data[data.length - 1]);\n expect(detail.changedRow.selected).toBe(true);\n expect(detail.changedRow.data).toEqual(data[data.length - 1]);\n });\n\n test('should emit a wcsGridSelectionChange event when all rows are selected', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }, { id: 3, first_name: 'Jane' }, { id: 4, first_name: 'Smith' }];\n await setWcsContent(page, `\n <wcs-grid id=\"simpleGrid\" selection-config=\"multiple\" sort=\"\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n </wcs-grid>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n const selectionSpy = await page.spyOnEvent('wcsGridSelectionChange');\n\n // When\n const wcsCheckboxAll = simpleGrid.locator('table thead th:first-child wcs-checkbox');\n await wcsCheckboxAll.click();\n await page.waitForChanges();\n\n // Then\n expect(selectionSpy).toHaveReceivedEventTimes(1);\n const detail = selectionSpy.events[0].detail;\n expect(detail.selectedRows.length).toBe(data.length);\n expect(detail.changedRow).toBe('allCheckbox');\n });\n });\n });\n\n test.describe('Sort', () => {\n test('should well sort with pagination', async ({ page }: { page: E2EPage }) => {\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }, { id: 3, first_name: 'Jane' }, { id: 4, first_name: 'Zoe' }];\n await setWcsContent(page, `\n <wcs-grid id=\"simpleGrid\" selection-config=\"multiple\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\" sort sort-order=\"desc\"></wcs-grid-column>\n <wcs-grid-pagination available-page-sizes=\"2\"></wcs-grid-pagination>\n </wcs-grid>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n // First page should contain 2 elements (page-size = 2) sorted descending by first_name\n // Data order before sort: John, Doe, Jane, Zoe\n // After descending sort: Zoe, John, Jane, Doe\n // Page 1 should show Zoe, John\n\n const firstRowFirstCell = simpleGrid.locator('table tbody tr:first-child td:last-child');\n const secondRowFirstCell = simpleGrid.locator('table tbody tr:nth-child(2) td:last-child');\n\n await expect(async () => {\n await expect(firstRowFirstCell).toHaveText('Zoe');\n await expect(secondRowFirstCell).toHaveText('John');\n }).toPass();\n });\n });\n\n test.describe('Behavior in window with scroll', () => {\n test('should preserve the window scroll position when clicking on a single-selection radio inside a scrollable container', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }];\n await setWcsContent(page, `\n <div id=\"scroll-container\" style=\"height: 100vh; overflow-y: auto;\">\n <div style=\"margin-top: 150vh; display: flex; flex-direction: column; gap: 16px;\">\n <wcs-grid id=\"simpleGrid\" selection-config=\"single\" sort=\"\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n </wcs-grid>\n </div>\n <div style=\"margin-top: 200vh;\">Other content</div>\n </div>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n const body = page.locator('body');\n const gridRadioFirstRow = simpleGrid.locator('table tbody tr:first-child td .grid-radio');\n\n await gridRadioFirstRow.scrollIntoViewIfNeeded();\n\n // When\n await gridRadioFirstRow.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 single-selection grid inside a scrollable container', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }];\n await setWcsContent(page, `\n <div id=\"scroll-container\" style=\"height: 100vh; overflow-y: auto;\">\n <div style=\"margin-top: 150vh; display: flex; flex-direction: column; gap: 16px;\">\n <button id=\"before-grid\">Before grid</button>\n <wcs-grid id=\"simpleGrid\" selection-config=\"single\" sort=\"\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n </wcs-grid>\n </div>\n <div style=\"margin-top: 200vh;\">Other content</div>\n </div>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n const body = page.locator('body');\n const beforeGridButton = page.locator('#before-grid');\n const firstGridRadio = simpleGrid.locator('table tbody tr:first-child td .grid-radio input');\n\n await beforeGridButton.scrollIntoViewIfNeeded();\n await beforeGridButton.focus();\n\n // When\n await page.keyboard.press('Tab');\n\n // Then\n await expect(firstGridRadio).toBeFocused();\n const scrollY = await body.evaluate(() => window.scrollY);\n expect(scrollY).toBe(0);\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"grid.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/grid/grid.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('Grid component', () => {\n test.describe('Events', () => {\n test.describe('simple', () => {\n test('should emit a wcsGridSelectionChange event when a row is selected', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }, { id: 3, first_name: 'Jane' }, { id: 4, first_name: 'Smith' }];\n await setWcsContent(page, `\n <wcs-grid id=\"simpleGrid\" selection-config=\"single\" sort=\"\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n </wcs-grid>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n const selectionSpy = await page.spyOnEvent('wcsGridSelectionChange');\n\n // When\n const gridRadioFirstRow = simpleGrid.locator('table tbody tr:first-child td .grid-radio');\n await gridRadioFirstRow.click();\n await page.waitForChanges();\n\n // Then\n expect(selectionSpy).toHaveReceivedEventTimes(1);\n const detail = selectionSpy.events[0].detail;\n expect(detail.selectedRows[0].data).toEqual(data[0]);\n expect(detail.selectedRows[0].selected).toBe(true);\n expect(detail.changedRow.selected).toBe(true);\n expect(detail.changedRow.data).toEqual(data[0]);\n });\n });\n\n test.describe('multiple', () => {\n test('should emit a wcsGridSelectionChange event when a row is selected', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }, { id: 3, first_name: 'Jane' }, { id: 4, first_name: 'Smith' }];\n await setWcsContent(page, `\n <wcs-grid id=\"simpleGrid\" selection-config=\"multiple\" sort=\"\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n </wcs-grid>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n const selectionSpy = await page.spyOnEvent('wcsGridSelectionChange');\n\n // When\n const wcsCheckboxFirstRow = simpleGrid.locator('table tbody tr:first-child td wcs-checkbox');\n await wcsCheckboxFirstRow.click();\n await page.waitForChanges();\n\n // Then\n expect(selectionSpy).toHaveReceivedEventTimes(1);\n const detail = selectionSpy.events[0].detail;\n expect(detail.selectedRows[0].data).toEqual(data[0]);\n expect(detail.selectedRows[0].selected).toBe(true);\n expect(detail.changedRow.selected).toBe(true);\n expect(detail.changedRow.data).toEqual(data[0]);\n });\n\n test('should emit a wcsGridSelectionChange event when a row is unselected', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }, { id: 3, first_name: 'Jane' }, { id: 4, first_name: 'Smith' }];\n await setWcsContent(page, `\n <wcs-grid id=\"simpleGrid\" selection-config=\"multiple\" sort=\"\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n </wcs-grid>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n const wcsCheckboxFirstRow = simpleGrid.locator('table tbody tr:first-child td wcs-checkbox');\n await wcsCheckboxFirstRow.click(); // Row is selected\n await page.waitForChanges();\n\n const selectionSpy = await page.spyOnEvent('wcsGridSelectionChange');\n\n // When\n await wcsCheckboxFirstRow.click(); // Row is unselected\n await page.waitForChanges();\n\n // Then\n expect(selectionSpy).toHaveReceivedEventTimes(1);\n const detail = selectionSpy.events[0].detail;\n expect(detail.selectedRows).toEqual([]);\n expect(detail.changedRow.selected).toBe(false);\n expect(detail.changedRow.data).toEqual(data[0]);\n });\n\n test('should emit a wcsGridSelectionChange event when a new row is selected while another are already selected', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }, { id: 3, first_name: 'Jane' }, { id: 4, first_name: 'Smith' }];\n await setWcsContent(page, `\n <wcs-grid id=\"simpleGrid\" selection-config=\"multiple\" sort=\"\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n </wcs-grid>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n const wcsCheckboxFirstRow = simpleGrid.locator('table tbody tr:first-child td wcs-checkbox');\n await wcsCheckboxFirstRow.click();\n await page.waitForChanges();\n\n const selectionSpy = await page.spyOnEvent('wcsGridSelectionChange');\n\n // When\n const wcsCheckboxLastChild = simpleGrid.locator('table tbody tr:last-child td wcs-checkbox');\n await wcsCheckboxLastChild.click();\n await page.waitForChanges();\n\n // Then\n expect(selectionSpy).toHaveReceivedEventTimes(1);\n const detail = selectionSpy.events[0].detail;\n expect(detail.selectedRows.length).toBe(2);\n expect(detail.selectedRows[0].data).toEqual(data[0]);\n expect(detail.selectedRows[1].data).toEqual(data[data.length - 1]);\n expect(detail.changedRow.selected).toBe(true);\n expect(detail.changedRow.data).toEqual(data[data.length - 1]);\n });\n\n test('should emit a wcsGridSelectionChange event when all rows are selected', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }, { id: 3, first_name: 'Jane' }, { id: 4, first_name: 'Smith' }];\n await setWcsContent(page, `\n <wcs-grid id=\"simpleGrid\" selection-config=\"multiple\" sort=\"\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n </wcs-grid>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n const selectionSpy = await page.spyOnEvent('wcsGridSelectionChange');\n\n // When\n const wcsCheckboxAll = simpleGrid.locator('table thead th:first-child wcs-checkbox');\n await wcsCheckboxAll.click();\n await page.waitForChanges();\n\n // Then\n expect(selectionSpy).toHaveReceivedEventTimes(1);\n const detail = selectionSpy.events[0].detail;\n expect(detail.selectedRows.length).toBe(data.length);\n expect(detail.changedRow).toBe('allCheckbox');\n });\n });\n });\n\n test.describe('Sort', () => {\n test('should well sort with pagination', async ({ page }: { page: E2EPage }) => {\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }, { id: 3, first_name: 'Jane' }, { id: 4, first_name: 'Zoe' }];\n await setWcsContent(page, `\n <wcs-grid id=\"simpleGrid\" selection-config=\"multiple\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\" sort sort-order=\"desc\"></wcs-grid-column>\n <wcs-grid-pagination available-page-sizes=\"2\"></wcs-grid-pagination>\n </wcs-grid>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n // First page should contain 2 elements (page-size = 2) sorted descending by first_name\n // Data order before sort: John, Doe, Jane, Zoe\n // After descending sort: Zoe, John, Jane, Doe\n // Page 1 should show Zoe, John\n\n const firstRowFirstCell = simpleGrid.locator('table tbody tr:first-child td:last-child');\n const secondRowFirstCell = simpleGrid.locator('table tbody tr:nth-child(2) td:last-child');\n\n await expect(async () => {\n await expect(firstRowFirstCell).toHaveText('Zoe');\n await expect(secondRowFirstCell).toHaveText('John');\n }).toPass();\n });\n });\n\n test.describe('Behavior in window with scroll', () => {\n test('should preserve the window scroll position when clicking on a single-selection radio inside a scrollable container', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }];\n await setWcsContent(page, `\n <div id=\"scroll-container\" style=\"height: 100vh; overflow-y: auto;\">\n <div style=\"margin-top: 150vh; display: flex; flex-direction: column; gap: 16px;\">\n <wcs-grid id=\"simpleGrid\" selection-config=\"single\" sort=\"\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n </wcs-grid>\n </div>\n <div style=\"margin-top: 200vh;\">Other content</div>\n </div>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n const body = page.locator('body');\n const gridRadioFirstRow = simpleGrid.locator('table tbody tr:first-child td .grid-radio');\n\n await gridRadioFirstRow.scrollIntoViewIfNeeded();\n\n // When\n await gridRadioFirstRow.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 single-selection grid inside a scrollable container', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }];\n await setWcsContent(page, `\n <div id=\"scroll-container\" style=\"height: 100vh; overflow-y: auto;\">\n <div style=\"margin-top: 150vh; display: flex; flex-direction: column; gap: 16px;\">\n <button id=\"before-grid\">Before grid</button>\n <wcs-grid id=\"simpleGrid\" selection-config=\"single\" sort=\"\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n </wcs-grid>\n </div>\n <div style=\"margin-top: 200vh;\">Other content</div>\n </div>\n `);\n\n const simpleGrid = page.locator('#simpleGrid');\n await simpleGrid.evaluate((el: any, d) => el.data = d, data);\n\n const body = page.locator('body');\n const beforeGridButton = page.locator('#before-grid');\n const firstGridRadio = simpleGrid.locator('table tbody tr:first-child td .grid-radio input');\n\n await beforeGridButton.scrollIntoViewIfNeeded();\n await beforeGridButton.focus();\n\n // When\n await page.keyboard.press('Tab');\n\n // Then\n await expect(firstGridRadio).toBeFocused();\n const scrollY = await body.evaluate(() => window.scrollY);\n expect(scrollY).toBe(0);\n });\n });\n\n test.describe('Pagination', () => {\n test('should display 0/0 when no data is bound to the grid', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-grid id=\"grid\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n <wcs-grid-pagination id=\"pagination\" available-page-sizes=\"2\"></wcs-grid-pagination>\n </wcs-grid>\n `);\n\n // When - no data is set at all\n await page.waitForChanges();\n\n // Then\n const pagination = page.locator('#pagination');\n const { currentPage, pageCount } = await pagination.evaluate((el: HTMLWcsGridPaginationElement) => ({\n currentPage: el.currentPage,\n pageCount: el.pageCount\n }));\n expect(currentPage).toBe(-1);\n expect(pageCount).toBe(0);\n\n // The displayed counter should show \"0 / 0\"\n const counter = pagination.locator('.pagination-counter span');\n await expect(counter).toHaveText('0 / 0');\n });\n\n test('should display 0/0 when data is set to an empty array', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-grid id=\"grid\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n <wcs-grid-pagination id=\"pagination\" available-page-sizes=\"2\"></wcs-grid-pagination>\n </wcs-grid>\n `);\n\n const grid = page.locator('#grid');\n\n // When\n await grid.evaluate((el: HTMLWcsGridElement) => el.data = []);\n await page.waitForChanges();\n\n // Then\n const pagination = page.locator('#pagination');\n const { currentPage, pageCount } = await pagination.evaluate((el: HTMLWcsGridPaginationElement) => ({\n currentPage: el.currentPage,\n pageCount: el.pageCount\n }));\n expect(currentPage).toBe(-1);\n expect(pageCount).toBe(0);\n\n const counter = pagination.locator('.pagination-counter span');\n await expect(counter).toHaveText('0 / 0');\n });\n\n test('should reset to 0/0 when data is cleared after being populated', async ({ page }: { page: E2EPage }) => {\n // Given\n const data = [{ id: 1, first_name: 'John' }, { id: 2, first_name: 'Doe' }, { id: 3, first_name: 'Jane' }];\n await setWcsContent(page, `\n <wcs-grid id=\"grid\">\n <wcs-grid-column path=\"first_name\" name=\"First Name\"></wcs-grid-column>\n <wcs-grid-pagination id=\"pagination\" available-page-sizes=\"2\"></wcs-grid-pagination>\n </wcs-grid>\n `);\n\n const grid = page.locator('#grid');\n await grid.evaluate((el: HTMLWcsGridElement, d) => el.data = d, data);\n await page.waitForChanges();\n\n // Sanity check: pagination should show data\n const pagination = page.locator('#pagination');\n const counterAfterData = pagination.locator('.pagination-counter span');\n await expect(counterAfterData).toHaveText('1 / 1');\n\n // When\n await grid.evaluate((el: HTMLWcsGridElement) => el.data = []);\n await page.waitForChanges();\n\n // Then\n const { currentPage, pageCount } = await pagination.evaluate((el: HTMLWcsGridPaginationElement) => ({\n currentPage: el.currentPage,\n pageCount: el.pageCount\n }));\n expect(currentPage).toBe(-1);\n expect(pageCount).toBe(0);\n\n await expect(counterAfterData).toHaveText('0 / 0');\n });\n });\n});\n"]}
|
|
@@ -393,7 +393,14 @@ export class Grid {
|
|
|
393
393
|
* Update the page's number of all rows
|
|
394
394
|
*/
|
|
395
395
|
updatePageIndex() {
|
|
396
|
+
var _a;
|
|
396
397
|
if (!this.serverMode && this.paginationEl) {
|
|
398
|
+
if (!this.data || ((_a = this.data) === null || _a === void 0 ? void 0 : _a.length) === 0) {
|
|
399
|
+
this.paginationEl.itemsCount = 0;
|
|
400
|
+
this.paginationEl.pageCount = 0;
|
|
401
|
+
this.paginationEl.currentPage = -1;
|
|
402
|
+
return;
|
|
403
|
+
}
|
|
397
404
|
this.paginationEl.itemsCount = this.data.length;
|
|
398
405
|
this.paginationEl.pageCount = Math.ceil(this.data.length / this.paginationEl.pageSize);
|
|
399
406
|
if (this.paginationEl.pageCount <= 1) {
|
|
@@ -506,12 +513,12 @@ export class Grid {
|
|
|
506
513
|
}
|
|
507
514
|
render() {
|
|
508
515
|
var _a, _b, _c, _d;
|
|
509
|
-
return (h(Host, { key: '
|
|
516
|
+
return (h(Host, { key: '6e42449e37f59f83499df9359733fd3fc3a1d93e' }, h("table", Object.assign({ key: '1cafcdf15955b01522441053d09891e388f03912', role: "grid", ref: (el) => (this.nativeTable = el), "aria-rowcount": !this.loading && ((_a = this.rows) === null || _a === void 0 ? void 0 : _a.length), "aria-colcount": !this.loading && this.totalDisplayedColumnCount() }, this.inheritedAttributes), h("thead", { key: '99d597b8e11ab46072008a8d8cbb801f8646fd4d' }, h("tr", { key: 'd2e912234b5837fedcc54f450181989c7e3b6cc1', "aria-rowindex": "1" }, this.selectionConfig === 'none' ? ''
|
|
510
517
|
: h("th", { class: "wcs-grid-selection-column" }, this.selectionConfig === 'single' ? '' :
|
|
511
518
|
h("wcs-checkbox", { tabIndex: ((_b = this.cursorPosition) === null || _b === void 0 ? void 0 : _b.col) === 0
|
|
512
|
-
&& ((_c = this.cursorPosition) === null || _c === void 0 ? void 0 : _c.row) === 0 ? 0 : -1, part: "all-rows-checkbox", checked: this.allRowsAreSelected(), onWcsChange: this.selectAllRows.bind(this) })), h("slot", { key: '
|
|
519
|
+
&& ((_c = this.cursorPosition) === null || _c === void 0 ? void 0 : _c.row) === 0 ? 0 : -1, part: "all-rows-checkbox", checked: this.allRowsAreSelected(), onWcsChange: this.selectAllRows.bind(this) })), h("slot", { key: '15d0607ad6f51f15bfa511836ff89d64d84e2db4', name: "grid-column" }))), h("tbody", { key: 'bd02a78ade9037a3f5ba47e08f1bd6a7184e5f63' }, this.loading
|
|
513
520
|
? h("tr", { "aria-busy": "true" }, h("td", { colSpan: this.totalColumnCount(), class: "loading" }, h("wcs-spinner", null)))
|
|
514
|
-
: (_d = this.rows) === null || _d === void 0 ? void 0 : _d.filter(row => this.serverMode || !this.paginationEl || row.page === this.paginationEl.currentPage).map((row, index) => this.renderRow(row, index)))), h("slot", { key: '
|
|
521
|
+
: (_d = this.rows) === null || _d === void 0 ? void 0 : _d.filter(row => this.serverMode || !this.paginationEl || row.page === this.paginationEl.currentPage).map((row, index) => this.renderRow(row, index)))), h("slot", { key: 'fe6d559fb6ced1a3de3466012bea2cd9ef2a7d8a', name: "grid-pagination" })));
|
|
515
522
|
}
|
|
516
523
|
/**
|
|
517
524
|
* Returns the row with all mapped cells inside.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.js","sourceRoot":"","sources":["../../../src/components/grid/grid.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentDidLoad,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n forceUpdate,\n h,\n Host,\n Listen, Method,\n Prop,\n State,\n VNode,\n Watch\n} from '@stencil/core';\nimport {\n getSortOrderInteger,\n HyperFunc, RowCssPartsFn,\n WcsGridAllRowSelectedEventDetails,\n WcsGridCell,\n WcsGridColumnSortChangeEventDetails,\n WcsGridPaginationChangeEventDetails,\n WcsGridRow,\n WcsGridRowData,\n WcsGridSelectionConfig,\n WcsGridSelectionEventDetails,\n} from './grid-interface';\nimport { v4 as uuid } from 'uuid';\nimport { cloneDeep, get, isEqual } from 'lodash-es';\nimport { GridPagination } from '../grid-pagination/grid-pagination';\nimport { getActionForKeyboardEvent, KeyboardEventAssociatedAction } from \"./grid-keyboard-event\";\nimport { GridRadio } from \"./grid-radio\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\n\ninterface GridElementWithCoordinates {\n el: HTMLTableCellElement,\n row: number,\n col: number,\n}\n\nconst GRID_INHERITED_ATTRS = ['title'];\n\n/**\n * The grid component is a complex component used as an HTML table to display collections of data.\n *\n * @cssprop --wcs-grid-gap - Gap between grid cells (horizontal, vertical using `border-spacing` property)\n * @cssprop --wcs-grid-vertical-align - Vertical alignment of grid cells\n * @cssprop --wcs-grid-outline-color - Outline color for grid cells\n *\n * @cssprop --wcs-grid-cell-text-color - Text color of all grid cells\n * @cssprop --wcs-grid-cell-padding-horizontal - Horizontal padding of grid cells\n * @cssprop --wcs-grid-cell-padding-vertical - Vertical padding of grid cells\n * @cssprop --wcs-grid-cell-border-bottom - Bottom border of grid cells\n * @cssprop --wcs-grid-cell-separator-border - Separator border between grid cells\n * @cssprop --wcs-grid-first-cell-border-radius - Border radius of the first cell in a row\n * @cssprop --wcs-grid-last-cell-border-radius - Border radius of the last cell in a row\n *\n * @cssprop --wcs-grid-highlight-color - Background color for selected rows\n * @cssprop --wcs-grid-row-background-color - Background color of all rows\n * @cssprop --wcs-grid-row-odd-background-color - Background color of odd rows\n * @cssprop --wcs-grid-row-even-background-color - Background color of even rows\n *\n * @cssprop --wcs-grid-header-background-color-default - Default background color of the header\n * @cssprop --wcs-grid-header-background-color-hover - Background color of the header on hover\n * @cssprop --wcs-grid-header-background-color-press - Background color of the header on press\n * @cssprop --wcs-grid-header-text-color - Text color of the header\n * @cssprop --wcs-grid-header-font-weight - Font weight of the header\n * @cssprop --wcs-grid-header-font-size - Font size of the header\n * @cssprop --wcs-grid-header-line-height - Line height of the header\n * @cssprop --wcs-grid-header-padding-vertical - Vertical padding of the header\n * @cssprop --wcs-grid-header-padding-horizontal - Horizontal padding of the header\n * @cssprop --wcs-grid-header-border-left - Left border between header cells (default is none\n * @cssprop --wcs-grid-header-border-radius - Border radius of the header\n * @cssprop --wcs-grid-header-border-bottom - Bottom border of the header\n * @cssprop --wcs-grid-header-transition-duration - Transition duration of the header\n * @cssprop --wcs-grid-first-header-background-color - Background color of the first header cell\n * @cssprop --wcs-grid-first-header-border-radius - Border radius of the first header cell\n * @cssprop --wcs-grid-last-header-border-radius - Border radius of the last header cell\n * @cssprop --wcs-grid-column-selection-width - Width of the selection column (when selectionConfig is defined)\n * @cssprop --wcs-grid-header-sort-arrow-color-default - Color of the sort arrow in the header\n * @cssprop --wcs-grid-header-sort-arrow-color-hover - Color of the sort arrow in the header when hovered\n * \n * @csspart all-rows-checkbox - CSS part for the checkbox in the selection column that selects all rows\n * @csspart row-checkbox - CSS part for the checkbox of each row in the selection column\n * \n * @slot grid-column - The slot containing the column of the grid in the `<thead>`\n * @slot grid-pagination - The slot containing the pagination of the grid below the `<table>`\n *\n */\n@Component({\n tag: 'wcs-grid',\n styleUrls: ['grid.scss', 'grid-radio.scss'],\n shadow: true\n})\nexport class Grid implements ComponentInterface, ComponentDidLoad, MutableAriaAttribute {\n @Element() private el!: HTMLWcsGridElement;\n private nativeTable!: HTMLTableElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n /**\n * Manage sort and pagination with a backend server when set to `true`\n */\n @Prop({ reflect: true }) serverMode: boolean = false;\n /**\n * Contains the data to display in the table from a js object\n */\n @Prop() data: any[];\n /**\n * Flag to display a spinner during data loading\n */\n @Prop({ reflect: true }) loading: boolean;\n /**\n * Used to manage grid's row selection. \n * \"none\": no row can be selected. \n * \"multiple\": several rows can be selected. \n * \"single\": one row only can be selected. \n */\n @Prop() selectionConfig: WcsGridSelectionConfig = 'none';\n /**\n * Set the selected items (rows)\n */\n @Prop() selectedItems: any | any[] = [];\n /**\n * Automatically set by the component to reference the wcs-grid-pagination HTML element by its id.\n */\n @Prop() wcsGridPaginationId: string;\n /**\n * Name of the object's key that will be used to display the cells whose `keyValue` attribute matches to the\n * object's value for this key. Useful for custom cells.\n */\n @Prop() rowIdPath: string;\n /**\n * Function to add css parts to the grid rows, this allows you to customize the rows with css parts directly\n * in you're application stylesheet.\n */\n @Prop() rowCssPartsFn: RowCssPartsFn = (_) => null;\n @State() private columns: HTMLWcsGridColumnElement[];\n @State() private paginationEl: HTMLWcsGridPaginationElement;\n /**\n * Rows to display, contains user data and meta data\n */\n @State() private rows: WcsGridRow[] = [];\n /**\n * Event emitted when a row is selected or unselected\n */\n @Event() wcsGridSelectionChange!: EventEmitter<WcsGridSelectionEventDetails>;\n /**\n * Event emitted when all rows are selected or unselected\n */\n @Event() wcsGridAllSelectionChange!: EventEmitter<WcsGridAllRowSelectedEventDetails>;\n /**\n * Event emitted when the grid has focus.\n */\n @Event() wcsFocus!: EventEmitter<FocusEvent>;\n /**\n * Event emitted when the grid loses focus.\n */\n @Event() wcsBlur!: EventEmitter<FocusEvent>;\n \n /**\n * Used to track the focus position in the grid for keyboard navigation. \n * Header row : index 0 \n * First column :\n * - index 1 if selection mode multiple or single\n * - index 0 if no selection mode\n * Default position : col 0, row 1\n */\n @State() private cursorPosition: {col: number, row: number} = {col: 0, row: 1};\n \n @Watch('cursorPosition')\n onCursorPositionChange(newValue: {col: number, row: number}): void {\n // Notify all grid columns that the cursorPosition has changed\n this.getGridColumnsFromTemplate().forEach(g => g.cursorPosition = newValue);\n }\n \n @Watch('data')\n onDataChange(newValue: any[]): void {\n this.updateGridRows(newValue);\n this.refreshSort(false);\n this.updatePageIndex();\n }\n\n @Watch('selectedItems')\n onSelectedItemsPropertyChange(newValue: any | any[]) {\n this.updateSelectionWithValues(newValue);\n }\n \n @Listen('focus')\n onFocus(event: FocusEvent) {\n this.getElementToFocusAtCursorPosition()?.focus();\n this.wcsFocus.emit(event);\n }\n\n @Listen('blur')\n onBlur(event: FocusEvent) {\n this.wcsBlur.emit(event);\n }\n\n /**\n * Set focus on the first cell of the grid\n */\n @Method()\n async focusFirstCell() {\n this.cursorPosition = { col: this.selectionConfig === 'none' ? 0 : 1, row: 1 };\n this.getElementToFocusAtCursorPosition()?.focus();\n }\n\n /**\n * If selectionConfig is different from `none`, that means that an extra column for radio or checkbox is rendered\n * in the table.\n */\n hasSelectionColumn() {\n return this.selectionConfig !== 'none';\n }\n \n /**\n * Returns the element to focus at the current cursor position : it can be a cell (td, th) to focus or a nested\n * checkbox / radio element if the selection mode is single or multiple\n */\n getElementToFocusAtCursorPosition(): HTMLTableCellElement | HTMLWcsCheckboxElement | HTMLInputElement {\n const el = this.gridElementsWithCoordinates.find(cell =>\n cell.col === this.cursorPosition?.col && cell.row === this.cursorPosition?.row)?.el;\n return this.hasSelectionColumn()\n ? el.querySelector('wcs-checkbox,input[type=\"radio\"]') ?? el\n : el;\n }\n \n moveCursorPosition(directionX: number | 'first' | 'last', directionY: number | 'first' | 'last') {\n this.cursorPosition = {\n col: directionX === 'first' ? 0 :\n directionX === 'last' ? this.totalDisplayedColumnCount() - 1 :\n Math.min(Math.max(this.cursorPosition.col + directionX, 0), this.totalDisplayedColumnCount() - 1),\n row: directionY === 'first' ? 0 :\n directionY === 'last' ? this.getRowsForCurrentPage().length :\n Math.min(Math.max(this.cursorPosition.row + directionY, 0), this.getRowsForCurrentPage().length)\n };\n \n this.handleCursorPositionOnEmptyTh();\n \n this.getElementToFocusAtCursorPosition()?.focus();\n }\n\n /**\n * When the grid has selectionConfig single, an empty th appears at col=0, row=0.\n * It should not be focusable so the cursor navigates to col=1, row=0 instead.\n */\n handleCursorPositionOnEmptyTh() {\n if (this.selectionConfig === 'single' && this.cursorPosition.col === 0 && this.cursorPosition.row === 0) {\n this.cursorPosition = {\n col: 1,\n row: 0\n }\n }\n }\n\n @Listen('wcsHiddenChange')\n onHiddenColumnChange(): void {\n // We use forceUpdate because the fact of hiding a column or not does not modify the internal structure of the grid (WcsGridRow).\n // Hide a column only impacts the way it is rendered but the grid-column remains in the dom and in our internal model.\n forceUpdate(this);\n this.cursorPosition = { col: 0 , row: 1 }\n }\n\n @Listen('keydown')\n onKeyDown(_event: KeyboardEvent) {\n if (document.activeElement?.tagName === 'WCS-GRID-PAGINATION') {\n return;\n }\n \n let type: 'grid_no_selection' | 'grid_selection_single' | 'grid_selection_multiple';\n \n switch (this.selectionConfig) {\n case \"multiple\":\n type = 'grid_selection_multiple';\n break;\n case \"single\":\n type = 'grid_selection_single';\n break;\n case \"none\":\n type = 'grid_no_selection';\n break;\n }\n\n const actionsFromKeyboardEvents: KeyboardEventAssociatedAction[] = getActionForKeyboardEvent(_event, type);\n\n // If we have at least one associated actions, we prevent the default behavior of the event. \n // Except if the action is a focus move (we have to handle the preventDefault behavior ourselves in the action implementation)\n if (actionsFromKeyboardEvents.length != 0) {\n _event.preventDefault();\n }\n\n for (const actionFromKeyboardEvent of actionsFromKeyboardEvents) {\n this.doActionFromKeyboardEventAssociatedAction(actionFromKeyboardEvent, _event);\n }\n }\n\n doActionFromKeyboardEventAssociatedAction(actionFromKeyboardEvent: KeyboardEventAssociatedAction, event: KeyboardEvent) {\n switch (actionFromKeyboardEvent.kind) {\n case \"FocusCell\":\n switch (actionFromKeyboardEvent.target) {\n case \"up\":\n this.moveCursorPosition(0, -1);\n break;\n case \"down\":\n this.moveCursorPosition(0, 1);\n break;\n case \"left\":\n this.moveCursorPosition(-1, 0);\n break;\n case \"right\":\n this.moveCursorPosition(1, 0);\n break;\n case \"first_of_row\":\n this.moveCursorPosition('first', 0);\n break;\n case \"last_of_row\":\n this.moveCursorPosition('last', 0);\n break;\n case \"first_of_grid\":\n this.moveCursorPosition('first', 'first');\n break;\n case \"last_of_grid\":\n this.moveCursorPosition('last', 'last');\n break;\n default:\n break;\n }\n case \"SelectRow\":\n switch (actionFromKeyboardEvent.target) {\n case \"one\":\n event.preventDefault();\n if (this.cursorPosition.row > 0) {\n this.onRowSelection(this.rows[this.cursorPosition.row - 1]);\n }\n break;\n case \"all\":\n this.selectAllRows();\n break;\n default:\n break;\n }\n break;\n default:\n throw new Error(\"Internal error\");\n }\n }\n \n \n @Listen('mousedown')\n onClick(_event: MouseEvent) {\n const clickedGridElement: HTMLTableCellElement = _event.composedPath()\n .filter(x => ['TD', 'TH']\n .includes((x as HTMLElement).nodeName))[0] as HTMLTableCellElement;\n \n if(!clickedGridElement) return; // it can be the grid pagination node, we don't want to handle it\n \n const clickedGridElementWithCoordinates = this.gridElementsWithCoordinates.find(e => e.el === clickedGridElement);\n \n this.cursorPosition = {\n col: clickedGridElementWithCoordinates.col,\n row: clickedGridElementWithCoordinates.row,\n }\n }\n\n private updateSelectionWithValues(values: any | any[]) {\n if (this.selectionConfig === 'single') {\n this.rows.map(r => r.selected = false);\n for (const row of this.rows) {\n if (isEqual(row.data, values)) {\n row.selected = true;\n break; // only one line can be selected\n }\n }\n } else if (this.selectionConfig === 'multiple') {\n this.rows.map(r => r.selected = false);\n for (const row of this.rows) {\n if (values.find(x => isEqual(x, row.data))) {\n row.selected = true;\n }\n }\n }\n this.rows = cloneDeep(this.rows);\n }\n\n private wcsGridRowToWcsGridRowData(row: WcsGridRow): WcsGridRowData {\n return {selected: row.selected, page: row.page, data: row.data};\n }\n\n private updateGridRows(data: any[]): void {\n const rows: WcsGridRow[] = [];\n if (data && this.columns) {\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < data.length; i++) {\n const row: WcsGridRow = {\n uuid: uuid(),\n data: data[i],\n selected: false,\n cells: []\n };\n let index = 0;\n for (const column of this.columns) {\n column.columnPosition = index + (this.hasSelectionColumn() ? 1 : 0);\n index++;\n row.cells.push({\n content: get(data[i], column.path),\n column,\n formatter: column.formatter\n })\n }\n rows.push(row);\n }\n this.rows = rows;\n }\n }\n\n componentDidLoad(): void {\n this.columns = this.getGridColumnsFromTemplate();\n this.paginationEl = this.wcsGridPaginationId\n ? document.getElementById(this.wcsGridPaginationId) as HTMLWcsGridPaginationElement\n : this.getGridPaginationsFromTemplate()[0];\n this.updateGridRows(this.data);\n if (this.selectedItems) {\n this.updateSelectionWithValues(this.selectedItems);\n }\n this.refreshSort(true);\n this.updatePageIndex();\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, GRID_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeTable, attr, value);\n }\n\n /**\n * Handle existing column's filters (defined before the grid is instantiated)\n * @private\n */\n private refreshSort(refreshOthersColumnsSortOrderState: boolean) {\n //fixme: why the column property can be null or undefined?\n // Explanation: https://stenciljs.com/docs/component-lifecycle\n // The @watch can be called before the componentDidLoad() which sets the columns\n if (this.columns) {\n const [first, ...other] = this.columns.filter(c => c.sortOrder !== 'none');\n if (first && !this.serverMode) {\n this.sortBy(first);\n }\n refreshOthersColumnsSortOrderState && this.disableSortOrderForColumns(other);\n }\n }\n\n private disableSortOrderForColumns(columns: HTMLWcsGridColumnElement[] | null | undefined): void {\n columns?.forEach(c => c.sortOrder = 'none');\n }\n\n private getGridColumnsFromTemplate(): HTMLWcsGridColumnElement[] {\n const slotted = this.el.shadowRoot.querySelector('slot[name=\"grid-column\"]') as HTMLSlotElement;\n return slotted.assignedElements() as any as HTMLWcsGridColumnElement[];\n }\n\n private getGridPaginationsFromTemplate(): HTMLWcsGridPaginationElement[] {\n const slotted = this.el.shadowRoot.querySelector('slot[name=\"grid-pagination\"]') as HTMLSlotElement;\n return slotted.assignedElements() as any as HTMLWcsGridPaginationElement[];\n }\n \n private get gridElementsWithCoordinates(): GridElementWithCoordinates[] {\n const gridElements: GridElementWithCoordinates[] = [];\n // If selection multiple, the first cell should be added to the list\n if (this.selectionConfig === 'multiple') {\n gridElements.push({\n el: this.el.shadowRoot.querySelector('th'),\n row: 0,\n col: 0\n });\n }\n this.getGridColumnsFromTemplate()\n .filter(col => !col.hidden)\n .forEach((col, index) => {\n gridElements.push({\n el: col.shadowRoot.querySelector('th'),\n row: 0,\n col: index + (this.hasSelectionColumn() ? 1 : 0),\n });\n });\n this.el.shadowRoot.querySelectorAll('td').forEach((cell, index) => {\n gridElements.push({\n el: cell,\n row: 1 + Math.floor(index / this.totalDisplayedColumnCount()),\n col: index % this.totalDisplayedColumnCount(),\n });\n });\n \n return gridElements;\n }\n\n @Listen('wcsSortChange')\n sortChangeEventHandler(event: CustomEvent<WcsGridColumnSortChangeEventDetails>): void {\n // fixme: why the column property can be null or undefined?\n // Explanation: https://stenciljs.com/docs/component-lifecycle\n // The @Listen can be called before the componentDidLoad() which sets the columns\n if (event.detail.order === 'none' || !this.columns) return;\n // We keep only one active sort column\n this.disableSortOrderForColumns(this.columns.filter(c => c !== event.detail.column));\n if (this.serverMode) return;\n this.sortBy(event.detail.column);\n this.updatePageIndex();\n }\n\n /**\n * Sorts the grid rows according to the given column's configuration\n * @param column Column from which to extract the sorting configuration\n * @private\n */\n private sortBy(column: HTMLWcsGridColumnElement) {\n if (column.sortFn) {\n this.rows = cloneDeep(this.rows)\n .sort((a: any, b: any) => column.sortFn(a.data, b.data, column) * getSortOrderInteger(column.sortOrder));\n } else {\n this.rows = cloneDeep(this.rows)\n .sort((a: any, b: any) => {\n const path = column.path;\n return ((get(a.data, path) < get(b.data, path)) ? -1 : (get(a.data, path) > get(b.data, path)) ? 1 : 0) * getSortOrderInteger(column.sortOrder);\n });\n }\n }\n\n /**\n * Update the page's number of all rows\n */\n private updatePageIndex(): void {\n if (!this.serverMode && this.paginationEl) {\n this.paginationEl.itemsCount = this.data.length;\n this.paginationEl.pageCount = Math.ceil(this.data.length / this.paginationEl.pageSize);\n\n if (this.paginationEl.pageCount <= 1) {\n this.paginationEl.currentPage = GridPagination.INDEX_FIRST_PAGE;\n } else if (this.paginationEl.pageCount > 0 && this.paginationEl.currentPage + 1 > this.paginationEl.pageCount) {\n this.paginationEl.currentPage = this.paginationEl.pageCount - 1;\n }\n\n const rows = cloneDeep(this.rows);\n rows.forEach((row: WcsGridRow, index: number) =>\n row.page = Math.floor(index / this.paginationEl.pageSize)\n );\n this.rows = [...rows];\n }\n }\n\n @Listen('wcsGridPaginationChange')\n paginationChangeEventHandler(): void {\n this.onPaginationChange();\n }\n\n @Listen('wcsGridPaginationChange', {target: 'window'})\n paginationChangeEventHandlerOutside(event: CustomEvent<WcsGridPaginationChangeEventDetails>): void {\n if (this.wcsGridPaginationId && this.wcsGridPaginationId === (event.target as HTMLElement).id) {\n this.onPaginationChange();\n }\n }\n\n private onPaginationChange(): void {\n if (this.serverMode) return;\n this.updatePageIndex();\n }\n\n private onRowSelection(row: WcsGridRow): void {\n if (this.selectionConfig === 'single') {\n this.rows.filter(r => r.uuid !== row.uuid).map(r => r.selected = false);\n }\n row.selected = !row.selected;\n if (this.selectionConfig !== 'single' || row.selected) {\n this.wcsGridSelectionChange.emit({\n selectedRows: this.selectedRows.map(row => this.wcsGridRowToWcsGridRowData(row)),\n changedRow: this.wcsGridRowToWcsGridRowData(row)\n });\n }\n this.rows = cloneDeep(this.rows);\n }\n\n private get selectedRows(): WcsGridRow[] {\n return this.rows.filter(r => r.selected);\n }\n\n private selectAllRows(): void {\n const rows = this.getRowsForCurrentPage();\n const selected = !this.allRowsAreSelected();\n rows.map(r => r.selected = selected);\n this.wcsGridAllSelectionChange.emit({rows: selected ? rows.map(row => this.wcsGridRowToWcsGridRowData(row)) : []});\n this.wcsGridSelectionChange.emit({ \n selectedRows: this.selectedRows.map(row => this.wcsGridRowToWcsGridRowData(row)),\n changedRow: 'allCheckbox'\n });\n this.rows = cloneDeep(this.rows);\n }\n\n private allRowsAreSelected(): boolean {\n const rows = this.getRowsForCurrentPage();\n return rows.length > 0 && rows.filter(row => row.selected).length === rows.length;\n }\n\n private getRowsForCurrentPage(): WcsGridRow[] {\n // When in server mode, the state exists outside the internal grid model, so we must rely on the DOM state\n if (!this.serverMode && this.paginationEl) {\n return this.rows.filter(row => row.page === this.paginationEl.currentPage);\n }\n return this.rows;\n }\n\n renderSelectionColumn(row: WcsGridRow, rowIndex: number): any {\n switch (this.selectionConfig) {\n case 'none':\n return;\n case 'single': \n return <td aria-colindex={this.atLeastOneColumnHidden() ? 1 : null}\n tabIndex={this.cursorPosition?.col === 0 && rowIndex + 1 === this.cursorPosition?.row ? 0 : -1}>\n <GridRadio checked={row.selected}\n row={row}\n rowIndex={rowIndex + 1}\n totalRows={this.rows.length}\n onClick={ (row) => {\n if (!row.selected) {\n this.onRowSelection(row)\n }\n }}/>\n </td>;\n case 'multiple': \n return <td aria-colindex={this.atLeastOneColumnHidden() ? 1 : null}\n tabIndex={this.cursorPosition?.col === 0 && rowIndex + 1 === this.cursorPosition?.row ? 0 : -1}>\n <wcs-checkbox tabIndex={-1}\n part=\"row-checkbox\"\n checked={row.selected} onWcsChange={this.onRowSelection.bind(this, row)}/>\n </td>;\n }\n }\n\n private getCellContent(row: WcsGridRow, cell: WcsGridCell): HTMLElement | HTMLElement[] | string | void {\n if (cell.formatter) {\n return cell.formatter(\n (h as unknown) as HyperFunc<VNode>,\n cell.column,\n this.wcsGridRowToWcsGridRowData(row)\n );\n }\n return cell.content;\n }\n\n /**\n * Returns the total number of columns\n * @private\n */\n private totalColumnCount() {\n if (!this.columns) {\n return 0;\n }\n return this.columns.length + (this.hasSelectionColumn() ? 1 : 0);\n }\n\n /**\n * Returns the total number of columns that are not hidden\n * @private\n */\n private totalDisplayedColumnCount() {\n return this.totalColumnCount() - this.columns?.filter(col => col.hidden).length ?? 0;\n }\n\n /**\n * Returns true if at least one column is hidden from the table\n * @private\n */\n private atLeastOneColumnHidden() {\n return this.totalDisplayedColumnCount() !== this.totalColumnCount();\n }\n \n render(): any {\n return (\n <Host>\n {\n <table role=\"grid\"\n ref={(el) => (this.nativeTable = el)}\n aria-rowcount={!this.loading && this.rows?.length}\n aria-colcount={!this.loading && this.totalDisplayedColumnCount()}\n {...this.inheritedAttributes}>\n <thead>\n <tr aria-rowindex=\"1\">\n {\n this.selectionConfig === 'none' ? ''\n : <th class=\"wcs-grid-selection-column\">\n {\n this.selectionConfig === 'single' ? '' :\n <wcs-checkbox tabIndex={this.cursorPosition?.col === 0\n && this.cursorPosition?.row === 0 ? 0 : -1}\n part=\"all-rows-checkbox\"\n checked={this.allRowsAreSelected()}\n onWcsChange={this.selectAllRows.bind(this)}/>\n }\n </th>\n }\n <slot name=\"grid-column\"></slot>\n </tr>\n </thead>\n <tbody>\n {\n this.loading\n ? <tr aria-busy=\"true\">\n <td colSpan={this.totalColumnCount()} class=\"loading\">\n <wcs-spinner></wcs-spinner>\n </td>\n </tr>\n : this.rows\n ?.filter(row => this.serverMode || !this.paginationEl || row.page === this.paginationEl.currentPage)\n .map((row, index) =>\n this.renderRow(row, index)\n )\n }\n </tbody>\n </table>\n }\n <slot name=\"grid-pagination\"></slot>\n </Host>\n );\n }\n\n /**\n * Returns the row with all mapped cells inside. \n * The aria-rowindex here starts at 2 because the header row starts at index 1. \n * @private\n */ \n private renderRow(row: WcsGridRow, rowIndex: number) {\n let hiddenColumnCount = 0;\n return <tr class={row.selected ? 'selected' : ''}\n part={this.rowCssPartsWithoutEmptyList(row)?.join(' ')}\n aria-selected={row.selected ? 'true' : null}\n aria-rowindex={rowIndex + 2}>\n {this.renderSelectionColumn(row, rowIndex)}\n {row.cells?.map((cell, cellIndex) => {\n if (cell.column.hidden) {\n hiddenColumnCount++;\n return;\n }\n const nonHiddenColumnIndex = cellIndex - hiddenColumnCount + 1 + (this.hasSelectionColumn() ? 1 : 0);\n const cursorIsOnCell = nonHiddenColumnIndex - 1 === this.cursorPosition?.col \n && rowIndex + 1 === this.cursorPosition?.row;\n return cell.column.customCells\n ? (<td tabIndex={cursorIsOnCell ? 0 : -1}\n aria-colindex={this.atLeastOneColumnHidden() ? nonHiddenColumnIndex : null}>\n <slot name={cell.column.id + '-' + get(row.data, this.rowIdPath)}/>\n </td>)\n : (<td tabIndex={cursorIsOnCell ? 0 : -1}\n aria-colindex={this.atLeastOneColumnHidden() ? nonHiddenColumnIndex : null}\n part={cell.column.path + '-column'}>{this.getCellContent(row, cell)}</td>)\n }\n )}\n </tr>;\n }\n \n private rowCssPartsWithoutEmptyList(row: WcsGridRow): string[] | null | undefined {\n const parts = this.rowCssPartsFn(row);\n return parts?.length === 0 ? null : parts;\n }\n}\n\n/**\n * Pour resize le tableau\n * https://www.brainbell.com/javascript/making-resizable-table-js.htmls\n *\n */\n"]}
|
|
1
|
+
{"version":3,"file":"grid.js","sourceRoot":"","sources":["../../../src/components/grid/grid.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EAGT,OAAO,EACP,KAAK,EAEL,WAAW,EACX,CAAC,EACD,IAAI,EACJ,MAAM,EAAE,MAAM,EACd,IAAI,EACJ,KAAK,EAEL,KAAK,EACR,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,mBAAmB,GAUtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAiC,MAAM,uBAAuB,CAAC;AACjG,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAQrG,MAAM,oBAAoB,GAAG,CAAC,OAAO,CAAC,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAMH,MAAM,OAAO,IAAI;;QAGL,wBAAmB,GAAyB,EAAE,CAAC;0BAKR,KAAK;;;+BAeF,MAAM;6BAInB,EAAE;;;6BAcA,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI;;;oBAMZ,EAAE;8BA0BsB,EAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC;;IAG9E,sBAAsB,CAAC,QAAoC;QACvD,8DAA8D;QAC9D,IAAI,CAAC,0BAA0B,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC;IAChF,CAAC;IAGD,YAAY,CAAC,QAAe;QACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAGD,6BAA6B,CAAC,QAAqB;QAC/C,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAGD,OAAO,CAAC,KAAiB;;QACrB,MAAA,IAAI,CAAC,iCAAiC,EAAE,0CAAE,KAAK,EAAE,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAGD,MAAM,CAAC,KAAiB;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,cAAc;;QAChB,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAC/E,MAAA,IAAI,CAAC,iCAAiC,EAAE,0CAAE,KAAK,EAAE,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,kBAAkB;QACd,OAAO,IAAI,CAAC,eAAe,KAAK,MAAM,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,iCAAiC;;QAC7B,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,eACpD,OAAA,IAAI,CAAC,GAAG,MAAK,MAAA,IAAI,CAAC,cAAc,0CAAE,GAAG,CAAA,IAAI,IAAI,CAAC,GAAG,MAAK,MAAA,IAAI,CAAC,cAAc,0CAAE,GAAG,CAAA,CAAA,EAAA,CAAC,0CAAE,EAAE,CAAC;QACxF,OAAO,IAAI,CAAC,kBAAkB,EAAE;YAC5B,CAAC,CAAC,MAAA,EAAE,CAAC,aAAa,CAAC,kCAAkC,CAAC,mCAAI,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;IACb,CAAC;IAED,kBAAkB,CAAC,UAAqC,EAAE,UAAqC;;QAC3F,IAAI,CAAC,cAAc,GAAG;YAClB,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC1D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;YACzG,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC;oBACzD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;SAC3G,CAAC;QAEF,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAErC,MAAA,IAAI,CAAC,iCAAiC,EAAE,0CAAE,KAAK,EAAE,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,6BAA6B;QACzB,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;YACtG,IAAI,CAAC,cAAc,GAAG;gBAClB,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;aACT,CAAA;QACL,CAAC;IACL,CAAC;IAGD,oBAAoB;QAChB,iIAAiI;QACjI,sHAAsH;QACtH,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,EAAE,CAAC,EAAG,GAAG,EAAE,CAAC,EAAE,CAAA;IAC7C,CAAC;IAGD,SAAS,CAAC,MAAqB;;QAC3B,IAAI,CAAA,MAAA,QAAQ,CAAC,aAAa,0CAAE,OAAO,MAAK,qBAAqB,EAAE,CAAC;YAC5D,OAAO;QACX,CAAC;QAED,IAAI,IAA+E,CAAC;QAEpF,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3B,KAAK,UAAU;gBACX,IAAI,GAAG,yBAAyB,CAAC;gBACjC,MAAM;YACV,KAAK,QAAQ;gBACT,IAAI,GAAG,uBAAuB,CAAC;gBAC/B,MAAM;YACV,KAAK,MAAM;gBACP,IAAI,GAAG,mBAAmB,CAAC;gBAC3B,MAAM;QACd,CAAC;QAED,MAAM,yBAAyB,GAAoC,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE3G,6FAA6F;QAC7F,8HAA8H;QAC9H,IAAI,yBAAyB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC5B,CAAC;QAED,KAAK,MAAM,uBAAuB,IAAI,yBAAyB,EAAE,CAAC;YAC9D,IAAI,CAAC,yCAAyC,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QACpF,CAAC;IACL,CAAC;IAED,yCAAyC,CAAC,uBAAsD,EAAE,KAAoB;QAClH,QAAQ,uBAAuB,CAAC,IAAI,EAAE,CAAC;YACnC,KAAK,WAAW;gBACZ,QAAQ,uBAAuB,CAAC,MAAM,EAAE,CAAC;oBACrC,KAAK,IAAI;wBACL,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC/B,MAAM;oBACV,KAAK,MAAM;wBACP,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC9B,MAAM;oBACV,KAAK,MAAM;wBACP,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC/B,MAAM;oBACV,KAAK,OAAO;wBACR,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC9B,MAAM;oBACV,KAAK,cAAc;wBACf,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;wBACpC,MAAM;oBACV,KAAK,aAAa;wBACd,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACnC,MAAM;oBACV,KAAK,eAAe;wBAChB,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC1C,MAAM;oBACV,KAAK,cAAc;wBACf,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;wBACxC,MAAM;oBACV;wBACI,MAAM;gBACd,CAAC;YACL,KAAK,WAAW;gBACZ,QAAQ,uBAAuB,CAAC,MAAM,EAAE,CAAC;oBACrC,KAAK,KAAK;wBACN,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;4BAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;wBAChE,CAAC;wBACD,MAAM;oBACV,KAAK,KAAK;wBACN,IAAI,CAAC,aAAa,EAAE,CAAC;wBACrB,MAAM;oBACV;wBACI,MAAM;gBACd,CAAC;gBACD,MAAM;YACV;gBACI,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAID,OAAO,CAAC,MAAkB;QACtB,MAAM,kBAAkB,GAAyB,MAAM,CAAC,YAAY,EAAE;aACjE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;aACxB,QAAQ,CAAE,CAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAyB,CAAC;QAEvE,IAAG,CAAC,kBAAkB;YAAE,OAAO,CAAC,iEAAiE;QAEjG,MAAM,iCAAiC,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,kBAAkB,CAAC,CAAC;QAElH,IAAI,CAAC,cAAc,GAAG;YAClB,GAAG,EAAE,iCAAiC,CAAC,GAAG;YAC1C,GAAG,EAAE,iCAAiC,CAAC,GAAG;SAC7C,CAAA;IACL,CAAC;IAEO,yBAAyB,CAAC,MAAmB;QACjD,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;YACvC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;oBAC5B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACpB,MAAM,CAAC,gCAAgC;gBAC3C,CAAC;YACL,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;YACvC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBACzC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACxB,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAEO,0BAA0B,CAAC,GAAe;QAC9C,OAAO,EAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAC,CAAC;IACpE,CAAC;IAEO,cAAc,CAAC,IAAW;QAC9B,MAAM,IAAI,GAAiB,EAAE,CAAC;QAC9B,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,4DAA4D;YAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAe;oBACpB,IAAI,EAAE,IAAI,EAAE;oBACZ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;oBACb,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,EAAE;iBACZ,CAAC;gBACF,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBAChC,MAAM,CAAC,cAAc,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpE,KAAK,EAAE,CAAC;oBACR,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;wBACX,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC;wBAClC,MAAM;wBACN,SAAS,EAAE,MAAM,CAAC,SAAS;qBAC9B,CAAC,CAAA;gBACN,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;IACL,CAAC;IAED,gBAAgB;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB;YACxC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAiC;YACnF,CAAC,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,CACtD,CAAC;IACN,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED;;;OAGG;IACK,WAAW,CAAC,kCAA2C;QAC3D,0DAA0D;QAC1D,8DAA8D;QAC9D,gFAAgF;QAChF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC;YAC3E,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YACD,kCAAkC,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;IAEO,0BAA0B,CAAC,OAAsD;QACrF,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC;IAChD,CAAC;IAEO,0BAA0B;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,0BAA0B,CAAoB,CAAC;QAChG,OAAO,OAAO,CAAC,gBAAgB,EAAuC,CAAC;IAC3E,CAAC;IAEO,8BAA8B;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,8BAA8B,CAAoB,CAAC;QACpG,OAAO,OAAO,CAAC,gBAAgB,EAA2C,CAAC;IAC/E,CAAC;IAED,IAAY,2BAA2B;QACnC,MAAM,YAAY,GAAiC,EAAE,CAAC;QACtD,oEAAoE;QACpE,IAAI,IAAI,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YACtC,YAAY,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC;gBAC1C,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;aACT,CAAC,CAAC;QACP,CAAC;QACD,IAAI,CAAC,0BAA0B,EAAE;aAC9B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;aAC1B,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACpB,YAAY,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC;gBACtC,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACnD,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC9D,YAAY,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,IAAI;gBACR,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBAC7D,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,yBAAyB,EAAE;aAChD,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACxB,CAAC;IAGD,sBAAsB,CAAC,KAAuD;QAC1E,2DAA2D;QAC3D,8DAA8D;QAC9D,iFAAiF;QACjF,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC3D,sCAAsC;QACtC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACrF,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,MAAgC;QAC3C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC3B,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACjH,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC3B,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE;gBACrB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBACzB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACpJ,CAAC,CAAC,CAAC;QACX,CAAC;IACL,CAAC;IAED;;OAEG;IACK,eAAe;;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,IAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,MAAK,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC;gBACjC,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;gBACnC,OAAO;YACX,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAChD,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAEvF,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC,gBAAgB,CAAC;YACpE,CAAC;iBAAM,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;gBAC5G,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAe,EAAE,KAAa,EAAE,EAAE,CAC5C,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAC5D,CAAC;YACF,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IAGD,4BAA4B;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAGD,mCAAmC,CAAC,KAAuD;QACvF,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,KAAM,KAAK,CAAC,MAAsB,CAAC,EAAE,EAAE,CAAC;YAC5F,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9B,CAAC;IACL,CAAC;IAEO,kBAAkB;QACtB,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAEO,cAAc,CAAC,GAAe;QAClC,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;QAC5E,CAAC;QACD,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC7B,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACpD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;gBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;gBAChF,UAAU,EAAE,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC;aACnD,CAAC,CAAC;QACP,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,IAAY,YAAY;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAEO,aAAa;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5C,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC;QACnH,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;YAChF,UAAU,EAAE,aAAa;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAEO,kBAAkB;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;IACtF,CAAC;IAEO,qBAAqB;QACzB,0GAA0G;QAC1G,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,qBAAqB,CAAC,GAAe,EAAE,QAAgB;;QACnD,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3B,KAAK,MAAM;gBACP,OAAO;YACX,KAAK,QAAQ;gBACT,OAAO,2BAAmB,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EACvD,QAAQ,EAAE,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,GAAG,MAAK,CAAC,IAAI,QAAQ,GAAG,CAAC,MAAK,MAAA,IAAI,CAAC,cAAc,0CAAE,GAAG,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrG,EAAC,SAAS,IAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,EACrB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,GAAG,CAAC,EACtB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAC3B,OAAO,EAAG,CAAC,GAAG,EAAE,EAAE;4BACd,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gCAChB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;4BAC5B,CAAC;wBACL,CAAC,GAAG,CACd,CAAC;YACV,KAAK,UAAU;gBACX,OAAO,2BAAmB,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EACvD,QAAQ,EAAE,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,GAAG,MAAK,CAAC,IAAI,QAAQ,GAAG,CAAC,MAAK,MAAA,IAAI,CAAC,cAAc,0CAAE,GAAG,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrG,oBAAc,QAAQ,EAAE,CAAC,CAAC,EACZ,IAAI,EAAC,cAAc,EACnB,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CACvF,CAAC;QACd,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,GAAe,EAAE,IAAiB;QACrD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,SAAS,CAChB,CAAiC,EAClC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CACvC,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;;OAGG;IACK,gBAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,CAAC,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;;OAGG;IACK,yBAAyB;;QAC7B,OAAO,MAAA,IAAI,CAAC,gBAAgB,EAAE,IAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAA,mCAAI,CAAC,CAAC;IACzF,CAAC;IAED;;;OAGG;IACK,sBAAsB;QAC1B,OAAO,IAAI,CAAC,yBAAyB,EAAE,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxE,CAAC;IAED,MAAM;;QACF,OAAO,CACL,EAAC,IAAI;YAEG,4EAAO,IAAI,EAAC,MAAM,EACX,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,mBACrB,CAAC,IAAI,CAAC,OAAO,KAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAA,mBAClC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,yBAAyB,EAAE,IAC5D,IAAI,CAAC,mBAAmB;gBAC/B;oBACA,4EAAkB,GAAG;wBAEb,IAAI,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;4BAClC,CAAC,CAAC,UAAI,KAAK,EAAC,2BAA2B,IAE/B,IAAI,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gCACtC,oBAAc,QAAQ,EAAE,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,GAAG,MAAK,CAAC;2CACzB,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,GAAG,MAAK,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD,IAAI,EAAC,mBAAmB,EACxB,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAClC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAEhE;wBAEX,6DAAM,IAAI,EAAC,aAAa,GAAQ,CAC/B,CACG;gBACR,gEAEI,IAAI,CAAC,OAAO;oBACV,CAAC,CAAC,uBAAc,MAAM;wBAClB,UAAI,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAC,SAAS;4BACjD,sBAA2B,CAC1B,CACJ;oBACL,CAAC,CAAC,MAAA,IAAI,CAAC,IAAI,0CACP,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,WAAW,EAClG,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAClB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAC3B,CAED,CACJ;YAEZ,6DAAM,IAAI,EAAC,iBAAiB,GAAQ,CACjC,CACR,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,SAAS,CAAC,GAAe,EAAE,QAAgB;;QAC/C,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,OAAO,UAAI,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EACrC,IAAI,EAAE,MAAA,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,0CAAE,IAAI,CAAC,GAAG,CAAC,mBACvC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,mBAC5B,QAAQ,GAAG,CAAC;YACjC,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,QAAQ,CAAC,EACzC,MAAA,GAAG,CAAC,KAAK;eAAE,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;;gBAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACrB,iBAAiB,EAAE,CAAC;oBACpB,OAAO;gBACX,CAAC;gBACD,MAAM,oBAAoB,GAAI,SAAS,GAAG,iBAAiB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtG,MAAM,cAAc,GAAG,oBAAoB,GAAG,CAAC,MAAK,MAAA,IAAI,CAAC,cAAc,0CAAE,GAAG,CAAA;uBACvE,QAAQ,GAAG,CAAC,MAAK,MAAA,IAAI,CAAC,cAAc,0CAAE,GAAG,CAAA,CAAC;gBAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW;oBAC1B,CAAC,CAAC,CAAC,UAAI,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAClB,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI;wBAC7E,YAAM,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAClE,CAAC;oBACN,CAAC,CAAC,CAAC,UAAI,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAClB,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,EAC1E,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,IAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAM,CAAC,CAAA;YACzF,CAAC,CACJ,CACA,CAAC;IACV,CAAC;IAEO,2BAA2B,CAAC,GAAe;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,MAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ;AAED;;;;GAIG","sourcesContent":["import {\n Component,\n ComponentDidLoad,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n forceUpdate,\n h,\n Host,\n Listen, Method,\n Prop,\n State,\n VNode,\n Watch\n} from '@stencil/core';\nimport {\n getSortOrderInteger,\n HyperFunc, RowCssPartsFn,\n WcsGridAllRowSelectedEventDetails,\n WcsGridCell,\n WcsGridColumnSortChangeEventDetails,\n WcsGridPaginationChangeEventDetails,\n WcsGridRow,\n WcsGridRowData,\n WcsGridSelectionConfig,\n WcsGridSelectionEventDetails,\n} from './grid-interface';\nimport { v4 as uuid } from 'uuid';\nimport { cloneDeep, get, isEqual } from 'lodash-es';\nimport { GridPagination } from '../grid-pagination/grid-pagination';\nimport { getActionForKeyboardEvent, KeyboardEventAssociatedAction } from \"./grid-keyboard-event\";\nimport { GridRadio } from \"./grid-radio\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\n\ninterface GridElementWithCoordinates {\n el: HTMLTableCellElement,\n row: number,\n col: number,\n}\n\nconst GRID_INHERITED_ATTRS = ['title'];\n\n/**\n * The grid component is a complex component used as an HTML table to display collections of data.\n *\n * @cssprop --wcs-grid-gap - Gap between grid cells (horizontal, vertical using `border-spacing` property)\n * @cssprop --wcs-grid-vertical-align - Vertical alignment of grid cells\n * @cssprop --wcs-grid-outline-color - Outline color for grid cells\n *\n * @cssprop --wcs-grid-cell-text-color - Text color of all grid cells\n * @cssprop --wcs-grid-cell-padding-horizontal - Horizontal padding of grid cells\n * @cssprop --wcs-grid-cell-padding-vertical - Vertical padding of grid cells\n * @cssprop --wcs-grid-cell-border-bottom - Bottom border of grid cells\n * @cssprop --wcs-grid-cell-separator-border - Separator border between grid cells\n * @cssprop --wcs-grid-first-cell-border-radius - Border radius of the first cell in a row\n * @cssprop --wcs-grid-last-cell-border-radius - Border radius of the last cell in a row\n *\n * @cssprop --wcs-grid-highlight-color - Background color for selected rows\n * @cssprop --wcs-grid-row-background-color - Background color of all rows\n * @cssprop --wcs-grid-row-odd-background-color - Background color of odd rows\n * @cssprop --wcs-grid-row-even-background-color - Background color of even rows\n *\n * @cssprop --wcs-grid-header-background-color-default - Default background color of the header\n * @cssprop --wcs-grid-header-background-color-hover - Background color of the header on hover\n * @cssprop --wcs-grid-header-background-color-press - Background color of the header on press\n * @cssprop --wcs-grid-header-text-color - Text color of the header\n * @cssprop --wcs-grid-header-font-weight - Font weight of the header\n * @cssprop --wcs-grid-header-font-size - Font size of the header\n * @cssprop --wcs-grid-header-line-height - Line height of the header\n * @cssprop --wcs-grid-header-padding-vertical - Vertical padding of the header\n * @cssprop --wcs-grid-header-padding-horizontal - Horizontal padding of the header\n * @cssprop --wcs-grid-header-border-left - Left border between header cells (default is none\n * @cssprop --wcs-grid-header-border-radius - Border radius of the header\n * @cssprop --wcs-grid-header-border-bottom - Bottom border of the header\n * @cssprop --wcs-grid-header-transition-duration - Transition duration of the header\n * @cssprop --wcs-grid-first-header-background-color - Background color of the first header cell\n * @cssprop --wcs-grid-first-header-border-radius - Border radius of the first header cell\n * @cssprop --wcs-grid-last-header-border-radius - Border radius of the last header cell\n * @cssprop --wcs-grid-column-selection-width - Width of the selection column (when selectionConfig is defined)\n * @cssprop --wcs-grid-header-sort-arrow-color-default - Color of the sort arrow in the header\n * @cssprop --wcs-grid-header-sort-arrow-color-hover - Color of the sort arrow in the header when hovered\n * \n * @csspart all-rows-checkbox - CSS part for the checkbox in the selection column that selects all rows\n * @csspart row-checkbox - CSS part for the checkbox of each row in the selection column\n * \n * @slot grid-column - The slot containing the column of the grid in the `<thead>`\n * @slot grid-pagination - The slot containing the pagination of the grid below the `<table>`\n *\n */\n@Component({\n tag: 'wcs-grid',\n styleUrls: ['grid.scss', 'grid-radio.scss'],\n shadow: true\n})\nexport class Grid implements ComponentInterface, ComponentDidLoad, MutableAriaAttribute {\n @Element() private el!: HTMLWcsGridElement;\n private nativeTable!: HTMLTableElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n /**\n * Manage sort and pagination with a backend server when set to `true`\n */\n @Prop({ reflect: true }) serverMode: boolean = false;\n /**\n * Contains the data to display in the table from a js object\n */\n @Prop() data: any[];\n /**\n * Flag to display a spinner during data loading\n */\n @Prop({ reflect: true }) loading: boolean;\n /**\n * Used to manage grid's row selection. \n * \"none\": no row can be selected. \n * \"multiple\": several rows can be selected. \n * \"single\": one row only can be selected. \n */\n @Prop() selectionConfig: WcsGridSelectionConfig = 'none';\n /**\n * Set the selected items (rows)\n */\n @Prop() selectedItems: any | any[] = [];\n /**\n * Automatically set by the component to reference the wcs-grid-pagination HTML element by its id.\n */\n @Prop() wcsGridPaginationId: string;\n /**\n * Name of the object's key that will be used to display the cells whose `keyValue` attribute matches to the\n * object's value for this key. Useful for custom cells.\n */\n @Prop() rowIdPath: string;\n /**\n * Function to add css parts to the grid rows, this allows you to customize the rows with css parts directly\n * in you're application stylesheet.\n */\n @Prop() rowCssPartsFn: RowCssPartsFn = (_) => null;\n @State() private columns: HTMLWcsGridColumnElement[];\n @State() private paginationEl: HTMLWcsGridPaginationElement;\n /**\n * Rows to display, contains user data and meta data\n */\n @State() private rows: WcsGridRow[] = [];\n /**\n * Event emitted when a row is selected or unselected\n */\n @Event() wcsGridSelectionChange!: EventEmitter<WcsGridSelectionEventDetails>;\n /**\n * Event emitted when all rows are selected or unselected\n */\n @Event() wcsGridAllSelectionChange!: EventEmitter<WcsGridAllRowSelectedEventDetails>;\n /**\n * Event emitted when the grid has focus.\n */\n @Event() wcsFocus!: EventEmitter<FocusEvent>;\n /**\n * Event emitted when the grid loses focus.\n */\n @Event() wcsBlur!: EventEmitter<FocusEvent>;\n \n /**\n * Used to track the focus position in the grid for keyboard navigation. \n * Header row : index 0 \n * First column :\n * - index 1 if selection mode multiple or single\n * - index 0 if no selection mode\n * Default position : col 0, row 1\n */\n @State() private cursorPosition: {col: number, row: number} = {col: 0, row: 1};\n \n @Watch('cursorPosition')\n onCursorPositionChange(newValue: {col: number, row: number}): void {\n // Notify all grid columns that the cursorPosition has changed\n this.getGridColumnsFromTemplate().forEach(g => g.cursorPosition = newValue);\n }\n \n @Watch('data')\n onDataChange(newValue: any[]): void {\n this.updateGridRows(newValue);\n this.refreshSort(false);\n this.updatePageIndex();\n }\n\n @Watch('selectedItems')\n onSelectedItemsPropertyChange(newValue: any | any[]) {\n this.updateSelectionWithValues(newValue);\n }\n \n @Listen('focus')\n onFocus(event: FocusEvent) {\n this.getElementToFocusAtCursorPosition()?.focus();\n this.wcsFocus.emit(event);\n }\n\n @Listen('blur')\n onBlur(event: FocusEvent) {\n this.wcsBlur.emit(event);\n }\n\n /**\n * Set focus on the first cell of the grid\n */\n @Method()\n async focusFirstCell() {\n this.cursorPosition = { col: this.selectionConfig === 'none' ? 0 : 1, row: 1 };\n this.getElementToFocusAtCursorPosition()?.focus();\n }\n\n /**\n * If selectionConfig is different from `none`, that means that an extra column for radio or checkbox is rendered\n * in the table.\n */\n hasSelectionColumn() {\n return this.selectionConfig !== 'none';\n }\n \n /**\n * Returns the element to focus at the current cursor position : it can be a cell (td, th) to focus or a nested\n * checkbox / radio element if the selection mode is single or multiple\n */\n getElementToFocusAtCursorPosition(): HTMLTableCellElement | HTMLWcsCheckboxElement | HTMLInputElement {\n const el = this.gridElementsWithCoordinates.find(cell =>\n cell.col === this.cursorPosition?.col && cell.row === this.cursorPosition?.row)?.el;\n return this.hasSelectionColumn()\n ? el.querySelector('wcs-checkbox,input[type=\"radio\"]') ?? el\n : el;\n }\n \n moveCursorPosition(directionX: number | 'first' | 'last', directionY: number | 'first' | 'last') {\n this.cursorPosition = {\n col: directionX === 'first' ? 0 :\n directionX === 'last' ? this.totalDisplayedColumnCount() - 1 :\n Math.min(Math.max(this.cursorPosition.col + directionX, 0), this.totalDisplayedColumnCount() - 1),\n row: directionY === 'first' ? 0 :\n directionY === 'last' ? this.getRowsForCurrentPage().length :\n Math.min(Math.max(this.cursorPosition.row + directionY, 0), this.getRowsForCurrentPage().length)\n };\n \n this.handleCursorPositionOnEmptyTh();\n \n this.getElementToFocusAtCursorPosition()?.focus();\n }\n\n /**\n * When the grid has selectionConfig single, an empty th appears at col=0, row=0.\n * It should not be focusable so the cursor navigates to col=1, row=0 instead.\n */\n handleCursorPositionOnEmptyTh() {\n if (this.selectionConfig === 'single' && this.cursorPosition.col === 0 && this.cursorPosition.row === 0) {\n this.cursorPosition = {\n col: 1,\n row: 0\n }\n }\n }\n\n @Listen('wcsHiddenChange')\n onHiddenColumnChange(): void {\n // We use forceUpdate because the fact of hiding a column or not does not modify the internal structure of the grid (WcsGridRow).\n // Hide a column only impacts the way it is rendered but the grid-column remains in the dom and in our internal model.\n forceUpdate(this);\n this.cursorPosition = { col: 0 , row: 1 }\n }\n\n @Listen('keydown')\n onKeyDown(_event: KeyboardEvent) {\n if (document.activeElement?.tagName === 'WCS-GRID-PAGINATION') {\n return;\n }\n \n let type: 'grid_no_selection' | 'grid_selection_single' | 'grid_selection_multiple';\n \n switch (this.selectionConfig) {\n case \"multiple\":\n type = 'grid_selection_multiple';\n break;\n case \"single\":\n type = 'grid_selection_single';\n break;\n case \"none\":\n type = 'grid_no_selection';\n break;\n }\n\n const actionsFromKeyboardEvents: KeyboardEventAssociatedAction[] = getActionForKeyboardEvent(_event, type);\n\n // If we have at least one associated actions, we prevent the default behavior of the event. \n // Except if the action is a focus move (we have to handle the preventDefault behavior ourselves in the action implementation)\n if (actionsFromKeyboardEvents.length != 0) {\n _event.preventDefault();\n }\n\n for (const actionFromKeyboardEvent of actionsFromKeyboardEvents) {\n this.doActionFromKeyboardEventAssociatedAction(actionFromKeyboardEvent, _event);\n }\n }\n\n doActionFromKeyboardEventAssociatedAction(actionFromKeyboardEvent: KeyboardEventAssociatedAction, event: KeyboardEvent) {\n switch (actionFromKeyboardEvent.kind) {\n case \"FocusCell\":\n switch (actionFromKeyboardEvent.target) {\n case \"up\":\n this.moveCursorPosition(0, -1);\n break;\n case \"down\":\n this.moveCursorPosition(0, 1);\n break;\n case \"left\":\n this.moveCursorPosition(-1, 0);\n break;\n case \"right\":\n this.moveCursorPosition(1, 0);\n break;\n case \"first_of_row\":\n this.moveCursorPosition('first', 0);\n break;\n case \"last_of_row\":\n this.moveCursorPosition('last', 0);\n break;\n case \"first_of_grid\":\n this.moveCursorPosition('first', 'first');\n break;\n case \"last_of_grid\":\n this.moveCursorPosition('last', 'last');\n break;\n default:\n break;\n }\n case \"SelectRow\":\n switch (actionFromKeyboardEvent.target) {\n case \"one\":\n event.preventDefault();\n if (this.cursorPosition.row > 0) {\n this.onRowSelection(this.rows[this.cursorPosition.row - 1]);\n }\n break;\n case \"all\":\n this.selectAllRows();\n break;\n default:\n break;\n }\n break;\n default:\n throw new Error(\"Internal error\");\n }\n }\n \n \n @Listen('mousedown')\n onClick(_event: MouseEvent) {\n const clickedGridElement: HTMLTableCellElement = _event.composedPath()\n .filter(x => ['TD', 'TH']\n .includes((x as HTMLElement).nodeName))[0] as HTMLTableCellElement;\n \n if(!clickedGridElement) return; // it can be the grid pagination node, we don't want to handle it\n \n const clickedGridElementWithCoordinates = this.gridElementsWithCoordinates.find(e => e.el === clickedGridElement);\n \n this.cursorPosition = {\n col: clickedGridElementWithCoordinates.col,\n row: clickedGridElementWithCoordinates.row,\n }\n }\n\n private updateSelectionWithValues(values: any | any[]) {\n if (this.selectionConfig === 'single') {\n this.rows.map(r => r.selected = false);\n for (const row of this.rows) {\n if (isEqual(row.data, values)) {\n row.selected = true;\n break; // only one line can be selected\n }\n }\n } else if (this.selectionConfig === 'multiple') {\n this.rows.map(r => r.selected = false);\n for (const row of this.rows) {\n if (values.find(x => isEqual(x, row.data))) {\n row.selected = true;\n }\n }\n }\n this.rows = cloneDeep(this.rows);\n }\n\n private wcsGridRowToWcsGridRowData(row: WcsGridRow): WcsGridRowData {\n return {selected: row.selected, page: row.page, data: row.data};\n }\n\n private updateGridRows(data: any[]): void {\n const rows: WcsGridRow[] = [];\n if (data && this.columns) {\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < data.length; i++) {\n const row: WcsGridRow = {\n uuid: uuid(),\n data: data[i],\n selected: false,\n cells: []\n };\n let index = 0;\n for (const column of this.columns) {\n column.columnPosition = index + (this.hasSelectionColumn() ? 1 : 0);\n index++;\n row.cells.push({\n content: get(data[i], column.path),\n column,\n formatter: column.formatter\n })\n }\n rows.push(row);\n }\n this.rows = rows;\n }\n }\n\n componentDidLoad(): void {\n this.columns = this.getGridColumnsFromTemplate();\n this.paginationEl = this.wcsGridPaginationId\n ? document.getElementById(this.wcsGridPaginationId) as HTMLWcsGridPaginationElement\n : this.getGridPaginationsFromTemplate()[0];\n this.updateGridRows(this.data);\n if (this.selectedItems) {\n this.updateSelectionWithValues(this.selectedItems);\n }\n this.refreshSort(true);\n this.updatePageIndex();\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, GRID_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeTable, attr, value);\n }\n\n /**\n * Handle existing column's filters (defined before the grid is instantiated)\n * @private\n */\n private refreshSort(refreshOthersColumnsSortOrderState: boolean) {\n //fixme: why the column property can be null or undefined?\n // Explanation: https://stenciljs.com/docs/component-lifecycle\n // The @watch can be called before the componentDidLoad() which sets the columns\n if (this.columns) {\n const [first, ...other] = this.columns.filter(c => c.sortOrder !== 'none');\n if (first && !this.serverMode) {\n this.sortBy(first);\n }\n refreshOthersColumnsSortOrderState && this.disableSortOrderForColumns(other);\n }\n }\n\n private disableSortOrderForColumns(columns: HTMLWcsGridColumnElement[] | null | undefined): void {\n columns?.forEach(c => c.sortOrder = 'none');\n }\n\n private getGridColumnsFromTemplate(): HTMLWcsGridColumnElement[] {\n const slotted = this.el.shadowRoot.querySelector('slot[name=\"grid-column\"]') as HTMLSlotElement;\n return slotted.assignedElements() as any as HTMLWcsGridColumnElement[];\n }\n\n private getGridPaginationsFromTemplate(): HTMLWcsGridPaginationElement[] {\n const slotted = this.el.shadowRoot.querySelector('slot[name=\"grid-pagination\"]') as HTMLSlotElement;\n return slotted.assignedElements() as any as HTMLWcsGridPaginationElement[];\n }\n \n private get gridElementsWithCoordinates(): GridElementWithCoordinates[] {\n const gridElements: GridElementWithCoordinates[] = [];\n // If selection multiple, the first cell should be added to the list\n if (this.selectionConfig === 'multiple') {\n gridElements.push({\n el: this.el.shadowRoot.querySelector('th'),\n row: 0,\n col: 0\n });\n }\n this.getGridColumnsFromTemplate()\n .filter(col => !col.hidden)\n .forEach((col, index) => {\n gridElements.push({\n el: col.shadowRoot.querySelector('th'),\n row: 0,\n col: index + (this.hasSelectionColumn() ? 1 : 0),\n });\n });\n this.el.shadowRoot.querySelectorAll('td').forEach((cell, index) => {\n gridElements.push({\n el: cell,\n row: 1 + Math.floor(index / this.totalDisplayedColumnCount()),\n col: index % this.totalDisplayedColumnCount(),\n });\n });\n \n return gridElements;\n }\n\n @Listen('wcsSortChange')\n sortChangeEventHandler(event: CustomEvent<WcsGridColumnSortChangeEventDetails>): void {\n // fixme: why the column property can be null or undefined?\n // Explanation: https://stenciljs.com/docs/component-lifecycle\n // The @Listen can be called before the componentDidLoad() which sets the columns\n if (event.detail.order === 'none' || !this.columns) return;\n // We keep only one active sort column\n this.disableSortOrderForColumns(this.columns.filter(c => c !== event.detail.column));\n if (this.serverMode) return;\n this.sortBy(event.detail.column);\n this.updatePageIndex();\n }\n\n /**\n * Sorts the grid rows according to the given column's configuration\n * @param column Column from which to extract the sorting configuration\n * @private\n */\n private sortBy(column: HTMLWcsGridColumnElement) {\n if (column.sortFn) {\n this.rows = cloneDeep(this.rows)\n .sort((a: any, b: any) => column.sortFn(a.data, b.data, column) * getSortOrderInteger(column.sortOrder));\n } else {\n this.rows = cloneDeep(this.rows)\n .sort((a: any, b: any) => {\n const path = column.path;\n return ((get(a.data, path) < get(b.data, path)) ? -1 : (get(a.data, path) > get(b.data, path)) ? 1 : 0) * getSortOrderInteger(column.sortOrder);\n });\n }\n }\n\n /**\n * Update the page's number of all rows\n */\n private updatePageIndex(): void {\n if (!this.serverMode && this.paginationEl) {\n if(!this.data || this.data?.length === 0) {\n this.paginationEl.itemsCount = 0;\n this.paginationEl.pageCount = 0;\n this.paginationEl.currentPage = -1;\n return;\n }\n\n this.paginationEl.itemsCount = this.data.length;\n this.paginationEl.pageCount = Math.ceil(this.data.length / this.paginationEl.pageSize);\n\n if (this.paginationEl.pageCount <= 1) {\n this.paginationEl.currentPage = GridPagination.INDEX_FIRST_PAGE;\n } else if (this.paginationEl.pageCount > 0 && this.paginationEl.currentPage + 1 > this.paginationEl.pageCount) {\n this.paginationEl.currentPage = this.paginationEl.pageCount - 1;\n }\n\n const rows = cloneDeep(this.rows);\n rows.forEach((row: WcsGridRow, index: number) =>\n row.page = Math.floor(index / this.paginationEl.pageSize)\n );\n this.rows = [...rows];\n }\n }\n\n @Listen('wcsGridPaginationChange')\n paginationChangeEventHandler(): void {\n this.onPaginationChange();\n }\n\n @Listen('wcsGridPaginationChange', {target: 'window'})\n paginationChangeEventHandlerOutside(event: CustomEvent<WcsGridPaginationChangeEventDetails>): void {\n if (this.wcsGridPaginationId && this.wcsGridPaginationId === (event.target as HTMLElement).id) {\n this.onPaginationChange();\n }\n }\n\n private onPaginationChange(): void {\n if (this.serverMode) return;\n this.updatePageIndex();\n }\n\n private onRowSelection(row: WcsGridRow): void {\n if (this.selectionConfig === 'single') {\n this.rows.filter(r => r.uuid !== row.uuid).map(r => r.selected = false);\n }\n row.selected = !row.selected;\n if (this.selectionConfig !== 'single' || row.selected) {\n this.wcsGridSelectionChange.emit({\n selectedRows: this.selectedRows.map(row => this.wcsGridRowToWcsGridRowData(row)),\n changedRow: this.wcsGridRowToWcsGridRowData(row)\n });\n }\n this.rows = cloneDeep(this.rows);\n }\n\n private get selectedRows(): WcsGridRow[] {\n return this.rows.filter(r => r.selected);\n }\n\n private selectAllRows(): void {\n const rows = this.getRowsForCurrentPage();\n const selected = !this.allRowsAreSelected();\n rows.map(r => r.selected = selected);\n this.wcsGridAllSelectionChange.emit({rows: selected ? rows.map(row => this.wcsGridRowToWcsGridRowData(row)) : []});\n this.wcsGridSelectionChange.emit({ \n selectedRows: this.selectedRows.map(row => this.wcsGridRowToWcsGridRowData(row)),\n changedRow: 'allCheckbox'\n });\n this.rows = cloneDeep(this.rows);\n }\n\n private allRowsAreSelected(): boolean {\n const rows = this.getRowsForCurrentPage();\n return rows.length > 0 && rows.filter(row => row.selected).length === rows.length;\n }\n\n private getRowsForCurrentPage(): WcsGridRow[] {\n // When in server mode, the state exists outside the internal grid model, so we must rely on the DOM state\n if (!this.serverMode && this.paginationEl) {\n return this.rows.filter(row => row.page === this.paginationEl.currentPage);\n }\n return this.rows;\n }\n\n renderSelectionColumn(row: WcsGridRow, rowIndex: number): any {\n switch (this.selectionConfig) {\n case 'none':\n return;\n case 'single': \n return <td aria-colindex={this.atLeastOneColumnHidden() ? 1 : null}\n tabIndex={this.cursorPosition?.col === 0 && rowIndex + 1 === this.cursorPosition?.row ? 0 : -1}>\n <GridRadio checked={row.selected}\n row={row}\n rowIndex={rowIndex + 1}\n totalRows={this.rows.length}\n onClick={ (row) => {\n if (!row.selected) {\n this.onRowSelection(row)\n }\n }}/>\n </td>;\n case 'multiple': \n return <td aria-colindex={this.atLeastOneColumnHidden() ? 1 : null}\n tabIndex={this.cursorPosition?.col === 0 && rowIndex + 1 === this.cursorPosition?.row ? 0 : -1}>\n <wcs-checkbox tabIndex={-1}\n part=\"row-checkbox\"\n checked={row.selected} onWcsChange={this.onRowSelection.bind(this, row)}/>\n </td>;\n }\n }\n\n private getCellContent(row: WcsGridRow, cell: WcsGridCell): HTMLElement | HTMLElement[] | string | void {\n if (cell.formatter) {\n return cell.formatter(\n (h as unknown) as HyperFunc<VNode>,\n cell.column,\n this.wcsGridRowToWcsGridRowData(row)\n );\n }\n return cell.content;\n }\n\n /**\n * Returns the total number of columns\n * @private\n */\n private totalColumnCount() {\n if (!this.columns) {\n return 0;\n }\n return this.columns.length + (this.hasSelectionColumn() ? 1 : 0);\n }\n\n /**\n * Returns the total number of columns that are not hidden\n * @private\n */\n private totalDisplayedColumnCount() {\n return this.totalColumnCount() - this.columns?.filter(col => col.hidden).length ?? 0;\n }\n\n /**\n * Returns true if at least one column is hidden from the table\n * @private\n */\n private atLeastOneColumnHidden() {\n return this.totalDisplayedColumnCount() !== this.totalColumnCount();\n }\n \n render(): any {\n return (\n <Host>\n {\n <table role=\"grid\"\n ref={(el) => (this.nativeTable = el)}\n aria-rowcount={!this.loading && this.rows?.length}\n aria-colcount={!this.loading && this.totalDisplayedColumnCount()}\n {...this.inheritedAttributes}>\n <thead>\n <tr aria-rowindex=\"1\">\n {\n this.selectionConfig === 'none' ? ''\n : <th class=\"wcs-grid-selection-column\">\n {\n this.selectionConfig === 'single' ? '' :\n <wcs-checkbox tabIndex={this.cursorPosition?.col === 0\n && this.cursorPosition?.row === 0 ? 0 : -1}\n part=\"all-rows-checkbox\"\n checked={this.allRowsAreSelected()}\n onWcsChange={this.selectAllRows.bind(this)}/>\n }\n </th>\n }\n <slot name=\"grid-column\"></slot>\n </tr>\n </thead>\n <tbody>\n {\n this.loading\n ? <tr aria-busy=\"true\">\n <td colSpan={this.totalColumnCount()} class=\"loading\">\n <wcs-spinner></wcs-spinner>\n </td>\n </tr>\n : this.rows\n ?.filter(row => this.serverMode || !this.paginationEl || row.page === this.paginationEl.currentPage)\n .map((row, index) =>\n this.renderRow(row, index)\n )\n }\n </tbody>\n </table>\n }\n <slot name=\"grid-pagination\"></slot>\n </Host>\n );\n }\n\n /**\n * Returns the row with all mapped cells inside. \n * The aria-rowindex here starts at 2 because the header row starts at index 1. \n * @private\n */ \n private renderRow(row: WcsGridRow, rowIndex: number) {\n let hiddenColumnCount = 0;\n return <tr class={row.selected ? 'selected' : ''}\n part={this.rowCssPartsWithoutEmptyList(row)?.join(' ')}\n aria-selected={row.selected ? 'true' : null}\n aria-rowindex={rowIndex + 2}>\n {this.renderSelectionColumn(row, rowIndex)}\n {row.cells?.map((cell, cellIndex) => {\n if (cell.column.hidden) {\n hiddenColumnCount++;\n return;\n }\n const nonHiddenColumnIndex = cellIndex - hiddenColumnCount + 1 + (this.hasSelectionColumn() ? 1 : 0);\n const cursorIsOnCell = nonHiddenColumnIndex - 1 === this.cursorPosition?.col \n && rowIndex + 1 === this.cursorPosition?.row;\n return cell.column.customCells\n ? (<td tabIndex={cursorIsOnCell ? 0 : -1}\n aria-colindex={this.atLeastOneColumnHidden() ? nonHiddenColumnIndex : null}>\n <slot name={cell.column.id + '-' + get(row.data, this.rowIdPath)}/>\n </td>)\n : (<td tabIndex={cursorIsOnCell ? 0 : -1}\n aria-colindex={this.atLeastOneColumnHidden() ? nonHiddenColumnIndex : null}\n part={cell.column.path + '-column'}>{this.getCellContent(row, cell)}</td>)\n }\n )}\n </tr>;\n }\n \n private rowCssPartsWithoutEmptyList(row: WcsGridRow): string[] | null | undefined {\n const parts = this.rowCssPartsFn(row);\n return parts?.length === 0 ? null : parts;\n }\n}\n\n/**\n * Pour resize le tableau\n * https://www.brainbell.com/javascript/making-resizable-table-js.htmls\n *\n */\n"]}
|
|
@@ -69,7 +69,7 @@ export class GridColumn {
|
|
|
69
69
|
}
|
|
70
70
|
render() {
|
|
71
71
|
const ButtonOrDiv = this.getTagName();
|
|
72
|
-
return (h(Host, { key: '
|
|
72
|
+
return (h(Host, { key: '118b343bd6403270ae60ec7859ba56bea98c6aa1', slot: "grid-column" }, h("th", Object.assign({ key: '61815f030b8b3b5ceff187bf264a86d03fa8a3bd', style: { width: this.width }, class: this.sort ? 'pointer' : '', tabIndex: this.sort ? -1 : this.getTabIndex(), scope: "col", onClick: this.onSortClick.bind(this), onKeyDown: this.handleSortKeyDown.bind(this), onFocus: this.delegateFocusToButton.bind(this), "aria-sort": this.sort ? this.getSortOrderForAriaSort(this.sortOrder) : null, ref: (el) => (this.nativeTh = el) }, this.inheritedAttributes), h(ButtonOrDiv, { key: '5894a5ca7af78e40b6307a290707090f974ef652', class: "grid-column-th-content", ref: (el) => this.buttonOrDiv = el, tabIndex: this.sort ? this.getTabIndex() : -1 }, h("span", { key: '4bd49d08cea2f0892ae0e28f20cf2fc982345f9e' }, this.name), this.sort ? h("div", { class: "sort-arrow-container" }, h(GridSortArrow, { state: this.sortOrder })) : ''))));
|
|
73
73
|
}
|
|
74
74
|
onSortClick() {
|
|
75
75
|
if (!this.sort)
|
|
@@ -8,7 +8,7 @@ export class GridCustomCell {
|
|
|
8
8
|
this.rowId = undefined;
|
|
9
9
|
}
|
|
10
10
|
render() {
|
|
11
|
-
return (h(Host, { key: '
|
|
11
|
+
return (h(Host, { key: 'aac258f291f690ca8e124414d265f5fec7fc6a56', slot: this.columnId + '-' + this.rowId }, h("slot", { key: '7371fc04b30f46ada2ae94c8b4c64d6e0aa07789' })));
|
|
12
12
|
}
|
|
13
13
|
static get is() { return "wcs-grid-custom-cell"; }
|
|
14
14
|
static get encapsulation() { return "shadow"; }
|
|
@@ -97,7 +97,7 @@ export class GridPagination {
|
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
99
|
render() {
|
|
100
|
-
return (h(Host, { key: '
|
|
100
|
+
return (h(Host, { key: '2b66040862ae88efc9c2fdf69f4b6398a1467765', slot: "grid-pagination" }, h("div", { key: '26ad3a0408a18669e6edef534de9056f6b7b438a', class: "container" }, h("div", { key: '7160d82226cbc902028d1ff3456e110ba1930907', class: "page-size" }, h("wcs-select", { key: '8eabadf8c1d750f47998ef8bc58764ec94ca8efc', placeholder: "El\u00E9ments par page", class: "available-page-sizes", "aria-labelledby": "elements-per-page-number elements-per-page-text", value: this.pageSize, onWcsChange: this.onChangePageSize.bind(this) }, this.availablePageSizes.map((pageSize) => h("wcs-select-option", { value: pageSize }, pageSize))), h("span", { key: 'a02dbcb0b3150112ce68697fa7e6e596613fdbbf', id: "elements-per-page-number", hidden: true }, this.pageSize), h("span", { key: '9e4676f3042fb8199a4ecb7ae9d49a492b22e6c6', id: "elements-per-page-text" }, h("slot", { key: '95635bcbe8251327916722cbac7da2d02192d00d', name: "elements-per-page-text" }, h("span", { key: '7e2ec062a42d983c0def5cbaf3799e37d51387b1' }, " \u00E9l\u00E9ments par page")))), h("div", { key: '06310a17ab65d3904715263b755d8293f60963bc', class: "items-count" }, h("p", { key: '8692ce9d64ef8af6eadea566367212d2f627e4a2' }, this.itemsCount, h("slot", { key: 'a449b2752bf712f34f2f4692331db98cac24e425', name: "items-count-text" }, h("span", { key: 'eb8f58c0b822fc56113f5674ec5f84d9ec9783fe' }, " \u00E9l\u00E9ments")))), h("nav", Object.assign({ key: '5cde096a375644a4a5282060006cddcf87cbee06', "aria-label": "pagination", ref: (el) => (this.nativeNav = el) }, this.inheritedAttributes), h("ul", { key: '1adac702212d51f51790fea4cc7fc237a90d2a1c', class: "page-management" }, h("li", { key: '9b11e07954ea7ee9a11f35acfcb634ce803c3ec3', class: "pagination-arrow", onClick: this.firstPage.bind(this) }, h(GridPaginationArrow, { key: '3ad79b51e5a21c91767d60c5d79016de378054c1', active: this.canGoToPreviousPage(), order: "previous", double: true })), h("li", { key: 'd8d56d81054b3487acc4aeabe7dca35e07004e8d', class: "pagination-arrow", onClick: this.previousPage.bind(this) }, h(GridPaginationArrow, { key: '47489f5211613cb9ff49a5f91cccd5baa2cd1b81', active: this.canGoToPreviousPage(), order: "previous" })), h("li", { key: '8bef90ad2eb8fca1161fdfead7193d64db263754', class: "pagination-counter" }, h("span", { key: '360f57f5ac09f4a86f2bb452651b2157f32fcaea', "aria-label": `Page ${this.currentPage + 1} sur ${this.pageCount}`, "aria-current": "page" }, this.currentPage + 1, " / ", this.pageCount)), h("li", { key: '31b214923f3e8c91b20948bd324e3ab9246df335', class: "pagination-arrow", onClick: this.nextPage.bind(this) }, h(GridPaginationArrow, { key: '03a73099f418ca3518bce9a19244d0ebf31c4b2c', active: this.canGoToNextPage(), order: "next" })), h("li", { key: '92f0c159253ec4a1d7337e87329d95cd15b280e4', class: "pagination-arrow", onClick: this.lastPage.bind(this) }, h(GridPaginationArrow, { key: '6c390af9e0b7a15e6f6fafaa6a6d62adda28b5b9', active: this.canGoToNextPage(), order: "next", double: true })))))));
|
|
101
101
|
}
|
|
102
102
|
static get is() { return "wcs-grid-pagination"; }
|
|
103
103
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-pagination.js","sourceRoot":"","sources":["../../../src/components/grid-pagination/grid-pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface, Element,\n Event, EventEmitter,\n h,\n Host, Method,\n Prop\n} from '@stencil/core';\nimport {\n WcsGridPaginationChangeEventDetails\n} from '../grid/grid-interface';\nimport { SelectChangeEventDetail } from '../select/select-interface';\nimport { GridPaginationArrow } from './grid-pagination-arrow';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\n\nconst GRID_PAGINATION_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * The grid pagination is a subcomponent of `wcs-grid`, slotted in `grid-pagination` under the `<table>` element.\n * \n * @cssprop --wcs-grid-pagination-color - Text color of the grid pagination\n * @cssprop --wcs-grid-pagination-font-size - Font-size of the grid pagination\n * @cssprop --wcs-grid-pagination-font-weight - Font-weight of the grid pagination\n * @cssprop --wcs-grid-pagination-gap - Gap between the page size, number of elements and page management\n * @cssprop --wcs-grid-pagination-page-size-gap - Gap between the select and the text within the page size container\n * @cssprop --wcs-grid-pagination-counter-gap - Gap within the page management counter\n * @cssprop --wcs-grid-pagination-margin-top - Margin between the grid and the pagination\n * @cssprop --wcs-grid-pagination-arrow-color-inactive - Color of the inactive arrow\n * @cssprop --wcs-grid-pagination-arrow-color-active - Color of the active arrow\n * \n * @slot elements-per-page-text - Text following the page size select. Default text is \" éléments par page\". You may want to add a non-breaking space before the text to separate it from the number.\n * @slot items-count-text - Text following the number of elements. Default text is \" éléments\". You may want to add a non-breaking space before the text to separate it from the number.\n */\n@Component({\n tag: 'wcs-grid-pagination',\n styleUrl: 'grid-pagination.scss',\n shadow: true\n})\nexport class GridPagination implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeNav!: HTMLElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n static readonly INDEX_FIRST_PAGE: number = 0;\n /**\n * Set the available page sizes in the pagination dropdown on the left.\n */\n @Prop() availablePageSizes: number[] = [10, 20, 50];\n /**\n * The current page of the pagination. First page starts at index 0.\n */\n @Prop({mutable: true}) currentPage: number = GridPagination.INDEX_FIRST_PAGE;\n /**\n * Maximum number of elements shown per page. \n * Default is the first value of `availablePageSizes`.\n */\n @Prop() pageSize: number = this.availablePageSizes[0];\n /**\n * Total elements in the grid. \n * - **Grid in `Server mode`** : You have to set `itemsCount` = your total data length. \n * - **Grid not in Server mode** : Do not set it manually : itemsCount is set and updated every pagination refresh.\n */\n @Prop() itemsCount: number = 0;\n /**\n * Max number of pages. \n * - **Grid in `Server mode`** : You have to set `pageCount` = `itemsCount` divided by `pageSize`. \n * - **Grid not in Server mode** : Do not set it manually : pageCount is set and updated every pagination refresh.\n */\n @Prop() pageCount: number = 1;\n /**\n * Event emitted when the pagination changes.\n */\n @Event() wcsGridPaginationChange!: EventEmitter<WcsGridPaginationChangeEventDetails>;\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, GRID_PAGINATION_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeNav, attr, value);\n }\n \n private getWcsGrid(): HTMLWcsGridElement | undefined {\n return this.el.parentElement.tagName === 'WCS-GRID' ? this.el.parentElement as HTMLWcsGridElement : undefined;\n }\n\n private lastPage(): void {\n this.currentPage = this.pageCount - 1;\n this.emitPaginationChange();\n this.focusFirstGridCell();\n }\n\n private nextPage(): void {\n if (this.canGoToNextPage()) {\n this.currentPage++;\n this.emitPaginationChange();\n this.focusFirstGridCell();\n }\n }\n\n private canGoToNextPage(): boolean {\n return this.currentPage + 1 < this.pageCount;\n }\n\n private previousPage(): void {\n if (this.canGoToPreviousPage()) {\n this.currentPage--;\n this.emitPaginationChange();\n this.focusFirstGridCell();\n }\n }\n\n private canGoToPreviousPage(): boolean {\n return this.currentPage > 0;\n }\n\n private firstPage(): void {\n this.currentPage = 0;\n this.emitPaginationChange();\n this.focusFirstGridCell();\n }\n\n private onChangePageSize(event: CustomEvent<SelectChangeEventDetail>): void {\n this.pageSize = event.detail.value;\n if (this.currentPage + 1 > this.pageSize) {\n this.currentPage = 0;\n }\n this.emitPaginationChange();\n this.focusFirstGridCell();\n }\n\n /**\n * Move focus to the first grid cell after a pagination change\n */\n private focusFirstGridCell() {\n const grid = this.getWcsGrid();\n if (grid) {\n requestAnimationFrame(() => {\n this.el.blur();\n grid.focusFirstCell();\n })\n }\n }\n\n private emitPaginationChange(): void {\n this.wcsGridPaginationChange.emit({\n pagination: {\n currentPage: this.currentPage,\n pageSize: this.pageSize,\n itemsCount: this.itemsCount,\n pageCount: this.pageCount\n }\n });\n }\n\n render(): any {\n return (<Host slot=\"grid-pagination\">\n <div class=\"container\">\n <div class=\"page-size\">\n <wcs-select placeholder=\"Eléments par page\"\n class=\"available-page-sizes\"\n aria-labelledby=\"elements-per-page-number elements-per-page-text\"\n value={this.pageSize}\n onWcsChange={this.onChangePageSize.bind(this)}>\n {\n this.availablePageSizes.map((pageSize) =>\n <wcs-select-option value={pageSize}>{pageSize}</wcs-select-option>\n )\n }\n </wcs-select>\n <span id=\"elements-per-page-number\" hidden>{this.pageSize}</span>\n <span id=\"elements-per-page-text\"> \n <slot name=\"elements-per-page-text\">\n <span> éléments par page</span>\n </slot>\n </span>\n </div>\n\n <div class=\"items-count\">\n <span>{this.itemsCount}\n <slot name=\"items-count-text\">\n <span> éléments</span>\n </slot>\n </span>\n </div>\n\n <nav aria-label=\"pagination\" ref={(el) => (this.nativeNav = el)} {...this.inheritedAttributes}>\n <ul class=\"page-management\">\n <li class=\"pagination-arrow\" onClick={this.firstPage.bind(this)}>\n <GridPaginationArrow active={this.canGoToPreviousPage()} order=\"previous\" double></GridPaginationArrow>\n </li>\n <li class=\"pagination-arrow\" onClick={this.previousPage.bind(this)}>\n <GridPaginationArrow active={this.canGoToPreviousPage()} order=\"previous\"></GridPaginationArrow>\n </li>\n \n <li class=\"pagination-counter\">\n <span aria-label={`Page ${this.currentPage + 1} sur ${this.pageCount}`} aria-current=\"page\">\n {this.currentPage + 1} / {this.pageCount}\n </span>\n </li>\n \n <li class=\"pagination-arrow\" onClick={this.nextPage.bind(this)}>\n <GridPaginationArrow active={this.canGoToNextPage()} order=\"next\"></GridPaginationArrow>\n </li>\n <li class=\"pagination-arrow\" onClick={this.lastPage.bind(this)}>\n <GridPaginationArrow active={this.canGoToNextPage()} order=\"next\" double></GridPaginationArrow>\n </li>\n </ul>\n </nav>\n </div>\n </Host>)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"grid-pagination.js","sourceRoot":"","sources":["../../../src/components/grid-pagination/grid-pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface, Element,\n Event, EventEmitter,\n h,\n Host, Method,\n Prop\n} from '@stencil/core';\nimport {\n WcsGridPaginationChangeEventDetails\n} from '../grid/grid-interface';\nimport { SelectChangeEventDetail } from '../select/select-interface';\nimport { GridPaginationArrow } from './grid-pagination-arrow';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\n\nconst GRID_PAGINATION_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * The grid pagination is a subcomponent of `wcs-grid`, slotted in `grid-pagination` under the `<table>` element.\n * \n * @cssprop --wcs-grid-pagination-color - Text color of the grid pagination\n * @cssprop --wcs-grid-pagination-font-size - Font-size of the grid pagination\n * @cssprop --wcs-grid-pagination-font-weight - Font-weight of the grid pagination\n * @cssprop --wcs-grid-pagination-gap - Gap between the page size, number of elements and page management\n * @cssprop --wcs-grid-pagination-page-size-gap - Gap between the select and the text within the page size container\n * @cssprop --wcs-grid-pagination-counter-gap - Gap within the page management counter\n * @cssprop --wcs-grid-pagination-margin-top - Margin between the grid and the pagination\n * @cssprop --wcs-grid-pagination-arrow-color-inactive - Color of the inactive arrow\n * @cssprop --wcs-grid-pagination-arrow-color-active - Color of the active arrow\n * \n * @slot elements-per-page-text - Text following the page size select. Default text is \" éléments par page\". You may want to add a non-breaking space before the text to separate it from the number.\n * @slot items-count-text - Text following the number of elements. Default text is \" éléments\". You may want to add a non-breaking space before the text to separate it from the number.\n */\n@Component({\n tag: 'wcs-grid-pagination',\n styleUrl: 'grid-pagination.scss',\n shadow: true\n})\nexport class GridPagination implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeNav!: HTMLElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n static readonly INDEX_FIRST_PAGE: number = 0;\n /**\n * Set the available page sizes in the pagination dropdown on the left.\n */\n @Prop() availablePageSizes: number[] = [10, 20, 50];\n /**\n * The current page of the pagination. First page starts at index 0.\n */\n @Prop({mutable: true}) currentPage: number = GridPagination.INDEX_FIRST_PAGE;\n /**\n * Maximum number of elements shown per page. \n * Default is the first value of `availablePageSizes`.\n */\n @Prop() pageSize: number = this.availablePageSizes[0];\n /**\n * Total elements in the grid. \n * - **Grid in `Server mode`** : You have to set `itemsCount` = your total data length. \n * - **Grid not in Server mode** : Do not set it manually : itemsCount is set and updated every pagination refresh.\n */\n @Prop() itemsCount: number = 0;\n /**\n * Max number of pages. \n * - **Grid in `Server mode`** : You have to set `pageCount` = `itemsCount` divided by `pageSize`. \n * - **Grid not in Server mode** : Do not set it manually : pageCount is set and updated every pagination refresh.\n */\n @Prop() pageCount: number = 1;\n /**\n * Event emitted when the pagination changes.\n */\n @Event() wcsGridPaginationChange!: EventEmitter<WcsGridPaginationChangeEventDetails>;\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, GRID_PAGINATION_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeNav, attr, value);\n }\n \n private getWcsGrid(): HTMLWcsGridElement | undefined {\n return this.el.parentElement.tagName === 'WCS-GRID' ? this.el.parentElement as HTMLWcsGridElement : undefined;\n }\n\n private lastPage(): void {\n this.currentPage = this.pageCount - 1;\n this.emitPaginationChange();\n this.focusFirstGridCell();\n }\n\n private nextPage(): void {\n if (this.canGoToNextPage()) {\n this.currentPage++;\n this.emitPaginationChange();\n this.focusFirstGridCell();\n }\n }\n\n private canGoToNextPage(): boolean {\n return this.currentPage + 1 < this.pageCount;\n }\n\n private previousPage(): void {\n if (this.canGoToPreviousPage()) {\n this.currentPage--;\n this.emitPaginationChange();\n this.focusFirstGridCell();\n }\n }\n\n private canGoToPreviousPage(): boolean {\n return this.currentPage > 0;\n }\n\n private firstPage(): void {\n this.currentPage = 0;\n this.emitPaginationChange();\n this.focusFirstGridCell();\n }\n\n private onChangePageSize(event: CustomEvent<SelectChangeEventDetail>): void {\n this.pageSize = event.detail.value;\n if (this.currentPage + 1 > this.pageSize) {\n this.currentPage = 0;\n }\n this.emitPaginationChange();\n this.focusFirstGridCell();\n }\n\n /**\n * Move focus to the first grid cell after a pagination change\n */\n private focusFirstGridCell() {\n const grid = this.getWcsGrid();\n if (grid) {\n requestAnimationFrame(() => {\n this.el.blur();\n grid.focusFirstCell();\n })\n }\n }\n\n private emitPaginationChange(): void {\n this.wcsGridPaginationChange.emit({\n pagination: {\n currentPage: this.currentPage,\n pageSize: this.pageSize,\n itemsCount: this.itemsCount,\n pageCount: this.pageCount\n }\n });\n }\n\n render(): any {\n return (<Host slot=\"grid-pagination\">\n <div class=\"container\">\n <div class=\"page-size\">\n <wcs-select placeholder=\"Eléments par page\"\n class=\"available-page-sizes\"\n aria-labelledby=\"elements-per-page-number elements-per-page-text\"\n value={this.pageSize}\n onWcsChange={this.onChangePageSize.bind(this)}>\n {\n this.availablePageSizes.map((pageSize) =>\n <wcs-select-option value={pageSize}>{pageSize}</wcs-select-option>\n )\n }\n </wcs-select>\n <span id=\"elements-per-page-number\" hidden>{this.pageSize}</span>\n <span id=\"elements-per-page-text\"> \n <slot name=\"elements-per-page-text\">\n <span> éléments par page</span>\n </slot>\n </span>\n </div>\n\n <div class=\"items-count\">\n <p>{this.itemsCount}\n <slot name=\"items-count-text\">\n <span> éléments</span>\n </slot>\n </p>\n </div>\n\n <nav aria-label=\"pagination\" ref={(el) => (this.nativeNav = el)} {...this.inheritedAttributes}>\n <ul class=\"page-management\">\n <li class=\"pagination-arrow\" onClick={this.firstPage.bind(this)}>\n <GridPaginationArrow active={this.canGoToPreviousPage()} order=\"previous\" double></GridPaginationArrow>\n </li>\n <li class=\"pagination-arrow\" onClick={this.previousPage.bind(this)}>\n <GridPaginationArrow active={this.canGoToPreviousPage()} order=\"previous\"></GridPaginationArrow>\n </li>\n \n <li class=\"pagination-counter\">\n <span aria-label={`Page ${this.currentPage + 1} sur ${this.pageCount}`} aria-current=\"page\">\n {this.currentPage + 1} / {this.pageCount}\n </span>\n </li>\n \n <li class=\"pagination-arrow\" onClick={this.nextPage.bind(this)}>\n <GridPaginationArrow active={this.canGoToNextPage()} order=\"next\"></GridPaginationArrow>\n </li>\n <li class=\"pagination-arrow\" onClick={this.lastPage.bind(this)}>\n <GridPaginationArrow active={this.canGoToNextPage()} order=\"next\" double></GridPaginationArrow>\n </li>\n </ul>\n </nav>\n </div>\n </Host>)\n }\n}\n"]}
|
|
@@ -37,7 +37,7 @@ export class Header {
|
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
39
|
render() {
|
|
40
|
-
return (h("header", Object.assign({ key: '
|
|
40
|
+
return (h("header", Object.assign({ key: '7d05333cbba02a8fa94f6bcd3a6e129c612a5eab', role: "banner", ref: (el) => (this.nativeHeader = el) }, this.inheritedAttributes), h("slot", { key: '7f2796e1a5667d54d30c7da60f3a8d03d3a463b7', name: "logo" }), h("slot", { key: 'fa547bcffaa627441a062c8bde97023c81704357', name: "title" }), h("slot", { key: 'fcff0c217083dbc971dafe72065416bfb5ac5332', name: "center" }), h("slot", { key: '459692329e5c4eb786d9ee232821927867686b19', name: "actions" })));
|
|
41
41
|
}
|
|
42
42
|
static get is() { return "wcs-header"; }
|
|
43
43
|
static get encapsulation() { return "shadow"; }
|
|
@@ -17,7 +17,7 @@ export class Hint {
|
|
|
17
17
|
this.small = false;
|
|
18
18
|
}
|
|
19
19
|
render() {
|
|
20
|
-
return (h(Host, { key: '
|
|
20
|
+
return (h(Host, { key: '543a98e5e95618f1916dbe681e12d8fca7e2d8c9', slot: "messages" }, h("slot", { key: '5d460b4dd0e7c6a22d42fa96de491cd0e2a4cc5f' })));
|
|
21
21
|
}
|
|
22
22
|
static get is() { return "wcs-hint"; }
|
|
23
23
|
static get encapsulation() { return "shadow"; }
|
|
@@ -60,7 +60,7 @@ export class HorizontalStepper {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
render() {
|
|
63
|
-
return (h(Host, { key: '
|
|
63
|
+
return (h(Host, { key: 'b395a8e5c504ac8732384c0b05d49ad0dc5876aa' }, h("ul", { key: '158b7501687c4063e8a0f57d28b26fbd9ad5fa2f', role: "list", class: "steps" }, this.steps.map((step, index) => (h(HorizontalStep, { step: step, passed: index <= this.internalCurrentStepIndex, checkOnComplete: this.checkOnComplete, complete: this.isComplete(step, index), active: index === this.internalCurrentStepIndex, first: index === 0, disable: this.isDisable(step, index), onClick: step => this.wcsHorizontalStepClick.emit({ step, index }) })))), this.renderLabels()));
|
|
64
64
|
}
|
|
65
65
|
isComplete(step, index) {
|
|
66
66
|
return index <= this.internalCurrentStepIndex || step.complete;
|