@gravity-ui/date-components 3.4.2 → 4.0.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 +31 -0
- package/dist/cjs/components/Calendar/Calendar.d.ts +6 -2
- package/dist/cjs/components/Calendar/Calendar.js +1 -1
- package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
- package/dist/cjs/components/CalendarView/Calendar.css +3 -0
- package/dist/cjs/components/CalendarView/Calendar.css.map +1 -1
- package/dist/cjs/components/CalendarView/CalendarView.d.ts +2 -1
- package/dist/cjs/components/CalendarView/CalendarView.js +8 -8
- package/dist/cjs/components/CalendarView/CalendarView.js.map +1 -1
- package/dist/cjs/components/CalendarView/hooks/types.d.ts +5 -3
- package/dist/cjs/components/CalendarView/hooks/types.js.map +1 -1
- package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.js +1 -2
- package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.js.map +1 -1
- package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.js +10 -3
- package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.js.map +1 -1
- package/dist/cjs/components/CalendarView/hooks/useCalendarProps.js +7 -1
- package/dist/cjs/components/CalendarView/hooks/useCalendarProps.js.map +1 -1
- package/dist/cjs/components/CalendarView/hooks/useCalendarState.d.ts +5 -3
- package/dist/cjs/components/CalendarView/hooks/useCalendarState.js +74 -30
- package/dist/cjs/components/CalendarView/hooks/useCalendarState.js.map +1 -1
- package/dist/cjs/components/CalendarView/hooks/useRangeCalendarState.js +16 -9
- package/dist/cjs/components/CalendarView/hooks/useRangeCalendarState.js.map +1 -1
- package/dist/cjs/components/DateField/DateField.d.ts +1 -1
- package/dist/cjs/components/DateField/DateField.js +5 -17
- package/dist/cjs/components/DateField/DateField.js.map +1 -1
- package/dist/cjs/components/DateField/IncompleteDate.d.ts +28 -0
- package/dist/cjs/components/DateField/IncompleteDate.js +116 -0
- package/dist/cjs/components/DateField/IncompleteDate.js.map +1 -0
- package/dist/cjs/components/DateField/hooks/useBaseDateFieldState.d.ts +34 -68
- package/dist/cjs/components/DateField/hooks/useBaseDateFieldState.js +18 -249
- package/dist/cjs/components/DateField/hooks/useBaseDateFieldState.js.map +1 -1
- package/dist/cjs/components/DateField/hooks/useDateFieldProps.d.ts +2 -0
- package/dist/cjs/components/DateField/hooks/useDateFieldProps.js +250 -54
- package/dist/cjs/components/DateField/hooks/useDateFieldProps.js.map +1 -1
- package/dist/cjs/components/DateField/hooks/useDateFieldState.d.ts +20 -2
- package/dist/cjs/components/DateField/hooks/useDateFieldState.js +84 -118
- package/dist/cjs/components/DateField/hooks/useDateFieldState.js.map +1 -1
- package/dist/cjs/components/DateField/hooks/useFocusManager.d.ts +29 -0
- package/dist/cjs/components/DateField/hooks/useFocusManager.js +116 -0
- package/dist/cjs/components/DateField/hooks/useFocusManager.js.map +1 -0
- package/dist/cjs/components/{RangeDateField → DateField}/hooks/useRangeDateFieldState.d.ts +1 -1
- package/dist/cjs/components/DateField/hooks/useRangeDateFieldState.js +236 -0
- package/dist/cjs/components/DateField/hooks/useRangeDateFieldState.js.map +1 -0
- package/dist/cjs/components/DateField/i18n/ru.json +1 -1
- package/dist/cjs/components/DateField/index.d.ts +2 -1
- package/dist/cjs/components/DateField/index.js +1 -1
- package/dist/cjs/components/DateField/index.js.map +1 -1
- package/dist/cjs/components/DateField/types.d.ts +2 -22
- package/dist/cjs/components/DateField/types.js.map +1 -1
- package/dist/cjs/components/DateField/utils.d.ts +21 -34
- package/dist/cjs/components/DateField/utils.js +180 -132
- package/dist/cjs/components/DateField/utils.js.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.d.ts +3 -3
- package/dist/cjs/components/DatePicker/DatePicker.js +3 -4
- package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/DatePicker/MobileCalendar.d.ts +1 -1
- package/dist/cjs/components/DatePicker/MobileCalendar.js +3 -5
- package/dist/cjs/components/DatePicker/MobileCalendar.js.map +1 -1
- package/dist/cjs/components/DatePicker/StubButton.d.ts +1 -1
- package/dist/cjs/components/DatePicker/hooks/datePickerStateFactory.d.ts +1 -1
- package/dist/cjs/components/DatePicker/hooks/datePickerStateFactory.js +15 -6
- package/dist/cjs/components/DatePicker/hooks/datePickerStateFactory.js.map +1 -1
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.d.ts +2 -2
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js +30 -17
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js.map +1 -1
- package/dist/cjs/components/HiddenInput/HiddenInput.d.ts +2 -5
- package/dist/cjs/components/HiddenInput/HiddenInput.js +2 -4
- package/dist/cjs/components/HiddenInput/HiddenInput.js.map +1 -1
- package/dist/cjs/components/RangeCalendar/RangeCalendar.d.ts +2 -2
- package/dist/cjs/components/RangeCalendar/RangeCalendar.js +2 -3
- package/dist/cjs/components/RangeCalendar/RangeCalendar.js.map +1 -1
- package/dist/cjs/components/RangeDateField/RangeDateField.d.ts +1 -1
- package/dist/cjs/components/RangeDateField/RangeDateField.js +6 -19
- package/dist/cjs/components/RangeDateField/RangeDateField.js.map +1 -1
- package/dist/cjs/components/RangeDateField/index.d.ts +0 -1
- package/dist/cjs/components/RangeDateField/index.js +0 -1
- package/dist/cjs/components/RangeDateField/index.js.map +1 -1
- package/dist/cjs/components/RangeDatePicker/RangeDatePicker.d.ts +2 -1
- package/dist/cjs/components/RangeDatePicker/RangeDatePicker.js +4 -5
- package/dist/cjs/components/RangeDatePicker/RangeDatePicker.js.map +1 -1
- package/dist/cjs/components/RangeDatePicker/hooks/useRangeDatePickerState.d.ts +1 -1
- package/dist/cjs/components/RangeDatePicker/hooks/useRangeDatePickerState.js +3 -4
- package/dist/cjs/components/RangeDatePicker/hooks/useRangeDatePickerState.js.map +1 -1
- package/dist/cjs/components/RangeDateSelection/RangeDateSelection.d.ts +1 -1
- package/dist/cjs/components/RangeDateSelection/RangeDateSelection.js +4 -5
- package/dist/cjs/components/RangeDateSelection/RangeDateSelection.js.map +1 -1
- package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.d.ts +2 -1
- package/dist/cjs/components/RangeDateSelection/components/Ruler/Ruler.d.ts +1 -1
- package/dist/cjs/components/RangeDateSelection/components/Ruler/Ruler.js +1 -1
- package/dist/cjs/components/RangeDateSelection/components/Ruler/Ruler.js.map +1 -1
- package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.js +2 -2
- package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.js.map +1 -1
- package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.d.ts +2 -1
- package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.js +12 -21
- package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.js.map +1 -1
- package/dist/cjs/components/RangeDateSelection/components/Ticks/MiddleTicks.d.ts +1 -1
- package/dist/cjs/components/RangeDateSelection/components/Ticks/SlitTicks.d.ts +1 -1
- package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.d.ts +2 -2
- package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.js.map +1 -1
- package/dist/cjs/components/RangeDateSelection/components/Ticks/UnavialableTicks.d.ts +3 -4
- package/dist/cjs/components/RangeDateSelection/components/Ticks/UnavialableTicks.js +0 -3
- package/dist/cjs/components/RangeDateSelection/components/Ticks/UnavialableTicks.js.map +1 -1
- package/dist/cjs/components/RangeDateSelection/hooks/useRangeDateSelectionState.js +9 -10
- package/dist/cjs/components/RangeDateSelection/hooks/useRangeDateSelectionState.js.map +1 -1
- package/dist/cjs/components/RangeDateSelection/utils/span.d.ts +2 -1
- package/dist/cjs/components/RangeDateSelection/utils/span.js.map +1 -1
- package/dist/cjs/components/RelativeDateField/RelativeDateField.d.ts +1 -1
- package/dist/cjs/components/RelativeDateField/RelativeDateField.js +3 -40
- package/dist/cjs/components/RelativeDateField/RelativeDateField.js.map +1 -1
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldProps.d.ts +7 -2
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldProps.js +71 -9
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldProps.js.map +1 -1
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.d.ts +2 -0
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.js +48 -34
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.js.map +1 -1
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.d.ts +1 -1
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.js +7 -4
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.js.map +1 -1
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.d.ts +1 -1
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +52 -21
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js.map +1 -1
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js +9 -10
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.d.ts +2 -1
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +13 -5
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.css +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.css.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.d.ts +2 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.js +12 -6
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.d.ts +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js +6 -8
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.d.ts +5 -3
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.js +18 -16
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.d.ts +2 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js +33 -7
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.d.ts +3 -3
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +19 -18
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.d.ts +6 -9
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js +9 -12
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.d.ts +2 -2
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.d.ts +9 -4
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.js +27 -16
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.d.ts +3 -3
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js +3 -4
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +8 -7
- package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/utils.d.ts +2 -2
- package/dist/cjs/components/RelativeRangeDatePicker/utils.js +32 -9
- package/dist/cjs/components/RelativeRangeDatePicker/utils.js.map +1 -1
- package/dist/cjs/components/utils/constants.d.ts +2 -0
- package/dist/cjs/components/utils/constants.js +7 -1
- package/dist/cjs/components/utils/constants.js.map +1 -1
- package/dist/cjs/components/utils/dates.d.ts +6 -1
- package/dist/cjs/components/utils/dates.js +6 -1
- package/dist/cjs/components/utils/dates.js.map +1 -1
- package/dist/cjs/components/utils/filterDOMProps.js +1 -1
- package/dist/cjs/components/utils/filterDOMProps.js.map +1 -1
- package/dist/cjs/components/utils/mergeProps.js +1 -1
- package/dist/cjs/components/utils/mergeProps.js.map +1 -1
- package/dist/cjs/components/utils/validation/datePicker.js +1 -1
- package/dist/cjs/components/utils/validation/datePicker.js.map +1 -1
- package/dist/cjs/components/utils/validation/i18n/ru.json +2 -2
- package/dist/cjs/components/utils/validation/relativeRangeDatePicker.d.ts +7 -11
- package/dist/cjs/components/utils/validation/relativeRangeDatePicker.js +6 -1
- package/dist/cjs/components/utils/validation/relativeRangeDatePicker.js.map +1 -1
- package/dist/cjs/hooks/useEventHandler.js +1 -2
- package/dist/cjs/hooks/useEventHandler.js.map +1 -1
- package/dist/cjs/hooks/useMove.d.ts +2 -2
- package/dist/cjs/hooks/useMove.js +6 -9
- package/dist/cjs/hooks/useMove.js.map +1 -1
- package/dist/cjs/hooks/useResizeObserver.js +1 -1
- package/dist/cjs/hooks/useResizeObserver.js.map +1 -1
- package/dist/cjs/package.json +1 -1
- package/dist/docs/INDEX.md +131 -0
- package/dist/docs/components/Calendar.md +125 -0
- package/dist/docs/components/DateField.md +206 -0
- package/dist/docs/components/DatePicker.md +194 -0
- package/dist/docs/components/RangeCalendar.md +125 -0
- package/dist/docs/components/RelativeDateField.md +73 -0
- package/dist/docs/components/RelativeDatePicker.md +59 -0
- package/dist/esm/components/Calendar/Calendar.d.ts +6 -2
- package/dist/esm/components/Calendar/Calendar.js +1 -1
- package/dist/esm/components/Calendar/Calendar.js.map +1 -1
- package/dist/esm/components/CalendarView/Calendar.css +3 -0
- package/dist/esm/components/CalendarView/Calendar.css.map +1 -1
- package/dist/esm/components/CalendarView/CalendarView.d.ts +2 -1
- package/dist/esm/components/CalendarView/CalendarView.js +8 -8
- package/dist/esm/components/CalendarView/CalendarView.js.map +1 -1
- package/dist/esm/components/CalendarView/hooks/types.d.ts +5 -3
- package/dist/esm/components/CalendarView/hooks/types.js.map +1 -1
- package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.js +1 -2
- package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.js.map +1 -1
- package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.js +10 -3
- package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.js.map +1 -1
- package/dist/esm/components/CalendarView/hooks/useCalendarProps.js +7 -1
- package/dist/esm/components/CalendarView/hooks/useCalendarProps.js.map +1 -1
- package/dist/esm/components/CalendarView/hooks/useCalendarState.d.ts +5 -3
- package/dist/esm/components/CalendarView/hooks/useCalendarState.js +74 -30
- package/dist/esm/components/CalendarView/hooks/useCalendarState.js.map +1 -1
- package/dist/esm/components/CalendarView/hooks/useRangeCalendarState.js +16 -10
- package/dist/esm/components/CalendarView/hooks/useRangeCalendarState.js.map +1 -1
- package/dist/esm/components/DateField/DateField.d.ts +1 -1
- package/dist/esm/components/DateField/DateField.js +6 -18
- package/dist/esm/components/DateField/DateField.js.map +1 -1
- package/dist/esm/components/DateField/IncompleteDate.d.ts +28 -0
- package/dist/esm/components/DateField/IncompleteDate.js +112 -0
- package/dist/esm/components/DateField/IncompleteDate.js.map +1 -0
- package/dist/esm/components/DateField/hooks/useBaseDateFieldState.d.ts +34 -68
- package/dist/esm/components/DateField/hooks/useBaseDateFieldState.js +17 -248
- package/dist/esm/components/DateField/hooks/useBaseDateFieldState.js.map +1 -1
- package/dist/esm/components/DateField/hooks/useDateFieldProps.d.ts +2 -0
- package/dist/esm/components/DateField/hooks/useDateFieldProps.js +250 -54
- package/dist/esm/components/DateField/hooks/useDateFieldProps.js.map +1 -1
- package/dist/esm/components/DateField/hooks/useDateFieldState.d.ts +20 -2
- package/dist/esm/components/DateField/hooks/useDateFieldState.js +85 -119
- package/dist/esm/components/DateField/hooks/useDateFieldState.js.map +1 -1
- package/dist/esm/components/DateField/hooks/useFocusManager.d.ts +29 -0
- package/dist/esm/components/DateField/hooks/useFocusManager.js +112 -0
- package/dist/esm/components/DateField/hooks/useFocusManager.js.map +1 -0
- package/dist/esm/components/{RangeDateField → DateField}/hooks/useRangeDateFieldState.d.ts +1 -1
- package/dist/esm/components/DateField/hooks/useRangeDateFieldState.js +232 -0
- package/dist/esm/components/DateField/hooks/useRangeDateFieldState.js.map +1 -0
- package/dist/esm/components/DateField/i18n/ru.json +1 -1
- package/dist/esm/components/DateField/index.d.ts +2 -1
- package/dist/esm/components/DateField/index.js +1 -1
- package/dist/esm/components/DateField/index.js.map +1 -1
- package/dist/esm/components/DateField/types.d.ts +2 -22
- package/dist/esm/components/DateField/types.js.map +1 -1
- package/dist/esm/components/DateField/utils.d.ts +21 -34
- package/dist/esm/components/DateField/utils.js +179 -125
- package/dist/esm/components/DateField/utils.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.d.ts +3 -3
- package/dist/esm/components/DatePicker/DatePicker.js +3 -5
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/DatePicker/MobileCalendar.d.ts +1 -1
- package/dist/esm/components/DatePicker/MobileCalendar.js +3 -5
- package/dist/esm/components/DatePicker/MobileCalendar.js.map +1 -1
- package/dist/esm/components/DatePicker/StubButton.d.ts +1 -1
- package/dist/esm/components/DatePicker/hooks/datePickerStateFactory.d.ts +1 -1
- package/dist/esm/components/DatePicker/hooks/datePickerStateFactory.js +15 -6
- package/dist/esm/components/DatePicker/hooks/datePickerStateFactory.js.map +1 -1
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.d.ts +2 -2
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js +30 -18
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js.map +1 -1
- package/dist/esm/components/HiddenInput/HiddenInput.d.ts +2 -5
- package/dist/esm/components/HiddenInput/HiddenInput.js +3 -4
- package/dist/esm/components/HiddenInput/HiddenInput.js.map +1 -1
- package/dist/esm/components/RangeCalendar/RangeCalendar.d.ts +2 -2
- package/dist/esm/components/RangeCalendar/RangeCalendar.js +2 -3
- package/dist/esm/components/RangeCalendar/RangeCalendar.js.map +1 -1
- package/dist/esm/components/RangeDateField/RangeDateField.d.ts +1 -1
- package/dist/esm/components/RangeDateField/RangeDateField.js +7 -20
- package/dist/esm/components/RangeDateField/RangeDateField.js.map +1 -1
- package/dist/esm/components/RangeDateField/index.d.ts +0 -1
- package/dist/esm/components/RangeDateField/index.js +0 -1
- package/dist/esm/components/RangeDateField/index.js.map +1 -1
- package/dist/esm/components/RangeDatePicker/RangeDatePicker.d.ts +2 -1
- package/dist/esm/components/RangeDatePicker/RangeDatePicker.js +4 -6
- package/dist/esm/components/RangeDatePicker/RangeDatePicker.js.map +1 -1
- package/dist/esm/components/RangeDatePicker/hooks/useRangeDatePickerState.d.ts +1 -1
- package/dist/esm/components/RangeDatePicker/hooks/useRangeDatePickerState.js +2 -3
- package/dist/esm/components/RangeDatePicker/hooks/useRangeDatePickerState.js.map +1 -1
- package/dist/esm/components/RangeDateSelection/RangeDateSelection.d.ts +1 -1
- package/dist/esm/components/RangeDateSelection/RangeDateSelection.js +4 -5
- package/dist/esm/components/RangeDateSelection/RangeDateSelection.js.map +1 -1
- package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.d.ts +2 -1
- package/dist/esm/components/RangeDateSelection/components/Ruler/Ruler.d.ts +1 -1
- package/dist/esm/components/RangeDateSelection/components/Ruler/Ruler.js +1 -1
- package/dist/esm/components/RangeDateSelection/components/Ruler/Ruler.js.map +1 -1
- package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.js +2 -2
- package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.js.map +1 -1
- package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.d.ts +2 -1
- package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.js +12 -22
- package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.js.map +1 -1
- package/dist/esm/components/RangeDateSelection/components/Ticks/MiddleTicks.d.ts +1 -1
- package/dist/esm/components/RangeDateSelection/components/Ticks/SlitTicks.d.ts +1 -1
- package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.d.ts +2 -2
- package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.js.map +1 -1
- package/dist/esm/components/RangeDateSelection/components/Ticks/UnavialableTicks.d.ts +3 -4
- package/dist/esm/components/RangeDateSelection/components/Ticks/UnavialableTicks.js +1 -2
- package/dist/esm/components/RangeDateSelection/components/Ticks/UnavialableTicks.js.map +1 -1
- package/dist/esm/components/RangeDateSelection/hooks/useRangeDateSelectionState.js +9 -10
- package/dist/esm/components/RangeDateSelection/hooks/useRangeDateSelectionState.js.map +1 -1
- package/dist/esm/components/RangeDateSelection/utils/span.d.ts +2 -1
- package/dist/esm/components/RangeDateSelection/utils/span.js.map +1 -1
- package/dist/esm/components/RelativeDateField/RelativeDateField.d.ts +1 -1
- package/dist/esm/components/RelativeDateField/RelativeDateField.js +4 -40
- package/dist/esm/components/RelativeDateField/RelativeDateField.js.map +1 -1
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldProps.d.ts +7 -2
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldProps.js +71 -9
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldProps.js.map +1 -1
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.d.ts +2 -0
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.js +48 -34
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.js.map +1 -1
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.d.ts +1 -1
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.js +7 -4
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.js.map +1 -1
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.d.ts +1 -1
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +52 -22
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js.map +1 -1
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js +9 -10
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.d.ts +2 -1
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +13 -5
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.css +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.css.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.d.ts +2 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.js +12 -6
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.d.ts +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js +6 -8
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.d.ts +5 -3
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.js +18 -17
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.d.ts +2 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js +32 -7
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.d.ts +3 -3
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +19 -18
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.d.ts +6 -9
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js +8 -10
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.d.ts +2 -2
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.d.ts +9 -4
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.js +26 -15
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.d.ts +3 -3
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js +3 -4
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +8 -7
- package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/utils.d.ts +2 -2
- package/dist/esm/components/RelativeRangeDatePicker/utils.js +33 -9
- package/dist/esm/components/RelativeRangeDatePicker/utils.js.map +1 -1
- package/dist/esm/components/utils/constants.d.ts +2 -0
- package/dist/esm/components/utils/constants.js +6 -0
- package/dist/esm/components/utils/constants.js.map +1 -1
- package/dist/esm/components/utils/dates.d.ts +6 -1
- package/dist/esm/components/utils/dates.js +5 -1
- package/dist/esm/components/utils/dates.js.map +1 -1
- package/dist/esm/components/utils/filterDOMProps.js +1 -1
- package/dist/esm/components/utils/filterDOMProps.js.map +1 -1
- package/dist/esm/components/utils/mergeProps.js +1 -1
- package/dist/esm/components/utils/mergeProps.js.map +1 -1
- package/dist/esm/components/utils/validation/datePicker.js +1 -1
- package/dist/esm/components/utils/validation/datePicker.js.map +1 -1
- package/dist/esm/components/utils/validation/i18n/ru.json +2 -2
- package/dist/esm/components/utils/validation/relativeRangeDatePicker.d.ts +7 -11
- package/dist/esm/components/utils/validation/relativeRangeDatePicker.js +6 -1
- package/dist/esm/components/utils/validation/relativeRangeDatePicker.js.map +1 -1
- package/dist/esm/hooks/useEventHandler.js +1 -2
- package/dist/esm/hooks/useEventHandler.js.map +1 -1
- package/dist/esm/hooks/useMove.d.ts +2 -2
- package/dist/esm/hooks/useMove.js +6 -9
- package/dist/esm/hooks/useMove.js.map +1 -1
- package/dist/esm/hooks/useResizeObserver.js +1 -1
- package/dist/esm/hooks/useResizeObserver.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/package.json +34 -27
- package/dist/cjs/components/RangeDateField/hooks/useRangeDateFieldState.js +0 -224
- package/dist/cjs/components/RangeDateField/hooks/useRangeDateFieldState.js.map +0 -1
- package/dist/cjs/components/RangeDateField/utils/createPlaceholderRangeValue.d.ts +0 -5
- package/dist/cjs/components/RangeDateField/utils/createPlaceholderRangeValue.js +0 -9
- package/dist/cjs/components/RangeDateField/utils/createPlaceholderRangeValue.js.map +0 -1
- package/dist/cjs/components/RangeDateField/utils/getRangeEditableSections.d.ts +0 -5
- package/dist/cjs/components/RangeDateField/utils/getRangeEditableSections.js +0 -42
- package/dist/cjs/components/RangeDateField/utils/getRangeEditableSections.js.map +0 -1
- package/dist/cjs/components/RangeDateField/utils/index.d.ts +0 -3
- package/dist/cjs/components/RangeDateField/utils/index.js +0 -7
- package/dist/cjs/components/RangeDateField/utils/index.js.map +0 -1
- package/dist/cjs/components/RangeDateField/utils/isValidRange.d.ts +0 -3
- package/dist/cjs/components/RangeDateField/utils/isValidRange.js +0 -7
- package/dist/cjs/components/RangeDateField/utils/isValidRange.js.map +0 -1
- package/dist/esm/components/RangeDateField/hooks/useRangeDateFieldState.js +0 -220
- package/dist/esm/components/RangeDateField/hooks/useRangeDateFieldState.js.map +0 -1
- package/dist/esm/components/RangeDateField/utils/createPlaceholderRangeValue.d.ts +0 -5
- package/dist/esm/components/RangeDateField/utils/createPlaceholderRangeValue.js +0 -6
- package/dist/esm/components/RangeDateField/utils/createPlaceholderRangeValue.js.map +0 -1
- package/dist/esm/components/RangeDateField/utils/getRangeEditableSections.d.ts +0 -5
- package/dist/esm/components/RangeDateField/utils/getRangeEditableSections.js +0 -39
- package/dist/esm/components/RangeDateField/utils/getRangeEditableSections.js.map +0 -1
- package/dist/esm/components/RangeDateField/utils/index.d.ts +0 -3
- package/dist/esm/components/RangeDateField/utils/index.js +0 -4
- package/dist/esm/components/RangeDateField/utils/index.js.map +0 -1
- package/dist/esm/components/RangeDateField/utils/isValidRange.d.ts +0 -3
- package/dist/esm/components/RangeDateField/utils/isValidRange.js +0 -4
- package/dist/esm/components/RangeDateField/utils/isValidRange.js.map +0 -1
|
@@ -1,29 +1,17 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { __rest } from "tslib";
|
|
3
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
-
import
|
|
5
|
-
import { TextInput, useFocusWithin } from '@gravity-ui/uikit';
|
|
3
|
+
import { TextInput } from '@gravity-ui/uikit';
|
|
6
4
|
import { block } from "../../utils/cn.js";
|
|
7
5
|
import { HiddenInput } from "../HiddenInput/HiddenInput.js";
|
|
8
|
-
import { filterDOMProps } from "../utils/filterDOMProps.js";
|
|
9
6
|
import { useDateFieldProps } from "./hooks/useDateFieldProps.js";
|
|
10
7
|
import { useDateFieldState } from "./hooks/useDateFieldState.js";
|
|
11
8
|
import "./DateField.css";
|
|
12
9
|
const b = block('date-field');
|
|
13
|
-
export function DateField(
|
|
14
|
-
var { className } = _a, props = __rest(_a, ["className"]);
|
|
10
|
+
export function DateField({ className, ...props }) {
|
|
15
11
|
const state = useDateFieldState(props);
|
|
16
|
-
const { inputProps } = useDateFieldProps(state, props);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
setActive(isFocusWithin);
|
|
21
|
-
},
|
|
22
|
-
});
|
|
23
|
-
const DOMProps = filterDOMProps(props);
|
|
24
|
-
delete DOMProps.id;
|
|
25
|
-
return (_jsxs("div", Object.assign({}, DOMProps, { className: b(null, className), style: props.style }, focusWithinProps, { children: [_jsx(TextInput, Object.assign({}, inputProps, { value: state.isEmpty && !isActive && props.placeholder ? '' : inputProps.value })), _jsx(HiddenInput, { name: props.name, value: state.value, toStringValue: (value) => { var _a; return (_a = value === null || value === void 0 ? void 0 : value.toISOString()) !== null && _a !== void 0 ? _a : ''; }, onReset: (value) => {
|
|
26
|
-
state.setDate(value);
|
|
27
|
-
}, disabled: state.disabled, form: props.form })] })));
|
|
12
|
+
const { groupProps, inputProps } = useDateFieldProps(state, props);
|
|
13
|
+
return (_jsxs("div", { ...groupProps, className: b(null, className), style: props.style, children: [_jsx(TextInput, { ...inputProps }), _jsx(HiddenInput, { name: props.name, value: state.value, toStringValue: (value) => value?.toISOString() ?? '', onReset: (value) => {
|
|
14
|
+
state.setValue(value);
|
|
15
|
+
}, disabled: state.disabled, form: props.form })] }));
|
|
28
16
|
}
|
|
29
17
|
//# sourceMappingURL=DateField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateField.js","sourceRoot":"../../../../src","sources":["components/DateField/DateField.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"DateField.js","sourceRoot":"../../../../src","sources":["components/DateField/DateField.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAC,KAAK,EAAC,0BAAuB;AACrC,OAAO,EAAC,WAAW,EAAC,sCAAmC;AAEvD,OAAO,EAAC,iBAAiB,EAAC,qCAAkC;AAE5D,OAAO,EAAC,iBAAiB,EAAC,qCAAkC;AAE5D,yBAA0B;AAE1B,MAAM,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;AAE9B,MAAM,UAAU,SAAS,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAiB;IAC3D,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAEvC,MAAM,EAAC,UAAU,EAAE,UAAU,EAAC,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEjE,OAAO,CACH,kBAAS,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,aAClE,KAAC,SAAS,OAAK,UAAU,GAAI,EAC7B,KAAC,WAAW,IACR,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EACpD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACf,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC,EACD,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,IAAI,EAAE,KAAK,CAAC,IAAI,GAClB,IACA,CACT,CAAC;AACN,CAAC","sourcesContent":["'use client';\n\nimport {TextInput} from '@gravity-ui/uikit';\n\nimport {block} from '../../utils/cn';\nimport {HiddenInput} from '../HiddenInput/HiddenInput';\n\nimport {useDateFieldProps} from './hooks/useDateFieldProps';\nimport type {DateFieldProps} from './hooks/useDateFieldProps';\nimport {useDateFieldState} from './hooks/useDateFieldState';\n\nimport './DateField.scss';\n\nconst b = block('date-field');\n\nexport function DateField({className, ...props}: DateFieldProps) {\n const state = useDateFieldState(props);\n\n const {groupProps, inputProps} = useDateFieldProps(state, props);\n\n return (\n <div {...groupProps} className={b(null, className)} style={props.style}>\n <TextInput {...inputProps} />\n <HiddenInput\n name={props.name}\n value={state.value}\n toStringValue={(value) => value?.toISOString() ?? ''}\n onReset={(value) => {\n state.setValue(value);\n }}\n disabled={state.disabled}\n form={props.form}\n />\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { DateTime } from '@gravity-ui/date-utils';
|
|
2
|
+
import type { AvailableSections } from "./types.js";
|
|
3
|
+
declare const dateFields: readonly ["year", "quarter", "month", "day", "weekday", "hour", "minute", "second", "dayPeriod"];
|
|
4
|
+
type Field = (typeof dateFields)[number];
|
|
5
|
+
export declare class IncompleteDate {
|
|
6
|
+
year: number | null;
|
|
7
|
+
month: number | null;
|
|
8
|
+
day: number | null;
|
|
9
|
+
weekday: number | null;
|
|
10
|
+
dayPeriod: number | null;
|
|
11
|
+
hour: number | null;
|
|
12
|
+
minute: number | null;
|
|
13
|
+
second: number | null;
|
|
14
|
+
constructor(date?: DateTime | null);
|
|
15
|
+
get quarter(): number | null;
|
|
16
|
+
set quarter(v: number | null);
|
|
17
|
+
copy(): IncompleteDate;
|
|
18
|
+
isComplete(availableUnits: AvailableSections): boolean;
|
|
19
|
+
validate(date: DateTime, availableUnits: AvailableSections): boolean;
|
|
20
|
+
isCleared(availableUnits: AvailableSections): boolean;
|
|
21
|
+
set(field: Field, value: number): IncompleteDate;
|
|
22
|
+
clear(field: Field): IncompleteDate;
|
|
23
|
+
toDateTime(baseValue: DateTime, { setDate, setTime }: {
|
|
24
|
+
setDate: boolean;
|
|
25
|
+
setTime: boolean;
|
|
26
|
+
}): DateTime;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { getDurationUnitFromSectionType } from "./utils.js";
|
|
2
|
+
const dateFields = [
|
|
3
|
+
'year',
|
|
4
|
+
'quarter',
|
|
5
|
+
'month',
|
|
6
|
+
'day',
|
|
7
|
+
'weekday',
|
|
8
|
+
'hour',
|
|
9
|
+
'minute',
|
|
10
|
+
'second',
|
|
11
|
+
'dayPeriod',
|
|
12
|
+
];
|
|
13
|
+
export class IncompleteDate {
|
|
14
|
+
year;
|
|
15
|
+
month;
|
|
16
|
+
day;
|
|
17
|
+
weekday;
|
|
18
|
+
dayPeriod;
|
|
19
|
+
hour;
|
|
20
|
+
minute;
|
|
21
|
+
second;
|
|
22
|
+
constructor(date) {
|
|
23
|
+
this.year = date?.year() ?? null;
|
|
24
|
+
this.month = date ? date.month() + 1 : null;
|
|
25
|
+
this.day = date?.date() ?? null;
|
|
26
|
+
this.weekday = date?.day() ?? null;
|
|
27
|
+
this.hour = date?.hour() ?? null;
|
|
28
|
+
this.minute = date?.minute() ?? null;
|
|
29
|
+
this.second = date?.second() ?? null;
|
|
30
|
+
if (date) {
|
|
31
|
+
this.dayPeriod = date.hour() >= 12 ? 1 : 0;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.dayPeriod = null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
get quarter() {
|
|
38
|
+
return this.month === null ? null : Math.ceil(this.month / 3);
|
|
39
|
+
}
|
|
40
|
+
set quarter(v) {
|
|
41
|
+
this.month =
|
|
42
|
+
v === null
|
|
43
|
+
? null
|
|
44
|
+
: (v - 1) * 3 + (this.month === null ? 1 : ((this.month - 1) % 3) + 13);
|
|
45
|
+
}
|
|
46
|
+
copy() {
|
|
47
|
+
const copy = new IncompleteDate();
|
|
48
|
+
for (const field of dateFields) {
|
|
49
|
+
copy[field] = this[field];
|
|
50
|
+
}
|
|
51
|
+
return copy;
|
|
52
|
+
}
|
|
53
|
+
isComplete(availableUnits) {
|
|
54
|
+
return dateFields.every((field) => !availableUnits[field] || this[field] !== null);
|
|
55
|
+
}
|
|
56
|
+
validate(date, availableUnits) {
|
|
57
|
+
return dateFields.every((field) => {
|
|
58
|
+
if (!availableUnits[field]) {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
if (field === 'dayPeriod') {
|
|
62
|
+
return this.dayPeriod === (date.hour() >= 12 ? 1 : 0);
|
|
63
|
+
}
|
|
64
|
+
if (field === 'month') {
|
|
65
|
+
return date.month() + 1 === this.month;
|
|
66
|
+
}
|
|
67
|
+
return date[getDurationUnitFromSectionType(field)]() === this[field];
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
isCleared(availableUnits) {
|
|
71
|
+
return dateFields.every((field) => !availableUnits[field] || this[field] === null);
|
|
72
|
+
}
|
|
73
|
+
set(field, value) {
|
|
74
|
+
const copy = this.copy();
|
|
75
|
+
copy[field] = value;
|
|
76
|
+
if (field === 'hour') {
|
|
77
|
+
copy.dayPeriod = (copy.hour ?? 0) >= 12 ? 1 : 0;
|
|
78
|
+
}
|
|
79
|
+
return copy;
|
|
80
|
+
}
|
|
81
|
+
clear(field) {
|
|
82
|
+
const copy = this.copy();
|
|
83
|
+
copy[field] = null;
|
|
84
|
+
return copy;
|
|
85
|
+
}
|
|
86
|
+
toDateTime(baseValue, { setDate, setTime }) {
|
|
87
|
+
let nextValue = baseValue;
|
|
88
|
+
if (setDate) {
|
|
89
|
+
nextValue = nextValue
|
|
90
|
+
.set({
|
|
91
|
+
year: this.year ?? baseValue.year(),
|
|
92
|
+
month: 0, // set January to not overflow day value
|
|
93
|
+
date: this.day ?? baseValue.date(),
|
|
94
|
+
})
|
|
95
|
+
.set({ month: this.month === null ? baseValue.month() : this.month - 1 });
|
|
96
|
+
if (this.day === null && this.weekday !== null) {
|
|
97
|
+
nextValue = nextValue.set({ day: this.weekday });
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (setTime) {
|
|
101
|
+
nextValue = nextValue
|
|
102
|
+
.set({
|
|
103
|
+
hour: this.hour ?? baseValue.hour(),
|
|
104
|
+
minute: this.minute ?? baseValue.minute(),
|
|
105
|
+
second: this.second ?? baseValue.second(),
|
|
106
|
+
})
|
|
107
|
+
.timeZone(nextValue.timeZone());
|
|
108
|
+
}
|
|
109
|
+
return nextValue;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=IncompleteDate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IncompleteDate.js","sourceRoot":"../../../../src","sources":["components/DateField/IncompleteDate.ts"],"names":[],"mappings":"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","sourcesContent":["import type {DateTime} from '@gravity-ui/date-utils';\n\nimport type {AvailableSections} from './types';\nimport {getDurationUnitFromSectionType} from './utils';\n\nconst dateFields = [\n 'year',\n 'quarter',\n 'month',\n 'day',\n 'weekday',\n 'hour',\n 'minute',\n 'second',\n 'dayPeriod',\n] as const;\n\ntype Field = (typeof dateFields)[number];\n\nexport class IncompleteDate {\n year: number | null;\n month: number | null;\n day: number | null;\n weekday: number | null;\n dayPeriod: number | null;\n hour: number | null;\n minute: number | null;\n second: number | null;\n\n constructor(date?: DateTime | null) {\n this.year = date?.year() ?? null;\n this.month = date ? date.month() + 1 : null;\n this.day = date?.date() ?? null;\n this.weekday = date?.day() ?? null;\n this.hour = date?.hour() ?? null;\n this.minute = date?.minute() ?? null;\n this.second = date?.second() ?? null;\n if (date) {\n this.dayPeriod = date.hour() >= 12 ? 1 : 0;\n } else {\n this.dayPeriod = null;\n }\n }\n\n get quarter() {\n return this.month === null ? null : Math.ceil(this.month / 3);\n }\n\n set quarter(v: number | null) {\n this.month =\n v === null\n ? null\n : (v - 1) * 3 + (this.month === null ? 1 : ((this.month - 1) % 3) + 13);\n }\n\n copy() {\n const copy = new IncompleteDate();\n for (const field of dateFields) {\n copy[field] = this[field];\n }\n return copy;\n }\n\n isComplete(availableUnits: AvailableSections): boolean {\n return dateFields.every((field) => !availableUnits[field] || this[field] !== null);\n }\n\n validate(date: DateTime, availableUnits: AvailableSections): boolean {\n return dateFields.every((field) => {\n if (!availableUnits[field]) {\n return true;\n }\n\n if (field === 'dayPeriod') {\n return this.dayPeriod === (date.hour() >= 12 ? 1 : 0);\n }\n\n if (field === 'month') {\n return date.month() + 1 === this.month;\n }\n\n return date[getDurationUnitFromSectionType(field)]() === this[field];\n });\n }\n\n isCleared(availableUnits: AvailableSections): boolean {\n return dateFields.every((field) => !availableUnits[field] || this[field] === null);\n }\n\n set(field: Field, value: number): IncompleteDate {\n const copy = this.copy();\n copy[field] = value;\n if (field === 'hour') {\n copy.dayPeriod = (copy.hour ?? 0) >= 12 ? 1 : 0;\n }\n\n return copy;\n }\n\n clear(field: Field): IncompleteDate {\n const copy = this.copy();\n copy[field] = null;\n return copy;\n }\n\n toDateTime(\n baseValue: DateTime,\n {setDate, setTime}: {setDate: boolean; setTime: boolean},\n ): DateTime {\n let nextValue = baseValue;\n if (setDate) {\n nextValue = nextValue\n .set({\n year: this.year ?? baseValue.year(),\n month: 0, // set January to not overflow day value\n date: this.day ?? baseValue.date(),\n })\n .set({month: this.month === null ? baseValue.month() : this.month - 1});\n if (this.day === null && this.weekday !== null) {\n nextValue = nextValue.set({day: this.weekday});\n }\n }\n if (setTime) {\n nextValue = nextValue\n .set({\n hour: this.hour ?? baseValue.hour(),\n minute: this.minute ?? baseValue.minute(),\n second: this.second ?? baseValue.second(),\n })\n .timeZone(nextValue.timeZone());\n }\n\n return nextValue;\n }\n}\n"]}
|
|
@@ -1,35 +1,24 @@
|
|
|
1
1
|
import type { DateTime } from '@gravity-ui/date-utils';
|
|
2
2
|
import type { ValidationState } from "../../types/index.js";
|
|
3
|
+
import type { IncompleteDate } from "../IncompleteDate.js";
|
|
3
4
|
import type { DateFieldSection, FormatInfo } from "../types.js";
|
|
4
|
-
|
|
5
|
+
interface BaseDateFieldStateOptions<T = DateTime, V = IncompleteDate> {
|
|
5
6
|
value: T | null;
|
|
6
7
|
displayValue: T;
|
|
7
|
-
placeholderValue?: DateTime;
|
|
8
|
-
timeZone: string;
|
|
9
8
|
validationState?: ValidationState;
|
|
10
9
|
editableSections: DateFieldSection[];
|
|
11
10
|
formatInfo: FormatInfo;
|
|
12
11
|
readOnly?: boolean;
|
|
13
12
|
disabled?: boolean;
|
|
14
|
-
selectedSectionIndexes: {
|
|
15
|
-
startIndex: number;
|
|
16
|
-
endIndex: number;
|
|
17
|
-
} | null;
|
|
18
|
-
selectedSections: number | 'all';
|
|
19
13
|
isEmpty: boolean;
|
|
20
|
-
|
|
21
|
-
flushValidSection: (sectionIndex: number) => void;
|
|
22
|
-
setSelectedSections: (position: number | 'all') => void;
|
|
23
|
-
setValue: (value: T) => void;
|
|
24
|
-
setDate: (value: T | null) => void;
|
|
14
|
+
setValue: (value: T | V | null) => void;
|
|
25
15
|
adjustSection: (sectionIndex: number, amount: number) => void;
|
|
26
16
|
setSection: (sectionIndex: number, amount: number) => void;
|
|
27
|
-
|
|
28
|
-
setSectionValue: (sectionIndex: number, currentValue: DateTime) => void;
|
|
29
|
-
createPlaceholder: () => T;
|
|
17
|
+
clearSection: (sectionIndex: number) => void;
|
|
30
18
|
setValueFromString: (str: string) => boolean;
|
|
31
|
-
|
|
32
|
-
|
|
19
|
+
confirmPlaceholder: () => void;
|
|
20
|
+
}
|
|
21
|
+
export interface DateFieldState<T = DateTime> {
|
|
33
22
|
/** The current field value. */
|
|
34
23
|
value: T | null;
|
|
35
24
|
/** Is no part of value is filled. */
|
|
@@ -37,72 +26,49 @@ export type DateFieldState<T = DateTime> = {
|
|
|
37
26
|
/** The current used value. value or placeholderValue */
|
|
38
27
|
displayValue: T;
|
|
39
28
|
/** Sets the field's value. */
|
|
40
|
-
setValue: (value: T) => void;
|
|
41
|
-
/**
|
|
42
|
-
|
|
43
|
-
/** Formatted value */
|
|
44
|
-
text: string;
|
|
29
|
+
setValue: (value: T | null) => void;
|
|
30
|
+
/** Updates the remaining unfilled sections with the placeholder value. */
|
|
31
|
+
confirmPlaceholder: () => void;
|
|
45
32
|
/** Whether the field is read only. */
|
|
46
33
|
readOnly?: boolean;
|
|
47
34
|
/** Whether the field is disabled. */
|
|
48
35
|
disabled?: boolean;
|
|
49
|
-
/** A list of
|
|
36
|
+
/** A list of sections for the current value. */
|
|
50
37
|
sections: DateFieldSection[];
|
|
51
38
|
/** Some info about available sections */
|
|
52
39
|
formatInfo: FormatInfo;
|
|
53
|
-
/**
|
|
54
|
-
* @deprecated use formatInfo.hasDate instead.
|
|
55
|
-
* Whether the the format is containing date parts
|
|
56
|
-
*/
|
|
57
|
-
hasDate: boolean;
|
|
58
|
-
/**
|
|
59
|
-
* @deprecated use formatInfo.hasTime instead.
|
|
60
|
-
* Whether the the format is containing time parts
|
|
61
|
-
*/
|
|
62
|
-
hasTime: boolean;
|
|
63
|
-
/** Selected sections */
|
|
64
|
-
selectedSectionIndexes: {
|
|
65
|
-
startIndex: number;
|
|
66
|
-
endIndex: number;
|
|
67
|
-
} | null;
|
|
68
40
|
/** The current validation state of the date field, based on the `validationState`, `minValue`, and `maxValue` props. */
|
|
69
41
|
validationState?: ValidationState;
|
|
70
|
-
/**
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
|
|
74
|
-
/** Focuses the next segment if present */
|
|
75
|
-
focusNextSection: () => void;
|
|
76
|
-
/** Focuses the previous segment if present */
|
|
77
|
-
focusPreviousSection: () => void;
|
|
78
|
-
/** Focuses the first segment */
|
|
79
|
-
focusFirstSection: () => void;
|
|
80
|
-
/** Focuses the last segment */
|
|
81
|
-
focusLastSection: () => void;
|
|
82
|
-
/** Increments the currently selected segment. Upon reaching the minimum or maximum value, the value wraps around to the opposite limit. */
|
|
83
|
-
increment: () => void;
|
|
84
|
-
/** Decrements the currently selected segment. Upon reaching the minimum or maximum value, the value wraps around to the opposite limit. */
|
|
85
|
-
decrement: () => void;
|
|
42
|
+
/** Increments the currently selected section. Upon reaching the minimum or maximum value, the value wraps around to the opposite limit. */
|
|
43
|
+
increment: (sectionIndex: number) => void;
|
|
44
|
+
/** Decrements the currently selected section. Upon reaching the minimum or maximum value, the value wraps around to the opposite limit. */
|
|
45
|
+
decrement: (sectionIndex: number) => void;
|
|
86
46
|
/**
|
|
87
|
-
* Increments the currently selected
|
|
47
|
+
* Increments the currently selected section by a larger amount, rounding it to the nearest increment.
|
|
88
48
|
* The amount to increment by depends on the field, for example 15 minutes, 7 days, and 5 years.
|
|
89
49
|
* Upon reaching the minimum or maximum value, the value wraps around to the opposite limit.
|
|
90
50
|
*/
|
|
91
|
-
incrementPage: () => void;
|
|
51
|
+
incrementPage: (sectionIndex: number) => void;
|
|
92
52
|
/**
|
|
93
|
-
* Decrements the currently selected
|
|
53
|
+
* Decrements the currently selected section by a larger amount, rounding it to the nearest decrement.
|
|
94
54
|
* The amount to increment by depends on the field, for example 15 minutes, 7 days, and 5 years.
|
|
95
55
|
* Upon reaching the minimum or maximum value, the value wraps around to the opposite limit.
|
|
96
56
|
*/
|
|
97
|
-
decrementPage: () => void;
|
|
98
|
-
incrementToMax: () => void;
|
|
99
|
-
decrementToMin: () => void;
|
|
100
|
-
/** Clears the value of the currently selected
|
|
101
|
-
clearSection: () => void;
|
|
102
|
-
/** Clears all
|
|
57
|
+
decrementPage: (sectionIndex: number) => void;
|
|
58
|
+
incrementToMax: (sectionIndex: number) => void;
|
|
59
|
+
decrementToMin: (sectionIndex: number) => void;
|
|
60
|
+
/** Clears the value of the currently selected section, reverting it to the placeholder. */
|
|
61
|
+
clearSection: (sectionIndex: number) => void;
|
|
62
|
+
/** Clears all sections, reverting them to the placeholder. */
|
|
103
63
|
clearAll: () => void;
|
|
104
|
-
/**
|
|
105
|
-
|
|
64
|
+
/** Sets the value of the given section. */
|
|
65
|
+
setSection: (sectionIndex: number, amount: number) => void;
|
|
66
|
+
/** Tries to set value from str. Supports date in input format or ISO */
|
|
106
67
|
setValueFromString: (str: string) => boolean;
|
|
107
|
-
|
|
108
|
-
|
|
68
|
+
/** Is date filed active now */
|
|
69
|
+
isActive: boolean;
|
|
70
|
+
/** Sets active state of the date field */
|
|
71
|
+
setActive: (isActive: boolean) => void;
|
|
72
|
+
}
|
|
73
|
+
export declare function useBaseDateFieldState<T = DateTime, V = IncompleteDate>(props: BaseDateFieldStateOptions<T, V>): DateFieldState<T>;
|
|
74
|
+
export {};
|