@activecollab/components 2.0.269 → 2.0.271

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","fromDate","setFromDate","utc","toDate","setToDate","getDatesByPeriod","interval","date","add","clone","startOf","endOf","getDateFormatted","actualYear","year","showWeekOrCustomDateFormat","start","end","format","startDate","endDate","quarter","datePickerMode","onDatePickerChange","dates","fromDateTemp","Number","toDateTemp","isMoment","isAfterMaxDate","isSameOrBefore","isBeforeMinDate","isSameOrAfter","onRightClickHandler","newFrom","newTo","onLeftClickHandler","renderLeftRightButtons","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","target","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\" | \"range\";\n /** Callback function that will be called after the changed range */\n onChange?: (from: Date, to: Date) => 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}\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}) => {\n const [fromDate, setFromDate] = useState<Moment>(moment.utc(from));\n const [toDate, setToDate] = useState<Moment>(moment.utc(to));\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 }\n return [date, date];\n },\n [fromDate, period, step]\n );\n\n const getDateFormatted = useMemo(() => {\n if (formatCallback) {\n return formatCallback(fromDate, toDate);\n }\n\n const actualYear = moment().year();\n\n const showWeekOrCustomDateFormat = (start, end): string => {\n if (start.year() === actualYear && end.year() === actualYear) {\n return (\n start.utc().format(\"MMM DD\") + \" - \" + end.utc().format(\"MMM DD\")\n );\n } else {\n return (\n start.utc().format(\"MMM DD YYYY\") +\n \" - \" +\n end.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 === \"range\") {\n return showWeekOrCustomDateFormat(fromDate, toDate);\n }\n\n return \"\";\n }, [fromDate, toDate, step, formatCallback, period]);\n\n const datePickerMode = useMemo(() => {\n if (step === \"range\") return \"custom\";\n if (step === \"yearly\") return \"custom\";\n return step;\n }, [step]);\n\n const onDatePickerChange = useCallback(\n (dates?: TimestampDateRange) => {\n const fromDateTemp: Moment = moment.utc(Number(dates?.from) * 1000);\n const toDateTemp: Moment = moment.utc(Number(dates?.to) * 1000);\n\n setFromDate(fromDateTemp);\n setToDate(toDateTemp);\n\n if (\n onChange &&\n moment.isMoment(fromDateTemp) &&\n moment.isMoment(toDateTemp)\n ) {\n onChange(fromDateTemp.toDate(), toDateTemp.toDate());\n }\n },\n [onChange, setFromDate, setToDate]\n );\n\n const isAfterMaxDate = useMemo(() => {\n return (\n moment.isMoment(maxValue) &&\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 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), moment.utc(newTo));\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), moment.utc(newTo));\n }\n if (onBack) {\n onBack(moment.utc(newFrom).toDate(), moment.utc(newTo).toDate());\n }\n }, [isBeforeMinDate, getDatesByPeriod, onChange, onBack]);\n\n const renderLeftRightButtons = useMemo(() => {\n return step !== \"range\";\n }, [step]);\n\n useEffect(() => {\n setFromDate(moment.utc(from));\n setToDate(moment.utc(to));\n }, [from, to]);\n\n const dateStepperWidth = (\n fromDay: Moment,\n toDay: Moment,\n range: string\n ): { minWidth: string } => {\n if (\n fromDay.utc().year() !== moment.utc().year() ||\n 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 {renderLeftRightButtons ? (\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={step === \"range\"}\n $mode={mode}\n $alwaysShowDate={alwaysShowDate}\n style={dateStepperWidth(fromDate, toDate, step)}\n >\n {withDatePicker && step !== \"yearly\" ? (\n <DatePicker\n month={defaultMonth}\n target={\n <StyledButton type=\"button\">{getDateFormatted}</StyledButton>\n }\n mode={datePickerMode}\n selected={{\n from: moment.utc(fromDate).unix(),\n to: moment.utc(toDate).unix(),\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 {renderLeftRightButtons ? (\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","fromDate","setFromDate","utc","toDate","setToDate","getDatesByPeriod","interval","date","add","clone","startOf","endOf","daysDiff","diff","daysToMove","newFromDate","newToDate","getDateFormatted","actualYear","year","showWeekOrCustomDateFormat","start","end","format","startDate","endDate","quarter","isValid","datePickerMode","onDatePickerChange","dates","fromDateTemp","Number","toDateTemp","isMoment","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","target","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\" | \"range\";\n /** Callback function that will be called after the changed range */\n onChange?: (from: Date, to: Date) => 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>(moment.utc(to));\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 === \"range\") {\n // For range step, calculate N days based on current selection\n const daysDiff = toDate.diff(fromDate, \"days\");\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 : toDate.clone().add(interval * daysToMove, \"days\");\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);\n }\n\n const actualYear = moment().year();\n\n const showWeekOrCustomDateFormat = (start, end): string => {\n if (start.year() === actualYear && end.year() === actualYear) {\n return (\n start.utc().format(\"MMM DD\") + \" - \" + end.utc().format(\"MMM DD\")\n );\n } else {\n return (\n start.utc().format(\"MMM DD YYYY\") +\n \" - \" +\n end.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 === \"range\") {\n // For range step, if toDate is invalid or at epoch (1970), only show fromDate\n if (!toDate.isValid() || toDate.year() === 1970) {\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 === \"range\") return \"custom\";\n if (step === \"yearly\") return \"custom\";\n return step;\n }, [step]);\n\n const onDatePickerChange = useCallback(\n (dates?: TimestampDateRange) => {\n const fromDateTemp: Moment = moment.utc(Number(dates?.from) * 1000);\n const toDateTemp: Moment = moment.utc(Number(dates?.to) * 1000);\n\n setFromDate(fromDateTemp);\n setToDate(toDateTemp);\n\n if (\n onChange &&\n moment.isMoment(fromDateTemp) &&\n moment.isMoment(toDateTemp)\n ) {\n onChange(fromDateTemp.toDate(), toDateTemp.toDate());\n }\n },\n [onChange, setFromDate, setToDate]\n );\n\n const isAfterMaxDate = useMemo(() => {\n return (\n moment.isMoment(maxValue) &&\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 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(moment.utc(to));\n }, [from, to]);\n\n const dateStepperWidth = (\n fromDay: Moment,\n toDay: Moment,\n range: string\n ): { minWidth: string } => {\n if (\n fromDay.utc().year() !== moment.utc().year() ||\n 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 target={\n <StyledButton type=\"button\">{getDateFormatted}</StyledButton>\n }\n mode={datePickerMode}\n selected={{\n from: moment.utc(fromDate).unix(),\n to: moment.utc(toDate).unix(),\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":[]}
package/dist/index.js CHANGED
@@ -2144,10 +2144,12 @@
2144
2144
  ref: svgRef
