@activecollab/components 2.0.147 → 2.0.148

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":"DatePickerV2.js","names":["React","useState","useRef","useEffect","useCallback","useMemo","moment","StyledCalendarDate","StyledCalendarDates","StyledCalendarHeader","StyledCalendarSelector","StyledCaption","StyledClearInstantButton","StyledConfirmDialog","StyledControls","StyledControlsLeft","StyledDatePickerContainerInner","StyledDatePickerWrapper","StyledDayName","StyledDaysOfWeek","StyledMonthOption","StyledMonthSelect","StyledMonthSelector","StyledYearOption","StyledYearSelect","Button","IconButton","ArrowLeftIcon","ArrowRightIcon","CancelCrossIcon","Menu","Tooltip","DatePickerV2","_ref","_selected$to4","selected","defaultSelected","onChange","onSave","onClear","onClose","instant","target","mode","saveLabel","cancelLabel","clearLabel","disabledDaysBefore","disabledDaysAfter","disabled","disabledDays","modifiers","disableAnimations","firstDayOfWeek","forceClose","required","month","disableYearPicker","position","menuClassName","popperClassName","enableConfirmModal","modalHeaderText","modalDiscardMessage","modalDiscardBtnText","modalCancelBtnText","backgroundElementClass","popperTooltipClassName","popperTooltipStyle","open","onCalendarToggle","onDayClick","showControls","isOpen","setIsOpen","isYearSelectOpen","setIsYearSelectOpen","showDiscardModal","setShowDiscardModal","isMonthSelectOpen","setIsMonthSelectOpen","monthTransitionDirection","setMonthTransitionDirection","currentDate","setCurrentDate","from","utc","isMoment","targetDate","setTargetDate","setSelected","to","Number","hoveredDate","setHoveredDate","timezone","defaultZone","name","tz","guess","currentDateInTimezone","format","today","selectedYearRef","datePickerRef","handleSelection","range","undefined","unix","toggleCalendar","toggleYearSelect","toggleMonthSelect","handleDateSelect","date","isSameMonth","isSame","direction","isBefore","handleDailySelection","handleWeeklySelection","handleCustomSelection","console","warn","_selected$from","currentDayOfWeek","day","daysToSubtract","startOfWeek","clone","subtract","startOf","endOfWeek","add","newSelection","handleSave","handleMonthChange","prevDate","onAnimationEnd","handleYearSelect","year","handleMonthSelect","newDate","_selected$to","endOf","_selected$to2","quarterRange","isSameQuarter","current","_selectedYearRef$curr","scrollIntoView","behavior","block","renderDaysOfWeek","daysOfWeek","weekdaysShort","orderedDays","slice","map","createElement","key","animationClass","handleDayClick","getHoverRange","startMonth","endMonth","isAfter","renderCalendarDates","startOfMonth","startDate","isoWeekday","endDate","dates","hoverRange","clonedDate","isToday","isSelected","isBetween","isHovered","isDisabled","includes","modifierClasses","modifierTitles","titles","Object","keys","forEach","modifier","matched","title","toDate","push","length","toString","index","isOutside","disable","className","join","onClick","onMouseEnter","onMouseLeave","renderYearSelect","years","Array","_","i","isDisabledYear","ref","renderMonthSelect","months","monthDate","isDisabledMonth","isHoveredQuarter","substring","captionText","isCurrentYear","handleClear","handleClose","_selected$to3","handleBeforeClose","shouldClose","Wrapper","handleCaptionClick","handleCloseDiscardModal","handleSaveDiscardModal","wrapperProps","onBeforeClose","onOpen","handleKeyDown","event","window","addEventListener","removeEventListener","variant","size","Fragment","zIndex","onCancel","onConfirm","dialogTitle","dialogContent","cancelBtnText","confirmBtnText"],"sources":["../../../../src/components/DatePicker/DatePickerV2.tsx"],"sourcesContent":["import React, {\n useState,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n CSSProperties,\n} from \"react\";\n\nimport { Moment } from \"moment\";\nimport moment from \"moment-timezone\";\n\nimport {\n StyledCalendarDate,\n StyledCalendarDates,\n StyledCalendarHeader,\n StyledCalendarSelector,\n StyledCaption,\n StyledClearInstantButton,\n StyledConfirmDialog,\n StyledControls,\n StyledControlsLeft,\n StyledDatePickerContainerInner,\n StyledDatePickerWrapper,\n StyledDayName,\n StyledDaysOfWeek,\n StyledMonthOption,\n StyledMonthSelect,\n StyledMonthSelector,\n StyledYearOption,\n StyledYearSelect,\n} from \"./StylesV2\";\nimport { Button } from \"../Button\";\nimport { IconButton } from \"../IconButton\";\nimport { ArrowLeftIcon, ArrowRightIcon, CancelCrossIcon } from \"../Icons\";\nimport { Menu } from \"../Menu\";\nimport { Placement } from \"../Popper\";\nimport { ElementWithRef } from \"../Select\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport type ChangeMode =\n | \"daily\"\n | \"weekly\"\n | \"monthly\"\n | \"quarterly\"\n | \"custom\";\n\nexport interface DateRange {\n from: Moment;\n to: Moment | null;\n}\n\nexport interface TimestampDateRange {\n from: number;\n to: number | null;\n}\n\nexport interface DatePickerProps {\n selected?: TimestampDateRange;\n onChange?: (range?: TimestampDateRange) => void;\n onSave?: (range?: TimestampDateRange) => void;\n onClear?: () => void;\n onClose?: () => void;\n instant?: boolean;\n target?: ElementWithRef<Element>;\n mode: ChangeMode;\n saveLabel?: string;\n cancelLabel?: string;\n clearLabel?: string;\n disabledDaysBefore?: Moment;\n disabledDaysAfter?: Moment;\n disabled?: number[];\n modifiers?: {\n [key: string]: (day: Date) => { matched: boolean; title: string | null };\n };\n disableAnimations?: boolean;\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n forceClose?: boolean;\n required?: boolean;\n month?: Moment | number;\n disableYearPicker?: boolean;\n position?: Placement;\n /** Popper class name*/\n popperClassName?: string;\n backgroundElementClass?: string;\n /** Menu classes */\n menuClassName?: string;\n enableConfirmModal?: boolean;\n /** Modal header text */\n modalHeaderText?: string;\n /** Modal cancel button text */\n modalCancelBtnText?: string;\n /** Modal discard button text */\n modalDiscardBtnText?: string;\n /** Modal discard message text */\n modalDiscardMessage?: string;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n open?: boolean;\n onCalendarToggle?: (value: boolean) => void;\n /** Called when day is clicked */\n onDayClick?: (day: Moment, modifiers: string[]) => void;\n showControls?: boolean;\n}\n\nexport const DatePickerV2: React.FC<DatePickerProps> = ({\n selected: defaultSelected,\n onChange,\n onSave,\n onClear,\n onClose,\n instant = true,\n target,\n mode = \"daily\",\n saveLabel = \"Save\",\n cancelLabel = \"Cancel\",\n clearLabel = \"Clear\",\n disabledDaysBefore,\n disabledDaysAfter,\n disabled: disabledDays = [],\n modifiers,\n disableAnimations,\n firstDayOfWeek = 0,\n forceClose,\n required,\n month,\n disableYearPicker,\n position = \"bottom-start\",\n menuClassName,\n popperClassName,\n enableConfirmModal = false,\n modalHeaderText = \"Discard changes?\",\n modalDiscardMessage = \"All unsaved changes will be lost.\",\n modalDiscardBtnText = \"OK\",\n modalCancelBtnText = \"Cancel\",\n backgroundElementClass,\n popperTooltipClassName,\n popperTooltipStyle,\n open,\n onCalendarToggle,\n onDayClick,\n showControls,\n}) => {\n const [isOpen, setIsOpen] = useState(open);\n const [isYearSelectOpen, setIsYearSelectOpen] = useState(false);\n const [showDiscardModal, setShowDiscardModal] = useState(false);\n const [isMonthSelectOpen, setIsMonthSelectOpen] = useState(\n mode === \"monthly\" || mode === \"quarterly\"\n );\n const [monthTransitionDirection, setMonthTransitionDirection] = useState<\n \"prev\" | \"next\" | null\n >(null);\n\n const [currentDate, setCurrentDate] = useState<Moment>(\n defaultSelected?.from\n ? moment.utc(defaultSelected?.from * 1000)\n : moment.isMoment(month)\n ? month\n : moment.utc(month)\n );\n\n const [targetDate, setTargetDate] = useState<Moment>(\n defaultSelected?.from\n ? moment.utc(defaultSelected?.from * 1000)\n : moment.isMoment(month)\n ? month\n : moment.utc(month)\n );\n\n const [selected, setSelected] = useState<DateRange | null>(\n !defaultSelected\n ? null\n : {\n from: moment.utc(defaultSelected.from * 1000),\n to: moment.utc(Number(defaultSelected.to) * 1000),\n }\n );\n const [hoveredDate, setHoveredDate] = useState<Moment | null>(null);\n\n const timezone = moment.defaultZone\n ? moment.defaultZone.name\n : moment.tz.guess();\n\n const currentDateInTimezone = moment().tz(timezone).format(\"YYYY-MM-DD\");\n\n const today = moment.utc(currentDateInTimezone);\n\n const selectedYearRef = useRef<HTMLDivElement | null>(null);\n const datePickerRef = useRef<HTMLDivElement>(null);\n\n const handleSelection = useCallback(\n (range?: DateRange) => {\n if (!range) {\n setSelected(null);\n if (onChange) onChange(undefined);\n if (instant && onSave) {\n onSave(undefined);\n }\n } else {\n setSelected(range);\n if (onChange)\n onChange({\n from: range.from.utc().unix(),\n to: moment(range.to).utc().unix(),\n });\n if (instant && onSave) {\n onSave({\n from: range.from.utc().unix(),\n to: moment(range.to).utc().unix(),\n });\n }\n }\n },\n [onChange, onSave, instant]\n );\n\n const toggleCalendar = useCallback(() => {\n setIsOpen(!isOpen);\n if (onCalendarToggle) onCalendarToggle(!isOpen);\n }, [isOpen, onCalendarToggle]);\n\n const toggleYearSelect = useCallback(() => {\n setIsYearSelectOpen(!isYearSelectOpen);\n setIsMonthSelectOpen(true);\n }, [isYearSelectOpen]);\n\n const toggleMonthSelect = useCallback(() => {\n if (mode !== \"monthly\" && mode !== \"quarterly\") {\n setIsMonthSelectOpen(!isMonthSelectOpen);\n }\n }, [isMonthSelectOpen, mode]);\n\n useEffect(() => {\n if (defaultSelected) {\n setSelected({\n from: moment.utc(defaultSelected.from * 1000),\n to: moment.utc(Number(defaultSelected.to) * 1000),\n });\n setCurrentDate(moment.utc(defaultSelected.from * 1000) || moment.utc());\n setTargetDate(moment.utc(defaultSelected.from * 1000) || moment.utc());\n } else {\n setSelected(null);\n }\n }, [defaultSelected, month]);\n\n const handleDateSelect = (date: Moment) => {\n const isSameMonth = date.isSame(currentDate, \"month\");\n\n if (isSameMonth || disableAnimations) {\n setCurrentDate(date);\n setTargetDate(date);\n } else {\n const direction = date.isBefore(currentDate, \"month\") ? \"prev\" : \"next\";\n setTargetDate(date);\n setMonthTransitionDirection(direction);\n }\n\n switch (mode) {\n case \"daily\":\n handleDailySelection(date);\n break;\n case \"weekly\":\n handleWeeklySelection(date);\n break;\n case \"custom\":\n handleCustomSelection(date);\n break;\n default:\n console.warn(`Unhandled mode: ${mode}`);\n }\n\n if (instant && mode !== \"custom\" && forceClose) toggleCalendar();\n };\n\n const handleDailySelection = (date: Moment) => {\n if (!date.isSame(selected?.from)) {\n handleSelection({ from: date, to: date });\n } else if (!required) {\n handleSelection(undefined);\n }\n };\n\n const handleWeeklySelection = (date: Moment) => {\n const currentDayOfWeek = date.day();\n\n const daysToSubtract = (currentDayOfWeek - firstDayOfWeek + 7) % 7;\n\n const startOfWeek = date\n .clone()\n .subtract(daysToSubtract, \"days\")\n .startOf(\"day\");\n const endOfWeek = startOfWeek.clone().add(6, \"days\");\n\n if (!startOfWeek.isSame(selected?.from?.startOf(\"day\"))) {\n handleSelection({ from: startOfWeek, to: endOfWeek });\n } else if (!required) {\n handleSelection(undefined);\n }\n };\n\n const handleCustomSelection = (date: Moment) => {\n if (\n !selected ||\n selected?.from === moment.utc(Number(defaultSelected?.from) * 1000)\n ) {\n setSelected({ from: date.utc(), to: null });\n onChange && onChange({ from: date.utc().unix(), to: date.utc().unix() });\n return;\n }\n\n if (\n moment.isMoment(selected?.from) &&\n !selected?.to &&\n !selected?.from.isSame(date.utc(), \"day\")\n ) {\n const newSelection = selected?.from.isBefore(date)\n ? { from: selected.from, to: date.utc() }\n : { from: date.utc(), to: selected.from };\n setSelected(newSelection);\n onChange &&\n onChange({\n from: newSelection.from.utc().unix(),\n to: newSelection.to.utc().unix(),\n });\n } else if (\n moment.isMoment(selected?.from) &&\n moment.isMoment(selected?.to)\n ) {\n setSelected({ from: date.utc(), to: null });\n } else if (selected?.from.isSame(date.utc(), \"day\") && !required) {\n setSelected(null);\n onChange && onChange(undefined);\n }\n };\n\n const handleSave = () => {\n if (onSave) {\n toggleCalendar();\n if (mode === \"custom\" && !selected?.to) {\n setSelected({\n from: moment.utc(selected?.from),\n to: moment.utc(selected?.from),\n });\n }\n if (selected) {\n onSave({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n } else {\n if (!required) {\n onSave(undefined);\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n }\n };\n\n const handleMonthChange = useCallback(\n (direction: \"prev\" | \"next\") => {\n setMonthTransitionDirection(direction);\n if (isMonthSelectOpen) {\n setTargetDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\")\n );\n if (disableAnimations) {\n setCurrentDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\")\n );\n }\n } else {\n setTargetDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"month\")\n : prevDate.clone().add(1, \"month\")\n );\n if (disableAnimations) {\n setCurrentDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"month\")\n : prevDate.clone().add(1, \"month\")\n );\n }\n }\n },\n [disableAnimations, isMonthSelectOpen]\n );\n\n const onAnimationEnd = () => {\n if (targetDate) {\n setCurrentDate(targetDate);\n setMonthTransitionDirection(null);\n }\n };\n\n const handleYearSelect = (year: number) => {\n setCurrentDate(currentDate.clone().year(year));\n setTargetDate(currentDate.clone().year(year));\n setIsYearSelectOpen(false);\n setIsMonthSelectOpen(true);\n };\n\n const handleMonthSelect = (month: number) => {\n const newDate = currentDate.clone().utc().month(month);\n setCurrentDate(newDate);\n setTargetDate(newDate);\n\n if (mode === \"monthly\") {\n const range = {\n from: newDate.clone().startOf(\"month\"),\n to: newDate.clone().endOf(\"month\").startOf(\"day\"),\n };\n\n const isSameMonth =\n selected?.from.isSame(range.from, \"month\") &&\n selected?.to?.isSame(range.to, \"month\");\n\n if (isSameMonth) {\n if (!required) {\n handleSelection(undefined);\n if (instant && onSave) {\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n } else {\n handleSelection(range);\n }\n }\n\n if (mode === \"quarterly\") {\n const quarterRange = {\n from: newDate.clone().startOf(\"quarter\"),\n to: newDate.clone().endOf(\"quarter\").startOf(\"day\"),\n };\n\n const isSameQuarter =\n selected?.from.isSame(quarterRange.from, \"quarter\") &&\n selected?.to?.isSame(quarterRange.to, \"quarter\");\n\n if (isSameQuarter) {\n if (!required) {\n handleSelection(undefined);\n if (instant && onSave) {\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n } else {\n handleSelection(quarterRange);\n }\n }\n\n if (mode !== \"monthly\" && mode !== \"quarterly\") {\n setIsMonthSelectOpen(false);\n }\n if (instant && (mode === \"monthly\" || mode === \"quarterly\") && forceClose)\n toggleCalendar();\n };\n\n useEffect(() => {\n if (isYearSelectOpen && selectedYearRef.current) {\n selectedYearRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }\n }, [isYearSelectOpen]);\n\n const renderDaysOfWeek = () => {\n const daysOfWeek = moment.weekdaysShort();\n const orderedDays = [\n ...daysOfWeek.slice(firstDayOfWeek),\n ...daysOfWeek.slice(0, firstDayOfWeek),\n ];\n return orderedDays.map((day) => (\n <StyledDayName key={day}>{day[0]}</StyledDayName>\n ));\n };\n\n const animationClass = useMemo(() => {\n return monthTransitionDirection && !disableAnimations\n ? monthTransitionDirection === \"next\"\n ? \"slide-down\"\n : \"slide-up\"\n : \"\";\n }, [disableAnimations, monthTransitionDirection]);\n\n const handleDayClick = (day: Moment, modifiers: string[]) => {\n handleDateSelect(day);\n if (onDayClick) onDayClick(day, modifiers);\n };\n\n const getHoverRange = () => {\n if (!hoveredDate) return null;\n\n if (mode === \"quarterly\") {\n const startMonth = hoveredDate.clone().startOf(\"quarter\");\n const endMonth = hoveredDate.clone().endOf(\"quarter\");\n return { from: startMonth, to: endMonth };\n }\n\n if (mode === \"weekly\") {\n const currentDayOfWeek = hoveredDate.day();\n const daysToSubtract = (currentDayOfWeek - firstDayOfWeek + 7) % 7;\n const startOfWeek = hoveredDate\n .clone()\n .subtract(daysToSubtract, \"days\")\n .startOf(\"day\");\n const endOfWeek = startOfWeek.clone().add(6, \"days\");\n\n return { from: startOfWeek, to: endOfWeek };\n }\n\n if (mode === \"custom\" && selected?.from && !selected?.to) {\n const from = selected.from.isBefore(hoveredDate)\n ? selected.from\n : hoveredDate;\n const to = selected.from.isAfter(hoveredDate)\n ? selected.from\n : hoveredDate;\n return { from, to };\n }\n\n return null;\n };\n\n const renderCalendarDates = () => {\n const startOfMonth = currentDate.clone().startOf(\"month\");\n const startDate = startOfMonth.clone().isoWeekday(firstDayOfWeek);\n\n const endDate = startDate.clone().add(6, \"weeks\");\n const date = startDate.clone();\n const dates: React.JSX.Element[] = [];\n\n const hoverRange = getHoverRange();\n\n while (date.isBefore(endDate)) {\n const clonedDate = date.clone();\n const isToday = clonedDate.isSame(today, \"day\");\n const isSelected =\n selected &&\n (clonedDate.isBetween(selected.from, selected.to, \"day\", \"[]\") ||\n clonedDate.isSame(selected.from, \"day\") ||\n clonedDate.isSame(selected.to, \"day\"));\n\n const isHovered =\n hoverRange &&\n (mode === \"weekly\" || mode === \"custom\") &&\n clonedDate.isBetween(hoverRange.from, hoverRange.to, \"day\", \"[]\");\n\n const isDisabled =\n (disabledDaysBefore &&\n clonedDate.isBefore(disabledDaysBefore, \"day\")) ||\n (disabledDaysAfter && clonedDate.isAfter(disabledDaysAfter, \"day\")) ||\n disabledDays.includes(clonedDate.day());\n\n const modifierClasses: string[] = [];\n const modifierTitles: string[] = [];\n let titles;\n\n if (modifiers)\n Object.keys(modifiers || {}).forEach((modifier) => {\n const { matched, title } = modifiers[modifier](clonedDate.toDate());\n if (matched) {\n modifierClasses.push(modifier);\n if (title) modifierTitles.push(title);\n }\n });\n if (modifierTitles.length) {\n titles = (\n <div key={`title-wrapper-${clonedDate.toString()}`}>\n {modifierTitles.map((title: string, index: number) => (\n <div key={`title-text-${index}`}>{title}</div>\n ))}\n </div>\n );\n }\n\n const isOutside = !clonedDate.isSame(currentDate, \"month\");\n\n dates.push(\n <Tooltip\n title={titles}\n disable={!modifierTitles.length}\n key={clonedDate.toString()}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n >\n <StyledCalendarDate\n className={`${isSelected ? \"selected\" : \"\"} ${\n isToday ? \"today-day\" : \"\"\n } \n ${isDisabled ? \"disabled\" : \"\"} ${\n isHovered ? \"hovered\" : \"\"\n } ${modifierClasses.join(\" \")} \n ${isOutside ? \"outside\" : \"\"}`}\n onClick={() => handleDayClick(clonedDate, modifierClasses)}\n onMouseEnter={\n mode === \"weekly\" || mode === \"custom\"\n ? () => setHoveredDate(clonedDate)\n : undefined\n }\n onMouseLeave={\n mode === \"weekly\" || mode === \"custom\"\n ? () => setHoveredDate(null)\n : undefined\n }\n >\n {clonedDate.date()}\n </StyledCalendarDate>\n </Tooltip>\n );\n\n date.add(1, \"day\");\n }\n\n return dates;\n };\n\n const renderYearSelect = () => {\n const years = Array.from({ length: 200 }, (_, i) => 1900 + i);\n return (\n <StyledYearSelect>\n {years.map((year) => {\n const isSelected =\n selected &&\n ((selected?.to &&\n year >= selected.from.year() &&\n year <= selected.to.year()) ||\n year === selected.from.year() ||\n (selected?.to && year === selected.to.year()));\n\n const isDisabledYear =\n (disabledDaysBefore && year < disabledDaysBefore.year()) ||\n (disabledDaysAfter && year > disabledDaysAfter.year());\n\n return (\n <StyledYearOption\n key={year}\n ref={year === currentDate.year() ? selectedYearRef : null}\n className={`${isSelected ? \"selected\" : \"\"} ${\n year === today.year() ? \"today-year\" : \"\"\n } ${isDisabledYear ? \"disabled\" : \"\"}`}\n onClick={() => handleYearSelect(year)}\n >\n {year}\n </StyledYearOption>\n );\n })}\n </StyledYearSelect>\n );\n };\n\n const renderMonthSelect = () => {\n const months = moment.months();\n const hoverRange = getHoverRange();\n\n return (\n <StyledMonthSelect>\n {months.map((month, index) => {\n const monthDate = currentDate.clone().month(index);\n\n const isSelected =\n selected &&\n (monthDate.isBetween(selected.from, selected.to, \"month\", \"[]\") ||\n monthDate.isSame(selected.from, \"month\") ||\n monthDate.isSame(selected.to, \"month\"));\n\n const isDisabledMonth =\n (disabledDaysBefore &&\n monthDate.isBefore(disabledDaysBefore, \"month\")) ||\n (disabledDaysAfter &&\n monthDate.isAfter(disabledDaysAfter, \"month\"));\n\n const isHoveredQuarter =\n hoverRange &&\n mode === \"quarterly\" &&\n monthDate.isBetween(hoverRange.from, hoverRange.to, \"month\", \"[]\");\n\n return (\n <StyledMonthOption\n key={month}\n className={`${isSelected ? \"selected\" : \"\"} ${\n index === today.month() && currentDate.year() === today.year()\n ? \"today-month\"\n : \"\"\n } ${isDisabledMonth ? \"disabled\" : \"\"} ${\n isHoveredQuarter ? \"hovered\" : \"\"\n }`}\n onClick={() => handleMonthSelect(index)}\n onMouseEnter={\n mode === \"quarterly\"\n ? () => setHoveredDate(monthDate)\n : undefined\n }\n onMouseLeave={\n mode === \"quarterly\" ? () => setHoveredDate(null) : undefined\n }\n >\n {month.substring(0, 3)}\n </StyledMonthOption>\n );\n })}\n </StyledMonthSelect>\n );\n };\n\n const captionText = useMemo(() => {\n const isCurrentYear = currentDate.isSame(today, \"year\");\n\n return !isMonthSelectOpen && !isYearSelectOpen\n ? `${currentDate.format(\"MMMM\")}${\n isCurrentYear ? \"\" : ` ${currentDate.format(\"YYYY\")}`\n }`\n : currentDate.format(\"YYYY\");\n }, [currentDate, isMonthSelectOpen, isYearSelectOpen, today]);\n\n const handleClear = useCallback(() => {\n if (typeof onClear === \"function\") onClear();\n handleSelection(undefined);\n }, [handleSelection, onClear]);\n\n const handleClose = useCallback(() => {\n if (mode === \"custom\" && instant && selected) {\n setSelected({\n from: moment.utc(selected?.from),\n to: selected?.to\n ? moment.utc(selected?.to)\n : moment.utc(selected?.from),\n });\n }\n if (\n instant &&\n onSave &&\n mode === \"custom\" &&\n selected &&\n (!selected?.from.isSame(\n moment.utc(Number(defaultSelected?.from) * 1000)\n ) ||\n !selected?.to?.isSame(moment.utc(Number(defaultSelected?.to) * 1000)))\n ) {\n onSave({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n }\n if (mode === \"custom\" && instant && !selected && onSave) {\n onSave(undefined);\n }\n setCurrentDate(\n defaultSelected?.from\n ? moment.utc(defaultSelected?.from * 1000)\n : moment.isMoment(month)\n ? month\n : moment.utc()\n );\n setTargetDate(\n defaultSelected?.from\n ? moment.utc(defaultSelected?.from * 1000)\n : moment.isMoment(month)\n ? month\n : moment.utc()\n );\n setSelected(\n defaultSelected\n ? {\n from: moment.utc(defaultSelected.from * 1000),\n to: moment.utc(Number(defaultSelected.to) * 1000),\n }\n : null\n );\n toggleCalendar();\n setIsYearSelectOpen(false);\n setIsMonthSelectOpen(mode === \"monthly\" || mode === \"quarterly\");\n setMonthTransitionDirection(null);\n if (typeof onClose === \"function\") onClose();\n }, [\n defaultSelected,\n instant,\n mode,\n month,\n onClose,\n onSave,\n selected,\n toggleCalendar,\n ]);\n\n const handleBeforeClose = useCallback(() => {\n let shouldClose = true;\n if (!target || !enableConfirmModal || instant || required) {\n shouldClose = true;\n }\n if (\n target &&\n enableConfirmModal &&\n !instant &&\n !required &&\n ((selected && !defaultSelected) ||\n (!selected && defaultSelected) ||\n (selected?.from &&\n defaultSelected?.from &&\n !selected.from.isSame(moment.utc(defaultSelected.from * 1000))) ||\n (selected?.to &&\n defaultSelected?.to &&\n !selected.to.isSame(moment.utc(defaultSelected.to * 1000))))\n ) {\n shouldClose = false;\n setShowDiscardModal(true);\n }\n if (shouldClose) handleClose();\n return shouldClose;\n }, [\n defaultSelected,\n enableConfirmModal,\n handleClose,\n instant,\n required,\n selected,\n target,\n ]);\n\n const Wrapper = target ? Menu : \"div\";\n\n const handleCaptionClick = useCallback(() => {\n isMonthSelectOpen && !disableYearPicker\n ? toggleYearSelect()\n : toggleMonthSelect();\n }, [\n disableYearPicker,\n isMonthSelectOpen,\n toggleMonthSelect,\n toggleYearSelect,\n ]);\n\n const handleCloseDiscardModal = useCallback(() => {\n setShowDiscardModal(false);\n }, []);\n\n const handleSaveDiscardModal = useCallback(() => {\n setSelected(\n defaultSelected?.from\n ? {\n from: moment.utc(defaultSelected.from * 1000),\n to: moment.utc(Number(defaultSelected?.to) * 1000),\n }\n : null\n );\n setShowDiscardModal(false);\n handleClose();\n }, [defaultSelected, handleClose]);\n\n const wrapperProps = target\n ? {\n className: \"c-date-picker--calendar\",\n target,\n onBeforeClose: handleBeforeClose,\n onClose: handleClose,\n open: isOpen,\n onOpen: toggleCalendar,\n position,\n menuClassName,\n popperClassName,\n backgroundElementClass,\n }\n : { className: \"c-date-picker--calendar\" };\n\n useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"ArrowRight\") {\n handleMonthChange(\"next\");\n } else if (event.key === \"ArrowLeft\") {\n handleMonthChange(\"prev\");\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [handleMonthChange]);\n\n return (\n <StyledDatePickerWrapper ref={datePickerRef}>\n <Wrapper {...wrapperProps}>\n <StyledDatePickerContainerInner>\n <StyledCalendarHeader>\n {isYearSelectOpen ? null : (\n <IconButton\n onClick={() => handleMonthChange(\"prev\")}\n variant=\"text gray\"\n size=\"small\"\n >\n <ArrowLeftIcon />\n </IconButton>\n )}\n <StyledCaption\n className={`${animationClass} ${\n isYearSelectOpen ? \"year-caption\" : \"\"\n }`}\n key={isMonthSelectOpen ? currentDate.year() : currentDate.month()}\n onClick={handleCaptionClick}\n onAnimationEnd={onAnimationEnd}\n >\n {captionText}\n </StyledCaption>\n {isYearSelectOpen ? null : (\n <IconButton\n onClick={() => handleMonthChange(\"next\")}\n variant=\"text gray\"\n size=\"small\"\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </StyledCalendarHeader>\n <StyledCalendarSelector>\n {isYearSelectOpen ? (\n renderYearSelect()\n ) : isMonthSelectOpen ? (\n <StyledMonthSelector\n className={animationClass}\n key={currentDate.year()}\n onAnimationEnd={onAnimationEnd}\n >\n {renderMonthSelect()}\n </StyledMonthSelector>\n ) : (\n <>\n <StyledDaysOfWeek>{renderDaysOfWeek()}</StyledDaysOfWeek>\n <StyledCalendarDates\n className={animationClass}\n key={currentDate.month()}\n >\n {renderCalendarDates()}\n </StyledCalendarDates>\n </>\n )}\n </StyledCalendarSelector>\n {(target || showControls) &&\n (!instant ? (\n <StyledControls>\n <StyledControlsLeft>\n <Button\n size=\"small\"\n variant=\"primary\"\n onClick={handleSave}\n disabled={\n (selected?.from.isSame(\n moment.utc(Number(defaultSelected?.from) * 1000)\n ) &&\n selected?.to?.isSame(\n moment.utc(Number(defaultSelected?.to) * 1000)\n )) ||\n (!defaultSelected && !selected)\n }\n >\n {saveLabel}\n </Button>\n <Tooltip\n title={cancelLabel}\n popperTooltipStyle={{ zIndex: 1301 }}\n >\n <IconButton\n size=\"small\"\n variant=\"text gray\"\n onClick={handleBeforeClose}\n >\n <CancelCrossIcon />\n </IconButton>\n </Tooltip>\n </StyledControlsLeft>\n {!required ? (\n <Button\n size=\"small\"\n onClick={handleClear}\n variant=\"text gray\"\n >\n {clearLabel}\n </Button>\n ) : null}\n </StyledControls>\n ) : !required ? (\n <StyledControls>\n <StyledClearInstantButton\n size=\"small\"\n onClick={handleClear}\n variant=\"text gray\"\n >\n {clearLabel}\n </StyledClearInstantButton>\n </StyledControls>\n ) : null)}\n </StyledDatePickerContainerInner>\n </Wrapper>\n {!instant && target && !required && enableConfirmModal ? (\n <StyledConfirmDialog\n className=\"modal-select-date\"\n open={showDiscardModal}\n onCancel={handleCloseDiscardModal}\n onConfirm={handleSaveDiscardModal}\n dialogTitle={modalHeaderText}\n dialogContent={modalDiscardMessage}\n cancelBtnText={modalCancelBtnText}\n confirmBtnText={modalDiscardBtnText}\n />\n ) : null}\n </StyledDatePickerWrapper>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"DatePickerV2.js","names":["React","useState","useRef","useEffect","useCallback","useMemo","moment","StyledCalendarDate","StyledCalendarDates","StyledCalendarHeader","StyledCalendarSelector","StyledCaption","StyledClearInstantButton","StyledConfirmDialog","StyledControls","StyledControlsLeft","StyledDatePickerContainerInner","StyledDatePickerWrapper","StyledDayName","StyledDaysOfWeek","StyledMonthOption","StyledMonthSelect","StyledMonthSelector","StyledYearOption","StyledYearSelect","Button","IconButton","ArrowLeftIcon","ArrowRightIcon","CancelCrossIcon","Menu","Tooltip","DatePickerV2","_ref","_selected$to4","selected","defaultSelected","onChange","onSave","onClear","onClose","instant","target","mode","saveLabel","cancelLabel","clearLabel","disabledDaysBefore","disabledDaysAfter","disabled","disabledDays","modifiers","disableAnimations","firstDayOfWeek","forceClose","required","month","disableYearPicker","position","menuClassName","popperClassName","enableConfirmModal","modalHeaderText","modalDiscardMessage","modalDiscardBtnText","modalCancelBtnText","backgroundElementClass","popperTooltipClassName","popperTooltipStyle","open","onCalendarToggle","onDayClick","showControls","isOpen","setIsOpen","isYearSelectOpen","setIsYearSelectOpen","showDiscardModal","setShowDiscardModal","isMonthSelectOpen","setIsMonthSelectOpen","monthTransitionDirection","setMonthTransitionDirection","currentDate","setCurrentDate","from","utc","isMoment","targetDate","setTargetDate","setSelected","to","Number","hoveredDate","setHoveredDate","timezone","defaultZone","name","tz","guess","currentDateInTimezone","format","today","selectedYearRef","datePickerRef","handleSelection","range","undefined","unix","toggleCalendar","toggleYearSelect","toggleMonthSelect","handleDateSelect","date","isSameMonth","isSame","direction","isBefore","handleDailySelection","handleWeeklySelection","handleCustomSelection","console","warn","_selected$from","currentDayOfWeek","day","daysToSubtract","startOfWeek","clone","subtract","startOf","endOfWeek","add","newSelection","handleSave","handleMonthChange","prevDate","onAnimationEnd","handleYearSelect","year","handleMonthSelect","newDate","_selected$to","endOf","_selected$to2","quarterRange","isSameQuarter","current","_selectedYearRef$curr","scrollIntoView","behavior","block","renderDaysOfWeek","daysOfWeek","weekdaysShort","orderedDays","slice","map","createElement","key","animationClass","handleDayClick","getHoverRange","startMonth","endMonth","isAfter","renderCalendarDates","startOfMonth","startDate","isoWeekday","endDate","dates","hoverRange","clonedDate","isToday","isSelected","isBetween","isHovered","isDisabled","includes","modifierClasses","modifierTitles","titles","Object","keys","forEach","modifier","matched","title","toDate","push","length","toString","index","isOutside","disable","className","join","onClick","onMouseEnter","onMouseLeave","renderYearSelect","years","Array","_","i","isDisabledYear","ref","renderMonthSelect","months","monthDate","isDisabledMonth","isHoveredQuarter","substring","captionText","isCurrentYear","handleClear","handleClose","_selected$to3","handleBeforeClose","shouldClose","Wrapper","handleCaptionClick","handleCloseDiscardModal","handleSaveDiscardModal","wrapperProps","onBeforeClose","onOpen","handleKeyDown","event","window","addEventListener","removeEventListener","variant","size","Fragment","zIndex","onCancel","onConfirm","dialogTitle","dialogContent","cancelBtnText","confirmBtnText"],"sources":["../../../../src/components/DatePicker/DatePickerV2.tsx"],"sourcesContent":["import React, {\n useState,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n CSSProperties,\n} from \"react\";\n\nimport { Moment } from \"moment\";\nimport moment from \"moment-timezone\";\n\nimport {\n StyledCalendarDate,\n StyledCalendarDates,\n StyledCalendarHeader,\n StyledCalendarSelector,\n StyledCaption,\n StyledClearInstantButton,\n StyledConfirmDialog,\n StyledControls,\n StyledControlsLeft,\n StyledDatePickerContainerInner,\n StyledDatePickerWrapper,\n StyledDayName,\n StyledDaysOfWeek,\n StyledMonthOption,\n StyledMonthSelect,\n StyledMonthSelector,\n StyledYearOption,\n StyledYearSelect,\n} from \"./StylesV2\";\nimport { Button } from \"../Button\";\nimport { IconButton } from \"../IconButton\";\nimport { ArrowLeftIcon, ArrowRightIcon, CancelCrossIcon } from \"../Icons\";\nimport { Menu } from \"../Menu\";\nimport { Placement } from \"../Popper\";\nimport { ElementWithRef } from \"../Select\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport type ChangeMode =\n | \"daily\"\n | \"weekly\"\n | \"monthly\"\n | \"quarterly\"\n | \"custom\";\n\nexport interface DateRange {\n from: Moment;\n to: Moment | null;\n}\n\nexport interface TimestampDateRange {\n from: number;\n to: number | null;\n}\n\nexport interface DatePickerProps {\n selected?: TimestampDateRange;\n onChange?: (range?: TimestampDateRange) => void;\n onSave?: (range?: TimestampDateRange) => void;\n onClear?: () => void;\n onClose?: () => void;\n instant?: boolean;\n target?: ElementWithRef<Element>;\n mode: ChangeMode;\n saveLabel?: string;\n cancelLabel?: string;\n clearLabel?: string;\n disabledDaysBefore?: Moment;\n disabledDaysAfter?: Moment;\n disabled?: number[];\n modifiers?: {\n [key: string]: (day: Date) => { matched: boolean; title: string | null };\n };\n disableAnimations?: boolean;\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n forceClose?: boolean;\n required?: boolean;\n month?: Moment | number;\n disableYearPicker?: boolean;\n position?: Placement;\n /** Popper class name*/\n popperClassName?: string;\n backgroundElementClass?: string;\n /** Menu classes */\n menuClassName?: string;\n enableConfirmModal?: boolean;\n /** Modal header text */\n modalHeaderText?: string;\n /** Modal cancel button text */\n modalCancelBtnText?: string;\n /** Modal discard button text */\n modalDiscardBtnText?: string;\n /** Modal discard message text */\n modalDiscardMessage?: string;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n open?: boolean;\n onCalendarToggle?: (value: boolean) => void;\n /** Called when day is clicked */\n onDayClick?: (day: Moment, modifiers: string[]) => void;\n showControls?: boolean;\n}\n\nexport const DatePickerV2: React.FC<DatePickerProps> = ({\n selected: defaultSelected,\n onChange,\n onSave,\n onClear,\n onClose,\n instant = true,\n target,\n mode = \"daily\",\n saveLabel = \"Save\",\n cancelLabel = \"Cancel\",\n clearLabel = \"Clear\",\n disabledDaysBefore,\n disabledDaysAfter,\n disabled: disabledDays = [],\n modifiers,\n disableAnimations,\n firstDayOfWeek = 0,\n forceClose,\n required,\n month,\n disableYearPicker,\n position = \"bottom-start\",\n menuClassName,\n popperClassName,\n enableConfirmModal = false,\n modalHeaderText = \"Discard changes?\",\n modalDiscardMessage = \"All unsaved changes will be lost.\",\n modalDiscardBtnText = \"OK\",\n modalCancelBtnText = \"Cancel\",\n backgroundElementClass,\n popperTooltipClassName,\n popperTooltipStyle,\n open,\n onCalendarToggle,\n onDayClick,\n showControls,\n}) => {\n const [isOpen, setIsOpen] = useState(open);\n const [isYearSelectOpen, setIsYearSelectOpen] = useState(false);\n const [showDiscardModal, setShowDiscardModal] = useState(false);\n const [isMonthSelectOpen, setIsMonthSelectOpen] = useState(\n mode === \"monthly\" || mode === \"quarterly\"\n );\n const [monthTransitionDirection, setMonthTransitionDirection] = useState<\n \"prev\" | \"next\" | null\n >(null);\n\n const [currentDate, setCurrentDate] = useState<Moment>(\n defaultSelected?.from\n ? moment.utc(defaultSelected?.from * 1000)\n : moment.isMoment(month)\n ? month\n : moment.utc(month)\n );\n\n const [targetDate, setTargetDate] = useState<Moment>(\n defaultSelected?.from\n ? moment.utc(defaultSelected?.from * 1000)\n : moment.isMoment(month)\n ? month\n : moment.utc(month)\n );\n\n const [selected, setSelected] = useState<DateRange | null>(\n !defaultSelected\n ? null\n : {\n from: moment.utc(defaultSelected.from * 1000),\n to: moment.utc(Number(defaultSelected.to) * 1000),\n }\n );\n const [hoveredDate, setHoveredDate] = useState<Moment | null>(null);\n\n const timezone = moment.defaultZone\n ? moment.defaultZone.name\n : moment.tz.guess();\n\n const currentDateInTimezone = moment().tz(timezone).format(\"YYYY-MM-DD\");\n\n const today = moment.utc(currentDateInTimezone);\n\n const selectedYearRef = useRef<HTMLDivElement | null>(null);\n const datePickerRef = useRef<HTMLDivElement>(null);\n\n const handleSelection = useCallback(\n (range?: DateRange) => {\n if (!range) {\n setSelected(null);\n if (onChange) onChange(undefined);\n if (instant && onSave) {\n onSave(undefined);\n }\n } else {\n setSelected(range);\n if (onChange)\n onChange({\n from: range.from.utc().unix(),\n to: moment(range.to).utc().unix(),\n });\n if (instant && onSave) {\n onSave({\n from: range.from.utc().unix(),\n to: moment(range.to).utc().unix(),\n });\n }\n }\n },\n [onChange, onSave, instant]\n );\n\n const toggleCalendar = useCallback(() => {\n setIsOpen(!isOpen);\n if (onCalendarToggle) onCalendarToggle(!isOpen);\n }, [isOpen, onCalendarToggle]);\n\n const toggleYearSelect = useCallback(() => {\n setIsYearSelectOpen(!isYearSelectOpen);\n setIsMonthSelectOpen(true);\n }, [isYearSelectOpen]);\n\n const toggleMonthSelect = useCallback(() => {\n if (mode !== \"monthly\" && mode !== \"quarterly\") {\n setIsMonthSelectOpen(!isMonthSelectOpen);\n }\n }, [isMonthSelectOpen, mode]);\n\n useEffect(() => {\n if (defaultSelected) {\n setSelected({\n from: moment.utc(defaultSelected.from * 1000),\n to: moment.utc(Number(defaultSelected.to) * 1000),\n });\n setCurrentDate(moment.utc(defaultSelected.from * 1000) || moment.utc());\n setTargetDate(moment.utc(defaultSelected.from * 1000) || moment.utc());\n } else {\n setSelected(null);\n }\n }, [defaultSelected, month]);\n\n const handleDateSelect = (date: Moment) => {\n const isSameMonth = date.isSame(currentDate, \"month\");\n\n if (isSameMonth || disableAnimations) {\n setCurrentDate(date);\n setTargetDate(date);\n } else {\n const direction = date.isBefore(currentDate, \"month\") ? \"prev\" : \"next\";\n setTargetDate(date);\n setMonthTransitionDirection(direction);\n }\n\n switch (mode) {\n case \"daily\":\n handleDailySelection(date);\n break;\n case \"weekly\":\n handleWeeklySelection(date);\n break;\n case \"custom\":\n handleCustomSelection(date);\n break;\n default:\n console.warn(`Unhandled mode: ${mode}`);\n }\n\n if (instant && mode !== \"custom\" && forceClose) toggleCalendar();\n };\n\n const handleDailySelection = (date: Moment) => {\n if (!date.isSame(selected?.from)) {\n handleSelection({ from: date, to: date });\n } else if (!required) {\n handleSelection(undefined);\n }\n };\n\n const handleWeeklySelection = (date: Moment) => {\n const currentDayOfWeek = date.day();\n\n const daysToSubtract = (currentDayOfWeek - firstDayOfWeek + 7) % 7;\n\n const startOfWeek = date\n .clone()\n .subtract(daysToSubtract, \"days\")\n .startOf(\"day\");\n const endOfWeek = startOfWeek.clone().add(6, \"days\");\n\n if (!startOfWeek.isSame(selected?.from?.startOf(\"day\"))) {\n handleSelection({ from: startOfWeek, to: endOfWeek });\n } else if (!required) {\n handleSelection(undefined);\n }\n };\n\n const handleCustomSelection = (date: Moment) => {\n if (\n !selected ||\n selected?.from === moment.utc(Number(defaultSelected?.from) * 1000)\n ) {\n setSelected({ from: date.utc(), to: null });\n onChange && onChange({ from: date.utc().unix(), to: date.utc().unix() });\n return;\n }\n\n if (\n moment.isMoment(selected?.from) &&\n !selected?.to &&\n !selected?.from.isSame(date.utc(), \"day\")\n ) {\n const newSelection = selected?.from.isBefore(date)\n ? { from: selected.from, to: date.utc() }\n : { from: date.utc(), to: selected.from };\n setSelected(newSelection);\n onChange &&\n onChange({\n from: newSelection.from.utc().unix(),\n to: newSelection.to.utc().unix(),\n });\n } else if (\n moment.isMoment(selected?.from) &&\n moment.isMoment(selected?.to)\n ) {\n setSelected({ from: date.utc(), to: null });\n } else if (selected?.from.isSame(date.utc(), \"day\") && !required) {\n setSelected(null);\n onChange && onChange(undefined);\n }\n };\n\n const handleSave = () => {\n if (onSave) {\n toggleCalendar();\n if (mode === \"custom\" && !selected?.to) {\n setSelected({\n from: moment.utc(selected?.from),\n to: moment.utc(selected?.from),\n });\n }\n if (selected) {\n onSave({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n } else {\n if (!required) {\n onSave(undefined);\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n }\n };\n\n const handleMonthChange = useCallback(\n (direction: \"prev\" | \"next\") => {\n setMonthTransitionDirection(direction);\n if (isMonthSelectOpen) {\n setTargetDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\")\n );\n if (disableAnimations) {\n setCurrentDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\")\n );\n }\n } else {\n setTargetDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"month\")\n : prevDate.clone().add(1, \"month\")\n );\n if (disableAnimations) {\n setCurrentDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"month\")\n : prevDate.clone().add(1, \"month\")\n );\n }\n }\n },\n [disableAnimations, isMonthSelectOpen]\n );\n\n const onAnimationEnd = () => {\n if (targetDate) {\n setCurrentDate(targetDate);\n setMonthTransitionDirection(null);\n }\n };\n\n const handleYearSelect = (year: number) => {\n setCurrentDate(currentDate.clone().year(year));\n setTargetDate(currentDate.clone().year(year));\n setIsYearSelectOpen(false);\n setIsMonthSelectOpen(true);\n };\n\n const handleMonthSelect = (month: number) => {\n const newDate = currentDate.clone().utc().month(month);\n setCurrentDate(newDate);\n setTargetDate(newDate);\n\n if (mode === \"monthly\") {\n const range = {\n from: newDate.clone().startOf(\"month\"),\n to: newDate.clone().endOf(\"month\").startOf(\"day\"),\n };\n\n const isSameMonth =\n selected?.from.isSame(range.from, \"month\") &&\n selected?.to?.isSame(range.to, \"month\");\n\n if (isSameMonth) {\n if (!required) {\n handleSelection(undefined);\n if (instant && onSave) {\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n } else {\n handleSelection(range);\n }\n }\n\n if (mode === \"quarterly\") {\n const quarterRange = {\n from: newDate.clone().startOf(\"quarter\"),\n to: newDate.clone().endOf(\"quarter\").startOf(\"day\"),\n };\n\n const isSameQuarter =\n selected?.from.isSame(quarterRange.from, \"quarter\") &&\n selected?.to?.isSame(quarterRange.to, \"quarter\");\n\n if (isSameQuarter) {\n if (!required) {\n handleSelection(undefined);\n if (instant && onSave) {\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n } else {\n handleSelection(quarterRange);\n }\n }\n\n if (mode !== \"monthly\" && mode !== \"quarterly\") {\n setIsMonthSelectOpen(false);\n }\n if (instant && (mode === \"monthly\" || mode === \"quarterly\") && forceClose)\n toggleCalendar();\n };\n\n useEffect(() => {\n if (isYearSelectOpen && selectedYearRef.current) {\n selectedYearRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }\n }, [isYearSelectOpen]);\n\n const renderDaysOfWeek = () => {\n const daysOfWeek = moment.weekdaysShort();\n const orderedDays = [\n ...daysOfWeek.slice(firstDayOfWeek),\n ...daysOfWeek.slice(0, firstDayOfWeek),\n ];\n return orderedDays.map((day) => (\n <StyledDayName key={day}>{day[0]}</StyledDayName>\n ));\n };\n\n const animationClass = useMemo(() => {\n return monthTransitionDirection && !disableAnimations\n ? monthTransitionDirection === \"next\"\n ? \"slide-down\"\n : \"slide-up\"\n : \"\";\n }, [disableAnimations, monthTransitionDirection]);\n\n const handleDayClick = (day: Moment, modifiers: string[]) => {\n handleDateSelect(day);\n if (onDayClick) onDayClick(day, modifiers);\n };\n\n const getHoverRange = () => {\n if (!hoveredDate) return null;\n\n if (mode === \"quarterly\") {\n const startMonth = hoveredDate.clone().startOf(\"quarter\");\n const endMonth = hoveredDate.clone().endOf(\"quarter\");\n return { from: startMonth, to: endMonth };\n }\n\n if (mode === \"weekly\") {\n const currentDayOfWeek = hoveredDate.day();\n const daysToSubtract = (currentDayOfWeek - firstDayOfWeek + 7) % 7;\n const startOfWeek = hoveredDate\n .clone()\n .subtract(daysToSubtract, \"days\")\n .startOf(\"day\");\n const endOfWeek = startOfWeek.clone().add(6, \"days\");\n\n return { from: startOfWeek, to: endOfWeek };\n }\n\n if (mode === \"custom\" && selected?.from && !selected?.to) {\n const from = selected.from.isBefore(hoveredDate)\n ? selected.from\n : hoveredDate;\n const to = selected.from.isAfter(hoveredDate)\n ? selected.from\n : hoveredDate;\n return { from, to };\n }\n\n return null;\n };\n\n const renderCalendarDates = () => {\n const startOfMonth = currentDate.clone().startOf(\"month\");\n const startDate = startOfMonth.clone().isoWeekday(firstDayOfWeek);\n\n const endDate = startDate.clone().add(6, \"weeks\");\n const date = startDate.clone();\n const dates: React.JSX.Element[] = [];\n\n const hoverRange = getHoverRange();\n\n while (date.isBefore(endDate)) {\n const clonedDate = date.clone();\n const isToday = clonedDate.isSame(today, \"day\");\n const isSelected =\n selected &&\n (clonedDate.isBetween(selected.from, selected.to, \"day\", \"[]\") ||\n clonedDate.isSame(selected.from, \"day\") ||\n clonedDate.isSame(selected.to, \"day\"));\n\n const isHovered =\n hoverRange &&\n (mode === \"weekly\" || mode === \"custom\") &&\n clonedDate.isBetween(hoverRange.from, hoverRange.to, \"day\", \"[]\");\n\n const isDisabled =\n (disabledDaysBefore &&\n clonedDate.isBefore(disabledDaysBefore, \"day\")) ||\n (disabledDaysAfter && clonedDate.isAfter(disabledDaysAfter, \"day\")) ||\n disabledDays.includes(clonedDate.day());\n\n const modifierClasses: string[] = [];\n const modifierTitles: string[] = [];\n let titles;\n\n if (modifiers)\n Object.keys(modifiers || {}).forEach((modifier) => {\n const { matched, title } = modifiers[modifier](clonedDate.toDate());\n if (matched) {\n modifierClasses.push(modifier);\n if (title) modifierTitles.push(title);\n }\n });\n if (modifierTitles.length) {\n titles = (\n <div key={`title-wrapper-${clonedDate.toString()}`}>\n {modifierTitles.map((title: string, index: number) => (\n <div key={`title-text-${index}`}>{title}</div>\n ))}\n </div>\n );\n }\n\n const isOutside = !clonedDate.isSame(currentDate, \"month\");\n\n dates.push(\n <Tooltip\n title={titles}\n disable={!modifierTitles.length}\n key={clonedDate.toString()}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n >\n <StyledCalendarDate\n className={`${isSelected ? \"selected\" : \"\"} ${\n isToday ? \"today-day\" : \"\"\n }\n ${isDisabled ? \"disabled\" : \"\"} ${\n isHovered ? \"hovered\" : \"\"\n } ${modifierClasses.join(\" \")}\n ${isOutside ? \"outside\" : \"\"}`}\n onClick={() => handleDayClick(clonedDate, modifierClasses)}\n onMouseEnter={\n mode === \"weekly\" || mode === \"custom\"\n ? () => setHoveredDate(clonedDate)\n : undefined\n }\n onMouseLeave={\n mode === \"weekly\" || mode === \"custom\"\n ? () => setHoveredDate(null)\n : undefined\n }\n >\n {clonedDate.date()}\n </StyledCalendarDate>\n </Tooltip>\n );\n\n date.add(1, \"day\");\n }\n\n return dates;\n };\n\n const renderYearSelect = () => {\n const years = Array.from({ length: 200 }, (_, i) => 1900 + i);\n return (\n <StyledYearSelect>\n {years.map((year) => {\n const isSelected =\n selected &&\n ((selected?.to &&\n year >= selected.from.year() &&\n year <= selected.to.year()) ||\n year === selected.from.year() ||\n (selected?.to && year === selected.to.year()));\n\n const isDisabledYear =\n (disabledDaysBefore && year < disabledDaysBefore.year()) ||\n (disabledDaysAfter && year > disabledDaysAfter.year());\n\n return (\n <StyledYearOption\n key={year}\n ref={year === currentDate.year() ? selectedYearRef : null}\n className={`${isSelected ? \"selected\" : \"\"} ${\n year === today.year() ? \"today-year\" : \"\"\n } ${isDisabledYear ? \"disabled\" : \"\"}`}\n onClick={() => handleYearSelect(year)}\n >\n {year}\n </StyledYearOption>\n );\n })}\n </StyledYearSelect>\n );\n };\n\n const renderMonthSelect = () => {\n const months = moment.months();\n const hoverRange = getHoverRange();\n\n return (\n <StyledMonthSelect>\n {months.map((month, index) => {\n const monthDate = currentDate.clone().month(index);\n\n const isSelected =\n selected &&\n (monthDate.isBetween(selected.from, selected.to, \"month\", \"[]\") ||\n monthDate.isSame(selected.from, \"month\") ||\n monthDate.isSame(selected.to, \"month\"));\n\n const isDisabledMonth =\n (disabledDaysBefore &&\n monthDate.isBefore(disabledDaysBefore, \"month\")) ||\n (disabledDaysAfter &&\n monthDate.isAfter(disabledDaysAfter, \"month\"));\n\n const isHoveredQuarter =\n hoverRange &&\n mode === \"quarterly\" &&\n monthDate.isBetween(hoverRange.from, hoverRange.to, \"month\", \"[]\");\n\n return (\n <StyledMonthOption\n key={month}\n className={`${isSelected ? \"selected\" : \"\"} ${\n index === today.month() && currentDate.year() === today.year()\n ? \"today-month\"\n : \"\"\n } ${isDisabledMonth ? \"disabled\" : \"\"} ${\n isHoveredQuarter ? \"hovered\" : \"\"\n }`}\n onClick={() => handleMonthSelect(index)}\n onMouseEnter={\n mode === \"quarterly\"\n ? () => setHoveredDate(monthDate)\n : undefined\n }\n onMouseLeave={\n mode === \"quarterly\" ? () => setHoveredDate(null) : undefined\n }\n >\n {month.substring(0, 3)}\n </StyledMonthOption>\n );\n })}\n </StyledMonthSelect>\n );\n };\n\n const captionText = useMemo(() => {\n const isCurrentYear = currentDate.isSame(today, \"year\");\n\n return !isMonthSelectOpen && !isYearSelectOpen\n ? `${currentDate.format(\"MMMM\")}${\n isCurrentYear ? \"\" : ` ${currentDate.format(\"YYYY\")}`\n }`\n : currentDate.format(\"YYYY\");\n }, [currentDate, isMonthSelectOpen, isYearSelectOpen, today]);\n\n const handleClear = useCallback(() => {\n if (typeof onClear === \"function\") onClear();\n handleSelection(undefined);\n }, [handleSelection, onClear]);\n\n const handleClose = useCallback(() => {\n if (mode === \"custom\" && instant && selected) {\n setSelected({\n from: moment.utc(selected?.from),\n to: selected?.to\n ? moment.utc(selected?.to)\n : moment.utc(selected?.from),\n });\n }\n if (\n instant &&\n onSave &&\n mode === \"custom\" &&\n selected &&\n (!selected?.from.isSame(\n moment.utc(Number(defaultSelected?.from) * 1000)\n ) ||\n !selected?.to?.isSame(moment.utc(Number(defaultSelected?.to) * 1000)))\n ) {\n onSave({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n }\n if (mode === \"custom\" && instant && !selected && onSave) {\n onSave(undefined);\n }\n setCurrentDate(\n defaultSelected?.from\n ? moment.utc(defaultSelected?.from * 1000)\n : moment.isMoment(month)\n ? month\n : moment.utc()\n );\n setTargetDate(\n defaultSelected?.from\n ? moment.utc(defaultSelected?.from * 1000)\n : moment.isMoment(month)\n ? month\n : moment.utc()\n );\n setSelected(\n defaultSelected\n ? {\n from: moment.utc(defaultSelected.from * 1000),\n to: moment.utc(Number(defaultSelected.to) * 1000),\n }\n : null\n );\n toggleCalendar();\n setIsYearSelectOpen(false);\n setIsMonthSelectOpen(mode === \"monthly\" || mode === \"quarterly\");\n setMonthTransitionDirection(null);\n if (typeof onClose === \"function\") onClose();\n }, [\n defaultSelected,\n instant,\n mode,\n month,\n onClose,\n onSave,\n selected,\n toggleCalendar,\n ]);\n\n const handleBeforeClose = useCallback(() => {\n let shouldClose = true;\n if (!target || !enableConfirmModal || instant || required) {\n shouldClose = true;\n }\n if (\n target &&\n enableConfirmModal &&\n !instant &&\n !required &&\n ((selected && !defaultSelected) ||\n (!selected && defaultSelected) ||\n (selected?.from &&\n defaultSelected?.from &&\n !selected.from.isSame(moment.utc(defaultSelected.from * 1000))) ||\n (selected?.to &&\n defaultSelected?.to &&\n !selected.to.isSame(moment.utc(defaultSelected.to * 1000))))\n ) {\n shouldClose = false;\n setShowDiscardModal(true);\n }\n if (shouldClose) handleClose();\n return shouldClose;\n }, [\n defaultSelected,\n enableConfirmModal,\n handleClose,\n instant,\n required,\n selected,\n target,\n ]);\n\n const Wrapper = target ? Menu : \"div\";\n\n const handleCaptionClick = useCallback(() => {\n isMonthSelectOpen && !disableYearPicker\n ? toggleYearSelect()\n : toggleMonthSelect();\n }, [\n disableYearPicker,\n isMonthSelectOpen,\n toggleMonthSelect,\n toggleYearSelect,\n ]);\n\n const handleCloseDiscardModal = useCallback(() => {\n setShowDiscardModal(false);\n }, []);\n\n const handleSaveDiscardModal = useCallback(() => {\n setSelected(\n defaultSelected?.from\n ? {\n from: moment.utc(defaultSelected.from * 1000),\n to: moment.utc(Number(defaultSelected?.to) * 1000),\n }\n : null\n );\n setShowDiscardModal(false);\n handleClose();\n }, [defaultSelected, handleClose]);\n\n const wrapperProps = target\n ? {\n className: \"c-date-picker--calendar\",\n target,\n onBeforeClose: handleBeforeClose,\n onClose: handleClose,\n open: isOpen,\n onOpen: toggleCalendar,\n position,\n menuClassName,\n popperClassName,\n backgroundElementClass,\n }\n : { className: \"c-date-picker--calendar\" };\n\n useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"ArrowRight\") {\n handleMonthChange(\"next\");\n } else if (event.key === \"ArrowLeft\") {\n handleMonthChange(\"prev\");\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [handleMonthChange]);\n\n return (\n <StyledDatePickerWrapper ref={datePickerRef}>\n <Wrapper {...wrapperProps}>\n <StyledDatePickerContainerInner>\n <StyledCalendarHeader>\n {isYearSelectOpen ? null : (\n <IconButton\n onClick={() => handleMonthChange(\"prev\")}\n variant=\"text gray\"\n size=\"small\"\n >\n <ArrowLeftIcon />\n </IconButton>\n )}\n <StyledCaption\n className={`${animationClass} ${\n isYearSelectOpen ? \"year-caption\" : \"\"\n }`}\n key={isMonthSelectOpen ? currentDate.year() : currentDate.month()}\n onClick={handleCaptionClick}\n onAnimationEnd={onAnimationEnd}\n >\n {captionText}\n </StyledCaption>\n {isYearSelectOpen ? null : (\n <IconButton\n onClick={() => handleMonthChange(\"next\")}\n variant=\"text gray\"\n size=\"small\"\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </StyledCalendarHeader>\n <StyledCalendarSelector>\n {isYearSelectOpen ? (\n renderYearSelect()\n ) : isMonthSelectOpen ? (\n <StyledMonthSelector\n className={animationClass}\n key={currentDate.year()}\n onAnimationEnd={onAnimationEnd}\n >\n {renderMonthSelect()}\n </StyledMonthSelector>\n ) : (\n <>\n <StyledDaysOfWeek>{renderDaysOfWeek()}</StyledDaysOfWeek>\n <StyledCalendarDates\n className={animationClass}\n key={currentDate.month()}\n >\n {renderCalendarDates()}\n </StyledCalendarDates>\n </>\n )}\n </StyledCalendarSelector>\n {(target || showControls) &&\n (!instant ? (\n <StyledControls>\n <StyledControlsLeft>\n <Button\n size=\"small\"\n variant=\"primary\"\n onClick={handleSave}\n disabled={\n (selected?.from.isSame(\n moment.utc(Number(defaultSelected?.from) * 1000)\n ) &&\n selected?.to?.isSame(\n moment.utc(Number(defaultSelected?.to) * 1000)\n )) ||\n (!defaultSelected && !selected)\n }\n >\n {saveLabel}\n </Button>\n <Tooltip\n title={cancelLabel}\n popperTooltipStyle={{ zIndex: 1301 }}\n >\n <IconButton\n size=\"small\"\n variant=\"text gray\"\n onClick={handleBeforeClose}\n >\n <CancelCrossIcon />\n </IconButton>\n </Tooltip>\n </StyledControlsLeft>\n {!required ? (\n <Button\n size=\"small\"\n onClick={handleClear}\n variant=\"text gray\"\n >\n {clearLabel}\n </Button>\n ) : null}\n </StyledControls>\n ) : !required ? (\n <StyledControls>\n <StyledClearInstantButton\n size=\"small\"\n onClick={handleClear}\n variant=\"text gray\"\n >\n {clearLabel}\n </StyledClearInstantButton>\n </StyledControls>\n ) : null)}\n </StyledDatePickerContainerInner>\n </Wrapper>\n {!instant && target && !required && enableConfirmModal ? (\n <StyledConfirmDialog\n className=\"modal-select-date\"\n open={showDiscardModal}\n onCancel={handleCloseDiscardModal}\n onConfirm={handleSaveDiscardModal}\n dialogTitle={modalHeaderText}\n dialogContent={modalDiscardMessage}\n cancelBtnText={modalCancelBtnText}\n confirmBtnText={modalDiscardBtnText}\n />\n ) : null}\n </StyledDatePickerWrapper>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDateV2.d.ts","sourceRoot":"","sources":["../../../../src/components/SelectDate/SelectDateV2.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectDateV2.d.ts","sourceRoot":"","sources":["../../../../src/components/SelectDate/SelectDateV2.tsx"],"names":[],"mappings":"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"}
@@ -184,6 +184,7 @@ export const SelectDateV2 = _ref => {
184
184
  popperTooltipStyle: popperTooltipStyle,
185
185
  disabled: weekendIsSelectable ? [] : [0, 6],
186
186
  onSave: onSave,
187
+ onChange: onSave,
187
188
  modifiers: modifiers,
188
189
  onDayClick: onDayClick,
189
190
  disableYearPicker: !enableYearPicker,
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDateV2.js","names":["React","useMemo","classnames","moment","SelectDateTarget","StyledSelectDate","StyledSelectDateButton","formatDate","DatePickerV2","isDayInRange","day","data","repeating","from","Date","getFullYear","getMonth","getDate","to","SelectDateV2","_ref","changeMode","mode","trigger","labelType","saveButtonText","cancelButtonText","clearButtonText","modalHeaderText","modalDiscardMessage","modalDiscardBtnText","modalCancelBtnText","onDayClick","onSave","onCancel","onToggleDatePicker","required","dateRequired","longDateFormat","defaultShowDatePicker","firstDayOfWeek","selectedDays","selectionMode","menuClassName","targetClassName","icon","defaultLabelText","targetTextClassName","targetIconClassName","backgroundElementClass","dateFormat","defaultMonth","daysToModify","weekends","weekendLabel","nonWorkingDaysOfWeek","nonWorkingDaysOfWeekLabel","weekendIsSelectable","tooltipText","popperTooltipClassName","popperClassName","popperTooltipStyle","position","disableDaysBefore","enableYearPicker","disableAnimations","labelText","formattedEndDate","utc","Number","formattedStartDate","isSame","modifiers","userAvailabilities","filter","type","globalDaysOff","selectableGlobalDaysOff","userAvailability","currentDay","matchedData","find","matched","title","weekend","isWeekend","includes","getDay","nonWorkingDay","nonWorkingDays","isNonWorkingDay","renderTargetEl","createElement","className","target","month","instant","selected","saveLabel","cancelLabel","clearLabel","onClose","disabledDaysBefore","disabled","open","onCalendarToggle","enableConfirmModal","disableYearPicker","showControls","displayName"],"sources":["../../../../src/components/SelectDate/SelectDateV2.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 DatePickerV2,\n TimestampDateRange,\n} from \"../DatePicker/DatePickerV2\";\n\nconst isDayInRange = (day: Date, data: DaysToModify): boolean => {\n if (data.repeating) {\n const from = new Date(\n day.getFullYear(),\n data.from.getMonth(),\n data.from.getDate()\n );\n const to = new Date(\n day.getFullYear(),\n data.to.getMonth(),\n data.to.getDate()\n );\n return day >= from && day <= to;\n }\n\n return day >= data.from && day <= data.to;\n};\n\ntype TriggerStringType = \"text\" | \"icon\" | \"inline\";\ntype TriggerFunctionType = (text: string) => JSX.Element;\n\nexport interface ISelectDateV2 {\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 header text */\n modalHeaderText?: string;\n /** Modal cancel button text */\n modalCancelBtnText?: string;\n /** Modal discard button text */\n modalDiscardBtnText?: string;\n /** Modal discard message text */\n modalDiscardMessage?: string;\n /** Tooltip text */\n tooltipText?: string;\n /** Called when day is clicked */\n onDayClick?: (day: Moment, modifiers: string[]) => void;\n /** Save changes in atomic mode */\n onSave?: (dates?: TimestampDateRange) => void;\n /** On cancel closes datepicker or opens disard 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 /** 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 is date required */\n defaultTimezoneAware?: 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 /** Enable year selector */\n enableYearPicker?: boolean;\n /** Disable aniamtions */\n disableAnimations?: boolean;\n}\n\nexport const SelectDateV2: FC<ISelectDateV2> = ({\n changeMode: mode = \"instant\",\n trigger: labelType = \"text\",\n saveButtonText = \"Save\",\n cancelButtonText = \"Cancel\",\n clearButtonText = \"Clear\",\n modalHeaderText = \"Discard changes?\",\n modalDiscardMessage = \"All unsaved changes will be lost.\",\n modalDiscardBtnText = \"OK\",\n modalCancelBtnText = \"Cancel\",\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 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}) => {\n const labelText = useMemo(() => {\n if (!selectedDays) {\n return defaultLabelText;\n } else {\n const formattedEndDate = formatDate(\n moment.utc(Number(selectedDays?.to) * 1000),\n dateFormat,\n longDateFormat\n );\n const formattedStartDate = formatDate(\n moment.utc(selectedDays?.from * 1000),\n dateFormat,\n longDateFormat\n );\n\n if (\n moment\n .utc(selectedDays.from * 1000)\n .isSame(moment.utc(Number(selectedDays.to) * 1000))\n ) {\n return formattedEndDate;\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: Date) => {\n const currentDay = new Date(\n day.getFullYear(),\n day.getMonth(),\n day.getDate()\n );\n const matchedData = userAvailabilities.find((data) =>\n isDayInRange(currentDay, data)\n );\n return {\n matched: !!matchedData,\n title: matchedData ? matchedData.title : null,\n };\n },\n weekend: (day: Date) => {\n const isWeekend = weekends.includes(day.getDay());\n return {\n matched: isWeekend,\n title: isWeekend ? weekendLabel : null,\n };\n },\n nonWorkingDay: (day: Date) => {\n if (weekends.includes(day.getDay())) {\n return { matched: true, title: \"\" };\n }\n const nonWorkingDays = [...selectableGlobalDaysOff, ...globalDaysOff];\n const currentDay = new Date(\n day.getFullYear(),\n day.getMonth(),\n day.getDate()\n );\n const matchedData = nonWorkingDays.find((data) =>\n isDayInRange(currentDay, data)\n );\n return {\n matched: !!matchedData,\n title: matchedData ? matchedData.title : null,\n };\n },\n nonWorkingDaysOfWeek: (day: Date) => {\n const isNonWorkingDay = nonWorkingDaysOfWeek.includes(day.getDay());\n return {\n matched: isNonWorkingDay,\n title: isNonWorkingDay ? nonWorkingDaysOfWeekLabel : 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 <DatePickerV2\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 onClose={onCancel}\n modifiers={modifiers}\n modalHeaderText={modalHeaderText}\n modalDiscardMessage={modalDiscardMessage}\n modalDiscardBtnText={modalDiscardBtnText}\n modalCancelBtnText={modalCancelBtnText}\n disabledDaysBefore={disableDaysBefore}\n backgroundElementClass={backgroundElementClass}\n disabled={weekendIsSelectable ? [] : [0, 6]}\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 />\n ) : (\n <DatePickerV2\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 popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n disabled={weekendIsSelectable ? [] : [0, 6]}\n onSave={onSave}\n modifiers={modifiers}\n onDayClick={onDayClick}\n disableYearPicker={!enableYearPicker}\n disableAnimations={disableAnimations}\n showControls\n />\n )}\n </StyledSelectDate>\n );\n};\n\nSelectDateV2.displayName = \"SelectDateV2\";\n"],"mappings":"AAAA,OAAOA,KAAK,IAAqBC,OAAO,QAAuB,OAAO;AAGtE,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,MAAM,MAAM,iBAAiB;AAEpC,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,gBAAgB,EAAEC,sBAAsB,QAAQ,UAAU;AAEnE,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SAEEC,YAAY,QAEP,4BAA4B;AAEnC,MAAMC,YAAY,GAAGA,CAACC,GAAS,EAAEC,IAAkB,KAAc;EAC/D,IAAIA,IAAI,CAACC,SAAS,EAAE;IAClB,MAAMC,IAAI,GAAG,IAAIC,IAAI,CACnBJ,GAAG,CAACK,WAAW,CAAC,CAAC,EACjBJ,IAAI,CAACE,IAAI,CAACG,QAAQ,CAAC,CAAC,EACpBL,IAAI,CAACE,IAAI,CAACI,OAAO,CAAC,CACpB,CAAC;IACD,MAAMC,EAAE,GAAG,IAAIJ,IAAI,CACjBJ,GAAG,CAACK,WAAW,CAAC,CAAC,EACjBJ,IAAI,CAACO,EAAE,CAACF,QAAQ,CAAC,CAAC,EAClBL,IAAI,CAACO,EAAE,CAACD,OAAO,CAAC,CAClB,CAAC;IACD,OAAOP,GAAG,IAAIG,IAAI,IAAIH,GAAG,IAAIQ,EAAE;EACjC;EAEA,OAAOR,GAAG,IAAIC,IAAI,CAACE,IAAI,IAAIH,GAAG,IAAIC,IAAI,CAACO,EAAE;AAC3C,CAAC;AAgGD,OAAO,MAAMC,YAA+B,GAAGC,IAAA,IA2CzC;EAAA,IA3C0C;IAC9CC,UAAU,EAAEC,IAAI,GAAG,SAAS;IAC5BC,OAAO,EAAEC,SAAS,GAAG,MAAM;IAC3BC,cAAc,GAAG,MAAM;IACvBC,gBAAgB,GAAG,QAAQ;IAC3BC,eAAe,GAAG,OAAO;IACzBC,eAAe,GAAG,kBAAkB;IACpCC,mBAAmB,GAAG,mCAAmC;IACzDC,mBAAmB,GAAG,IAAI;IAC1BC,kBAAkB,GAAG,QAAQ;IAC7BC,UAAU;IACVC,MAAM;IACNC,QAAQ;IACRC,kBAAkB;IAClBC,QAAQ,EAAEC,YAAY,GAAG,KAAK;IAC9BC,cAAc,GAAG,KAAK;IACtBC,qBAAqB,GAAG,KAAK;IAC7BC,cAAc,GAAG,CAAC;IAClBC,YAAY;IACZC,aAAa,GAAG,QAAQ;IACxBC,aAAa;IACbC,eAAe;IACfC,IAAI;IACJC,gBAAgB,GAAG,QAAQ;IAC3BC,mBAAmB;IACnBC,mBAAmB;IACnBC,sBAAsB;IACtBC,UAAU;IACVC,YAAY;IACZC,YAAY,GAAG,EAAE;IACjBC,QAAQ,GAAG,EAAE;IACbC,YAAY,GAAG,SAAS;IACxBC,oBAAoB,GAAG,EAAE;IACzBC,yBAAyB,GAAG,aAAa;IACzCC,mBAAmB,GAAG,KAAK;IAC3BC,WAAW;IACXC,sBAAsB;IACtBC,eAAe;IACfC,kBAAkB;IAClBC,QAAQ;IACRC,iBAAiB;IACjBC,gBAAgB;IAChBC;EACF,CAAC,GAAA7C,IAAA;EACC,MAAM8C,SAAS,GAAGjE,OAAO,CAAC,MAAM;IAC9B,IAAI,CAACwC,YAAY,EAAE;MACjB,OAAOK,gBAAgB;IACzB,CAAC,MAAM;MACL,MAAMqB,gBAAgB,GAAG5D,UAAU,CACjCJ,MAAM,CAACiE,GAAG,CAACC,MAAM,CAAC5B,YAAY,oBAAZA,YAAY,CAAEvB,EAAE,CAAC,GAAG,IAAI,CAAC,EAC3CgC,UAAU,EACVZ,cACF,CAAC;MACD,MAAMgC,kBAAkB,GAAG/D,UAAU,CACnCJ,MAAM,CAACiE,GAAG,CAAC,CAAA3B,YAAY,oBAAZA,YAAY,CAAE5B,IAAI,IAAG,IAAI,CAAC,EACrCqC,UAAU,EACVZ,cACF,CAAC;MAED,IACEnC,MAAM,CACHiE,GAAG,CAAC3B,YAAY,CAAC5B,IAAI,GAAG,IAAI,CAAC,CAC7B0D,MAAM,CAACpE,MAAM,CAACiE,GAAG,CAACC,MAAM,CAAC5B,YAAY,CAACvB,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EACrD;QACA,OAAOiD,gBAAgB;MACzB;MAEA,OAAUG,kBAAkB,WAAMH,gBAAgB;IACpD;EACF,CAAC,EAAE,CAAC1B,YAAY,EAAES,UAAU,EAAEJ,gBAAgB,EAAER,cAAc,CAAC,CAAC;EAEhE,MAAMkC,SAAS,GAAGvE,OAAO,CAAC,MAAM;IAC9B,MAAMwE,kBAAkB,GAAGrB,YAAY,CAACsB,MAAM,CAC3C/D,IAAI,IAAKA,IAAI,CAACgE,IAAI,KAAK,cAC1B,CAAC;IACD,MAAMC,aAAa,GAAGxB,YAAY,CAACsB,MAAM,CACtC/D,IAAI,IAAKA,IAAI,CAACgE,IAAI,KAAK,gBAC1B,CAAC;IACD,MAAME,uBAAuB,GAAGzB,YAAY,CAACsB,MAAM,CAChD/D,IAAI,IAAKA,IAAI,CAACgE,IAAI,KAAK,2BAC1B,CAAC;IAED,OAAO;MACLG,gBAAgB,EAAGpE,GAAS,IAAK;QAC/B,MAAMqE,UAAU,GAAG,IAAIjE,IAAI,CACzBJ,GAAG,CAACK,WAAW,CAAC,CAAC,EACjBL,GAAG,CAACM,QAAQ,CAAC,CAAC,EACdN,GAAG,CAACO,OAAO,CAAC,CACd,CAAC;QACD,MAAM+D,WAAW,GAAGP,kBAAkB,CAACQ,IAAI,CAAEtE,IAAI,IAC/CF,YAAY,CAACsE,UAAU,EAAEpE,IAAI,CAC/B,CAAC;QACD,OAAO;UACLuE,OAAO,EAAE,CAAC,CAACF,WAAW;UACtBG,KAAK,EAAEH,WAAW,GAAGA,WAAW,CAACG,KAAK,GAAG;QAC3C,CAAC;MACH,CAAC;MACDC,OAAO,EAAG1E,GAAS,IAAK;QACtB,MAAM2E,SAAS,GAAGhC,QAAQ,CAACiC,QAAQ,CAAC5E,GAAG,CAAC6E,MAAM,CAAC,CAAC,CAAC;QACjD,OAAO;UACLL,OAAO,EAAEG,SAAS;UAClBF,KAAK,EAAEE,SAAS,GAAG/B,YAAY,GAAG;QACpC,CAAC;MACH,CAAC;MACDkC,aAAa,EAAG9E,GAAS,IAAK;QAC5B,IAAI2C,QAAQ,CAACiC,QAAQ,CAAC5E,GAAG,CAAC6E,MAAM,CAAC,CAAC,CAAC,EAAE;UACnC,OAAO;YAAEL,OAAO,EAAE,IAAI;YAAEC,KAAK,EAAE;UAAG,CAAC;QACrC;QACA,MAAMM,cAAc,GAAG,CAAC,GAAGZ,uBAAuB,EAAE,GAAGD,aAAa,CAAC;QACrE,MAAMG,UAAU,GAAG,IAAIjE,IAAI,CACzBJ,GAAG,CAACK,WAAW,CAAC,CAAC,EACjBL,GAAG,CAACM,QAAQ,CAAC,CAAC,EACdN,GAAG,CAACO,OAAO,CAAC,CACd,CAAC;QACD,MAAM+D,WAAW,GAAGS,cAAc,CAACR,IAAI,CAAEtE,IAAI,IAC3CF,YAAY,CAACsE,UAAU,EAAEpE,IAAI,CAC/B,CAAC;QACD,OAAO;UACLuE,OAAO,EAAE,CAAC,CAACF,WAAW;UACtBG,KAAK,EAAEH,WAAW,GAAGA,WAAW,CAACG,KAAK,GAAG;QAC3C,CAAC;MACH,CAAC;MACD5B,oBAAoB,EAAG7C,GAAS,IAAK;QACnC,MAAMgF,eAAe,GAAGnC,oBAAoB,CAAC+B,QAAQ,CAAC5E,GAAG,CAAC6E,MAAM,CAAC,CAAC,CAAC;QACnE,OAAO;UACLL,OAAO,EAAEQ,eAAe;UACxBP,KAAK,EAAEO,eAAe,GAAGlC,yBAAyB,GAAG;QACvD,CAAC;MACH;IACF,CAAC;EACH,CAAC,EAAE,CACDJ,YAAY,EACZG,oBAAoB,EACpBC,yBAAyB,EACzBF,YAAY,EACZD,QAAQ,CACT,CAAC;EAEF,MAAMsC,cAAc,GAAG1F,OAAO,CAAC,MAAM;IACnC,IAAIuB,SAAS,KAAK,MAAM,IAAIqB,IAAI,EAAE;MAChC,oBACE7C,KAAA,CAAA4F,aAAA,CAACxF,gBAAgB;QACfyC,IAAI,EAAEA,IAAK;QACXsC,KAAK,EAAEzB,WAAY;QACnBV,mBAAmB,EAAEA,mBAAoB;QACzCW,sBAAsB,EAAEA,sBAAuB;QAC/CE,kBAAkB,EAAEA;MAAmB,CACxC,CAAC;IAEN;IACA,IAAI,OAAOrC,SAAS,KAAK,UAAU,EAAE;MACnC,OAAOA,SAAS,CAAC0C,SAAS,CAAC;IAC7B;IACA,oBACElE,KAAA,CAAA4F,aAAA,CAACtF,sBAAsB;MACrBqE,IAAI,EAAC,QAAQ;MACbkB,SAAS,EAAE3F,UAAU,CAAC,oBAAoB,EAAE0C,eAAe;IAAE,gBAE7D5C,KAAA,CAAA4F,aAAA;MAAMC,SAAS,EAAE9C;IAAoB,GAAEmB,SAAgB,CACjC,CAAC;EAE7B,CAAC,EAAE,CACDrB,IAAI,EACJqB,SAAS,EACT1C,SAAS,EACTmC,sBAAsB,EACtBE,kBAAkB,EAClBjB,eAAe,EACfI,mBAAmB,EACnBD,mBAAmB,EACnBW,WAAW,CACZ,CAAC;EAEF,oBACE1D,KAAA,CAAA4F,aAAA,CAACvF,gBAAgB;IAACwF,SAAS,EAAC;EAAa,GACtCrE,SAAS,KAAK,QAAQ,gBACrBxB,KAAA,CAAA4F,aAAA,CAACpF,YAAY;IACXsF,MAAM,EAAEH,cAAe;IACvB7B,QAAQ,EAAEA,QAAS;IACnBnB,aAAa,EAAEA,aAAc;IAC7BiB,eAAe,EAAEA,eAAgB;IACjCmC,KAAK,EAAE5C,YAAa;IACpB6C,OAAO,EAAE1E,IAAI,KAAK,SAAU;IAC5BA,IAAI,EAAEoB,aAAc;IACpBN,QAAQ,EAAEC,YAAa;IACvB4D,QAAQ,EAAExD,YAAa;IACvBD,cAAc,EAAEA,cAAe;IAC/B0D,SAAS,EAAEzE,cAAe;IAC1B0E,WAAW,EAAEzE,gBAAiB;IAC9B0E,UAAU,EAAEzE,eAAgB;IAC5BM,MAAM,EAAEA,MAAO;IACfoE,OAAO,EAAEnE,QAAS;IAClBsC,SAAS,EAAEA,SAAU;IACrB5C,eAAe,EAAEA,eAAgB;IACjCC,mBAAmB,EAAEA,mBAAoB;IACzCC,mBAAmB,EAAEA,mBAAoB;IACzCC,kBAAkB,EAAEA,kBAAmB;IACvCuE,kBAAkB,EAAEvC,iBAAkB;IACtCd,sBAAsB,EAAEA,sBAAuB;IAC/CsD,QAAQ,EAAE9C,mBAAmB,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAE;IAC5CE,sBAAsB,EAAEA,sBAAuB;IAC/CE,kBAAkB,EAAEA,kBAAmB;IACvC2C,IAAI,EAAEjE,qBAAsB;IAC5BkE,gBAAgB,EAAEtE,kBAAmB;IACrCH,UAAU,EAAEA,UAAW;IACvB0E,kBAAkB,EAAEpF,IAAI,KAAK,QAAQ,IAAI,CAACe,YAAa;IACvDsE,iBAAiB,EAAE,CAAC3C,gBAAiB;IACrCC,iBAAiB,EAAEA,iBAAkB;IACrC2C,YAAY;EAAA,CACb,CAAC,gBAEF5G,KAAA,CAAA4F,aAAA,CAACpF,YAAY;IACXuF,KAAK,EAAE5C,YAAa;IACpB6C,OAAO,EAAE1E,IAAI,KAAK,SAAU;IAC5BA,IAAI,EAAEoB,aAAc;IACpBN,QAAQ,EAAEC,YAAa;IACvB4D,QAAQ,EAAExD,YAAa;IACvBD,cAAc,EAAEA,cAAe;IAC/B0D,SAAS,EAAEzE,cAAe;IAC1B0E,WAAW,EAAEzE,gBAAiB;IAC9B0E,UAAU,EAAEzE,eAAgB;IAC5B2E,kBAAkB,EAAEvC,iBAAkB;IACtCJ,sBAAsB,EAAEA,sBAAuB;IAC/CE,kBAAkB,EAAEA,kBAAmB;IACvC0C,QAAQ,EAAE9C,mBAAmB,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAE;IAC5CxB,MAAM,EAAEA,MAAO;IACfuC,SAAS,EAAEA,SAAU;IACrBxC,UAAU,EAAEA,UAAW;IACvB2E,iBAAiB,EAAE,CAAC3C,gBAAiB;IACrCC,iBAAiB,EAAEA,iBAAkB;IACrC2C,YAAY;EAAA,CACb,CAEa,CAAC;AAEvB,CAAC;AAEDzF,YAAY,CAAC0F,WAAW,GAAG,cAAc"}
1
+ {"version":3,"file":"SelectDateV2.js","names":["React","useMemo","classnames","moment","SelectDateTarget","StyledSelectDate","StyledSelectDateButton","formatDate","DatePickerV2","isDayInRange","day","data","repeating","from","Date","getFullYear","getMonth","getDate","to","SelectDateV2","_ref","changeMode","mode","trigger","labelType","saveButtonText","cancelButtonText","clearButtonText","modalHeaderText","modalDiscardMessage","modalDiscardBtnText","modalCancelBtnText","onDayClick","onSave","onCancel","onToggleDatePicker","required","dateRequired","longDateFormat","defaultShowDatePicker","firstDayOfWeek","selectedDays","selectionMode","menuClassName","targetClassName","icon","defaultLabelText","targetTextClassName","targetIconClassName","backgroundElementClass","dateFormat","defaultMonth","daysToModify","weekends","weekendLabel","nonWorkingDaysOfWeek","nonWorkingDaysOfWeekLabel","weekendIsSelectable","tooltipText","popperTooltipClassName","popperClassName","popperTooltipStyle","position","disableDaysBefore","enableYearPicker","disableAnimations","labelText","formattedEndDate","utc","Number","formattedStartDate","isSame","modifiers","userAvailabilities","filter","type","globalDaysOff","selectableGlobalDaysOff","userAvailability","currentDay","matchedData","find","matched","title","weekend","isWeekend","includes","getDay","nonWorkingDay","nonWorkingDays","isNonWorkingDay","renderTargetEl","createElement","className","target","month","instant","selected","saveLabel","cancelLabel","clearLabel","onClose","disabledDaysBefore","disabled","open","onCalendarToggle","enableConfirmModal","disableYearPicker","showControls","onChange","displayName"],"sources":["../../../../src/components/SelectDate/SelectDateV2.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 DatePickerV2,\n TimestampDateRange,\n} from \"../DatePicker/DatePickerV2\";\n\nconst isDayInRange = (day: Date, data: DaysToModify): boolean => {\n if (data.repeating) {\n const from = new Date(\n day.getFullYear(),\n data.from.getMonth(),\n data.from.getDate()\n );\n const to = new Date(\n day.getFullYear(),\n data.to.getMonth(),\n data.to.getDate()\n );\n return day >= from && day <= to;\n }\n\n return day >= data.from && day <= data.to;\n};\n\ntype TriggerStringType = \"text\" | \"icon\" | \"inline\";\ntype TriggerFunctionType = (text: string) => JSX.Element;\n\nexport interface ISelectDateV2 {\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 header text */\n modalHeaderText?: string;\n /** Modal cancel button text */\n modalCancelBtnText?: string;\n /** Modal discard button text */\n modalDiscardBtnText?: string;\n /** Modal discard message text */\n modalDiscardMessage?: string;\n /** Tooltip text */\n tooltipText?: string;\n /** Called when day is clicked */\n onDayClick?: (day: Moment, modifiers: string[]) => void;\n /** Save changes in atomic mode */\n onSave?: (dates?: TimestampDateRange) => void;\n /** On cancel closes datepicker or opens disard 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 /** 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 is date required */\n defaultTimezoneAware?: 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 /** Enable year selector */\n enableYearPicker?: boolean;\n /** Disable aniamtions */\n disableAnimations?: boolean;\n}\n\nexport const SelectDateV2: FC<ISelectDateV2> = ({\n changeMode: mode = \"instant\",\n trigger: labelType = \"text\",\n saveButtonText = \"Save\",\n cancelButtonText = \"Cancel\",\n clearButtonText = \"Clear\",\n modalHeaderText = \"Discard changes?\",\n modalDiscardMessage = \"All unsaved changes will be lost.\",\n modalDiscardBtnText = \"OK\",\n modalCancelBtnText = \"Cancel\",\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 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}) => {\n const labelText = useMemo(() => {\n if (!selectedDays) {\n return defaultLabelText;\n } else {\n const formattedEndDate = formatDate(\n moment.utc(Number(selectedDays?.to) * 1000),\n dateFormat,\n longDateFormat\n );\n const formattedStartDate = formatDate(\n moment.utc(selectedDays?.from * 1000),\n dateFormat,\n longDateFormat\n );\n\n if (\n moment\n .utc(selectedDays.from * 1000)\n .isSame(moment.utc(Number(selectedDays.to) * 1000))\n ) {\n return formattedEndDate;\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: Date) => {\n const currentDay = new Date(\n day.getFullYear(),\n day.getMonth(),\n day.getDate()\n );\n const matchedData = userAvailabilities.find((data) =>\n isDayInRange(currentDay, data)\n );\n return {\n matched: !!matchedData,\n title: matchedData ? matchedData.title : null,\n };\n },\n weekend: (day: Date) => {\n const isWeekend = weekends.includes(day.getDay());\n return {\n matched: isWeekend,\n title: isWeekend ? weekendLabel : null,\n };\n },\n nonWorkingDay: (day: Date) => {\n if (weekends.includes(day.getDay())) {\n return { matched: true, title: \"\" };\n }\n const nonWorkingDays = [...selectableGlobalDaysOff, ...globalDaysOff];\n const currentDay = new Date(\n day.getFullYear(),\n day.getMonth(),\n day.getDate()\n );\n const matchedData = nonWorkingDays.find((data) =>\n isDayInRange(currentDay, data)\n );\n return {\n matched: !!matchedData,\n title: matchedData ? matchedData.title : null,\n };\n },\n nonWorkingDaysOfWeek: (day: Date) => {\n const isNonWorkingDay = nonWorkingDaysOfWeek.includes(day.getDay());\n return {\n matched: isNonWorkingDay,\n title: isNonWorkingDay ? nonWorkingDaysOfWeekLabel : 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 <DatePickerV2\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 onClose={onCancel}\n modifiers={modifiers}\n modalHeaderText={modalHeaderText}\n modalDiscardMessage={modalDiscardMessage}\n modalDiscardBtnText={modalDiscardBtnText}\n modalCancelBtnText={modalCancelBtnText}\n disabledDaysBefore={disableDaysBefore}\n backgroundElementClass={backgroundElementClass}\n disabled={weekendIsSelectable ? [] : [0, 6]}\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 />\n ) : (\n <DatePickerV2\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 popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n disabled={weekendIsSelectable ? [] : [0, 6]}\n onSave={onSave}\n onChange={onSave}\n modifiers={modifiers}\n onDayClick={onDayClick}\n disableYearPicker={!enableYearPicker}\n disableAnimations={disableAnimations}\n showControls\n />\n )}\n </StyledSelectDate>\n );\n};\n\nSelectDateV2.displayName = \"SelectDateV2\";\n"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -11139,7 +11139,7 @@
11139
11139
  popperTooltipClassName: popperTooltipClassName,
11140
11140
  popperTooltipStyle: popperTooltipStyle
11141
11141
  }, /*#__PURE__*/React__default["default"].createElement(StyledCalendarDate, {
11142
- className: "".concat(isSelected ? "selected" : "", " ").concat(isToday ? "today-day" : "", " \n ").concat(isDisabled ? "disabled" : "", " ").concat(isHovered ? "hovered" : "", " ").concat(modifierClasses.join(" "), " \n ").concat(isOutside ? "outside" : ""),
11142
+ className: "".concat(isSelected ? "selected" : "", " ").concat(isToday ? "today-day" : "", "\n ").concat(isDisabled ? "disabled" : "", " ").concat(isHovered ? "hovered" : "", " ").concat(modifierClasses.join(" "), "\n ").concat(isOutside ? "outside" : ""),
11143
11143
  onClick: function onClick() {
11144
11144
  return handleDayClick(clonedDate, modifierClasses);
11145
11145
  },
@@ -18126,6 +18126,7 @@
18126
18126
  popperTooltipStyle: popperTooltipStyle,
18127
18127
  disabled: weekendIsSelectable ? [] : [0, 6],
18128
18128
  onSave: onSave,
18129
+ onChange: onSave,
18129
18130
  modifiers: modifiers,
18130
18131
  onDayClick: onDayClick,
18131
18132
  disableYearPicker: !enableYearPicker,