@mantine/dates 9.0.0-alpha.5 → 9.0.0-alpha.6
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/cjs/_virtual/_rolldown/runtime.cjs +24 -0
- package/cjs/components/Calendar/Calendar.cjs +250 -344
- package/cjs/components/Calendar/Calendar.cjs.map +1 -1
- package/cjs/components/Calendar/clamp-level/clamp-level.cjs +11 -19
- package/cjs/components/Calendar/clamp-level/clamp-level.cjs.map +1 -1
- package/cjs/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.cjs +64 -130
- package/cjs/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.cjs.map +1 -1
- package/cjs/components/CalendarHeader/CalendarHeader.cjs +100 -145
- package/cjs/components/CalendarHeader/CalendarHeader.cjs.map +1 -1
- package/cjs/components/CalendarHeader/CalendarHeader.module.cjs +12 -0
- package/cjs/components/CalendarHeader/CalendarHeader.module.cjs.map +1 -0
- package/cjs/components/DateInput/DateInput.cjs +188 -242
- package/cjs/components/DateInput/DateInput.cjs.map +1 -1
- package/cjs/components/DateInput/date-string-parser/date-string-parser.cjs +12 -19
- package/cjs/components/DateInput/date-string-parser/date-string-parser.cjs.map +1 -1
- package/cjs/components/DateInput/is-date-valid/is-date-valid.cjs +13 -24
- package/cjs/components/DateInput/is-date-valid/is-date-valid.cjs.map +1 -1
- package/cjs/components/DatePicker/DatePicker.cjs +121 -154
- package/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
- package/cjs/components/DatePicker/DatePicker.module.cjs +11 -0
- package/cjs/components/DatePicker/DatePicker.module.cjs.map +1 -0
- package/cjs/components/DatePickerInput/DatePickerInput.cjs +85 -123
- package/cjs/components/DatePickerInput/DatePickerInput.cjs.map +1 -1
- package/cjs/components/DateTimePicker/DateTimePicker.cjs +187 -233
- package/cjs/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
- package/cjs/components/DateTimePicker/DateTimePicker.module.cjs +10 -0
- package/cjs/components/DateTimePicker/DateTimePicker.module.cjs.map +1 -0
- package/cjs/components/DateTimePicker/get-min-max-time/get-min-max-time.cjs +12 -15
- package/cjs/components/DateTimePicker/get-min-max-time/get-min-max-time.cjs.map +1 -1
- package/cjs/components/DatesProvider/DatesProvider.cjs +21 -15
- package/cjs/components/DatesProvider/DatesProvider.cjs.map +1 -1
- package/cjs/components/DatesProvider/use-dates-context.cjs +20 -29
- package/cjs/components/DatesProvider/use-dates-context.cjs.map +1 -1
- package/cjs/components/Day/Day.cjs +49 -83
- package/cjs/components/Day/Day.cjs.map +1 -1
- package/cjs/components/Day/Day.module.cjs +7 -0
- package/cjs/components/Day/Day.module.cjs.map +1 -0
- package/cjs/components/DecadeLevel/DecadeLevel.cjs +75 -124
- package/cjs/components/DecadeLevel/DecadeLevel.cjs.map +1 -1
- package/cjs/components/DecadeLevel/get-decade-range/get-decade-range.cjs +8 -9
- package/cjs/components/DecadeLevel/get-decade-range/get-decade-range.cjs.map +1 -1
- package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.cjs +81 -131
- package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.cjs.map +1 -1
- package/cjs/components/HiddenDatesInput/HiddenDatesInput.cjs +30 -36
- package/cjs/components/HiddenDatesInput/HiddenDatesInput.cjs.map +1 -1
- package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.cjs +281 -340
- package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.cjs.map +1 -1
- package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.module.cjs +13 -0
- package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.module.cjs.map +1 -0
- package/cjs/components/LevelsGroup/LevelsGroup.cjs +30 -38
- package/cjs/components/LevelsGroup/LevelsGroup.cjs.map +1 -1
- package/cjs/components/LevelsGroup/LevelsGroup.module.cjs +7 -0
- package/cjs/components/LevelsGroup/LevelsGroup.module.cjs.map +1 -0
- package/cjs/components/MiniCalendar/MiniCalendar.cjs +124 -153
- package/cjs/components/MiniCalendar/MiniCalendar.cjs.map +1 -1
- package/cjs/components/MiniCalendar/MiniCalendar.module.cjs +14 -0
- package/cjs/components/MiniCalendar/MiniCalendar.module.cjs.map +1 -0
- package/cjs/components/Month/Month.cjs +152 -200
- package/cjs/components/Month/Month.cjs.map +1 -1
- package/cjs/components/Month/Month.module.cjs +11 -0
- package/cjs/components/Month/Month.module.cjs.map +1 -0
- package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.cjs +18 -35
- package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.cjs.map +1 -1
- package/cjs/components/Month/get-end-of-week/get-end-of-week.cjs +13 -20
- package/cjs/components/Month/get-end-of-week/get-end-of-week.cjs.map +1 -1
- package/cjs/components/Month/get-month-days/get-month-days.cjs +38 -47
- package/cjs/components/Month/get-month-days/get-month-days.cjs.map +1 -1
- package/cjs/components/Month/get-start-of-week/get-start-of-week.cjs +11 -16
- package/cjs/components/Month/get-start-of-week/get-start-of-week.cjs.map +1 -1
- package/cjs/components/Month/get-week-number/get-week-number.cjs +12 -16
- package/cjs/components/Month/get-week-number/get-week-number.cjs.map +1 -1
- package/cjs/components/Month/is-after-min-date/is-after-min-date.cjs +9 -12
- package/cjs/components/Month/is-after-min-date/is-after-min-date.cjs.map +1 -1
- package/cjs/components/Month/is-before-max-date/is-before-max-date.cjs +9 -12
- package/cjs/components/Month/is-before-max-date/is-before-max-date.cjs.map +1 -1
- package/cjs/components/Month/is-same-month/is-same-month.cjs +9 -12
- package/cjs/components/Month/is-same-month/is-same-month.cjs.map +1 -1
- package/cjs/components/MonthLevel/MonthLevel.cjs +83 -141
- package/cjs/components/MonthLevel/MonthLevel.cjs.map +1 -1
- package/cjs/components/MonthLevelGroup/MonthLevelGroup.cjs +92 -154
- package/cjs/components/MonthLevelGroup/MonthLevelGroup.cjs.map +1 -1
- package/cjs/components/MonthPicker/MonthPicker.cjs +49 -75
- package/cjs/components/MonthPicker/MonthPicker.cjs.map +1 -1
- package/cjs/components/MonthPicker/MonthPicker.module.cjs +11 -0
- package/cjs/components/MonthPicker/MonthPicker.module.cjs.map +1 -0
- package/cjs/components/MonthPickerInput/MonthPickerInput.cjs +86 -119
- package/cjs/components/MonthPickerInput/MonthPickerInput.cjs.map +1 -1
- package/cjs/components/MonthsList/MonthsList.cjs +105 -139
- package/cjs/components/MonthsList/MonthsList.cjs.map +1 -1
- package/cjs/components/MonthsList/MonthsList.module.cjs +10 -0
- package/cjs/components/MonthsList/MonthsList.module.cjs.map +1 -0
- package/cjs/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.cjs +20 -30
- package/cjs/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.cjs.map +1 -1
- package/cjs/components/MonthsList/get-months-data/get-months-data.cjs +21 -21
- package/cjs/components/MonthsList/get-months-data/get-months-data.cjs.map +1 -1
- package/cjs/components/MonthsList/is-month-disabled/is-month-disabled.cjs +12 -21
- package/cjs/components/MonthsList/is-month-disabled/is-month-disabled.cjs.map +1 -1
- package/cjs/components/PickerControl/PickerControl.cjs +43 -65
- package/cjs/components/PickerControl/PickerControl.cjs.map +1 -1
- package/cjs/components/PickerControl/PickerControl.module.cjs +7 -0
- package/cjs/components/PickerControl/PickerControl.module.cjs.map +1 -0
- package/cjs/components/PickerInputBase/PickerInputBase.cjs +95 -127
- package/cjs/components/PickerInputBase/PickerInputBase.cjs.map +1 -1
- package/cjs/components/PickerInputBase/PickerInputBase.module.cjs +7 -0
- package/cjs/components/PickerInputBase/PickerInputBase.module.cjs.map +1 -0
- package/cjs/components/SpinInput/SpinInput.cjs +83 -111
- package/cjs/components/SpinInput/SpinInput.cjs.map +1 -1
- package/cjs/components/TimeGrid/TimeGrid.cjs +94 -101
- package/cjs/components/TimeGrid/TimeGrid.cjs.map +1 -1
- package/cjs/components/TimeGrid/TimeGrid.context.cjs +7 -10
- package/cjs/components/TimeGrid/TimeGrid.context.cjs.map +1 -1
- package/cjs/components/TimeGrid/TimeGrid.module.cjs +7 -0
- package/cjs/components/TimeGrid/TimeGrid.module.cjs.map +1 -0
- package/cjs/components/TimeGrid/TimeGridControl.cjs +26 -35
- package/cjs/components/TimeGrid/TimeGridControl.cjs.map +1 -1
- package/cjs/components/TimeGrid/compare-time.cjs +8 -9
- package/cjs/components/TimeGrid/compare-time.cjs.map +1 -1
- package/cjs/components/TimeInput/TimeInput.cjs +71 -88
- package/cjs/components/TimeInput/TimeInput.cjs.map +1 -1
- package/cjs/components/TimeInput/TimeInput.module.cjs +7 -0
- package/cjs/components/TimeInput/TimeInput.module.cjs.map +1 -0
- package/cjs/components/TimePicker/AmPmInput/AmPmInput.cjs +93 -101
- package/cjs/components/TimePicker/AmPmInput/AmPmInput.cjs.map +1 -1
- package/cjs/components/TimePicker/TimeControlsList/AmPmControlsList.cjs +19 -12
- package/cjs/components/TimePicker/TimeControlsList/AmPmControlsList.cjs.map +1 -1
- package/cjs/components/TimePicker/TimeControlsList/TimeControl.cjs +20 -23
- package/cjs/components/TimePicker/TimeControlsList/TimeControl.cjs.map +1 -1
- package/cjs/components/TimePicker/TimeControlsList/TimeControlsList.cjs +47 -57
- package/cjs/components/TimePicker/TimeControlsList/TimeControlsList.cjs.map +1 -1
- package/cjs/components/TimePicker/TimePicker.cjs +325 -420
- package/cjs/components/TimePicker/TimePicker.cjs.map +1 -1
- package/cjs/components/TimePicker/TimePicker.context.cjs +7 -10
- package/cjs/components/TimePicker/TimePicker.context.cjs.map +1 -1
- package/cjs/components/TimePicker/TimePicker.module.cjs +18 -0
- package/cjs/components/TimePicker/TimePicker.module.cjs.map +1 -0
- package/cjs/components/TimePicker/TimePresets/TimePresetControl.cjs +23 -28
- package/cjs/components/TimePicker/TimePresets/TimePresetControl.cjs.map +1 -1
- package/cjs/components/TimePicker/TimePresets/TimePresetGroup.cjs +36 -36
- package/cjs/components/TimePicker/TimePresets/TimePresetGroup.cjs.map +1 -1
- package/cjs/components/TimePicker/TimePresets/TimePresets.cjs +61 -70
- package/cjs/components/TimePicker/TimePresets/TimePresets.cjs.map +1 -1
- package/cjs/components/TimePicker/use-time-picker.cjs +201 -193
- package/cjs/components/TimePicker/use-time-picker.cjs.map +1 -1
- package/cjs/components/TimePicker/utils/clamp-time/clamp-time.cjs +10 -12
- package/cjs/components/TimePicker/utils/clamp-time/clamp-time.cjs.map +1 -1
- package/cjs/components/TimePicker/utils/get-parsed-time/get-parsed-time.cjs +40 -34
- package/cjs/components/TimePicker/utils/get-parsed-time/get-parsed-time.cjs.map +1 -1
- package/cjs/components/TimePicker/utils/get-time-range/get-time-range.cjs +12 -15
- package/cjs/components/TimePicker/utils/get-time-range/get-time-range.cjs.map +1 -1
- package/cjs/components/TimePicker/utils/get-time-string/get-time-string.cjs +39 -48
- package/cjs/components/TimePicker/utils/get-time-string/get-time-string.cjs.map +1 -1
- package/cjs/components/TimePicker/utils/is-same-time/is-same-time.cjs +10 -13
- package/cjs/components/TimePicker/utils/is-same-time/is-same-time.cjs.map +1 -1
- package/cjs/components/TimePicker/utils/pad-time/pad-time.cjs +6 -6
- package/cjs/components/TimePicker/utils/pad-time/pad-time.cjs.map +1 -1
- package/cjs/components/TimePicker/utils/split-time-string/split-time-string.cjs +11 -7
- package/cjs/components/TimePicker/utils/split-time-string/split-time-string.cjs.map +1 -1
- package/cjs/components/TimePicker/utils/time-to-seconds/time-to-seconds.cjs +17 -18
- package/cjs/components/TimePicker/utils/time-to-seconds/time-to-seconds.cjs.map +1 -1
- package/cjs/components/TimeValue/TimeValue.cjs +18 -15
- package/cjs/components/TimeValue/TimeValue.cjs.map +1 -1
- package/cjs/components/TimeValue/get-formatted-time/get-formatted-time.cjs +14 -27
- package/cjs/components/TimeValue/get-formatted-time/get-formatted-time.cjs.map +1 -1
- package/cjs/components/WeekdaysRow/WeekdaysRow.cjs +51 -61
- package/cjs/components/WeekdaysRow/WeekdaysRow.cjs.map +1 -1
- package/cjs/components/WeekdaysRow/WeekdaysRow.module.cjs +7 -0
- package/cjs/components/WeekdaysRow/WeekdaysRow.module.cjs.map +1 -0
- package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.cjs +14 -26
- package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.cjs.map +1 -1
- package/cjs/components/YearLevel/YearLevel.cjs +73 -121
- package/cjs/components/YearLevel/YearLevel.cjs.map +1 -1
- package/cjs/components/YearLevelGroup/YearLevelGroup.cjs +83 -135
- package/cjs/components/YearLevelGroup/YearLevelGroup.cjs.map +1 -1
- package/cjs/components/YearPicker/YearPicker.cjs +48 -73
- package/cjs/components/YearPicker/YearPicker.cjs.map +1 -1
- package/cjs/components/YearPicker/YearPicker.module.cjs +11 -0
- package/cjs/components/YearPicker/YearPicker.module.cjs.map +1 -0
- package/cjs/components/YearPickerInput/YearPickerInput.cjs +86 -119
- package/cjs/components/YearPickerInput/YearPickerInput.cjs.map +1 -1
- package/cjs/components/YearsList/YearsList.cjs +103 -133
- package/cjs/components/YearsList/YearsList.cjs.map +1 -1
- package/cjs/components/YearsList/YearsList.module.cjs +10 -0
- package/cjs/components/YearsList/YearsList.module.cjs.map +1 -0
- package/cjs/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.cjs +20 -30
- package/cjs/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.cjs.map +1 -1
- package/cjs/components/YearsList/get-years-data/get-years-data.cjs +25 -23
- package/cjs/components/YearsList/get-years-data/get-years-data.cjs.map +1 -1
- package/cjs/components/YearsList/is-year-disabled/is-year-disabled.cjs +12 -21
- package/cjs/components/YearsList/is-year-disabled/is-year-disabled.cjs.map +1 -1
- package/cjs/hooks/use-dates-input/use-dates-input.cjs +47 -70
- package/cjs/hooks/use-dates-input/use-dates-input.cjs.map +1 -1
- package/cjs/hooks/use-dates-state/is-in-range/is-in-range.cjs +10 -13
- package/cjs/hooks/use-dates-state/is-in-range/is-in-range.cjs.map +1 -1
- package/cjs/hooks/use-dates-state/use-dates-state.cjs +113 -154
- package/cjs/hooks/use-dates-state/use-dates-state.cjs.map +1 -1
- package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.cjs +32 -36
- package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.cjs.map +1 -1
- package/cjs/index.cjs +94 -99
- package/cjs/utils/assign-time/assign-time.cjs +16 -21
- package/cjs/utils/assign-time/assign-time.cjs.map +1 -1
- package/cjs/utils/clamp-date/clamp-date.cjs +13 -22
- package/cjs/utils/clamp-date/clamp-date.cjs.map +1 -1
- package/cjs/utils/get-default-clamped-date/get-default-clamped-date.cjs +15 -27
- package/cjs/utils/get-default-clamped-date/get-default-clamped-date.cjs.map +1 -1
- package/cjs/utils/get-formatted-date/get-formatted-date.cjs +19 -37
- package/cjs/utils/get-formatted-date/get-formatted-date.cjs.map +1 -1
- package/cjs/utils/handle-control-key-down/handle-control-key-down.cjs +114 -149
- package/cjs/utils/handle-control-key-down/handle-control-key-down.cjs.map +1 -1
- package/cjs/utils/to-date-string/to-date-string.cjs +10 -13
- package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -1
- package/esm/components/Calendar/Calendar.mjs +247 -337
- package/esm/components/Calendar/Calendar.mjs.map +1 -1
- package/esm/components/Calendar/clamp-level/clamp-level.mjs +10 -17
- package/esm/components/Calendar/clamp-level/clamp-level.mjs.map +1 -1
- package/esm/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.mjs +64 -128
- package/esm/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.mjs.map +1 -1
- package/esm/components/CalendarHeader/CalendarHeader.mjs +98 -142
- package/esm/components/CalendarHeader/CalendarHeader.mjs.map +1 -1
- package/esm/components/CalendarHeader/CalendarHeader.module.mjs +12 -0
- package/esm/components/CalendarHeader/CalendarHeader.module.mjs.map +1 -0
- package/esm/components/DateInput/DateInput.mjs +185 -235
- package/esm/components/DateInput/DateInput.mjs.map +1 -1
- package/esm/components/DateInput/date-string-parser/date-string-parser.mjs +10 -13
- package/esm/components/DateInput/date-string-parser/date-string-parser.mjs.map +1 -1
- package/esm/components/DateInput/is-date-valid/is-date-valid.mjs +11 -18
- package/esm/components/DateInput/is-date-valid/is-date-valid.mjs.map +1 -1
- package/esm/components/DatePicker/DatePicker.mjs +117 -146
- package/esm/components/DatePicker/DatePicker.mjs.map +1 -1
- package/esm/components/DatePicker/DatePicker.module.mjs +11 -0
- package/esm/components/DatePicker/DatePicker.module.mjs.map +1 -0
- package/esm/components/DatePickerInput/DatePickerInput.mjs +84 -121
- package/esm/components/DatePickerInput/DatePickerInput.mjs.map +1 -1
- package/esm/components/DateTimePicker/DateTimePicker.mjs +184 -226
- package/esm/components/DateTimePicker/DateTimePicker.mjs.map +1 -1
- package/esm/components/DateTimePicker/DateTimePicker.module.mjs +10 -0
- package/esm/components/DateTimePicker/DateTimePicker.module.mjs.map +1 -0
- package/esm/components/DateTimePicker/get-min-max-time/get-min-max-time.mjs +10 -9
- package/esm/components/DateTimePicker/get-min-max-time/get-min-max-time.mjs.map +1 -1
- package/esm/components/DatesProvider/DatesProvider.mjs +19 -12
- package/esm/components/DatesProvider/DatesProvider.mjs.map +1 -1
- package/esm/components/DatesProvider/use-dates-context.mjs +19 -27
- package/esm/components/DatesProvider/use-dates-context.mjs.map +1 -1
- package/esm/components/Day/Day.mjs +46 -76
- package/esm/components/Day/Day.mjs.map +1 -1
- package/esm/components/Day/Day.module.mjs +7 -0
- package/esm/components/Day/Day.module.mjs.map +1 -0
- package/esm/components/DecadeLevel/DecadeLevel.mjs +72 -117
- package/esm/components/DecadeLevel/DecadeLevel.mjs.map +1 -1
- package/esm/components/DecadeLevel/get-decade-range/get-decade-range.mjs +8 -7
- package/esm/components/DecadeLevel/get-decade-range/get-decade-range.mjs.map +1 -1
- package/esm/components/DecadeLevelGroup/DecadeLevelGroup.mjs +78 -124
- package/esm/components/DecadeLevelGroup/DecadeLevelGroup.mjs.map +1 -1
- package/esm/components/HiddenDatesInput/HiddenDatesInput.mjs +29 -34
- package/esm/components/HiddenDatesInput/HiddenDatesInput.mjs.map +1 -1
- package/esm/components/InlineDateTimePicker/InlineDateTimePicker.mjs +278 -333
- package/esm/components/InlineDateTimePicker/InlineDateTimePicker.mjs.map +1 -1
- package/esm/components/InlineDateTimePicker/InlineDateTimePicker.module.mjs +13 -0
- package/esm/components/InlineDateTimePicker/InlineDateTimePicker.module.mjs.map +1 -0
- package/esm/components/LevelsGroup/LevelsGroup.mjs +28 -35
- package/esm/components/LevelsGroup/LevelsGroup.mjs.map +1 -1
- package/esm/components/LevelsGroup/LevelsGroup.module.mjs +7 -0
- package/esm/components/LevelsGroup/LevelsGroup.module.mjs.map +1 -0
- package/esm/components/MiniCalendar/MiniCalendar.mjs +121 -146
- package/esm/components/MiniCalendar/MiniCalendar.mjs.map +1 -1
- package/esm/components/MiniCalendar/MiniCalendar.module.mjs +14 -0
- package/esm/components/MiniCalendar/MiniCalendar.module.mjs.map +1 -0
- package/esm/components/Month/Month.mjs +149 -193
- package/esm/components/Month/Month.mjs.map +1 -1
- package/esm/components/Month/Month.module.mjs +11 -0
- package/esm/components/Month/Month.module.mjs.map +1 -0
- package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.mjs +16 -29
- package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.mjs.map +1 -1
- package/esm/components/Month/get-end-of-week/get-end-of-week.mjs +11 -14
- package/esm/components/Month/get-end-of-week/get-end-of-week.mjs.map +1 -1
- package/esm/components/Month/get-month-days/get-month-days.mjs +36 -41
- package/esm/components/Month/get-month-days/get-month-days.mjs.map +1 -1
- package/esm/components/Month/get-start-of-week/get-start-of-week.mjs +9 -10
- package/esm/components/Month/get-start-of-week/get-start-of-week.mjs.map +1 -1
- package/esm/components/Month/get-week-number/get-week-number.mjs +8 -8
- package/esm/components/Month/get-week-number/get-week-number.mjs.map +1 -1
- package/esm/components/Month/is-after-min-date/is-after-min-date.mjs +7 -6
- package/esm/components/Month/is-after-min-date/is-after-min-date.mjs.map +1 -1
- package/esm/components/Month/is-before-max-date/is-before-max-date.mjs +7 -6
- package/esm/components/Month/is-before-max-date/is-before-max-date.mjs.map +1 -1
- package/esm/components/Month/is-same-month/is-same-month.mjs +7 -6
- package/esm/components/Month/is-same-month/is-same-month.mjs.map +1 -1
- package/esm/components/MonthLevel/MonthLevel.mjs +80 -134
- package/esm/components/MonthLevel/MonthLevel.mjs.map +1 -1
- package/esm/components/MonthLevelGroup/MonthLevelGroup.mjs +89 -147
- package/esm/components/MonthLevelGroup/MonthLevelGroup.mjs.map +1 -1
- package/esm/components/MonthPicker/MonthPicker.mjs +46 -71
- package/esm/components/MonthPicker/MonthPicker.mjs.map +1 -1
- package/esm/components/MonthPicker/MonthPicker.module.mjs +11 -0
- package/esm/components/MonthPicker/MonthPicker.module.mjs.map +1 -0
- package/esm/components/MonthPickerInput/MonthPickerInput.mjs +85 -117
- package/esm/components/MonthPickerInput/MonthPickerInput.mjs.map +1 -1
- package/esm/components/MonthsList/MonthsList.mjs +102 -132
- package/esm/components/MonthsList/MonthsList.mjs.map +1 -1
- package/esm/components/MonthsList/MonthsList.module.mjs +10 -0
- package/esm/components/MonthsList/MonthsList.module.mjs.map +1 -0
- package/esm/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.mjs +18 -24
- package/esm/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.mjs.map +1 -1
- package/esm/components/MonthsList/get-months-data/get-months-data.mjs +19 -15
- package/esm/components/MonthsList/get-months-data/get-months-data.mjs.map +1 -1
- package/esm/components/MonthsList/is-month-disabled/is-month-disabled.mjs +10 -15
- package/esm/components/MonthsList/is-month-disabled/is-month-disabled.mjs.map +1 -1
- package/esm/components/PickerControl/PickerControl.mjs +41 -62
- package/esm/components/PickerControl/PickerControl.mjs.map +1 -1
- package/esm/components/PickerControl/PickerControl.module.mjs +7 -0
- package/esm/components/PickerControl/PickerControl.module.mjs.map +1 -0
- package/esm/components/PickerInputBase/PickerInputBase.mjs +92 -120
- package/esm/components/PickerInputBase/PickerInputBase.mjs.map +1 -1
- package/esm/components/PickerInputBase/PickerInputBase.module.mjs +7 -0
- package/esm/components/PickerInputBase/PickerInputBase.module.mjs.map +1 -0
- package/esm/components/SpinInput/SpinInput.mjs +82 -109
- package/esm/components/SpinInput/SpinInput.mjs.map +1 -1
- package/esm/components/TimeGrid/TimeGrid.context.mjs +7 -8
- package/esm/components/TimeGrid/TimeGrid.context.mjs.map +1 -1
- package/esm/components/TimeGrid/TimeGrid.mjs +92 -98
- package/esm/components/TimeGrid/TimeGrid.mjs.map +1 -1
- package/esm/components/TimeGrid/TimeGrid.module.mjs +7 -0
- package/esm/components/TimeGrid/TimeGrid.module.mjs.map +1 -0
- package/esm/components/TimeGrid/TimeGridControl.mjs +24 -29
- package/esm/components/TimeGrid/TimeGridControl.mjs.map +1 -1
- package/esm/components/TimeGrid/compare-time.mjs +8 -7
- package/esm/components/TimeGrid/compare-time.mjs.map +1 -1
- package/esm/components/TimeInput/TimeInput.mjs +67 -80
- package/esm/components/TimeInput/TimeInput.mjs.map +1 -1
- package/esm/components/TimeInput/TimeInput.module.mjs +7 -0
- package/esm/components/TimeInput/TimeInput.module.mjs.map +1 -0
- package/esm/components/TimePicker/AmPmInput/AmPmInput.mjs +92 -99
- package/esm/components/TimePicker/AmPmInput/AmPmInput.mjs.map +1 -1
- package/esm/components/TimePicker/TimeControlsList/AmPmControlsList.mjs +18 -10
- package/esm/components/TimePicker/TimeControlsList/AmPmControlsList.mjs.map +1 -1
- package/esm/components/TimePicker/TimeControlsList/TimeControl.mjs +19 -21
- package/esm/components/TimePicker/TimeControlsList/TimeControl.mjs.map +1 -1
- package/esm/components/TimePicker/TimeControlsList/TimeControlsList.mjs +46 -55
- package/esm/components/TimePicker/TimeControlsList/TimeControlsList.mjs.map +1 -1
- package/esm/components/TimePicker/TimePicker.context.mjs +7 -8
- package/esm/components/TimePicker/TimePicker.context.mjs.map +1 -1
- package/esm/components/TimePicker/TimePicker.mjs +323 -417
- package/esm/components/TimePicker/TimePicker.mjs.map +1 -1
- package/esm/components/TimePicker/TimePicker.module.mjs +18 -0
- package/esm/components/TimePicker/TimePicker.module.mjs.map +1 -0
- package/esm/components/TimePicker/TimePresets/TimePresetControl.mjs +22 -26
- package/esm/components/TimePicker/TimePresets/TimePresetControl.mjs.map +1 -1
- package/esm/components/TimePicker/TimePresets/TimePresetGroup.mjs +35 -34
- package/esm/components/TimePicker/TimePresets/TimePresetGroup.mjs.map +1 -1
- package/esm/components/TimePicker/TimePresets/TimePresets.mjs +60 -68
- package/esm/components/TimePicker/TimePresets/TimePresets.mjs.map +1 -1
- package/esm/components/TimePicker/use-time-picker.mjs +200 -191
- package/esm/components/TimePicker/use-time-picker.mjs.map +1 -1
- package/esm/components/TimePicker/utils/clamp-time/clamp-time.mjs +10 -10
- package/esm/components/TimePicker/utils/clamp-time/clamp-time.mjs.map +1 -1
- package/esm/components/TimePicker/utils/get-parsed-time/get-parsed-time.mjs +40 -31
- package/esm/components/TimePicker/utils/get-parsed-time/get-parsed-time.mjs.map +1 -1
- package/esm/components/TimePicker/utils/get-time-range/get-time-range.mjs +12 -13
- package/esm/components/TimePicker/utils/get-time-range/get-time-range.mjs.map +1 -1
- package/esm/components/TimePicker/utils/get-time-string/get-time-string.mjs +39 -46
- package/esm/components/TimePicker/utils/get-time-string/get-time-string.mjs.map +1 -1
- package/esm/components/TimePicker/utils/is-same-time/is-same-time.mjs +10 -11
- package/esm/components/TimePicker/utils/is-same-time/is-same-time.mjs.map +1 -1
- package/esm/components/TimePicker/utils/pad-time/pad-time.mjs +6 -4
- package/esm/components/TimePicker/utils/pad-time/pad-time.mjs.map +1 -1
- package/esm/components/TimePicker/utils/split-time-string/split-time-string.mjs +11 -5
- package/esm/components/TimePicker/utils/split-time-string/split-time-string.mjs.map +1 -1
- package/esm/components/TimePicker/utils/time-to-seconds/time-to-seconds.mjs +17 -16
- package/esm/components/TimePicker/utils/time-to-seconds/time-to-seconds.mjs.map +1 -1
- package/esm/components/TimeValue/TimeValue.mjs +17 -13
- package/esm/components/TimeValue/TimeValue.mjs.map +1 -1
- package/esm/components/TimeValue/get-formatted-time/get-formatted-time.mjs +14 -25
- package/esm/components/TimeValue/get-formatted-time/get-formatted-time.mjs.map +1 -1
- package/esm/components/WeekdaysRow/WeekdaysRow.mjs +49 -58
- package/esm/components/WeekdaysRow/WeekdaysRow.mjs.map +1 -1
- package/esm/components/WeekdaysRow/WeekdaysRow.module.mjs +7 -0
- package/esm/components/WeekdaysRow/WeekdaysRow.module.mjs.map +1 -0
- package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.mjs +12 -20
- package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.mjs.map +1 -1
- package/esm/components/YearLevel/YearLevel.mjs +70 -114
- package/esm/components/YearLevel/YearLevel.mjs.map +1 -1
- package/esm/components/YearLevelGroup/YearLevelGroup.mjs +80 -128
- package/esm/components/YearLevelGroup/YearLevelGroup.mjs.map +1 -1
- package/esm/components/YearPicker/YearPicker.mjs +45 -69
- package/esm/components/YearPicker/YearPicker.mjs.map +1 -1
- package/esm/components/YearPicker/YearPicker.module.mjs +11 -0
- package/esm/components/YearPicker/YearPicker.module.mjs.map +1 -0
- package/esm/components/YearPickerInput/YearPickerInput.mjs +85 -117
- package/esm/components/YearPickerInput/YearPickerInput.mjs.map +1 -1
- package/esm/components/YearsList/YearsList.mjs +100 -126
- package/esm/components/YearsList/YearsList.mjs.map +1 -1
- package/esm/components/YearsList/YearsList.module.mjs +10 -0
- package/esm/components/YearsList/YearsList.module.mjs.map +1 -0
- package/esm/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.mjs +18 -24
- package/esm/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.mjs.map +1 -1
- package/esm/components/YearsList/get-years-data/get-years-data.mjs +23 -17
- package/esm/components/YearsList/get-years-data/get-years-data.mjs.map +1 -1
- package/esm/components/YearsList/is-year-disabled/is-year-disabled.mjs +10 -15
- package/esm/components/YearsList/is-year-disabled/is-year-disabled.mjs.map +1 -1
- package/esm/hooks/use-dates-input/use-dates-input.mjs +45 -64
- package/esm/hooks/use-dates-input/use-dates-input.mjs.map +1 -1
- package/esm/hooks/use-dates-state/is-in-range/is-in-range.mjs +8 -7
- package/esm/hooks/use-dates-state/is-in-range/is-in-range.mjs.map +1 -1
- package/esm/hooks/use-dates-state/use-dates-state.mjs +111 -148
- package/esm/hooks/use-dates-state/use-dates-state.mjs.map +1 -1
- package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.mjs +31 -33
- package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.mjs.map +1 -1
- package/esm/index.mjs +46 -46
- package/esm/utils/assign-time/assign-time.mjs +14 -15
- package/esm/utils/assign-time/assign-time.mjs.map +1 -1
- package/esm/utils/clamp-date/clamp-date.mjs +11 -16
- package/esm/utils/clamp-date/clamp-date.mjs.map +1 -1
- package/esm/utils/get-default-clamped-date/get-default-clamped-date.mjs +13 -21
- package/esm/utils/get-default-clamped-date/get-default-clamped-date.mjs.map +1 -1
- package/esm/utils/get-formatted-date/get-formatted-date.mjs +17 -30
- package/esm/utils/get-formatted-date/get-formatted-date.mjs.map +1 -1
- package/esm/utils/handle-control-key-down/handle-control-key-down.mjs +114 -147
- package/esm/utils/handle-control-key-down/handle-control-key-down.mjs.map +1 -1
- package/esm/utils/to-date-string/to-date-string.mjs +8 -7
- package/esm/utils/to-date-string/to-date-string.mjs.map +1 -1
- package/package.json +3 -3
- package/cjs/components/CalendarHeader/CalendarHeader.module.css.cjs +0 -7
- package/cjs/components/CalendarHeader/CalendarHeader.module.css.cjs.map +0 -1
- package/cjs/components/DatePicker/DatePicker.module.css.cjs +0 -7
- package/cjs/components/DatePicker/DatePicker.module.css.cjs.map +0 -1
- package/cjs/components/DateTimePicker/DateTimePicker.module.css.cjs +0 -7
- package/cjs/components/DateTimePicker/DateTimePicker.module.css.cjs.map +0 -1
- package/cjs/components/Day/Day.module.css.cjs +0 -7
- package/cjs/components/Day/Day.module.css.cjs.map +0 -1
- package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.module.css.cjs +0 -7
- package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.module.css.cjs.map +0 -1
- package/cjs/components/LevelsGroup/LevelsGroup.module.css.cjs +0 -7
- package/cjs/components/LevelsGroup/LevelsGroup.module.css.cjs.map +0 -1
- package/cjs/components/MiniCalendar/MiniCalendar.module.css.cjs +0 -7
- package/cjs/components/MiniCalendar/MiniCalendar.module.css.cjs.map +0 -1
- package/cjs/components/Month/Month.module.css.cjs +0 -7
- package/cjs/components/Month/Month.module.css.cjs.map +0 -1
- package/cjs/components/MonthPicker/MonthPicker.module.css.cjs +0 -7
- package/cjs/components/MonthPicker/MonthPicker.module.css.cjs.map +0 -1
- package/cjs/components/MonthsList/MonthsList.module.css.cjs +0 -7
- package/cjs/components/MonthsList/MonthsList.module.css.cjs.map +0 -1
- package/cjs/components/PickerControl/PickerControl.module.css.cjs +0 -7
- package/cjs/components/PickerControl/PickerControl.module.css.cjs.map +0 -1
- package/cjs/components/PickerInputBase/PickerInputBase.module.css.cjs +0 -7
- package/cjs/components/PickerInputBase/PickerInputBase.module.css.cjs.map +0 -1
- package/cjs/components/TimeGrid/TimeGrid.module.css.cjs +0 -7
- package/cjs/components/TimeGrid/TimeGrid.module.css.cjs.map +0 -1
- package/cjs/components/TimeInput/TimeInput.module.css.cjs +0 -7
- package/cjs/components/TimeInput/TimeInput.module.css.cjs.map +0 -1
- package/cjs/components/TimePicker/TimePicker.module.css.cjs +0 -7
- package/cjs/components/TimePicker/TimePicker.module.css.cjs.map +0 -1
- package/cjs/components/WeekdaysRow/WeekdaysRow.module.css.cjs +0 -7
- package/cjs/components/WeekdaysRow/WeekdaysRow.module.css.cjs.map +0 -1
- package/cjs/components/YearPicker/YearPicker.module.css.cjs +0 -7
- package/cjs/components/YearPicker/YearPicker.module.css.cjs.map +0 -1
- package/cjs/components/YearsList/YearsList.module.css.cjs +0 -7
- package/cjs/components/YearsList/YearsList.module.css.cjs.map +0 -1
- package/cjs/index.cjs.map +0 -1
- package/esm/components/CalendarHeader/CalendarHeader.module.css.mjs +0 -5
- package/esm/components/CalendarHeader/CalendarHeader.module.css.mjs.map +0 -1
- package/esm/components/DatePicker/DatePicker.module.css.mjs +0 -5
- package/esm/components/DatePicker/DatePicker.module.css.mjs.map +0 -1
- package/esm/components/DateTimePicker/DateTimePicker.module.css.mjs +0 -5
- package/esm/components/DateTimePicker/DateTimePicker.module.css.mjs.map +0 -1
- package/esm/components/Day/Day.module.css.mjs +0 -5
- package/esm/components/Day/Day.module.css.mjs.map +0 -1
- package/esm/components/InlineDateTimePicker/InlineDateTimePicker.module.css.mjs +0 -5
- package/esm/components/InlineDateTimePicker/InlineDateTimePicker.module.css.mjs.map +0 -1
- package/esm/components/LevelsGroup/LevelsGroup.module.css.mjs +0 -5
- package/esm/components/LevelsGroup/LevelsGroup.module.css.mjs.map +0 -1
- package/esm/components/MiniCalendar/MiniCalendar.module.css.mjs +0 -5
- package/esm/components/MiniCalendar/MiniCalendar.module.css.mjs.map +0 -1
- package/esm/components/Month/Month.module.css.mjs +0 -5
- package/esm/components/Month/Month.module.css.mjs.map +0 -1
- package/esm/components/MonthPicker/MonthPicker.module.css.mjs +0 -5
- package/esm/components/MonthPicker/MonthPicker.module.css.mjs.map +0 -1
- package/esm/components/MonthsList/MonthsList.module.css.mjs +0 -5
- package/esm/components/MonthsList/MonthsList.module.css.mjs.map +0 -1
- package/esm/components/PickerControl/PickerControl.module.css.mjs +0 -5
- package/esm/components/PickerControl/PickerControl.module.css.mjs.map +0 -1
- package/esm/components/PickerInputBase/PickerInputBase.module.css.mjs +0 -5
- package/esm/components/PickerInputBase/PickerInputBase.module.css.mjs.map +0 -1
- package/esm/components/TimeGrid/TimeGrid.module.css.mjs +0 -5
- package/esm/components/TimeGrid/TimeGrid.module.css.mjs.map +0 -1
- package/esm/components/TimeInput/TimeInput.module.css.mjs +0 -5
- package/esm/components/TimeInput/TimeInput.module.css.mjs.map +0 -1
- package/esm/components/TimePicker/TimePicker.module.css.mjs +0 -5
- package/esm/components/TimePicker/TimePicker.module.css.mjs.map +0 -1
- package/esm/components/WeekdaysRow/WeekdaysRow.module.css.mjs +0 -5
- package/esm/components/WeekdaysRow/WeekdaysRow.module.css.mjs.map +0 -1
- package/esm/components/YearPicker/YearPicker.module.css.mjs +0 -5
- package/esm/components/YearPicker/YearPicker.module.css.mjs.map +0 -1
- package/esm/components/YearsList/YearsList.module.css.mjs +0 -5
- package/esm/components/YearsList/YearsList.module.css.mjs.map +0 -1
- package/esm/index.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimePresets.mjs","sources":["../../../../src/components/TimePicker/TimePresets/TimePresets.tsx"],"sourcesContent":["import { ScrollArea, SimpleGrid } from '@mantine/core';\nimport { useTimePickerContext } from '../TimePicker.context';\nimport {\n TimePickerAmPmLabels,\n TimePickerFormat,\n TimePickerPresetGroup,\n TimePickerPresets,\n} from '../TimePicker.types';\nimport { isSameTime } from '../utils/is-same-time/is-same-time';\nimport { TimePresetControl } from './TimePresetControl';\nimport { TimePresetGroup } from './TimePresetGroup';\n\ninterface TimePresetsProps {\n presets: TimePickerPresets;\n format: TimePickerFormat;\n amPmLabels: TimePickerAmPmLabels;\n value: string;\n withSeconds: boolean;\n onChange: (value: string) => void;\n}\n\nexport function TimePresets({\n presets,\n format,\n amPmLabels,\n withSeconds,\n value,\n onChange,\n}: TimePresetsProps) {\n const ctx = useTimePickerContext();\n\n if (presets.length === 0) {\n return null;\n }\n\n if (typeof presets[0] === 'string') {\n const items = (presets as string[]).map((item) => (\n <TimePresetControl\n key={item}\n value={item}\n format={format}\n amPmLabels={amPmLabels}\n withSeconds={withSeconds}\n active={isSameTime({ time: item, compare: value, withSeconds })}\n onChange={onChange}\n />\n ));\n\n return (\n <ScrollArea.Autosize\n mah={ctx.maxDropdownContentHeight}\n type=\"never\"\n {...ctx.getStyles('scrollarea')}\n {...ctx.scrollAreaProps}\n >\n <div {...ctx.getStyles('presetsRoot')}>\n <SimpleGrid cols={withSeconds ? 2 : 3} spacing={4}>\n {items}\n </SimpleGrid>\n </div>\n </ScrollArea.Autosize>\n );\n }\n\n const groups = (presets as TimePickerPresetGroup[]).map((group, index) => (\n <TimePresetGroup\n key={index}\n data={group}\n value={value}\n format={format}\n amPmLabels={amPmLabels}\n withSeconds={withSeconds}\n onChange={onChange}\n />\n ));\n\n return (\n <ScrollArea.Autosize\n mah={ctx.maxDropdownContentHeight}\n type=\"never\"\n {...ctx.getStyles('scrollarea')}\n {...ctx.scrollAreaProps}\n >\n <div {...ctx.getStyles('presetsRoot')}>{groups}</div>\n </ScrollArea.Autosize>\n );\n}\n\nTimePresets.displayName = '@mantine/dates/TimePresets';\n"],"
|
|
1
|
+
{"version":3,"file":"TimePresets.mjs","names":[],"sources":["../../../../src/components/TimePicker/TimePresets/TimePresets.tsx"],"sourcesContent":["import { ScrollArea, SimpleGrid } from '@mantine/core';\nimport { useTimePickerContext } from '../TimePicker.context';\nimport {\n TimePickerAmPmLabels,\n TimePickerFormat,\n TimePickerPresetGroup,\n TimePickerPresets,\n} from '../TimePicker.types';\nimport { isSameTime } from '../utils/is-same-time/is-same-time';\nimport { TimePresetControl } from './TimePresetControl';\nimport { TimePresetGroup } from './TimePresetGroup';\n\ninterface TimePresetsProps {\n presets: TimePickerPresets;\n format: TimePickerFormat;\n amPmLabels: TimePickerAmPmLabels;\n value: string;\n withSeconds: boolean;\n onChange: (value: string) => void;\n}\n\nexport function TimePresets({\n presets,\n format,\n amPmLabels,\n withSeconds,\n value,\n onChange,\n}: TimePresetsProps) {\n const ctx = useTimePickerContext();\n\n if (presets.length === 0) {\n return null;\n }\n\n if (typeof presets[0] === 'string') {\n const items = (presets as string[]).map((item) => (\n <TimePresetControl\n key={item}\n value={item}\n format={format}\n amPmLabels={amPmLabels}\n withSeconds={withSeconds}\n active={isSameTime({ time: item, compare: value, withSeconds })}\n onChange={onChange}\n />\n ));\n\n return (\n <ScrollArea.Autosize\n mah={ctx.maxDropdownContentHeight}\n type=\"never\"\n {...ctx.getStyles('scrollarea')}\n {...ctx.scrollAreaProps}\n >\n <div {...ctx.getStyles('presetsRoot')}>\n <SimpleGrid cols={withSeconds ? 2 : 3} spacing={4}>\n {items}\n </SimpleGrid>\n </div>\n </ScrollArea.Autosize>\n );\n }\n\n const groups = (presets as TimePickerPresetGroup[]).map((group, index) => (\n <TimePresetGroup\n key={index}\n data={group}\n value={value}\n format={format}\n amPmLabels={amPmLabels}\n withSeconds={withSeconds}\n onChange={onChange}\n />\n ));\n\n return (\n <ScrollArea.Autosize\n mah={ctx.maxDropdownContentHeight}\n type=\"never\"\n {...ctx.getStyles('scrollarea')}\n {...ctx.scrollAreaProps}\n >\n <div {...ctx.getStyles('presetsRoot')}>{groups}</div>\n </ScrollArea.Autosize>\n );\n}\n\nTimePresets.displayName = '@mantine/dates/TimePresets';\n"],"mappings":";;;;;;;;AAqBA,SAAgB,YAAY,EAC1B,SACA,QACA,YACA,aACA,OACA,YACmB;CACnB,MAAM,MAAM,sBAAsB;AAElC,KAAI,QAAQ,WAAW,EACrB,QAAO;AAGT,KAAI,OAAO,QAAQ,OAAO,UAAU;EAClC,MAAM,QAAS,QAAqB,KAAK,SACvC,oBAAC,mBAAD;GAEE,OAAO;GACC;GACI;GACC;GACb,QAAQ,WAAW;IAAE,MAAM;IAAM,SAAS;IAAO;IAAa,CAAC;GACrD;GACV,EAPK,KAOL,CACF;AAEF,SACE,oBAAC,WAAW,UAAZ;GACE,KAAK,IAAI;GACT,MAAK;GACL,GAAI,IAAI,UAAU,aAAa;GAC/B,GAAI,IAAI;aAER,oBAAC,OAAD;IAAK,GAAI,IAAI,UAAU,cAAc;cACnC,oBAAC,YAAD;KAAY,MAAM,cAAc,IAAI;KAAG,SAAS;eAC7C;KACU,CAAA;IACT,CAAA;GACc,CAAA;;CAI1B,MAAM,SAAU,QAAoC,KAAK,OAAO,UAC9D,oBAAC,iBAAD;EAEE,MAAM;EACC;EACC;EACI;EACC;EACH;EACV,EAPK,MAOL,CACF;AAEF,QACE,oBAAC,WAAW,UAAZ;EACE,KAAK,IAAI;EACT,MAAK;EACL,GAAI,IAAI,UAAU,aAAa;EAC/B,GAAI,IAAI;YAER,oBAAC,OAAD;GAAK,GAAI,IAAI,UAAU,cAAc;aAAG;GAAa,CAAA;EACjC,CAAA;;AAI1B,YAAY,cAAc"}
|
|
@@ -1,193 +1,202 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
function useTimePicker({
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
import { clampTime } from "./utils/clamp-time/clamp-time.mjs";
|
|
3
|
+
import { getParsedTime } from "./utils/get-parsed-time/get-parsed-time.mjs";
|
|
4
|
+
import { getTimeString } from "./utils/get-time-string/get-time-string.mjs";
|
|
5
|
+
import { useRef, useState } from "react";
|
|
6
|
+
import { useDidUpdate } from "@mantine/hooks";
|
|
7
|
+
//#region packages/@mantine/dates/src/components/TimePicker/use-time-picker.ts
|
|
8
|
+
function useTimePicker({ value, defaultValue, onChange, format, amPmLabels, withSeconds = false, min, max, clearable, readOnly, disabled, pasteSplit }) {
|
|
9
|
+
const parsedTime = getParsedTime({
|
|
10
|
+
time: value || defaultValue || "",
|
|
11
|
+
amPmLabels,
|
|
12
|
+
format
|
|
13
|
+
});
|
|
14
|
+
const initialTimeString = getTimeString({
|
|
15
|
+
hours: parsedTime.hours,
|
|
16
|
+
minutes: parsedTime.minutes,
|
|
17
|
+
seconds: parsedTime.seconds,
|
|
18
|
+
format,
|
|
19
|
+
withSeconds,
|
|
20
|
+
amPm: parsedTime.amPm,
|
|
21
|
+
amPmLabels
|
|
22
|
+
});
|
|
23
|
+
const acceptChange = useRef(true);
|
|
24
|
+
const wasInvalidBefore = useRef(!initialTimeString.valid);
|
|
25
|
+
const [hours, setHours] = useState(parsedTime.hours);
|
|
26
|
+
const [minutes, setMinutes] = useState(parsedTime.minutes);
|
|
27
|
+
const [seconds, setSeconds] = useState(parsedTime.seconds);
|
|
28
|
+
const [amPm, setAmPm] = useState(parsedTime.amPm);
|
|
29
|
+
const isClearable = clearable && !readOnly && !disabled && (hours !== null || minutes !== null || seconds !== null || amPm !== null);
|
|
30
|
+
const hoursRef = useRef(null);
|
|
31
|
+
const minutesRef = useRef(null);
|
|
32
|
+
const secondsRef = useRef(null);
|
|
33
|
+
const amPmRef = useRef(null);
|
|
34
|
+
const focus = (field) => {
|
|
35
|
+
if (field === "hours") hoursRef.current?.focus();
|
|
36
|
+
if (field === "minutes") minutesRef.current?.focus();
|
|
37
|
+
if (field === "seconds") secondsRef.current?.focus();
|
|
38
|
+
if (field === "amPm") amPmRef.current?.focus();
|
|
39
|
+
};
|
|
40
|
+
const handleTimeChange = (field, val) => {
|
|
41
|
+
const timeString = getTimeString({
|
|
42
|
+
hours,
|
|
43
|
+
minutes,
|
|
44
|
+
seconds,
|
|
45
|
+
amPm,
|
|
46
|
+
[field]: val,
|
|
47
|
+
format,
|
|
48
|
+
withSeconds,
|
|
49
|
+
amPmLabels
|
|
50
|
+
});
|
|
51
|
+
if (timeString.valid) {
|
|
52
|
+
acceptChange.current = false;
|
|
53
|
+
wasInvalidBefore.current = false;
|
|
54
|
+
if (field === "hours") setHours(val);
|
|
55
|
+
if (field === "minutes") setMinutes(val);
|
|
56
|
+
if (field === "seconds") setSeconds(val);
|
|
57
|
+
if (field === "amPm") setAmPm(val);
|
|
58
|
+
onChange?.(timeString.value);
|
|
59
|
+
} else {
|
|
60
|
+
acceptChange.current = false;
|
|
61
|
+
if (!wasInvalidBefore.current) {
|
|
62
|
+
onChange?.("");
|
|
63
|
+
wasInvalidBefore.current = true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
const setTimeString = (timeString) => {
|
|
68
|
+
acceptChange.current = false;
|
|
69
|
+
const parsedTime = getParsedTime({
|
|
70
|
+
time: timeString,
|
|
71
|
+
amPmLabels,
|
|
72
|
+
format
|
|
73
|
+
});
|
|
74
|
+
setHours(parsedTime.hours);
|
|
75
|
+
setMinutes(parsedTime.minutes);
|
|
76
|
+
setSeconds(parsedTime.seconds);
|
|
77
|
+
setAmPm(parsedTime.amPm);
|
|
78
|
+
wasInvalidBefore.current = !getTimeString({
|
|
79
|
+
...parsedTime,
|
|
80
|
+
format,
|
|
81
|
+
withSeconds,
|
|
82
|
+
amPmLabels
|
|
83
|
+
}).valid;
|
|
84
|
+
onChange?.(timeString);
|
|
85
|
+
};
|
|
86
|
+
const onHoursChange = (value) => {
|
|
87
|
+
let adjustedValue = value;
|
|
88
|
+
if (format === "12h" && typeof value === "number" && value > 12) adjustedValue = (value - 1) % 12 + 1;
|
|
89
|
+
setHours(adjustedValue);
|
|
90
|
+
handleTimeChange("hours", adjustedValue);
|
|
91
|
+
focus("hours");
|
|
92
|
+
};
|
|
93
|
+
const onMinutesChange = (value) => {
|
|
94
|
+
setMinutes(value);
|
|
95
|
+
handleTimeChange("minutes", value);
|
|
96
|
+
focus("minutes");
|
|
97
|
+
};
|
|
98
|
+
const onSecondsChange = (value) => {
|
|
99
|
+
setSeconds(value);
|
|
100
|
+
handleTimeChange("seconds", value);
|
|
101
|
+
focus("seconds");
|
|
102
|
+
};
|
|
103
|
+
const onAmPmChange = (value) => {
|
|
104
|
+
setAmPm(value);
|
|
105
|
+
handleTimeChange("amPm", value);
|
|
106
|
+
focus("amPm");
|
|
107
|
+
};
|
|
108
|
+
const clear = () => {
|
|
109
|
+
acceptChange.current = false;
|
|
110
|
+
setHours(null);
|
|
111
|
+
setMinutes(null);
|
|
112
|
+
setSeconds(null);
|
|
113
|
+
setAmPm(null);
|
|
114
|
+
onChange?.("");
|
|
115
|
+
wasInvalidBefore.current = true;
|
|
116
|
+
focus("hours");
|
|
117
|
+
};
|
|
118
|
+
const onPaste = (event) => {
|
|
119
|
+
event.preventDefault();
|
|
120
|
+
const pastedValue = event.clipboardData.getData("text");
|
|
121
|
+
const parsedTime = (pasteSplit || getParsedTime)({
|
|
122
|
+
time: pastedValue,
|
|
123
|
+
format,
|
|
124
|
+
amPmLabels
|
|
125
|
+
});
|
|
126
|
+
const timeString = getTimeString({
|
|
127
|
+
...parsedTime,
|
|
128
|
+
format,
|
|
129
|
+
withSeconds,
|
|
130
|
+
amPmLabels
|
|
131
|
+
});
|
|
132
|
+
if (timeString.valid) {
|
|
133
|
+
acceptChange.current = false;
|
|
134
|
+
const clamped = clampTime(timeString.value, min || "00:00:00", max || "23:59:59");
|
|
135
|
+
onChange?.(clamped.timeString);
|
|
136
|
+
setHours(parsedTime.hours);
|
|
137
|
+
setMinutes(parsedTime.minutes);
|
|
138
|
+
setSeconds(parsedTime.seconds);
|
|
139
|
+
setAmPm(parsedTime.amPm);
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
const hiddenInputValue = getTimeString({
|
|
143
|
+
hours,
|
|
144
|
+
minutes,
|
|
145
|
+
seconds,
|
|
146
|
+
format,
|
|
147
|
+
withSeconds,
|
|
148
|
+
amPm,
|
|
149
|
+
amPmLabels
|
|
150
|
+
});
|
|
151
|
+
useDidUpdate(() => {
|
|
152
|
+
if (value === "") {
|
|
153
|
+
acceptChange.current = false;
|
|
154
|
+
setHours(null);
|
|
155
|
+
setMinutes(null);
|
|
156
|
+
setSeconds(null);
|
|
157
|
+
setAmPm(null);
|
|
158
|
+
acceptChange.current = true;
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
if (acceptChange.current && typeof value === "string") {
|
|
162
|
+
const parsedTime = getParsedTime({
|
|
163
|
+
time: value || "",
|
|
164
|
+
amPmLabels,
|
|
165
|
+
format
|
|
166
|
+
});
|
|
167
|
+
setHours(parsedTime.hours);
|
|
168
|
+
setMinutes(parsedTime.minutes);
|
|
169
|
+
setSeconds(parsedTime.seconds);
|
|
170
|
+
setAmPm(parsedTime.amPm);
|
|
171
|
+
}
|
|
172
|
+
acceptChange.current = true;
|
|
173
|
+
}, [value]);
|
|
174
|
+
return {
|
|
175
|
+
refs: {
|
|
176
|
+
hours: hoursRef,
|
|
177
|
+
minutes: minutesRef,
|
|
178
|
+
seconds: secondsRef,
|
|
179
|
+
amPm: amPmRef
|
|
180
|
+
},
|
|
181
|
+
values: {
|
|
182
|
+
hours,
|
|
183
|
+
minutes,
|
|
184
|
+
seconds,
|
|
185
|
+
amPm
|
|
186
|
+
},
|
|
187
|
+
setHours: onHoursChange,
|
|
188
|
+
setMinutes: onMinutesChange,
|
|
189
|
+
setSeconds: onSecondsChange,
|
|
190
|
+
setAmPm: onAmPmChange,
|
|
191
|
+
focus,
|
|
192
|
+
clear,
|
|
193
|
+
onPaste,
|
|
194
|
+
setTimeString,
|
|
195
|
+
isClearable,
|
|
196
|
+
hiddenInputValue: hiddenInputValue.value
|
|
197
|
+
};
|
|
190
198
|
}
|
|
191
|
-
|
|
199
|
+
//#endregion
|
|
192
200
|
export { useTimePicker };
|
|
193
|
-
|
|
201
|
+
|
|
202
|
+
//# sourceMappingURL=use-time-picker.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-time-picker.mjs","sources":["../../../src/components/TimePicker/use-time-picker.ts"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { useDidUpdate } from '@mantine/hooks';\nimport type {\n TimePickerAmPmLabels,\n TimePickerFormat,\n TimePickerPasteSplit,\n} from './TimePicker.types';\nimport { clampTime } from './utils/clamp-time/clamp-time';\nimport { getParsedTime } from './utils/get-parsed-time/get-parsed-time';\nimport { getTimeString } from './utils/get-time-string/get-time-string';\n\ninterface UseTimePickerInput {\n value: string | undefined;\n defaultValue: string | undefined;\n onChange: ((value: string) => void) | undefined;\n format: TimePickerFormat;\n amPmLabels: TimePickerAmPmLabels;\n withSeconds: boolean | undefined;\n min: string | undefined;\n max: string | undefined;\n readOnly: boolean | undefined;\n disabled: boolean | undefined;\n clearable: boolean | undefined;\n pasteSplit: TimePickerPasteSplit | undefined;\n}\n\nexport function useTimePicker({\n value,\n defaultValue,\n onChange,\n format,\n amPmLabels,\n withSeconds = false,\n min,\n max,\n clearable,\n readOnly,\n disabled,\n pasteSplit,\n}: UseTimePickerInput) {\n const parsedTime = getParsedTime({\n time: value || defaultValue || '',\n amPmLabels,\n format,\n });\n\n const initialTimeString = getTimeString({\n hours: parsedTime.hours,\n minutes: parsedTime.minutes,\n seconds: parsedTime.seconds,\n format,\n withSeconds,\n amPm: parsedTime.amPm,\n amPmLabels,\n });\n\n const acceptChange = useRef(true);\n const wasInvalidBefore = useRef(!initialTimeString.valid);\n\n const [hours, setHours] = useState<number | null>(parsedTime.hours);\n const [minutes, setMinutes] = useState<number | null>(parsedTime.minutes);\n const [seconds, setSeconds] = useState<number | null>(parsedTime.seconds);\n const [amPm, setAmPm] = useState<string | null>(parsedTime.amPm);\n\n const isClearable =\n clearable &&\n !readOnly &&\n !disabled &&\n (hours !== null || minutes !== null || seconds !== null || amPm !== null);\n\n const hoursRef = useRef<HTMLInputElement>(null);\n const minutesRef = useRef<HTMLInputElement>(null);\n const secondsRef = useRef<HTMLInputElement>(null);\n const amPmRef = useRef<HTMLSelectElement>(null);\n\n const focus = (field: 'hours' | 'minutes' | 'seconds' | 'amPm') => {\n if (field === 'hours') {\n hoursRef.current?.focus();\n }\n\n if (field === 'minutes') {\n minutesRef.current?.focus();\n }\n\n if (field === 'seconds') {\n secondsRef.current?.focus();\n }\n\n if (field === 'amPm') {\n amPmRef.current?.focus();\n }\n };\n\n const handleTimeChange = (field: 'hours' | 'minutes' | 'seconds' | 'amPm', val: any) => {\n const computedValue = { hours, minutes, seconds, amPm, [field]: val };\n\n const timeString = getTimeString({ ...computedValue, format, withSeconds, amPmLabels });\n\n if (timeString.valid) {\n acceptChange.current = false;\n wasInvalidBefore.current = false;\n if (field === 'hours') {\n setHours(val);\n }\n if (field === 'minutes') {\n setMinutes(val);\n }\n if (field === 'seconds') {\n setSeconds(val);\n }\n if (field === 'amPm') {\n setAmPm(val);\n }\n\n onChange?.(timeString.value);\n } else {\n acceptChange.current = false;\n if (!wasInvalidBefore.current) {\n onChange?.('');\n wasInvalidBefore.current = true;\n }\n }\n };\n\n const setTimeString = (timeString: string) => {\n acceptChange.current = false;\n\n const parsedTime = getParsedTime({ time: timeString, amPmLabels, format });\n setHours(parsedTime.hours);\n setMinutes(parsedTime.minutes);\n setSeconds(parsedTime.seconds);\n setAmPm(parsedTime.amPm);\n\n const next = getTimeString({ ...parsedTime, format, withSeconds, amPmLabels });\n wasInvalidBefore.current = !next.valid;\n onChange?.(timeString);\n };\n\n const onHoursChange = (value: number | null) => {\n let adjustedValue = value;\n if (format === '12h' && typeof value === 'number' && value > 12) {\n adjustedValue = ((value - 1) % 12) + 1;\n }\n\n setHours(adjustedValue);\n handleTimeChange('hours', adjustedValue);\n focus('hours');\n };\n\n const onMinutesChange = (value: number | null) => {\n setMinutes(value);\n handleTimeChange('minutes', value);\n focus('minutes');\n };\n\n const onSecondsChange = (value: number | null) => {\n setSeconds(value);\n handleTimeChange('seconds', value);\n focus('seconds');\n };\n\n const onAmPmChange = (value: string | null) => {\n setAmPm(value);\n handleTimeChange('amPm', value);\n focus('amPm');\n };\n\n const clear = () => {\n acceptChange.current = false;\n setHours(null);\n setMinutes(null);\n setSeconds(null);\n setAmPm(null);\n onChange?.('');\n wasInvalidBefore.current = true;\n focus('hours');\n };\n\n const onPaste = (event: React.ClipboardEvent<any>) => {\n event.preventDefault();\n const pastedValue = event.clipboardData.getData('text');\n const parsedTime = (pasteSplit || getParsedTime)({ time: pastedValue, format, amPmLabels });\n const timeString = getTimeString({ ...parsedTime, format, withSeconds, amPmLabels });\n if (timeString.valid) {\n acceptChange.current = false;\n const clamped = clampTime(timeString.value, min || '00:00:00', max || '23:59:59');\n onChange?.(clamped.timeString);\n setHours(parsedTime.hours);\n setMinutes(parsedTime.minutes);\n setSeconds(parsedTime.seconds);\n setAmPm(parsedTime.amPm);\n }\n };\n\n const hiddenInputValue = getTimeString({\n hours,\n minutes,\n seconds,\n format,\n withSeconds,\n amPm,\n amPmLabels: amPmLabels!,\n });\n\n useDidUpdate(() => {\n if (value === '') {\n acceptChange.current = false;\n setHours(null);\n setMinutes(null);\n setSeconds(null);\n setAmPm(null);\n acceptChange.current = true;\n return;\n }\n\n if (acceptChange.current && typeof value === 'string') {\n const parsedTime = getParsedTime({ time: value || '', amPmLabels, format });\n setHours(parsedTime.hours);\n setMinutes(parsedTime.minutes);\n setSeconds(parsedTime.seconds);\n setAmPm(parsedTime.amPm);\n }\n acceptChange.current = true;\n }, [value]);\n\n return {\n refs: { hours: hoursRef, minutes: minutesRef, seconds: secondsRef, amPm: amPmRef },\n values: { hours, minutes, seconds, amPm },\n setHours: onHoursChange,\n setMinutes: onMinutesChange,\n setSeconds: onSecondsChange,\n setAmPm: onAmPmChange,\n focus,\n clear,\n onPaste,\n setTimeString,\n isClearable,\n hiddenInputValue: hiddenInputValue.value,\n };\n}\n"],"names":["parsedTime","value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-time-picker.mjs","names":[],"sources":["../../../src/components/TimePicker/use-time-picker.ts"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { useDidUpdate } from '@mantine/hooks';\nimport type {\n TimePickerAmPmLabels,\n TimePickerFormat,\n TimePickerPasteSplit,\n} from './TimePicker.types';\nimport { clampTime } from './utils/clamp-time/clamp-time';\nimport { getParsedTime } from './utils/get-parsed-time/get-parsed-time';\nimport { getTimeString } from './utils/get-time-string/get-time-string';\n\ninterface UseTimePickerInput {\n value: string | undefined;\n defaultValue: string | undefined;\n onChange: ((value: string) => void) | undefined;\n format: TimePickerFormat;\n amPmLabels: TimePickerAmPmLabels;\n withSeconds: boolean | undefined;\n min: string | undefined;\n max: string | undefined;\n readOnly: boolean | undefined;\n disabled: boolean | undefined;\n clearable: boolean | undefined;\n pasteSplit: TimePickerPasteSplit | undefined;\n}\n\nexport function useTimePicker({\n value,\n defaultValue,\n onChange,\n format,\n amPmLabels,\n withSeconds = false,\n min,\n max,\n clearable,\n readOnly,\n disabled,\n pasteSplit,\n}: UseTimePickerInput) {\n const parsedTime = getParsedTime({\n time: value || defaultValue || '',\n amPmLabels,\n format,\n });\n\n const initialTimeString = getTimeString({\n hours: parsedTime.hours,\n minutes: parsedTime.minutes,\n seconds: parsedTime.seconds,\n format,\n withSeconds,\n amPm: parsedTime.amPm,\n amPmLabels,\n });\n\n const acceptChange = useRef(true);\n const wasInvalidBefore = useRef(!initialTimeString.valid);\n\n const [hours, setHours] = useState<number | null>(parsedTime.hours);\n const [minutes, setMinutes] = useState<number | null>(parsedTime.minutes);\n const [seconds, setSeconds] = useState<number | null>(parsedTime.seconds);\n const [amPm, setAmPm] = useState<string | null>(parsedTime.amPm);\n\n const isClearable =\n clearable &&\n !readOnly &&\n !disabled &&\n (hours !== null || minutes !== null || seconds !== null || amPm !== null);\n\n const hoursRef = useRef<HTMLInputElement>(null);\n const minutesRef = useRef<HTMLInputElement>(null);\n const secondsRef = useRef<HTMLInputElement>(null);\n const amPmRef = useRef<HTMLSelectElement>(null);\n\n const focus = (field: 'hours' | 'minutes' | 'seconds' | 'amPm') => {\n if (field === 'hours') {\n hoursRef.current?.focus();\n }\n\n if (field === 'minutes') {\n minutesRef.current?.focus();\n }\n\n if (field === 'seconds') {\n secondsRef.current?.focus();\n }\n\n if (field === 'amPm') {\n amPmRef.current?.focus();\n }\n };\n\n const handleTimeChange = (field: 'hours' | 'minutes' | 'seconds' | 'amPm', val: any) => {\n const computedValue = { hours, minutes, seconds, amPm, [field]: val };\n\n const timeString = getTimeString({ ...computedValue, format, withSeconds, amPmLabels });\n\n if (timeString.valid) {\n acceptChange.current = false;\n wasInvalidBefore.current = false;\n if (field === 'hours') {\n setHours(val);\n }\n if (field === 'minutes') {\n setMinutes(val);\n }\n if (field === 'seconds') {\n setSeconds(val);\n }\n if (field === 'amPm') {\n setAmPm(val);\n }\n\n onChange?.(timeString.value);\n } else {\n acceptChange.current = false;\n if (!wasInvalidBefore.current) {\n onChange?.('');\n wasInvalidBefore.current = true;\n }\n }\n };\n\n const setTimeString = (timeString: string) => {\n acceptChange.current = false;\n\n const parsedTime = getParsedTime({ time: timeString, amPmLabels, format });\n setHours(parsedTime.hours);\n setMinutes(parsedTime.minutes);\n setSeconds(parsedTime.seconds);\n setAmPm(parsedTime.amPm);\n\n const next = getTimeString({ ...parsedTime, format, withSeconds, amPmLabels });\n wasInvalidBefore.current = !next.valid;\n onChange?.(timeString);\n };\n\n const onHoursChange = (value: number | null) => {\n let adjustedValue = value;\n if (format === '12h' && typeof value === 'number' && value > 12) {\n adjustedValue = ((value - 1) % 12) + 1;\n }\n\n setHours(adjustedValue);\n handleTimeChange('hours', adjustedValue);\n focus('hours');\n };\n\n const onMinutesChange = (value: number | null) => {\n setMinutes(value);\n handleTimeChange('minutes', value);\n focus('minutes');\n };\n\n const onSecondsChange = (value: number | null) => {\n setSeconds(value);\n handleTimeChange('seconds', value);\n focus('seconds');\n };\n\n const onAmPmChange = (value: string | null) => {\n setAmPm(value);\n handleTimeChange('amPm', value);\n focus('amPm');\n };\n\n const clear = () => {\n acceptChange.current = false;\n setHours(null);\n setMinutes(null);\n setSeconds(null);\n setAmPm(null);\n onChange?.('');\n wasInvalidBefore.current = true;\n focus('hours');\n };\n\n const onPaste = (event: React.ClipboardEvent<any>) => {\n event.preventDefault();\n const pastedValue = event.clipboardData.getData('text');\n const parsedTime = (pasteSplit || getParsedTime)({ time: pastedValue, format, amPmLabels });\n const timeString = getTimeString({ ...parsedTime, format, withSeconds, amPmLabels });\n if (timeString.valid) {\n acceptChange.current = false;\n const clamped = clampTime(timeString.value, min || '00:00:00', max || '23:59:59');\n onChange?.(clamped.timeString);\n setHours(parsedTime.hours);\n setMinutes(parsedTime.minutes);\n setSeconds(parsedTime.seconds);\n setAmPm(parsedTime.amPm);\n }\n };\n\n const hiddenInputValue = getTimeString({\n hours,\n minutes,\n seconds,\n format,\n withSeconds,\n amPm,\n amPmLabels: amPmLabels!,\n });\n\n useDidUpdate(() => {\n if (value === '') {\n acceptChange.current = false;\n setHours(null);\n setMinutes(null);\n setSeconds(null);\n setAmPm(null);\n acceptChange.current = true;\n return;\n }\n\n if (acceptChange.current && typeof value === 'string') {\n const parsedTime = getParsedTime({ time: value || '', amPmLabels, format });\n setHours(parsedTime.hours);\n setMinutes(parsedTime.minutes);\n setSeconds(parsedTime.seconds);\n setAmPm(parsedTime.amPm);\n }\n acceptChange.current = true;\n }, [value]);\n\n return {\n refs: { hours: hoursRef, minutes: minutesRef, seconds: secondsRef, amPm: amPmRef },\n values: { hours, minutes, seconds, amPm },\n setHours: onHoursChange,\n setMinutes: onMinutesChange,\n setSeconds: onSecondsChange,\n setAmPm: onAmPmChange,\n focus,\n clear,\n onPaste,\n setTimeString,\n isClearable,\n hiddenInputValue: hiddenInputValue.value,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
import { secondsToTime, timeToSeconds } from "../time-to-seconds/time-to-seconds.mjs";
|
|
3
|
+
//#region packages/@mantine/dates/src/components/TimePicker/utils/clamp-time/clamp-time.ts
|
|
4
4
|
function clampTime(time, min, max) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return secondsToTime(clampedSeconds);
|
|
5
|
+
const timeInSeconds = timeToSeconds(time);
|
|
6
|
+
const minInSeconds = min ? timeToSeconds(min) : -Infinity;
|
|
7
|
+
const maxInSeconds = max ? timeToSeconds(max) : Infinity;
|
|
8
|
+
return secondsToTime(Math.max(minInSeconds, Math.min(timeInSeconds, maxInSeconds)));
|
|
10
9
|
}
|
|
11
|
-
|
|
10
|
+
//#endregion
|
|
12
11
|
export { clampTime };
|
|
13
|
-
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=clamp-time.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clamp-time.mjs","sources":["../../../../../src/components/TimePicker/utils/clamp-time/clamp-time.ts"],"sourcesContent":["import { secondsToTime, timeToSeconds } from '../time-to-seconds/time-to-seconds';\n\nexport function clampTime(time: string, min: string | undefined, max: string | undefined) {\n const timeInSeconds = timeToSeconds(time);\n const minInSeconds = min ? timeToSeconds(min) : -Infinity;\n const maxInSeconds = max ? timeToSeconds(max) : Infinity;\n\n const clampedSeconds = Math.max(minInSeconds, Math.min(timeInSeconds, maxInSeconds));\n return secondsToTime(clampedSeconds);\n}\n"],"
|
|
1
|
+
{"version":3,"file":"clamp-time.mjs","names":[],"sources":["../../../../../src/components/TimePicker/utils/clamp-time/clamp-time.ts"],"sourcesContent":["import { secondsToTime, timeToSeconds } from '../time-to-seconds/time-to-seconds';\n\nexport function clampTime(time: string, min: string | undefined, max: string | undefined) {\n const timeInSeconds = timeToSeconds(time);\n const minInSeconds = min ? timeToSeconds(min) : -Infinity;\n const maxInSeconds = max ? timeToSeconds(max) : Infinity;\n\n const clampedSeconds = Math.max(minInSeconds, Math.min(timeInSeconds, maxInSeconds));\n return secondsToTime(clampedSeconds);\n}\n"],"mappings":";;;AAEA,SAAgB,UAAU,MAAc,KAAyB,KAAyB;CACxF,MAAM,gBAAgB,cAAc,KAAK;CACzC,MAAM,eAAe,MAAM,cAAc,IAAI,GAAG;CAChD,MAAM,eAAe,MAAM,cAAc,IAAI,GAAG;AAGhD,QAAO,cADgB,KAAK,IAAI,cAAc,KAAK,IAAI,eAAe,aAAa,CAAC,CAChD"}
|