2145
2145
  }, props), /*#__PURE__*/React__default["default"].createElement(GradientDefs, {
2146
2146
  gradient: gradient
2147
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
2148
+ d: "M13 7v1h2v2h-4v1h3a1 1 0 01.993.884L15 12v3a1 1 0 01-.884.993L14 16h-1v1h-2v-1H9v-2h4v-1h-3a1 1 0 01-.993-.884L9 12V9a1 1 0 01.884-.993L10 8h1V7h2z"
2147
2149
  }), /*#__PURE__*/React__default["default"].createElement("path", {
2148
2150
  fillRule: "evenodd",
2149
2151
  clipRule: "evenodd",
2150
- d: "M4 5h3v2H4v10h3v2H4a2 2 0 01-2-2V7a2 2 0 012-2zm16 12h-3v2h3a2 2 0 002-2V7a2 2 0 00-2-2h-3v2h3v10zm-9 0h2v-1h1a1 1 0 001-1v-3a1 1 0 00-1-1h-3v-1h4V8h-2V7h-2v1h-1a1 1 0 00-1 1v3a1 1 0 001 1h3v1H9v2h2v1z"
2152
+ d: "M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 100 16 8 8 0 000-16z"
2151
2153
  }));
2152
2154
  });
2153
2155
  BillingIcon.displayName = "BillingIcon";
@@ -9014,9 +9016,9 @@
9014
9016
  var gradient = _ref.gradient,
9015
9017
  props = _objectWithoutProperties(_ref, _excluded$2h);
