@govtechsg/sgds-web-component 3.0.0-rc.1 → 3.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/base/button.js +1 -1
- package/base/form-control-element.d.ts +4 -11
- package/base/form-control-element.js +13 -23
- package/base/form-control-element.js.map +1 -1
- package/components/Accordion/accordion-item.js +1 -1
- package/components/Accordion/index.umd.js +7 -19
- package/components/Accordion/index.umd.js.map +1 -1
- package/components/Accordion/sgds-accordion-item.d.ts +3 -7
- package/components/Accordion/sgds-accordion-item.js +6 -18
- package/components/Accordion/sgds-accordion-item.js.map +1 -1
- package/components/ActionCard/index.umd.js +407 -329
- package/components/ActionCard/index.umd.js.map +1 -1
- package/components/Alert/alert.js +1 -1
- package/components/Alert/index.umd.js +553 -485
- package/components/Alert/index.umd.js.map +1 -1
- package/components/Alert/sgds-alert.d.ts +2 -2
- package/components/Alert/sgds-alert.js +6 -13
- package/components/Alert/sgds-alert.js.map +1 -1
- package/components/Badge/badge.js +1 -1
- package/components/Badge/index.umd.js +8 -9
- package/components/Badge/index.umd.js.map +1 -1
- package/components/Badge/sgds-badge.d.ts +4 -5
- package/components/Badge/sgds-badge.js +5 -6
- package/components/Badge/sgds-badge.js.map +1 -1
- package/components/Button/index.umd.js +8 -81
- package/components/Button/index.umd.js.map +1 -1
- package/components/Button/sgds-button.js +1 -1
- package/components/Button/sgds-button.js.map +1 -1
- package/components/Checkbox/checkbox.js +1 -1
- package/components/Checkbox/index.umd.js +541 -475
- package/components/Checkbox/index.umd.js.map +1 -1
- package/components/Checkbox/sgds-checkbox-group.d.ts +7 -1
- package/components/Checkbox/sgds-checkbox-group.js +15 -4
- package/components/Checkbox/sgds-checkbox-group.js.map +1 -1
- package/components/Checkbox/sgds-checkbox.d.ts +30 -21
- package/components/Checkbox/sgds-checkbox.js +77 -60
- package/components/Checkbox/sgds-checkbox.js.map +1 -1
- package/components/ComboBox/index.umd.js +385 -216
- package/components/ComboBox/index.umd.js.map +1 -1
- package/components/Datepicker/datepicker-input.d.ts +4 -2
- package/components/Datepicker/datepicker-input.js +24 -7
- package/components/Datepicker/datepicker-input.js.map +1 -1
- package/components/Datepicker/index.umd.js +433 -244
- package/components/Datepicker/index.umd.js.map +1 -1
- package/components/Datepicker/sgds-datepicker.d.ts +1 -1
- package/components/Datepicker/sgds-datepicker.js.map +1 -1
- package/components/Drawer/index.umd.js +2 -2
- package/components/Drawer/index.umd.js.map +1 -1
- package/components/Dropdown/index.umd.js +8 -81
- package/components/Dropdown/index.umd.js.map +1 -1
- package/components/FileUpload/file-upload.js +1 -1
- package/components/FileUpload/index.umd.js +579 -272
- package/components/FileUpload/index.umd.js.map +1 -1
- package/components/FileUpload/sgds-file-upload.d.ts +42 -30
- package/components/FileUpload/sgds-file-upload.js +147 -103
- package/components/FileUpload/sgds-file-upload.js.map +1 -1
- package/components/Footer/footer-item.js +6 -0
- package/components/Footer/footer-item.js.map +1 -0
- package/components/Footer/footer.js +1 -1
- package/components/Footer/index.d.ts +2 -0
- package/components/Footer/index.js +2 -0
- package/components/Footer/index.js.map +1 -1
- package/components/Footer/index.umd.js +93 -94
- package/components/Footer/index.umd.js.map +1 -1
- package/components/Footer/sgds-footer-item.d.ts +13 -0
- package/components/Footer/sgds-footer-item.js +27 -0
- package/components/Footer/sgds-footer-item.js.map +1 -0
- package/components/Footer/sgds-footer.d.ts +9 -30
- package/components/Footer/sgds-footer.js +65 -90
- package/components/Footer/sgds-footer.js.map +1 -1
- package/components/Icon/icon.js +6 -0
- package/components/Icon/icon.js.map +1 -0
- package/components/Icon/index.d.ts +6 -0
- package/components/Icon/index.js +4 -0
- package/components/Icon/index.js.map +1 -0
- package/components/Icon/index.umd.js +4389 -0
- package/components/Icon/index.umd.js.map +1 -0
- package/components/Icon/sgds-icon.d.ts +21 -0
- package/components/Icon/sgds-icon.js +64 -0
- package/components/Icon/sgds-icon.js.map +1 -0
- package/components/IconButton/icon-button.js +1 -1
- package/components/IconButton/index.umd.js +6 -9
- package/components/IconButton/index.umd.js.map +1 -1
- package/components/IconButton/sgds-icon-button.d.ts +2 -2
- package/components/IconButton/sgds-icon-button.js +4 -9
- package/components/IconButton/sgds-icon-button.js.map +1 -1
- package/components/Input/index.umd.js +1734 -1376
- package/components/Input/index.umd.js.map +1 -1
- package/components/Input/sgds-input.d.ts +41 -21
- package/components/Input/sgds-input.js +103 -66
- package/components/Input/sgds-input.js.map +1 -1
- package/components/Modal/index.umd.js +2 -2
- package/components/Modal/index.umd.js.map +1 -1
- package/components/QuantityToggle/index.umd.js +894 -316
- package/components/QuantityToggle/index.umd.js.map +1 -1
- package/components/QuantityToggle/sgds-quantity-toggle.d.ts +42 -15
- package/components/QuantityToggle/sgds-quantity-toggle.js +129 -62
- package/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
- package/components/Radio/index.umd.js +516 -203
- package/components/Radio/index.umd.js.map +1 -1
- package/components/Radio/sgds-radio-group.d.ts +38 -27
- package/components/Radio/sgds-radio-group.js +100 -84
- package/components/Radio/sgds-radio-group.js.map +1 -1
- package/components/Radio/sgds-radio.js +1 -1
- package/components/Radio/sgds-radio.js.map +1 -1
- package/components/Stepper/index.umd.js +1 -0
- package/components/Stepper/index.umd.js.map +1 -1
- package/components/Stepper/sgds-stepper.d.ts +1 -0
- package/components/Stepper/sgds-stepper.js +1 -0
- package/components/Stepper/sgds-stepper.js.map +1 -1
- package/components/Switch/index.umd.js +21 -321
- package/components/Switch/index.umd.js.map +1 -1
- package/components/Switch/sgds-switch.js +1 -2
- package/components/Switch/sgds-switch.js.map +1 -1
- package/components/Textarea/index.umd.js +1554 -1336
- package/components/Textarea/index.umd.js.map +1 -1
- package/components/Textarea/sgds-textarea.d.ts +33 -22
- package/components/Textarea/sgds-textarea.js +78 -75
- package/components/Textarea/sgds-textarea.js.map +1 -1
- package/components/Textarea/textarea.js +1 -1
- package/components/Toast/index.umd.js +9 -21
- package/components/Toast/index.umd.js.map +1 -1
- package/components/Toast/sgds-toast.d.ts +2 -1
- package/components/Toast/sgds-toast.js +6 -18
- package/components/Toast/sgds-toast.js.map +1 -1
- package/components/Toast/toast.js +1 -1
- package/components/Tooltip/index.umd.js +14 -14
- package/components/Tooltip/index.umd.js.map +1 -1
- package/components/Tooltip/sgds-tooltip.d.ts +4 -7
- package/components/Tooltip/sgds-tooltip.js +14 -14
- package/components/Tooltip/sgds-tooltip.js.map +1 -1
- package/components/index.d.ts +1 -0
- package/components/index.js +1 -0
- package/components/index.js.map +1 -1
- package/components/index.umd.js +1318 -1124
- package/components/index.umd.js.map +1 -1
- package/icons/arrow-bar-down.svg +3 -0
- package/icons/arrow-bar-left.svg +3 -0
- package/icons/arrow-bar-right.svg +3 -0
- package/icons/arrow-bar-up.svg +3 -0
- package/icons/arrow-clockwise.svg +3 -0
- package/icons/arrow-down.svg +3 -0
- package/icons/arrow-left.svg +3 -0
- package/icons/arrow-repeat.svg +3 -0
- package/icons/arrow-right.svg +3 -0
- package/icons/arrow-up.svg +3 -0
- package/icons/bank-fill.svg +3 -0
- package/icons/bell-slash.svg +3 -0
- package/icons/bell.svg +3 -0
- package/icons/bi-funnel.svg +3 -0
- package/icons/bookmark-fill.svg +3 -0
- package/icons/bookmark.svg +3 -0
- package/icons/box-arrow-up-right.svg +3 -0
- package/icons/box-seam.svg +3 -0
- package/icons/building.svg +3 -0
- package/icons/calculator.svg +3 -0
- package/icons/calendar-check.svg +4 -0
- package/icons/calendar-x.svg +4 -0
- package/icons/calendar.svg +3 -0
- package/icons/camera.svg +3 -0
- package/icons/chat-left-text.svg +3 -0
- package/icons/check-circle-fill.svg +3 -0
- package/icons/check-circle.svg +3 -0
- package/icons/check.svg +3 -0
- package/icons/chevron-down.svg +3 -0
- package/icons/chevron-left.svg +3 -0
- package/icons/chevron-right.svg +3 -0
- package/icons/chevron-up .svg +3 -0
- package/icons/clock.svg +4 -0
- package/icons/cloud-check.svg +4 -0
- package/icons/cloud-download.svg +3 -0
- package/icons/cloud-upload.svg +3 -0
- package/icons/cloud.svg +3 -0
- package/icons/compass.svg +4 -0
- package/icons/cross.svg +3 -0
- package/icons/cursor-fill.svg +3 -0
- package/icons/cursor.svg +3 -0
- package/icons/dash-circle.svg +3 -0
- package/icons/dash-square.svg +3 -0
- package/icons/dash.svg +3 -0
- package/icons/download.svg +3 -0
- package/icons/exclamation-circle-fill.svg +3 -0
- package/icons/exclamation-circle.svg +4 -0
- package/icons/exclamation-triangle-fill.svg +3 -0
- package/icons/exclamation-triangle.svg +4 -0
- package/icons/exclamation.svg +4 -0
- package/icons/eye-fill.svg +3 -0
- package/icons/eye-slash-fill.svg +4 -0
- package/icons/eye-slash.svg +3 -0
- package/icons/eye.svg +3 -0
- package/icons/facebook.svg +3 -0
- package/icons/file-earmark-text.svg +3 -0
- package/icons/file-pdf.svg +4 -0
- package/icons/file-plus.svg +4 -0
- package/icons/file-text.svg +3 -0
- package/icons/file.svg +3 -0
- package/icons/files.svg +4 -0
- package/icons/folder-check.svg +4 -0
- package/icons/folder-minus.svg +4 -0
- package/icons/folder-plus.svg +4 -0
- package/icons/folder.svg +3 -0
- package/icons/gear.svg +3 -0
- package/icons/geo-alt.svg +4 -0
- package/icons/geo-fill.svg +4 -0
- package/icons/geo.svg +4 -0
- package/icons/google.svg +3 -0
- package/icons/grid-fill.svg +3 -0
- package/icons/hand-thumbs-down.svg +3 -0
- package/icons/hand-thumbs-up.svg +3 -0
- package/icons/hdd.svg +3 -0
- package/icons/house-door.svg +3 -0
- package/icons/house.svg +3 -0
- package/icons/image.svg +3 -0
- package/icons/inbox.svg +3 -0
- package/icons/info-circle-fill.svg +3 -0
- package/icons/info-circle.svg +4 -0
- package/icons/instagram.svg +3 -0
- package/icons/layers.svg +3 -0
- package/icons/layout-text-window-reverse.svg +3 -0
- package/icons/layout-text-window.svg +3 -0
- package/icons/layout.svg +3 -0
- package/icons/link.svg +3 -0
- package/icons/linkedin.svg +3 -0
- package/icons/list.svg +3 -0
- package/icons/lock-fill.svg +3 -0
- package/icons/lock.svg +3 -0
- package/icons/mail.svg +3 -0
- package/icons/map.svg +3 -0
- package/icons/paperclip.svg +3 -0
- package/icons/pencil.svg +3 -0
- package/icons/pending-circle.svg +3 -0
- package/icons/person-dash.svg +3 -0
- package/icons/person-plus.svg +3 -0
- package/icons/person-x.svg +3 -0
- package/icons/person.svg +3 -0
- package/icons/pin-map-fill.svg +3 -0
- package/icons/pin.svg +3 -0
- package/icons/placeholder.svg +3 -0
- package/icons/plus-circle.svg +3 -0
- package/icons/plus-square.svg +3 -0
- package/icons/plus.svg +3 -0
- package/icons/printer.svg +3 -0
- package/icons/question-circle.svg +4 -0
- package/icons/save.svg +3 -0
- package/icons/search.svg +3 -0
- package/icons/share.svg +3 -0
- package/icons/slash-circle.svg +3 -0
- package/icons/sliders.svg +3 -0
- package/icons/speedometer.svg +3 -0
- package/icons/star-fill.svg +3 -0
- package/icons/star.svg +3 -0
- package/icons/stoplights.svg +4 -0
- package/icons/telephone.svg +3 -0
- package/icons/three-dots-vertical.svg +3 -0
- package/icons/three-dots.svg +3 -0
- package/icons/toggle-off.svg +3 -0
- package/icons/toggle-on.svg +3 -0
- package/icons/trash.svg +3 -0
- package/icons/twitter-x.svg +3 -0
- package/icons/unlock.svg +3 -0
- package/icons/upload.svg +3 -0
- package/icons/window-dash.svg +4 -0
- package/icons/window-desktop.svg +4 -0
- package/icons/window-dock.svg +4 -0
- package/icons/window-fullscreen.svg +3 -0
- package/icons/window-plus.svg +4 -0
- package/icons/window-sidebar.svg +3 -0
- package/icons/window-split.svg +3 -0
- package/icons/window-stack.svg +3 -0
- package/icons/window-x.svg +4 -0
- package/icons/window.svg +3 -0
- package/icons/x-circle-fill.svg +3 -0
- package/icons/x-circle.svg +3 -0
- package/icons/youtube.svg +3 -0
- package/icons/zoom-in.svg +3 -0
- package/icons/zoom-out.svg +3 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/index.umd.js +1338 -1119
- package/index.umd.js.map +1 -1
- package/internals/CloseButton/close-button.js +1 -1
- package/internals/CloseButton/sgds-close-button.js +1 -1
- package/internals/CloseButton/sgds-close-button.js.map +1 -1
- package/package.json +1 -1
- package/react/base/button.cjs.js +1 -1
- package/react/base/button.js +1 -1
- package/react/base/form-control-element.cjs.js +13 -23
- package/react/base/form-control-element.cjs.js.map +1 -1
- package/react/base/form-control-element.js +13 -23
- package/react/base/form-control-element.js.map +1 -1
- package/react/checkbox/index.cjs.js +2 -0
- package/react/checkbox/index.cjs.js.map +1 -1
- package/react/checkbox/index.d.ts +2 -0
- package/react/checkbox/index.js +2 -0
- package/react/checkbox/index.js.map +1 -1
- package/react/components/Accordion/accordion-item.cjs.js +1 -1
- package/react/components/Accordion/accordion-item.js +1 -1
- package/react/components/Accordion/sgds-accordion-item.cjs.js +6 -18
- package/react/components/Accordion/sgds-accordion-item.cjs.js.map +1 -1
- package/react/components/Accordion/sgds-accordion-item.js +6 -18
- package/react/components/Accordion/sgds-accordion-item.js.map +1 -1
- package/react/components/Alert/alert.cjs.js +1 -1
- package/react/components/Alert/alert.js +1 -1
- package/react/components/Alert/sgds-alert.cjs.js +5 -12
- package/react/components/Alert/sgds-alert.cjs.js.map +1 -1
- package/react/components/Alert/sgds-alert.js +6 -13
- package/react/components/Alert/sgds-alert.js.map +1 -1
- package/react/components/Badge/badge.cjs.js +1 -1
- package/react/components/Badge/badge.js +1 -1
- package/react/components/Badge/sgds-badge.cjs.js +5 -6
- package/react/components/Badge/sgds-badge.cjs.js.map +1 -1
- package/react/components/Badge/sgds-badge.js +5 -6
- package/react/components/Badge/sgds-badge.js.map +1 -1
- package/react/components/Button/sgds-button.cjs.js +2 -2
- package/react/components/Button/sgds-button.cjs.js.map +1 -1
- package/react/components/Button/sgds-button.js +1 -1
- package/react/components/Button/sgds-button.js.map +1 -1
- package/react/components/Checkbox/checkbox.cjs.js +1 -1
- package/react/components/Checkbox/checkbox.js +1 -1
- package/react/components/Checkbox/sgds-checkbox-group.cjs.js +15 -4
- package/react/components/Checkbox/sgds-checkbox-group.cjs.js.map +1 -1
- package/react/components/Checkbox/sgds-checkbox-group.js +15 -4
- package/react/components/Checkbox/sgds-checkbox-group.js.map +1 -1
- package/react/components/Checkbox/sgds-checkbox.cjs.js +77 -60
- package/react/components/Checkbox/sgds-checkbox.cjs.js.map +1 -1
- package/react/components/Checkbox/sgds-checkbox.js +77 -60
- package/react/components/Checkbox/sgds-checkbox.js.map +1 -1
- package/react/components/Datepicker/datepicker-input.cjs.js +24 -7
- package/react/components/Datepicker/datepicker-input.cjs.js.map +1 -1
- package/react/components/Datepicker/datepicker-input.js +24 -7
- package/react/components/Datepicker/datepicker-input.js.map +1 -1
- package/react/components/Datepicker/sgds-datepicker.cjs.js.map +1 -1
- package/react/components/Datepicker/sgds-datepicker.js.map +1 -1
- package/react/components/FileUpload/file-upload.cjs.js +1 -1
- package/react/components/FileUpload/file-upload.js +1 -1
- package/react/components/FileUpload/sgds-file-upload.cjs.js +145 -101
- package/react/components/FileUpload/sgds-file-upload.cjs.js.map +1 -1
- package/react/components/FileUpload/sgds-file-upload.js +147 -103
- package/react/components/FileUpload/sgds-file-upload.js.map +1 -1
- package/react/components/Footer/footer-item.cjs.js +11 -0
- package/react/components/Footer/footer-item.cjs.js.map +1 -0
- package/react/components/Footer/footer-item.js +7 -0
- package/react/components/Footer/footer-item.js.map +1 -0
- package/react/components/Footer/footer.cjs.js +1 -1
- package/react/components/Footer/footer.js +1 -1
- package/react/components/Footer/sgds-footer-item.cjs.js +33 -0
- package/react/components/Footer/sgds-footer-item.cjs.js.map +1 -0
- package/react/components/Footer/sgds-footer-item.js +28 -0
- package/react/components/Footer/sgds-footer-item.js.map +1 -0
- package/react/components/Footer/sgds-footer.cjs.js +65 -90
- package/react/components/Footer/sgds-footer.cjs.js.map +1 -1
- package/react/components/Footer/sgds-footer.js +65 -90
- package/react/components/Footer/sgds-footer.js.map +1 -1
- package/react/components/Icon/icon.cjs.js +11 -0
- package/react/components/Icon/icon.cjs.js.map +1 -0
- package/react/components/Icon/icon.js +7 -0
- package/react/components/Icon/icon.js.map +1 -0
- package/react/components/Icon/sgds-icon.cjs.js +70 -0
- package/react/components/Icon/sgds-icon.cjs.js.map +1 -0
- package/react/components/Icon/sgds-icon.js +65 -0
- package/react/components/Icon/sgds-icon.js.map +1 -0
- package/react/components/IconButton/icon-button.cjs.js +1 -1
- package/react/components/IconButton/icon-button.js +1 -1
- package/react/components/IconButton/sgds-icon-button.cjs.js +4 -9
- package/react/components/IconButton/sgds-icon-button.cjs.js.map +1 -1
- package/react/components/IconButton/sgds-icon-button.js +4 -9
- package/react/components/IconButton/sgds-icon-button.js.map +1 -1
- package/react/components/Input/sgds-input.cjs.js +101 -64
- package/react/components/Input/sgds-input.cjs.js.map +1 -1
- package/react/components/Input/sgds-input.js +103 -66
- package/react/components/Input/sgds-input.js.map +1 -1
- package/react/components/QuantityToggle/sgds-quantity-toggle.cjs.js +128 -61
- package/react/components/QuantityToggle/sgds-quantity-toggle.cjs.js.map +1 -1
- package/react/components/QuantityToggle/sgds-quantity-toggle.js +129 -62
- package/react/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
- package/react/components/Radio/sgds-radio-group.cjs.js +99 -83
- package/react/components/Radio/sgds-radio-group.cjs.js.map +1 -1
- package/react/components/Radio/sgds-radio-group.js +100 -84
- package/react/components/Radio/sgds-radio-group.js.map +1 -1
- package/react/components/Radio/sgds-radio.cjs.js +1 -1
- package/react/components/Radio/sgds-radio.cjs.js.map +1 -1
- package/react/components/Radio/sgds-radio.js +1 -1
- package/react/components/Radio/sgds-radio.js.map +1 -1
- package/react/components/Stepper/sgds-stepper.cjs.js +1 -0
- package/react/components/Stepper/sgds-stepper.cjs.js.map +1 -1
- package/react/components/Stepper/sgds-stepper.js +1 -0
- package/react/components/Stepper/sgds-stepper.js.map +1 -1
- package/react/components/Switch/sgds-switch.cjs.js +1 -2
- package/react/components/Switch/sgds-switch.cjs.js.map +1 -1
- package/react/components/Switch/sgds-switch.js +1 -2
- package/react/components/Switch/sgds-switch.js.map +1 -1
- package/react/components/Textarea/sgds-textarea.cjs.js +76 -73
- package/react/components/Textarea/sgds-textarea.cjs.js.map +1 -1
- package/react/components/Textarea/sgds-textarea.js +78 -75
- package/react/components/Textarea/sgds-textarea.js.map +1 -1
- package/react/components/Textarea/textarea.cjs.js +1 -1
- package/react/components/Textarea/textarea.js +1 -1
- package/react/components/Toast/sgds-toast.cjs.js +6 -18
- package/react/components/Toast/sgds-toast.cjs.js.map +1 -1
- package/react/components/Toast/sgds-toast.js +6 -18
- package/react/components/Toast/sgds-toast.js.map +1 -1
- package/react/components/Toast/toast.cjs.js +1 -1
- package/react/components/Toast/toast.js +1 -1
- package/react/components/Tooltip/sgds-tooltip.cjs.js +14 -14
- package/react/components/Tooltip/sgds-tooltip.cjs.js.map +1 -1
- package/react/components/Tooltip/sgds-tooltip.js +14 -14
- package/react/components/Tooltip/sgds-tooltip.js.map +1 -1
- package/react/footer-item/index.cjs.js +39 -0
- package/react/footer-item/index.cjs.js.map +1 -0
- package/react/footer-item/index.d.ts +3 -0
- package/react/footer-item/index.js +15 -0
- package/react/footer-item/index.js.map +1 -0
- package/react/icon/index.cjs.js +42 -0
- package/react/icon/index.cjs.js.map +1 -0
- package/react/icon/index.d.ts +6 -0
- package/react/icon/index.js +18 -0
- package/react/icon/index.js.map +1 -0
- package/react/index.cjs.js +64 -60
- package/react/index.cjs.js.map +1 -1
- package/react/index.d.ts +2 -0
- package/react/index.js +2 -0
- package/react/index.js.map +1 -1
- package/react/input/index.cjs.js +3 -1
- package/react/input/index.cjs.js.map +1 -1
- package/react/input/index.d.ts +2 -0
- package/react/input/index.js +3 -1
- package/react/input/index.js.map +1 -1
- package/react/internals/CloseButton/close-button.cjs.js +1 -1
- package/react/internals/CloseButton/close-button.js +1 -1
- package/react/internals/CloseButton/sgds-close-button.cjs.js +1 -1
- package/react/internals/CloseButton/sgds-close-button.cjs.js.map +1 -1
- package/react/internals/CloseButton/sgds-close-button.js +1 -1
- package/react/internals/CloseButton/sgds-close-button.js.map +1 -1
- package/react/styles/form-hint.cjs.js +1 -1
- package/react/styles/form-hint.js +1 -1
- package/react/styles/form-label.cjs.js +1 -1
- package/react/styles/form-label.js +1 -1
- package/react/utils/formSubmitController.cjs.js +64 -0
- package/react/utils/formSubmitController.cjs.js.map +1 -0
- package/react/utils/formSubmitController.js +60 -0
- package/react/utils/formSubmitController.js.map +1 -0
- package/react/utils/inputValidationController.cjs.js +130 -0
- package/react/utils/inputValidationController.cjs.js.map +1 -0
- package/react/utils/inputValidationController.js +126 -0
- package/react/utils/inputValidationController.js.map +1 -0
- package/react/utils/validatorMixin.cjs.js +108 -0
- package/react/utils/validatorMixin.cjs.js.map +1 -0
- package/react/utils/validatorMixin.js +104 -0
- package/react/utils/validatorMixin.js.map +1 -0
- package/styles/form-hint.js +1 -1
- package/styles/form-label.js +1 -1
- package/themes/day.css +1 -1
- package/themes/night.css +3 -2
- package/themes/root.css +1 -0
- package/utils/{form.d.ts → formSubmitController.d.ts} +10 -20
- package/utils/formSubmitController.js +59 -0
- package/utils/formSubmitController.js.map +1 -0
- package/utils/inputValidationController.d.ts +70 -0
- package/utils/inputValidationController.js +125 -0
- package/utils/inputValidationController.js.map +1 -0
- package/utils/validatorMixin.d.ts +24 -0
- package/utils/validatorMixin.js +103 -0
- package/utils/validatorMixin.js.map +1 -0
- package/base/form-check-element.d.ts +0 -50
- package/base/form-check-element.js +0 -169
- package/base/form-check-element.js.map +0 -1
- package/react/base/form-check-element.cjs.js +0 -175
- package/react/base/form-check-element.cjs.js.map +0 -1
- package/react/base/form-check-element.js +0 -170
- package/react/base/form-check-element.js.map +0 -1
- package/react/utils/form.cjs.js +0 -137
- package/react/utils/form.cjs.js.map +0 -1
- package/react/utils/form.js +0 -133
- package/react/utils/form.js.map +0 -1
- package/utils/form.js +0 -132
- package/utils/form.js.map +0 -1
|
@@ -4,62 +4,101 @@
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
6
|
var tslib = require('tslib');
|
|
7
|
+
var scopedElements = require('@open-wc/scoped-elements');
|
|
7
8
|
var decorators_js = require('lit/decorators.js');
|
|
8
9
|
var classMap_js = require('lit/directives/class-map.js');
|
|
9
10
|
var ifDefined_js = require('lit/directives/if-defined.js');
|
|
10
11
|
var live_js = require('lit/directives/live.js');
|
|
11
12
|
var staticHtml_js = require('lit/static-html.js');
|
|
12
13
|
var formControlElement = require('../../base/form-control-element.cjs.js');
|
|
14
|
+
var formPlaceholder = require('../../styles/form-placeholder.cjs.js');
|
|
15
|
+
var svg = require('../../styles/svg.cjs.js');
|
|
13
16
|
var defaultvalue = require('../../utils/defaultvalue.cjs.js');
|
|
14
|
-
var
|
|
15
|
-
var generateId = require('../../utils/generateId.cjs.js');
|
|
17
|
+
var validatorMixin = require('../../utils/validatorMixin.cjs.js');
|
|
16
18
|
var sgdsIconButton = require('../IconButton/sgds-icon-button.cjs.js');
|
|
17
|
-
var quantityToggle = require('./quantity-toggle.cjs.js');
|
|
18
19
|
var sgdsInput = require('../Input/sgds-input.cjs.js');
|
|
19
|
-
var
|
|
20
|
+
var quantityToggle = require('./quantity-toggle.cjs.js');
|
|
21
|
+
var sgdsIcon = require('../Icon/sgds-icon.cjs.js');
|
|
20
22
|
|
|
21
23
|
/**
|
|
22
24
|
* @summary The quantity toggle component is used to increase or decrease an incremental venue, best used when the user needs to enter or adjust the quantity of a selected item.
|
|
23
25
|
*
|
|
24
|
-
* @csspart base - The base wrapper of the quantity toggle component.
|
|
25
|
-
* @csspart button - The plus and minus button of quantity toggle
|
|
26
|
-
*
|
|
27
26
|
* @event sgds-change - Emitted when an alteration to the control's value is committed by the user.
|
|
28
27
|
* @event sgds-input - Emitted when the control receives input and its value changes.
|
|
29
28
|
*
|
|
30
29
|
*/
|
|
31
|
-
class SgdsQuantityToggle extends formControlElement["default"] {
|
|
30
|
+
class SgdsQuantityToggle extends validatorMixin.SgdsFormValidatorMixin(scopedElements.ScopedElementsMixin(formControlElement["default"])) {
|
|
32
31
|
constructor() {
|
|
33
32
|
super(...arguments);
|
|
34
|
-
/** @internal */
|
|
35
|
-
this.formSubmitController = new form.FormSubmitController(this);
|
|
36
33
|
/** Controls the size of the quantity toggle */
|
|
37
34
|
this.size = "md";
|
|
38
35
|
/** The input's value. Set to 0 by default */
|
|
39
36
|
this.value = 0;
|
|
40
|
-
/**
|
|
41
|
-
|
|
42
|
-
/** The quantity toggle's button variants */
|
|
43
|
-
this.iconButtonVariant = "ghost";
|
|
37
|
+
// /** The quantity toggle's button variants */
|
|
38
|
+
// @property({ type: String }) iconButtonVariant = "ghost";
|
|
44
39
|
/** Controls the incremental / decremental value of the input */
|
|
45
40
|
this.step = 1;
|
|
46
41
|
/** Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */
|
|
47
42
|
this.defaultValue = 0;
|
|
48
|
-
/** @internal The id forwarded to input element */
|
|
49
|
-
this.inputId = generateId["default"]("quantity-toggle", "input");
|
|
50
43
|
}
|
|
51
44
|
/** @internal */
|
|
52
45
|
static get scopedElements() {
|
|
53
46
|
return {
|
|
54
47
|
"sgds-input": sgdsInput.SgdsInput,
|
|
55
|
-
"sgds-icon-button": sgdsIconButton.SgdsIconButton
|
|
48
|
+
"sgds-icon-button": sgdsIconButton.SgdsIconButton,
|
|
49
|
+
"sgds-icon": sgdsIcon.SgdsIcon
|
|
56
50
|
};
|
|
57
51
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Checks for validity. Under the hood, HTMLFormElement's reportValidity method calls this method to check for component's validity state
|
|
54
|
+
* Note that the native error popup is prevented for SGDS form components by default. Instead the validation message shows up in the feedback container of SgdsInput
|
|
55
|
+
*/
|
|
56
|
+
reportValidity() {
|
|
57
|
+
return this._mixinReportValidity();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Checks for validity without any native error popup message
|
|
61
|
+
*/
|
|
62
|
+
checkValidity() {
|
|
63
|
+
return this._mixinCheckValidity();
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Returns the ValidityState object
|
|
67
|
+
*/
|
|
68
|
+
get validity() {
|
|
69
|
+
return this._mixinGetValidity();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Returns the validation message based on the ValidityState
|
|
73
|
+
*/
|
|
74
|
+
get validationMessage() {
|
|
75
|
+
return this._mixinGetValidationMessage();
|
|
76
|
+
}
|
|
77
|
+
async _handleChange() {
|
|
78
|
+
const sgdsInput = await this._sgdsInput;
|
|
79
|
+
if (parseInt(sgdsInput.value) < this.step || sgdsInput.value === "") {
|
|
80
|
+
sgdsInput.value = "0";
|
|
81
|
+
}
|
|
82
|
+
this.value = parseInt(sgdsInput.value);
|
|
83
|
+
this._mixinSetFormValue();
|
|
84
|
+
this._mixinValidate(sgdsInput.input);
|
|
85
|
+
this.invalid = !this._mixinReportValidity();
|
|
86
|
+
}
|
|
87
|
+
async _handleInputChange() {
|
|
88
|
+
const sgdsInput = await this._sgdsInput;
|
|
89
|
+
this.invalid = false;
|
|
90
|
+
if (parseInt(sgdsInput.value) < this.step || sgdsInput.value === "") {
|
|
91
|
+
sgdsInput.value = "0";
|
|
61
92
|
}
|
|
62
|
-
this.value = parseInt(
|
|
93
|
+
this.value = parseInt(sgdsInput.value);
|
|
94
|
+
this._mixinSetFormValue();
|
|
95
|
+
this._mixinValidate(sgdsInput.input);
|
|
96
|
+
}
|
|
97
|
+
async _mixinResetFormControl() {
|
|
98
|
+
const sgdsInput = await this._sgdsInput;
|
|
99
|
+
this.value = this.defaultValue;
|
|
100
|
+
sgdsInput.input.value = this.value.toString();
|
|
101
|
+
this._mixinResetValidity(sgdsInput.input);
|
|
63
102
|
}
|
|
64
103
|
_handleKeyDown(event) {
|
|
65
104
|
const allowedKeys = [
|
|
@@ -76,6 +115,12 @@ class SgdsQuantityToggle extends formControlElement["default"] {
|
|
|
76
115
|
event.preventDefault();
|
|
77
116
|
}
|
|
78
117
|
}
|
|
118
|
+
_handleInvalid() {
|
|
119
|
+
this.invalid = true;
|
|
120
|
+
}
|
|
121
|
+
_handleValid() {
|
|
122
|
+
this.invalid = false;
|
|
123
|
+
}
|
|
79
124
|
/** Simulates a click on the plus button */
|
|
80
125
|
plus() {
|
|
81
126
|
this.plusBtn.click();
|
|
@@ -84,23 +129,41 @@ class SgdsQuantityToggle extends formControlElement["default"] {
|
|
|
84
129
|
minus() {
|
|
85
130
|
this.minusBtn.click();
|
|
86
131
|
}
|
|
87
|
-
_onPlus(event) {
|
|
132
|
+
async _onPlus(event) {
|
|
133
|
+
const sgdsInput = await this._sgdsInput;
|
|
88
134
|
event.preventDefault();
|
|
89
135
|
event.stopPropagation();
|
|
90
|
-
this.value = parseInt(
|
|
136
|
+
this.value = parseInt(sgdsInput.value) + parseInt(sgdsInput.step.toString());
|
|
137
|
+
this._validateOnClick(sgdsInput.input);
|
|
91
138
|
}
|
|
92
|
-
_onMinus(event) {
|
|
139
|
+
async _onMinus(event) {
|
|
140
|
+
const sgdsInput = await this._sgdsInput;
|
|
93
141
|
event.preventDefault();
|
|
94
142
|
event.stopPropagation();
|
|
95
143
|
if (this.value < this.step) {
|
|
96
144
|
this.value = 0;
|
|
97
145
|
}
|
|
98
146
|
else {
|
|
99
|
-
this.value = parseInt(
|
|
147
|
+
this.value = parseInt(sgdsInput.value) - parseInt(sgdsInput.step.toString());
|
|
100
148
|
}
|
|
149
|
+
this._validateOnClick(sgdsInput.input);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Validates the input on button clicks of the toggle.
|
|
153
|
+
* Input is validated every time the button is click to update the invalid state
|
|
154
|
+
* to indiciate the validity of quantity toggle
|
|
155
|
+
* @param input native HTMLInputElement
|
|
156
|
+
*/
|
|
157
|
+
async _validateOnClick(input) {
|
|
158
|
+
const sgdsInput = await this._sgdsInput;
|
|
159
|
+
await sgdsInput.updateComplete;
|
|
160
|
+
this._mixinSetFormValue();
|
|
161
|
+
this._mixinValidate(input);
|
|
162
|
+
this.invalid = !this._mixinReportValidity();
|
|
101
163
|
}
|
|
102
164
|
_renderFeedback() {
|
|
103
|
-
|
|
165
|
+
const wantFeedbackText = this.hasFeedback === "both" || this.hasFeedback === "text";
|
|
166
|
+
return this.invalid && wantFeedbackText
|
|
104
167
|
? staticHtml_js.html ` <div class="invalid-feedback-container">
|
|
105
168
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
|
|
106
169
|
<path
|
|
@@ -108,17 +171,20 @@ class SgdsQuantityToggle extends formControlElement["default"] {
|
|
|
108
171
|
fill="#B90000"
|
|
109
172
|
/>
|
|
110
173
|
</svg>
|
|
111
|
-
<div id="${this.
|
|
174
|
+
<div id="${this._controlId}-invalid" class="invalid-feedback">
|
|
175
|
+
${this.invalidFeedback ? this.invalidFeedback : this.validationMessage}
|
|
176
|
+
</div>
|
|
112
177
|
</div>`
|
|
113
178
|
: staticHtml_js.html `${this._renderHintText()}`;
|
|
114
179
|
}
|
|
115
180
|
_renderLabel() {
|
|
116
181
|
const labelTemplate = staticHtml_js.html `
|
|
117
182
|
<label
|
|
118
|
-
for=${this.
|
|
119
|
-
id=${this.
|
|
183
|
+
for=${this._controlId}
|
|
184
|
+
id=${this._labelId}
|
|
120
185
|
class=${classMap_js.classMap({
|
|
121
|
-
"form-label": true
|
|
186
|
+
"form-label": true,
|
|
187
|
+
disabled: this.disabled
|
|
122
188
|
})}
|
|
123
189
|
>${this.label}</label
|
|
124
190
|
>
|
|
@@ -126,30 +192,22 @@ class SgdsQuantityToggle extends formControlElement["default"] {
|
|
|
126
192
|
return this.label && labelTemplate;
|
|
127
193
|
}
|
|
128
194
|
_renderHintText() {
|
|
129
|
-
const hintTextTemplate = staticHtml_js.html ` <div id="${this.
|
|
195
|
+
const hintTextTemplate = staticHtml_js.html ` <div id="${this._controlId}Help" class="form-text">${this.hintText}</div> `;
|
|
130
196
|
return this.hintText && hintTextTemplate;
|
|
131
197
|
}
|
|
132
198
|
render() {
|
|
133
199
|
return staticHtml_js.html `
|
|
134
200
|
<div class="form-control-container">
|
|
135
201
|
${this._renderLabel()}
|
|
136
|
-
<div
|
|
137
|
-
part="base"
|
|
138
|
-
class="${classMap_js.classMap({
|
|
139
|
-
disabled: this.disabled,
|
|
140
|
-
"input-group": true,
|
|
141
|
-
[`input-group-${this.size}`]: this.size
|
|
142
|
-
})}"
|
|
143
|
-
variant="quantity-toggle"
|
|
144
|
-
size=${this.size}
|
|
145
|
-
>
|
|
202
|
+
<div class="input-group">
|
|
146
203
|
<sgds-icon-button
|
|
147
|
-
variant
|
|
204
|
+
variant="ghost"
|
|
148
205
|
ariaLabel=${`decrease by ${this.step}`}
|
|
149
|
-
part="button"
|
|
150
206
|
?disabled=${this.disabled || (this.min !== undefined ? this.value <= this.min : this.value < 1)}
|
|
151
207
|
@click=${this._onMinus}
|
|
152
|
-
|
|
208
|
+
>
|
|
209
|
+
<sgds-icon name="dash"></sgds-icon>
|
|
210
|
+
</sgds-icon-button>
|
|
153
211
|
<sgds-input
|
|
154
212
|
type="number"
|
|
155
213
|
class="quantity-toggle"
|
|
@@ -157,21 +215,24 @@ class SgdsQuantityToggle extends formControlElement["default"] {
|
|
|
157
215
|
step=${ifDefined_js.ifDefined(this.step)}
|
|
158
216
|
min=${ifDefined_js.ifDefined(this.min)}
|
|
159
217
|
max=${ifDefined_js.ifDefined(this.max)}
|
|
160
|
-
.value=${live_js.live(this.value
|
|
161
|
-
@sgds-change=${
|
|
162
|
-
@sgds-input=${
|
|
218
|
+
.value=${live_js.live(this.value)}
|
|
219
|
+
@sgds-change=${this._handleChange}
|
|
220
|
+
@sgds-input=${this._handleInputChange}
|
|
221
|
+
@sgds-invalid=${this._handleInvalid}
|
|
222
|
+
@sgds-valid=${this._handleValid}
|
|
163
223
|
@keydown=${this._handleKeyDown}
|
|
164
224
|
?disabled=${this.disabled}
|
|
225
|
+
id=${this._controlId}
|
|
165
226
|
?invalid=${this.invalid}
|
|
166
|
-
|
|
227
|
+
hasFeedback=${ifDefined_js.ifDefined(this.hasFeedback !== "text" ? "style" : undefined)}
|
|
167
228
|
></sgds-input>
|
|
168
229
|
<sgds-icon-button
|
|
169
|
-
variant
|
|
230
|
+
variant="ghost"
|
|
170
231
|
ariaLabel=${`increase by ${this.step}`}
|
|
171
|
-
part="button"
|
|
172
232
|
@click=${this._onPlus}
|
|
173
233
|
?disabled=${this.disabled || (this.max !== undefined && this.max && this.value >= this.max)}
|
|
174
|
-
|
|
234
|
+
><sgds-icon name="plus"></sgds-icon>
|
|
235
|
+
</sgds-icon-button>
|
|
175
236
|
</div>
|
|
176
237
|
<div id="announcer" role="region" aria-live="assertive" class="visually-hidden">${this.value}</div>
|
|
177
238
|
${this._renderFeedback()}
|
|
@@ -179,10 +240,7 @@ class SgdsQuantityToggle extends formControlElement["default"] {
|
|
|
179
240
|
`;
|
|
180
241
|
}
|
|
181
242
|
}
|
|
182
|
-
SgdsQuantityToggle.styles = [...formControlElement["default"].styles, svg["default"], quantityToggle["default"]];
|
|
183
|
-
tslib.__decorate([
|
|
184
|
-
decorators_js.query("sgds-input")
|
|
185
|
-
], SgdsQuantityToggle.prototype, "input", void 0);
|
|
243
|
+
SgdsQuantityToggle.styles = [...formControlElement["default"].styles, formPlaceholder["default"], svg["default"], quantityToggle["default"]];
|
|
186
244
|
tslib.__decorate([
|
|
187
245
|
decorators_js.query("sgds-icon-button[ariaLabel^='increase by']")
|
|
188
246
|
], SgdsQuantityToggle.prototype, "plusBtn", void 0);
|
|
@@ -195,18 +253,27 @@ tslib.__decorate([
|
|
|
195
253
|
tslib.__decorate([
|
|
196
254
|
decorators_js.property({ type: Number, reflect: true })
|
|
197
255
|
], SgdsQuantityToggle.prototype, "value", void 0);
|
|
198
|
-
tslib.__decorate([
|
|
199
|
-
decorators_js.property({ type: Boolean, reflect: true })
|
|
200
|
-
], SgdsQuantityToggle.prototype, "disabled", void 0);
|
|
201
|
-
tslib.__decorate([
|
|
202
|
-
decorators_js.property({ type: String })
|
|
203
|
-
], SgdsQuantityToggle.prototype, "iconButtonVariant", void 0);
|
|
204
256
|
tslib.__decorate([
|
|
205
257
|
decorators_js.property({ type: Number })
|
|
206
258
|
], SgdsQuantityToggle.prototype, "step", void 0);
|
|
259
|
+
tslib.__decorate([
|
|
260
|
+
decorators_js.property()
|
|
261
|
+
], SgdsQuantityToggle.prototype, "min", void 0);
|
|
262
|
+
tslib.__decorate([
|
|
263
|
+
decorators_js.property()
|
|
264
|
+
], SgdsQuantityToggle.prototype, "max", void 0);
|
|
265
|
+
tslib.__decorate([
|
|
266
|
+
decorators_js.property({ type: String, reflect: true })
|
|
267
|
+
], SgdsQuantityToggle.prototype, "hasFeedback", void 0);
|
|
268
|
+
tslib.__decorate([
|
|
269
|
+
decorators_js.property({ type: String, reflect: true })
|
|
270
|
+
], SgdsQuantityToggle.prototype, "invalidFeedback", void 0);
|
|
207
271
|
tslib.__decorate([
|
|
208
272
|
defaultvalue.defaultValue()
|
|
209
273
|
], SgdsQuantityToggle.prototype, "defaultValue", void 0);
|
|
274
|
+
tslib.__decorate([
|
|
275
|
+
decorators_js.queryAsync("sgds-input")
|
|
276
|
+
], SgdsQuantityToggle.prototype, "_sgdsInput", void 0);
|
|
210
277
|
|
|
211
278
|
exports.SgdsQuantityToggle = SgdsQuantityToggle;
|
|
212
279
|
exports["default"] = SgdsQuantityToggle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sgds-quantity-toggle.cjs.js","sources":["../../../../src/components/QuantityToggle/sgds-quantity-toggle.ts"],"sourcesContent":["import { property, query } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { html } from \"lit/static-html.js\";\nimport FormControlElement from \"../../base/form-control-element\";\nimport { defaultValue } from \"../../utils/defaultvalue\";\nimport { FormSubmitController, SgdsFormControl } from \"../../utils/form\";\nimport genId from \"../../utils/generateId\";\nimport SgdsIconButton from \"../IconButton/sgds-icon-button\";\nimport quantityToggleStyle from \"./quantity-toggle.css\";\nimport SgdsInput from \"../Input/sgds-input\";\nimport svgStyles from \"../../styles/svg.css\";\n/**\n * @summary The quantity toggle component is used to increase or decrease an incremental venue, best used when the user needs to enter or adjust the quantity of a selected item.\n *\n * @csspart base - The base wrapper of the quantity toggle component.\n * @csspart button - The plus and minus button of quantity toggle\n *\n * @event sgds-change - Emitted when an alteration to the control's value is committed by the user.\n * @event sgds-input - Emitted when the control receives input and its value changes.\n *\n */\nexport class SgdsQuantityToggle extends FormControlElement implements SgdsFormControl {\n static styles = [...FormControlElement.styles, svgStyles, quantityToggleStyle];\n /** @internal */\n static get scopedElements() {\n return {\n \"sgds-input\": SgdsInput,\n \"sgds-icon-button\": SgdsIconButton\n };\n }\n /** @internal */\n @query(\"sgds-input\") private input: HTMLInputElement;\n /** @internal */\n @query(\"sgds-icon-button[ariaLabel^='increase by']\") private plusBtn: HTMLButtonElement;\n /** @internal */\n @query(\"sgds-icon-button[ariaLabel^='decrease by']\") private minusBtn: HTMLButtonElement;\n\n /** @internal */\n private readonly formSubmitController = new FormSubmitController(this);\n\n /** Controls the size of the quantity toggle */\n @property() size: \"sm\" | \"md\" = \"md\";\n\n /** The input's value. Set to 0 by default */\n @property({ type: Number, reflect: true }) value = 0;\n\n /** Disables the entire quantity toggle */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** The quantity toggle's button variants */\n @property({ type: String }) iconButtonVariant = \"ghost\";\n\n /** Controls the incremental / decremental value of the input */\n @property({ type: Number }) step = 1;\n\n /** Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */\n @defaultValue()\n defaultValue = 0;\n\n /** @internal The id forwarded to input element */\n private inputId: string = genId(\"quantity-toggle\", \"input\");\n\n private _handleChange() {\n if (parseInt(this.input.value) < this.step || this.input.value === \"\") {\n this.input.value = \"0\";\n }\n this.value = parseInt(this.input.value);\n }\n\n private _handleKeyDown(event: KeyboardEvent) {\n const allowedKeys = [\n \"Backspace\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n ...Array.from(Array(10).keys()).map(key => key.toString()),\n \"Tab\"\n ];\n\n // Allow keydown event only if the pressed key is in the allowedKeys array\n if (!allowedKeys.includes(event.key)) {\n event.preventDefault();\n }\n }\n\n /** Simulates a click on the plus button */\n public plus() {\n this.plusBtn.click();\n }\n\n /** Simulates a click on the minus button */\n public minus() {\n this.minusBtn.click();\n }\n\n private _onPlus(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.value = parseInt(this.input.value) + parseInt(this.input.step);\n }\n\n private _onMinus(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.value < this.step) {\n this.value = 0;\n } else {\n this.value = parseInt(this.input.value) - parseInt(this.input.step);\n }\n }\n\n protected _renderFeedback() {\n return this.invalid && this.hasFeedback\n ? html` <div class=\"invalid-feedback-container\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path\n d=\"M17.5 10C17.5 14.1421 14.1421 17.5 10 17.5C5.85786 17.5 2.5 14.1421 2.5 10C2.5 5.85786 5.85786 2.5 10 2.5C14.1421 2.5 17.5 5.85786 17.5 10ZM10 6.25C9.49805 6.25 9.10584 6.68339 9.15578 7.18285L9.48461 10.4711C9.51109 10.7359 9.7339 10.9375 10 10.9375C10.2661 10.9375 10.4889 10.7359 10.5154 10.4711L10.8442 7.18285C10.8942 6.68339 10.5019 6.25 10 6.25ZM10.0014 11.875C9.48368 11.875 9.06394 12.2947 9.06394 12.8125C9.06394 13.3303 9.48368 13.75 10.0014 13.75C10.5192 13.75 10.9389 13.3303 10.9389 12.8125C10.9389 12.2947 10.5192 11.875 10.0014 11.875Z\"\n fill=\"#B90000\"\n />\n </svg>\n <div id=\"${this.inputId}-invalid\" class=\"invalid-feedback\">${this.invalidFeedback}</div>\n </div>`\n : html`${this._renderHintText()}`;\n }\n\n protected _renderLabel() {\n const labelTemplate = html`\n <label\n for=${this.inputId}\n id=${this.labelId}\n class=${classMap({\n \"form-label\": true\n })}\n >${this.label}</label\n >\n `;\n return this.label && labelTemplate;\n }\n protected _renderHintText() {\n const hintTextTemplate = html` <div id=\"${this.inputId}Help\" class=\"form-text\">${this.hintText}</div> `;\n return this.hintText && hintTextTemplate;\n }\n\n render() {\n return html`\n <div class=\"form-control-container\">\n ${this._renderLabel()}\n <div\n part=\"base\"\n class=\"${classMap({\n disabled: this.disabled,\n \"input-group\": true,\n [`input-group-${this.size}`]: this.size\n })}\"\n variant=\"quantity-toggle\"\n size=${this.size}\n >\n <sgds-icon-button\n variant=${this.iconButtonVariant}\n ariaLabel=${`decrease by ${this.step}`}\n part=\"button\"\n ?disabled=${this.disabled || (this.min !== undefined ? this.value <= this.min : this.value < 1)}\n @click=${this._onMinus}\n ></sgds-icon-button>\n <sgds-input\n type=\"number\"\n class=\"quantity-toggle\"\n name=${ifDefined(this.name)}\n step=${ifDefined(this.step)}\n min=${ifDefined(this.min)}\n max=${ifDefined(this.max)}\n .value=${live(this.value.toString())}\n @sgds-change=${() => this._handleChange()}\n @sgds-input=${() => this._handleChange()}\n @keydown=${this._handleKeyDown}\n ?disabled=${this.disabled}\n ?invalid=${this.invalid}\n id=${this.inputId}\n ></sgds-input>\n <sgds-icon-button\n variant=${this.iconButtonVariant}\n ariaLabel=${`increase by ${this.step}`}\n part=\"button\"\n @click=${this._onPlus}\n ?disabled=${this.disabled || (this.max !== undefined && this.max && this.value >= this.max)}\n ></sgds-icon-button>\n </div>\n <div id=\"announcer\" role=\"region\" aria-live=\"assertive\" class=\"visually-hidden\">${this.value}</div>\n ${this._renderFeedback()}\n </div>\n `;\n }\n}\n\nexport default SgdsQuantityToggle;\n"],"names":["FormControlElement","FormSubmitController","genId","SgdsInput","SgdsIconButton","html","classMap","ifDefined","live","svgStyles","quantityToggleStyle","__decorate","query","property","defaultValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sgds-quantity-toggle.cjs.js","sources":["../../../../src/components/QuantityToggle/sgds-quantity-toggle.ts"],"sourcesContent":["import { ScopedElementsMixin } from \"@open-wc/scoped-elements\";\nimport { property, query, queryAsync } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { html } from \"lit/static-html.js\";\nimport FormControlElement from \"../../base/form-control-element\";\nimport formPlaceholderStyles from \"../../styles/form-placeholder.css\";\nimport svgStyles from \"../../styles/svg.css\";\nimport { defaultValue } from \"../../utils/defaultvalue\";\nimport { SgdsFormControl } from \"../../utils/formSubmitController\";\nimport { SgdsFormValidatorMixin } from \"../../utils/validatorMixin\";\nimport SgdsIconButton from \"../IconButton/sgds-icon-button\";\nimport SgdsInput from \"../Input/sgds-input\";\nimport quantityToggleStyle from \"./quantity-toggle.css\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\n/**\n * @summary The quantity toggle component is used to increase or decrease an incremental venue, best used when the user needs to enter or adjust the quantity of a selected item.\n *\n * @event sgds-change - Emitted when an alteration to the control's value is committed by the user.\n * @event sgds-input - Emitted when the control receives input and its value changes.\n *\n */\nexport class SgdsQuantityToggle\n extends SgdsFormValidatorMixin(ScopedElementsMixin(FormControlElement))\n implements SgdsFormControl\n{\n static styles = [...FormControlElement.styles, formPlaceholderStyles, svgStyles, quantityToggleStyle];\n\n /** @internal */\n static get scopedElements() {\n return {\n \"sgds-input\": SgdsInput,\n \"sgds-icon-button\": SgdsIconButton,\n \"sgds-icon\": SgdsIcon\n };\n }\n /** @internal */\n @query(\"sgds-icon-button[ariaLabel^='increase by']\") private plusBtn: HTMLButtonElement;\n /** @internal */\n @query(\"sgds-icon-button[ariaLabel^='decrease by']\") private minusBtn: HTMLButtonElement;\n\n /** Controls the size of the quantity toggle */\n @property() size: \"sm\" | \"md\" = \"md\";\n\n /** The input's value. Set to 0 by default */\n @property({ type: Number, reflect: true }) value = 0;\n\n // /** The quantity toggle's button variants */\n // @property({ type: String }) iconButtonVariant = \"ghost\";\n\n /** Controls the incremental / decremental value of the input */\n @property({ type: Number }) step = 1;\n\n /** The input's minimum value. Only applies number input types. */\n @property() min: number;\n\n /** The input's maximum value. Only applies number input types. */\n @property() max: number;\n /** Allows invalidFeedback, invalid and valid styles to be visible with the input */\n @property({ type: String, reflect: true }) hasFeedback: \"style\" | \"text\" | \"both\";\n\n /**Feedback text for error state when validated */\n @property({ type: String, reflect: true }) invalidFeedback: string;\n\n /** Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */\n @defaultValue()\n defaultValue = 0;\n\n @queryAsync(\"sgds-input\") private _sgdsInput: Promise<SgdsInput>;\n\n /**\n * Checks for validity. Under the hood, HTMLFormElement's reportValidity method calls this method to check for component's validity state\n * Note that the native error popup is prevented for SGDS form components by default. Instead the validation message shows up in the feedback container of SgdsInput\n */\n public reportValidity(): boolean {\n return this._mixinReportValidity();\n }\n /**\n * Checks for validity without any native error popup message\n */\n public checkValidity(): boolean {\n return this._mixinCheckValidity();\n }\n\n /**\n * Returns the ValidityState object\n */\n public get validity(): ValidityState {\n return this._mixinGetValidity();\n }\n /**\n * Returns the validation message based on the ValidityState\n */\n public get validationMessage() {\n return this._mixinGetValidationMessage();\n }\n\n private async _handleChange() {\n const sgdsInput = await this._sgdsInput;\n if (parseInt(sgdsInput.value) < this.step || sgdsInput.value === \"\") {\n sgdsInput.value = \"0\";\n }\n this.value = parseInt(sgdsInput.value);\n this._mixinSetFormValue();\n this._mixinValidate(sgdsInput.input);\n this.invalid = !this._mixinReportValidity();\n }\n private async _handleInputChange() {\n const sgdsInput = await this._sgdsInput;\n this.invalid = false;\n if (parseInt(sgdsInput.value) < this.step || sgdsInput.value === \"\") {\n sgdsInput.value = \"0\";\n }\n this.value = parseInt(sgdsInput.value);\n this._mixinSetFormValue();\n this._mixinValidate(sgdsInput.input);\n }\n\n private async _mixinResetFormControl() {\n const sgdsInput = await this._sgdsInput;\n this.value = this.defaultValue;\n sgdsInput.input.value = this.value.toString();\n this._mixinResetValidity(sgdsInput.input);\n }\n\n private _handleKeyDown(event: KeyboardEvent) {\n const allowedKeys = [\n \"Backspace\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n ...Array.from(Array(10).keys()).map(key => key.toString()),\n \"Tab\"\n ];\n\n // Allow keydown event only if the pressed key is in the allowedKeys array\n if (!allowedKeys.includes(event.key)) {\n event.preventDefault();\n }\n }\n\n private _handleInvalid() {\n this.invalid = true;\n }\n private _handleValid() {\n this.invalid = false;\n }\n\n /** Simulates a click on the plus button */\n public plus() {\n this.plusBtn.click();\n }\n\n /** Simulates a click on the minus button */\n public minus() {\n this.minusBtn.click();\n }\n\n private async _onPlus(event: MouseEvent) {\n const sgdsInput = await this._sgdsInput;\n event.preventDefault();\n event.stopPropagation();\n this.value = parseInt(sgdsInput.value) + parseInt(sgdsInput.step.toString());\n this._validateOnClick(sgdsInput.input);\n }\n private async _onMinus(event: MouseEvent) {\n const sgdsInput = await this._sgdsInput;\n event.preventDefault();\n event.stopPropagation();\n if (this.value < this.step) {\n this.value = 0;\n } else {\n this.value = parseInt(sgdsInput.value) - parseInt(sgdsInput.step.toString());\n }\n\n this._validateOnClick(sgdsInput.input);\n }\n\n /**\n * Validates the input on button clicks of the toggle.\n * Input is validated every time the button is click to update the invalid state\n * to indiciate the validity of quantity toggle\n * @param input native HTMLInputElement\n */\n private async _validateOnClick(input: HTMLInputElement) {\n const sgdsInput = await this._sgdsInput;\n await sgdsInput.updateComplete;\n this._mixinSetFormValue();\n this._mixinValidate(input);\n this.invalid = !this._mixinReportValidity();\n }\n\n protected _renderFeedback() {\n const wantFeedbackText = this.hasFeedback === \"both\" || this.hasFeedback === \"text\";\n return this.invalid && wantFeedbackText\n ? html` <div class=\"invalid-feedback-container\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path\n d=\"M17.5 10C17.5 14.1421 14.1421 17.5 10 17.5C5.85786 17.5 2.5 14.1421 2.5 10C2.5 5.85786 5.85786 2.5 10 2.5C14.1421 2.5 17.5 5.85786 17.5 10ZM10 6.25C9.49805 6.25 9.10584 6.68339 9.15578 7.18285L9.48461 10.4711C9.51109 10.7359 9.7339 10.9375 10 10.9375C10.2661 10.9375 10.4889 10.7359 10.5154 10.4711L10.8442 7.18285C10.8942 6.68339 10.5019 6.25 10 6.25ZM10.0014 11.875C9.48368 11.875 9.06394 12.2947 9.06394 12.8125C9.06394 13.3303 9.48368 13.75 10.0014 13.75C10.5192 13.75 10.9389 13.3303 10.9389 12.8125C10.9389 12.2947 10.5192 11.875 10.0014 11.875Z\"\n fill=\"#B90000\"\n />\n </svg>\n <div id=\"${this._controlId}-invalid\" class=\"invalid-feedback\">\n ${this.invalidFeedback ? this.invalidFeedback : this.validationMessage}\n </div>\n </div>`\n : html`${this._renderHintText()}`;\n }\n\n protected _renderLabel() {\n const labelTemplate = html`\n <label\n for=${this._controlId}\n id=${this._labelId}\n class=${classMap({\n \"form-label\": true,\n disabled: this.disabled\n })}\n >${this.label}</label\n >\n `;\n return this.label && labelTemplate;\n }\n\n protected _renderHintText() {\n const hintTextTemplate = html` <div id=\"${this._controlId}Help\" class=\"form-text\">${this.hintText}</div> `;\n return this.hintText && hintTextTemplate;\n }\n\n render() {\n return html`\n <div class=\"form-control-container\">\n ${this._renderLabel()}\n <div class=\"input-group\">\n <sgds-icon-button\n variant=\"ghost\"\n ariaLabel=${`decrease by ${this.step}`}\n ?disabled=${this.disabled || (this.min !== undefined ? this.value <= this.min : this.value < 1)}\n @click=${this._onMinus}\n >\n <sgds-icon name=\"dash\"></sgds-icon>\n </sgds-icon-button>\n <sgds-input\n type=\"number\"\n class=\"quantity-toggle\"\n name=${ifDefined(this.name)}\n step=${ifDefined(this.step)}\n min=${ifDefined(this.min)}\n max=${ifDefined(this.max)}\n .value=${live(this.value)}\n @sgds-change=${this._handleChange}\n @sgds-input=${this._handleInputChange}\n @sgds-invalid=${this._handleInvalid}\n @sgds-valid=${this._handleValid}\n @keydown=${this._handleKeyDown}\n ?disabled=${this.disabled}\n id=${this._controlId}\n ?invalid=${this.invalid}\n hasFeedback=${ifDefined(this.hasFeedback !== \"text\" ? \"style\" : undefined)}\n ></sgds-input>\n <sgds-icon-button\n variant=\"ghost\"\n ariaLabel=${`increase by ${this.step}`}\n @click=${this._onPlus}\n ?disabled=${this.disabled || (this.max !== undefined && this.max && this.value >= this.max)}\n ><sgds-icon name=\"plus\"></sgds-icon>\n </sgds-icon-button>\n </div>\n <div id=\"announcer\" role=\"region\" aria-live=\"assertive\" class=\"visually-hidden\">${this.value}</div>\n ${this._renderFeedback()}\n </div>\n `;\n }\n}\n\nexport default SgdsQuantityToggle;\n"],"names":["SgdsFormValidatorMixin","ScopedElementsMixin","FormControlElement","SgdsInput","SgdsIconButton","SgdsIcon","html","classMap","ifDefined","live","formPlaceholderStyles","svgStyles","quantityToggleStyle","__decorate","query","property","defaultValue","queryAsync"],"mappings":"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"}
|