@pega/cosmos-react-core 2.0.0-dev.11.0 → 2.0.0-dev.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/lib/components/Actions/Actions.js +1 -1
- package/lib/components/Actions/Actions.js.map +1 -1
- package/lib/components/AppShell/AppHeader.d.ts.map +1 -1
- package/lib/components/AppShell/AppHeader.js +1 -6
- package/lib/components/AppShell/AppHeader.js.map +1 -1
- package/lib/components/AppShell/AppShell.d.ts.map +1 -1
- package/lib/components/AppShell/AppShell.js +14 -32
- package/lib/components/AppShell/AppShell.js.map +1 -1
- package/lib/components/AppShell/AppShell.styles.d.ts +3 -2
- package/lib/components/AppShell/AppShell.styles.d.ts.map +1 -1
- package/lib/components/AppShell/AppShell.styles.js +36 -24
- package/lib/components/AppShell/AppShell.styles.js.map +1 -1
- package/lib/components/AppShell/AppShellList.js +10 -13
- package/lib/components/AppShell/AppShellList.js.map +1 -1
- package/lib/components/AppShell/Drawer.js +3 -6
- package/lib/components/AppShell/Drawer.js.map +1 -1
- package/lib/components/AppShell/Operator.js +1 -3
- package/lib/components/AppShell/Operator.js.map +1 -1
- package/lib/components/AppShell/SkipNavigation.js +2 -2
- package/lib/components/AppShell/SkipNavigation.js.map +1 -1
- package/lib/components/Avatar/Avatar.js +3 -4
- package/lib/components/Avatar/Avatar.js.map +1 -1
- package/lib/components/Backdrop/Backdrop.d.ts +1 -1
- package/lib/components/Backdrop/Backdrop.d.ts.map +1 -1
- package/lib/components/Backdrop/Backdrop.js +6 -5
- package/lib/components/Backdrop/Backdrop.js.map +1 -1
- package/lib/components/Badges/Selection.js +7 -8
- package/lib/components/Badges/Selection.js.map +1 -1
- package/lib/components/Banner/Banner.js +2 -6
- package/lib/components/Banner/Banner.js.map +1 -1
- package/lib/components/Boolean/BooleanDisplay.js +1 -2
- package/lib/components/Boolean/BooleanDisplay.js.map +1 -1
- package/lib/components/Breadcrumbs/Breadcrumbs.js +2 -5
- package/lib/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/lib/components/Button/Button.d.ts +5 -0
- package/lib/components/Button/Button.d.ts.map +1 -1
- package/lib/components/Button/Button.js +16 -9
- package/lib/components/Button/Button.js.map +1 -1
- package/lib/components/Card/Card.d.ts.map +1 -1
- package/lib/components/Card/Card.js +2 -1
- package/lib/components/Card/Card.js.map +1 -1
- package/lib/components/Card/CardContent.d.ts.map +1 -1
- package/lib/components/Card/CardContent.js +4 -3
- package/lib/components/Card/CardContent.js.map +1 -1
- package/lib/components/Card/CardFooter.d.ts.map +1 -1
- package/lib/components/Card/CardFooter.js +3 -2
- package/lib/components/Card/CardFooter.js.map +1 -1
- package/lib/components/Card/CardHeader.d.ts.map +1 -1
- package/lib/components/Card/CardHeader.js +5 -5
- package/lib/components/Card/CardHeader.js.map +1 -1
- package/lib/components/Card/CollapsibleCard.js +2 -6
- package/lib/components/Card/CollapsibleCard.js.map +1 -1
- package/lib/components/ColorPicker/ColorPicker.js +6 -9
- package/lib/components/ColorPicker/ColorPicker.js.map +1 -1
- package/lib/components/ComboBox/ComboBox.d.ts +1 -1
- package/lib/components/ComboBox/ComboBox.d.ts.map +1 -1
- package/lib/components/ComboBox/ComboBox.js +14 -20
- package/lib/components/ComboBox/ComboBox.js.map +1 -1
- package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.d.ts.map +1 -1
- package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.js +11 -19
- package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.js.map +1 -1
- package/lib/components/ComboBox/SingleSelectInput/SingleSelectInput.d.ts.map +1 -1
- package/lib/components/ComboBox/SingleSelectInput/SingleSelectInput.js +3 -3
- package/lib/components/ComboBox/SingleSelectInput/SingleSelectInput.js.map +1 -1
- package/lib/components/Configuration/Configuration.js +8 -10
- package/lib/components/Configuration/Configuration.js.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 +18 -23
- 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 +10 -16
- package/lib/components/DateTime/Input/DateRangeInput.js.map +1 -1
- package/lib/components/DateTime/Input/DateTimeInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/DateTimeInput.js +27 -37
- package/lib/components/DateTime/Input/DateTimeInput.js.map +1 -1
- package/lib/components/DateTime/Input/DayOfWeekInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/DayOfWeekInput.js +6 -4
- package/lib/components/DateTime/Input/DayOfWeekInput.js.map +1 -1
- package/lib/components/DateTime/Input/Duration/DurationInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/Duration/DurationInput.js +2 -2
- package/lib/components/DateTime/Input/Duration/DurationInput.js.map +1 -1
- package/lib/components/DateTime/Input/Duration/NumberUnit.js +3 -4
- package/lib/components/DateTime/Input/Duration/NumberUnit.js.map +1 -1
- package/lib/components/DateTime/Input/Duration/Time.js +7 -10
- package/lib/components/DateTime/Input/Duration/Time.js.map +1 -1
- package/lib/components/DateTime/Input/MonthInput.js +9 -13
- package/lib/components/DateTime/Input/MonthInput.js.map +1 -1
- package/lib/components/DateTime/Input/PartInput.js +2 -3
- package/lib/components/DateTime/Input/PartInput.js.map +1 -1
- package/lib/components/DateTime/Input/TimeInput.js +16 -23
- package/lib/components/DateTime/Input/TimeInput.js.map +1 -1
- package/lib/components/DateTime/Input/WeekInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/WeekInput.js +16 -20
- package/lib/components/DateTime/Input/WeekInput.js.map +1 -1
- package/lib/components/DateTime/Input/useAutoFocusNextInput.js +4 -7
- package/lib/components/DateTime/Input/useAutoFocusNextInput.js.map +1 -1
- package/lib/components/DateTime/Input/usePickerButton.js +4 -4
- package/lib/components/DateTime/Input/usePickerButton.js.map +1 -1
- package/lib/components/DateTime/Input/utils.d.ts +2 -0
- package/lib/components/DateTime/Input/utils.d.ts.map +1 -1
- package/lib/components/DateTime/Input/utils.js +38 -10
- package/lib/components/DateTime/Input/utils.js.map +1 -1
- package/lib/components/DateTime/Picker/Calendar.d.ts.map +1 -1
- package/lib/components/DateTime/Picker/Calendar.js +24 -30
- package/lib/components/DateTime/Picker/Calendar.js.map +1 -1
- package/lib/components/DateTime/Picker/Calendar.styles.d.ts +2 -2
- package/lib/components/DateTime/Picker/Calendar.styles.d.ts.map +1 -1
- package/lib/components/DateTime/Picker/Calendar.styles.js +2 -2
- package/lib/components/DateTime/Picker/Calendar.styles.js.map +1 -1
- package/lib/components/DateTime/Picker/DatePicker.js +5 -10
- package/lib/components/DateTime/Picker/DatePicker.js.map +1 -1
- package/lib/components/DateTime/Picker/DateRangePicker.js +5 -10
- package/lib/components/DateTime/Picker/DateRangePicker.js.map +1 -1
- package/lib/components/DateTime/Picker/TimePicker.js +5 -6
- package/lib/components/DateTime/Picker/TimePicker.js.map +1 -1
- package/lib/components/DateTime/Picker/Weeks.js +7 -9
- package/lib/components/DateTime/Picker/Weeks.js.map +1 -1
- package/lib/components/Drawer/Drawer.js +5 -5
- package/lib/components/Drawer/Drawer.js.map +1 -1
- package/lib/components/EmojiPicker/EmojiDisplay.d.ts.map +1 -1
- package/lib/components/EmojiPicker/EmojiDisplay.js +1 -1
- package/lib/components/EmojiPicker/EmojiDisplay.js.map +1 -1
- package/lib/components/EmojiPicker/EmojiPicker.js +2 -3
- package/lib/components/EmojiPicker/EmojiPicker.js.map +1 -1
- package/lib/components/EmptyState/EmptyState.d.ts +14 -0
- package/lib/components/EmptyState/EmptyState.d.ts.map +1 -0
- package/lib/components/{NoItems/NoItems.js → EmptyState/EmptyState.js} +6 -7
- package/lib/components/EmptyState/EmptyState.js.map +1 -0
- package/lib/components/EmptyState/index.d.ts +4 -0
- package/lib/components/EmptyState/index.d.ts.map +1 -0
- package/lib/components/EmptyState/index.js +3 -0
- package/lib/components/EmptyState/index.js.map +1 -0
- package/lib/components/ErrorState/ErrorState.d.ts +2 -0
- package/lib/components/ErrorState/ErrorState.d.ts.map +1 -1
- package/lib/components/ErrorState/ErrorState.js +3 -3
- package/lib/components/ErrorState/ErrorState.js.map +1 -1
- package/lib/components/ExpandCollapse/ExpandCollapse.js +4 -4
- package/lib/components/ExpandCollapse/ExpandCollapse.js.map +1 -1
- package/lib/components/FieldGroup/FieldGroup.js +2 -5
- package/lib/components/FieldGroup/FieldGroup.js.map +1 -1
- package/lib/components/FieldGroup/FieldGroupList.js +1 -2
- package/lib/components/FieldGroup/FieldGroupList.js.map +1 -1
- package/lib/components/FieldValueList/FieldValueList.js +2 -4
- package/lib/components/FieldValueList/FieldValueList.js.map +1 -1
- package/lib/components/File/FileDisplay.d.ts +4 -1
- package/lib/components/File/FileDisplay.d.ts.map +1 -1
- package/lib/components/File/FileDisplay.js.map +1 -1
- package/lib/components/File/FileInput.d.ts +1 -1
- package/lib/components/File/FileInput.d.ts.map +1 -1
- package/lib/components/File/FileInput.js +7 -12
- package/lib/components/File/FileInput.js.map +1 -1
- package/lib/components/File/FileItem.js +2 -3
- package/lib/components/File/FileItem.js.map +1 -1
- package/lib/components/File/FileUploadItem.js +3 -3
- package/lib/components/File/FileUploadItem.js.map +1 -1
- package/lib/components/File/FileVisual.js +2 -4
- package/lib/components/File/FileVisual.js.map +1 -1
- package/lib/components/File/utils.js +1 -2
- package/lib/components/File/utils.js.map +1 -1
- package/lib/components/Flex/Flex.d.ts +2 -2
- package/lib/components/Flex/Flex.d.ts.map +1 -1
- package/lib/components/Flex/Flex.js.map +1 -1
- package/lib/components/Form/Form.js +1 -3
- package/lib/components/Form/Form.js.map +1 -1
- package/lib/components/FormControl/FormControl.d.ts +1 -1
- package/lib/components/FormControl/FormControl.d.ts.map +1 -1
- package/lib/components/FormField/FormField.js +5 -10
- package/lib/components/FormField/FormField.js.map +1 -1
- package/lib/components/Grid/Grid.d.ts +1 -1
- package/lib/components/Grid/Grid.d.ts.map +1 -1
- package/lib/components/Grid/Grid.js +5 -8
- package/lib/components/Grid/Grid.js.map +1 -1
- package/lib/components/Icon/Icon.js +2 -4
- package/lib/components/Icon/Icon.js.map +1 -1
- package/lib/components/Icon/icons/compass-solid.icon.js +1 -2
- package/lib/components/Icon/icons/compass-solid.icon.js.map +1 -1
- package/lib/components/Icon/icons/dataviz-table-with-bars.icon.js +1 -4
- package/lib/components/Icon/icons/dataviz-table-with-bars.icon.js.map +1 -1
- package/lib/components/Icon/icons/dataviz-table-with-cross.icon.js +1 -2
- package/lib/components/Icon/icons/dataviz-table-with-cross.icon.js.map +1 -1
- package/lib/components/Icon/icons/dataviz-waterfall.icon.js +1 -5
- package/lib/components/Icon/icons/dataviz-waterfall.icon.js.map +1 -1
- package/lib/components/Icon/icons/filetype-text.icon.js +1 -4
- package/lib/components/Icon/icons/filetype-text.icon.js.map +1 -1
- package/lib/components/Icon/icons/folder-dollar.icon.js +1 -2
- package/lib/components/Icon/icons/folder-dollar.icon.js.map +1 -1
- package/lib/components/Icon/icons/freeze-column.icon.js +1 -2
- package/lib/components/Icon/icons/freeze-column.icon.js.map +1 -1
- package/lib/components/Icon/icons/galaxy.icon.js +1 -3
- package/lib/components/Icon/icons/galaxy.icon.js.map +1 -1
- package/lib/components/Icon/icons/grad-solid.icon.js +1 -2
- package/lib/components/Icon/icons/grad-solid.icon.js.map +1 -1
- package/lib/components/Icon/icons/grad.icon.js +1 -5
- package/lib/components/Icon/icons/grad.icon.js.map +1 -1
- package/lib/components/Icon/icons/list-number.icon.js +1 -6
- package/lib/components/Icon/icons/list-number.icon.js.map +1 -1
- package/lib/components/Icon/icons/list.icon.js +1 -6
- package/lib/components/Icon/icons/list.icon.js.map +1 -1
- package/lib/components/Icon/icons/pin.icon.js +1 -2
- package/lib/components/Icon/icons/pin.icon.js.map +1 -1
- package/lib/components/Icon/icons/search-solid.icon.js +1 -2
- package/lib/components/Icon/icons/search-solid.icon.js.map +1 -1
- package/lib/components/Icon/icons/tracer.icon.js +1 -2
- package/lib/components/Icon/icons/tracer.icon.js.map +1 -1
- package/lib/components/Icon/icons/tribox-solid.icon.js +1 -3
- package/lib/components/Icon/icons/tribox-solid.icon.js.map +1 -1
- package/lib/components/Icon/icons/tribox.icon.js +1 -3
- package/lib/components/Icon/icons/tribox.icon.js.map +1 -1
- package/lib/components/Input/Input.js +2 -2
- package/lib/components/Input/Input.js.map +1 -1
- package/lib/components/Input/Input.styles.js +2 -2
- package/lib/components/Input/Input.styles.js.map +1 -1
- package/lib/components/Link/Link.js +5 -8
- package/lib/components/Link/Link.js.map +1 -1
- package/lib/components/Location/CurrentLocationButton.js +4 -6
- package/lib/components/Location/CurrentLocationButton.js.map +1 -1
- package/lib/components/Location/LocationDisplay.js +2 -3
- package/lib/components/Location/LocationDisplay.js.map +1 -1
- package/lib/components/Location/LocationInput.js +8 -9
- package/lib/components/Location/LocationInput.js.map +1 -1
- package/lib/components/Location/LocationView.js +8 -13
- package/lib/components/Location/LocationView.js.map +1 -1
- package/lib/components/Location/utils.js +11 -15
- package/lib/components/Location/utils.js.map +1 -1
- package/lib/components/Menu/FlyoutMenuList.d.ts.map +1 -1
- package/lib/components/Menu/FlyoutMenuList.js +11 -14
- package/lib/components/Menu/FlyoutMenuList.js.map +1 -1
- package/lib/components/Menu/Menu.js +18 -20
- package/lib/components/Menu/Menu.js.map +1 -1
- package/lib/components/Menu/Menu.styles.d.ts +10 -0
- package/lib/components/Menu/Menu.styles.d.ts.map +1 -1
- package/lib/components/Menu/Menu.styles.js +198 -3
- package/lib/components/Menu/Menu.styles.js.map +1 -1
- package/lib/components/Menu/Menu.types.d.ts +17 -8
- package/lib/components/Menu/Menu.types.d.ts.map +1 -1
- package/lib/components/Menu/Menu.types.js.map +1 -1
- package/lib/components/Menu/MenuGroup.d.ts +6 -0
- package/lib/components/Menu/MenuGroup.d.ts.map +1 -0
- package/lib/components/Menu/MenuGroup.js +17 -0
- package/lib/components/Menu/MenuGroup.js.map +1 -0
- package/lib/components/Menu/MenuItem.d.ts +0 -3
- package/lib/components/Menu/MenuItem.d.ts.map +1 -1
- package/lib/components/Menu/MenuItem.js +35 -151
- package/lib/components/Menu/MenuItem.js.map +1 -1
- package/lib/components/Menu/MenuList.d.ts.map +1 -1
- package/lib/components/Menu/MenuList.js +19 -23
- package/lib/components/Menu/MenuList.js.map +1 -1
- package/lib/components/Menu/MenuListHeader.d.ts +0 -1
- package/lib/components/Menu/MenuListHeader.d.ts.map +1 -1
- package/lib/components/Menu/MenuListHeader.js +5 -55
- package/lib/components/Menu/MenuListHeader.js.map +1 -1
- package/lib/components/Menu/NavItemsList.d.ts.map +1 -1
- package/lib/components/Menu/NavItemsList.js +2 -3
- package/lib/components/Menu/NavItemsList.js.map +1 -1
- package/lib/components/Menu/helpers.d.ts +13 -12
- package/lib/components/Menu/helpers.d.ts.map +1 -1
- package/lib/components/Menu/helpers.js +40 -36
- package/lib/components/Menu/helpers.js.map +1 -1
- package/lib/components/Menu/index.d.ts +2 -3
- package/lib/components/Menu/index.d.ts.map +1 -1
- package/lib/components/Menu/index.js +1 -2
- package/lib/components/Menu/index.js.map +1 -1
- package/lib/components/MenuButton/MenuButton.js +6 -10
- package/lib/components/MenuButton/MenuButton.js.map +1 -1
- package/lib/components/Modal/MinimizedModal.js +10 -13
- package/lib/components/Modal/MinimizedModal.js.map +1 -1
- package/lib/components/Modal/Modal.d.ts +1 -6
- package/lib/components/Modal/Modal.d.ts.map +1 -1
- package/lib/components/Modal/Modal.js +40 -137
- package/lib/components/Modal/Modal.js.map +1 -1
- package/lib/components/Modal/Modal.styles.d.ts +9 -0
- package/lib/components/Modal/Modal.styles.d.ts.map +1 -0
- package/lib/components/Modal/Modal.styles.js +133 -0
- package/lib/components/Modal/Modal.styles.js.map +1 -0
- package/lib/components/Modal/Modal.types.d.ts +19 -4
- package/lib/components/Modal/Modal.types.d.ts.map +1 -1
- package/lib/components/Modal/Modal.types.js.map +1 -1
- package/lib/components/Modal/ModalManager.js +12 -21
- package/lib/components/Modal/ModalManager.js.map +1 -1
- package/lib/components/MultiStep/MultiStep.js +3 -6
- package/lib/components/MultiStep/MultiStep.js.map +1 -1
- package/lib/components/MultiStep/MultiStep.styles.js +1 -1
- package/lib/components/MultiStep/MultiStep.styles.js.map +1 -1
- package/lib/components/Number/NumberInput.js +13 -19
- package/lib/components/Number/NumberInput.js.map +1 -1
- package/lib/components/Number/NumberInput.styles.d.ts +2 -2
- package/lib/components/Number/NumberInput.styles.d.ts.map +1 -1
- package/lib/components/Number/utils.js +2 -3
- package/lib/components/Number/utils.js.map +1 -1
- package/lib/components/PageTemplates/CategorySubPage.d.ts +1 -1
- package/lib/components/PageTemplates/CategorySubPage.d.ts.map +1 -1
- package/lib/components/PageTemplates/CategorySubPage.js +6 -16
- package/lib/components/PageTemplates/CategorySubPage.js.map +1 -1
- package/lib/components/PageTemplates/DashboardPage.js +3 -8
- package/lib/components/PageTemplates/DashboardPage.js.map +1 -1
- package/lib/components/PageTemplates/PageTemplates.d.ts +2 -0
- package/lib/components/PageTemplates/PageTemplates.d.ts.map +1 -1
- package/lib/components/PageTemplates/PageTemplates.js +22 -32
- package/lib/components/PageTemplates/PageTemplates.js.map +1 -1
- package/lib/components/Pagination/Pagination.js +2 -4
- package/lib/components/Pagination/Pagination.js.map +1 -1
- package/lib/components/Phone/PhoneDisplay.js +1 -2
- package/lib/components/Phone/PhoneDisplay.js.map +1 -1
- package/lib/components/Phone/PhoneInput.d.ts.map +1 -1
- package/lib/components/Phone/PhoneInput.js +12 -10
- package/lib/components/Phone/PhoneInput.js.map +1 -1
- package/lib/components/Phone/utils.js +2 -3
- package/lib/components/Phone/utils.js.map +1 -1
- package/lib/components/Popover/Popover.js +4 -7
- package/lib/components/Popover/Popover.js.map +1 -1
- package/lib/components/Progress/Bar.js +1 -1
- package/lib/components/Progress/Bar.js.map +1 -1
- package/lib/components/Progress/Ellipsis.js +1 -3
- package/lib/components/Progress/Ellipsis.js.map +1 -1
- package/lib/components/Progress/Progress.js +2 -3
- package/lib/components/Progress/Progress.js.map +1 -1
- package/lib/components/Progress/Ring.js +2 -3
- package/lib/components/Progress/Ring.js.map +1 -1
- package/lib/components/RadioCheck/RadioCheck.js +6 -7
- package/lib/components/RadioCheck/RadioCheck.js.map +1 -1
- package/lib/components/RadioCheckGroup/RadioCheckGroup.js +7 -6
- package/lib/components/RadioCheckGroup/RadioCheckGroup.js.map +1 -1
- package/lib/components/Rating/Rating.js +2 -6
- package/lib/components/Rating/Rating.js.map +1 -1
- package/lib/components/SearchInput/SearchInput.js +10 -12
- package/lib/components/SearchInput/SearchInput.js.map +1 -1
- package/lib/components/Select/Select.js +2 -2
- package/lib/components/Select/Select.js.map +1 -1
- package/lib/components/Sentiment/Sentiment.js +1 -2
- package/lib/components/Sentiment/Sentiment.js.map +1 -1
- package/lib/components/Slider/Slider.js +7 -13
- package/lib/components/Slider/Slider.js.map +1 -1
- package/lib/components/Slider/Slider.styles.d.ts +1 -1
- package/lib/components/Slider/Slider.styles.js +1 -1
- package/lib/components/Slider/Slider.styles.js.map +1 -1
- package/lib/components/Slider/SliderTicks.js +1 -2
- package/lib/components/Slider/SliderTicks.js.map +1 -1
- package/lib/components/Slider/utils.d.ts +0 -10
- package/lib/components/Slider/utils.d.ts.map +1 -1
- package/lib/components/Slider/utils.js +3 -15
- package/lib/components/Slider/utils.js.map +1 -1
- package/lib/components/SummaryItem/SummaryItem.js +1 -4
- package/lib/components/SummaryItem/SummaryItem.js.map +1 -1
- package/lib/components/SummaryList/SummaryList.d.ts +8 -2
- package/lib/components/SummaryList/SummaryList.d.ts.map +1 -1
- package/lib/components/SummaryList/SummaryList.js +9 -10
- package/lib/components/SummaryList/SummaryList.js.map +1 -1
- package/lib/components/SummaryList/ViewAll.d.ts +1 -1
- package/lib/components/SummaryList/ViewAll.d.ts.map +1 -1
- package/lib/components/SummaryList/ViewAll.js +7 -10
- package/lib/components/SummaryList/ViewAll.js.map +1 -1
- package/lib/components/Switch/Switch.d.ts.map +1 -1
- package/lib/components/Switch/Switch.js +39 -30
- package/lib/components/Switch/Switch.js.map +1 -1
- package/lib/components/Table/Table.js +3 -7
- package/lib/components/Table/Table.js.map +1 -1
- package/lib/components/Tabs/Tab.js +3 -6
- package/lib/components/Tabs/Tab.js.map +1 -1
- package/lib/components/Tabs/TabPanel.d.ts +10 -2
- package/lib/components/Tabs/TabPanel.d.ts.map +1 -1
- package/lib/components/Tabs/TabPanel.js +21 -8
- package/lib/components/Tabs/TabPanel.js.map +1 -1
- package/lib/components/Tabs/Tabs.js +7 -8
- package/lib/components/Tabs/Tabs.js.map +1 -1
- package/lib/components/Text/Text.d.ts +1 -1
- package/lib/components/Text/Text.d.ts.map +1 -1
- package/lib/components/Text/Text.js +1 -1
- package/lib/components/Text/Text.js.map +1 -1
- package/lib/components/TextArea/TextArea.js +3 -3
- package/lib/components/TextArea/TextArea.js.map +1 -1
- package/lib/components/Toaster/Toaster.js +6 -10
- package/lib/components/Toaster/Toaster.js.map +1 -1
- package/lib/components/Tree/StandardTree.d.ts.map +1 -1
- package/lib/components/Tree/StandardTree.js +10 -17
- package/lib/components/Tree/StandardTree.js.map +1 -1
- package/lib/components/Tree/StandardTree.styles.d.ts +1 -1
- package/lib/components/Tree/StandardTree.styles.d.ts.map +1 -1
- package/lib/components/Tree/StandardTree.styles.js +16 -11
- package/lib/components/Tree/StandardTree.styles.js.map +1 -1
- package/lib/components/Tree/Tree.d.ts +6 -0
- package/lib/components/Tree/Tree.d.ts.map +1 -1
- package/lib/components/Tree/Tree.js +3 -3
- package/lib/components/Tree/Tree.js.map +1 -1
- package/lib/components/Tree/helpers.js +4 -7
- package/lib/components/Tree/helpers.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/useActiveDescendant.d.ts.map +1 -1
- package/lib/hooks/useActiveDescendant.js +28 -32
- package/lib/hooks/useActiveDescendant.js.map +1 -1
- package/lib/hooks/useBreakpoint.js +2 -4
- package/lib/hooks/useBreakpoint.js.map +1 -1
- package/lib/hooks/useFocusWithin.js +9 -9
- package/lib/hooks/useFocusWithin.js.map +1 -1
- package/lib/hooks/useI18n.d.ts +57 -1
- package/lib/hooks/useI18n.d.ts.map +1 -1
- package/lib/hooks/useLongPress.d.ts +16 -0
- package/lib/hooks/useLongPress.d.ts.map +1 -0
- package/lib/hooks/useLongPress.js +57 -0
- package/lib/hooks/useLongPress.js.map +1 -0
- package/lib/hooks/useOuterEvent.js +1 -1
- package/lib/hooks/useOuterEvent.js.map +1 -1
- package/lib/hooks/useOverride.js +1 -1
- package/lib/hooks/useOverride.js.map +1 -1
- package/lib/hooks/useScrollStick.js +14 -3
- package/lib/hooks/useScrollStick.js.map +1 -1
- package/lib/i18n/default.json +59 -3
- package/lib/i18n/i18n.d.ts +114 -2
- package/lib/i18n/i18n.d.ts.map +1 -1
- package/lib/i18n/index.d.ts +1 -0
- package/lib/i18n/index.d.ts.map +1 -1
- package/lib/i18n/index.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/styles/GlobalStyle.d.ts.map +1 -1
- package/lib/styles/GlobalStyle.js +2 -26
- package/lib/styles/GlobalStyle.js.map +1 -1
- package/lib/theme/ThemeMachine.js +7 -1
- package/lib/theme/ThemeMachine.js.map +1 -1
- package/lib/theme/index.d.ts +1 -0
- package/lib/theme/index.d.ts.map +1 -1
- package/lib/theme/index.js +1 -0
- package/lib/theme/index.js.map +1 -1
- package/lib/theme/theme.d.ts +75 -45
- package/lib/theme/theme.d.ts.map +1 -1
- package/lib/theme/themeDefinition.json +50 -30
- package/lib/theme/themeOverrides.schema.json +15 -3
- package/lib/theme/themes/buildTheme.json +2 -39
- package/lib/theme/themes/legacyBuildTheme.json +50 -0
- package/lib/types/types.d.ts +4 -1
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types/types.js.map +1 -1
- package/lib/utils/utils.d.ts +24 -0
- package/lib/utils/utils.d.ts.map +1 -1
- package/lib/utils/utils.js +36 -1
- package/lib/utils/utils.js.map +1 -1
- package/package.json +10 -10
- package/lib/components/DateTime/Input/useButtonAriaLabel.d.ts +0 -3
- package/lib/components/DateTime/Input/useButtonAriaLabel.d.ts.map +0 -1
- package/lib/components/DateTime/Input/useButtonAriaLabel.js +0 -33
- package/lib/components/DateTime/Input/useButtonAriaLabel.js.map +0 -1
- package/lib/components/NoItems/NoItems.d.ts +0 -14
- package/lib/components/NoItems/NoItems.d.ts.map +0 -1
- package/lib/components/NoItems/NoItems.js.map +0 -1
- package/lib/components/NoItems/index.d.ts +0 -4
- package/lib/components/NoItems/index.d.ts.map +0 -1
- package/lib/components/NoItems/index.js +0 -3
- package/lib/components/NoItems/index.js.map +0 -1
|
@@ -10,12 +10,11 @@ import Flex from '../../Flex';
|
|
|
10
10
|
import { StyledFormControl } from '../../FormControl';
|
|
11
11
|
import DatePicker from '../Picker/DatePicker';
|
|
12
12
|
import Popover from '../../Popover';
|
|
13
|
-
import { parseToDate, getWeekYear, getDateOfISOWeek, getWeek } from './utils';
|
|
13
|
+
import { parseToDate, getWeekYear, getDateOfISOWeek, getWeek, generatePickerButtonAriaLabel } from './utils';
|
|
14
14
|
import StyledDateTime, { BareInput, StyledInputContainer } from './DateTime.styles';
|
|
15
15
|
import usePickerButton from './usePickerButton';
|
|
16
16
|
import PartInput from './PartInput';
|
|
17
17
|
import useAutoFocusNextInput from './useAutoFocusNextInput';
|
|
18
|
-
import useButtonAriaLabel from './useButtonAriaLabel';
|
|
19
18
|
export const StyledWeekInput = styled(StyledDateTime)(props => {
|
|
20
19
|
const { theme: { base } } = props;
|
|
21
20
|
return css `
|
|
@@ -51,6 +50,7 @@ const convertToCallbackParameter = (date, parts) => {
|
|
|
51
50
|
const WeekInput = forwardRef((props, ref) => {
|
|
52
51
|
const { defaultValue, value = defaultValue, min, max, id, label, labelHidden, status, info, required, readOnly, disabled, onChange, onFocus, onBlur, autoFocus, ...restProps } = props;
|
|
53
52
|
const { locale } = useConfiguration();
|
|
53
|
+
const t = useI18n();
|
|
54
54
|
const date = value !== undefined ? parseToDate(value) : undefined;
|
|
55
55
|
const [weekInputRef, yearInputRef] = [
|
|
56
56
|
useRef(null),
|
|
@@ -58,8 +58,7 @@ const WeekInput = forwardRef((props, ref) => {
|
|
|
58
58
|
];
|
|
59
59
|
useAutoFocusNextInput([weekInputRef, yearInputRef]);
|
|
60
60
|
const pickParts = () => {
|
|
61
|
-
|
|
62
|
-
return [((_a = weekInputRef.current) === null || _a === void 0 ? void 0 : _a.value) || undefined, ((_b = yearInputRef.current) === null || _b === void 0 ? void 0 : _b.value) || undefined];
|
|
61
|
+
return [weekInputRef.current?.value || undefined, yearInputRef.current?.value || undefined];
|
|
63
62
|
};
|
|
64
63
|
const convertPartsToDate = () => {
|
|
65
64
|
const parts = pickParts();
|
|
@@ -73,11 +72,11 @@ const WeekInput = forwardRef((props, ref) => {
|
|
|
73
72
|
}
|
|
74
73
|
return parts;
|
|
75
74
|
};
|
|
76
|
-
const
|
|
75
|
+
const currentlySelectedDate = () => {
|
|
77
76
|
if (pickParts().every(Boolean)) {
|
|
78
77
|
const [year, month, day] = convertPartsToDate().map(v => (v ? Number(v) : undefined));
|
|
79
|
-
const current = date
|
|
80
|
-
return new Date(current.setUTCFullYear(year
|
|
78
|
+
const current = date ?? new Date();
|
|
79
|
+
return new Date(current.setUTCFullYear(year ?? current.getUTCFullYear(), month ?? current.getUTCMonth(), day ?? current.getUTCDate()));
|
|
81
80
|
}
|
|
82
81
|
};
|
|
83
82
|
const inputContainerRef = useRef(null);
|
|
@@ -88,39 +87,36 @@ const WeekInput = forwardRef((props, ref) => {
|
|
|
88
87
|
if (!focused) {
|
|
89
88
|
if (inputContainerRef.current)
|
|
90
89
|
inputContainerRef.current.scrollTop = 0;
|
|
91
|
-
onBlur
|
|
90
|
+
onBlur?.(callbackParam);
|
|
92
91
|
}
|
|
93
92
|
};
|
|
93
|
+
const [open, setOpen, , setPopoverRef, buttonEl, setButtonEl] = usePickerButton();
|
|
94
94
|
const onInputChange = () => {
|
|
95
|
-
onChange
|
|
95
|
+
onChange?.(convertToCallbackParameter(date ? new Date(date) : new Date(), convertPartsToDate()));
|
|
96
|
+
buttonEl?.setAttribute('aria-label', generatePickerButtonAriaLabel(currentlySelectedDate(), 'week', locale, t, open));
|
|
96
97
|
};
|
|
97
|
-
const t = useI18n();
|
|
98
98
|
const WeekNumberInput = (_jsx(PartInput, { placeholder: t('week_placeholder'), "aria-label": t('week_label_a11y'), value: date ? getWeek(date) : undefined, onChange: onInputChange, size: 2, maxLength: 2, min: 1, max: 53, readOnly: readOnly, ref: weekInputRef, autoFocus: autoFocus }, 'week'));
|
|
99
99
|
const YearInput = (_jsx(PartInput, { placeholder: t('year_placeholder'), "aria-label": t('year_label_a11y'), value: date ? getWeekYear(date) : undefined, onChange: onInputChange, size: 4, maxLength: 4, min: 1, readOnly: readOnly, ref: yearInputRef }, 'year'));
|
|
100
|
-
const [open, setOpen, , setPopoverRef, buttonEl, setButtonEl] = usePickerButton();
|
|
101
100
|
const containerRef = useConsolidatedRef(ref);
|
|
102
|
-
useFocusWithin([
|
|
103
|
-
const Picker = (_jsxs(_Fragment, { children: [_jsx(Button, Object.assign({ variant: 'simple', icon: true, ref: setButtonEl, onClick: () => setOpen(cur => !cur), "aria-label":
|
|
104
|
-
_jsx(Popover, Object.assign({ show: open, ref: setPopoverRef, target: containerRef.current, strategy: 'fixed', placement: 'bottom-end', modifiers: [
|
|
101
|
+
useFocusWithin([containerRef], onFocusChange);
|
|
102
|
+
const Picker = (_jsxs(_Fragment, { children: [_jsx(Button, Object.assign({ variant: 'simple', icon: true, ref: setButtonEl, onClick: () => setOpen(cur => !cur), "aria-label": generatePickerButtonAriaLabel(currentlySelectedDate(), 'week', locale, t, open), readOnly: readOnly, disabled: disabled }, { children: _jsx(Icon, { name: open ? 'times' : 'calendar' }, void 0) }), void 0), _jsx(Popover, Object.assign({ show: open, ref: setPopoverRef, target: containerRef.current, strategy: 'fixed', placement: 'bottom-end', modifiers: [
|
|
105
103
|
{
|
|
106
104
|
name: 'flip',
|
|
107
105
|
options: {
|
|
108
106
|
fallbackPlacements: ['top-end', 'right', 'left']
|
|
109
107
|
}
|
|
110
108
|
}
|
|
111
|
-
] }, { children: _jsx(DatePicker, { selected:
|
|
109
|
+
] }, { children: _jsx(DatePicker, { selected: currentlySelectedDate(), onChange: selected => {
|
|
112
110
|
weekInputRef.current.value = getWeek(selected).toString().padStart(2, '0');
|
|
113
111
|
yearInputRef.current.value = getWeekYear(selected).toString();
|
|
114
112
|
setOpen(false);
|
|
115
|
-
setTimeout(() => buttonEl
|
|
113
|
+
setTimeout(() => buttonEl?.focus());
|
|
116
114
|
onInputChange();
|
|
117
115
|
}, min: min, max: max, mode: 'week' }, void 0) }), void 0)] }, void 0));
|
|
118
116
|
const Comp = (_jsxs(Flex, Object.assign({ as: StyledWeekInput, forwardedAs: StyledFormControl, container: { alignItems: 'center', wrap: 'nowrap' }, status: status, readOnly: readOnly, disabled: disabled, ref: containerRef, onClick: (e) => {
|
|
119
|
-
var _a;
|
|
120
117
|
if (e.target === containerRef.current)
|
|
121
|
-
|
|
122
|
-
} }, restProps, { children: [_jsxs(Flex, Object.assign({ ref: inputContainerRef, as: StyledInputContainer, container: { alignItems: 'center', wrap: 'wrap' } }, { children: [t('week_text'), " ", WeekNumberInput, ",", YearInput] }), void 0),
|
|
123
|
-
!readOnly && Picker] }), void 0));
|
|
118
|
+
weekInputRef.current?.focus();
|
|
119
|
+
} }, restProps, { children: [_jsxs(Flex, Object.assign({ ref: inputContainerRef, as: StyledInputContainer, container: { alignItems: 'center', wrap: 'wrap' } }, { children: [t('week_text'), " ", WeekNumberInput, ",", YearInput] }), void 0), !readOnly && Picker] }), void 0));
|
|
124
120
|
return label ? (_jsx(FormField, Object.assign({ as: 'fieldset', labelAs: 'legend' }, { label, labelHidden, id, labelOrder: -1, info, status, required, disabled }, { ref: ref }, { children: Comp }), void 0)) : (Comp);
|
|
125
121
|
});
|
|
126
122
|
export default WeekInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeekInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/WeekInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FunctionComponent, forwardRef, PropsWithoutRef, Ref, useRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { defaultThemeProp } from '../../../theme';\nimport { ForwardProps } from '../../../types';\nimport { useConfiguration, useConsolidatedRef, useFocusWithin, useI18n } from '../../../hooks';\nimport FormField from '../../FormField';\nimport Button from '../../Button';\nimport Icon from '../../Icon';\nimport Flex from '../../Flex';\nimport { StyledFormControl } from '../../FormControl';\nimport DatePicker from '../Picker/DatePicker';\nimport Popover from '../../Popover';\nimport DateTimeProps, { DateTimeCallbackParameter } from '../DateTime.types';\n\nimport { parseToDate, getWeekYear, getDateOfISOWeek, getWeek } from './utils';\nimport StyledDateTime, { BareInput, StyledInputContainer } from './DateTime.styles';\nimport usePickerButton from './usePickerButton';\nimport PartInput from './PartInput';\nimport useAutoFocusNextInput from './useAutoFocusNextInput';\nimport useButtonAriaLabel from './useButtonAriaLabel';\n\nexport interface WeekInputProps extends DateTimeProps {}\n\nexport const StyledWeekInput = styled(StyledDateTime)<WeekInputProps>(props => {\n const {\n theme: { base }\n } = props;\n\n return css`\n padding-inline-end: 0;\n\n ${StyledInputContainer} > ${BareInput}:first-of-type {\n margin-inline-start: ${base.spacing};\n }\n `;\n});\n\nStyledWeekInput.defaultProps = defaultThemeProp;\n\nconst convertToCallbackParameter = (\n date: Date,\n parts: (string | undefined)[]\n): DateTimeCallbackParameter => {\n if (parts.every(Boolean)) {\n const [year, month, day] = parts.map(Number);\n date.setUTCFullYear(year, month, day);\n return {\n valueAsISOString: date.toISOString(),\n valueAsTimestamp: date.getTime()\n };\n }\n if (parts.every(p => !p)) {\n return {\n valueAsISOString: '',\n valueAsTimestamp: undefined\n };\n }\n return {\n valueAsISOString: '',\n valueAsTimestamp: NaN,\n state: 'incomplete'\n };\n};\n\nconst WeekInput: FunctionComponent<WeekInputProps & ForwardProps> = forwardRef(\n (props: PropsWithoutRef<WeekInputProps>, ref: Ref<HTMLFieldSetElement>) => {\n const {\n defaultValue,\n value = defaultValue,\n min,\n max,\n id,\n label,\n labelHidden,\n status,\n info,\n required,\n readOnly,\n disabled,\n onChange,\n onFocus,\n onBlur,\n autoFocus,\n ...restProps\n } = props;\n\n const { locale } = useConfiguration();\n\n const date = value !== undefined ? parseToDate(value) : undefined;\n\n const [weekInputRef, yearInputRef] = [\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null)\n ];\n\n useAutoFocusNextInput([weekInputRef, yearInputRef]);\n\n const pickParts = () => {\n return [weekInputRef.current?.value || undefined, yearInputRef.current?.value || undefined];\n };\n\n const convertPartsToDate = () => {\n const parts = pickParts();\n if (parts.every(Boolean)) {\n const dateOfWeek = getDateOfISOWeek(Number(parts[0]), Number(parts[1]));\n return [\n dateOfWeek.getUTCFullYear().toString(),\n dateOfWeek.getUTCMonth().toString(),\n dateOfWeek.getUTCDate().toString()\n ];\n }\n return parts;\n };\n\n const currentDate = () => {\n if (pickParts().every(Boolean)) {\n const [year, month, day] = convertPartsToDate().map(v => (v ? Number(v) : undefined));\n const current = date ?? new Date();\n return new Date(\n current.setUTCFullYear(\n year ?? current.getUTCFullYear(),\n month ?? current.getUTCMonth(),\n day ?? current.getUTCDate()\n )\n );\n }\n };\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 convertPartsToDate()\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?.(\n convertToCallbackParameter(date ? new Date(date) : new Date(), convertPartsToDate())\n );\n };\n\n const t = useI18n();\n\n const WeekNumberInput = (\n <PartInput\n key='week'\n placeholder={t('week_placeholder')}\n aria-label={t('week_label_a11y')}\n value={date ? getWeek(date) : undefined}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n min={1}\n max={53}\n readOnly={readOnly}\n ref={weekInputRef}\n autoFocus={autoFocus}\n />\n );\n\n const YearInput = (\n <PartInput\n key='year'\n placeholder={t('year_placeholder')}\n aria-label={t('year_label_a11y')}\n value={date ? getWeekYear(date) : undefined}\n onChange={onInputChange}\n size={4}\n maxLength={4}\n min={1}\n readOnly={readOnly}\n ref={yearInputRef}\n />\n );\n\n const [open, setOpen, , setPopoverRef, buttonEl, setButtonEl] = usePickerButton();\n\n const containerRef = useConsolidatedRef(ref);\n useFocusWithin([inputContainerRef], onFocusChange);\n\n const Picker = (\n <>\n <Button\n variant='simple'\n icon\n ref={setButtonEl}\n onClick={() => setOpen(cur => !cur)}\n aria-label={useButtonAriaLabel(locale, currentDate(), 'week', open)}\n readOnly={readOnly}\n disabled={disabled}\n >\n <Icon name={open ? 'times' : 'calendar'} />\n </Button>\n\n <Popover\n show={open}\n ref={setPopoverRef}\n target={containerRef.current}\n strategy='fixed'\n placement='bottom-end'\n modifiers={[\n {\n name: 'flip',\n options: {\n fallbackPlacements: ['top-end', 'right', 'left']\n }\n }\n ]}\n >\n <DatePicker\n selected={currentDate()}\n onChange={selected => {\n weekInputRef.current!.value = getWeek(selected).toString().padStart(2, '0');\n yearInputRef.current!.value = getWeekYear(selected).toString();\n setOpen(false);\n setTimeout(() => buttonEl?.focus());\n onInputChange();\n }}\n min={min}\n max={max}\n mode='week'\n />\n </Popover>\n </>\n );\n\n const Comp = (\n <Flex\n as={StyledWeekInput}\n forwardedAs={StyledFormControl}\n container={{ alignItems: 'center', wrap: 'nowrap' }}\n status={status}\n readOnly={readOnly}\n disabled={disabled}\n ref={containerRef}\n onClick={(e: MouseEvent) => {\n if (e.target === containerRef.current) weekInputRef.current?.focus();\n }}\n {...restProps}\n >\n <Flex\n ref={inputContainerRef}\n as={StyledInputContainer}\n container={{ alignItems: 'center', wrap: 'wrap' }}\n >\n {t('week_text')} {WeekNumberInput},{YearInput}\n </Flex>\n {!readOnly && Picker}\n </Flex>\n );\n\n return label ? (\n <FormField\n as='fieldset'\n labelAs='legend'\n {...{ label, labelHidden, id, labelOrder: -1, info, status, required, disabled }}\n ref={ref}\n >\n {Comp}\n </FormField>\n ) : (\n Comp\n );\n }\n);\n\nexport default WeekInput;\n"]}
|
|
1
|
+
{"version":3,"file":"WeekInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/WeekInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FunctionComponent, forwardRef, PropsWithoutRef, Ref, useRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { defaultThemeProp } from '../../../theme';\nimport { ForwardProps } from '../../../types';\nimport { useConfiguration, useConsolidatedRef, useFocusWithin, useI18n } from '../../../hooks';\nimport FormField from '../../FormField';\nimport Button from '../../Button';\nimport Icon from '../../Icon';\nimport Flex from '../../Flex';\nimport { StyledFormControl } from '../../FormControl';\nimport DatePicker from '../Picker/DatePicker';\nimport Popover from '../../Popover';\nimport DateTimeProps, { DateTimeCallbackParameter } from '../DateTime.types';\n\nimport {\n parseToDate,\n getWeekYear,\n getDateOfISOWeek,\n getWeek,\n generatePickerButtonAriaLabel\n} from './utils';\nimport StyledDateTime, { BareInput, StyledInputContainer } from './DateTime.styles';\nimport usePickerButton from './usePickerButton';\nimport PartInput from './PartInput';\nimport useAutoFocusNextInput from './useAutoFocusNextInput';\n\nexport interface WeekInputProps extends DateTimeProps {}\n\nexport const StyledWeekInput = styled(StyledDateTime)<WeekInputProps>(props => {\n const {\n theme: { base }\n } = props;\n\n return css`\n padding-inline-end: 0;\n\n ${StyledInputContainer} > ${BareInput}:first-of-type {\n margin-inline-start: ${base.spacing};\n }\n `;\n});\n\nStyledWeekInput.defaultProps = defaultThemeProp;\n\nconst convertToCallbackParameter = (\n date: Date,\n parts: (string | undefined)[]\n): DateTimeCallbackParameter => {\n if (parts.every(Boolean)) {\n const [year, month, day] = parts.map(Number);\n date.setUTCFullYear(year, month, day);\n return {\n valueAsISOString: date.toISOString(),\n valueAsTimestamp: date.getTime()\n };\n }\n if (parts.every(p => !p)) {\n return {\n valueAsISOString: '',\n valueAsTimestamp: undefined\n };\n }\n return {\n valueAsISOString: '',\n valueAsTimestamp: NaN,\n state: 'incomplete'\n };\n};\n\nconst WeekInput: FunctionComponent<WeekInputProps & ForwardProps> = forwardRef(\n (props: PropsWithoutRef<WeekInputProps>, ref: Ref<HTMLFieldSetElement>) => {\n const {\n defaultValue,\n value = defaultValue,\n min,\n max,\n id,\n label,\n labelHidden,\n status,\n info,\n required,\n readOnly,\n disabled,\n onChange,\n onFocus,\n onBlur,\n autoFocus,\n ...restProps\n } = props;\n\n const { locale } = useConfiguration();\n const t = useI18n();\n\n const date = value !== undefined ? parseToDate(value) : undefined;\n\n const [weekInputRef, yearInputRef] = [\n useRef<HTMLInputElement>(null),\n useRef<HTMLInputElement>(null)\n ];\n\n useAutoFocusNextInput([weekInputRef, yearInputRef]);\n\n const pickParts = () => {\n return [weekInputRef.current?.value || undefined, yearInputRef.current?.value || undefined];\n };\n\n const convertPartsToDate = () => {\n const parts = pickParts();\n if (parts.every(Boolean)) {\n const dateOfWeek = getDateOfISOWeek(Number(parts[0]), Number(parts[1]));\n return [\n dateOfWeek.getUTCFullYear().toString(),\n dateOfWeek.getUTCMonth().toString(),\n dateOfWeek.getUTCDate().toString()\n ];\n }\n return parts;\n };\n\n const currentlySelectedDate = () => {\n if (pickParts().every(Boolean)) {\n const [year, month, day] = convertPartsToDate().map(v => (v ? Number(v) : undefined));\n const current = date ?? new Date();\n return new Date(\n current.setUTCFullYear(\n year ?? current.getUTCFullYear(),\n month ?? current.getUTCMonth(),\n day ?? current.getUTCDate()\n )\n );\n }\n };\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 convertPartsToDate()\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 [open, setOpen, , setPopoverRef, buttonEl, setButtonEl] = usePickerButton();\n\n const onInputChange = () => {\n onChange?.(\n convertToCallbackParameter(date ? new Date(date) : new Date(), convertPartsToDate())\n );\n buttonEl?.setAttribute(\n 'aria-label',\n generatePickerButtonAriaLabel(currentlySelectedDate(), 'week', locale, t, open)\n );\n };\n\n const WeekNumberInput = (\n <PartInput\n key='week'\n placeholder={t('week_placeholder')}\n aria-label={t('week_label_a11y')}\n value={date ? getWeek(date) : undefined}\n onChange={onInputChange}\n size={2}\n maxLength={2}\n min={1}\n max={53}\n readOnly={readOnly}\n ref={weekInputRef}\n autoFocus={autoFocus}\n />\n );\n\n const YearInput = (\n <PartInput\n key='year'\n placeholder={t('year_placeholder')}\n aria-label={t('year_label_a11y')}\n value={date ? getWeekYear(date) : undefined}\n onChange={onInputChange}\n size={4}\n maxLength={4}\n min={1}\n readOnly={readOnly}\n ref={yearInputRef}\n />\n );\n\n const containerRef = useConsolidatedRef(ref);\n useFocusWithin([containerRef], onFocusChange);\n\n const Picker = (\n <>\n <Button\n variant='simple'\n icon\n ref={setButtonEl}\n onClick={() => setOpen(cur => !cur)}\n aria-label={generatePickerButtonAriaLabel(\n currentlySelectedDate(),\n 'week',\n locale,\n t,\n open\n )}\n readOnly={readOnly}\n disabled={disabled}\n >\n <Icon name={open ? 'times' : 'calendar'} />\n </Button>\n\n <Popover\n show={open}\n ref={setPopoverRef}\n target={containerRef.current}\n strategy='fixed'\n placement='bottom-end'\n modifiers={[\n {\n name: 'flip',\n options: {\n fallbackPlacements: ['top-end', 'right', 'left']\n }\n }\n ]}\n >\n <DatePicker\n selected={currentlySelectedDate()}\n onChange={selected => {\n weekInputRef.current!.value = getWeek(selected).toString().padStart(2, '0');\n yearInputRef.current!.value = getWeekYear(selected).toString();\n setOpen(false);\n setTimeout(() => buttonEl?.focus());\n onInputChange();\n }}\n min={min}\n max={max}\n mode='week'\n />\n </Popover>\n </>\n );\n\n const Comp = (\n <Flex\n as={StyledWeekInput}\n forwardedAs={StyledFormControl}\n container={{ alignItems: 'center', wrap: 'nowrap' }}\n status={status}\n readOnly={readOnly}\n disabled={disabled}\n ref={containerRef}\n onClick={(e: MouseEvent) => {\n if (e.target === containerRef.current) weekInputRef.current?.focus();\n }}\n {...restProps}\n >\n <Flex\n ref={inputContainerRef}\n as={StyledInputContainer}\n container={{ alignItems: 'center', wrap: 'wrap' }}\n >\n {t('week_text')} {WeekNumberInput},{YearInput}\n </Flex>\n {!readOnly && Picker}\n </Flex>\n );\n\n return label ? (\n <FormField\n as='fieldset'\n labelAs='legend'\n {...{ label, labelHidden, id, labelOrder: -1, info, status, required, disabled }}\n ref={ref}\n >\n {Comp}\n </FormField>\n ) : (\n Comp\n );\n }\n);\n\nexport default WeekInput;\n"]}
|
|
@@ -7,26 +7,23 @@ import { useCallback, useEffect } from 'react';
|
|
|
7
7
|
const useAutoFocusNextInput = (refs) => {
|
|
8
8
|
const wrapListener = useCallback((nextElement) => {
|
|
9
9
|
return (ev) => {
|
|
10
|
-
var _a, _b;
|
|
11
10
|
const targetElement = ev.target;
|
|
12
11
|
if (ev.inputType === 'insertText' &&
|
|
13
12
|
targetElement.value.length === targetElement.maxLength) {
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
nextElement?.current?.focus();
|
|
14
|
+
nextElement?.current?.select();
|
|
16
15
|
}
|
|
17
16
|
};
|
|
18
17
|
}, []);
|
|
19
18
|
useEffect(() => {
|
|
20
19
|
const callbacks = [];
|
|
21
20
|
refs.forEach((ref, index) => {
|
|
22
|
-
var _a;
|
|
23
21
|
callbacks.push(wrapListener(refs[index + 1]));
|
|
24
|
-
|
|
22
|
+
ref.current?.addEventListener('input', callbacks[index]);
|
|
25
23
|
});
|
|
26
24
|
return () => {
|
|
27
25
|
refs.forEach((ref, index) => {
|
|
28
|
-
|
|
29
|
-
(_a = ref.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('input', callbacks[index]);
|
|
26
|
+
ref.current?.removeEventListener('input', callbacks[index]);
|
|
30
27
|
});
|
|
31
28
|
};
|
|
32
29
|
}, refs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAutoFocusNextInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/useAutoFocusNextInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1D;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,CAAC,IAAmC,EAAE,EAAE;IACpE,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,WAAwC,EAAE,EAAE;QAC5E,OAAO,CAAC,EAAS,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"useAutoFocusNextInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/useAutoFocusNextInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1D;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,CAAC,IAAmC,EAAE,EAAE;IACpE,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,WAAwC,EAAE,EAAE;QAC5E,OAAO,CAAC,EAAS,EAAE,EAAE;YACnB,MAAM,aAAa,GAAG,EAAE,CAAC,MAA0B,CAAC;YACpD,IACG,EAAiB,CAAC,SAAS,KAAK,YAAY;gBAC7C,aAAa,CAAC,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,SAAS,EACtD;gBACA,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBAC9B,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aAChC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAgC,EAAE,KAAa,EAAE,EAAE;YAC/D,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,OAAO,CAAC,CAAC,GAAgC,EAAE,KAAa,EAAE,EAAE;gBAC/D,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,eAAe,qBAAqB,CAAC","sourcesContent":["import { RefObject, useCallback, useEffect } from 'react';\n\n/**\n * Automatically moves focus to next referenced input when current one's number of chars is equal to max-length.\n * @example useAutoFocusNextInput([ref1, ref2, ref3]);\n * @param refs - array of references to relevant input elements\n */\nconst useAutoFocusNextInput = (refs: RefObject<HTMLInputElement>[]) => {\n const wrapListener = useCallback((nextElement: RefObject<HTMLInputElement>) => {\n return (ev: Event) => {\n const targetElement = ev.target as HTMLInputElement;\n if (\n (ev as InputEvent).inputType === 'insertText' &&\n targetElement.value.length === targetElement.maxLength\n ) {\n nextElement?.current?.focus();\n nextElement?.current?.select();\n }\n };\n }, []);\n\n useEffect(() => {\n const callbacks: ((ev: Event) => void)[] = [];\n refs.forEach((ref: RefObject<HTMLInputElement>, index: number) => {\n callbacks.push(wrapListener(refs[index + 1]));\n ref.current?.addEventListener('input', callbacks[index]);\n });\n return () => {\n refs.forEach((ref: RefObject<HTMLInputElement>, index: number) => {\n ref.current?.removeEventListener('input', callbacks[index]);\n });\n };\n }, refs);\n};\n\nexport default useAutoFocusNextInput;\n"]}
|
|
@@ -6,7 +6,7 @@ const usePickerButton = (onClose) => {
|
|
|
6
6
|
const [buttonEl, setButtonEl] = useElement();
|
|
7
7
|
const closeWithCallback = () => {
|
|
8
8
|
setOpen(false);
|
|
9
|
-
onClose
|
|
9
|
+
onClose?.();
|
|
10
10
|
};
|
|
11
11
|
useOuterEvent('mousedown', [popoverEl, buttonEl], () => {
|
|
12
12
|
if (open)
|
|
@@ -20,15 +20,15 @@ const usePickerButton = (onClose) => {
|
|
|
20
20
|
// stop propagation if triggered inside the picker to prevent closing a modal
|
|
21
21
|
if (e.currentTarget === popoverEl) {
|
|
22
22
|
e.stopPropagation();
|
|
23
|
-
buttonEl
|
|
23
|
+
buttonEl?.focus();
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
document.addEventListener('keydown', closePopover);
|
|
28
|
-
popoverEl
|
|
28
|
+
popoverEl?.addEventListener('keydown', closePopover);
|
|
29
29
|
return () => {
|
|
30
30
|
document.removeEventListener('keydown', closePopover);
|
|
31
|
-
popoverEl
|
|
31
|
+
popoverEl?.removeEventListener('keydown', closePopover);
|
|
32
32
|
};
|
|
33
33
|
}, [popoverEl]);
|
|
34
34
|
return [open, setOpen, popoverEl, setPopoverRef, buttonEl, setButtonEl];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePickerButton.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/usePickerButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,eAAe,GAAG,CACtB,OAAoB,EAQpB,EAAE;IACF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,GAAG,UAAU,EAAe,CAAC;IAC7D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,UAAU,EAAe,CAAC;IAE1D,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,OAAO,
|
|
1
|
+
{"version":3,"file":"usePickerButton.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/usePickerButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,eAAe,GAAG,CACtB,OAAoB,EAQpB,EAAE;IACF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,GAAG,UAAU,EAAe,CAAC;IAC7D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,UAAU,EAAe,CAAC;IAE1D,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,OAAO,EAAE,EAAE,CAAC;IACd,CAAC,CAAC;IACF,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE;QACrD,IAAI,IAAI;YAAE,iBAAiB,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,CAAC,CAAgB,EAAE,EAAE;YACxC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;gBACtB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,iBAAiB,EAAE,CAAC;gBACpB,6EAA6E;gBAC7E,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS,EAAE;oBACjC,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,QAAQ,EAAE,KAAK,EAAE,CAAC;iBACnB;aACF;QACH,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACnD,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAErD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YACtD,SAAS,EAAE,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC","sourcesContent":["import { Dispatch, SetStateAction, useEffect, useState } from 'react';\n\nimport { useElement, useOuterEvent } from '../../../hooks';\n\nconst usePickerButton = (\n onClose?: () => void\n): [\n boolean,\n Dispatch<SetStateAction<boolean>>,\n HTMLElement | null,\n (instance: HTMLElement | null) => void,\n HTMLElement | null,\n (instance: HTMLElement | null) => void\n] => {\n const [open, setOpen] = useState(false);\n const [popoverEl, setPopoverRef] = useElement<HTMLElement>();\n const [buttonEl, setButtonEl] = useElement<HTMLElement>();\n\n const closeWithCallback = () => {\n setOpen(false);\n onClose?.();\n };\n useOuterEvent('mousedown', [popoverEl, buttonEl], () => {\n if (open) closeWithCallback();\n });\n\n useEffect(() => {\n const closePopover = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n closeWithCallback();\n // stop propagation if triggered inside the picker to prevent closing a modal\n if (e.currentTarget === popoverEl) {\n e.stopPropagation();\n buttonEl?.focus();\n }\n }\n };\n document.addEventListener('keydown', closePopover);\n popoverEl?.addEventListener('keydown', closePopover);\n\n return () => {\n document.removeEventListener('keydown', closePopover);\n popoverEl?.removeEventListener('keydown', closePopover);\n };\n }, [popoverEl]);\n\n return [open, setOpen, popoverEl, setPopoverRef, buttonEl, setButtonEl];\n};\n\nexport default usePickerButton;\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TranslationFunction, TranslationPack } from '../../../i18n';
|
|
1
2
|
export declare const getWeekYear: (date: Date) => number;
|
|
2
3
|
export declare const getDayOfWeek: (date: Date, calendarType?: string) => number;
|
|
3
4
|
export declare const getWeekdays: (calendarType: string) => Date[];
|
|
@@ -42,5 +43,6 @@ export declare const isISODate: (value: string) => boolean;
|
|
|
42
43
|
export declare const isTime: (value: string) => boolean;
|
|
43
44
|
export declare const parseLocaleTextToDateParams: (value: string, localeTag: string) => number[] | undefined;
|
|
44
45
|
export declare const parsePastedTextToDate: (value: string, localeTag: string, currentDate: Date) => Date | undefined;
|
|
46
|
+
export declare const generatePickerButtonAriaLabel: (date: Date | undefined, type: 'date' | 'datetime' | 'week', locale: string, translateFn: TranslationFunction<TranslationPack>, open: boolean) => string;
|
|
45
47
|
export {};
|
|
46
48
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAK1E,eAAO,MAAM,WAAW,SAAU,IAAI,KAAG,MAIxC,CAAC;AAEF,eAAO,MAAM,YAAY,SAAU,IAAI,kCAetC,CAAC;AAEF,eAAO,MAAM,WAAW,iBAAkB,MAAM,WAS/C,CAAC;AAGF,eAAO,MAAM,OAAO,SAAU,IAAI,iBAAgB,MAAM,KAA6B,MAgBpF,CAAC;AAEF,eAAO,MAAM,yBAAyB,4CAMrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAU,MAAM,QAAQ,MAAM,KAAG,IAO7D,CAAC;AAIF,eAAO,MAAM,WAAW,UAAW,MAAM,GAAG,MAAM,GAAG,IAAI,KAAG,IAsB3D,CAAC;AAEF,aAAK,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7B,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAIhE;AAED,eAAO,MAAM,aAAa,6CAEd,KAAK,qBAAqB,GAAG,SAAS,gDA0BjD,CAAC;AAEF,eAAO,MAAM,cAAc,SAAU,IAAI,iBAAgB,MAAM,SAK9D,CAAC;AAEF,eAAO,MAAM,YAAY,SAAU,IAAI,iBAAgB,MAAM,SAK5D,CAAC;AAEF,oBAAY,WAAW,GAAG,EAAE,GAAG,EAAE,CAAC;AAElC,eAAO,MAAM,gBAAgB,sCAAyB,OAQrD,CAAC;AAKF,eAAO,MAAM,kBAAkB,8CAK9B,CAAC;AAEF,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,YAAY,QAAY,CAAC;AACtC,eAAO,MAAM,UAAU,QAAiB,CAAC;AACzC,eAAO,MAAM,SAAS,QAAsB,CAAC;AAE7C,eAAO,MAAM,cAAc,OAAQ,MAAM,KAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAS5F,CAAC;AAEF,eAAO,MAAM,cAAc;UAKnB,MAAM;YACJ,MAAM;YACN,MAAM;MACZ,MAKH,CAAC;AAEF,eAAO,MAAM,YAAY,OAAQ,MAAM,UAAU,MAAM,KAAG,MAgBzD,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,MAAM,UAAU,MAAM,KAAG,MAgB5D,CAAC;AAEF,eAAO,MAAM,cAAc,gBAAiB,OAAO,UAAS,OAAO;;;;;CAOlE,CAAC;AAEF,eAAO,MAAM,YAAY,SAAU,MAAM,SAAS,MAAM,OAAO,MAAM,YAEpE,CAAC;AAEF,eAAO,MAAM,YAAY,SAAU,MAAM,UAAU,MAAM,UAAU,MAAM,SAAS,OAAO,YAIxF,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,IAAI,qDAGzC,CAAC;AAKF,eAAO,MAAM,SAAS,UAAW,MAAM,KAAG,OAEzC,CAAC;AAIF,eAAO,MAAM,MAAM,UAAW,MAAM,KAAG,OAEtC,CAAC;AAEF,eAAO,MAAM,2BAA2B,UAAW,MAAM,aAAa,MAAM,yBAyB3E,CAAC;AAEF,eAAO,MAAM,qBAAqB,UACzB,MAAM,aACF,MAAM,eACJ,IAAI,KAChB,IAAI,GAAG,SAiBT,CAAC;AAiBF,eAAO,MAAM,6BAA6B,SAClC,IAAI,GAAG,SAAS,QAChB,MAAM,GAAG,UAAU,GAAG,MAAM,UAC1B,MAAM,eACD,oBAAoB,eAAe,CAAC,QAC3C,OAAO,KACZ,MAuBF,CAAC"}
|
|
@@ -43,7 +43,7 @@ export const getWeek = (date, calendarType = CALENDAR_TYPES.ISO_8601) => {
|
|
|
43
43
|
Math.round(((result.getTime() - week1.getTime()) / 86400000 - 3 + getDayOfWeek(result, calendarType)) / 7));
|
|
44
44
|
};
|
|
45
45
|
export const getCalendarTypeFromLocale = (localeTag) => {
|
|
46
|
-
const calendarType = Object.keys(CALENDAR_TYPE_LOCALES).find(type => CALENDAR_TYPE_LOCALES[type].includes(localeTag
|
|
46
|
+
const calendarType = Object.keys(CALENDAR_TYPE_LOCALES).find(type => CALENDAR_TYPE_LOCALES[type].includes(localeTag ?? navigator.language));
|
|
47
47
|
return calendarType || CALENDAR_TYPES.ISO_8601;
|
|
48
48
|
};
|
|
49
49
|
export const getDateOfISOWeek = (week, year) => {
|
|
@@ -126,20 +126,20 @@ export const getEndOfWeek = (date, calendarType = CALENDAR_TYPES.ISO_8601) => {
|
|
|
126
126
|
endDate.setUTCHours(24 * (6 - day));
|
|
127
127
|
return endDate;
|
|
128
128
|
};
|
|
129
|
-
const objDate = new Date();
|
|
130
|
-
objDate.setUTCDate(1);
|
|
131
129
|
export const is12HClockFormat = (localeTag) => {
|
|
132
130
|
const meridiem = new Intl.DateTimeFormat(localeTag, {
|
|
133
131
|
hour: 'numeric'
|
|
134
132
|
})
|
|
135
133
|
.formatToParts()
|
|
136
134
|
.find(({ type }) => type === 'dayPeriod');
|
|
137
|
-
return !!
|
|
135
|
+
return !!meridiem?.value;
|
|
138
136
|
};
|
|
137
|
+
const objDate = new Date();
|
|
138
|
+
objDate.setUTCDate(1);
|
|
139
139
|
export const getLocalizedMonths = (localeTag) => {
|
|
140
|
-
return [...
|
|
141
|
-
objDate.setUTCMonth(
|
|
142
|
-
return cap(objDate.toLocaleString(localeTag, { month: 'long' }));
|
|
140
|
+
return [...Array(12).keys()].map(monthNo => {
|
|
141
|
+
objDate.setUTCMonth(monthNo);
|
|
142
|
+
return cap(objDate.toLocaleString(localeTag, { month: 'long', timeZone: 'UTC' }));
|
|
143
143
|
});
|
|
144
144
|
};
|
|
145
145
|
export const MS_IN_SECOND = 1000;
|
|
@@ -213,9 +213,8 @@ export const validateTime = (hour, minute, second, is12h) => {
|
|
|
213
213
|
return !(hour > hourMax || hour < hourMin || minute > 59 || second > 59);
|
|
214
214
|
};
|
|
215
215
|
export const toUTCDateString = (date, format) => {
|
|
216
|
-
var _a;
|
|
217
216
|
const adjustedDate = new Date(date.getTime() + date.getTimezoneOffset() * 60000);
|
|
218
|
-
return
|
|
217
|
+
return format?.format(adjustedDate) ?? adjustedDate.toDateString();
|
|
219
218
|
};
|
|
220
219
|
const ISO_DATE_REG_EXP = /(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/;
|
|
221
220
|
export const isISODate = (value) => {
|
|
@@ -234,7 +233,7 @@ export const parseLocaleTextToDateParams = (value, localeTag) => {
|
|
|
234
233
|
.join('')
|
|
235
234
|
.match(/\w+/g);
|
|
236
235
|
const valueParts = value.match(/\d+/g);
|
|
237
|
-
if (template &&
|
|
236
|
+
if (template && valueParts?.length === template?.length) {
|
|
238
237
|
let year = 0;
|
|
239
238
|
let month = 0;
|
|
240
239
|
let day = 0;
|
|
@@ -273,4 +272,33 @@ export const parsePastedTextToDate = (value, localeTag, currentDate) => {
|
|
|
273
272
|
}
|
|
274
273
|
return result;
|
|
275
274
|
};
|
|
275
|
+
const ariaDateTimeOpts = {
|
|
276
|
+
weekday: 'long',
|
|
277
|
+
day: 'numeric',
|
|
278
|
+
month: 'long',
|
|
279
|
+
year: 'numeric',
|
|
280
|
+
hour: '2-digit',
|
|
281
|
+
minute: '2-digit'
|
|
282
|
+
};
|
|
283
|
+
const ariaDateOpts = {
|
|
284
|
+
weekday: 'long',
|
|
285
|
+
day: 'numeric',
|
|
286
|
+
month: 'long',
|
|
287
|
+
year: 'numeric'
|
|
288
|
+
};
|
|
289
|
+
export const generatePickerButtonAriaLabel = (date, type, locale, translateFn, open) => {
|
|
290
|
+
let datePart = '';
|
|
291
|
+
if (type === 'week') {
|
|
292
|
+
datePart = date
|
|
293
|
+
? `${translateFn('selected_date_a11y')} ${translateFn('week_text')} ${getWeek(date, CALENDAR_TYPES.ISO_8601)}, ${date.getUTCFullYear()}, `
|
|
294
|
+
: '';
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
const ariaFormat = Intl.DateTimeFormat(locale, type === 'date' ? ariaDateOpts : ariaDateTimeOpts);
|
|
298
|
+
datePart = date
|
|
299
|
+
? `${translateFn('selected_date_a11y')} ${toUTCDateString(date, ariaFormat)}, `
|
|
300
|
+
: '';
|
|
301
|
+
}
|
|
302
|
+
return `${datePart}${translateFn(open ? 'close_calendar_button_a11y' : 'open_calendar_button_a11y')}`;
|
|
303
|
+
};
|
|
276
304
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { cap } from '../../../utils';\n\nimport { CALENDAR_TYPES, CALENDAR_TYPE_LOCALES } from './local';\n\n// https://weeknumber.net/how-to/javascript\nexport const getWeekYear = (date: Date): number => {\n const result = new Date(date.getTime());\n result.setUTCDate(result.getUTCDate() + 3 - ((result.getUTCDay() + 6) % 7));\n return result.getUTCFullYear();\n};\n\nexport const getDayOfWeek = (date: Date, calendarType = CALENDAR_TYPES.ISO_8601) => {\n const weekday = date.getUTCDay();\n\n switch (calendarType) {\n case CALENDAR_TYPES.ISO_8601:\n // Shifts days of the week so that Monday is 0, Sunday is 6\n return (weekday + 6) % 7;\n case CALENDAR_TYPES.ARABIC:\n return (weekday + 1) % 7;\n case CALENDAR_TYPES.HEBREW:\n case CALENDAR_TYPES.US:\n return weekday;\n default:\n throw new Error('Unsupported calendar type.');\n }\n};\n\nexport const getWeekdays = (calendarType: string) => {\n const date = new Date();\n const beginOfMonth = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1));\n const year = beginOfMonth.getUTCFullYear();\n const monthIndex = beginOfMonth.getUTCMonth();\n\n return Array.from({ length: 7 }, (v, weekDay) => {\n return new Date(year, monthIndex, weekDay + 1 - getDayOfWeek(beginOfMonth, calendarType));\n });\n};\n\n// https://weeknumber.net/how-to/javascript\nexport const getWeek = (date: Date, calendarType: string = CALENDAR_TYPES.ISO_8601): number => {\n const result = new Date(date.getTime());\n result.setUTCHours(0, 0, 0, 0);\n // Thursday in current week decides the year.\n\n result.setUTCDate(result.getUTCDate() + 3 - getDayOfWeek(result, calendarType));\n // January 4 is always in week 1.\n\n const week1 = new Date(result.getUTCFullYear(), 0, 4);\n // Adjust to Thursday in week 1 and count number of weeks from date to week1.\n return (\n 1 +\n Math.round(\n ((result.getTime() - week1.getTime()) / 86400000 - 3 + getDayOfWeek(result, calendarType)) / 7\n )\n );\n};\n\nexport const getCalendarTypeFromLocale = (localeTag?: string) => {\n const calendarType = Object.keys(CALENDAR_TYPE_LOCALES).find(type =>\n CALENDAR_TYPE_LOCALES[type].includes(localeTag ?? navigator.language)\n );\n\n return calendarType || CALENDAR_TYPES.ISO_8601;\n};\n\nexport const getDateOfISOWeek = (week: number, year: number): Date => {\n const dateOfWeek = new Date(Date.UTC(year, 0, 1 + (week - 1) * 7));\n const dayOfWeek = dateOfWeek.getUTCDay();\n const weekStartISO = dateOfWeek;\n if (dayOfWeek <= 4) weekStartISO.setUTCDate(dateOfWeek.getUTCDate() - dayOfWeek + 1);\n else weekStartISO.setUTCDate(dateOfWeek.getUTCDate() + 8 - dayOfWeek);\n return weekStartISO;\n};\n\nconst timeRegex = /^T?\\d{2}:\\d{2}/;\n\nexport const parseToDate = (value: string | number | Date): Date => {\n let result: Date = value as Date;\n\n if (typeof value === 'string') {\n let [year, month, day, hour, minute, second] = [1970, 1, 1, 0, 0, 0];\n if (timeRegex.test(value)) {\n [hour, minute, second = 0] = value\n .toString()\n .slice(Number(value.startsWith('T')))\n .split(/[.:/]/)\n .map(Number);\n } else {\n [year, month, day = 0, hour = 0, minute = 0, second = 0] = value\n .toString()\n .split(/[.: T+-]/)\n .map(Number);\n }\n result = new Date(Date.UTC(year, month - 1, day, hour, minute, second));\n } else if (typeof value === 'number') {\n result = new Date(value);\n }\n return result;\n};\n\ntype Quarter = 1 | 2 | 3 | 4;\n\nexport function getQuarter(date: string | number | Date): Quarter {\n const parsedDate = parseToDate(date);\n const quarter: Quarter[] = [1, 2, 3, 4];\n return quarter[Math.floor(parsedDate.getMonth() / 3)];\n}\n\nexport const getDateFormat = (\n localeTag?: string,\n options?: Intl.DateTimeFormatOptions | undefined,\n labelFormat?: boolean\n) => {\n return new Intl.DateTimeFormat(localeTag, options).formatToParts().map(({ type, value }) => {\n switch (type) {\n case 'day':\n return 'DD';\n case 'month':\n return 'MM';\n case 'year':\n return 'YYYY';\n case 'hour':\n return 'hh';\n case 'minute':\n return 'mm';\n case 'second':\n return 'ss';\n case 'dayPeriod':\n if (labelFormat) return '';\n return value;\n case 'literal':\n return value;\n default:\n return '';\n }\n });\n};\n\nexport const getStartOfWeek = (date: Date, calendarType: string = CALENDAR_TYPES.ISO_8601) => {\n const startDate = new Date(date);\n const day = getDayOfWeek(startDate, calendarType);\n if (day !== 0) startDate.setUTCHours(-24 * day);\n return startDate;\n};\n\nexport const getEndOfWeek = (date: Date, calendarType: string = CALENDAR_TYPES.ISO_8601) => {\n const endDate = new Date(date);\n const day = getDayOfWeek(endDate, calendarType);\n if (day !== 6) endDate.setUTCHours(24 * (6 - day));\n return endDate;\n};\n\nconst objDate = new Date();\nobjDate.setUTCDate(1);\n\nexport type ClockFormat = 12 | 24;\n\nexport const is12HClockFormat = (localeTag?: string): boolean => {\n const meridiem = new Intl.DateTimeFormat(localeTag, {\n hour: 'numeric'\n })\n .formatToParts()\n .find(({ type }) => type === 'dayPeriod');\n\n return !!meridiem?.value;\n};\n\nexport const getLocalizedMonths = (localeTag?: string) => {\n return [...new Array<string>(12)].map<string>((_, index) => {\n objDate.setUTCMonth(index);\n return cap(objDate.toLocaleString(localeTag, { month: 'long' }));\n });\n};\n\nexport const MS_IN_SECOND = 1000;\nexport const MS_IN_MINUTE = 1000 * 60;\nexport const MS_IN_HOUR = 1000 * 60 * 60;\nexport const MS_IN_DAY = 1000 * 60 * 60 * 24;\n\nexport const msToTimeFormat = (ms: number): { hour?: number; minute?: number; second?: number } => {\n if (ms < 0) {\n return { hour: undefined, minute: undefined, second: undefined };\n }\n return {\n hour: Math.floor(ms / MS_IN_HOUR),\n minute: Math.floor((ms / MS_IN_MINUTE) % 60),\n second: Math.floor((ms / MS_IN_SECOND) % 60)\n };\n};\n\nexport const timeFormatToMs = ({\n hour,\n minute,\n second\n}: {\n hour: number;\n minute: number;\n second: number;\n}): number => {\n if (hour < 0 || minute < 0 || second < 0) {\n return 0;\n }\n return second * MS_IN_SECOND + minute * MS_IN_MINUTE + hour * MS_IN_HOUR;\n};\n\nexport const msToTimeUnit = (ms: number, format: string): number => {\n if (ms < 0) {\n return 0;\n }\n switch (format) {\n case 'seconds':\n return Math.floor(ms / MS_IN_SECOND);\n case 'minutes':\n return Math.floor(ms / MS_IN_MINUTE);\n case 'hours':\n return Math.floor(ms / MS_IN_HOUR);\n case 'days':\n return Math.floor(ms / MS_IN_DAY);\n default:\n return 0;\n }\n};\n\nexport const timeUnitToMs = (count: number, format: string): number => {\n if (count < 0) {\n return 0;\n }\n switch (format) {\n case 'seconds':\n return count * MS_IN_SECOND;\n case 'minutes':\n return count * MS_IN_MINUTE;\n case 'hours':\n return count * MS_IN_HOUR;\n case 'days':\n return count * MS_IN_DAY;\n default:\n return 0;\n }\n};\n\nexport const getTimeOptions = (withSeconds: boolean, is12h: boolean = false) => {\n return {\n hour: 'numeric',\n minute: 'numeric',\n ...(withSeconds && ({ second: 'numeric' } as const)),\n hour12: is12h\n } as const;\n};\n\nexport const validateDate = (year: number, month: number, day: number) => {\n return !(month < 1 || month > 12 || day < 1 || day > new Date(year, month, 0).getDate());\n};\n\nexport const validateTime = (hour: number, minute: number, second: number, is12h: boolean) => {\n const hourMax = is12h ? 12 : 23;\n const hourMin = is12h ? 1 : 0;\n return !(hour > hourMax || hour < hourMin || minute > 59 || second > 59);\n};\n\nexport const toUTCDateString = (date: Date, format?: Intl.DateTimeFormat) => {\n const adjustedDate = new Date(date.getTime() + date.getTimezoneOffset() * 60000);\n return format?.format(adjustedDate) ?? adjustedDate.toDateString();\n};\n\nconst ISO_DATE_REG_EXP =\n /(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))/;\n\nexport const isISODate = (value: string): boolean => {\n return ISO_DATE_REG_EXP.test(value);\n};\n\nconst TIME_REG_EXP = /^([01]?\\d|2[0-3]):[0-5]?\\d(:[0-5]?\\d)?$/;\n\nexport const isTime = (value: string): boolean => {\n return TIME_REG_EXP.test(value);\n};\n\nexport const parseLocaleTextToDateParams = (value: string, localeTag: string) => {\n const template = getDateFormat(localeTag, {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric'\n })\n .join('')\n .match(/\\w+/g);\n const valueParts = value.match(/\\d+/g);\n if (template && valueParts?.length === template?.length) {\n let year = 0;\n let month = 0;\n let day = 0;\n template.forEach((part, index) => {\n if (part === 'YYYY') {\n year = Number(valueParts[index]);\n } else if (part === 'MM') {\n month = Number((Number(valueParts[index]) - 1).toString().padStart(2, '0'));\n } else if (part === 'DD') {\n day = Number(valueParts[index].padStart(2, '0'));\n }\n });\n return [year, month, day];\n }\n return undefined;\n};\n\nexport const parsePastedTextToDate = (\n value: string,\n localeTag: string,\n currentDate: Date\n): Date | undefined => {\n let result;\n const dateParams = parseLocaleTextToDateParams(value, localeTag);\n if (isTime(value)) {\n const [hour, minute, second = 0] = value.split(':').map(Number);\n result = new Date(currentDate.getTime()); // clone currentDate object to avoid parameter manipulation\n result.setUTCHours(hour, minute, second);\n } else if (dateParams) {\n const [year, month, day] = dateParams;\n if (validateDate(year, month, day)) {\n result = new Date(currentDate.getTime());\n result.setUTCFullYear(year, month, day);\n }\n } else if (isISODate(value)) {\n result = new Date(value);\n }\n return result;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { cap } from '../../../utils';\nimport type { TranslationFunction, TranslationPack } from '../../../i18n';\n\nimport { CALENDAR_TYPES, CALENDAR_TYPE_LOCALES } from './local';\n\n// https://weeknumber.net/how-to/javascript\nexport const getWeekYear = (date: Date): number => {\n const result = new Date(date.getTime());\n result.setUTCDate(result.getUTCDate() + 3 - ((result.getUTCDay() + 6) % 7));\n return result.getUTCFullYear();\n};\n\nexport const getDayOfWeek = (date: Date, calendarType = CALENDAR_TYPES.ISO_8601) => {\n const weekday = date.getUTCDay();\n\n switch (calendarType) {\n case CALENDAR_TYPES.ISO_8601:\n // Shifts days of the week so that Monday is 0, Sunday is 6\n return (weekday + 6) % 7;\n case CALENDAR_TYPES.ARABIC:\n return (weekday + 1) % 7;\n case CALENDAR_TYPES.HEBREW:\n case CALENDAR_TYPES.US:\n return weekday;\n default:\n throw new Error('Unsupported calendar type.');\n }\n};\n\nexport const getWeekdays = (calendarType: string) => {\n const date = new Date();\n const beginOfMonth = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1));\n const year = beginOfMonth.getUTCFullYear();\n const monthIndex = beginOfMonth.getUTCMonth();\n\n return Array.from({ length: 7 }, (v, weekDay) => {\n return new Date(year, monthIndex, weekDay + 1 - getDayOfWeek(beginOfMonth, calendarType));\n });\n};\n\n// https://weeknumber.net/how-to/javascript\nexport const getWeek = (date: Date, calendarType: string = CALENDAR_TYPES.ISO_8601): number => {\n const result = new Date(date.getTime());\n result.setUTCHours(0, 0, 0, 0);\n // Thursday in current week decides the year.\n\n result.setUTCDate(result.getUTCDate() + 3 - getDayOfWeek(result, calendarType));\n // January 4 is always in week 1.\n\n const week1 = new Date(result.getUTCFullYear(), 0, 4);\n // Adjust to Thursday in week 1 and count number of weeks from date to week1.\n return (\n 1 +\n Math.round(\n ((result.getTime() - week1.getTime()) / 86400000 - 3 + getDayOfWeek(result, calendarType)) / 7\n )\n );\n};\n\nexport const getCalendarTypeFromLocale = (localeTag?: string) => {\n const calendarType = Object.keys(CALENDAR_TYPE_LOCALES).find(type =>\n CALENDAR_TYPE_LOCALES[type].includes(localeTag ?? navigator.language)\n );\n\n return calendarType || CALENDAR_TYPES.ISO_8601;\n};\n\nexport const getDateOfISOWeek = (week: number, year: number): Date => {\n const dateOfWeek = new Date(Date.UTC(year, 0, 1 + (week - 1) * 7));\n const dayOfWeek = dateOfWeek.getUTCDay();\n const weekStartISO = dateOfWeek;\n if (dayOfWeek <= 4) weekStartISO.setUTCDate(dateOfWeek.getUTCDate() - dayOfWeek + 1);\n else weekStartISO.setUTCDate(dateOfWeek.getUTCDate() + 8 - dayOfWeek);\n return weekStartISO;\n};\n\nconst timeRegex = /^T?\\d{2}:\\d{2}/;\n\nexport const parseToDate = (value: string | number | Date): Date => {\n let result: Date = value as Date;\n\n if (typeof value === 'string') {\n let [year, month, day, hour, minute, second] = [1970, 1, 1, 0, 0, 0];\n if (timeRegex.test(value)) {\n [hour, minute, second = 0] = value\n .toString()\n .slice(Number(value.startsWith('T')))\n .split(/[.:/]/)\n .map(Number);\n } else {\n [year, month, day = 0, hour = 0, minute = 0, second = 0] = value\n .toString()\n .split(/[.: T+-]/)\n .map(Number);\n }\n result = new Date(Date.UTC(year, month - 1, day, hour, minute, second));\n } else if (typeof value === 'number') {\n result = new Date(value);\n }\n return result;\n};\n\ntype Quarter = 1 | 2 | 3 | 4;\n\nexport function getQuarter(date: string | number | Date): Quarter {\n const parsedDate = parseToDate(date);\n const quarter: Quarter[] = [1, 2, 3, 4];\n return quarter[Math.floor(parsedDate.getMonth() / 3)];\n}\n\nexport const getDateFormat = (\n localeTag?: string,\n options?: Intl.DateTimeFormatOptions | undefined,\n labelFormat?: boolean\n) => {\n return new Intl.DateTimeFormat(localeTag, options).formatToParts().map(({ type, value }) => {\n switch (type) {\n case 'day':\n return 'DD';\n case 'month':\n return 'MM';\n case 'year':\n return 'YYYY';\n case 'hour':\n return 'hh';\n case 'minute':\n return 'mm';\n case 'second':\n return 'ss';\n case 'dayPeriod':\n if (labelFormat) return '';\n return value;\n case 'literal':\n return value;\n default:\n return '';\n }\n });\n};\n\nexport const getStartOfWeek = (date: Date, calendarType: string = CALENDAR_TYPES.ISO_8601) => {\n const startDate = new Date(date);\n const day = getDayOfWeek(startDate, calendarType);\n if (day !== 0) startDate.setUTCHours(-24 * day);\n return startDate;\n};\n\nexport const getEndOfWeek = (date: Date, calendarType: string = CALENDAR_TYPES.ISO_8601) => {\n const endDate = new Date(date);\n const day = getDayOfWeek(endDate, calendarType);\n if (day !== 6) endDate.setUTCHours(24 * (6 - day));\n return endDate;\n};\n\nexport type ClockFormat = 12 | 24;\n\nexport const is12HClockFormat = (localeTag?: string): boolean => {\n const meridiem = new Intl.DateTimeFormat(localeTag, {\n hour: 'numeric'\n })\n .formatToParts()\n .find(({ type }) => type === 'dayPeriod');\n\n return !!meridiem?.value;\n};\n\nconst objDate = new Date();\nobjDate.setUTCDate(1);\n\nexport const getLocalizedMonths = (localeTag?: string) => {\n return [...Array(12).keys()].map(monthNo => {\n objDate.setUTCMonth(monthNo);\n return cap(objDate.toLocaleString(localeTag, { month: 'long', timeZone: 'UTC' }));\n });\n};\n\nexport const MS_IN_SECOND = 1000;\nexport const MS_IN_MINUTE = 1000 * 60;\nexport const MS_IN_HOUR = 1000 * 60 * 60;\nexport const MS_IN_DAY = 1000 * 60 * 60 * 24;\n\nexport const msToTimeFormat = (ms: number): { hour?: number; minute?: number; second?: number } => {\n if (ms < 0) {\n return { hour: undefined, minute: undefined, second: undefined };\n }\n return {\n hour: Math.floor(ms / MS_IN_HOUR),\n minute: Math.floor((ms / MS_IN_MINUTE) % 60),\n second: Math.floor((ms / MS_IN_SECOND) % 60)\n };\n};\n\nexport const timeFormatToMs = ({\n hour,\n minute,\n second\n}: {\n hour: number;\n minute: number;\n second: number;\n}): number => {\n if (hour < 0 || minute < 0 || second < 0) {\n return 0;\n }\n return second * MS_IN_SECOND + minute * MS_IN_MINUTE + hour * MS_IN_HOUR;\n};\n\nexport const msToTimeUnit = (ms: number, format: string): number => {\n if (ms < 0) {\n return 0;\n }\n switch (format) {\n case 'seconds':\n return Math.floor(ms / MS_IN_SECOND);\n case 'minutes':\n return Math.floor(ms / MS_IN_MINUTE);\n case 'hours':\n return Math.floor(ms / MS_IN_HOUR);\n case 'days':\n return Math.floor(ms / MS_IN_DAY);\n default:\n return 0;\n }\n};\n\nexport const timeUnitToMs = (count: number, format: string): number => {\n if (count < 0) {\n return 0;\n }\n switch (format) {\n case 'seconds':\n return count * MS_IN_SECOND;\n case 'minutes':\n return count * MS_IN_MINUTE;\n case 'hours':\n return count * MS_IN_HOUR;\n case 'days':\n return count * MS_IN_DAY;\n default:\n return 0;\n }\n};\n\nexport const getTimeOptions = (withSeconds: boolean, is12h: boolean = false) => {\n return {\n hour: 'numeric',\n minute: 'numeric',\n ...(withSeconds && ({ second: 'numeric' } as const)),\n hour12: is12h\n } as const;\n};\n\nexport const validateDate = (year: number, month: number, day: number) => {\n return !(month < 1 || month > 12 || day < 1 || day > new Date(year, month, 0).getDate());\n};\n\nexport const validateTime = (hour: number, minute: number, second: number, is12h: boolean) => {\n const hourMax = is12h ? 12 : 23;\n const hourMin = is12h ? 1 : 0;\n return !(hour > hourMax || hour < hourMin || minute > 59 || second > 59);\n};\n\nexport const toUTCDateString = (date: Date, format?: Intl.DateTimeFormat) => {\n const adjustedDate = new Date(date.getTime() + date.getTimezoneOffset() * 60000);\n return format?.format(adjustedDate) ?? adjustedDate.toDateString();\n};\n\nconst ISO_DATE_REG_EXP =\n /(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))/;\n\nexport const isISODate = (value: string): boolean => {\n return ISO_DATE_REG_EXP.test(value);\n};\n\nconst TIME_REG_EXP = /^([01]?\\d|2[0-3]):[0-5]?\\d(:[0-5]?\\d)?$/;\n\nexport const isTime = (value: string): boolean => {\n return TIME_REG_EXP.test(value);\n};\n\nexport const parseLocaleTextToDateParams = (value: string, localeTag: string) => {\n const template = getDateFormat(localeTag, {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric'\n })\n .join('')\n .match(/\\w+/g);\n const valueParts = value.match(/\\d+/g);\n if (template && valueParts?.length === template?.length) {\n let year = 0;\n let month = 0;\n let day = 0;\n template.forEach((part, index) => {\n if (part === 'YYYY') {\n year = Number(valueParts[index]);\n } else if (part === 'MM') {\n month = Number((Number(valueParts[index]) - 1).toString().padStart(2, '0'));\n } else if (part === 'DD') {\n day = Number(valueParts[index].padStart(2, '0'));\n }\n });\n return [year, month, day];\n }\n return undefined;\n};\n\nexport const parsePastedTextToDate = (\n value: string,\n localeTag: string,\n currentDate: Date\n): Date | undefined => {\n let result;\n const dateParams = parseLocaleTextToDateParams(value, localeTag);\n if (isTime(value)) {\n const [hour, minute, second = 0] = value.split(':').map(Number);\n result = new Date(currentDate.getTime()); // clone currentDate object to avoid parameter manipulation\n result.setUTCHours(hour, minute, second);\n } else if (dateParams) {\n const [year, month, day] = dateParams;\n if (validateDate(year, month, day)) {\n result = new Date(currentDate.getTime());\n result.setUTCFullYear(year, month, day);\n }\n } else if (isISODate(value)) {\n result = new Date(value);\n }\n return result;\n};\n\nconst ariaDateTimeOpts = {\n weekday: 'long',\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n} as const;\nconst ariaDateOpts = {\n weekday: 'long',\n day: 'numeric',\n month: 'long',\n year: 'numeric'\n} as const;\n\nexport const generatePickerButtonAriaLabel = (\n date: Date | undefined,\n type: 'date' | 'datetime' | 'week',\n locale: string,\n translateFn: TranslationFunction<TranslationPack>,\n open: boolean\n): string => {\n let datePart = '';\n if (type === 'week') {\n datePart = date\n ? `${translateFn('selected_date_a11y')} ${translateFn('week_text')} ${getWeek(\n date,\n CALENDAR_TYPES.ISO_8601\n )}, ${date.getUTCFullYear()}, `\n : '';\n } else {\n const ariaFormat = Intl.DateTimeFormat(\n locale,\n type === 'date' ? ariaDateOpts : ariaDateTimeOpts\n );\n\n datePart = date\n ? `${translateFn('selected_date_a11y')} ${toUTCDateString(date, ariaFormat)}, `\n : '';\n }\n\n return `${datePart}${translateFn(\n open ? 'close_calendar_button_a11y' : 'open_calendar_button_a11y'\n )}`;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/Calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAQlB,MAAM,OAAO,CAAC;AAYf,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAcrD,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,EAAE,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,oFAAoF;IACpF,aAAa,CAAC,EAAE;QAAE,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,IAAI,GAAG,SAAS,CAAA;KAAE,CAAC;IAC3E,iEAAiE;IACjE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,uGAAuG;IACvG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7B,wEAAwE;IACxE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID,QAAA,MAAM,QAAQ,EAAE,iBAAiB,CAAC,aAAa,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/Calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAQlB,MAAM,OAAO,CAAC;AAYf,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAcrD,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,EAAE,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,oFAAoF;IACpF,aAAa,CAAC,EAAE;QAAE,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,IAAI,GAAG,SAAS,CAAA;KAAE,CAAC;IAC3E,iEAAiE;IACjE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,uGAAuG;IACvG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7B,wEAAwE;IACxE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID,QAAA,MAAM,QAAQ,EAAE,iBAAiB,CAAC,aAAa,GAAG,YAAY,CAyT7D,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|