wcs-core 7.5.1 → 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 -8
- package/dist/collection/components/label/label.e2e.playwright.js +62 -0
- package/dist/collection/components/label/label.e2e.playwright.js.map +1 -1
- package/dist/collection/components/label/label.js +1 -1
- package/dist/collection/components/label/label.js.map +1 -1
- package/dist/collection/components/list-item/list-item.js +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/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/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-22620c69.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-581fc0fc.js +0 -2
- package/bundle/p-581fc0fc.js.map +0 -1
- package/bundle/p-763371a0.js.map +0 -1
- package/bundle/p-97e70e10.js +0 -2
- package/composite-elements/p-79ad61e4.js +0 -2
- package/composite-elements/p-79ad61e4.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-22620c69.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-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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"label.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/label/label.e2e.playwright.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAW,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,4BAA4B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;QACrE,QAAQ;QACR,MAAM,aAAa,CAAC,IAAI,EAAE;;SAEzB,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAElD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEpC,OAAO;QACP,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACtC,+GAA+G;QAC/G,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;QACxF,QAAQ;QACR,MAAM,aAAa,CAAC,IAAI,EAAE;;;;;;;;;;;;;SAazB,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAChE,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAEtE,OAAO;QACP,MAAM,4BAA4B,GAAG,MAAM,iBAAiB,CAAC,WAAW,EAAE,CAAC;QAC3E,MAAM,+BAA+B,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,CAAC;QACjF,MAAM,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { setWcsContent } from '../../utils/playwright/test';\nimport { test, E2EPage } from \"@stencil/playwright\";\n\nimport { expect } from \"@playwright/test\";\n\ntest.describe('Label component', () => {\n test('Should wrap text correctly', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-label>Label loooooooooooooooooooooooooooooooooong text</wcs-label>\n `);\n page.setViewportSize({ width: 300, height: 300 });\n\n const label = page.locator('label');\n\n // Then\n const box = await label.boundingBox();\n expect(box.height).toBeGreaterThan(0);\n // Assuming that the line height is around 20px, if the text is wrapped, the height should be greater than 20px\n expect(box.height).toBeGreaterThan(20);\n });\n\n test('Should keep same height with and without icon', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-form-field id=\"form-field-with-icon\">\n <wcs-label>\n Enter your name\n <wcs-mat-icon id=\"icon-help\" icon=\"help\" family=\"filled\" size=\"s\"></wcs-mat-icon>\n </wcs-label>\n <wcs-input placeholder=\"John Doe\"></wcs-input>\n </wcs-form-field>\n\n <wcs-form-field id=\"form-field-without-icon\">\n <wcs-label>Enter your name</wcs-label>\n <wcs-input placeholder=\"John Doe\"></wcs-input>\n </wcs-form-field>\n `);\n const formFieldWithIcon = page.locator('#form-field-with-icon');\n const formFieldWithoutIcon = page.locator('#form-field-without-icon');\n\n // Then\n const formFieldBoundingBoxWithIcon = await formFieldWithIcon.boundingBox();\n const formFieldBoundingBoxWithoutIcon = await formFieldWithoutIcon.boundingBox();\n expect(formFieldBoundingBoxWithIcon.height).toEqual(formFieldBoundingBoxWithoutIcon.height);\n });\n});"]}
|
|
1
|
+
{"version":3,"file":"label.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/label/label.e2e.playwright.ts"],"names":[],"mappings":"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","sourcesContent":["import { setWcsContent } from '../../utils/playwright/test';\nimport { test, E2EPage } from \"@stencil/playwright\";\n\nimport { expect } from \"@playwright/test\";\n\ntest.describe('Label component', () => {\n test('Should wrap text correctly', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-label>Label loooooooooooooooooooooooooooooooooong text</wcs-label>\n `);\n page.setViewportSize({ width: 300, height: 300 });\n\n const label = page.locator('label');\n\n // Then\n const box = await label.boundingBox();\n expect(box.height).toBeGreaterThan(0);\n // Assuming that the line height is around 20px, if the text is wrapped, the height should be greater than 20px\n expect(box.height).toBeGreaterThan(20);\n });\n\n test('Should keep same height with and without icon', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-form-field id=\"form-field-with-icon\">\n <wcs-label>\n Enter your name\n <wcs-mat-icon id=\"icon-help\" icon=\"help\" family=\"filled\" size=\"s\"></wcs-mat-icon>\n </wcs-label>\n <wcs-input placeholder=\"John Doe\"></wcs-input>\n </wcs-form-field>\n\n <wcs-form-field id=\"form-field-without-icon\">\n <wcs-label>Enter your name</wcs-label>\n <wcs-input placeholder=\"John Doe\"></wcs-input>\n </wcs-form-field>\n `);\n const formFieldWithIcon = page.locator('#form-field-with-icon');\n const formFieldWithoutIcon = page.locator('#form-field-without-icon');\n\n // Then\n const formFieldBoundingBoxWithIcon = await formFieldWithIcon.boundingBox();\n const formFieldBoundingBoxWithoutIcon = await formFieldWithoutIcon.boundingBox();\n expect(formFieldBoundingBoxWithIcon.height).toEqual(formFieldBoundingBoxWithoutIcon.height);\n });\n\n test('Should place required marker right after last word when label wraps', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-form-field style=\"width: 180px\">\n <wcs-label>\n This label is long enough to wrap on multiple lines and end with\n <span id=\"last-word\">word</span>\n </wcs-label>\n <wcs-input required></wcs-input>\n </wcs-form-field>\n `);\n\n const lastWord = page.locator('#last-word');\n const requiredMarker = page.locator('.required-marker');\n\n // Then\n await expect(requiredMarker).toBeVisible();\n\n const lastWordBox = await lastWord.boundingBox();\n const requiredMarkerBox = await requiredMarker.boundingBox();\n\n const horizontalGap = requiredMarkerBox.x - (lastWordBox.x + lastWordBox.width);\n expect(horizontalGap).toBeGreaterThanOrEqual(0);\n expect(horizontalGap).toBeLessThanOrEqual(8 + 2); // assuming a gap of Xpx plus some tolerance\n\n expect(Math.abs((lastWordBox.y + lastWordBox.height) - (requiredMarkerBox.y + requiredMarkerBox.height))).toBeLessThanOrEqual(2);\n });\n\n test('Should keep same height with and without required marker', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-form-field id=\"form-field-with-required\">\n <wcs-label>Enter your name</wcs-label>\n <wcs-input required placeholder=\"John Doe\"></wcs-input>\n </wcs-form-field>\n\n <wcs-form-field id=\"form-field-without-required\">\n <wcs-label>Enter your name</wcs-label>\n <wcs-input placeholder=\"John Doe\"></wcs-input>\n </wcs-form-field>\n `);\n const formFieldWithRequired = page.locator('#form-field-with-required');\n const formFieldWithoutRequired = page.locator('#form-field-without-required');\n\n // Then\n const formFieldBoundingBoxWithRequired = await formFieldWithRequired.boundingBox();\n const formFieldBoundingBoxWithoutRequired = await formFieldWithoutRequired.boundingBox();\n expect(formFieldBoundingBoxWithRequired.height).toEqual(formFieldBoundingBoxWithoutRequired.height);\n });\n\n test('Should well update of the required marker when property required is toggled', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-form-field>\n <wcs-label id=\"label\">\n This label is long enough to wrap on multiple lines and end with\n <span id=\"last-word\">word</span>\n </wcs-label>\n <wcs-input required></wcs-input>\n </wcs-form-field>\n `);\n\n const wcsInput = page.locator('wcs-input');\n const requiredMarker = page.locator('.required-marker');\n\n // Then\n await expect(requiredMarker).toBeVisible();\n\n // When\n await wcsInput.evaluate((el: any) => el.required = false);\n\n // Then\n await expect(requiredMarker).toBeHidden();\n });\n});\n"]}
|
|
@@ -28,7 +28,7 @@ export class Label {
|
|
|
28
28
|
setOrRemoveAttribute(this.nativeLabel, attr, value);
|
|
29
29
|
}
|
|
30
30
|
render() {
|
|
31
|
-
return (h(Host, { key: '
|
|
31
|
+
return (h(Host, { key: 'bd18c1a58190a8a8ada92b47f3b77e58c89c3169', slot: "label" }, h("label", Object.assign({ key: '7fc3b63d96cf88eb8b31abd2b0055feebe02f696', ref: (el) => this.nativeLabel = el }, this.inheritedAttributes), h("slot", { key: 'b997f691e437b758f3ebe0f0899605430b10388a' }), this.required && h("span", { key: '529194ed383d724c570a9bca56ee23dc9b9f0fce', "aria-hidden": "true", class: "required-marker" }, "*"))));
|
|
32
32
|
}
|
|
33
33
|
static get is() { return "wcs-label"; }
|
|
34
34
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/components/label/label.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAErG,MAAM,qBAAqB,GAAG,CAAC,OAAO,CAAC,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AAMH,MAAM,OAAO,KAAK;;QAGN,wBAAmB,GAAyB,EAAE,CAAC;wBAMV,KAAK;;IAElD,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,qBAAqB,CAAC,CACvD,CAAC;IACN,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,MAAM;QACF,OAAO,CACH,EAAC,IAAI,qDAAC,IAAI,EAAC,OAAO;YACd,4EAAO,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,IAAM,IAAI,CAAC,mBAAmB;gBACnE,8DAAQ,
|
|
1
|
+
{"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/components/label/label.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAErG,MAAM,qBAAqB,GAAG,CAAC,OAAO,CAAC,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AAMH,MAAM,OAAO,KAAK;;QAGN,wBAAmB,GAAyB,EAAE,CAAC;wBAMV,KAAK;;IAElD,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,qBAAqB,CAAC,CACvD,CAAC;IACN,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,MAAM;QACF,OAAO,CACH,EAAC,IAAI,qDAAC,IAAI,EAAC,OAAO;YACd,4EAAO,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,IAAM,IAAI,CAAC,mBAAmB;gBACnE,8DAAQ;gBACP,IAAI,CAAC,QAAQ,IAAI,4EAAkB,MAAM,EAAC,KAAK,EAAC,iBAAiB,QAAS,CACvE,CACL,CACV,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import { Component, ComponentInterface, h, Host, Method, Prop, Element } from '@stencil/core';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\n\nconst LABEL_INHERITED_ATTRS = ['title'];\n\n/**\n * The `wcs-label` should always be wrapped in a `wcs-form-field`.\n * It is used to caption a form control component.\n *\n * ## Accessibility guidelines 💡\n * - Use concise name for the label. If you want to describe more your form control, add a `wcs-hint`\n * - Use the required flag only as an indication to inform users that the form control is required\n * \n * @cssprop --wcs-label-color - Color of the text\n * @cssprop --wcs-label-font-weight - Font weight of the text\n * \n * @cssprop --wcs-label-required-marker-color - Color of the required marker\n * \n * @cssprop --wcs-label-gap - Gap between text and required marker\n */\n@Component({\n tag: 'wcs-label',\n styleUrl: 'label.scss',\n shadow: true,\n})\nexport class Label implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeLabel?: HTMLLabelElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n /**\n * If `true`, marks the label with a red star.\n * Automatically added if the wrapped component inside the `wcs-form-field` already has the `required` attribute. \n */\n @Prop({ reflect: true }) required: boolean = false;\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, LABEL_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeLabel, attr, value);\n }\n\n render() {\n return (\n <Host slot=\"label\">\n <label ref={(el) => this.nativeLabel = el} {...this.inheritedAttributes}>\n <slot />\n {this.required && <span aria-hidden=\"true\" class=\"required-marker\">*</span>}\n </label>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -35,7 +35,7 @@ export class ListItem {
|
|
|
35
35
|
this.activated = false;
|
|
36
36
|
}
|
|
37
37
|
render() {
|
|
38
|
-
return (h(Host, { key: '
|
|
38
|
+
return (h(Host, { key: '1137c9770d8b50d24e8bb3187e586aca7a1ee3b9' }, h("slot", { key: '0c44655427e84534f1d6932ac3458d828cd31159', name: "icon" }), h("div", { key: '369bbe90f5d5c7a332732c3ba819b5959d09a25b', class: "content" }, h("div", { key: 'cd9c45f16a2455d1fe227d7d1e7e077d0327617d', class: "header" }, h("div", { key: 'c51172bf63657b2dde77836600ba3940ddde092b' }, h("slot", { key: '32452ee6fe06aa7d1652c5246c42afa3a2a66fbf', name: "title" }), h("slot", { key: '0bc5cf05d0fae6688ebb842bdeff3d88aa8682d8', name: "properties" })), h("slot", { key: '57ad3703881078ebd491166d874bd9593f6a405f', name: "actions" })), h("slot", { key: '70f35aa3d2034a8fb04c934d2659997a8b4c268b', name: "description" }))));
|
|
39
39
|
}
|
|
40
40
|
static get is() { return "wcs-list-item"; }
|
|
41
41
|
static get encapsulation() { return "shadow"; }
|
|
@@ -11,7 +11,7 @@ import { h, Host } from "@stencil/core";
|
|
|
11
11
|
*/
|
|
12
12
|
export class ListItemProperties {
|
|
13
13
|
render() {
|
|
14
|
-
return (h(Host, { key: '
|
|
14
|
+
return (h(Host, { key: '168f5a846e64177a50b350cb90bee3b15a7eb871', slot: "properties" }, h("slot", { key: 'f5f3a8caa0da9384d409340f51f41c11971a0904', name: "property" })));
|
|
15
15
|
}
|
|
16
16
|
static get is() { return "wcs-list-item-properties"; }
|
|
17
17
|
static get encapsulation() { return "shadow"; }
|
|
@@ -10,7 +10,7 @@ import { h, Host } from "@stencil/core";
|
|
|
10
10
|
*/
|
|
11
11
|
export class ListItemProperty {
|
|
12
12
|
render() {
|
|
13
|
-
return (h(Host, { key: '
|
|
13
|
+
return (h(Host, { key: '036366a768b3e90eb028cbdf18d006a595282420', slot: "property" }, h("slot", { key: 'f5ad277671ba35e014635562b97a279813e5bb0c' })));
|
|
14
14
|
}
|
|
15
15
|
static get is() { return "wcs-list-item-property"; }
|
|
16
16
|
static get encapsulation() { return "shadow"; }
|
|
@@ -25,7 +25,7 @@ export class MatIcon {
|
|
|
25
25
|
setOrRemoveAttribute(this.nativeIcon, attr, value);
|
|
26
26
|
}
|
|
27
27
|
render() {
|
|
28
|
-
return (h(Host, { key: '
|
|
28
|
+
return (h(Host, { key: 'dec260ca9c57892e17402365e179a17a0e085b18' }, h("i", Object.assign({ key: 'f9e8fb980b2a99bff272b08c629347f6c1b28d49', "aria-hidden": "true", class: ICON_FAMILY_CLASS_NAME[this.family] + ' size-' + this.size, ref: (el) => (this.nativeIcon = el) }, this.inheritedAttributes), this.icon)));
|
|
29
29
|
}
|
|
30
30
|
static get is() { return "wcs-mat-icon"; }
|
|
31
31
|
static get encapsulation() { return "shadow"; }
|
|
@@ -169,7 +169,7 @@ export class Modal {
|
|
|
169
169
|
}
|
|
170
170
|
render() {
|
|
171
171
|
const modalTitleId = `wcs-modal-title-${this.modalId}`;
|
|
172
|
-
return (h(Host, { key: '
|
|
172
|
+
return (h(Host, { key: '2d08c87dcf9936d24dae178ee6a9cf84fb181faf' }, h("div", Object.assign({ key: '51c1cbdb0bfc0fbba675508fb7e9fafdc6adc8e4', class: "wcs-modal-container", "data-size": this.size, "aria-modal": "true", role: "dialog", "aria-labelledby": modalTitleId, ref: (el) => (this.nativeDivDialog = el) }, this.inheritedAttributes), h("div", { key: 'b62c495d23a0040eb160a93ccf858f7f0f60f83f', class: "wcs-modal-header" }, h("h1", { key: '8ea9cf9b9623305b79ed8f7cab3c2bf7e8ff242d', id: modalTitleId }, h("slot", { key: '972069f3d03047d4c56d8ea3c129f4296de4eb16', name: "header" })), this.showCloseButton && (h("wcs-button", { key: '49bf558d8092030497d29b399efb84c78f1c8748', shape: "round", mode: "clear", id: "wcs-modal-close-button", "aria-label": this.closeButtonAriaLabel, onClick: ($event) => this.onCloseButtonClick($event) }, h("wcs-mat-icon", { key: '1f2354939c40f22c2661a8a7383dfb9416b9c9da', icon: "close" })))), h("div", { key: '8f3fca88fa36f779c3d67f8694bee5a6386346e8', class: "wcs-modal-content" }, h("slot", { key: '4a65490518cbb450e825a9149e8516a3102f8ae3', onSlotchange: () => this.handleSlotContentChange() })), h("div", { key: 'be4cb11ff95787c58c6ac690a46522fcc04a6249', class: "wcs-modal-actions" }, h("slot", { key: '13a989d259e04ecdb1f89fcaafb7ab13898aee71', name: "actions" })))));
|
|
173
173
|
}
|
|
174
174
|
static get is() { return "wcs-modal"; }
|
|
175
175
|
static get originalStyleUrls() {
|
|
@@ -190,7 +190,7 @@ export class NativeSelect {
|
|
|
190
190
|
this._updateStyles();
|
|
191
191
|
}
|
|
192
192
|
render() {
|
|
193
|
-
return (h(Host, { key: '
|
|
193
|
+
return (h(Host, { key: '12431927c41eb386de134e92e5583fc0ff582b44', class: `${this.expanded ? 'expanded' : ''}`, "data-disabled": this.disabled, "data-size": this.size }, h("div", { key: 'b935ff599bc9829b0c771bf5aa13ae3605cddd98', class: "select-wrapper" }, h("slot", { key: 'c02ba432172f6b608f808a6365487b4ec7528a68' }), h("div", { key: '53841e3831eeb19165511caabe0f49e6b0a693d4', class: "arrow-container" }, h(SelectArrow, { key: '6b474db9957a98e8dada3ce4cda752a7299c5bf9', up: this.expanded })))));
|
|
194
194
|
}
|
|
195
195
|
static get is() { return "wcs-native-select"; }
|
|
196
196
|
static get encapsulation() { return "shadow"; }
|
|
@@ -21,7 +21,7 @@ export class Nav {
|
|
|
21
21
|
setOrRemoveAttribute(this.nativeNav, attr, value);
|
|
22
22
|
}
|
|
23
23
|
render() {
|
|
24
|
-
return (h("nav", Object.assign({ key: '
|
|
24
|
+
return (h("nav", Object.assign({ key: '73683911e6d8f624fb152a40e723d1b0920a6265', role: "navigation", class: "wcs-nav-container", ref: (el) => (this.nativeNav = el) }, this.inheritedAttributes), h("div", { key: 'e381eab2ef05be7bf28c3eff3e02034d7605015d', role: "list" }, h("slot", { key: '714a44e78e9d8495e1da0fd3f002e9cf769cdf95' }), h("slot", { key: '570a520fd2f16386c14a250e5786bd97ed3ba293', name: "bottom" }))));
|
|
25
25
|
}
|
|
26
26
|
static get is() { return "wcs-nav"; }
|
|
27
27
|
static get encapsulation() { return "shadow"; }
|
|
@@ -45,7 +45,7 @@ export class NavItem {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
render() {
|
|
48
|
-
return (h(Host, { key: '
|
|
48
|
+
return (h(Host, { key: '3d329f63e895cf09a57e1a0d8304cf833b0ba434', role: "listitem" }, h("slot", { key: 'bc4dadc9a3b665412880da1671aa518d7ecf290f' })));
|
|
49
49
|
}
|
|
50
50
|
static get is() { return "wcs-nav-item"; }
|
|
51
51
|
static get originalStyleUrls() {
|
|
@@ -54,8 +54,8 @@ export class ProgressBar {
|
|
|
54
54
|
const style = {
|
|
55
55
|
width: this.value + '%'
|
|
56
56
|
};
|
|
57
|
-
return (h("div", Object.assign({ key: '
|
|
58
|
-
h("span", { key: '
|
|
57
|
+
return (h("div", Object.assign({ key: 'f13a43d675ed082f811784a998e8bcd54e45a782', class: this.rootClasses(), role: "progressbar", "aria-valuemin": "0", "aria-valuemax": "100", "aria-valuenow": this.value, "aria-valuetext": this.value + '%', ref: (el) => (this.nativeProgress = el) }, this.inheritedAttributes), h("div", { key: '861383fa1ae516512a730cad52d1b9dc2ee55809', class: "progress-bar", style: style }, this.showLabel &&
|
|
58
|
+
h("span", { key: '0f0a9f0ce03562199f6a743f8dc653e276719b37', class: "progress-label" }, this.value, h("sup", { key: '8fa2735668eea7f46562e52748122e2e4fad9908' }, "%")))));
|
|
59
59
|
}
|
|
60
60
|
rootClasses() {
|
|
61
61
|
let classes = 'progress';
|
|
@@ -45,8 +45,8 @@ export class ProgressRadial {
|
|
|
45
45
|
}
|
|
46
46
|
render() {
|
|
47
47
|
const { backgroundImageSize, halfSize } = { backgroundImageSize: this.backgroundImageSize, halfSize: this.backgroundImageSize / 2 };
|
|
48
|
-
return (h("div", Object.assign({ key: '
|
|
49
|
-
h("div", { key: '
|
|
48
|
+
return (h("div", Object.assign({ key: 'cd493dcab22c92a8683a89e394f51abfbabd0781', class: "progress-circle", "data-component": "radial-progress", style: this.getSize(), role: "progressbar", "aria-valuemin": "0", "aria-valuemax": "100", "aria-valuenow": this.value, "aria-valuetext": this.value + '%', ref: (el) => (this.nativeProgress = el) }, this.inheritedAttributes), h("svg", { key: 'e2c4ff80a735815ebbaf051f94108ca5e9a246fa', "data-role": "figure", class: "circle-rail", viewBox: `0 0 ${backgroundImageSize} ${backgroundImageSize}` }, h("circle", { key: '375db58b06b0f2c75dbd390e547ccc81258fdf43', cx: halfSize, cy: halfSize, r: 54, "stroke-width": 12 })), h("svg", { key: '6cf1fe11b1ec49d8f7cc7b1d53819bad47b24e3d', class: "progress-circle-figure", "data-role": "figure", viewBox: `0 0 ${backgroundImageSize} ${backgroundImageSize}`, style: this.getSvgStyle() }, h("circle", { key: '657a8ba78283a98c568eb436d9bfafdebf354934', class: "progress-circle-value", cx: halfSize, cy: halfSize, r: "54", "stroke-width": "12" })), this.showLabel &&
|
|
49
|
+
h("div", { key: '7ac452d83ad4bf88fc1e3d2bf63506e30185d115', class: "progress-circle-label", "data-role": "label" }, h("span", { key: 'e8827e91faeb2b1a36737ba35250ca0e9d64b830' }, h("span", { key: 'de2c9502060d10e020acbdc939efdcae4abc74d8', "data-role": "labelvalue" }, this.value), h("sup", { key: '9c872051b94e6ca06eae6a967c75173a0d03ee9a' }, "%")))));
|
|
50
50
|
}
|
|
51
51
|
getSvgStyle() {
|
|
52
52
|
return {
|
|
@@ -53,6 +53,14 @@
|
|
|
53
53
|
--wcs-radio-option-padding-right: var(--wcs-semantic-spacing-large);
|
|
54
54
|
--wcs-radio-option-padding-bottom: var(--wcs-semantic-spacing-base);
|
|
55
55
|
--wcs-radio-option-padding-left: var(--wcs-semantic-spacing-large);
|
|
56
|
+
/*
|
|
57
|
+
* DO NOT REMOVE:
|
|
58
|
+
* The native input is absolutely positioned.
|
|
59
|
+
* This `position: relative` makes `wcs-radio` its containing block.
|
|
60
|
+
* Without it, the input can be laid out relative to another ancestor higher in the DOM,
|
|
61
|
+
* so when the browser focuses the native control it may scroll the window unexpectedly.
|
|
62
|
+
*/
|
|
63
|
+
position: relative;
|
|
56
64
|
}
|
|
57
65
|
|
|
58
66
|
:host([mode=radio]) input,
|
|
@@ -65,15 +73,15 @@
|
|
|
65
73
|
clip-path: inset(50%);
|
|
66
74
|
white-space: nowrap;
|
|
67
75
|
}
|
|
68
|
-
:host([mode=radio]) label,
|
|
69
|
-
:host([mode=horizontal]) label {
|
|
76
|
+
:host([mode=radio]) .label,
|
|
77
|
+
:host([mode=horizontal]) .label {
|
|
70
78
|
margin-bottom: 0;
|
|
71
79
|
color: var(--wcs-radio-text-color-default);
|
|
72
80
|
font-weight: var(--wcs-radio-text-font-weight-default) !important;
|
|
73
81
|
display: inline-block;
|
|
74
82
|
}
|
|
75
|
-
:host([mode=radio]) label:before,
|
|
76
|
-
:host([mode=horizontal]) label:before {
|
|
83
|
+
:host([mode=radio]) .label:before,
|
|
84
|
+
:host([mode=horizontal]) .label:before {
|
|
77
85
|
border-radius: var(--wcs-radio-checkmark-border-radius);
|
|
78
86
|
border: var(--wcs-radio-checkmark-border-width) solid var(--wcs-radio-checkmark-border-color-default);
|
|
79
87
|
position: relative;
|
|
@@ -83,87 +91,90 @@
|
|
|
83
91
|
content: "";
|
|
84
92
|
background-color: var(--wcs-radio-checkmark-background-color-default);
|
|
85
93
|
}
|
|
86
|
-
|
|
87
|
-
:host(
|
|
94
|
+
|
|
95
|
+
:host(:focus-visible) {
|
|
96
|
+
outline: none;
|
|
97
|
+
}
|
|
98
|
+
:host(:focus-visible) .label {
|
|
88
99
|
transition: none;
|
|
89
100
|
outline: var(--wcs-semantic-border-width-large) dashed var(--wcs-radio-outline-color-focus);
|
|
90
101
|
outline-offset: var(--wcs-semantic-spacing-small);
|
|
91
102
|
border-radius: var(--wcs-radio-border-radius);
|
|
92
103
|
}
|
|
93
104
|
|
|
94
|
-
:host([disabled]) label {
|
|
105
|
+
:host([disabled]) .label {
|
|
95
106
|
color: var(--wcs-radio-text-color-disabled);
|
|
96
107
|
cursor: not-allowed;
|
|
97
108
|
}
|
|
98
|
-
:host([disabled]) label:before {
|
|
109
|
+
:host([disabled]) .label:before {
|
|
99
110
|
border-color: var(--wcs-radio-checkmark-border-color-disabled);
|
|
100
111
|
}
|
|
101
112
|
|
|
102
|
-
:host(:not([disabled])) label {
|
|
113
|
+
:host(:not([disabled])) .label {
|
|
103
114
|
cursor: pointer;
|
|
104
115
|
}
|
|
105
116
|
|
|
106
|
-
:host([mode=radio].checked) label,
|
|
107
|
-
:host([mode=horizontal].checked) label {
|
|
117
|
+
:host([mode=radio].checked) .label,
|
|
118
|
+
:host([mode=horizontal].checked) .label {
|
|
108
119
|
color: var(--wcs-radio-text-color-selected);
|
|
109
120
|
font-weight: var(--wcs-radio-text-font-weight-selected) !important;
|
|
110
121
|
}
|
|
111
|
-
:host([mode=radio].checked) label:before,
|
|
112
|
-
:host([mode=horizontal].checked) label:before {
|
|
122
|
+
:host([mode=radio].checked) .label:before,
|
|
123
|
+
:host([mode=horizontal].checked) .label:before {
|
|
113
124
|
border-color: var(--wcs-radio-checkmark-border-color-selected);
|
|
114
125
|
background-color: var(--wcs-radio-checkmark-background-color-selected);
|
|
115
126
|
outline: solid var(--wcs-radio-checkmark-outline-width) var(--wcs-radio-checkmark-outline-color);
|
|
116
127
|
outline-offset: calc(-1 * var(--wcs-radio-checkmark-outline-distance-with-checkmark-circle));
|
|
117
128
|
}
|
|
118
129
|
|
|
119
|
-
:host([mode=radio][disabled].checked) label,
|
|
120
|
-
:host([mode=horizontal][disabled].checked) label {
|
|
130
|
+
:host([mode=radio][disabled].checked) .label,
|
|
131
|
+
:host([mode=horizontal][disabled].checked) .label {
|
|
121
132
|
color: var(--wcs-radio-text-color-disabled);
|
|
122
133
|
}
|
|
123
|
-
:host([mode=radio][disabled].checked) label:before,
|
|
124
|
-
:host([mode=horizontal][disabled].checked) label:before {
|
|
134
|
+
:host([mode=radio][disabled].checked) .label:before,
|
|
135
|
+
:host([mode=horizontal][disabled].checked) .label:before {
|
|
125
136
|
border-color: var(--wcs-radio-checkmark-border-color-disabled);
|
|
126
137
|
background-color: var(--wcs-radio-checkmark-background-color-selected-disabled);
|
|
127
138
|
}
|
|
128
139
|
|
|
129
|
-
:host([mode=radio]:hover:not([disabled])) label,
|
|
130
|
-
:host([mode=horizontal]:hover:not([disabled])) label {
|
|
140
|
+
:host([mode=radio]:hover:not([disabled])) .label,
|
|
141
|
+
:host([mode=horizontal]:hover:not([disabled])) .label {
|
|
131
142
|
color: var(--wcs-radio-text-color-hover);
|
|
132
143
|
}
|
|
133
|
-
:host([mode=radio]:hover:not([disabled])) label:before,
|
|
134
|
-
:host([mode=horizontal]:hover:not([disabled])) label:before {
|
|
144
|
+
:host([mode=radio]:hover:not([disabled])) .label:before,
|
|
145
|
+
:host([mode=horizontal]:hover:not([disabled])) .label:before {
|
|
135
146
|
border-color: var(--wcs-radio-checkmark-border-color-hover);
|
|
136
147
|
background-color: var(--wcs-radio-checkmark-background-color-selected-hover);
|
|
137
148
|
}
|
|
138
149
|
|
|
139
|
-
:host([mode=radio]:hover:not([disabled]):not(.checked)) label:before,
|
|
140
|
-
:host([mode=horizontal]:hover:not([disabled]):not(.checked)) label:before {
|
|
150
|
+
:host([mode=radio]:hover:not([disabled]):not(.checked)) .label:before,
|
|
151
|
+
:host([mode=horizontal]:hover:not([disabled]):not(.checked)) .label:before {
|
|
141
152
|
background-color: var(--wcs-radio-checkmark-background-color-default);
|
|
142
153
|
}
|
|
143
154
|
|
|
144
|
-
:host([mode=radio]) label {
|
|
155
|
+
:host([mode=radio]) .label {
|
|
145
156
|
border: none;
|
|
146
157
|
}
|
|
147
|
-
:host([mode=radio]) label:before {
|
|
158
|
+
:host([mode=radio]) .label:before {
|
|
148
159
|
transition: background-color var(--wcs-radio-transition-duration) ease-in-out;
|
|
149
160
|
margin-right: var(--wcs-radio-gap);
|
|
150
161
|
display: inline-block;
|
|
151
162
|
top: 3px;
|
|
152
163
|
box-sizing: border-box;
|
|
153
164
|
}
|
|
154
|
-
:host([mode=radio]) label:empty::before {
|
|
165
|
+
:host([mode=radio]) .label:empty::before {
|
|
155
166
|
margin-right: 0;
|
|
156
167
|
}
|
|
157
168
|
|
|
158
169
|
:host([mode=horizontal]) {
|
|
159
170
|
height: fit-content;
|
|
160
171
|
}
|
|
161
|
-
:host([mode=horizontal]) label:before {
|
|
172
|
+
:host([mode=horizontal]) .label:before {
|
|
162
173
|
transition: background-color var(--wcs-radio-transition-duration) ease-in-out;
|
|
163
174
|
margin: auto auto var(--wcs-radio-gap);
|
|
164
175
|
display: block;
|
|
165
176
|
}
|
|
166
|
-
:host([mode=horizontal]) label:empty::before {
|
|
177
|
+
:host([mode=horizontal]) .label:empty::before {
|
|
167
178
|
margin-bottom: 0;
|
|
168
179
|
}
|
|
169
180
|
|
|
@@ -177,7 +188,7 @@
|
|
|
177
188
|
box-sizing: border-box;
|
|
178
189
|
padding: 0;
|
|
179
190
|
}
|
|
180
|
-
:host([mode=option]) label {
|
|
191
|
+
:host([mode=option]) .label {
|
|
181
192
|
padding: var(--wcs-radio-option-padding-top) var(--wcs-radio-option-padding-right) var(--wcs-radio-option-padding-bottom) var(--wcs-radio-option-padding-left);
|
|
182
193
|
margin-bottom: 0;
|
|
183
194
|
color: var(--wcs-radio-option-text-color-default);
|
|
@@ -186,45 +197,45 @@
|
|
|
186
197
|
transition: background-color var(--wcs-radio-transition-duration) ease-in-out;
|
|
187
198
|
background-color: var(--wcs-radio-option-background-color-default);
|
|
188
199
|
}
|
|
189
|
-
:host([mode=option]) input:focus-visible + label {
|
|
200
|
+
:host([mode=option]) input:focus-visible + .label {
|
|
190
201
|
outline: var(--wcs-semantic-border-width-large) dashed var(--wcs-radio-outline-color-focus);
|
|
191
202
|
outline-offset: 0;
|
|
192
203
|
border-radius: var(--wcs-radio-border-radius);
|
|
193
204
|
}
|
|
194
205
|
|
|
195
|
-
:host([mode=option][disabled]) label {
|
|
206
|
+
:host([mode=option][disabled]) .label {
|
|
196
207
|
color: var(--wcs-radio-option-text-color-disabled);
|
|
197
208
|
background-color: var(--wcs-radio-option-background-color-disabled);
|
|
198
209
|
}
|
|
199
210
|
|
|
200
|
-
:host([mode=option][disabled].checked) label {
|
|
211
|
+
:host([mode=option][disabled].checked) .label {
|
|
201
212
|
color: var(--wcs-radio-option-text-color-disabled);
|
|
202
213
|
background-color: var(--wcs-radio-option-background-color-selected-disabled);
|
|
203
214
|
}
|
|
204
215
|
|
|
205
|
-
:host([mode=option].checked) label {
|
|
216
|
+
:host([mode=option].checked) .label {
|
|
206
217
|
font-weight: var(--wcs-radio-option-text-font-weight-selected) !important;
|
|
207
218
|
color: var(--wcs-radio-option-text-color-selected-default);
|
|
208
219
|
background-color: var(--wcs-radio-option-background-color-selected-default);
|
|
209
220
|
}
|
|
210
221
|
|
|
211
|
-
:host([mode=option]:hover.checked:not([disabled])) label {
|
|
222
|
+
:host([mode=option]:hover.checked:not([disabled])) .label {
|
|
212
223
|
color: var(--wcs-radio-option-text-color-selected-hover);
|
|
213
224
|
background-color: var(--wcs-radio-option-background-color-selected-hover);
|
|
214
225
|
}
|
|
215
226
|
|
|
216
|
-
:host([mode=option]:active.checked:not([disabled])) label {
|
|
227
|
+
:host([mode=option]:active.checked:not([disabled])) .label {
|
|
217
228
|
color: var(--wcs-radio-option-text-color-selected-press);
|
|
218
229
|
background-color: var(--wcs-radio-option-background-color-selected-press);
|
|
219
230
|
}
|
|
220
231
|
|
|
221
|
-
:host([mode=option]:hover:not(.checked):not([disabled])) label {
|
|
232
|
+
:host([mode=option]:hover:not(.checked):not([disabled])) .label {
|
|
222
233
|
color: var(--wcs-radio-option-text-color-hover);
|
|
223
234
|
background-color: var(--wcs-radio-option-background-color-hover);
|
|
224
235
|
outline: var(--wcs-radio-option-border-width) solid var(--wcs-radio-option-border-color-hover);
|
|
225
236
|
}
|
|
226
237
|
|
|
227
|
-
:host([mode=option]:active:not(.checked):not([disabled])) label {
|
|
238
|
+
:host([mode=option]:active:not(.checked):not([disabled])) .label {
|
|
228
239
|
color: var(--wcs-radio-option-text-color-press);
|
|
229
240
|
background-color: var(--wcs-radio-option-background-color-press);
|
|
230
241
|
outline: var(--wcs-radio-option-border-width) solid var(--wcs-radio-option-border-color-press);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
|
-
import {
|
|
3
|
-
const RADIO_INHERITED_ATTRS = ['title'];
|
|
2
|
+
import { setOrRemoveAttribute } from "../../utils/helpers";
|
|
4
3
|
/**
|
|
5
4
|
* The radio component should always be wrapped in a `wcs-radio-group`.
|
|
6
5
|
*
|
|
@@ -69,8 +68,18 @@ const RADIO_INHERITED_ATTRS = ['title'];
|
|
|
69
68
|
*/
|
|
70
69
|
export class Radio {
|
|
71
70
|
constructor() {
|
|
72
|
-
this.
|
|
73
|
-
|
|
71
|
+
this.handleClick = () => {
|
|
72
|
+
this.selectRadio();
|
|
73
|
+
};
|
|
74
|
+
this.handleKeyDown = (event) => {
|
|
75
|
+
if (this.disabled)
|
|
76
|
+
return;
|
|
77
|
+
if (event.key === ' ' || event.key === 'Enter') {
|
|
78
|
+
event.preventDefault();
|
|
79
|
+
event.stopPropagation();
|
|
80
|
+
this.selectRadio();
|
|
81
|
+
}
|
|
82
|
+
};
|
|
74
83
|
this.checked = false;
|
|
75
84
|
this.radioTabIndex = -1;
|
|
76
85
|
this.value = undefined;
|
|
@@ -94,7 +103,7 @@ export class Radio {
|
|
|
94
103
|
this.radioTabIndex = value;
|
|
95
104
|
}
|
|
96
105
|
async setAriaAttribute(attr, value) {
|
|
97
|
-
setOrRemoveAttribute(this.
|
|
106
|
+
setOrRemoveAttribute(this.el, attr, value);
|
|
98
107
|
}
|
|
99
108
|
onFocus(ev) {
|
|
100
109
|
this.wcsFocus.emit(ev);
|
|
@@ -110,18 +119,6 @@ export class Radio {
|
|
|
110
119
|
// If no value was given we use the text content instead.
|
|
111
120
|
this.value = this.el.innerText || '';
|
|
112
121
|
}
|
|
113
|
-
this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, RADIO_INHERITED_ATTRS));
|
|
114
|
-
}
|
|
115
|
-
onChange(_) {
|
|
116
|
-
if (this.disabled)
|
|
117
|
-
return;
|
|
118
|
-
// If the radio is unchecked, then the change represents its transition to the check state.
|
|
119
|
-
// Only emit the change event when going from unchecked to checked, like the native behavior.
|
|
120
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event
|
|
121
|
-
if (!this.checked) {
|
|
122
|
-
this.checked = true;
|
|
123
|
-
this.emitRadioChangeEvent();
|
|
124
|
-
}
|
|
125
122
|
}
|
|
126
123
|
emitRadioChangeEvent() {
|
|
127
124
|
this.wcsRadioClick.emit({
|
|
@@ -130,12 +127,20 @@ export class Radio {
|
|
|
130
127
|
value: this.value
|
|
131
128
|
});
|
|
132
129
|
}
|
|
130
|
+
selectRadio() {
|
|
131
|
+
if (this.disabled || this.checked) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
this.checked = true;
|
|
135
|
+
// Only emit the change event when going from unchecked to checked, like the native behavior.
|
|
136
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event
|
|
137
|
+
this.emitRadioChangeEvent();
|
|
138
|
+
}
|
|
133
139
|
render() {
|
|
134
|
-
return (h(Host, { key: '
|
|
140
|
+
return (h(Host, { key: '0720e7983a66998bef080116aec041f3309d70dd', slot: "option", role: "radio", "aria-checked": this.checked ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', tabIndex: this.disabled ? -1 : this.radioTabIndex, class: this.checked ? 'checked' : '', onClick: this.handleClick.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), onKeyDown: this.handleKeyDown.bind(this) }, h("span", { key: 'bb2fb56fa6c5354a54b4debba078b0c129534e74', class: "label" }, this.label)));
|
|
135
141
|
}
|
|
136
142
|
static get is() { return "wcs-radio"; }
|
|
137
143
|
static get encapsulation() { return "shadow"; }
|
|
138
|
-
static get delegatesFocus() { return true; }
|
|
139
144
|
static get originalStyleUrls() {
|
|
140
145
|
return {
|
|
141
146
|
"$": ["radio.scss"]
|
|
@@ -399,5 +404,4 @@ export class Radio {
|
|
|
399
404
|
}
|
|
400
405
|
static get elementRef() { return "el"; }
|
|
401
406
|
}
|
|
402
|
-
let radioButtonIds = 0;
|
|
403
407
|
//# sourceMappingURL=radio.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio.js","sourceRoot":"","sources":["../../../src/components/radio/radio.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State\n} from '@stencil/core';\nimport { RadioChosedEvent } from './radio-interface';\nimport { RadioGroupMode } from '../radio-group/radio-group-interface';\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\nconst RADIO_INHERITED_ATTRS = ['title'];\n\n/**\n * The radio component should always be wrapped in a `wcs-radio-group`.\n * \n * @cssprop --wcs-radio-transition-duration - Duration of the transition\n * \n * @cssprop --wcs-radio-text-color-default - Color of the text when the radio is not selected\n * @cssprop --wcs-radio-text-font-weight-default - Default font weight of the text\n * @cssprop --wcs-radio-text-color-selected - Color of the text when the radio is selected\n * @cssprop --wcs-radio-text-font-weight-selected - Font weight of the text when the radio is selected\n * @cssprop --wcs-radio-text-color-disabled - Color of the text when the radio is disabled\n * @cssprop --wcs-radio-text-color-hover - Color of the text when the radio is hovered\n * \n * @cssprop --wcs-radio-outline-color-focus - Color of the outline when the radio is focused\n * \n * @cssprop --wcs-radio-checkmark-size - Size of the checkmark circle\n * @cssprop --wcs-radio-checkmark-border-width - Width of the border of the checkmark circle\n * @cssprop --wcs-radio-checkmark-border-color-default - Color of the border of the checkmark circle when the radio's is not selected\n * @cssprop --wcs-radio-checkmark-border-color-selected - Color of the border of the checkmark circle when the radio is selected\n * @cssprop --wcs-radio-checkmark-border-color-hover - Color of the border of the checkmark circle when the radio is hovered\n * @cssprop --wcs-radio-checkmark-border-color-disabled - Color of the border of the checkmark circle when the radio is disabled\n * @cssprop --wcs-radio-checkmark-background-color-default - Background color of the checkmark circle when the radio's is not selected\n * @cssprop --wcs-radio-checkmark-background-color-selected - Background color of the checkmark circle when the radio's is selected\n * @cssprop --wcs-radio-checkmark-background-color-selected-disabled - Background color of the checkmark circle when the radio is selected and disabled\n * @cssprop --wcs-radio-checkmark-background-color-selected-hover - Background color of the checkmark circle when the radio is selected and hovered\n *\n * @cssprop --wcs-radio-checkmark-outline-distance-with-checkmark-circle - Distance between the checkmark circle and the outline (inside the background)\n * @cssprop --wcs-radio-checkmark-outline-width - Width of the outline of the checkmark circle (inside the background)\n * @cssprop --wcs-radio-checkmark-outline-color - Color of the outline of the checkmark circle (inside the background)\n * @cssprop --wcs-radio-checkmark-border-radius - Border radius of the checkmark circle\n * \n * @cssprop --wcs-radio-gap - Gap between the radio checkmark circle and the label\n * \n * @cssprop --wcs-radio-border-radius - Border radius of the radio (default mode)\n *\n * @cssprop --wcs-radio-option-background-color-default - Background color of the radio option when not selected\n * @cssprop --wcs-radio-option-background-color-hover - Background color of the radio option not selected when hovered\n * @cssprop --wcs-radio-option-background-color-press - Background color of the radio option when pressed\n * @cssprop --wcs-radio-option-background-color-disabled - Background color of the radio option when disabled\n * \n * @cssprop --wcs-radio-option-background-color-selected-default - Background color of the radio option when selected\n * @cssprop --wcs-radio-option-background-color-selected-hover - Background color of the radio option when selected and hovered\n * @cssprop --wcs-radio-option-background-color-selected-press - Background color of the radio option when selected and pressed\n * @cssprop --wcs-radio-option-background-color-selected-disabled - Background color of the radio option when selected and disabled\n * \n * @cssprop --wcs-radio-option-text-color-default - Color of the text when the radio option is not selected\n * @cssprop --wcs-radio-option-text-color-hover - Color of the text when the radio option not selected is hovered\n * @cssprop --wcs-radio-option-text-color-press - Color of the text when the radio option is pressed\n * \n * @cssprop --wcs-radio-option-text-color-selected-default - Color of the text when the radio option is selected\n * @cssprop --wcs-radio-option-text-color-selected-hover - Color of the text when the radio option is selected and hovered\n * @cssprop --wcs-radio-option-text-color-selected-press - Color of the text when the radio option is selected and pressed\n * @cssprop --wcs-radio-option-text-color-disabled - Color of the text when the radio option's is disabled\n * \n * @cssprop --wcs-radio-option-text-font-weight-default - Default font weight of the text\n * @cssprop --wcs-radio-option-text-font-weight-selected - Font weight of the text when the radio option is selected\n *\n * @cssprop --wcs-radio-option-border-radius - Border radius of the radio option\n * @cssprop --wcs-radio-option-border-width - Width of the border of the radio option\n * @cssprop --wcs-radio-option-border-color-hover - Color of the border of the radio option when not selected and hovered\n * @cssprop --wcs-radio-option-border-color-press - Color of the border of the radio option when not selected and pressed\n * \n * @cssprop --wcs-radio-option-padding-top - Padding top of the radio option\n * @cssprop --wcs-radio-option-padding-right - Padding right of the radio option\n * @cssprop --wcs-radio-option-padding-bottom - Padding bottom of the radio option\n * @cssprop --wcs-radio-option-padding-left - Padding left of the radio option\n */\n@Component({\n tag: 'wcs-radio',\n styleUrl: 'radio.scss',\n shadow: {\n delegatesFocus: true\n }\n})\nexport class Radio implements ComponentInterface, MutableAriaAttribute {\n private inputId = `wcs-rb-${radioButtonIds++}`;\n @Element() private el!: HTMLWcsRadioElement;\n private nativeRadio!: HTMLInputElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n /**\n * If `true`, the radio is selected. \n * @private\n */\n @State() private checked: boolean = false;\n\n /**\n * The tabindex of the radio button\n * @private\n */\n @State() private radioTabIndex = -1;\n\n /**\n * Sets a unique value for each radio, used to identify which radio button in a group is selected\n */\n @Prop({ mutable: true, reflect: true }) value: any | any[] | undefined | null;\n\n /**\n * The label text displayed for the user\n */\n @Prop({ mutable: true, reflect: true }) label: string;\n \n /**\n * If `true`, the user cannot interact with the radio.\n */\n @Prop({ reflect: true, mutable: true }) disabled: boolean = false;\n\n /**\n * Emitted when the radio is clicked or Space/Enter is pressed above an unchecked radio\n */\n @Event({ eventName: 'wcsRadioClick' }) wcsRadioClick: EventEmitter<RadioChosedEvent>\n\n /**\n * Emitted when the radio loses focus.\n */\n @Event() wcsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the radio has focus.\n */\n @Event() wcsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * The name of the control, automatically set by the radio group. \n * (You shouldn't set this prop by yourself)\n * @internal\n */\n @Prop({ mutable: true }) name: string;\n\n\n /**\n * The display mode of the control, automatically set by the radio group. \n * (You shouldn't set this prop by yourself)\n * @internal\n */\n @Prop({ reflect: true, mutable: false }) mode: RadioGroupMode = 'radio';\n\n /**\n * @internal\n * Checks of unchecks the radio according to it's radio-group value\n */\n @Method()\n async updateState() {\n const radioGroup = this.getClosestRadioGroup();\n if (radioGroup) {\n this.checked = radioGroup.name === this.name && radioGroup.value === this.value\n }\n }\n\n /** @internal */\n @Method()\n async setTabIndex(value: number) {\n this.radioTabIndex = value;\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeRadio, attr, value);\n }\n\n onFocus(ev: FocusEvent) {\n this.wcsFocus.emit(ev);\n }\n\n onBlur(ev: FocusEvent) {\n this.wcsBlur.emit(ev);\n }\n \n private getClosestRadioGroup(): HTMLWcsRadioGroupElement | null {\n return this.el.closest('wcs-radio-group');\n }\n\n componentWillLoad(): Promise<void> | void {\n if (this.value === undefined) {\n // If no value was given we use the text content instead.\n this.value = this.el.innerText || '';\n }\n \n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, RADIO_INHERITED_ATTRS),\n };\n }\n \n private onChange(_: Event) {\n if (this.disabled) return;\n\n // If the radio is unchecked, then the change represents its transition to the check state.\n // Only emit the change event when going from unchecked to checked, like the native behavior.\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n if (!this.checked) {\n this.checked = true;\n this.emitRadioChangeEvent();\n }\n }\n\n emitRadioChangeEvent() {\n this.wcsRadioClick.emit({\n label: this.label,\n source: this.el,\n value: this.value\n });\n }\n\n render() {\n \n return (\n <Host slot=\"option\"\n tabIndex={this.disabled ? -1 : this.radioTabIndex}\n class={this.checked ? 'checked' : ''}>\n <input\n id={this.inputId}\n type=\"radio\"\n name={this.name}\n value={this.value}\n checked={this.checked} // Initial checked state of native input\n disabled={this.disabled}\n onChange={this.onChange.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n aria-disabled={this.disabled ? 'true' : null}\n aria-checked={`${this.checked}`}\n ref={(el) => (this.nativeRadio = el)}\n {...this.inheritedAttributes}\n />\n <label htmlFor={`${this.inputId}`}>{this.label}</label>\n </Host>\n );\n }\n}\n\nlet radioButtonIds = 0;\n"]}
|
|
1
|
+
{"version":3,"file":"radio.js","sourceRoot":"","sources":["../../../src/components/radio/radio.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State\n} from '@stencil/core';\nimport { RadioChosedEvent } from './radio-interface';\nimport { RadioGroupMode } from '../radio-group/radio-group-interface';\nimport { setOrRemoveAttribute } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\n/**\n * The radio component should always be wrapped in a `wcs-radio-group`.\n * \n * @cssprop --wcs-radio-transition-duration - Duration of the transition\n * \n * @cssprop --wcs-radio-text-color-default - Color of the text when the radio is not selected\n * @cssprop --wcs-radio-text-font-weight-default - Default font weight of the text\n * @cssprop --wcs-radio-text-color-selected - Color of the text when the radio is selected\n * @cssprop --wcs-radio-text-font-weight-selected - Font weight of the text when the radio is selected\n * @cssprop --wcs-radio-text-color-disabled - Color of the text when the radio is disabled\n * @cssprop --wcs-radio-text-color-hover - Color of the text when the radio is hovered\n * \n * @cssprop --wcs-radio-outline-color-focus - Color of the outline when the radio is focused\n * \n * @cssprop --wcs-radio-checkmark-size - Size of the checkmark circle\n * @cssprop --wcs-radio-checkmark-border-width - Width of the border of the checkmark circle\n * @cssprop --wcs-radio-checkmark-border-color-default - Color of the border of the checkmark circle when the radio's is not selected\n * @cssprop --wcs-radio-checkmark-border-color-selected - Color of the border of the checkmark circle when the radio is selected\n * @cssprop --wcs-radio-checkmark-border-color-hover - Color of the border of the checkmark circle when the radio is hovered\n * @cssprop --wcs-radio-checkmark-border-color-disabled - Color of the border of the checkmark circle when the radio is disabled\n * @cssprop --wcs-radio-checkmark-background-color-default - Background color of the checkmark circle when the radio's is not selected\n * @cssprop --wcs-radio-checkmark-background-color-selected - Background color of the checkmark circle when the radio's is selected\n * @cssprop --wcs-radio-checkmark-background-color-selected-disabled - Background color of the checkmark circle when the radio is selected and disabled\n * @cssprop --wcs-radio-checkmark-background-color-selected-hover - Background color of the checkmark circle when the radio is selected and hovered\n *\n * @cssprop --wcs-radio-checkmark-outline-distance-with-checkmark-circle - Distance between the checkmark circle and the outline (inside the background)\n * @cssprop --wcs-radio-checkmark-outline-width - Width of the outline of the checkmark circle (inside the background)\n * @cssprop --wcs-radio-checkmark-outline-color - Color of the outline of the checkmark circle (inside the background)\n * @cssprop --wcs-radio-checkmark-border-radius - Border radius of the checkmark circle\n * \n * @cssprop --wcs-radio-gap - Gap between the radio checkmark circle and the label\n * \n * @cssprop --wcs-radio-border-radius - Border radius of the radio (default mode)\n *\n * @cssprop --wcs-radio-option-background-color-default - Background color of the radio option when not selected\n * @cssprop --wcs-radio-option-background-color-hover - Background color of the radio option not selected when hovered\n * @cssprop --wcs-radio-option-background-color-press - Background color of the radio option when pressed\n * @cssprop --wcs-radio-option-background-color-disabled - Background color of the radio option when disabled\n * \n * @cssprop --wcs-radio-option-background-color-selected-default - Background color of the radio option when selected\n * @cssprop --wcs-radio-option-background-color-selected-hover - Background color of the radio option when selected and hovered\n * @cssprop --wcs-radio-option-background-color-selected-press - Background color of the radio option when selected and pressed\n * @cssprop --wcs-radio-option-background-color-selected-disabled - Background color of the radio option when selected and disabled\n * \n * @cssprop --wcs-radio-option-text-color-default - Color of the text when the radio option is not selected\n * @cssprop --wcs-radio-option-text-color-hover - Color of the text when the radio option not selected is hovered\n * @cssprop --wcs-radio-option-text-color-press - Color of the text when the radio option is pressed\n * \n * @cssprop --wcs-radio-option-text-color-selected-default - Color of the text when the radio option is selected\n * @cssprop --wcs-radio-option-text-color-selected-hover - Color of the text when the radio option is selected and hovered\n * @cssprop --wcs-radio-option-text-color-selected-press - Color of the text when the radio option is selected and pressed\n * @cssprop --wcs-radio-option-text-color-disabled - Color of the text when the radio option's is disabled\n * \n * @cssprop --wcs-radio-option-text-font-weight-default - Default font weight of the text\n * @cssprop --wcs-radio-option-text-font-weight-selected - Font weight of the text when the radio option is selected\n *\n * @cssprop --wcs-radio-option-border-radius - Border radius of the radio option\n * @cssprop --wcs-radio-option-border-width - Width of the border of the radio option\n * @cssprop --wcs-radio-option-border-color-hover - Color of the border of the radio option when not selected and hovered\n * @cssprop --wcs-radio-option-border-color-press - Color of the border of the radio option when not selected and pressed\n * \n * @cssprop --wcs-radio-option-padding-top - Padding top of the radio option\n * @cssprop --wcs-radio-option-padding-right - Padding right of the radio option\n * @cssprop --wcs-radio-option-padding-bottom - Padding bottom of the radio option\n * @cssprop --wcs-radio-option-padding-left - Padding left of the radio option\n */\n@Component({\n tag: 'wcs-radio',\n styleUrl: 'radio.scss',\n shadow: true\n})\nexport class Radio implements ComponentInterface, MutableAriaAttribute {\n @Element() private readonly el!: HTMLWcsRadioElement;\n \n /**\n * If `true`, the radio is selected. \n * @private\n */\n @State() private checked: boolean = false;\n\n /**\n * The tabindex of the radio button\n * @private\n */\n @State() private radioTabIndex = -1;\n\n /**\n * Sets a unique value for each radio, used to identify which radio button in a group is selected\n */\n @Prop({ mutable: true, reflect: true }) value: any | any[] | undefined | null;\n\n /**\n * The label text displayed for the user\n */\n @Prop({ mutable: true, reflect: true }) label: string;\n \n /**\n * If `true`, the user cannot interact with the radio.\n */\n @Prop({ reflect: true, mutable: true }) disabled: boolean = false;\n\n /**\n * Emitted when the radio is clicked or Space/Enter is pressed above an unchecked radio\n */\n @Event({ eventName: 'wcsRadioClick' }) wcsRadioClick: EventEmitter<RadioChosedEvent>\n\n /**\n * Emitted when the radio loses focus.\n */\n @Event() wcsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the radio has focus.\n */\n @Event() wcsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * The name of the control, automatically set by the radio group. \n * (You shouldn't set this prop by yourself)\n * @internal\n */\n @Prop({ mutable: true }) name: string;\n\n\n /**\n * The display mode of the control, automatically set by the radio group. \n * (You shouldn't set this prop by yourself)\n * @internal\n */\n @Prop({ reflect: true, mutable: false }) mode: RadioGroupMode = 'radio';\n\n /**\n * @internal\n * Checks of unchecks the radio according to it's radio-group value\n */\n @Method()\n async updateState() {\n const radioGroup = this.getClosestRadioGroup();\n if (radioGroup) {\n this.checked = radioGroup.name === this.name && radioGroup.value === this.value\n }\n }\n\n /** @internal */\n @Method()\n async setTabIndex(value: number) {\n this.radioTabIndex = value;\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.el, attr, value);\n }\n\n onFocus(ev: FocusEvent) {\n this.wcsFocus.emit(ev);\n }\n\n onBlur(ev: FocusEvent) {\n this.wcsBlur.emit(ev);\n }\n \n private getClosestRadioGroup(): HTMLWcsRadioGroupElement | null {\n return this.el.closest('wcs-radio-group');\n }\n\n componentWillLoad(): Promise<void> | void {\n if (this.value === undefined) {\n // If no value was given we use the text content instead.\n this.value = this.el.innerText || '';\n }\n }\n\n emitRadioChangeEvent() {\n this.wcsRadioClick.emit({\n label: this.label,\n source: this.el,\n value: this.value\n });\n }\n\n private selectRadio() {\n if (this.disabled || this.checked) {\n return;\n }\n\n this.checked = true;\n // Only emit the change event when going from unchecked to checked, like the native behavior.\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n this.emitRadioChangeEvent();\n }\n\n private readonly handleClick = () => {\n this.selectRadio();\n };\n\n private readonly handleKeyDown = (event: KeyboardEvent) => {\n if (this.disabled) return;\n\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n this.selectRadio();\n }\n };\n\n render() {\n \n return (\n <Host slot=\"option\"\n role=\"radio\"\n aria-checked={this.checked ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n tabIndex={this.disabled ? -1 : this.radioTabIndex}\n class={this.checked ? 'checked' : ''}\n onClick={this.handleClick.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n onKeyDown={this.handleKeyDown.bind(this)}>\n <span class=\"label\">{this.label}</span>\n </Host>\n );\n }\n}\n"]}
|