wcs-core 7.5.0 → 7.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/{p-763371a0.js → p-1329a1af.js} +3 -3
- package/bundle/p-1329a1af.js.map +1 -0
- package/bundle/p-2f7bca1e.js +2 -0
- package/bundle/p-2f7bca1e.js.map +1 -0
- package/bundle/p-475be4d2.js +2 -0
- package/bundle/{p-010cf905.js → p-5ef2bc63.js} +2 -2
- package/bundle/{p-44a3b0b9.js → p-7a06295b.js} +2 -2
- package/bundle/{p-2751ddc1.js → p-8b186fcf.js} +2 -2
- package/bundle/{p-d23d7658.js → p-a0268a31.js} +2 -2
- package/bundle/{p-c8b73e93.js → p-bce8c93f.js} +2 -2
- package/bundle/{p-2e9b9605.js → p-bf326ae8.js} +2 -2
- package/bundle/{p-98bd8a96.js → p-d018450c.js} +2 -2
- package/bundle/p-d05140f5.js +2 -0
- package/bundle/p-d05140f5.js.map +1 -0
- package/bundle/{p-f0dda0b8.js → p-d3fe6951.js} +2 -2
- package/bundle/{p-9c2aa87a.js → p-ee6ff5f8.js} +2 -2
- package/bundle/{p-cdc6f6c2.js → p-ff261e50.js} +2 -2
- package/bundle/wcs-accordion-panel.js +1 -1
- package/bundle/wcs-alert-drawer.js +1 -1
- package/bundle/wcs-alert.js +1 -1
- package/bundle/wcs-breadcrumb.js +1 -1
- package/bundle/wcs-button.js +1 -1
- package/bundle/wcs-card-content.js +1 -1
- package/bundle/wcs-card-content.js.map +1 -1
- package/bundle/wcs-card.js +1 -1
- package/bundle/wcs-card.js.map +1 -1
- package/bundle/wcs-checkbox.js +1 -1
- package/bundle/wcs-com-nav-category.js +1 -1
- package/bundle/wcs-com-nav-submenu.js +1 -1
- package/bundle/wcs-com-nav.js +1 -1
- package/bundle/wcs-counter.js +1 -1
- package/bundle/wcs-dropdown-item.js +1 -1
- package/bundle/wcs-dropdown.js +1 -1
- package/bundle/wcs-dropdown.js.map +1 -1
- package/bundle/wcs-editable-field.js +1 -1
- package/bundle/wcs-editable-field.js.map +1 -1
- package/bundle/wcs-form-field.js +1 -1
- package/bundle/wcs-galactic-menu.js +1 -1
- package/bundle/wcs-grid-column.js +1 -1
- package/bundle/wcs-grid-column.js.map +1 -1
- package/bundle/wcs-grid-custom-cell.js +1 -1
- package/bundle/wcs-grid-custom-cell.js.map +1 -1
- package/bundle/wcs-grid-pagination.js +1 -1
- package/bundle/wcs-grid.js +1 -1
- package/bundle/wcs-grid.js.map +1 -1
- package/bundle/wcs-header.js +1 -1
- package/bundle/wcs-hint.js +1 -1
- package/bundle/wcs-horizontal-stepper.js +1 -1
- package/bundle/wcs-icon.js +1 -1
- package/bundle/wcs-input.js +1 -1
- package/bundle/wcs-input.js.map +1 -1
- package/bundle/wcs-label.js +1 -1
- package/bundle/wcs-list-item-properties.js +1 -1
- package/bundle/wcs-list-item-property.js +1 -1
- package/bundle/wcs-list-item.js +1 -1
- package/bundle/wcs-mat-icon.js +1 -1
- package/bundle/wcs-modal.js +1 -1
- package/bundle/wcs-native-select.js +1 -1
- package/bundle/wcs-nav-item.js +1 -1
- package/bundle/wcs-nav.js +1 -1
- package/bundle/wcs-progress-bar.js +1 -1
- package/bundle/wcs-progress-radial.js +1 -1
- package/bundle/wcs-radio-group.js +1 -1
- package/bundle/wcs-radio-group.js.map +1 -1
- package/bundle/wcs-radio.js +1 -1
- package/bundle/wcs-radio.js.map +1 -1
- package/bundle/wcs-select-option.js +1 -1
- package/bundle/wcs-select.js +1 -1
- package/bundle/wcs-skeleton-circle.js +1 -1
- package/bundle/wcs-skeleton-rectangle.js +1 -1
- package/bundle/wcs-skeleton-text.js +1 -1
- package/bundle/wcs-spinner.js +1 -1
- package/bundle/wcs-switch.js +1 -1
- package/bundle/wcs-tab.js +1 -1
- package/bundle/wcs-tabs.js +1 -1
- package/bundle/wcs-textarea.js +1 -1
- package/bundle/wcs-tooltip.js +2 -2
- package/composite-elements/{p-af24fb0d.js → p-00dd13c3.js} +3 -3
- package/composite-elements/p-00dd13c3.js.map +1 -0
- package/composite-elements/p-6b91c7bd.js +2 -0
- package/composite-elements/p-6b91c7bd.js.map +1 -0
- package/{bundle/p-30d83d3d.js → composite-elements/p-7feba658.js} +2 -2
- package/composite-elements/p-7feba658.js.map +1 -0
- package/composite-elements/{p-b83afff9.js → p-87e97a2e.js} +2 -2
- package/composite-elements/{p-b92e818b.js → p-a70a3379.js} +2 -2
- package/composite-elements/{p-55668982.js → p-c028b8e6.js} +2 -2
- package/composite-elements/{p-2a51c239.js → p-c6adb221.js} +2 -2
- package/composite-elements/{p-04663560.js → p-e4e3ed2c.js} +2 -2
- package/composite-elements/{p-51517fda.js → p-ec3ce4d4.js} +2 -2
- package/composite-elements/wcs-alert-drawer.js +1 -1
- package/composite-elements/wcs-alert.js +1 -1
- package/composite-elements/wcs-breadcrumb.js +1 -1
- package/composite-elements/wcs-button.js +1 -1
- package/composite-elements/wcs-card-content.js +1 -1
- package/composite-elements/wcs-card-content.js.map +1 -1
- package/composite-elements/wcs-card.js +1 -1
- package/composite-elements/wcs-card.js.map +1 -1
- package/composite-elements/wcs-counter.js +1 -1
- package/composite-elements/wcs-dropdown.js +1 -1
- package/composite-elements/wcs-dropdown.js.map +1 -1
- package/composite-elements/wcs-editable-field.js +1 -1
- package/composite-elements/wcs-editable-field.js.map +1 -1
- package/composite-elements/wcs-galactic-menu.js +1 -1
- package/composite-elements/wcs-grid-column.js +1 -1
- package/composite-elements/wcs-grid-column.js.map +1 -1
- package/composite-elements/wcs-grid-custom-cell.js +1 -1
- package/composite-elements/wcs-grid-custom-cell.js.map +1 -1
- package/composite-elements/wcs-grid-pagination.js +1 -1
- package/composite-elements/wcs-grid.js +1 -1
- package/composite-elements/wcs-grid.js.map +1 -1
- package/composite-elements/wcs-header.js +1 -1
- package/composite-elements/wcs-hint.js +1 -1
- package/composite-elements/wcs-horizontal-stepper.js +1 -1
- package/composite-elements/wcs-icon.js +1 -1
- package/composite-elements/wcs-input.js +1 -1
- package/composite-elements/wcs-input.js.map +1 -1
- package/composite-elements/wcs-label.js +1 -1
- package/composite-elements/wcs-list-item-properties.js +1 -1
- package/composite-elements/wcs-list-item-property.js +1 -1
- package/composite-elements/wcs-list-item.js +1 -1
- package/composite-elements/wcs-mat-icon.js +1 -1
- package/composite-elements/wcs-modal.js +1 -1
- package/composite-elements/wcs-native-select.js +1 -1
- package/composite-elements/wcs-nav-item.js +1 -1
- package/composite-elements/wcs-nav.js +1 -1
- package/composite-elements/wcs-progress-bar.js +1 -1
- package/composite-elements/wcs-progress-radial.js +1 -1
- package/composite-elements/wcs-radio-group.js +1 -1
- package/composite-elements/wcs-radio.js +1 -1
- package/composite-elements/wcs-radio.js.map +1 -1
- package/composite-elements/wcs-select-option.js +1 -1
- package/composite-elements/wcs-select.js +1 -1
- package/composite-elements/wcs-skeleton-circle.js +1 -1
- package/composite-elements/wcs-skeleton-rectangle.js +1 -1
- package/composite-elements/wcs-skeleton-text.js +1 -1
- package/composite-elements/wcs-spinner.js +1 -1
- package/composite-elements/wcs-switch.js +1 -1
- package/composite-elements/wcs-tab.js +1 -1
- package/composite-elements/wcs-tabs.js +1 -1
- package/composite-elements/wcs-textarea.js +1 -1
- package/composite-elements/wcs-tooltip.js +1 -1
- package/dist/cjs/{grid-pagination-4505d7b6.js → grid-pagination-ded127cc.js} +2 -2
- package/dist/cjs/grid-pagination-ded127cc.js.map +1 -0
- package/dist/cjs/{isEqual-8a0a6936.js → isEqual-be8e5a57.js} +2 -2
- package/dist/cjs/{isEqual-8a0a6936.js.map → isEqual-be8e5a57.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/wcs-button_2.cjs.entry.js +1 -1
- package/dist/cjs/wcs-card-content.cjs.entry.js +1 -1
- package/dist/cjs/wcs-card-content.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-card.cjs.entry.js +1 -1
- package/dist/cjs/wcs-card.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/wcs-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-editable-field.cjs.entry.js +34 -10
- package/dist/cjs/wcs-editable-field.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-error_3.cjs.entry.js +2 -2
- package/dist/cjs/wcs-error_3.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-grid-column.cjs.entry.js +1 -1
- package/dist/cjs/wcs-grid-custom-cell.cjs.entry.js +1 -1
- package/dist/cjs/wcs-grid-pagination.cjs.entry.js +1 -1
- package/dist/cjs/wcs-grid.cjs.entry.js +6 -6
- package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-header.cjs.entry.js +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-icon.cjs.entry.js +1 -1
- package/dist/cjs/wcs-input.cjs.entry.js +1 -6
- 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-mat-icon.cjs.entry.js +1 -1
- package/dist/cjs/wcs-modal.cjs.entry.js +1 -1
- package/dist/cjs/wcs-native-select.cjs.entry.js +1 -1
- package/dist/cjs/wcs-nav-item.cjs.entry.js +1 -1
- package/dist/cjs/wcs-nav.cjs.entry.js +1 -1
- package/dist/cjs/wcs-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/wcs-progress-radial.cjs.entry.js +2 -2
- package/dist/cjs/wcs-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/wcs-radio.cjs.entry.js +24 -20
- package/dist/cjs/wcs-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-select_2.cjs.entry.js +19 -9
- 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 +1 -1
- package/dist/cjs/wcs-tab.cjs.entry.js +1 -1
- package/dist/cjs/wcs-tabs.cjs.entry.js +1 -1
- package/dist/cjs/wcs-textarea.cjs.entry.js +1 -1
- package/dist/cjs/wcs-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/wcs.cjs.js +1 -1
- package/dist/collection/components/card/card.js +11 -4
- package/dist/collection/components/card/card.js.map +1 -1
- package/dist/collection/components/card-content/card-content.js +8 -3
- package/dist/collection/components/card-content/card-content.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.css +8 -0
- package/dist/collection/components/dropdown/dropdown.e2e.playwright.js +53 -0
- package/dist/collection/components/dropdown/dropdown.e2e.playwright.js.map +1 -1
- package/dist/collection/components/editable-field/editable-field.e2e.playwright.js +214 -0
- package/dist/collection/components/editable-field/editable-field.e2e.playwright.js.map +1 -1
- package/dist/collection/components/editable-field/editable-field.js +34 -10
- package/dist/collection/components/editable-field/editable-field.js.map +1 -1
- package/dist/collection/components/grid/grid-radio.css +8 -0
- package/dist/collection/components/grid/grid.e2e.playwright.js +55 -0
- package/dist/collection/components/grid/grid.e2e.playwright.js.map +1 -1
- package/dist/collection/components/grid/grid.js +3 -3
- package/dist/collection/components/grid-column/grid-column.js +1 -1
- package/dist/collection/components/grid-custom-cell/grid-custom-cell.js +1 -1
- package/dist/collection/components/grid-pagination/grid-pagination.js +4 -1
- package/dist/collection/components/grid-pagination/grid-pagination.js.map +1 -1
- package/dist/collection/components/header/header.js +1 -1
- package/dist/collection/components/hint/hint.js +1 -1
- package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +1 -1
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/input/input.js +2 -7
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/label/label.css +12 -9
- package/dist/collection/components/label/label.e2e.playwright.js +104 -0
- package/dist/collection/components/label/label.e2e.playwright.js.map +1 -0
- 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 +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 +1 -1
- package/dist/collection/components/modal/modal.js +1 -1
- package/dist/collection/components/native-select/native-select.js +1 -1
- package/dist/collection/components/nav/nav.js +1 -1
- package/dist/collection/components/nav-item/nav-item.js +1 -1
- package/dist/collection/components/progress-bar/progress-bar.js +2 -2
- package/dist/collection/components/progress-radial/progress-radial.js +2 -2
- package/dist/collection/components/radio/radio.css +48 -37
- package/dist/collection/components/radio/radio.js +24 -20
- package/dist/collection/components/radio/radio.js.map +1 -1
- package/dist/collection/components/radio-group/radio-group.e2e.playwright.js +92 -7
- package/dist/collection/components/radio-group/radio-group.e2e.playwright.js.map +1 -1
- package/dist/collection/components/radio-group/radio-group.js +1 -1
- package/dist/collection/components/select/select-interface.js.map +1 -1
- package/dist/collection/components/select/select.e2e.playwright.js +9 -9
- package/dist/collection/components/select/select.e2e.playwright.js.map +1 -1
- package/dist/collection/components/select/select.js +16 -6
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/select-option/select-option.js +2 -2
- package/dist/collection/components/skeleton-circle/skeleton-circle.js +1 -1
- package/dist/collection/components/skeleton-rectangle/skeleton-rectangle.js +1 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +1 -1
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/switch/switch.js +1 -1
- package/dist/collection/components/tab/tab.js +1 -1
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/textarea/textarea.js +1 -1
- package/dist/collection/components/tooltip/tooltip.js +1 -1
- package/dist/collection/utils/playwright/test.js +6 -0
- package/dist/collection/utils/playwright/test.js.map +1 -1
- package/dist/esm/{com-nav-utils-ee7bf77c.js → com-nav-utils-27c1efdf.js} +2 -2
- package/dist/esm/{com-nav-utils-ee7bf77c.js.map → com-nav-utils-27c1efdf.js.map} +1 -1
- package/dist/esm/{grid-pagination-731726a6.js → grid-pagination-23102986.js} +3 -3
- package/dist/esm/grid-pagination-23102986.js.map +1 -0
- package/dist/esm/{helpers-ece6a2d3.js → helpers-89faa1b1.js} +2 -2
- package/dist/esm/{helpers-ece6a2d3.js.map → helpers-89faa1b1.js.map} +1 -1
- package/dist/esm/{isEqual-f2a07f4c.js → isEqual-89e74e17.js} +2 -2
- package/dist/esm/{isEqual-f2a07f4c.js.map → isEqual-89e74e17.js.map} +1 -1
- package/dist/esm/{keyboard-event-26b65ae5.js → keyboard-event-dd35bb6b.js} +2 -2
- package/dist/esm/{keyboard-event-26b65ae5.js.map → keyboard-event-dd35bb6b.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/wcs-accordion-panel.entry.js +1 -1
- package/dist/esm/wcs-alert-drawer.entry.js +1 -1
- package/dist/esm/wcs-breadcrumb.entry.js +1 -1
- package/dist/esm/wcs-button_2.entry.js +2 -2
- package/dist/esm/wcs-card-content.entry.js +1 -1
- package/dist/esm/wcs-card-content.entry.js.map +1 -1
- package/dist/esm/wcs-card.entry.js +1 -1
- package/dist/esm/wcs-card.entry.js.map +1 -1
- package/dist/esm/wcs-checkbox.entry.js +1 -1
- package/dist/esm/wcs-com-nav-category.entry.js +2 -2
- package/dist/esm/wcs-com-nav-submenu.entry.js +2 -2
- package/dist/esm/wcs-com-nav.entry.js +2 -2
- package/dist/esm/wcs-counter.entry.js +1 -1
- package/dist/esm/wcs-dropdown-item.entry.js +1 -1
- package/dist/esm/wcs-dropdown.entry.js +3 -3
- package/dist/esm/wcs-dropdown.entry.js.map +1 -1
- package/dist/esm/wcs-editable-field.entry.js +35 -11
- package/dist/esm/wcs-editable-field.entry.js.map +1 -1
- package/dist/esm/wcs-error_3.entry.js +3 -3
- package/dist/esm/wcs-error_3.entry.js.map +1 -1
- package/dist/esm/wcs-galactic-menu.entry.js +1 -1
- package/dist/esm/wcs-grid-column.entry.js +2 -2
- package/dist/esm/wcs-grid-custom-cell.entry.js +1 -1
- package/dist/esm/wcs-grid-pagination.entry.js +2 -2
- package/dist/esm/wcs-grid.entry.js +8 -8
- package/dist/esm/wcs-grid.entry.js.map +1 -1
- package/dist/esm/wcs-header.entry.js +2 -2
- package/dist/esm/wcs-hint.entry.js +1 -1
- package/dist/esm/wcs-horizontal-stepper.entry.js +1 -1
- package/dist/esm/wcs-icon.entry.js +2 -2
- package/dist/esm/wcs-input.entry.js +2 -7
- 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-mat-icon.entry.js +2 -2
- package/dist/esm/wcs-modal.entry.js +2 -2
- package/dist/esm/wcs-native-select.entry.js +1 -1
- package/dist/esm/wcs-nav-item.entry.js +2 -2
- package/dist/esm/wcs-nav.entry.js +2 -2
- package/dist/esm/wcs-progress-bar.entry.js +3 -3
- package/dist/esm/wcs-progress-radial.entry.js +3 -3
- package/dist/esm/wcs-radio-group.entry.js +2 -2
- package/dist/esm/wcs-radio.entry.js +25 -21
- package/dist/esm/wcs-radio.entry.js.map +1 -1
- package/dist/esm/wcs-select_2.entry.js +21 -11
- package/dist/esm/wcs-select_2.entry.js.map +1 -1
- package/dist/esm/wcs-skeleton-circle.entry.js +1 -1
- package/dist/esm/wcs-skeleton-rectangle.entry.js +1 -1
- package/dist/esm/wcs-skeleton-text.entry.js +1 -1
- package/dist/esm/wcs-switch.entry.js +2 -2
- package/dist/esm/wcs-tab.entry.js +1 -1
- package/dist/esm/wcs-tabs.entry.js +2 -2
- package/dist/esm/wcs-textarea.entry.js +2 -2
- package/dist/esm/wcs-tooltip.entry.js +2 -2
- package/dist/esm/wcs.js +1 -1
- package/dist/types/components/card/card.d.ts +10 -3
- package/dist/types/components/card-content/card-content.d.ts +7 -2
- package/dist/types/components/editable-field/editable-field.d.ts +3 -0
- package/dist/types/components/grid-pagination/grid-pagination.d.ts +3 -0
- package/dist/types/components/label/label.e2e.playwright.d.ts +1 -0
- package/dist/types/components/radio/radio.d.ts +4 -5
- package/dist/types/components/select/select-interface.d.ts +4 -0
- package/dist/types/components.d.ts +52 -16
- package/dist/wcs/{p-1ba616c2.entry.js → p-03838b42.entry.js} +2 -2
- package/dist/wcs/{p-b0a6eec6.entry.js → p-0cbf08fb.entry.js} +2 -2
- package/dist/wcs/{p-cad10435.entry.js → p-0d233c6a.entry.js} +2 -2
- package/dist/wcs/{p-db7ba599.entry.js → p-14dfa087.entry.js} +3 -3
- package/dist/wcs/p-1c356201.entry.js +2 -0
- package/dist/wcs/p-1c356201.entry.js.map +1 -0
- package/dist/wcs/{p-b28b2fba.entry.js → p-218b5f3d.entry.js} +2 -2
- package/dist/wcs/{p-aadf37e7.entry.js → p-25d7b2f8.entry.js} +2 -2
- package/dist/wcs/{p-850fa9c9.entry.js → p-3e57c746.entry.js} +2 -2
- package/dist/wcs/{p-52d77e1f.js → p-5314a64d.js} +2 -2
- package/dist/wcs/{p-27b438c0.entry.js → p-53bc2cae.entry.js} +2 -2
- package/dist/wcs/p-5443c9af.entry.js +2 -0
- package/dist/wcs/p-5443c9af.entry.js.map +1 -0
- package/dist/wcs/{p-ad286030.entry.js → p-56d9554a.entry.js} +2 -2
- package/dist/wcs/p-59f96b21.entry.js +2 -0
- package/dist/wcs/{p-ff826ebe.js → p-5cea30cb.js} +1 -1
- package/dist/wcs/{p-ff826ebe.js.map → p-5cea30cb.js.map} +1 -1
- package/dist/wcs/{p-2329af04.entry.js → p-63a8e5cc.entry.js} +2 -2
- package/dist/wcs/{p-fbd68522.entry.js → p-6d8f0040.entry.js} +2 -2
- package/dist/wcs/p-6e7db56e.entry.js +2 -0
- package/dist/wcs/p-6e7db56e.entry.js.map +1 -0
- package/dist/wcs/{p-c84ae00d.entry.js → p-6f937b20.entry.js} +2 -2
- package/dist/wcs/p-7af9a2f3.js +2 -0
- package/dist/wcs/p-7b60d4c7.js +2 -0
- package/dist/wcs/p-7b60d4c7.js.map +1 -0
- package/dist/wcs/{p-2221bf0c.entry.js → p-82838611.entry.js} +3 -3
- package/dist/wcs/p-82838611.entry.js.map +1 -0
- package/dist/wcs/{p-bc009574.entry.js → p-8f95bbf3.entry.js} +2 -2
- package/dist/wcs/{p-9fd3366c.entry.js → p-912c2c9b.entry.js} +2 -2
- package/dist/wcs/p-9197e9b5.entry.js +2 -0
- package/dist/wcs/p-9197e9b5.entry.js.map +1 -0
- package/dist/wcs/{p-1e7ea63c.entry.js → p-9388283a.entry.js} +2 -2
- package/dist/wcs/{p-18fa39f4.entry.js → p-9c6db857.entry.js} +2 -2
- package/dist/wcs/{p-637ec45a.entry.js → p-9d4c8f84.entry.js} +2 -2
- package/dist/wcs/p-9d4c8f84.entry.js.map +1 -0
- package/dist/wcs/{p-dfb52a1c.entry.js → p-9e091c53.entry.js} +2 -2
- package/dist/wcs/{p-450942b1.entry.js → p-a60ba874.entry.js} +3 -3
- package/dist/wcs/{p-c6f8c45c.entry.js → p-a6d64e5b.entry.js} +2 -2
- package/dist/wcs/{p-9c73744c.entry.js → p-ae299c3f.entry.js} +2 -2
- package/dist/wcs/{p-a0f6ef30.entry.js → p-b04471f5.entry.js} +2 -2
- package/dist/wcs/p-b04471f5.entry.js.map +1 -0
- package/dist/wcs/{p-4ae08567.entry.js → p-b3b31d43.entry.js} +2 -2
- package/dist/wcs/{p-abd8d5a0.entry.js → p-b42f441f.entry.js} +2 -2
- package/dist/wcs/{p-5202b323.entry.js → p-b9368690.entry.js} +2 -2
- package/dist/wcs/{p-e56b9ce2.entry.js → p-beeec782.entry.js} +2 -2
- package/dist/wcs/{p-c261eaf9.entry.js → p-c169d496.entry.js} +2 -2
- package/dist/wcs/p-c3b733ff.entry.js +2 -0
- package/dist/wcs/{p-9b76b8e6.entry.js → p-c42a6c1c.entry.js} +2 -2
- package/dist/wcs/p-c42a6c1c.entry.js.map +1 -0
- package/dist/wcs/p-c6808cab.entry.js +2 -0
- package/dist/wcs/{p-ed3b0709.entry.js → p-cb9147b8.entry.js} +2 -2
- package/dist/wcs/{p-f2f7595e.entry.js → p-cceee683.entry.js} +2 -2
- package/dist/wcs/{p-f2f7595e.entry.js.map → p-cceee683.entry.js.map} +1 -1
- package/dist/wcs/p-d3afc02f.entry.js +2 -0
- package/dist/wcs/{p-5e8fff73.entry.js → p-d89ad962.entry.js} +2 -2
- package/dist/wcs/{p-4e2d6227.entry.js → p-d8c4dbc3.entry.js} +2 -2
- package/dist/wcs/p-dbf82cb9.js +2 -0
- package/dist/wcs/{p-dff8641e.entry.js → p-e35b138e.entry.js} +2 -2
- package/dist/wcs/{p-fdeae83e.entry.js → p-f2c49d83.entry.js} +2 -2
- package/dist/wcs/{p-cbda74f6.entry.js → p-f411974e.entry.js} +2 -2
- package/dist/wcs/{p-0326f834.entry.js → p-f974210c.entry.js} +2 -2
- package/dist/wcs/{p-352e1f99.entry.js → p-ff48a8b2.entry.js} +2 -2
- package/dist/wcs/wcs.esm.js +1 -1
- package/dist/wcs/wcs.esm.js.map +1 -1
- package/package.json +2 -2
- package/bundle/p-30d83d3d.js.map +0 -1
- package/bundle/p-763371a0.js.map +0 -1
- package/bundle/p-97e70e10.js +0 -2
- package/bundle/p-fc9ba34d.js +0 -2
- package/bundle/p-fc9ba34d.js.map +0 -1
- package/composite-elements/p-0c306f8c.js +0 -2
- package/composite-elements/p-0c306f8c.js.map +0 -1
- package/composite-elements/p-af24fb0d.js.map +0 -1
- package/composite-elements/p-bc4c736d.js +0 -2
- package/composite-elements/p-bc4c736d.js.map +0 -1
- package/dist/cjs/grid-pagination-4505d7b6.js.map +0 -1
- package/dist/esm/grid-pagination-731726a6.js.map +0 -1
- package/dist/wcs/p-0017d766.js +0 -2
- package/dist/wcs/p-0b8157e7.entry.js +0 -2
- package/dist/wcs/p-2221bf0c.entry.js.map +0 -1
- package/dist/wcs/p-3823f54e.entry.js +0 -2
- package/dist/wcs/p-580b3142.entry.js +0 -2
- package/dist/wcs/p-5da0534f.entry.js +0 -2
- package/dist/wcs/p-5da0534f.entry.js.map +0 -1
- package/dist/wcs/p-637ec45a.entry.js.map +0 -1
- package/dist/wcs/p-86ec9ead.entry.js +0 -2
- package/dist/wcs/p-86ec9ead.entry.js.map +0 -1
- package/dist/wcs/p-89b8c724.js +0 -2
- package/dist/wcs/p-98a8b806.entry.js +0 -2
- package/dist/wcs/p-98a8b806.entry.js.map +0 -1
- package/dist/wcs/p-9b76b8e6.entry.js.map +0 -1
- package/dist/wcs/p-a0f6ef30.entry.js.map +0 -1
- package/dist/wcs/p-ad5192cd.entry.js +0 -2
- package/dist/wcs/p-c5bad0b8.js +0 -2
- package/dist/wcs/p-c5bad0b8.js.map +0 -1
- package/dist/wcs/p-fe303f58.entry.js +0 -2
- package/dist/wcs/p-fe303f58.entry.js.map +0 -1
- /package/bundle/{p-97e70e10.js.map → p-475be4d2.js.map} +0 -0
- /package/bundle/{p-010cf905.js.map → p-5ef2bc63.js.map} +0 -0
- /package/bundle/{p-44a3b0b9.js.map → p-7a06295b.js.map} +0 -0
- /package/bundle/{p-2751ddc1.js.map → p-8b186fcf.js.map} +0 -0
- /package/bundle/{p-d23d7658.js.map → p-a0268a31.js.map} +0 -0
- /package/bundle/{p-c8b73e93.js.map → p-bce8c93f.js.map} +0 -0
- /package/bundle/{p-2e9b9605.js.map → p-bf326ae8.js.map} +0 -0
- /package/bundle/{p-98bd8a96.js.map → p-d018450c.js.map} +0 -0
- /package/bundle/{p-f0dda0b8.js.map → p-d3fe6951.js.map} +0 -0
- /package/bundle/{p-9c2aa87a.js.map → p-ee6ff5f8.js.map} +0 -0
- /package/bundle/{p-cdc6f6c2.js.map → p-ff261e50.js.map} +0 -0
- /package/composite-elements/{p-b83afff9.js.map → p-87e97a2e.js.map} +0 -0
- /package/composite-elements/{p-b92e818b.js.map → p-a70a3379.js.map} +0 -0
- /package/composite-elements/{p-55668982.js.map → p-c028b8e6.js.map} +0 -0
- /package/composite-elements/{p-2a51c239.js.map → p-c6adb221.js.map} +0 -0
- /package/composite-elements/{p-04663560.js.map → p-e4e3ed2c.js.map} +0 -0
- /package/composite-elements/{p-51517fda.js.map → p-ec3ce4d4.js.map} +0 -0
- /package/dist/wcs/{p-1ba616c2.entry.js.map → p-03838b42.entry.js.map} +0 -0
- /package/dist/wcs/{p-b0a6eec6.entry.js.map → p-0cbf08fb.entry.js.map} +0 -0
- /package/dist/wcs/{p-cad10435.entry.js.map → p-0d233c6a.entry.js.map} +0 -0
- /package/dist/wcs/{p-db7ba599.entry.js.map → p-14dfa087.entry.js.map} +0 -0
- /package/dist/wcs/{p-b28b2fba.entry.js.map → p-218b5f3d.entry.js.map} +0 -0
- /package/dist/wcs/{p-aadf37e7.entry.js.map → p-25d7b2f8.entry.js.map} +0 -0
- /package/dist/wcs/{p-850fa9c9.entry.js.map → p-3e57c746.entry.js.map} +0 -0
- /package/dist/wcs/{p-52d77e1f.js.map → p-5314a64d.js.map} +0 -0
- /package/dist/wcs/{p-27b438c0.entry.js.map → p-53bc2cae.entry.js.map} +0 -0
- /package/dist/wcs/{p-ad286030.entry.js.map → p-56d9554a.entry.js.map} +0 -0
- /package/dist/wcs/{p-3823f54e.entry.js.map → p-59f96b21.entry.js.map} +0 -0
- /package/dist/wcs/{p-2329af04.entry.js.map → p-63a8e5cc.entry.js.map} +0 -0
- /package/dist/wcs/{p-fbd68522.entry.js.map → p-6d8f0040.entry.js.map} +0 -0
- /package/dist/wcs/{p-c84ae00d.entry.js.map → p-6f937b20.entry.js.map} +0 -0
- /package/dist/wcs/{p-89b8c724.js.map → p-7af9a2f3.js.map} +0 -0
- /package/dist/wcs/{p-bc009574.entry.js.map → p-8f95bbf3.entry.js.map} +0 -0
- /package/dist/wcs/{p-9fd3366c.entry.js.map → p-912c2c9b.entry.js.map} +0 -0
- /package/dist/wcs/{p-1e7ea63c.entry.js.map → p-9388283a.entry.js.map} +0 -0
- /package/dist/wcs/{p-18fa39f4.entry.js.map → p-9c6db857.entry.js.map} +0 -0
- /package/dist/wcs/{p-dfb52a1c.entry.js.map → p-9e091c53.entry.js.map} +0 -0
- /package/dist/wcs/{p-450942b1.entry.js.map → p-a60ba874.entry.js.map} +0 -0
- /package/dist/wcs/{p-c6f8c45c.entry.js.map → p-a6d64e5b.entry.js.map} +0 -0
- /package/dist/wcs/{p-9c73744c.entry.js.map → p-ae299c3f.entry.js.map} +0 -0
- /package/dist/wcs/{p-4ae08567.entry.js.map → p-b3b31d43.entry.js.map} +0 -0
- /package/dist/wcs/{p-abd8d5a0.entry.js.map → p-b42f441f.entry.js.map} +0 -0
- /package/dist/wcs/{p-5202b323.entry.js.map → p-b9368690.entry.js.map} +0 -0
- /package/dist/wcs/{p-e56b9ce2.entry.js.map → p-beeec782.entry.js.map} +0 -0
- /package/dist/wcs/{p-c261eaf9.entry.js.map → p-c169d496.entry.js.map} +0 -0
- /package/dist/wcs/{p-0b8157e7.entry.js.map → p-c3b733ff.entry.js.map} +0 -0
- /package/dist/wcs/{p-580b3142.entry.js.map → p-c6808cab.entry.js.map} +0 -0
- /package/dist/wcs/{p-ed3b0709.entry.js.map → p-cb9147b8.entry.js.map} +0 -0
- /package/dist/wcs/{p-ad5192cd.entry.js.map → p-d3afc02f.entry.js.map} +0 -0
- /package/dist/wcs/{p-5e8fff73.entry.js.map → p-d89ad962.entry.js.map} +0 -0
- /package/dist/wcs/{p-4e2d6227.entry.js.map → p-d8c4dbc3.entry.js.map} +0 -0
- /package/dist/wcs/{p-0017d766.js.map → p-dbf82cb9.js.map} +0 -0
- /package/dist/wcs/{p-dff8641e.entry.js.map → p-e35b138e.entry.js.map} +0 -0
- /package/dist/wcs/{p-fdeae83e.entry.js.map → p-f2c49d83.entry.js.map} +0 -0
- /package/dist/wcs/{p-cbda74f6.entry.js.map → p-f411974e.entry.js.map} +0 -0
- /package/dist/wcs/{p-0326f834.entry.js.map → p-f974210c.entry.js.map} +0 -0
- /package/dist/wcs/{p-352e1f99.entry.js.map → p-ff48a8b2.entry.js.map} +0 -0
|
@@ -287,9 +287,19 @@ export class Select {
|
|
|
287
287
|
});
|
|
288
288
|
}
|
|
289
289
|
emitChange(newValue) {
|
|
290
|
-
this.
|
|
291
|
-
value
|
|
292
|
-
|
|
290
|
+
if (this.serverMode) {
|
|
291
|
+
// In server mode with autocomplete, we don't know all the options, so we only emit the value(s) without the selected options elements
|
|
292
|
+
this.wcsChange.emit({
|
|
293
|
+
value: newValue,
|
|
294
|
+
selectedOptions: undefined
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
this.wcsChange.emit({
|
|
299
|
+
value: newValue,
|
|
300
|
+
selectedOptions: Array.from(this.options).filter(opt => opt.selected)
|
|
301
|
+
});
|
|
302
|
+
}
|
|
293
303
|
}
|
|
294
304
|
replaceOptions_firefoxBefore63() {
|
|
295
305
|
Array.from(this.el.querySelectorAll('wcs-select-option'))
|
|
@@ -866,14 +876,14 @@ export class Select {
|
|
|
866
876
|
var _a;
|
|
867
877
|
const ariaLabelValue = `${this.labelElement ? this.labelElement.innerText : ''} ${this.hasValue ? this.displayText : ''}`.trimEnd();
|
|
868
878
|
const noResultContainerId = 'no-result-container';
|
|
869
|
-
return (h(Host, Object.assign({ key: '
|
|
879
|
+
return (h(Host, Object.assign({ key: '34a191b99645da1e3303c25899b259b8cdb1ee4a', class: this.expanded ? 'expanded ' : '', overlayDirection: this.overlayDirection }, this.focusedAttributes(), { role: !this.autocomplete ? "combobox" : null, "aria-haspopup": !this.autocomplete ? "listbox" : null, "aria-owns": !this.autocomplete ? this.optionsId : null, "aria-controls": !this.autocomplete ? this.optionsId : null, "aria-disabled": !this.autocomplete ? (this.disabled ? 'true' : null) : null, "aria-required": !this.autocomplete ? (this.required ? 'true' : 'false') : null, "aria-expanded": !this.autocomplete ? (this.expanded ? 'true' : 'false') : null, "aria-multiselectable": !this.autocomplete ? (this.multiple ? 'true' : 'false') : null, "aria-label": !this.autocomplete ? ariaLabelValue : null }), h("div", { key: '459fbc973a080ee868ad8db7f8923f350f9c9797', class: "wcs-select-control" }, h("div", { key: '39d512233c98df9073334334c64c6214fe7f7008', class: "wcs-select-value-container" }, this.hasValue
|
|
870
880
|
?
|
|
871
881
|
(this.chips ?
|
|
872
882
|
this.values.map((option) => h(SelectChips, { disabled: this.disabled, option: option, onRemove: this.removeChip.bind(this) }))
|
|
873
883
|
: (!this.autocomplete || this.autocomplete && this.multiple) &&
|
|
874
884
|
h("label", { class: "wcs-select-value" }, this.displayText))
|
|
875
|
-
: !this.autocomplete && h("label", { class: "wcs-select-placeholder" }, this.placeholder), this.autocomplete && h("input", Object.assign({ key: '
|
|
876
|
-
h("div", { key: '
|
|
885
|
+
: !this.autocomplete && h("label", { class: "wcs-select-placeholder" }, this.placeholder), this.autocomplete && h("input", Object.assign({ key: '52561ab64683b48df6e3e8d8813013bb369c8405', class: "autocomplete-field", value: this.autocompleteValue, role: "combobox", "aria-haspopup": "listbox", "aria-label": ariaLabelValue, "aria-describedby": noResultContainerId, "aria-disabled": this.disabled ? 'true' : null, "aria-expanded": this.expanded ? 'true' : 'false', "aria-controls": this.optionsId, "aria-owns": this.optionsId, "aria-multiselectable": this.multiple ? 'true' : 'false', "aria-autocomplete": "list", autocomplete: "off", disabled: this.disabled, required: this.required, placeholder: ((_a = this.values) === null || _a === void 0 ? void 0 : _a.length) ? null : this.placeholder, onInput: (e) => this.onAutocompleteInputEvent(e), ref: el => this.autocompleteInput = el }, this.inheritedAttributes))), h(SelectArrow, { key: '3fbe828718fa2afb8379ed673148a91bcbdbaddb', up: this.expanded })), h("div", { key: 'a4aab4d8a15efb5226204945986cccfd04fab44f', class: "wcs-select-options", id: this.optionsId, role: "listbox" }, h("slot", { key: '32c6ee55bf39c3da7ae2fee5012a849b472b0e18', name: "options", onSlotchange: this.onSlotchange.bind(this) }), (this.autocomplete && this.showNoResultFoundLabel) &&
|
|
886
|
+
h("div", { key: 'bd44edbf07935d16b4bc8df53a724bcc82dd3df4', role: "alert", id: noResultContainerId, class: "noresult-container" }, h("slot", { key: '7bc1d019368ce1c0867e5c7b87ce2918e676a814', name: "filter-no-result" }, h("span", { key: '741628bfc5a45abead13a63fe4a1ec1ad9745393' }, "Aucun r\u00E9sultat"))))));
|
|
877
887
|
}
|
|
878
888
|
static get is() { return "wcs-select"; }
|
|
879
889
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/components/select/select.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch\n} from '@stencil/core';\n\nimport { interpret, Interpreter, Machine, MachineConfig, MachineOptions } from 'xstate';\nimport {\n isWcsSelectSize,\n SelectChangeEventDetail,\n SelectFilterChangeEventDetail,\n WcsDefaultSelectFilterFn,\n WcsSelectFilterFn,\n WcsSelectSize,\n WcsSelectSizeValue\n} from './select-interface';\nimport { SelectArrow } from './select-arrow';\nimport { SelectOptionChosedEvent, SelectOptionValue } from '../select-option/select-option-interface';\nimport {\n isElement,\n generateUniqueId,\n findItemLabel,\n inheritAriaAttributes,\n inheritAttributes, setOrRemoveAttribute, compareLists\n} from '../../utils/helpers';\nimport { SelectChips } from './select-chips';\nimport { createPopper, Instance } from '@popperjs/core';\nimport { isEqual } from 'lodash-es';\nimport { getActionForKeyboardEvent, KeyboardEventAssociatedAction } from './select-keyboard-event';\nimport { isFocusable } from '../../utils/accessibility';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\ninterface SelectStateSchema {\n states: {\n closed: {};\n opened: {};\n };\n}\n\ntype SelectEvent\n = { type: 'OPEN' }\n | { type: 'CLOSE', value: { shouldBlur?: boolean, fromKeyboard: boolean } }\n | { type: 'CLICK' }\n | { type: 'OPTION_SELECTED', value: { option: SelectOptionChosedEvent, fromKeyboard: boolean } };\n\nconst SELECT_MACHINE_CONFIG: MachineConfig<any, SelectStateSchema, SelectEvent> = {\n key: 'select',\n initial: 'closed',\n states: {\n closed: {\n entry: ['close'],\n on: {\n CLICK: 'opened',\n OPEN: 'opened',\n OPTION_SELECTED: {actions: ['selectOption']}\n },\n },\n opened: {\n entry: ['open'],\n on: {\n CLICK: 'closed',\n CLOSE: 'closed',\n OPTION_SELECTED: {actions: ['selectOption']}\n },\n },\n }\n};\n\nconst SELECT_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * The select component (also named combobox) is a form component that allows users to select one or more options\n * from a list.\n * Use it with several slotted `wcs-select-option` inside.\n *\n * @slot filter-no-result Contains the customizable \"No result found\" div (autocomplete mode only).\n * \n * @cssprop --wcs-select-control-arrow-color - Color of the select arrow\n * @cssprop --wcs-select-control-arrow-color-disabled - Color of the select arrow when disabled\n * \n * @cssprop --wcs-select-control-background-color - Background color of the select control\n * \n * @cssprop --wcs-select-control-line-height - Line height of the select control\n * \n * @cssprop --wcs-select-options-padding - Padding of the select options container\n * \n * @cssprop --wcs-select-control-border-radius - Border radius of the select control\n * @cssprop --wcs-select-control-border-width-default - Border width of the select control when not focused\n * @cssprop --wcs-select-control-border-width-focus - Border width of the select control when focused\n * \n * @cssprop --wcs-select-control-border-color-default - Border color of the select control when not focused\n * @cssprop --wcs-select-control-border-color-disabled - Border color of the select control when disabled\n * @cssprop --wcs-select-control-border-color-error - Border color of the select control when error\n * @cssprop --wcs-select-control-border-color-focus - Border color of the select control when focused (not opened, but the control is focused)\n * \n * @cssprop --wcs-select-value-color - Text color of the select value when not focused \n * @cssprop --wcs-select-value-font-weight - Font weight of the select value\n * \n * @cssprop --wcs-select-placeholder-color - Text color of the select placeholder\n * @cssprop --wcs-select-placeholder-font-weight - Font weight of the select placeholder\n * @cssprop --wcs-select-placeholder-font-style - Font style of the select placeholder\n *\n * @cssprop --wcs-select-text-color-disabled - Text color of the select when disabled\n *\n * @cssprop --wcs-select-control-border-style-default - Border style of the select control when not focused\n * @cssprop --wcs-select-control-border-style-focus - Border style of the select control when focused\n * @cssprop --wcs-select-control-border-style-error - Border style of the select control when error\n * \n * @cssprop --wcs-select-control-chips-gap - Gap between chips (only in multiple mode)\n *\n * @cssprop --wcs-select-control-height-m - Height of the select control in medium size\n * @cssprop --wcs-select-control-height-l - Height of the select control in large size\n * \n * @cssprop --wcs-select-control-autocomplete-padding-vertical-m - Padding vertical (top - bottom) of the select control in size m\n * @cssprop --wcs-select-control-autocomplete-padding-vertical-l - Padding vertical (top - bottom) of the select control in size l\n * @cssprop --wcs-select-control-padding-horizontal-m - Padding horizontal (left - right) in medium size\n * @cssprop --wcs-select-control-padding-horizontal-l - Padding horizontal (left - right) in large size\n * \n * @cssprop --wcs-select-control-font-size-m - Font size of the select in size m\n * @cssprop --wcs-select-control-font-size-l - Font size of the select in size m\n * \n * \n * @cssprop --wcs-select-control-chip-color-default - Color default of the select chip\n * @cssprop --wcs-select-control-chip-color-disabled - Color disabled of the select chip\n * @cssprop --wcs-select-control-chip-background-color-default - Background color default of the select chip\n * @cssprop --wcs-select-control-chip-background-color-disabled - Disabled background color of the select chip\n * @cssprop --wcs-select-control-chip-padding-vertical - Padding vertical (top - bottom) of the select chip\n * @cssprop --wcs-select-control-chip-padding-horizontal - Padding horizontal (left - right) of the select chip\n * @cssprop --wcs-select-control-chip-line-height - Line height of the select chip\n * @cssprop --wcs-select-control-chip-border-radius - Border radius of the select chip\n * \n * @cssprop --wcs-select-overlay-max-height - Max height of the select overlay\n * @cssprop --wcs-select-overlay-background-color - Background color of the select overlay\n * @cssprop --wcs-select-overlay-border-width - Border width of the select overlay\n * @cssprop --wcs-select-overlay-border-color - Border color of the select overlay\n * @cssprop --wcs-select-overlay-border-radius - Border radius of the overlay\n */\n@Component({\n tag: 'wcs-select',\n styleUrl: 'select.scss',\n shadow: true\n})\nexport class Select implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLWcsSelectElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n private stateService!: Interpreter<any, SelectStateSchema, SelectEvent>;\n\n private selectId = `wcs-select-${selectIds++}`;\n private labelElement: HTMLWcsLabelElement;\n private optionsEl!: HTMLDivElement;\n private optionsId = generateUniqueId(\"OPTIONS\");\n private controlEl!: HTMLDivElement;\n\n // Only used for multiples.\n private values: SelectOptionValue[];\n\n /**\n * This attribute mutate when a new option is selected OR unselected\n * @private\n */\n private lastModifiedOptionElement: HTMLWcsSelectOptionElement | null;\n /**\n * It serves for accessibility feature: keyboard navigation. It serves to focus the option if defined when the select\n * is opened based on which key pressed.\n *\n * When the select is <b>opened</b> user can navigate through options with keyboard:\n *\n * - Arrow right | down: `lastFocusedOptionElement` equals to the next option of `lastFocusedOptionElement` or\n * the first if `lastFocusedOptionElement` is not defined\n * - Arrow left | top: `lastFocusedOptionElement` equals to the previous enabled option of `lastFocusedOptionElement`\n * or the first if `lastFocusedOptionElement` is not defined\n * - Page up: `lastFocusedOptionElement` equals to the first enabled option\n * - Page down: `lastFocusedOptionElement` equals to the last enabled option\n * @private\n */\n private lastFocusedOptionElement: HTMLWcsSelectOptionElement | null;\n\n // Only used for autocomplete.\n private lastHighlightedOptionElement: HTMLWcsSelectOptionElement | null;\n private autocompleteInput: HTMLInputElement;\n\n /** Whether the select is expanded */\n @State()\n private expanded: boolean = false;\n\n /**\n * Specify the size (height) of the select.\n */\n @Prop({reflect: true}) size: WcsSelectSize = 'm';\n\n /** Text to display for the selected option, when no option is selected, the value is undefined. */\n @State()\n private displayText: string;\n\n /** When the host is focused. */\n @State()\n // @ts-ignore\n private focused: boolean;\n\n /** The currently selected value. */\n @Prop({mutable: true})\n value?: any | null;\n\n /** The text to display when the select is empty. */\n @Prop({mutable: true, reflect: true})\n placeholder?: string | null;\n\n /** If `true`, the user cannot interact with the select. */\n @Prop({ reflect: true, mutable: true })\n disabled: boolean = false;\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop({ reflect: true })\n required: boolean = false;\n\n /** If `true`, the user can select multiple values at once. */\n @Prop({ reflect: true })\n multiple: boolean = false;\n\n /** If `true`, the select acts as an autocomplete field to filter your results. */\n @Prop({ reflect: true })\n autocomplete: boolean = false;\n\n /**\n * **Only works with `autocomplete` mode.** \n * If `true`, the server mode disables the client-side filtering on your select and allows you to handle\n * which options should be present in your DOM.\n */\n @Prop({ reflect: true })\n serverMode: boolean = false;\n\n /**\n * **Only works with `autocomplete` mode.** \n * Customizable sort function to change the comparison of values. If not provided, uses the default behavior :\n * `option.textContent.toLowerCase().startsWith(filter.toLowerCase())`\n */\n @Prop({attribute: null}) filterFn: WcsSelectFilterFn;\n\n /** If `true`, selected items are shown in chips mode. */\n @Prop({ reflect: true })\n chips: boolean = false;\n\n /** The name of the control, which is submitted with the form data. */\n @Prop()\n name?: string;\n\n /** Function used to compare options, default : deep comparison. */\n @Prop()\n compareWith?: (optionValue: any, selectedValue: any) => boolean = (optionValue, selectedValue) => isEqual(optionValue, selectedValue);\n\n private popper: Instance;\n\n /**\n * Boolean to toggle the text \"No result found\" (only for autocomplete with filter)\n * @private\n */\n @State() private showNoResultFoundLabel: boolean = false;\n\n /**\n * Value of the autocomplete input field\n * @private\n */\n @State() private autocompleteValue = undefined;\n\n @State() private overlayDirection: 'bottom' | 'top' = 'bottom';\n\n /** Emitted when the value has changed. */\n @Event() wcsChange!: EventEmitter<SelectChangeEventDetail>;\n\n /** Emitted when the select has focus. */\n @Event() wcsFocus!: EventEmitter<FocusEvent>;\n\n /** Emitted when the select loses focus. */\n @Event() wcsBlur!: EventEmitter<FocusEvent>;\n\n /** Emitted when the autocomplete filter has changed. */\n @Event() wcsFilterChange!: EventEmitter<SelectFilterChangeEventDetail>;\n\n /** Open the component. */\n @Method()\n async open() {\n this.stateService.send('OPEN');\n }\n\n /** Close the component. */\n @Method()\n async close() {\n this.stateService.send('CLOSE');\n }\n\n @Watch('value')\n onValueChangeHandler(newValue: any) {\n this.updateSelectedValue(newValue);\n }\n\n /**\n * Updates the selected value(s) of the component and manages the internal state accordingly\n *\n * @param value - The value(s) to be selected in the component\n * For single selection mode: any value that matches an option's value\n * For multiple selection mode: a single value or an array of values\n * @param resetIfNoValue - When true and no value is provided, the select component will be reset\n * Defaults to true\n */\n private updateSelectedValue(value: any, resetIfNoValue = true, shouldEmitFilterChangeEvent = true) {\n // If no value is passed, the select is reset.\n if (!value && resetIfNoValue) {\n this.reset();\n }\n if (this.multiple) {\n // If user don't give an array, we provide one\n if (!Array.isArray(value)) {\n value = [value];\n }\n\n // We assume that the last modified option in multiple mode is the last one in the array\n this.lastModifiedOptionElement = value.length > 0 ? Array.from(this.options).find(opt => this.compareWith(opt.value, value[value.length - 1])) ?? null : null;\n\n if (this.serverMode) {\n // in server mode, we don't know all the possible select options, so we assume the value is correct,\n // and we just sync the displayText and current available options\n const compareResult = compareLists(this.values.map(v => v.value), value, this.compareWith);\n compareResult.added.forEach(addedOption => {\n const option = Array.from(this.options).find(opt => this.compareWith(opt.value, addedOption)); \n if (option) {\n this.values.push({\n value: option.value,\n displayText: option.innerText,\n chipColor: option.chipColor,\n chipBackgroundColor: option.chipBackgroundColor\n });\n option.selected = true;\n }\n });\n\n\n // We update the selected options when the slot changes to keep the selected options in sync with the current value\n compareResult.kept.forEach((keptOption: string) => {\n const option = Array.from(this.options).find(opt => this.compareWith(opt.value, keptOption));\n if (option) {\n option.selected = true;\n }\n\n })\n \n compareResult.removed.forEach(removedOption => {\n this.values = this.values.filter(v => !this.compareWith(v.value, removedOption));\n const removedOptionElement = Array.from(this.options).find(opt => this.compareWith(opt.value, removedOption));\n if (removedOptionElement) {\n removedOptionElement.selected = false;\n }\n });\n } else {\n this.values = [];\n \n this.options.forEach((opt: HTMLWcsSelectOptionElement) => {\n const isSelected = value ?\n value.findIndex(v => this.compareWith(opt.value, v)) !== -1\n : false;\n if (isSelected) {\n this.values.push({\n value: opt.value,\n displayText: opt.innerText,\n chipColor: opt.chipColor,\n chipBackgroundColor: opt.chipBackgroundColor\n });\n }\n opt.selected = isSelected;\n });\n }\n // update select placeholder text\n this.displayText = this.values.length !== 0\n ? this.values.map(v => v.displayText).join(', ')\n : undefined;\n } else {\n let hasFoundCurrentValueInOptionList = false;\n this.options.forEach((opt: HTMLWcsSelectOptionElement) => {\n const isSelected = this.compareWith(opt.value, value);\n if (isSelected) {\n hasFoundCurrentValueInOptionList = true;\n this.displayText = opt.innerText;\n this.lastModifiedOptionElement = opt;\n if (this.autocomplete) {\n this.setAutocompleteValue(opt.innerText, false, false, shouldEmitFilterChangeEvent);\n }\n }\n opt.selected = isSelected;\n });\n // we are in server mode and the current select value hasn't been found, we set the AutocompleteValue (filter) to undefined\n // This is important to preserve the same state logic as when a value change and we set the filter to that value\n // Not doing that implies the displayText is not updated because of the check in le slot change handler\n if (this.serverMode && !hasFoundCurrentValueInOptionList) {\n this.setAutocompleteValue('', false, false, shouldEmitFilterChangeEvent);\n this.displayText = '';\n }\n }\n }\n\n\n /**\n * Reset the select: unselects all options for multiple mode and displays the placeholder\n * @private\n */\n private reset() {\n this.values = [];\n this.displayText = undefined;\n if (this.autocomplete) {\n // When need to reset the internal filter state of the component as the mutation of \n // autocompleteValue from the code doesn't call onAutocompleteInputEvent method.\n this.setAutocompleteValue('', true);\n }\n this.options.forEach((opt: HTMLWcsSelectOptionElement) => {\n opt.selected = false;\n });\n }\n\n componentDidLoad() {\n this.optionsEl = this.el.shadowRoot.querySelector('.wcs-select-options');\n this.controlEl = this.el.shadowRoot.querySelector('.wcs-select-control');\n\n const stateMachine = Machine(\n SELECT_MACHINE_CONFIG,\n this.initMachineOptions()\n );\n // FIXME: type checking failed...\n // @ts-ignore\n this.stateService = interpret(stateMachine);\n\n if (this.multiple) {\n this.values = [];\n }\n\n this.stateService.start();\n if (this.optionsEl.querySelector('slot') === null) {\n this.replaceOptions_firefoxBefore63();\n this.listenDomUpdate_firefoxBefore63();\n }\n\n if (this.value !== undefined) {\n this.updateSelectedValue(this.value);\n }\n\n this.popper = this.createPopperInstance();\n\n // if the select is inside a wcs-form-field, we set an id to the wcs-label if present\n // the wcs-label element reference is kept to compute aria-label value during the rendering\n this.labelElement = findItemLabel(this.el);\n if (this.labelElement) {\n this.labelElement.id = this.selectId + \"-lbl\";\n }\n }\n\n private createPopperInstance() {\n return createPopper(this.controlEl, this.optionsEl, {\n placement: \"bottom\",\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 4] // we want 4px between select control and select options\n }\n }\n ]\n });\n }\n\n private emitChange(newValue: any): void {\n this.wcsChange.emit({\n value: newValue\n });\n }\n\n private replaceOptions_firefoxBefore63() {\n Array.from(this.el.querySelectorAll('wcs-select-option'))\n .forEach(option => {\n if (option.parentNode === this.el) {\n this.el.removeChild(option);\n this.optionsEl.appendChild(option);\n }\n });\n }\n\n private listenDomUpdate_firefoxBefore63() {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n this.replaceOptions_firefoxBefore63();\n }\n }\n });\n observer.observe(this.el, {childList: true});\n }\n \n componentWillRender(): Promise<void> | void {\n if (this.multiple) {\n this.options\n .forEach((opt: HTMLWcsSelectOptionElement) => opt.multiple = true);\n }\n }\n\n componentWillLoad(): Promise<void> | void {\n if (!isWcsSelectSize(this.size)) {\n console.warn(`Invalid size value for wcs-select : \"${this.size}\". Must be one of \"${WcsSelectSizeValue.join(', ')}\"`);\n this.size = \"m\"; // Default fallback value\n }\n \n // XXX : special case on this component for attribute inheritance\n // We only move attributes on the native input when autocomplete is true.\n // Otherwise, all attributes are on the Host, so we do not need to inherit those.\n if (this.autocomplete) {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, SELECT_INHERITED_ATTRS),\n };\n }\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n if(this.autocomplete === false) {\n setOrRemoveAttribute(this.el, attr, value);\n } else {\n setOrRemoveAttribute(this.autocompleteInput, attr, value);\n }\n }\n\n private get options(): HTMLWcsSelectOptionElement[] {\n const opts = this.el?.querySelectorAll('wcs-select-option');\n if (opts && opts.length !== 0) {\n return opts as any as HTMLWcsSelectOptionElement[];\n }\n return [];\n }\n\n private get notDisabledOptions(): HTMLWcsSelectOptionElement[] {\n const opts = this.el?.querySelectorAll('wcs-select-option:not([disabled]):not([aria-hidden])');\n if (opts && opts.length !== 0) {\n return opts as any as HTMLWcsSelectOptionElement[];\n }\n return [];\n }\n\n private initMachineOptions(): Partial<MachineOptions<any, SelectEvent>> {\n return {\n actions: {\n open: () => {\n if (!this.disabled) {\n this.expanded = true;\n this.focused = false;\n if(this.multiple === false && this.autocomplete && this.hasValue === false) {\n // If we open the select in single autocomplete mode, we update the autocomplete value at \n // the blur event so that the displayed value reflect the current select value. \n // Indeed, we have to tell the component to take the current filter state manually at the \n // opening (because the input event of the autocomplete field is not fired at this point).\n if (this.autocompleteValue && this.autocompleteValue !== '') {\n this.setAutocompleteValue(this.autocompleteValue);\n }\n }\n this.clearHighlightOnLastHighlightedOption();\n if (this.notDisabledOptions.length > 0) {\n this.lastFocusedOptionElement = this.lastModifiedOptionElement ?? this.notDisabledOptions[0];\n requestAnimationFrame(() => {\n this.autocomplete\n ? this.autocompleteInput?.focus()\n : this.lastFocusedOptionElement?.focus();\n });\n }\n }\n },\n close: (_, event: SelectEvent) => {\n if (event.type === 'CLOSE') {\n this.clearHighlightOnLastHighlightedOption();\n if (event.value?.shouldBlur) {\n this.focused = false;\n } else {\n if (this.autocomplete && event.value?.fromKeyboard) {\n // If we're in autocomplete mode, a keyboard event (e.g. escape) doesn't change the \n // focus (so this.el.focus() aren't called because the select was already focused)\n // but you still have to go back to the autocomplete input.\n this.focusAutocompleteInput();\n } else {\n // Otherwise, we focus the select element\n this.el.focus();\n }\n this.focused = true;\n }\n\n if (this.autocomplete && this.displayText && this.multiple === false) {\n this.setAutocompleteValue(this.displayText);\n }\n }\n this.expanded = false;\n },\n selectOption: (_, event) => {\n if (event.type === 'OPTION_SELECTED') {\n if (this.multiple) {\n this.handleOptionSelectedOnMultiple(event.value.option);\n } else {\n this.handleOptionSelectedOnSingle(event.value.option);\n this.stateService.send('CLOSE', {value: {fromKeyboard: event.value.fromKeyboard}});\n }\n\n if (this.autocomplete) {\n if (this.multiple) {\n requestAnimationFrame(() => {\n this.autocompleteInput.focus();\n })\n } else {\n // Emit the filter change immediately so that server-side filtering can refresh options.\n this.setAutocompleteValue(event.value.option.displayText);\n }\n }\n this.emitChange(this.value);\n }\n }\n },\n guards: {\n enabled: () => !this.disabled\n }\n };\n }\n\n private handleOptionSelectedOnMultiple(event: SelectOptionChosedEvent) {\n const index = this.values.findIndex(v => this.compareWith(v.value, event.value));\n if (index === -1) {\n // this will trigger the watch on value and update the values model\n this.value = [...this.values.map(v => v.value), event.value];\n } else {\n // this will trigger the watch on value and update the values model\n this.value = this.values.filter(v => !this.compareWith(v.value, event.value)).map(v => v.value);\n }\n }\n\n private handleOptionSelectedOnSingle(event: SelectOptionChosedEvent) {\n this.value = event.value;\n }\n\n disconnectedCallback() {\n this.stateService?.stop();\n }\n\n private get hasValue(): boolean {\n // TODO: change this behavior.\n return this.displayText !== undefined;\n }\n\n @Listen('mouseup')\n onMouseUp(event: MouseEvent) {\n const clickOnScroll = isElement(event.target)\n && (event.offsetX > event.target.clientWidth\n || event.offsetY > event.target.clientHeight // If the click il located bellow the component height the click happen in the overlay\n || event.offsetY < 0); // If the click is made above the component\n\n const clickOnRemoveChip = event.composedPath()\n .filter(x => {\n const el = (x as HTMLElement);\n return el.nodeName === 'svg' && el.classList.contains('chip');\n })\n .length > 0;\n\n if (!clickOnScroll && !clickOnRemoveChip) {\n this.stateService.send('CLICK');\n }\n }\n\n @Listen('click', {target: 'window'})\n onWindowClickEvent(event: MouseEvent) {\n const firstSelectInEventPath = event.composedPath().filter(x => (x as HTMLElement).nodeName === 'WCS-SELECT')[0];\n const clickOnCurrentSelect = firstSelectInEventPath === this.el;\n // TODO: Move this logic in the state machine\n // FIXME: Doesnt work with single + disabled option\n if (this.expanded && !clickOnCurrentSelect) {\n this.stateService.send({type: 'CLOSE', value: {shouldBlur: true, fromKeyboard: false}});\n }\n }\n\n @Listen('keydown')\n onKeyDown(_event: KeyboardEvent) {\n const currentState = this.stateService.getSnapshot().matches(\"closed\") ? 'closed' : 'opened';\n let type: 'autocomplete_unique' | 'autocomplete_multiple' | 'unique' | 'multiple';\n if (this.autocomplete) {\n type = this.multiple ? 'autocomplete_multiple' : 'autocomplete_unique';\n } else {\n type = this.multiple ? 'multiple' : 'unique';\n }\n const actionsFromKeyboardEvents: KeyboardEventAssociatedAction[] = getActionForKeyboardEvent(_event, currentState, 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 && actionsFromKeyboardEvents.filter(a => a.kind === 'MoveFocus').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 \"CloseSelect\":\n this.stateService.send({\n type: 'CLOSE',\n value: {shouldBlur: actionFromKeyboardEvent.shouldBlur, fromKeyboard: true}\n });\n break;\n case \"OpenSelect\":\n this.stateService.send('OPEN');\n break;\n case \"SelectOption\":\n switch (actionFromKeyboardEvent.target) {\n case \"next\":\n this.selectClosestOption('next');\n break;\n case \"previous\":\n this.selectClosestOption('previous');\n break;\n case \"first\":\n this.selectFirstOption();\n break;\n case \"last\":\n this.selectLastOption();\n break;\n case \"lastHighlighted\": {\n // We have to handle enterKey here because with autocomplete mode, a wcs-select-option\n // is only highlighted, therefore the event is not fired\n const indexToSelect = Array.from(this.notDisabledOptions).indexOf(this.lastHighlightedOptionElement);\n\n if (indexToSelect !== -1) {\n this.lastModifiedOptionElement = this.lastHighlightedOptionElement;\n this.selectOption(indexToSelect, true);\n }\n break;\n }\n }\n break;\n case \"ClearAutocompleteInput\":\n this.setAutocompleteValue('', false, false);\n break;\n case \"ClearHighlight\":\n this.clearHighlightOnLastHighlightedOption();\n break;\n case \"HighlightOption\":\n switch (actionFromKeyboardEvent.target) {\n case \"next\":\n this.highlightClosestOption('next');\n break;\n case \"previous\":\n this.highlightClosestOption('previous');\n break;\n case \"first\":\n this.highlightFirstOption();\n break;\n case \"last\":\n this.highlightLastOption();\n break;\n default:\n break;\n }\n break;\n case \"FocusOption\":\n switch (actionFromKeyboardEvent.target) {\n case \"next\":\n this.focusClosestOption('next');\n break;\n case \"previous\":\n this.focusClosestOption('previous')\n break;\n case \"first\":\n this.focusFirstOption()\n break;\n case \"last\":\n this.focusLastOption();\n break;\n case \"lastFocused\":\n if (this.lastFocusedOptionElement != null) {\n this.focusOption(Array.from(this.notDisabledOptions).indexOf(this.lastFocusedOptionElement));\n }\n break;\n default:\n break;\n }\n break;\n case \"MoveFocus\":\n switch (actionFromKeyboardEvent.target) {\n case \"previous\": {\n let elementToFocus: Element = this.el.previousElementSibling ?? this.el.parentElement;\n while (elementToFocus) {\n if (isFocusable(elementToFocus)) break;\n elementToFocus = elementToFocus.previousElementSibling ?? elementToFocus.parentElement;\n }\n if (elementToFocus) {\n event.preventDefault();\n (elementToFocus as HTMLElement).focus();\n }\n break;\n }\n default:\n break;\n }\n break;\n default:\n throw new Error(\"Internal error\");\n }\n }\n\n private getClosestActiveOptionIndexForState(direction: 'next' | 'previous', state: 'highlighted' | 'focused' | 'modified'): number | 'nothing' {\n let concernedOption: HTMLWcsSelectOptionElement | null;\n switch (state) {\n case 'focused':\n concernedOption = this.lastFocusedOptionElement;\n break;\n case 'modified':\n concernedOption = this.lastModifiedOptionElement;\n break;\n case 'highlighted':\n concernedOption = this.lastHighlightedOptionElement;\n break;\n default:\n concernedOption = null;\n }\n let currentIndex = Array.from(this.notDisabledOptions).indexOf(concernedOption);\n\n const MIN_INDEX = 0;\n const MAX_INDEX = this.notDisabledOptions.length - 1;\n\n if (direction === 'next' && currentIndex < MAX_INDEX) {\n currentIndex++;\n } else if (direction === 'previous' && currentIndex > MIN_INDEX) {\n currentIndex--;\n } else {\n if (!this.autocomplete)\n return 'nothing';\n\n // Used to scroll options infinitely with keyboard (autocomplete mode only)\n if (direction === 'next' && currentIndex >= MAX_INDEX) {\n currentIndex = 0;\n }\n if (direction === 'previous' && currentIndex === MIN_INDEX) {\n currentIndex = MAX_INDEX;\n }\n }\n return currentIndex;\n }\n\n /**\n * Selects the non-disabled option with the index passed as a parameter.\n * The method sends an event to the state machine (the same as when clicking on an option with the mouse)\n * @param indexToSelect Option index within non-deactivated options list\n * @param fromKeyboard\n * @private\n */\n private selectOption(indexToSelect: number, fromKeyboard = false) {\n const optionToSelect = this.notDisabledOptions[indexToSelect];\n\n if (!optionToSelect) return;\n\n this.sendOptionSelectedToStateMachine({\n source: optionToSelect,\n value: optionToSelect.value,\n displayText: optionToSelect.innerText\n }, fromKeyboard);\n }\n\n private selectClosestOption(direction: 'next' | 'previous'): void {\n const indexToSelect = this.getClosestActiveOptionIndexForState(direction, 'modified');\n if (indexToSelect === 'nothing') return;\n this.selectOption(indexToSelect, true);\n }\n\n private selectFirstOption() {\n if (this.notDisabledOptions.length < 1) {\n return;\n }\n\n this.selectOption(0, true);\n }\n\n private selectLastOption() {\n if (this.notDisabledOptions.length < 1) {\n return;\n }\n\n this.selectOption(this.notDisabledOptions.length - 1, true);\n }\n\n private focusOption(indexToFocus: number) {\n this.lastFocusedOptionElement = this.notDisabledOptions[indexToFocus];\n this.lastFocusedOptionElement?.focus();\n this.el.setAttribute(\"aria-activedescendant\", this.lastFocusedOptionElement.id);\n }\n\n private focusClosestOption(direction: 'next' | 'previous'): void {\n const indexToFocus = this.getClosestActiveOptionIndexForState(direction, 'focused');\n if (indexToFocus === 'nothing') return;\n\n this.focusOption(indexToFocus);\n }\n\n private focusFirstOption() {\n this.focusOption(0);\n }\n\n private focusLastOption() {\n this.focusOption(this.notDisabledOptions.length - 1);\n }\n\n @Listen('wcsSelectOptionClick')\n selectedOptionChanged(event: CustomEvent<SelectOptionChosedEvent>) {\n this.sendOptionSelectedToStateMachine(event.detail);\n }\n\n sendOptionSelectedToStateMachine(event: SelectOptionChosedEvent, fromKeyboard = false) {\n this.stateService.send({type: 'OPTION_SELECTED', value: {option: event, fromKeyboard}});\n }\n\n onSlotchange() {\n if (!this.serverMode || (this.autocomplete && this.displayText === this.autocompleteValue)) {\n // We call updateSelectedValue to update the selected options when the slot changes to keep the selected options in sync with the current value.\n // This also update the displayText value according to the options data.\n // Finally, this update the internal models for multiple mode and handle the server mode correctly.\n this.updateSelectedValue(this.value, false, false);\n } else {\n this.syncOptionsElementsStateWithCurrentSelectedValue();\n }\n\n // Server-mode only : \"no result\" slot should be visible dynamically if no option is present in the slot\n if (this.autocomplete && this.serverMode) {\n this.showNoResultFoundLabel = this.options.length < 1;\n }\n\n if (this.multiple) {\n this.options\n .forEach((opt: HTMLWcsSelectOptionElement) => opt.multiple = true);\n }\n }\n\n /**\n * This method only affect the option's selected state\n * \n * Set the selected state of each option to match the current selected value of the select\n */\n private syncOptionsElementsStateWithCurrentSelectedValue() {\n this.options.forEach((opt: HTMLWcsSelectOptionElement) => {\n const isSelected = this.compareWith(opt.value, this.value);\n opt.selected = isSelected;\n });\n }\n\n removeChip(v: SelectOptionValue) {\n this.options\n .forEach(opt => {\n if (opt.value === v.value) {\n this.sendOptionSelectedToStateMachine({\n ...v,\n source: opt\n });\n }\n });\n }\n\n //region Autocomplete mode\n\n private highlightOption(indexToHighlight: number) {\n this.clearHighlightOnLastHighlightedOption();\n this.lastHighlightedOptionElement = this.notDisabledOptions[indexToHighlight];\n if (this.lastHighlightedOptionElement) {\n this.lastHighlightedOptionElement.highlighted = true;\n this.autocompleteInput.setAttribute(\"aria-activedescendant\", this.lastHighlightedOptionElement.id);\n requestAnimationFrame(() => {\n this.lastHighlightedOptionElement.scrollIntoView({block: \"nearest\", inline: \"nearest\"});\n })\n }\n }\n\n private highlightFirstOption() {\n this.highlightOption(0);\n }\n\n private highlightLastOption() {\n this.highlightOption(this.notDisabledOptions.length - 1);\n }\n\n private highlightClosestOption(direction: 'next' | 'previous'): void {\n const indexToHighlight = this.getClosestActiveOptionIndexForState(direction, 'highlighted');\n if (indexToHighlight === 'nothing') return;\n\n this.highlightOption(indexToHighlight);\n }\n\n /**\n * This method removes the highlight that applies to the last highlighted option if any.\n * This is used only for accessibility of autocomplete mode.\n * @private\n */\n private clearHighlightOnLastHighlightedOption() {\n if (this.lastHighlightedOptionElement) {\n this.lastHighlightedOptionElement.highlighted = false;\n this.lastHighlightedOptionElement = null;\n }\n }\n\n private onAutocompleteInputEvent(e: InputEvent) {\n const filter = this.autocompleteInput.value ?? '';\n\n this.setAutocompleteValue(filter, false, true); // fromUserInteraction = true\n // Avoid the inputEvent event to bubble and be emitted, we rather use wcsFilterChange in this case :\n e.stopPropagation();\n\n }\n\n /**\n * Set the autocomplete value and open the select if needed.\n * @param filter - The new filter value\n * @param isReset - If true, the filter is reset and the select is closed\n * @param fromUserInteraction - If true, the change comes from user interaction (typing), if false it's programmatic\n * @param shouldEmitFilterChangeEvent\n * @private\n */\n private setAutocompleteValue(filter: string, isReset = false, fromUserInteraction = false, shouldEmitFilterChangeEvent = true): void {\n this.clearHighlightOnLastHighlightedOption();\n const newValueIsDifferentFromLastModifiedOption = this.lastModifiedOptionElement == null || this.lastModifiedOptionElement?.textContent !== this.autocompleteValue;\n // Only open the select automatically when the change comes from user interaction\n if (!this.expanded && newValueIsDifferentFromLastModifiedOption && !isReset && fromUserInteraction) {\n this.open(); \n }\n\n // Prevents client-side filtering logic from being applied when serverMode is enabled.\n if (!this.serverMode) {\n if (filter.length) {\n const [matchingOptions, optionsToHide] = [[], []];\n const filteringFunction: WcsSelectFilterFn = this.filterFn ?? WcsDefaultSelectFilterFn;\n this.options.forEach((optionEl: HTMLWcsSelectOptionElement) =>\n (filteringFunction(optionEl, filter) ? matchingOptions : optionsToHide).push(optionEl)\n );\n\n this.showNoResultFoundLabel = matchingOptions.length === 0;\n matchingOptions.forEach(o => {\n o.hidden = false;\n o.removeAttribute(\"aria-hidden\");\n });\n optionsToHide.forEach(o => {\n o.hidden = true;\n o.setAttribute(\"aria-hidden\", \"true\");\n });\n } else {\n this.showNoResultFoundLabel = false;\n this.options.forEach(o => {\n o.hidden = false;\n o.removeAttribute(\"aria-hidden\");\n });\n }\n }\n\n const newAutocompleteValue = filter ?? '';\n const valueHasChanged = this.autocompleteValue !== newAutocompleteValue;\n\n if (valueHasChanged) {\n this.autocompleteValue = newAutocompleteValue;\n }\n\n if (shouldEmitFilterChangeEvent && valueHasChanged) {\n this.wcsFilterChange.emit({\n value: filter,\n });\n }\n }\n\n @Listen('focus')\n onFocus(event: FocusEvent) {\n if (this.autocomplete) {\n this.focusAutocompleteInput();\n }\n this.wcsFocus.emit(event);\n }\n\n private focusAutocompleteInput(): void {\n this.autocompleteInput?.focus();\n }\n\n //endregion\n\n @Listen('blur', { capture: true })\n onBlur(event: FocusEvent) {\n // Avoid emitting a wcsBlur event when the relatedTarget of the blur event is a child or the select itself\n const target = event.relatedTarget as HTMLElement;\n if (this.el.contains(target)) {\n return;\n }\n \n this.wcsBlur.emit(event);\n }\n\n componentDidRender() {\n this.popper?.update();\n }\n\n private focusedAttributes() {\n return !this.disabled ? { tabIndex: 0 } : {};\n }\n\n render() {\n const ariaLabelValue = `${this.labelElement ? this.labelElement.innerText : ''} ${this.hasValue ? this.displayText : ''}`.trimEnd();\n const noResultContainerId = 'no-result-container';\n \n return (\n <Host class={this.expanded ? 'expanded ' : ''}\n overlayDirection={this.overlayDirection}\n {...this.focusedAttributes()}\n role={!this.autocomplete ? \"combobox\" : null}\n aria-haspopup={!this.autocomplete ? \"listbox\" : null}\n aria-owns={!this.autocomplete ? this.optionsId : null}\n aria-controls={!this.autocomplete ? this.optionsId : null}\n aria-disabled={!this.autocomplete ? (this.disabled ? 'true' : null) : null}\n aria-required={!this.autocomplete ? (this.required ? 'true' : 'false') : null}\n aria-expanded={!this.autocomplete ? (this.expanded ? 'true' : 'false') : null}\n aria-multiselectable={!this.autocomplete ? (this.multiple ? 'true' : 'false') : null}\n aria-label={!this.autocomplete ? ariaLabelValue : null}>\n <div class=\"wcs-select-control\">\n <div class=\"wcs-select-value-container\">\n {this.hasValue\n ?\n (this.chips ?\n this.values.map((option: SelectOptionValue) =>\n <SelectChips disabled={this.disabled} option={option}\n onRemove={this.removeChip.bind(this)}/>\n )\n : (!this.autocomplete || this.autocomplete && this.multiple) &&\n <label class=\"wcs-select-value\">{this.displayText}</label>)\n : !this.autocomplete && <label class=\"wcs-select-placeholder\">{this.placeholder}</label>\n }\n {this.autocomplete && <input class=\"autocomplete-field\"\n value={this.autocompleteValue}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-label={ariaLabelValue}\n aria-describedby={noResultContainerId}\n aria-disabled={this.disabled ? 'true' : null}\n aria-expanded={this.expanded ? 'true' : 'false'}\n aria-controls={this.optionsId}\n aria-owns={this.optionsId}\n aria-multiselectable={this.multiple ? 'true' : 'false'}\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n disabled={this.disabled}\n required={this.required}\n placeholder={this.values?.length ? null : this.placeholder}\n onInput={(e) => this.onAutocompleteInputEvent(e)}\n ref={el => this.autocompleteInput = el}\n {...this.inheritedAttributes}/>\n }\n </div>\n <SelectArrow up={this.expanded}/>\n </div>\n <div class=\"wcs-select-options\" id={this.optionsId} role=\"listbox\">\n <slot name=\"options\" onSlotchange={this.onSlotchange.bind(this)}/>\n {(this.autocomplete && this.showNoResultFoundLabel) &&\n <div role=\"alert\" id={noResultContainerId} class=\"noresult-container\">\n <slot name=\"filter-no-result\">\n <span>Aucun résultat</span>\n </slot>\n </div>\n }\n </div>\n </Host>\n );\n }\n}\n\nlet selectIds = 0;\n"]}
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/components/select/select.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EAET,OAAO,EACP,KAAK,EAEL,CAAC,EACD,IAAI,EACJ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,KAAK,EACL,KAAK,EACR,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAe,OAAO,EAAiC,MAAM,QAAQ,CAAC;AACxF,OAAO,EACH,eAAe,EAGf,wBAAwB,EAGxB,kBAAkB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EACH,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EAAE,oBAAoB,EAAE,YAAY,EACxD,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAY,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAiC,MAAM,yBAAyB,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAgBxD,MAAM,qBAAqB,GAAuD;IAC9E,GAAG,EAAE,QAAQ;IACb,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE;QACJ,MAAM,EAAE;YACJ,KAAK,EAAE,CAAC,OAAO,CAAC;YAChB,EAAE,EAAE;gBACA,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,QAAQ;gBACd,eAAe,EAAE,EAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAC;aAC/C;SACJ;QACD,MAAM,EAAE;YACJ,KAAK,EAAE,CAAC,MAAM,CAAC;YACf,EAAE,EAAE;gBACA,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,QAAQ;gBACf,eAAe,EAAE,EAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAC;aAC/C;SACJ;KACJ;CACJ,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AAMH,MAAM,OAAO,MAAM;;QAEP,wBAAmB,GAAyB,EAAE,CAAC;QAI/C,aAAQ,GAAG,cAAc,SAAS,EAAE,EAAE,CAAC;QAGvC,cAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;wBAiCpB,KAAK;oBAKY,GAAG;;;;;wBAqB5B,KAAK;wBAML,KAAK;wBAIL,KAAK;4BAID,KAAK;0BAQP,KAAK;;qBAWV,KAAK;;2BAQ4C,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC;sCAQlF,KAAK;iCAMnB,SAAS;gCAEQ,QAAQ;;IAc9D,0BAA0B;IAE1B,KAAK,CAAC,IAAI;QACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,2BAA2B;IAE3B,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAGD,oBAAoB,CAAC,QAAa;QAC9B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;OAQG;IACK,mBAAmB,CAAC,KAAU,EAAE,cAAc,GAAG,IAAI,EAAE,2BAA2B,GAAG,IAAI;;QAC7F,8CAA8C;QAC9C,IAAI,CAAC,KAAK,IAAI,cAAc,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,8CAA8C;YAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;YAED,wFAAwF;YACxF,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAE9J,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,oGAAoG;gBACpG,iEAAiE;gBACjE,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC3F,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;oBACtC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;oBAC9F,IAAI,MAAM,EAAE,CAAC;wBACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;4BACb,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,WAAW,EAAE,MAAM,CAAC,SAAS;4BAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;4BAC3B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;yBAClD,CAAC,CAAC;wBACH,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC3B,CAAC;gBACL,CAAC,CAAC,CAAC;gBAGH,mHAAmH;gBACnH,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAkB,EAAE,EAAE;oBAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;oBAC7F,IAAI,MAAM,EAAE,CAAC;wBACT,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC3B,CAAC;gBAEL,CAAC,CAAC,CAAA;gBAEF,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;oBAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;oBACjF,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;oBAC9G,IAAI,oBAAoB,EAAE,CAAC;wBACvB,oBAAoB,CAAC,QAAQ,GAAG,KAAK,CAAC;oBAC1C,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBAEjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAA+B,EAAE,EAAE;oBACrD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC;wBACtB,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC3D,CAAC,CAAC,KAAK,CAAC;oBACZ,IAAI,UAAU,EAAE,CAAC;wBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;4BACb,KAAK,EAAE,GAAG,CAAC,KAAK;4BAChB,WAAW,EAAE,GAAG,CAAC,SAAS;4BAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;4BACxB,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;yBAC/C,CAAC,CAAC;oBACP,CAAC;oBACD,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC;gBAC9B,CAAC,CAAC,CAAC;YACP,CAAC;YACD,iCAAiC;YACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;gBACvC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChD,CAAC,CAAC,SAAS,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,IAAI,gCAAgC,GAAG,KAAK,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAA+B,EAAE,EAAE;gBACrD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACtD,IAAI,UAAU,EAAE,CAAC;oBACb,gCAAgC,GAAG,IAAI,CAAC;oBACxC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC;oBACjC,IAAI,CAAC,yBAAyB,GAAG,GAAG,CAAC;oBACrC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,CAAC,CAAC;oBACxF,CAAC;gBACL,CAAC;gBACD,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,2HAA2H;YAC3H,gHAAgH;YAChH,uGAAuG;YACvG,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,gCAAgC,EAAE,CAAC;gBACvD,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,CAAC,CAAC;gBACzE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YAC1B,CAAC;QACL,CAAC;IACL,CAAC;IAGD;;;OAGG;IACK,KAAK;QACT,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,oFAAoF;YACpF,gFAAgF;YAChF,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAA+B,EAAE,EAAE;YACrD,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB;QACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACzE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAEzE,MAAM,YAAY,GAAG,OAAO,CACxB,qBAAqB,EACrB,IAAI,CAAC,kBAAkB,EAAE,CAC5B,CAAC;QACF,iCAAiC;QACjC,aAAa;QACb,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;QAE5C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,8BAA8B,EAAE,CAAC;YACtC,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAC3C,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE1C,qFAAqF;QACrF,2FAA2F;QAC3F,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QAClD,CAAC;IACL,CAAC;IAEO,oBAAoB;QACxB,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;YAChD,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE;gBACP;oBACI,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE;wBACL,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wDAAwD;qBAC1E;iBACJ;aACJ;SACJ,CAAC,CAAC;IACP,CAAC;IAEO,UAAU,CAAC,QAAa;QAC5B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,sIAAsI;YACtI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAChB,KAAK,EAAE,QAAQ;gBACf,eAAe,EAAE,SAAS;aAC7B,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAChB,KAAK,EAAE,QAAQ;gBACf,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;aACxE,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,8BAA8B;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;aACpD,OAAO,CAAC,MAAM,CAAC,EAAE;YACd,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;gBAChC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;QACL,CAAC,CAAC,CAAC;IACX,CAAC;IAEO,+BAA+B;QACnC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,aAAa,EAAE,EAAE;YACpD,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;gBACnC,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChC,IAAI,CAAC,8BAA8B,EAAE,CAAC;gBAC1C,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IACjD,CAAC;IAED,mBAAmB;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO;iBACT,OAAO,CAAC,CAAC,GAA+B,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,wCAAwC,IAAI,CAAC,IAAI,sBAAsB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtH,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,yBAAyB;QAC9C,CAAC;QAED,iEAAiE;QACjE,yEAAyE;QACzE,iFAAiF;QACjF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,sBAAsB,CAAC,CACxD,CAAC;QACN,CAAC;IACL,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,IAAG,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;YAC7B,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;IACL,CAAC;IAED,IAAY,OAAO;;QACf,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,EAAE,0CAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QAC5D,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAA2C,CAAC;QACvD,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAY,kBAAkB;;QAC1B,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,EAAE,0CAAE,gBAAgB,CAAC,sDAAsD,CAAC,CAAC;QAC/F,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAA2C,CAAC;QACvD,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAEO,kBAAkB;QACtB,OAAO;YACH,OAAO,EAAE;gBACL,IAAI,EAAE,GAAG,EAAE;;oBACP,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;wBACrB,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;4BACzE,0FAA0F;4BAC1F,gFAAgF;4BAChF,0FAA0F;4BAC1F,0FAA0F;4BAC1F,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE,CAAC;gCAC1D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;4BACtD,CAAC;wBACL,CAAC;wBACD,IAAI,CAAC,qCAAqC,EAAE,CAAC;wBAC7C,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACrC,IAAI,CAAC,wBAAwB,GAAG,MAAA,IAAI,CAAC,yBAAyB,mCAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;4BAC7F,qBAAqB,CAAC,GAAG,EAAE;;gCACvB,IAAI,CAAC,YAAY;oCACb,CAAC,CAAC,MAAA,IAAI,CAAC,iBAAiB,0CAAE,KAAK,EAAE;oCACjC,CAAC,CAAC,MAAA,IAAI,CAAC,wBAAwB,0CAAE,KAAK,EAAE,CAAC;4BACjD,CAAC,CAAC,CAAC;wBACP,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,KAAK,EAAE,CAAC,CAAC,EAAE,KAAkB,EAAE,EAAE;;oBAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBACzB,IAAI,CAAC,qCAAqC,EAAE,CAAC;wBAC7C,IAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,UAAU,EAAE,CAAC;4BAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;wBACzB,CAAC;6BAAM,CAAC;4BACJ,IAAI,IAAI,CAAC,YAAY,KAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,YAAY,CAAA,EAAE,CAAC;gCACjD,oFAAoF;gCACpF,kFAAkF;gCAClF,2DAA2D;gCAC3D,IAAI,CAAC,sBAAsB,EAAE,CAAC;4BAClC,CAAC;iCAAM,CAAC;gCACJ,yCAAyC;gCACzC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;4BACpB,CAAC;4BACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;wBACxB,CAAC;wBAED,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;4BACnE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBAChD,CAAC;oBACL,CAAC;oBACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC1B,CAAC;gBACD,YAAY,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBACvB,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;wBACnC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAChB,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBAC5D,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BACtD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,EAAC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,EAAC,EAAC,CAAC,CAAC;wBACvF,CAAC;wBAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;4BACpB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gCAChB,qBAAqB,CAAC,GAAG,EAAE;oCACvB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;gCACnC,CAAC,CAAC,CAAA;4BACN,CAAC;iCAAM,CAAC;gCACJ,wFAAwF;gCACxF,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;4BAC9D,CAAC;wBACL,CAAC;wBACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAChC,CAAC;gBACL,CAAC;aACJ;YACD,MAAM,EAAE;gBACJ,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;aAChC;SACJ,CAAC;IACN,CAAC;IAEO,8BAA8B,CAAC,KAA8B;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACjF,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,mEAAmE;YACnE,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACJ,mEAAmE;YACnE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACpG,CAAC;IACL,CAAC;IAEO,4BAA4B,CAAC,KAA8B;QAC/D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED,oBAAoB;;QAChB,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,IAAY,QAAQ;QAChB,8BAA8B;QAC9B,OAAO,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC;IAC1C,CAAC;IAGD,SAAS,CAAC,KAAiB;QACvB,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;eACtC,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW;mBACrC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,sFAAsF;mBAChI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,2CAA2C;QAE1E,MAAM,iBAAiB,GAAG,KAAK,CAAC,YAAY,EAAE;aACzC,MAAM,CAAC,CAAC,CAAC,EAAE;YACR,MAAM,EAAE,GAAI,CAAiB,CAAC;YAC9B,OAAO,EAAE,CAAC,QAAQ,KAAK,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClE,CAAC,CAAC;aACD,MAAM,GAAG,CAAC,CAAC;QAEhB,IAAI,CAAC,aAAa,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAGD,kBAAkB,CAAC,KAAiB;QAChC,MAAM,sBAAsB,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE,CAAiB,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACjH,MAAM,oBAAoB,GAAG,sBAAsB,KAAK,IAAI,CAAC,EAAE,CAAC;QAChE,6CAA6C;QAC7C,mDAAmD;QACnD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACzC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAC,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAC,EAAC,CAAC,CAAC;QAC5F,CAAC;IACL,CAAC;IAGD,SAAS,CAAC,MAAqB;QAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC7F,IAAI,IAA6E,CAAC;QAClF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC3E,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjD,CAAC;QACD,MAAM,yBAAyB,GAAoC,yBAAyB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QAEzH,6FAA6F;QAC7F,8HAA8H;QAC9H,IAAI,yBAAyB,CAAC,MAAM,IAAI,CAAC,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtH,MAAM,CAAC,cAAc,EAAE,CAAC;QAC5B,CAAC;QAED,KAAK,MAAM,uBAAuB,IAAI,yBAAyB,EAAE,CAAC;YAC9D,IAAI,CAAC,yCAAyC,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QACpF,CAAC;IACL,CAAC;IAED,yCAAyC,CAAC,uBAAsD,EAAE,KAAoB;;QAClH,QAAQ,uBAAuB,CAAC,IAAI,EAAE,CAAC;YACnC,KAAK,aAAa;gBACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;oBACnB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAC,UAAU,EAAE,uBAAuB,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAC;iBAC9E,CAAC,CAAC;gBACH,MAAM;YACV,KAAK,YAAY;gBACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC/B,MAAM;YACV,KAAK,cAAc;gBACf,QAAQ,uBAAuB,CAAC,MAAM,EAAE,CAAC;oBACrC,KAAK,MAAM;wBACP,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;wBACjC,MAAM;oBACV,KAAK,UAAU;wBACX,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;wBACrC,MAAM;oBACV,KAAK,OAAO;wBACR,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACzB,MAAM;oBACV,KAAK,MAAM;wBACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACxB,MAAM;oBACV,KAAK,iBAAiB,CAAC,CAAC,CAAC;wBACrB,sFAAsF;wBACtF,wDAAwD;wBACxD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;wBAErG,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;4BACvB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,4BAA4B,CAAC;4BACnE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;wBAC3C,CAAC;wBACD,MAAM;oBACV,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,KAAK,wBAAwB;gBACzB,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC5C,MAAM;YACV,KAAK,gBAAgB;gBACjB,IAAI,CAAC,qCAAqC,EAAE,CAAC;gBAC7C,MAAM;YACV,KAAK,iBAAiB;gBAClB,QAAQ,uBAAuB,CAAC,MAAM,EAAE,CAAC;oBACrC,KAAK,MAAM;wBACP,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;wBACpC,MAAM;oBACV,KAAK,UAAU;wBACX,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;wBACxC,MAAM;oBACV,KAAK,OAAO;wBACR,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBAC5B,MAAM;oBACV,KAAK,MAAM;wBACP,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBAC3B,MAAM;oBACV;wBACI,MAAM;gBACd,CAAC;gBACD,MAAM;YACV,KAAK,aAAa;gBACd,QAAQ,uBAAuB,CAAC,MAAM,EAAE,CAAC;oBACrC,KAAK,MAAM;wBACP,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;wBAChC,MAAM;oBACV,KAAK,UAAU;wBACX,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;wBACnC,MAAM;oBACV,KAAK,OAAO;wBACR,IAAI,CAAC,gBAAgB,EAAE,CAAA;wBACvB,MAAM;oBACV,KAAK,MAAM;wBACP,IAAI,CAAC,eAAe,EAAE,CAAC;wBACvB,MAAM;oBACV,KAAK,aAAa;wBACd,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,EAAE,CAAC;4BACxC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;wBACjG,CAAC;wBACD,MAAM;oBACV;wBACI,MAAM;gBACd,CAAC;gBACD,MAAM;YACV,KAAK,WAAW;gBACZ,QAAQ,uBAAuB,CAAC,MAAM,EAAE,CAAC;oBACrC,KAAK,UAAU,CAAC,CAAC,CAAC;wBACd,IAAI,cAAc,GAAY,MAAA,IAAI,CAAC,EAAE,CAAC,sBAAsB,mCAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;wBACtF,OAAO,cAAc,EAAE,CAAC;4BACpB,IAAI,WAAW,CAAC,cAAc,CAAC;gCAAE,MAAM;4BACvC,cAAc,GAAG,MAAA,cAAc,CAAC,sBAAsB,mCAAI,cAAc,CAAC,aAAa,CAAC;wBAC3F,CAAC;wBACD,IAAI,cAAc,EAAE,CAAC;4BACjB,KAAK,CAAC,cAAc,EAAE,CAAC;4BACtB,cAA8B,CAAC,KAAK,EAAE,CAAC;wBAC5C,CAAC;wBACD,MAAM;oBACV,CAAC;oBACD;wBACI,MAAM;gBACd,CAAC;gBACD,MAAM;YACV;gBACI,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAEO,mCAAmC,CAAC,SAA8B,EAAE,KAA6C;QACrH,IAAI,eAAkD,CAAC;QACvD,QAAQ,KAAK,EAAE,CAAC;YACZ,KAAK,SAAS;gBACV,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC;gBAChD,MAAM;YACV,KAAK,UAAU;gBACX,eAAe,GAAG,IAAI,CAAC,yBAAyB,CAAC;gBACjD,MAAM;YACV,KAAK,aAAa;gBACd,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC;gBACpD,MAAM;YACV;gBACI,eAAe,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAEhF,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;QAErD,IAAI,SAAS,KAAK,MAAM,IAAI,YAAY,GAAG,SAAS,EAAE,CAAC;YACnD,YAAY,EAAE,CAAC;QACnB,CAAC;aAAM,IAAI,SAAS,KAAK,UAAU,IAAI,YAAY,GAAG,SAAS,EAAE,CAAC;YAC9D,YAAY,EAAE,CAAC;QACnB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,YAAY;gBAClB,OAAO,SAAS,CAAC;YAErB,2EAA2E;YAC3E,IAAI,SAAS,KAAK,MAAM,IAAI,YAAY,IAAI,SAAS,EAAE,CAAC;gBACpD,YAAY,GAAG,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,SAAS,KAAK,UAAU,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBACzD,YAAY,GAAG,SAAS,CAAC;YAC7B,CAAC;QACL,CAAC;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;;;;;OAMG;IACK,YAAY,CAAC,aAAqB,EAAE,YAAY,GAAG,KAAK;QAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAE9D,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,IAAI,CAAC,gCAAgC,CAAC;YAClC,MAAM,EAAE,cAAc;YACtB,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,WAAW,EAAE,cAAc,CAAC,SAAS;SACxC,EAAE,YAAY,CAAC,CAAC;IACrB,CAAC;IAEO,mBAAmB,CAAC,SAA8B;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,mCAAmC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACtF,IAAI,aAAa,KAAK,SAAS;YAAE,OAAO;QACxC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAEO,iBAAiB;QACrB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO;QACX,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,gBAAgB;QACpB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO;QACX,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IAEO,WAAW,CAAC,YAAoB;;QACpC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACtE,MAAA,IAAI,CAAC,wBAAwB,0CAAE,KAAK,EAAE,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,uBAAuB,EAAE,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAEO,kBAAkB,CAAC,SAA8B;QACrD,MAAM,YAAY,GAAG,IAAI,CAAC,mCAAmC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpF,IAAI,YAAY,KAAK,SAAS;YAAE,OAAO;QAEvC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAEO,gBAAgB;QACpB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAEO,eAAe;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAGD,qBAAqB,CAAC,KAA2C;QAC7D,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,gCAAgC,CAAC,KAA8B,EAAE,YAAY,GAAG,KAAK;QACjF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAC,EAAC,CAAC,CAAC;IAC5F,CAAC;IAED,YAAY;QACR,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACzF,gJAAgJ;YAChJ,wEAAwE;YACxE,mGAAmG;YACnG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,gDAAgD,EAAE,CAAC;QAC5D,CAAC;QAED,wGAAwG;QACxG,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO;iBACP,OAAO,CAAC,CAAC,GAA+B,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QAC3E,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,gDAAgD;QACpD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAA+B,EAAE,EAAE;YACrD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3D,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,CAAoB;QAC3B,IAAI,CAAC,OAAO;aACP,OAAO,CAAC,GAAG,CAAC,EAAE;YACX,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBACxB,IAAI,CAAC,gCAAgC,iCAC9B,CAAC,KACJ,MAAM,EAAE,GAAG,IACb,CAAC;YACP,CAAC;QACL,CAAC,CAAC,CAAC;IACX,CAAC;IAED,0BAA0B;IAElB,eAAe,CAAC,gBAAwB;QAC5C,IAAI,CAAC,qCAAqC,EAAE,CAAC;QAC7C,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QAC9E,IAAI,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,4BAA4B,CAAC,WAAW,GAAG,IAAI,CAAC;YACrD,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,uBAAuB,EAAE,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;YACnG,qBAAqB,CAAC,GAAG,EAAE;gBACvB,IAAI,CAAC,4BAA4B,CAAC,cAAc,CAAC,EAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAC,CAAC,CAAC;YAC5F,CAAC,CAAC,CAAA;QACN,CAAC;IACL,CAAC;IAEO,oBAAoB;QACxB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAEO,mBAAmB;QACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAEO,sBAAsB,CAAC,SAA8B;QACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,mCAAmC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC5F,IAAI,gBAAgB,KAAK,SAAS;YAAE,OAAO;QAE3C,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACK,qCAAqC;QACzC,IAAI,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,4BAA4B,CAAC,WAAW,GAAG,KAAK,CAAC;YACtD,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;QAC7C,CAAC;IACL,CAAC;IAEO,wBAAwB,CAAC,CAAa;;QAC1C,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,mCAAI,EAAE,CAAC;QAElD,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,6BAA6B;QAC7E,oGAAoG;QACpG,CAAC,CAAC,eAAe,EAAE,CAAC;IAExB,CAAC;IAED;;;;;;;OAOG;IACK,oBAAoB,CAAC,MAAc,EAAE,OAAO,GAAG,KAAK,EAAE,mBAAmB,GAAG,KAAK,EAAE,2BAA2B,GAAG,IAAI;;QACzH,IAAI,CAAC,qCAAqC,EAAE,CAAC;QAC7C,MAAM,yCAAyC,GAAG,IAAI,CAAC,yBAAyB,IAAI,IAAI,IAAI,CAAA,MAAA,IAAI,CAAC,yBAAyB,0CAAE,WAAW,MAAK,IAAI,CAAC,iBAAiB,CAAC;QACnK,iFAAiF;QACjF,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,yCAAyC,IAAI,CAAC,OAAO,IAAI,mBAAmB,EAAE,CAAC;YACjG,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,sFAAsF;QACtF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAClD,MAAM,iBAAiB,GAAsB,MAAA,IAAI,CAAC,QAAQ,mCAAI,wBAAwB,CAAC;gBACvF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAoC,EAAE,EAAE,CAC1D,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzF,CAAC;gBAEF,IAAI,CAAC,sBAAsB,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC;gBAC3D,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACxB,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;oBACjB,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;gBACH,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACtB,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAChB,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACrB,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;oBACjB,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,MAAM,oBAAoB,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;QAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,KAAK,oBAAoB,CAAC;QAExE,IAAI,eAAe,EAAE,CAAC;YAClB,IAAI,CAAC,iBAAiB,GAAG,oBAAoB,CAAC;QAClD,CAAC;QAED,IAAI,2BAA2B,IAAI,eAAe,EAAE,CAAC;YACjD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBACtB,KAAK,EAAE,MAAM;aAChB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAGD,OAAO,CAAC,KAAiB;QACrB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEO,sBAAsB;;QAC1B,MAAA,IAAI,CAAC,iBAAiB,0CAAE,KAAK,EAAE,CAAC;IACpC,CAAC;IAED,WAAW;IAGX,MAAM,CAAC,KAAiB;QACpB,0GAA0G;QAC1G,MAAM,MAAM,GAAG,KAAK,CAAC,aAA4B,CAAC;QAClD,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,kBAAkB;;QACd,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAEO,iBAAiB;QACrB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,CAAC;IAED,MAAM;;QACF,MAAM,cAAc,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;QACpI,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;QAElD,OAAO,CACH,EAAC,IAAI,mEAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EACvC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IACnC,IAAI,CAAC,iBAAiB,EAAE,IAC5B,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,mBAC7B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,eACzC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,mBACtC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,mBAC1C,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,mBAC3D,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,mBAC9D,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,0BACvD,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,gBACxE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;YACxD,4DAAK,KAAK,EAAC,oBAAoB;gBAC3B,4DAAK,KAAK,EAAC,4BAA4B;oBAClC,IAAI,CAAC,QAAQ;wBACV,CAAC;4BACD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gCACT,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAyB,EAAE,EAAE,CAC1C,EAAC,WAAW,IAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EACvC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACvD;gCACD,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC;oCAC5D,aAAO,KAAK,EAAC,kBAAkB,IAAE,IAAI,CAAC,WAAW,CAAS,CAAC;wBAC/D,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,aAAO,KAAK,EAAC,wBAAwB,IAAE,IAAI,CAAC,WAAW,CAAS;oBAE3F,IAAI,CAAC,YAAY,IAAI,4EAAO,KAAK,EAAC,oBAAoB,EACtB,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAC7B,IAAI,EAAC,UAAU,mBACD,SAAS,gBACX,cAAc,sBACR,mBAAmB,mBACtB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,mBAC7B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,mBAChC,IAAI,CAAC,SAAS,eAClB,IAAI,CAAC,SAAS,0BACH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,uBACpC,MAAM,EACxB,YAAY,EAAC,KAAK,EAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,WAAW,EAAE,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAC1D,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAChD,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAE,IAClC,IAAI,CAAC,mBAAmB,EAAG,CAE9D;gBACN,EAAC,WAAW,qDAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,GAAG,CAC/B;YACN,4DAAK,KAAK,EAAC,oBAAoB,EAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAC,SAAS;gBAC9D,6DAAM,IAAI,EAAC,SAAS,EAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACjE,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,sBAAsB,CAAC;oBAC/C,4DAAK,IAAI,EAAC,OAAO,EAAC,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAC,oBAAoB;wBACjE,6DAAM,IAAI,EAAC,kBAAkB;4BACzB,qFAA2B,CACxB,CACL,CAER,CACH,CACV,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ;AAED,IAAI,SAAS,GAAG,CAAC,CAAC","sourcesContent":["import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch\n} from '@stencil/core';\n\nimport { interpret, Interpreter, Machine, MachineConfig, MachineOptions } from 'xstate';\nimport {\n isWcsSelectSize,\n SelectChangeEventDetail,\n SelectFilterChangeEventDetail,\n WcsDefaultSelectFilterFn,\n WcsSelectFilterFn,\n WcsSelectSize,\n WcsSelectSizeValue\n} from './select-interface';\nimport { SelectArrow } from './select-arrow';\nimport { SelectOptionChosedEvent, SelectOptionValue } from '../select-option/select-option-interface';\nimport {\n isElement,\n generateUniqueId,\n findItemLabel,\n inheritAriaAttributes,\n inheritAttributes, setOrRemoveAttribute, compareLists\n} from '../../utils/helpers';\nimport { SelectChips } from './select-chips';\nimport { createPopper, Instance } from '@popperjs/core';\nimport { isEqual } from 'lodash-es';\nimport { getActionForKeyboardEvent, KeyboardEventAssociatedAction } from './select-keyboard-event';\nimport { isFocusable } from '../../utils/accessibility';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\ninterface SelectStateSchema {\n states: {\n closed: {};\n opened: {};\n };\n}\n\ntype SelectEvent\n = { type: 'OPEN' }\n | { type: 'CLOSE', value: { shouldBlur?: boolean, fromKeyboard: boolean } }\n | { type: 'CLICK' }\n | { type: 'OPTION_SELECTED', value: { option: SelectOptionChosedEvent, fromKeyboard: boolean } };\n\nconst SELECT_MACHINE_CONFIG: MachineConfig<any, SelectStateSchema, SelectEvent> = {\n key: 'select',\n initial: 'closed',\n states: {\n closed: {\n entry: ['close'],\n on: {\n CLICK: 'opened',\n OPEN: 'opened',\n OPTION_SELECTED: {actions: ['selectOption']}\n },\n },\n opened: {\n entry: ['open'],\n on: {\n CLICK: 'closed',\n CLOSE: 'closed',\n OPTION_SELECTED: {actions: ['selectOption']}\n },\n },\n }\n};\n\nconst SELECT_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * The select component (also named combobox) is a form component that allows users to select one or more options\n * from a list.\n * Use it with several slotted `wcs-select-option` inside.\n *\n * @slot filter-no-result Contains the customizable \"No result found\" div (autocomplete mode only).\n * \n * @cssprop --wcs-select-control-arrow-color - Color of the select arrow\n * @cssprop --wcs-select-control-arrow-color-disabled - Color of the select arrow when disabled\n * \n * @cssprop --wcs-select-control-background-color - Background color of the select control\n * \n * @cssprop --wcs-select-control-line-height - Line height of the select control\n * \n * @cssprop --wcs-select-options-padding - Padding of the select options container\n * \n * @cssprop --wcs-select-control-border-radius - Border radius of the select control\n * @cssprop --wcs-select-control-border-width-default - Border width of the select control when not focused\n * @cssprop --wcs-select-control-border-width-focus - Border width of the select control when focused\n * \n * @cssprop --wcs-select-control-border-color-default - Border color of the select control when not focused\n * @cssprop --wcs-select-control-border-color-disabled - Border color of the select control when disabled\n * @cssprop --wcs-select-control-border-color-error - Border color of the select control when error\n * @cssprop --wcs-select-control-border-color-focus - Border color of the select control when focused (not opened, but the control is focused)\n * \n * @cssprop --wcs-select-value-color - Text color of the select value when not focused \n * @cssprop --wcs-select-value-font-weight - Font weight of the select value\n * \n * @cssprop --wcs-select-placeholder-color - Text color of the select placeholder\n * @cssprop --wcs-select-placeholder-font-weight - Font weight of the select placeholder\n * @cssprop --wcs-select-placeholder-font-style - Font style of the select placeholder\n *\n * @cssprop --wcs-select-text-color-disabled - Text color of the select when disabled\n *\n * @cssprop --wcs-select-control-border-style-default - Border style of the select control when not focused\n * @cssprop --wcs-select-control-border-style-focus - Border style of the select control when focused\n * @cssprop --wcs-select-control-border-style-error - Border style of the select control when error\n * \n * @cssprop --wcs-select-control-chips-gap - Gap between chips (only in multiple mode)\n *\n * @cssprop --wcs-select-control-height-m - Height of the select control in medium size\n * @cssprop --wcs-select-control-height-l - Height of the select control in large size\n * \n * @cssprop --wcs-select-control-autocomplete-padding-vertical-m - Padding vertical (top - bottom) of the select control in size m\n * @cssprop --wcs-select-control-autocomplete-padding-vertical-l - Padding vertical (top - bottom) of the select control in size l\n * @cssprop --wcs-select-control-padding-horizontal-m - Padding horizontal (left - right) in medium size\n * @cssprop --wcs-select-control-padding-horizontal-l - Padding horizontal (left - right) in large size\n * \n * @cssprop --wcs-select-control-font-size-m - Font size of the select in size m\n * @cssprop --wcs-select-control-font-size-l - Font size of the select in size m\n * \n * \n * @cssprop --wcs-select-control-chip-color-default - Color default of the select chip\n * @cssprop --wcs-select-control-chip-color-disabled - Color disabled of the select chip\n * @cssprop --wcs-select-control-chip-background-color-default - Background color default of the select chip\n * @cssprop --wcs-select-control-chip-background-color-disabled - Disabled background color of the select chip\n * @cssprop --wcs-select-control-chip-padding-vertical - Padding vertical (top - bottom) of the select chip\n * @cssprop --wcs-select-control-chip-padding-horizontal - Padding horizontal (left - right) of the select chip\n * @cssprop --wcs-select-control-chip-line-height - Line height of the select chip\n * @cssprop --wcs-select-control-chip-border-radius - Border radius of the select chip\n * \n * @cssprop --wcs-select-overlay-max-height - Max height of the select overlay\n * @cssprop --wcs-select-overlay-background-color - Background color of the select overlay\n * @cssprop --wcs-select-overlay-border-width - Border width of the select overlay\n * @cssprop --wcs-select-overlay-border-color - Border color of the select overlay\n * @cssprop --wcs-select-overlay-border-radius - Border radius of the overlay\n */\n@Component({\n tag: 'wcs-select',\n styleUrl: 'select.scss',\n shadow: true\n})\nexport class Select implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLWcsSelectElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n private stateService!: Interpreter<any, SelectStateSchema, SelectEvent>;\n\n private selectId = `wcs-select-${selectIds++}`;\n private labelElement: HTMLWcsLabelElement;\n private optionsEl!: HTMLDivElement;\n private optionsId = generateUniqueId(\"OPTIONS\");\n private controlEl!: HTMLDivElement;\n\n // Only used for multiples.\n private values: SelectOptionValue[];\n\n /**\n * This attribute mutate when a new option is selected OR unselected\n * @private\n */\n private lastModifiedOptionElement: HTMLWcsSelectOptionElement | null;\n /**\n * It serves for accessibility feature: keyboard navigation. It serves to focus the option if defined when the select\n * is opened based on which key pressed.\n *\n * When the select is <b>opened</b> user can navigate through options with keyboard:\n *\n * - Arrow right | down: `lastFocusedOptionElement` equals to the next option of `lastFocusedOptionElement` or\n * the first if `lastFocusedOptionElement` is not defined\n * - Arrow left | top: `lastFocusedOptionElement` equals to the previous enabled option of `lastFocusedOptionElement`\n * or the first if `lastFocusedOptionElement` is not defined\n * - Page up: `lastFocusedOptionElement` equals to the first enabled option\n * - Page down: `lastFocusedOptionElement` equals to the last enabled option\n * @private\n */\n private lastFocusedOptionElement: HTMLWcsSelectOptionElement | null;\n\n // Only used for autocomplete.\n private lastHighlightedOptionElement: HTMLWcsSelectOptionElement | null;\n private autocompleteInput: HTMLInputElement;\n\n /** Whether the select is expanded */\n @State()\n private expanded: boolean = false;\n\n /**\n * Specify the size (height) of the select.\n */\n @Prop({reflect: true}) size: WcsSelectSize = 'm';\n\n /** Text to display for the selected option, when no option is selected, the value is undefined. */\n @State()\n private displayText: string;\n\n /** When the host is focused. */\n @State()\n // @ts-ignore\n private focused: boolean;\n\n /** The currently selected value. */\n @Prop({mutable: true})\n value?: any | null;\n\n /** The text to display when the select is empty. */\n @Prop({mutable: true, reflect: true})\n placeholder?: string | null;\n\n /** If `true`, the user cannot interact with the select. */\n @Prop({ reflect: true, mutable: true })\n disabled: boolean = false;\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop({ reflect: true })\n required: boolean = false;\n\n /** If `true`, the user can select multiple values at once. */\n @Prop({ reflect: true })\n multiple: boolean = false;\n\n /** If `true`, the select acts as an autocomplete field to filter your results. */\n @Prop({ reflect: true })\n autocomplete: boolean = false;\n\n /**\n * **Only works with `autocomplete` mode.** \n * If `true`, the server mode disables the client-side filtering on your select and allows you to handle\n * which options should be present in your DOM.\n */\n @Prop({ reflect: true })\n serverMode: boolean = false;\n\n /**\n * **Only works with `autocomplete` mode.** \n * Customizable sort function to change the comparison of values. If not provided, uses the default behavior :\n * `option.textContent.toLowerCase().startsWith(filter.toLowerCase())`\n */\n @Prop({attribute: null}) filterFn: WcsSelectFilterFn;\n\n /** If `true`, selected items are shown in chips mode. */\n @Prop({ reflect: true })\n chips: boolean = false;\n\n /** The name of the control, which is submitted with the form data. */\n @Prop()\n name?: string;\n\n /** Function used to compare options, default : deep comparison. */\n @Prop()\n compareWith?: (optionValue: any, selectedValue: any) => boolean = (optionValue, selectedValue) => isEqual(optionValue, selectedValue);\n\n private popper: Instance;\n\n /**\n * Boolean to toggle the text \"No result found\" (only for autocomplete with filter)\n * @private\n */\n @State() private showNoResultFoundLabel: boolean = false;\n\n /**\n * Value of the autocomplete input field\n * @private\n */\n @State() private autocompleteValue = undefined;\n\n @State() private overlayDirection: 'bottom' | 'top' = 'bottom';\n\n /** Emitted when the value has changed. */\n @Event() wcsChange!: EventEmitter<SelectChangeEventDetail>;\n\n /** Emitted when the select has focus. */\n @Event() wcsFocus!: EventEmitter<FocusEvent>;\n\n /** Emitted when the select loses focus. */\n @Event() wcsBlur!: EventEmitter<FocusEvent>;\n\n /** Emitted when the autocomplete filter has changed. */\n @Event() wcsFilterChange!: EventEmitter<SelectFilterChangeEventDetail>;\n\n /** Open the component. */\n @Method()\n async open() {\n this.stateService.send('OPEN');\n }\n\n /** Close the component. */\n @Method()\n async close() {\n this.stateService.send('CLOSE');\n }\n\n @Watch('value')\n onValueChangeHandler(newValue: any) {\n this.updateSelectedValue(newValue);\n }\n\n /**\n * Updates the selected value(s) of the component and manages the internal state accordingly\n *\n * @param value - The value(s) to be selected in the component\n * For single selection mode: any value that matches an option's value\n * For multiple selection mode: a single value or an array of values\n * @param resetIfNoValue - When true and no value is provided, the select component will be reset\n * Defaults to true\n */\n private updateSelectedValue(value: any, resetIfNoValue = true, shouldEmitFilterChangeEvent = true) {\n // If no value is passed, the select is reset.\n if (!value && resetIfNoValue) {\n this.reset();\n }\n if (this.multiple) {\n // If user don't give an array, we provide one\n if (!Array.isArray(value)) {\n value = [value];\n }\n\n // We assume that the last modified option in multiple mode is the last one in the array\n this.lastModifiedOptionElement = value.length > 0 ? Array.from(this.options).find(opt => this.compareWith(opt.value, value[value.length - 1])) ?? null : null;\n\n if (this.serverMode) {\n // in server mode, we don't know all the possible select options, so we assume the value is correct,\n // and we just sync the displayText and current available options\n const compareResult = compareLists(this.values.map(v => v.value), value, this.compareWith);\n compareResult.added.forEach(addedOption => {\n const option = Array.from(this.options).find(opt => this.compareWith(opt.value, addedOption)); \n if (option) {\n this.values.push({\n value: option.value,\n displayText: option.innerText,\n chipColor: option.chipColor,\n chipBackgroundColor: option.chipBackgroundColor\n });\n option.selected = true;\n }\n });\n\n\n // We update the selected options when the slot changes to keep the selected options in sync with the current value\n compareResult.kept.forEach((keptOption: string) => {\n const option = Array.from(this.options).find(opt => this.compareWith(opt.value, keptOption));\n if (option) {\n option.selected = true;\n }\n\n })\n \n compareResult.removed.forEach(removedOption => {\n this.values = this.values.filter(v => !this.compareWith(v.value, removedOption));\n const removedOptionElement = Array.from(this.options).find(opt => this.compareWith(opt.value, removedOption));\n if (removedOptionElement) {\n removedOptionElement.selected = false;\n }\n });\n } else {\n this.values = [];\n \n this.options.forEach((opt: HTMLWcsSelectOptionElement) => {\n const isSelected = value ?\n value.findIndex(v => this.compareWith(opt.value, v)) !== -1\n : false;\n if (isSelected) {\n this.values.push({\n value: opt.value,\n displayText: opt.innerText,\n chipColor: opt.chipColor,\n chipBackgroundColor: opt.chipBackgroundColor\n });\n }\n opt.selected = isSelected;\n });\n }\n // update select placeholder text\n this.displayText = this.values.length !== 0\n ? this.values.map(v => v.displayText).join(', ')\n : undefined;\n } else {\n let hasFoundCurrentValueInOptionList = false;\n this.options.forEach((opt: HTMLWcsSelectOptionElement) => {\n const isSelected = this.compareWith(opt.value, value);\n if (isSelected) {\n hasFoundCurrentValueInOptionList = true;\n this.displayText = opt.innerText;\n this.lastModifiedOptionElement = opt;\n if (this.autocomplete) {\n this.setAutocompleteValue(opt.innerText, false, false, shouldEmitFilterChangeEvent);\n }\n }\n opt.selected = isSelected;\n });\n // we are in server mode and the current select value hasn't been found, we set the AutocompleteValue (filter) to undefined\n // This is important to preserve the same state logic as when a value change and we set the filter to that value\n // Not doing that implies the displayText is not updated because of the check in le slot change handler\n if (this.serverMode && !hasFoundCurrentValueInOptionList) {\n this.setAutocompleteValue('', false, false, shouldEmitFilterChangeEvent);\n this.displayText = '';\n }\n }\n }\n\n\n /**\n * Reset the select: unselects all options for multiple mode and displays the placeholder\n * @private\n */\n private reset() {\n this.values = [];\n this.displayText = undefined;\n if (this.autocomplete) {\n // When need to reset the internal filter state of the component as the mutation of \n // autocompleteValue from the code doesn't call onAutocompleteInputEvent method.\n this.setAutocompleteValue('', true);\n }\n this.options.forEach((opt: HTMLWcsSelectOptionElement) => {\n opt.selected = false;\n });\n }\n\n componentDidLoad() {\n this.optionsEl = this.el.shadowRoot.querySelector('.wcs-select-options');\n this.controlEl = this.el.shadowRoot.querySelector('.wcs-select-control');\n\n const stateMachine = Machine(\n SELECT_MACHINE_CONFIG,\n this.initMachineOptions()\n );\n // FIXME: type checking failed...\n // @ts-ignore\n this.stateService = interpret(stateMachine);\n\n if (this.multiple) {\n this.values = [];\n }\n\n this.stateService.start();\n if (this.optionsEl.querySelector('slot') === null) {\n this.replaceOptions_firefoxBefore63();\n this.listenDomUpdate_firefoxBefore63();\n }\n\n if (this.value !== undefined) {\n this.updateSelectedValue(this.value);\n }\n\n this.popper = this.createPopperInstance();\n\n // if the select is inside a wcs-form-field, we set an id to the wcs-label if present\n // the wcs-label element reference is kept to compute aria-label value during the rendering\n this.labelElement = findItemLabel(this.el);\n if (this.labelElement) {\n this.labelElement.id = this.selectId + \"-lbl\";\n }\n }\n\n private createPopperInstance() {\n return createPopper(this.controlEl, this.optionsEl, {\n placement: \"bottom\",\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 4] // we want 4px between select control and select options\n }\n }\n ]\n });\n }\n\n private emitChange(newValue: any): void {\n if (this.serverMode) {\n // In server mode with autocomplete, we don't know all the options, so we only emit the value(s) without the selected options elements\n this.wcsChange.emit({\n value: newValue,\n selectedOptions: undefined\n });\n } else {\n this.wcsChange.emit({\n value: newValue,\n selectedOptions: Array.from(this.options).filter(opt => opt.selected)\n });\n }\n }\n\n private replaceOptions_firefoxBefore63() {\n Array.from(this.el.querySelectorAll('wcs-select-option'))\n .forEach(option => {\n if (option.parentNode === this.el) {\n this.el.removeChild(option);\n this.optionsEl.appendChild(option);\n }\n });\n }\n\n private listenDomUpdate_firefoxBefore63() {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n this.replaceOptions_firefoxBefore63();\n }\n }\n });\n observer.observe(this.el, {childList: true});\n }\n \n componentWillRender(): Promise<void> | void {\n if (this.multiple) {\n this.options\n .forEach((opt: HTMLWcsSelectOptionElement) => opt.multiple = true);\n }\n }\n\n componentWillLoad(): Promise<void> | void {\n if (!isWcsSelectSize(this.size)) {\n console.warn(`Invalid size value for wcs-select : \"${this.size}\". Must be one of \"${WcsSelectSizeValue.join(', ')}\"`);\n this.size = \"m\"; // Default fallback value\n }\n \n // XXX : special case on this component for attribute inheritance\n // We only move attributes on the native input when autocomplete is true.\n // Otherwise, all attributes are on the Host, so we do not need to inherit those.\n if (this.autocomplete) {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, SELECT_INHERITED_ATTRS),\n };\n }\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n if(this.autocomplete === false) {\n setOrRemoveAttribute(this.el, attr, value);\n } else {\n setOrRemoveAttribute(this.autocompleteInput, attr, value);\n }\n }\n\n private get options(): HTMLWcsSelectOptionElement[] {\n const opts = this.el?.querySelectorAll('wcs-select-option');\n if (opts && opts.length !== 0) {\n return opts as any as HTMLWcsSelectOptionElement[];\n }\n return [];\n }\n\n private get notDisabledOptions(): HTMLWcsSelectOptionElement[] {\n const opts = this.el?.querySelectorAll('wcs-select-option:not([disabled]):not([aria-hidden])');\n if (opts && opts.length !== 0) {\n return opts as any as HTMLWcsSelectOptionElement[];\n }\n return [];\n }\n\n private initMachineOptions(): Partial<MachineOptions<any, SelectEvent>> {\n return {\n actions: {\n open: () => {\n if (!this.disabled) {\n this.expanded = true;\n this.focused = false;\n if(this.multiple === false && this.autocomplete && this.hasValue === false) {\n // If we open the select in single autocomplete mode, we update the autocomplete value at \n // the blur event so that the displayed value reflect the current select value. \n // Indeed, we have to tell the component to take the current filter state manually at the \n // opening (because the input event of the autocomplete field is not fired at this point).\n if (this.autocompleteValue && this.autocompleteValue !== '') {\n this.setAutocompleteValue(this.autocompleteValue);\n }\n }\n this.clearHighlightOnLastHighlightedOption();\n if (this.notDisabledOptions.length > 0) {\n this.lastFocusedOptionElement = this.lastModifiedOptionElement ?? this.notDisabledOptions[0];\n requestAnimationFrame(() => {\n this.autocomplete\n ? this.autocompleteInput?.focus()\n : this.lastFocusedOptionElement?.focus();\n });\n }\n }\n },\n close: (_, event: SelectEvent) => {\n if (event.type === 'CLOSE') {\n this.clearHighlightOnLastHighlightedOption();\n if (event.value?.shouldBlur) {\n this.focused = false;\n } else {\n if (this.autocomplete && event.value?.fromKeyboard) {\n // If we're in autocomplete mode, a keyboard event (e.g. escape) doesn't change the \n // focus (so this.el.focus() aren't called because the select was already focused)\n // but you still have to go back to the autocomplete input.\n this.focusAutocompleteInput();\n } else {\n // Otherwise, we focus the select element\n this.el.focus();\n }\n this.focused = true;\n }\n\n if (this.autocomplete && this.displayText && this.multiple === false) {\n this.setAutocompleteValue(this.displayText);\n }\n }\n this.expanded = false;\n },\n selectOption: (_, event) => {\n if (event.type === 'OPTION_SELECTED') {\n if (this.multiple) {\n this.handleOptionSelectedOnMultiple(event.value.option);\n } else {\n this.handleOptionSelectedOnSingle(event.value.option);\n this.stateService.send('CLOSE', {value: {fromKeyboard: event.value.fromKeyboard}});\n }\n\n if (this.autocomplete) {\n if (this.multiple) {\n requestAnimationFrame(() => {\n this.autocompleteInput.focus();\n })\n } else {\n // Emit the filter change immediately so that server-side filtering can refresh options.\n this.setAutocompleteValue(event.value.option.displayText);\n }\n }\n this.emitChange(this.value);\n }\n }\n },\n guards: {\n enabled: () => !this.disabled\n }\n };\n }\n\n private handleOptionSelectedOnMultiple(event: SelectOptionChosedEvent) {\n const index = this.values.findIndex(v => this.compareWith(v.value, event.value));\n if (index === -1) {\n // this will trigger the watch on value and update the values model\n this.value = [...this.values.map(v => v.value), event.value];\n } else {\n // this will trigger the watch on value and update the values model\n this.value = this.values.filter(v => !this.compareWith(v.value, event.value)).map(v => v.value);\n }\n }\n\n private handleOptionSelectedOnSingle(event: SelectOptionChosedEvent) {\n this.value = event.value;\n }\n\n disconnectedCallback() {\n this.stateService?.stop();\n }\n\n private get hasValue(): boolean {\n // TODO: change this behavior.\n return this.displayText !== undefined;\n }\n\n @Listen('mouseup')\n onMouseUp(event: MouseEvent) {\n const clickOnScroll = isElement(event.target)\n && (event.offsetX > event.target.clientWidth\n || event.offsetY > event.target.clientHeight // If the click il located bellow the component height the click happen in the overlay\n || event.offsetY < 0); // If the click is made above the component\n\n const clickOnRemoveChip = event.composedPath()\n .filter(x => {\n const el = (x as HTMLElement);\n return el.nodeName === 'svg' && el.classList.contains('chip');\n })\n .length > 0;\n\n if (!clickOnScroll && !clickOnRemoveChip) {\n this.stateService.send('CLICK');\n }\n }\n\n @Listen('click', {target: 'window'})\n onWindowClickEvent(event: MouseEvent) {\n const firstSelectInEventPath = event.composedPath().filter(x => (x as HTMLElement).nodeName === 'WCS-SELECT')[0];\n const clickOnCurrentSelect = firstSelectInEventPath === this.el;\n // TODO: Move this logic in the state machine\n // FIXME: Doesnt work with single + disabled option\n if (this.expanded && !clickOnCurrentSelect) {\n this.stateService.send({type: 'CLOSE', value: {shouldBlur: true, fromKeyboard: false}});\n }\n }\n\n @Listen('keydown')\n onKeyDown(_event: KeyboardEvent) {\n const currentState = this.stateService.getSnapshot().matches(\"closed\") ? 'closed' : 'opened';\n let type: 'autocomplete_unique' | 'autocomplete_multiple' | 'unique' | 'multiple';\n if (this.autocomplete) {\n type = this.multiple ? 'autocomplete_multiple' : 'autocomplete_unique';\n } else {\n type = this.multiple ? 'multiple' : 'unique';\n }\n const actionsFromKeyboardEvents: KeyboardEventAssociatedAction[] = getActionForKeyboardEvent(_event, currentState, 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 && actionsFromKeyboardEvents.filter(a => a.kind === 'MoveFocus').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 \"CloseSelect\":\n this.stateService.send({\n type: 'CLOSE',\n value: {shouldBlur: actionFromKeyboardEvent.shouldBlur, fromKeyboard: true}\n });\n break;\n case \"OpenSelect\":\n this.stateService.send('OPEN');\n break;\n case \"SelectOption\":\n switch (actionFromKeyboardEvent.target) {\n case \"next\":\n this.selectClosestOption('next');\n break;\n case \"previous\":\n this.selectClosestOption('previous');\n break;\n case \"first\":\n this.selectFirstOption();\n break;\n case \"last\":\n this.selectLastOption();\n break;\n case \"lastHighlighted\": {\n // We have to handle enterKey here because with autocomplete mode, a wcs-select-option\n // is only highlighted, therefore the event is not fired\n const indexToSelect = Array.from(this.notDisabledOptions).indexOf(this.lastHighlightedOptionElement);\n\n if (indexToSelect !== -1) {\n this.lastModifiedOptionElement = this.lastHighlightedOptionElement;\n this.selectOption(indexToSelect, true);\n }\n break;\n }\n }\n break;\n case \"ClearAutocompleteInput\":\n this.setAutocompleteValue('', false, false);\n break;\n case \"ClearHighlight\":\n this.clearHighlightOnLastHighlightedOption();\n break;\n case \"HighlightOption\":\n switch (actionFromKeyboardEvent.target) {\n case \"next\":\n this.highlightClosestOption('next');\n break;\n case \"previous\":\n this.highlightClosestOption('previous');\n break;\n case \"first\":\n this.highlightFirstOption();\n break;\n case \"last\":\n this.highlightLastOption();\n break;\n default:\n break;\n }\n break;\n case \"FocusOption\":\n switch (actionFromKeyboardEvent.target) {\n case \"next\":\n this.focusClosestOption('next');\n break;\n case \"previous\":\n this.focusClosestOption('previous')\n break;\n case \"first\":\n this.focusFirstOption()\n break;\n case \"last\":\n this.focusLastOption();\n break;\n case \"lastFocused\":\n if (this.lastFocusedOptionElement != null) {\n this.focusOption(Array.from(this.notDisabledOptions).indexOf(this.lastFocusedOptionElement));\n }\n break;\n default:\n break;\n }\n break;\n case \"MoveFocus\":\n switch (actionFromKeyboardEvent.target) {\n case \"previous\": {\n let elementToFocus: Element = this.el.previousElementSibling ?? this.el.parentElement;\n while (elementToFocus) {\n if (isFocusable(elementToFocus)) break;\n elementToFocus = elementToFocus.previousElementSibling ?? elementToFocus.parentElement;\n }\n if (elementToFocus) {\n event.preventDefault();\n (elementToFocus as HTMLElement).focus();\n }\n break;\n }\n default:\n break;\n }\n break;\n default:\n throw new Error(\"Internal error\");\n }\n }\n\n private getClosestActiveOptionIndexForState(direction: 'next' | 'previous', state: 'highlighted' | 'focused' | 'modified'): number | 'nothing' {\n let concernedOption: HTMLWcsSelectOptionElement | null;\n switch (state) {\n case 'focused':\n concernedOption = this.lastFocusedOptionElement;\n break;\n case 'modified':\n concernedOption = this.lastModifiedOptionElement;\n break;\n case 'highlighted':\n concernedOption = this.lastHighlightedOptionElement;\n break;\n default:\n concernedOption = null;\n }\n let currentIndex = Array.from(this.notDisabledOptions).indexOf(concernedOption);\n\n const MIN_INDEX = 0;\n const MAX_INDEX = this.notDisabledOptions.length - 1;\n\n if (direction === 'next' && currentIndex < MAX_INDEX) {\n currentIndex++;\n } else if (direction === 'previous' && currentIndex > MIN_INDEX) {\n currentIndex--;\n } else {\n if (!this.autocomplete)\n return 'nothing';\n\n // Used to scroll options infinitely with keyboard (autocomplete mode only)\n if (direction === 'next' && currentIndex >= MAX_INDEX) {\n currentIndex = 0;\n }\n if (direction === 'previous' && currentIndex === MIN_INDEX) {\n currentIndex = MAX_INDEX;\n }\n }\n return currentIndex;\n }\n\n /**\n * Selects the non-disabled option with the index passed as a parameter.\n * The method sends an event to the state machine (the same as when clicking on an option with the mouse)\n * @param indexToSelect Option index within non-deactivated options list\n * @param fromKeyboard\n * @private\n */\n private selectOption(indexToSelect: number, fromKeyboard = false) {\n const optionToSelect = this.notDisabledOptions[indexToSelect];\n\n if (!optionToSelect) return;\n\n this.sendOptionSelectedToStateMachine({\n source: optionToSelect,\n value: optionToSelect.value,\n displayText: optionToSelect.innerText\n }, fromKeyboard);\n }\n\n private selectClosestOption(direction: 'next' | 'previous'): void {\n const indexToSelect = this.getClosestActiveOptionIndexForState(direction, 'modified');\n if (indexToSelect === 'nothing') return;\n this.selectOption(indexToSelect, true);\n }\n\n private selectFirstOption() {\n if (this.notDisabledOptions.length < 1) {\n return;\n }\n\n this.selectOption(0, true);\n }\n\n private selectLastOption() {\n if (this.notDisabledOptions.length < 1) {\n return;\n }\n\n this.selectOption(this.notDisabledOptions.length - 1, true);\n }\n\n private focusOption(indexToFocus: number) {\n this.lastFocusedOptionElement = this.notDisabledOptions[indexToFocus];\n this.lastFocusedOptionElement?.focus();\n this.el.setAttribute(\"aria-activedescendant\", this.lastFocusedOptionElement.id);\n }\n\n private focusClosestOption(direction: 'next' | 'previous'): void {\n const indexToFocus = this.getClosestActiveOptionIndexForState(direction, 'focused');\n if (indexToFocus === 'nothing') return;\n\n this.focusOption(indexToFocus);\n }\n\n private focusFirstOption() {\n this.focusOption(0);\n }\n\n private focusLastOption() {\n this.focusOption(this.notDisabledOptions.length - 1);\n }\n\n @Listen('wcsSelectOptionClick')\n selectedOptionChanged(event: CustomEvent<SelectOptionChosedEvent>) {\n this.sendOptionSelectedToStateMachine(event.detail);\n }\n\n sendOptionSelectedToStateMachine(event: SelectOptionChosedEvent, fromKeyboard = false) {\n this.stateService.send({type: 'OPTION_SELECTED', value: {option: event, fromKeyboard}});\n }\n\n onSlotchange() {\n if (!this.serverMode || (this.autocomplete && this.displayText === this.autocompleteValue)) {\n // We call updateSelectedValue to update the selected options when the slot changes to keep the selected options in sync with the current value.\n // This also update the displayText value according to the options data.\n // Finally, this update the internal models for multiple mode and handle the server mode correctly.\n this.updateSelectedValue(this.value, false, false);\n } else {\n this.syncOptionsElementsStateWithCurrentSelectedValue();\n }\n\n // Server-mode only : \"no result\" slot should be visible dynamically if no option is present in the slot\n if (this.autocomplete && this.serverMode) {\n this.showNoResultFoundLabel = this.options.length < 1;\n }\n\n if (this.multiple) {\n this.options\n .forEach((opt: HTMLWcsSelectOptionElement) => opt.multiple = true);\n }\n }\n\n /**\n * This method only affect the option's selected state\n * \n * Set the selected state of each option to match the current selected value of the select\n */\n private syncOptionsElementsStateWithCurrentSelectedValue() {\n this.options.forEach((opt: HTMLWcsSelectOptionElement) => {\n const isSelected = this.compareWith(opt.value, this.value);\n opt.selected = isSelected;\n });\n }\n\n removeChip(v: SelectOptionValue) {\n this.options\n .forEach(opt => {\n if (opt.value === v.value) {\n this.sendOptionSelectedToStateMachine({\n ...v,\n source: opt\n });\n }\n });\n }\n\n //region Autocomplete mode\n\n private highlightOption(indexToHighlight: number) {\n this.clearHighlightOnLastHighlightedOption();\n this.lastHighlightedOptionElement = this.notDisabledOptions[indexToHighlight];\n if (this.lastHighlightedOptionElement) {\n this.lastHighlightedOptionElement.highlighted = true;\n this.autocompleteInput.setAttribute(\"aria-activedescendant\", this.lastHighlightedOptionElement.id);\n requestAnimationFrame(() => {\n this.lastHighlightedOptionElement.scrollIntoView({block: \"nearest\", inline: \"nearest\"});\n })\n }\n }\n\n private highlightFirstOption() {\n this.highlightOption(0);\n }\n\n private highlightLastOption() {\n this.highlightOption(this.notDisabledOptions.length - 1);\n }\n\n private highlightClosestOption(direction: 'next' | 'previous'): void {\n const indexToHighlight = this.getClosestActiveOptionIndexForState(direction, 'highlighted');\n if (indexToHighlight === 'nothing') return;\n\n this.highlightOption(indexToHighlight);\n }\n\n /**\n * This method removes the highlight that applies to the last highlighted option if any.\n * This is used only for accessibility of autocomplete mode.\n * @private\n */\n private clearHighlightOnLastHighlightedOption() {\n if (this.lastHighlightedOptionElement) {\n this.lastHighlightedOptionElement.highlighted = false;\n this.lastHighlightedOptionElement = null;\n }\n }\n\n private onAutocompleteInputEvent(e: InputEvent) {\n const filter = this.autocompleteInput.value ?? '';\n\n this.setAutocompleteValue(filter, false, true); // fromUserInteraction = true\n // Avoid the inputEvent event to bubble and be emitted, we rather use wcsFilterChange in this case :\n e.stopPropagation();\n\n }\n\n /**\n * Set the autocomplete value and open the select if needed.\n * @param filter - The new filter value\n * @param isReset - If true, the filter is reset and the select is closed\n * @param fromUserInteraction - If true, the change comes from user interaction (typing), if false it's programmatic\n * @param shouldEmitFilterChangeEvent\n * @private\n */\n private setAutocompleteValue(filter: string, isReset = false, fromUserInteraction = false, shouldEmitFilterChangeEvent = true): void {\n this.clearHighlightOnLastHighlightedOption();\n const newValueIsDifferentFromLastModifiedOption = this.lastModifiedOptionElement == null || this.lastModifiedOptionElement?.textContent !== this.autocompleteValue;\n // Only open the select automatically when the change comes from user interaction\n if (!this.expanded && newValueIsDifferentFromLastModifiedOption && !isReset && fromUserInteraction) {\n this.open(); \n }\n\n // Prevents client-side filtering logic from being applied when serverMode is enabled.\n if (!this.serverMode) {\n if (filter.length) {\n const [matchingOptions, optionsToHide] = [[], []];\n const filteringFunction: WcsSelectFilterFn = this.filterFn ?? WcsDefaultSelectFilterFn;\n this.options.forEach((optionEl: HTMLWcsSelectOptionElement) =>\n (filteringFunction(optionEl, filter) ? matchingOptions : optionsToHide).push(optionEl)\n );\n\n this.showNoResultFoundLabel = matchingOptions.length === 0;\n matchingOptions.forEach(o => {\n o.hidden = false;\n o.removeAttribute(\"aria-hidden\");\n });\n optionsToHide.forEach(o => {\n o.hidden = true;\n o.setAttribute(\"aria-hidden\", \"true\");\n });\n } else {\n this.showNoResultFoundLabel = false;\n this.options.forEach(o => {\n o.hidden = false;\n o.removeAttribute(\"aria-hidden\");\n });\n }\n }\n\n const newAutocompleteValue = filter ?? '';\n const valueHasChanged = this.autocompleteValue !== newAutocompleteValue;\n\n if (valueHasChanged) {\n this.autocompleteValue = newAutocompleteValue;\n }\n\n if (shouldEmitFilterChangeEvent && valueHasChanged) {\n this.wcsFilterChange.emit({\n value: filter,\n });\n }\n }\n\n @Listen('focus')\n onFocus(event: FocusEvent) {\n if (this.autocomplete) {\n this.focusAutocompleteInput();\n }\n this.wcsFocus.emit(event);\n }\n\n private focusAutocompleteInput(): void {\n this.autocompleteInput?.focus();\n }\n\n //endregion\n\n @Listen('blur', { capture: true })\n onBlur(event: FocusEvent) {\n // Avoid emitting a wcsBlur event when the relatedTarget of the blur event is a child or the select itself\n const target = event.relatedTarget as HTMLElement;\n if (this.el.contains(target)) {\n return;\n }\n \n this.wcsBlur.emit(event);\n }\n\n componentDidRender() {\n this.popper?.update();\n }\n\n private focusedAttributes() {\n return !this.disabled ? { tabIndex: 0 } : {};\n }\n\n render() {\n const ariaLabelValue = `${this.labelElement ? this.labelElement.innerText : ''} ${this.hasValue ? this.displayText : ''}`.trimEnd();\n const noResultContainerId = 'no-result-container';\n \n return (\n <Host class={this.expanded ? 'expanded ' : ''}\n overlayDirection={this.overlayDirection}\n {...this.focusedAttributes()}\n role={!this.autocomplete ? \"combobox\" : null}\n aria-haspopup={!this.autocomplete ? \"listbox\" : null}\n aria-owns={!this.autocomplete ? this.optionsId : null}\n aria-controls={!this.autocomplete ? this.optionsId : null}\n aria-disabled={!this.autocomplete ? (this.disabled ? 'true' : null) : null}\n aria-required={!this.autocomplete ? (this.required ? 'true' : 'false') : null}\n aria-expanded={!this.autocomplete ? (this.expanded ? 'true' : 'false') : null}\n aria-multiselectable={!this.autocomplete ? (this.multiple ? 'true' : 'false') : null}\n aria-label={!this.autocomplete ? ariaLabelValue : null}>\n <div class=\"wcs-select-control\">\n <div class=\"wcs-select-value-container\">\n {this.hasValue\n ?\n (this.chips ?\n this.values.map((option: SelectOptionValue) =>\n <SelectChips disabled={this.disabled} option={option}\n onRemove={this.removeChip.bind(this)}/>\n )\n : (!this.autocomplete || this.autocomplete && this.multiple) &&\n <label class=\"wcs-select-value\">{this.displayText}</label>)\n : !this.autocomplete && <label class=\"wcs-select-placeholder\">{this.placeholder}</label>\n }\n {this.autocomplete && <input class=\"autocomplete-field\"\n value={this.autocompleteValue}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-label={ariaLabelValue}\n aria-describedby={noResultContainerId}\n aria-disabled={this.disabled ? 'true' : null}\n aria-expanded={this.expanded ? 'true' : 'false'}\n aria-controls={this.optionsId}\n aria-owns={this.optionsId}\n aria-multiselectable={this.multiple ? 'true' : 'false'}\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n disabled={this.disabled}\n required={this.required}\n placeholder={this.values?.length ? null : this.placeholder}\n onInput={(e) => this.onAutocompleteInputEvent(e)}\n ref={el => this.autocompleteInput = el}\n {...this.inheritedAttributes}/>\n }\n </div>\n <SelectArrow up={this.expanded}/>\n </div>\n <div class=\"wcs-select-options\" id={this.optionsId} role=\"listbox\">\n <slot name=\"options\" onSlotchange={this.onSlotchange.bind(this)}/>\n {(this.autocomplete && this.showNoResultFoundLabel) &&\n <div role=\"alert\" id={noResultContainerId} class=\"noresult-container\">\n <slot name=\"filter-no-result\">\n <span>Aucun résultat</span>\n </slot>\n </div>\n }\n </div>\n </Host>\n );\n }\n}\n\nlet selectIds = 0;\n"]}
|
|
@@ -77,8 +77,8 @@ export class SelectOption {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
render() {
|
|
80
|
-
return (h(Host, { key: '
|
|
81
|
-
h("wcs-checkbox", { key: '
|
|
80
|
+
return (h(Host, { key: '51bc015628d9df53a0a819ae1263833076c66d36', id: this.selectOptionId, "aria-selected": this.selected || this.highlighted ? 'true' : 'false', slot: "options", role: "option", tabindex: "-1" }, this.multiple &&
|
|
81
|
+
h("wcs-checkbox", { key: 'c20dd8d1e7d58b0ed2c5291838eb2d7cf8d0e76c', tabindex: "-1", checked: this.selected, disabled: this.disabled }), h("slot", { key: 'f088d1ba14ff498be0b5dcb2e3cb588c99330a1f' })));
|
|
82
82
|
}
|
|
83
83
|
static get is() { return "wcs-select-option"; }
|
|
84
84
|
static get originalStyleUrls() {
|
|
@@ -16,7 +16,7 @@ export class SkeletonCircle {
|
|
|
16
16
|
this.radius = 50;
|
|
17
17
|
}
|
|
18
18
|
render() {
|
|
19
|
-
return (h(Host, { key: '
|
|
19
|
+
return (h(Host, { key: '377f60acab21afe24878db2236e58eeea21dddda', style: { width: `${this.radius}px`, height: `${this.radius}px` } }, h("span", { key: '78417601b7e6cda0dcc6d785618618e28cffbddc', "aria-hidden": "true" })));
|
|
20
20
|
}
|
|
21
21
|
static get is() { return "wcs-skeleton-circle"; }
|
|
22
22
|
static get encapsulation() { return "shadow"; }
|
|
@@ -18,7 +18,7 @@ export class SkeletonRectangle {
|
|
|
18
18
|
this.width = 'auto';
|
|
19
19
|
}
|
|
20
20
|
render() {
|
|
21
|
-
return (h(Host, { key: '
|
|
21
|
+
return (h(Host, { key: '67da0cd70d8cff6fa889ec4a337ab51a70c2da55', style: { height: this.height, width: this.width } }, h("span", { key: 'b6b8a8cbc2bbf5387d3a5c66d8e5c6deba7dbe5a', "aria-hidden": "true" })));
|
|
22
22
|
}
|
|
23
23
|
static get is() { return "wcs-skeleton-rectangle"; }
|
|
24
24
|
static get encapsulation() { return "shadow"; }
|
|
@@ -22,7 +22,7 @@ export class SkeletonText {
|
|
|
22
22
|
this.height = 'body';
|
|
23
23
|
}
|
|
24
24
|
render() {
|
|
25
|
-
return h("span", { key: '
|
|
25
|
+
return h("span", { key: '513909d5e86ad9972317ac980b0cdd56e337505e', "aria-hidden": "true" });
|
|
26
26
|
}
|
|
27
27
|
static get is() { return "wcs-skeleton-text"; }
|
|
28
28
|
static get encapsulation() { return "shadow"; }
|
|
@@ -16,7 +16,7 @@ export class Spinner {
|
|
|
16
16
|
this.mode = 'border';
|
|
17
17
|
}
|
|
18
18
|
render() {
|
|
19
|
-
return (h("svg", { key: '
|
|
19
|
+
return (h("svg", { key: '166ed35ffcf46c317b2427e7ee0c3a960726f990', viewBox: "0 0 50 50" }, h("circle", { key: '642490f6a8186e12a9072173882767b84d5c2dbc', class: "dashed-background-circle", cx: "25", cy: "25", r: "21", fill: "none" }), h("g", { key: '0df7abf2426c8f04f0d1eb3867b91ce7c3faaceb', class: "infinite-rotation-container" }, h("circle", { key: 'd02aa1c02b2c732dd8bc1cd018f9b72bda28f7c4', class: "dash-rotating-circle", cx: "25", cy: "25", r: "21", fill: "none" }))));
|
|
20
20
|
}
|
|
21
21
|
static get is() { return "wcs-spinner"; }
|
|
22
22
|
static get encapsulation() { return "shadow"; }
|
|
@@ -84,7 +84,7 @@ export class Switch {
|
|
|
84
84
|
return getSlottedContentText(this.el);
|
|
85
85
|
}
|
|
86
86
|
render() {
|
|
87
|
-
return (h(Host, { key: '
|
|
87
|
+
return (h(Host, { key: '482132afd430c9dcc4f43e945f73516cd3ff0916' }, h("label", { key: '347ef36c5f79f40c07b033061fc4306c7af1d6d4', htmlFor: this.name, class: "wcs-container", "aria-disabled": this.disabled }, h("input", Object.assign({ key: '3fd70b6177fc09b5d86af8985b89d33c20bec1a2', onBlur: this.handleBlur.bind(this), onChange: this.handleChange.bind(this), onClick: this.handleInputClick.bind(this), onFocus: this.handleFocus.bind(this), checked: this.checked, id: this.name, class: "wcs-switch", type: "checkbox", name: this.name, disabled: this.disabled, ref: el => { this.nativeInput = el; } }, this.inheritedAttributes)), h("span", { key: '9fd555c6694b6ec7bb0257c248d440bdba797227', class: "wcs-checkmark" }), h("span", { key: '1b54f6891ba864be362055ceaba9f0853c75fd16', class: "text" }, h("slot", { key: 'bc3338c266b9ead8338ba50a69fcafcb325d13f3' })))));
|
|
88
88
|
}
|
|
89
89
|
static get is() { return "wcs-switch"; }
|
|
90
90
|
static get encapsulation() { return "shadow"; }
|
|
@@ -12,7 +12,7 @@ export class Tab {
|
|
|
12
12
|
this.tabLoaded.emit();
|
|
13
13
|
}
|
|
14
14
|
render() {
|
|
15
|
-
return (h(Host, { key: '
|
|
15
|
+
return (h(Host, { key: '7a7e32bac1115db932217147ac7ca0a5d589198a', slot: "wcs-tab", role: "tabpanel" }, h("slot", { key: '82b5f09a33f743a1284154284a5a9432442c3c9c' })));
|
|
16
16
|
}
|
|
17
17
|
static get is() { return "wcs-tab"; }
|
|
18
18
|
static get encapsulation() { return "shadow"; }
|
|
@@ -343,7 +343,7 @@ export class Tabs {
|
|
|
343
343
|
return (this.headers.map((header, idx) => h("div", { class: 'wcs-tab-header ' + (this.currentActiveTabIndex === idx ? 'active' : ''), onClick: () => this.selectTabAndEmitChangeEvent(idx), onKeyDown: evt => this.handleKeyDown(evt, idx), tabIndex: this.currentActiveTabIndex === idx ? 0 : -1, role: "tab", id: `tabs-id-${this.tabsId}-tab-id-${idx}`, "aria-controls": `tabs-id-${this.tabsId}-tab-panel-${idx}`, "aria-label": header, "aria-selected": this.currentActiveTabIndex === idx ? 'true' : 'false' }, h("span", null, header))));
|
|
344
344
|
}
|
|
345
345
|
render() {
|
|
346
|
-
return (h(Host, { key: '
|
|
346
|
+
return (h(Host, { key: '52a78624d4440876aacfcabeb2b25df81867d64c' }, h("div", Object.assign({ key: '6bdbb2386f24c7d4f808a5af656ea8efc740a2d1', class: "wcs-tabs-headers", role: this.mobile ? null : 'tablist', ref: (el) => (this.nativeTablist = el), "aria-orientation": this.mobile ? null : 'horizontal', "aria-label": this.mobile ? null : this.description }, (!this.mobile && this.inheritedAttributes)), this.mobile ? this.mobileLayout() : this.desktopLayout()), h("div", { key: 'dfc2a9df4b2778cbb5d0144aaca7fd54cf699f9c', class: "wcs-tabs" }, h("slot", { key: 'a97bec22c495527408eb56caf91a30a67aed3e4f', onSlotchange: () => this.onTabsSlotChange(), name: "wcs-tab" }))));
|
|
347
347
|
}
|
|
348
348
|
/**
|
|
349
349
|
* Observe when a new tab panel is added to the slot to let's handle accessibility properties for tabs panel:
|
|
@@ -170,7 +170,7 @@ export class Textarea {
|
|
|
170
170
|
render() {
|
|
171
171
|
const value = this.getValue();
|
|
172
172
|
const style = Object.assign({}, (this.resize && { 'resize': this.resize }));
|
|
173
|
-
return (h(Host, { key: '
|
|
173
|
+
return (h(Host, { key: 'daa597288a0d494b61344a1c60e21208823964b6', "aria-disabled": this.disabled ? 'true' : null }, this.icon ? (h("wcs-mat-icon", { icon: this.icon, size: "m" })) : null, h("textarea", Object.assign({ key: '978490deee1bb0808336ad345f9ec9daa8b0e30e', class: "native-textarea", ref: el => this.nativeInput = el, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, disabled: this.disabled, maxLength: this.maxlength, minLength: this.minlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, style: style }, this.inheritedAttributes), value)));
|
|
174
174
|
}
|
|
175
175
|
static get is() { return "wcs-textarea"; }
|
|
176
176
|
static get encapsulation() { return "shadow"; }
|
|
@@ -180,7 +180,7 @@ export class Tooltip {
|
|
|
180
180
|
(_a = this.tippyInstance) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
181
181
|
}
|
|
182
182
|
render() {
|
|
183
|
-
return (h(Host, { key: '
|
|
183
|
+
return (h(Host, { key: '430814e1eefde613ed887a70b837c5603b3d7656', role: "tooltip" }, h("slot", { key: 'f1915740c4c18c7c154bedd8db7bc10e7836822c', onSlotchange: _ => this.updateTippyContent() })));
|
|
184
184
|
}
|
|
185
185
|
static get is() { return "wcs-tooltip"; }
|
|
186
186
|
static get encapsulation() { return "shadow"; }
|
|
@@ -11,6 +11,12 @@ export async function setWcsContent(page, content) {
|
|
|
11
11
|
await page.addStyleTag({
|
|
12
12
|
url: '/design-tokens/sncf-holding.css',
|
|
13
13
|
});
|
|
14
|
+
await page.addStyleTag({
|
|
15
|
+
url: '/build/wcs.css',
|
|
16
|
+
});
|
|
17
|
+
await page.addStyleTag({
|
|
18
|
+
url: '/test.css',
|
|
19
|
+
});
|
|
14
20
|
await page.waitForChanges();
|
|
15
21
|
}
|
|
16
22
|
//# sourceMappingURL=test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/utils/playwright/test.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAa,EAAE,OAAe;IAC9D,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;QACrB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC,CAAA;IACF,MAAM,IAAI,CAAC,WAAW,CAAC;QACnB,GAAG,EAAE,iCAAiC;KACzC,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAChC,CAAC","sourcesContent":["import { E2EPage } from '@stencil/playwright';\n\n/**\n * @see stencil.config.ts expose dev web server\n * @param page\n * @param content\n */\nexport async function setWcsContent(page: E2EPage, content: string) {\n await page.setContent(content);\n await page.evaluate(() => {\n document.body.classList.add('sncf-holding');\n })\n await page.addStyleTag({\n url: '/design-tokens/sncf-holding.css',\n });\n await page.waitForChanges();\n}\n"]}
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/utils/playwright/test.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAa,EAAE,OAAe;IAC9D,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;QACrB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC,CAAA;IACF,MAAM,IAAI,CAAC,WAAW,CAAC;QACnB,GAAG,EAAE,iCAAiC;KACzC,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,WAAW,CAAC;QACnB,GAAG,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,WAAW,CAAC;QACnB,GAAG,EAAE,WAAW;KACnB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAChC,CAAC","sourcesContent":["import { E2EPage } from '@stencil/playwright';\n\n/**\n * @see stencil.config.ts expose dev web server\n * @param page\n * @param content\n */\nexport async function setWcsContent(page: E2EPage, content: string) {\n await page.setContent(content);\n await page.evaluate(() => {\n document.body.classList.add('sncf-holding');\n })\n await page.addStyleTag({\n url: '/design-tokens/sncf-holding.css',\n });\n await page.addStyleTag({\n url: '/build/wcs.css',\n });\n await page.addStyleTag({\n url: '/test.css',\n });\n await page.waitForChanges();\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { g as getCssRootPropertyValue } from './helpers-
|
|
1
|
+
import { g as getCssRootPropertyValue } from './helpers-89faa1b1.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* This function add event handlers on the navigableItems list. The handlers call the function close() on the nodeName.
|
|
@@ -48,4 +48,4 @@ function comNavDidLoadWithResizeObserver(comNavElement) {
|
|
|
48
48
|
|
|
49
49
|
export { comNavDidLoadWithResizeObserver as c, registerCloseHandlerForFocusOutEventOn as r };
|
|
50
50
|
|
|
51
|
-
//# sourceMappingURL=com-nav-utils-
|
|
51
|
+
//# sourceMappingURL=com-nav-utils-27c1efdf.js.map
|