9016
9018
  return /*#__PURE__*/React__default["default"].createElement("svg", _extends({
9017
- width: 18,
9018
- height: 18,
9019
- viewBox: "0 0 18 18",
9019
+ width: 24,
9020
+ height: 24,
9021
+ viewBox: "0 0 24 24",
9020
9022
  xmlns: "http://www.w3.org/2000/svg",
9021
9023
  "data-testid": "PuzzleIcon",
9022
9024
  fill: gradient ? "url(#icon-gradient)" : props !== null && props !== void 0 && props.fill ? props.fill : "var(--color-theme-600)",
@@ -9027,7 +9029,7 @@
9027
9029
  }), /*#__PURE__*/React__default["default"].createElement("path", {
9028
9030
  fillRule: "evenodd",
9029
9031
  clipRule: "evenodd",
9030
- d: "M7.5 0A3.5 3.5 0 0111 3.5h1.5a2 2 0 012 2V7a3.5 3.5 0 013.5 3.5l-.004.174A3.5 3.5 0 0114.5 14v2a2 2 0 01-2 2H2a2 2 0 01-2-2v-4.023h2a1.476 1.476 0 001.47-1.332l.007-.145A1.476 1.476 0 002 9.023H0V5.5a2 2 0 012-2h2a3.5 3.5 0 01.905-2.349l.12-.126A3.5 3.5 0 017.5 0zm0 2.023A1.476 1.476 0 006.023 3.5v2H2V7a3.5 3.5 0 013.5 3.5l-.004.174A3.5 3.5 0 012 14v2h10.5l.014-4.023H14.5a1.476 1.476 0 001.47-1.332l.007-.145A1.476 1.476 0 0014.5 9.023h.16-2.146L12.5 5.5H8.977v-2A1.476 1.476 0 007.5 2.023z"
9032
+ d: "M11.5 3A3.5 3.5 0 0115 6.5h1.5a2 2 0 012 2V10a3.5 3.5 0 013.5 3.5l-.004.174A3.5 3.5 0 0118.5 17v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-4.023h2a1.476 1.476 0 001.47-1.332l.007-.145A1.476 1.476 0 006 12.023H4V8.5a2 2 0 012-2h2a3.5 3.5 0 01.905-2.349l.12-.126A3.5 3.5 0 0111.5 3zm0 2.023A1.476 1.476 0 0010.023 6.5v2H6V10a3.5 3.5 0 013.5 3.5l-.004.174A3.5 3.5 0 016 17v2h10.5l.014-4.023H18.5a1.476 1.476 0 001.47-1.332l.007-.145a1.476 1.476 0 00-1.477-1.477h.16-2.146L16.5 8.5h-3.523v-2A1.476 1.476 0 0011.5 5.023z"
9031
9033
  }));
9032
9034
  });
9033
9035
  PuzzleIcon.displayName = "PuzzleIcon";
@@ -14251,7 +14253,9 @@
14251
14253
  _ref$mode = _ref.mode,
14252
14254
  mode = _ref$mode === void 0 ? "outlined" : _ref$mode,
14253
14255
  _ref$alwaysShowDate = _ref.alwaysShowDate,
14254
- alwaysShowDate = _ref$alwaysShowDate === void 0 ? false : _ref$alwaysShowDate;
14256
+ alwaysShowDate = _ref$alwaysShowDate === void 0 ? false : _ref$alwaysShowDate,
14257
+ _ref$disableArrows = _ref.disableArrows,
14258
+ disableArrows = _ref$disableArrows === void 0 ? false : _ref$disableArrows;
14255
14259
  var _useState = React.useState(moment__default["default"].utc(from)),
14256
14260
  _useState2 = _slicedToArray(_useState, 2),
14257
14261
  fromDate = _useState2[0],
@@ -14277,9 +14281,17 @@
14277
14281
  } else if (step === "yearly") {
14278
14282
  date.add(interval, "years");
14279
14283
  return [date.clone().startOf("year"), date.clone().endOf("year")];
14284
+ } else if (step === "range") {
14285
+ // For range step, calculate N days based on current selection
14286
+ var daysDiff = toDate.diff(fromDate, "days");
14287
+ // If same day selected (daysDiff = 0), move by 1 day
14288
+ var daysToMove = daysDiff === 0 ? 1 : daysDiff + 1;
14289
+ var newFromDate = fromDate.clone().add(interval * daysToMove, "days");
14290
+ var newToDate = daysDiff === 0 ? newFromDate.clone() : toDate.clone().add(interval * daysToMove, "days");
14291
+ return [newFromDate, newToDate];
14280
14292
  }
14281
14293
  return [date, date];
