@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.
Files changed (28) hide show
  1. package/dist/cjs/components/DatePicker/DatePicker.js +33 -1
  2. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  3. package/dist/cjs/components/Select/Select.js +6 -5
  4. package/dist/cjs/components/Select/Select.js.map +1 -1
  5. package/dist/cjs/components/SelectDate/SelectDate.js +4 -1
  6. package/dist/cjs/components/SelectDate/SelectDate.js.map +1 -1
  7. package/dist/cjs/components/Steppers/DateStepper/DateStepper.js +3 -1
  8. package/dist/cjs/components/Steppers/DateStepper/DateStepper.js.map +1 -1
  9. package/dist/esm/components/DatePicker/DatePicker.d.ts +6 -0
  10. package/dist/esm/components/DatePicker/DatePicker.d.ts.map +1 -1
  11. package/dist/esm/components/DatePicker/DatePicker.js +33 -1
  12. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  13. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  14. package/dist/esm/components/Select/Select.js +6 -5
  15. package/dist/esm/components/Select/Select.js.map +1 -1
  16. package/dist/esm/components/SelectDate/SelectDate.d.ts +6 -0
  17. package/dist/esm/components/SelectDate/SelectDate.d.ts.map +1 -1
  18. package/dist/esm/components/SelectDate/SelectDate.js +4 -1
  19. package/dist/esm/components/SelectDate/SelectDate.js.map +1 -1
  20. package/dist/esm/components/Steppers/DateStepper/DateStepper.d.ts +6 -0
  21. package/dist/esm/components/Steppers/DateStepper/DateStepper.d.ts.map +1 -1
  22. package/dist/esm/components/Steppers/DateStepper/DateStepper.js +3 -1
  23. package/dist/esm/components/Steppers/DateStepper/DateStepper.js.map +1 -1
  24. package/dist/index.js +46 -8
  25. package/dist/index.js.map +1 -1
  26. package/dist/index.min.js +1 -1
  27. package/dist/index.min.js.map +1 -1
  28. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDate.js","names":["React","useMemo","classnames","moment","SelectDateTarget","StyledSelectDate","StyledSelectDateButton","formatDate","DatePicker","toMoment","isDayInRange","day","data","fromMoment","unix","from","utc","to","repeating","year","month","date","isSameOrAfter","isSameOrBefore","SelectDate","_ref","changeMode","mode","trigger","labelType","saveButtonText","cancelButtonText","clearButtonText","modalTitle","modalDescription","modalSaveBtnText","modalCancelBtnText","onDayClick","onSave","onCancel","onToggleDatePicker","required","dateRequired","longDateFormat","defaultShowDatePicker","firstDayOfWeek","selectedDays","selectionMode","menuClassName","targetClassName","icon","defaultLabelText","targetTextClassName","targetIconClassName","backgroundElementClass","dateFormat","forceClose","defaultMonth","daysToModify","weekends","weekendLabel","nonWorkingDaysOfWeek","nonWorkingDaysOfWeekLabel","weekendIsSelectable","tooltipText","popperTooltipClassName","popperClassName","popperTooltipStyle","position","disableDaysBefore","enableYearPicker","disableAnimations","disabledDaysAfter","onChange","labelText","formattedEndDate","formattedStartDate","isSame","modifiers","userAvailabilities","filter","type","globalDaysOff","selectableGlobalDaysOff","userAvailability","matchedData","find","matched","title","weekend","isWeekend","includes","nonWorkingDay","nonWorkingDays","isNonWorkingDay","day_disabled","globalDayOff","renderTargetEl","createElement","className","target","instant","selected","saveLabel","cancelLabel","clearLabel","onClose","disabledDaysBefore","disabled","open","onCalendarToggle","enableConfirmModal","disableYearPicker","showControls","displayName"],"sources":["../../../../src/components/SelectDate/SelectDate.tsx"],"sourcesContent":["import React, { ElementType, FC, useMemo, CSSProperties } from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classnames from \"classnames\";\nimport { Moment } from \"moment\";\nimport moment from \"moment-timezone\";\n\nimport { SelectDateTarget } from \"./SelectDateTarget\";\nimport { StyledSelectDate, StyledSelectDateButton } from \"./Styles\";\nimport { DaysToModify } from \"./types\";\nimport { formatDate } from \"../../utils/dateUtils\";\nimport {\n ChangeMode,\n DatePicker,\n TimestampDateRange,\n toMoment,\n} from \"../DatePicker/DatePicker\";\n\ntype TriggerStringType = \"text\" | \"icon\" | \"inline\";\ntype TriggerFunctionType = (text: string) => JSX.Element;\n\nconst isDayInRange = (day: Moment, data: DaysToModify): boolean => {\n const fromMoment = moment.unix(data.from).utc();\n const toMoment = moment.unix(data.to).utc();\n\n if (data.repeating) {\n const year = day.year();\n const from = moment.utc({\n year,\n month: fromMoment.month(),\n date: fromMoment.date(),\n });\n const to = moment.utc({\n year,\n month: toMoment.month(),\n date: toMoment.date(),\n });\n\n return day.isSameOrAfter(from, \"day\") && day.isSameOrBefore(to, \"day\");\n }\n\n return (\n day.isSameOrAfter(fromMoment, \"day\") && day.isSameOrBefore(toMoment, \"day\")\n );\n};\n\nexport interface ISelectDate {\n /** Change mode - can be atomic and instant */\n changeMode?: \"atomic\" | \"instant\";\n /** Trigger - can be text, icon, inline, or custom render function */\n trigger?: TriggerStringType | TriggerFunctionType;\n /** Save button text */\n saveButtonText?: string;\n /** Cancel button text */\n cancelButtonText?: string;\n /** Clear button text */\n clearButtonText?: string;\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 /** Tooltip text */\n tooltipText?: string;\n /** Called when day is clicked */\n onDayClick?: (day: Moment, modifiers: string[]) => void;\n /** Save changes callback */\n onSave?: (dates?: TimestampDateRange) => void;\n /** Changing dates callback */\n onChange?: (dates?: TimestampDateRange) => void;\n /** On cancel closes datepicker or opens discard modal in atomic mode */\n onCancel?: () => void;\n /** Clear dates when they are not required */\n onClear?: () => void;\n /** Use this callback to get is picker visible */\n onToggleDatePicker?: (value: boolean) => void;\n /** Force close */\n forceClose?: boolean;\n /** Set selected day or days */\n selectedDays?: TimestampDateRange;\n /** Set month */\n defaultMonth?: Moment;\n /** Set selection range */\n selectionMode?: ChangeMode;\n /** Set is date required */\n required?: boolean;\n /** Set default show on date picker (only for text and icon mode) */\n defaultShowDatePicker?: boolean;\n /** Long date format (Always show year) */\n longDateFormat?: boolean;\n /** Set first day of week */\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n /** One of icon types */\n icon?: ElementType;\n /** Default Label text */\n defaultLabelText?: string;\n /** Date format */\n dateFormat?: string;\n /** Menu classes */\n menuClassName?: string;\n /** Target element classes */\n targetClassName?: string;\n /** Target element text classes */\n targetTextClassName?: string;\n /** Target element icon classes */\n targetIconClassName?: string;\n /** Background style for clickable element after the menu is open (opacity, color, etc...) */\n backgroundElementClass?: string;\n /** Days to modify */\n daysToModify?: DaysToModify[];\n /** Array of weekend days */\n weekends?: number[];\n /** Weekend label */\n weekendLabel?: string;\n /** Array of nonworking week days */\n nonWorkingDaysOfWeek?: number[];\n /** Nonworking week days label */\n nonWorkingDaysOfWeekLabel?: string;\n /** Allows weekends to be selected */\n weekendIsSelectable?: boolean;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n /** Popper class name*/\n popperClassName?: string;\n /** Position of selectDate menu */\n position?: Placement;\n /** Disable days before specified date */\n disableDaysBefore?: Moment;\n /** Disable days after specified date */\n disabledDaysAfter?: Moment;\n /** Enable year selector */\n enableYearPicker?: boolean;\n /** Disable aniamtions */\n disableAnimations?: boolean;\n}\n\nexport const SelectDate: FC<ISelectDate> = ({\n changeMode: mode = \"instant\",\n trigger: labelType = \"text\",\n saveButtonText = \"Save\",\n cancelButtonText = \"Cancel\",\n clearButtonText = \"Clear\",\n modalTitle = \"Save Changes\",\n modalDescription = \"You updated the date. Would you like to save this change?\",\n modalSaveBtnText = \"Save\",\n modalCancelBtnText = \"Discard\",\n onDayClick,\n onSave,\n onCancel,\n onToggleDatePicker,\n required: dateRequired = false,\n longDateFormat = false,\n defaultShowDatePicker = false,\n firstDayOfWeek = 0,\n selectedDays,\n selectionMode = \"custom\",\n menuClassName,\n targetClassName,\n icon,\n defaultLabelText = \"Set...\",\n targetTextClassName,\n targetIconClassName,\n backgroundElementClass,\n dateFormat,\n forceClose,\n defaultMonth,\n daysToModify = [],\n weekends = [],\n weekendLabel = \"Weekend\",\n nonWorkingDaysOfWeek = [],\n nonWorkingDaysOfWeekLabel = \"Unavailable\",\n weekendIsSelectable = false,\n tooltipText,\n popperTooltipClassName,\n popperClassName,\n popperTooltipStyle,\n position,\n disableDaysBefore,\n enableYearPicker,\n disableAnimations,\n disabledDaysAfter,\n onChange,\n}) => {\n const labelText = useMemo(() => {\n if (!selectedDays) {\n return defaultLabelText;\n } else if (!selectedDays.from && !selectedDays.to) {\n return defaultLabelText;\n } else {\n const formattedEndDate = selectedDays.to\n ? formatDate(toMoment(selectedDays.to), dateFormat, longDateFormat)\n : \"\";\n const formattedStartDate = selectedDays.from\n ? formatDate(toMoment(selectedDays?.from), dateFormat, longDateFormat)\n : \"\";\n\n if (\n selectedDays.to &&\n selectedDays.from &&\n toMoment(selectedDays.from).isSame(toMoment(selectedDays.to))\n ) {\n return formattedEndDate;\n }\n\n if (!selectedDays.to && selectedDays.from) {\n return formattedStartDate;\n }\n\n return `${formattedStartDate} - ${formattedEndDate}`;\n }\n }, [selectedDays, dateFormat, defaultLabelText, longDateFormat]);\n\n const modifiers = useMemo(() => {\n const userAvailabilities = daysToModify.filter(\n (data) => data.type === \"user_day_off\"\n );\n const globalDaysOff = daysToModify.filter(\n (data) => data.type === \"global_day_off\"\n );\n const selectableGlobalDaysOff = daysToModify.filter(\n (data) => data.type === \"selectable_global_day_off\"\n );\n\n return {\n userAvailability: (day: Moment) => {\n const matchedData = userAvailabilities.find((data) =>\n isDayInRange(day, data)\n );\n return {\n matched: !!matchedData,\n title: matchedData ? matchedData.title : null,\n };\n },\n weekend: (day: Moment) => {\n const isWeekend = weekends.includes(day.day());\n return {\n matched: isWeekend,\n title: isWeekend ? weekendLabel : null,\n };\n },\n nonWorkingDay: (day: Moment) => {\n if (weekends.includes(day.day())) {\n return { matched: true, title: \"\" };\n }\n const nonWorkingDays = [...selectableGlobalDaysOff, ...globalDaysOff];\n\n const matchedData = nonWorkingDays.find((data) =>\n isDayInRange(day, data)\n );\n return {\n matched: !!matchedData,\n title: matchedData ? matchedData.title : null,\n };\n },\n nonWorkingDaysOfWeek: (day: Moment) => {\n const isNonWorkingDay = nonWorkingDaysOfWeek.includes(day.day());\n return {\n matched: isNonWorkingDay,\n title: isNonWorkingDay ? nonWorkingDaysOfWeekLabel : null,\n };\n },\n day_disabled: (day: Moment) => {\n const globalDayOff = globalDaysOff.find((data) =>\n isDayInRange(day, data)\n );\n\n return {\n matched: !!globalDayOff,\n title: null,\n };\n },\n };\n }, [\n daysToModify,\n nonWorkingDaysOfWeek,\n nonWorkingDaysOfWeekLabel,\n weekendLabel,\n weekends,\n ]);\n\n const renderTargetEl = useMemo(() => {\n if (labelType === \"icon\" && icon) {\n return (\n <SelectDateTarget\n icon={icon}\n title={tooltipText}\n targetIconClassName={targetIconClassName}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n />\n );\n }\n if (typeof labelType === \"function\") {\n return labelType(labelText);\n }\n return (\n <StyledSelectDateButton\n type=\"button\"\n className={classnames(\"date-picker-target\", targetClassName)}\n >\n <span className={targetTextClassName}>{labelText}</span>\n </StyledSelectDateButton>\n );\n }, [\n icon,\n labelText,\n labelType,\n popperTooltipClassName,\n popperTooltipStyle,\n targetClassName,\n targetIconClassName,\n targetTextClassName,\n tooltipText,\n ]);\n\n return (\n <StyledSelectDate className=\"select-date\">\n {labelType !== \"inline\" ? (\n <DatePicker\n target={renderTargetEl}\n position={position}\n menuClassName={menuClassName}\n popperClassName={popperClassName}\n month={defaultMonth}\n instant={mode === \"instant\"}\n mode={selectionMode}\n required={dateRequired}\n selected={selectedDays}\n firstDayOfWeek={firstDayOfWeek}\n saveLabel={saveButtonText}\n cancelLabel={cancelButtonText}\n clearLabel={clearButtonText}\n onSave={onSave}\n onChange={onChange}\n onClose={onCancel}\n modifiers={modifiers}\n modalTitle={modalTitle}\n modalDescription={modalDescription}\n modalSaveBtnText={modalSaveBtnText}\n modalCancelBtnText={modalCancelBtnText}\n disabledDaysBefore={disableDaysBefore}\n disabledDaysAfter={disabledDaysAfter}\n backgroundElementClass={backgroundElementClass}\n disabled={weekendIsSelectable ? [] : weekends}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n open={defaultShowDatePicker}\n onCalendarToggle={onToggleDatePicker}\n onDayClick={onDayClick}\n enableConfirmModal={mode === \"atomic\" && !dateRequired}\n disableYearPicker={!enableYearPicker}\n disableAnimations={disableAnimations}\n showControls\n forceClose={forceClose}\n />\n ) : (\n <DatePicker\n month={defaultMonth}\n instant={mode === \"instant\"}\n mode={selectionMode}\n required={dateRequired}\n selected={selectedDays}\n firstDayOfWeek={firstDayOfWeek}\n saveLabel={saveButtonText}\n cancelLabel={cancelButtonText}\n clearLabel={clearButtonText}\n disabledDaysBefore={disableDaysBefore}\n disabledDaysAfter={disabledDaysAfter}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n disabled={weekendIsSelectable ? [] : weekends}\n onSave={onSave}\n onChange={onChange}\n modifiers={modifiers}\n onDayClick={onDayClick}\n disableYearPicker={!enableYearPicker}\n disableAnimations={disableAnimations}\n showControls\n open\n />\n )}\n </StyledSelectDate>\n );\n};\n\nSelectDate.displayName = \"SelectDate\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SelectDate.js","names":["React","useMemo","classnames","moment","SelectDateTarget","StyledSelectDate","StyledSelectDateButton","formatDate","DatePicker","toMoment","isDayInRange","day","data","fromMoment","unix","from","utc","to","repeating","year","month","date","isSameOrAfter","isSameOrBefore","SelectDate","_ref","changeMode","mode","trigger","labelType","saveButtonText","cancelButtonText","clearButtonText","modalTitle","modalDescription","modalSaveBtnText","modalCancelBtnText","onDayClick","onSave","onCancel","onToggleDatePicker","required","dateRequired","longDateFormat","defaultShowDatePicker","firstDayOfWeek","selectedDays","selectionMode","menuClassName","targetClassName","icon","defaultLabelText","targetTextClassName","targetIconClassName","backgroundElementClass","dateFormat","forceClose","defaultMonth","daysToModify","weekends","weekendLabel","nonWorkingDaysOfWeek","nonWorkingDaysOfWeekLabel","weekendIsSelectable","tooltipText","popperTooltipClassName","popperClassName","popperTooltipStyle","position","disableDaysBefore","enableYearPicker","disableAnimations","disabledDaysAfter","onChange","maxRange","labelText","formattedEndDate","formattedStartDate","isSame","modifiers","userAvailabilities","filter","type","globalDaysOff","selectableGlobalDaysOff","userAvailability","matchedData","find","matched","title","weekend","isWeekend","includes","nonWorkingDay","nonWorkingDays","isNonWorkingDay","day_disabled","globalDayOff","renderTargetEl","createElement","className","target","instant","selected","saveLabel","cancelLabel","clearLabel","onClose","disabledDaysBefore","disabled","open","onCalendarToggle","enableConfirmModal","disableYearPicker","showControls","displayName"],"sources":["../../../../src/components/SelectDate/SelectDate.tsx"],"sourcesContent":["import React, { ElementType, FC, useMemo, CSSProperties } from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classnames from \"classnames\";\nimport { Moment } from \"moment\";\nimport moment from \"moment-timezone\";\n\nimport { SelectDateTarget } from \"./SelectDateTarget\";\nimport { StyledSelectDate, StyledSelectDateButton } from \"./Styles\";\nimport { DaysToModify } from \"./types\";\nimport { formatDate } from \"../../utils/dateUtils\";\nimport {\n ChangeMode,\n DatePicker,\n TimestampDateRange,\n toMoment,\n} from \"../DatePicker/DatePicker\";\n\ntype TriggerStringType = \"text\" | \"icon\" | \"inline\";\ntype TriggerFunctionType = (text: string) => JSX.Element;\n\nconst isDayInRange = (day: Moment, data: DaysToModify): boolean => {\n const fromMoment = moment.unix(data.from).utc();\n const toMoment = moment.unix(data.to).utc();\n\n if (data.repeating) {\n const year = day.year();\n const from = moment.utc({\n year,\n month: fromMoment.month(),\n date: fromMoment.date(),\n });\n const to = moment.utc({\n year,\n month: toMoment.month(),\n date: toMoment.date(),\n });\n\n return day.isSameOrAfter(from, \"day\") && day.isSameOrBefore(to, \"day\");\n }\n\n return (\n day.isSameOrAfter(fromMoment, \"day\") && day.isSameOrBefore(toMoment, \"day\")\n );\n};\n\nexport interface ISelectDate {\n /** Change mode - can be atomic and instant */\n changeMode?: \"atomic\" | \"instant\";\n /** Trigger - can be text, icon, inline, or custom render function */\n trigger?: TriggerStringType | TriggerFunctionType;\n /** Save button text */\n saveButtonText?: string;\n /** Cancel button text */\n cancelButtonText?: string;\n /** Clear button text */\n clearButtonText?: string;\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 /** Tooltip text */\n tooltipText?: string;\n /** Called when day is clicked */\n onDayClick?: (day: Moment, modifiers: string[]) => void;\n /** Save changes callback */\n onSave?: (dates?: TimestampDateRange) => void;\n /** Changing dates callback */\n onChange?: (dates?: TimestampDateRange) => void;\n /** On cancel closes datepicker or opens discard modal in atomic mode */\n onCancel?: () => void;\n /** Clear dates when they are not required */\n onClear?: () => void;\n /** Use this callback to get is picker visible */\n onToggleDatePicker?: (value: boolean) => void;\n /** Force close */\n forceClose?: boolean;\n /** Set selected day or days */\n selectedDays?: TimestampDateRange;\n /** Set month */\n defaultMonth?: Moment;\n /** Set selection range */\n selectionMode?: ChangeMode;\n /** Set is date required */\n required?: boolean;\n /** Set default show on date picker (only for text and icon mode) */\n defaultShowDatePicker?: boolean;\n /** Long date format (Always show year) */\n longDateFormat?: boolean;\n /** Set first day of week */\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n /** One of icon types */\n icon?: ElementType;\n /** Default Label text */\n defaultLabelText?: string;\n /** Date format */\n dateFormat?: string;\n /** Menu classes */\n menuClassName?: string;\n /** Target element classes */\n targetClassName?: string;\n /** Target element text classes */\n targetTextClassName?: string;\n /** Target element icon classes */\n targetIconClassName?: string;\n /** Background style for clickable element after the menu is open (opacity, color, etc...) */\n backgroundElementClass?: string;\n /** Days to modify */\n daysToModify?: DaysToModify[];\n /** Array of weekend days */\n weekends?: number[];\n /** Weekend label */\n weekendLabel?: string;\n /** Array of nonworking week days */\n nonWorkingDaysOfWeek?: number[];\n /** Nonworking week days label */\n nonWorkingDaysOfWeekLabel?: string;\n /** Allows weekends to be selected */\n weekendIsSelectable?: boolean;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n /** Popper class name*/\n popperClassName?: string;\n /** Position of selectDate menu */\n position?: Placement;\n /** Disable days before specified date */\n disableDaysBefore?: Moment;\n /** Disable days after specified date */\n disabledDaysAfter?: Moment;\n /** Enable year selector */\n enableYearPicker?: boolean;\n /** Disable aniamtions */\n disableAnimations?: 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\nexport const SelectDate: FC<ISelectDate> = ({\n changeMode: mode = \"instant\",\n trigger: labelType = \"text\",\n saveButtonText = \"Save\",\n cancelButtonText = \"Cancel\",\n clearButtonText = \"Clear\",\n modalTitle = \"Save Changes\",\n modalDescription = \"You updated the date. Would you like to save this change?\",\n modalSaveBtnText = \"Save\",\n modalCancelBtnText = \"Discard\",\n onDayClick,\n onSave,\n onCancel,\n onToggleDatePicker,\n required: dateRequired = false,\n longDateFormat = false,\n defaultShowDatePicker = false,\n firstDayOfWeek = 0,\n selectedDays,\n selectionMode = \"custom\",\n menuClassName,\n targetClassName,\n icon,\n defaultLabelText = \"Set...\",\n targetTextClassName,\n targetIconClassName,\n backgroundElementClass,\n dateFormat,\n forceClose,\n defaultMonth,\n daysToModify = [],\n weekends = [],\n weekendLabel = \"Weekend\",\n nonWorkingDaysOfWeek = [],\n nonWorkingDaysOfWeekLabel = \"Unavailable\",\n weekendIsSelectable = false,\n tooltipText,\n popperTooltipClassName,\n popperClassName,\n popperTooltipStyle,\n position,\n disableDaysBefore,\n enableYearPicker,\n disableAnimations,\n disabledDaysAfter,\n onChange,\n maxRange,\n}) => {\n const labelText = useMemo(() => {\n if (!selectedDays) {\n return defaultLabelText;\n } else if (!selectedDays.from && !selectedDays.to) {\n return defaultLabelText;\n } else {\n const formattedEndDate = selectedDays.to\n ? formatDate(toMoment(selectedDays.to), dateFormat, longDateFormat)\n : \"\";\n const formattedStartDate = selectedDays.from\n ? formatDate(toMoment(selectedDays?.from), dateFormat, longDateFormat)\n : \"\";\n\n if (\n selectedDays.to &&\n selectedDays.from &&\n toMoment(selectedDays.from).isSame(toMoment(selectedDays.to))\n ) {\n return formattedEndDate;\n }\n\n if (!selectedDays.to && selectedDays.from) {\n return formattedStartDate;\n }\n\n return `${formattedStartDate} - ${formattedEndDate}`;\n }\n }, [selectedDays, dateFormat, defaultLabelText, longDateFormat]);\n\n const modifiers = useMemo(() => {\n const userAvailabilities = daysToModify.filter(\n (data) => data.type === \"user_day_off\"\n );\n const globalDaysOff = daysToModify.filter(\n (data) => data.type === \"global_day_off\"\n );\n const selectableGlobalDaysOff = daysToModify.filter(\n (data) => data.type === \"selectable_global_day_off\"\n );\n\n return {\n userAvailability: (day: Moment) => {\n const matchedData = userAvailabilities.find((data) =>\n isDayInRange(day, data)\n );\n return {\n matched: !!matchedData,\n title: matchedData ? matchedData.title : null,\n };\n },\n weekend: (day: Moment) => {\n const isWeekend = weekends.includes(day.day());\n return {\n matched: isWeekend,\n title: isWeekend ? weekendLabel : null,\n };\n },\n nonWorkingDay: (day: Moment) => {\n if (weekends.includes(day.day())) {\n return { matched: true, title: \"\" };\n }\n const nonWorkingDays = [...selectableGlobalDaysOff, ...globalDaysOff];\n\n const matchedData = nonWorkingDays.find((data) =>\n isDayInRange(day, data)\n );\n return {\n matched: !!matchedData,\n title: matchedData ? matchedData.title : null,\n };\n },\n nonWorkingDaysOfWeek: (day: Moment) => {\n const isNonWorkingDay = nonWorkingDaysOfWeek.includes(day.day());\n return {\n matched: isNonWorkingDay,\n title: isNonWorkingDay ? nonWorkingDaysOfWeekLabel : null,\n };\n },\n day_disabled: (day: Moment) => {\n const globalDayOff = globalDaysOff.find((data) =>\n isDayInRange(day, data)\n );\n\n return {\n matched: !!globalDayOff,\n title: null,\n };\n },\n };\n }, [\n daysToModify,\n nonWorkingDaysOfWeek,\n nonWorkingDaysOfWeekLabel,\n weekendLabel,\n weekends,\n ]);\n\n const renderTargetEl = useMemo(() => {\n if (labelType === \"icon\" && icon) {\n return (\n <SelectDateTarget\n icon={icon}\n title={tooltipText}\n targetIconClassName={targetIconClassName}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n />\n );\n }\n if (typeof labelType === \"function\") {\n return labelType(labelText);\n }\n return (\n <StyledSelectDateButton\n type=\"button\"\n className={classnames(\"date-picker-target\", targetClassName)}\n >\n <span className={targetTextClassName}>{labelText}</span>\n </StyledSelectDateButton>\n );\n }, [\n icon,\n labelText,\n labelType,\n popperTooltipClassName,\n popperTooltipStyle,\n targetClassName,\n targetIconClassName,\n targetTextClassName,\n tooltipText,\n ]);\n\n return (\n <StyledSelectDate className=\"select-date\">\n {labelType !== \"inline\" ? (\n <DatePicker\n target={renderTargetEl}\n position={position}\n menuClassName={menuClassName}\n popperClassName={popperClassName}\n month={defaultMonth}\n instant={mode === \"instant\"}\n mode={selectionMode}\n required={dateRequired}\n selected={selectedDays}\n firstDayOfWeek={firstDayOfWeek}\n saveLabel={saveButtonText}\n cancelLabel={cancelButtonText}\n clearLabel={clearButtonText}\n onSave={onSave}\n onChange={onChange}\n onClose={onCancel}\n modifiers={modifiers}\n modalTitle={modalTitle}\n modalDescription={modalDescription}\n modalSaveBtnText={modalSaveBtnText}\n modalCancelBtnText={modalCancelBtnText}\n disabledDaysBefore={disableDaysBefore}\n disabledDaysAfter={disabledDaysAfter}\n backgroundElementClass={backgroundElementClass}\n disabled={weekendIsSelectable ? [] : weekends}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n open={defaultShowDatePicker}\n onCalendarToggle={onToggleDatePicker}\n onDayClick={onDayClick}\n enableConfirmModal={mode === \"atomic\" && !dateRequired}\n disableYearPicker={!enableYearPicker}\n disableAnimations={disableAnimations}\n maxRange={maxRange}\n showControls\n forceClose={forceClose}\n />\n ) : (\n <DatePicker\n month={defaultMonth}\n instant={mode === \"instant\"}\n mode={selectionMode}\n required={dateRequired}\n selected={selectedDays}\n firstDayOfWeek={firstDayOfWeek}\n saveLabel={saveButtonText}\n cancelLabel={cancelButtonText}\n clearLabel={clearButtonText}\n disabledDaysBefore={disableDaysBefore}\n disabledDaysAfter={disabledDaysAfter}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n disabled={weekendIsSelectable ? [] : weekends}\n onSave={onSave}\n onChange={onChange}\n modifiers={modifiers}\n onDayClick={onDayClick}\n disableYearPicker={!enableYearPicker}\n disableAnimations={disableAnimations}\n maxRange={maxRange}\n showControls\n open\n />\n )}\n </StyledSelectDate>\n );\n};\n\nSelectDate.displayName = \"SelectDate\";\n"],"mappings":"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","ignoreList":[]}
