@razorpay/blade 12.44.0 → 12.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/web/development/components/DatePicker/useDatesState.js +1 -0
- package/build/lib/web/development/components/DatePicker/useDatesState.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/useDatesState.js +1 -0
- package/build/lib/web/production/components/DatePicker/useDatesState.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDatesState.js","sources":["../../../../../../src/components/DatePicker/useDatesState.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { DatePickerType, PickerBaseProps } from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport { useEffect, useState } from 'react';\nimport { useUncontrolledDates } from './useControlledDates';\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\ntype ChangeValue = 'day' | 'month' | 'year';\ntype OnDateChange = (date: Date, changeValue: ChangeValue) => void;\n\nfunction 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\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: OnDateChange = (date, changeValue) => {\n const shouldChangeValue =\n (changeValue === 'month' || changeValue === 'year') && type === 'default';\n if (shouldChangeValue) {\n const prevDate = _value || new Date();\n\n const newDate = new Date(prevDate);\n if (changeValue === 'month') {\n newDate.setMonth(date.getMonth());\n newDate.setFullYear(date.getFullYear());\n } else if (changeValue === 'year') {\n newDate.setFullYear(date.getFullYear());\n }\n\n date = newDate;\n }\n\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 (_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 handleReset = () => {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\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 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n }\n\n const selected = dayjs(_value).isSame(date, level);\n return {\n selected,\n 'data-autofocus': selected || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n };\n\n const onHoveredDateChange = type === 'range' && pickedDate ? setHoveredDate : () => {};\n\n useEffect(() => {\n if (type === 'range' && !_value[0] && !_value[1]) {\n setPickedDate(null);\n }\n }, [value]);\n\n return {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n setPickedDate,\n pickedDate,\n controlledValue: _value,\n setControlledValue: setValue,\n handleReset,\n } as const;\n}\n"],"names":["isInRange","date","range","_range","_toConsumableArray","sort","a","b","getTime","dayjs","startOf","subtract","isBefore","endOf","add","isAfter","useDatesState","_ref","type","level","value","defaultValue","onChange","allowSingleDateInRange","allowDeselect","onMouseLeave","_ref$applyTimezone","applyTimezone","_useUncontrolledDates","useUncontrolledDates","_useUncontrolledDates2","_slicedToArray","_value","setValue","_useState","useState","_useState2","pickedDate","setPickedDate","_useState3","_useState4","hoveredDate","setHoveredDate","onDateChange","changeValue","shouldChangeValue","prevDate","Date","newDate","setMonth","getMonth","setFullYear","getFullYear","isSame","result","isDateInRange","handleReset","onRootMouseLeave","event","isFirstInRange","isLastInRange","getControlProps","selected","some","selection","inRange","firstInRange","lastInRange","undefined","concat","getDate","onHoveredDateChange","useEffect","controlledValue","setControlledValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDatesState.js","sources":["../../../../../../src/components/DatePicker/useDatesState.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { DatePickerType, PickerBaseProps } from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport { useEffect, useState } from 'react';\nimport { useUncontrolledDates } from './useControlledDates';\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\ntype ChangeValue = 'day' | 'month' | 'year';\ntype OnDateChange = (date: Date, changeValue: ChangeValue) => void;\n\nfunction 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\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: OnDateChange = (date, changeValue) => {\n const shouldChangeValue =\n (changeValue === 'month' || changeValue === 'year') && type === 'default';\n if (shouldChangeValue) {\n const prevDate = _value || new Date();\n\n const newDate = new Date(prevDate);\n if (changeValue === 'month') {\n newDate.setMonth(date.getMonth());\n newDate.setFullYear(date.getFullYear());\n } else if (changeValue === 'year') {\n newDate.setFullYear(date.getFullYear());\n }\n\n date = newDate;\n }\n\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 result[1].setHours(23, 59, 59, 999);\n\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 (_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 handleReset = () => {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\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 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n }\n\n const selected = dayjs(_value).isSame(date, level);\n return {\n selected,\n 'data-autofocus': selected || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n };\n\n const onHoveredDateChange = type === 'range' && pickedDate ? setHoveredDate : () => {};\n\n useEffect(() => {\n if (type === 'range' && !_value[0] && !_value[1]) {\n setPickedDate(null);\n }\n }, [value]);\n\n return {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n setPickedDate,\n pickedDate,\n controlledValue: _value,\n setControlledValue: setValue,\n handleReset,\n } as const;\n}\n"],"names":["isInRange","date","range","_range","_toConsumableArray","sort","a","b","getTime","dayjs","startOf","subtract","isBefore","endOf","add","isAfter","useDatesState","_ref","type","level","value","defaultValue","onChange","allowSingleDateInRange","allowDeselect","onMouseLeave","_ref$applyTimezone","applyTimezone","_useUncontrolledDates","useUncontrolledDates","_useUncontrolledDates2","_slicedToArray","_value","setValue","_useState","useState","_useState2","pickedDate","setPickedDate","_useState3","_useState4","hoveredDate","setHoveredDate","onDateChange","changeValue","shouldChangeValue","prevDate","Date","newDate","setMonth","getMonth","setFullYear","getFullYear","isSame","result","setHours","isDateInRange","handleReset","onRootMouseLeave","event","isFirstInRange","isLastInRange","getControlProps","selected","some","selection","inRange","firstInRange","lastInRange","undefined","concat","getDate","onHoveredDateChange","useEffect","controlledValue","setControlledValue"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDatesState.js","sources":["../../../../../../src/components/DatePicker/useDatesState.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { DatePickerType, PickerBaseProps } from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport { useEffect, useState } from 'react';\nimport { useUncontrolledDates } from './useControlledDates';\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\ntype ChangeValue = 'day' | 'month' | 'year';\ntype OnDateChange = (date: Date, changeValue: ChangeValue) => void;\n\nfunction 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\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: OnDateChange = (date, changeValue) => {\n const shouldChangeValue =\n (changeValue === 'month' || changeValue === 'year') && type === 'default';\n if (shouldChangeValue) {\n const prevDate = _value || new Date();\n\n const newDate = new Date(prevDate);\n if (changeValue === 'month') {\n newDate.setMonth(date.getMonth());\n newDate.setFullYear(date.getFullYear());\n } else if (changeValue === 'year') {\n newDate.setFullYear(date.getFullYear());\n }\n\n date = newDate;\n }\n\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 (_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 handleReset = () => {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\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 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n }\n\n const selected = dayjs(_value).isSame(date, level);\n return {\n selected,\n 'data-autofocus': selected || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n };\n\n const onHoveredDateChange = type === 'range' && pickedDate ? setHoveredDate : () => {};\n\n useEffect(() => {\n if (type === 'range' && !_value[0] && !_value[1]) {\n setPickedDate(null);\n }\n }, [value]);\n\n return {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n setPickedDate,\n pickedDate,\n controlledValue: _value,\n setControlledValue: setValue,\n handleReset,\n } as const;\n}\n"],"names":["isInRange","date","range","_range","_toConsumableArray","sort","a","b","getTime","dayjs","startOf","subtract","isBefore","endOf","add","isAfter","useDatesState","_ref","type","level","value","defaultValue","onChange","allowSingleDateInRange","allowDeselect","onMouseLeave","_ref$applyTimezone","applyTimezone","_useUncontrolledDates","useUncontrolledDates","_useUncontrolledDates2","_slicedToArray","_value","setValue","_useState","useState","_useState2","pickedDate","setPickedDate","_useState3","_useState4","hoveredDate","setHoveredDate","onDateChange","changeValue","shouldChangeValue","prevDate","Date","newDate","setMonth","getMonth","setFullYear","getFullYear","isSame","result","isDateInRange","handleReset","onRootMouseLeave","event","isFirstInRange","isLastInRange","getControlProps","selected","some","selection","inRange","firstInRange","lastInRange","undefined","concat","getDate","onHoveredDateChange","useEffect","controlledValue","setControlledValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDatesState.js","sources":["../../../../../../src/components/DatePicker/useDatesState.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { DatePickerType, PickerBaseProps } from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport { useEffect, useState } from 'react';\nimport { useUncontrolledDates } from './useControlledDates';\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\ntype ChangeValue = 'day' | 'month' | 'year';\ntype OnDateChange = (date: Date, changeValue: ChangeValue) => void;\n\nfunction 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\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: OnDateChange = (date, changeValue) => {\n const shouldChangeValue =\n (changeValue === 'month' || changeValue === 'year') && type === 'default';\n if (shouldChangeValue) {\n const prevDate = _value || new Date();\n\n const newDate = new Date(prevDate);\n if (changeValue === 'month') {\n newDate.setMonth(date.getMonth());\n newDate.setFullYear(date.getFullYear());\n } else if (changeValue === 'year') {\n newDate.setFullYear(date.getFullYear());\n }\n\n date = newDate;\n }\n\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 result[1].setHours(23, 59, 59, 999);\n\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 (_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 handleReset = () => {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\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 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n }\n\n const selected = dayjs(_value).isSame(date, level);\n return {\n selected,\n 'data-autofocus': selected || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n };\n\n const onHoveredDateChange = type === 'range' && pickedDate ? setHoveredDate : () => {};\n\n useEffect(() => {\n if (type === 'range' && !_value[0] && !_value[1]) {\n setPickedDate(null);\n }\n }, [value]);\n\n return {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n setPickedDate,\n pickedDate,\n controlledValue: _value,\n setControlledValue: setValue,\n handleReset,\n } as const;\n}\n"],"names":["isInRange","date","range","_range","_toConsumableArray","sort","a","b","getTime","dayjs","startOf","subtract","isBefore","endOf","add","isAfter","useDatesState","_ref","type","level","value","defaultValue","onChange","allowSingleDateInRange","allowDeselect","onMouseLeave","_ref$applyTimezone","applyTimezone","_useUncontrolledDates","useUncontrolledDates","_useUncontrolledDates2","_slicedToArray","_value","setValue","_useState","useState","_useState2","pickedDate","setPickedDate","_useState3","_useState4","hoveredDate","setHoveredDate","onDateChange","changeValue","shouldChangeValue","prevDate","Date","newDate","setMonth","getMonth","setFullYear","getFullYear","isSame","result","setHours","isDateInRange","handleReset","onRootMouseLeave","event","isFirstInRange","isLastInRange","getControlProps","selected","some","selection","inRange","firstInRange","lastInRange","undefined","concat","getDate","onHoveredDateChange","useEffect","controlledValue","setControlledValue"],"mappings":"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"}
|