14282
- }, [fromDate, period, step]);
14294
+ }, [fromDate, toDate, period, step]);
14283
14295
  var getDateFormatted = React.useMemo(function () {
14284
14296
  if (formatCallback) {
14285
14297
  return formatCallback(fromDate, toDate);
@@ -14308,6 +14320,20 @@
14308
14320
  } else if (step === "yearly") {
14309
14321
  return fromDate.utc().format("YYYY");
14310
14322
  } else if (step === "range") {
14323
+ // For range step, if toDate is invalid or at epoch (1970), only show fromDate
14324
+ if (!toDate.isValid() || toDate.year() === 1970) {
14325
+ if (fromDate.year() === actualYear) {
14326
+ return fromDate.utc().format("MMM DD");
14327
+ }
14328
+ return fromDate.utc().format("MMM DD YYYY");
14329
+ }
14330
+ // If from and to are the same date, show only once
14331
+ if (fromDate.format("YYYY-MM-DD") === toDate.format("YYYY-MM-DD")) {
14332
+ if (fromDate.year() === actualYear) {
14333
+ return fromDate.utc().format("MMM DD");
14334
+ }
14335
+ return fromDate.utc().format("MMM DD YYYY");
14336
+ }
14311
14337
  return showWeekOrCustomDateFormat(fromDate, toDate);
14312
14338
  }
14313
14339
  return "";
@@ -14357,7 +14383,7 @@
14357
14383
  setFromDate(moment__default["default"].utc(newFrom));
14358
14384
  setToDate(moment__default["default"].utc(newTo));
14359
14385
  if (onChange) {
14360
- onChange(moment__default["default"].utc(newFrom), moment__default["default"].utc(newTo));
14386
+ onChange(moment__default["default"].utc(newFrom).toDate(), moment__default["default"].utc(newTo).toDate());
14361
14387
  }
14362
14388
  if (onForward) {
14363
14389
  onForward(moment__default["default"].utc(newFrom).toDate(), moment__default["default"].utc(newTo).toDate());
@@ -14374,15 +14400,12 @@
14374
14400
  setFromDate(moment__default["default"].utc(newFrom));
14375
14401
  setToDate(moment__default["default"].utc(newTo));
14376
14402
  if (onChange) {
14377
- onChange(moment__default["default"].utc(newFrom), moment__default["default"].utc(newTo));
14403
+ onChange(moment__default["default"].utc(newFrom).toDate(), moment__default["default"].utc(newTo).toDate());
14378
14404
  }
14379
14405
  if (onBack) {
14380
14406
  onBack(moment__default["default"].utc(newFrom).toDate(), moment__default["default"].utc(newTo).toDate());
14381
14407
  }
14382
14408
  }, [isBeforeMinDate, getDatesByPeriod, onChange, onBack]);
14383
- var renderLeftRightButtons = React.useMemo(function () {
14384
- return step !== "range";
14385
- }, [step]);
14386
14409
  React.useEffect(function () {
14387
14410
  setFromDate(moment__default["default"].utc(from));
14388
14411
  setToDate(moment__default["default"].utc(to));
@@ -14441,14 +14464,14 @@
14441
14464
  }, [isDisabled]);
14442
14465
  return /*#__PURE__*/React__default["default"].createElement(StyledButtonGroup, {
14443
14466
  className: classNames__default["default"]("c-date-stepper", className)
14444
- }, renderLeftRightButtons ? /*#__PURE__*/React__default["default"].createElement(StyledControl, {
14467
+ }, !disableArrows ? /*#__PURE__*/React__default["default"].createElement(StyledControl, {
14445
14468
  type: "button",
14446
14469
  variant: mode === "flat" ? "text gray" : "secondary",
14447
14470
  onClick: onLeftClickHandler,
14448
14471
  disabled: isBeforeMinDate
14449
14472
  }, /*#__PURE__*/React__default["default"].createElement(ArrowLeftIcon$1, null)) : null, /*#__PURE__*/React__default["default"].createElement(StyledDiv$1, {
14450
14473
  $isTargetable: step === "yearly" || !withDatePicker,
14451
- $isRounded: step === "range",
14474
+ $isRounded: disableArrows,
14452
14475
  $mode: mode,
14453
14476
  $alwaysShowDate: alwaysShowDate,
14454
14477
  style: dateStepperWidth(fromDate, toDate, step)
@@ -14473,7 +14496,7 @@
14473
14496
  key: datePickerMode,
14474
14497
  instant: true,
14475
14498
  required: true
14476
- }) : /*#__PURE__*/React__default["default"].createElement(StyledSpan$1, null, getDateFormatted)), renderLeftRightButtons ? /*#__PURE__*/React__default["default"].createElement(StyledControl, {
14499
+ }) : /*#__PURE__*/React__default["default"].createElement(StyledSpan$1, null, getDateFormatted)), !disableArrows ? /*#__PURE__*/React__default["default"].createElement(StyledControl, {
14477
14500
  type: "button",
14478
14501
  variant: mode === "flat" ? "text gray" : "secondary",
14479
14502
  onClick: onRightClickHandler,