@mantine/dates 7.13.5-alpha.1 → 7.13.5-alpha.2
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/components/Calendar/Calendar.cjs +267 -0
- package/cjs/components/Calendar/Calendar.cjs.map +1 -0
- package/cjs/components/Calendar/clamp-level/clamp-level.cjs +26 -0
- package/cjs/components/Calendar/clamp-level/clamp-level.cjs.map +1 -0
- package/cjs/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.cjs +126 -0
- package/cjs/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.cjs.map +1 -0
- package/cjs/components/CalendarHeader/CalendarHeader.cjs +132 -0
- package/cjs/components/CalendarHeader/CalendarHeader.cjs.map +1 -0
- package/cjs/components/CalendarHeader/CalendarHeader.module.css.cjs +7 -0
- package/cjs/components/CalendarHeader/CalendarHeader.module.css.cjs.map +1 -0
- package/cjs/components/DateInput/DateInput.cjs +213 -0
- package/cjs/components/DateInput/DateInput.cjs.map +1 -0
- package/cjs/components/DateInput/date-string-parser/date-string-parser.cjs +19 -0
- package/cjs/components/DateInput/date-string-parser/date-string-parser.cjs.map +1 -0
- package/cjs/components/DateInput/is-date-valid/is-date-valid.cjs +27 -0
- package/cjs/components/DateInput/is-date-valid/is-date-valid.cjs.map +1 -0
- package/cjs/components/DatePicker/DatePicker.cjs +92 -0
- package/cjs/components/DatePicker/DatePicker.cjs.map +1 -0
- package/cjs/components/DatePickerInput/DatePickerInput.cjs +129 -0
- package/cjs/components/DatePickerInput/DatePickerInput.cjs.map +1 -0
- package/cjs/components/DateTimePicker/DateTimePicker.cjs +220 -0
- package/cjs/components/DateTimePicker/DateTimePicker.cjs.map +1 -0
- package/cjs/components/DateTimePicker/DateTimePicker.module.css.cjs +7 -0
- package/cjs/components/DateTimePicker/DateTimePicker.module.css.cjs.map +1 -0
- package/cjs/components/DatesProvider/DatesProvider.cjs +23 -0
- package/cjs/components/DatesProvider/DatesProvider.cjs.map +1 -0
- package/cjs/components/DatesProvider/use-dates-context.cjs +37 -0
- package/cjs/components/DatesProvider/use-dates-context.cjs.map +1 -0
- package/cjs/components/Day/Day.cjs +88 -0
- package/cjs/components/Day/Day.cjs.map +1 -0
- package/cjs/components/Day/Day.module.css.cjs +7 -0
- package/cjs/components/Day/Day.module.css.cjs.map +1 -0
- package/cjs/components/DecadeLevel/DecadeLevel.cjs +120 -0
- package/cjs/components/DecadeLevel/DecadeLevel.cjs.map +1 -0
- package/cjs/components/DecadeLevel/get-decade-range/get-decade-range.cjs +12 -0
- package/cjs/components/DecadeLevel/get-decade-range/get-decade-range.cjs.map +1 -0
- package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.cjs +128 -0
- package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.cjs.map +1 -0
- package/cjs/components/HiddenDatesInput/HiddenDatesInput.cjs +39 -0
- package/cjs/components/HiddenDatesInput/HiddenDatesInput.cjs.map +1 -0
- package/cjs/components/LevelsGroup/LevelsGroup.cjs +30 -0
- package/cjs/components/LevelsGroup/LevelsGroup.cjs.map +1 -0
- package/cjs/components/LevelsGroup/LevelsGroup.module.css.cjs +7 -0
- package/cjs/components/LevelsGroup/LevelsGroup.module.css.cjs.map +1 -0
- package/cjs/components/Month/Month.cjs +169 -0
- package/cjs/components/Month/Month.cjs.map +1 -0
- package/cjs/components/Month/Month.module.css.cjs +7 -0
- package/cjs/components/Month/Month.module.css.cjs.map +1 -0
- package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.cjs +29 -0
- package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.cjs.map +1 -0
- package/cjs/components/Month/get-end-of-week/get-end-of-week.cjs +14 -0
- package/cjs/components/Month/get-end-of-week/get-end-of-week.cjs.map +1 -0
- package/cjs/components/Month/get-month-days/get-month-days.cjs +44 -0
- package/cjs/components/Month/get-month-days/get-month-days.cjs.map +1 -0
- package/cjs/components/Month/get-start-of-week/get-start-of-week.cjs +13 -0
- package/cjs/components/Month/get-start-of-week/get-start-of-week.cjs.map +1 -0
- package/cjs/components/Month/is-after-min-date/is-after-min-date.cjs +15 -0
- package/cjs/components/Month/is-after-min-date/is-after-min-date.cjs.map +1 -0
- package/cjs/components/Month/is-before-max-date/is-before-max-date.cjs +15 -0
- package/cjs/components/Month/is-before-max-date/is-before-max-date.cjs.map +1 -0
- package/cjs/components/Month/is-same-month/is-same-month.cjs +9 -0
- package/cjs/components/Month/is-same-month/is-same-month.cjs.map +1 -0
- package/cjs/components/MonthLevel/MonthLevel.cjs +135 -0
- package/cjs/components/MonthLevel/MonthLevel.cjs.map +1 -0
- package/cjs/components/MonthLevelGroup/MonthLevelGroup.cjs +149 -0
- package/cjs/components/MonthLevelGroup/MonthLevelGroup.cjs.map +1 -0
- package/cjs/components/MonthPicker/MonthPicker.cjs +85 -0
- package/cjs/components/MonthPicker/MonthPicker.cjs.map +1 -0
- package/cjs/components/MonthPickerInput/MonthPickerInput.cjs +127 -0
- package/cjs/components/MonthPickerInput/MonthPickerInput.cjs.map +1 -0
- package/cjs/components/MonthsList/MonthsList.cjs +116 -0
- package/cjs/components/MonthsList/MonthsList.cjs.map +1 -0
- package/cjs/components/MonthsList/MonthsList.module.css.cjs +7 -0
- package/cjs/components/MonthsList/MonthsList.module.css.cjs.map +1 -0
- package/cjs/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.cjs +27 -0
- package/cjs/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.cjs.map +1 -0
- package/cjs/components/MonthsList/get-months-data/get-months-data.cjs +24 -0
- package/cjs/components/MonthsList/get-months-data/get-months-data.cjs.map +1 -0
- package/cjs/components/MonthsList/is-month-disabled/is-month-disabled.cjs +24 -0
- package/cjs/components/MonthsList/is-month-disabled/is-month-disabled.cjs.map +1 -0
- package/cjs/components/PickerControl/PickerControl.cjs +66 -0
- package/cjs/components/PickerControl/PickerControl.cjs.map +1 -0
- package/cjs/components/PickerControl/PickerControl.module.css.cjs +7 -0
- package/cjs/components/PickerControl/PickerControl.module.css.cjs.map +1 -0
- package/cjs/components/PickerInputBase/PickerInputBase.cjs +133 -0
- package/cjs/components/PickerInputBase/PickerInputBase.cjs.map +1 -0
- package/cjs/components/PickerInputBase/PickerInputBase.module.css.cjs +7 -0
- package/cjs/components/PickerInputBase/PickerInputBase.module.css.cjs.map +1 -0
- package/cjs/components/TimeInput/TimeInput.cjs +88 -0
- package/cjs/components/TimeInput/TimeInput.cjs.map +1 -0
- package/cjs/components/TimeInput/TimeInput.module.css.cjs +7 -0
- package/cjs/components/TimeInput/TimeInput.module.css.cjs.map +1 -0
- package/cjs/components/WeekdaysRow/WeekdaysRow.cjs +59 -0
- package/cjs/components/WeekdaysRow/WeekdaysRow.cjs.map +1 -0
- package/cjs/components/WeekdaysRow/WeekdaysRow.module.css.cjs +7 -0
- package/cjs/components/WeekdaysRow/WeekdaysRow.module.css.cjs.map +1 -0
- package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.cjs +28 -0
- package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.cjs.map +1 -0
- package/cjs/components/YearLevel/YearLevel.cjs +117 -0
- package/cjs/components/YearLevel/YearLevel.cjs.map +1 -0
- package/cjs/components/YearLevelGroup/YearLevelGroup.cjs +132 -0
- package/cjs/components/YearLevelGroup/YearLevelGroup.cjs.map +1 -0
- package/cjs/components/YearPicker/YearPicker.cjs +84 -0
- package/cjs/components/YearPicker/YearPicker.cjs.map +1 -0
- package/cjs/components/YearPickerInput/YearPickerInput.cjs +127 -0
- package/cjs/components/YearPickerInput/YearPickerInput.cjs.map +1 -0
- package/cjs/components/YearsList/YearsList.cjs +115 -0
- package/cjs/components/YearsList/YearsList.cjs.map +1 -0
- package/cjs/components/YearsList/YearsList.module.css.cjs +7 -0
- package/cjs/components/YearsList/YearsList.module.css.cjs.map +1 -0
- package/cjs/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.cjs +27 -0
- package/cjs/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.cjs.map +1 -0
- package/cjs/components/YearsList/get-years-data/get-years-data.cjs +20 -0
- package/cjs/components/YearsList/get-years-data/get-years-data.cjs.map +1 -0
- package/cjs/components/YearsList/is-year-disabled/is-year-disabled.cjs +24 -0
- package/cjs/components/YearsList/is-year-disabled/is-year-disabled.cjs.map +1 -0
- package/cjs/hooks/use-dates-input/use-dates-input.cjs +69 -0
- package/cjs/hooks/use-dates-input/use-dates-input.cjs.map +1 -0
- package/cjs/hooks/use-dates-state/is-in-range/is-in-range.cjs +16 -0
- package/cjs/hooks/use-dates-state/is-in-range/is-in-range.cjs.map +1 -0
- package/cjs/hooks/use-dates-state/use-dates-state.cjs +154 -0
- package/cjs/hooks/use-dates-state/use-dates-state.cjs.map +1 -0
- package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.cjs +65 -0
- package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.cjs.map +1 -0
- package/cjs/index.cjs +83 -0
- package/cjs/index.cjs.map +1 -0
- package/cjs/utils/assign-time/assign-time.cjs +21 -0
- package/cjs/utils/assign-time/assign-time.cjs.map +1 -0
- package/cjs/utils/get-default-clamped-date.cjs +26 -0
- package/cjs/utils/get-default-clamped-date.cjs.map +1 -0
- package/cjs/utils/get-formatted-date.cjs +41 -0
- package/cjs/utils/get-formatted-date.cjs.map +1 -0
- package/cjs/utils/get-timezone-offset.cjs +24 -0
- package/cjs/utils/get-timezone-offset.cjs.map +1 -0
- package/cjs/utils/handle-control-key-down.cjs +158 -0
- package/cjs/utils/handle-control-key-down.cjs.map +1 -0
- package/cjs/utils/shift-timezone.cjs +35 -0
- package/cjs/utils/shift-timezone.cjs.map +1 -0
- package/esm/components/Calendar/Calendar.mjs +261 -0
- package/esm/components/Calendar/Calendar.mjs.map +1 -0
- package/esm/components/Calendar/clamp-level/clamp-level.mjs +24 -0
- package/esm/components/Calendar/clamp-level/clamp-level.mjs.map +1 -0
- package/esm/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.mjs +124 -0
- package/esm/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.mjs.map +1 -0
- package/esm/components/CalendarHeader/CalendarHeader.mjs +130 -0
- package/esm/components/CalendarHeader/CalendarHeader.mjs.map +1 -0
- package/esm/components/CalendarHeader/CalendarHeader.module.css.mjs +5 -0
- package/esm/components/CalendarHeader/CalendarHeader.module.css.mjs.map +1 -0
- package/esm/components/DateInput/DateInput.mjs +207 -0
- package/esm/components/DateInput/DateInput.mjs.map +1 -0
- package/esm/components/DateInput/date-string-parser/date-string-parser.mjs +17 -0
- package/esm/components/DateInput/date-string-parser/date-string-parser.mjs.map +1 -0
- package/esm/components/DateInput/is-date-valid/is-date-valid.mjs +21 -0
- package/esm/components/DateInput/is-date-valid/is-date-valid.mjs.map +1 -0
- package/esm/components/DatePicker/DatePicker.mjs +90 -0
- package/esm/components/DatePicker/DatePicker.mjs.map +1 -0
- package/esm/components/DatePickerInput/DatePickerInput.mjs +127 -0
- package/esm/components/DatePickerInput/DatePickerInput.mjs.map +1 -0
- package/esm/components/DateTimePicker/DateTimePicker.mjs +214 -0
- package/esm/components/DateTimePicker/DateTimePicker.mjs.map +1 -0
- package/esm/components/DateTimePicker/DateTimePicker.module.css.mjs +5 -0
- package/esm/components/DateTimePicker/DateTimePicker.module.css.mjs.map +1 -0
- package/esm/components/DatesProvider/DatesProvider.mjs +19 -0
- package/esm/components/DatesProvider/DatesProvider.mjs.map +1 -0
- package/esm/components/DatesProvider/use-dates-context.mjs +35 -0
- package/esm/components/DatesProvider/use-dates-context.mjs.map +1 -0
- package/esm/components/Day/Day.mjs +82 -0
- package/esm/components/Day/Day.mjs.map +1 -0
- package/esm/components/Day/Day.module.css.mjs +5 -0
- package/esm/components/Day/Day.module.css.mjs.map +1 -0
- package/esm/components/DecadeLevel/DecadeLevel.mjs +114 -0
- package/esm/components/DecadeLevel/DecadeLevel.mjs.map +1 -0
- package/esm/components/DecadeLevel/get-decade-range/get-decade-range.mjs +10 -0
- package/esm/components/DecadeLevel/get-decade-range/get-decade-range.mjs.map +1 -0
- package/esm/components/DecadeLevelGroup/DecadeLevelGroup.mjs +122 -0
- package/esm/components/DecadeLevelGroup/DecadeLevelGroup.mjs.map +1 -0
- package/esm/components/HiddenDatesInput/HiddenDatesInput.mjs +37 -0
- package/esm/components/HiddenDatesInput/HiddenDatesInput.mjs.map +1 -0
- package/esm/components/LevelsGroup/LevelsGroup.mjs +28 -0
- package/esm/components/LevelsGroup/LevelsGroup.mjs.map +1 -0
- package/esm/components/LevelsGroup/LevelsGroup.module.css.mjs +5 -0
- package/esm/components/LevelsGroup/LevelsGroup.module.css.mjs.map +1 -0
- package/esm/components/Month/Month.mjs +163 -0
- package/esm/components/Month/Month.mjs.map +1 -0
- package/esm/components/Month/Month.module.css.mjs +5 -0
- package/esm/components/Month/Month.module.css.mjs.map +1 -0
- package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.mjs +23 -0
- package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.mjs.map +1 -0
- package/esm/components/Month/get-end-of-week/get-end-of-week.mjs +12 -0
- package/esm/components/Month/get-end-of-week/get-end-of-week.mjs.map +1 -0
- package/esm/components/Month/get-month-days/get-month-days.mjs +42 -0
- package/esm/components/Month/get-month-days/get-month-days.mjs.map +1 -0
- package/esm/components/Month/get-start-of-week/get-start-of-week.mjs +11 -0
- package/esm/components/Month/get-start-of-week/get-start-of-week.mjs.map +1 -0
- package/esm/components/Month/is-after-min-date/is-after-min-date.mjs +9 -0
- package/esm/components/Month/is-after-min-date/is-after-min-date.mjs.map +1 -0
- package/esm/components/Month/is-before-max-date/is-before-max-date.mjs +9 -0
- package/esm/components/Month/is-before-max-date/is-before-max-date.mjs.map +1 -0
- package/esm/components/Month/is-same-month/is-same-month.mjs +7 -0
- package/esm/components/Month/is-same-month/is-same-month.mjs.map +1 -0
- package/esm/components/MonthLevel/MonthLevel.mjs +129 -0
- package/esm/components/MonthLevel/MonthLevel.mjs.map +1 -0
- package/esm/components/MonthLevelGroup/MonthLevelGroup.mjs +143 -0
- package/esm/components/MonthLevelGroup/MonthLevelGroup.mjs.map +1 -0
- package/esm/components/MonthPicker/MonthPicker.mjs +83 -0
- package/esm/components/MonthPicker/MonthPicker.mjs.map +1 -0
- package/esm/components/MonthPickerInput/MonthPickerInput.mjs +125 -0
- package/esm/components/MonthPickerInput/MonthPickerInput.mjs.map +1 -0
- package/esm/components/MonthsList/MonthsList.mjs +110 -0
- package/esm/components/MonthsList/MonthsList.mjs.map +1 -0
- package/esm/components/MonthsList/MonthsList.module.css.mjs +5 -0
- package/esm/components/MonthsList/MonthsList.module.css.mjs.map +1 -0
- package/esm/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.mjs +21 -0
- package/esm/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.mjs.map +1 -0
- package/esm/components/MonthsList/get-months-data/get-months-data.mjs +18 -0
- package/esm/components/MonthsList/get-months-data/get-months-data.mjs.map +1 -0
- package/esm/components/MonthsList/is-month-disabled/is-month-disabled.mjs +18 -0
- package/esm/components/MonthsList/is-month-disabled/is-month-disabled.mjs.map +1 -0
- package/esm/components/PickerControl/PickerControl.mjs +64 -0
- package/esm/components/PickerControl/PickerControl.mjs.map +1 -0
- package/esm/components/PickerControl/PickerControl.module.css.mjs +5 -0
- package/esm/components/PickerControl/PickerControl.module.css.mjs.map +1 -0
- package/esm/components/PickerInputBase/PickerInputBase.mjs +127 -0
- package/esm/components/PickerInputBase/PickerInputBase.mjs.map +1 -0
- package/esm/components/PickerInputBase/PickerInputBase.module.css.mjs +5 -0
- package/esm/components/PickerInputBase/PickerInputBase.module.css.mjs.map +1 -0
- package/esm/components/TimeInput/TimeInput.mjs +82 -0
- package/esm/components/TimeInput/TimeInput.mjs.map +1 -0
- package/esm/components/TimeInput/TimeInput.module.css.mjs +5 -0
- package/esm/components/TimeInput/TimeInput.module.css.mjs.map +1 -0
- package/esm/components/WeekdaysRow/WeekdaysRow.mjs +57 -0
- package/esm/components/WeekdaysRow/WeekdaysRow.mjs.map +1 -0
- package/esm/components/WeekdaysRow/WeekdaysRow.module.css.mjs +5 -0
- package/esm/components/WeekdaysRow/WeekdaysRow.module.css.mjs.map +1 -0
- package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.mjs +22 -0
- package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.mjs.map +1 -0
- package/esm/components/YearLevel/YearLevel.mjs +111 -0
- package/esm/components/YearLevel/YearLevel.mjs.map +1 -0
- package/esm/components/YearLevelGroup/YearLevelGroup.mjs +126 -0
- package/esm/components/YearLevelGroup/YearLevelGroup.mjs.map +1 -0
- package/esm/components/YearPicker/YearPicker.mjs +82 -0
- package/esm/components/YearPicker/YearPicker.mjs.map +1 -0
- package/esm/components/YearPickerInput/YearPickerInput.mjs +125 -0
- package/esm/components/YearPickerInput/YearPickerInput.mjs.map +1 -0
- package/esm/components/YearsList/YearsList.mjs +109 -0
- package/esm/components/YearsList/YearsList.mjs.map +1 -0
- package/esm/components/YearsList/YearsList.module.css.mjs +5 -0
- package/esm/components/YearsList/YearsList.module.css.mjs.map +1 -0
- package/esm/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.mjs +21 -0
- package/esm/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.mjs.map +1 -0
- package/esm/components/YearsList/get-years-data/get-years-data.mjs +18 -0
- package/esm/components/YearsList/get-years-data/get-years-data.mjs.map +1 -0
- package/esm/components/YearsList/is-year-disabled/is-year-disabled.mjs +18 -0
- package/esm/components/YearsList/is-year-disabled/is-year-disabled.mjs.map +1 -0
- package/esm/hooks/use-dates-input/use-dates-input.mjs +67 -0
- package/esm/hooks/use-dates-input/use-dates-input.mjs.map +1 -0
- package/esm/hooks/use-dates-state/is-in-range/is-in-range.mjs +10 -0
- package/esm/hooks/use-dates-state/is-in-range/is-in-range.mjs.map +1 -0
- package/esm/hooks/use-dates-state/use-dates-state.mjs +148 -0
- package/esm/hooks/use-dates-state/use-dates-state.mjs.map +1 -0
- package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.mjs +63 -0
- package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.mjs.map +1 -0
- package/esm/index.mjs +39 -0
- package/esm/index.mjs.map +1 -0
- package/esm/utils/assign-time/assign-time.mjs +19 -0
- package/esm/utils/assign-time/assign-time.mjs.map +1 -0
- package/esm/utils/get-default-clamped-date.mjs +20 -0
- package/esm/utils/get-default-clamped-date.mjs.map +1 -0
- package/esm/utils/get-formatted-date.mjs +34 -0
- package/esm/utils/get-formatted-date.mjs.map +1 -0
- package/esm/utils/get-timezone-offset.mjs +16 -0
- package/esm/utils/get-timezone-offset.mjs.map +1 -0
- package/esm/utils/handle-control-key-down.mjs +156 -0
- package/esm/utils/handle-control-key-down.mjs.map +1 -0
- package/esm/utils/shift-timezone.mjs +29 -0
- package/esm/utils/shift-timezone.mjs.map +1 -0
- package/lib/components/Calendar/Calendar.d.ts +94 -0
- package/lib/components/Calendar/clamp-level/clamp-level.d.ts +2 -0
- package/lib/components/Calendar/index.d.ts +3 -0
- package/lib/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.d.ts +55 -0
- package/lib/components/CalendarHeader/CalendarHeader.d.ts +55 -0
- package/lib/components/CalendarHeader/index.d.ts +2 -0
- package/lib/components/DateInput/DateInput.d.ts +51 -0
- package/lib/components/DateInput/date-string-parser/date-string-parser.d.ts +1 -0
- package/lib/components/DateInput/index.d.ts +2 -0
- package/lib/components/DateInput/is-date-valid/is-date-valid.d.ts +7 -0
- package/lib/components/DatePicker/DatePicker.d.ts +31 -0
- package/lib/components/DatePicker/index.d.ts +2 -0
- package/lib/components/DatePickerInput/DatePickerInput.d.ts +23 -0
- package/lib/components/DatePickerInput/index.d.ts +2 -0
- package/lib/components/DateTimePicker/DateTimePicker.d.ts +36 -0
- package/lib/components/DateTimePicker/index.d.ts +2 -0
- package/lib/components/DatesProvider/DatesProvider.d.ts +17 -0
- package/lib/components/DatesProvider/index.d.ts +3 -0
- package/lib/components/DatesProvider/use-dates-context.d.ts +14 -0
- package/lib/components/Day/Day.d.ts +44 -0
- package/lib/components/Day/index.d.ts +2 -0
- package/lib/components/DecadeLevel/DecadeLevel.d.ts +29 -0
- package/lib/components/DecadeLevel/get-decade-range/get-decade-range.d.ts +1 -0
- package/lib/components/DecadeLevel/index.d.ts +2 -0
- package/lib/components/DecadeLevelGroup/DecadeLevelGroup.d.ts +25 -0
- package/lib/components/DecadeLevelGroup/index.d.ts +2 -0
- package/lib/components/HiddenDatesInput/HiddenDatesInput.d.ts +12 -0
- package/lib/components/HiddenDatesInput/index.d.ts +2 -0
- package/lib/components/LevelsGroup/LevelsGroup.d.ts +16 -0
- package/lib/components/LevelsGroup/index.d.ts +2 -0
- package/lib/components/Month/Month.d.ts +65 -0
- package/lib/components/Month/get-date-in-tab-order/get-date-in-tab-order.d.ts +2 -0
- package/lib/components/Month/get-end-of-week/get-end-of-week.d.ts +2 -0
- package/lib/components/Month/get-month-days/get-month-days.d.ts +8 -0
- package/lib/components/Month/get-start-of-week/get-start-of-week.d.ts +2 -0
- package/lib/components/Month/index.d.ts +6 -0
- package/lib/components/Month/is-after-min-date/is-after-min-date.d.ts +1 -0
- package/lib/components/Month/is-before-max-date/is-before-max-date.d.ts +1 -0
- package/lib/components/Month/is-same-month/is-same-month.d.ts +1 -0
- package/lib/components/MonthLevel/MonthLevel.d.ts +31 -0
- package/lib/components/MonthLevel/index.d.ts +2 -0
- package/lib/components/MonthLevelGroup/MonthLevelGroup.d.ts +27 -0
- package/lib/components/MonthLevelGroup/index.d.ts +2 -0
- package/lib/components/MonthPicker/MonthPicker.d.ts +35 -0
- package/lib/components/MonthPicker/index.d.ts +2 -0
- package/lib/components/MonthPickerInput/MonthPickerInput.d.ts +22 -0
- package/lib/components/MonthPickerInput/index.d.ts +2 -0
- package/lib/components/MonthsList/MonthsList.d.ts +33 -0
- package/lib/components/MonthsList/get-month-in-tab-order/get-month-in-tab-order.d.ts +2 -0
- package/lib/components/MonthsList/get-months-data/get-months-data.d.ts +1 -0
- package/lib/components/MonthsList/index.d.ts +2 -0
- package/lib/components/MonthsList/is-month-disabled/is-month-disabled.d.ts +1 -0
- package/lib/components/PickerControl/PickerControl.d.ts +34 -0
- package/lib/components/PickerControl/index.d.ts +2 -0
- package/lib/components/PickerInputBase/PickerInputBase.d.ts +56 -0
- package/lib/components/PickerInputBase/index.d.ts +2 -0
- package/lib/components/TimeInput/TimeInput.d.ts +19 -0
- package/lib/components/TimeInput/index.d.ts +2 -0
- package/lib/components/WeekdaysRow/WeekdaysRow.d.ts +31 -0
- package/lib/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.d.ts +8 -0
- package/lib/components/WeekdaysRow/index.d.ts +2 -0
- package/lib/components/YearLevel/YearLevel.d.ts +29 -0
- package/lib/components/YearLevel/index.d.ts +2 -0
- package/lib/components/YearLevelGroup/YearLevelGroup.d.ts +25 -0
- package/lib/components/YearLevelGroup/index.d.ts +2 -0
- package/lib/components/YearPicker/YearPicker.d.ts +24 -0
- package/lib/components/YearPicker/index.d.ts +2 -0
- package/lib/components/YearPickerInput/YearPickerInput.d.ts +22 -0
- package/lib/components/YearPickerInput/index.d.ts +2 -0
- package/lib/components/YearsList/YearsList.d.ts +33 -0
- package/lib/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.d.ts +2 -0
- package/lib/components/YearsList/get-years-data/get-years-data.d.ts +1 -0
- package/lib/components/YearsList/index.d.ts +2 -0
- package/lib/components/YearsList/is-year-disabled/is-year-disabled.d.ts +1 -0
- package/lib/hooks/index.d.ts +3 -0
- package/lib/hooks/use-dates-input/use-dates-input.d.ts +28 -0
- package/lib/hooks/use-dates-state/is-in-range/is-in-range.d.ts +1 -0
- package/lib/hooks/use-dates-state/use-dates-state.d.ts +28 -0
- package/lib/hooks/use-uncontrolled-dates/use-uncontrolled-dates.d.ts +10 -0
- package/lib/index.d.mts +29 -0
- package/lib/index.d.ts +29 -0
- package/lib/types/ControlsGroupSettings.d.ts +17 -0
- package/lib/types/DatePickerValue.d.ts +4 -0
- package/lib/types/GeneralTypes.d.ts +7 -0
- package/lib/types/PickerBaseProps.d.ts +15 -0
- package/lib/types/index.d.ts +4 -0
- package/lib/utils/assign-time/assign-time.d.ts +1 -0
- package/lib/utils/get-default-clamped-date.d.ts +7 -0
- package/lib/utils/get-formatted-date.d.ts +15 -0
- package/lib/utils/get-timezone-offset.d.ts +1 -0
- package/lib/utils/handle-control-key-down.d.ts +11 -0
- package/lib/utils/index.d.ts +6 -0
- package/lib/utils/shift-timezone.d.ts +4 -0
- package/package.json +3 -3
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import dayjs from 'dayjs';
|
|
4
|
+
import { factory, useProps, useStyles, Box } from '@mantine/core';
|
|
5
|
+
import '../DatesProvider/DatesProvider.mjs';
|
|
6
|
+
import { useDatesContext } from '../DatesProvider/use-dates-context.mjs';
|
|
7
|
+
import { PickerControl } from '../PickerControl/PickerControl.mjs';
|
|
8
|
+
import { getYearInTabOrder } from './get-year-in-tab-order/get-year-in-tab-order.mjs';
|
|
9
|
+
import { getYearsData } from './get-years-data/get-years-data.mjs';
|
|
10
|
+
import { isYearDisabled } from './is-year-disabled/is-year-disabled.mjs';
|
|
11
|
+
import classes from './YearsList.module.css.mjs';
|
|
12
|
+
|
|
13
|
+
const defaultProps = {
|
|
14
|
+
yearsListFormat: "YYYY",
|
|
15
|
+
withCellSpacing: true
|
|
16
|
+
};
|
|
17
|
+
const YearsList = factory((_props, ref) => {
|
|
18
|
+
const props = useProps("YearsList", defaultProps, _props);
|
|
19
|
+
const {
|
|
20
|
+
classNames,
|
|
21
|
+
className,
|
|
22
|
+
style,
|
|
23
|
+
styles,
|
|
24
|
+
unstyled,
|
|
25
|
+
vars,
|
|
26
|
+
decade,
|
|
27
|
+
yearsListFormat,
|
|
28
|
+
locale,
|
|
29
|
+
minDate,
|
|
30
|
+
maxDate,
|
|
31
|
+
getYearControlProps,
|
|
32
|
+
__staticSelector,
|
|
33
|
+
__getControlRef,
|
|
34
|
+
__onControlKeyDown,
|
|
35
|
+
__onControlClick,
|
|
36
|
+
__onControlMouseEnter,
|
|
37
|
+
__preventFocus,
|
|
38
|
+
__stopPropagation,
|
|
39
|
+
withCellSpacing,
|
|
40
|
+
size,
|
|
41
|
+
...others
|
|
42
|
+
} = props;
|
|
43
|
+
const getStyles = useStyles({
|
|
44
|
+
name: __staticSelector || "YearsList",
|
|
45
|
+
classes,
|
|
46
|
+
props,
|
|
47
|
+
className,
|
|
48
|
+
style,
|
|
49
|
+
classNames,
|
|
50
|
+
styles,
|
|
51
|
+
unstyled,
|
|
52
|
+
vars,
|
|
53
|
+
rootSelector: "yearsList"
|
|
54
|
+
});
|
|
55
|
+
const ctx = useDatesContext();
|
|
56
|
+
const years = getYearsData(decade);
|
|
57
|
+
const yearInTabOrder = getYearInTabOrder(years, minDate, maxDate, getYearControlProps);
|
|
58
|
+
const rows = years.map((yearsRow, rowIndex) => {
|
|
59
|
+
const cells = yearsRow.map((year, cellIndex) => {
|
|
60
|
+
const controlProps = getYearControlProps?.(year);
|
|
61
|
+
const isYearInTabOrder = dayjs(year).isSame(yearInTabOrder, "year");
|
|
62
|
+
return /* @__PURE__ */ jsx(
|
|
63
|
+
"td",
|
|
64
|
+
{
|
|
65
|
+
...getStyles("yearsListCell"),
|
|
66
|
+
"data-with-spacing": withCellSpacing || void 0,
|
|
67
|
+
children: /* @__PURE__ */ jsx(
|
|
68
|
+
PickerControl,
|
|
69
|
+
{
|
|
70
|
+
...getStyles("yearsListControl"),
|
|
71
|
+
size,
|
|
72
|
+
unstyled,
|
|
73
|
+
"data-mantine-stop-propagation": __stopPropagation || void 0,
|
|
74
|
+
disabled: isYearDisabled(year, minDate, maxDate),
|
|
75
|
+
ref: (node) => __getControlRef?.(rowIndex, cellIndex, node),
|
|
76
|
+
...controlProps,
|
|
77
|
+
onKeyDown: (event) => {
|
|
78
|
+
controlProps?.onKeyDown?.(event);
|
|
79
|
+
__onControlKeyDown?.(event, { rowIndex, cellIndex, date: year });
|
|
80
|
+
},
|
|
81
|
+
onClick: (event) => {
|
|
82
|
+
controlProps?.onClick?.(event);
|
|
83
|
+
__onControlClick?.(event, year);
|
|
84
|
+
},
|
|
85
|
+
onMouseEnter: (event) => {
|
|
86
|
+
controlProps?.onMouseEnter?.(event);
|
|
87
|
+
__onControlMouseEnter?.(event, year);
|
|
88
|
+
},
|
|
89
|
+
onMouseDown: (event) => {
|
|
90
|
+
controlProps?.onMouseDown?.(event);
|
|
91
|
+
__preventFocus && event.preventDefault();
|
|
92
|
+
},
|
|
93
|
+
tabIndex: __preventFocus || !isYearInTabOrder ? -1 : 0,
|
|
94
|
+
children: dayjs(year).locale(ctx.getLocale(locale)).format(yearsListFormat)
|
|
95
|
+
}
|
|
96
|
+
)
|
|
97
|
+
},
|
|
98
|
+
cellIndex
|
|
99
|
+
);
|
|
100
|
+
});
|
|
101
|
+
return /* @__PURE__ */ jsx("tr", { ...getStyles("yearsListRow"), children: cells }, rowIndex);
|
|
102
|
+
});
|
|
103
|
+
return /* @__PURE__ */ jsx(Box, { component: "table", ref, size, ...getStyles("yearsList"), ...others, children: /* @__PURE__ */ jsx("tbody", { children: rows }) });
|
|
104
|
+
});
|
|
105
|
+
YearsList.classes = classes;
|
|
106
|
+
YearsList.displayName = "@mantine/dates/YearsList";
|
|
107
|
+
|
|
108
|
+
export { YearsList };
|
|
109
|
+
//# sourceMappingURL=YearsList.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YearsList.mjs","sources":["../../../src/components/YearsList/YearsList.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport {\n Box,\n BoxProps,\n ElementProps,\n factory,\n Factory,\n MantineSize,\n StylesApiProps,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport { ControlsGroupSettings } from '../../types';\nimport { useDatesContext } from '../DatesProvider';\nimport { PickerControl, PickerControlProps } from '../PickerControl';\nimport { getYearInTabOrder } from './get-year-in-tab-order/get-year-in-tab-order';\nimport { getYearsData } from './get-years-data/get-years-data';\nimport { isYearDisabled } from './is-year-disabled/is-year-disabled';\nimport classes from './YearsList.module.css';\n\nexport type YearsListStylesNames =\n | 'yearsListControl'\n | 'yearsList'\n | 'yearsListCell'\n | 'yearsListRow';\n\nexport interface YearsListSettings extends ControlsGroupSettings {\n /** Prevents focus shift when buttons are clicked */\n __preventFocus?: boolean;\n\n /** Determines whether propagation for Escape key should be stopped */\n __stopPropagation?: boolean;\n\n /** Dayjs format for years list, `'YYYY'` by default */\n yearsListFormat?: string;\n\n /** Adds props to year picker control based on date */\n getYearControlProps?: (date: Date) => Partial<PickerControlProps>;\n\n /** Component size */\n size?: MantineSize;\n\n /** Determines whether controls should be separated by spacing, true by default */\n withCellSpacing?: boolean;\n}\n\nexport interface YearsListProps\n extends BoxProps,\n YearsListSettings,\n StylesApiProps<YearsListFactory>,\n ElementProps<'table'> {\n __staticSelector?: string;\n\n /** Decade for which years list should be displayed */\n decade: Date;\n}\n\nexport type YearsListFactory = Factory<{\n props: YearsListProps;\n ref: HTMLTableElement;\n stylesNames: YearsListStylesNames;\n}>;\n\nconst defaultProps: Partial<YearsListProps> = {\n yearsListFormat: 'YYYY',\n withCellSpacing: true,\n};\n\nexport const YearsList = factory<YearsListFactory>((_props, ref) => {\n const props = useProps('YearsList', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n decade,\n yearsListFormat,\n locale,\n minDate,\n maxDate,\n getYearControlProps,\n __staticSelector,\n __getControlRef,\n __onControlKeyDown,\n __onControlClick,\n __onControlMouseEnter,\n __preventFocus,\n __stopPropagation,\n withCellSpacing,\n size,\n ...others\n } = props;\n\n const getStyles = useStyles<YearsListFactory>({\n name: __staticSelector || 'YearsList',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n rootSelector: 'yearsList',\n });\n\n const ctx = useDatesContext();\n\n const years = getYearsData(decade);\n\n const yearInTabOrder = getYearInTabOrder(years, minDate, maxDate, getYearControlProps);\n\n const rows = years.map((yearsRow, rowIndex) => {\n const cells = yearsRow.map((year, cellIndex) => {\n const controlProps = getYearControlProps?.(year);\n const isYearInTabOrder = dayjs(year).isSame(yearInTabOrder, 'year');\n return (\n <td\n key={cellIndex}\n {...getStyles('yearsListCell')}\n data-with-spacing={withCellSpacing || undefined}\n >\n <PickerControl\n {...getStyles('yearsListControl')}\n size={size}\n unstyled={unstyled}\n data-mantine-stop-propagation={__stopPropagation || undefined}\n disabled={isYearDisabled(year, minDate, maxDate)}\n ref={(node) => __getControlRef?.(rowIndex, cellIndex, node!)}\n {...controlProps}\n onKeyDown={(event) => {\n controlProps?.onKeyDown?.(event);\n __onControlKeyDown?.(event, { rowIndex, cellIndex, date: year });\n }}\n onClick={(event) => {\n controlProps?.onClick?.(event);\n __onControlClick?.(event, year);\n }}\n onMouseEnter={(event) => {\n controlProps?.onMouseEnter?.(event);\n __onControlMouseEnter?.(event, year);\n }}\n onMouseDown={(event) => {\n controlProps?.onMouseDown?.(event);\n __preventFocus && event.preventDefault();\n }}\n tabIndex={__preventFocus || !isYearInTabOrder ? -1 : 0}\n >\n {dayjs(year).locale(ctx.getLocale(locale)).format(yearsListFormat)}\n </PickerControl>\n </td>\n );\n });\n\n return (\n <tr key={rowIndex} {...getStyles('yearsListRow')}>\n {cells}\n </tr>\n );\n });\n\n return (\n <Box component=\"table\" ref={ref} size={size} {...getStyles('yearsList')} {...others}>\n <tbody>{rows}</tbody>\n </Box>\n );\n});\n\nYearsList.classes = classes;\nYearsList.displayName = '@mantine/dates/YearsList';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YearsList.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
import { isYearDisabled } from '../is-year-disabled/is-year-disabled.mjs';
|
|
4
|
+
|
|
5
|
+
function getYearInTabOrder(years, minDate, maxDate, getYearControlProps) {
|
|
6
|
+
const enabledYears = years.flat().filter(
|
|
7
|
+
(year) => !isYearDisabled(year, minDate, maxDate) && !getYearControlProps?.(year)?.disabled
|
|
8
|
+
);
|
|
9
|
+
const selectedYear = enabledYears.find((year) => getYearControlProps?.(year)?.selected);
|
|
10
|
+
if (selectedYear) {
|
|
11
|
+
return selectedYear;
|
|
12
|
+
}
|
|
13
|
+
const currentYear = enabledYears.find((year) => dayjs().isSame(year, "year"));
|
|
14
|
+
if (currentYear) {
|
|
15
|
+
return currentYear;
|
|
16
|
+
}
|
|
17
|
+
return enabledYears[0];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { getYearInTabOrder };
|
|
21
|
+
//# sourceMappingURL=get-year-in-tab-order.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-year-in-tab-order.mjs","sources":["../../../../src/components/YearsList/get-year-in-tab-order/get-year-in-tab-order.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { PickerControlProps } from '../../PickerControl';\nimport { isYearDisabled } from '../is-year-disabled/is-year-disabled';\n\nexport function getYearInTabOrder(\n years: Date[][],\n minDate: Date | undefined,\n maxDate: Date | undefined,\n getYearControlProps: ((year: Date) => Partial<PickerControlProps>) | undefined\n) {\n const enabledYears = years\n .flat()\n .filter(\n (year) => !isYearDisabled(year, minDate, maxDate) && !getYearControlProps?.(year)?.disabled\n );\n\n const selectedYear = enabledYears.find((year) => getYearControlProps?.(year)?.selected);\n\n if (selectedYear) {\n return selectedYear;\n }\n\n const currentYear = enabledYears.find((year) => dayjs().isSame(year, 'year'));\n\n if (currentYear) {\n return currentYear;\n }\n\n return enabledYears[0];\n}\n"],"names":[],"mappings":";;;;AAGO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,OAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAE,CAAA,CAAA;AAChF,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,YAAY,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAI,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,mBAAmB,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACvF,CAAG,CAAA,CAAA,CAAA;AACH,CAAA,CAAE,MAAM,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAC,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,mBAAmB,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,QAAQ,CAAC,CAAA;AACzF,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,YAAY,CAAE,CAAA,CAAA;AACpB,CAAA,CAAA,CAAA,CAAI,OAAO,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA;AACA,CAAA,CAAE,MAAM,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,YAAY,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA;AAC/E,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,WAAW,CAAE,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAI,OAAO,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA;AACA,CAAA,CAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAC,CAAC,CAAA;AACxB,CAAA;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
function getYearsData(decade) {
|
|
3
|
+
const year = decade.getFullYear();
|
|
4
|
+
const rounded = year - year % 10;
|
|
5
|
+
let currentYearIndex = 0;
|
|
6
|
+
const results = [[], [], [], []];
|
|
7
|
+
for (let i = 0; i < 4; i += 1) {
|
|
8
|
+
const max = i === 3 ? 1 : 3;
|
|
9
|
+
for (let j = 0; j < max; j += 1) {
|
|
10
|
+
results[i].push(new Date(rounded + currentYearIndex, 0));
|
|
11
|
+
currentYearIndex += 1;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return results;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { getYearsData };
|
|
18
|
+
//# sourceMappingURL=get-years-data.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-years-data.mjs","sources":["../../../../src/components/YearsList/get-years-data/get-years-data.ts"],"sourcesContent":["export function getYearsData(decade: Date) {\n const year = decade.getFullYear();\n\n const rounded = year - (year % 10);\n\n let currentYearIndex = 0;\n const results: Date[][] = [[], [], [], []];\n\n for (let i = 0; i < 4; i += 1) {\n const max = i === 3 ? 1 : 3;\n for (let j = 0; j < max; j += 1) {\n results[i].push(new Date(rounded + currentYearIndex, 0));\n currentYearIndex += 1;\n }\n }\n\n return results;\n}\n"],"names":[],"mappings":";AACO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAE,CAAA,CAAA;AACrC,CAAA,CAAE,MAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,WAAW,CAAE,CAAA,CAAA;AACnC,CAAA,CAAE,MAAM,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,IAAI,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,GAAG,CAAE,CAAA,CAAA;AAClC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA;AAC1B,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE,CAAE,CAAA,CAAA,CAAE,CAAE,CAAA,CAAA,CAAE,CAAE,CAAA,CAAA,CAAE,CAAC,CAAA;AAClC,CAAA,CAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAE,CAAA,CAAA;AACjC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,GAAG,CAAG,CAAA,CAAA,CAAC,KAAK,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAG,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAE,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAC,OAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAE,CAAA,CAAC,CAAC,CAAC,CAAA;AAC9D,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,IAAI,CAAC,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA;AACA,CAAA,CAAE,OAAO,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAChB,CAAA;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
|
|
4
|
+
function isYearDisabled(year, minDate, maxDate) {
|
|
5
|
+
if (!minDate && !maxDate) {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
if (minDate && dayjs(year).isBefore(minDate, "year")) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
if (maxDate && dayjs(year).isAfter(maxDate, "year")) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { isYearDisabled };
|
|
18
|
+
//# sourceMappingURL=is-year-disabled.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-year-disabled.mjs","sources":["../../../../src/components/YearsList/is-year-disabled/is-year-disabled.ts"],"sourcesContent":["import dayjs from 'dayjs';\n\nexport function isYearDisabled(\n year: Date,\n minDate: Date | null | undefined,\n maxDate: Date | null | undefined\n) {\n if (!minDate && !maxDate) {\n return false;\n }\n\n if (minDate && dayjs(year).isBefore(minDate, 'year')) {\n return true;\n }\n\n if (maxDate && dayjs(year).isAfter(maxDate, 'year')) {\n return true;\n }\n\n return false;\n}\n"],"names":[],"mappings":";;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,cAAc,CAAC,CAAA,CAAA,CAAA,CAAI,EAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,OAAO,CAAE,CAAA,CAAA;AACvD,CAAA,CAAE,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAI,CAAA,CAAA,CAAA,CAAC,OAAO,CAAE,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAI,OAAO,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AAChB,CAAA,CAAA,CAAA;AACA,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAE,CAAA,CAAA;AACxD,CAAA,CAAA,CAAA,CAAI,OAAO,CAAI,CAAA,CAAA,CAAA,CAAA;AACf,CAAA,CAAA,CAAA;AACA,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAE,CAAA,CAAA;AACvD,CAAA,CAAA,CAAA,CAAI,OAAO,CAAI,CAAA,CAAA,CAAA,CAAA;AACf,CAAA,CAAA,CAAA;AACA,CAAA,CAAE,OAAO,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACd,CAAA;;"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useDisclosure } from '@mantine/hooks';
|
|
3
|
+
import '../../components/DatesProvider/DatesProvider.mjs';
|
|
4
|
+
import { useDatesContext } from '../../components/DatesProvider/use-dates-context.mjs';
|
|
5
|
+
import { getFormattedDate } from '../../utils/get-formatted-date.mjs';
|
|
6
|
+
import 'dayjs';
|
|
7
|
+
import '../../utils/get-timezone-offset.mjs';
|
|
8
|
+
import { useUncontrolledDates } from '../use-uncontrolled-dates/use-uncontrolled-dates.mjs';
|
|
9
|
+
|
|
10
|
+
function useDatesInput({
|
|
11
|
+
type,
|
|
12
|
+
value,
|
|
13
|
+
defaultValue,
|
|
14
|
+
onChange,
|
|
15
|
+
locale,
|
|
16
|
+
format,
|
|
17
|
+
closeOnChange,
|
|
18
|
+
sortDates,
|
|
19
|
+
labelSeparator,
|
|
20
|
+
valueFormatter
|
|
21
|
+
}) {
|
|
22
|
+
const ctx = useDatesContext();
|
|
23
|
+
const [dropdownOpened, dropdownHandlers] = useDisclosure(false);
|
|
24
|
+
const [_value, _setValue] = useUncontrolledDates({
|
|
25
|
+
type,
|
|
26
|
+
value,
|
|
27
|
+
defaultValue,
|
|
28
|
+
onChange
|
|
29
|
+
});
|
|
30
|
+
const formattedValue = getFormattedDate({
|
|
31
|
+
type,
|
|
32
|
+
date: _value,
|
|
33
|
+
locale: ctx.getLocale(locale),
|
|
34
|
+
format,
|
|
35
|
+
labelSeparator: ctx.getLabelSeparator(labelSeparator),
|
|
36
|
+
formatter: valueFormatter
|
|
37
|
+
});
|
|
38
|
+
const setValue = (val) => {
|
|
39
|
+
if (closeOnChange) {
|
|
40
|
+
if (type === "default") {
|
|
41
|
+
dropdownHandlers.close();
|
|
42
|
+
}
|
|
43
|
+
if (type === "range" && val[0] && val[1]) {
|
|
44
|
+
dropdownHandlers.close();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (sortDates && type === "multiple") {
|
|
48
|
+
_setValue([...val].sort((a, b) => a.getTime() - b.getTime()));
|
|
49
|
+
} else {
|
|
50
|
+
_setValue(val);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const onClear = () => setValue(type === "range" ? [null, null] : type === "multiple" ? [] : null);
|
|
54
|
+
const shouldClear = type === "range" ? !!_value[0] : type === "multiple" ? _value.length > 0 : _value !== null;
|
|
55
|
+
return {
|
|
56
|
+
_value,
|
|
57
|
+
setValue,
|
|
58
|
+
onClear,
|
|
59
|
+
shouldClear,
|
|
60
|
+
formattedValue,
|
|
61
|
+
dropdownOpened,
|
|
62
|
+
dropdownHandlers
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export { useDatesInput };
|
|
67
|
+
//# sourceMappingURL=use-dates-input.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-dates-input.mjs","sources":["../../../src/hooks/use-dates-input/use-dates-input.ts"],"sourcesContent":["import { useDisclosure } from '@mantine/hooks';\nimport { useDatesContext } from '../../components/DatesProvider';\nimport { DatePickerType, DatePickerValue } from '../../types';\nimport { DateFormatter, getFormattedDate } from '../../utils';\nimport { useUncontrolledDates } from '../use-uncontrolled-dates/use-uncontrolled-dates';\n\ninterface UseDatesInput<Type extends DatePickerType = 'default'> {\n type: Type;\n value: DatePickerValue<Type> | undefined;\n defaultValue: DatePickerValue<Type> | undefined;\n onChange: ((value: DatePickerValue<Type>) => void) | undefined;\n locale: string | undefined;\n format: string | undefined;\n closeOnChange: boolean | undefined;\n sortDates: boolean | undefined;\n labelSeparator: string | undefined;\n valueFormatter: DateFormatter | undefined;\n}\n\nexport function useDatesInput<Type extends DatePickerType = 'default'>({\n type,\n value,\n defaultValue,\n onChange,\n locale,\n format,\n closeOnChange,\n sortDates,\n labelSeparator,\n valueFormatter,\n}: UseDatesInput<Type>) {\n const ctx = useDatesContext();\n\n const [dropdownOpened, dropdownHandlers] = useDisclosure(false);\n\n const [_value, _setValue] = useUncontrolledDates({\n type,\n value,\n defaultValue,\n onChange,\n });\n\n const formattedValue = getFormattedDate({\n type,\n date: _value,\n locale: ctx.getLocale(locale),\n format: format!,\n labelSeparator: ctx.getLabelSeparator(labelSeparator),\n formatter: valueFormatter,\n });\n\n const setValue = (val: any) => {\n if (closeOnChange) {\n if (type === 'default') {\n dropdownHandlers.close();\n }\n\n if (type === 'range' && val[0] && val[1]) {\n dropdownHandlers.close();\n }\n }\n\n if (sortDates && type === 'multiple') {\n _setValue([...val].sort((a, b) => a.getTime() - b.getTime()));\n } else {\n _setValue(val);\n }\n };\n\n const onClear = () => setValue(type === 'range' ? [null, null] : type === 'multiple' ? [] : null);\n const shouldClear =\n type === 'range' ? !!_value[0] : type === 'multiple' ? _value.length > 0 : _value !== null;\n\n return {\n _value,\n setValue,\n onClear,\n shouldClear,\n formattedValue,\n dropdownOpened,\n dropdownHandlers,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
|
|
4
|
+
function isInRange(date, range) {
|
|
5
|
+
const _range = [...range].sort((a, b) => a.getTime() - b.getTime());
|
|
6
|
+
return dayjs(_range[0]).startOf("day").subtract(1, "ms").isBefore(date) && dayjs(_range[1]).endOf("day").add(1, "ms").isAfter(date);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export { isInRange };
|
|
10
|
+
//# sourceMappingURL=is-in-range.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-in-range.mjs","sources":["../../../../src/hooks/use-dates-state/is-in-range/is-in-range.ts"],"sourcesContent":["import dayjs from 'dayjs';\n\nexport function isInRange(date: Date, range: [Date, Date]) {\n const _range = [...range].sort((a, b) => a.getTime() - b.getTime());\n return (\n dayjs(_range[0]).startOf('day').subtract(1, 'ms').isBefore(date) &&\n dayjs(_range[1]).endOf('day').add(1, 'ms').isAfter(date)\n );\n}\n"],"names":[],"mappings":";;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,KAAK,CAAE,CAAA,CAAA;AACvC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAG,KAAK,CAAC,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,GAAG,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAA;AACrE,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA;AACrI,CAAA;;"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
import { useState, useEffect } from 'react';
|
|
4
|
+
import { useUncontrolledDates } from '../use-uncontrolled-dates/use-uncontrolled-dates.mjs';
|
|
5
|
+
import { isInRange } from './is-in-range/is-in-range.mjs';
|
|
6
|
+
|
|
7
|
+
function useDatesState({
|
|
8
|
+
type,
|
|
9
|
+
level,
|
|
10
|
+
value,
|
|
11
|
+
defaultValue,
|
|
12
|
+
onChange,
|
|
13
|
+
allowSingleDateInRange,
|
|
14
|
+
allowDeselect,
|
|
15
|
+
onMouseLeave,
|
|
16
|
+
applyTimezone = true
|
|
17
|
+
}) {
|
|
18
|
+
const [_value, setValue] = useUncontrolledDates({
|
|
19
|
+
type,
|
|
20
|
+
value,
|
|
21
|
+
defaultValue,
|
|
22
|
+
onChange,
|
|
23
|
+
applyTimezone
|
|
24
|
+
});
|
|
25
|
+
const [pickedDate, setPickedDate] = useState(
|
|
26
|
+
type === "range" ? _value[0] && !_value[1] ? _value[0] : null : null
|
|
27
|
+
);
|
|
28
|
+
const [hoveredDate, setHoveredDate] = useState(null);
|
|
29
|
+
const onDateChange = (date) => {
|
|
30
|
+
if (type === "range") {
|
|
31
|
+
if (pickedDate instanceof Date && !_value[1]) {
|
|
32
|
+
if (dayjs(date).isSame(pickedDate, level) && !allowSingleDateInRange) {
|
|
33
|
+
setPickedDate(null);
|
|
34
|
+
setHoveredDate(null);
|
|
35
|
+
setValue([null, null]);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const result = [date, pickedDate];
|
|
39
|
+
result.sort((a, b) => a.getTime() - b.getTime());
|
|
40
|
+
setValue(result);
|
|
41
|
+
setHoveredDate(null);
|
|
42
|
+
setPickedDate(null);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (_value[0] && !_value[1] && dayjs(date).isSame(_value[0], level) && !allowSingleDateInRange) {
|
|
46
|
+
setPickedDate(null);
|
|
47
|
+
setHoveredDate(null);
|
|
48
|
+
setValue([null, null]);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
setValue([date, null]);
|
|
52
|
+
setHoveredDate(null);
|
|
53
|
+
setPickedDate(date);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (type === "multiple") {
|
|
57
|
+
if (_value.some((selected) => dayjs(selected).isSame(date, level))) {
|
|
58
|
+
setValue(_value.filter((selected) => !dayjs(selected).isSame(date, level)));
|
|
59
|
+
} else {
|
|
60
|
+
setValue([..._value, date]);
|
|
61
|
+
}
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (_value && allowDeselect && dayjs(date).isSame(_value, level)) {
|
|
65
|
+
setValue(null);
|
|
66
|
+
} else {
|
|
67
|
+
setValue(date);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const isDateInRange = (date) => {
|
|
71
|
+
if (pickedDate instanceof Date && hoveredDate instanceof Date) {
|
|
72
|
+
return isInRange(date, [hoveredDate, pickedDate]);
|
|
73
|
+
}
|
|
74
|
+
if (_value[0] instanceof Date && _value[1] instanceof Date) {
|
|
75
|
+
return isInRange(date, _value);
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
};
|
|
79
|
+
const onRootMouseLeave = type === "range" ? (event) => {
|
|
80
|
+
onMouseLeave?.(event);
|
|
81
|
+
setHoveredDate(null);
|
|
82
|
+
} : onMouseLeave;
|
|
83
|
+
const isFirstInRange = (date) => {
|
|
84
|
+
if (!(_value[0] instanceof Date)) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
if (dayjs(date).isSame(_value[0], level)) {
|
|
88
|
+
return !(hoveredDate && dayjs(hoveredDate).isBefore(_value[0]));
|
|
89
|
+
}
|
|
90
|
+
return false;
|
|
91
|
+
};
|
|
92
|
+
const isLastInRange = (date) => {
|
|
93
|
+
if (_value[1] instanceof Date) {
|
|
94
|
+
return dayjs(date).isSame(_value[1], level);
|
|
95
|
+
}
|
|
96
|
+
if (!(_value[0] instanceof Date) || !hoveredDate) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
return dayjs(hoveredDate).isBefore(_value[0]) && dayjs(date).isSame(_value[0], level);
|
|
100
|
+
};
|
|
101
|
+
const getControlProps = (date) => {
|
|
102
|
+
if (type === "range") {
|
|
103
|
+
return {
|
|
104
|
+
selected: _value.some(
|
|
105
|
+
(selection) => selection && dayjs(selection).isSame(date, level)
|
|
106
|
+
),
|
|
107
|
+
inRange: isDateInRange(date),
|
|
108
|
+
firstInRange: isFirstInRange(date),
|
|
109
|
+
lastInRange: isLastInRange(date),
|
|
110
|
+
"data-autofocus": !!_value[0] && dayjs(_value[0]).isSame(date, level) || void 0
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
if (type === "multiple") {
|
|
114
|
+
return {
|
|
115
|
+
selected: _value.some(
|
|
116
|
+
(selection) => selection && dayjs(selection).isSame(date, level)
|
|
117
|
+
),
|
|
118
|
+
"data-autofocus": !!_value[0] && dayjs(_value[0]).isSame(date, level) || void 0
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const selected = dayjs(_value).isSame(date, level);
|
|
122
|
+
return { selected, "data-autofocus": selected || void 0 };
|
|
123
|
+
};
|
|
124
|
+
const onHoveredDateChange = type === "range" && pickedDate ? setHoveredDate : () => {
|
|
125
|
+
};
|
|
126
|
+
useEffect(() => {
|
|
127
|
+
if (type !== "range") {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const isNeitherSelected = _value[0] == null && _value[1] == null;
|
|
131
|
+
const isBothSelected = _value[0] != null && _value[1] != null;
|
|
132
|
+
if (isNeitherSelected || isBothSelected) {
|
|
133
|
+
setPickedDate(null);
|
|
134
|
+
setHoveredDate(null);
|
|
135
|
+
}
|
|
136
|
+
}, [_value]);
|
|
137
|
+
return {
|
|
138
|
+
onDateChange,
|
|
139
|
+
onRootMouseLeave,
|
|
140
|
+
onHoveredDateChange,
|
|
141
|
+
getControlProps,
|
|
142
|
+
_value,
|
|
143
|
+
setValue
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export { useDatesState };
|
|
148
|
+
//# sourceMappingURL=use-dates-state.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-dates-state.mjs","sources":["../../../src/hooks/use-dates-state/use-dates-state.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { useEffect, useState } from 'react';\nimport { DatePickerType, PickerBaseProps } from '../../types';\nimport { useUncontrolledDates } from '../use-uncontrolled-dates/use-uncontrolled-dates';\nimport { isInRange } from './is-in-range/is-in-range';\n\ninterface UseDatesRangeInput<Type extends DatePickerType = 'default'>\n extends PickerBaseProps<Type> {\n level: 'year' | 'month' | 'day';\n type: Type;\n onMouseLeave?: (event: React.MouseEvent<HTMLDivElement>) => void;\n applyTimezone?: boolean;\n}\n\nexport function useDatesState<Type extends DatePickerType = 'default'>({\n type,\n level,\n value,\n defaultValue,\n onChange,\n allowSingleDateInRange,\n allowDeselect,\n onMouseLeave,\n applyTimezone = true,\n}: UseDatesRangeInput<Type>) {\n const [_value, setValue] = useUncontrolledDates({\n type,\n value,\n defaultValue,\n onChange,\n applyTimezone,\n });\n\n const [pickedDate, setPickedDate] = useState<Date | null>(\n type === 'range' ? (_value[0] && !_value[1] ? _value[0] : null) : null\n );\n const [hoveredDate, setHoveredDate] = useState<Date | null>(null);\n\n const onDateChange = (date: Date) => {\n if (type === 'range') {\n if (pickedDate instanceof Date && !_value[1]) {\n if (dayjs(date).isSame(pickedDate, level) && !allowSingleDateInRange) {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n return;\n }\n\n const result: [Date, Date] = [date, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n setValue(result);\n setHoveredDate(null);\n setPickedDate(null);\n return;\n }\n\n if (\n _value[0] &&\n !_value[1] &&\n dayjs(date).isSame(_value[0], level) &&\n !allowSingleDateInRange\n ) {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n return;\n }\n\n setValue([date, null]);\n setHoveredDate(null);\n setPickedDate(date);\n return;\n }\n\n if (type === 'multiple') {\n if (_value.some((selected: Date) => dayjs(selected).isSame(date, level))) {\n setValue(_value.filter((selected: Date) => !dayjs(selected).isSame(date, level)));\n } else {\n setValue([..._value, date]);\n }\n\n return;\n }\n\n if (_value && allowDeselect && dayjs(date).isSame(_value, level)) {\n setValue(null);\n } else {\n setValue(date);\n }\n };\n\n const isDateInRange = (date: Date) => {\n if (pickedDate instanceof Date && hoveredDate instanceof Date) {\n return isInRange(date, [hoveredDate, pickedDate]);\n }\n\n if (_value[0] instanceof Date && _value[1] instanceof Date) {\n return isInRange(date, _value);\n }\n\n return false;\n };\n\n const onRootMouseLeave =\n type === 'range'\n ? (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(event);\n setHoveredDate(null);\n }\n : onMouseLeave;\n\n const isFirstInRange = (date: Date) => {\n if (!(_value[0] instanceof Date)) {\n return false;\n }\n\n if (dayjs(date).isSame(_value[0], level)) {\n return !(hoveredDate && dayjs(hoveredDate).isBefore(_value[0]));\n }\n\n return false;\n };\n\n const isLastInRange = (date: Date) => {\n if (_value[1] instanceof Date) {\n return dayjs(date).isSame(_value[1], level);\n }\n\n if (!(_value[0] instanceof Date) || !hoveredDate) {\n return false;\n }\n\n return dayjs(hoveredDate).isBefore(_value[0]) && dayjs(date).isSame(_value[0], level);\n };\n\n const getControlProps = (date: Date) => {\n if (type === 'range') {\n return {\n selected: _value.some(\n (selection: Date) => selection && dayjs(selection).isSame(date, level)\n ),\n inRange: isDateInRange(date),\n firstInRange: isFirstInRange(date),\n lastInRange: isLastInRange(date),\n 'data-autofocus': (!!_value[0] && dayjs(_value[0]).isSame(date, level)) || undefined,\n };\n }\n\n if (type === 'multiple') {\n return {\n selected: _value.some(\n (selection: Date) => selection && dayjs(selection).isSame(date, level)\n ),\n 'data-autofocus': (!!_value[0] && dayjs(_value[0]).isSame(date, level)) || undefined,\n };\n }\n\n const selected = dayjs(_value).isSame(date, level);\n return { selected, 'data-autofocus': selected || undefined };\n };\n\n const onHoveredDateChange = type === 'range' && pickedDate ? setHoveredDate : () => {};\n\n useEffect(() => {\n if (type !== 'range') {\n return;\n }\n\n const isNeitherSelected = _value[0] == null && _value[1] == null;\n const isBothSelected = _value[0] != null && _value[1] != null;\n if (isNeitherSelected || isBothSelected) {\n setPickedDate(null);\n setHoveredDate(null);\n }\n }, [_value]);\n\n return {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n _value,\n setValue,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useRef } from 'react';
|
|
3
|
+
import { useUncontrolled } from '@mantine/hooks';
|
|
4
|
+
import '../../components/DatesProvider/DatesProvider.mjs';
|
|
5
|
+
import { useDatesContext } from '../../components/DatesProvider/use-dates-context.mjs';
|
|
6
|
+
import 'dayjs';
|
|
7
|
+
import { shiftTimezone } from '../../utils/shift-timezone.mjs';
|
|
8
|
+
|
|
9
|
+
const getEmptyValue = (type) => type === "range" ? [null, null] : type === "multiple" ? [] : null;
|
|
10
|
+
function useUncontrolledDates({
|
|
11
|
+
type,
|
|
12
|
+
value,
|
|
13
|
+
defaultValue,
|
|
14
|
+
onChange,
|
|
15
|
+
applyTimezone = true
|
|
16
|
+
}) {
|
|
17
|
+
const storedType = useRef(type);
|
|
18
|
+
const ctx = useDatesContext();
|
|
19
|
+
const [_value, _setValue, controlled] = useUncontrolled({
|
|
20
|
+
value: shiftTimezone("add", value, ctx.getTimezone(), !applyTimezone),
|
|
21
|
+
defaultValue: shiftTimezone("add", defaultValue, ctx.getTimezone(), !applyTimezone),
|
|
22
|
+
finalValue: getEmptyValue(type),
|
|
23
|
+
onChange: (newDate) => {
|
|
24
|
+
onChange?.(shiftTimezone("remove", newDate, ctx.getTimezone(), !applyTimezone));
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
let _finalValue = _value;
|
|
28
|
+
if (storedType.current !== type) {
|
|
29
|
+
storedType.current = type;
|
|
30
|
+
if (value === void 0) {
|
|
31
|
+
_finalValue = defaultValue !== void 0 ? defaultValue : getEmptyValue(type);
|
|
32
|
+
_setValue(_finalValue);
|
|
33
|
+
} else if (process.env.NODE_ENV === "development") {
|
|
34
|
+
switch (type) {
|
|
35
|
+
case "default":
|
|
36
|
+
if (value !== null && typeof value !== "string") {
|
|
37
|
+
console.error(
|
|
38
|
+
"[@mantine/dates/use-uncontrolled-dates] Value must be type of `null` or `string`"
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
break;
|
|
42
|
+
case "multiple":
|
|
43
|
+
if (!(value instanceof Array)) {
|
|
44
|
+
console.error(
|
|
45
|
+
"[@mantine/dates/use-uncontrolled-dates] Value must be type of `string[]`"
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
break;
|
|
49
|
+
case "range":
|
|
50
|
+
if (!(value instanceof Array) || value.length !== 2) {
|
|
51
|
+
console.error(
|
|
52
|
+
"[@mantine/dates/use-uncontrolled-dates] Value must be type of `[string, string]`"
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return [_finalValue, _setValue, controlled];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export { useUncontrolledDates };
|
|
63
|
+
//# sourceMappingURL=use-uncontrolled-dates.mjs.map
|