@mezzanine-ui/react 0.16.0 → 1.0.0-alpha.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/Accordion/AccordionControlContext.js +1 -0
- package/Accordion/AccordionDetails.js +1 -0
- package/Accordion/AccordionSummary.js +10 -10
- package/Accordion/index.d.ts +6 -3
- package/Alert/index.d.ts +3 -2
- package/AlertBanner/AlertBanner.d.ts +93 -0
- package/AlertBanner/AlertBanner.js +154 -0
- package/AlertBanner/index.d.ts +2 -0
- package/AlertBanner/index.js +1 -0
- package/Anchor/Anchor.js +1 -1
- package/Anchor/index.d.ts +2 -1
- package/AppBar/index.d.ts +8 -4
- package/{Overlay/Overlay.d.ts → Backdrop/Backdrop.d.ts} +12 -16
- package/Backdrop/Backdrop.js +40 -0
- package/Backdrop/index.d.ts +2 -0
- package/Backdrop/index.js +1 -0
- package/Badge/Badge.d.ts +20 -14
- package/Badge/Badge.js +14 -16
- package/Badge/BadgeContainer.d.ts +1 -1
- package/Badge/BadgeContainer.js +1 -1
- package/Badge/index.d.ts +3 -2
- package/Badge/typings.d.ts +48 -0
- package/Breadcrumb/Breadcrumb.d.ts +6 -0
- package/Breadcrumb/Breadcrumb.js +25 -0
- package/Breadcrumb/BreadcrumbItem.d.ts +4 -0
- package/Breadcrumb/BreadcrumbItem.js +45 -0
- package/Breadcrumb/index.d.ts +2 -0
- package/Breadcrumb/index.js +1 -0
- package/Breadcrumb/typings.d.ts +70 -0
- package/Button/Button.js +24 -19
- package/Button/ButtonGroup.d.ts +6 -28
- package/Button/ButtonGroup.js +7 -16
- package/Button/index.d.ts +4 -10
- package/Button/index.js +2 -3
- package/Button/typings.d.ts +11 -26
- package/Calendar/Calendar.d.ts +31 -2
- package/Calendar/Calendar.js +74 -19
- package/Calendar/CalendarCell.d.ts +4 -0
- package/Calendar/CalendarCell.js +3 -3
- package/Calendar/CalendarConfigProviderDayjs.d.ts +21 -0
- package/Calendar/CalendarConfigProviderDayjs.js +15 -0
- package/Calendar/CalendarConfigProviderLuxon.d.ts +21 -0
- package/Calendar/CalendarConfigProviderLuxon.js +15 -0
- package/Calendar/CalendarConfigProviderMoment.d.ts +21 -0
- package/Calendar/CalendarConfigProviderMoment.js +15 -0
- package/Calendar/CalendarContext.d.ts +14 -7
- package/Calendar/CalendarContext.js +8 -13
- package/Calendar/CalendarControls.d.ts +16 -0
- package/Calendar/CalendarControls.js +3 -7
- package/Calendar/CalendarDayOfWeek.js +4 -3
- package/Calendar/CalendarDays.d.ts +9 -1
- package/Calendar/CalendarDays.js +63 -38
- package/Calendar/CalendarFooterActions.d.ts +13 -0
- package/Calendar/CalendarFooterActions.js +14 -0
- package/Calendar/CalendarFooterControl.d.ts +16 -0
- package/Calendar/CalendarFooterControl.js +14 -0
- package/Calendar/CalendarHalfYears.d.ts +39 -0
- package/Calendar/CalendarHalfYears.js +62 -0
- package/Calendar/CalendarMonths.js +16 -4
- package/Calendar/CalendarQuarters.d.ts +37 -0
- package/Calendar/CalendarQuarters.js +64 -0
- package/Calendar/CalendarQuickSelect.d.ts +21 -0
- package/Calendar/CalendarQuickSelect.js +15 -0
- package/Calendar/CalendarWeeks.d.ts +1 -1
- package/Calendar/CalendarWeeks.js +89 -44
- package/Calendar/CalendarYears.js +13 -3
- package/Calendar/RangeCalendar.d.ts +59 -0
- package/Calendar/RangeCalendar.js +232 -0
- package/Calendar/index.d.ts +33 -10
- package/Calendar/index.js +7 -0
- package/Calendar/useCalendarControlModifiers.d.ts +4 -4
- package/Calendar/useCalendarControlModifiers.js +40 -8
- package/Calendar/useCalendarControls.d.ts +2 -0
- package/Calendar/useCalendarControls.js +19 -2
- package/Calendar/useCalendarModeStack.js +1 -0
- package/Calendar/useRangeCalendarControls.d.ts +18 -0
- package/Calendar/useRangeCalendarControls.js +115 -0
- package/Card/CardActions.js +1 -1
- package/Card/index.d.ts +4 -2
- package/Checkbox/CheckAll.d.ts +16 -6
- package/Checkbox/CheckAll.js +40 -26
- package/Checkbox/Checkbox.d.ts +100 -22
- package/Checkbox/Checkbox.js +73 -16
- package/Checkbox/CheckboxGroup.d.ts +100 -18
- package/Checkbox/CheckboxGroup.js +169 -24
- package/Checkbox/CheckboxGroupContext.d.ts +0 -2
- package/Checkbox/CheckboxGroupContext.js +1 -0
- package/Checkbox/index.d.ts +16 -4
- package/Checkbox/index.js +6 -2
- package/Checkbox/typings.d.ts +37 -0
- package/ClearActions/ClearActions.d.ts +41 -0
- package/ClearActions/ClearActions.js +23 -0
- package/ClearActions/index.d.ts +3 -0
- package/ClearActions/index.js +5 -0
- package/ConfirmActions/ConfirmActions.d.ts +2 -1
- package/ConfirmActions/index.d.ts +2 -1
- package/DatePicker/DatePicker.d.ts +12 -1
- package/DatePicker/DatePicker.js +41 -9
- package/DatePicker/DatePickerCalendar.d.ts +2 -5
- package/DatePicker/DatePickerCalendar.js +37 -37
- package/DatePicker/index.d.ts +4 -2
- package/DateRangePicker/DateRangePicker.d.ts +18 -2
- package/DateRangePicker/DateRangePicker.js +143 -100
- package/DateRangePicker/DateRangePickerCalendar.d.ts +13 -9
- package/DateRangePicker/DateRangePickerCalendar.js +7 -94
- package/DateRangePicker/index.d.ts +6 -3
- package/DateRangePicker/useDateRangeCalendarControls.js +11 -6
- package/DateRangePicker/useDateRangePickerValue.d.ts +38 -15
- package/DateRangePicker/useDateRangePickerValue.js +142 -63
- package/DateTimePicker/DateTimePicker.d.ts +31 -10
- package/DateTimePicker/DateTimePicker.js +179 -94
- package/DateTimePicker/index.d.ts +2 -2
- package/DateTimePicker/index.js +0 -1
- package/Drawer/Drawer.js +2 -2
- package/Drawer/index.d.ts +2 -1
- package/Dropdown/Dropdown.js +12 -22
- package/Dropdown/index.d.ts +2 -1
- package/Empty/Empty.d.ts +1 -16
- package/Empty/Empty.js +36 -7
- package/Empty/icons/EmptyMainInitialDataIcon.d.ts +4 -0
- package/Empty/icons/EmptyMainInitialDataIcon.js +9 -0
- package/Empty/icons/EmptyMainResultIcon.d.ts +4 -0
- package/Empty/icons/EmptyMainResultIcon.js +9 -0
- package/Empty/icons/EmptyMainSystemIcon.d.ts +4 -0
- package/Empty/icons/EmptyMainSystemIcon.js +9 -0
- package/Empty/index.d.ts +2 -1
- package/Empty/typings.d.ts +52 -0
- package/Form/FormControlContext.js +1 -0
- package/Form/FormHintText.d.ts +18 -0
- package/Form/FormHintText.js +17 -0
- package/Form/FormLabel.js +1 -0
- package/Form/index.d.ts +9 -5
- package/Form/index.js +1 -1
- package/Form/useAutoCompleteValueControl.js +2 -0
- package/Form/useCheckboxControlValue.js +0 -1
- package/Form/useSelectValueControl.js +2 -0
- package/InlineMessage/InlineMessage.d.ts +33 -0
- package/InlineMessage/InlineMessage.js +42 -0
- package/InlineMessage/InlineMessageGroup.d.ts +24 -0
- package/InlineMessage/InlineMessageGroup.js +21 -0
- package/InlineMessage/index.d.ts +4 -0
- package/InlineMessage/index.js +2 -0
- package/Input/ActionButton/ActionButton.d.ts +26 -0
- package/Input/ActionButton/ActionButton.js +14 -0
- package/Input/ActionButton/index.d.ts +2 -0
- package/Input/ActionButton/index.js +1 -0
- package/Input/Input.d.ts +147 -42
- package/Input/Input.js +195 -27
- package/Input/PasswordStrengthIndicator/PasswordStrengthIndicator.d.ts +31 -0
- package/Input/PasswordStrengthIndicator/PasswordStrengthIndicator.js +18 -0
- package/Input/PasswordStrengthIndicator/index.d.ts +2 -0
- package/Input/PasswordStrengthIndicator/index.js +1 -0
- package/Input/SelectButton/SelectButton.d.ts +20 -0
- package/Input/SelectButton/SelectButton.js +21 -0
- package/Input/SelectButton/index.d.ts +2 -0
- package/Input/SelectButton/index.js +1 -0
- package/Input/SpinnerButton/SpinnerButton.d.ts +19 -0
- package/Input/SpinnerButton/SpinnerButton.js +14 -0
- package/Input/SpinnerButton/index.d.ts +2 -0
- package/Input/SpinnerButton/index.js +1 -0
- package/Input/index.d.ts +3 -2
- package/Menu/Menu.js +1 -0
- package/Menu/index.d.ts +8 -4
- package/Message/Message.d.ts +6 -4
- package/Message/Message.js +86 -9
- package/Message/MessageTimerController.d.ts +14 -0
- package/Message/MessageTimerController.js +27 -0
- package/Message/index.d.ts +3 -2
- package/Modal/Modal.js +2 -2
- package/Modal/ModalActions.js +1 -0
- package/Modal/ModalControl.js +1 -0
- package/Modal/ModalHeader.js +1 -0
- package/Modal/index.d.ts +10 -5
- package/Modal/useModalContainer.d.ts +1 -1
- package/Modal/useModalContainer.js +2 -4
- package/Navigation/Navigation.js +37 -34
- package/Navigation/NavigationContext.js +1 -0
- package/Navigation/NavigationItem.js +1 -0
- package/Navigation/NavigationSubMenu.js +16 -26
- package/Navigation/index.d.ts +8 -4
- package/Notification/Notification.js +0 -1
- package/Notification/index.d.ts +3 -2
- package/Notifier/NotifierManager.d.ts +15 -2
- package/Notifier/NotifierManager.js +60 -18
- package/Notifier/createNotifier.d.ts +9 -0
- package/Notifier/createNotifier.js +3 -2
- package/Notifier/typings.d.ts +3 -1
- package/OverflowTooltip/OverflowCounterTag.d.ts +12 -0
- package/OverflowTooltip/OverflowCounterTag.js +48 -0
- package/OverflowTooltip/OverflowTooltip.d.ts +34 -0
- package/OverflowTooltip/OverflowTooltip.js +53 -0
- package/OverflowTooltip/index.d.ts +2 -0
- package/OverflowTooltip/index.js +2 -0
- package/PageFooter/PageFooter.d.ts +73 -8
- package/PageFooter/PageFooter.js +34 -3
- package/PageFooter/index.d.ts +2 -1
- package/PageHeader/PageHeader.d.ts +36 -0
- package/PageHeader/PageHeader.js +65 -0
- package/PageHeader/index.d.ts +2 -0
- package/PageHeader/index.js +1 -0
- package/PageToolbar/PageToolbar.d.ts +67 -0
- package/PageToolbar/PageToolbar.js +114 -0
- package/PageToolbar/index.d.ts +2 -0
- package/PageToolbar/index.js +1 -0
- package/Pagination/Pagination.d.ts +23 -29
- package/Pagination/Pagination.js +3 -4
- package/Pagination/PaginationItem.d.ts +1 -1
- package/Pagination/PaginationItem.js +6 -3
- package/Pagination/PaginationJumper.d.ts +7 -9
- package/Pagination/PaginationJumper.js +3 -5
- package/Pagination/PaginationPageSize.d.ts +8 -11
- package/Pagination/PaginationPageSize.js +5 -4
- package/Pagination/index.d.ts +8 -4
- package/Pagination/usePagination.d.ts +3 -1
- package/Pagination/usePagination.js +30 -21
- package/Picker/FormattedInput.d.ts +17 -0
- package/Picker/FormattedInput.js +74 -0
- package/Picker/MaskFormat.d.ts +39 -0
- package/Picker/MaskFormat.js +94 -0
- package/Picker/PickerTrigger.d.ts +13 -3
- package/Picker/PickerTrigger.js +17 -2
- package/Picker/PickerTriggerWithSeparator.d.ts +124 -0
- package/Picker/PickerTriggerWithSeparator.js +80 -0
- package/Picker/RangePickerTrigger.d.ts +55 -4
- package/Picker/RangePickerTrigger.js +65 -7
- package/Picker/formatUtils.d.ts +34 -0
- package/Picker/formatUtils.js +124 -0
- package/Picker/index.d.ts +17 -6
- package/Picker/index.js +4 -1
- package/Picker/useDateInputFormatter.d.ts +52 -0
- package/Picker/useDateInputFormatter.js +382 -0
- package/Picker/usePickerValue.d.ts +1 -2
- package/Picker/usePickerValue.js +8 -13
- package/Popconfirm/Popconfirm.js +1 -1
- package/Popconfirm/index.d.ts +2 -1
- package/Popover/Popover.js +4 -8
- package/Popover/index.d.ts +2 -1
- package/Popper/Popper.d.ts +15 -10
- package/Popper/Popper.js +88 -17
- package/Popper/index.d.ts +2 -1
- package/Portal/Portal.d.ts +13 -5
- package/Portal/Portal.js +25 -10
- package/Portal/index.d.ts +4 -1
- package/Portal/index.js +1 -0
- package/Portal/portalRegistry.d.ts +17 -0
- package/Portal/portalRegistry.js +92 -0
- package/Progress/Progress.d.ts +23 -30
- package/Progress/Progress.js +71 -21
- package/Progress/index.d.ts +3 -2
- package/Provider/ConfigProvider.d.ts +1 -0
- package/Provider/ConfigProvider.js +1 -0
- package/Provider/context.js +1 -0
- package/Radio/Radio.d.ts +1 -1
- package/Radio/Radio.js +2 -1
- package/Radio/RadioGroup.d.ts +1 -1
- package/Radio/RadioGroup.js +1 -1
- package/Radio/RadioGroupContext.js +1 -0
- package/Radio/index.d.ts +4 -2
- package/ResultState/ResultState.d.ts +52 -0
- package/ResultState/ResultState.js +24 -0
- package/ResultState/index.d.ts +2 -0
- package/ResultState/index.js +1 -0
- package/Select/AutoComplete.d.ts +1 -1
- package/Select/AutoComplete.js +2 -1
- package/Select/Option.js +1 -0
- package/Select/Select.d.ts +1 -1
- package/Select/Select.js +2 -1
- package/Select/SelectControlContext.js +1 -0
- package/Select/SelectTrigger.d.ts +1 -87
- package/Select/SelectTrigger.js +26 -21
- package/Select/SelectTriggerTags.d.ts +1 -1
- package/Select/SelectTriggerTags.js +47 -18
- package/Select/TreeSelect.d.ts +1 -1
- package/Select/TreeSelect.js +2 -1
- package/Select/index.d.ts +14 -7
- package/Select/typings.d.ts +99 -0
- package/Select/useSelectTriggerTags.d.ts +15 -8
- package/Select/useSelectTriggerTags.js +83 -44
- package/Selection/Selection.d.ts +98 -0
- package/Selection/Selection.js +46 -0
- package/Selection/index.d.ts +12 -0
- package/Selection/index.js +5 -0
- package/Skeleton/Skeleton.d.ts +10 -3
- package/Skeleton/Skeleton.js +12 -4
- package/Skeleton/index.d.ts +2 -1
- package/Slider/Slider.d.ts +44 -7
- package/Slider/Slider.js +17 -13
- package/Slider/index.d.ts +5 -3
- package/Spin/Spin.d.ts +39 -0
- package/{Loading/Loading.js → Spin/Spin.js} +9 -9
- package/Spin/index.d.ts +2 -0
- package/Spin/index.js +1 -0
- package/Stepper/Step.d.ts +1 -35
- package/Stepper/Step.js +43 -8
- package/Stepper/Stepper.d.ts +1 -14
- package/Stepper/Stepper.js +49 -15
- package/Stepper/index.d.ts +5 -2
- package/Stepper/index.js +1 -0
- package/Stepper/typings.d.ts +77 -0
- package/Stepper/useStepDistance.d.ts +10 -0
- package/Stepper/useStepDistance.js +81 -0
- package/Stepper/useStepper.d.ts +21 -0
- package/Stepper/useStepper.js +26 -0
- package/Table/Table.js +2 -2
- package/Table/TableBody.js +3 -2
- package/Table/TableBodyRow.js +1 -0
- package/Table/TableContext.js +1 -0
- package/Table/TableExpandedTable.js +1 -0
- package/Table/TableHeader.js +1 -0
- package/Table/editable/TableEditRenderWrapper.js +1 -0
- package/Table/expandable/TableExpandable.js +1 -1
- package/Table/index.d.ts +7 -4
- package/Table/pagination/TablePagination.js +1 -0
- package/Table/pagination/useTablePagination.js +1 -0
- package/Table/refresh/TableRefresh.js +3 -1
- package/Table/rowSelection/TableRowSelection.js +3 -2
- package/Table/sorting/TableSortingIcon.js +2 -1
- package/Table/sorting/useTableSorting.js +1 -0
- package/Table/useTableFetchMore.js +1 -1
- package/Table/useTableScroll.d.ts +4 -8
- package/Table/useTableScroll.js +9 -7
- package/Tabs/TabPane.js +1 -0
- package/Tabs/Tabs.js +9 -4
- package/Tabs/index.d.ts +6 -3
- package/Tabs/useTabsOverflow.js +4 -3
- package/Tag/Tag.d.ts +2 -25
- package/Tag/Tag.js +23 -13
- package/Tag/TagGroup.d.ts +12 -0
- package/Tag/TagGroup.js +41 -0
- package/Tag/index.d.ts +2 -1
- package/Tag/typings.d.ts +78 -0
- package/TextField/TextField.d.ts +78 -19
- package/TextField/TextField.js +58 -22
- package/TextField/index.d.ts +2 -1
- package/Textarea/Textarea.d.ts +19 -51
- package/Textarea/Textarea.js +13 -19
- package/Textarea/index.d.ts +2 -2
- package/TimePanel/TimePanel.d.ts +1 -22
- package/TimePanel/TimePanel.js +31 -26
- package/TimePanel/TimePanelAction.d.ts +2 -8
- package/TimePanel/TimePanelAction.js +2 -2
- package/TimePanel/TimePanelColumn.d.ts +0 -13
- package/TimePanel/TimePanelColumn.js +9 -11
- package/TimePanel/index.d.ts +6 -3
- package/TimePicker/TimePicker.d.ts +10 -1
- package/TimePicker/TimePicker.js +86 -35
- package/TimePicker/TimePickerPanel.d.ts +1 -2
- package/TimePicker/TimePickerPanel.js +2 -2
- package/TimePicker/index.d.ts +4 -2
- package/Toggle/Toggle.d.ts +46 -0
- package/Toggle/Toggle.js +29 -0
- package/Toggle/index.d.ts +3 -0
- package/Toggle/index.js +1 -0
- package/Tooltip/Tooltip.d.ts +13 -2
- package/Tooltip/Tooltip.js +56 -10
- package/Tooltip/index.d.ts +2 -1
- package/Tooltip/useDelayMouseEnterLeave.d.ts +1 -2
- package/Tooltip/useDelayMouseEnterLeave.js +10 -13
- package/Transition/Collapse.d.ts +2 -0
- package/Transition/Collapse.js +5 -6
- package/Transition/Fade.js +4 -4
- package/Transition/Rotate.d.ts +42 -0
- package/Transition/Rotate.js +30 -0
- package/Transition/Scale.d.ts +13 -0
- package/Transition/{Grow.js → Scale.js} +19 -16
- package/Transition/Slide.d.ts +7 -0
- package/Transition/{Zoom.js → Slide.js} +14 -12
- package/Transition/SlideFade.d.ts +3 -0
- package/Transition/SlideFade.js +5 -4
- package/Transition/Transition.d.ts +2 -2
- package/Transition/Translate.d.ts +14 -0
- package/Transition/Translate.js +94 -0
- package/Transition/index.d.ts +16 -6
- package/Transition/index.js +4 -2
- package/Transition/useAutoTransitionDuration.d.ts +1 -1
- package/Transition/useAutoTransitionDuration.js +3 -3
- package/Transition/useSetNodeTransition.js +0 -2
- package/Tree/TreeNode.js +7 -6
- package/Tree/index.d.ts +10 -5
- package/Typography/Typography.d.ts +6 -9
- package/Typography/Typography.js +7 -9
- package/Typography/index.d.ts +2 -5
- package/Upload/Upload.d.ts +175 -0
- package/Upload/Upload.js +279 -0
- package/Upload/UploadItem.d.ts +82 -0
- package/Upload/UploadItem.js +118 -0
- package/Upload/UploadPictureCard.d.ts +110 -0
- package/Upload/UploadPictureCard.js +101 -0
- package/Upload/Uploader.d.ts +161 -0
- package/Upload/Uploader.js +120 -0
- package/Upload/index.d.ts +8 -6
- package/Upload/index.js +4 -5
- package/Upload/upload-utils.d.ts +41 -0
- package/Upload/upload-utils.js +65 -0
- package/_internal/InputCheck/index.d.ts +4 -2
- package/_internal/InputTriggerPopper/InputTriggerPopper.js +15 -25
- package/_internal/InputTriggerPopper/index.d.ts +2 -1
- package/_internal/SlideFadeOverlay/SlideFadeOverlay.d.ts +2 -2
- package/_internal/SlideFadeOverlay/SlideFadeOverlay.js +4 -27
- package/_internal/SlideFadeOverlay/index.d.ts +2 -1
- package/_internal/SlideFadeOverlay/useTopStack.js +1 -0
- package/dayjs.d.ts +21 -0
- package/dayjs.js +2 -0
- package/hooks/useComposeRefs.js +1 -1
- package/hooks/useLastCallback.js +3 -1
- package/hooks/useScrollLock.d.ts +28 -0
- package/hooks/useScrollLock.js +134 -0
- package/index.d.ts +126 -58
- package/index.js +93 -80
- package/luxon.d.ts +21 -0
- package/luxon.js +2 -0
- package/moment.d.ts +21 -0
- package/moment.js +2 -0
- package/package.json +13 -17
- package/utils/composeRefs.js +0 -1
- package/utils/get-css-variable-value.d.ts +1 -0
- package/utils/get-css-variable-value.js +9 -0
- package/Button/IconButton.d.ts +0 -21
- package/Button/IconButton.js +0 -13
- package/DateTimePicker/DateTimePickerPanel.d.ts +0 -28
- package/DateTimePicker/DateTimePickerPanel.js +0 -49
- package/Form/FormMessage.d.ts +0 -7
- package/Form/FormMessage.js +0 -18
- package/Form/useInputWithTagsModeValue.js +0 -86
- package/Loading/Loading.d.ts +0 -33
- package/Loading/index.d.ts +0 -1
- package/Loading/index.js +0 -1
- package/Overlay/Overlay.js +0 -31
- package/Overlay/index.d.ts +0 -1
- package/Overlay/index.js +0 -1
- package/Picker/useRangePickerValue.d.ts +0 -23
- package/Picker/useRangePickerValue.js +0 -99
- package/Switch/Switch.d.ts +0 -43
- package/Switch/Switch.js +0 -28
- package/Switch/index.d.ts +0 -2
- package/Switch/index.js +0 -1
- package/Transition/Grow.d.ts +0 -12
- package/Transition/Zoom.d.ts +0 -7
- package/Upload/UploadButton.d.ts +0 -9
- package/Upload/UploadButton.js +0 -23
- package/Upload/UploadInput.d.ts +0 -20
- package/Upload/UploadInput.js +0 -24
- package/Upload/UploadPicture.d.ts +0 -49
- package/Upload/UploadPicture.js +0 -51
- package/Upload/UploadPictureBlock.d.ts +0 -20
- package/Upload/UploadPictureBlock.js +0 -81
- package/Upload/UploadPictureWall.d.ts +0 -81
- package/Upload/UploadPictureWall.js +0 -168
- package/Upload/UploadPictureWallItem.d.ts +0 -15
- package/Upload/UploadPictureWallItem.js +0 -18
- package/Upload/UploadResult.d.ts +0 -35
- package/Upload/UploadResult.js +0 -29
- package/utils/scroll-lock.d.ts +0 -2
- package/utils/scroll-lock.js +0 -24
|
@@ -1,26 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { DateType, CalendarMode } from '@mezzanine-ui/core/calendar';
|
|
2
|
+
import { RangeCalendarProps } from '../Calendar';
|
|
3
3
|
import { InputTriggerPopperProps } from '../_internal/InputTriggerPopper';
|
|
4
|
-
export interface DateRangePickerCalendarProps extends Pick<InputTriggerPopperProps, 'anchor' | 'fadeProps' | 'open'>, Pick<
|
|
4
|
+
export interface DateRangePickerCalendarProps extends Pick<InputTriggerPopperProps, 'anchor' | 'fadeProps' | 'open'>, Pick<RangeCalendarProps, 'actions' | 'calendarProps' | 'disabledMonthSwitch' | 'disabledYearSwitch' | 'disableOnNext' | 'disableOnPrev' | 'disableOnDoubleNext' | 'disableOnDoublePrev' | 'displayMonthLocale' | 'displayWeekDayLocale' | 'firstCalendarRef' | 'isDateDisabled' | 'isDateInRange' | 'isMonthDisabled' | 'isMonthInRange' | 'isWeekDisabled' | 'isWeekInRange' | 'isYearDisabled' | 'isYearInRange' | 'isQuarterDisabled' | 'isQuarterInRange' | 'isHalfYearDisabled' | 'isHalfYearInRange' | 'onDateHover' | 'onWeekHover' | 'onMonthHover' | 'onYearHover' | 'onQuarterHover' | 'onHalfYearHover' | 'quickSelect' | 'renderAnnotations' | 'secondCalendarRef' | 'value'> {
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Use this prop to switch calendars.
|
|
7
|
+
* @default 'day'
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
|
+
mode?: CalendarMode;
|
|
9
10
|
/**
|
|
10
|
-
*
|
|
11
|
+
* Click handler for every cell on calendars.
|
|
12
|
+
* When completing a range (second click), returns normalized [start, end].
|
|
13
|
+
* When starting a new range (first click), returns the clicked date.
|
|
11
14
|
*/
|
|
12
|
-
|
|
15
|
+
onChange?: (value: [DateType, DateType | undefined]) => void;
|
|
13
16
|
/**
|
|
14
17
|
* Other props you may provide to `Popper` component
|
|
15
18
|
*/
|
|
16
19
|
popperProps?: Omit<InputTriggerPopperProps, 'anchor' | 'children' | 'fadeProps' | 'open'>;
|
|
17
20
|
/**
|
|
18
|
-
*
|
|
21
|
+
* The reference date for getting the calendar.
|
|
19
22
|
*/
|
|
20
|
-
|
|
23
|
+
referenceDate: DateType;
|
|
21
24
|
}
|
|
22
25
|
/**
|
|
23
26
|
* The react component for `mezzanine` date range picker calendar.
|
|
27
|
+
* This is a wrapper around RangeCalendar with InputTriggerPopper for popup behavior.
|
|
24
28
|
*/
|
|
25
29
|
declare const DateRangePickerCalendar: import("react").ForwardRefExoticComponent<DateRangePickerCalendarProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
26
30
|
export default DateRangePickerCalendar;
|
|
@@ -1,103 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import { forwardRef
|
|
4
|
-
import { useDateRangeCalendarControls } from './useDateRangeCalendarControls.js';
|
|
5
|
-
import { useCalendarContext } from '../Calendar/CalendarContext.js';
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { forwardRef } from 'react';
|
|
6
4
|
import InputTriggerPopper from '../_internal/InputTriggerPopper/InputTriggerPopper.js';
|
|
7
|
-
import
|
|
8
|
-
import cx from 'clsx';
|
|
5
|
+
import RangeCalendar from '../Calendar/RangeCalendar.js';
|
|
9
6
|
|
|
10
7
|
/**
|
|
11
8
|
* The react component for `mezzanine` date range picker calendar.
|
|
9
|
+
* This is a wrapper around RangeCalendar with InputTriggerPopper for popup behavior.
|
|
12
10
|
*/
|
|
13
11
|
const DateRangePickerCalendar = forwardRef(function DateRangePickerCalendar(props, ref) {
|
|
14
|
-
const { displayMonthLocale
|
|
15
|
-
|
|
16
|
-
const { className, ...restCalendarProps } = calendarProps || {};
|
|
17
|
-
const { currentMode, onMonthControlClick: onMonthControlClickFromHook, onFirstNext, onFirstPrev, onSecondNext, onSecondPrev, onYearControlClick: onYearControlClickFromHook, popModeStack, referenceDates, updateFirstReferenceDate, updateSecondReferenceDate, } = useDateRangeCalendarControls(referenceDateProp, mode);
|
|
18
|
-
const onChangeFactory = useCallback((calendar) => {
|
|
19
|
-
const targetDate = referenceDates[calendar];
|
|
20
|
-
const updateReferenceDate = calendar
|
|
21
|
-
? updateSecondReferenceDate
|
|
22
|
-
: updateFirstReferenceDate;
|
|
23
|
-
if (currentMode === 'day' || currentMode === 'week') {
|
|
24
|
-
return (target) => {
|
|
25
|
-
updateReferenceDate(target);
|
|
26
|
-
popModeStack();
|
|
27
|
-
if (currentMode === mode && onChangeProp) {
|
|
28
|
-
onChangeProp(target);
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
if (currentMode === 'month') {
|
|
33
|
-
return (target) => {
|
|
34
|
-
const result = currentMode === mode
|
|
35
|
-
? target
|
|
36
|
-
: setMonth(targetDate, getMonth(target));
|
|
37
|
-
updateReferenceDate(result);
|
|
38
|
-
popModeStack();
|
|
39
|
-
if (currentMode === mode && onChangeProp) {
|
|
40
|
-
onChangeProp(result);
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
if (currentMode === 'year') {
|
|
45
|
-
return (target) => {
|
|
46
|
-
const result = currentMode === mode
|
|
47
|
-
? target
|
|
48
|
-
: setYear(targetDate, getYear(target));
|
|
49
|
-
updateReferenceDate(result);
|
|
50
|
-
popModeStack();
|
|
51
|
-
if (currentMode === mode && onChangeProp) {
|
|
52
|
-
onChangeProp(result);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
}, [
|
|
57
|
-
currentMode,
|
|
58
|
-
getMonth,
|
|
59
|
-
getYear,
|
|
60
|
-
mode,
|
|
61
|
-
onChangeProp,
|
|
62
|
-
popModeStack,
|
|
63
|
-
referenceDates,
|
|
64
|
-
setMonth,
|
|
65
|
-
setYear,
|
|
66
|
-
updateFirstReferenceDate,
|
|
67
|
-
updateSecondReferenceDate,
|
|
68
|
-
]);
|
|
69
|
-
const [controlPanelOnLeft, setControlPanelOnLeft] = useState(true);
|
|
70
|
-
const onMonthControlClickFactory = useCallback((calendar) => {
|
|
71
|
-
if (calendar) {
|
|
72
|
-
return () => {
|
|
73
|
-
setControlPanelOnLeft(false);
|
|
74
|
-
onMonthControlClickFromHook();
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
return () => {
|
|
78
|
-
setControlPanelOnLeft(true);
|
|
79
|
-
onMonthControlClickFromHook();
|
|
80
|
-
};
|
|
81
|
-
}, [onMonthControlClickFromHook]);
|
|
82
|
-
const onYearControlClickFactory = useCallback((calendar) => {
|
|
83
|
-
if (calendar) {
|
|
84
|
-
return () => {
|
|
85
|
-
setControlPanelOnLeft(false);
|
|
86
|
-
onYearControlClickFromHook();
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
return () => {
|
|
90
|
-
setControlPanelOnLeft(true);
|
|
91
|
-
onYearControlClickFromHook();
|
|
92
|
-
};
|
|
93
|
-
}, [onYearControlClickFromHook]);
|
|
94
|
-
const isSettingFirstCalendar = currentMode !== mode && controlPanelOnLeft;
|
|
95
|
-
const isSettingSecondCalendar = currentMode !== mode && !controlPanelOnLeft;
|
|
96
|
-
return (jsx(InputTriggerPopper, { ...popperProps, ref: ref, anchor: anchor, open: open, fadeProps: fadeProps, children: jsxs("div", { className: dateRangePickerClasses.calendarGroup, children: [jsx(Calendar, { ...restCalendarProps, className: cx(dateRangePickerClasses.calendar, {
|
|
97
|
-
[dateRangePickerClasses.calendarInactive]: isSettingSecondCalendar,
|
|
98
|
-
}, className), disabledMonthSwitch: disabledMonthSwitch, disableOnNext: disableOnNext, disableOnPrev: disableOnPrev, disabledYearSwitch: disabledYearSwitch, displayMonthLocale: displayMonthLocale, isDateDisabled: isDateDisabled, isDateInRange: isDateInRange, isMonthDisabled: isMonthDisabled, isMonthInRange: isMonthInRange, isWeekDisabled: isWeekDisabled, isWeekInRange: isWeekInRange, isYearDisabled: isYearDisabled, isYearInRange: isYearInRange, mode: controlPanelOnLeft ? currentMode : mode, onChange: onChangeFactory(0), onDateHover: currentMode === mode ? onDateHover : undefined, onMonthHover: currentMode === mode ? onMonthHover : undefined, onWeekHover: currentMode === mode ? onWeekHover : undefined, onYearHover: currentMode === mode ? onYearHover : undefined, onMonthControlClick: onMonthControlClickFactory(0), onNext: isSettingFirstCalendar ? onFirstNext : undefined, onPrev: onFirstPrev, onYearControlClick: onYearControlClickFactory(0), ref: firstCalendarRef, referenceDate: referenceDates[0], value: isSettingFirstCalendar ? referenceDates[0] : value }), jsx(Calendar, { ...restCalendarProps, className: cx(dateRangePickerClasses.calendar, {
|
|
99
|
-
[dateRangePickerClasses.calendarInactive]: isSettingFirstCalendar,
|
|
100
|
-
}, className), disabledMonthSwitch: disabledMonthSwitch, disableOnNext: disableOnNext, disableOnPrev: disableOnPrev, disabledYearSwitch: disabledYearSwitch, displayMonthLocale: displayMonthLocale, isDateDisabled: isDateDisabled, isDateInRange: isDateInRange, isMonthDisabled: isMonthDisabled, isMonthInRange: isMonthInRange, isWeekDisabled: isWeekDisabled, isWeekInRange: isWeekInRange, isYearDisabled: isYearDisabled, isYearInRange: isYearInRange, mode: !controlPanelOnLeft ? currentMode : mode, onChange: onChangeFactory(1), onDateHover: currentMode === mode ? onDateHover : undefined, onMonthHover: currentMode === mode ? onMonthHover : undefined, onWeekHover: currentMode === mode ? onWeekHover : undefined, onYearHover: currentMode === mode ? onYearHover : undefined, onMonthControlClick: onMonthControlClickFactory(1), onNext: onSecondNext, onPrev: isSettingSecondCalendar ? onSecondPrev : undefined, onYearControlClick: onYearControlClickFactory(1), ref: secondCalendarRef, referenceDate: referenceDates[1], value: isSettingSecondCalendar ? referenceDates[1] : value })] }) }));
|
|
12
|
+
const { actions, anchor, calendarProps, disabledMonthSwitch, disableOnNext, disableOnPrev, disableOnDoubleNext, disableOnDoublePrev, disabledYearSwitch, displayMonthLocale, displayWeekDayLocale, fadeProps, firstCalendarRef, isDateDisabled, isDateInRange, isHalfYearDisabled, isHalfYearInRange, isMonthDisabled, isMonthInRange, isQuarterDisabled, isQuarterInRange, isWeekDisabled, isWeekInRange, isYearDisabled, isYearInRange, mode = 'day', onChange, onDateHover, onHalfYearHover, onMonthHover, onQuarterHover, onWeekHover, onYearHover, open, popperProps, quickSelect, referenceDate, renderAnnotations, secondCalendarRef, value, } = props;
|
|
13
|
+
return (jsx(InputTriggerPopper, { ...popperProps, ref: ref, anchor: anchor, fadeProps: fadeProps, open: open, children: jsx(RangeCalendar, { actions: actions, calendarProps: calendarProps, disabledMonthSwitch: disabledMonthSwitch, disabledYearSwitch: disabledYearSwitch, disableOnDoubleNext: disableOnDoubleNext, disableOnDoublePrev: disableOnDoublePrev, disableOnNext: disableOnNext, disableOnPrev: disableOnPrev, displayMonthLocale: displayMonthLocale, displayWeekDayLocale: displayWeekDayLocale, firstCalendarRef: firstCalendarRef, isDateDisabled: isDateDisabled, isDateInRange: isDateInRange, isHalfYearDisabled: isHalfYearDisabled, isHalfYearInRange: isHalfYearInRange, isMonthDisabled: isMonthDisabled, isMonthInRange: isMonthInRange, isQuarterDisabled: isQuarterDisabled, isQuarterInRange: isQuarterInRange, isWeekDisabled: isWeekDisabled, isWeekInRange: isWeekInRange, isYearDisabled: isYearDisabled, isYearInRange: isYearInRange, mode: mode, onChange: onChange, onDateHover: onDateHover, onHalfYearHover: onHalfYearHover, onMonthHover: onMonthHover, onQuarterHover: onQuarterHover, onWeekHover: onWeekHover, onYearHover: onYearHover, quickSelect: quickSelect, referenceDate: referenceDate, renderAnnotations: renderAnnotations, secondCalendarRef: secondCalendarRef, value: value }) }));
|
|
101
14
|
});
|
|
102
15
|
|
|
103
16
|
export { DateRangePickerCalendar as default };
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export { useDateRangeCalendarControls } from './useDateRangeCalendarControls';
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
2
|
+
export { useDateRangePickerValue } from './useDateRangePickerValue';
|
|
3
|
+
export type { UseDateRangePickerValueProps } from './useDateRangePickerValue';
|
|
4
|
+
export { default as DateRangePickerCalendar } from './DateRangePickerCalendar';
|
|
5
|
+
export type { DateRangePickerCalendarProps } from './DateRangePickerCalendar';
|
|
6
|
+
export type { DateRangePickerProps } from './DateRangePicker';
|
|
7
|
+
export { default } from './DateRangePicker';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
import { useCallback, useState, useEffect } from 'react';
|
|
2
3
|
import { calendarYearModuler } from '@mezzanine-ui/core/calendar';
|
|
3
4
|
import { useCalendarControlModifiers } from '../Calendar/useCalendarControlModifiers.js';
|
|
@@ -16,7 +17,7 @@ function useDateRangeCalendarControls(referenceDate, mode) {
|
|
|
16
17
|
return (target) => addYear(target, calendar ? -1 : 1);
|
|
17
18
|
}
|
|
18
19
|
return (target) => addMonth(target, calendar ? -1 : 1);
|
|
19
|
-
}, [addYear, addMonth,
|
|
20
|
+
}, [addYear, addMonth, mode]);
|
|
20
21
|
const [referenceDates, setReferenceDates] = useState(() => {
|
|
21
22
|
const adder = getAdder(0);
|
|
22
23
|
return [referenceDate, adder(referenceDate)];
|
|
@@ -26,17 +27,19 @@ function useDateRangeCalendarControls(referenceDate, mode) {
|
|
|
26
27
|
const adder = getAdder(0);
|
|
27
28
|
return [referenceDate, adder(referenceDate)];
|
|
28
29
|
});
|
|
29
|
-
}, [referenceDate]);
|
|
30
|
+
}, [referenceDate, getAdder]);
|
|
30
31
|
const updateFirstReferenceDate = useCallback((date) => {
|
|
31
32
|
const adder = getAdder(0);
|
|
32
33
|
setReferenceDates([date, adder(date)]);
|
|
33
|
-
}, [
|
|
34
|
+
}, [getAdder]);
|
|
34
35
|
const updateSecondReferenceDate = useCallback((date) => {
|
|
35
36
|
const adder = getAdder(1);
|
|
36
37
|
setReferenceDates([adder(date), date]);
|
|
37
|
-
}, [
|
|
38
|
+
}, [getAdder]);
|
|
38
39
|
const onPrevFactory = (target) => () => {
|
|
39
|
-
|
|
40
|
+
var _a;
|
|
41
|
+
const modifiers = modifierGroup[currentMode];
|
|
42
|
+
const [handleMinus] = (_a = modifiers.single) !== null && _a !== void 0 ? _a : modifiers.double;
|
|
40
43
|
const newAnchor = handleMinus(referenceDates[target]);
|
|
41
44
|
const newDates = [...referenceDates];
|
|
42
45
|
newDates[target] = newAnchor;
|
|
@@ -49,7 +52,9 @@ function useDateRangeCalendarControls(referenceDate, mode) {
|
|
|
49
52
|
setReferenceDates(newDates);
|
|
50
53
|
};
|
|
51
54
|
const onNextFactory = (target) => () => {
|
|
52
|
-
|
|
55
|
+
var _a;
|
|
56
|
+
const modifiers = modifierGroup[currentMode];
|
|
57
|
+
const [, handleAdd] = (_a = modifiers.single) !== null && _a !== void 0 ? _a : modifiers.double;
|
|
53
58
|
const newAnchor = handleAdd(referenceDates[target]);
|
|
54
59
|
const newDates = [...referenceDates];
|
|
55
60
|
newDates[target] = newAnchor;
|
|
@@ -1,28 +1,51 @@
|
|
|
1
1
|
import { DateType } from '@mezzanine-ui/core/calendar';
|
|
2
2
|
import { RangePickerPickingValue, RangePickerValue } from '@mezzanine-ui/core/picker';
|
|
3
|
-
import {
|
|
4
|
-
import { UseRangePickerValueProps } from '../Picker/useRangePickerValue';
|
|
3
|
+
import { RefObject } from 'react';
|
|
5
4
|
import { DateRangePickerCalendarProps } from './DateRangePickerCalendar';
|
|
6
|
-
export interface UseDateRangePickerValueProps
|
|
5
|
+
export interface UseDateRangePickerValueProps {
|
|
6
|
+
/**
|
|
7
|
+
* The format pattern for the inputs (e.g., "YYYY-MM-DD")
|
|
8
|
+
*/
|
|
9
|
+
format: string;
|
|
10
|
+
/**
|
|
11
|
+
* Function to check if there are disabled dates in the range
|
|
12
|
+
*/
|
|
13
|
+
hasDisabledDateInRange?: (start: DateType, end: DateType) => boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Ref for the 'from' input element
|
|
16
|
+
*/
|
|
17
|
+
inputFromRef: RefObject<HTMLInputElement | null>;
|
|
18
|
+
/**
|
|
19
|
+
* Ref for the 'to' input element
|
|
20
|
+
*/
|
|
21
|
+
inputToRef: RefObject<HTMLInputElement | null>;
|
|
22
|
+
/**
|
|
23
|
+
* Calendar mode
|
|
24
|
+
*/
|
|
7
25
|
mode?: DateRangePickerCalendarProps['mode'];
|
|
26
|
+
/**
|
|
27
|
+
* Change handler called when range is complete
|
|
28
|
+
*/
|
|
8
29
|
onChange?: (value?: RangePickerValue) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Controlled value
|
|
32
|
+
*/
|
|
33
|
+
value?: RangePickerValue;
|
|
9
34
|
}
|
|
10
|
-
export declare function useDateRangePickerValue({ format,
|
|
35
|
+
export declare function useDateRangePickerValue({ format, hasDisabledDateInRange, inputFromRef: _inputFromRef, inputToRef, mode, onChange: onChangeProp, value: valueProp, }: UseDateRangePickerValueProps): {
|
|
11
36
|
calendarValue: string[] | undefined;
|
|
37
|
+
checkIsInRange: (_date: DateType) => boolean;
|
|
12
38
|
inputFromValue: string;
|
|
13
39
|
inputToValue: string;
|
|
14
|
-
onCalendarChange: (
|
|
40
|
+
onCalendarChange: (rangeValue: [DateType, DateType | undefined]) => void;
|
|
15
41
|
onCalendarHover: import("react").Dispatch<import("react").SetStateAction<string | undefined>> | undefined;
|
|
16
|
-
onChange: (target?: RangePickerPickingValue
|
|
17
|
-
from: (date?: string) => string | undefined;
|
|
18
|
-
to: (date?: string) => string | undefined;
|
|
19
|
-
}) => RangePickerPickingValue | undefined;
|
|
42
|
+
onChange: (target?: RangePickerPickingValue) => RangePickerPickingValue | undefined;
|
|
20
43
|
onClear: () => void;
|
|
21
|
-
onFromBlur:
|
|
22
|
-
|
|
23
|
-
onInputFromChange:
|
|
24
|
-
onInputToChange:
|
|
25
|
-
onToBlur:
|
|
26
|
-
|
|
44
|
+
onFromBlur: () => void;
|
|
45
|
+
onFromFocus: () => void;
|
|
46
|
+
onInputFromChange: (formattedValue: string) => void;
|
|
47
|
+
onInputToChange: (formattedValue: string) => void;
|
|
48
|
+
onToBlur: () => void;
|
|
49
|
+
onToFocus: () => void;
|
|
27
50
|
value: RangePickerPickingValue;
|
|
28
51
|
};
|
|
@@ -1,46 +1,115 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
1
|
+
'use client';
|
|
2
|
+
import { useState, useCallback, useMemo } from 'react';
|
|
3
3
|
import { useCalendarContext } from '../Calendar/CalendarContext.js';
|
|
4
4
|
|
|
5
|
-
function useDateRangePickerValue({ format,
|
|
6
|
-
|
|
7
|
-
const {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const
|
|
5
|
+
function useDateRangePickerValue({ format, hasDisabledDateInRange, inputFromRef: _inputFromRef, inputToRef, mode, onChange: onChangeProp, value: valueProp, }) {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
const { addDay, formatToString, isBefore, locale } = useCalendarContext();
|
|
8
|
+
const [internalFrom, setInternalFrom] = useState(valueProp === null || valueProp === void 0 ? void 0 : valueProp[0]);
|
|
9
|
+
const [internalTo, setInternalTo] = useState(valueProp === null || valueProp === void 0 ? void 0 : valueProp[1]);
|
|
10
|
+
// Track if user is currently selecting a new range
|
|
11
|
+
// When selecting, we use internal state; otherwise, we prefer valueProp
|
|
12
|
+
const [isSelecting, setIsSelecting] = useState(false);
|
|
13
|
+
const from = isSelecting ? internalFrom : ((_a = valueProp === null || valueProp === void 0 ? void 0 : valueProp[0]) !== null && _a !== void 0 ? _a : internalFrom);
|
|
14
|
+
const to = isSelecting ? internalTo : ((_b = valueProp === null || valueProp === void 0 ? void 0 : valueProp[1]) !== null && _b !== void 0 ? _b : internalTo);
|
|
15
|
+
const value = [from, to];
|
|
16
|
+
const formatDate = useCallback((date) => {
|
|
17
|
+
if (!date)
|
|
18
|
+
return '';
|
|
19
|
+
return formatToString(locale, date, format);
|
|
20
|
+
}, [formatToString, locale, format]);
|
|
21
|
+
const sortValues = useCallback((v1, v2) => {
|
|
22
|
+
return isBefore(v1, v2) ? [v1, v2] : [v2, v1];
|
|
23
|
+
}, [isBefore]);
|
|
24
|
+
const inputFromValue = formatDate(from);
|
|
25
|
+
const inputToValue = formatDate(to);
|
|
15
26
|
const [hoverValue, setHoverValue] = useState(undefined);
|
|
16
|
-
const
|
|
17
|
-
|
|
27
|
+
const onInputFromChange = useCallback((formattedValue) => {
|
|
28
|
+
if (formattedValue) {
|
|
29
|
+
setIsSelecting(true);
|
|
30
|
+
if (to && isBefore(to, formattedValue)) {
|
|
31
|
+
setInternalFrom(to);
|
|
32
|
+
setInternalTo(formattedValue);
|
|
33
|
+
// Range is complete, trigger onChange (only in immediate mode)
|
|
34
|
+
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp([to, formattedValue]);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
setInternalFrom(formattedValue);
|
|
38
|
+
// If to is also set, range is complete (only trigger in immediate mode)
|
|
39
|
+
if (to) {
|
|
40
|
+
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp([formattedValue, to]);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
setInternalFrom(undefined);
|
|
46
|
+
}
|
|
18
47
|
setHoverValue(undefined);
|
|
19
|
-
};
|
|
20
|
-
const
|
|
21
|
-
|
|
48
|
+
}, [to, isBefore, onChangeProp]);
|
|
49
|
+
const onInputToChange = useCallback((formattedValue) => {
|
|
50
|
+
if (formattedValue) {
|
|
51
|
+
setIsSelecting(true);
|
|
52
|
+
if (from && isBefore(formattedValue, from)) {
|
|
53
|
+
setInternalTo(from);
|
|
54
|
+
setInternalFrom(formattedValue);
|
|
55
|
+
// Range is complete, trigger onChange (only in immediate mode)
|
|
56
|
+
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp([formattedValue, from]);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
setInternalTo(formattedValue);
|
|
60
|
+
// If from is also set, range is complete (only trigger in immediate mode)
|
|
61
|
+
if (from) {
|
|
62
|
+
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp([from, formattedValue]);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
setInternalTo(undefined);
|
|
68
|
+
}
|
|
22
69
|
setHoverValue(undefined);
|
|
23
|
-
};
|
|
24
|
-
const onCalendarChange = (
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
/** week mode should use the last day of the week (default is the first day) */
|
|
36
|
-
return mode === 'week' ? addDay(nextTo, 6) : nextTo;
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
if (sortedFrom && sortedTo) {
|
|
40
|
-
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp([sortedFrom, sortedTo]);
|
|
70
|
+
}, [from, isBefore, onChangeProp]);
|
|
71
|
+
const onCalendarChange = useCallback((rangeValue) => {
|
|
72
|
+
var _a;
|
|
73
|
+
const [newFrom, newTo] = rangeValue;
|
|
74
|
+
setInternalFrom(newFrom);
|
|
75
|
+
if (newTo) {
|
|
76
|
+
const adjustedTo = mode === 'week' ? addDay(newTo, 6) : newTo;
|
|
77
|
+
setInternalTo(adjustedTo);
|
|
78
|
+
if (newFrom && adjustedTo) {
|
|
79
|
+
const [sortedFrom, sortedTo] = sortValues(newFrom, adjustedTo);
|
|
80
|
+
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp([sortedFrom, sortedTo]);
|
|
81
|
+
}
|
|
41
82
|
}
|
|
42
|
-
|
|
43
|
-
|
|
83
|
+
else {
|
|
84
|
+
setInternalTo(undefined);
|
|
85
|
+
setIsSelecting(true);
|
|
86
|
+
// 開始新的選取,則先清除值
|
|
87
|
+
if (from && to) {
|
|
88
|
+
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(undefined);
|
|
89
|
+
}
|
|
90
|
+
(_a = inputToRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
91
|
+
}
|
|
92
|
+
setHoverValue(undefined);
|
|
93
|
+
}, [mode, addDay, sortValues, onChangeProp, inputToRef, from, to]);
|
|
94
|
+
const onChange = useCallback((target) => {
|
|
95
|
+
// Reset selecting state when value is explicitly changed (e.g., cancel/close)
|
|
96
|
+
setIsSelecting(false);
|
|
97
|
+
if (!target) {
|
|
98
|
+
setInternalFrom(undefined);
|
|
99
|
+
setInternalTo(undefined);
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
const [newFrom, newTo] = target;
|
|
103
|
+
if (newFrom && newTo) {
|
|
104
|
+
const sorted = sortValues(newFrom, newTo);
|
|
105
|
+
setInternalFrom(sorted[0]);
|
|
106
|
+
setInternalTo(sorted[1]);
|
|
107
|
+
return sorted;
|
|
108
|
+
}
|
|
109
|
+
setInternalFrom(newFrom);
|
|
110
|
+
setInternalTo(newTo);
|
|
111
|
+
return target;
|
|
112
|
+
}, [sortValues]);
|
|
44
113
|
const anchor1 = from || to;
|
|
45
114
|
const anchor2 = from && to ? to : hoverValue;
|
|
46
115
|
const calendarValue = useMemo(() => {
|
|
@@ -52,44 +121,54 @@ function useDateRangePickerValue({ format, formats, inputFromRef, inputToRef, mo
|
|
|
52
121
|
}
|
|
53
122
|
return undefined;
|
|
54
123
|
}, [anchor1, anchor2]);
|
|
124
|
+
/**
|
|
125
|
+
* Check if date is in range, considering disabled dates
|
|
126
|
+
* Returns a function that can be used as isDateInRange handler
|
|
127
|
+
*/
|
|
128
|
+
const checkIsInRange = useCallback((_date) => {
|
|
129
|
+
if (!anchor1 || !anchor2)
|
|
130
|
+
return false;
|
|
131
|
+
// Check if the range crosses any disabled dates
|
|
132
|
+
if (hasDisabledDateInRange === null || hasDisabledDateInRange === void 0 ? void 0 : hasDisabledDateInRange(anchor1, anchor2)) {
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
return true;
|
|
136
|
+
}, [anchor1, anchor2, hasDisabledDateInRange]);
|
|
55
137
|
const onCalendarHover = !(from && to) && anchor1 ? setHoverValue : undefined;
|
|
56
|
-
const
|
|
57
|
-
|
|
138
|
+
const onClear = useCallback(() => {
|
|
139
|
+
setInternalFrom(undefined);
|
|
140
|
+
setInternalTo(undefined);
|
|
58
141
|
setHoverValue(undefined);
|
|
142
|
+
setIsSelecting(false);
|
|
59
143
|
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(undefined);
|
|
60
|
-
};
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
};
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp([from, to]);
|
|
74
|
-
}
|
|
75
|
-
if (event.key === 'Escape') {
|
|
76
|
-
onChange(valueProp);
|
|
77
|
-
}
|
|
78
|
-
};
|
|
144
|
+
}, [onChangeProp]);
|
|
145
|
+
const onFromFocus = useCallback(() => {
|
|
146
|
+
// Optional: add focus logic
|
|
147
|
+
}, []);
|
|
148
|
+
const onToFocus = useCallback(() => {
|
|
149
|
+
// Optional: add focus logic
|
|
150
|
+
}, []);
|
|
151
|
+
const onFromBlur = useCallback(() => {
|
|
152
|
+
// Optional: add blur logic
|
|
153
|
+
}, []);
|
|
154
|
+
const onToBlur = useCallback(() => {
|
|
155
|
+
// Optional: add blur logic
|
|
156
|
+
}, []);
|
|
79
157
|
return {
|
|
80
158
|
calendarValue,
|
|
159
|
+
checkIsInRange,
|
|
81
160
|
inputFromValue,
|
|
82
161
|
inputToValue,
|
|
83
162
|
onCalendarChange,
|
|
84
163
|
onCalendarHover,
|
|
85
164
|
onChange,
|
|
86
|
-
onClear
|
|
165
|
+
onClear,
|
|
87
166
|
onFromBlur,
|
|
88
|
-
|
|
89
|
-
onInputFromChange
|
|
90
|
-
onInputToChange
|
|
167
|
+
onFromFocus,
|
|
168
|
+
onInputFromChange,
|
|
169
|
+
onInputToChange,
|
|
91
170
|
onToBlur,
|
|
92
|
-
|
|
171
|
+
onToFocus,
|
|
93
172
|
value,
|
|
94
173
|
};
|
|
95
174
|
}
|
|
@@ -1,27 +1,48 @@
|
|
|
1
1
|
import { DateType } from '@mezzanine-ui/core/calendar';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
2
|
+
import { DatePickerCalendarProps } from '../DatePicker';
|
|
3
|
+
import { PickerTriggerWithSeparatorProps } from '../Picker';
|
|
4
|
+
import { TimePickerPanelProps } from '../TimePicker';
|
|
5
|
+
type FocusedInput = 'left' | 'right' | null;
|
|
6
|
+
export interface DateTimePickerProps extends Omit<DatePickerCalendarProps, 'anchor' | 'onChange' | 'open' | 'referenceDate' | 'value'>, Omit<TimePickerPanelProps, 'anchor' | 'onChange' | 'open' | 'popperProps' | 'value'>, Omit<PickerTriggerWithSeparatorProps, 'formatLeft' | 'formatRight' | 'inputLeftRef' | 'inputRightRef' | 'onBlurLeft' | 'onBlurRight' | 'onChangeLeft' | 'onChangeRight' | 'onFocusLeft' | 'onFocusRight' | 'onLeftComplete' | 'onRightComplete' | 'suffix' | 'valueLeft' | 'valueRight'> {
|
|
5
7
|
/**
|
|
6
|
-
* Default value for time picker.
|
|
8
|
+
* Default value for date-time picker.
|
|
7
9
|
*/
|
|
8
10
|
defaultValue?: DateType;
|
|
9
11
|
/**
|
|
10
|
-
* The format for displaying
|
|
12
|
+
* The format for displaying date (left input).
|
|
11
13
|
*/
|
|
12
|
-
|
|
14
|
+
formatDate?: string;
|
|
13
15
|
/**
|
|
14
|
-
*
|
|
16
|
+
* The format for displaying time (right input).
|
|
15
17
|
*/
|
|
16
|
-
|
|
18
|
+
formatTime?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Change handler. Takes your declared `DateType` as argument.
|
|
21
|
+
* Called when both date and time values are complete.
|
|
22
|
+
*/
|
|
23
|
+
onChange?: (target?: DateType) => void;
|
|
24
|
+
/**
|
|
25
|
+
* A function that fires when panel toggled. Receive open status and focused input as props.
|
|
26
|
+
*/
|
|
27
|
+
onPanelToggle?: (open: boolean, focusedInput: FocusedInput) => void;
|
|
28
|
+
/**
|
|
29
|
+
* Other props you may provide to the time picker panel's `Popper` component
|
|
30
|
+
*/
|
|
31
|
+
popperPropsTime?: TimePickerPanelProps['popperProps'];
|
|
17
32
|
/**
|
|
18
33
|
* The reference date for getting calendars. Default to current time.
|
|
19
34
|
*/
|
|
20
35
|
referenceDate?: DateType;
|
|
36
|
+
/**
|
|
37
|
+
* Current value of date-time picker.
|
|
38
|
+
*/
|
|
39
|
+
value?: DateType;
|
|
21
40
|
}
|
|
22
41
|
/**
|
|
23
|
-
* The react component for `mezzanine` time picker.
|
|
24
|
-
*
|
|
42
|
+
* The react component for `mezzanine` date-time picker.
|
|
43
|
+
* This component features two separate inputs for date and time,
|
|
44
|
+
* with independent calendar and time panels shown based on focus.
|
|
45
|
+
* Notice that any component related to date-time picker should be used along with `CalendarContext`.
|
|
25
46
|
*/
|
|
26
47
|
declare const DateTimePicker: import("react").ForwardRefExoticComponent<DateTimePickerProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
27
48
|
export default DateTimePicker;
|