@activecollab/components 2.0.296 → 2.0.297

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.
@@ -1 +1 @@
1
- {"version":3,"file":"DateStepper.js","names":["React","useCallback","useMemo","useState","useEffect","classNames","moment","StyledButton","StyledButtonGroup","StyledDiv","StyledSpan","StyledControl","DatePicker","ArrowRightIcon","ArrowLeftIcon","DateStepper","_ref","step","formatCallback","onChange","from","to","onBack","onForward","minValue","maxValue","className","period","withDatePicker","defaultMonth","enableYearPicker","position","popperClassName","mode","alwaysShowDate","disableArrows","fromDate","setFromDate","utc","toDate","setToDate","getDatesByPeriod","interval","date","add","clone","startOf","endOf","effectiveToDate","daysDiff","diff","daysToMove","newFromDate","newToDate","getDateFormatted","actualYear","year","showWeekOrCustomDateFormat","start","end","endDate","format","startDate","quarter","datePickerMode","onDatePickerChange","dates","console","log","fromDateTemp","Number","toDateTemp","isMoment","onToggleDatePicker","open","isAfterMaxDate","isSameOrBefore","isBeforeMinDate","isSameOrAfter","onRightClickHandler","newFrom","newTo","onLeftClickHandler","dateStepperWidth","fromDay","toDay","range","minWidth","isDisabled","day","dayFormat","isBefore","isAfter","modifiers","disabled","matched","title","nonWorkingDay","createElement","type","variant","onClick","$isTargetable","$isRounded","$mode","$alwaysShowDate","style","month","onCalendarToggle","target","$step","selected","unix","firstDayOfWeek","disabledDaysAfter","disabledDaysBefore","disableYearPicker","key","instant","required","displayName"],"sources":["../../../../../src/components/Steppers/DateStepper/DateStepper.tsx"],"sourcesContent":["import React, { FC, useCallback, useMemo, useState, useEffect } from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classNames from \"classnames\";\nimport { Moment } from \"moment\";\nimport moment from \"moment-timezone\";\n\nimport {\n StyledButton,\n StyledButtonGroup,\n StyledDiv,\n StyledSpan,\n StyledControl,\n} from \"./Styles\";\nimport { DatePicker, TimestampDateRange } from \"../../DatePicker/DatePicker\";\nimport { ArrowRightIcon } from \"../../Icons\";\nimport ArrowLeftIcon from \"../../Icons/collection/ArrowLeft\";\nimport { InputMode } from \"../../Input/types\";\n\nexport interface IDateStepperProps {\n /** One of the possible steps for this component */\n step: \"daily\" | \"weekly\" | \"monthly\" | \"quarterly\" | \"yearly\" | \"custom\";\n /** Callback function that will be called after the changed range */\n onChange?: (from: Date, to: Date | null) => void;\n /** Start date of the range */\n from: Moment | string;\n /** End date of the range */\n to?: Moment | string;\n /** Callback function that will format the text label */\n formatCallback?: (from: string | Moment, to: string | Moment) => string;\n /** Default month */\n defaultMonth?: Moment;\n /** Callback function onBack */\n onBack?: (from: Date, to: Date) => void;\n /** Callback function onForward */\n onForward?: (from: Date, to: Date) => void;\n /** Min date */\n minValue?: Moment;\n /** Max fate */\n maxValue?: Moment;\n /** html class */\n className?: string;\n /** Period for calculating week (isoWeek) */\n period?: \"week\" | \"isoWeek\";\n /** Classes for datePicker */\n datePickerClass?: string;\n /** Show datePicker in the middle button */\n withDatePicker?: boolean;\n /** Popper class name*/\n popperClassName?: string;\n /** DatePicker menu position */\n position?: Placement;\n /** Enable year picker in DatePicker */\n enableYearPicker?: boolean;\n /** conditional border & button variant styles */\n mode?: InputMode;\n /** preserve date on smaller screens */\n alwaysShowDate?: boolean;\n /** Hide navigation arrows */\n disableArrows?: boolean;\n}\n\n/**\n * This component allow you to select date range. It accepts two parameters \"from\" and \"to\" as valid format\n * onChange and onBack and onForward it will return \"from: Date\" and \"to: Date\" as function arguments\n */\n\nexport const DateStepper: FC<IDateStepperProps> = ({\n step,\n formatCallback,\n onChange,\n from,\n to,\n onBack,\n onForward,\n minValue,\n maxValue,\n className,\n period = \"week\",\n withDatePicker = true,\n defaultMonth = moment(),\n enableYearPicker,\n position = \"bottom\",\n popperClassName,\n mode = \"outlined\",\n alwaysShowDate = false,\n disableArrows = false,\n}) => {\n const [fromDate, setFromDate] = useState<Moment>(moment.utc(from));\n const [toDate, setToDate] = useState<Moment>(to ? moment.utc(to) : null);\n\n const getDatesByPeriod = useCallback(\n (interval: number): Moment[] => {\n const date = fromDate ? fromDate : moment();\n if (step === \"daily\") {\n date.add(interval, \"days\");\n return [date, date.clone()];\n } else if (step === \"weekly\") {\n date.add(interval, \"weeks\");\n return [date.clone().startOf(period), date.clone().endOf(period)];\n } else if (step === \"monthly\") {\n date.add(interval, \"months\");\n return [date.clone().startOf(\"month\"), date.clone().endOf(\"month\")];\n } else if (step === \"quarterly\") {\n date.add(interval, \"quarters\");\n return [date.clone().startOf(\"quarter\"), date.clone().endOf(\"quarter\")];\n } else if (step === \"yearly\") {\n date.add(interval, \"years\");\n return [date.clone().startOf(\"year\"), date.clone().endOf(\"year\")];\n } else if (step === \"custom\") {\n // For range step, calculate N days based on current selection\n // Handle case where toDate is undefined\n const effectiveToDate = !toDate ? fromDate : toDate;\n\n const daysDiff = effectiveToDate.diff(fromDate, \"days\");\n\n // If same day selected (daysDiff = 0), move by 1 day\n const daysToMove = daysDiff === 0 ? 1 : daysDiff + 1;\n const newFromDate = fromDate.clone().add(interval * daysToMove, \"days\");\n const newToDate =\n daysDiff === 0\n ? newFromDate.clone()\n : effectiveToDate.clone().add(interval * daysToMove, \"days\");\n\n return [newFromDate, newToDate];\n }\n return [date, date];\n },\n [fromDate, toDate, period, step]\n );\n\n const getDateFormatted = useMemo(() => {\n if (formatCallback) {\n return formatCallback(fromDate, toDate ? toDate : fromDate);\n }\n\n const actualYear = moment().year();\n\n const showWeekOrCustomDateFormat = (start, end): string => {\n const endDate = end ? end : start;\n if (start.year() === actualYear && end.year() === actualYear) {\n return (\n start.utc().format(\"MMM DD\") + \" - \" + endDate.utc().format(\"MMM DD\")\n );\n } else {\n return (\n start.utc().format(\"MMM DD YYYY\") +\n \" - \" +\n endDate.utc().format(\"MMM DD YYYY\")\n );\n }\n };\n\n if (step === \"daily\") {\n if (fromDate.year() === actualYear) {\n return fromDate.utc().format(\"MMM DD\");\n }\n return fromDate.utc().format(\"MMM DD YYYY\");\n } else if (step === \"weekly\") {\n const startDate = fromDate.clone().utc().startOf(period);\n const endDate = startDate.clone().utc().endOf(period);\n return showWeekOrCustomDateFormat(startDate, endDate);\n } else if (step === \"monthly\") {\n return fromDate.utc().format(\"MMM YYYY\");\n } else if (step === \"quarterly\") {\n return `Q${fromDate.utc().quarter()}/${fromDate.utc().format(\"YYYY\")}`;\n } else if (step === \"yearly\") {\n return fromDate.utc().format(\"YYYY\");\n } else if (step === \"custom\") {\n if (!toDate) {\n if (fromDate.year() === actualYear) {\n return fromDate.utc().format(\"MMM DD\");\n }\n return fromDate.utc().format(\"MMM DD YYYY\");\n }\n // If from and to are the same date, show only once\n if (fromDate.format(\"YYYY-MM-DD\") === toDate.format(\"YYYY-MM-DD\")) {\n if (fromDate.year() === actualYear) {\n return fromDate.utc().format(\"MMM DD\");\n }\n return fromDate.utc().format(\"MMM DD YYYY\");\n }\n return showWeekOrCustomDateFormat(fromDate, toDate);\n }\n\n return \"\";\n }, [fromDate, toDate, step, formatCallback, period]);\n\n const datePickerMode = useMemo(() => {\n if (step === \"custom\") return \"custom\";\n if (step === \"yearly\") return \"custom\";\n return step;\n }, [step]);\n\n const onDatePickerChange = useCallback(\n (dates?: TimestampDateRange) => {\n console.log(\"dates: \", dates);\n const fromDateTemp: Moment = moment.utc(Number(dates?.from) * 1000);\n const toDateTemp: Moment = dates?.to\n ? moment.utc(Number(dates?.to) * 1000)\n : null;\n\n setFromDate(fromDateTemp);\n setToDate(toDateTemp);\n\n if (\n onChange &&\n step !== \"custom\" &&\n moment.isMoment(fromDateTemp) &&\n moment.isMoment(toDateTemp)\n ) {\n onChange(fromDateTemp.toDate(), toDateTemp.toDate());\n }\n },\n [onChange, step]\n );\n\n const onToggleDatePicker = useCallback(\n (open?: boolean) => {\n if (step === \"custom\" && !open) {\n const toDateTemp: Moment = toDate ? toDate : fromDate;\n setToDate(toDateTemp);\n onChange?.(fromDate.toDate(), toDateTemp.toDate());\n }\n },\n [fromDate, onChange, step, toDate]\n );\n\n const isAfterMaxDate = useMemo(() => {\n return (\n moment.isMoment(maxValue) &&\n toDate &&\n moment(moment.utc(maxValue).format(\"YYYY-MM-DD\")).isSameOrBefore(\n toDate.utc().format(\"YYYY-MM-DD\")\n )\n );\n }, [maxValue, toDate]);\n\n const isBeforeMinDate = useMemo(() => {\n return (\n moment.isMoment(minValue) &&\n toDate &&\n moment\n .utc(moment.utc(minValue).format(\"YYYY-MM-DD\"))\n .isSameOrAfter(toDate.utc().format(\"YYYY-MM-DD\"))\n );\n }, [minValue, toDate]);\n\n useEffect(() => {\n if (isBeforeMinDate) {\n if (step === \"daily\") {\n setFromDate(moment.utc(minValue));\n setToDate(moment.utc(minValue));\n }\n }\n if (isAfterMaxDate) {\n if (step === \"daily\") {\n setFromDate(moment.utc(maxValue));\n setToDate(moment.utc(maxValue));\n }\n }\n }, [step, minValue, maxValue, isBeforeMinDate, isAfterMaxDate]);\n\n const onRightClickHandler = useCallback(() => {\n if (isAfterMaxDate) {\n return;\n }\n\n const [newFrom, newTo] = getDatesByPeriod(1);\n setFromDate(moment.utc(newFrom));\n setToDate(moment.utc(newTo));\n\n if (onChange) {\n onChange(moment.utc(newFrom).toDate(), moment.utc(newTo).toDate());\n }\n\n if (onForward) {\n onForward(moment.utc(newFrom).toDate(), moment.utc(newTo).toDate());\n }\n }, [isAfterMaxDate, getDatesByPeriod, onChange, onForward]);\n\n const onLeftClickHandler = useCallback(() => {\n if (isBeforeMinDate) {\n return;\n }\n\n const [newFrom, newTo] = getDatesByPeriod(-1);\n setFromDate(moment.utc(newFrom));\n setToDate(moment.utc(newTo));\n\n if (onChange) {\n onChange(moment.utc(newFrom).toDate(), moment.utc(newTo).toDate());\n }\n if (onBack) {\n onBack(moment.utc(newFrom).toDate(), moment.utc(newTo).toDate());\n }\n }, [isBeforeMinDate, getDatesByPeriod, onChange, onBack]);\n\n useEffect(() => {\n setFromDate(moment.utc(from));\n setToDate(to ? moment.utc(to) : null);\n }, [from, to]);\n\n const dateStepperWidth = (\n fromDay: Moment,\n toDay: Moment | undefined,\n range: string\n ): { minWidth: string } => {\n if (range === \"range\") {\n return { minWidth: \"102px\" };\n }\n if (\n fromDay.utc().year() !== moment.utc().year() ||\n (!!toDay && toDay?.utc().year() !== moment.utc().year())\n ) {\n switch (range) {\n case \"daily\":\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"232px\" };\n }\n }\n switch (range) {\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"182px\" };\n }\n\n return { minWidth: \"102px\" };\n };\n const isDisabled = useCallback(\n (day: Moment): boolean => {\n const dayFormat = moment.utc(day).format(\"YYYY-MM-DD\");\n\n const isBefore =\n moment.isMoment(maxValue) &&\n moment(moment.utc(maxValue).format(\"YYYY-MM-DD\")).isBefore(dayFormat);\n const isAfter =\n moment.isMoment(minValue) &&\n moment(moment.utc(minValue).format(\"YYYY-MM-DD\")).isAfter(dayFormat);\n\n return isBefore || isAfter;\n },\n [maxValue, minValue]\n );\n\n const modifiers = useMemo(\n () => ({\n disabled: (day: Moment) => ({ matched: isDisabled(day), title: null }),\n nonWorkingDay: (day: Moment) => ({\n matched: isDisabled(day),\n title: null,\n }),\n }),\n [isDisabled]\n );\n\n return (\n <StyledButtonGroup className={classNames(\"c-date-stepper\", className)}>\n {!disableArrows ? (\n <StyledControl\n type=\"button\"\n variant={mode === \"flat\" ? \"text gray\" : \"secondary\"}\n onClick={onLeftClickHandler}\n disabled={isBeforeMinDate}\n >\n <ArrowLeftIcon />\n </StyledControl>\n ) : null}\n <StyledDiv\n $isTargetable={step === \"yearly\" || !withDatePicker}\n $isRounded={disableArrows}\n $mode={mode}\n $alwaysShowDate={alwaysShowDate}\n style={dateStepperWidth(fromDate, toDate, step)}\n >\n {withDatePicker && step !== \"yearly\" ? (\n <DatePicker\n month={defaultMonth}\n onCalendarToggle={onToggleDatePicker}\n target={\n <StyledButton $step={step} type=\"button\">\n {getDateFormatted}\n </StyledButton>\n }\n mode={datePickerMode}\n selected={{\n from: moment.utc(fromDate).unix(),\n to: toDate ? moment.utc(toDate).unix() : null,\n }}\n onChange={onDatePickerChange}\n firstDayOfWeek={period === \"week\" ? 0 : 1}\n modifiers={modifiers}\n disabledDaysAfter={maxValue}\n disabledDaysBefore={minValue}\n disableYearPicker={!enableYearPicker}\n popperClassName={popperClassName}\n position={position}\n key={datePickerMode}\n instant\n required\n />\n ) : (\n <StyledSpan>{getDateFormatted}</StyledSpan>\n )}\n </StyledDiv>\n {!disableArrows ? (\n <StyledControl\n type=\"button\"\n variant={mode === \"flat\" ? \"text gray\" : \"secondary\"}\n onClick={onRightClickHandler}\n disabled={isAfterMaxDate}\n >\n <ArrowRightIcon />\n </StyledControl>\n ) : null}\n </StyledButtonGroup>\n );\n};\n\nDateStepper.displayName = \"DateStepper\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DateStepper.js","names":["React","useCallback","useMemo","useState","useEffect","classNames","moment","StyledButton","StyledButtonGroup","StyledDiv","StyledSpan","StyledControl","DatePicker","ArrowRightIcon","ArrowLeftIcon","DateStepper","_ref","step","formatCallback","onChange","from","to","onBack","onForward","minValue","maxValue","className","period","withDatePicker","defaultMonth","enableYearPicker","position","popperClassName","mode","alwaysShowDate","disableArrows","maxRange","fromDate","setFromDate","utc","toDate","setToDate","getDatesByPeriod","interval","date","add","clone","startOf","endOf","effectiveToDate","daysDiff","diff","daysToMove","newFromDate","newToDate","getDateFormatted","actualYear","year","showWeekOrCustomDateFormat","start","end","endDate","format","startDate","quarter","datePickerMode","onDatePickerChange","dates","console","log","fromDateTemp","Number","toDateTemp","isMoment","onToggleDatePicker","open","isAfterMaxDate","isSameOrBefore","isBeforeMinDate","isSameOrAfter","onRightClickHandler","newFrom","newTo","onLeftClickHandler","dateStepperWidth","fromDay","toDay","range","minWidth","isDisabled","day","dayFormat","isBefore","isAfter","modifiers","disabled","matched","title","nonWorkingDay","createElement","type","variant","onClick","$isTargetable","$isRounded","$mode","$alwaysShowDate","style","month","onCalendarToggle","target","$step","selected","unix","firstDayOfWeek","disabledDaysAfter","disabledDaysBefore","disableYearPicker","key","instant","required","displayName"],"sources":["../../../../../src/components/Steppers/DateStepper/DateStepper.tsx"],"sourcesContent":["import React, { FC, useCallback, useMemo, useState, useEffect } from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classNames from \"classnames\";\nimport { Moment } from \"moment\";\nimport moment from \"moment-timezone\";\n\nimport {\n StyledButton,\n StyledButtonGroup,\n StyledDiv,\n StyledSpan,\n StyledControl,\n} from \"./Styles\";\nimport { DatePicker, TimestampDateRange } from \"../../DatePicker/DatePicker\";\nimport { ArrowRightIcon } from \"../../Icons\";\nimport ArrowLeftIcon from \"../../Icons/collection/ArrowLeft\";\nimport { InputMode } from \"../../Input/types\";\n\nexport interface IDateStepperProps {\n /** One of the possible steps for this component */\n step: \"daily\" | \"weekly\" | \"monthly\" | \"quarterly\" | \"yearly\" | \"custom\";\n /** Callback function that will be called after the changed range */\n onChange?: (from: Date, to: Date | null) => void;\n /** Start date of the range */\n from: Moment | string;\n /** End date of the range */\n to?: Moment | string;\n /** Callback function that will format the text label */\n formatCallback?: (from: string | Moment, to: string | Moment) => string;\n /** Default month */\n defaultMonth?: Moment;\n /** Callback function onBack */\n onBack?: (from: Date, to: Date) => void;\n /** Callback function onForward */\n onForward?: (from: Date, to: Date) => void;\n /** Min date */\n minValue?: Moment;\n /** Max fate */\n maxValue?: Moment;\n /** html class */\n className?: string;\n /** Period for calculating week (isoWeek) */\n period?: \"week\" | \"isoWeek\";\n /** Classes for datePicker */\n datePickerClass?: string;\n /** Show datePicker in the middle button */\n withDatePicker?: boolean;\n /** Popper class name*/\n popperClassName?: string;\n /** DatePicker menu position */\n position?: Placement;\n /** Enable year picker in DatePicker */\n enableYearPicker?: boolean;\n /** conditional border & button variant styles */\n mode?: InputMode;\n /** preserve date on smaller screens */\n alwaysShowDate?: boolean;\n /** Hide navigation arrows */\n disableArrows?: boolean;\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}\n\n/**\n * This component allow you to select date range. It accepts two parameters \"from\" and \"to\" as valid format\n * onChange and onBack and onForward it will return \"from: Date\" and \"to: Date\" as function arguments\n */\n\nexport const DateStepper: FC<IDateStepperProps> = ({\n step,\n formatCallback,\n onChange,\n from,\n to,\n onBack,\n onForward,\n minValue,\n maxValue,\n className,\n period = \"week\",\n withDatePicker = true,\n defaultMonth = moment(),\n enableYearPicker,\n position = \"bottom\",\n popperClassName,\n mode = \"outlined\",\n alwaysShowDate = false,\n disableArrows = false,\n maxRange,\n}) => {\n const [fromDate, setFromDate] = useState<Moment>(moment.utc(from));\n const [toDate, setToDate] = useState<Moment>(to ? moment.utc(to) : null);\n\n const getDatesByPeriod = useCallback(\n (interval: number): Moment[] => {\n const date = fromDate ? fromDate : moment();\n if (step === \"daily\") {\n date.add(interval, \"days\");\n return [date, date.clone()];\n } else if (step === \"weekly\") {\n date.add(interval, \"weeks\");\n return [date.clone().startOf(period), date.clone().endOf(period)];\n } else if (step === \"monthly\") {\n date.add(interval, \"months\");\n return [date.clone().startOf(\"month\"), date.clone().endOf(\"month\")];\n } else if (step === \"quarterly\") {\n date.add(interval, \"quarters\");\n return [date.clone().startOf(\"quarter\"), date.clone().endOf(\"quarter\")];\n } else if (step === \"yearly\") {\n date.add(interval, \"years\");\n return [date.clone().startOf(\"year\"), date.clone().endOf(\"year\")];\n } else if (step === \"custom\") {\n // For range step, calculate N days based on current selection\n // Handle case where toDate is undefined\n const effectiveToDate = !toDate ? fromDate : toDate;\n\n const daysDiff = effectiveToDate.diff(fromDate, \"days\");\n\n // If same day selected (daysDiff = 0), move by 1 day\n const daysToMove = daysDiff === 0 ? 1 : daysDiff + 1;\n const newFromDate = fromDate.clone().add(interval * daysToMove, \"days\");\n const newToDate =\n daysDiff === 0\n ? newFromDate.clone()\n : effectiveToDate.clone().add(interval * daysToMove, \"days\");\n\n return [newFromDate, newToDate];\n }\n return [date, date];\n },\n [fromDate, toDate, period, step]\n );\n\n const getDateFormatted = useMemo(() => {\n if (formatCallback) {\n return formatCallback(fromDate, toDate ? toDate : fromDate);\n }\n\n const actualYear = moment().year();\n\n const showWeekOrCustomDateFormat = (start, end): string => {\n const endDate = end ? end : start;\n if (start.year() === actualYear && end.year() === actualYear) {\n return (\n start.utc().format(\"MMM DD\") + \" - \" + endDate.utc().format(\"MMM DD\")\n );\n } else {\n return (\n start.utc().format(\"MMM DD YYYY\") +\n \" - \" +\n endDate.utc().format(\"MMM DD YYYY\")\n );\n }\n };\n\n if (step === \"daily\") {\n if (fromDate.year() === actualYear) {\n return fromDate.utc().format(\"MMM DD\");\n }\n return fromDate.utc().format(\"MMM DD YYYY\");\n } else if (step === \"weekly\") {\n const startDate = fromDate.clone().utc().startOf(period);\n const endDate = startDate.clone().utc().endOf(period);\n return showWeekOrCustomDateFormat(startDate, endDate);\n } else if (step === \"monthly\") {\n return fromDate.utc().format(\"MMM YYYY\");\n } else if (step === \"quarterly\") {\n return `Q${fromDate.utc().quarter()}/${fromDate.utc().format(\"YYYY\")}`;\n } else if (step === \"yearly\") {\n return fromDate.utc().format(\"YYYY\");\n } else if (step === \"custom\") {\n if (!toDate) {\n if (fromDate.year() === actualYear) {\n return fromDate.utc().format(\"MMM DD\");\n }\n return fromDate.utc().format(\"MMM DD YYYY\");\n }\n // If from and to are the same date, show only once\n if (fromDate.format(\"YYYY-MM-DD\") === toDate.format(\"YYYY-MM-DD\")) {\n if (fromDate.year() === actualYear) {\n return fromDate.utc().format(\"MMM DD\");\n }\n return fromDate.utc().format(\"MMM DD YYYY\");\n }\n return showWeekOrCustomDateFormat(fromDate, toDate);\n }\n\n return \"\";\n }, [fromDate, toDate, step, formatCallback, period]);\n\n const datePickerMode = useMemo(() => {\n if (step === \"custom\") return \"custom\";\n if (step === \"yearly\") return \"custom\";\n return step;\n }, [step]);\n\n const onDatePickerChange = useCallback(\n (dates?: TimestampDateRange) => {\n console.log(\"dates: \", dates);\n const fromDateTemp: Moment = moment.utc(Number(dates?.from) * 1000);\n const toDateTemp: Moment = dates?.to\n ? moment.utc(Number(dates?.to) * 1000)\n : null;\n\n setFromDate(fromDateTemp);\n setToDate(toDateTemp);\n\n if (\n onChange &&\n step !== \"custom\" &&\n moment.isMoment(fromDateTemp) &&\n moment.isMoment(toDateTemp)\n ) {\n onChange(fromDateTemp.toDate(), toDateTemp.toDate());\n }\n },\n [onChange, step]\n );\n\n const onToggleDatePicker = useCallback(\n (open?: boolean) => {\n if (step === \"custom\" && !open) {\n const toDateTemp: Moment = toDate ? toDate : fromDate;\n setToDate(toDateTemp);\n onChange?.(fromDate.toDate(), toDateTemp.toDate());\n }\n },\n [fromDate, onChange, step, toDate]\n );\n\n const isAfterMaxDate = useMemo(() => {\n return (\n moment.isMoment(maxValue) &&\n toDate &&\n moment(moment.utc(maxValue).format(\"YYYY-MM-DD\")).isSameOrBefore(\n toDate.utc().format(\"YYYY-MM-DD\")\n )\n );\n }, [maxValue, toDate]);\n\n const isBeforeMinDate = useMemo(() => {\n return (\n moment.isMoment(minValue) &&\n toDate &&\n moment\n .utc(moment.utc(minValue).format(\"YYYY-MM-DD\"))\n .isSameOrAfter(toDate.utc().format(\"YYYY-MM-DD\"))\n );\n }, [minValue, toDate]);\n\n useEffect(() => {\n if (isBeforeMinDate) {\n if (step === \"daily\") {\n setFromDate(moment.utc(minValue));\n setToDate(moment.utc(minValue));\n }\n }\n if (isAfterMaxDate) {\n if (step === \"daily\") {\n setFromDate(moment.utc(maxValue));\n setToDate(moment.utc(maxValue));\n }\n }\n }, [step, minValue, maxValue, isBeforeMinDate, isAfterMaxDate]);\n\n const onRightClickHandler = useCallback(() => {\n if (isAfterMaxDate) {\n return;\n }\n\n const [newFrom, newTo] = getDatesByPeriod(1);\n setFromDate(moment.utc(newFrom));\n setToDate(moment.utc(newTo));\n\n if (onChange) {\n onChange(moment.utc(newFrom).toDate(), moment.utc(newTo).toDate());\n }\n\n if (onForward) {\n onForward(moment.utc(newFrom).toDate(), moment.utc(newTo).toDate());\n }\n }, [isAfterMaxDate, getDatesByPeriod, onChange, onForward]);\n\n const onLeftClickHandler = useCallback(() => {\n if (isBeforeMinDate) {\n return;\n }\n\n const [newFrom, newTo] = getDatesByPeriod(-1);\n setFromDate(moment.utc(newFrom));\n setToDate(moment.utc(newTo));\n\n if (onChange) {\n onChange(moment.utc(newFrom).toDate(), moment.utc(newTo).toDate());\n }\n if (onBack) {\n onBack(moment.utc(newFrom).toDate(), moment.utc(newTo).toDate());\n }\n }, [isBeforeMinDate, getDatesByPeriod, onChange, onBack]);\n\n useEffect(() => {\n setFromDate(moment.utc(from));\n setToDate(to ? moment.utc(to) : null);\n }, [from, to]);\n\n const dateStepperWidth = (\n fromDay: Moment,\n toDay: Moment | undefined,\n range: string\n ): { minWidth: string } => {\n if (range === \"range\") {\n return { minWidth: \"102px\" };\n }\n if (\n fromDay.utc().year() !== moment.utc().year() ||\n (!!toDay && toDay?.utc().year() !== moment.utc().year())\n ) {\n switch (range) {\n case \"daily\":\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"232px\" };\n }\n }\n switch (range) {\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"182px\" };\n }\n\n return { minWidth: \"102px\" };\n };\n const isDisabled = useCallback(\n (day: Moment): boolean => {\n const dayFormat = moment.utc(day).format(\"YYYY-MM-DD\");\n\n const isBefore =\n moment.isMoment(maxValue) &&\n moment(moment.utc(maxValue).format(\"YYYY-MM-DD\")).isBefore(dayFormat);\n const isAfter =\n moment.isMoment(minValue) &&\n moment(moment.utc(minValue).format(\"YYYY-MM-DD\")).isAfter(dayFormat);\n\n return isBefore || isAfter;\n },\n [maxValue, minValue]\n );\n\n const modifiers = useMemo(\n () => ({\n disabled: (day: Moment) => ({ matched: isDisabled(day), title: null }),\n nonWorkingDay: (day: Moment) => ({\n matched: isDisabled(day),\n title: null,\n }),\n }),\n [isDisabled]\n );\n\n return (\n <StyledButtonGroup className={classNames(\"c-date-stepper\", className)}>\n {!disableArrows ? (\n <StyledControl\n type=\"button\"\n variant={mode === \"flat\" ? \"text gray\" : \"secondary\"}\n onClick={onLeftClickHandler}\n disabled={isBeforeMinDate}\n >\n <ArrowLeftIcon />\n </StyledControl>\n ) : null}\n <StyledDiv\n $isTargetable={step === \"yearly\" || !withDatePicker}\n $isRounded={disableArrows}\n $mode={mode}\n $alwaysShowDate={alwaysShowDate}\n style={dateStepperWidth(fromDate, toDate, step)}\n >\n {withDatePicker && step !== \"yearly\" ? (\n <DatePicker\n month={defaultMonth}\n onCalendarToggle={onToggleDatePicker}\n target={\n <StyledButton $step={step} type=\"button\">\n {getDateFormatted}\n </StyledButton>\n }\n mode={datePickerMode}\n selected={{\n from: moment.utc(fromDate).unix(),\n to: toDate ? moment.utc(toDate).unix() : null,\n }}\n onChange={onDatePickerChange}\n firstDayOfWeek={period === \"week\" ? 0 : 1}\n modifiers={modifiers}\n disabledDaysAfter={maxValue}\n disabledDaysBefore={minValue}\n disableYearPicker={!enableYearPicker}\n popperClassName={popperClassName}\n position={position}\n maxRange={maxRange}\n key={datePickerMode}\n instant\n required\n />\n ) : (\n <StyledSpan>{getDateFormatted}</StyledSpan>\n )}\n </StyledDiv>\n {!disableArrows ? (\n <StyledControl\n type=\"button\"\n variant={mode === \"flat\" ? \"text gray\" : \"secondary\"}\n onClick={onRightClickHandler}\n disabled={isAfterMaxDate}\n >\n <ArrowRightIcon />\n </StyledControl>\n ) : null}\n </StyledButtonGroup>\n );\n};\n\nDateStepper.displayName = \"DateStepper\";\n"],"mappings":"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","ignoreList":[]}
package/dist/index.js CHANGED
@@ -13699,6 +13699,7 @@
13699
13699
  disabledDaysAfter = _ref.disabledDaysAfter,
13700
13700
  _ref$disabled = _ref.disabled,
13701
13701
  disabledDays = _ref$disabled === void 0 ? [] : _ref$disabled,
13702
+ maxRange = _ref.maxRange,
13702
13703
  modifiers = _ref.modifiers,
13703
13704
  disableAnimations = _ref.disableAnimations,
13704
13705
  _ref$firstDayOfWeek = _ref.firstDayOfWeek,
@@ -13795,6 +13796,37 @@
13795
13796
  var today = moment__default["default"].utc(currentDateInTimezone);
13796
13797
  var selectedYearRef = React.useRef(null);
13797
13798
  var datePickerRef = React.useRef(null);
13799
+ React.useEffect(function () {
13800
+ if (maxRange && defaultSelected !== null && defaultSelected !== void 0 && defaultSelected.from && defaultSelected !== null && defaultSelected !== void 0 && defaultSelected.to) {
13801
+ var from = toMoment(defaultSelected.from);
13802
+ var to = toMoment(defaultSelected.to);
13803
+ if (from && to) {
13804
+ var daysDiff = to.diff(from, "days") + 1;
13805
+ if (daysDiff > maxRange) {
13806
+ console.warn("DatePicker: selected range (".concat(daysDiff, " days) exceeds maxRange (").concat(maxRange, ")."));
13807
+ }
13808
+ }
13809
+ }
13810
+ // eslint-disable-next-line react-hooks/exhaustive-deps
13811
+ }, []);
13812
+ var effectiveDisabledDaysBefore = React.useMemo(function () {
13813
+ if (maxRange && mode === "custom" && selected !== null && selected !== void 0 && selected.from && !(selected !== null && selected !== void 0 && selected.to)) {
13814
+ var maxRangeBefore = selected.from.clone().subtract(maxRange - 1, "days");
13815
+ if (!disabledDaysBefore || maxRangeBefore.isAfter(disabledDaysBefore)) {
13816
+ return maxRangeBefore;
13817
+ }
13818
+ }
13819
+ return disabledDaysBefore;
13820
+ }, [maxRange, mode, selected, disabledDaysBefore]);
13821
+ var effectiveDisabledDaysAfter = React.useMemo(function () {
13822
+ if (maxRange && mode === "custom" && selected !== null && selected !== void 0 && selected.from && !(selected !== null && selected !== void 0 && selected.to)) {
13823
+ var maxRangeAfter = selected.from.clone().add(maxRange - 1, "days");
13824
+ if (!disabledDaysAfter || maxRangeAfter.isBefore(disabledDaysAfter)) {
13825
+ return maxRangeAfter;
13826
+ }
13827
+ }
13828
+ return disabledDaysAfter;
13829
+ }, [maxRange, mode, selected, disabledDaysAfter]);
13798
13830
  var handleSelection = React.useCallback(function (range) {
13799
13831
  if (!range) {
13800
13832
  setSelected(null);
@@ -14138,7 +14170,7 @@
14138
14170
  var isToday = clonedDate.isSame(today, "day");
14139
14171
  var isSelected = selected && (clonedDate.isBetween(selected.from, selected.to, "day", "[]") || clonedDate.isSame(selected.from, "day") || clonedDate.isSame(selected.to, "day"));
14140
14172
  var isHovered = hoverRange && (mode === "weekly" || mode === "custom") && clonedDate.isBetween(hoverRange.from, hoverRange.to, "day", "[]");
14141
- var isDisabled = disabledDaysBefore && clonedDate.isBefore(disabledDaysBefore, "day") || disabledDaysAfter && clonedDate.isAfter(disabledDaysAfter, "day") || disabledDays.includes(clonedDate.day());
14173
+ var isDisabled = effectiveDisabledDaysBefore && clonedDate.isBefore(effectiveDisabledDaysBefore, "day") || effectiveDisabledDaysAfter && clonedDate.isAfter(effectiveDisabledDaysAfter, "day") || disabledDays.includes(clonedDate.day());
14142
14174
  var modifierClasses = [];
14143
14175
  var modifierTitles = [];
14144
14176
  var titles;
@@ -14453,7 +14485,8 @@
14453
14485
  _ref$alwaysShowDate = _ref.alwaysShowDate,
14454
14486
  alwaysShowDate = _ref$alwaysShowDate === void 0 ? false : _ref$alwaysShowDate,
14455
14487
  _ref$disableArrows = _ref.disableArrows,
14456
- disableArrows = _ref$disableArrows === void 0 ? false : _ref$disableArrows;
14488
+ disableArrows = _ref$disableArrows === void 0 ? false : _ref$disableArrows,
14489
+ maxRange = _ref.maxRange;
14457
14490
  var _useState = React.useState(moment__default["default"].utc(from)),
14458
14491
  _useState2 = _slicedToArray(_useState, 2),
14459
14492
  fromDate = _useState2[0],
@@ -14709,6 +14742,7 @@
14709
14742
  disableYearPicker: !enableYearPicker,
14710
14743
  popperClassName: popperClassName,
14711
14744
  position: position,
14745
+ maxRange: maxRange,
14712
14746
  key: datePickerMode,
14713
14747
  instant: true,
14714
14748
  required: true
@@ -21812,7 +21846,8 @@
21812
21846
  enableYearPicker = _ref.enableYearPicker,
21813
21847
  disableAnimations = _ref.disableAnimations,
21814
21848
  disabledDaysAfter = _ref.disabledDaysAfter,
21815
- onChange = _ref.onChange;
21849
+ onChange = _ref.onChange,
21850
+ maxRange = _ref.maxRange;
21816
21851
  var labelText = React.useMemo(function () {
21817
21852
  if (!selectedDays) {
21818
21853
  return defaultLabelText;
@@ -21947,6 +21982,7 @@
21947
21982
  enableConfirmModal: mode === "atomic" && !dateRequired,
21948
21983
  disableYearPicker: !enableYearPicker,
21949
21984
  disableAnimations: disableAnimations,
21985
+ maxRange: maxRange,
21950
21986
  showControls: true,
21951
21987
  forceClose: forceClose
21952
21988
  }) : /*#__PURE__*/React__default["default"].createElement(DatePicker, {
@@ -21970,6 +22006,7 @@
21970
22006
  onDayClick: onDayClick,
21971
22007
  disableYearPicker: !enableYearPicker,
21972
22008
  disableAnimations: disableAnimations,
22009
+ maxRange: maxRange,
21973
22010
  showControls: true,
21974
22011
  open: true
21975
22012
  }));