@@ -43,6 +43,12 @@ export interface IDateStepperProps {
43
43
  alwaysShowDate?: boolean;
44
44
  /** Hide navigation arrows */
45
45
  disableArrows?: boolean;
46
+ /**
47
+ * Maximum number of days in a selection range (minimum value: 2, maximum value: 366).
48
+ * @minimum 2
49
+ * @maximum 366
50
+ */
51
+ maxRange?: number;
46
52
  }
47
53
  /**
48
54
  * This component allow you to select date range. It accepts two parameters "from" and "to" as valid format
@@ -1 +1 @@
1
- {"version":3,"file":"DateStepper.d.ts","sourceRoot":"","sources":["../../../../../src/components/Steppers/DateStepper/DateStepper.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAA6C,MAAM,OAAO,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAahC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzE,oEAAoE;IACpE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,8BAA8B;IAC9B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,4BAA4B;IAC5B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,wDAAwD;IACxD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IACxE,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,KAAK,IAAI,CAAC;IACxC,kCAAkC;IAClC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,KAAK,IAAI,CAAC;IAC3C,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,6BAA6B;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iDAAiD;IACjD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AAEH,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,iBAAiB,CAmW7C,CAAC"}
1
+ {"version":3,"file":"DateStepper.d.ts","sourceRoot":"","sources":["../../../../../src/components/Steppers/DateStepper/DateStepper.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAA6C,MAAM,OAAO,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAahC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzE,oEAAoE;IACpE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,8BAA8B;IAC9B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,4BAA4B;IAC5B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,wDAAwD;IACxD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IACxE,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,KAAK,IAAI,CAAC;IACxC,kCAAkC;IAClC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,KAAK,IAAI,CAAC;IAC3C,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,6BAA6B;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iDAAiD;IACjD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AAEH,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,iBAAiB,CAqW7C,CAAC"}
@@ -30,7 +30,8 @@ export const DateStepper = _ref => {
30
30
  popperClassName,
31
31
  mode = "outlined",
32
32
  alwaysShowDate = false,
33
- disableArrows = false
33
+ disableArrows = false,
34
+ maxRange
34
35
  } = _ref;
35
36
  const [fromDate, setFromDate] = useState(moment.utc(from));
36
37
  const [toDate, setToDate] = useState(to ? moment.utc(to) : null);
@@ -269,6 +270,7 @@ export const DateStepper = _ref => {
269
270
  disableYearPicker: !enableYearPicker,
270
271
  popperClassName: popperClassName,
271
272
  position: position,
273
+ maxRange: maxRange,
272
274
  key: datePickerMode,
273
275
  instant: true,
274
276
  required: true
@@ -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
@@ -18337,6 +18371,10 @@
18337
18371
  onSelectOpen();
18338
18372
  }
18339
18373
  }, [onSelectOpen]);
18374
+ var onPopperOpen = React.useCallback(function () {
18375
+ var _elementRef$current;
18376
+ elementRef === null || elementRef === void 0 || (_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 || _elementRef$current.focus();
18377
+ }, []);
18340
18378
  var props = React.useMemo(function () {
18341
18379
  if (target) {
18342
18380
  return {
@@ -18347,16 +18385,13 @@
18347
18385
  mode,
18348
18386
  open,
18349
18387
  position,
18350
- onPopperOpen: function onPopperOpen() {
18351
- var _elementRef$current;
18352
- return elementRef === null || elementRef === void 0 || (_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.focus();
18353
- }
18388
+ onPopperOpen
18354
18389
  };
18355
18390
  }
18356
18391
  return {
18357
18392
  className: classNames__default["default"]("c-select", selectClassName)
18358
18393
  };
18359
- }, [target, selectClassName, onClose, onOpen, mode, open, position]);
18394
+ }, [target, selectClassName, onClose, onOpen, mode, open, position, onPopperOpen]);
18360
18395
  var handleEmptyAction = React.useCallback(function (value) {
18361
18396
  emptyAction(value);
18362
18397
  if (forceCloseMenu) {
@@ -21812,7 +21847,8 @@
21812
21847
  enableYearPicker = _ref.enableYearPicker,
21813
21848
  disableAnimations = _ref.disableAnimations,
21814
21849
  disabledDaysAfter = _ref.disabledDaysAfter,
21815
- onChange = _ref.onChange;
21850
+ onChange = _ref.onChange,
21851
+ maxRange = _ref.maxRange;
21816
21852
  var labelText = React.useMemo(function () {
21817
21853
  if (!selectedDays) {
21818
21854
  return defaultLabelText;
@@ -21947,6 +21983,7 @@
21947
21983
  enableConfirmModal: mode === "atomic" && !dateRequired,
21948
21984
  disableYearPicker: !enableYearPicker,
21949
21985
  disableAnimations: disableAnimations,
21986
+ maxRange: maxRange,
21950
21987
  showControls: true,
21951
21988
  forceClose: forceClose
21952
21989
  }) : /*#__PURE__*/React__default["default"].createElement(DatePicker, {
@@ -21970,6 +22007,7 @@
21970
22007
  onDayClick: onDayClick,
21971
22008
  disableYearPicker: !enableYearPicker,
21972
22009
  disableAnimations: disableAnimations,
22010
+ maxRange: maxRange,
21973
22011
  showControls: true,
21974
22012
  open: true
21975
22013
  }));