wcs-core 7.0.0 → 7.2.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/README.md +1 -11
- package/design-tokens/dist/sncf-groupe-root-scoped.css +590 -0
- package/design-tokens/dist/sncf-groupe.css +590 -0
- package/design-tokens/dist/sncf-groupe.json +10693 -0
- package/design-tokens/dist/sncf-holding-root-scoped.css +590 -0
- package/design-tokens/dist/sncf-holding.css +437 -423
- package/design-tokens/dist/sncf-holding.json +80 -3
- package/design-tokens/dist/sncf-reseau-root-scoped.css +652 -0
- package/design-tokens/dist/sncf-reseau.css +473 -463
- package/design-tokens/dist/sncf-reseau.json +54 -0
- package/design-tokens/dist/sncf-voyageurs-root-scoped.css +550 -0
- package/design-tokens/dist/sncf-voyageurs.css +394 -381
- package/design-tokens/dist/sncf-voyageurs.json +54 -0
- package/dist/cjs/{com-nav-utils-9f6c99b8.js → com-nav-utils-ff4f0bef.js} +2 -2
- package/dist/cjs/{com-nav-utils-9f6c99b8.js.map → com-nav-utils-ff4f0bef.js.map} +1 -1
- package/dist/cjs/control-component-interface-d9b68f28.js +43 -0
- package/dist/cjs/control-component-interface-d9b68f28.js.map +1 -0
- package/dist/cjs/{grid-pagination-2c752b22.js → grid-pagination-4505d7b6.js} +26 -6
- package/dist/cjs/grid-pagination-4505d7b6.js.map +1 -0
- package/dist/cjs/{helpers-871f5a3d.js → helpers-2f1a8ddc.js} +44 -1
- package/dist/cjs/helpers-2f1a8ddc.js.map +1 -0
- package/dist/cjs/{keyboard-event-d2c81ce0.js → keyboard-event-40ecdc27.js} +2 -2
- package/dist/cjs/{keyboard-event-d2c81ce0.js.map → keyboard-event-40ecdc27.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/wcs-accordion-panel.cjs.entry.js +2 -2
- package/dist/cjs/wcs-accordion-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-action-bar.cjs.entry.js +1 -1
- package/dist/cjs/wcs-action-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-alert-drawer.cjs.entry.js +99 -0
- package/dist/cjs/wcs-alert-drawer.cjs.entry.js.map +1 -0
- package/dist/cjs/wcs-alert.cjs.entry.js +121 -0
- package/dist/cjs/wcs-alert.cjs.entry.js.map +1 -0
- package/dist/cjs/wcs-app.cjs.entry.js +3 -3
- package/dist/cjs/wcs-badge.cjs.entry.js +2 -2
- package/dist/cjs/wcs-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-breadcrumb-item.cjs.entry.js +1 -1
- package/dist/cjs/wcs-breadcrumb-item.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/wcs-button_2.cjs.entry.js +4 -9
- package/dist/cjs/wcs-button_2.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-card-body.cjs.entry.js +9 -2
- package/dist/cjs/wcs-card-body.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-card-content.cjs.entry.js +22 -0
- package/dist/cjs/wcs-card-content.cjs.entry.js.map +1 -0
- package/dist/cjs/wcs-card-footer.cjs.entry.js +22 -0
- package/dist/cjs/wcs-card-footer.cjs.entry.js.map +1 -0
- package/dist/cjs/wcs-card-header.cjs.entry.js +22 -0
- package/dist/cjs/wcs-card-header.cjs.entry.js.map +1 -0
- package/dist/cjs/wcs-card-media.cjs.entry.js +29 -0
- package/dist/cjs/wcs-card-media.cjs.entry.js.map +1 -0
- package/dist/cjs/wcs-card.cjs.entry.js +30 -2
- package/dist/cjs/wcs-card.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-checkbox.cjs.entry.js +6 -2
- package/dist/cjs/wcs-checkbox.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 +2 -2
- package/dist/cjs/wcs-com-nav-item.cjs.entry.js.map +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 +13 -15
- package/dist/cjs/wcs-counter.cjs.entry.js.map +1 -1
- 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 +3 -8
- package/dist/cjs/wcs-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-editable-field.cjs.entry.js +81 -55
- package/dist/cjs/wcs-editable-field.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-error_3.cjs.entry.js +209 -0
- package/dist/cjs/wcs-error_3.cjs.entry.js.map +1 -0
- 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-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-galactic-menu.cjs.entry.js +4 -4
- package/dist/cjs/wcs-galactic-menu.cjs.entry.js.map +1 -1
- 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-column.cjs.entry.js.map +1 -1
- 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 +14 -6
- package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-header.cjs.entry.js +3 -3
- package/dist/cjs/wcs-header.cjs.entry.js.map +1 -1
- 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-horizontal-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-icon.cjs.entry.js +2 -2
- package/dist/cjs/wcs-input.cjs.entry.js +5 -13
- package/dist/cjs/wcs-input.cjs.entry.js.map +1 -1
- 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-list-item.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-mat-icon.cjs.entry.js +2 -2
- package/dist/cjs/wcs-mat-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-modal.cjs.entry.js +18 -4
- package/dist/cjs/wcs-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-native-select.cjs.entry.js +2 -2
- package/dist/cjs/wcs-native-select.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-nav-item.cjs.entry.js +3 -3
- package/dist/cjs/wcs-nav-item.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-nav.cjs.entry.js +3 -3
- package/dist/cjs/wcs-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-progress-bar.cjs.entry.js +4 -4
- package/dist/cjs/wcs-progress-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-progress-radial.cjs.entry.js +3 -3
- package/dist/cjs/wcs-progress-radial.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-radio-group.cjs.entry.js +5 -2
- package/dist/cjs/wcs-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-radio.cjs.entry.js +2 -2
- package/dist/cjs/wcs-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-select_2.cjs.entry.js +21 -13
- 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 +6 -2
- package/dist/cjs/wcs-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-tab.cjs.entry.js +1 -1
- package/dist/cjs/wcs-tabs.cjs.entry.js +150 -7
- package/dist/cjs/wcs-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-textarea.cjs.entry.js +2 -2
- package/dist/cjs/wcs-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-tooltip.cjs.entry.js +8 -4
- package/dist/cjs/wcs-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +6 -0
- package/dist/collection/components/accordion-panel/accordion-panel.js +1 -1
- package/dist/collection/components/accordion-panel/accordion-panel.js.map +1 -1
- package/dist/collection/components/action-bar/action-bar.js +2 -2
- package/dist/collection/components/action-bar/action-bar.js.map +1 -1
- package/dist/collection/components/alert/alert-interface.js +2 -0
- package/dist/collection/components/alert/alert-interface.js.map +1 -0
- package/dist/collection/components/alert/alert.css +115 -0
- package/dist/collection/components/alert/alert.e2e.js +142 -0
- package/dist/collection/components/alert/alert.e2e.js.map +1 -0
- package/dist/collection/components/alert/alert.js +257 -0
- package/dist/collection/components/alert/alert.js.map +1 -0
- package/dist/collection/components/alert-drawer/alert-drawer-interface.js +2 -0
- package/dist/collection/components/alert-drawer/alert-drawer-interface.js.map +1 -0
- package/dist/collection/components/alert-drawer/alert-drawer.css +103 -0
- package/dist/collection/components/alert-drawer/alert-drawer.e2e.js +111 -0
- package/dist/collection/components/alert-drawer/alert-drawer.e2e.js.map +1 -0
- package/dist/collection/components/alert-drawer/alert-drawer.js +237 -0
- package/dist/collection/components/alert-drawer/alert-drawer.js.map +1 -0
- package/dist/collection/components/app/app.js +3 -3
- package/dist/collection/components/badge/badge.css +5 -1
- 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/breadcrumb-item/breadcrumb-item.js.map +1 -1
- package/dist/collection/components/button/button-interface.js +1 -5
- package/dist/collection/components/button/button-interface.js.map +1 -1
- package/dist/collection/components/button/button.css +2 -2
- package/dist/collection/components/button/button.js +2 -7
- package/dist/collection/components/button/button.js.map +1 -1
- package/dist/collection/components/card/card-interface.js.map +1 -1
- package/dist/collection/components/card/card.css +10 -0
- package/dist/collection/components/card/card.js +62 -1
- package/dist/collection/components/card/card.js.map +1 -1
- package/dist/collection/components/card-body/card-body.css +12 -1
- package/dist/collection/components/card-body/card-body.js +52 -2
- package/dist/collection/components/card-body/card-body.js.map +1 -1
- package/dist/collection/components/card-content/card-content.css +12 -0
- package/dist/collection/components/card-content/card-content.js +30 -0
- package/dist/collection/components/card-content/card-content.js.map +1 -0
- package/dist/collection/components/card-footer/card-footer.css +7 -0
- package/dist/collection/components/card-footer/card-footer.js +25 -0
- package/dist/collection/components/card-footer/card-footer.js.map +1 -0
- package/dist/collection/components/card-header/card-header.css +28 -0
- package/dist/collection/components/card-header/card-header.js +32 -0
- package/dist/collection/components/card-header/card-header.js.map +1 -0
- package/dist/collection/components/card-media/card-media.css +21 -0
- package/dist/collection/components/card-media/card-media.js +77 -0
- package/dist/collection/components/card-media/card-media.js.map +1 -0
- package/dist/collection/components/checkbox/checkbox.js +22 -1
- package/dist/collection/components/checkbox/checkbox.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.css +2 -1
- 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-interface.js +1 -5
- package/dist/collection/components/counter/counter-interface.js.map +1 -1
- package/dist/collection/components/counter/counter.css +7 -1
- package/dist/collection/components/counter/counter.js +13 -10
- package/dist/collection/components/counter/counter.js.map +1 -1
- package/dist/collection/components/divider/divider.js +1 -1
- package/dist/collection/components/dropdown/dropdown.js +3 -8
- package/dist/collection/components/dropdown/dropdown.js.map +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.css +34 -10
- package/dist/collection/components/editable-field/editable-field.e2e.js +176 -0
- package/dist/collection/components/editable-field/editable-field.e2e.js.map +1 -0
- package/dist/collection/components/editable-field/editable-field.js +83 -57
- package/dist/collection/components/editable-field/editable-field.js.map +1 -1
- package/dist/collection/components/error/error.js +1 -1
- package/dist/collection/components/error/error.js.map +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/footer/footer.js.map +1 -1
- package/dist/collection/components/form-field/form-field.css +39 -12
- package/dist/collection/components/form-field/form-field.e2e.js +122 -0
- package/dist/collection/components/form-field/form-field.e2e.js.map +1 -0
- package/dist/collection/components/form-field/form-field.js +29 -12
- package/dist/collection/components/form-field/form-field.js.map +1 -1
- package/dist/collection/components/galactic/galactic.js +1 -1
- package/dist/collection/components/galactic-menu/galactic-menu.css +1 -0
- package/dist/collection/components/galactic-menu/galactic-menu.js +2 -2
- package/dist/collection/components/grid/grid.js +30 -5
- package/dist/collection/components/grid/grid.js.map +1 -1
- package/dist/collection/components/grid-column/grid-column.js +4 -4
- package/dist/collection/components/grid-column/grid-column.js.map +1 -1
- package/dist/collection/components/grid-custom-cell/grid-custom-cell.js +1 -1
- package/dist/collection/components/grid-pagination/grid-pagination-arrow.js +2 -2
- package/dist/collection/components/grid-pagination/grid-pagination-arrow.js.map +1 -1
- package/dist/collection/components/grid-pagination/grid-pagination.js +22 -2
- package/dist/collection/components/grid-pagination/grid-pagination.js.map +1 -1
- package/dist/collection/components/header/header.css +9 -1
- package/dist/collection/components/header/header.js +2 -1
- package/dist/collection/components/header/header.js.map +1 -1
- package/dist/collection/components/hint/hint.js +1 -1
- package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +2 -2
- package/dist/collection/components/horizontal-stepper/horizontal-stepper.js.map +1 -1
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/input/input-interface.js +1 -5
- package/dist/collection/components/input/input-interface.js.map +1 -1
- package/dist/collection/components/input/input.css +14 -1
- package/dist/collection/components/input/input.js +44 -10
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/label/label.js +1 -1
- package/dist/collection/components/label/label.js.map +1 -1
- package/dist/collection/components/list-item/list-item.js +7 -2
- package/dist/collection/components/list-item/list-item.js.map +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.js +2 -2
- package/dist/collection/components/mat-icon/mat-icon.js.map +1 -1
- package/dist/collection/components/modal/modal-interface.js.map +1 -1
- package/dist/collection/components/modal/modal.css +1 -0
- package/dist/collection/components/modal/modal.js +58 -2
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/native-select/native-select.css +2 -2
- package/dist/collection/components/native-select/native-select.js +2 -2
- package/dist/collection/components/native-select/native-select.js.map +1 -1
- package/dist/collection/components/nav/nav.css +2 -0
- package/dist/collection/components/nav/nav.js +1 -1
- package/dist/collection/components/nav-item/nav-item.css +24 -6
- package/dist/collection/components/nav-item/nav-item.js +1 -1
- package/dist/collection/components/progress-bar/progress-bar.css +2 -2
- package/dist/collection/components/progress-bar/progress-bar.js +3 -3
- package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
- package/dist/collection/components/progress-radial/progress-radial.js +3 -3
- package/dist/collection/components/progress-radial/progress-radial.js.map +1 -1
- package/dist/collection/components/radio/radio.js +2 -2
- package/dist/collection/components/radio/radio.js.map +1 -1
- package/dist/collection/components/radio-group/radio-group.js +39 -2
- package/dist/collection/components/radio-group/radio-group.js.map +1 -1
- package/dist/collection/components/select/select.css +1 -1
- package/dist/collection/components/select/select.js +35 -9
- 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/select-option/select-option.js.map +1 -1
- 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 +23 -2
- package/dist/collection/components/switch/switch.js.map +1 -1
- package/dist/collection/components/tab/tab.js +1 -1
- package/dist/collection/components/tabs/tabs.css +104 -1
- package/dist/collection/components/tabs/tabs.js +181 -6
- package/dist/collection/components/tabs/tabs.js.map +1 -1
- package/dist/collection/components/textarea/textarea.js +5 -5
- package/dist/collection/components/textarea/textarea.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.js +11 -9
- package/dist/collection/components/tooltip/tooltip.js.map +1 -1
- package/dist/collection/utils/control-component-interface.js +37 -0
- package/dist/collection/utils/control-component-interface.js.map +1 -0
- package/dist/collection/utils/helpers.js +40 -0
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/esm/{com-nav-utils-1366c701.js → com-nav-utils-ee7bf77c.js} +2 -2
- package/dist/esm/{com-nav-utils-1366c701.js.map → com-nav-utils-ee7bf77c.js.map} +1 -1
- package/dist/esm/control-component-interface-9f09e520.js +40 -0
- package/dist/esm/control-component-interface-9f09e520.js.map +1 -0
- package/dist/esm/{grid-pagination-421689be.js → grid-pagination-731726a6.js} +26 -6
- package/dist/esm/grid-pagination-731726a6.js.map +1 -0
- package/dist/esm/{helpers-f137ec8d.js → helpers-ece6a2d3.js} +42 -2
- package/dist/esm/helpers-ece6a2d3.js.map +1 -0
- package/dist/esm/{keyboard-event-bdea408a.js → keyboard-event-26b65ae5.js} +2 -2
- package/dist/esm/{keyboard-event-bdea408a.js.map → keyboard-event-26b65ae5.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/wcs-accordion-panel.entry.js +2 -2
- package/dist/esm/wcs-accordion-panel.entry.js.map +1 -1
- package/dist/esm/wcs-action-bar.entry.js +1 -1
- package/dist/esm/wcs-action-bar.entry.js.map +1 -1
- package/dist/esm/wcs-alert-drawer.entry.js +95 -0
- package/dist/esm/wcs-alert-drawer.entry.js.map +1 -0
- package/dist/esm/wcs-alert.entry.js +117 -0
- package/dist/esm/wcs-alert.entry.js.map +1 -0
- package/dist/esm/wcs-app.entry.js +3 -3
- package/dist/esm/wcs-badge.entry.js +2 -2
- package/dist/esm/wcs-badge.entry.js.map +1 -1
- package/dist/esm/wcs-breadcrumb-item.entry.js +1 -1
- package/dist/esm/wcs-breadcrumb-item.entry.js.map +1 -1
- package/dist/esm/wcs-breadcrumb.entry.js +2 -2
- package/dist/esm/wcs-button_2.entry.js +4 -9
- package/dist/esm/wcs-button_2.entry.js.map +1 -1
- package/dist/esm/wcs-card-body.entry.js +10 -3
- package/dist/esm/wcs-card-body.entry.js.map +1 -1
- package/dist/esm/wcs-card-content.entry.js +18 -0
- package/dist/esm/wcs-card-content.entry.js.map +1 -0
- package/dist/esm/wcs-card-footer.entry.js +18 -0
- package/dist/esm/wcs-card-footer.entry.js.map +1 -0
- package/dist/esm/wcs-card-header.entry.js +18 -0
- package/dist/esm/wcs-card-header.entry.js.map +1 -0
- package/dist/esm/wcs-card-media.entry.js +25 -0
- package/dist/esm/wcs-card-media.entry.js.map +1 -0
- package/dist/esm/wcs-card.entry.js +31 -3
- package/dist/esm/wcs-card.entry.js.map +1 -1
- package/dist/esm/wcs-checkbox.entry.js +6 -2
- package/dist/esm/wcs-checkbox.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 +2 -2
- package/dist/esm/wcs-com-nav-item.entry.js.map +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 +13 -15
- package/dist/esm/wcs-counter.entry.js.map +1 -1
- 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 +3 -8
- package/dist/esm/wcs-dropdown.entry.js.map +1 -1
- package/dist/esm/wcs-editable-field.entry.js +81 -55
- package/dist/esm/wcs-editable-field.entry.js.map +1 -1
- package/dist/esm/wcs-error_3.entry.js +203 -0
- package/dist/esm/wcs-error_3.entry.js.map +1 -0
- 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-footer.entry.js.map +1 -1
- package/dist/esm/wcs-galactic-menu.entry.js +4 -4
- package/dist/esm/wcs-galactic-menu.entry.js.map +1 -1
- package/dist/esm/wcs-galactic.entry.js +1 -1
- package/dist/esm/wcs-grid-column.entry.js +2 -2
- package/dist/esm/wcs-grid-column.entry.js.map +1 -1
- 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 +14 -6
- package/dist/esm/wcs-grid.entry.js.map +1 -1
- package/dist/esm/wcs-header.entry.js +3 -3
- package/dist/esm/wcs-header.entry.js.map +1 -1
- package/dist/esm/wcs-hint.entry.js +1 -1
- package/dist/esm/wcs-horizontal-stepper.entry.js +1 -1
- package/dist/esm/wcs-horizontal-stepper.entry.js.map +1 -1
- package/dist/esm/wcs-icon.entry.js +2 -2
- package/dist/esm/wcs-input.entry.js +5 -13
- package/dist/esm/wcs-input.entry.js.map +1 -1
- 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-list-item.entry.js.map +1 -1
- package/dist/esm/wcs-mat-icon.entry.js +2 -2
- package/dist/esm/wcs-mat-icon.entry.js.map +1 -1
- package/dist/esm/wcs-modal.entry.js +18 -4
- package/dist/esm/wcs-modal.entry.js.map +1 -1
- package/dist/esm/wcs-native-select.entry.js +2 -2
- package/dist/esm/wcs-native-select.entry.js.map +1 -1
- package/dist/esm/wcs-nav-item.entry.js +3 -3
- package/dist/esm/wcs-nav-item.entry.js.map +1 -1
- package/dist/esm/wcs-nav.entry.js +3 -3
- package/dist/esm/wcs-nav.entry.js.map +1 -1
- package/dist/esm/wcs-progress-bar.entry.js +4 -4
- package/dist/esm/wcs-progress-bar.entry.js.map +1 -1
- package/dist/esm/wcs-progress-radial.entry.js +3 -3
- package/dist/esm/wcs-progress-radial.entry.js.map +1 -1
- package/dist/esm/wcs-radio-group.entry.js +5 -2
- package/dist/esm/wcs-radio-group.entry.js.map +1 -1
- package/dist/esm/wcs-radio.entry.js +2 -2
- package/dist/esm/wcs-radio.entry.js.map +1 -1
- package/dist/esm/wcs-select_2.entry.js +21 -13
- 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 +6 -2
- package/dist/esm/wcs-switch.entry.js.map +1 -1
- package/dist/esm/wcs-tab.entry.js +1 -1
- package/dist/esm/wcs-tabs.entry.js +150 -7
- package/dist/esm/wcs-tabs.entry.js.map +1 -1
- package/dist/esm/wcs-textarea.entry.js +2 -2
- package/dist/esm/wcs-textarea.entry.js.map +1 -1
- package/dist/esm/wcs-tooltip.entry.js +8 -4
- package/dist/esm/wcs-tooltip.entry.js.map +1 -1
- package/dist/esm/wcs.js +1 -1
- package/dist/types/components/alert/alert-interface.d.ts +11 -0
- package/dist/types/components/alert/alert.d.ts +79 -0
- package/dist/types/components/alert-drawer/alert-drawer-interface.d.ts +1 -0
- package/dist/types/components/alert-drawer/alert-drawer.d.ts +83 -0
- package/dist/types/components/button/button-interface.d.ts +1 -3
- package/dist/types/components/card/card-interface.d.ts +1 -0
- package/dist/types/components/card/card.d.ts +18 -1
- package/dist/types/components/card-body/card-body.d.ts +9 -0
- package/dist/types/components/card-content/card-content.d.ts +14 -0
- package/dist/types/components/card-footer/card-footer.d.ts +9 -0
- package/dist/types/components/card-header/card-header.d.ts +16 -0
- package/dist/types/components/card-media/card-media.d.ts +20 -0
- package/dist/types/components/checkbox/checkbox.d.ts +3 -1
- package/dist/types/components/counter/counter-interface.d.ts +1 -3
- package/dist/types/components/counter/counter.d.ts +6 -0
- package/dist/types/components/editable-field/editable-field.d.ts +23 -9
- package/dist/types/components/grid/grid.d.ts +4 -0
- package/dist/types/components/grid-pagination/grid-pagination.d.ts +6 -1
- package/dist/types/components/header/header.d.ts +1 -0
- package/dist/types/components/input/input-interface.d.ts +1 -3
- package/dist/types/components/input/input.d.ts +3 -0
- package/dist/types/components/list-item/list-item.d.ts +5 -0
- package/dist/types/components/mat-icon/mat-icon.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +2 -1
- package/dist/types/components/modal/modal.d.ts +23 -0
- package/dist/types/components/radio-group/radio-group.d.ts +3 -1
- package/dist/types/components/select/select.d.ts +11 -1
- package/dist/types/components/switch/switch.d.ts +3 -1
- package/dist/types/components/tabs/tabs.d.ts +55 -0
- package/dist/types/components/tooltip/tooltip.d.ts +3 -5
- package/dist/types/components.d.ts +658 -22
- package/dist/types/utils/control-component-interface.d.ts +22 -0
- package/dist/types/utils/helpers.d.ts +21 -0
- package/dist/wcs/p-0017d766.js +2 -0
- package/dist/wcs/{p-5ea2aba5.entry.js → p-0424e545.entry.js} +2 -2
- package/dist/wcs/{p-25b96cde.entry.js → p-0758d22e.entry.js} +2 -2
- package/dist/wcs/p-0758d22e.entry.js.map +1 -0
- package/dist/wcs/p-0b8157e7.entry.js +2 -0
- package/dist/wcs/p-0dd07842.entry.js +2 -0
- package/dist/wcs/p-0dd07842.entry.js.map +1 -0
- package/dist/wcs/{p-87b69cac.entry.js → p-1244daa0.entry.js} +2 -2
- package/dist/wcs/{p-80a23f9c.entry.js → p-18fa39f4.entry.js} +2 -2
- package/dist/wcs/{p-80a23f9c.entry.js.map → p-18fa39f4.entry.js.map} +1 -1
- package/dist/wcs/p-1ba616c2.entry.js +2 -0
- package/dist/wcs/p-1ba616c2.entry.js.map +1 -0
- package/dist/wcs/p-1e7ea63c.entry.js +2 -0
- package/dist/wcs/p-1e7ea63c.entry.js.map +1 -0
- package/dist/wcs/p-1f593d06.entry.js +2 -0
- package/dist/wcs/p-1f593d06.entry.js.map +1 -0
- package/dist/wcs/{p-d2a4f609.entry.js → p-1fbe0328.entry.js} +2 -2
- package/dist/wcs/p-1fbe0328.entry.js.map +1 -0
- package/dist/wcs/{p-276b8125.entry.js → p-204f2722.entry.js} +9 -9
- package/dist/wcs/p-204f2722.entry.js.map +1 -0
- package/dist/wcs/p-27b438c0.entry.js +2 -0
- package/dist/wcs/{p-45a6934d.entry.js → p-352e1f99.entry.js} +2 -2
- package/dist/wcs/{p-3cfa1c4b.entry.js → p-367946fe.entry.js} +2 -2
- package/dist/wcs/p-3823f54e.entry.js +2 -0
- package/dist/wcs/{p-4982f96c.entry.js → p-3a18535f.entry.js} +2 -2
- package/dist/wcs/p-41b946b2.entry.js +2 -0
- package/dist/wcs/p-41b946b2.entry.js.map +1 -0
- package/dist/wcs/{p-9553d60e.entry.js → p-496115a5.entry.js} +2 -2
- package/dist/wcs/{p-9553d60e.entry.js.map → p-496115a5.entry.js.map} +1 -1
- package/dist/wcs/p-4fb2d985.entry.js +2 -0
- package/dist/wcs/p-4fb2d985.entry.js.map +1 -0
- package/dist/wcs/{p-b0f8190f.entry.js → p-5202b323.entry.js} +2 -2
- package/dist/wcs/p-52d77e1f.js +2 -0
- package/dist/wcs/p-52d77e1f.js.map +1 -0
- package/dist/wcs/{p-ca8f3677.entry.js → p-53a395a9.entry.js} +2 -2
- package/dist/wcs/{p-ca8f3677.entry.js.map → p-53a395a9.entry.js.map} +1 -1
- package/dist/wcs/p-5607246c.entry.js +2 -0
- package/dist/wcs/p-5607246c.entry.js.map +1 -0
- package/dist/wcs/p-580b3142.entry.js +2 -0
- package/dist/wcs/{p-806315e6.entry.js.map → p-580b3142.entry.js.map} +1 -1
- package/dist/wcs/p-5da0534f.entry.js +2 -0
- package/dist/wcs/p-5da0534f.entry.js.map +1 -0
- package/dist/wcs/p-5e8fff73.entry.js +2 -0
- package/dist/wcs/p-5e8fff73.entry.js.map +1 -0
- package/dist/wcs/p-622f7403.entry.js +2 -0
- package/dist/wcs/p-622f7403.entry.js.map +1 -0
- package/dist/wcs/p-637ec45a.entry.js +2 -0
- package/dist/wcs/p-637ec45a.entry.js.map +1 -0
- package/dist/wcs/p-6aededc6.entry.js +2 -0
- package/dist/wcs/p-6aededc6.entry.js.map +1 -0
- package/dist/wcs/p-6c6079ee.entry.js +2 -0
- package/dist/wcs/{p-209145de.entry.js.map → p-6c6079ee.entry.js.map} +1 -1
- package/dist/wcs/{p-e5c057c4.entry.js → p-781a956e.entry.js} +2 -2
- package/dist/wcs/p-7de847e0.entry.js +2 -0
- package/dist/wcs/p-8152d360.entry.js +2 -0
- package/dist/wcs/p-8152d360.entry.js.map +1 -0
- package/dist/wcs/{p-2c9e20c1.entry.js → p-850fa9c9.entry.js} +2 -2
- package/dist/wcs/{p-f06aa79d.entry.js → p-86ec9ead.entry.js} +2 -2
- package/dist/wcs/{p-f06aa79d.entry.js.map → p-86ec9ead.entry.js.map} +1 -1
- package/dist/wcs/p-89b8c724.js +2 -0
- package/dist/wcs/p-8c2605fd.entry.js +2 -0
- package/dist/wcs/p-8c2605fd.entry.js.map +1 -0
- package/dist/wcs/{p-2305f257.entry.js → p-8e9bd0f1.entry.js} +2 -2
- package/dist/wcs/p-98a8b806.entry.js +2 -0
- package/dist/wcs/p-98a8b806.entry.js.map +1 -0
- package/dist/wcs/p-9c73744c.entry.js +2 -0
- package/dist/wcs/p-9c73744c.entry.js.map +1 -0
- package/dist/wcs/p-9fd3366c.entry.js +2 -0
- package/dist/wcs/p-9fd3366c.entry.js.map +1 -0
- package/dist/wcs/p-a0f6ef30.entry.js +2 -0
- package/dist/wcs/p-a0f6ef30.entry.js.map +1 -0
- package/dist/wcs/p-a7468a3a.js +2 -0
- package/dist/wcs/p-a7468a3a.js.map +1 -0
- package/dist/wcs/{p-0fa370d7.entry.js → p-a94e685c.entry.js} +3 -3
- package/dist/wcs/{p-0fa370d7.entry.js.map → p-a94e685c.entry.js.map} +1 -1
- package/dist/wcs/{p-97cbbcfc.entry.js → p-a956dc84.entry.js} +2 -2
- package/dist/wcs/p-a956dc84.entry.js.map +1 -0
- package/dist/wcs/{p-e19308cf.entry.js → p-aadf37e7.entry.js} +2 -2
- package/dist/wcs/{p-f8d2be83.entry.js → p-ad286030.entry.js} +2 -2
- package/dist/wcs/p-ad5192cd.entry.js +2 -0
- package/dist/wcs/p-b0a6eec6.entry.js +2 -0
- package/dist/wcs/p-b0a6eec6.entry.js.map +1 -0
- package/dist/wcs/{p-fa507e06.entry.js → p-b28b2fba.entry.js} +2 -2
- package/dist/wcs/p-b28b2fba.entry.js.map +1 -0
- package/dist/wcs/{p-15ff9f93.entry.js → p-bc009574.entry.js} +2 -2
- package/dist/wcs/{p-15ff9f93.entry.js.map → p-bc009574.entry.js.map} +1 -1
- package/dist/wcs/p-c211a5d1.entry.js +2 -0
- package/dist/wcs/{p-85a5bbb7.entry.js → p-c261eaf9.entry.js} +2 -2
- package/dist/wcs/p-c261eaf9.entry.js.map +1 -0
- package/dist/wcs/p-c5bad0b8.js +2 -0
- package/dist/wcs/p-c5bad0b8.js.map +1 -0
- package/dist/wcs/p-c7812760.entry.js +2 -0
- package/dist/wcs/{p-9e03b379.entry.js → p-c84ae00d.entry.js} +2 -2
- package/dist/wcs/p-cad10435.entry.js +2 -0
- package/dist/wcs/{p-8f0e093f.entry.js.map → p-cad10435.entry.js.map} +1 -1
- package/dist/wcs/p-cbbca016.entry.js +2 -0
- package/dist/wcs/p-cbbca016.entry.js.map +1 -0
- package/dist/wcs/{p-a788b5bd.entry.js → p-cbda74f6.entry.js} +2 -2
- package/dist/wcs/{p-09d0a296.entry.js → p-d27d4a53.entry.js} +3 -3
- package/dist/wcs/p-d27d4a53.entry.js.map +1 -0
- package/dist/wcs/p-dfb52a1c.entry.js +2 -0
- package/dist/wcs/p-dfb52a1c.entry.js.map +1 -0
- package/dist/wcs/p-dff8641e.entry.js +2 -0
- package/dist/wcs/p-dff8641e.entry.js.map +1 -0
- package/dist/wcs/p-e26c19e5.entry.js +2 -0
- package/dist/wcs/{p-1e5aa960.entry.js → p-e56b9ce2.entry.js} +2 -2
- package/dist/wcs/p-e56b9ce2.entry.js.map +1 -0
- package/dist/wcs/p-ec383729.entry.js +2 -0
- package/dist/wcs/p-ec383729.entry.js.map +1 -0
- package/dist/wcs/p-f929b66f.entry.js +2 -0
- package/dist/wcs/p-f929b66f.entry.js.map +1 -0
- package/dist/wcs/{p-db81b74f.entry.js → p-fd187bce.entry.js} +2 -2
- package/dist/wcs/p-fd187bce.entry.js.map +1 -0
- package/dist/wcs/p-fdeae83e.entry.js +2 -0
- package/dist/wcs/p-fdeae83e.entry.js.map +1 -0
- package/dist/wcs/wcs.esm.js +1 -1
- package/dist/wcs/wcs.esm.js.map +1 -1
- package/package.json +5 -2
- package/dist/cjs/button-interface-629f3563.js +0 -12
- package/dist/cjs/button-interface-629f3563.js.map +0 -1
- package/dist/cjs/grid-pagination-2c752b22.js.map +0 -1
- package/dist/cjs/helpers-871f5a3d.js.map +0 -1
- package/dist/cjs/wcs-error_2.cjs.entry.js +0 -168
- package/dist/cjs/wcs-error_2.cjs.entry.js.map +0 -1
- package/dist/cjs/wcs-label.cjs.entry.js +0 -33
- package/dist/cjs/wcs-label.cjs.entry.js.map +0 -1
- package/dist/esm/button-interface-dc5ddd51.js +0 -9
- package/dist/esm/button-interface-dc5ddd51.js.map +0 -1
- package/dist/esm/grid-pagination-421689be.js.map +0 -1
- package/dist/esm/helpers-f137ec8d.js.map +0 -1
- package/dist/esm/wcs-error_2.entry.js +0 -163
- package/dist/esm/wcs-error_2.entry.js.map +0 -1
- package/dist/esm/wcs-label.entry.js +0 -29
- package/dist/esm/wcs-label.entry.js.map +0 -1
- package/dist/wcs/p-08e86d69.entry.js +0 -2
- package/dist/wcs/p-08e86d69.entry.js.map +0 -1
- package/dist/wcs/p-09d0a296.entry.js.map +0 -1
- package/dist/wcs/p-0fdaec9e.entry.js +0 -2
- package/dist/wcs/p-0fdaec9e.entry.js.map +0 -1
- package/dist/wcs/p-19c77b5c.entry.js +0 -2
- package/dist/wcs/p-1ab0d13b.entry.js +0 -2
- package/dist/wcs/p-1ab0d13b.entry.js.map +0 -1
- package/dist/wcs/p-1e5aa960.entry.js.map +0 -1
- package/dist/wcs/p-209145de.entry.js +0 -2
- package/dist/wcs/p-25b96cde.entry.js.map +0 -1
- package/dist/wcs/p-276b8125.entry.js.map +0 -1
- package/dist/wcs/p-2add4d4d.entry.js +0 -2
- package/dist/wcs/p-2add4d4d.entry.js.map +0 -1
- package/dist/wcs/p-400a71d7.entry.js +0 -2
- package/dist/wcs/p-412b0021.js +0 -2
- package/dist/wcs/p-412b0021.js.map +0 -1
- package/dist/wcs/p-4ca7c59f.entry.js +0 -2
- package/dist/wcs/p-4ca7c59f.entry.js.map +0 -1
- package/dist/wcs/p-4d6d1d14.js +0 -2
- package/dist/wcs/p-52cd0abb.entry.js +0 -2
- package/dist/wcs/p-52cd0abb.entry.js.map +0 -1
- package/dist/wcs/p-550012c2.entry.js +0 -2
- package/dist/wcs/p-5f517eb5.entry.js +0 -2
- package/dist/wcs/p-76f07dbd.entry.js +0 -2
- package/dist/wcs/p-76f07dbd.entry.js.map +0 -1
- package/dist/wcs/p-806315e6.entry.js +0 -2
- package/dist/wcs/p-85a5bbb7.entry.js.map +0 -1
- package/dist/wcs/p-8780a429.entry.js +0 -2
- package/dist/wcs/p-8780a429.entry.js.map +0 -1
- package/dist/wcs/p-8bd1b9ce.entry.js +0 -2
- package/dist/wcs/p-8bd1b9ce.entry.js.map +0 -1
- package/dist/wcs/p-8f0e093f.entry.js +0 -2
- package/dist/wcs/p-94ff8939.entry.js +0 -2
- package/dist/wcs/p-94ff8939.entry.js.map +0 -1
- package/dist/wcs/p-96195d9a.entry.js +0 -2
- package/dist/wcs/p-96195d9a.entry.js.map +0 -1
- package/dist/wcs/p-97cbbcfc.entry.js.map +0 -1
- package/dist/wcs/p-985c4cf2.entry.js +0 -2
- package/dist/wcs/p-985c4cf2.entry.js.map +0 -1
- package/dist/wcs/p-9f23c49e.entry.js +0 -2
- package/dist/wcs/p-9f23c49e.entry.js.map +0 -1
- package/dist/wcs/p-a3aece7a.js +0 -2
- package/dist/wcs/p-a3aece7a.js.map +0 -1
- package/dist/wcs/p-a66a4289.entry.js +0 -2
- package/dist/wcs/p-ab49926d.entry.js +0 -2
- package/dist/wcs/p-ab49926d.entry.js.map +0 -1
- package/dist/wcs/p-bf31245c.entry.js +0 -2
- package/dist/wcs/p-bf31245c.entry.js.map +0 -1
- package/dist/wcs/p-c6a28b79.js +0 -2
- package/dist/wcs/p-c6a28b79.js.map +0 -1
- package/dist/wcs/p-cd592a00.entry.js +0 -2
- package/dist/wcs/p-cd592a00.entry.js.map +0 -1
- package/dist/wcs/p-d2a4f609.entry.js.map +0 -1
- package/dist/wcs/p-d42831b2.entry.js +0 -2
- package/dist/wcs/p-d42831b2.entry.js.map +0 -1
- package/dist/wcs/p-d443d419.entry.js +0 -2
- package/dist/wcs/p-d7acbf01.js +0 -2
- package/dist/wcs/p-db81b74f.entry.js.map +0 -1
- package/dist/wcs/p-dbbf0980.entry.js +0 -2
- package/dist/wcs/p-dbbf0980.entry.js.map +0 -1
- package/dist/wcs/p-e64d7437.entry.js +0 -2
- package/dist/wcs/p-e86575d3.entry.js +0 -2
- package/dist/wcs/p-e86575d3.entry.js.map +0 -1
- package/dist/wcs/p-f264d46f.entry.js +0 -2
- package/dist/wcs/p-fa507e06.entry.js.map +0 -1
- package/dist/wcs/p-fd9e731d.entry.js +0 -2
- package/dist/wcs/p-fd9e731d.entry.js.map +0 -1
- /package/dist/wcs/{p-d7acbf01.js.map → p-0017d766.js.map} +0 -0
- /package/dist/wcs/{p-5ea2aba5.entry.js.map → p-0424e545.entry.js.map} +0 -0
- /package/dist/wcs/{p-f264d46f.entry.js.map → p-0b8157e7.entry.js.map} +0 -0
- /package/dist/wcs/{p-87b69cac.entry.js.map → p-1244daa0.entry.js.map} +0 -0
- /package/dist/wcs/{p-e64d7437.entry.js.map → p-27b438c0.entry.js.map} +0 -0
- /package/dist/wcs/{p-45a6934d.entry.js.map → p-352e1f99.entry.js.map} +0 -0
- /package/dist/wcs/{p-3cfa1c4b.entry.js.map → p-367946fe.entry.js.map} +0 -0
- /package/dist/wcs/{p-400a71d7.entry.js.map → p-3823f54e.entry.js.map} +0 -0
- /package/dist/wcs/{p-4982f96c.entry.js.map → p-3a18535f.entry.js.map} +0 -0
- /package/dist/wcs/{p-b0f8190f.entry.js.map → p-5202b323.entry.js.map} +0 -0
- /package/dist/wcs/{p-e5c057c4.entry.js.map → p-781a956e.entry.js.map} +0 -0
- /package/dist/wcs/{p-550012c2.entry.js.map → p-7de847e0.entry.js.map} +0 -0
- /package/dist/wcs/{p-2c9e20c1.entry.js.map → p-850fa9c9.entry.js.map} +0 -0
- /package/dist/wcs/{p-4d6d1d14.js.map → p-89b8c724.js.map} +0 -0
- /package/dist/wcs/{p-2305f257.entry.js.map → p-8e9bd0f1.entry.js.map} +0 -0
- /package/dist/wcs/{p-e19308cf.entry.js.map → p-aadf37e7.entry.js.map} +0 -0
- /package/dist/wcs/{p-f8d2be83.entry.js.map → p-ad286030.entry.js.map} +0 -0
- /package/dist/wcs/{p-a66a4289.entry.js.map → p-ad5192cd.entry.js.map} +0 -0
- /package/dist/wcs/{p-19c77b5c.entry.js.map → p-c211a5d1.entry.js.map} +0 -0
- /package/dist/wcs/{p-d443d419.entry.js.map → p-c7812760.entry.js.map} +0 -0
- /package/dist/wcs/{p-9e03b379.entry.js.map → p-c84ae00d.entry.js.map} +0 -0
- /package/dist/wcs/{p-a788b5bd.entry.js.map → p-cbda74f6.entry.js.map} +0 -0
- /package/dist/wcs/{p-5f517eb5.entry.js.map → p-e26c19e5.entry.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getSortOrderInteger","sortOrder","getRandomValues","rnds8","Uint8Array","rng","crypto","bind","msCrypto","Error","REGEX","validate","uuid","test","byteToHex","i","push","toString","substr","stringify","arr","offset","arguments","length","undefined","toLowerCase","TypeError","v4","options","buf","rnds","random","symbolTag","isSymbol","value","isObjectLike","baseGetTag","arrayMap","array","iteratee","index","result","Array","INFINITY","symbolProto","Symbol","prototype","symbolToString","baseToString","isArray","call","objectCreate","Object","create","baseCreate","object","proto","isObject","baseCreate$1","copyArray","source","defineProperty","func","getNative","e","defineProperty$1","arrayEach","baseAssignValue","key","configurable","enumerable","writable","objectProto","hasOwnProperty","assignValue","objValue","eq","copyObject","props","customizer","isNew","newValue","nativeKeysIn","baseKeysIn","isProto","isPrototype","keysIn","isArrayLike","arrayLikeKeys","reIsDeepProp","reIsPlainProp","isKey","type","FUNC_ERROR_TEXT","memoize","resolver","memoized","args","apply","this","cache","has","get","set","Cache","MapCache","MAX_MEMOIZE_SIZE","memoizeCapped","size","clear","rePropName","reEscapeChar","stringToPath","string","charCodeAt","replace","match","number","quote","subString","stringToPath$1","castPath","toKey","baseGet","path","defaultValue","getPrototype","overArg","getPrototypeOf","getPrototype$1","baseAssign","keys","baseAssignIn","freeExports","exports","nodeType","freeModule","module","moduleExports","Buffer","root","allocUnsafe","cloneBuffer","buffer","isDeep","slice","constructor","copy","copySymbols","getSymbols","nativeGetSymbols","getOwnPropertySymbols","getSymbolsIn","stubArray","arrayPush","getSymbolsIn$1","copySymbolsIn","getAllKeysIn","baseGetAllKeys","initCloneArray","input","cloneArrayBuffer","arrayBuffer","byteLength","cloneDataView","dataView","byteOffset","reFlags","cloneRegExp","regexp","exec","lastIndex","symbolValueOf","valueOf","cloneSymbol","symbol","cloneTypedArray","typedArray","boolTag","dateTag","mapTag","numberTag","regexpTag","setTag","stringTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","initCloneByTag","tag","Ctor","initCloneObject","baseIsMap","getTag","nodeIsMap","nodeUtil","isMap","baseUnary","isMap$1","baseIsSet","nodeIsSet","isSet","isSet$1","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","argsTag","arrayTag","errorTag","funcTag","genTag","objectTag","weakMapTag","cloneableTags","baseClone","bitmask","stack","isFlat","isFull","isArr","isFunc","isBuffer","Stack","stacked","forEach","subValue","add","keysFunc","getAllKeys","cloneDeep","getActionForKeyboardEvent","event","keyboardShortcut","keyboardShortcutFromKeyboardEvent","kind","target","GridRadio","checked","row","rowIndex","totalRows","onClick","h","class","_","click","name","tabindex","ref","el","gridCss","WcsGridStyle0","gridRadioCss","WcsGridStyle1","GRID_INHERITED_ATTRS","Grid","inheritedAttributes","col","onCursorPositionChange","getGridColumnsFromTemplate","g","cursorPosition","onDataChange","updateGridRows","refreshSort","onSelectedItemsPropertyChange","updateSelectionWithValues","onFocus","_a","getElementToFocusAtCursorPosition","focus","wcsFocus","emit","onBlur","wcsBlur","hasSelectionColumn","selectionConfig","gridElementsWithCoordinates","find","cell","_b","querySelector","moveCursorPosition","directionX","directionY","totalDisplayedColumnCount","Math","min","max","getRowsForCurrentPage","handleCursorPositionOnEmptyTh","onHiddenColumnChange","forceUpdate","onKeyDown","_event","document","activeElement","tagName","actionsFromKeyboardEvents","preventDefault","actionFromKeyboardEvent","doActionFromKeyboardEventAssociatedAction","onRowSelection","rows","selectAllRows","clickedGridElement","composedPath","filter","x","includes","nodeName","clickedGridElementWithCoordinates","values","map","r","selected","isEqual","data","wcsGridRowToWcsGridRowData","page","columns","cells","column","columnPosition","content","formatter","updatePageIndex","componentDidLoad","paginationEl","wcsGridPaginationId","getElementById","getGridPaginationsFromTemplate","selectedItems","componentWillLoad","assign","inheritAriaAttributes","inheritAttributes","setAriaAttribute","attr","setOrRemoveAttribute","nativeTable","refreshOthersColumnsSortOrderState","first","other","c","serverMode","sortBy","disableSortOrderForColumns","slotted","shadowRoot","assignedElements","gridElements","hidden","querySelectorAll","floor","sortChangeEventHandler","detail","order","sortFn","sort","a","b","itemsCount","pageCount","ceil","pageSize","currentPage","GridPagination","INDEX_FIRST_PAGE","paginationChangeEventHandler","onPaginationChange","paginationChangeEventHandlerOutside","id","wcsGridSelectionChange","selectedRows","changedRow","allRowsAreSelected","wcsGridAllSelectionChange","renderSelectionColumn","atLeastOneColumnHidden","tabIndex","_c","_d","part","onWcsChange","getCellContent","totalColumnCount","render","Host","role","loading","colSpan","renderRow","hiddenColumnCount","rowCssPartsWithoutEmptyList","join","cellIndex","nonHiddenColumnIndex","cursorIsOnCell","customCells","rowIdPath","parts","rowCssPartsFn"],"sources":["src/components/grid/grid-interface.ts","node_modules/uuid/dist/esm-browser/rng.js","node_modules/uuid/dist/esm-browser/regex.js","node_modules/uuid/dist/esm-browser/validate.js","node_modules/uuid/dist/esm-browser/stringify.js","node_modules/uuid/dist/esm-browser/v4.js","node_modules/lodash-es/isSymbol.js","node_modules/lodash-es/_arrayMap.js","node_modules/lodash-es/_baseToString.js","node_modules/lodash-es/_baseCreate.js","node_modules/lodash-es/_copyArray.js","node_modules/lodash-es/_defineProperty.js","node_modules/lodash-es/_arrayEach.js","node_modules/lodash-es/_baseAssignValue.js","node_modules/lodash-es/_assignValue.js","node_modules/lodash-es/_copyObject.js","node_modules/lodash-es/_nativeKeysIn.js","node_modules/lodash-es/_baseKeysIn.js","node_modules/lodash-es/keysIn.js","node_modules/lodash-es/_isKey.js","node_modules/lodash-es/memoize.js","node_modules/lodash-es/_memoizeCapped.js","node_modules/lodash-es/_stringToPath.js","node_modules/lodash-es/toString.js","node_modules/lodash-es/_castPath.js","node_modules/lodash-es/_toKey.js","node_modules/lodash-es/_baseGet.js","node_modules/lodash-es/get.js","node_modules/lodash-es/_getPrototype.js","node_modules/lodash-es/_baseAssign.js","node_modules/lodash-es/_baseAssignIn.js","node_modules/lodash-es/_cloneBuffer.js","node_modules/lodash-es/_copySymbols.js","node_modules/lodash-es/_getSymbolsIn.js","node_modules/lodash-es/_copySymbolsIn.js","node_modules/lodash-es/_getAllKeysIn.js","node_modules/lodash-es/_initCloneArray.js","node_modules/lodash-es/_cloneArrayBuffer.js","node_modules/lodash-es/_cloneDataView.js","node_modules/lodash-es/_cloneRegExp.js","node_modules/lodash-es/_cloneSymbol.js","node_modules/lodash-es/_cloneTypedArray.js","node_modules/lodash-es/_initCloneByTag.js","node_modules/lodash-es/_initCloneObject.js","node_modules/lodash-es/_baseIsMap.js","node_modules/lodash-es/isMap.js","node_modules/lodash-es/_baseIsSet.js","node_modules/lodash-es/isSet.js","node_modules/lodash-es/_baseClone.js","node_modules/lodash-es/cloneDeep.js","src/components/grid/grid-keyboard-event.ts","src/components/grid/grid-radio.tsx","src/components/grid/grid.scss?tag=wcs-grid&encapsulation=shadow","src/components/grid/grid-radio.scss?tag=wcs-grid&encapsulation=shadow","src/components/grid/grid.tsx"],"sourcesContent":["import { VNode } from '@stencil/core';\n\nexport type WcsGridSelectionConfig = 'none' | 'single' | 'multiple';\n\nexport type WcsSortFn = (a: any, b: any, column: HTMLWcsGridColumnElement) => -1 | 0 | 1;\n\nexport type WcsCellFormatter = (_h: HyperFunc<VNode>, column: HTMLWcsGridColumnElement, rowData: WcsGridRowData) => HTMLElement | HTMLElement[];\n\n/**\n * Function that returns an array of CSS parts for a row. Should return an empty array or null/undefined if there are no parts.\n *\n * @param row The row data\n * @returns An array of parts names. Empty array or null/undefined if there are no parts.\n */\nexport type RowCssPartsFn = (row: WcsGridRow) => string[] | null | undefined;\n\n\nexport interface WcsGridColumnSortChangeEventDetails {\n sortFn: WcsSortFn;\n order: WcsSortOrder;\n column: HTMLWcsGridColumnElement;\n}\n\n/**\n * Event details for the grid selection event\n */\nexport interface WcsGridSelectionEventDetails {\n /**\n * The currently selected rows after the selection change\n */\n selectedRows: WcsGridRowData[];\n /**\n * The row that was changed\n * If the grid is in multiple selection mode, you can get `allCheckbox` as the value representing that the event was\n * triggered by the selection of all checkbox\n */\n changedRow: WcsGridRowData | 'allCheckbox';\n}\n\nexport interface WcsGridAllRowSelectedEventDetails {\n rows: WcsGridRowData[];\n}\n\nexport type WcsGridPaginationConfig = {\n currentPage: number;\n pageSize: number;\n itemsCount: number;\n pageCount: number;\n};\n\nexport interface WcsGridPaginationChangeEventDetails {\n pagination: WcsGridPaginationConfig;\n}\n\nexport type WcsSortOrder = 'asc' | 'desc' | 'none';\n\nexport function getSortOrderInteger(sortOrder: WcsSortOrder) {\n switch (sortOrder) {\n case 'asc':\n return 1;\n case 'desc':\n return -1;\n case 'none':\n break;\n }\n}\n\nexport interface WcsGridRow {\n uuid: string;\n page?: number;\n selected?: boolean;\n data?: any;\n cells?: WcsGridCell[];\n}\n\nexport interface WcsGridCell {\n content: string | void;\n column: HTMLWcsGridColumnElement;\n formatter: (_h: HyperFunc<VNode>, column: HTMLWcsGridColumnElement, rowData: WcsGridRowData) => HTMLElement | HTMLElement[];\n}\n\nexport interface WcsGridRowData {\n page: number;\n selected: boolean;\n data: any;\n}\n\nexport interface HyperFunc<T> {\n (tag: any): T;\n}\n\nexport interface HyperFunc<T> {\n (tag: any, data: any): T;\n}\n\nexport interface HyperFunc<T> {\n (tag: any, text: string): T;\n}\n\nexport interface HyperFunc<T> {\n (sel: any, children: (T | undefined | null)[]): T;\n}\n\nexport interface HyperFunc<T> {\n (sel: any, data: any, text: string): T;\n}\n\nexport interface HyperFunc<T> {\n (sel: any, data: any, children: (T | undefined | null)[]): T;\n}\n\nexport interface HyperFunc<T> {\n (sel: any, data: any, children: T): T;\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import { keyboardShortcutFromKeyboardEvent } from \"../../utils/keyboard-event\";\n\n\nexport type KeyboardEventAssociatedAction = FocusCell | SelectRow;\n\n// Possibles Shortcut\n// UP_ARROW : focus cell up\n// DOWN_ARROW : focus cell down\n// LEFT_ARROW : focus cell left\n// RIGHT_ARROW : focus cell right\n\n// HOME : focus first cell of the row\n// END : focus last cell of the row\n\n// CTRL+HOME : focus first cell of the grid\n// CTRL+END : focus first cell of the grid\n\n// IF SELECTION MULTIPLE OR SINGLE :\n// MAJ+SPACE : select (check) the current row\n\n// IF SELECTION MULTIPLE\n// CTRL+A : select (check) all rows\n\ntype FocusCell = {kind: 'FocusCell', target: 'up' | 'down' | 'left' | 'right' | 'first_of_row' | 'last_of_row' | 'first_of_grid' | 'last_of_grid'};\ntype SelectRow = {kind: 'SelectRow', target: 'one' | 'all'}\n\n/**\n * We follow this https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n * @param event\n * @param type\n */\nexport function getActionForKeyboardEvent(event: KeyboardEvent, type: 'grid_no_selection' | 'grid_selection_single' | 'grid_selection_multiple'): KeyboardEventAssociatedAction[] {\n const keyboardShortcut = keyboardShortcutFromKeyboardEvent(event);\n\n if(keyboardShortcut === 'UNKNOWN') {\n return [];\n }\n\n switch (keyboardShortcut) {\n case \"UP_ARROW\":\n return [{kind: 'FocusCell', target: 'up'}];\n case \"DOWN_ARROW\":\n return [{kind: 'FocusCell', target: 'down'}];\n case \"LEFT_ARROW\":\n return [{kind: 'FocusCell', target: 'left'}];\n case \"RIGHT_ARROW\":\n return [{kind: 'FocusCell', target: 'right'}];\n case \"HOME\":\n return [{kind: 'FocusCell', target: 'first_of_row'}];\n case \"END\":\n return [{kind: 'FocusCell', target: 'last_of_row'}];\n case \"MAJ+SPACE\":\n switch (type) {\n case \"grid_selection_single\":\n case \"grid_selection_multiple\":\n return [{kind: 'SelectRow', target: 'one'}];\n case \"grid_no_selection\":\n break;\n }\n break;\n case \"CTRL+A\":\n switch (type) {\n case \"grid_selection_multiple\":\n return [{kind: 'SelectRow', target: 'all'}];\n case \"grid_selection_single\":\n case \"grid_no_selection\":\n break;\n }\n break;\n case \"CTRL+HOME\":\n return [{kind: 'FocusCell', target: 'first_of_grid'}];\n case \"CTRL+END\":\n return [{kind: 'FocusCell', target: 'last_of_grid'}];\n default:\n break;\n }\n\n return [];\n}\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { WcsGridRow } from \"./grid-interface\";\n\ninterface GridRadioProps {\n checked: boolean;\n row: WcsGridRow;\n rowIndex: number,\n totalRows: number,\n onClick: (row: WcsGridRow) => void;\n}\n\nexport const GridRadio: FunctionalComponent<GridRadioProps> = (\n {\n checked,\n row,\n rowIndex,\n totalRows,\n onClick\n }) => {\n let input: HTMLInputElement;\n return (\n <div class={`grid-radio ${checked ? 'checked' : ''}`} onClick={_ => input.click()}>\n <input type=\"radio\"\n name=\"selection\"\n aria-setsize={totalRows}\n aria-posinset={rowIndex}\n tabindex=\"-1\"\n checked={checked}\n aria-checked={`${checked}`}\n ref={(el) => (input = el)}\n onClick={_ => onClick(row)}>\n </input>\n </div>\n );\n}\n","@import '../../style/focus-outline.scss';\n\n:host {\n --wcs-grid-gap: 0;\n --wcs-grid-vertical-align: middle;\n --wcs-grid-outline-color: var(--wcs-semantic-color-border-focus-base);\n\n --wcs-grid-cell-text-color: var(--wcs-semantic-color-text-secondary);\n --wcs-grid-cell-padding-horizontal: var(--wcs-semantic-spacing-large);\n --wcs-grid-cell-padding-vertical: var(--wcs-semantic-spacing-base);\n --wcs-grid-cell-border-bottom: none;\n --wcs-grid-cell-separator-border: none;\n --wcs-grid-first-cell-border-radius: 0;\n --wcs-grid-last-cell-border-radius: 0;\n\n --wcs-grid-highlight-color: var(--wcs-semantic-color-background-surface-accent-lighter);\n --wcs-grid-row-background-color: var(--wcs-semantic-color-background-surface-primary);\n --wcs-grid-row-odd-background-color: var(--wcs-grid-row-background-color);\n --wcs-grid-row-even-background-color: var(--wcs-semantic-color-background-surface-accent-lightest);\n\n /* Grid headers for grid-columns */\n --wcs-grid-header-background-color-default: var(--wcs-semantic-color-background-action-secondary-default);\n --wcs-grid-header-background-color-hover: var(--wcs-semantic-color-background-action-secondary-hover);\n --wcs-grid-header-background-color-press: var(--wcs-semantic-color-background-action-secondary-press);\n --wcs-grid-header-text-color: var(--wcs-semantic-color-text-primary);\n --wcs-grid-header-font-weight: var(--wcs-semantic-font-weight-heavy);\n --wcs-grid-header-font-size: var(--wcs-semantic-font-size-label-1);\n --wcs-grid-header-line-height: var(--wcs-primitive-font-line-height-140);\n --wcs-grid-header-padding-vertical: var(--wcs-semantic-spacing-base);\n --wcs-grid-header-padding-horizontal: var(--wcs-semantic-spacing-large);\n --wcs-grid-header-border-left: none;\n --wcs-grid-header-border-radius: 0;\n --wcs-grid-header-border-bottom: solid var(--wcs-semantic-border-width-default) var(--wcs-semantic-color-border-secondary);\n --wcs-grid-header-transition-duration: var(--wcs-semantic-motion-duration-feedback-fast);\n --wcs-grid-first-header-background-color: var(--wcs-semantic-color-background-action-secondary-default);\n --wcs-grid-first-header-border-radius: 0;\n --wcs-grid-last-header-border-radius: 0;\n --wcs-grid-column-selection-width: calc(5 * var(--wcs-semantic-spacing-base));\n --wcs-grid-header-sort-arrow-color-default: var(--wcs-semantic-color-foreground-action-neutral-default);\n --wcs-grid-header-sort-arrow-color-hover: var(--wcs-semantic-color-foreground-action-neutral-hover);\n\n display: block;\n\n // These selectors cannot be moved in grid-column.scss, because the column itself doesn't know its child order\n // in the DOM, column are rendered one by one\n // 👇\n th {\n // For the header of the selection column (not part of grid-column)\n border-radius: var(--wcs-grid-first-header-border-radius);\n background-color: var(--wcs-grid-first-header-background-color);\n }\n\n ::slotted([slot=grid-column]:first-child) {\n // Remove the border for the first column\n --wcs-grid-header-border-left: none;\n }\n\n // If the grid displays a selection column, we set the border radius and color on the\n // first data column (which has been disabled in :host)\n :host([selection]) {\n ::slotted([slot=grid-column]:first-child) {\n --wcs-component-grid-header-border-radius-first: 0;\n --wcs-grid-header-border-left: var(--wcs-grid-header-border-left);\n }\n }\n\n // 👆\n\n table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: var(--wcs-grid-gap);\n\n thead {\n border-bottom: var(--wcs-grid-header-border-bottom);\n }\n\n tbody {\n vertical-align: var(--wcs-grid-vertical-align);\n }\n }\n\n\n td {\n color: var(--wcs-grid-cell-text-color);\n margin: 0;\n padding: var(--wcs-grid-cell-padding-vertical) var(--wcs-grid-cell-padding-horizontal);\n\n &:focus-visible {\n @include focus-outline($outline-color: var(--wcs-grid-outline-color), $outline-offset: 0);\n }\n\n &:first-child {\n border-radius: var(--wcs-grid-first-cell-border-radius);\n }\n\n &:last-child {\n border-radius: var(--wcs-grid-last-cell-border-radius);\n }\n\n &:not(:first-child) {\n border-left: var(--wcs-grid-cell-separator-border);\n }\n }\n\n tr {\n background-color: var(--wcs-grid-row-background-color);\n\n &:nth-child(odd) {\n background-color: var(--wcs-grid-row-odd-background-color, var(--wcs-grid-row-background-color));\n }\n\n &:nth-child(even) {\n background-color: var(--wcs-grid-row-even-background-color, var(--wcs-grid-row-background-color));\n }\n }\n\n tr:not(:last-child) td {\n border-bottom: var(--wcs-grid-cell-border-bottom);\n }\n\n .wcs-grid-selection-column {\n padding: var(--wcs-grid-cell-padding-vertical) var(--wcs-grid-cell-padding-horizontal);\n width: var(--wcs-grid-column-selection-width);\n text-align: start;\n }\n\n tr.selected {\n background-color: var(--wcs-grid-highlight-color);\n }\n\n .loading {\n text-align: center;\n }\n}\n","@import '../../style/focus-outline.scss';\n\n.grid-radio {\n --wcs-grid-radio-outline-color: var(--wcs-semantic-color-border-focus-base);\n --wcs-grid-radio-padding: calc(var(--wcs-semantic-size-base) / 4);\n --wcs-grid-radio-transition: var(--wcs-semantic-motion-duration-feedback-base);\n --wcs-grid-radio-border-color-default: var(--wcs-semantic-color-border-control-indicator-default);\n --wcs-grid-radio-border-color-selected: var(--wcs-semantic-color-border-control-indicator-selected);\n --wcs-grid-radio-border-color-hover: var(--wcs-semantic-color-border-control-indicator-hover);\n --wcs-grid-radio-border-color-disabled: var(--wcs-semantic-color-border-control-indicator-disabled);\n --wcs-grid-radio-background-color-default: transparent;\n --wcs-grid-radio-background-color-selected: var(--wcs-semantic-color-background-control-indicator-selected);\n --wcs-grid-radio-background-color-disabled: var(--wcs-semantic-color-background-control-indicator-disabled);\n --wcs-grid-radio-inner-border-color: white;\n\n width: fit-content;\n cursor: pointer;\n padding: var(--wcs-grid-radio-padding, 0.125rem);\n\n &:has(input:focus-visible) {\n @include focus-outline($outline-color: var(--wcs-grid-radio-outline-color));\n }\n\n /* If the selector focus-visible is not supported by the browser, use focus-within instead */\n @supports not selector(:has(input:focus-visible)){\n &:focus-within {\n @include focus-outline($outline-color: var(--wcs-grid-radio-outline-color));\n }\n }\n\n input {\n position: absolute;\n opacity: 0;\n height: 1px;\n width: 1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n }\n\n &::before {\n content: \"\";\n display: flex;\n border-radius: 50%;\n border: 2px solid var(--wcs-grid-radio-border-color-default);\n position: relative;\n width: 1.125rem;\n height: 1.125rem;\n box-sizing: border-box;\n background-color: var(--wcs-grid-radio-background-color-default);\n transition: var(--wcs-grid-radio-transition, 0.175s) ease-in-out;\n }\n\n &:hover {\n &::before {\n border-color: var(--wcs-grid-radio-border-color-hover);\n }\n }\n\n &.checked {\n &::before {\n border-color: var(--wcs-grid-radio-border-color-selected);\n background-color: var(--wcs-grid-radio-background-color-selected);\n outline: solid 2px var(--wcs-grid-radio-inner-border-color);\n outline-offset: -4px;\n }\n }\n}\n","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() 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() 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 }\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 * 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 this.updatePageIndex();\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 }\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"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as s,h as e,H as i,g as a}from"./p-32e583ea.js";import{i as n,a as r,s as c,e as o,f as u,h,j as d}from"./p-a3aece7a.js";const l=["m","l"];function f(t){return l.includes(t)}const w="@keyframes spin-animation-up{0%{transform:translateY(0);transform-origin:center;opacity:1}50%{opacity:0.5}100%{transform:translateY(30px);transform-origin:center;opacity:1}}@keyframes spin-animation-down{0%{transform:translateY(0);transform-origin:center;opacity:1}50%{opacity:0.5}100%{transform:translateY(-30px);transform-origin:center;opacity:1}}:host{--wcs-counter-border-radius:var(--wcs-semantic-border-radius-full);--wcs-counter-value-color-default:var(--wcs-semantic-color-text-primary);--wcs-counter-value-color-disabled:var(--wcs-semantic-color-text-tertiary);--wcs-counter-font-weight:var(--wcs-semantic-font-weight-heavy);--wcs-counter-height-m:var(--wcs-semantic-size-m);--wcs-counter-height-l:var(--wcs-semantic-size-l);--wcs-counter-font-size-m:var(--wcs-semantic-font-size-m);--wcs-counter-font-size-l:var(--wcs-semantic-font-size-l);--wcs-counter-padding-m:var(--wcs-semantic-spacing-small);--wcs-counter-padding-l:var(--wcs-semantic-spacing-base);--wcs-counter-background-color:var(--wcs-semantic-color-background-surface-secondary);--wcs-counter-gap:var(--wcs-counter-gap-size-m);--wcs-counter-gap-size-m:calc(1.5 * var(--wcs-semantic-spacing-base));--wcs-counter-gap-size-l:calc(2 * var(--wcs-semantic-spacing-base));--wcs-counter-outline-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-counter-transition-duration:var(--wcs-semantic-motion-duration-feedback-base);display:flex}:host .counter{box-sizing:border-box;height:var(--wcs-counter-height);font-family:var(--wcs-font-sans-serif);font-size:var(--wcs-counter-font-size);font-weight:var(--wcs-counter-font-weight);color:var(--wcs-counter-value-color-default);display:flex;align-items:center;padding:var(--wcs-counter-padding);width:fit-content;overflow:hidden;border-radius:var(--wcs-counter-border-radius);background-color:var(--wcs-counter-background-color);background-clip:padding-box;gap:var(--wcs-counter-gap)}:host .counter:has(.current-value:focus-visible){outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-counter-outline-color-focus);outline-offset:0;border-radius:var(--wcs-counter-border-radius)}@supports not selector(&:has(.current-value:focus-visible)){:host .counter:focus-within{outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-counter-outline-color-focus);outline-offset:0;border-radius:var(--wcs-counter-border-radius)}}:host .counter-container{height:var(--wcs-counter-height);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}:host .outliers{position:absolute}:host #outlier-down{top:calc(var(--wcs-counter-height) / 2 * -1)}:host #outlier-up{bottom:calc(var(--wcs-counter-height) / 2 * -1)}:host .current-value{outline:none}:host .animate-up{animation:spin-animation-up var(--wcs-counter-transition-duration) ease-in-out}:host .animate-down{animation:spin-animation-down var(--wcs-counter-transition-duration) ease-in-out}:host [hidden]{opacity:0}:host([size=m]){--wcs-counter-padding:var(--wcs-counter-padding-m);--wcs-counter-height:var(--wcs-counter-height-m);--wcs-counter-font-size:var(--wcs-counter-font-size-m);--wcs-counter-gap:var(--wcs-counter-gap-size-m)}:host([size=l]){--wcs-counter-padding:var(--wcs-counter-padding-l);--wcs-counter-height:var(--wcs-counter-height-l);--wcs-counter-font-size:var(--wcs-counter-font-size-l);--wcs-counter-gap:var(--wcs-counter-gap-size-l)}:host([disabled]){cursor:not-allowed}:host([disabled]) .counter{color:var(--wcs-counter-value-color-disabled)}";const m=w;const v=["tabindex","title"];const b=.175;const p=class{constructor(e){t(this,e);this.wcsChange=s(this,"wcsChange",7);this.wcsBlur=s(this,"wcsBlur",7);this.inheritedAttributes={};this.animateRunning=false;this.handleDecrement=()=>{if(this.disabled)return;if(this.min===undefined||this.value>this.min){this.animateRunning=true;this.value-=this.step;this.notifyChange();this.animate("up")}};this.handleIncrement=()=>{if(this.disabled)return;if(this.max===undefined||this.value<this.max){this.animateRunning=true;this.value+=this.step;this.notifyChange();this.animate("down")}};this.animate=t=>{this.animateRunning=true;const s=Array.from(this.counterContainer.children).filter((t=>t.classList.contains("outliers")));this.counterContainer.classList.add("animate-"+t);s.forEach((t=>{t.hidden=false}));setTimeout((()=>{this.counterContainer.classList.remove("animate-"+t);s.forEach((t=>{t.hidden=true}));this.displayedValue=this.value;this.animateRunning=false}),1e3*b-20)};this.size="m";this.label=undefined;this.disabled=false;this.min=undefined;this.max=undefined;this.step=1;this.value=undefined;this.displayedValue=undefined}componentWillLoad(){this.handleValueChange();if(!f(this.size)){console.warn(`Invalid size value for wcs-counter : "${this.size}". Must be one of "${l.join(", ")}"`);this.size="m"}this.inheritedAttributes=Object.assign(Object.assign({},n(this.el)),r(this.el,v))}async setAriaAttribute(t,s){c(this.spinButton,t,s)}valueChange(t,s){if(s===t)return;this.handleValueChange()}handleValueChange(){this.setMinimumIfValueIsUndefinedOrNull();this.ensureValueIsNotOutOfMinMax();this.updateDisplayValueIfNoAnimationRunning()}updateDisplayValueIfNoAnimationRunning(){if(!this.animateRunning){this.displayedValue=this.value}}ensureValueIsNotOutOfMinMax(){if(this.max!==undefined&&this.value>this.max){this.value=this.max}else if(this.min!==undefined&&this.value<this.min){this.value=this.min}}setMinimumIfValueIsUndefinedOrNull(){var t;if(this.value===undefined||this.value===null){this.value=(t=this.min)!==null&&t!==void 0?t:0}}onKeyDown(t){if(this.disabled)return;if(o(t)){t.preventDefault();this.handleIncrement()}if(u(t)){t.preventDefault();this.handleDecrement()}if(h(t)){t.preventDefault();if(this.min!=null){this.value=this.min;this.displayedValue=this.value;this.notifyChange()}}if(d(t)){t.preventDefault();if(this.max!=null){this.value=this.max;this.displayedValue=this.value;this.notifyChange()}}}notifyChange(){this.wcsChange.emit({value:this.value})}render(){return e(i,{key:"d434b2eec575d309f38d01c6e41098d0642e46f8"},e("div",{key:"03b667ad64ca4df8d7c46ac0091abdaff9c99227",class:"counter"},e("wcs-button",{key:"365f153616e5f96d2d00441c535cbe8d6d3014d6",class:"wcs-primary",shape:"round",size:"s",tabindex:-1,onClick:()=>this.handleDecrement(),onBlur:t=>this.wcsBlur.emit(t),disabled:this.disabled||this.value===this.min},e("wcs-mat-icon",{key:"7c8d7c723648ef133cdf2da19dd29daf65a4a997",icon:"remove",size:"s"})),e("div",{key:"c07088653c5a8d08e6cfe039cfa8386ec6daf8cf",class:"counter-container",ref:t=>this.counterContainer=t},e("span",{key:"7f048ddef2bacb1a8c4bd7167afe9e51cd3116e8",id:"outlier-down",class:"outliers",hidden:true,"aria-hidden":"true"},this.displayedValue-this.step),e("span",Object.assign({key:"d1f38d3ca08a2f8ddf6b71c5585e96e1cec9b3b7",tabindex:this.disabled?-1:0,role:"spinbutton",ref:t=>this.spinButton=t,class:"current-value",onBlur:t=>this.wcsBlur.emit(t),onKeyDown:t=>this.onKeyDown(t),"aria-disabled":this.disabled?"true":null,"aria-valuenow":this.value,"aria-valuetext":this.value,"aria-valuemin":this.min,"aria-valuemax":this.max,"aria-label":this.label},this.inheritedAttributes),this.displayedValue),e("span",{key:"ace304e6764d87d3cc774cd4d22cac39b2012c0f",id:"outlier-up",class:"outliers",hidden:true,"aria-hidden":"true"},this.displayedValue+this.step)),e("wcs-button",{key:"ab7241308c768ee562921707ecfffba03b8e57d7",class:"wcs-primary",shape:"round",size:"s",tabindex:-1,onClick:()=>this.handleIncrement(),onBlur:t=>this.wcsBlur.emit(t),disabled:this.disabled||this.value===this.max},e("wcs-mat-icon",{key:"4b3bd5cceb59cfd6b6d4a95c07da1f33c64f6347",icon:"add",size:"s"}))))}static get delegatesFocus(){return true}get el(){return a(this)}static get watchers(){return{value:["valueChange"]}}};p.style=m;export{p as wcs_counter};
|
|
2
|
-
//# sourceMappingURL=p-985c4cf2.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["WcsCounterSizeValues","isWcsCounterSize","size","includes","counterCss","WcsCounterStyle0","COUNTER_INHERITED_ATTRS","ANIMATION_DURATION","Counter","this","inheritedAttributes","animateRunning","handleDecrement","disabled","min","undefined","value","step","notifyChange","animate","handleIncrement","max","direction","outliers","Array","from","counterContainer","children","filter","span","classList","contains","add","forEach","hidden","setTimeout","remove","displayedValue","componentWillLoad","handleValueChange","console","warn","join","Object","assign","inheritAriaAttributes","el","inheritAttributes","setAriaAttribute","attr","setOrRemoveAttribute","spinButton","valueChange","newVal","oldVal","setMinimumIfValueIsUndefinedOrNull","ensureValueIsNotOutOfMinMax","updateDisplayValueIfNoAnimationRunning","_a","onKeyDown","_event","isKeyup","preventDefault","isKeydown","isHomeKey","isEndKey","wcsChange","emit","render","h","Host","key","class","shape","tabindex","onClick","onBlur","event","wcsBlur","icon","ref","input","id","role","label"],"sources":["src/components/counter/counter-interface.ts","src/components/counter/counter.scss?tag=wcs-counter&encapsulation=shadow","src/components/counter/counter.tsx"],"sourcesContent":["import { WcsSize } from \"../../shared-types\";\n\nexport interface CounterChangeEventDetail {\n value: number;\n}\n\nexport const WcsCounterSizeValues = ['m', 'l'] as const; // as const keyword is used to infer and preserve the exact literal values of an array or object.\n\nexport type WcsCounterSize = Extract<WcsSize, typeof WcsCounterSizeValues[number]>;\n\nexport function isWcsCounterSize(size: string): size is WcsCounterSize {\n // @ts-ignore : ignore size type, as it is checked with WcsInputSizeValues\n return WcsCounterSizeValues.includes(size);\n}\n","@import '../../style/focus-outline.scss';\n\n@keyframes spin-animation-up {\n 0% {\n transform: translateY(0);\n transform-origin: center;\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n 100% {\n transform: translateY(30px);\n transform-origin: center;\n opacity: 1;\n }\n}\n\n@keyframes spin-animation-down {\n 0% {\n transform: translateY(0);\n transform-origin: center;\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n 100% {\n transform: translateY(-30px);\n transform-origin: center;\n opacity: 1;\n }\n}\n\n:host {\n --wcs-counter-border-radius: var(--wcs-semantic-border-radius-full);\n\n --wcs-counter-value-color-default: var(--wcs-semantic-color-text-primary);\n --wcs-counter-value-color-disabled: var(--wcs-semantic-color-text-tertiary);\n --wcs-counter-font-weight: var(--wcs-semantic-font-weight-heavy);\n\n --wcs-counter-height-m: var(--wcs-semantic-size-m);\n --wcs-counter-height-l: var(--wcs-semantic-size-l);\n --wcs-counter-font-size-m: var(--wcs-semantic-font-size-m);\n --wcs-counter-font-size-l: var(--wcs-semantic-font-size-l);\n --wcs-counter-padding-m: var(--wcs-semantic-spacing-small);\n --wcs-counter-padding-l: var(--wcs-semantic-spacing-base);\n\n --wcs-counter-background-color: var(--wcs-semantic-color-background-surface-secondary);\n --wcs-counter-gap: var(--wcs-counter-gap-size-m);\n --wcs-counter-gap-size-m: calc(1.5 * var(--wcs-semantic-spacing-base));\n --wcs-counter-gap-size-l: calc(2 * var(--wcs-semantic-spacing-base));\n --wcs-counter-outline-color-focus: var(--wcs-semantic-color-border-focus-base);\n\n --wcs-counter-transition-duration: var(--wcs-semantic-motion-duration-feedback-base);\n\n display: flex;\n\n\n .counter {\n box-sizing: border-box;\n height: var(--wcs-counter-height);\n font-family: var(--wcs-font-sans-serif);\n font-size: var(--wcs-counter-font-size);\n font-weight: var(--wcs-counter-font-weight);\n color: var(--wcs-counter-value-color-default);\n display: flex;\n align-items: center;\n padding: var(--wcs-counter-padding);\n width: fit-content;\n overflow: hidden;\n border-radius: var(--wcs-counter-border-radius);\n background-color: var(--wcs-counter-background-color);\n background-clip: padding-box;\n gap: var(--wcs-counter-gap);\n\n &:has(.current-value:focus-visible) {\n @include focus-outline($outline-color: var(--wcs-counter-outline-color-focus), $border-radius: var(--wcs-counter-border-radius), $outline-offset: 0);\n }\n\n @supports not selector(&:has(.current-value:focus-visible)){\n &:focus-within {\n @include focus-outline($outline-color: var(--wcs-counter-outline-color-focus), $border-radius: var(--wcs-counter-border-radius), $outline-offset: 0);\n }\n }\n }\n\n .counter-container {\n height: var(--wcs-counter-height);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: relative;\n }\n\n .outliers {\n position: absolute;\n }\n\n #outlier-down {\n top: calc((var(--wcs-counter-height) / 2) * -1);\n }\n\n #outlier-up {\n bottom: calc((var(--wcs-counter-height) / 2) * -1);\n }\n\n .current-value {\n outline: none;\n }\n\n .animate-up {\n animation: spin-animation-up var(--wcs-counter-transition-duration) ease-in-out;\n }\n\n .animate-down {\n animation: spin-animation-down var(--wcs-counter-transition-duration) ease-in-out;\n }\n\n [hidden] {\n opacity: 0;\n }\n}\n\n:host([size='m']) { // Default\n --wcs-counter-padding: var(--wcs-counter-padding-m);\n --wcs-counter-height: var(--wcs-counter-height-m);\n --wcs-counter-font-size: var(--wcs-counter-font-size-m);\n --wcs-counter-gap: var(--wcs-counter-gap-size-m);\n}\n\n:host([size='l']) {\n --wcs-counter-padding: var(--wcs-counter-padding-l);\n --wcs-counter-height: var(--wcs-counter-height-l);\n --wcs-counter-font-size: var(--wcs-counter-font-size-l);\n --wcs-counter-gap: var(--wcs-counter-gap-size-l);\n}\n\n:host([disabled]) {\n cursor: not-allowed;\n\n .counter {\n color: var(--wcs-counter-value-color-disabled);\n }\n}\n","import {\n Component,\n ComponentInterface, Element,\n Event,\n EventEmitter,\n h,\n Host, Method,\n Prop,\n State,\n Watch\n} from '@stencil/core';\nimport {\n inheritAriaAttributes,\n inheritAttributes,\n isEndKey,\n isHomeKey,\n isKeydown,\n isKeyup,\n setOrRemoveAttribute\n} from '../../utils/helpers';\nimport { CounterChangeEventDetail, isWcsCounterSize, WcsCounterSize, WcsCounterSizeValues } from './counter-interface';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\nconst COUNTER_INHERITED_ATTRS = ['tabindex', 'title'];\n\nconst ANIMATION_DURATION = 0.175 // seconds\n\n/**\n * Counter component, meant to be used for small range of values (e.g : 0 - 5).<br>\n * For larger or specific ranges, please use [wcs-input (type number)](.?path=/docs/components-input--documentation)\n * \n * @cssprop --wcs-counter-border-radius - Border radius of the counter\n * \n * @cssprop --wcs-counter-value-color-default - Default color of the value \n * @cssprop --wcs-counter-value-color-disabled - Color of the text when the counter is disabled\n * @cssprop --wcs-counter-font-weight - Font weight of the value\n * \n * @cssprop --wcs-counter-height-m - Height medium of the counter\n * @cssprop --wcs-counter-height-l - Height large of the counter\n * @cssprop --wcs-counter-font-size-m - Font size medium of the counter\n * @cssprop --wcs-counter-font-size-l - Font size large of the counter\n * @cssprop --wcs-counter-padding-m - Padding medium of the counter\n * @cssprop --wcs-counter-padding-l - Padding large of the counter\n * \n * @cssprop --wcs-counter-background-color - Background color of the counter\n * @cssprop --wcs-counter-gap - Gap between the buttons and the label\n * @cssprop --wcs-counter-gap-size-m - Gap between the buttons and the label when the size is M\n * @cssprop --wcs-counter-gap-size-l - Gap between the buttons and the label when the size is L\n * @cssprop --wcs-counter-outline-color-focus - Color of the focus outline\n *\n * @cssprop --wcs-counter-transition-duration - Duration of the animation\n * \n */\n@Component({\n tag: 'wcs-counter',\n styleUrl: 'counter.scss',\n shadow: {\n delegatesFocus: true\n },\n})\nexport class Counter implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private spinButton!: HTMLSpanElement;\n private counterContainer!: HTMLDivElement;\n private inheritedAttributes: { [k: string]: any } = {};\n\n /**\n * Specify the size (height) of the counter.\n */\n @Prop({reflect: true}) size: WcsCounterSize = 'm';\n\n /**\n * The label of the counter.<br/>\n * e.g. Number of passengers, train carriages, railroad tracks...\n */\n @Prop({mutable: false}) label!: string;\n\n /**\n * Specify whether the counter is disabled or not.\n */\n @Prop() disabled = false;\n\n /**\n * The minimum value of the counter.\n * If the value of the min attribute isn't set, then the element has no minimum value.\n */\n @Prop({mutable: true}) min?: number;\n\n /**\n * The maximum value of the counter.\n * If the value of the max attribute isn't set, then the element has no maximum value.\n */\n @Prop({mutable: true}) max?: number;\n\n /**\n * Defines by how much the counter will be incremented or decremented.\n */\n @Prop({mutable: true}) step: number = 1;\n\n /**\n * Emitted when the value of the counter has changed.\n */\n @Event() wcsChange!: EventEmitter<CounterChangeEventDetail>;\n\n /**\n * The current value of the counter.\n */\n @Prop({mutable: true}) value!: number;\n\n /**\n * Only for animation and display purpose\n */\n @State() private displayedValue: number;\n\n private animateRunning = false;\n\n /**\n * Emitted when the counter loses focus.\n */\n @Event() wcsBlur!: EventEmitter<FocusEvent>;\n\n componentWillLoad() {\n this.handleValueChange();\n\n if (!isWcsCounterSize(this.size)) {\n console.warn(`Invalid size value for wcs-counter : \"${this.size}\". Must be one of \"${WcsCounterSizeValues.join(', ')}\"`);\n this.size = \"m\"; // Default fallback value\n }\n\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, COUNTER_INHERITED_ATTRS),\n };\n }\n \n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.spinButton, attr, value);\n }\n \n /**\n * Current value change => handle event and interval\n */\n @Watch('value')\n valueChange(newVal: any, oldVal: any) {\n if(oldVal === newVal) return;\n\n this.handleValueChange();\n }\n\n private handleValueChange() {\n this.setMinimumIfValueIsUndefinedOrNull();\n this.ensureValueIsNotOutOfMinMax();\n this.updateDisplayValueIfNoAnimationRunning();\n }\n\n private updateDisplayValueIfNoAnimationRunning() {\n if (!this.animateRunning) {\n this.displayedValue = this.value;\n }\n }\n\n private ensureValueIsNotOutOfMinMax() {\n if (this.max !== undefined && this.value > this.max) {\n this.value = this.max;\n } else if (this.min !== undefined && this.value < this.min) {\n this.value = this.min;\n }\n }\n\n private setMinimumIfValueIsUndefinedOrNull() {\n if (this.value === undefined || this.value === null) {\n this.value = this.min ?? 0;\n }\n }\n\n onKeyDown(_event: KeyboardEvent) {\n if (this.disabled) return; \n \n if (isKeyup(_event)) {\n _event.preventDefault();\n this.handleIncrement()\n }\n if (isKeydown(_event)) {\n _event.preventDefault();\n this.handleDecrement()\n }\n if (isHomeKey(_event)) {\n _event.preventDefault();\n if (this.min != null) {\n this.value = this.min;\n this.displayedValue = this.value;\n this.notifyChange();\n }\n }\n if (isEndKey(_event)) {\n _event.preventDefault();\n if (this.max != null) {\n this.value = this.max;\n this.displayedValue = this.value;\n this.notifyChange();\n }\n }\n }\n\n private notifyChange() {\n this.wcsChange.emit({\n value: this.value\n });\n }\n \n private handleDecrement = () => {\n if (this.disabled) return;\n if (this.min === undefined || this.value > this.min) {\n // we set animateRunning here to prevent the watch method on value prop from affecting the displayed value\n // before the animation runs.\n this.animateRunning = true; \n this.value -= this.step;\n this.notifyChange();\n this.animate('up');\n }\n };\n\n private handleIncrement = () => {\n if (this.disabled) return;\n if (this.max === undefined || this.value < this.max) {\n // we set animateRunning here to prevent the watch method on value prop from affecting the displayed value\n // before the animation runs.\n this.animateRunning = true; \n this.value += this.step;\n this.notifyChange();\n this.animate('down');\n }\n };\n\n private animate = (direction: 'up' | 'down'): void => {\n // In case someone call animate function, we want ensured that animateRunning is set to true to prevent other \n // method to mutate the displayedValue.\n this.animateRunning = true; \n\n const outliers = Array.from(this.counterContainer.children)\n .filter((span: HTMLSpanElement) => span.classList.contains('outliers'));\n\n this.counterContainer.classList.add('animate-' + direction);\n outliers.forEach((span: HTMLSpanElement) => {\n span.hidden = false;\n });\n setTimeout(() => {\n this.counterContainer.classList.remove('animate-' + direction);\n outliers.forEach((span: HTMLSpanElement) => {\n span.hidden = true;\n });\n this.displayedValue = this.value;\n\n this.animateRunning = false;\n }, 1000 * ANIMATION_DURATION - 20);\n }\n\n render() {\n return (\n <Host>\n <div class=\"counter\">\n <wcs-button class=\"wcs-primary\"\n shape=\"round\"\n size=\"s\"\n tabindex={-1}\n onClick={() => this.handleDecrement()}\n onBlur={(event) => this.wcsBlur.emit(event)}\n disabled={this.disabled || this.value === this.min}>\n <wcs-mat-icon icon=\"remove\" size=\"s\"></wcs-mat-icon> \n </wcs-button>\n <div class=\"counter-container\" ref={input => this.counterContainer = input}>\n <span id=\"outlier-down\"\n class=\"outliers\"\n hidden\n aria-hidden=\"true\">{this.displayedValue - this.step}</span>\n <span tabindex={this.disabled ? -1 : 0}\n role=\"spinbutton\"\n ref={(el) => this.spinButton = el}\n class=\"current-value\"\n onBlur={(event) => this.wcsBlur.emit(event)}\n onKeyDown={(event) => this.onKeyDown(event)}\n aria-disabled={this.disabled ? 'true' : null}\n aria-valuenow={this.value}\n aria-valuetext={this.value}\n aria-valuemin={this.min}\n aria-valuemax={this.max}\n aria-label={this.label}\n {...this.inheritedAttributes}>{this.displayedValue}</span>\n <span id=\"outlier-up\"\n class=\"outliers\"\n hidden\n aria-hidden=\"true\">{this.displayedValue + this.step}</span>\n </div>\n <wcs-button class=\"wcs-primary\"\n shape=\"round\"\n size=\"s\"\n tabindex={-1}\n onClick={() => this.handleIncrement()}\n onBlur={(event) => this.wcsBlur.emit(event)}\n disabled={this.disabled || this.value === this.max}>\n <wcs-mat-icon icon=\"add\" size=\"s\"></wcs-mat-icon>\n </wcs-button>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as s,h as r,g as a}from"./p-32e583ea.js";import{i as e,a as o,s as c}from"./p-a3aece7a.js";const t=":host{--wcs-progress-bar-border-radius:var(--wcs-semantic-border-radius-full);--wcs-progress-bar-border-radius-small:var(--wcs-semantic-border-radius-small);--wcs-progress-bar-animation-duration:var(--wcs-semantic-motion-duration-feedback-slower);--wcs-progress-bar-height-m:calc(var(--wcs-semantic-size-m) / 4);--wcs-progress-bar-height-s:calc(var(--wcs-semantic-size-s) / 6);--wcs-progress-bar-background-color:transparent;--wcs-progress-bar-rail-color:var(--wcs-semantic-color-background-surface-tertiary);--wcs-progress-bar-rail-spacing:var(--wcs-semantic-spacing-small);--wcs-progress-bar-gap-s:var(--wcs-semantic-spacing-small);--wcs-progress-bar-gap-m:var(--wcs-semantic-spacing-base);--wcs-progress-bar-indicator-color:var(--wcs-semantic-color-background-surface-brand);--wcs-progress-bar-label-color:var(--wcs-semantic-color-text-primary);--wcs-progress-bar-label-font-size-s:var(--wcs-semantic-font-size-s);--wcs-progress-bar-label-font-size-m:calc(1.5 * var(--wcs-semantic-font-size-m));--wcs-progress-bar-label-font-weight:var(--wcs-semantic-font-weight-medium);--wcs-progress-bar-label-percentage-font-size-s:calc(var(--wcs-semantic-font-size-s) * 0.7);--wcs-progress-bar-label-percentage-font-size-m:calc(var(--wcs-semantic-font-size-m) * 0.7);--wcs-progress-bar-label-top-space:var(--wcs-semantic-spacing-large)}:host([size=s]) .progress{height:var(--wcs-progress-bar-height-s);background-color:var(--wcs-progress-bar-background-color);background-image:none;background-size:auto;border-radius:var(--wcs-progress-bar-border-radius-small)}:host([size=s]) .progress .progress-label{font-size:var(--wcs-progress-bar-label-font-size-s);bottom:calc(100% + var(--wcs-progress-bar-gap-s))}:host([size=s]) .progress .progress-label sup{font-size:var(--wcs-progress-bar-label-percentage-font-size-s)}.progress{display:flex;height:var(--wcs-progress-bar-height-m);color:var(--wcs-progress-bar-label-color);background-color:var(--wcs-progress-bar-background-color);background-image:linear-gradient(90deg, var(--wcs-progress-bar-rail-color), 50%, transparent 50%);background-size:var(--wcs-progress-bar-rail-spacing) var(--wcs-progress-bar-height-m);border-radius:var(--wcs-progress-bar-border-radius)}.progress.has-label{margin-top:var(--wcs-progress-bar-label-top-space)}.progress.value-zero>.progress-bar>.progress-label{right:unset}.progress-bar{position:relative;display:flex;flex-direction:column;justify-content:center;color:var(--wcs-progress-bar-label-color);text-align:center;background-color:var(--wcs-progress-bar-indicator-color);border-radius:var(--wcs-progress-bar-border-radius);transition:width var(--wcs-progress-bar-animation-duration) ease-out}.progress-label{line-height:1;position:absolute;right:0;bottom:calc(100% + var(--wcs-progress-bar-gap-m));display:flex;flex-direction:row;align-items:flex-start;font-size:var(--wcs-progress-bar-label-font-size-m);font-weight:var(--wcs-progress-bar-label-font-weight)}.progress-label sup{font-size:var(--wcs-progress-bar-label-percentage-font-size-m)}";const i=t;const l=["title"];const b=class{constructor(r){s(this,r);this.inheritedAttributes={};this.size="m";this.showLabel=false;this.value=0}componentWillLoad(){this.inheritedAttributes=Object.assign(Object.assign({},e(this.el)),o(this.el,l))}async setAriaAttribute(s,r){c(this.nativeProgress,s,r)}render(){const s={width:this.value+"%"};return r("div",Object.assign({key:"5eafbef962694edca0d5df1ba278305024b62c52",class:this.rootClasses(),role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":this.value,"aria-valuetext":this.value+"%",ref:s=>this.nativeProgress=s},this.inheritedAttributes),r("div",{key:"247b91b7898ef6c1c2ee16100bc344ec633beb9b",class:"progress-bar",style:s},this.showLabel&&r("span",{key:"24da06a23d7c1bae748872823defd844302d6d64",class:"progress-label"},this.value,r("sup",{key:"0deaf0870a815c32d8c45767f12c41b4ee8b493b"},"%"))))}rootClasses(){let s="progress";if(this.showLabel)s+=" has-label";if(this.value===0)s+=" value-zero";return s}get el(){return a(this)}};b.style=i;export{b as wcs_progress_bar};
|
|
2
|
-
//# sourceMappingURL=p-9f23c49e.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["progressBarCss","WcsProgressBarStyle0","PROGRESS_BAR_ARIA_INHERITED_ATTRS","ProgressBar","this","inheritedAttributes","componentWillLoad","Object","assign","inheritAriaAttributes","el","inheritAttributes","setAriaAttribute","attr","value","setOrRemoveAttribute","nativeProgress","render","style","width","h","key","class","rootClasses","role","ref","showLabel","classes"],"sources":["src/components/progress-bar/progress-bar.scss?tag=wcs-progress-bar&encapsulation=shadow","src/components/progress-bar/progress-bar.tsx"],"sourcesContent":[":host {\n --wcs-progress-bar-border-radius: var(--wcs-semantic-border-radius-full);\n --wcs-progress-bar-border-radius-small: var(--wcs-semantic-border-radius-small);\n --wcs-progress-bar-animation-duration: var(--wcs-semantic-motion-duration-feedback-slower);\n\n --wcs-progress-bar-height-m: calc(var(--wcs-semantic-size-m) / 4);\n --wcs-progress-bar-height-s: calc(var(--wcs-semantic-size-s) / 6);\n --wcs-progress-bar-background-color: transparent;\n\n --wcs-progress-bar-rail-color: var(--wcs-semantic-color-background-surface-tertiary);\n --wcs-progress-bar-rail-spacing: var(--wcs-semantic-spacing-small);\n\n --wcs-progress-bar-gap-s: var(--wcs-semantic-spacing-small);\n --wcs-progress-bar-gap-m: var(--wcs-semantic-spacing-base);\n\n --wcs-progress-bar-indicator-color: var(--wcs-semantic-color-background-surface-brand);\n --wcs-progress-bar-label-color: var(--wcs-semantic-color-text-primary);\n --wcs-progress-bar-label-font-size-s: var(--wcs-semantic-font-size-s);\n --wcs-progress-bar-label-font-size-m: calc(1.5 * var(--wcs-semantic-font-size-m));\n --wcs-progress-bar-label-font-weight: var(--wcs-semantic-font-weight-medium);\n --wcs-progress-bar-label-percentage-font-size-s: calc(var(--wcs-semantic-font-size-s) * 0.7);\n --wcs-progress-bar-label-percentage-font-size-m: calc(var(--wcs-semantic-font-size-m) * 0.7);\n --wcs-progress-bar-label-top-space: var(--wcs-semantic-spacing-large);\n}\n\n:host([size=s]) {\n .progress {\n height: var(--wcs-progress-bar-height-s);\n background-color: var(--wcs-progress-bar-background-color);\n background-image: none;\n background-size: auto;\n border-radius: var(--wcs-progress-bar-border-radius-small);\n\n .progress-label {\n font-size: var(--wcs-progress-bar-label-font-size-s);\n bottom: calc(100% + var(--wcs-progress-bar-gap-s));\n\n sup {\n font-size: var(--wcs-progress-bar-label-percentage-font-size-s);\n }\n }\n }\n}\n\n.progress {\n display: flex;\n height: var(--wcs-progress-bar-height-m);\n color: var(--wcs-progress-bar-label-color);\n background-color: var(--wcs-progress-bar-background-color);\n background-image: linear-gradient(90deg, var(--wcs-progress-bar-rail-color), 50%, transparent 50%);\n background-size: var(--wcs-progress-bar-rail-spacing) var(--wcs-progress-bar-height-m);\n border-radius: var(--wcs-progress-bar-border-radius);\n\n &.has-label {\n margin-top: var(--wcs-progress-bar-label-top-space);\n }\n\n // FIXME: Temporary fix so the label doesn't appear before the bar\n &.value-zero > .progress-bar > .progress-label {\n right: unset;\n }\n}\n\n.progress-bar {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: var(--wcs-progress-bar-label-color);\n text-align: center;\n background-color: var(--wcs-progress-bar-indicator-color);\n border-radius: var(--wcs-progress-bar-border-radius);\n transition: width var(--wcs-progress-bar-animation-duration) ease-out;\n}\n\n.progress-label {\n line-height: 1; // to remove extra-space (https://www.reddit.com/r/css/comments/z5zazq/mysterious_spacing_around_all_text_not_padding_or/\n position: absolute;\n right: 0;\n bottom: calc(100% + var(--wcs-progress-bar-gap-m));\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n\n font-size: var(--wcs-progress-bar-label-font-size-m);\n font-weight: var(--wcs-progress-bar-label-font-weight);\n\n sup {\n font-size: var(--wcs-progress-bar-label-percentage-font-size-m);\n }\n}\n","import { Component, ComponentInterface, Element, h, Method, Prop } from '@stencil/core';\nimport { WcsSize } from \"../../shared-types\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\n\nconst PROGRESS_BAR_ARIA_INHERITED_ATTRS = ['title'];\n\n/**\n * The progress-bar component is a horizontal bar that indicates the current completion of a task.\n *\n * ## Accessibility guidelines 💡\n * > Aria attributes and how to display the progress-bar depend on the use case in your application :\n * >\n * > - **Case 1 : decorative**\n * > If the progress-bar is used as a decoration _(if removed, the user doesn't lose any relevant information)_ or in the\n * > context of another component _(such as progress-bar in a card, stepper, ...)_ => **you don't need to show the label nor add an aria-label**.\n * >\n * > - **Case 2 : informative**\n * > If the progress-bar is used to convey important information _(e.g., form completion status, dashboard KPI)_, you need to :\n * > - **Provide a visible label** that describes the purpose of the progress-bar.\n * > - **Set the `showLabel` property to `true`** to show the percentage above the progress-bar.\n * > - Optionally, use aria-label to provide an accessible name if a visible label is not present.\n *\n * @cssprop --wcs-progress-bar-border-radius - Border radius\n * @cssprop --wcs-progress-bar-border-radius-small - Border radius for size small\n * @cssprop --wcs-progress-bar-animation-duration - Animation duration\n * \n * @cssprop --wcs-progress-bar-height-m - Height for size medium\n * @cssprop --wcs-progress-bar-height-s - Height for size small\n * @cssprop --wcs-progress-bar-background-color - Background color of the progress bar\n * @cssprop --wcs-progress-bar-rail-color - Rail color (dashed line)\n * @cssprop --wcs-progress-bar-rail-spacing - Space between the rail dashes\n * @cssprop --wcs-progress-bar-gap-s - Gap between the progress bar and the label for size small\n * @cssprop --wcs-progress-bar-gap-m - Gap between the progress bar and the label for size medium\n * @cssprop --wcs-progress-bar-indicator-color - Color of the progress bar indicator (bar on top of the rail)\n * @cssprop --wcs-progress-bar-label-color - Color of the label\n * @cssprop --wcs-progress-bar-label-font-size-s - Font size of the label for size small\n * @cssprop --wcs-progress-bar-label-font-size-m - Font size of the label for size medium\n * @cssprop --wcs-progress-bar-label-font-weight - Font weight of the label\n * @cssprop --wcs-progress-bar-label-percentage-font-size-s - Font size of the percentage for size small\n * @cssprop --wcs-progress-bar-label-percentage-font-size-m - Font size of the percentage for size medium\n * @cssprop --wcs-progress-bar-label-top-space - Space on top of the progress bar when label is displayed\n */\n@Component({\n tag: 'wcs-progress-bar',\n styleUrl: 'progress-bar.scss',\n shadow: true\n})\nexport class ProgressBar implements ComponentInterface, MutableAriaAttribute {\n\n @Element() private el!: HTMLWcsProgressBarElement;\n private nativeProgress!: HTMLDivElement;\n private inheritedAttributes: { [k: string]: any } = {};\n\n\n /**\n * Specify the size of the progress bar.\n * m = default, s = smaller\n */\n @Prop() size: Extract<WcsSize, 'm' | 's'> = 'm';\n\n /**\n * Whether it displays a label indicating the percentage of progress above the bar.\n */\n @Prop() showLabel: boolean = false;\n\n /**\n * The actual value of the progress.\n * Ranging from 0 to 100.\n */\n @Prop() value: number = 0;\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, PROGRESS_BAR_ARIA_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeProgress, attr, value);\n }\n\n render() {\n const style = {\n width: this.value + '%'\n };\n\n return (\n <div class={this.rootClasses()}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={this.value}\n aria-valuetext={this.value + '%'}\n ref={(el) => (this.nativeProgress = el)}\n {...this.inheritedAttributes}>\n <div class=\"progress-bar\" style={style}>\n {this.showLabel &&\n <span class=\"progress-label\">\n {this.value}<sup>%</sup>\n </span>\n }\n </div>\n </div>\n );\n }\n\n rootClasses(): string {\n let classes = 'progress';\n if (this.showLabel) classes += ' has-label';\n // FIXME: Temporary fix so the label doesn't appear before the bar.\n if (this.value === 0) classes += ' value-zero';\n return classes;\n }\n}\n"],"mappings":"oGAAA,MAAMA,EAAiB,28FACvB,MAAAC,EAAeD,ECKf,MAAME,EAAoC,CAAC,S,MA2C9BC,EAAW,M,yBAIZC,KAAAC,oBAA4C,G,UAOR,I,eAKf,M,WAML,C,CAExB,iBAAAC,GACIF,KAAKC,oBAAmBE,OAAAC,OAAAD,OAAAC,OAAA,GACjBC,EAAsBL,KAAKM,KAC3BC,EAAkBP,KAAKM,GAAIR,G,CAKtC,sBAAMU,CAAiBC,EAAyBC,GAC5CC,EAAqBX,KAAKY,eAAgBH,EAAMC,E,CAGpD,MAAAG,GACI,MAAMC,EAAQ,CACVC,MAAOf,KAAKU,MAAQ,KAGxB,OACIM,EAAA,MAAAb,OAAAC,OAAA,CAAAa,IAAA,2CAAKC,MAAOlB,KAAKmB,cACZC,KAAK,cAAa,gBACJ,IAAG,gBACH,MAAK,gBACJpB,KAAKU,MAAK,iBACTV,KAAKU,MAAQ,IAC7BW,IAAMf,GAAQN,KAAKY,eAAiBN,GAChCN,KAAKC,qBACVe,EAAA,OAAAC,IAAA,2CAAKC,MAAM,eAAeJ,MAAOA,GAC5Bd,KAAKsB,WACFN,EAAA,QAAAC,IAAA,2CAAMC,MAAM,kBACrBlB,KAAKU,MAAMM,EAAA,OAAAC,IAAA,mD,CAQtB,WAAAE,GACI,IAAII,EAAU,WACd,GAAIvB,KAAKsB,UAAWC,GAAW,aAE/B,GAAIvB,KAAKU,QAAU,EAAGa,GAAW,cACjC,OAAOA,C"}
|
package/dist/wcs/p-a3aece7a.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function a(a){return"clientWidth"in a&&"clientHeight"in a}function r(a){return!!a.shadowRoot&&!!a.attachShadow}const n=(a,r)=>{const n=a._original||a;return{_original:a,emit:e(n.emit.bind(n),r)}};const e=(a,r=0)=>{let n;return(...e)=>{clearTimeout(n);n=setTimeout(a,r,...e)}};const i=(a,r=[])=>{const n={};r.forEach((r=>{if(a.hasAttribute(r)){const e=a.getAttribute(r);if(e!==null){n[r]=a.getAttribute(r)}a.removeAttribute(r)}}));return n};const t=["role","aria-activedescendant","aria-atomic","aria-autocomplete","aria-braillelabel","aria-brailleroledescription","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colindextext","aria-colspan","aria-controls","aria-current","aria-describedby","aria-description","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowindextext","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext"];const o=(a,r)=>{let n=t;if(r&&r.length>0){n=n.filter((a=>!r.includes(a)))}return i(a,n)};function s(a,r,n){if(a){if(n===undefined||n===null){a.removeAttribute(r)}else{a.setAttribute(r,n)}}}const u=a=>{const r=a.closest("wcs-form-field");if(r){return r.querySelector("wcs-label")}return null};const c=(a,r,n)=>{const e=a.filter((a=>!r.some((r=>n(a,r)))));const i=a.filter((a=>r.some((r=>n(a,r)))));const t=r.filter((r=>!a.some((a=>n(r,a)))));return{removed:e,kept:i,added:t}};const l=a=>{if(typeof __zone_symbol__requestAnimationFrame==="function"){return __zone_symbol__requestAnimationFrame(a)}if(typeof requestAnimationFrame==="function"){return requestAnimationFrame(a)}return setTimeout(a)};const d=(a,r)=>a.x>=r.getBoundingClientRect().x&&a.x<=r.getBoundingClientRect().x+r.getBoundingClientRect().width&&a.y>=r.getBoundingClientRect().y&&a.y<=r.getBoundingClientRect().y+r.getBoundingClientRect().height;const f=(a,r)=>a.target instanceof Node&&r.contains(a.target);function m(a){return a+"-"+Math.random().toString(36)}function p(a){return a.code==="ArrowUp"}function w(a){return a.code==="ArrowDown"}function b(a){return a.code==="Escape"}function v(a){return a.code==="Space"}function x(a){return a.key==="Enter"}function A(a){return a.code==="Home"}function _(a){return a.code==="End"}function h(a){return a.key==="ArrowUp"}function y(a){return a.key==="ArrowDown"}function g(a){return a.key==="ArrowLeft"}function q(a){return a.key==="ArrowRight"}function k(a){return a.key==="PageDown"}function z(a){return a.key==="PageUp"}function F(a){return a.key==="Tab"}function T(a){return window.getComputedStyle(document.body).getPropertyValue(a)||null}export{r as A,i as a,b,v as c,x as d,p as e,w as f,T as g,A as h,o as i,_ as j,f as k,z as l,k as m,F as n,d as o,n as p,u as q,y as r,s,q as t,h as u,g as v,l as w,m as x,c as y,a as z};
|
|
2
|
-
//# sourceMappingURL=p-a3aece7a.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["isElement","element","hasShadowDom","el","shadowRoot","attachShadow","debounceEvent","event","wait","original","_original","emit","debounce","bind","func","timer","args","clearTimeout","setTimeout","inheritAttributes","attributes","attributeObject","forEach","attr","hasAttribute","value","getAttribute","removeAttribute","ariaAttributes","inheritAriaAttributes","ignoreList","attributesToInherit","length","filter","includes","setOrRemoveAttribute","undefined","setAttribute","findItemLabel","componentEl","itemEl","closest","querySelector","compareLists","sourceList","newList","compareFn","removed","val","some","newVal","kept","added","sourceVal","raf","h","__zone_symbol__requestAnimationFrame","requestAnimationFrame","clickInsideElement","x","getBoundingClientRect","width","y","height","clickTargetIsElementOrChildren","mouseEvent","target","Node","contains","generateUniqueId","componentName","Math","random","toString","isKeyup","evt","code","isKeydown","isEscapeKey","isSpaceKey","isEnterKey","key","isHomeKey","isEndKey","isUpArrowKey","isDownArrowKey","isLeftArrowKey","isRightArrowKey","isPageDownKey","isPageUpKey","isTabKey","getCssRootPropertyValue","name","window","getComputedStyle","document","body","getPropertyValue"],"sources":["src/utils/helpers.ts"],"sourcesContent":["import { EventEmitter } from '@stencil/core';\n\nexport function isElement(element: any): element is Element {\n return 'clientWidth' in element\n && 'clientHeight' in element;\n}\n\nexport function hasShadowDom(el: HTMLElement) {\n return !!el.shadowRoot && !!(el as any).attachShadow;\n}\n\nexport const debounceEvent = (event: EventEmitter, wait: number): EventEmitter => {\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait)\n } as EventEmitter;\n};\n\nexport const debounce = (func: (...args: any[]) => void, wait = 0) => {\n let timer: any;\n return (...args: any[]): any => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\n/**\n * Elements inside of web components sometimes need to inherit global attributes\n * set on the host. For example, the inner input in `wcs-input` should inherit\n * the `title` attribute that developers set directly on `wcs-input`. This\n * helper function should be called in componentWillLoad and assigned to a variable\n * that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (el: HTMLElement, attributes: string[] = []) => {\n const attributeObject: { [k: string]: any } = {};\n\n attributes.forEach(attr => {\n if (el.hasAttribute(attr)) {\n const value = el.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = el.getAttribute(attr);\n }\n el.removeAttribute(attr);\n }\n });\n\n return attributeObject;\n}\n\n/**\n * List of available ARIA attributes + `role`.\n * Removed deprecated attributes.\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes\n */\nconst ariaAttributes = [\n 'role',\n 'aria-activedescendant',\n 'aria-atomic',\n 'aria-autocomplete',\n 'aria-braillelabel',\n 'aria-brailleroledescription',\n 'aria-busy',\n 'aria-checked',\n 'aria-colcount',\n 'aria-colindex',\n 'aria-colindextext',\n 'aria-colspan',\n 'aria-controls',\n 'aria-current',\n 'aria-describedby',\n 'aria-description',\n 'aria-details',\n 'aria-disabled',\n 'aria-errormessage',\n 'aria-expanded',\n 'aria-flowto',\n 'aria-haspopup',\n 'aria-hidden',\n 'aria-invalid',\n 'aria-keyshortcuts',\n 'aria-label',\n 'aria-labelledby',\n 'aria-level',\n 'aria-live',\n 'aria-multiline',\n 'aria-multiselectable',\n 'aria-orientation',\n 'aria-owns',\n 'aria-placeholder',\n 'aria-posinset',\n 'aria-pressed',\n 'aria-readonly',\n 'aria-relevant',\n 'aria-required',\n 'aria-roledescription',\n 'aria-rowcount',\n 'aria-rowindex',\n 'aria-rowindextext',\n 'aria-rowspan',\n 'aria-selected',\n 'aria-setsize',\n 'aria-sort',\n 'aria-valuemax',\n 'aria-valuemin',\n 'aria-valuenow',\n 'aria-valuetext',\n];\n\n/**\n * Returns an array of aria attributes that should be copied from\n * the shadow host element to a target within the light DOM.\n * @param el The element that the attributes should be copied from.\n * @param ignoreList The list of aria-attributes to ignore reflecting and removing from the host.\n * Use this in instances where we manually specify aria attributes on the `<Host>` element.\n */\nexport const inheritAriaAttributes = (el: HTMLElement, ignoreList?: string[]) => {\n let attributesToInherit = ariaAttributes;\n if (ignoreList && ignoreList.length > 0) {\n attributesToInherit = attributesToInherit.filter((attr) => !ignoreList.includes(attr));\n }\n return inheritAttributes(el, attributesToInherit);\n};\n\n/**\n * Dynamically add or remove an attribute on the element.\n * If the value of the attribute is null or undefined, the attribute is removed.\n *\n * @param el - The HTMLElement\n * @param attr - The attribute to be added or removed\n * @param value - The value of the attribute\n */\nexport function setOrRemoveAttribute(el: HTMLElement, attr: string, value: string | null | undefined) {\n if (el) {\n if (value === undefined || value === null) {\n el.removeAttribute(attr);\n } else {\n el.setAttribute(attr, value);\n }\n }\n}\n\nexport const findItemLabel = (componentEl: HTMLElement): HTMLWcsLabelElement | null => {\n const itemEl = componentEl.closest('wcs-form-field');\n if (itemEl) {\n return itemEl.querySelector('wcs-label');\n }\n return null;\n};\n\n/**\n * Given two lists of items, this function will return the items that were removed, kept, and added compared to the source list.\n * @param sourceList - The source list of items\n * @param newList - The target list of items\n * @param compareFn - The function to compare the items\n */\nexport const compareLists: <T>(sourceList: T[], newList: T[], compareFn: (v1: T, v2: T) => boolean) => {\n removed: T[];\n kept: T[];\n added: T[]\n} = <T>(sourceList: T[], newList: T[], compareFn: (v1: T, v2: T) => boolean) => {\n const removed = sourceList.filter(val => !newList.some(newVal => compareFn(val, newVal)));\n const kept = sourceList.filter(val => newList.some(newVal => compareFn(val, newVal)));\n const added = newList.filter(val => !sourceList.some(sourceVal => compareFn(val, sourceVal)));\n\n return { removed, kept, added };\n};\n\n\ndeclare const __zone_symbol__requestAnimationFrame: any;\n\n/**\n * Patched version of requestAnimationFrame that avoids ngzone\n * Use only when you know ngzone should not run\n */\nexport const raf = (h: any) => {\n if (typeof __zone_symbol__requestAnimationFrame === 'function') {\n return __zone_symbol__requestAnimationFrame(h);\n }\n if (typeof requestAnimationFrame === 'function') {\n return requestAnimationFrame(h);\n }\n return setTimeout(h);\n};\n\n/**\n * Return true if the mouseEvent click is inside the given HTML element\n */\nexport const clickInsideElement = (event: MouseEvent, element: HTMLElement): boolean => {\n return event.x >= element.getBoundingClientRect().x && event.x <= element.getBoundingClientRect().x + element.getBoundingClientRect().width\n && event.y >= element.getBoundingClientRect().y && event.y <= element.getBoundingClientRect().y + element.getBoundingClientRect().height;\n}\n\n\nexport const clickTargetIsElementOrChildren = (mouseEvent: MouseEvent, element: HTMLElement) => {\n return mouseEvent.target instanceof Node\n && element.contains(mouseEvent.target);\n}\n\nexport function generateUniqueId(componentName: string): string {\n return componentName + \"-\" + Math.random().toString(36);\n}\n\nexport function isKeyup(evt: KeyboardEvent) {\n return evt.code === 'ArrowUp';\n}\n\nexport function isKeydown(evt: KeyboardEvent) {\n return evt.code === 'ArrowDown';\n}\n\nexport function isEscapeKey(evt: KeyboardEvent) {\n return evt.code === 'Escape';\n}\n\nexport function isSpaceKey(evt: KeyboardEvent) {\n return evt.code === 'Space';\n}\n\nexport function isEnterKey(evt: KeyboardEvent) {\n return evt.key === 'Enter';\n}\n\nexport function isHomeKey(evt: KeyboardEvent) {\n return evt.code === 'Home';\n}\n\nexport function isEndKey(evt: KeyboardEvent) {\n return evt.code === 'End';\n}\n\nexport function isUpArrowKey(evt: KeyboardEvent) {\n return evt.key === 'ArrowUp';\n}\n\nexport function isDownArrowKey(evt: KeyboardEvent) {\n return evt.key === 'ArrowDown';\n}\n\nexport function isLeftArrowKey(evt: KeyboardEvent) {\n return evt.key === 'ArrowLeft';\n}\n\nexport function isRightArrowKey(evt: KeyboardEvent) {\n return evt.key === 'ArrowRight';\n}\n\nexport function isPageDownKey(evt: KeyboardEvent) {\n return evt.key === 'PageDown';\n}\n\nexport function isPageUpKey(evt: KeyboardEvent) {\n return evt.key === 'PageUp';\n}\n\nexport function isTabKey(evt: KeyboardEvent) {\n return evt.key === 'Tab';\n}\n\nexport function isCtrlA(evt: KeyboardEvent) {\n return evt.key === 'a' && evt.ctrlKey;\n}\n\nexport function getCssRootPropertyValue(name: string): string | null {\n return window.getComputedStyle(document.body).getPropertyValue(name) || null;\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as s,c as e,h as t,H as o}from"./p-32e583ea.js";const a=":host{display:block}:host([hidden]){display:none}";const c=a;const n=class{constructor(t){s(this,t);this.tabLoaded=e(this,"tabLoaded",7);this.header=undefined;this.itemKey=undefined}componentDidLoad(){this.tabLoaded.emit()}render(){return t(o,{key:"72b042d637339884bb5c788c54b7ebfb039bd155",slot:"wcs-tab",role:"tabpanel"},t("slot",{key:"cab504f0521ec274763c97be0e42719b2a5e5099"}))}};n.style=c;export{n as wcs_tab};
|
|
2
|
-
//# sourceMappingURL=p-a66a4289.entry.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as a,h as s}from"./p-32e583ea.js";const c=":host{--wcs-card-body-padding:var(--wcs-semantic-spacing-large);flex:1 1 auto;padding:var(--wcs-card-body-padding)}";const r=c;const d=class{constructor(s){a(this,s)}render(){return s("slot",{key:"4f5691663c5f43df79027a4fe7d09659c216a8e4"})}};d.style=r;export{d as wcs_card_body};
|
|
2
|
-
//# sourceMappingURL=p-ab49926d.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["cardBodyCss","WcsCardBodyStyle0","CardBody","render","h","key"],"sources":["src/components/card-body/card-body.scss?tag=wcs-card-body&encapsulation=shadow","src/components/card-body/card-body.tsx"],"sourcesContent":[":host {\n --wcs-card-body-padding: var(--wcs-semantic-spacing-large);\n\n flex: 1 1 auto;\n padding: var(--wcs-card-body-padding);\n}\n","import { Component, ComponentInterface, h } from '@stencil/core';\n\n/**\n * The card-body is a subcomponent of `wcs-card`. It represents content of the card with an extra padding around.\n * \n * @cssprop --wcs-card-body-padding - Padding of the card body\n */\n@Component({\n tag: 'wcs-card-body',\n styleUrl: 'card-body.scss',\n shadow: true\n})\nexport class CardBody implements ComponentInterface {\n render() {\n return (<slot />);\n }\n}\n"],"mappings":"2CAAA,MAAMA,EAAc,sHACpB,MAAAC,EAAeD,E,MCWFE,EAAQ,M,yBACjB,MAAAC,GACI,OAAQC,EAAA,QAAAC,IAAA,4C"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,h as r,H as s,g as o}from"./p-32e583ea.js";import{i as t}from"./p-a0f32ead.js";const i=":host{--wcs-error-color:var(--wcs-semantic-color-text-critical);--wcs-error-font-size:var(--wcs-semantic-font-size-caption-2);--wcs-error-font-weight:var(--wcs-semantic-font-weight-book);color:var(--wcs-error-color);font-size:var(--wcs-error-font-size);font-weight:var(--wcs-error-font-weight)}";const c=i;const a=class{constructor(r){e(this,r)}render(){return r(s,{key:"2257210c2e97d6c4dc04a87fa05121e203b79619","aria-live":"polite","aria-atomic":"true",slot:"error"},r("slot",{key:"fc76b174cb85991bb4cd899b72605b171f8165e6"}))}};a.style=c;const l=":host{--wcs-form-field-gap:var(--wcs-semantic-spacing-small);--wcs-form-field-prefix-suffix-border-radius:var(--wcs-semantic-border-radius-base);--wcs-form-field-prefix-icon-color:var(--wcs-semantic-color-foreground-primary);--wcs-form-field-prefix-value-color:var(--wcs-semantic-color-text-inverse);--wcs-form-field-prefix-placeholder-color:var(--wcs-semantic-color-text-inverse);display:flex;flex-direction:column;gap:var(--wcs-form-field-gap)}:host ::slotted([slot=prefix]){--wcs-select-value-color:var(--wcs-semantic-color-text-inverse);--wcs-select-placeholder-color:var(--wcs-semantic-color-text-inverse);--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-default);--wcs-select-control-arrow-color:var(--wcs-form-field-prefix-icon-color);--wcs-select-control-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);--wcs-select-control-border-width-default:0;--wcs-select-control-border-style-focus:dashed;--wcs-select-control-border-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-native-select-value-color:var(--wcs-semantic-color-text-inverse);--wcs-native-select-placeholder-color:var(--wcs-semantic-color-text-inverse);--wcs-native-select-arrow-color:var(--wcs-form-field-prefix-icon-color);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-default);--wcs-native-select-border-width:0;--wcs-native-select-border-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-native-select-border-style-focus:dashed;--wcs-native-select-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);--wcs-native-select-option-color:var(--wcs-semantic-color-text-inverse)}:host ::slotted([slot=prefix][disabled]),:host ::slotted([slot=prefix]:disabled),:host ::slotted([slot=prefix][aria-disabled=true]),:host ::slotted([slot=prefix][data-disabled]){--wcs-semantic-color-background-control-disabled:var(--wcs-semantic-color-background-action-primary-disabled);--wcs-semantic-color-text-disabled:var(--wcs-semantic-color-foreground-disabled);--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-disabled);--wcs-select-value-color:var(--wcs-semantic-color-text-disabled);--wcs-select-placeholder-color:var(--wcs-semantic-color-text-disabled);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-disabled);--wcs-native-select-placeholder-color:var(--wcs-semantic-color-text-disabled);--wcs-native-select-value-color:var(--wcs-semantic-color-text-disabled)}:host ::slotted([slot=prefix]:hover:not([disabled]):not([data-disabled])){--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-hover);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-hover)}:host ::slotted([slot=prefix]:active:not([disabled]):not([data-disabled])){--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-press);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-press)}.input-container{display:flex}::slotted(wcs-select:not([slot=prefix])){width:100%}::slotted(wcs-native-select:not([slot=prefix])){width:100%}:host(.has-prefix) ::slotted(wcs-input){--wcs-input-border-radius-left:0}:host(.has-suffix) ::slotted(wcs-input){--wcs-input-border-radius-right:0}::slotted([slot=suffix]){--wcs-button-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;--wcs-select-control-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;--wcs-native-select-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0}";const d=l;const n=class{constructor(r){e(this,r);this.isError=false;this.hasPrefix=false;this.hasSuffix=false;this.spiedElement=undefined}componentWillLoad(){this.hasSuffix=this.el.querySelector("wcs-button")!==null;this.hasPrefix=this.el.querySelector("wcs-select")!==null}componentDidLoad(){this.initSpiedElement();this.addRequiredMarkerToLabel();this.updateErrorStateOnInput(this.isError)}isErrorChange(e){this.updateErrorStateOnInput(e);this.updateAriaAttributes()}updateErrorStateOnInput(e){if(this.spiedElementIsOfType("wcs-input","wcs-textarea")){if(e){this.spiedElement.setAttribute("state","error")}else{this.spiedElement.setAttribute("state","initial")}}}spiedElementIsOfType(...e){var r;for(const s of e){if(((r=this.spiedElement)===null||r===void 0?void 0:r.tagName)===s.toUpperCase())return true}return false}addRequiredMarkerToLabel(){var e;const r=this.el.querySelector("wcs-label");this.observer=new MutationObserver((e=>{var s;const o=e.filter((e=>e.attributeName==="required"))[0];if(o){this.updateLabelRequiredFlag((s=this.spiedElement)===null||s===void 0?void 0:s.hasAttribute("required"),r)}}));if(this.spiedElement){this.observer.observe(this.spiedElement,{attributes:true})}const s=(e=this.spiedElement)===null||e===void 0?void 0:e.hasAttribute("required");this.updateLabelRequiredFlag(s,r)}initSpiedElement(){var e,r;const s=["wcs-input","wcs-select","wcs-native-select","wcs-textarea","wcs-radio-group","wcs-switch","wcs-checkbox","wcs-native-select","wcs-counter"];this.spiedElement=(e=this.el.shadowRoot.querySelector("slot:not([name])"))===null||e===void 0?void 0:e.assignedElements().filter((e=>[...s,"SLOT"].map((e=>e.toUpperCase())).indexOf(e.nodeName)!==-1))[0];if(((r=this.spiedElement)===null||r===void 0?void 0:r.tagName)==="SLOT"){this.spiedElement=this.spiedElement.assignedElements().filter((e=>s.map((e=>e.toUpperCase())).indexOf(e.nodeName)!==-1))[0]}if(!this.spiedElement){console.warn("Form-field component support only "+s.toString()+". Some features may not work with the provided component.");return}}updateAriaAttributes(){if(t(this.spiedElement)){this.spiedElement.setAriaAttribute("aria-label",this.label);if(this.isError){if(this.error)this.spiedElement.setAriaAttribute("aria-description",this.error);this.spiedElement.setAriaAttribute("aria-invalid","true")}else{if(this.description)this.spiedElement.setAriaAttribute("aria-description",this.description);this.spiedElement.setAriaAttribute("aria-invalid","false")}}}get label(){var e;return(e=this.el.querySelector("wcs-label"))===null||e===void 0?void 0:e.textContent}get description(){var e;return(e=this.el.querySelector("wcs-hint"))===null||e===void 0?void 0:e.textContent}get error(){var e;return(e=this.el.querySelector("wcs-error"))===null||e===void 0?void 0:e.textContent}updateLabelRequiredFlag(e,r){if(e&&r){r.setAttribute("required","true")}else if(!e&&r){r.removeAttribute("required")}}disconnectedCallback(){var e;(e=this.observer)===null||e===void 0?void 0:e.disconnect()}render(){let e="";const o=this.isError;if(this.hasSuffix){e+=" has-suffix"}if(this.hasPrefix){e+=" has-prefix"}return r(s,{key:"c9f7040c27e964d32f5d39befad34fd2500ad89b",class:e},r("slot",{key:"580960c53f66356e3e8a67436603f3d5d0828409",name:"label"}),r("div",{key:"9f942bf24140c7c3718d4e56b5c356e4471c246b",class:"input-container"},r("slot",{key:"03ac6862d220be32e3c62d6fa6b49d745f77f1f8",name:"prefix"}),r("slot",{key:"476c0419a0269dde5d3b89b025f475c54fa7a1f4",onSlotchange:()=>this.onFormInputSlotChange()}),r("slot",{key:"63e76f50c004442ad27dbdf87c59fdb574a24352",name:"suffix"})),o?r("slot",{name:"error"}):"",r("slot",{key:"d6dd0c622edbaf25c38844f62e46efefb462d616",name:"messages"}))}onFormInputSlotChange(){this.initSpiedElement();this.updateAriaAttributes();this.addRequiredMarkerToLabel();this.updateErrorStateOnInput(this.isError)}get el(){return o(this)}static get watchers(){return{isError:["isErrorChange"]}}};n.style=d;export{a as wcs_error,n as wcs_form_field};
|
|
2
|
-
//# sourceMappingURL=p-bf31245c.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["errorCss","WcsErrorStyle0","Label","render","h","Host","key","slot","formFieldCss","WcsFormFieldStyle0","FormField","componentWillLoad","this","hasSuffix","el","querySelector","hasPrefix","componentDidLoad","initSpiedElement","addRequiredMarkerToLabel","updateErrorStateOnInput","isError","isErrorChange","newValue","updateAriaAttributes","spiedElementIsOfType","spiedElement","setAttribute","types","type","_a","tagName","toUpperCase","label","observer","MutationObserver","mutations","requiredAttMutation","filter","m","attributeName","updateLabelRequiredFlag","hasAttribute","observe","attributes","isRequired","SUPPORTED_COMPONENTS","shadowRoot","assignedElements","n","map","x","indexOf","nodeName","_b","console","warn","toString","isMutableAriaAttribute","setAriaAttribute","error","description","textContent","removeAttribute","disconnectedCallback","disconnect","classes","class","name","onSlotchange","onFormInputSlotChange"],"sources":["src/components/error/error.scss?tag=wcs-error&encapsulation=shadow","src/components/error/error.tsx","src/components/form-field/form-field.scss?tag=wcs-form-field&encapsulation=shadow","src/components/form-field/form-field.tsx"],"sourcesContent":[":host {\n --wcs-error-color: var(--wcs-semantic-color-text-critical);\n --wcs-error-font-size: var(--wcs-semantic-font-size-caption-2);\n --wcs-error-font-weight: var(--wcs-semantic-font-weight-book);\n\n color: var(--wcs-error-color);\n font-size: var(--wcs-error-font-size);\n font-weight: var(--wcs-error-font-weight);\n}\n","import { Component, ComponentInterface, h, Host } from '@stencil/core';\n\n/**\n * The `wcs-error` should always be wrapped in a `wcs-form-field`.\n * It is used to display a red message under the field indicating an incorrect user input.\n * \n * ## Accessibility guidelines 💡\n * - Provide a relevant error message to inform the users what they should change to make the field valid\n * - Always add the error icon, to ensure the visual indication of the error state other than the color\n * - `aria-description` will be automatically added to the field for screen readers\n * - `aria-invalid=\"true\"` will be automatically added to the field for screen readers\n * \n * @cssprop --wcs-error-color - Color of the text\n * @cssprop --wcs-error-font-size - Font size\n * @cssprop --wcs-error-font-weight - Font weight\n */\n@Component({\n tag: 'wcs-error',\n styleUrl: 'error.scss',\n shadow: true,\n})\nexport class Label implements ComponentInterface {\n render() {\n return (\n <Host aria-live=\"polite\" aria-atomic=\"true\" slot=\"error\">\n <slot />\n </Host>\n );\n }\n}\n",":host {\n --wcs-form-field-gap: var(--wcs-semantic-spacing-small);\n\n --wcs-form-field-prefix-suffix-border-radius: var(--wcs-semantic-border-radius-base);\n\n --wcs-form-field-prefix-icon-color: var(--wcs-semantic-color-foreground-primary);\n --wcs-form-field-prefix-value-color: var(--wcs-semantic-color-text-inverse);\n --wcs-form-field-prefix-placeholder-color: var(--wcs-semantic-color-text-inverse);\n\n // Prefixed select\n ::slotted([slot=prefix]) {\n --wcs-select-value-color: var(--wcs-semantic-color-text-inverse);\n --wcs-select-placeholder-color: var(--wcs-semantic-color-text-inverse);\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-default);\n --wcs-select-control-arrow-color: var(--wcs-form-field-prefix-icon-color);\n --wcs-select-control-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n --wcs-select-control-border-width-default: 0;\n --wcs-select-control-border-style-focus: dashed;\n --wcs-select-control-border-color-focus: var(--wcs-semantic-color-border-focus-base);\n\n --wcs-native-select-value-color: var(--wcs-semantic-color-text-inverse);\n --wcs-native-select-placeholder-color: var(--wcs-semantic-color-text-inverse);\n --wcs-native-select-arrow-color: var(--wcs-form-field-prefix-icon-color);\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-default);\n --wcs-native-select-border-width: 0;\n --wcs-native-select-border-color-focus: var(--wcs-semantic-color-border-focus-base);\n --wcs-native-select-border-style-focus: dashed;\n --wcs-native-select-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n --wcs-native-select-option-color: var(--wcs-semantic-color-text-inverse);\n }\n\n ::slotted([slot=prefix][disabled]),\n ::slotted([slot=prefix]:disabled),\n ::slotted([slot=prefix][aria-disabled=true]),\n ::slotted([slot=prefix][data-disabled]) {\n --wcs-semantic-color-background-control-disabled: var(--wcs-semantic-color-background-action-primary-disabled);\n --wcs-semantic-color-text-disabled: var(--wcs-semantic-color-foreground-disabled);\n\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-disabled);\n --wcs-select-value-color: var(--wcs-semantic-color-text-disabled);\n --wcs-select-placeholder-color: var(--wcs-semantic-color-text-disabled);\n\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-disabled);\n --wcs-native-select-placeholder-color: var(--wcs-semantic-color-text-disabled);\n --wcs-native-select-value-color: var(--wcs-semantic-color-text-disabled);\n }\n\n ::slotted([slot=prefix]:hover:not([disabled]):not([data-disabled])) {\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-hover);\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-hover);\n }\n\n ::slotted([slot=prefix]:active:not([disabled]):not([data-disabled])) {\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-press);\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-press);\n }\n // endregion\n\n display: flex;\n flex-direction: column;\n gap: var(--wcs-form-field-gap);\n}\n\n.input-container {\n display: flex;\n}\n\n::slotted(wcs-select:not([slot=prefix])) {\n width: 100%;\n}\n\n::slotted(wcs-native-select:not([slot=prefix])) {\n width: 100%;\n}\n\n// Make input square on left side if there is a prefix\n:host(.has-prefix) {\n ::slotted(wcs-input) {\n --wcs-input-border-radius-left: 0;\n }\n}\n\n// Make input square on right side if there is a suffix\n:host(.has-suffix) {\n ::slotted(wcs-input) {\n --wcs-input-border-radius-right: 0;\n }\n}\n\n::slotted([slot=suffix]) {\n // Make button square on left side\n --wcs-button-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n\n // Make select square on left side\n --wcs-select-control-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0 ;\n\n // Make native select square on left side\n --wcs-native-select-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n}\n","import { Component, ComponentInterface, Element, h, Host, Prop, State, Watch } from '@stencil/core';\nimport { isMutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\n/**\n * Form field component wraps the native input element and add some more functionality on top of it.\n *\n * You can use the `wcs-form-field` to wrap any of these components :\n * - `wcs-input`\n * - `wcs-textarea`\n * - `wcs-radio-group`\n * - `wcs-switch`\n * - `wcs-checkbox`\n * - `wcs-native-select`\n * - `wcs-select`\n * - `wcs-counter`\n *\n * For non-supported slotted component, you can use the `required` attribute on the wrapped component to tell the\n * form-field that it is required. It will add a red star after the label of the form field.\n * \n * ## Accessibility guidelines 💡\n * - Each form control should be identified with a unique `wcs-label`\n * - Don't forget to add form validation to make sure the data is correctly formatted\n * - If the `wcs-label` is required, the form control must have the `required` HTML attribute and vice-versa (this is normally automatically set)\n * - The form should not be submittable if at least one required form control is not filled\n * - Hints are optional and should only be used to add extra information\n * - Additional aria attributes put on `<wcs-form-field>` won't inherit onto the native component : you must use the `setAriaAttribute` method.\n * \n * @slot label - Automatically filled when a `wcs-label` is provided\n * @slot <no-name> - The main slot containing the wrapped component\n * @slot prefix - (Optional) Display a component as prefix. See \"Prefix Suffix Group\" story for more info.\n * @slot suffix - (Optional) Display a component as suffix. See \"Prefix Suffix Group\" story for more info.\n * @slot error - Automatically filled when a `wcs-error` is provided\n * @slot messages - Automatically filled when a `wcs-hint` is provided\n *\n * @cssprop --wcs-form-field-gap - Defines the spacing between the label, input control, and hint messages.\n * @cssprop --wcs-form-field-prefix-suffix-border-radius - Sets the border radius for both prefix and suffix elements.\n * \n * @cssprop --wcs-form-field-prefix-background-color-default - Background color default for prefix elements\n * @cssprop --wcs-form-field-prefix-background-color-disabled - Background color for prefix elements when disabled\n * @cssprop --wcs-form-field-prefix-background-color-hover - Background color for prefix elements when hovered\n * @cssprop --wcs-form-field-prefix-border-color-default - Defines the default border color for prefix\n * @cssprop --wcs-form-field-prefix-border-color-focus - Sets the border color for prefix elements when focused.\n * @cssprop --wcs-form-field-prefix-border-color-disabled - Determines the border color for prefix elements when disabled.\n * \n * @cssprop --wcs-form-field-prefix-icon-color - Specifies the color of icons within prefix elements.\n * @cssprop --wcs-form-field-prefix-value-color - Sets the color of values within prefix elements.\n * @cssprop --wcs-form-field-prefix-placeholder-color - Defines the placeholder text color within prefix elements.\n * @cssprop --wcs-form-field-prefix-color-disabled - Determines the text color for prefix elements when disabled.\n */\n@Component({\n tag: 'wcs-form-field',\n styleUrl: 'form-field.scss',\n shadow: true,\n})\nexport class FormField implements ComponentInterface {\n @Element() private el!: HTMLWcsFormFieldElement;\n\n /**\n * Specifies whether the form field is in an error state. Displays the field border in red and the message contained in the wcs-error component\n */\n @Prop({mutable: true, reflect: true}) isError = false;\n\n @State() private hasPrefix = false;\n @State() private hasSuffix = false;\n @State() private spiedElement: Element;\n\n private observer: MutationObserver;\n\n componentWillLoad() {\n this.hasSuffix = this.el.querySelector('wcs-button') !== null;\n this.hasPrefix = this.el.querySelector('wcs-select') !== null;\n }\n\n componentDidLoad() {\n this.initSpiedElement();\n this.addRequiredMarkerToLabel();\n this.updateErrorStateOnInput(this.isError);\n }\n\n @Watch('isError')\n // @ts-ignore\n private isErrorChange(newValue: boolean) {\n this.updateErrorStateOnInput(newValue);\n this.updateAriaAttributes();\n }\n\n private updateErrorStateOnInput(newValue: boolean) {\n if (this.spiedElementIsOfType('wcs-input', 'wcs-textarea')) {\n if (newValue) {\n this.spiedElement.setAttribute('state', 'error');\n } else {\n this.spiedElement.setAttribute('state', 'initial');\n }\n }\n }\n\n /**\n * This function return true if the form field contains an element with tagName matches a value of the types param\n * @param types\n * @private\n */\n private spiedElementIsOfType(...types: string[]): boolean {\n for (const type of types) {\n if (this.spiedElement?.tagName === type.toUpperCase()) return true;\n }\n return false\n }\n\n\n private addRequiredMarkerToLabel() {\n // TODO: deprecate this in favor of the 'required' component attribute\n const label = this.el.querySelector('wcs-label');\n this.observer = new MutationObserver(mutations => {\n const requiredAttMutation = mutations.filter(m => m.attributeName === 'required')[0];\n if (requiredAttMutation) {\n this.updateLabelRequiredFlag(this.spiedElement?.hasAttribute('required'), label);\n }\n });\n if (this.spiedElement) {\n this.observer.observe(this.spiedElement, {attributes: true});\n }\n\n const isRequired = this.spiedElement?.hasAttribute('required');\n this.updateLabelRequiredFlag(isRequired, label);\n }\n\n\n private initSpiedElement() {\n const SUPPORTED_COMPONENTS = ['wcs-input', 'wcs-select', 'wcs-native-select', 'wcs-textarea', 'wcs-radio-group', 'wcs-switch', 'wcs-checkbox', 'wcs-native-select', 'wcs-counter'];\n\n this.spiedElement = (this.el.shadowRoot.querySelector('slot:not([name])') as HTMLSlotElement)\n ?.assignedElements()\n .filter(n => [...SUPPORTED_COMPONENTS, 'SLOT'].map(x => x.toUpperCase()).indexOf(n.nodeName) !== -1)[0];\n\n // If the component is used in another web component\n if (this.spiedElement?.tagName === 'SLOT') {\n this.spiedElement = ((this.spiedElement as HTMLSlotElement)\n .assignedElements()\n .filter(n => SUPPORTED_COMPONENTS.map(x => x.toUpperCase()).indexOf(n.nodeName) !== -1)[0]) as HTMLElement;\n }\n\n if (!this.spiedElement) {\n // tslint:disable-next-line:no-console\n console.warn('Form-field component support only ' + SUPPORTED_COMPONENTS.toString() + '. Some features may not work with the provided component.');\n return;\n }\n }\n \n private updateAriaAttributes(): void {\n if(isMutableAriaAttribute(this.spiedElement)) {\n this.spiedElement.setAriaAttribute('aria-label', this.label);\n\n // Sur les autres DS, généralement seul l'erreur est affichée et pas avec la description\n if(this.isError) {\n if(this.error) this.spiedElement.setAriaAttribute('aria-description', this.error);\n this.spiedElement.setAriaAttribute('aria-invalid', 'true');\n } else {\n if(this.description) this.spiedElement.setAriaAttribute('aria-description', this.description);\n this.spiedElement.setAriaAttribute('aria-invalid', 'false');\n }\n }\n }\n \n private get label() {\n return this.el.querySelector('wcs-label')?.textContent;\n }\n \n private get description() {\n return this.el.querySelector('wcs-hint')?.textContent;\n }\n \n private get error() {\n return this.el.querySelector('wcs-error')?.textContent;\n }\n\n private updateLabelRequiredFlag(isRequired: boolean, label: Element) {\n if (isRequired && label) {\n label.setAttribute('required', 'true');\n } else if (!isRequired && label) {\n label.removeAttribute('required');\n }\n }\n\n disconnectedCallback() {\n this.observer?.disconnect();\n }\n\n render() {\n let classes = '';\n const isError = this.isError;\n\n if (this.hasSuffix) {\n classes += ' has-suffix';\n }\n if (this.hasPrefix) {\n classes += ' has-prefix';\n }\n return (\n <Host class={classes}>\n <slot name=\"label\"/>\n <div class=\"input-container\">\n <slot name=\"prefix\"/>\n <slot onSlotchange={() => this.onFormInputSlotChange()}/>\n <slot name=\"suffix\"/>\n </div>\n {\n isError ? (<slot name=\"error\"/>) : ''\n }\n <slot name=\"messages\"/>\n </Host>\n );\n }\n\n private onFormInputSlotChange() {\n this.initSpiedElement();\n this.updateAriaAttributes()\n this.addRequiredMarkerToLabel();\n this.updateErrorStateOnInput(this.isError);\n }\n}\n"],"mappings":"6FAAA,MAAMA,EAAW,ySACjB,MAAAC,EAAeD,E,MCoBFE,EAAK,M,yBACd,MAAAC,GACI,OACIC,EAACC,EAAI,CAAAC,IAAA,uDAAW,SAAQ,cAAa,OAAOC,KAAK,SAC7CH,EAAA,QAAAE,IAAA,6C,aCzBhB,MAAME,EAAe,szHACrB,MAAAC,EAAeD,E,MCqDFE,EAAS,M,sCAM8B,M,eAEnB,M,eACA,M,4BAK7B,iBAAAC,GACIC,KAAKC,UAAYD,KAAKE,GAAGC,cAAc,gBAAkB,KACzDH,KAAKI,UAAYJ,KAAKE,GAAGC,cAAc,gBAAkB,I,CAG7D,gBAAAE,GACIL,KAAKM,mBACLN,KAAKO,2BACLP,KAAKQ,wBAAwBR,KAAKS,Q,CAK9B,aAAAC,CAAcC,GAClBX,KAAKQ,wBAAwBG,GAC7BX,KAAKY,sB,CAGD,uBAAAJ,CAAwBG,GAC5B,GAAIX,KAAKa,qBAAqB,YAAa,gBAAiB,CACxD,GAAIF,EAAU,CACVX,KAAKc,aAAaC,aAAa,QAAS,Q,KACrC,CACHf,KAAKc,aAAaC,aAAa,QAAS,U,GAU5C,oBAAAF,IAAwBG,G,MAC5B,IAAK,MAAMC,KAAQD,EAAO,CACtB,KAAIE,EAAAlB,KAAKc,gBAAY,MAAAI,SAAA,SAAAA,EAAEC,WAAYF,EAAKG,cAAe,OAAO,I,CAElE,OAAO,K,CAIH,wBAAAb,G,MAEJ,MAAMc,EAAQrB,KAAKE,GAAGC,cAAc,aACpCH,KAAKsB,SAAW,IAAIC,kBAAiBC,I,MACjC,MAAMC,EAAsBD,EAAUE,QAAOC,GAAKA,EAAEC,gBAAkB,aAAY,GAClF,GAAIH,EAAqB,CACrBzB,KAAK6B,yBAAwBX,EAAAlB,KAAKc,gBAAY,MAAAI,SAAA,SAAAA,EAAEY,aAAa,YAAaT,E,KAGlF,GAAIrB,KAAKc,aAAc,CACnBd,KAAKsB,SAASS,QAAQ/B,KAAKc,aAAc,CAACkB,WAAY,M,CAG1D,MAAMC,GAAaf,EAAAlB,KAAKc,gBAAY,MAAAI,SAAA,SAAAA,EAAEY,aAAa,YACnD9B,KAAK6B,wBAAwBI,EAAYZ,E,CAIrC,gBAAAf,G,QACJ,MAAM4B,EAAuB,CAAC,YAAa,aAAc,oBAAqB,eAAgB,kBAAmB,aAAc,eAAgB,oBAAqB,eAEpKlC,KAAKc,cAAeI,EAAClB,KAAKE,GAAGiC,WAAWhC,cAAc,uBAAuC,MAAAe,SAAA,SAAAA,EACvFkB,mBACDV,QAAOW,GAAK,IAAIH,EAAsB,QAAQI,KAAIC,GAAKA,EAAEnB,gBAAeoB,QAAQH,EAAEI,aAAe,IAAG,GAGzG,KAAIC,EAAA1C,KAAKc,gBAAY,MAAA4B,SAAA,SAAAA,EAAEvB,WAAY,OAAQ,CACvCnB,KAAKc,aAAiBd,KAAKc,aACtBsB,mBACAV,QAAOW,GAAKH,EAAqBI,KAAIC,GAAKA,EAAEnB,gBAAeoB,QAAQH,EAAEI,aAAe,IAAG,E,CAGhG,IAAKzC,KAAKc,aAAc,CAEpB6B,QAAQC,KAAK,qCAAuCV,EAAqBW,WAAa,6DACtF,M,EAIA,oBAAAjC,GACJ,GAAGkC,EAAuB9C,KAAKc,cAAe,CAC1Cd,KAAKc,aAAaiC,iBAAiB,aAAc/C,KAAKqB,OAGtD,GAAGrB,KAAKS,QAAS,CACb,GAAGT,KAAKgD,MAAOhD,KAAKc,aAAaiC,iBAAiB,mBAAoB/C,KAAKgD,OAC3EhD,KAAKc,aAAaiC,iBAAiB,eAAgB,O,KAChD,CACH,GAAG/C,KAAKiD,YAAajD,KAAKc,aAAaiC,iBAAiB,mBAAoB/C,KAAKiD,aACjFjD,KAAKc,aAAaiC,iBAAiB,eAAgB,Q,GAK/D,SAAY1B,G,MACR,OAAOH,EAAAlB,KAAKE,GAAGC,cAAc,gBAAY,MAAAe,SAAA,SAAAA,EAAEgC,W,CAG/C,eAAYD,G,MACR,OAAO/B,EAAAlB,KAAKE,GAAGC,cAAc,eAAW,MAAAe,SAAA,SAAAA,EAAEgC,W,CAG9C,SAAYF,G,MACR,OAAO9B,EAAAlB,KAAKE,GAAGC,cAAc,gBAAY,MAAAe,SAAA,SAAAA,EAAEgC,W,CAGvC,uBAAArB,CAAwBI,EAAqBZ,GACjD,GAAIY,GAAcZ,EAAO,CACrBA,EAAMN,aAAa,WAAY,O,MAC5B,IAAKkB,GAAcZ,EAAO,CAC7BA,EAAM8B,gBAAgB,W,EAI9B,oBAAAC,G,OACIlC,EAAAlB,KAAKsB,YAAQ,MAAAJ,SAAA,SAAAA,EAAEmC,Y,CAGnB,MAAA9D,GACI,IAAI+D,EAAU,GACd,MAAM7C,EAAUT,KAAKS,QAErB,GAAIT,KAAKC,UAAW,CAChBqD,GAAW,a,CAEf,GAAItD,KAAKI,UAAW,CAChBkD,GAAW,a,CAEf,OACI9D,EAACC,EAAI,CAAAC,IAAA,2CAAC6D,MAAOD,GACT9D,EAAA,QAAAE,IAAA,2CAAM8D,KAAK,UACXhE,EAAA,OAAAE,IAAA,2CAAK6D,MAAM,mBACP/D,EAAA,QAAAE,IAAA,2CAAM8D,KAAK,WACXhE,EAAA,QAAAE,IAAA,2CAAM+D,aAAc,IAAMzD,KAAK0D,0BAC/BlE,EAAA,QAAAE,IAAA,2CAAM8D,KAAK,YAGX/C,EAAWjB,EAAA,QAAMgE,KAAK,UAAa,GAEvChE,EAAA,QAAAE,IAAA,2CAAM8D,KAAK,a,CAKf,qBAAAE,GACJ1D,KAAKM,mBACLN,KAAKY,uBACLZ,KAAKO,2BACLP,KAAKQ,wBAAwBR,KAAKS,Q"}
|
package/dist/wcs/p-c6a28b79.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["WcsButtonSizeValues","isWcsButtonSize","size","includes"],"sources":["src/components/button/button-interface.ts"],"sourcesContent":["import { WcsSize } from '../../shared-types';\n\nexport type WcsButtonType = 'button' | 'submit';\n\nexport type WcsButtonShape = 'normal' | 'round' | 'square';\n\nexport type WcsButtonMode = 'plain' | 'stroked' | 'clear';\n\nexport const WcsButtonSizeValues = ['s', 'm', 'l'] as const; // as const keyword is used to infer and preserve the exact literal values of an array or object.\n\nexport type WcsButtonSize = Extract<WcsSize, typeof WcsButtonSizeValues[number]>;\n\nexport function isWcsButtonSize(size: string): size is WcsButtonSize {\n // @ts-ignore : ignore size type, as it is checked with WcsButtonSizeValues\n return WcsButtonSizeValues.includes(size);\n}\n"],"mappings":"MAQaA,EAAsB,CAAC,IAAK,IAAK,K,SAI9BC,EAAgBC,GAE5B,OAAOF,EAAoBG,SAASD,EACxC,Q"}
|