@gravity-ui/date-components 2.11.0 → 2.12.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/dist/cjs/components/Calendar/Calendar.d.ts +4 -4
- package/dist/cjs/components/Calendar/Calendar.js +5 -6
- package/dist/cjs/components/Calendar/Calendar.js.map +1 -0
- package/dist/cjs/components/Calendar/index.d.ts +8 -8
- package/dist/cjs/components/Calendar/index.js +9 -21
- package/dist/cjs/components/Calendar/index.js.map +1 -0
- package/dist/cjs/components/CalendarView/Calendar.css +2 -1
- package/dist/cjs/components/CalendarView/Calendar.css.map +1 -0
- package/dist/cjs/components/CalendarView/CalendarView.d.ts +4 -4
- package/dist/cjs/components/CalendarView/CalendarView.js +9 -10
- package/dist/cjs/components/CalendarView/CalendarView.js.map +1 -0
- package/dist/cjs/components/CalendarView/hooks/types.d.ts +1 -1
- package/dist/cjs/components/CalendarView/hooks/types.js +1 -0
- package/dist/cjs/components/CalendarView/hooks/types.js.map +1 -0
- package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.d.ts +1 -1
- package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.js +4 -5
- package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.js.map +1 -0
- package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.d.ts +1 -1
- package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.js +2 -1
- package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.js.map +1 -0
- package/dist/cjs/components/CalendarView/hooks/useCalendarProps.d.ts +2 -2
- package/dist/cjs/components/CalendarView/hooks/useCalendarProps.js +5 -6
- package/dist/cjs/components/CalendarView/hooks/useCalendarProps.js.map +1 -0
- package/dist/cjs/components/CalendarView/hooks/useCalendarState.d.ts +3 -3
- package/dist/cjs/components/CalendarView/hooks/useCalendarState.js +6 -7
- package/dist/cjs/components/CalendarView/hooks/useCalendarState.js.map +1 -0
- package/dist/cjs/components/CalendarView/hooks/useRangeCalendarState.d.ts +4 -4
- package/dist/cjs/components/CalendarView/hooks/useRangeCalendarState.js +4 -3
- package/dist/cjs/components/CalendarView/hooks/useRangeCalendarState.js.map +1 -0
- package/dist/cjs/components/CalendarView/i18n/index.js +5 -6
- package/dist/cjs/components/CalendarView/i18n/index.js.map +1 -0
- package/dist/cjs/components/CalendarView/utils.d.ts +1 -1
- package/dist/cjs/components/CalendarView/utils.js +1 -0
- package/dist/cjs/components/CalendarView/utils.js.map +1 -0
- package/dist/cjs/components/DateField/DateField.css +2 -1
- package/dist/cjs/components/DateField/DateField.css.map +1 -0
- package/dist/cjs/components/DateField/DateField.d.ts +2 -2
- package/dist/cjs/components/DateField/DateField.js +5 -4
- package/dist/cjs/components/DateField/DateField.js.map +1 -0
- package/dist/cjs/components/DateField/hooks/useBaseDateFieldState.d.ts +13 -4
- package/dist/cjs/components/DateField/hooks/useBaseDateFieldState.js +11 -21
- package/dist/cjs/components/DateField/hooks/useBaseDateFieldState.js.map +1 -0
- package/dist/cjs/components/DateField/hooks/useDateFieldProps.d.ts +2 -2
- package/dist/cjs/components/DateField/hooks/useDateFieldProps.js +4 -5
- package/dist/cjs/components/DateField/hooks/useDateFieldProps.js.map +1 -0
- package/dist/cjs/components/DateField/hooks/useDateFieldState.d.ts +2 -2
- package/dist/cjs/components/DateField/hooks/useDateFieldState.js +12 -19
- package/dist/cjs/components/DateField/hooks/useDateFieldState.js.map +1 -0
- package/dist/cjs/components/DateField/i18n/en.json +1 -0
- package/dist/cjs/components/DateField/i18n/index.d.ts +1 -1
- package/dist/cjs/components/DateField/i18n/index.js +5 -6
- package/dist/cjs/components/DateField/i18n/index.js.map +1 -0
- package/dist/cjs/components/DateField/i18n/ru.json +1 -0
- package/dist/cjs/components/DateField/index.d.ts +4 -4
- package/dist/cjs/components/DateField/index.js +6 -18
- package/dist/cjs/components/DateField/index.js.map +1 -0
- package/dist/cjs/components/DateField/types.d.ts +9 -1
- package/dist/cjs/components/DateField/types.js +1 -0
- package/dist/cjs/components/DateField/types.js.map +1 -0
- package/dist/cjs/components/DateField/utils.d.ts +22 -6
- package/dist/cjs/components/DateField/utils.js +88 -6
- package/dist/cjs/components/DateField/utils.js.map +1 -0
- package/dist/cjs/components/DatePicker/DatePicker.css +2 -1
- package/dist/cjs/components/DatePicker/DatePicker.css.map +1 -0
- package/dist/cjs/components/DatePicker/DatePicker.d.ts +4 -4
- package/dist/cjs/components/DatePicker/DatePicker.js +11 -10
- package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -0
- package/dist/cjs/components/DatePicker/MobileCalendar.css +2 -1
- package/dist/cjs/components/DatePicker/MobileCalendar.css.map +1 -0
- package/dist/cjs/components/DatePicker/MobileCalendar.d.ts +3 -3
- package/dist/cjs/components/DatePicker/MobileCalendar.js +7 -6
- package/dist/cjs/components/DatePicker/MobileCalendar.js.map +1 -0
- package/dist/cjs/components/DatePicker/StubButton.css +2 -1
- package/dist/cjs/components/DatePicker/StubButton.css.map +1 -0
- package/dist/cjs/components/DatePicker/StubButton.d.ts +1 -1
- package/dist/cjs/components/DatePicker/StubButton.js +2 -1
- package/dist/cjs/components/DatePicker/StubButton.js.map +1 -0
- package/dist/cjs/components/DatePicker/hooks/datePickerStateFactory.d.ts +15 -5
- package/dist/cjs/components/DatePicker/hooks/datePickerStateFactory.js +21 -20
- package/dist/cjs/components/DatePicker/hooks/datePickerStateFactory.js.map +1 -0
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.d.ts +5 -5
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js +10 -7
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js.map +1 -0
- package/dist/cjs/components/DatePicker/hooks/useDatePickerState.d.ts +3 -3
- package/dist/cjs/components/DatePicker/hooks/useDatePickerState.js +8 -5
- package/dist/cjs/components/DatePicker/hooks/useDatePickerState.js.map +1 -0
- package/dist/cjs/components/DatePicker/i18n/index.js +5 -6
- package/dist/cjs/components/DatePicker/i18n/index.js.map +1 -0
- package/dist/cjs/components/DatePicker/index.d.ts +3 -3
- package/dist/cjs/components/DatePicker/index.js +5 -17
- package/dist/cjs/components/DatePicker/index.js.map +1 -0
- package/dist/cjs/components/DatePicker/utils/cn.js +2 -1
- package/dist/cjs/components/DatePicker/utils/cn.js.map +1 -0
- package/dist/cjs/components/DatePicker/utils/getCalendarModes.d.ts +5 -0
- package/dist/cjs/components/DatePicker/utils/getCalendarModes.js +21 -0
- package/dist/cjs/components/DatePicker/utils/getCalendarModes.js.map +1 -0
- package/dist/cjs/components/DatePicker/utils/getDateTimeValue.d.ts +1 -1
- package/dist/cjs/components/DatePicker/utils/getDateTimeValue.js +1 -0
- package/dist/cjs/components/DatePicker/utils/getDateTimeValue.js.map +1 -0
- package/dist/cjs/components/DatePicker/utils/index.d.ts +3 -2
- package/dist/cjs/components/DatePicker/utils/index.js +5 -16
- package/dist/cjs/components/DatePicker/utils/index.js.map +1 -0
- package/dist/cjs/components/HiddenInput/HiddenInput.js +3 -4
- package/dist/cjs/components/HiddenInput/HiddenInput.js.map +1 -0
- package/dist/cjs/components/RangeCalendar/RangeCalendar.d.ts +4 -4
- package/dist/cjs/components/RangeCalendar/RangeCalendar.js +5 -6
- package/dist/cjs/components/RangeCalendar/RangeCalendar.js.map +1 -0
- package/dist/cjs/components/RangeCalendar/index.d.ts +1 -1
- package/dist/cjs/components/RangeCalendar/index.js +3 -15
- package/dist/cjs/components/RangeCalendar/index.js.map +1 -0
- package/dist/cjs/components/RangeDateField/RangeDateField.css +2 -1
- package/dist/cjs/components/RangeDateField/RangeDateField.css.map +1 -0
- package/dist/cjs/components/RangeDateField/RangeDateField.d.ts +3 -3
- package/dist/cjs/components/RangeDateField/RangeDateField.js +5 -4
- package/dist/cjs/components/RangeDateField/RangeDateField.js.map +1 -0
- package/dist/cjs/components/RangeDateField/hooks/useRangeDateFieldState.d.ts +3 -3
- package/dist/cjs/components/RangeDateField/hooks/useRangeDateFieldState.js +16 -25
- package/dist/cjs/components/RangeDateField/hooks/useRangeDateFieldState.js.map +1 -0
- package/dist/cjs/components/RangeDateField/index.d.ts +2 -2
- package/dist/cjs/components/RangeDateField/index.js +4 -16
- package/dist/cjs/components/RangeDateField/index.js.map +1 -0
- package/dist/cjs/components/RangeDateField/utils/createPlaceholderRangeValue.d.ts +1 -1
- package/dist/cjs/components/RangeDateField/utils/createPlaceholderRangeValue.js +3 -2
- package/dist/cjs/components/RangeDateField/utils/createPlaceholderRangeValue.js.map +1 -0
- package/dist/cjs/components/RangeDateField/utils/getRangeEditableSections.d.ts +4 -4
- package/dist/cjs/components/RangeDateField/utils/getRangeEditableSections.js +2 -1
- package/dist/cjs/components/RangeDateField/utils/getRangeEditableSections.js.map +1 -0
- package/dist/cjs/components/RangeDateField/utils/index.d.ts +3 -3
- package/dist/cjs/components/RangeDateField/utils/index.js +5 -17
- package/dist/cjs/components/RangeDateField/utils/index.js.map +1 -0
- package/dist/cjs/components/RangeDateField/utils/isValidRange.d.ts +1 -1
- package/dist/cjs/components/RangeDateField/utils/isValidRange.js +1 -0
- package/dist/cjs/components/RangeDateField/utils/isValidRange.js.map +1 -0
- package/dist/cjs/components/RangeDatePicker/RangeDatePicker.css +2 -1
- package/dist/cjs/components/RangeDatePicker/RangeDatePicker.css.map +1 -0
- package/dist/cjs/components/RangeDatePicker/RangeDatePicker.d.ts +3 -3
- package/dist/cjs/components/RangeDatePicker/RangeDatePicker.js +10 -9
- package/dist/cjs/components/RangeDatePicker/RangeDatePicker.js.map +1 -0
- package/dist/cjs/components/RangeDatePicker/hooks/useRangeDatePickerState.d.ts +7 -4
- package/dist/cjs/components/RangeDatePicker/hooks/useRangeDatePickerState.js +15 -7
- package/dist/cjs/components/RangeDatePicker/hooks/useRangeDatePickerState.js.map +1 -0
- package/dist/cjs/components/RangeDatePicker/index.d.ts +2 -2
- package/dist/cjs/components/RangeDatePicker/index.js +4 -16
- package/dist/cjs/components/RangeDatePicker/index.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/RangeDateSelection.css +2 -1
- package/dist/cjs/components/RangeDateSelection/RangeDateSelection.css.map +1 -0
- package/dist/cjs/components/RangeDateSelection/RangeDateSelection.d.ts +4 -4
- package/dist/cjs/components/RangeDateSelection/RangeDateSelection.js +9 -10
- package/dist/cjs/components/RangeDateSelection/RangeDateSelection.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.css +2 -1
- package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.css.map +1 -0
- package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.d.ts +1 -1
- package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.js +6 -7
- package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/components/Ruler/Ruler.d.ts +2 -2
- package/dist/cjs/components/RangeDateSelection/components/Ruler/Ruler.js +12 -13
- package/dist/cjs/components/RangeDateSelection/components/Ruler/Ruler.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.css +2 -1
- package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.css.map +1 -0
- package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.d.ts +2 -2
- package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.js +5 -6
- package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.css +2 -1
- package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.css.map +1 -0
- package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.d.ts +3 -3
- package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.js +6 -5
- package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/components/Ticks/MiddleTicks.js +3 -2
- package/dist/cjs/components/RangeDateSelection/components/Ticks/MiddleTicks.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/components/Ticks/SlitTicks.js +3 -2
- package/dist/cjs/components/RangeDateSelection/components/Ticks/SlitTicks.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.css +2 -1
- package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.css.map +1 -0
- package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.d.ts +3 -3
- package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.js +7 -8
- package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/components/Ticks/UnavialableTicks.d.ts +3 -3
- package/dist/cjs/components/RangeDateSelection/components/Ticks/UnavialableTicks.js +6 -7
- package/dist/cjs/components/RangeDateSelection/components/Ticks/UnavialableTicks.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/components/Ticks/utils.d.ts +1 -1
- package/dist/cjs/components/RangeDateSelection/components/Ticks/utils.js +3 -2
- package/dist/cjs/components/RangeDateSelection/components/Ticks/utils.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/hooks/useRangeDateSelectionState.d.ts +1 -1
- package/dist/cjs/components/RangeDateSelection/hooks/useRangeDateSelectionState.js +7 -8
- package/dist/cjs/components/RangeDateSelection/hooks/useRangeDateSelectionState.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/i18n/index.js +5 -6
- package/dist/cjs/components/RangeDateSelection/i18n/index.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/index.d.ts +3 -3
- package/dist/cjs/components/RangeDateSelection/index.js +4 -16
- package/dist/cjs/components/RangeDateSelection/index.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/utils/date.js +2 -1
- package/dist/cjs/components/RangeDateSelection/utils/date.js.map +1 -0
- package/dist/cjs/components/RangeDateSelection/utils/span.js +1 -0
- package/dist/cjs/components/RangeDateSelection/utils/span.js.map +1 -0
- package/dist/cjs/components/RelativeDateField/RelativeDateField.css +2 -1
- package/dist/cjs/components/RelativeDateField/RelativeDateField.css.map +1 -0
- package/dist/cjs/components/RelativeDateField/RelativeDateField.d.ts +3 -3
- package/dist/cjs/components/RelativeDateField/RelativeDateField.js +9 -10
- package/dist/cjs/components/RelativeDateField/RelativeDateField.js.map +1 -0
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldProps.d.ts +4 -4
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldProps.js +3 -4
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldProps.js.map +1 -0
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.d.ts +1 -1
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.js +3 -4
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.js.map +1 -0
- package/dist/cjs/components/RelativeDateField/index.d.ts +3 -3
- package/dist/cjs/components/RelativeDateField/index.js +5 -17
- package/dist/cjs/components/RelativeDateField/index.js.map +1 -0
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.css +2 -1
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.css.map +1 -0
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.d.ts +4 -4
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.js +13 -14
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.js.map +1 -0
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.d.ts +4 -4
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +10 -6
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js.map +1 -0
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerState.d.ts +3 -3
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js +16 -9
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js.map +1 -0
- package/dist/cjs/components/RelativeDatePicker/i18n/index.js +5 -6
- package/dist/cjs/components/RelativeDatePicker/i18n/index.js.map +1 -0
- package/dist/cjs/components/RelativeDatePicker/index.d.ts +3 -3
- package/dist/cjs/components/RelativeDatePicker/index.js +5 -17
- package/dist/cjs/components/RelativeDatePicker/index.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.css +2 -1
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.css.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.d.ts +2 -2
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +8 -9
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.css +2 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.css.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.d.ts +3 -3
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.js +7 -8
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/i18n/index.js +5 -6
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/i18n/index.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css +2 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.d.ts +6 -5
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js +10 -9
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.js +5 -6
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.d.ts +5 -5
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +5 -6
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.css +2 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.css.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.d.ts +3 -3
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js +6 -7
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css +2 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.d.ts +2 -2
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js +6 -7
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js +2 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/i18n/index.js +5 -6
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/i18n/index.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.d.ts +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.js +3 -2
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.css +2 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.css.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.d.ts +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js +4 -3
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/i18n/index.js +5 -6
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/i18n/index.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts +2 -2
- package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +5 -6
- package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/i18n/index.js +5 -6
- package/dist/cjs/components/RelativeRangeDatePicker/i18n/index.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/index.d.ts +9 -9
- package/dist/cjs/components/RelativeRangeDatePicker/index.js +8 -20
- package/dist/cjs/components/RelativeRangeDatePicker/index.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/types.d.ts +5 -5
- package/dist/cjs/components/RelativeRangeDatePicker/types.js +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/types.js.map +1 -0
- package/dist/cjs/components/RelativeRangeDatePicker/utils.d.ts +3 -3
- package/dist/cjs/components/RelativeRangeDatePicker/utils.js +2 -1
- package/dist/cjs/components/RelativeRangeDatePicker/utils.js.map +1 -0
- package/dist/cjs/components/index.d.ts +11 -11
- package/dist/cjs/components/index.js +12 -24
- package/dist/cjs/components/index.js.map +1 -0
- package/dist/cjs/components/mixins.css +2 -0
- package/dist/cjs/components/mixins.css.map +1 -0
- package/dist/cjs/components/types/datePicker.d.ts +1 -1
- package/dist/cjs/components/types/datePicker.js +1 -0
- package/dist/cjs/components/types/datePicker.js.map +1 -0
- package/dist/cjs/components/types/events.js +1 -0
- package/dist/cjs/components/types/events.js.map +1 -0
- package/dist/cjs/components/types/index.d.ts +4 -4
- package/dist/cjs/components/types/index.js +1 -0
- package/dist/cjs/components/types/index.js.map +1 -0
- package/dist/cjs/components/types/inputs.js +1 -0
- package/dist/cjs/components/types/inputs.js.map +1 -0
- package/dist/cjs/components/types/style.js +1 -0
- package/dist/cjs/components/types/style.js.map +1 -0
- package/dist/cjs/components/utils/constants.js +1 -0
- package/dist/cjs/components/utils/constants.js.map +1 -0
- package/dist/cjs/components/utils/dates.js +2 -1
- package/dist/cjs/components/utils/dates.js.map +1 -0
- package/dist/cjs/components/utils/filterDOMProps.d.ts +1 -1
- package/dist/cjs/components/utils/filterDOMProps.js +1 -0
- package/dist/cjs/components/utils/filterDOMProps.js.map +1 -0
- package/dist/cjs/components/utils/getButtonSizeForInput.js +1 -0
- package/dist/cjs/components/utils/getButtonSizeForInput.js.map +1 -0
- package/dist/cjs/components/utils/mergeProps.js +1 -0
- package/dist/cjs/components/utils/mergeProps.js.map +1 -0
- package/dist/cjs/components/utils/useDefaultTimeZone.js +3 -4
- package/dist/cjs/components/utils/useDefaultTimeZone.js.map +1 -0
- package/dist/cjs/components/utils/validation/datePicker.js +2 -1
- package/dist/cjs/components/utils/validation/datePicker.js.map +1 -0
- package/dist/cjs/components/utils/validation/i18n/index.js +5 -6
- package/dist/cjs/components/utils/validation/i18n/index.js.map +1 -0
- package/dist/cjs/components/variables.css +2 -0
- package/dist/cjs/components/variables.css.map +1 -0
- package/dist/cjs/hooks/useEventHandler.js +3 -4
- package/dist/cjs/hooks/useEventHandler.js.map +1 -0
- package/dist/cjs/hooks/useMove.js +4 -5
- package/dist/cjs/hooks/useMove.js.map +1 -0
- package/dist/cjs/hooks/useResizeObserver.js +3 -4
- package/dist/cjs/hooks/useResizeObserver.js.map +1 -0
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +3 -15
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/utils/cn.js +1 -0
- package/dist/cjs/utils/cn.js.map +1 -0
- package/dist/esm/components/Calendar/Calendar.d.ts +4 -4
- package/dist/esm/components/Calendar/Calendar.js +4 -3
- package/dist/esm/components/Calendar/Calendar.js.map +1 -0
- package/dist/esm/components/Calendar/index.d.ts +8 -8
- package/dist/esm/components/Calendar/index.js +8 -7
- package/dist/esm/components/Calendar/index.js.map +1 -0
- package/dist/esm/components/CalendarView/Calendar.css +2 -1
- package/dist/esm/components/CalendarView/Calendar.css.map +1 -0
- package/dist/esm/components/CalendarView/CalendarView.d.ts +4 -4
- package/dist/esm/components/CalendarView/CalendarView.js +8 -7
- package/dist/esm/components/CalendarView/CalendarView.js.map +1 -0
- package/dist/esm/components/CalendarView/hooks/types.d.ts +1 -1
- package/dist/esm/components/CalendarView/hooks/types.js +1 -0
- package/dist/esm/components/CalendarView/hooks/types.js.map +1 -0
- package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.d.ts +1 -1
- package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.js +2 -1
- package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.js.map +1 -0
- package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.d.ts +1 -1
- package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.js +2 -1
- package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.js.map +1 -0
- package/dist/esm/components/CalendarView/hooks/useCalendarProps.d.ts +2 -2
- package/dist/esm/components/CalendarView/hooks/useCalendarProps.js +3 -2
- package/dist/esm/components/CalendarView/hooks/useCalendarProps.js.map +1 -0
- package/dist/esm/components/CalendarView/hooks/useCalendarState.d.ts +3 -3
- package/dist/esm/components/CalendarView/hooks/useCalendarState.js +4 -3
- package/dist/esm/components/CalendarView/hooks/useCalendarState.js.map +1 -0
- package/dist/esm/components/CalendarView/hooks/useRangeCalendarState.d.ts +4 -4
- package/dist/esm/components/CalendarView/hooks/useRangeCalendarState.js +4 -3
- package/dist/esm/components/CalendarView/hooks/useRangeCalendarState.js.map +1 -0
- package/dist/esm/components/CalendarView/i18n/index.js +4 -3
- package/dist/esm/components/CalendarView/i18n/index.js.map +1 -0
- package/dist/esm/components/CalendarView/utils.d.ts +1 -1
- package/dist/esm/components/CalendarView/utils.js +1 -0
- package/dist/esm/components/CalendarView/utils.js.map +1 -0
- package/dist/esm/components/DateField/DateField.css +2 -1
- package/dist/esm/components/DateField/DateField.css.map +1 -0
- package/dist/esm/components/DateField/DateField.d.ts +2 -2
- package/dist/esm/components/DateField/DateField.js +6 -5
- package/dist/esm/components/DateField/DateField.js.map +1 -0
- package/dist/esm/components/DateField/hooks/useBaseDateFieldState.d.ts +13 -4
- package/dist/esm/components/DateField/hooks/useBaseDateFieldState.js +9 -17
- package/dist/esm/components/DateField/hooks/useBaseDateFieldState.js.map +1 -0
- package/dist/esm/components/DateField/hooks/useDateFieldProps.d.ts +2 -2
- package/dist/esm/components/DateField/hooks/useDateFieldProps.js +2 -1
- package/dist/esm/components/DateField/hooks/useDateFieldProps.js.map +1 -0
- package/dist/esm/components/DateField/hooks/useDateFieldState.d.ts +2 -2
- package/dist/esm/components/DateField/hooks/useDateFieldState.js +10 -15
- package/dist/esm/components/DateField/hooks/useDateFieldState.js.map +1 -0
- package/dist/esm/components/DateField/i18n/en.json +1 -0
- package/dist/esm/components/DateField/i18n/index.d.ts +1 -1
- package/dist/esm/components/DateField/i18n/index.js +4 -3
- package/dist/esm/components/DateField/i18n/index.js.map +1 -0
- package/dist/esm/components/DateField/i18n/ru.json +1 -0
- package/dist/esm/components/DateField/index.d.ts +4 -4
- package/dist/esm/components/DateField/index.js +5 -4
- package/dist/esm/components/DateField/index.js.map +1 -0
- package/dist/esm/components/DateField/types.d.ts +9 -1
- package/dist/esm/components/DateField/types.js +1 -0
- package/dist/esm/components/DateField/types.js.map +1 -0
- package/dist/esm/components/DateField/utils.d.ts +22 -6
- package/dist/esm/components/DateField/utils.js +83 -2
- package/dist/esm/components/DateField/utils.js.map +1 -0
- package/dist/esm/components/DatePicker/DatePicker.css +2 -1
- package/dist/esm/components/DatePicker/DatePicker.css.map +1 -0
- package/dist/esm/components/DatePicker/DatePicker.d.ts +4 -4
- package/dist/esm/components/DatePicker/DatePicker.js +12 -11
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -0
- package/dist/esm/components/DatePicker/MobileCalendar.css +2 -1
- package/dist/esm/components/DatePicker/MobileCalendar.css.map +1 -0
- package/dist/esm/components/DatePicker/MobileCalendar.d.ts +3 -3
- package/dist/esm/components/DatePicker/MobileCalendar.js +8 -7
- package/dist/esm/components/DatePicker/MobileCalendar.js.map +1 -0
- package/dist/esm/components/DatePicker/StubButton.css +2 -1
- package/dist/esm/components/DatePicker/StubButton.css.map +1 -0
- package/dist/esm/components/DatePicker/StubButton.d.ts +1 -1
- package/dist/esm/components/DatePicker/StubButton.js +3 -2
- package/dist/esm/components/DatePicker/StubButton.js.map +1 -0
- package/dist/esm/components/DatePicker/hooks/datePickerStateFactory.d.ts +15 -5
- package/dist/esm/components/DatePicker/hooks/datePickerStateFactory.js +19 -16
- package/dist/esm/components/DatePicker/hooks/datePickerStateFactory.js.map +1 -0
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.d.ts +5 -5
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js +10 -7
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js.map +1 -0
- package/dist/esm/components/DatePicker/hooks/useDatePickerState.d.ts +3 -3
- package/dist/esm/components/DatePicker/hooks/useDatePickerState.js +7 -4
- package/dist/esm/components/DatePicker/hooks/useDatePickerState.js.map +1 -0
- package/dist/esm/components/DatePicker/i18n/index.js +4 -3
- package/dist/esm/components/DatePicker/i18n/index.js.map +1 -0
- package/dist/esm/components/DatePicker/index.d.ts +3 -3
- package/dist/esm/components/DatePicker/index.js +4 -3
- package/dist/esm/components/DatePicker/index.js.map +1 -0
- package/dist/esm/components/DatePicker/utils/cn.js +2 -1
- package/dist/esm/components/DatePicker/utils/cn.js.map +1 -0
- package/dist/esm/components/DatePicker/utils/getCalendarModes.d.ts +5 -0
- package/dist/esm/components/DatePicker/utils/getCalendarModes.js +18 -0
- package/dist/esm/components/DatePicker/utils/getCalendarModes.js.map +1 -0
- package/dist/esm/components/DatePicker/utils/getDateTimeValue.d.ts +1 -1
- package/dist/esm/components/DatePicker/utils/getDateTimeValue.js +1 -0
- package/dist/esm/components/DatePicker/utils/getDateTimeValue.js.map +1 -0
- package/dist/esm/components/DatePicker/utils/index.d.ts +3 -2
- package/dist/esm/components/DatePicker/utils/index.js +4 -2
- package/dist/esm/components/DatePicker/utils/index.js.map +1 -0
- package/dist/esm/components/HiddenInput/HiddenInput.js +1 -0
- package/dist/esm/components/HiddenInput/HiddenInput.js.map +1 -0
- package/dist/esm/components/RangeCalendar/RangeCalendar.d.ts +4 -4
- package/dist/esm/components/RangeCalendar/RangeCalendar.js +4 -3
- package/dist/esm/components/RangeCalendar/RangeCalendar.js.map +1 -0
- package/dist/esm/components/RangeCalendar/index.d.ts +1 -1
- package/dist/esm/components/RangeCalendar/index.js +2 -1
- package/dist/esm/components/RangeCalendar/index.js.map +1 -0
- package/dist/esm/components/RangeDateField/RangeDateField.css +2 -1
- package/dist/esm/components/RangeDateField/RangeDateField.css.map +1 -0
- package/dist/esm/components/RangeDateField/RangeDateField.d.ts +3 -3
- package/dist/esm/components/RangeDateField/RangeDateField.js +6 -5
- package/dist/esm/components/RangeDateField/RangeDateField.js.map +1 -0
- package/dist/esm/components/RangeDateField/hooks/useRangeDateFieldState.d.ts +3 -3
- package/dist/esm/components/RangeDateField/hooks/useRangeDateFieldState.js +14 -21
- package/dist/esm/components/RangeDateField/hooks/useRangeDateFieldState.js.map +1 -0
- package/dist/esm/components/RangeDateField/index.d.ts +2 -2
- package/dist/esm/components/RangeDateField/index.js +3 -2
- package/dist/esm/components/RangeDateField/index.js.map +1 -0
- package/dist/esm/components/RangeDateField/utils/createPlaceholderRangeValue.d.ts +1 -1
- package/dist/esm/components/RangeDateField/utils/createPlaceholderRangeValue.js +3 -2
- package/dist/esm/components/RangeDateField/utils/createPlaceholderRangeValue.js.map +1 -0
- package/dist/esm/components/RangeDateField/utils/getRangeEditableSections.d.ts +4 -4
- package/dist/esm/components/RangeDateField/utils/getRangeEditableSections.js +2 -1
- package/dist/esm/components/RangeDateField/utils/getRangeEditableSections.js.map +1 -0
- package/dist/esm/components/RangeDateField/utils/index.d.ts +3 -3
- package/dist/esm/components/RangeDateField/utils/index.js +4 -3
- package/dist/esm/components/RangeDateField/utils/index.js.map +1 -0
- package/dist/esm/components/RangeDateField/utils/isValidRange.d.ts +1 -1
- package/dist/esm/components/RangeDateField/utils/isValidRange.js +1 -0
- package/dist/esm/components/RangeDateField/utils/isValidRange.js.map +1 -0
- package/dist/esm/components/RangeDatePicker/RangeDatePicker.css +2 -1
- package/dist/esm/components/RangeDatePicker/RangeDatePicker.css.map +1 -0
- package/dist/esm/components/RangeDatePicker/RangeDatePicker.d.ts +3 -3
- package/dist/esm/components/RangeDatePicker/RangeDatePicker.js +11 -10
- package/dist/esm/components/RangeDatePicker/RangeDatePicker.js.map +1 -0
- package/dist/esm/components/RangeDatePicker/hooks/useRangeDatePickerState.d.ts +7 -4
- package/dist/esm/components/RangeDatePicker/hooks/useRangeDatePickerState.js +14 -6
- package/dist/esm/components/RangeDatePicker/hooks/useRangeDatePickerState.js.map +1 -0
- package/dist/esm/components/RangeDatePicker/index.d.ts +2 -2
- package/dist/esm/components/RangeDatePicker/index.js +3 -2
- package/dist/esm/components/RangeDatePicker/index.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/RangeDateSelection.css +2 -1
- package/dist/esm/components/RangeDateSelection/RangeDateSelection.css.map +1 -0
- package/dist/esm/components/RangeDateSelection/RangeDateSelection.d.ts +4 -4
- package/dist/esm/components/RangeDateSelection/RangeDateSelection.js +8 -7
- package/dist/esm/components/RangeDateSelection/RangeDateSelection.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.css +2 -1
- package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.css.map +1 -0
- package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.d.ts +1 -1
- package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.js +5 -4
- package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/components/Ruler/Ruler.d.ts +2 -2
- package/dist/esm/components/RangeDateSelection/components/Ruler/Ruler.js +9 -8
- package/dist/esm/components/RangeDateSelection/components/Ruler/Ruler.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.css +2 -1
- package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.css.map +1 -0
- package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.d.ts +2 -2
- package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.js +4 -3
- package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.css +2 -1
- package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.css.map +1 -0
- package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.d.ts +3 -3
- package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.js +7 -6
- package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/components/Ticks/MiddleTicks.js +3 -2
- package/dist/esm/components/RangeDateSelection/components/Ticks/MiddleTicks.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/components/Ticks/SlitTicks.js +3 -2
- package/dist/esm/components/RangeDateSelection/components/Ticks/SlitTicks.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.css +2 -1
- package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.css.map +1 -0
- package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.d.ts +3 -3
- package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.js +6 -5
- package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/components/Ticks/UnavialableTicks.d.ts +3 -3
- package/dist/esm/components/RangeDateSelection/components/Ticks/UnavialableTicks.js +5 -4
- package/dist/esm/components/RangeDateSelection/components/Ticks/UnavialableTicks.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/components/Ticks/utils.d.ts +1 -1
- package/dist/esm/components/RangeDateSelection/components/Ticks/utils.js +3 -2
- package/dist/esm/components/RangeDateSelection/components/Ticks/utils.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/hooks/useRangeDateSelectionState.d.ts +1 -1
- package/dist/esm/components/RangeDateSelection/hooks/useRangeDateSelectionState.js +5 -4
- package/dist/esm/components/RangeDateSelection/hooks/useRangeDateSelectionState.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/i18n/index.js +4 -3
- package/dist/esm/components/RangeDateSelection/i18n/index.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/index.d.ts +3 -3
- package/dist/esm/components/RangeDateSelection/index.js +3 -2
- package/dist/esm/components/RangeDateSelection/index.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/utils/date.js +2 -1
- package/dist/esm/components/RangeDateSelection/utils/date.js.map +1 -0
- package/dist/esm/components/RangeDateSelection/utils/span.js +1 -0
- package/dist/esm/components/RangeDateSelection/utils/span.js.map +1 -0
- package/dist/esm/components/RelativeDateField/RelativeDateField.css +2 -1
- package/dist/esm/components/RelativeDateField/RelativeDateField.css.map +1 -0
- package/dist/esm/components/RelativeDateField/RelativeDateField.d.ts +3 -3
- package/dist/esm/components/RelativeDateField/RelativeDateField.js +8 -7
- package/dist/esm/components/RelativeDateField/RelativeDateField.js.map +1 -0
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldProps.d.ts +4 -4
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldProps.js +1 -0
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldProps.js.map +1 -0
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.d.ts +1 -1
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.js +1 -0
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.js.map +1 -0
- package/dist/esm/components/RelativeDateField/index.d.ts +3 -3
- package/dist/esm/components/RelativeDateField/index.js +4 -3
- package/dist/esm/components/RelativeDateField/index.js.map +1 -0
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.css +2 -1
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.css.map +1 -0
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.d.ts +4 -4
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.js +12 -11
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.js.map +1 -0
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.d.ts +4 -4
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +10 -6
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js.map +1 -0
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerState.d.ts +3 -3
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js +14 -5
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js.map +1 -0
- package/dist/esm/components/RelativeDatePicker/i18n/index.js +4 -3
- package/dist/esm/components/RelativeDatePicker/i18n/index.js.map +1 -0
- package/dist/esm/components/RelativeDatePicker/index.d.ts +3 -3
- package/dist/esm/components/RelativeDatePicker/index.js +4 -3
- package/dist/esm/components/RelativeDatePicker/index.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.css +2 -1
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.css.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.d.ts +2 -2
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +7 -6
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.css +2 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.css.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.d.ts +3 -3
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.js +6 -5
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/i18n/index.js +4 -3
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/i18n/index.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css +2 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.d.ts +6 -5
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js +11 -10
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.js +4 -3
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.d.ts +5 -5
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +3 -2
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.css +2 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.css.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.d.ts +3 -3
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js +5 -4
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css +2 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.d.ts +2 -2
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js +5 -4
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js +2 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/i18n/index.js +4 -3
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/i18n/index.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.d.ts +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.js +3 -2
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.css +2 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.css.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.d.ts +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js +5 -4
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/i18n/index.js +4 -3
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/i18n/index.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts +2 -2
- package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +3 -2
- package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/i18n/index.js +4 -3
- package/dist/esm/components/RelativeRangeDatePicker/i18n/index.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/index.d.ts +9 -9
- package/dist/esm/components/RelativeRangeDatePicker/index.js +7 -6
- package/dist/esm/components/RelativeRangeDatePicker/index.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/types.d.ts +5 -5
- package/dist/esm/components/RelativeRangeDatePicker/types.js +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/types.js.map +1 -0
- package/dist/esm/components/RelativeRangeDatePicker/utils.d.ts +3 -3
- package/dist/esm/components/RelativeRangeDatePicker/utils.js +2 -1
- package/dist/esm/components/RelativeRangeDatePicker/utils.js.map +1 -0
- package/dist/esm/components/index.d.ts +11 -11
- package/dist/esm/components/index.js +11 -10
- package/dist/esm/components/index.js.map +1 -0
- package/dist/esm/components/mixins.css +2 -0
- package/dist/esm/components/mixins.css.map +1 -0
- package/dist/esm/components/types/datePicker.d.ts +1 -1
- package/dist/esm/components/types/datePicker.js +1 -0
- package/dist/esm/components/types/datePicker.js.map +1 -0
- package/dist/esm/components/types/events.js +1 -0
- package/dist/esm/components/types/events.js.map +1 -0
- package/dist/esm/components/types/index.d.ts +4 -4
- package/dist/esm/components/types/index.js +1 -0
- package/dist/esm/components/types/index.js.map +1 -0
- package/dist/esm/components/types/inputs.js +1 -0
- package/dist/esm/components/types/inputs.js.map +1 -0
- package/dist/esm/components/types/style.js +1 -0
- package/dist/esm/components/types/style.js.map +1 -0
- package/dist/esm/components/utils/constants.js +1 -0
- package/dist/esm/components/utils/constants.js.map +1 -0
- package/dist/esm/components/utils/dates.js +2 -1
- package/dist/esm/components/utils/dates.js.map +1 -0
- package/dist/esm/components/utils/filterDOMProps.d.ts +1 -1
- package/dist/esm/components/utils/filterDOMProps.js +1 -0
- package/dist/esm/components/utils/filterDOMProps.js.map +1 -0
- package/dist/esm/components/utils/getButtonSizeForInput.js +1 -0
- package/dist/esm/components/utils/getButtonSizeForInput.js.map +1 -0
- package/dist/esm/components/utils/mergeProps.js +1 -0
- package/dist/esm/components/utils/mergeProps.js.map +1 -0
- package/dist/esm/components/utils/useDefaultTimeZone.js +1 -0
- package/dist/esm/components/utils/useDefaultTimeZone.js.map +1 -0
- package/dist/esm/components/utils/validation/datePicker.js +2 -1
- package/dist/esm/components/utils/validation/datePicker.js.map +1 -0
- package/dist/esm/components/utils/validation/i18n/index.js +4 -3
- package/dist/esm/components/utils/validation/i18n/index.js.map +1 -0
- package/dist/esm/components/variables.css +2 -0
- package/dist/esm/components/variables.css.map +1 -0
- package/dist/esm/hooks/useEventHandler.js +1 -0
- package/dist/esm/hooks/useEventHandler.js.map +1 -0
- package/dist/esm/hooks/useMove.js +2 -1
- package/dist/esm/hooks/useMove.js.map +1 -0
- package/dist/esm/hooks/useResizeObserver.js +1 -0
- package/dist/esm/hooks/useResizeObserver.js.map +1 -0
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/utils/cn.js +1 -0
- package/dist/esm/utils/cn.js.map +1 -0
- package/package.json +38 -34
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDateFieldProps.js","sourceRoot":"../../../../../src","sources":["components/DateField/hooks/useDateFieldProps.ts"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport type {DateTime} from '@gravity-ui/date-utils';\nimport type {TextInputProps} from '@gravity-ui/uikit';\n\nimport type {\n AccessibilityProps,\n DateFieldBase,\n TextInputProps as DateFieldTextInputProps,\n DomProps,\n FocusableProps,\n InputDOMProps,\n KeyboardEvents,\n StyleProps,\n TextInputExtendProps,\n} from '../../types';\nimport {cleanString} from '../utils';\n\nimport type {DateFieldState} from './useBaseDateFieldState';\n\nexport interface DateFieldProps<T = DateTime>\n extends DateFieldBase<T>,\n DateFieldTextInputProps,\n TextInputExtendProps,\n DomProps,\n InputDOMProps,\n FocusableProps,\n KeyboardEvents,\n StyleProps,\n AccessibilityProps {}\n\nexport function useDateFieldProps<T = DateTime>(\n state: DateFieldState<T>,\n props: DateFieldProps<T>,\n): {inputProps: TextInputProps} {\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const [, setInnerState] = React.useState({});\n\n function setSelectedSections(section: 'all' | number) {\n state.setSelectedSections(section);\n setInnerState({});\n }\n\n React.useLayoutEffect(() => {\n const inputElement = inputRef.current;\n if (!inputElement) {\n return;\n }\n\n if (state.selectedSectionIndexes === null) {\n if (inputElement.scrollLeft) {\n // Ensure that input content is not marked as selected.\n // setting selection range to 0 causes issues in Safari.\n // https://bugs.webkit.org/show_bug.cgi?id=224425\n inputElement.scrollLeft = 0;\n }\n return;\n }\n\n const firstSelectedSection = state.sections[state.selectedSectionIndexes.startIndex];\n const lastSelectedSection = state.sections[state.selectedSectionIndexes.endIndex];\n if (firstSelectedSection && lastSelectedSection) {\n const selectionStart = firstSelectedSection.start;\n const selectionEnd = lastSelectedSection.end;\n\n if (\n selectionStart !== inputElement.selectionStart ||\n selectionEnd !== inputElement.selectionEnd\n ) {\n inputElement.setSelectionRange(selectionStart, selectionEnd);\n }\n }\n });\n\n function syncSelectionFromDOM() {\n state.focusSectionInPosition(inputRef.current?.selectionStart ?? 0);\n setInnerState({});\n }\n\n const inputMode = React.useMemo(() => {\n if (!state.selectedSectionIndexes) {\n return 'text';\n }\n\n const activeSection = state.sections[state.selectedSectionIndexes.startIndex];\n if (!activeSection || activeSection.contentType === 'letter') {\n return 'text';\n }\n\n return 'tel';\n }, [state.selectedSectionIndexes, state.sections]);\n\n return {\n inputProps: {\n value: state.text,\n view: props.view,\n size: props.size,\n disabled: state.disabled,\n hasClear: !state.readOnly && !state.isEmpty && props.hasClear,\n placeholder: props.placeholder,\n id: props.id,\n label: props.label,\n startContent: props.startContent,\n endContent: props.endContent,\n pin: props.pin,\n autoFocus: props.autoFocus,\n controlRef: inputRef,\n autoComplete: 'off',\n type: 'text',\n validationState: state.validationState,\n errorMessage: props.errorMessage,\n errorPlacement: props.errorPlacement,\n onUpdate(value) {\n if (!value) {\n state.clearAll();\n }\n },\n onFocus(e) {\n props.onFocus?.(e);\n\n if (state.selectedSectionIndexes !== null) {\n return;\n }\n const input = e.target;\n const isAutofocus = !inputRef.current;\n setTimeout(() => {\n if (!input || input !== inputRef.current) {\n return;\n }\n if (isAutofocus) {\n state.focusSectionInPosition(0);\n } else if (\n // avoid selecting all sections when focusing empty field without value\n input.value.length &&\n Number(input.selectionEnd) - Number(input.selectionStart) ===\n input.value.length\n ) {\n setSelectedSections('all');\n } else {\n syncSelectionFromDOM();\n }\n });\n },\n onBlur(e) {\n props.onBlur?.(e);\n setSelectedSections(-1);\n },\n onKeyDown(e) {\n props.onKeyDown?.(e);\n\n if (e.key === 'ArrowLeft') {\n e.preventDefault();\n state.focusPreviousSection();\n } else if (e.key === 'ArrowRight') {\n e.preventDefault();\n state.focusNextSection();\n } else if (e.key === 'Home') {\n e.preventDefault();\n state.decrementToMin();\n } else if (e.key === 'End') {\n e.preventDefault();\n state.incrementToMax();\n } else if (e.key === 'ArrowUp' && !e.altKey) {\n e.preventDefault();\n state.increment();\n } else if (e.key === 'ArrowDown' && !e.altKey) {\n e.preventDefault();\n state.decrement();\n } else if (e.key === 'PageUp') {\n e.preventDefault();\n state.incrementPage();\n } else if (e.key === 'PageDown') {\n e.preventDefault();\n state.decrementPage();\n } else if (e.key === 'Backspace' || e.key === 'Delete') {\n e.preventDefault();\n state.clearSection();\n } else if (e.key === 'a' && (e['ctrlKey'] || e['metaKey'])) {\n e.preventDefault();\n setSelectedSections('all');\n }\n },\n onKeyUp: props.onKeyUp,\n controlProps: {\n 'aria-label': props['aria-label'] || undefined,\n 'aria-labelledby': props['aria-labelledby'] || undefined,\n 'aria-describedby': props['aria-describedby'] || undefined,\n 'aria-details': props['aria-details'] || undefined,\n 'aria-disabled': state.disabled || undefined,\n readOnly: state.readOnly,\n inputMode,\n onClick() {\n syncSelectionFromDOM();\n },\n onMouseUp(e: React.MouseEvent) {\n e.preventDefault();\n },\n onBeforeInput(e) {\n e.preventDefault();\n // @ts-expect-error\n const key = e.data;\n if (key !== undefined && key !== null) {\n state.onInput(key);\n }\n },\n onPaste(e: React.ClipboardEvent) {\n e.preventDefault();\n if (state.readOnly) {\n return;\n }\n\n const pastedValue = cleanString(e.clipboardData.getData('text'));\n if (\n state.selectedSectionIndexes &&\n state.selectedSectionIndexes.startIndex ===\n state.selectedSectionIndexes.endIndex\n ) {\n const activeSection =\n state.sections[state.selectedSectionIndexes.startIndex];\n\n const digitsOnly = /^\\d+$/.test(pastedValue);\n const lettersOnly = /^[a-zA-Z]+$/.test(pastedValue);\n\n const isValidValue = Boolean(\n activeSection &&\n ((activeSection.contentType === 'digit' && digitsOnly) ||\n (activeSection.contentType === 'letter' && lettersOnly)),\n );\n if (isValidValue) {\n state.onInput(pastedValue);\n return;\n }\n if (digitsOnly || lettersOnly) {\n return;\n }\n }\n\n state.setValueFromString(pastedValue);\n },\n },\n },\n };\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { DateFieldBase } from
|
|
2
|
-
import type { DateFieldState } from
|
|
1
|
+
import type { DateFieldBase } from "../../types/datePicker.js";
|
|
2
|
+
import type { DateFieldState } from "./useBaseDateFieldState.js";
|
|
3
3
|
export interface DateFieldStateOptions extends DateFieldBase {
|
|
4
4
|
}
|
|
5
5
|
export declare function useDateFieldState(props: DateFieldStateOptions): DateFieldState;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useControlledState } from '@gravity-ui/uikit';
|
|
3
|
-
import { createPlaceholderValue, isInvalid } from
|
|
4
|
-
import { useDefaultTimeZone } from
|
|
5
|
-
import {
|
|
6
|
-
import { useBaseDateFieldState } from
|
|
3
|
+
import { createPlaceholderValue, isInvalid } from "../../utils/dates.js";
|
|
4
|
+
import { useDefaultTimeZone } from "../../utils/useDefaultTimeZone.js";
|
|
5
|
+
import { addSegment, adjustDateToFormat, getEditableSections, getFormatInfo, isAllSegmentsValid, markValidSection, parseDateFromString, setSegment, useFormatSections, } from "../utils.js";
|
|
6
|
+
import { useBaseDateFieldState } from "./useBaseDateFieldState.js";
|
|
7
7
|
export function useDateFieldState(props) {
|
|
8
8
|
var _a, _b;
|
|
9
9
|
const [value, setDate] = useControlledState(props.value, (_a = props.defaultValue) !== null && _a !== void 0 ? _a : null, props.onUpdate);
|
|
@@ -20,9 +20,8 @@ export function useDateFieldState(props) {
|
|
|
20
20
|
});
|
|
21
21
|
const format = props.format || 'L';
|
|
22
22
|
const sections = useFormatSections(format);
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
.reduce((p, seg) => (Object.assign(Object.assign({}, p), { [seg.type]: true })), {}), [sections]);
|
|
23
|
+
const formatInfo = React.useMemo(() => getFormatInfo(sections), [sections]);
|
|
24
|
+
const allSegments = formatInfo.availableUnits;
|
|
26
25
|
const validSegmentsState = React.useState(() => value ? Object.assign({}, allSegments) : {});
|
|
27
26
|
let validSegments = validSegmentsState[0];
|
|
28
27
|
const setValidSegments = validSegmentsState[1];
|
|
@@ -70,7 +69,7 @@ export function useDateFieldState(props) {
|
|
|
70
69
|
}
|
|
71
70
|
if (isAllSegmentsValid(allSegments, validSegments)) {
|
|
72
71
|
if (!value || !newValue.isSame(value)) {
|
|
73
|
-
handleUpdateDate(newValue);
|
|
72
|
+
handleUpdateDate(adjustDateToFormat(newValue, formatInfo));
|
|
74
73
|
}
|
|
75
74
|
}
|
|
76
75
|
else {
|
|
@@ -81,13 +80,7 @@ export function useDateFieldState(props) {
|
|
|
81
80
|
}
|
|
82
81
|
}
|
|
83
82
|
function markValid(part) {
|
|
84
|
-
validSegments
|
|
85
|
-
if (validSegments.day && validSegments.month && validSegments.year && allSegments.weekday) {
|
|
86
|
-
validSegments.weekday = true;
|
|
87
|
-
}
|
|
88
|
-
if (validSegments.hour && allSegments.dayPeriod) {
|
|
89
|
-
validSegments.dayPeriod = true;
|
|
90
|
-
}
|
|
83
|
+
validSegments = markValidSection(allSegments, validSegments, part);
|
|
91
84
|
setValidSegments(Object.assign({}, validSegments));
|
|
92
85
|
}
|
|
93
86
|
function setSection(sectionIndex, amount) {
|
|
@@ -152,6 +145,7 @@ export function useDateFieldState(props) {
|
|
|
152
145
|
timeZone,
|
|
153
146
|
validationState,
|
|
154
147
|
editableSections: sectionsState.editableSections,
|
|
148
|
+
formatInfo,
|
|
155
149
|
readOnly: props.readOnly,
|
|
156
150
|
disabled: props.disabled,
|
|
157
151
|
selectedSectionIndexes,
|
|
@@ -192,3 +186,4 @@ function useSectionsState(sections, value, validSegments) {
|
|
|
192
186
|
}
|
|
193
187
|
return state;
|
|
194
188
|
}
|
|
189
|
+
//# sourceMappingURL=useDateFieldState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDateFieldState.js","sourceRoot":"../../../../../src","sources":["components/DateField/hooks/useDateFieldState.ts"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport type {DateTime} from '@gravity-ui/date-utils';\nimport {useControlledState} from '@gravity-ui/uikit';\n\nimport type {DateFieldBase} from '../../types/datePicker';\nimport {createPlaceholderValue, isInvalid} from '../../utils/dates';\nimport {useDefaultTimeZone} from '../../utils/useDefaultTimeZone';\nimport type {\n AvailableSections,\n DateFieldSectionType,\n DateFieldSectionWithoutPosition,\n} from '../types';\nimport {\n addSegment,\n adjustDateToFormat,\n getEditableSections,\n getFormatInfo,\n isAllSegmentsValid,\n markValidSection,\n parseDateFromString,\n setSegment,\n useFormatSections,\n} from '../utils';\n\nimport {useBaseDateFieldState} from './useBaseDateFieldState';\nimport type {DateFieldState} from './useBaseDateFieldState';\n\nexport interface DateFieldStateOptions extends DateFieldBase {}\n\nexport function useDateFieldState(props: DateFieldStateOptions): DateFieldState {\n const [value, setDate] = useControlledState(\n props.value,\n props.defaultValue ?? null,\n props.onUpdate,\n );\n\n const inputTimeZone = useDefaultTimeZone(\n props.value || props.defaultValue || props.placeholderValue,\n );\n const timeZone = props.timeZone || inputTimeZone;\n\n const handleUpdateDate = (v: DateTime | null) => {\n setDate(v ? v.timeZone(inputTimeZone) : v);\n };\n\n const [placeholderDate, setPlaceholderDate] = React.useState(() => {\n return createPlaceholderValue({\n placeholderValue: props.placeholderValue,\n timeZone,\n });\n });\n\n const format = props.format || 'L';\n const sections = useFormatSections(format);\n const formatInfo = React.useMemo(() => getFormatInfo(sections), [sections]);\n const allSegments = formatInfo.availableUnits;\n\n const validSegmentsState = React.useState<AvailableSections>(() =>\n value ? {...allSegments} : {},\n );\n\n let validSegments = validSegmentsState[0];\n const setValidSegments = validSegmentsState[1];\n\n if (value && !isAllSegmentsValid(allSegments, validSegments)) {\n setValidSegments({...allSegments});\n }\n\n if (\n !value &&\n Object.keys(allSegments).length > 0 &&\n isAllSegmentsValid(allSegments, validSegments) &&\n Object.keys(validSegments).length === Object.keys(allSegments).length\n ) {\n validSegments = {};\n setValidSegments(validSegments);\n setPlaceholderDate(\n createPlaceholderValue({\n placeholderValue: props.placeholderValue,\n timeZone,\n }),\n );\n }\n\n const displayValue =\n value && value.isValid() && isAllSegmentsValid(allSegments, validSegments)\n ? value.timeZone(timeZone)\n : placeholderDate.timeZone(timeZone);\n const sectionsState = useSectionsState(sections, displayValue, validSegments);\n\n const [selectedSections, setSelectedSections] = React.useState<number | 'all'>(-1);\n\n const selectedSectionIndexes = React.useMemo<{\n startIndex: number;\n endIndex: number;\n } | null>(() => {\n if (selectedSections === -1) {\n return null;\n }\n\n if (selectedSections === 'all') {\n return {\n startIndex: 0,\n endIndex: sectionsState.editableSections.length - 1,\n };\n }\n\n if (typeof selectedSections === 'number') {\n return {startIndex: selectedSections, endIndex: selectedSections};\n }\n\n if (typeof selectedSections === 'string') {\n const selectedSectionIndex = sectionsState.editableSections.findIndex(\n (section) => section.type === selectedSections,\n );\n\n return {startIndex: selectedSectionIndex, endIndex: selectedSectionIndex};\n }\n\n return selectedSections;\n }, [selectedSections, sectionsState.editableSections]);\n\n function setValue(newValue: DateTime) {\n if (props.disabled || props.readOnly) {\n return;\n }\n\n if (isAllSegmentsValid(allSegments, validSegments)) {\n if (!value || !newValue.isSame(value)) {\n handleUpdateDate(adjustDateToFormat(newValue, formatInfo));\n }\n } else {\n if (value) {\n handleUpdateDate(null);\n }\n setPlaceholderDate(newValue);\n }\n }\n\n function markValid(part: DateFieldSectionType) {\n validSegments = markValidSection(allSegments, validSegments, part);\n setValidSegments({...validSegments});\n }\n\n function setSection(sectionIndex: number, amount: number) {\n const section = sectionsState.editableSections[sectionIndex];\n if (section) {\n markValid(section.type);\n setValue(setSegment(section, displayValue, amount));\n }\n }\n\n function adjustSection(sectionIndex: number, amount: number) {\n const section = sectionsState.editableSections[sectionIndex];\n if (section) {\n if (validSegments[section.type]) {\n setValue(addSegment(section, displayValue, amount));\n } else {\n markValid(section.type);\n if (Object.keys(validSegments).length >= Object.keys(allSegments).length) {\n setValue(displayValue);\n }\n }\n }\n }\n\n function flushValidSection(sectionIndex: number) {\n const section = sectionsState.editableSections[sectionIndex];\n if (section) {\n delete validSegments[section.type];\n }\n setValidSegments({...validSegments});\n }\n\n function flushAllValidSections() {\n validSegments = {};\n setValidSegments({});\n }\n\n function getSectionValue(_sectionIndex: number) {\n return displayValue;\n }\n\n function setSectionValue(_sectionIndex: number, currentValue: DateTime) {\n setValue(currentValue);\n }\n\n function createPlaceholder() {\n return createPlaceholderValue({\n placeholderValue: props.placeholderValue,\n timeZone,\n }).timeZone(timeZone);\n }\n\n function setValueFromString(str: string) {\n const date = parseDateFromString(str, format, timeZone);\n if (date.isValid()) {\n handleUpdateDate(date);\n return true;\n }\n return false;\n }\n\n const validationState =\n props.validationState ||\n (isInvalid(value, props.minValue, props.maxValue) ? 'invalid' : undefined) ||\n (value && props.isDateUnavailable?.(value) ? 'invalid' : undefined);\n\n return useBaseDateFieldState({\n value,\n displayValue,\n placeholderValue: props.placeholderValue,\n timeZone,\n validationState,\n editableSections: sectionsState.editableSections,\n formatInfo,\n readOnly: props.readOnly,\n disabled: props.disabled,\n selectedSectionIndexes,\n selectedSections,\n isEmpty: Object.keys(validSegments).length === 0,\n flushAllValidSections,\n flushValidSection,\n setSelectedSections,\n setValue,\n setDate: handleUpdateDate,\n adjustSection,\n setSection,\n getSectionValue,\n setSectionValue,\n createPlaceholder,\n setValueFromString,\n });\n}\n\nfunction useSectionsState(\n sections: DateFieldSectionWithoutPosition[],\n value: DateTime,\n validSegments: AvailableSections,\n) {\n const [state, setState] = React.useState(() => {\n return {\n value,\n sections,\n validSegments,\n editableSections: getEditableSections(sections, value, validSegments),\n };\n });\n\n if (\n sections !== state.sections ||\n validSegments !== state.validSegments ||\n !value.isSame(state.value) ||\n value.timeZone() !== state.value.timeZone()\n ) {\n setState({\n value,\n sections,\n validSegments,\n editableSections: getEditableSections(sections, value, validSegments),\n });\n }\n\n return state;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const i18n: (key: "year_placeholder" | "month_placeholder" | "weekday_placeholder" | "day_placeholder" | "hour_placeholder" | "minute_placeholder" | "second_placeholder" | "dayPeriod_placeholder", params?: import("@gravity-ui/i18n").Params | undefined) => string;
|
|
1
|
+
export declare const i18n: (key: "year_placeholder" | "quarter_placeholder" | "month_placeholder" | "weekday_placeholder" | "day_placeholder" | "hour_placeholder" | "minute_placeholder" | "second_placeholder" | "dayPeriod_placeholder", params?: import("@gravity-ui/i18n").Params | undefined) => string;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { addComponentKeysets } from '@gravity-ui/uikit/i18n';
|
|
2
|
-
import { NAMESPACE } from
|
|
3
|
-
import en from
|
|
4
|
-
import ru from
|
|
2
|
+
import { NAMESPACE } from "../../../utils/cn.js";
|
|
3
|
+
import en from "./en.json";
|
|
4
|
+
import ru from "./ru.json";
|
|
5
5
|
export const i18n = addComponentKeysets({ en, ru }, `${NAMESPACE}date-field`);
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["components/DateField/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAC,SAAS,EAAC,6BAA0B;AAE5C,OAAO,EAAE,kBAAkB;AAC3B,OAAO,EAAE,kBAAkB;AAE3B,MAAM,CAAC,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,GAAG,SAAS,YAAY,CAAC,CAAC","sourcesContent":["import {addComponentKeysets} from '@gravity-ui/uikit/i18n';\n\nimport {NAMESPACE} from '../../../utils/cn';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nexport const i18n = addComponentKeysets({en, ru}, `${NAMESPACE}date-field`);\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
1
|
+
export * from "./DateField.js";
|
|
2
|
+
export * from "./hooks/useDateFieldState.js";
|
|
3
|
+
export * from "./hooks/useDateFieldProps.js";
|
|
4
|
+
export * from "./hooks/useBaseDateFieldState.js";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
1
|
+
export * from "./DateField.js";
|
|
2
|
+
export * from "./hooks/useDateFieldState.js";
|
|
3
|
+
export * from "./hooks/useDateFieldProps.js";
|
|
4
|
+
export * from "./hooks/useBaseDateFieldState.js";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../src","sources":["components/DateField/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAE5B,6CAA0C;AAC1C,6CAA0C;AAC1C,iDAA8C","sourcesContent":["export * from './DateField';\n\nexport * from './hooks/useDateFieldState';\nexport * from './hooks/useDateFieldProps';\nexport * from './hooks/useBaseDateFieldState';\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type DateFieldSectionType = Extract<Intl.DateTimeFormatPartTypes, 'day' | 'dayPeriod' | 'hour' | 'literal' | 'minute' | 'month' | 'second' | 'timeZoneName' | 'weekday' | 'year' | 'unknown'
|
|
1
|
+
export type DateFieldSectionType = Extract<Intl.DateTimeFormatPartTypes, 'day' | 'dayPeriod' | 'hour' | 'literal' | 'minute' | 'month' | 'second' | 'timeZoneName' | 'weekday' | 'year' | 'unknown'> | 'quarter';
|
|
2
2
|
export type DateFormatTokenMap = {
|
|
3
3
|
[formatToken: string]: DateFieldSectionType | {
|
|
4
4
|
sectionType: DateFieldSectionType;
|
|
@@ -65,3 +65,11 @@ export interface DateFieldSection {
|
|
|
65
65
|
nextEditableSection: number;
|
|
66
66
|
}
|
|
67
67
|
export type DateFieldSectionWithoutPosition<TSection extends DateFieldSection = DateFieldSection> = Omit<TSection, 'start' | 'end' | 'value' | 'textValue' | 'modified' | 'previousEditableSection' | 'nextEditableSection'>;
|
|
68
|
+
export type AvailableSections = Partial<Record<DateFieldSectionType, boolean>>;
|
|
69
|
+
export interface FormatInfo {
|
|
70
|
+
hasTime: boolean;
|
|
71
|
+
hasDate: boolean;
|
|
72
|
+
availableUnits: AvailableSections;
|
|
73
|
+
minDateUnit: 'day' | 'month' | 'quarter' | 'year';
|
|
74
|
+
minTimeUnit: 'second' | 'minute' | 'hour';
|
|
75
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"../../../../src","sources":["components/DateField/types.ts"],"names":[],"mappings":"","sourcesContent":["export type DateFieldSectionType =\n | Extract<\n Intl.DateTimeFormatPartTypes,\n | 'day'\n | 'dayPeriod'\n | 'hour'\n | 'literal'\n | 'minute'\n | 'month'\n | 'second'\n | 'timeZoneName'\n | 'weekday'\n | 'year'\n | 'unknown'\n >\n | 'quarter';\n\nexport type DateFormatTokenMap = {\n [formatToken: string]:\n | DateFieldSectionType\n | {sectionType: DateFieldSectionType; contentType: 'digit' | 'letter'};\n};\n\nexport interface DateFieldSection {\n value: number | undefined;\n /**\n * Value of the section, as rendered inside the input.\n * For example, in the date `May 25, 1995`, the value of the month section is \"May\".\n */\n textValue: string;\n /**\n * Format token used to parse the value of this section from the date object.\n * For example, in the format `MMMM D, YYYY`, the format of the month section is \"MMMM\".\n */\n format: string;\n /**\n * Placeholder rendered when the value of this section is empty.\n */\n placeholder: string;\n /**\n * Type of the section.\n */\n type: DateFieldSectionType;\n /**\n * Type of content of the section.\n * Will determine if we should apply a digit-based editing or a letter-based editing.\n */\n contentType: 'digit' | 'letter';\n /**\n * Available values\n */\n options?: string[];\n /** The minimum numeric value for the segment, if applicable. */\n minValue?: number;\n /** The maximum numeric value for the segment, if applicable. */\n maxValue?: number;\n /**\n * If `true`, the value of this section is supposed to have leading zeroes.\n * For example, the value `1` should be rendered as \"01\" instead of \"1\".\n */\n hasLeadingZeros: boolean;\n /**\n * If `true`, the section value has been modified since the last time the sections were generated from a valid date.\n * When we can generate a valid date from the section, we don't directly pass it to `onChange`,\n * Otherwise, we would lose all the information contained in the original date, things like:\n * - time if the format does not contain it\n * - timezone / UTC\n *\n * To avoid losing that information, we transfer the values of the modified sections from the newly generated date to the original date.\n */\n modified: boolean;\n /**\n * Start index of the section in the format\n */\n start: number;\n /**\n * End index of the section in the format\n */\n end: number;\n\n previousEditableSection: number;\n nextEditableSection: number;\n}\n\nexport type DateFieldSectionWithoutPosition<TSection extends DateFieldSection = DateFieldSection> =\n Omit<\n TSection,\n | 'start'\n | 'end'\n | 'value'\n | 'textValue'\n | 'modified'\n | 'previousEditableSection'\n | 'nextEditableSection'\n >;\n\nexport type AvailableSections = Partial<Record<DateFieldSectionType, boolean>>;\n\nexport interface FormatInfo {\n hasTime: boolean;\n hasDate: boolean;\n availableUnits: AvailableSections;\n minDateUnit: 'day' | 'month' | 'quarter' | 'year';\n minTimeUnit: 'second' | 'minute' | 'hour';\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DateTime } from '@gravity-ui/date-utils';
|
|
2
|
-
import type { DateFieldSection, DateFieldSectionType, DateFieldSectionWithoutPosition } from
|
|
3
|
-
export declare const EDITABLE_SEGMENTS:
|
|
2
|
+
import type { AvailableSections, DateFieldSection, DateFieldSectionType, DateFieldSectionWithoutPosition, FormatInfo } from "./types.js";
|
|
3
|
+
export declare const EDITABLE_SEGMENTS: AvailableSections;
|
|
4
4
|
export declare function getSectionLimits(section: DateFieldSectionWithoutPosition, date: DateTime): {
|
|
5
5
|
minValue: number;
|
|
6
6
|
maxValue: number;
|
|
@@ -9,16 +9,32 @@ export declare function getSectionLimits(section: DateFieldSectionWithoutPositio
|
|
|
9
9
|
maxValue?: undefined;
|
|
10
10
|
};
|
|
11
11
|
export declare function getSectionValue(section: DateFieldSectionWithoutPosition, date: DateTime): number | undefined;
|
|
12
|
-
export declare function getDurationUnitFromSectionType(type: DateFieldSectionType): "year" | "month" | "day" | "hour" | "minute" | "second" | "date";
|
|
12
|
+
export declare function getDurationUnitFromSectionType(type: DateFieldSectionType): "year" | "month" | "day" | "hour" | "minute" | "second" | "quarter" | "date";
|
|
13
13
|
export declare function addSegment(section: DateFieldSection, date: DateTime, amount: number): DateTime;
|
|
14
14
|
export declare function setSegment(section: DateFieldSection, date: DateTime, amount: number): DateTime;
|
|
15
15
|
export declare function splitFormatIntoSections(format: string): DateFieldSectionWithoutPosition[];
|
|
16
16
|
export declare function cleanString(dirtyString: string): string;
|
|
17
|
-
export declare function getEditableSections(sections: DateFieldSectionWithoutPosition[], value: DateTime, validSegments:
|
|
17
|
+
export declare function getEditableSections(sections: DateFieldSectionWithoutPosition[], value: DateTime, validSegments: AvailableSections): DateFieldSection[];
|
|
18
18
|
export declare function isEditableSection(section: DateFieldSectionWithoutPosition): boolean;
|
|
19
|
-
export declare function toEditableSection(section: DateFieldSectionWithoutPosition, value: DateTime, validSegments:
|
|
19
|
+
export declare function toEditableSection(section: DateFieldSectionWithoutPosition, value: DateTime, validSegments: AvailableSections, position: number, previousEditableSection: number): DateFieldSection;
|
|
20
20
|
export declare function getCurrentEditableSectionIndex(sections: DateFieldSection[], selectedSections: 'all' | number): number;
|
|
21
21
|
export declare function formatSections(sections: DateFieldSection[]): string;
|
|
22
22
|
export declare function parseDateFromString(str: string, format: string, timeZone?: string): DateTime;
|
|
23
|
-
export declare function isAllSegmentsValid(allSegments:
|
|
23
|
+
export declare function isAllSegmentsValid(allSegments: AvailableSections, validSegments: AvailableSections): boolean;
|
|
24
24
|
export declare function useFormatSections(format: string): DateFieldSectionWithoutPosition[];
|
|
25
|
+
export declare function getFormatInfo(sections: DateFieldSectionWithoutPosition[]): FormatInfo;
|
|
26
|
+
export declare function adjustDateToFormat(date: DateTime, formatInfo: FormatInfo, method?: 'startOf' | 'endOf'): DateTime;
|
|
27
|
+
export declare function markValidSection(allSections: AvailableSections, editableSections: AvailableSections, unit: DateFieldSectionType): {
|
|
28
|
+
year?: boolean | undefined;
|
|
29
|
+
month?: boolean | undefined;
|
|
30
|
+
day?: boolean | undefined;
|
|
31
|
+
hour?: boolean | undefined;
|
|
32
|
+
minute?: boolean | undefined;
|
|
33
|
+
second?: boolean | undefined;
|
|
34
|
+
quarter?: boolean | undefined;
|
|
35
|
+
weekday?: boolean | undefined;
|
|
36
|
+
dayPeriod?: boolean | undefined;
|
|
37
|
+
literal?: boolean | undefined;
|
|
38
|
+
timeZoneName?: boolean | undefined;
|
|
39
|
+
unknown?: boolean | undefined;
|
|
40
|
+
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { dateTime, expandFormat } from '@gravity-ui/date-utils';
|
|
3
|
-
import { mergeDateTime } from
|
|
4
|
-
import { i18n } from
|
|
3
|
+
import { mergeDateTime } from "../utils/dates.js";
|
|
4
|
+
import { i18n } from "./i18n/index.js";
|
|
5
5
|
export const EDITABLE_SEGMENTS = {
|
|
6
6
|
year: true,
|
|
7
|
+
quarter: true,
|
|
7
8
|
month: true,
|
|
8
9
|
day: true,
|
|
9
10
|
hour: true,
|
|
@@ -17,6 +18,8 @@ const formatTokenMap = {
|
|
|
17
18
|
// Year
|
|
18
19
|
YY: 'year',
|
|
19
20
|
YYYY: 'year',
|
|
21
|
+
// Quarter
|
|
22
|
+
Q: 'quarter',
|
|
20
23
|
// Month
|
|
21
24
|
M: 'month',
|
|
22
25
|
MM: 'month',
|
|
@@ -91,6 +94,9 @@ export function getSectionLimits(section, date) {
|
|
|
91
94
|
maxValue: isFourDigit ? 9999 : 99,
|
|
92
95
|
};
|
|
93
96
|
}
|
|
97
|
+
case 'quarter': {
|
|
98
|
+
return { minValue: 1, maxValue: 4 };
|
|
99
|
+
}
|
|
94
100
|
case 'month': {
|
|
95
101
|
return {
|
|
96
102
|
minValue: 0,
|
|
@@ -140,6 +146,7 @@ export function getSectionValue(section, date) {
|
|
|
140
146
|
? date.year()
|
|
141
147
|
: Number(date.format(section.format));
|
|
142
148
|
}
|
|
149
|
+
case 'quarter':
|
|
143
150
|
case 'month':
|
|
144
151
|
case 'hour':
|
|
145
152
|
case 'minute':
|
|
@@ -190,6 +197,9 @@ export function addSegment(section, date, amount) {
|
|
|
190
197
|
if (section.type === 'year' && !isFourDigitYearFormat(section.format)) {
|
|
191
198
|
val = dateTime({ input: `${val}`.padStart(2, '0'), format: section.format }).year();
|
|
192
199
|
}
|
|
200
|
+
if (section.type === 'quarter') {
|
|
201
|
+
return date.set(getDurationUnitFromSectionType('month'), val * 3 - 1);
|
|
202
|
+
}
|
|
193
203
|
const type = getDurationUnitFromSectionType(section.type);
|
|
194
204
|
return date.set(type, val);
|
|
195
205
|
}
|
|
@@ -204,6 +214,9 @@ export function setSegment(section, date, amount) {
|
|
|
204
214
|
format: section.format,
|
|
205
215
|
}).year());
|
|
206
216
|
}
|
|
217
|
+
case 'quarter': {
|
|
218
|
+
return date.set(getDurationUnitFromSectionType('month'), amount * 3 - 1);
|
|
219
|
+
}
|
|
207
220
|
case 'day':
|
|
208
221
|
case 'weekday':
|
|
209
222
|
case 'month': {
|
|
@@ -253,6 +266,9 @@ function doesSectionHaveLeadingZeros(contentType, sectionType, format) {
|
|
|
253
266
|
const formatted2001 = dateTime().set('year', 2001).format(format);
|
|
254
267
|
return formatted2001 === '01';
|
|
255
268
|
}
|
|
269
|
+
case 'quarter': {
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
256
272
|
case 'month': {
|
|
257
273
|
return dateTime().startOf('year').format(format).length > 1;
|
|
258
274
|
}
|
|
@@ -281,6 +297,9 @@ function getSectionPlaceholder(sectionConfig, currentTokenValue) {
|
|
|
281
297
|
case 'year': {
|
|
282
298
|
return i18n('year_placeholder').repeat(dateTime().format(currentTokenValue).length);
|
|
283
299
|
}
|
|
300
|
+
case 'quarter': {
|
|
301
|
+
return i18n('quarter_placeholder');
|
|
302
|
+
}
|
|
284
303
|
case 'month': {
|
|
285
304
|
return i18n('month_placeholder').repeat(sectionConfig.contentType === 'letter' ? 4 : 2);
|
|
286
305
|
}
|
|
@@ -502,3 +521,65 @@ export function useFormatSections(format) {
|
|
|
502
521
|
}
|
|
503
522
|
return sections;
|
|
504
523
|
}
|
|
524
|
+
const dateUnits = ['day', 'month', 'quarter', 'year'];
|
|
525
|
+
const timeUnits = ['second', 'minute', 'hour'];
|
|
526
|
+
export function getFormatInfo(sections) {
|
|
527
|
+
var _a, _b;
|
|
528
|
+
const availableUnits = {};
|
|
529
|
+
let hasDate = false;
|
|
530
|
+
let hasTime = false;
|
|
531
|
+
let minDateUnitIndex = dateUnits.length - 1;
|
|
532
|
+
let minTimeUnitIndex = timeUnits.length - 1;
|
|
533
|
+
for (const s of sections) {
|
|
534
|
+
if (!isEditableSection(s)) {
|
|
535
|
+
continue;
|
|
536
|
+
}
|
|
537
|
+
const dateUnitIndex = dateUnits.indexOf(s.type);
|
|
538
|
+
const timeUnitIndex = timeUnits.indexOf(s.type);
|
|
539
|
+
availableUnits[s.type] = true;
|
|
540
|
+
hasDate || (hasDate = dateUnitIndex !== -1);
|
|
541
|
+
hasTime || (hasTime = timeUnitIndex !== -1);
|
|
542
|
+
minDateUnitIndex =
|
|
543
|
+
dateUnitIndex === -1 ? minDateUnitIndex : Math.min(dateUnitIndex, minDateUnitIndex);
|
|
544
|
+
minTimeUnitIndex =
|
|
545
|
+
timeUnitIndex === -1 ? minTimeUnitIndex : Math.min(timeUnitIndex, minTimeUnitIndex);
|
|
546
|
+
}
|
|
547
|
+
return {
|
|
548
|
+
availableUnits,
|
|
549
|
+
hasDate,
|
|
550
|
+
hasTime,
|
|
551
|
+
minDateUnit: (_a = dateUnits[minDateUnitIndex]) !== null && _a !== void 0 ? _a : 'day',
|
|
552
|
+
minTimeUnit: (_b = timeUnits[minTimeUnitIndex]) !== null && _b !== void 0 ? _b : 'second',
|
|
553
|
+
};
|
|
554
|
+
}
|
|
555
|
+
export function adjustDateToFormat(date, formatInfo, method = 'startOf') {
|
|
556
|
+
let newDate = date;
|
|
557
|
+
if (formatInfo.hasDate) {
|
|
558
|
+
if (formatInfo.minDateUnit !== 'day') {
|
|
559
|
+
newDate = newDate[method](formatInfo.minDateUnit);
|
|
560
|
+
newDate = mergeDateTime(newDate, date);
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
if (formatInfo.hasTime) {
|
|
564
|
+
newDate = mergeDateTime(newDate, date[method](formatInfo.minTimeUnit));
|
|
565
|
+
}
|
|
566
|
+
return newDate;
|
|
567
|
+
}
|
|
568
|
+
export function markValidSection(allSections, editableSections, unit) {
|
|
569
|
+
const validSections = Object.assign({}, editableSections);
|
|
570
|
+
validSections[unit] = true;
|
|
571
|
+
if (validSections.day && validSections.month && validSections.year && allSections.weekday) {
|
|
572
|
+
validSections.weekday = true;
|
|
573
|
+
}
|
|
574
|
+
if (validSections.month && allSections.quarter) {
|
|
575
|
+
validSections.quarter = true;
|
|
576
|
+
}
|
|
577
|
+
if (validSections.quarter && allSections.month) {
|
|
578
|
+
validSections.month = true;
|
|
579
|
+
}
|
|
580
|
+
if (validSections.hour && allSections.dayPeriod) {
|
|
581
|
+
validSections.dayPeriod = true;
|
|
582
|
+
}
|
|
583
|
+
return validSections;
|
|
584
|
+
}
|
|
585
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"../../../../src","sources":["components/DateField/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport {dateTime, expandFormat} from '@gravity-ui/date-utils';\nimport type {DateTime} from '@gravity-ui/date-utils';\n\nimport {mergeDateTime} from '../utils/dates';\n\nimport {i18n} from './i18n';\nimport type {\n AvailableSections,\n DateFieldSection,\n DateFieldSectionType,\n DateFieldSectionWithoutPosition,\n DateFormatTokenMap,\n FormatInfo,\n} from './types';\n\nexport const EDITABLE_SEGMENTS: AvailableSections = {\n year: true,\n quarter: true,\n month: true,\n day: true,\n hour: true,\n minute: true,\n second: true,\n dayPeriod: true,\n weekday: true,\n};\n\nconst escapedCharacters = {start: '[', end: ']'};\n\nconst formatTokenMap: DateFormatTokenMap = {\n // Year\n YY: 'year',\n YYYY: 'year',\n\n // Quarter\n Q: 'quarter',\n\n // Month\n M: 'month',\n MM: 'month',\n MMM: {sectionType: 'month', contentType: 'letter'},\n MMMM: {sectionType: 'month', contentType: 'letter'},\n\n // Day of the month\n D: 'day',\n DD: 'day',\n Do: 'day',\n\n // Day of the week\n d: 'weekday',\n dd: {sectionType: 'weekday', contentType: 'letter'},\n ddd: {sectionType: 'weekday', contentType: 'letter'},\n dddd: {sectionType: 'weekday', contentType: 'letter'},\n\n // Day period AM, PM\n A: {sectionType: 'dayPeriod', contentType: 'letter'},\n a: {sectionType: 'dayPeriod', contentType: 'letter'},\n\n // Hours\n H: 'hour',\n HH: 'hour',\n h: 'hour',\n hh: 'hour',\n\n // Minutes\n m: 'minute',\n mm: 'minute',\n\n // Seconds\n s: 'second',\n ss: 'second',\n\n // Timezone\n z: {sectionType: 'timeZoneName', contentType: 'letter'},\n zzz: {sectionType: 'timeZoneName', contentType: 'letter'},\n Z: {sectionType: 'timeZoneName', contentType: 'letter'},\n ZZ: {sectionType: 'timeZoneName', contentType: 'letter'},\n};\n\nfunction getDateSectionConfigFromFormatToken(formatToken: string): {\n type: DateFieldSectionType;\n contentType: 'letter' | 'digit';\n} {\n const config = formatTokenMap[formatToken];\n\n if (!config) {\n // eslint-disable-next-line no-console\n console.error(\n [\n `The token \"${formatToken}\" is not supported by the Date field.`,\n 'Please try using another token.',\n ].join('\\n'),\n );\n return {\n type: 'literal',\n contentType: 'letter',\n };\n }\n\n if (typeof config === 'string') {\n return {\n type: config,\n contentType: 'digit',\n };\n }\n\n return {\n type: config.sectionType,\n contentType: config.contentType,\n };\n}\n\nfunction isFourDigitYearFormat(format: string) {\n return dateTime().format(format).length === 4;\n}\n\nfunction isHour12(format: string) {\n return dateTime().set('hour', 15).format(format) !== '15';\n}\n\nexport function getSectionLimits(section: DateFieldSectionWithoutPosition, date: DateTime) {\n const {type, format} = section;\n switch (type) {\n case 'year': {\n const isFourDigit = isFourDigitYearFormat(format);\n return {\n minValue: isFourDigit ? 1 : 0,\n maxValue: isFourDigit ? 9999 : 99,\n };\n }\n case 'quarter': {\n return {minValue: 1, maxValue: 4};\n }\n case 'month': {\n return {\n minValue: 0,\n maxValue: 11,\n };\n }\n case 'weekday': {\n return {\n minValue: 0,\n maxValue: 6,\n };\n }\n case 'day': {\n return {\n minValue: 1,\n maxValue: date ? date.daysInMonth() : 31,\n };\n }\n case 'hour': {\n if (isHour12(format)) {\n const isPM = date.hour() >= 12;\n return {\n minValue: isPM ? 12 : 0,\n maxValue: isPM ? 23 : 11,\n };\n }\n return {\n minValue: 0,\n maxValue: 23,\n };\n }\n case 'minute':\n case 'second': {\n return {\n minValue: 0,\n maxValue: 59,\n };\n }\n }\n return {};\n}\n\nexport function getSectionValue(section: DateFieldSectionWithoutPosition, date: DateTime) {\n const type = section.type;\n switch (type) {\n case 'year': {\n return isFourDigitYearFormat(section.format)\n ? date.year()\n : Number(date.format(section.format));\n }\n case 'quarter':\n case 'month':\n case 'hour':\n case 'minute':\n case 'second': {\n return date[type]();\n }\n case 'day': {\n return date.date();\n }\n case 'weekday': {\n return date.day();\n }\n case 'dayPeriod': {\n return date.hour() >= 12 ? 12 : 0;\n }\n }\n return undefined;\n}\n\nconst TYPE_MAPPING = {\n weekday: 'day',\n day: 'date',\n dayPeriod: 'hour',\n} as const;\n\nexport function getDurationUnitFromSectionType(type: DateFieldSectionType) {\n if (type === 'literal' || type === 'timeZoneName' || type === 'unknown') {\n throw new Error(`${type} section does not have duration unit.`);\n }\n\n if (type in TYPE_MAPPING) {\n return TYPE_MAPPING[type as keyof typeof TYPE_MAPPING];\n }\n\n return type as Exclude<\n DateFieldSectionType,\n keyof typeof TYPE_MAPPING | 'literal' | 'timeZoneName' | 'unknown'\n >;\n}\n\nexport function addSegment(section: DateFieldSection, date: DateTime, amount: number) {\n let val = section.value ?? 0;\n if (section.type === 'dayPeriod') {\n val = date.hour() + (date.hour() >= 12 ? -12 : 12);\n } else {\n val = val + amount;\n const min = section.minValue;\n const max = section.maxValue;\n if (typeof min === 'number' && typeof max === 'number') {\n const length = max - min + 1;\n val = ((val - min + length) % length) + min;\n }\n }\n\n if (section.type === 'year' && !isFourDigitYearFormat(section.format)) {\n val = dateTime({input: `${val}`.padStart(2, '0'), format: section.format}).year();\n }\n\n if (section.type === 'quarter') {\n return date.set(getDurationUnitFromSectionType('month'), val * 3 - 1);\n }\n\n const type = getDurationUnitFromSectionType(section.type);\n return date.set(type, val);\n}\n\nexport function setSegment(section: DateFieldSection, date: DateTime, amount: number) {\n const type = section.type;\n switch (type) {\n case 'year': {\n return date.set(\n 'year',\n isFourDigitYearFormat(section.format)\n ? amount\n : dateTime({\n input: `${amount}`.padStart(2, '0'),\n format: section.format,\n }).year(),\n );\n }\n case 'quarter': {\n return date.set(getDurationUnitFromSectionType('month'), amount * 3 - 1);\n }\n case 'day':\n case 'weekday':\n case 'month': {\n return date.set(getDurationUnitFromSectionType(type), amount);\n }\n case 'dayPeriod': {\n const hours = date.hour();\n const wasPM = hours >= 12;\n const isPM = amount >= 12;\n if (isPM === wasPM) {\n return date;\n }\n return date.set('hour', wasPM ? hours - 12 : hours + 12);\n }\n case 'hour': {\n // In 12 hour time, ensure that AM/PM does not change\n let sectionAmount = amount;\n if (section.minValue === 12 || section.maxValue === 11) {\n const hours = date.hour();\n const wasPM = hours >= 12;\n if (!wasPM && sectionAmount === 12) {\n sectionAmount = 0;\n }\n if (wasPM && sectionAmount < 12) {\n sectionAmount += 12;\n }\n }\n return date.set('hour', sectionAmount);\n }\n case 'minute':\n case 'second': {\n return date.set(type, amount);\n }\n }\n\n return date;\n}\n\nfunction doesSectionHaveLeadingZeros(\n contentType: 'digit' | 'letter',\n sectionType: DateFieldSectionType,\n format: string,\n) {\n if (contentType !== 'digit') {\n return false;\n }\n\n switch (sectionType) {\n case 'year': {\n if (isFourDigitYearFormat(format)) {\n const formatted0001 = dateTime().set('year', 1).format(format);\n return formatted0001 === '0001';\n }\n\n const formatted2001 = dateTime().set('year', 2001).format(format);\n return formatted2001 === '01';\n }\n\n case 'quarter': {\n return false;\n }\n\n case 'month': {\n return dateTime().startOf('year').format(format).length > 1;\n }\n\n case 'day': {\n return dateTime().startOf('month').format(format).length > 1;\n }\n\n case 'weekday': {\n return dateTime().startOf('week').format(format).length > 1;\n }\n\n case 'hour': {\n return dateTime().set('hour', 1).format(format).length > 1;\n }\n\n case 'minute': {\n return dateTime().set('minute', 1).format(format).length > 1;\n }\n\n case 'second': {\n return dateTime().set('second', 1).format(format).length > 1;\n }\n\n default: {\n throw new Error('Invalid section type');\n }\n }\n}\n\nfunction getSectionPlaceholder(\n sectionConfig: Pick<DateFieldSection, 'type' | 'contentType'>,\n currentTokenValue: string,\n) {\n switch (sectionConfig.type) {\n case 'year': {\n return i18n('year_placeholder').repeat(dateTime().format(currentTokenValue).length);\n }\n\n case 'quarter': {\n return i18n('quarter_placeholder');\n }\n\n case 'month': {\n return i18n('month_placeholder').repeat(sectionConfig.contentType === 'letter' ? 4 : 2);\n }\n\n case 'day': {\n return i18n('day_placeholder').repeat(2);\n }\n\n case 'weekday': {\n return i18n('weekday_placeholder').repeat(\n sectionConfig.contentType === 'letter' ? 4 : 2,\n );\n }\n\n case 'hour': {\n return i18n('hour_placeholder').repeat(2);\n }\n\n case 'minute': {\n return i18n('minute_placeholder').repeat(2);\n }\n\n case 'second': {\n return i18n('second_placeholder').repeat(2);\n }\n\n case 'dayPeriod': {\n return i18n('dayPeriod_placeholder');\n }\n\n default: {\n return currentTokenValue;\n }\n }\n}\n\nexport function splitFormatIntoSections(format: string) {\n const sections: DateFieldSectionWithoutPosition[] = [];\n\n const expandedFormat = expandFormat(format);\n\n let currentTokenValue = '';\n let isSeparator = false;\n let isInEscapeBoundary = false;\n for (let i = 0; i < expandedFormat.length; i++) {\n const char = expandedFormat[i] || '';\n if (isInEscapeBoundary) {\n if (char === escapedCharacters.end) {\n isInEscapeBoundary = false;\n continue;\n }\n currentTokenValue += char;\n } else if (char.match(/[a-zA-Z]/)) {\n if (isSeparator) {\n addLiteralSection(sections, currentTokenValue);\n currentTokenValue = '';\n }\n isSeparator = false;\n currentTokenValue += char;\n } else {\n if (!isSeparator) {\n addFormatSection(sections, currentTokenValue);\n currentTokenValue = '';\n }\n isSeparator = true;\n if (char === escapedCharacters.start) {\n isInEscapeBoundary = true;\n } else {\n currentTokenValue += char;\n }\n }\n }\n if (currentTokenValue) {\n if (isSeparator) {\n addLiteralSection(sections, currentTokenValue);\n } else {\n addFormatSection(sections, currentTokenValue);\n }\n }\n\n return sections;\n}\n\nfunction addFormatSection(sections: DateFieldSectionWithoutPosition[], token: string) {\n if (!token) {\n return;\n }\n\n const sectionConfig = getDateSectionConfigFromFormatToken(token);\n\n const hasLeadingZeros = doesSectionHaveLeadingZeros(\n sectionConfig.contentType,\n sectionConfig.type,\n token,\n );\n\n sections.push({\n ...sectionConfig,\n format: token,\n placeholder: getSectionPlaceholder(sectionConfig, token),\n options: getSectionOptions(sectionConfig, token),\n hasLeadingZeros,\n });\n}\n\nfunction addLiteralSection(sections: DateFieldSectionWithoutPosition[], token: string) {\n if (!token) {\n return;\n }\n\n sections.push({\n type: 'literal',\n contentType: 'letter',\n format: token,\n placeholder: token,\n hasLeadingZeros: false,\n });\n}\n\nfunction getSectionOptions(\n section: Pick<DateFieldSectionWithoutPosition, 'type' | 'contentType'>,\n token: string,\n) {\n switch (section.type) {\n case 'month': {\n const format = section.contentType === 'letter' ? token : 'MMMM';\n let date = dateTime().startOf('year');\n const options: string[] = [];\n for (let i = 0; i < 12; i++) {\n options.push(date.format(format).toLocaleUpperCase());\n date = date.add(1, 'months');\n }\n return options;\n }\n case 'dayPeriod': {\n const amDayPeriod = dateTime().hour(0);\n const pmDayPeriod = amDayPeriod.hour(12);\n const options = [\n amDayPeriod.format(token).toLocaleUpperCase(),\n pmDayPeriod.format(token).toLocaleUpperCase(),\n ];\n return options;\n }\n case 'weekday': {\n const format = section.contentType === 'letter' ? token : 'dddd';\n let date = dateTime().day(0);\n const options: string[] = [];\n for (let i = 0; i < 7; i++) {\n options.push(date.format(format).toLocaleUpperCase());\n date = date.add(1, 'day');\n }\n return options;\n }\n }\n\n return undefined;\n}\n\nexport function cleanString(dirtyString: string) {\n return dirtyString.replace(/[\\u2066\\u2067\\u2068\\u2069]/g, '');\n}\n\nexport function getEditableSections(\n sections: DateFieldSectionWithoutPosition[],\n value: DateTime,\n validSegments: AvailableSections,\n) {\n let position = 1;\n const newSections: DateFieldSection[] = [];\n let previousEditableSection = -1;\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n if (!section) {\n continue;\n }\n\n const newSection = toEditableSection(\n section,\n value,\n validSegments,\n position,\n previousEditableSection,\n );\n\n newSections.push(newSection);\n\n if (isEditableSection(section)) {\n for (let j = Math.max(0, previousEditableSection); j <= i; j++) {\n const prevSection = newSections[j];\n if (prevSection) {\n prevSection.nextEditableSection = i;\n if (prevSection.previousEditableSection === -1) {\n prevSection.previousEditableSection = i;\n }\n }\n }\n previousEditableSection = i;\n }\n\n position += newSection.textValue.length;\n }\n\n return newSections;\n}\n\nexport function isEditableSection(section: DateFieldSectionWithoutPosition): boolean {\n return EDITABLE_SEGMENTS[section.type] ?? false;\n}\n\nexport function toEditableSection(\n section: DateFieldSectionWithoutPosition,\n value: DateTime,\n validSegments: AvailableSections,\n position: number,\n previousEditableSection: number,\n): DateFieldSection {\n const isEditable = isEditableSection(section);\n let renderedValue = section.placeholder;\n if ((isEditable && validSegments[section.type]) || section.type === 'timeZoneName') {\n renderedValue = value.format(section.format);\n if (section.contentType === 'digit' && renderedValue.length < section.placeholder.length) {\n renderedValue = renderedValue.padStart(section.placeholder.length, '0');\n }\n }\n\n // use bidirectional context to allow the browser autodetect text direction\n renderedValue = '\\u2068' + renderedValue + '\\u2069';\n\n const sectionLength = renderedValue.length;\n\n const newSection = {\n ...section,\n value: getSectionValue(section, value),\n textValue: renderedValue,\n start: position,\n end: position + sectionLength,\n modified: false,\n previousEditableSection,\n nextEditableSection: previousEditableSection,\n ...getSectionLimits(section, value),\n };\n\n return newSection;\n}\n\nexport function getCurrentEditableSectionIndex(\n sections: DateFieldSection[],\n selectedSections: 'all' | number,\n) {\n const currentIndex =\n selectedSections === 'all' || selectedSections === -1 ? 0 : selectedSections;\n const section = sections[currentIndex];\n if (section && !EDITABLE_SEGMENTS[section.type]) {\n return section.nextEditableSection;\n }\n return section ? currentIndex : -1;\n}\n\nexport function formatSections(sections: DateFieldSection[]): string {\n // use ltr direction context to get predictable navigation inside input\n return '\\u2066' + sections.map((s) => s.textValue).join('') + '\\u2069';\n}\n\nfunction parseDate(options: {input: string; format: string; timeZone?: string}) {\n let date = dateTime(options);\n if (!date.isValid()) {\n date = dateTime({...options, format: undefined});\n }\n return date;\n}\n\nfunction isDateStringWithTimeZone(str: string) {\n return /z$/i.test(str) || /[+-]\\d\\d:\\d\\d$/.test(str);\n}\n\nexport function parseDateFromString(str: string, format: string, timeZone?: string): DateTime {\n let date = parseDate({input: str, format, timeZone});\n if (date.isValid()) {\n if (timeZone && !isDateStringWithTimeZone(str)) {\n const time = parseDate({input: str, format});\n date = mergeDateTime(date, time);\n }\n }\n\n return date;\n}\n\nexport function isAllSegmentsValid(\n allSegments: AvailableSections,\n validSegments: AvailableSections,\n) {\n return Object.keys(allSegments).every((key) => validSegments[key as keyof AvailableSections]);\n}\n\nexport function useFormatSections(format: string) {\n const usedFormat = format;\n const [sections, setSections] = React.useState(() => splitFormatIntoSections(usedFormat));\n\n const [previousFormat, setFormat] = React.useState(usedFormat);\n if (usedFormat !== previousFormat) {\n setFormat(usedFormat);\n setSections(splitFormatIntoSections(usedFormat));\n }\n\n return sections;\n}\n\nconst dateUnits = ['day', 'month', 'quarter', 'year'] satisfies DateFieldSectionType[];\nconst timeUnits = ['second', 'minute', 'hour'] satisfies DateFieldSectionType[];\n\nexport function getFormatInfo(sections: DateFieldSectionWithoutPosition[]): FormatInfo {\n const availableUnits: AvailableSections = {};\n let hasDate = false;\n let hasTime = false;\n let minDateUnitIndex = dateUnits.length - 1;\n let minTimeUnitIndex = timeUnits.length - 1;\n for (const s of sections) {\n if (!isEditableSection(s)) {\n continue;\n }\n const dateUnitIndex = dateUnits.indexOf(s.type as any);\n const timeUnitIndex = timeUnits.indexOf(s.type as any);\n availableUnits[s.type] = true;\n hasDate ||= dateUnitIndex !== -1;\n hasTime ||= timeUnitIndex !== -1;\n minDateUnitIndex =\n dateUnitIndex === -1 ? minDateUnitIndex : Math.min(dateUnitIndex, minDateUnitIndex);\n minTimeUnitIndex =\n timeUnitIndex === -1 ? minTimeUnitIndex : Math.min(timeUnitIndex, minTimeUnitIndex);\n }\n return {\n availableUnits,\n hasDate,\n hasTime,\n minDateUnit: dateUnits[minDateUnitIndex] ?? 'day',\n minTimeUnit: timeUnits[minTimeUnitIndex] ?? 'second',\n };\n}\n\nexport function adjustDateToFormat(\n date: DateTime,\n formatInfo: FormatInfo,\n method: 'startOf' | 'endOf' = 'startOf',\n) {\n let newDate = date;\n if (formatInfo.hasDate) {\n if (formatInfo.minDateUnit !== 'day') {\n newDate = newDate[method](formatInfo.minDateUnit);\n newDate = mergeDateTime(newDate, date);\n }\n }\n if (formatInfo.hasTime) {\n newDate = mergeDateTime(newDate, date[method](formatInfo.minTimeUnit));\n }\n\n return newDate;\n}\n\nexport function markValidSection(\n allSections: AvailableSections,\n editableSections: AvailableSections,\n unit: DateFieldSectionType,\n) {\n const validSections = {...editableSections};\n validSections[unit] = true;\n if (validSections.day && validSections.month && validSections.year && allSections.weekday) {\n validSections.weekday = true;\n }\n if (validSections.month && allSections.quarter) {\n validSections.quarter = true;\n }\n if (validSections.quarter && allSections.month) {\n validSections.month = true;\n }\n if (validSections.hour && allSections.dayPeriod) {\n validSections.dayPeriod = true;\n }\n\n return validSections;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/DatePicker/data:;charset=utf-8,@use%20'../variables';%0A%0A$block:%20'.%23%7Bvariables.$ns%7Ddate-picker';%0A%0A%23%7B$block%7D%20%7B%0A%20%20%20%20position:%20relative;%0A%0A%20%20%20%20display:%20inline-block;%0A%0A%20%20%20%20outline:%20none;%0A%0A%20%20%20%20&__field%20%7B%0A%20%20%20%20%20%20%20%20width:%20100%25;%0A%0A%20%20%20%20%20%20%20%20&_mobile%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20pointer-events:%20none;%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20&__popup-anchor%20%7B%0A%20%20%20%20%20%20%20%20position:%20absolute;%0A%20%20%20%20%20%20%20%20z-index:%20-1;%0A%20%20%20%20%20%20%20%20inset:%200;%0A%20%20%20%20%7D%0A%0A%20%20%20%20&__popup-content%20%7B%0A%20%20%20%20%20%20%20%20outline:%20none;%0A%20%20%20%20%7D%0A%0A%20%20%20%20&__time-field%20%7B%0A%20%20%20%20%20%20%20%20width:%20100%25;%0A%0A%20%20%20%20%20%20%20%20&-wrapper%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20padding:%2010px;%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D%0A"],"names":[],"mappings":"AAIA;EACI;EAEA;EAEA;;AAEA;EACI;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAEA;EACI","sourcesContent":["@use '../variables';\n\n$block: '.#{variables.$ns}date-picker';\n\n#{$block} {\n position: relative;\n\n display: inline-block;\n\n outline: none;\n\n &__field {\n width: 100%;\n\n &_mobile {\n pointer-events: none;\n }\n }\n\n &__popup-anchor {\n position: absolute;\n z-index: -1;\n inset: 0;\n }\n\n &__popup-content {\n outline: none;\n }\n\n &__time-field {\n width: 100%;\n\n &-wrapper {\n padding: 10px;\n }\n }\n}\n"],"file":"DatePicker.css"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { DateTime } from '@gravity-ui/date-utils';
|
|
3
|
-
import type { CalendarProps } from
|
|
4
|
-
import type { AccessibilityProps, DomProps, FocusableProps, InputDOMProps, KeyboardEvents, StyleProps, TextInputProps } from
|
|
5
|
-
import type { DatePickerStateOptions } from
|
|
6
|
-
import
|
|
3
|
+
import type { CalendarProps } from "../Calendar/index.js";
|
|
4
|
+
import type { AccessibilityProps, DomProps, FocusableProps, InputDOMProps, KeyboardEvents, StyleProps, TextInputProps } from "../types/index.js";
|
|
5
|
+
import type { DatePickerStateOptions } from "./hooks/datePickerStateFactory.js";
|
|
6
|
+
import "./DatePicker.css";
|
|
7
7
|
export interface DatePickerProps<T = DateTime> extends DatePickerStateOptions<T>, TextInputProps, FocusableProps, KeyboardEvents, DomProps, InputDOMProps, StyleProps, AccessibilityProps {
|
|
8
8
|
children?: (props: CalendarProps<T>) => React.ReactNode;
|
|
9
9
|
disablePortal?: boolean;
|
|
@@ -4,23 +4,24 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { Calendar as CalendarIcon, Clock as ClockIcon } from '@gravity-ui/icons';
|
|
6
6
|
import { Button, Icon, Popup, TextInput, useMobile } from '@gravity-ui/uikit';
|
|
7
|
-
import { Calendar } from
|
|
8
|
-
import { DateField } from
|
|
9
|
-
import { HiddenInput } from
|
|
10
|
-
import { MobileCalendar } from
|
|
11
|
-
import { StubButton } from
|
|
12
|
-
import { useDatePickerProps } from
|
|
13
|
-
import { useDatePickerState } from
|
|
14
|
-
import { b } from
|
|
15
|
-
import
|
|
7
|
+
import { Calendar } from "../Calendar/index.js";
|
|
8
|
+
import { DateField } from "../DateField/index.js";
|
|
9
|
+
import { HiddenInput } from "../HiddenInput/HiddenInput.js";
|
|
10
|
+
import { MobileCalendar } from "./MobileCalendar.js";
|
|
11
|
+
import { StubButton } from "./StubButton.js";
|
|
12
|
+
import { useDatePickerProps } from "./hooks/useDatePickerProps.js";
|
|
13
|
+
import { useDatePickerState } from "./hooks/useDatePickerState.js";
|
|
14
|
+
import { b } from "./utils/index.js";
|
|
15
|
+
import "./DatePicker.css";
|
|
16
16
|
export function DatePicker(_a) {
|
|
17
17
|
var { className } = _a, props = __rest(_a, ["className"]);
|
|
18
18
|
const anchorRef = React.useRef(null);
|
|
19
19
|
const state = useDatePickerState(props);
|
|
20
20
|
const { groupProps, fieldProps, calendarButtonProps, popupProps, calendarProps, timeInputProps } = useDatePickerProps(state, props);
|
|
21
21
|
const isMobile = useMobile();
|
|
22
|
-
const isOnlyTime = state.hasTime && !state.hasDate;
|
|
23
|
-
return (_jsxs("div", Object.assign({ className: b(null, className) }, groupProps, { children: [isMobile ? (_jsx(MobileCalendar, { props: props, state: state })) : (!isOnlyTime && (_jsx("div", { ref: anchorRef, className: b('popup-anchor'), children: _jsx(Popup, Object.assign({ anchorRef: anchorRef }, popupProps, { children: _jsxs("div", { className: b('popup-content'), children: [typeof props.children === 'function' ? (props.children(calendarProps)) : (_jsx(Calendar, Object.assign({}, calendarProps))), state.hasTime && (_jsx("div", { className: b('time-field-wrapper'), children: _jsx(DateField, Object.assign({}, timeInputProps)) }))] }) })) }))), _jsx(TextInput, Object.assign({}, fieldProps, { className: b('field', { mobile: isMobile }), hasClear: !isMobile && fieldProps.hasClear, endContent: _jsxs(React.Fragment, { children: [!isMobile && !isOnlyTime && (_jsx(Button, Object.assign({}, calendarButtonProps, { children: _jsx(Icon, { data: CalendarIcon }) }))), !isMobile && isOnlyTime && (_jsx(StubButton, { size: calendarButtonProps.size, icon: ClockIcon })), isMobile && (_jsx(StubButton, { size: calendarButtonProps.size, icon: isOnlyTime ? ClockIcon : CalendarIcon }))] }) })), _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) => {
|
|
22
|
+
const isOnlyTime = state.formatInfo.hasTime && !state.formatInfo.hasDate;
|
|
23
|
+
return (_jsxs("div", Object.assign({ className: b(null, className) }, groupProps, { children: [isMobile ? (_jsx(MobileCalendar, { props: props, state: state })) : (!isOnlyTime && (_jsx("div", { ref: anchorRef, className: b('popup-anchor'), children: _jsx(Popup, Object.assign({ anchorRef: anchorRef }, popupProps, { children: _jsxs("div", { className: b('popup-content'), children: [typeof props.children === 'function' ? (props.children(calendarProps)) : (_jsx(Calendar, Object.assign({}, calendarProps))), state.formatInfo.hasTime && (_jsx("div", { className: b('time-field-wrapper'), children: _jsx(DateField, Object.assign({}, timeInputProps)) }))] }) })) }))), _jsx(TextInput, Object.assign({}, fieldProps, { className: b('field', { mobile: isMobile }), hasClear: !isMobile && fieldProps.hasClear, endContent: _jsxs(React.Fragment, { children: [!isMobile && !isOnlyTime && (_jsx(Button, Object.assign({}, calendarButtonProps, { children: _jsx(Icon, { data: CalendarIcon }) }))), !isMobile && isOnlyTime && (_jsx(StubButton, { size: calendarButtonProps.size, icon: ClockIcon })), isMobile && (_jsx(StubButton, { size: calendarButtonProps.size, icon: isOnlyTime ? ClockIcon : CalendarIcon }))] }) })), _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) => {
|
|
24
24
|
state.setValue(value);
|
|
25
25
|
}, disabled: state.disabled, form: props.form })] })));
|
|
26
26
|
}
|
|
27
|
+
//# sourceMappingURL=DatePicker.js.map
|