@activecollab/components 2.0.296 → 2.0.298
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/DatePicker/DatePicker.js +33 -1
- package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/Select/Select.js +6 -5
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/SelectDate/SelectDate.js +4 -1
- package/dist/cjs/components/SelectDate/SelectDate.js.map +1 -1
- package/dist/cjs/components/Steppers/DateStepper/DateStepper.js +3 -1
- package/dist/cjs/components/Steppers/DateStepper/DateStepper.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.d.ts +6 -0
- package/dist/esm/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js +33 -1
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +6 -5
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/SelectDate/SelectDate.d.ts +6 -0
- package/dist/esm/components/SelectDate/SelectDate.d.ts.map +1 -1
- package/dist/esm/components/SelectDate/SelectDate.js +4 -1
- package/dist/esm/components/SelectDate/SelectDate.js.map +1 -1
- package/dist/esm/components/Steppers/DateStepper/DateStepper.d.ts +6 -0
- package/dist/esm/components/Steppers/DateStepper/DateStepper.d.ts.map +1 -1
- package/dist/esm/components/Steppers/DateStepper/DateStepper.js +3 -1
- package/dist/esm/components/Steppers/DateStepper/DateStepper.js.map +1 -1
- package/dist/index.js +46 -8
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -51,6 +51,7 @@ var DatePicker = exports.DatePicker = function DatePicker(_ref) {
|
|
|
51
51
|
disabledDaysAfter = _ref.disabledDaysAfter,
|
|
52
52
|
_ref$disabled = _ref.disabled,
|
|
53
53
|
disabledDays = _ref$disabled === void 0 ? [] : _ref$disabled,
|
|
54
|
+
maxRange = _ref.maxRange,
|
|
54
55
|
modifiers = _ref.modifiers,
|
|
55
56
|
disableAnimations = _ref.disableAnimations,
|
|
56
57
|
_ref$firstDayOfWeek = _ref.firstDayOfWeek,
|
|
@@ -147,6 +148,37 @@ var DatePicker = exports.DatePicker = function DatePicker(_ref) {
|
|
|
147
148
|
var today = _momentTimezone.default.utc(currentDateInTimezone);
|
|
148
149
|
var selectedYearRef = (0, _react.useRef)(null);
|
|
149
150
|
var datePickerRef = (0, _react.useRef)(null);
|
|
151
|
+
(0, _react.useEffect)(function () {
|
|
152
|
+
if (maxRange && defaultSelected !== null && defaultSelected !== void 0 && defaultSelected.from && defaultSelected !== null && defaultSelected !== void 0 && defaultSelected.to) {
|
|
153
|
+
var from = toMoment(defaultSelected.from);
|
|
154
|
+
var to = toMoment(defaultSelected.to);
|
|
155
|
+
if (from && to) {
|
|
156
|
+
var daysDiff = to.diff(from, "days") + 1;
|
|
157
|
+
if (daysDiff > maxRange) {
|
|
158
|
+
console.warn("DatePicker: selected range (".concat(daysDiff, " days) exceeds maxRange (").concat(maxRange, ")."));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
163
|
+
}, []);
|
|
164
|
+
var effectiveDisabledDaysBefore = (0, _react.useMemo)(function () {
|
|
165
|
+
if (maxRange && mode === "custom" && selected !== null && selected !== void 0 && selected.from && !(selected !== null && selected !== void 0 && selected.to)) {
|
|
166
|
+
var maxRangeBefore = selected.from.clone().subtract(maxRange - 1, "days");
|
|
167
|
+
if (!disabledDaysBefore || maxRangeBefore.isAfter(disabledDaysBefore)) {
|
|
168
|
+
return maxRangeBefore;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return disabledDaysBefore;
|
|
172
|
+
}, [maxRange, mode, selected, disabledDaysBefore]);
|
|
173
|
+
var effectiveDisabledDaysAfter = (0, _react.useMemo)(function () {
|
|
174
|
+
if (maxRange && mode === "custom" && selected !== null && selected !== void 0 && selected.from && !(selected !== null && selected !== void 0 && selected.to)) {
|
|
175
|
+
var maxRangeAfter = selected.from.clone().add(maxRange - 1, "days");
|
|
176
|
+
if (!disabledDaysAfter || maxRangeAfter.isBefore(disabledDaysAfter)) {
|
|
177
|
+
return maxRangeAfter;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return disabledDaysAfter;
|
|
181
|
+
}, [maxRange, mode, selected, disabledDaysAfter]);
|
|
150
182
|
var handleSelection = (0, _react.useCallback)(function (range) {
|
|
151
183
|
if (!range) {
|
|
152
184
|
setSelected(null);
|
|
@@ -490,7 +522,7 @@ var DatePicker = exports.DatePicker = function DatePicker(_ref) {
|
|
|
490
522
|
var isToday = clonedDate.isSame(today, "day");
|
|
491
523
|
var isSelected = selected && (clonedDate.isBetween(selected.from, selected.to, "day", "[]") || clonedDate.isSame(selected.from, "day") || clonedDate.isSame(selected.to, "day"));
|
|
492
524
|
var isHovered = hoverRange && (mode === "weekly" || mode === "custom") && clonedDate.isBetween(hoverRange.from, hoverRange.to, "day", "[]");
|
|
493
|
-
var isDisabled =
|
|
525
|
+
var isDisabled = effectiveDisabledDaysBefore && clonedDate.isBefore(effectiveDisabledDaysBefore, "day") || effectiveDisabledDaysAfter && clonedDate.isAfter(effectiveDisabledDaysAfter, "day") || disabledDays.includes(clonedDate.day());
|
|
494
526
|
var modifierClasses = [];
|
|
495
527
|
var modifierTitles = [];
|
|
496
528
|
var titles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","names":["_react","_interopRequireWildcard","require","_momentTimezone","_interopRequireDefault","_Styles","_Button","_IconButton","_Icons","_Menu","_Tooltip","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","return","isArray","toMoment","exports","date","moment","isMoment","utc","DatePicker","_ref","defaultSelected","selected","onChange","onSave","onClear","onClose","_ref$instant","instant","target","_ref$mode","mode","_ref$saveLabel","saveLabel","_ref$cancelLabel","cancelLabel","_ref$clearLabel","clearLabel","disabledDaysBefore","disabledDaysAfter","_ref$disabled","disabled","disabledDays","modifiers","disableAnimations","_ref$firstDayOfWeek","firstDayOfWeek","forceClose","required","month","disableYearPicker","_ref$position","position","menuClassName","popperClassName","_ref$enableConfirmMod","enableConfirmModal","_ref$modalTitle","modalTitle","_ref$modalDescription","modalDescription","_ref$modalSaveBtnText","modalSaveBtnText","_ref$modalCancelBtnTe","modalCancelBtnText","backgroundElementClass","popperTooltipClassName","popperTooltipStyle","open","onCalendarToggle","onDayClick","showControls","_useState","useState","_useState2","isOpen","setIsOpen","_useState3","_useState4","isYearSelectOpen","setIsYearSelectOpen","_useState5","_useState6","showDiscardModal","setShowDiscardModal","_useState7","_useState8","isMonthSelectOpen","setIsMonthSelectOpen","_useState9","_useState0","monthTransitionDirection","setMonthTransitionDirection","_useState1","_useState10","currentDate","setCurrentDate","_useState11","_useState12","targetDate","setTargetDate","_useState13","to","_useState14","setSelected","_useState15","_useState16","hoveredDate","setHoveredDate","timezone","defaultZone","tz","guess","currentDateInTimezone","format","today","selectedYearRef","useRef","datePickerRef","handleSelection","useCallback","range","undefined","unix","toggleCalendar","toggleYearSelect","toggleMonthSelect","useEffect","handleDateSelect","isSameMonth","isSame","direction","isBefore","handleDailySelection","handleWeeklySelection","handleCustomSelection","console","warn","concat","_selected$from","currentDayOfWeek","day","daysToSubtract","startOfWeek","clone","subtract","startOf","endOfWeek","add","Number","newSelection","handleSave","handleMonthChange","prevDate","handleYearChange","onAnimationEnd","handleYearSelect","year","handleMonthSelect","newDate","_selected$to","endOf","_selected$to2","quarterRange","isSameQuarter","current","_selectedYearRef$curr","scrollIntoView","behavior","block","renderDaysOfWeek","daysOfWeek","weekdaysShort","orderedDays","map","createElement","StyledDayName","key","animationClass","useMemo","handleDayClick","some","mod","getHoverRange","startMonth","endMonth","isAfter","renderCalendarDates","startOfMonth","startDate","isoWeekday","endDate","dates","hoverRange","_loop","clonedDate","isToday","isSelected","isBetween","isHovered","isDisabled","includes","modifierClasses","modifierTitles","titles","keys","forEach","modifier","_modifiers$modifier","matched","title","index","isOutside","Tooltip","disable","StyledCalendarDate","className","join","onClick","onMouseEnter","onMouseLeave","renderYearSelect","years","_","StyledYearSelect","isDisabledYear","StyledYearOption","ref","renderMonthSelect","months","StyledMonthSelect","monthDate","isDisabledMonth","isHoveredQuarter","StyledMonthOption","substring","captionText","isCurrentYear","handleClear","handleClose","_selected$to3","handleBeforeClose","shouldClose","Wrapper","Menu","handleCaptionClick","handleSaveDiscardModal","handleDiscardModal","wrapperProps","onBeforeClose","active","onOpen","handleKeyDown","event","window","addEventListener","removeEventListener","saveIsDisabled","StyledDatePickerWrapper","StyledDatePickerContainerInner","StyledCalendarHeader","IconButton","variant","size","ArrowLeftIcon","StyledCaption","ArrowRightIcon","StyledCalendarSelector","StyledMonthSelector","Fragment","StyledDaysOfWeek","StyledCalendarDates","StyledControls","StyledControlsLeft","Button","zIndex","CancelCrossIcon","StyledClearInstantButton","StyledConfirmDialog","onCancel","onConfirm","dialogTitle","dialogContent","cancelBtnText","confirmBtnText"],"sources":["../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import React, {\n useState,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n CSSProperties,\n} from \"react\";\n\nimport { Moment } from \"moment\";\nimport moment from \"moment-timezone\";\n\nimport {\n StyledCalendarDate,\n StyledCalendarDates,\n StyledCalendarHeader,\n StyledCalendarSelector,\n StyledCaption,\n StyledClearInstantButton,\n StyledConfirmDialog,\n StyledControls,\n StyledControlsLeft,\n StyledDatePickerContainerInner,\n StyledDatePickerWrapper,\n StyledDayName,\n StyledDaysOfWeek,\n StyledMonthOption,\n StyledMonthSelect,\n StyledMonthSelector,\n StyledYearOption,\n StyledYearSelect,\n} from \"./Styles\";\nimport { Button } from \"../Button\";\nimport { IconButton } from \"../IconButton\";\nimport { ArrowLeftIcon, ArrowRightIcon, CancelCrossIcon } from \"../Icons\";\nimport { Menu } from \"../Menu\";\nimport { Placement } from \"../Popper\";\nimport { ElementWithRef } from \"../Select\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport type ChangeMode =\n | \"daily\"\n | \"weekly\"\n | \"monthly\"\n | \"quarterly\"\n | \"custom\";\n\nexport interface DateRange {\n from: Moment;\n to: Moment | null;\n}\n\nexport interface TimestampDateRange {\n from: number | string | Moment | null;\n to: number | string | Moment | null;\n}\n\nexport interface DatePickerProps {\n selected?: TimestampDateRange;\n onChange?: (range?: TimestampDateRange) => void;\n onSave?: (range?: TimestampDateRange) => void;\n onClear?: () => void;\n onClose?: () => void;\n instant?: boolean;\n target?: ElementWithRef<Element>;\n mode: ChangeMode;\n saveLabel?: string;\n cancelLabel?: string;\n clearLabel?: string;\n disabledDaysBefore?: Moment;\n disabledDaysAfter?: Moment;\n disabled?: number[];\n modifiers?: {\n [key: string]: (day: Moment) => { matched: boolean; title: string | null };\n };\n disableAnimations?: boolean;\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n forceClose?: boolean;\n required?: boolean;\n month?: Moment | number;\n disableYearPicker?: boolean;\n position?: Placement;\n /** Popper class name*/\n popperClassName?: string;\n backgroundElementClass?: string;\n /** Menu classes */\n menuClassName?: string;\n enableConfirmModal?: boolean;\n /** Modal title text */\n modalTitle?: string;\n /** Modal description text */\n modalDescription?: string;\n /** Modal save button text */\n modalSaveBtnText?: string;\n /** Modal cancel button text */\n modalCancelBtnText?: string;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n open?: boolean;\n onCalendarToggle?: (value: boolean) => void;\n /** Called when day is clicked */\n onDayClick?: (day: Moment, modifiers: string[]) => void;\n showControls?: boolean;\n}\nexport const toMoment = (date?: string | number | Moment) => {\n if (moment.isMoment(date)) {\n return date;\n } else if (typeof date === \"number\") {\n return moment.utc(date * 1000);\n } else if (typeof date === \"string\") {\n return moment.utc(date);\n }\n return null;\n};\n\nexport const DatePicker: React.FC<DatePickerProps> = ({\n selected: defaultSelected,\n onChange,\n onSave,\n onClear,\n onClose,\n instant = true,\n target,\n mode = \"daily\",\n saveLabel = \"Save\",\n cancelLabel = \"Cancel\",\n clearLabel = \"Clear\",\n disabledDaysBefore,\n disabledDaysAfter,\n disabled: disabledDays = [],\n modifiers,\n disableAnimations,\n firstDayOfWeek = 0,\n forceClose,\n required,\n month,\n disableYearPicker,\n position = \"bottom-start\",\n menuClassName,\n popperClassName,\n enableConfirmModal = false,\n modalTitle = \"Save Changes\",\n modalDescription = \"You updated the date. Would you like to save this change?\",\n modalSaveBtnText = \"Save\",\n modalCancelBtnText = \"Discard\",\n backgroundElementClass,\n popperTooltipClassName,\n popperTooltipStyle,\n open,\n onCalendarToggle,\n onDayClick,\n showControls,\n}) => {\n const [isOpen, setIsOpen] = useState(open);\n const [isYearSelectOpen, setIsYearSelectOpen] = useState(false);\n const [showDiscardModal, setShowDiscardModal] = useState(false);\n const [isMonthSelectOpen, setIsMonthSelectOpen] = useState(\n mode === \"monthly\" || mode === \"quarterly\"\n );\n const [monthTransitionDirection, setMonthTransitionDirection] = useState<\n \"prev\" | \"next\" | null\n >(null);\n\n const [currentDate, setCurrentDate] = useState<Moment>(() => {\n if (defaultSelected && defaultSelected.from) {\n return toMoment(defaultSelected.from);\n }\n if (month) {\n return toMoment(month);\n }\n return moment.utc();\n });\n\n const [targetDate, setTargetDate] = useState<Moment | undefined>(() => {\n if (defaultSelected && defaultSelected.from) {\n return toMoment(defaultSelected.from);\n } else if (month) {\n return toMoment(month);\n }\n return moment.utc();\n });\n\n const [selected, setSelected] = useState<DateRange | null>(() => {\n if (!defaultSelected) {\n return null;\n }\n if (!defaultSelected.from) {\n return null;\n }\n return {\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n };\n });\n\n const [hoveredDate, setHoveredDate] = useState<Moment | null>(null);\n\n const timezone = moment.defaultZone\n ? moment.defaultZone.name\n : moment.tz.guess();\n\n const currentDateInTimezone = moment().tz(timezone).format(\"YYYY-MM-DD\");\n\n const today = moment.utc(currentDateInTimezone);\n\n const selectedYearRef = useRef<HTMLDivElement | null>(null);\n const datePickerRef = useRef<HTMLDivElement>(null);\n\n const handleSelection = useCallback(\n (range?: DateRange) => {\n if (!range) {\n setSelected(null);\n if (onChange) onChange(undefined);\n if (instant && onSave) {\n onSave(undefined);\n }\n } else {\n setSelected(range);\n if (onChange)\n onChange({\n from: range.from.utc().unix(),\n to: range?.to ? moment(range.to).utc().unix() : null,\n });\n if (instant && onSave) {\n onSave({\n from: range.from.utc().unix(),\n to: range?.to ? moment(range.to).utc().unix() : null,\n });\n }\n }\n },\n [onChange, onSave, instant]\n );\n\n const toggleCalendar = useCallback(() => {\n if (target) {\n setIsOpen(!isOpen);\n if (onCalendarToggle) onCalendarToggle(!isOpen);\n }\n }, [isOpen, onCalendarToggle, target]);\n\n const toggleYearSelect = useCallback(() => {\n setIsYearSelectOpen(!isYearSelectOpen);\n setIsMonthSelectOpen(true);\n }, [isYearSelectOpen]);\n\n const toggleMonthSelect = useCallback(() => {\n if (mode !== \"monthly\" && mode !== \"quarterly\") {\n setIsMonthSelectOpen(!isMonthSelectOpen);\n }\n }, [isMonthSelectOpen, mode]);\n\n useEffect(() => {\n if (defaultSelected && defaultSelected.from) {\n setSelected({\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n });\n setCurrentDate(toMoment(defaultSelected.from) || moment.utc());\n setTargetDate(toMoment(defaultSelected.from) || moment.utc());\n } else {\n setSelected(null);\n }\n }, [defaultSelected, month]);\n\n const handleDateSelect = (date: Moment) => {\n const isSameMonth = date.isSame(currentDate, \"month\");\n\n if (isSameMonth || disableAnimations) {\n setCurrentDate(date);\n setTargetDate(date);\n } else {\n const direction = date.isBefore(currentDate, \"month\") ? \"prev\" : \"next\";\n setTargetDate(date);\n setMonthTransitionDirection(direction);\n }\n\n switch (mode) {\n case \"daily\":\n handleDailySelection(date);\n break;\n case \"weekly\":\n handleWeeklySelection(date);\n break;\n case \"custom\":\n handleCustomSelection(date);\n break;\n default:\n console.warn(`Unhandled mode: ${mode}`);\n }\n\n if (instant && mode !== \"custom\" && forceClose) toggleCalendar();\n };\n\n const handleDailySelection = (date: Moment) => {\n if (!date.isSame(selected?.from)) {\n handleSelection({ from: date, to: date });\n } else if (!required) {\n handleSelection(undefined);\n }\n };\n\n const handleWeeklySelection = (date: Moment) => {\n const currentDayOfWeek = date.day();\n\n const daysToSubtract = (currentDayOfWeek - firstDayOfWeek + 7) % 7;\n\n const startOfWeek = date\n .clone()\n .subtract(daysToSubtract, \"days\")\n .startOf(\"day\");\n const endOfWeek = startOfWeek.clone().add(6, \"days\");\n\n if (!startOfWeek.isSame(selected?.from?.startOf(\"day\"))) {\n handleSelection({ from: startOfWeek, to: endOfWeek });\n } else if (!required) {\n handleSelection(undefined);\n }\n };\n\n const handleCustomSelection = (date: Moment) => {\n if (\n !selected ||\n selected?.from === moment.utc(Number(defaultSelected?.from) * 1000)\n ) {\n setSelected({ from: date.utc(), to: null });\n handleSelection({ from: date, to: null });\n return;\n }\n\n if (\n moment.isMoment(selected?.from) &&\n !selected?.to &&\n !selected?.from.isSame(date.utc(), \"day\")\n ) {\n const newSelection = selected?.from.isBefore(date)\n ? { from: selected.from, to: date.utc() }\n : { from: date.utc(), to: selected.from };\n setSelected(newSelection);\n handleSelection({\n from: newSelection.from,\n to: newSelection.to,\n });\n } else if (\n moment.isMoment(selected?.from) &&\n moment.isMoment(selected?.to)\n ) {\n setSelected({ from: date, to: null });\n handleSelection({ from: date, to: null });\n } else if (\n moment.isMoment(selected?.from) &&\n selected?.from.isSame(date.utc(), \"day\") &&\n !required\n ) {\n setSelected(null);\n handleSelection(undefined);\n } else if (selected.from === null && selected.to === null) {\n setSelected({ from: date.utc(), to: null });\n handleSelection({ from: date, to: date });\n }\n };\n const handleSave = () => {\n if (onSave) {\n toggleCalendar();\n if (mode === \"custom\" && !selected?.to) {\n setSelected({\n from: moment.utc(selected?.from),\n to: moment.utc(selected?.from),\n });\n }\n if (selected) {\n onSave({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n } else {\n if (!required) {\n onSave(undefined);\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n }\n };\n\n const handleMonthChange = useCallback(\n (direction: \"prev\" | \"next\") => {\n setMonthTransitionDirection(direction);\n if (isMonthSelectOpen) {\n setTargetDate((prevDate) => {\n if (prevDate) {\n return direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\");\n }\n return prevDate;\n });\n if (disableAnimations) {\n setCurrentDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\")\n );\n }\n } else {\n setTargetDate((prevDate) => {\n if (prevDate) {\n return direction === \"prev\"\n ? prevDate.clone().subtract(1, \"month\")\n : prevDate.clone().add(1, \"month\");\n }\n return prevDate;\n });\n if (disableAnimations) {\n setCurrentDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"month\")\n : prevDate.clone().add(1, \"month\")\n );\n }\n }\n },\n [disableAnimations, isMonthSelectOpen]\n );\n\n const handleYearChange = useCallback(\n (direction: \"prev\" | \"next\") => {\n if (isMonthSelectOpen && !disableAnimations) {\n setMonthTransitionDirection(direction);\n } else {\n setCurrentDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\")\n );\n }\n setTargetDate((prevDate) => {\n if (prevDate) {\n return direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\");\n }\n return prevDate;\n });\n },\n [disableAnimations, isMonthSelectOpen]\n );\n\n const onAnimationEnd = () => {\n if (targetDate) {\n setCurrentDate(targetDate);\n setMonthTransitionDirection(null);\n }\n };\n\n const handleYearSelect = (year: number) => {\n setCurrentDate(currentDate.clone().year(year));\n setTargetDate(currentDate.clone().year(year));\n setIsYearSelectOpen(false);\n setIsMonthSelectOpen(true);\n };\n\n const handleMonthSelect = (month: number) => {\n const newDate = currentDate.clone().utc().month(month);\n setCurrentDate(newDate);\n setTargetDate(newDate);\n\n if (mode === \"monthly\") {\n const range = {\n from: newDate.clone().startOf(\"month\"),\n to: newDate.clone().endOf(\"month\").startOf(\"day\"),\n };\n\n const isSameMonth =\n selected?.from.isSame(range.from, \"month\") &&\n selected?.to?.isSame(range.to, \"month\");\n\n if (isSameMonth) {\n if (!required) {\n handleSelection(undefined);\n if (instant && onSave) {\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n } else {\n handleSelection(range);\n }\n }\n\n if (mode === \"quarterly\") {\n const quarterRange = {\n from: newDate.clone().startOf(\"quarter\"),\n to: newDate.clone().endOf(\"quarter\").startOf(\"day\"),\n };\n\n const isSameQuarter =\n selected?.from.isSame(quarterRange.from, \"quarter\") &&\n selected?.to?.isSame(quarterRange.to, \"quarter\");\n\n if (isSameQuarter) {\n if (!required) {\n handleSelection(undefined);\n if (instant && onSave) {\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n } else {\n handleSelection(quarterRange);\n }\n }\n\n if (mode !== \"monthly\" && mode !== \"quarterly\") {\n setIsMonthSelectOpen(false);\n }\n if (instant && (mode === \"monthly\" || mode === \"quarterly\") && forceClose)\n toggleCalendar();\n };\n\n useEffect(() => {\n if (isYearSelectOpen && selectedYearRef.current) {\n selectedYearRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }\n }, [isYearSelectOpen]);\n\n const renderDaysOfWeek = () => {\n const daysOfWeek = moment.weekdaysShort();\n const orderedDays = [\n ...daysOfWeek.slice(firstDayOfWeek),\n ...daysOfWeek.slice(0, firstDayOfWeek),\n ];\n return orderedDays.map((day) => (\n <StyledDayName key={day}>{day[0]}</StyledDayName>\n ));\n };\n\n const animationClass = useMemo(() => {\n return monthTransitionDirection && !disableAnimations\n ? monthTransitionDirection === \"next\"\n ? \"slide-down\"\n : \"slide-up\"\n : \"\";\n }, [disableAnimations, monthTransitionDirection]);\n\n const handleDayClick = (day: Moment, modifiers: string[]) => {\n if (modifiers.some((mod) => mod === \"day_disabled\")) {\n return;\n }\n if (onDayClick) onDayClick(day, modifiers);\n handleDateSelect(day);\n };\n\n const getHoverRange = () => {\n if (!hoveredDate) return null;\n\n if (mode === \"quarterly\") {\n const startMonth = hoveredDate.clone().startOf(\"quarter\");\n const endMonth = hoveredDate.clone().endOf(\"quarter\");\n return { from: startMonth, to: endMonth };\n }\n\n if (mode === \"weekly\") {\n const currentDayOfWeek = hoveredDate.day();\n const daysToSubtract = (currentDayOfWeek - firstDayOfWeek + 7) % 7;\n const startOfWeek = hoveredDate\n .clone()\n .subtract(daysToSubtract, \"days\")\n .startOf(\"day\");\n const endOfWeek = startOfWeek.clone().add(6, \"days\");\n\n return { from: startOfWeek, to: endOfWeek };\n }\n\n if (mode === \"custom\" && selected?.from && !selected?.to) {\n const from = selected.from.isBefore(hoveredDate)\n ? selected.from\n : hoveredDate;\n const to = selected.from.isAfter(hoveredDate)\n ? selected.from\n : hoveredDate;\n return { from, to };\n }\n\n return null;\n };\n\n const renderCalendarDates = () => {\n const startOfMonth = currentDate.clone().startOf(\"month\");\n const startDate = startOfMonth.clone().isoWeekday(firstDayOfWeek);\n\n const endDate = startDate.clone().add(6, \"weeks\");\n const date = startDate.clone();\n const dates: React.JSX.Element[] = [];\n\n const hoverRange = getHoverRange();\n\n while (date.isBefore(endDate)) {\n const clonedDate = date.clone();\n const isToday = clonedDate.isSame(today, \"day\");\n const isSelected =\n selected &&\n (clonedDate.isBetween(selected.from, selected.to, \"day\", \"[]\") ||\n clonedDate.isSame(selected.from, \"day\") ||\n clonedDate.isSame(selected.to, \"day\"));\n\n const isHovered =\n hoverRange &&\n (mode === \"weekly\" || mode === \"custom\") &&\n clonedDate.isBetween(hoverRange.from, hoverRange.to, \"day\", \"[]\");\n\n const isDisabled =\n (disabledDaysBefore &&\n clonedDate.isBefore(disabledDaysBefore, \"day\")) ||\n (disabledDaysAfter && clonedDate.isAfter(disabledDaysAfter, \"day\")) ||\n disabledDays.includes(clonedDate.day());\n\n const modifierClasses: string[] = [];\n const modifierTitles: string[] = [];\n let titles;\n\n if (modifiers)\n Object.keys(modifiers || {}).forEach((modifier) => {\n const { matched, title } = modifiers[modifier](clonedDate);\n if (matched) {\n modifierClasses.push(modifier);\n if (title) modifierTitles.push(title);\n }\n });\n if (modifierTitles.length) {\n titles = (\n <div key={`title-wrapper-${clonedDate.toString()}`}>\n {modifierTitles.map((title: string, index: number) => (\n <div key={`title-text-${index}`}>{title}</div>\n ))}\n </div>\n );\n }\n\n const isOutside = !clonedDate.isSame(currentDate, \"month\");\n\n dates.push(\n <Tooltip\n title={titles}\n disable={!modifierTitles.length}\n key={clonedDate.toString()}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n >\n <StyledCalendarDate\n className={`${isSelected ? \"selected\" : \"\"} ${\n isToday ? \"today-day\" : \"\"\n }\n ${isDisabled ? \"disabled\" : \"\"} ${\n isHovered ? \"hovered\" : \"\"\n } ${modifierClasses.join(\" \")}\n ${isOutside ? \"outside\" : \"\"}`}\n onClick={() => handleDayClick(clonedDate, modifierClasses)}\n onMouseEnter={\n mode === \"weekly\" || mode === \"custom\"\n ? () => setHoveredDate(clonedDate)\n : undefined\n }\n onMouseLeave={\n mode === \"weekly\" || mode === \"custom\"\n ? () => setHoveredDate(null)\n : undefined\n }\n >\n {clonedDate.date()}\n </StyledCalendarDate>\n </Tooltip>\n );\n\n date.add(1, \"day\");\n }\n\n return dates;\n };\n\n const renderYearSelect = () => {\n const years = Array.from({ length: 200 }, (_, i) => 1900 + i);\n return (\n <StyledYearSelect>\n {years.map((year) => {\n const isSelected =\n selected &&\n ((selected?.to &&\n year >= selected.from.year() &&\n year <= selected.to.year()) ||\n year === selected.from.year() ||\n (selected?.to && year === selected.to.year()));\n\n const isDisabledYear =\n (disabledDaysBefore && year < disabledDaysBefore.year()) ||\n (disabledDaysAfter && year > disabledDaysAfter.year());\n\n return (\n <StyledYearOption\n key={year}\n ref={year === currentDate.year() ? selectedYearRef : null}\n className={`${isSelected ? \"selected\" : \"\"} ${\n year === today.year() ? \"today-year\" : \"\"\n } ${isDisabledYear ? \"disabled\" : \"\"}`}\n onClick={() => handleYearSelect(year)}\n >\n {year}\n </StyledYearOption>\n );\n })}\n </StyledYearSelect>\n );\n };\n\n const renderMonthSelect = () => {\n const months = moment.months();\n const hoverRange = getHoverRange();\n\n return (\n <StyledMonthSelect>\n {months.map((month, index) => {\n const monthDate = currentDate.clone().month(index);\n\n const isSelected =\n selected &&\n (monthDate.isBetween(selected.from, selected.to, \"month\", \"[]\") ||\n monthDate.isSame(selected.from, \"month\") ||\n monthDate.isSame(selected.to, \"month\"));\n\n const isDisabledMonth =\n (disabledDaysBefore &&\n monthDate.isBefore(disabledDaysBefore, \"month\")) ||\n (disabledDaysAfter &&\n monthDate.isAfter(disabledDaysAfter, \"month\"));\n\n const isHoveredQuarter =\n hoverRange &&\n mode === \"quarterly\" &&\n monthDate.isBetween(hoverRange.from, hoverRange.to, \"month\", \"[]\");\n\n return (\n <StyledMonthOption\n key={month}\n className={`${isSelected ? \"selected\" : \"\"} ${\n index === today.month() && currentDate.year() === today.year()\n ? \"today-month\"\n : \"\"\n } ${isDisabledMonth ? \"disabled\" : \"\"} ${\n isHoveredQuarter ? \"hovered\" : \"\"\n }`}\n onClick={() => handleMonthSelect(index)}\n onMouseEnter={\n mode === \"quarterly\"\n ? () => setHoveredDate(monthDate)\n : undefined\n }\n onMouseLeave={\n mode === \"quarterly\" ? () => setHoveredDate(null) : undefined\n }\n >\n {month.substring(0, 3)}\n </StyledMonthOption>\n );\n })}\n </StyledMonthSelect>\n );\n };\n\n const captionText = useMemo(() => {\n const isCurrentYear = currentDate.isSame(today, \"year\");\n\n return !isMonthSelectOpen && !isYearSelectOpen\n ? `${currentDate.format(\"MMMM\")}${\n isCurrentYear ? \"\" : ` ${currentDate.format(\"YYYY\")}`\n }`\n : currentDate.format(\"YYYY\");\n }, [currentDate, isMonthSelectOpen, isYearSelectOpen, today]);\n\n const handleClear = useCallback(() => {\n if (typeof onClear === \"function\") onClear();\n handleSelection(undefined);\n }, [handleSelection, onClear]);\n\n const handleClose = useCallback(() => {\n if (mode === \"custom\" && instant && selected) {\n setSelected({\n from: moment.utc(selected?.from),\n to: selected?.to\n ? moment.utc(selected?.to)\n : moment.utc(selected?.from),\n });\n }\n if (\n instant &&\n onSave &&\n mode === \"custom\" &&\n selected &&\n (!selected?.from.isSame(\n moment.utc(Number(defaultSelected?.from) * 1000)\n ) ||\n !selected?.to?.isSame(moment.utc(Number(defaultSelected?.to) * 1000)))\n ) {\n onSave({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n }\n if (mode === \"custom\" && instant && !selected && onSave) {\n onSave(undefined);\n }\n setCurrentDate(\n defaultSelected?.from\n ? toMoment(defaultSelected.from)\n : month\n ? toMoment(month)\n : moment.utc()\n );\n setTargetDate(\n defaultSelected?.from\n ? toMoment(defaultSelected.from)\n : month\n ? toMoment(month)\n : moment.utc()\n );\n setSelected(\n defaultSelected?.from\n ? {\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n }\n : null\n );\n toggleCalendar();\n setIsYearSelectOpen(false);\n setIsMonthSelectOpen(mode === \"monthly\" || mode === \"quarterly\");\n setMonthTransitionDirection(null);\n if (typeof onClose === \"function\") onClose();\n }, [\n defaultSelected,\n instant,\n mode,\n month,\n onClose,\n onSave,\n selected,\n toggleCalendar,\n ]);\n\n const handleBeforeClose = useCallback(() => {\n let shouldClose = true;\n if (!target || !enableConfirmModal || instant || required) {\n shouldClose = true;\n }\n if (\n target &&\n enableConfirmModal &&\n !instant &&\n !required &&\n ((selected && !defaultSelected) ||\n (!selected && defaultSelected) ||\n (selected?.from &&\n defaultSelected?.from &&\n !selected.from.isSame(toMoment(defaultSelected.from))) ||\n (selected?.to &&\n defaultSelected?.to &&\n !selected.to.isSame(toMoment(defaultSelected.to))))\n ) {\n shouldClose = false;\n setShowDiscardModal(true);\n }\n if (shouldClose) handleClose();\n return shouldClose;\n }, [\n defaultSelected,\n enableConfirmModal,\n handleClose,\n instant,\n required,\n selected,\n target,\n ]);\n\n const Wrapper = target ? Menu : \"div\";\n\n const handleCaptionClick = useCallback(() => {\n isMonthSelectOpen && !disableYearPicker\n ? toggleYearSelect()\n : toggleMonthSelect();\n }, [\n disableYearPicker,\n isMonthSelectOpen,\n toggleMonthSelect,\n toggleYearSelect,\n ]);\n\n const handleSaveDiscardModal = useCallback(() => {\n if (selected) {\n if (onChange) {\n onChange({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n }\n if (onSave) {\n onSave({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n }\n } else {\n if (onChange) onChange(undefined);\n if (onSave) onSave(undefined);\n }\n setShowDiscardModal(false);\n if (target) {\n setIsOpen(false);\n if (onCalendarToggle) onCalendarToggle(false);\n }\n }, [selected, target, onChange, onSave, onCalendarToggle]);\n\n const handleDiscardModal = useCallback(() => {\n setSelected(\n defaultSelected?.from\n ? {\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n }\n : null\n );\n setShowDiscardModal(false);\n if (target) {\n setIsOpen(false);\n if (onCalendarToggle) onCalendarToggle(false);\n }\n }, [defaultSelected?.from, defaultSelected?.to, onCalendarToggle, target]);\n\n const wrapperProps = target\n ? {\n className: \"c-date-picker--calendar\",\n target,\n onBeforeClose: handleBeforeClose,\n onClose: handleClose,\n open: isOpen,\n active: isOpen,\n onOpen: toggleCalendar,\n position,\n menuClassName,\n popperClassName,\n backgroundElementClass,\n }\n : { className: \"c-date-picker--calendar\" };\n\n useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"ArrowRight\") {\n handleMonthChange(\"next\");\n } else if (event.key === \"ArrowLeft\") {\n handleMonthChange(\"prev\");\n } else if (event.key === \"ArrowUp\") {\n handleYearChange(\"next\");\n } else if (event.key === \"ArrowDown\") {\n handleYearChange(\"prev\");\n }\n };\n\n if (isOpen) {\n window.addEventListener(\"keydown\", handleKeyDown);\n } else {\n window.removeEventListener(\"keydown\", handleKeyDown);\n }\n\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [isOpen, handleMonthChange, handleYearChange]);\n\n const saveIsDisabled = () => {\n if (!target) return false;\n if (!defaultSelected && !selected) {\n return true;\n }\n if (\n defaultSelected &&\n selected &&\n defaultSelected.from &&\n selected.from.isSame(toMoment(defaultSelected.from)) &&\n defaultSelected.to &&\n selected.to &&\n selected.to.isSame(toMoment(defaultSelected.to))\n ) {\n return true;\n }\n return false;\n };\n\n return (\n <StyledDatePickerWrapper ref={datePickerRef}>\n <Wrapper {...wrapperProps}>\n <StyledDatePickerContainerInner>\n <StyledCalendarHeader>\n {isYearSelectOpen ? null : (\n <IconButton\n onClick={() => handleMonthChange(\"prev\")}\n variant=\"text gray\"\n size=\"small\"\n >\n <ArrowLeftIcon />\n </IconButton>\n )}\n <StyledCaption\n className={`${animationClass} ${\n isYearSelectOpen ? \"year-caption\" : \"\"\n }`}\n key={isMonthSelectOpen ? currentDate.year() : currentDate.month()}\n onClick={handleCaptionClick}\n onAnimationEnd={onAnimationEnd}\n >\n {captionText}\n </StyledCaption>\n {isYearSelectOpen ? null : (\n <IconButton\n onClick={() => handleMonthChange(\"next\")}\n variant=\"text gray\"\n size=\"small\"\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </StyledCalendarHeader>\n <StyledCalendarSelector>\n {isYearSelectOpen ? (\n renderYearSelect()\n ) : isMonthSelectOpen ? (\n <StyledMonthSelector\n className={animationClass}\n key={currentDate.year()}\n onAnimationEnd={onAnimationEnd}\n >\n {renderMonthSelect()}\n </StyledMonthSelector>\n ) : (\n <>\n <StyledDaysOfWeek>{renderDaysOfWeek()}</StyledDaysOfWeek>\n <StyledCalendarDates\n className={animationClass}\n key={currentDate.month()}\n >\n {renderCalendarDates()}\n </StyledCalendarDates>\n </>\n )}\n </StyledCalendarSelector>\n {(target || showControls) &&\n (!instant ? (\n <StyledControls>\n <StyledControlsLeft>\n <Button\n size=\"small\"\n variant=\"primary\"\n onClick={handleSave}\n disabled={saveIsDisabled()}\n >\n {saveLabel}\n </Button>\n <Tooltip\n title={cancelLabel}\n popperTooltipStyle={{ zIndex: 1301 }}\n >\n <IconButton\n size=\"small\"\n variant=\"text gray\"\n onClick={handleBeforeClose}\n >\n <CancelCrossIcon />\n </IconButton>\n </Tooltip>\n </StyledControlsLeft>\n {!required ? (\n <Button\n size=\"small\"\n onClick={handleClear}\n variant=\"text gray\"\n >\n {clearLabel}\n </Button>\n ) : null}\n </StyledControls>\n ) : !required ? (\n <StyledControls>\n <StyledClearInstantButton\n size=\"small\"\n onClick={handleClear}\n variant=\"text gray\"\n >\n {clearLabel}\n </StyledClearInstantButton>\n </StyledControls>\n ) : null)}\n </StyledDatePickerContainerInner>\n </Wrapper>\n {!instant && target && !required && enableConfirmModal ? (\n <StyledConfirmDialog\n className=\"modal-select-date\"\n open={showDiscardModal}\n onCancel={handleDiscardModal}\n onConfirm={handleSaveDiscardModal}\n dialogTitle={modalTitle}\n dialogContent={modalDescription}\n cancelBtnText={modalCancelBtnText}\n confirmBtnText={modalSaveBtnText}\n />\n ) : null}\n </StyledDatePickerWrapper>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DatePicker.js","names":["_react","_interopRequireWildcard","require","_momentTimezone","_interopRequireDefault","_Styles","_Button","_IconButton","_Icons","_Menu","_Tooltip","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","return","isArray","toMoment","exports","date","moment","isMoment","utc","DatePicker","_ref","defaultSelected","selected","onChange","onSave","onClear","onClose","_ref$instant","instant","target","_ref$mode","mode","_ref$saveLabel","saveLabel","_ref$cancelLabel","cancelLabel","_ref$clearLabel","clearLabel","disabledDaysBefore","disabledDaysAfter","_ref$disabled","disabled","disabledDays","maxRange","modifiers","disableAnimations","_ref$firstDayOfWeek","firstDayOfWeek","forceClose","required","month","disableYearPicker","_ref$position","position","menuClassName","popperClassName","_ref$enableConfirmMod","enableConfirmModal","_ref$modalTitle","modalTitle","_ref$modalDescription","modalDescription","_ref$modalSaveBtnText","modalSaveBtnText","_ref$modalCancelBtnTe","modalCancelBtnText","backgroundElementClass","popperTooltipClassName","popperTooltipStyle","open","onCalendarToggle","onDayClick","showControls","_useState","useState","_useState2","isOpen","setIsOpen","_useState3","_useState4","isYearSelectOpen","setIsYearSelectOpen","_useState5","_useState6","showDiscardModal","setShowDiscardModal","_useState7","_useState8","isMonthSelectOpen","setIsMonthSelectOpen","_useState9","_useState0","monthTransitionDirection","setMonthTransitionDirection","_useState1","_useState10","currentDate","setCurrentDate","_useState11","_useState12","targetDate","setTargetDate","_useState13","to","_useState14","setSelected","_useState15","_useState16","hoveredDate","setHoveredDate","timezone","defaultZone","tz","guess","currentDateInTimezone","format","today","selectedYearRef","useRef","datePickerRef","useEffect","daysDiff","diff","console","warn","concat","effectiveDisabledDaysBefore","useMemo","maxRangeBefore","clone","subtract","isAfter","effectiveDisabledDaysAfter","maxRangeAfter","add","isBefore","handleSelection","useCallback","range","undefined","unix","toggleCalendar","toggleYearSelect","toggleMonthSelect","handleDateSelect","isSameMonth","isSame","direction","handleDailySelection","handleWeeklySelection","handleCustomSelection","_selected$from","currentDayOfWeek","day","daysToSubtract","startOfWeek","startOf","endOfWeek","Number","newSelection","handleSave","handleMonthChange","prevDate","handleYearChange","onAnimationEnd","handleYearSelect","year","handleMonthSelect","newDate","_selected$to","endOf","_selected$to2","quarterRange","isSameQuarter","current","_selectedYearRef$curr","scrollIntoView","behavior","block","renderDaysOfWeek","daysOfWeek","weekdaysShort","orderedDays","map","createElement","StyledDayName","key","animationClass","handleDayClick","some","mod","getHoverRange","startMonth","endMonth","renderCalendarDates","startOfMonth","startDate","isoWeekday","endDate","dates","hoverRange","_loop","clonedDate","isToday","isSelected","isBetween","isHovered","isDisabled","includes","modifierClasses","modifierTitles","titles","keys","forEach","modifier","_modifiers$modifier","matched","title","index","isOutside","Tooltip","disable","StyledCalendarDate","className","join","onClick","onMouseEnter","onMouseLeave","renderYearSelect","years","_","StyledYearSelect","isDisabledYear","StyledYearOption","ref","renderMonthSelect","months","StyledMonthSelect","monthDate","isDisabledMonth","isHoveredQuarter","StyledMonthOption","substring","captionText","isCurrentYear","handleClear","handleClose","_selected$to3","handleBeforeClose","shouldClose","Wrapper","Menu","handleCaptionClick","handleSaveDiscardModal","handleDiscardModal","wrapperProps","onBeforeClose","active","onOpen","handleKeyDown","event","window","addEventListener","removeEventListener","saveIsDisabled","StyledDatePickerWrapper","StyledDatePickerContainerInner","StyledCalendarHeader","IconButton","variant","size","ArrowLeftIcon","StyledCaption","ArrowRightIcon","StyledCalendarSelector","StyledMonthSelector","Fragment","StyledDaysOfWeek","StyledCalendarDates","StyledControls","StyledControlsLeft","Button","zIndex","CancelCrossIcon","StyledClearInstantButton","StyledConfirmDialog","onCancel","onConfirm","dialogTitle","dialogContent","cancelBtnText","confirmBtnText"],"sources":["../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import React, {\n useState,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n CSSProperties,\n} from \"react\";\n\nimport { Moment } from \"moment\";\nimport moment from \"moment-timezone\";\n\nimport {\n StyledCalendarDate,\n StyledCalendarDates,\n StyledCalendarHeader,\n StyledCalendarSelector,\n StyledCaption,\n StyledClearInstantButton,\n StyledConfirmDialog,\n StyledControls,\n StyledControlsLeft,\n StyledDatePickerContainerInner,\n StyledDatePickerWrapper,\n StyledDayName,\n StyledDaysOfWeek,\n StyledMonthOption,\n StyledMonthSelect,\n StyledMonthSelector,\n StyledYearOption,\n StyledYearSelect,\n} from \"./Styles\";\nimport { Button } from \"../Button\";\nimport { IconButton } from \"../IconButton\";\nimport { ArrowLeftIcon, ArrowRightIcon, CancelCrossIcon } from \"../Icons\";\nimport { Menu } from \"../Menu\";\nimport { Placement } from \"../Popper\";\nimport { ElementWithRef } from \"../Select\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport type ChangeMode =\n | \"daily\"\n | \"weekly\"\n | \"monthly\"\n | \"quarterly\"\n | \"custom\";\n\nexport interface DateRange {\n from: Moment;\n to: Moment | null;\n}\n\nexport interface TimestampDateRange {\n from: number | string | Moment | null;\n to: number | string | Moment | null;\n}\n\nexport interface DatePickerProps {\n selected?: TimestampDateRange;\n onChange?: (range?: TimestampDateRange) => void;\n onSave?: (range?: TimestampDateRange) => void;\n onClear?: () => void;\n onClose?: () => void;\n instant?: boolean;\n target?: ElementWithRef<Element>;\n mode: ChangeMode;\n saveLabel?: string;\n cancelLabel?: string;\n clearLabel?: string;\n disabledDaysBefore?: Moment;\n disabledDaysAfter?: Moment;\n disabled?: number[];\n /**\n * Maximum number of days in a selection range (minimum value: 2, maximum value: 366).\n * @minimum 2\n * @maximum 366\n */\n maxRange?: number;\n modifiers?: {\n [key: string]: (day: Moment) => { matched: boolean; title: string | null };\n };\n disableAnimations?: boolean;\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n forceClose?: boolean;\n required?: boolean;\n month?: Moment | number;\n disableYearPicker?: boolean;\n position?: Placement;\n /** Popper class name*/\n popperClassName?: string;\n backgroundElementClass?: string;\n /** Menu classes */\n menuClassName?: string;\n enableConfirmModal?: boolean;\n /** Modal title text */\n modalTitle?: string;\n /** Modal description text */\n modalDescription?: string;\n /** Modal save button text */\n modalSaveBtnText?: string;\n /** Modal cancel button text */\n modalCancelBtnText?: string;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n open?: boolean;\n onCalendarToggle?: (value: boolean) => void;\n /** Called when day is clicked */\n onDayClick?: (day: Moment, modifiers: string[]) => void;\n showControls?: boolean;\n}\nexport const toMoment = (date?: string | number | Moment) => {\n if (moment.isMoment(date)) {\n return date;\n } else if (typeof date === \"number\") {\n return moment.utc(date * 1000);\n } else if (typeof date === \"string\") {\n return moment.utc(date);\n }\n return null;\n};\n\nexport const DatePicker: React.FC<DatePickerProps> = ({\n selected: defaultSelected,\n onChange,\n onSave,\n onClear,\n onClose,\n instant = true,\n target,\n mode = \"daily\",\n saveLabel = \"Save\",\n cancelLabel = \"Cancel\",\n clearLabel = \"Clear\",\n disabledDaysBefore,\n disabledDaysAfter,\n disabled: disabledDays = [],\n maxRange,\n modifiers,\n disableAnimations,\n firstDayOfWeek = 0,\n forceClose,\n required,\n month,\n disableYearPicker,\n position = \"bottom-start\",\n menuClassName,\n popperClassName,\n enableConfirmModal = false,\n modalTitle = \"Save Changes\",\n modalDescription = \"You updated the date. Would you like to save this change?\",\n modalSaveBtnText = \"Save\",\n modalCancelBtnText = \"Discard\",\n backgroundElementClass,\n popperTooltipClassName,\n popperTooltipStyle,\n open,\n onCalendarToggle,\n onDayClick,\n showControls,\n}) => {\n const [isOpen, setIsOpen] = useState(open);\n const [isYearSelectOpen, setIsYearSelectOpen] = useState(false);\n const [showDiscardModal, setShowDiscardModal] = useState(false);\n const [isMonthSelectOpen, setIsMonthSelectOpen] = useState(\n mode === \"monthly\" || mode === \"quarterly\"\n );\n const [monthTransitionDirection, setMonthTransitionDirection] = useState<\n \"prev\" | \"next\" | null\n >(null);\n\n const [currentDate, setCurrentDate] = useState<Moment>(() => {\n if (defaultSelected && defaultSelected.from) {\n return toMoment(defaultSelected.from);\n }\n if (month) {\n return toMoment(month);\n }\n return moment.utc();\n });\n\n const [targetDate, setTargetDate] = useState<Moment | undefined>(() => {\n if (defaultSelected && defaultSelected.from) {\n return toMoment(defaultSelected.from);\n } else if (month) {\n return toMoment(month);\n }\n return moment.utc();\n });\n\n const [selected, setSelected] = useState<DateRange | null>(() => {\n if (!defaultSelected) {\n return null;\n }\n if (!defaultSelected.from) {\n return null;\n }\n return {\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n };\n });\n\n const [hoveredDate, setHoveredDate] = useState<Moment | null>(null);\n\n const timezone = moment.defaultZone\n ? moment.defaultZone.name\n : moment.tz.guess();\n\n const currentDateInTimezone = moment().tz(timezone).format(\"YYYY-MM-DD\");\n\n const today = moment.utc(currentDateInTimezone);\n\n const selectedYearRef = useRef<HTMLDivElement | null>(null);\n const datePickerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (maxRange && defaultSelected?.from && defaultSelected?.to) {\n const from = toMoment(defaultSelected.from);\n const to = toMoment(defaultSelected.to);\n if (from && to) {\n const daysDiff = to.diff(from, \"days\") + 1;\n if (daysDiff > maxRange) {\n console.warn(\n `DatePicker: selected range (${daysDiff} days) exceeds maxRange (${maxRange}).`\n );\n }\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const effectiveDisabledDaysBefore = useMemo(() => {\n if (maxRange && mode === \"custom\" && selected?.from && !selected?.to) {\n const maxRangeBefore = selected.from\n .clone()\n .subtract(maxRange - 1, \"days\");\n if (!disabledDaysBefore || maxRangeBefore.isAfter(disabledDaysBefore)) {\n return maxRangeBefore;\n }\n }\n return disabledDaysBefore;\n }, [maxRange, mode, selected, disabledDaysBefore]);\n\n const effectiveDisabledDaysAfter = useMemo(() => {\n if (maxRange && mode === \"custom\" && selected?.from && !selected?.to) {\n const maxRangeAfter = selected.from.clone().add(maxRange - 1, \"days\");\n if (!disabledDaysAfter || maxRangeAfter.isBefore(disabledDaysAfter)) {\n return maxRangeAfter;\n }\n }\n return disabledDaysAfter;\n }, [maxRange, mode, selected, disabledDaysAfter]);\n\n const handleSelection = useCallback(\n (range?: DateRange) => {\n if (!range) {\n setSelected(null);\n if (onChange) onChange(undefined);\n if (instant && onSave) {\n onSave(undefined);\n }\n } else {\n setSelected(range);\n if (onChange)\n onChange({\n from: range.from.utc().unix(),\n to: range?.to ? moment(range.to).utc().unix() : null,\n });\n if (instant && onSave) {\n onSave({\n from: range.from.utc().unix(),\n to: range?.to ? moment(range.to).utc().unix() : null,\n });\n }\n }\n },\n [onChange, onSave, instant]\n );\n\n const toggleCalendar = useCallback(() => {\n if (target) {\n setIsOpen(!isOpen);\n if (onCalendarToggle) onCalendarToggle(!isOpen);\n }\n }, [isOpen, onCalendarToggle, target]);\n\n const toggleYearSelect = useCallback(() => {\n setIsYearSelectOpen(!isYearSelectOpen);\n setIsMonthSelectOpen(true);\n }, [isYearSelectOpen]);\n\n const toggleMonthSelect = useCallback(() => {\n if (mode !== \"monthly\" && mode !== \"quarterly\") {\n setIsMonthSelectOpen(!isMonthSelectOpen);\n }\n }, [isMonthSelectOpen, mode]);\n\n useEffect(() => {\n if (defaultSelected && defaultSelected.from) {\n setSelected({\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n });\n setCurrentDate(toMoment(defaultSelected.from) || moment.utc());\n setTargetDate(toMoment(defaultSelected.from) || moment.utc());\n } else {\n setSelected(null);\n }\n }, [defaultSelected, month]);\n\n const handleDateSelect = (date: Moment) => {\n const isSameMonth = date.isSame(currentDate, \"month\");\n\n if (isSameMonth || disableAnimations) {\n setCurrentDate(date);\n setTargetDate(date);\n } else {\n const direction = date.isBefore(currentDate, \"month\") ? \"prev\" : \"next\";\n setTargetDate(date);\n setMonthTransitionDirection(direction);\n }\n\n switch (mode) {\n case \"daily\":\n handleDailySelection(date);\n break;\n case \"weekly\":\n handleWeeklySelection(date);\n break;\n case \"custom\":\n handleCustomSelection(date);\n break;\n default:\n console.warn(`Unhandled mode: ${mode}`);\n }\n\n if (instant && mode !== \"custom\" && forceClose) toggleCalendar();\n };\n\n const handleDailySelection = (date: Moment) => {\n if (!date.isSame(selected?.from)) {\n handleSelection({ from: date, to: date });\n } else if (!required) {\n handleSelection(undefined);\n }\n };\n\n const handleWeeklySelection = (date: Moment) => {\n const currentDayOfWeek = date.day();\n\n const daysToSubtract = (currentDayOfWeek - firstDayOfWeek + 7) % 7;\n\n const startOfWeek = date\n .clone()\n .subtract(daysToSubtract, \"days\")\n .startOf(\"day\");\n const endOfWeek = startOfWeek.clone().add(6, \"days\");\n\n if (!startOfWeek.isSame(selected?.from?.startOf(\"day\"))) {\n handleSelection({ from: startOfWeek, to: endOfWeek });\n } else if (!required) {\n handleSelection(undefined);\n }\n };\n\n const handleCustomSelection = (date: Moment) => {\n if (\n !selected ||\n selected?.from === moment.utc(Number(defaultSelected?.from) * 1000)\n ) {\n setSelected({ from: date.utc(), to: null });\n handleSelection({ from: date, to: null });\n return;\n }\n\n if (\n moment.isMoment(selected?.from) &&\n !selected?.to &&\n !selected?.from.isSame(date.utc(), \"day\")\n ) {\n const newSelection = selected?.from.isBefore(date)\n ? { from: selected.from, to: date.utc() }\n : { from: date.utc(), to: selected.from };\n setSelected(newSelection);\n handleSelection({\n from: newSelection.from,\n to: newSelection.to,\n });\n } else if (\n moment.isMoment(selected?.from) &&\n moment.isMoment(selected?.to)\n ) {\n setSelected({ from: date, to: null });\n handleSelection({ from: date, to: null });\n } else if (\n moment.isMoment(selected?.from) &&\n selected?.from.isSame(date.utc(), \"day\") &&\n !required\n ) {\n setSelected(null);\n handleSelection(undefined);\n } else if (selected.from === null && selected.to === null) {\n setSelected({ from: date.utc(), to: null });\n handleSelection({ from: date, to: date });\n }\n };\n const handleSave = () => {\n if (onSave) {\n toggleCalendar();\n if (mode === \"custom\" && !selected?.to) {\n setSelected({\n from: moment.utc(selected?.from),\n to: moment.utc(selected?.from),\n });\n }\n if (selected) {\n onSave({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n } else {\n if (!required) {\n onSave(undefined);\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n }\n };\n\n const handleMonthChange = useCallback(\n (direction: \"prev\" | \"next\") => {\n setMonthTransitionDirection(direction);\n if (isMonthSelectOpen) {\n setTargetDate((prevDate) => {\n if (prevDate) {\n return direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\");\n }\n return prevDate;\n });\n if (disableAnimations) {\n setCurrentDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\")\n );\n }\n } else {\n setTargetDate((prevDate) => {\n if (prevDate) {\n return direction === \"prev\"\n ? prevDate.clone().subtract(1, \"month\")\n : prevDate.clone().add(1, \"month\");\n }\n return prevDate;\n });\n if (disableAnimations) {\n setCurrentDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"month\")\n : prevDate.clone().add(1, \"month\")\n );\n }\n }\n },\n [disableAnimations, isMonthSelectOpen]\n );\n\n const handleYearChange = useCallback(\n (direction: \"prev\" | \"next\") => {\n if (isMonthSelectOpen && !disableAnimations) {\n setMonthTransitionDirection(direction);\n } else {\n setCurrentDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\")\n );\n }\n setTargetDate((prevDate) => {\n if (prevDate) {\n return direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\");\n }\n return prevDate;\n });\n },\n [disableAnimations, isMonthSelectOpen]\n );\n\n const onAnimationEnd = () => {\n if (targetDate) {\n setCurrentDate(targetDate);\n setMonthTransitionDirection(null);\n }\n };\n\n const handleYearSelect = (year: number) => {\n setCurrentDate(currentDate.clone().year(year));\n setTargetDate(currentDate.clone().year(year));\n setIsYearSelectOpen(false);\n setIsMonthSelectOpen(true);\n };\n\n const handleMonthSelect = (month: number) => {\n const newDate = currentDate.clone().utc().month(month);\n setCurrentDate(newDate);\n setTargetDate(newDate);\n\n if (mode === \"monthly\") {\n const range = {\n from: newDate.clone().startOf(\"month\"),\n to: newDate.clone().endOf(\"month\").startOf(\"day\"),\n };\n\n const isSameMonth =\n selected?.from.isSame(range.from, \"month\") &&\n selected?.to?.isSame(range.to, \"month\");\n\n if (isSameMonth) {\n if (!required) {\n handleSelection(undefined);\n if (instant && onSave) {\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n } else {\n handleSelection(range);\n }\n }\n\n if (mode === \"quarterly\") {\n const quarterRange = {\n from: newDate.clone().startOf(\"quarter\"),\n to: newDate.clone().endOf(\"quarter\").startOf(\"day\"),\n };\n\n const isSameQuarter =\n selected?.from.isSame(quarterRange.from, \"quarter\") &&\n selected?.to?.isSame(quarterRange.to, \"quarter\");\n\n if (isSameQuarter) {\n if (!required) {\n handleSelection(undefined);\n if (instant && onSave) {\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n } else {\n handleSelection(quarterRange);\n }\n }\n\n if (mode !== \"monthly\" && mode !== \"quarterly\") {\n setIsMonthSelectOpen(false);\n }\n if (instant && (mode === \"monthly\" || mode === \"quarterly\") && forceClose)\n toggleCalendar();\n };\n\n useEffect(() => {\n if (isYearSelectOpen && selectedYearRef.current) {\n selectedYearRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }\n }, [isYearSelectOpen]);\n\n const renderDaysOfWeek = () => {\n const daysOfWeek = moment.weekdaysShort();\n const orderedDays = [\n ...daysOfWeek.slice(firstDayOfWeek),\n ...daysOfWeek.slice(0, firstDayOfWeek),\n ];\n return orderedDays.map((day) => (\n <StyledDayName key={day}>{day[0]}</StyledDayName>\n ));\n };\n\n const animationClass = useMemo(() => {\n return monthTransitionDirection && !disableAnimations\n ? monthTransitionDirection === \"next\"\n ? \"slide-down\"\n : \"slide-up\"\n : \"\";\n }, [disableAnimations, monthTransitionDirection]);\n\n const handleDayClick = (day: Moment, modifiers: string[]) => {\n if (modifiers.some((mod) => mod === \"day_disabled\")) {\n return;\n }\n if (onDayClick) onDayClick(day, modifiers);\n handleDateSelect(day);\n };\n\n const getHoverRange = () => {\n if (!hoveredDate) return null;\n\n if (mode === \"quarterly\") {\n const startMonth = hoveredDate.clone().startOf(\"quarter\");\n const endMonth = hoveredDate.clone().endOf(\"quarter\");\n return { from: startMonth, to: endMonth };\n }\n\n if (mode === \"weekly\") {\n const currentDayOfWeek = hoveredDate.day();\n const daysToSubtract = (currentDayOfWeek - firstDayOfWeek + 7) % 7;\n const startOfWeek = hoveredDate\n .clone()\n .subtract(daysToSubtract, \"days\")\n .startOf(\"day\");\n const endOfWeek = startOfWeek.clone().add(6, \"days\");\n\n return { from: startOfWeek, to: endOfWeek };\n }\n\n if (mode === \"custom\" && selected?.from && !selected?.to) {\n const from = selected.from.isBefore(hoveredDate)\n ? selected.from\n : hoveredDate;\n const to = selected.from.isAfter(hoveredDate)\n ? selected.from\n : hoveredDate;\n return { from, to };\n }\n\n return null;\n };\n\n const renderCalendarDates = () => {\n const startOfMonth = currentDate.clone().startOf(\"month\");\n const startDate = startOfMonth.clone().isoWeekday(firstDayOfWeek);\n\n const endDate = startDate.clone().add(6, \"weeks\");\n const date = startDate.clone();\n const dates: React.JSX.Element[] = [];\n\n const hoverRange = getHoverRange();\n\n while (date.isBefore(endDate)) {\n const clonedDate = date.clone();\n const isToday = clonedDate.isSame(today, \"day\");\n const isSelected =\n selected &&\n (clonedDate.isBetween(selected.from, selected.to, \"day\", \"[]\") ||\n clonedDate.isSame(selected.from, \"day\") ||\n clonedDate.isSame(selected.to, \"day\"));\n\n const isHovered =\n hoverRange &&\n (mode === \"weekly\" || mode === \"custom\") &&\n clonedDate.isBetween(hoverRange.from, hoverRange.to, \"day\", \"[]\");\n\n const isDisabled =\n (effectiveDisabledDaysBefore &&\n clonedDate.isBefore(effectiveDisabledDaysBefore, \"day\")) ||\n (effectiveDisabledDaysAfter &&\n clonedDate.isAfter(effectiveDisabledDaysAfter, \"day\")) ||\n disabledDays.includes(clonedDate.day());\n\n const modifierClasses: string[] = [];\n const modifierTitles: string[] = [];\n let titles;\n\n if (modifiers)\n Object.keys(modifiers || {}).forEach((modifier) => {\n const { matched, title } = modifiers[modifier](clonedDate);\n if (matched) {\n modifierClasses.push(modifier);\n if (title) modifierTitles.push(title);\n }\n });\n if (modifierTitles.length) {\n titles = (\n <div key={`title-wrapper-${clonedDate.toString()}`}>\n {modifierTitles.map((title: string, index: number) => (\n <div key={`title-text-${index}`}>{title}</div>\n ))}\n </div>\n );\n }\n\n const isOutside = !clonedDate.isSame(currentDate, \"month\");\n\n dates.push(\n <Tooltip\n title={titles}\n disable={!modifierTitles.length}\n key={clonedDate.toString()}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n >\n <StyledCalendarDate\n className={`${isSelected ? \"selected\" : \"\"} ${\n isToday ? \"today-day\" : \"\"\n }\n ${isDisabled ? \"disabled\" : \"\"} ${\n isHovered ? \"hovered\" : \"\"\n } ${modifierClasses.join(\" \")}\n ${isOutside ? \"outside\" : \"\"}`}\n onClick={() => handleDayClick(clonedDate, modifierClasses)}\n onMouseEnter={\n mode === \"weekly\" || mode === \"custom\"\n ? () => setHoveredDate(clonedDate)\n : undefined\n }\n onMouseLeave={\n mode === \"weekly\" || mode === \"custom\"\n ? () => setHoveredDate(null)\n : undefined\n }\n >\n {clonedDate.date()}\n </StyledCalendarDate>\n </Tooltip>\n );\n\n date.add(1, \"day\");\n }\n\n return dates;\n };\n\n const renderYearSelect = () => {\n const years = Array.from({ length: 200 }, (_, i) => 1900 + i);\n return (\n <StyledYearSelect>\n {years.map((year) => {\n const isSelected =\n selected &&\n ((selected?.to &&\n year >= selected.from.year() &&\n year <= selected.to.year()) ||\n year === selected.from.year() ||\n (selected?.to && year === selected.to.year()));\n\n const isDisabledYear =\n (disabledDaysBefore && year < disabledDaysBefore.year()) ||\n (disabledDaysAfter && year > disabledDaysAfter.year());\n\n return (\n <StyledYearOption\n key={year}\n ref={year === currentDate.year() ? selectedYearRef : null}\n className={`${isSelected ? \"selected\" : \"\"} ${\n year === today.year() ? \"today-year\" : \"\"\n } ${isDisabledYear ? \"disabled\" : \"\"}`}\n onClick={() => handleYearSelect(year)}\n >\n {year}\n </StyledYearOption>\n );\n })}\n </StyledYearSelect>\n );\n };\n\n const renderMonthSelect = () => {\n const months = moment.months();\n const hoverRange = getHoverRange();\n\n return (\n <StyledMonthSelect>\n {months.map((month, index) => {\n const monthDate = currentDate.clone().month(index);\n\n const isSelected =\n selected &&\n (monthDate.isBetween(selected.from, selected.to, \"month\", \"[]\") ||\n monthDate.isSame(selected.from, \"month\") ||\n monthDate.isSame(selected.to, \"month\"));\n\n const isDisabledMonth =\n (disabledDaysBefore &&\n monthDate.isBefore(disabledDaysBefore, \"month\")) ||\n (disabledDaysAfter &&\n monthDate.isAfter(disabledDaysAfter, \"month\"));\n\n const isHoveredQuarter =\n hoverRange &&\n mode === \"quarterly\" &&\n monthDate.isBetween(hoverRange.from, hoverRange.to, \"month\", \"[]\");\n\n return (\n <StyledMonthOption\n key={month}\n className={`${isSelected ? \"selected\" : \"\"} ${\n index === today.month() && currentDate.year() === today.year()\n ? \"today-month\"\n : \"\"\n } ${isDisabledMonth ? \"disabled\" : \"\"} ${\n isHoveredQuarter ? \"hovered\" : \"\"\n }`}\n onClick={() => handleMonthSelect(index)}\n onMouseEnter={\n mode === \"quarterly\"\n ? () => setHoveredDate(monthDate)\n : undefined\n }\n onMouseLeave={\n mode === \"quarterly\" ? () => setHoveredDate(null) : undefined\n }\n >\n {month.substring(0, 3)}\n </StyledMonthOption>\n );\n })}\n </StyledMonthSelect>\n );\n };\n\n const captionText = useMemo(() => {\n const isCurrentYear = currentDate.isSame(today, \"year\");\n\n return !isMonthSelectOpen && !isYearSelectOpen\n ? `${currentDate.format(\"MMMM\")}${\n isCurrentYear ? \"\" : ` ${currentDate.format(\"YYYY\")}`\n }`\n : currentDate.format(\"YYYY\");\n }, [currentDate, isMonthSelectOpen, isYearSelectOpen, today]);\n\n const handleClear = useCallback(() => {\n if (typeof onClear === \"function\") onClear();\n handleSelection(undefined);\n }, [handleSelection, onClear]);\n\n const handleClose = useCallback(() => {\n if (mode === \"custom\" && instant && selected) {\n setSelected({\n from: moment.utc(selected?.from),\n to: selected?.to\n ? moment.utc(selected?.to)\n : moment.utc(selected?.from),\n });\n }\n if (\n instant &&\n onSave &&\n mode === \"custom\" &&\n selected &&\n (!selected?.from.isSame(\n moment.utc(Number(defaultSelected?.from) * 1000)\n ) ||\n !selected?.to?.isSame(moment.utc(Number(defaultSelected?.to) * 1000)))\n ) {\n onSave({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n }\n if (mode === \"custom\" && instant && !selected && onSave) {\n onSave(undefined);\n }\n setCurrentDate(\n defaultSelected?.from\n ? toMoment(defaultSelected.from)\n : month\n ? toMoment(month)\n : moment.utc()\n );\n setTargetDate(\n defaultSelected?.from\n ? toMoment(defaultSelected.from)\n : month\n ? toMoment(month)\n : moment.utc()\n );\n setSelected(\n defaultSelected?.from\n ? {\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n }\n : null\n );\n toggleCalendar();\n setIsYearSelectOpen(false);\n setIsMonthSelectOpen(mode === \"monthly\" || mode === \"quarterly\");\n setMonthTransitionDirection(null);\n if (typeof onClose === \"function\") onClose();\n }, [\n defaultSelected,\n instant,\n mode,\n month,\n onClose,\n onSave,\n selected,\n toggleCalendar,\n ]);\n\n const handleBeforeClose = useCallback(() => {\n let shouldClose = true;\n if (!target || !enableConfirmModal || instant || required) {\n shouldClose = true;\n }\n if (\n target &&\n enableConfirmModal &&\n !instant &&\n !required &&\n ((selected && !defaultSelected) ||\n (!selected && defaultSelected) ||\n (selected?.from &&\n defaultSelected?.from &&\n !selected.from.isSame(toMoment(defaultSelected.from))) ||\n (selected?.to &&\n defaultSelected?.to &&\n !selected.to.isSame(toMoment(defaultSelected.to))))\n ) {\n shouldClose = false;\n setShowDiscardModal(true);\n }\n if (shouldClose) handleClose();\n return shouldClose;\n }, [\n defaultSelected,\n enableConfirmModal,\n handleClose,\n instant,\n required,\n selected,\n target,\n ]);\n\n const Wrapper = target ? Menu : \"div\";\n\n const handleCaptionClick = useCallback(() => {\n isMonthSelectOpen && !disableYearPicker\n ? toggleYearSelect()\n : toggleMonthSelect();\n }, [\n disableYearPicker,\n isMonthSelectOpen,\n toggleMonthSelect,\n toggleYearSelect,\n ]);\n\n const handleSaveDiscardModal = useCallback(() => {\n if (selected) {\n if (onChange) {\n onChange({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n }\n if (onSave) {\n onSave({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n }\n } else {\n if (onChange) onChange(undefined);\n if (onSave) onSave(undefined);\n }\n setShowDiscardModal(false);\n if (target) {\n setIsOpen(false);\n if (onCalendarToggle) onCalendarToggle(false);\n }\n }, [selected, target, onChange, onSave, onCalendarToggle]);\n\n const handleDiscardModal = useCallback(() => {\n setSelected(\n defaultSelected?.from\n ? {\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n }\n : null\n );\n setShowDiscardModal(false);\n if (target) {\n setIsOpen(false);\n if (onCalendarToggle) onCalendarToggle(false);\n }\n }, [defaultSelected?.from, defaultSelected?.to, onCalendarToggle, target]);\n\n const wrapperProps = target\n ? {\n className: \"c-date-picker--calendar\",\n target,\n onBeforeClose: handleBeforeClose,\n onClose: handleClose,\n open: isOpen,\n active: isOpen,\n onOpen: toggleCalendar,\n position,\n menuClassName,\n popperClassName,\n backgroundElementClass,\n }\n : { className: \"c-date-picker--calendar\" };\n\n useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"ArrowRight\") {\n handleMonthChange(\"next\");\n } else if (event.key === \"ArrowLeft\") {\n handleMonthChange(\"prev\");\n } else if (event.key === \"ArrowUp\") {\n handleYearChange(\"next\");\n } else if (event.key === \"ArrowDown\") {\n handleYearChange(\"prev\");\n }\n };\n\n if (isOpen) {\n window.addEventListener(\"keydown\", handleKeyDown);\n } else {\n window.removeEventListener(\"keydown\", handleKeyDown);\n }\n\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [isOpen, handleMonthChange, handleYearChange]);\n\n const saveIsDisabled = () => {\n if (!target) return false;\n if (!defaultSelected && !selected) {\n return true;\n }\n if (\n defaultSelected &&\n selected &&\n defaultSelected.from &&\n selected.from.isSame(toMoment(defaultSelected.from)) &&\n defaultSelected.to &&\n selected.to &&\n selected.to.isSame(toMoment(defaultSelected.to))\n ) {\n return true;\n }\n return false;\n };\n\n return (\n <StyledDatePickerWrapper ref={datePickerRef}>\n <Wrapper {...wrapperProps}>\n <StyledDatePickerContainerInner>\n <StyledCalendarHeader>\n {isYearSelectOpen ? null : (\n <IconButton\n onClick={() => handleMonthChange(\"prev\")}\n variant=\"text gray\"\n size=\"small\"\n >\n <ArrowLeftIcon />\n </IconButton>\n )}\n <StyledCaption\n className={`${animationClass} ${\n isYearSelectOpen ? \"year-caption\" : \"\"\n }`}\n key={isMonthSelectOpen ? currentDate.year() : currentDate.month()}\n onClick={handleCaptionClick}\n onAnimationEnd={onAnimationEnd}\n >\n {captionText}\n </StyledCaption>\n {isYearSelectOpen ? null : (\n <IconButton\n onClick={() => handleMonthChange(\"next\")}\n variant=\"text gray\"\n size=\"small\"\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </StyledCalendarHeader>\n <StyledCalendarSelector>\n {isYearSelectOpen ? (\n renderYearSelect()\n ) : isMonthSelectOpen ? (\n <StyledMonthSelector\n className={animationClass}\n key={currentDate.year()}\n onAnimationEnd={onAnimationEnd}\n >\n {renderMonthSelect()}\n </StyledMonthSelector>\n ) : (\n <>\n <StyledDaysOfWeek>{renderDaysOfWeek()}</StyledDaysOfWeek>\n <StyledCalendarDates\n className={animationClass}\n key={currentDate.month()}\n >\n {renderCalendarDates()}\n </StyledCalendarDates>\n </>\n )}\n </StyledCalendarSelector>\n {(target || showControls) &&\n (!instant ? (\n <StyledControls>\n <StyledControlsLeft>\n <Button\n size=\"small\"\n variant=\"primary\"\n onClick={handleSave}\n disabled={saveIsDisabled()}\n >\n {saveLabel}\n </Button>\n <Tooltip\n title={cancelLabel}\n popperTooltipStyle={{ zIndex: 1301 }}\n >\n <IconButton\n size=\"small\"\n variant=\"text gray\"\n onClick={handleBeforeClose}\n >\n <CancelCrossIcon />\n </IconButton>\n </Tooltip>\n </StyledControlsLeft>\n {!required ? (\n <Button\n size=\"small\"\n onClick={handleClear}\n variant=\"text gray\"\n >\n {clearLabel}\n </Button>\n ) : null}\n </StyledControls>\n ) : !required ? (\n <StyledControls>\n <StyledClearInstantButton\n size=\"small\"\n onClick={handleClear}\n variant=\"text gray\"\n >\n {clearLabel}\n </StyledClearInstantButton>\n </StyledControls>\n ) : null)}\n </StyledDatePickerContainerInner>\n </Wrapper>\n {!instant && target && !required && enableConfirmModal ? (\n <StyledConfirmDialog\n className=\"modal-select-date\"\n open={showDiscardModal}\n onCancel={handleDiscardModal}\n onConfirm={handleSaveDiscardModal}\n dialogTitle={modalTitle}\n dialogContent={modalDescription}\n cancelBtnText={modalCancelBtnText}\n confirmBtnText={modalSaveBtnText}\n />\n ) : null}\n </StyledDatePickerWrapper>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -137,6 +137,10 @@ var Select = exports.Select = function Select(_ref) {
|
|
|
137
137
|
onSelectOpen();
|
|
138
138
|
}
|
|
139
139
|
}, [onSelectOpen]);
|
|
140
|
+
var onPopperOpen = (0, _react.useCallback)(function () {
|
|
141
|
+
var _elementRef$current;
|
|
142
|
+
elementRef === null || elementRef === void 0 || (_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 || _elementRef$current.focus();
|
|
143
|
+
}, []);
|
|
140
144
|
var props = (0, _react.useMemo)(function () {
|
|
141
145
|
if (target) {
|
|
142
146
|
return {
|
|
@@ -147,16 +151,13 @@ var Select = exports.Select = function Select(_ref) {
|
|
|
147
151
|
mode,
|
|
148
152
|
open,
|
|
149
153
|
position,
|
|
150
|
-
onPopperOpen
|
|
151
|
-
var _elementRef$current;
|
|
152
|
-
return elementRef === null || elementRef === void 0 || (_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.focus();
|
|
153
|
-
}
|
|
154
|
+
onPopperOpen
|
|
154
155
|
};
|
|
155
156
|
}
|
|
156
157
|
return {
|
|
157
158
|
className: (0, _classnames.default)("c-select", selectClassName)
|
|
158
159
|
};
|
|
159
|
-
}, [target, selectClassName, onClose, onOpen, mode, open, position]);
|
|
160
|
+
}, [target, selectClassName, onClose, onOpen, mode, open, position, onPopperOpen]);
|
|
160
161
|
var handleEmptyAction = (0, _react.useCallback)(function (value) {
|
|
161
162
|
emptyAction(value);
|
|
162
163
|
if (forceCloseMenu) {
|