@pega/cosmos-react-core 8.8.0 → 9.0.0-build.10.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/lib/components/AppShell/AppHeader.d.ts.map +1 -1
- package/lib/components/AppShell/AppHeader.js +4 -1
- package/lib/components/AppShell/AppHeader.js.map +1 -1
- package/lib/components/AppShell/NavigationListItemWrapper.d.ts.map +1 -1
- package/lib/components/AppShell/NavigationListItemWrapper.js +3 -4
- package/lib/components/AppShell/NavigationListItemWrapper.js.map +1 -1
- package/lib/components/AppShell/ThemeSwitcher.d.ts +9 -0
- package/lib/components/AppShell/ThemeSwitcher.d.ts.map +1 -0
- package/lib/components/AppShell/ThemeSwitcher.js +58 -0
- package/lib/components/AppShell/ThemeSwitcher.js.map +1 -0
- package/lib/components/AppShell/ThemeSwitcher.test-ids.d.ts +2 -0
- package/lib/components/AppShell/ThemeSwitcher.test-ids.d.ts.map +1 -0
- package/lib/components/AppShell/ThemeSwitcher.test-ids.js +3 -0
- package/lib/components/AppShell/ThemeSwitcher.test-ids.js.map +1 -0
- package/lib/components/Avatar/Avatar.d.ts.map +1 -1
- package/lib/components/Avatar/Avatar.js +10 -4
- package/lib/components/Avatar/Avatar.js.map +1 -1
- package/lib/components/Banner/Banner.js +1 -1
- package/lib/components/Banner/Banner.js.map +1 -1
- package/lib/components/ComboBox/ComboBox.d.ts.map +1 -1
- package/lib/components/ComboBox/ComboBox.js +9 -4
- package/lib/components/ComboBox/ComboBox.js.map +1 -1
- package/lib/components/ComboBox/ComboBox.types.d.ts +5 -0
- package/lib/components/ComboBox/ComboBox.types.d.ts.map +1 -1
- package/lib/components/ComboBox/ComboBox.types.js.map +1 -1
- package/lib/components/CompositeInput/CompositeInput.d.ts.map +1 -1
- package/lib/components/CompositeInput/CompositeInput.js +6 -10
- package/lib/components/CompositeInput/CompositeInput.js.map +1 -1
- package/lib/components/Configuration/Configuration.d.ts +6 -0
- package/lib/components/Configuration/Configuration.d.ts.map +1 -1
- package/lib/components/Configuration/Configuration.js +5 -1
- package/lib/components/Configuration/Configuration.js.map +1 -1
- package/lib/components/CreditCard/CreditCardInput.d.ts +1 -1
- package/lib/components/CreditCard/CreditCardInput.js +1 -1
- package/lib/components/CreditCard/CreditCardInput.js.map +1 -1
- package/lib/components/Currency/CurrencyInput.d.ts.map +1 -1
- package/lib/components/Currency/CurrencyInput.js +2 -2
- package/lib/components/Currency/CurrencyInput.js.map +1 -1
- package/lib/components/DateTime/Input/DateInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/DateInput.js +3 -3
- package/lib/components/DateTime/Input/DateInput.js.map +1 -1
- package/lib/components/DateTime/Input/DateRangeInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/DateRangeInput.js +1 -1
- package/lib/components/DateTime/Input/DateRangeInput.js.map +1 -1
- package/lib/components/DateTime/Input/DateTime.styles.d.ts.map +1 -1
- package/lib/components/DateTime/Input/DateTime.styles.js +0 -4
- package/lib/components/DateTime/Input/DateTime.styles.js.map +1 -1
- package/lib/components/DateTime/Input/DateTimeInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/DateTimeInput.js +17 -2
- package/lib/components/DateTime/Input/DateTimeInput.js.map +1 -1
- package/lib/components/DateTime/Input/Duration/DurationInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/Duration/DurationInput.js +3 -1
- package/lib/components/DateTime/Input/Duration/DurationInput.js.map +1 -1
- package/lib/components/DateTime/Input/MonthInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/MonthInput.js +2 -2
- package/lib/components/DateTime/Input/MonthInput.js.map +1 -1
- package/lib/components/DateTime/Input/QuarterInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/QuarterInput.js +2 -2
- package/lib/components/DateTime/Input/QuarterInput.js.map +1 -1
- package/lib/components/DateTime/Input/TimeInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/TimeInput.js +2 -2
- package/lib/components/DateTime/Input/TimeInput.js.map +1 -1
- package/lib/components/DateTime/Input/TimeRangeInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/TimeRangeInput.js +1 -1
- package/lib/components/DateTime/Input/TimeRangeInput.js.map +1 -1
- package/lib/components/DateTime/Input/WeekInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/WeekInput.js +3 -3
- package/lib/components/DateTime/Input/WeekInput.js.map +1 -1
- package/lib/components/Dialog/Dialog.types.d.ts +4 -0
- package/lib/components/Dialog/Dialog.types.d.ts.map +1 -1
- package/lib/components/Dialog/Dialog.types.js.map +1 -1
- package/lib/components/Dialog/FormDialog.d.ts.map +1 -1
- package/lib/components/Dialog/FormDialog.js +7 -2
- package/lib/components/Dialog/FormDialog.js.map +1 -1
- package/lib/components/Dialog/InfoDialog.js +1 -1
- package/lib/components/Dialog/InfoDialog.js.map +1 -1
- package/lib/components/FieldGroup/FieldGroupList.d.ts.map +1 -1
- package/lib/components/FieldGroup/FieldGroupList.js +4 -2
- package/lib/components/FieldGroup/FieldGroupList.js.map +1 -1
- package/lib/components/FieldGroup/FieldGroupList.utils.d.ts +1 -1
- package/lib/components/FieldGroup/FieldGroupList.utils.js +2 -2
- package/lib/components/FieldGroup/FieldGroupList.utils.js.map +1 -1
- package/lib/components/FieldValueList/FieldValueList.d.ts.map +1 -1
- package/lib/components/FieldValueList/FieldValueList.js +8 -5
- package/lib/components/FieldValueList/FieldValueList.js.map +1 -1
- package/lib/components/File/FileInput.d.ts.map +1 -1
- package/lib/components/File/FileInput.js +2 -1
- package/lib/components/File/FileInput.js.map +1 -1
- package/lib/components/File/FileItem.d.ts.map +1 -1
- package/lib/components/File/FileItem.js +2 -2
- package/lib/components/File/FileItem.js.map +1 -1
- package/lib/components/FormField/FormField.d.ts.map +1 -1
- package/lib/components/FormField/FormField.js +3 -2
- package/lib/components/FormField/FormField.js.map +1 -1
- package/lib/components/Fullscreen/Fullscreen.d.ts.map +1 -1
- package/lib/components/Fullscreen/Fullscreen.js +1 -0
- package/lib/components/Fullscreen/Fullscreen.js.map +1 -1
- package/lib/components/Icon/Icon.d.ts.map +1 -1
- package/lib/components/Icon/Icon.js +7 -6
- package/lib/components/Icon/Icon.js.map +1 -1
- package/lib/components/Icon/streamline-icons/archive-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/archive-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/archive-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/archive-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/archive.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/archive.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/archive.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/archive.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/article-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/article-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/article-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/article-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/article.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/article.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/article.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/article.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/bell-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/bell-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/bell-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/bell-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/browser-site.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/browser-site.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/browser-site.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/browser-site.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/circle-mixed-right.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/circle-mixed-right.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/circle-mixed-right.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/circle-mixed-right.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/circle-stacked-mixed.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/circle-stacked-mixed.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/circle-stacked-mixed.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/circle-stacked-mixed.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/circle-stacked.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/circle-stacked.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/circle-stacked.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/circle-stacked.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/cloud-nodes.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/cloud-nodes.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/cloud-nodes.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/cloud-nodes.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/condition-critical.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/condition-critical.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/condition-critical.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/condition-critical.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/condition-satisfactory.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/condition-satisfactory.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/condition-satisfactory.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/condition-satisfactory.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/disc-document.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/disc-document.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/disc-document.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/disc-document.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/disc-nodes.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/disc-nodes.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/disc-nodes.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/disc-nodes.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/document-doc.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/document-doc.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/document-doc.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/document-doc.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/document-json.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/document-json.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/document-json.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/document-json.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/document-xls.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/document-xls.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/document-xls.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/document-xls.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/documents.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/documents.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/documents.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/documents.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/field-cursor.icon.js +1 -1
- package/lib/components/Icon/streamline-icons/field-cursor.icon.js.map +1 -1
- package/lib/components/Icon/streamline-icons/filter-on.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/filter-on.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/filter-on.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/filter-on.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/freeze-column.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/freeze-column.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/freeze-column.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/freeze-column.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/galaxy.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/galaxy.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/galaxy.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/galaxy.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/grid-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/grid-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/grid-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/grid-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/grid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/grid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/grid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/grid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/language-pack.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/language-pack.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/language-pack.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/language-pack.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/layout.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/layout.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/layout.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/layout.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/lock-closed.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/lock-closed.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/lock-closed.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/lock-closed.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/mail-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/mail-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/mail-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/mail-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/mail.icon.d.ts.map +1 -1
- package/lib/components/Icon/streamline-icons/mail.icon.js +1 -1
- package/lib/components/Icon/streamline-icons/mail.icon.js.map +1 -1
- package/lib/components/Icon/streamline-icons/mobius.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/mobius.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/mobius.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/mobius.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/phone-in-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/phone-in-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/phone-in-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/phone-in-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/picture-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/picture-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/picture-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/picture-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/plug-connect.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/plug-connect.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/plug-connect.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/plug-connect.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/return.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/return.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/return.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/return.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/robot-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/robot-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/robot-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/robot-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/shapes.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/shapes.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/shapes.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/shapes.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/share-case.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/share-case.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/share-case.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/share-case.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/share-document.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/share-document.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/share-document.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/share-document.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/shield-lock.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/shield-lock.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/shield-lock.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/shield-lock.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/slideshow-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/slideshow-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/slideshow-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/slideshow-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/speaker-on-sold.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/speaker-on-sold.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/speaker-on-sold.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/speaker-on-sold.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/speaker-on.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/speaker-on.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/speaker-on.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/speaker-on.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/table-disc.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/table-disc.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/table-disc.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/table-disc.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/translate.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/translate.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/translate.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/translate.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-check-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/user-check-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/user-check-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/user-check-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-close-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/user-close-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/user-close-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/user-close-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-close.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/user-close.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/user-close.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/user-close.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-female-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/user-female-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/user-female-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/user-female-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-female.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/user-female.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/user-female.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/user-female.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-list-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/user-list-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/user-list-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/user-list-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-list.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/user-list.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/user-list.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/user-list.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-plus-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/user-plus-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/user-plus-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/user-plus-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-plus.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/user-plus.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/user-plus.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/user-plus.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-question-mark-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/user-question-mark-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/user-question-mark-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/user-question-mark-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-question-mark.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/user-question-mark.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/user-question-mark.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/user-question-mark.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-search-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/user-search-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/user-search-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/user-search-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-search.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/user-search.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/user-search.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/user-search.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-star-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/user-star-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/user-star-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/user-star-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/user-star.icon.js +2 -2
- package/lib/components/Icon/streamline-icons/user-star.icon.js.map +1 -1
- package/lib/components/Icon/streamline-icons/users-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/users-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/users-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/users-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/users.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/users.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/users.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/users.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/versions.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/versions.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/versions.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/versions.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/video-off.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/video-off.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/video-off.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/video-off.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/video-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/video-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/video-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/video-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/video.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/video.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/video.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/video.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/voicemail.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/voicemail.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/voicemail.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/voicemail.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/vr-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/vr-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/vr-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/vr-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/vr.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/vr.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/vr.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/vr.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/walkie-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/walkie-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/walkie-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/walkie-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/walkie.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/walkie.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/walkie.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/walkie.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/wallet-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/wallet-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/wallet-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/wallet-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/wallet.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/wallet.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/wallet.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/wallet.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/watch-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/watch-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/watch-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/watch-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/watch.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/watch.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/watch.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/watch.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/waypoint-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/waypoint-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/waypoint-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/waypoint-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/waypoint.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/waypoint.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/waypoint.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/waypoint.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/webcam-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/webcam-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/webcam-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/webcam-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/webcam.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/webcam.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/webcam.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/webcam.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/whatsapp.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/whatsapp.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/whatsapp.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/whatsapp.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/wifi-none.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/wifi-none.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/wifi-none.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/wifi-none.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/wifi-off.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/wifi-off.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/wifi-off.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/wifi-off.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/wizard-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/wizard-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/wizard-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/wizard-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/wizard.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/wizard.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/wizard.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/wizard.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/wrench-solid.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/wrench-solid.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/wrench-solid.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/wrench-solid.icon.js.map +1 -0
- package/lib/components/Icon/streamline-icons/wrench.icon.d.ts +5 -0
- package/lib/components/Icon/streamline-icons/wrench.icon.d.ts.map +1 -0
- package/lib/components/Icon/streamline-icons/wrench.icon.js +7 -0
- package/lib/components/Icon/streamline-icons/wrench.icon.js.map +1 -0
- package/lib/components/Icon/streamlineIconNames.d.ts +1 -1
- package/lib/components/Icon/streamlineIconNames.d.ts.map +1 -1
- package/lib/components/Icon/streamlineIconNames.js +82 -0
- package/lib/components/Icon/streamlineIconNames.js.map +1 -1
- package/lib/components/IconPicker/IconPicker.d.ts +4 -4
- package/lib/components/IconPicker/IconPicker.d.ts.map +1 -1
- package/lib/components/IconPicker/IconPicker.js +19 -25
- package/lib/components/IconPicker/IconPicker.js.map +1 -1
- package/lib/components/Input/Input.js +1 -1
- package/lib/components/Input/Input.js.map +1 -1
- package/lib/components/Input/Input.styles.d.ts.map +1 -1
- package/lib/components/Input/Input.styles.js +2 -17
- package/lib/components/Input/Input.styles.js.map +1 -1
- package/lib/components/Lightbox/Lightbox.d.ts +1 -1
- package/lib/components/Lightbox/Lightbox.d.ts.map +1 -1
- package/lib/components/Lightbox/Lightbox.js +9 -3
- package/lib/components/Lightbox/Lightbox.js.map +1 -1
- package/lib/components/Lightbox/Lightbox.test-ids.d.ts +1 -1
- package/lib/components/Lightbox/Lightbox.test-ids.d.ts.map +1 -1
- package/lib/components/Lightbox/Lightbox.test-ids.js +1 -0
- package/lib/components/Lightbox/Lightbox.test-ids.js.map +1 -1
- package/lib/components/ListToolbar/ListToolbar.d.ts.map +1 -1
- package/lib/components/ListToolbar/ListToolbar.js +100 -39
- package/lib/components/ListToolbar/ListToolbar.js.map +1 -1
- package/lib/components/ListToolbar/ListToolbar.styles.d.ts.map +1 -1
- package/lib/components/ListToolbar/ListToolbar.styles.js +11 -16
- package/lib/components/ListToolbar/ListToolbar.styles.js.map +1 -1
- package/lib/components/ListToolbar/ListToolbar.types.d.ts +7 -3
- package/lib/components/ListToolbar/ListToolbar.types.d.ts.map +1 -1
- package/lib/components/ListToolbar/ListToolbar.types.js.map +1 -1
- package/lib/components/Location/CurrentLocationButton.d.ts.map +1 -1
- package/lib/components/Location/CurrentLocationButton.js +4 -2
- package/lib/components/Location/CurrentLocationButton.js.map +1 -1
- package/lib/components/Location/GoogleMapsAPI.d.ts +43 -0
- package/lib/components/Location/GoogleMapsAPI.d.ts.map +1 -0
- package/lib/components/Location/GoogleMapsAPI.js +244 -0
- package/lib/components/Location/GoogleMapsAPI.js.map +1 -0
- package/lib/components/Location/Location.types.d.ts +3 -2
- package/lib/components/Location/Location.types.d.ts.map +1 -1
- package/lib/components/Location/Location.types.js.map +1 -1
- package/lib/components/Location/LocationAPI.types.d.ts +23 -0
- package/lib/components/Location/LocationAPI.types.d.ts.map +1 -0
- package/lib/components/Location/LocationAPI.types.js +2 -0
- package/lib/components/Location/LocationAPI.types.js.map +1 -0
- package/lib/components/Location/LocationDisplay.d.ts.map +1 -1
- package/lib/components/Location/LocationDisplay.js +5 -3
- package/lib/components/Location/LocationDisplay.js.map +1 -1
- package/lib/components/Location/LocationInput.d.ts.map +1 -1
- package/lib/components/Location/LocationInput.js +25 -22
- package/lib/components/Location/LocationInput.js.map +1 -1
- package/lib/components/Location/LocationView.d.ts.map +1 -1
- package/lib/components/Location/LocationView.js +8 -5
- package/lib/components/Location/LocationView.js.map +1 -1
- package/lib/components/Location/index.d.ts +2 -1
- package/lib/components/Location/index.d.ts.map +1 -1
- package/lib/components/Location/index.js +2 -1
- package/lib/components/Location/index.js.map +1 -1
- package/lib/components/Location/utils.d.ts +3 -19
- package/lib/components/Location/utils.d.ts.map +1 -1
- package/lib/components/Location/utils.js +7 -161
- package/lib/components/Location/utils.js.map +1 -1
- package/lib/components/Modal/Modal.styles.js +5 -5
- package/lib/components/Modal/Modal.styles.js.map +1 -1
- package/lib/components/MultiStepForm/MultiStepForm.d.ts.map +1 -1
- package/lib/components/MultiStepForm/MultiStepForm.js +1 -6
- package/lib/components/MultiStepForm/MultiStepForm.js.map +1 -1
- package/lib/components/Number/NumberInput.d.ts.map +1 -1
- package/lib/components/Number/NumberInput.js +3 -1
- package/lib/components/Number/NumberInput.js.map +1 -1
- package/lib/components/Number/NumberRangeInput.d.ts.map +1 -1
- package/lib/components/Number/NumberRangeInput.js +3 -1
- package/lib/components/Number/NumberRangeInput.js.map +1 -1
- package/lib/components/PageTemplates/GridLayout/EditorBackground.js +1 -1
- package/lib/components/PageTemplates/GridLayout/EditorBackground.js.map +1 -1
- package/lib/components/PageTemplates/GridLayout/GridLayoutEditor.js +1 -1
- package/lib/components/PageTemplates/GridLayout/GridLayoutEditor.js.map +1 -1
- package/lib/components/PageTemplates/GridLayout/GridLayoutViewer.d.ts +5 -0
- package/lib/components/PageTemplates/GridLayout/GridLayoutViewer.d.ts.map +1 -1
- package/lib/components/PageTemplates/GridLayout/GridLayoutViewer.js +2 -2
- package/lib/components/PageTemplates/GridLayout/GridLayoutViewer.js.map +1 -1
- package/lib/components/PageTemplates/GridLayout/config.d.ts +1 -1
- package/lib/components/PageTemplates/GridLayout/config.d.ts.map +1 -1
- package/lib/components/PageTemplates/GridLayout/config.js +3 -3
- package/lib/components/PageTemplates/GridLayout/config.js.map +1 -1
- package/lib/components/PageTemplates/PageTemplates.d.ts +6 -1
- package/lib/components/PageTemplates/PageTemplates.d.ts.map +1 -1
- package/lib/components/PageTemplates/PageTemplates.js +17 -8
- package/lib/components/PageTemplates/PageTemplates.js.map +1 -1
- package/lib/components/Phone/PhoneInput.d.ts.map +1 -1
- package/lib/components/Phone/PhoneInput.js +2 -2
- package/lib/components/Phone/PhoneInput.js.map +1 -1
- package/lib/components/Popover/Popover.styles.d.ts.map +1 -1
- package/lib/components/Popover/Popover.styles.js +18 -8
- package/lib/components/Popover/Popover.styles.js.map +1 -1
- package/lib/components/Popover/modifiers.d.ts.map +1 -1
- package/lib/components/Popover/modifiers.js +10 -0
- package/lib/components/Popover/modifiers.js.map +1 -1
- package/lib/components/RadioCheck/RadioCheck.d.ts.map +1 -1
- package/lib/components/RadioCheck/RadioCheck.js +5 -8
- package/lib/components/RadioCheck/RadioCheck.js.map +1 -1
- package/lib/components/Switch/Switch.d.ts.map +1 -1
- package/lib/components/Switch/Switch.js +5 -13
- package/lib/components/Switch/Switch.js.map +1 -1
- package/lib/components/Tabs/TabPanel.d.ts.map +1 -1
- package/lib/components/Tabs/TabPanel.js +1 -0
- package/lib/components/Tabs/TabPanel.js.map +1 -1
- package/lib/components/Toaster/Toaster.d.ts.map +1 -1
- package/lib/components/Toaster/Toaster.js +9 -5
- package/lib/components/Toaster/Toaster.js.map +1 -1
- package/lib/components/Toaster/Toaster.types.d.ts +3 -3
- package/lib/components/Toaster/Toaster.types.d.ts.map +1 -1
- package/lib/components/Toaster/Toaster.types.js.map +1 -1
- package/lib/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/lib/components/Tooltip/Tooltip.js +3 -1
- package/lib/components/Tooltip/Tooltip.js.map +1 -1
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/index.d.ts.map +1 -1
- package/lib/hooks/index.js +1 -0
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/useAbortController.d.ts +7 -0
- package/lib/hooks/useAbortController.d.ts.map +1 -0
- package/lib/hooks/useAbortController.js +21 -0
- package/lib/hooks/useAbortController.js.map +1 -0
- package/lib/hooks/useBreakpoint.d.ts.map +1 -1
- package/lib/hooks/useBreakpoint.js +5 -2
- package/lib/hooks/useBreakpoint.js.map +1 -1
- package/lib/hooks/useI18n.d.ts +156 -0
- package/lib/hooks/useI18n.d.ts.map +1 -1
- package/lib/hooks/useItemIntersection.d.ts +1 -1
- package/lib/hooks/useItemIntersection.js +2 -2
- package/lib/hooks/useItemIntersection.js.map +1 -1
- package/lib/hooks/useThemeMode.d.ts +10 -0
- package/lib/hooks/useThemeMode.d.ts.map +1 -0
- package/lib/hooks/useThemeMode.js +11 -0
- package/lib/hooks/useThemeMode.js.map +1 -0
- package/lib/i18n/default.d.ts +160 -0
- package/lib/i18n/default.d.ts.map +1 -1
- package/lib/i18n/default.js +173 -2
- package/lib/i18n/default.js.map +1 -1
- package/lib/i18n/i18n.d.ts +156 -0
- package/lib/i18n/i18n.d.ts.map +1 -1
- package/lib/styles/GlobalStyle.d.ts +2 -2
- package/lib/styles/GlobalStyle.d.ts.map +1 -1
- package/lib/styles/GlobalStyle.js +5 -3
- package/lib/styles/GlobalStyle.js.map +1 -1
- package/lib/styles/animations.d.ts +9 -0
- package/lib/styles/animations.d.ts.map +1 -0
- package/lib/styles/animations.js +78 -0
- package/lib/styles/animations.js.map +1 -0
- package/lib/styles/gradients.d.ts +2 -0
- package/lib/styles/gradients.d.ts.map +1 -1
- package/lib/styles/gradients.js +4 -1
- package/lib/styles/gradients.js.map +1 -1
- package/lib/styles/index.d.ts +1 -0
- package/lib/styles/index.d.ts.map +1 -1
- package/lib/styles/index.js +1 -0
- package/lib/styles/index.js.map +1 -1
- package/lib/styles/utils.d.ts +1 -1
- package/lib/styles/utils.d.ts.map +1 -1
- package/lib/styles/utils.js +1 -1
- package/lib/styles/utils.js.map +1 -1
- package/lib/theme/index.d.ts +2 -0
- package/lib/theme/index.d.ts.map +1 -1
- package/lib/theme/index.js +2 -0
- package/lib/theme/index.js.map +1 -1
- package/lib/theme/theme.d.ts +150 -0
- package/lib/theme/theme.d.ts.map +1 -1
- package/lib/theme/themeDefinition.json +82 -0
- package/lib/theme/themeOverrides.schema.json +102 -0
- package/lib/theme/themes/studioDarkTheme.json +240 -0
- package/lib/theme/themes/studioTheme.json +240 -0
- package/lib/utils/debounce.d.ts +4 -1
- package/lib/utils/debounce.d.ts.map +1 -1
- package/lib/utils/debounce.js +18 -2
- package/lib/utils/debounce.js.map +1 -1
- package/lib/utils/getFocusables.d.ts +4 -2
- package/lib/utils/getFocusables.d.ts.map +1 -1
- package/lib/utils/getFocusables.js +9 -7
- package/lib/utils/getFocusables.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurrencyInput.js","sourceRoot":"","sources":["../../../src/components/Currency/CurrencyInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,MAAM,EACP,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,gCAAgC,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,aAAa,GAAwD,UAAU,CACnF,SAAS,aAAa,CACpB,KAA0C,EAC1C,GAA8B;IAE9B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,EACJ,MAAM,EACN,EAAE,GAAG,GAAG,EACR,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,KAAK,EAAE,SAAS,GAAG,EAAE,EACrB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,mBAAmB,EACnB,eAAe,EACf,WAAW,GAAG,IAAI,EAClB,mBAAmB,GAAG,IAAI,EAC1B,GAAG,GAAG,MAAM,CAAC,gBAAgB,EAC7B,GAAG,GAAG,MAAM,CAAC,gBAAgB,EAC7B,IAAI,GAAG,CAAC,EACR,iBAAiB,GAAG,KAAK,EACzB,qBAAqB,GAAG,CAAC,EACzB,SAAS,EACT,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IAEV,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAE5D,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEtC,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAEzC,MAAM,oBAAoB,GAAG,OAAO,CAClC,GAAG,EAAE,CAAC,CAAC,eAAe,IAAI,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,EACzF,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,MAAM,qBAAqB,GAAG,OAAO,CACnC,GAAG,EAAE,CAAC,gCAAgC,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACpE,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAC/B,CAAC;IAEF,MAAM,gBAAgB,GAAG,WAAW;QAClC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;QACxD,CAAC,CAAC,CAAC,CAAC;IAEN,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CACH,cAAc,CAAC,MAAM,EAAE;QACrB,eAAe,EAAE,MAAM;QACvB,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACpD,QAAQ,EAAE,oBAAoB;KAC/B,CAAC,EACJ,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAC/B,CAAC;IAEF,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,GAAG,SAAS,CAAC;IACtB,IAAI,CAAC,QAAQ,IAAI,oBAAoB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,KAAK,GAAG,GAAG,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,MAAc,EAAE,EAAE;QACjB,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE;YAC7D,mBAAmB;YACnB,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;YAC7C,gBAAgB;SACjB,CAAC,CAAC;IACL,CAAC,EACD,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,EAAE,oBAAoB,CAAC,CACzF,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,CAAgC,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAClC,MAAM,iBAAiB,GAAG,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACrF,IAAI,iBAAiB,KAAK,KAAK;YAAE,OAAO;QACxC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAkC,EAAE,EAAE;QACvD,IAAI,QAAQ;YAAE,OAAO;QACrB,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC;QAC9B,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;YACd,KAAK,SAAS;gBACZ,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,WAAW;gBACd,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,WAAW;oBAAE,CAAC,CAAC,cAAc,EAAE,CAAC;gBACrC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBACtC,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,WAAW,EAAE,CAAC;wBACrF,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;oBAC9E,CAAC;oBACD,CAAC,CAAC,cAAc,EAAE,CAAC;gBACrB,CAAC;qBAAM,IACL,KAAK,CAAC,cAAc,KAAK,IAAI;oBAC7B,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EACzD,CAAC;oBACD,QAAQ,CACN,eAAe,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,WAAW,EAAE,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAChF,CAAC;oBACF,CAAC,CAAC,cAAc,EAAE,CAAC;gBACrB,CAAC;gBACD,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,CAAC,CAAC,cAAc,EAAE,CAAC;gBAC9C,MAAM;YACR,QAAQ;QACV,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,CAA+B,EAAE,EAAE;QAC5D,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,oBAAoB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClD,aAAa,GAAG,GAAG,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC;aAC5C,CAAC;YACJ,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;gBAC5B,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC1B,CAAC;YAED,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,GAAG,CAAC,CAAC;IAE7F,MAAM,IAAI,GAAG,CACX,8BACE,KAAC,mBAAmB,mBACL,OAAO,CAAC,OAAO,EAC5B,QAAQ,EAAE,aAAa,EACvB,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,KACV,SAAS,EACb,mBAAmB,EAAE,mBAAmB,EACxC,SAAS,EAAC,SAAS,EACnB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,iBAAiB,sBACP,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAClE,SAAS,EAAE,eAAe,CAAC,gBAAgB,EAAE,SAAS,CAAC,GACvD,EACD,oBAAoB,IAAI,CACvB,KAAC,kBAAkB,IAAC,EAAE,EAAE,aAAa,iCAClC,CAAC,CAAC,aAAa,EAAE,CAAC,oBAAoB,CAAC,CAAC,GACtB,CACtB,IACA,CACJ,CAAC;IAEF,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,KAAC,SAAS,IACR,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,mBAAmB,EAAE,mBAAmB,YAEvC,IAAI,GACK,CACb,CAAC,CAAC,CAAC,CACF,IAAI,CACL,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,WAAW,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC","sourcesContent":["import { forwardRef, useCallback, useMemo } from 'react';\nimport type { PropsWithoutRef, KeyboardEvent, ChangeEvent, FocusEvent } from 'react';\n\nimport VisuallyHiddenText from '../VisuallyHiddenText';\nimport FormField from '../FormField';\nimport type { ForwardRefForwardPropsComponent } from '../../types';\nimport {\n useConfiguration,\n useConsolidatedRef,\n useI18n,\n useInputFormatter,\n usePrevious,\n useTestIds,\n useUID\n} from '../../hooks';\nimport {\n getCleanedValue,\n getDecimalSign,\n getDecrementedValue,\n getIncrementedValue\n} from '../Number/utils';\nimport { createClassName, withTestIds } from '../../utils';\n\nimport StyledCurrencyInput from './CurrencyInput.styles';\nimport type CurrencyInputProps from './CurrencyInput.types';\nimport { getCurrencyMinimumFractionDigits, getFormattedValue, isValidCurrency } from './utils';\nimport { getCurrencyInputTestIds } from './Currency.test-ids';\n\nconst CurrencyInput: ForwardRefForwardPropsComponent<CurrencyInputProps> = forwardRef(\n function CurrencyInput(\n props: PropsWithoutRef<CurrencyInputProps>,\n ref: CurrencyInputProps['ref']\n ) {\n const uid = useUID();\n const {\n testId,\n id = uid,\n status,\n label,\n labelHidden,\n info,\n required,\n disabled,\n readOnly,\n additionalInfo,\n value: valueProp = '',\n onChange,\n onBlur,\n onFocus,\n onResolveSuggestion,\n currencyISOCode,\n showDecimal = true,\n showGroupSeparators = true,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n step = 1,\n alwaysShowISOCode = false,\n maximumFractionDigits = 0,\n className,\n ...restProps\n } = props;\n\n const descriptionId = useUID();\n const testIds = useTestIds(testId, getCurrencyInputTestIds);\n\n const { locale } = useConfiguration();\n\n const t = useI18n();\n const inputRef = useConsolidatedRef(ref);\n\n const validCurrencyISOCode = useMemo(\n () => (currencyISOCode && isValidCurrency(currencyISOCode) ? currencyISOCode : undefined),\n [currencyISOCode]\n );\n\n const minimumFractionDigits = useMemo(\n () => getCurrencyMinimumFractionDigits(locale, validCurrencyISOCode),\n [locale, validCurrencyISOCode]\n );\n\n const numberOfDecimals = showDecimal\n ? Math.max(maximumFractionDigits, minimumFractionDigits)\n : 0;\n\n const decimalSign = useMemo(\n () =>\n getDecimalSign(locale, {\n numberingSystem: 'latn',\n style: validCurrencyISOCode ? 'currency' : undefined,\n currency: validCurrencyISOCode\n }),\n [locale, validCurrencyISOCode]\n );\n\n // on initial render only pad the value with 0 if necessary\n const rendered = usePrevious(true);\n let value = valueProp;\n if (!rendered && validCurrencyISOCode && !Number.isNaN(parseFloat(value))) {\n const [integer, fraction = ''] = value.split('.');\n value = `${integer}.${fraction.padEnd(numberOfDecimals, '0')}`;\n }\n\n const formatValue = useCallback(\n (number: string) => {\n return getFormattedValue(number, locale, validCurrencyISOCode, {\n showGroupSeparators,\n showAs: alwaysShowISOCode ? 'code' : 'symbol',\n numberOfDecimals\n });\n },\n [alwaysShowISOCode, numberOfDecimals, showGroupSeparators, locale, validCurrencyISOCode]\n );\n\n const onInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n const cleanedInputValue = getCleanedValue(inputValue, decimalSign, numberOfDecimals);\n if (cleanedInputValue === value) return;\n onChange(cleanedInputValue);\n };\n\n const onKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (readOnly) return;\n const input = e.currentTarget;\n switch (e.key) {\n case 'ArrowUp':\n e.preventDefault();\n onChange(getIncrementedValue(value, min, max, step));\n break;\n case 'ArrowDown':\n e.preventDefault();\n onChange(getDecrementedValue(value, min, max, step));\n break;\n case decimalSign:\n if (!showDecimal) e.preventDefault();\n if (input.value.includes(decimalSign)) {\n if (input.selectionStart && input.value.charAt(input.selectionStart) === decimalSign) {\n input.setSelectionRange(input.selectionStart + 1, input.selectionStart + 1);\n }\n e.preventDefault();\n } else if (\n input.selectionStart !== null &&\n !input.value.charAt(input.selectionStart - 1).match(/\\d/)\n ) {\n onChange(\n getCleanedValue(`${input.value}0${decimalSign}`, decimalSign, numberOfDecimals)\n );\n e.preventDefault();\n }\n break;\n case '-':\n if (value.startsWith('-')) e.preventDefault();\n break;\n default:\n }\n };\n\n const onInputFocusEvent = (e: FocusEvent<HTMLInputElement>) => {\n let parsableValue = value;\n if (validCurrencyISOCode && !Number.isNaN(parseFloat(value))) {\n const [integer, fraction = ''] = value.split('.');\n parsableValue = `${integer}.${fraction.padEnd(numberOfDecimals, '0')}`;\n }\n\n if (e.type === 'focus') onFocus?.(parsableValue);\n else {\n if (parsableValue !== value) {\n onChange(parsableValue);\n }\n\n onBlur?.(parsableValue);\n }\n };\n\n const formattedValue = useInputFormatter(inputRef, value, formatValue, `0-9${decimalSign}-`);\n\n const Comp = (\n <>\n <StyledCurrencyInput\n data-testid={testIds.control}\n onChange={onInputChange}\n id={id}\n readOnly={readOnly}\n required={required}\n disabled={disabled}\n status={status}\n {...restProps}\n onResolveSuggestion={onResolveSuggestion}\n inputMode='numeric'\n ref={inputRef}\n value={formattedValue}\n onKeyDown={onKeyDown}\n onFocus={onInputFocusEvent}\n onBlur={onInputFocusEvent}\n aria-describedby={validCurrencyISOCode ? descriptionId : undefined}\n className={createClassName('currency-input', className)}\n />\n {validCurrencyISOCode && (\n <VisuallyHiddenText id={descriptionId} aria-hidden>\n {t('measured_in', [validCurrencyISOCode])}\n </VisuallyHiddenText>\n )}\n </>\n );\n\n return label ? (\n <FormField\n testId={testIds}\n label={label}\n labelHidden={labelHidden}\n id={id}\n info={info}\n status={status}\n required={required}\n disabled={disabled}\n additionalInfo={additionalInfo}\n onResolveSuggestion={onResolveSuggestion}\n >\n {Comp}\n </FormField>\n ) : (\n Comp\n );\n }\n);\n\nexport default withTestIds(CurrencyInput, getCurrencyInputTestIds);\n"]}
|
|
1
|
+
{"version":3,"file":"CurrencyInput.js","sourceRoot":"","sources":["../../../src/components/Currency/CurrencyInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,MAAM,EACP,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,gCAAgC,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,aAAa,GAAwD,UAAU,CACnF,SAAS,aAAa,CACpB,KAA0C,EAC1C,GAA8B;IAE9B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,EACJ,MAAM,EACN,EAAE,GAAG,GAAG,EACR,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,KAAK,EAAE,SAAS,GAAG,EAAE,EACrB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,mBAAmB,EACnB,eAAe,EACf,WAAW,GAAG,IAAI,EAClB,mBAAmB,GAAG,IAAI,EAC1B,GAAG,GAAG,MAAM,CAAC,gBAAgB,EAC7B,GAAG,GAAG,MAAM,CAAC,gBAAgB,EAC7B,IAAI,GAAG,CAAC,EACR,iBAAiB,GAAG,KAAK,EACzB,qBAAqB,GAAG,CAAC,EACzB,SAAS,EACT,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IAEV,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAE5D,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEtC,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAEzC,MAAM,oBAAoB,GAAG,OAAO,CAClC,GAAG,EAAE,CAAC,CAAC,eAAe,IAAI,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,EACzF,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,MAAM,qBAAqB,GAAG,OAAO,CACnC,GAAG,EAAE,CAAC,gCAAgC,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACpE,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAC/B,CAAC;IAEF,MAAM,gBAAgB,GAAG,WAAW;QAClC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;QACxD,CAAC,CAAC,CAAC,CAAC;IAEN,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CACH,cAAc,CAAC,MAAM,EAAE;QACrB,eAAe,EAAE,MAAM;QACvB,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACpD,QAAQ,EAAE,oBAAoB;KAC/B,CAAC,EACJ,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAC/B,CAAC;IAEF,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,GAAG,SAAS,CAAC;IACtB,IAAI,CAAC,QAAQ,IAAI,oBAAoB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,KAAK,GAAG,GAAG,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,MAAc,EAAE,EAAE;QACjB,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE;YAC7D,mBAAmB;YACnB,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;YAC7C,gBAAgB;SACjB,CAAC,CAAC;IACL,CAAC,EACD,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,EAAE,oBAAoB,CAAC,CACzF,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,CAAgC,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAClC,MAAM,iBAAiB,GAAG,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACrF,IAAI,iBAAiB,KAAK,KAAK;YAAE,OAAO;QACxC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAkC,EAAE,EAAE;QACvD,IAAI,QAAQ;YAAE,OAAO;QACrB,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC;QAC9B,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;YACd,KAAK,SAAS;gBACZ,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,WAAW;gBACd,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,WAAW;oBAAE,CAAC,CAAC,cAAc,EAAE,CAAC;gBACrC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBACtC,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,WAAW,EAAE,CAAC;wBACrF,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;oBAC9E,CAAC;oBACD,CAAC,CAAC,cAAc,EAAE,CAAC;gBACrB,CAAC;qBAAM,IACL,KAAK,CAAC,cAAc,KAAK,IAAI;oBAC7B,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EACzD,CAAC;oBACD,QAAQ,CACN,eAAe,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,WAAW,EAAE,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAChF,CAAC;oBACF,CAAC,CAAC,cAAc,EAAE,CAAC;gBACrB,CAAC;gBACD,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,CAAC,CAAC,cAAc,EAAE,CAAC;gBAC9C,MAAM;YACR,QAAQ;QACV,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,CAA+B,EAAE,EAAE;QAC5D,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,oBAAoB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClD,aAAa,GAAG,GAAG,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC;aAC5C,CAAC;YACJ,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;gBAC5B,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC1B,CAAC;YAED,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,GAAG,CAAC,CAAC;IAE7F,MAAM,IAAI,GAAG,CACX,8BACE,KAAC,mBAAmB,mBACL,OAAO,CAAC,OAAO,EAC5B,QAAQ,EAAE,aAAa,EACvB,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,KACV,SAAS,EACb,mBAAmB,EAAE,mBAAmB,EACxC,SAAS,EAAC,SAAS,EACnB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,iBAAiB,sBACP,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAClE,SAAS,EAAE,eAAe,CAAC,gBAAgB,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,GACnE,EACD,oBAAoB,IAAI,CACvB,KAAC,kBAAkB,IAAC,EAAE,EAAE,aAAa,iCAClC,CAAC,CAAC,aAAa,EAAE,CAAC,oBAAoB,CAAC,CAAC,GACtB,CACtB,IACA,CACJ,CAAC;IAEF,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,KAAC,SAAS,IACR,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,mBAAmB,EAAE,mBAAmB,YAEvC,IAAI,GACK,CACb,CAAC,CAAC,CAAC,CACF,IAAI,CACL,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,WAAW,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC","sourcesContent":["import { forwardRef, useCallback, useMemo } from 'react';\nimport type { PropsWithoutRef, KeyboardEvent, ChangeEvent, FocusEvent } from 'react';\n\nimport VisuallyHiddenText from '../VisuallyHiddenText';\nimport FormField from '../FormField';\nimport type { ForwardRefForwardPropsComponent } from '../../types';\nimport {\n useConfiguration,\n useConsolidatedRef,\n useI18n,\n useInputFormatter,\n usePrevious,\n useTestIds,\n useUID\n} from '../../hooks';\nimport {\n getCleanedValue,\n getDecimalSign,\n getDecrementedValue,\n getIncrementedValue\n} from '../Number/utils';\nimport { createClassName, withTestIds } from '../../utils';\n\nimport StyledCurrencyInput from './CurrencyInput.styles';\nimport type CurrencyInputProps from './CurrencyInput.types';\nimport { getCurrencyMinimumFractionDigits, getFormattedValue, isValidCurrency } from './utils';\nimport { getCurrencyInputTestIds } from './Currency.test-ids';\n\nconst CurrencyInput: ForwardRefForwardPropsComponent<CurrencyInputProps> = forwardRef(\n function CurrencyInput(\n props: PropsWithoutRef<CurrencyInputProps>,\n ref: CurrencyInputProps['ref']\n ) {\n const uid = useUID();\n const {\n testId,\n id = uid,\n status,\n label,\n labelHidden,\n info,\n required,\n disabled,\n readOnly,\n additionalInfo,\n value: valueProp = '',\n onChange,\n onBlur,\n onFocus,\n onResolveSuggestion,\n currencyISOCode,\n showDecimal = true,\n showGroupSeparators = true,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n step = 1,\n alwaysShowISOCode = false,\n maximumFractionDigits = 0,\n className,\n ...restProps\n } = props;\n\n const descriptionId = useUID();\n const testIds = useTestIds(testId, getCurrencyInputTestIds);\n\n const { locale } = useConfiguration();\n\n const t = useI18n();\n const inputRef = useConsolidatedRef(ref);\n\n const validCurrencyISOCode = useMemo(\n () => (currencyISOCode && isValidCurrency(currencyISOCode) ? currencyISOCode : undefined),\n [currencyISOCode]\n );\n\n const minimumFractionDigits = useMemo(\n () => getCurrencyMinimumFractionDigits(locale, validCurrencyISOCode),\n [locale, validCurrencyISOCode]\n );\n\n const numberOfDecimals = showDecimal\n ? Math.max(maximumFractionDigits, minimumFractionDigits)\n : 0;\n\n const decimalSign = useMemo(\n () =>\n getDecimalSign(locale, {\n numberingSystem: 'latn',\n style: validCurrencyISOCode ? 'currency' : undefined,\n currency: validCurrencyISOCode\n }),\n [locale, validCurrencyISOCode]\n );\n\n // on initial render only pad the value with 0 if necessary\n const rendered = usePrevious(true);\n let value = valueProp;\n if (!rendered && validCurrencyISOCode && !Number.isNaN(parseFloat(value))) {\n const [integer, fraction = ''] = value.split('.');\n value = `${integer}.${fraction.padEnd(numberOfDecimals, '0')}`;\n }\n\n const formatValue = useCallback(\n (number: string) => {\n return getFormattedValue(number, locale, validCurrencyISOCode, {\n showGroupSeparators,\n showAs: alwaysShowISOCode ? 'code' : 'symbol',\n numberOfDecimals\n });\n },\n [alwaysShowISOCode, numberOfDecimals, showGroupSeparators, locale, validCurrencyISOCode]\n );\n\n const onInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n const cleanedInputValue = getCleanedValue(inputValue, decimalSign, numberOfDecimals);\n if (cleanedInputValue === value) return;\n onChange(cleanedInputValue);\n };\n\n const onKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (readOnly) return;\n const input = e.currentTarget;\n switch (e.key) {\n case 'ArrowUp':\n e.preventDefault();\n onChange(getIncrementedValue(value, min, max, step));\n break;\n case 'ArrowDown':\n e.preventDefault();\n onChange(getDecrementedValue(value, min, max, step));\n break;\n case decimalSign:\n if (!showDecimal) e.preventDefault();\n if (input.value.includes(decimalSign)) {\n if (input.selectionStart && input.value.charAt(input.selectionStart) === decimalSign) {\n input.setSelectionRange(input.selectionStart + 1, input.selectionStart + 1);\n }\n e.preventDefault();\n } else if (\n input.selectionStart !== null &&\n !input.value.charAt(input.selectionStart - 1).match(/\\d/)\n ) {\n onChange(\n getCleanedValue(`${input.value}0${decimalSign}`, decimalSign, numberOfDecimals)\n );\n e.preventDefault();\n }\n break;\n case '-':\n if (value.startsWith('-')) e.preventDefault();\n break;\n default:\n }\n };\n\n const onInputFocusEvent = (e: FocusEvent<HTMLInputElement>) => {\n let parsableValue = value;\n if (validCurrencyISOCode && !Number.isNaN(parseFloat(value))) {\n const [integer, fraction = ''] = value.split('.');\n parsableValue = `${integer}.${fraction.padEnd(numberOfDecimals, '0')}`;\n }\n\n if (e.type === 'focus') onFocus?.(parsableValue);\n else {\n if (parsableValue !== value) {\n onChange(parsableValue);\n }\n\n onBlur?.(parsableValue);\n }\n };\n\n const formattedValue = useInputFormatter(inputRef, value, formatValue, `0-9${decimalSign}-`);\n\n const Comp = (\n <>\n <StyledCurrencyInput\n data-testid={testIds.control}\n onChange={onInputChange}\n id={id}\n readOnly={readOnly}\n required={required}\n disabled={disabled}\n status={status}\n {...restProps}\n onResolveSuggestion={onResolveSuggestion}\n inputMode='numeric'\n ref={inputRef}\n value={formattedValue}\n onKeyDown={onKeyDown}\n onFocus={onInputFocusEvent}\n onBlur={onInputFocusEvent}\n aria-describedby={validCurrencyISOCode ? descriptionId : undefined}\n className={createClassName('currency-input', className, { status })}\n />\n {validCurrencyISOCode && (\n <VisuallyHiddenText id={descriptionId} aria-hidden>\n {t('measured_in', [validCurrencyISOCode])}\n </VisuallyHiddenText>\n )}\n </>\n );\n\n return label ? (\n <FormField\n testId={testIds}\n label={label}\n labelHidden={labelHidden}\n id={id}\n info={info}\n readOnly={readOnly}\n status={status}\n required={required}\n disabled={disabled}\n additionalInfo={additionalInfo}\n onResolveSuggestion={onResolveSuggestion}\n >\n {Comp}\n </FormField>\n ) : (\n Comp\n );\n }\n);\n\nexport default withTestIds(CurrencyInput, getCurrencyInputTestIds);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,iBAAiB,EAEjB,GAAG,EAEH,QAAQ,EACR,cAAc,EACd,aAAa,EACd,MAAM,OAAO,CAAC;AAYf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAMnD,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AA2BnD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kCAAkC;IAClC,MAAM,CAAC,EAAE;QACP,QAAQ,EAAE,aAAa,CAAC;QACxB,aAAa,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,YAAY,CAAC;KACzD,CAAC;IACF,8EAA8E;IAC9E,cAAc,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACpD,oDAAoD;IACpD,MAAM,CAAC,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC;CACpC;AAED,eAAO,MAAM,eAAe,qHAE3B,CAAC;;;;
|
|
1
|
+
{"version":3,"file":"DateInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,iBAAiB,EAEjB,GAAG,EAEH,QAAQ,EACR,cAAc,EACd,aAAa,EACd,MAAM,OAAO,CAAC;AAYf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAMnD,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AA2BnD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kCAAkC;IAClC,MAAM,CAAC,EAAE;QACP,QAAQ,EAAE,aAAa,CAAC;QACxB,aAAa,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,YAAY,CAAC;KACzD,CAAC;IACF,8EAA8E;IAC9E,cAAc,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACpD,oDAAoD;IACpD,MAAM,CAAC,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC;CACpC;AAED,eAAO,MAAM,eAAe,qHAE3B,CAAC;;;;AAmXF,wBAA2D"}
|
|
@@ -64,7 +64,7 @@ const DateInput = forwardRef(function DateInput(props, ref) {
|
|
|
64
64
|
];
|
|
65
65
|
const [hasValue, setHasValue] = useState(!!date);
|
|
66
66
|
useEffect(() => {
|
|
67
|
-
setHasValue(!!
|
|
67
|
+
setHasValue(!!(yearInputRef.current?.value || monthInputRef.current?.value || dayInputRef.current?.value));
|
|
68
68
|
}, [date]);
|
|
69
69
|
const pickParts = () => {
|
|
70
70
|
return {
|
|
@@ -148,7 +148,7 @@ const DateInput = forwardRef(function DateInput(props, ref) {
|
|
|
148
148
|
const Comp = (_jsxs(Flex, { "data-testid": label ? undefined : testIds.root, as: StyledDateInput, forwardedAs: StyledFormControl, hasSuggestion: status === 'pending' && !!onResolveSuggestion, container: { alignItems: 'center', wrap: 'nowrap', justify: 'between' }, status: status, readOnly: readOnly, disabled: disabled, ref: containerRef, onClick: (e) => {
|
|
149
149
|
if (e.target === containerRef.current)
|
|
150
150
|
orderedRefs[0].current?.focus();
|
|
151
|
-
}, ...restProps, className: createClassName('date-input', className), children: [_jsx(Flex, { ref: inputContainerRef, as: StyledInputContainer, container: { alignItems: 'center', wrap: 'wrap' }, onPaste: onPaste, children: getDateTimeParts(locale).map(part => {
|
|
151
|
+
}, ...restProps, className: createClassName('date-input', className, { status }), children: [_jsx(Flex, { ref: inputContainerRef, as: StyledInputContainer, container: { alignItems: 'center', wrap: 'wrap' }, onPaste: onPaste, children: getDateTimeParts(locale).map(part => {
|
|
152
152
|
switch (part) {
|
|
153
153
|
case 'day':
|
|
154
154
|
orderedRefs.push(dayInputRef);
|
|
@@ -172,7 +172,7 @@ const DateInput = forwardRef(function DateInput(props, ref) {
|
|
|
172
172
|
orderedRefs[0].current?.focus();
|
|
173
173
|
}, [autoFocus]);
|
|
174
174
|
const { description, descriptionID } = useAutoFocusNextInput(orderedRefs);
|
|
175
|
-
return label ? (_jsxs(_Fragment, { children: [_jsx(FormField, { testId: testIds, as: 'fieldset', "aria-labelledby": id, labelAs: 'legend', label: label, labelHidden: labelHidden, id: id, info: info, status: status, required: required, disabled: disabled, onResolveSuggestion: onResolveSuggestion, additionalInfo: additionalInfo, "aria-describedby": descriptionID, ref: ref, children: Comp }), description] })) : (Comp);
|
|
175
|
+
return label ? (_jsxs(_Fragment, { children: [_jsx(FormField, { testId: testIds, as: 'fieldset', "aria-labelledby": id, labelAs: 'legend', label: label, labelHidden: labelHidden, id: id, info: info, readOnly: readOnly, status: status, required: required, disabled: disabled, onResolveSuggestion: onResolveSuggestion, additionalInfo: additionalInfo, "aria-describedby": descriptionID, ref: ref, children: Comp }), description] })) : (Comp);
|
|
176
176
|
});
|
|
177
177
|
export default withTestIds(DateInput, getDateInputTestIds);
|
|
178
178
|
//# sourceMappingURL=DateInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useRef, useImperativeHandle, useEffect, useState, Fragment } from 'react';\nimport type {\n ClipboardEvent,\n FunctionComponent,\n PropsWithoutRef,\n Ref,\n RefObject,\n Dispatch,\n SetStateAction,\n ComponentType\n} from 'react';\nimport styled from 'styled-components';\n\nimport { defaultThemeProp } from '../../../theme';\nimport {\n useConfiguration,\n useFocusWithin,\n useI18n,\n useOuterEvent,\n useTestIds,\n useUID\n} from '../../../hooks';\nimport type { ForwardProps } from '../../../types';\nimport FormField from '../../FormField';\nimport Flex from '../../Flex';\nimport Icon, { registerIcon } from '../../Icon';\nimport * as calendarIcon from '../../Icon/icons/calendar.icon';\nimport DatePicker from '../Picker/DatePicker';\nimport type DatePickerProps from '../Picker/DatePicker.types';\nimport { StyledFormControl } from '../../FormControl';\nimport type { FormControlProps } from '../../FormControl';\nimport type DateTimeProps from '../DateTime.types';\nimport type { DateTimeCallbackParameter } from '../DateTime.types';\nimport { createClassName, withTestIds } from '../../../utils';\nimport { getDateInputTestIds } from '../DateTime.test-ids';\nimport HiddenText from '../../HiddenText';\n\nimport {\n getDateFormat,\n getDateTimeParts,\n parsePastedTextToDate,\n parseToDate,\n validateDate,\n generatePickerButtonAriaLabel\n} from './utils';\nimport StyledDateTime, {\n StyledDatePickerDialog,\n StyledDialogContent,\n StyledInputButton,\n StyledInputContainer\n} from './DateTime.styles';\nimport useAutoFocusNextInput from './useAutoFocusNextInput';\nimport PartInput from './PartInput';\nimport usePickerButton from './usePickerButton';\nimport type { DateParts } from './DateTimeInput.types';\n\nregisterIcon(calendarIcon);\n\nexport interface DateInputHandleValue {\n setOpen: Dispatch<SetStateAction<boolean>>;\n}\n\nexport interface DateInputProps extends DateTimeProps {\n /**\n * Display additional column with week number in date picker popover.\n * @default false\n */\n showWeekNumber?: boolean;\n /** Changes default date picker */\n picker?: {\n renderer: ComponentType;\n rendererProps?: Partial<DatePickerProps> & ForwardProps;\n };\n /** Pass a heading and content to show additional information on the field. */\n additionalInfo?: FormControlProps['additionalInfo'];\n /** Additional properties for imperative control. */\n handle?: Ref<DateInputHandleValue>;\n}\n\nexport const StyledDateInput = styled(StyledDateTime)<DateInputProps>`\n padding-inline-end: 0;\n`;\n\nStyledDateInput.defaultProps = defaultThemeProp;\n\nconst convertToCallbackParameter = (\n date: Date,\n { year, month: monthIndex, day }: DateParts<string | undefined>\n): DateTimeCallbackParameter => {\n if ([year, monthIndex, day].every(Boolean)) {\n if (!validateDate(Number(year), Number(monthIndex) + 1, Number(day))) {\n return {\n valueAsISOString: '',\n valueAsTimestamp: NaN,\n state: 'invalid'\n };\n }\n\n date.setUTCFullYear(Number(year), Number(monthIndex), Number(day));\n return {\n valueAsISOString: date.toISOString(),\n valueAsTimestamp: date.getTime()\n };\n }\n if ([year, monthIndex, day].every(p => !p)) {\n return {\n valueAsISOString: undefined,\n valueAsTimestamp: undefined\n };\n }\n return {\n valueAsISOString: '',\n valueAsTimestamp: NaN,\n state: 'incomplete'\n };\n};\n\nconst DateInput: FunctionComponent<DateInputProps & ForwardProps> = forwardRef(function DateInput(\n props: PropsWithoutRef<DateInputProps>,\n ref: Ref<HTMLFieldSetElement>\n) {\n const { locale } = useConfiguration();\n const t = useI18n();\n const {\n testId,\n value,\n min,\n max,\n id,\n label,\n labelHidden,\n info = getDateFormat(t, locale, 'date'),\n status,\n required,\n readOnly,\n disabled,\n onChange,\n onFocus,\n onBlur,\n onResolveSuggestion,\n showWeekNumber,\n picker: { renderer: PickerComp = DatePicker, rendererProps = {} } = {},\n autoFocus,\n additionalInfo,\n handle,\n className,\n ...restProps\n } = props;\n\n const testIds = useTestIds(testId, getDateInputTestIds);\n const yearPartId = useUID();\n const containerRef = useRef<HTMLElement>(null);\n\n const date = value !== undefined && value !== '' ? parseToDate(value) : undefined;\n\n const [yearInputRef, monthInputRef, dayInputRef] = [\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null)\n ];\n\n const [hasValue, setHasValue] = useState(!!date);\n useEffect(() => {\n setHasValue(!!date);\n }, [date]);\n\n const pickParts = (): DateParts<string | undefined> => {\n return {\n day: dayInputRef.current?.value || undefined,\n month: monthInputRef.current?.value\n ? (Number(monthInputRef.current.value) - 1).toString()\n : undefined,\n year: yearInputRef.current?.value || undefined\n };\n };\n\n const currentlySelectedDate = () => {\n const parts = pickParts();\n if (Object.values(parts).every(Boolean)) {\n const year = Number(parts.year);\n const monthIndex = Number(parts.month);\n const day = Number(parts.day);\n\n return validateDate(year, monthIndex + 1, day)\n ? new Date(Date.UTC(year, monthIndex, day))\n : undefined;\n }\n };\n\n const [open, setOpen, , setPopoverRef, datePickerButtonEl, setDatePickerButtonEl] =\n usePickerButton();\n\n const inputContainerRef = useRef<HTMLDivElement>(null);\n\n const onFocusChange = (focused: boolean) => {\n const callbackParam = convertToCallbackParameter(\n date ? new Date(date) : new Date(),\n pickParts()\n );\n if (onFocus && focused) onFocus(callbackParam);\n if (!focused) {\n if (inputContainerRef.current) inputContainerRef.current.scrollTop = 0;\n onBlur?.(callbackParam);\n }\n };\n\n const onInputChange = () => {\n onChange?.(convertToCallbackParameter(date ? new Date(date) : new Date(), pickParts()));\n datePickerButtonEl?.setAttribute(\n 'aria-label',\n generatePickerButtonAriaLabel(currentlySelectedDate(), 'date', locale, t, open)\n );\n if (dayInputRef.current?.value || monthInputRef.current?.value || yearInputRef.current?.value) {\n setHasValue(true);\n } else {\n setHasValue(false);\n }\n };\n\n const setInputValue = (newValue?: Date) => {\n if (dayInputRef.current && monthInputRef.current && yearInputRef.current) {\n dayInputRef.current.value = newValue?.getUTCDate().toString().padStart(2, '0') ?? '';\n monthInputRef.current.value =\n (newValue && (newValue.getUTCMonth() + 1).toString().padStart(2, '0')) ?? '';\n yearInputRef.current.value = newValue?.getUTCFullYear().toString() ?? '';\n setHasValue(!!newValue);\n }\n };\n\n const onPaste = (e: ClipboardEvent) => {\n const text = e.clipboardData.getData('text');\n const newDate = parsePastedTextToDate(text, locale, date || new Date());\n if (newDate) {\n e.preventDefault();\n setInputValue(newDate);\n onInputChange();\n }\n };\n\n // autoclose picker on focusing out\n useOuterEvent('focusin', [containerRef], e => {\n if (containerRef.current?.contains(e.relatedTarget as HTMLElement)) setOpen(false);\n });\n\n const displayNames = new Intl.DisplayNames(locale, { style: 'long', type: 'dateTimeField' });\n\n const DayInput = (\n <PartInput\n data-testid={testIds.controlDay}\n key='day'\n placeholder={t('day_placeholder')}\n aria-label={displayNames.of('day')}\n value={date?.getUTCDate()}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n min={1}\n max={31}\n ref={dayInputRef}\n />\n );\n\n const MonthInput = (\n <PartInput\n data-testid={testIds.controlMonth}\n key='month'\n placeholder={t('month_placeholder')}\n aria-label={displayNames.of('month')}\n value={date ? date.getUTCMonth() + 1 : undefined}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n min={1}\n max={12}\n ref={monthInputRef}\n />\n );\n\n const YearInput = (\n <Fragment key='year'>\n <PartInput\n data-testid={testIds.controlYear}\n placeholder={t('year_placeholder')}\n aria-label={displayNames.of('year')}\n aria-describedby={yearPartId}\n value={date?.getUTCFullYear()}\n onChange={onInputChange}\n size={4}\n maxLength={4}\n padWithZeros={false}\n readOnly={readOnly}\n min={1}\n max={9999}\n ref={yearInputRef}\n />\n <HiddenText id={yearPartId}>{t('year_input_description')}</HiddenText>\n </Fragment>\n );\n\n useFocusWithin([containerRef], onFocusChange);\n\n useImperativeHandle(handle, () => ({ setOpen }));\n\n const PickerButton = (\n <>\n <StyledInputButton\n data-testid={testIds.openClosePicker}\n variant='simple'\n icon\n ref={setDatePickerButtonEl}\n onClick={() => setOpen(cur => !cur)}\n aria-label={generatePickerButtonAriaLabel(currentlySelectedDate(), 'date', locale, t, open)}\n readOnly={readOnly}\n disabled={disabled}\n >\n <Icon name='calendar' />\n </StyledInputButton>\n {open && datePickerButtonEl && (\n <StyledDatePickerDialog\n ref={setPopoverRef}\n target={datePickerButtonEl}\n placement='bottom-end'\n aria-label={t('choose_date')}\n >\n <Flex container={{ direction: 'column' }} as={StyledDialogContent}>\n <PickerComp\n testId={testIds.picker}\n selected={currentlySelectedDate()}\n min={min}\n max={max}\n showWeekNumber={showWeekNumber}\n {...rendererProps}\n onChange={selected => {\n setInputValue(selected);\n setOpen(false);\n setTimeout(() => datePickerButtonEl?.focus());\n onInputChange();\n rendererProps?.onChange?.(selected);\n }}\n />\n </Flex>\n </StyledDatePickerDialog>\n )}\n </>\n );\n\n const orderedRefs: RefObject<HTMLInputElement>[] = [];\n\n const Comp = (\n <Flex\n data-testid={label ? undefined : testIds.root}\n as={StyledDateInput}\n forwardedAs={StyledFormControl}\n hasSuggestion={status === 'pending' && !!onResolveSuggestion}\n container={{ alignItems: 'center', wrap: 'nowrap', justify: 'between' }}\n status={status}\n readOnly={readOnly}\n disabled={disabled}\n ref={containerRef}\n onClick={(e: MouseEvent) => {\n if (e.target === containerRef.current) orderedRefs[0].current?.focus();\n }}\n {...restProps}\n className={createClassName('date-input', className)}\n >\n <Flex\n ref={inputContainerRef}\n as={StyledInputContainer}\n container={{ alignItems: 'center', wrap: 'wrap' }}\n onPaste={onPaste}\n >\n {getDateTimeParts(locale).map(part => {\n switch (part) {\n case 'day':\n orderedRefs.push(dayInputRef);\n return DayInput;\n case 'month':\n orderedRefs.push(monthInputRef);\n return MonthInput;\n case 'year':\n orderedRefs.push(yearInputRef);\n return YearInput;\n default:\n return part;\n }\n })}\n </Flex>\n {!readOnly && (\n <Flex container>\n {hasValue && (\n <StyledInputButton\n data-testid={testIds.clearCurrentDate}\n aria-label={t('clear_current_date')}\n icon\n onClick={() => {\n setInputValue(undefined);\n setTimeout(() => datePickerButtonEl?.focus());\n onInputChange();\n }}\n variant='simple'\n compact\n label={t('clear')}\n >\n <Icon name='times' />\n </StyledInputButton>\n )}\n {PickerButton}\n </Flex>\n )}\n </Flex>\n );\n\n useEffect(() => {\n if (autoFocus) orderedRefs[0].current?.focus();\n }, [autoFocus]);\n\n const { description, descriptionID } = useAutoFocusNextInput(orderedRefs);\n\n return label ? (\n <>\n <FormField\n testId={testIds}\n as='fieldset'\n aria-labelledby={id}\n labelAs='legend'\n label={label}\n labelHidden={labelHidden}\n id={id}\n info={info}\n status={status}\n required={required}\n disabled={disabled}\n onResolveSuggestion={onResolveSuggestion}\n additionalInfo={additionalInfo}\n aria-describedby={descriptionID}\n ref={ref}\n >\n {Comp}\n </FormField>\n {description}\n </>\n ) : (\n Comp\n );\n});\n\nexport default withTestIds(DateInput, getDateInputTestIds);\n"]}
|
|
1
|
+
{"version":3,"file":"DateInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useRef, useImperativeHandle, useEffect, useState, Fragment } from 'react';\nimport type {\n ClipboardEvent,\n FunctionComponent,\n PropsWithoutRef,\n Ref,\n RefObject,\n Dispatch,\n SetStateAction,\n ComponentType\n} from 'react';\nimport styled from 'styled-components';\n\nimport { defaultThemeProp } from '../../../theme';\nimport {\n useConfiguration,\n useFocusWithin,\n useI18n,\n useOuterEvent,\n useTestIds,\n useUID\n} from '../../../hooks';\nimport type { ForwardProps } from '../../../types';\nimport FormField from '../../FormField';\nimport Flex from '../../Flex';\nimport Icon, { registerIcon } from '../../Icon';\nimport * as calendarIcon from '../../Icon/icons/calendar.icon';\nimport DatePicker from '../Picker/DatePicker';\nimport type DatePickerProps from '../Picker/DatePicker.types';\nimport { StyledFormControl } from '../../FormControl';\nimport type { FormControlProps } from '../../FormControl';\nimport type DateTimeProps from '../DateTime.types';\nimport type { DateTimeCallbackParameter } from '../DateTime.types';\nimport { createClassName, withTestIds } from '../../../utils';\nimport { getDateInputTestIds } from '../DateTime.test-ids';\nimport HiddenText from '../../HiddenText';\n\nimport {\n getDateFormat,\n getDateTimeParts,\n parsePastedTextToDate,\n parseToDate,\n validateDate,\n generatePickerButtonAriaLabel\n} from './utils';\nimport StyledDateTime, {\n StyledDatePickerDialog,\n StyledDialogContent,\n StyledInputButton,\n StyledInputContainer\n} from './DateTime.styles';\nimport useAutoFocusNextInput from './useAutoFocusNextInput';\nimport PartInput from './PartInput';\nimport usePickerButton from './usePickerButton';\nimport type { DateParts } from './DateTimeInput.types';\n\nregisterIcon(calendarIcon);\n\nexport interface DateInputHandleValue {\n setOpen: Dispatch<SetStateAction<boolean>>;\n}\n\nexport interface DateInputProps extends DateTimeProps {\n /**\n * Display additional column with week number in date picker popover.\n * @default false\n */\n showWeekNumber?: boolean;\n /** Changes default date picker */\n picker?: {\n renderer: ComponentType;\n rendererProps?: Partial<DatePickerProps> & ForwardProps;\n };\n /** Pass a heading and content to show additional information on the field. */\n additionalInfo?: FormControlProps['additionalInfo'];\n /** Additional properties for imperative control. */\n handle?: Ref<DateInputHandleValue>;\n}\n\nexport const StyledDateInput = styled(StyledDateTime)<DateInputProps>`\n padding-inline-end: 0;\n`;\n\nStyledDateInput.defaultProps = defaultThemeProp;\n\nconst convertToCallbackParameter = (\n date: Date,\n { year, month: monthIndex, day }: DateParts<string | undefined>\n): DateTimeCallbackParameter => {\n if ([year, monthIndex, day].every(Boolean)) {\n if (!validateDate(Number(year), Number(monthIndex) + 1, Number(day))) {\n return {\n valueAsISOString: '',\n valueAsTimestamp: NaN,\n state: 'invalid'\n };\n }\n\n date.setUTCFullYear(Number(year), Number(monthIndex), Number(day));\n return {\n valueAsISOString: date.toISOString(),\n valueAsTimestamp: date.getTime()\n };\n }\n if ([year, monthIndex, day].every(p => !p)) {\n return {\n valueAsISOString: undefined,\n valueAsTimestamp: undefined\n };\n }\n return {\n valueAsISOString: '',\n valueAsTimestamp: NaN,\n state: 'incomplete'\n };\n};\n\nconst DateInput: FunctionComponent<DateInputProps & ForwardProps> = forwardRef(function DateInput(\n props: PropsWithoutRef<DateInputProps>,\n ref: Ref<HTMLFieldSetElement>\n) {\n const { locale } = useConfiguration();\n const t = useI18n();\n const {\n testId,\n value,\n min,\n max,\n id,\n label,\n labelHidden,\n info = getDateFormat(t, locale, 'date'),\n status,\n required,\n readOnly,\n disabled,\n onChange,\n onFocus,\n onBlur,\n onResolveSuggestion,\n showWeekNumber,\n picker: { renderer: PickerComp = DatePicker, rendererProps = {} } = {},\n autoFocus,\n additionalInfo,\n handle,\n className,\n ...restProps\n } = props;\n\n const testIds = useTestIds(testId, getDateInputTestIds);\n const yearPartId = useUID();\n\n const containerRef = useRef<HTMLElement>(null);\n\n const date = value !== undefined && value !== '' ? parseToDate(value) : undefined;\n\n const [yearInputRef, monthInputRef, dayInputRef] = [\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null)\n ];\n\n const [hasValue, setHasValue] = useState(!!date);\n useEffect(() => {\n setHasValue(\n !!(yearInputRef.current?.value || monthInputRef.current?.value || dayInputRef.current?.value)\n );\n }, [date]);\n\n const pickParts = (): DateParts<string | undefined> => {\n return {\n day: dayInputRef.current?.value || undefined,\n month: monthInputRef.current?.value\n ? (Number(monthInputRef.current.value) - 1).toString()\n : undefined,\n year: yearInputRef.current?.value || undefined\n };\n };\n\n const currentlySelectedDate = () => {\n const parts = pickParts();\n if (Object.values(parts).every(Boolean)) {\n const year = Number(parts.year);\n const monthIndex = Number(parts.month);\n const day = Number(parts.day);\n\n return validateDate(year, monthIndex + 1, day)\n ? new Date(Date.UTC(year, monthIndex, day))\n : undefined;\n }\n };\n\n const [open, setOpen, , setPopoverRef, datePickerButtonEl, setDatePickerButtonEl] =\n usePickerButton();\n\n const inputContainerRef = useRef<HTMLDivElement>(null);\n\n const onFocusChange = (focused: boolean) => {\n const callbackParam = convertToCallbackParameter(\n date ? new Date(date) : new Date(),\n pickParts()\n );\n if (onFocus && focused) onFocus(callbackParam);\n if (!focused) {\n if (inputContainerRef.current) inputContainerRef.current.scrollTop = 0;\n onBlur?.(callbackParam);\n }\n };\n\n const onInputChange = () => {\n onChange?.(convertToCallbackParameter(date ? new Date(date) : new Date(), pickParts()));\n datePickerButtonEl?.setAttribute(\n 'aria-label',\n generatePickerButtonAriaLabel(currentlySelectedDate(), 'date', locale, t, open)\n );\n if (dayInputRef.current?.value || monthInputRef.current?.value || yearInputRef.current?.value) {\n setHasValue(true);\n } else {\n setHasValue(false);\n }\n };\n\n const setInputValue = (newValue?: Date) => {\n if (dayInputRef.current && monthInputRef.current && yearInputRef.current) {\n dayInputRef.current.value = newValue?.getUTCDate().toString().padStart(2, '0') ?? '';\n monthInputRef.current.value =\n (newValue && (newValue.getUTCMonth() + 1).toString().padStart(2, '0')) ?? '';\n yearInputRef.current.value = newValue?.getUTCFullYear().toString() ?? '';\n setHasValue(!!newValue);\n }\n };\n\n const onPaste = (e: ClipboardEvent) => {\n const text = e.clipboardData.getData('text');\n const newDate = parsePastedTextToDate(text, locale, date || new Date());\n if (newDate) {\n e.preventDefault();\n setInputValue(newDate);\n onInputChange();\n }\n };\n\n // autoclose picker on focusing out\n useOuterEvent('focusin', [containerRef], e => {\n if (containerRef.current?.contains(e.relatedTarget as HTMLElement)) setOpen(false);\n });\n\n const displayNames = new Intl.DisplayNames(locale, { style: 'long', type: 'dateTimeField' });\n\n const DayInput = (\n <PartInput\n data-testid={testIds.controlDay}\n key='day'\n placeholder={t('day_placeholder')}\n aria-label={displayNames.of('day')}\n value={date?.getUTCDate()}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n min={1}\n max={31}\n ref={dayInputRef}\n />\n );\n\n const MonthInput = (\n <PartInput\n data-testid={testIds.controlMonth}\n key='month'\n placeholder={t('month_placeholder')}\n aria-label={displayNames.of('month')}\n value={date ? date.getUTCMonth() + 1 : undefined}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n readOnly={readOnly}\n min={1}\n max={12}\n ref={monthInputRef}\n />\n );\n\n const YearInput = (\n <Fragment key='year'>\n <PartInput\n data-testid={testIds.controlYear}\n placeholder={t('year_placeholder')}\n aria-label={displayNames.of('year')}\n aria-describedby={yearPartId}\n value={date?.getUTCFullYear()}\n onChange={onInputChange}\n size={4}\n maxLength={4}\n padWithZeros={false}\n readOnly={readOnly}\n min={1}\n max={9999}\n ref={yearInputRef}\n />\n <HiddenText id={yearPartId}>{t('year_input_description')}</HiddenText>\n </Fragment>\n );\n\n useFocusWithin([containerRef], onFocusChange);\n\n useImperativeHandle(handle, () => ({ setOpen }));\n\n const PickerButton = (\n <>\n <StyledInputButton\n data-testid={testIds.openClosePicker}\n variant='simple'\n icon\n ref={setDatePickerButtonEl}\n onClick={() => setOpen(cur => !cur)}\n aria-label={generatePickerButtonAriaLabel(currentlySelectedDate(), 'date', locale, t, open)}\n readOnly={readOnly}\n disabled={disabled}\n >\n <Icon name='calendar' />\n </StyledInputButton>\n {open && datePickerButtonEl && (\n <StyledDatePickerDialog\n ref={setPopoverRef}\n target={datePickerButtonEl}\n placement='bottom-end'\n aria-label={t('choose_date')}\n >\n <Flex container={{ direction: 'column' }} as={StyledDialogContent}>\n <PickerComp\n testId={testIds.picker}\n selected={currentlySelectedDate()}\n min={min}\n max={max}\n showWeekNumber={showWeekNumber}\n {...rendererProps}\n onChange={selected => {\n setInputValue(selected);\n setOpen(false);\n setTimeout(() => datePickerButtonEl?.focus());\n onInputChange();\n rendererProps?.onChange?.(selected);\n }}\n />\n </Flex>\n </StyledDatePickerDialog>\n )}\n </>\n );\n\n const orderedRefs: RefObject<HTMLInputElement>[] = [];\n\n const Comp = (\n <Flex\n data-testid={label ? undefined : testIds.root}\n as={StyledDateInput}\n forwardedAs={StyledFormControl}\n hasSuggestion={status === 'pending' && !!onResolveSuggestion}\n container={{ alignItems: 'center', wrap: 'nowrap', justify: 'between' }}\n status={status}\n readOnly={readOnly}\n disabled={disabled}\n ref={containerRef}\n onClick={(e: MouseEvent) => {\n if (e.target === containerRef.current) orderedRefs[0].current?.focus();\n }}\n {...restProps}\n className={createClassName('date-input', className, { status })}\n >\n <Flex\n ref={inputContainerRef}\n as={StyledInputContainer}\n container={{ alignItems: 'center', wrap: 'wrap' }}\n onPaste={onPaste}\n >\n {getDateTimeParts(locale).map(part => {\n switch (part) {\n case 'day':\n orderedRefs.push(dayInputRef);\n return DayInput;\n case 'month':\n orderedRefs.push(monthInputRef);\n return MonthInput;\n case 'year':\n orderedRefs.push(yearInputRef);\n return YearInput;\n default:\n return part;\n }\n })}\n </Flex>\n {!readOnly && (\n <Flex container>\n {hasValue && (\n <StyledInputButton\n data-testid={testIds.clearCurrentDate}\n aria-label={t('clear_current_date')}\n icon\n onClick={() => {\n setInputValue(undefined);\n setTimeout(() => datePickerButtonEl?.focus());\n onInputChange();\n }}\n variant='simple'\n compact\n label={t('clear')}\n >\n <Icon name='times' />\n </StyledInputButton>\n )}\n {PickerButton}\n </Flex>\n )}\n </Flex>\n );\n\n useEffect(() => {\n if (autoFocus) orderedRefs[0].current?.focus();\n }, [autoFocus]);\n\n const { description, descriptionID } = useAutoFocusNextInput(orderedRefs);\n\n return label ? (\n <>\n <FormField\n testId={testIds}\n as='fieldset'\n aria-labelledby={id}\n labelAs='legend'\n label={label}\n labelHidden={labelHidden}\n id={id}\n info={info}\n readOnly={readOnly}\n status={status}\n required={required}\n disabled={disabled}\n onResolveSuggestion={onResolveSuggestion}\n additionalInfo={additionalInfo}\n aria-describedby={descriptionID}\n ref={ref}\n >\n {Comp}\n </FormField>\n {description}\n </>\n ) : (\n Comp\n );\n});\n\nexport default withTestIds(DateInput, getDateInputTestIds);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangeInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateRangeInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,OAAO,CAAC;AAIrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACV,0BAA0B,EAE1B,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAW3B,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,kCAAkC;IAClC,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAAC,GAAG,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IACzE;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,6FAA6F;IAC7F,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,uHAAuH;IACvH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACtD,sHAAsH;IACtH,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACxD,+CAA+C;IAC/C,QAAQ,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACtD,sDAAsD;IACtD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACtD,qDAAqD;IACrD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACrD,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;;;;
|
|
1
|
+
{"version":3,"file":"DateRangeInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateRangeInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,OAAO,CAAC;AAIrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACV,0BAA0B,EAE1B,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAW3B,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,kCAAkC;IAClC,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAAC,GAAG,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IACzE;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,6FAA6F;IAC7F,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,uHAAuH;IACvH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACtD,sHAAsH;IACtH,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACxD,+CAA+C;IAC/C,QAAQ,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACtD,sDAAsD;IACtD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACtD,qDAAqD;IACrD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACrD,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;;;;AAqQD,wBAAqE"}
|
|
@@ -136,7 +136,7 @@ const DateRangeInput = forwardRef(function DateRangeInput({ testId, value = {},
|
|
|
136
136
|
status
|
|
137
137
|
};
|
|
138
138
|
const descriptionId = useUID();
|
|
139
|
-
return (_jsxs(_Fragment, { children: [_jsx(FormField, { testId: testIds, as: StyledDateRangeInput, ...restProps, ref: containerRef, container: { wrap: 'nowrap' }, labelHidden: labelHidden, label: label, labelAs: 'legend', required: required, readOnly: readOnly, status: status, disabled: disabled, "aria-describedby": descriptionId, children: _jsxs(Flex, { container: true, as: StyledRangeInputContainer,
|
|
139
|
+
return (_jsxs(_Fragment, { children: [_jsx(FormField, { testId: testIds, as: StyledDateRangeInput, ...restProps, ref: containerRef, className: createClassName('date-range-input', className, { status }), container: { wrap: 'nowrap' }, labelHidden: labelHidden, label: label, labelAs: 'legend', required: required, readOnly: readOnly, status: status, disabled: disabled, "aria-describedby": descriptionId, children: _jsxs(Flex, { container: true, as: StyledRangeInputContainer, children: [_jsx(DateInput, { testId: testIds.fromDate, ...commonProps, value: value.start, picker: {
|
|
140
140
|
renderer: DateRangePicker,
|
|
141
141
|
rendererProps: {
|
|
142
142
|
selected: getSelected(start, end),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangeInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateRangeInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useRef, forwardRef, useCallback } from 'react';\nimport type { FunctionComponent, PropsWithoutRef, Ref } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { useConsolidatedRef, useFocusWithin, useI18n, useTestIds, useUID } from '../../../hooks';\nimport type { ForwardProps } from '../../../types';\nimport { defaultThemeProp } from '../../../theme';\nimport type { FormControlProps } from '../../FormControl';\nimport Flex from '../../Flex';\nimport FormField, { StyledFormField } from '../../FormField/FormField';\nimport DateRangePicker from '../Picker/DateRangePicker';\nimport type DateTimeProps from '../DateTime.types';\nimport type {\n DateRangeCallbackParameter,\n DateTimeCallbackParameter,\n DateTimeProperties\n} from '../DateTime.types';\nimport { StyledRangeInputContainer } from '../../Input/Input.styles';\nimport { getDateRangeInputTestIds } from '../DateTime.test-ids';\nimport { createClassName, withTestIds } from '../../../utils';\nimport HiddenText from '../../HiddenText';\n\nimport DateInput from './DateInput';\nimport type { DateInputHandleValue } from './DateInput';\nimport { parseToDate } from './utils';\nimport StyledDateInput from './DateTime.styles';\n\nexport interface DateRangeInputProps extends DateTimeProperties {\n /** Object of range boundaries. */\n value?: { start?: DateTimeProps['value']; end?: DateTimeProps['value'] };\n /**\n * Display additional column with week number in date picker popover.\n * @default false\n */\n showWeekNumber?: boolean;\n /** Pass a string or a fragment with an Icon and string for first part of DataRangeInput. */\n fromLabel?: FormControlProps['label'];\n /** Pass a string or a fragment with an Icon and string for second part of DataRangeInput. */\n toLabel?: FormControlProps['label'];\n /** Pass an object with \"heading\" and \"content\" properties to show AdditionalInfo for second part of DataRangeInput. */\n toAdditionalInfo?: FormControlProps['additionalInfo'];\n /** Pass an object with \"heading\" and \"content\" properties to show AdditionalInfo for first part of DataRangeInput. */\n fromAdditionalInfo?: FormControlProps['additionalInfo'];\n /** Callback fired when input value changes. */\n onChange: (value: DateRangeCallbackParameter) => void;\n /** Callback fired when the component gets focused. */\n onFocus?: (value: DateRangeCallbackParameter) => void;\n /** Callback fired when the component loses focus. */\n onBlur?: (value: DateRangeCallbackParameter) => void;\n /** Automatically focuses the input on render. */\n autoFocus?: boolean;\n}\n\nconst StyledDateRangeInput = styled.fieldset<DateRangeInputProps>(props => {\n const {\n theme: {\n components: { input }\n }\n } = props;\n\n return css`\n border: 0;\n min-width: min-content;\n\n ${StyledFormField} {\n &:last-child > ${StyledDateInput} {\n margin-inline-start: -${input['border-width']};\n }\n\n & legend {\n align-self: center;\n }\n\n &:focus,\n &:hover,\n &:focus-within {\n z-index: 2;\n }\n }\n `;\n});\n\nStyledDateRangeInput.defaultProps = defaultThemeProp;\n\ntype DateRepresentable = string | number | Date;\n\nconst convertToCallbackParameter = (v?: number): DateTimeCallbackParameter => {\n return {\n valueAsISOString: v === undefined || Number.isNaN(v) ? undefined : new Date(v).toISOString(),\n valueAsTimestamp: v\n };\n};\n\nconst prepareValue = (v: number | undefined, type: 'start' | 'end') => {\n if (v === undefined || Number.isNaN(v)) {\n return v;\n }\n return type === 'start'\n ? new Date(v).setUTCHours(0, 0, 0, 0)\n : new Date(v).setUTCHours(23, 59, 59, 999);\n};\n\nconst getSelected = (first: number | undefined, second: number | undefined) => {\n const selected = first ?? second;\n return selected ? parseToDate(selected) : undefined;\n};\n\nconst parseValueToDate = (value: DateRepresentable | undefined) => {\n return value ? parseToDate(value) : undefined;\n};\n\nconst DateRangeInput: FunctionComponent<DateRangeInputProps & ForwardProps> = forwardRef(\n function DateRangeInput(\n {\n testId,\n value = {},\n min,\n max,\n label,\n fromLabel,\n toLabel,\n labelHidden,\n status,\n required,\n readOnly,\n disabled,\n onChange,\n onFocus,\n onBlur,\n showWeekNumber,\n autoFocus,\n fromAdditionalInfo,\n toAdditionalInfo,\n className,\n ...restProps\n }: PropsWithoutRef<DateRangeInputProps>,\n ref: Ref<HTMLDivElement>\n ) {\n const testIds = useTestIds(testId, getDateRangeInputTestIds);\n const t = useI18n();\n const endDateHandle = useRef<DateInputHandleValue>(null);\n\n const start =\n value.start === undefined || value.start === ''\n ? undefined\n : prepareValue(parseToDate(value.start).getTime(), 'start');\n const end =\n value.end === undefined || value.end === ''\n ? undefined\n : prepareValue(parseToDate(value.end).getTime(), 'end');\n\n const startDateRef = useRef<DateTimeCallbackParameter>(convertToCallbackParameter(start));\n const endDateRef = useRef<DateTimeCallbackParameter>(convertToCallbackParameter(end));\n\n const onFocusChange = useCallback(\n (focused: boolean) => {\n (focused ? onFocus : onBlur)?.({\n start: startDateRef.current,\n end: endDateRef.current\n });\n },\n [onFocus, onBlur]\n );\n\n const containerRef = useConsolidatedRef(ref);\n useFocusWithin([containerRef], onFocusChange);\n\n const onStartDateChange = (selectedDate?: Date) => {\n const selected = selectedDate?.getTime();\n if (end && selected && selected > end) {\n startDateRef.current = convertToCallbackParameter(prepareValue(end, 'start'));\n endDateRef.current = convertToCallbackParameter(prepareValue(selected, 'end'));\n onChange({\n start: convertToCallbackParameter(prepareValue(end, 'start')),\n end: convertToCallbackParameter(prepareValue(selected, 'end'))\n });\n } else {\n startDateRef.current = convertToCallbackParameter(prepareValue(selected, 'start'));\n endDateRef.current = convertToCallbackParameter(end);\n onChange({\n start: convertToCallbackParameter(prepareValue(selected, 'start')),\n end: convertToCallbackParameter(end)\n });\n }\n endDateHandle.current?.setOpen(true);\n };\n\n const onEndDateChange = (selectedDate?: Date) => {\n const selected = selectedDate?.getTime();\n if (start && selected && selected < start) {\n endDateRef.current = convertToCallbackParameter(prepareValue(start, 'end'));\n startDateRef.current = convertToCallbackParameter(prepareValue(selected, 'start'));\n onChange({\n end: convertToCallbackParameter(prepareValue(start, 'end')),\n start: convertToCallbackParameter(prepareValue(selected, 'start'))\n });\n } else {\n endDateRef.current = convertToCallbackParameter(prepareValue(selected, 'end'));\n startDateRef.current = convertToCallbackParameter(start);\n onChange({\n start: convertToCallbackParameter(start),\n end: convertToCallbackParameter(prepareValue(selected, 'end'))\n });\n }\n };\n\n const getSelectedRange = () => {\n const startDate = parseValueToDate(start);\n const endDate = parseValueToDate(end);\n\n if (startDate && endDate && startDate > endDate) return undefined;\n\n return {\n startDate,\n endDate\n };\n };\n\n const commonProps = {\n required,\n readOnly,\n disabled,\n min,\n max,\n status\n };\n\n const descriptionId = useUID();\n\n return (\n <>\n <FormField\n testId={testIds}\n as={StyledDateRangeInput}\n {...restProps}\n ref={containerRef}\n container={{ wrap: 'nowrap' }}\n labelHidden={labelHidden}\n label={label}\n labelAs='legend'\n required={required}\n readOnly={readOnly}\n status={status}\n disabled={disabled}\n aria-describedby={descriptionId}\n >\n <Flex\n container\n as={StyledRangeInputContainer}\n className={createClassName('date-range-input', className, { status })}\n >\n <DateInput\n testId={testIds.fromDate}\n {...commonProps}\n value={value.start}\n picker={{\n renderer: DateRangePicker,\n rendererProps: {\n selected: getSelected(start, end),\n selectedRange: getSelectedRange(),\n onChange: onStartDateChange\n }\n }}\n onBlur={changedValue => {\n const newValue = changedValue.state\n ? changedValue\n : convertToCallbackParameter(\n prepareValue(changedValue.valueAsTimestamp, 'start')\n );\n startDateRef.current = newValue;\n onChange({\n start: newValue,\n end: convertToCallbackParameter(prepareValue(end, 'end'))\n });\n }}\n additionalInfo={fromAdditionalInfo}\n label={fromLabel}\n aria-label={`${t('range_from_datetime') + (label ? ` - ${label}` : '')}`}\n autoFocus={autoFocus}\n />\n <DateInput\n testId={testIds.toDate}\n {...commonProps}\n value={value.end}\n handle={endDateHandle}\n picker={{\n renderer: DateRangePicker,\n rendererProps: {\n selected: getSelected(end, start),\n selectedRange: getSelectedRange(),\n onChange: onEndDateChange\n }\n }}\n onBlur={changedValue => {\n const newValue = changedValue.state\n ? changedValue\n : convertToCallbackParameter(prepareValue(changedValue.valueAsTimestamp, 'end'));\n endDateRef.current = newValue;\n onChange({\n start: convertToCallbackParameter(prepareValue(start, 'start')),\n end: newValue\n });\n }}\n additionalInfo={toAdditionalInfo}\n label={toLabel}\n aria-label={`${t('range_to_datetime') + (label ? ` - ${label}` : '')}`}\n />\n </Flex>\n </FormField>\n <HiddenText id={descriptionId}>{t('range_input')}</HiddenText>\n </>\n );\n }\n);\n\nexport default withTestIds(DateRangeInput, getDateRangeInputTestIds);\n"]}
|
|
1
|
+
{"version":3,"file":"DateRangeInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateRangeInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useRef, forwardRef, useCallback } from 'react';\nimport type { FunctionComponent, PropsWithoutRef, Ref } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { useConsolidatedRef, useFocusWithin, useI18n, useTestIds, useUID } from '../../../hooks';\nimport type { ForwardProps } from '../../../types';\nimport { defaultThemeProp } from '../../../theme';\nimport type { FormControlProps } from '../../FormControl';\nimport Flex from '../../Flex';\nimport FormField, { StyledFormField } from '../../FormField/FormField';\nimport DateRangePicker from '../Picker/DateRangePicker';\nimport type DateTimeProps from '../DateTime.types';\nimport type {\n DateRangeCallbackParameter,\n DateTimeCallbackParameter,\n DateTimeProperties\n} from '../DateTime.types';\nimport { StyledRangeInputContainer } from '../../Input/Input.styles';\nimport { getDateRangeInputTestIds } from '../DateTime.test-ids';\nimport { createClassName, withTestIds } from '../../../utils';\nimport HiddenText from '../../HiddenText';\n\nimport DateInput from './DateInput';\nimport type { DateInputHandleValue } from './DateInput';\nimport { parseToDate } from './utils';\nimport StyledDateInput from './DateTime.styles';\n\nexport interface DateRangeInputProps extends DateTimeProperties {\n /** Object of range boundaries. */\n value?: { start?: DateTimeProps['value']; end?: DateTimeProps['value'] };\n /**\n * Display additional column with week number in date picker popover.\n * @default false\n */\n showWeekNumber?: boolean;\n /** Pass a string or a fragment with an Icon and string for first part of DataRangeInput. */\n fromLabel?: FormControlProps['label'];\n /** Pass a string or a fragment with an Icon and string for second part of DataRangeInput. */\n toLabel?: FormControlProps['label'];\n /** Pass an object with \"heading\" and \"content\" properties to show AdditionalInfo for second part of DataRangeInput. */\n toAdditionalInfo?: FormControlProps['additionalInfo'];\n /** Pass an object with \"heading\" and \"content\" properties to show AdditionalInfo for first part of DataRangeInput. */\n fromAdditionalInfo?: FormControlProps['additionalInfo'];\n /** Callback fired when input value changes. */\n onChange: (value: DateRangeCallbackParameter) => void;\n /** Callback fired when the component gets focused. */\n onFocus?: (value: DateRangeCallbackParameter) => void;\n /** Callback fired when the component loses focus. */\n onBlur?: (value: DateRangeCallbackParameter) => void;\n /** Automatically focuses the input on render. */\n autoFocus?: boolean;\n}\n\nconst StyledDateRangeInput = styled.fieldset<DateRangeInputProps>(props => {\n const {\n theme: {\n components: { input }\n }\n } = props;\n\n return css`\n border: 0;\n min-width: min-content;\n\n ${StyledFormField} {\n &:last-child > ${StyledDateInput} {\n margin-inline-start: -${input['border-width']};\n }\n\n & legend {\n align-self: center;\n }\n\n &:focus,\n &:hover,\n &:focus-within {\n z-index: 2;\n }\n }\n `;\n});\n\nStyledDateRangeInput.defaultProps = defaultThemeProp;\n\ntype DateRepresentable = string | number | Date;\n\nconst convertToCallbackParameter = (v?: number): DateTimeCallbackParameter => {\n return {\n valueAsISOString: v === undefined || Number.isNaN(v) ? undefined : new Date(v).toISOString(),\n valueAsTimestamp: v\n };\n};\n\nconst prepareValue = (v: number | undefined, type: 'start' | 'end') => {\n if (v === undefined || Number.isNaN(v)) {\n return v;\n }\n return type === 'start'\n ? new Date(v).setUTCHours(0, 0, 0, 0)\n : new Date(v).setUTCHours(23, 59, 59, 999);\n};\n\nconst getSelected = (first: number | undefined, second: number | undefined) => {\n const selected = first ?? second;\n return selected ? parseToDate(selected) : undefined;\n};\n\nconst parseValueToDate = (value: DateRepresentable | undefined) => {\n return value ? parseToDate(value) : undefined;\n};\n\nconst DateRangeInput: FunctionComponent<DateRangeInputProps & ForwardProps> = forwardRef(\n function DateRangeInput(\n {\n testId,\n value = {},\n min,\n max,\n label,\n fromLabel,\n toLabel,\n labelHidden,\n status,\n required,\n readOnly,\n disabled,\n onChange,\n onFocus,\n onBlur,\n showWeekNumber,\n autoFocus,\n fromAdditionalInfo,\n toAdditionalInfo,\n className,\n ...restProps\n }: PropsWithoutRef<DateRangeInputProps>,\n ref: Ref<HTMLDivElement>\n ) {\n const testIds = useTestIds(testId, getDateRangeInputTestIds);\n const t = useI18n();\n const endDateHandle = useRef<DateInputHandleValue>(null);\n\n const start =\n value.start === undefined || value.start === ''\n ? undefined\n : prepareValue(parseToDate(value.start).getTime(), 'start');\n const end =\n value.end === undefined || value.end === ''\n ? undefined\n : prepareValue(parseToDate(value.end).getTime(), 'end');\n\n const startDateRef = useRef<DateTimeCallbackParameter>(convertToCallbackParameter(start));\n const endDateRef = useRef<DateTimeCallbackParameter>(convertToCallbackParameter(end));\n\n const onFocusChange = useCallback(\n (focused: boolean) => {\n (focused ? onFocus : onBlur)?.({\n start: startDateRef.current,\n end: endDateRef.current\n });\n },\n [onFocus, onBlur]\n );\n\n const containerRef = useConsolidatedRef(ref);\n useFocusWithin([containerRef], onFocusChange);\n\n const onStartDateChange = (selectedDate?: Date) => {\n const selected = selectedDate?.getTime();\n if (end && selected && selected > end) {\n startDateRef.current = convertToCallbackParameter(prepareValue(end, 'start'));\n endDateRef.current = convertToCallbackParameter(prepareValue(selected, 'end'));\n onChange({\n start: convertToCallbackParameter(prepareValue(end, 'start')),\n end: convertToCallbackParameter(prepareValue(selected, 'end'))\n });\n } else {\n startDateRef.current = convertToCallbackParameter(prepareValue(selected, 'start'));\n endDateRef.current = convertToCallbackParameter(end);\n onChange({\n start: convertToCallbackParameter(prepareValue(selected, 'start')),\n end: convertToCallbackParameter(end)\n });\n }\n endDateHandle.current?.setOpen(true);\n };\n\n const onEndDateChange = (selectedDate?: Date) => {\n const selected = selectedDate?.getTime();\n if (start && selected && selected < start) {\n endDateRef.current = convertToCallbackParameter(prepareValue(start, 'end'));\n startDateRef.current = convertToCallbackParameter(prepareValue(selected, 'start'));\n onChange({\n end: convertToCallbackParameter(prepareValue(start, 'end')),\n start: convertToCallbackParameter(prepareValue(selected, 'start'))\n });\n } else {\n endDateRef.current = convertToCallbackParameter(prepareValue(selected, 'end'));\n startDateRef.current = convertToCallbackParameter(start);\n onChange({\n start: convertToCallbackParameter(start),\n end: convertToCallbackParameter(prepareValue(selected, 'end'))\n });\n }\n };\n\n const getSelectedRange = () => {\n const startDate = parseValueToDate(start);\n const endDate = parseValueToDate(end);\n\n if (startDate && endDate && startDate > endDate) return undefined;\n\n return {\n startDate,\n endDate\n };\n };\n\n const commonProps = {\n required,\n readOnly,\n disabled,\n min,\n max,\n status\n };\n\n const descriptionId = useUID();\n\n return (\n <>\n <FormField\n testId={testIds}\n as={StyledDateRangeInput}\n {...restProps}\n ref={containerRef}\n className={createClassName('date-range-input', className, { status })}\n container={{ wrap: 'nowrap' }}\n labelHidden={labelHidden}\n label={label}\n labelAs='legend'\n required={required}\n readOnly={readOnly}\n status={status}\n disabled={disabled}\n aria-describedby={descriptionId}\n >\n <Flex container as={StyledRangeInputContainer}>\n <DateInput\n testId={testIds.fromDate}\n {...commonProps}\n value={value.start}\n picker={{\n renderer: DateRangePicker,\n rendererProps: {\n selected: getSelected(start, end),\n selectedRange: getSelectedRange(),\n onChange: onStartDateChange\n }\n }}\n onBlur={changedValue => {\n const newValue = changedValue.state\n ? changedValue\n : convertToCallbackParameter(\n prepareValue(changedValue.valueAsTimestamp, 'start')\n );\n startDateRef.current = newValue;\n onChange({\n start: newValue,\n end: convertToCallbackParameter(prepareValue(end, 'end'))\n });\n }}\n additionalInfo={fromAdditionalInfo}\n label={fromLabel}\n aria-label={`${t('range_from_datetime') + (label ? ` - ${label}` : '')}`}\n autoFocus={autoFocus}\n />\n <DateInput\n testId={testIds.toDate}\n {...commonProps}\n value={value.end}\n handle={endDateHandle}\n picker={{\n renderer: DateRangePicker,\n rendererProps: {\n selected: getSelected(end, start),\n selectedRange: getSelectedRange(),\n onChange: onEndDateChange\n }\n }}\n onBlur={changedValue => {\n const newValue = changedValue.state\n ? changedValue\n : convertToCallbackParameter(prepareValue(changedValue.valueAsTimestamp, 'end'));\n endDateRef.current = newValue;\n onChange({\n start: convertToCallbackParameter(prepareValue(start, 'start')),\n end: newValue\n });\n }}\n additionalInfo={toAdditionalInfo}\n label={toLabel}\n aria-label={`${t('range_to_datetime') + (label ? ` - ${label}` : '')}`}\n />\n </Flex>\n </FormField>\n <HiddenText id={descriptionId}>{t('range_input')}</HiddenText>\n </>\n );\n }\n);\n\nexport default withTestIds(DateRangeInput, getDateRangeInputTestIds);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTime.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateTime.styles.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,SAAS,2GA0CpB,CAAC;AAIH,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"DateTime.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateTime.styles.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,SAAS,2GA0CpB,CAAC;AAIH,eAAO,MAAM,oBAAoB,yGA8B/B,CAAC;AAIH,QAAA,MAAM,cAAc,yGAqClB,CAAC;AAIH,eAAe,cAAc,CAAC;AAE9B,eAAO,MAAM,iBAAiB,0LA4B5B,CAAC;AAIH,eAAO,MAAM,8BAA8B,yGAOzC,CAAC;AAIH,eAAO,MAAM,mBAAmB,yGAE/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,2PAElC,CAAC"}
|
|
@@ -67,10 +67,6 @@ export const StyledInputContainer = styled.div(({ theme }) => {
|
|
|
67
67
|
box-shadow: ${shadow['focus-inset']};
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
&:hover:not([readonly]):enabled {
|
|
71
|
-
font-weight: ${fontWeight['semi-bold']};
|
|
72
|
-
}
|
|
73
|
-
|
|
74
70
|
option {
|
|
75
71
|
font-weight: ${fontWeight.normal};
|
|
76
72
|
background-color: ${palette['primary-background']};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTime.styles.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateTime.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IACxD,OAAO,GAAG,CAAA;aACC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,kBAAkB,CAAC;;;aAGpD,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCd,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3D,MAAM,EACJ,IAAI,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,EACrD,GAAG,KAAK,CAAC;IACV,OAAO,GAAG,CAAA;;;;QAIJ,YAAY;;;;;;;;;sBASE,MAAM,CAAC,aAAa,CAAC;;;;uBAIpB,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"DateTime.styles.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateTime.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import styled, { css } from 'styled-components';\n\nimport { defaultThemeProp } from '../../../theme';\nimport { StyledPopover } from '../../Popover/Popover.styles';\nimport { StyledSelect } from '../../Select/Select';\nimport Dialog from '../../Dialog/Dialog';\nimport { StyledFormField } from '../../FormField/FormField';\nimport Button, { StyledButton } from '../../Button';\n\nexport const BareInput = styled.input(({ theme, size }) => {\n return css`\n color: ${theme.components['form-control']['foreground-color']};\n border: 0;\n outline: none;\n width: ${size}ch;\n background-color: transparent;\n text-align: end;\n margin-inline-end: 0.125rem;\n height: inherit;\n\n &::placeholder {\n font-size: 0.6em;\n text-align: center;\n transform: translateY(-0.35ex);\n }\n\n &:last-child {\n text-align: start;\n }\n\n &:nth-child(3) {\n text-align: start;\n &::placeholder {\n text-align: start;\n }\n }\n\n ::-webkit-outer-spin-button,\n ::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n &[type='number'] {\n -moz-appearance: textfield;\n }\n\n :not(:first-child) {\n margin-inline-start: 0.125rem;\n }\n `;\n});\n\nBareInput.defaultProps = defaultThemeProp;\n\nexport const StyledInputContainer = styled.div(({ theme }) => {\n const {\n base: { palette, 'font-weight': fontWeight, shadow }\n } = theme;\n return css`\n height: inherit;\n overflow: hidden;\n\n > ${StyledSelect} {\n background-color: transparent;\n border-radius: 0;\n border: 0;\n color: currentcolor;\n opacity: 1;\n width: max-content;\n\n &:focus:not([readonly]):enabled {\n box-shadow: ${shadow['focus-inset']};\n }\n\n option {\n font-weight: ${fontWeight.normal};\n background-color: ${palette['primary-background']};\n }\n\n @media (pointer: coarse) {\n min-height: inherit;\n }\n }\n `;\n});\n\nStyledInputContainer.defaultProps = defaultThemeProp;\n\nconst StyledDateTime = styled.div(props => {\n const {\n theme: {\n base: { 'font-family': fontFamily, spacing, 'hit-area': hitArea },\n components: {\n input: { height },\n 'form-control': {\n ':focus': { 'border-color': focusBorderColor, 'box-shadow': shadow }\n }\n }\n }\n } = props;\n return css`\n min-width: min-content;\n height: ${height};\n min-height: ${hitArea['mouse-min']};\n outline: none;\n padding: 0 ${spacing};\n\n @media (pointer: coarse) {\n min-height: ${hitArea['finger-min']};\n }\n\n ${StyledFormField}:enabled > &:focus-within {\n border-color: ${focusBorderColor};\n box-shadow: ${shadow};\n }\n\n ${StyledPopover},\n ${StyledSelect} {\n font-family: ${fontFamily};\n }\n\n > ${StyledButton} {\n margin-inline-start: auto;\n }\n `;\n});\n\nStyledDateTime.defaultProps = defaultThemeProp;\n\nexport default StyledDateTime;\n\nexport const StyledInputButton = styled(Button)(props => {\n const {\n theme: {\n base: { 'border-radius': baseBorderRadius, 'hit-area': hitArea },\n components: {\n input: { height },\n 'form-control': {\n 'border-radius': formBorderRadius,\n 'foreground-color': fgColor,\n 'border-width': borderWidth\n }\n }\n }\n } = props;\n return css`\n border-radius: calc(${baseBorderRadius} * ${formBorderRadius});\n border: 0;\n &:enabled {\n color: ${fgColor};\n }\n min-height: calc(${height} - 2 * ${borderWidth});\n height: calc(${height} - 2 * ${borderWidth});\n width: calc(${height} - 2 * ${borderWidth});\n @media (pointer: coarse) {\n min-height: calc(${hitArea['finger-min']} - 2 * ${borderWidth});\n width: calc(${hitArea['finger-min']} - 2 * ${borderWidth});\n }\n `;\n});\n\nStyledInputButton.defaultProps = defaultThemeProp;\n\nexport const StyledClearNowButtonsContainer = styled.div(({ theme }) => {\n const spacing = theme.base.spacing;\n\n return css`\n padding-block: calc(${spacing} * 1.5);\n padding-inline: calc(${spacing} * 1.5);\n `;\n});\n\nStyledClearNowButtonsContainer.defaultProps = defaultThemeProp;\n\nexport const StyledDialogContent = styled.div`\n overflow: auto;\n`;\n\nexport const StyledDatePickerDialog = styled(Dialog)`\n min-width: unset;\n`;\n\nStyledDatePickerDialog.defaultProps = defaultThemeProp;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateTimeInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,iBAAiB,EAKlB,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAiB1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAyBnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C,OAAO,KAAK,EAAa,aAAa,EAAa,MAAM,uBAAuB,CAAC;AAIjF,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,8EAA8E;IAC9E,cAAc,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;CACrD;AAED,eAAO,MAAM,mBAAmB,yHAK9B,CAAC;AAwBH,eAAO,MAAM,0BAA0B,GACrC,MAAM,IAAI,EACV,OAAO,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC,KACvC,yBAgEF,CAAC;;;;
|
|
1
|
+
{"version":3,"file":"DateTimeInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/DateTimeInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,iBAAiB,EAKlB,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAiB1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAyBnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C,OAAO,KAAK,EAAa,aAAa,EAAa,MAAM,uBAAuB,CAAC;AAIjF,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,8EAA8E;IAC9E,cAAc,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;CACrD;AAED,eAAO,MAAM,mBAAmB,yHAK9B,CAAC;AAwBH,eAAO,MAAM,0BAA0B,GACrC,MAAM,IAAI,EACV,OAAO,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC,KACvC,yBAgEF,CAAC;;;;AAmmBF,wBAAmE"}
|
|
@@ -110,6 +110,15 @@ const DateTimeInput = forwardRef(function DateTimeInput(props, ref) {
|
|
|
110
110
|
useRef(null),
|
|
111
111
|
useRef(null)
|
|
112
112
|
];
|
|
113
|
+
const [hasValue, setHasValue] = useState(!!dateTime);
|
|
114
|
+
useEffect(() => {
|
|
115
|
+
setHasValue(!!(yearInputRef.current?.value ||
|
|
116
|
+
monthInputRef.current?.value ||
|
|
117
|
+
dayInputRef.current?.value ||
|
|
118
|
+
hourInputRef.current?.value ||
|
|
119
|
+
minuteInputRef.current?.value ||
|
|
120
|
+
(withSeconds && secondInputRef.current?.value)));
|
|
121
|
+
}, [dateTime]);
|
|
113
122
|
useEffect(() => {
|
|
114
123
|
if (is12h && meridiemSelectRef.current && dateTime?.getUTCHours() !== undefined) {
|
|
115
124
|
meridiemSelectRef.current.value = getMeridiem(dateTime?.getUTCHours());
|
|
@@ -192,6 +201,12 @@ const DateTimeInput = forwardRef(function DateTimeInput(props, ref) {
|
|
|
192
201
|
const onInputChange = () => {
|
|
193
202
|
onChange?.(convertToCallbackParameter(dateTime ? new Date(dateTime) : new Date(), pickParts()));
|
|
194
203
|
buttonEl?.setAttribute('aria-label', generatePickerButtonAriaLabel(currentlySelectedDateTime(), 'datetime', locale, t, open, is12h));
|
|
204
|
+
setHasValue(!!(dayInputRef.current?.value ||
|
|
205
|
+
monthInputRef.current?.value ||
|
|
206
|
+
yearInputRef.current?.value ||
|
|
207
|
+
hourInputRef.current?.value ||
|
|
208
|
+
minuteInputRef.current?.value ||
|
|
209
|
+
(withSeconds && secondInputRef.current?.value)));
|
|
195
210
|
};
|
|
196
211
|
const setInputValue = (newValue) => {
|
|
197
212
|
dayInputRef.current.value = newValue?.getUTCDate().toString().padStart(2, '0') ?? '';
|
|
@@ -311,14 +326,14 @@ const DateTimeInput = forwardRef(function DateTimeInput(props, ref) {
|
|
|
311
326
|
const Comp = (_jsxs(Flex, { "data-testid": label ? undefined : testIds.root, as: StyledDateTimeInput, forwardedAs: StyledFormControl, hasSuggestion: status === 'pending' && !!onResolveSuggestion, container: { alignItems: 'center', wrap: 'nowrap', justify: 'between' }, status: status, readOnly: readOnly, disabled: disabled, ref: containerRef, onClick: (e) => {
|
|
312
327
|
if (e.target === containerRef.current)
|
|
313
328
|
orderedRefs[0].current?.focus();
|
|
314
|
-
}, ...restProps, className: createClassName('date-time-input', className), children: [_jsxs(Flex, { ref: inputContainerRef, as: StyledInputContainer, container: { alignItems: 'center', wrap: 'wrap' }, onPaste: onPaste, children: [dateInputs, timeInputs] }), !readOnly && (_jsxs(Flex, { container: true, children: [
|
|
329
|
+
}, ...restProps, className: createClassName('date-time-input', className, { status }), children: [_jsxs(Flex, { ref: inputContainerRef, as: StyledInputContainer, container: { alignItems: 'center', wrap: 'wrap' }, onPaste: onPaste, children: [dateInputs, timeInputs] }), !readOnly && (_jsxs(Flex, { container: true, children: [hasValue && (_jsx(StyledInputButton, { icon: true, onClick: () => {
|
|
315
330
|
setPickerSelection(undefined);
|
|
316
331
|
setInputValue(undefined);
|
|
317
332
|
setTimeout(() => buttonEl?.focus());
|
|
318
333
|
onInputChange();
|
|
319
334
|
}, variant: 'simple', compact: true, "aria-label": t('clear_current_date_and_time'), label: t('clear'), "data-testid": testIds.clearCurrentDateAndTime, children: _jsx(Icon, { name: 'times' }) })), Picker] }))] }));
|
|
320
335
|
const { description, descriptionID } = useAutoFocusNextInput(orderedRefs);
|
|
321
|
-
return label ? (_jsxs(_Fragment, { children: [_jsx(FormField, { testId: testIds, as: StyledDateTimeFieldset, labelAs: 'legend', "aria-labelledby": id, ref: ref, label: label, labelHidden: labelHidden, id: id, info: info, status: status, required: required, disabled: disabled, onResolveSuggestion: onResolveSuggestion, additionalInfo: additionalInfo, "aria-describedby": descriptionID, children: Comp }), description] })) : (Comp);
|
|
336
|
+
return label ? (_jsxs(_Fragment, { children: [_jsx(FormField, { testId: testIds, as: StyledDateTimeFieldset, labelAs: 'legend', "aria-labelledby": id, ref: ref, label: label, labelHidden: labelHidden, id: id, info: info, readOnly: readOnly, status: status, required: required, disabled: disabled, onResolveSuggestion: onResolveSuggestion, additionalInfo: additionalInfo, "aria-describedby": descriptionID, children: Comp }), description] })) : (Comp);
|
|
322
337
|
});
|
|
323
338
|
export default withTestIds(DateTimeInput, getDateTimeInputTestIds);
|
|
324
339
|
//# sourceMappingURL=DateTimeInput.js.map
|