@activecollab/components 1.0.355 → 1.0.357

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":"SelectDate.js","names":["React","useCallback","useEffect","useMemo","useState","moment","classnames","Menu","DatePickerForm","customClassNames","Tooltip","SelectDateTarget","StyledConfirmDialog","StyledSelectDate","StyledSelectDateButton","useLocalization","formatDate","getUtcTimestampFromDate","date","utc","getFullYear","getMonth","getDate","unix","isDayInRange","day","data","repeating","from","Date","to","SelectDate","changeMode","mode","trigger","labelType","saveButtonText","cancelButtonText","clearButtonText","modalHeaderText","modalDiscardMessage","modalDiscardBtnText","modalCancelBtnText","onDayClick","onSave","onCancel","onToggleDatePicker","required","dateRequired","defaultTimezoneAware","longDateFormat","defaultShowDatePicker","firstDayOfWeek","selectedDays","selectionMode","menuClassName","targetClassName","icon","defaultLabelText","targetTextClassName","targetIconClassName","backgroundElementClass","passedDateFormat","dateFormat","defaultMonth","daysToModify","weekends","weekendLabel","weekendIsSelectable","tooltipText","popperTooltipClassName","popperClassName","popperTooltipStyle","position","disableDaysBefore","timezoneAware","setTimezoneAware","localization","labelText","endDate","local","startDate","formattedEndDate","formattedStartDate","modifiedDates","toDate","offsetFrom","utcOffset","offsetTo","handleModifiedSave","selectedDates","Object","prototype","hasOwnProperty","call","undefined","getDefaultMonth","month","setMonth","handleMonthChange","newDates","setNewDates","showDiscardModal","setShowDiscardModal","showDatePicker","setShowDatePicker","disabledSaveButton","handleSave","handleChange","dates","handleBeforeCloseMenu","result","selectedDaysFrom","selectedDaysTo","newDatesFrom","newDatesTo","format","handleClose","handleCancel","event","preventDefault","handleShowDatePicker","handleCloseDiscardModal","handleClear","handleSaveDiscardModal","modifiers","userAvailabilities","filter","type","globalDaysOff","selectableGlobalDaysOff","userAvailability","currentDay","some","weekend","value","getDay","nonWorkingDay","nonWorkingDays","disabled","toJSON","slice","renderDay","titles","push","forEach","title","child","length","map","index","renderDatePickerForm","renderTargetEl","displayName"],"sources":["../../../../src/components/SelectDate/SelectDate.tsx"],"sourcesContent":["import React, {\n ElementType,\n FC,\n useCallback,\n useEffect,\n useMemo,\n useState,\n ReactNode,\n CSSProperties,\n} from \"react\";\nimport moment from \"moment\";\nimport classnames from \"classnames\";\nimport { DayModifiers } from \"react-day-picker\";\nimport { Placement } from \"@popperjs/core\";\nimport { Menu } from \"../Menu/Menu\";\nimport { DatePickerForm } from \"./DatePickerForm\";\nimport { customClassNames } from \"../DatePicker/ClassNames\";\nimport { DaysToModify } from \"./types\";\nimport { Tooltip } from \"../Tooltip/Tooltip\";\nimport { SelectDateTarget } from \"./SelectDateTarget\";\nimport {\n StyledConfirmDialog,\n StyledSelectDate,\n StyledSelectDateButton,\n} from \"./Styles\";\nimport { useLocalization } from \"../Localization\";\nimport { formatDate } from \"../../utils/dateUtils\";\n\nconst getUtcTimestampFromDate = (date: Date): number => {\n return moment\n .utc([date.getFullYear(), date.getMonth(), date.getDate()])\n .unix();\n};\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\ninterface 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 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: Date, modifiers: DayModifiers) => void;\n /** Save changes in atomic mode */\n onSave?: (dates?: { from: number; to: number }) => 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?: { from: number; to: number };\n /** Set month */\n defaultMonth?: Date;\n /** Set selection range */\n selectionMode?: string;\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?: number;\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 /** 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?: Date;\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 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 defaultTimezoneAware = 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: passedDateFormat,\n defaultMonth,\n daysToModify = [],\n weekends = [],\n weekendLabel = \"Weekend\",\n weekendIsSelectable = false,\n tooltipText,\n popperTooltipClassName,\n popperClassName,\n popperTooltipStyle,\n position,\n disableDaysBefore,\n}) => {\n const [timezoneAware, setTimezoneAware] = useState(defaultTimezoneAware);\n const localization = useLocalization();\n const dateFormat = passedDateFormat\n ? passedDateFormat\n : localization.dateFormat;\n\n const labelText = useMemo(() => {\n if (!selectedDays) {\n return defaultLabelText;\n } else {\n const endDate = timezoneAware\n ? moment.unix(selectedDays.to).local()\n : moment.unix(selectedDays.to).utc();\n\n const startDate = timezoneAware\n ? moment.unix(selectedDays.from).local()\n : moment.unix(selectedDays.from).utc();\n\n const formattedEndDate = formatDate(endDate, dateFormat, longDateFormat);\n const formattedStartDate = formatDate(\n startDate,\n dateFormat,\n longDateFormat\n );\n\n if (selectedDays.from === selectedDays.to) {\n return formattedEndDate;\n }\n\n return `${formattedStartDate} - ${formattedEndDate}`;\n }\n }, [\n selectedDays,\n dateFormat,\n timezoneAware,\n defaultLabelText,\n longDateFormat,\n ]);\n\n const modifiedDates = useMemo(() => {\n if (\n typeof selectedDays === \"object\" &&\n !!selectedDays.from &&\n !!selectedDays.to\n ) {\n if (timezoneAware) {\n return {\n from: moment.unix(selectedDays.from).toDate(),\n to: moment.unix(selectedDays.to).toDate(),\n };\n }\n const offsetFrom = moment.unix(selectedDays.from).utcOffset() * 60;\n const offsetTo = moment.unix(selectedDays.to).utcOffset() * 60;\n return {\n from: new Date((selectedDays.from - offsetFrom) * 1000),\n to: new Date((selectedDays.to - offsetTo) * 1000),\n };\n }\n }, [selectedDays, timezoneAware]);\n\n const handleModifiedSave = useCallback(\n (selectedDates) => {\n setTimezoneAware(false);\n if (typeof onSave === \"function\") {\n if (\n typeof selectedDates === \"object\" &&\n Object.prototype.hasOwnProperty.call(selectedDates, \"from\") &&\n Object.prototype.hasOwnProperty.call(selectedDates, \"to\")\n ) {\n onSave({\n from: getUtcTimestampFromDate(selectedDates.from),\n to: getUtcTimestampFromDate(selectedDates.to),\n });\n } else {\n onSave(undefined);\n }\n }\n },\n [onSave]\n );\n\n const getDefaultMonth = useCallback(() => {\n let date = new Date();\n\n if (typeof selectedDays === \"object\" && !!selectedDays.from) {\n date = timezoneAware\n ? new Date(selectedDays.from * 1000)\n : new Date(\n (selectedDays.from -\n moment.unix(selectedDays.from).utcOffset() * 60) *\n 1000\n );\n } else if (defaultMonth) {\n date = defaultMonth;\n }\n\n // forcing second day in month\n return new Date(date.getFullYear(), date.getMonth(), 2);\n }, [defaultMonth, selectedDays, timezoneAware]);\n\n const [month, setMonth] = useState(getDefaultMonth);\n\n const handleMonthChange = useCallback(\n (month) => {\n setMonth(month);\n },\n [setMonth]\n );\n\n const [newDates, setNewDates] = useState(modifiedDates);\n const [showDiscardModal, setShowDiscardModal] = useState(false);\n const [showDatePicker, setShowDatePicker] = useState(defaultShowDatePicker);\n\n const disabledSaveButton = useMemo(() => {\n return (\n modifiedDates?.from === newDates?.from &&\n modifiedDates?.to === newDates?.to\n );\n }, [modifiedDates, newDates]);\n\n useEffect(() => {\n setShowDatePicker(defaultShowDatePicker);\n }, [defaultShowDatePicker]);\n\n useEffect(() => {\n modifiedDates && setNewDates(modifiedDates);\n }, [modifiedDates]);\n\n useEffect(() => {\n typeof onToggleDatePicker === \"function\" &&\n onToggleDatePicker(showDatePicker);\n }, [showDatePicker, onToggleDatePicker]);\n\n useEffect(() => {\n if (!showDatePicker) {\n setMonth(getDefaultMonth());\n }\n }, [showDatePicker, getDefaultMonth]);\n\n const handleSave = useCallback(() => {\n handleModifiedSave(newDates);\n setShowDatePicker(false);\n }, [newDates, handleModifiedSave]);\n\n const handleChange = useCallback(\n (dates) => {\n if (mode !== \"atomic\") {\n handleModifiedSave(dates);\n }\n setNewDates(dates);\n },\n [mode, handleModifiedSave]\n );\n\n const handleBeforeCloseMenu = useCallback(() => {\n let result = true;\n\n if ((modifiedDates && !newDates) || (!modifiedDates && newDates)) {\n result = false;\n }\n\n const selectedDaysFrom = modifiedDates?.from;\n const selectedDaysTo = modifiedDates?.to;\n const newDatesFrom = newDates?.from;\n const newDatesTo = newDates?.to;\n\n if (\n selectedDaysFrom &&\n newDatesFrom &&\n selectedDaysTo &&\n newDatesTo &&\n (moment(selectedDaysFrom).format(\"DD-MM-YYYY\") !==\n moment(newDatesFrom).format(\"DD-MM-YYYY\") ||\n moment(selectedDaysTo).format(\"DD-MM-YYYY\") !==\n moment(newDatesTo).format(\"DD-MM-YYYY\"))\n ) {\n result = false;\n }\n\n if (!result) {\n setShowDiscardModal(true);\n }\n\n return result;\n }, [modifiedDates, newDates]);\n\n const handleClose = useCallback(() => {\n if (mode !== \"atomic\" || handleBeforeCloseMenu()) {\n typeof onCancel === \"function\" && onCancel();\n setShowDatePicker(false);\n }\n }, [mode, onCancel, handleBeforeCloseMenu]);\n\n const handleCancel = useCallback(\n (event) => {\n event && event.preventDefault();\n return handleClose();\n },\n [handleClose]\n );\n\n const handleShowDatePicker = useCallback(() => {\n setShowDatePicker(!showDatePicker);\n }, [showDatePicker]);\n\n const handleCloseDiscardModal = useCallback(() => {\n setShowDiscardModal(false);\n }, []);\n\n const handleClear = useCallback(() => {\n if (!dateRequired) {\n setNewDates(undefined);\n if (mode === \"instant\") {\n handleModifiedSave(undefined);\n }\n }\n }, [mode, dateRequired, handleModifiedSave]);\n\n const handleSaveDiscardModal = useCallback(() => {\n setNewDates(modifiedDates);\n setShowDiscardModal(false);\n setShowDatePicker(false);\n }, [modifiedDates]);\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 [customClassNames.userAvailability]: (day: Date): boolean => {\n // construct new date because react-day-picker returns date with hours set\n const currentDay = new Date(\n day.getFullYear(),\n day.getMonth(),\n day.getDate()\n );\n return userAvailabilities.some((data) =>\n isDayInRange(currentDay, data)\n );\n },\n [customClassNames.weekend]: (day: Date): boolean => {\n return weekends.some((value) => day.getDay() === value);\n },\n [customClassNames.nonWorkingDay]: (day: Date): boolean => {\n // return true if day is weekend day\n if (weekends.some((value) => value === day.getDay())) {\n return true;\n }\n const nonWorkingDays = [...selectableGlobalDaysOff, ...globalDaysOff];\n const currentDay = new Date(\n day.getFullYear(),\n day.getMonth(),\n day.getDate()\n );\n return nonWorkingDays.some((data) => isDayInRange(currentDay, data));\n },\n [customClassNames.disabled]: (day: Date): boolean => {\n if (disableDaysBefore) {\n if (\n day.toJSON().slice(0, 10) < disableDaysBefore.toJSON().slice(0, 10)\n ) {\n return true;\n }\n }\n // return true if day is weekend day\n if (\n !weekendIsSelectable &&\n weekends.some((value) => value === day.getDay())\n ) {\n return true;\n }\n // construct new date because react-day-picker returns date with hours set\n const currentDay = new Date(\n day.getFullYear(),\n day.getMonth(),\n day.getDate()\n );\n return globalDaysOff.some((data) => isDayInRange(currentDay, data));\n },\n };\n }, [daysToModify, weekends, disableDaysBefore, weekendIsSelectable]);\n\n const renderDay = useCallback(\n (day: Date): ReactNode => {\n const titles: string[] = [];\n\n if (weekends.some((value) => day.getDay() === value)) {\n titles.push(weekendLabel);\n }\n\n // construct new date because react-day-picker returns date with hours set\n const currentDay = new Date(\n day.getFullYear(),\n day.getMonth(),\n day.getDate()\n );\n\n daysToModify.forEach((data) => {\n if (isDayInRange(currentDay, data)) {\n titles.push(data.title);\n }\n });\n\n const child = (\n <div className=\"c-DayPicker-Day-Number\">{day.getDate()}</div>\n );\n\n if (titles.length) {\n const title = (\n <div key={`title-wrapper-${day.getDate()}`}>\n {titles.map((title: string, index: number) => (\n <div key={`title-text-${index}`}>{title}</div>\n ))}\n </div>\n );\n\n return (\n <Tooltip\n title={title}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n >\n {child}\n </Tooltip>\n );\n }\n\n return child;\n },\n [\n weekendLabel,\n weekends,\n daysToModify,\n popperTooltipClassName,\n popperTooltipStyle,\n ]\n );\n\n const renderDatePickerForm = useCallback((): JSX.Element => {\n return (\n <DatePickerForm\n onMonthChange={handleMonthChange}\n month={month}\n mode={mode}\n selectionMode={selectionMode}\n dateRequired={dateRequired}\n selectedDays={newDates}\n firstDayOfWeek={firstDayOfWeek}\n saveButtonText={saveButtonText}\n cancelButtonText={cancelButtonText}\n clearButtonText={clearButtonText}\n onDayClick={onDayClick}\n onSave={handleSave}\n onChange={handleChange}\n onCancel={handleCancel}\n onClear={handleClear}\n disabledSaveButton={disabledSaveButton}\n modifiers={modifiers}\n renderDay={renderDay}\n />\n );\n }, [\n handleMonthChange,\n month,\n mode,\n selectionMode,\n dateRequired,\n newDates,\n firstDayOfWeek,\n saveButtonText,\n cancelButtonText,\n clearButtonText,\n onDayClick,\n handleSave,\n handleChange,\n handleCancel,\n handleClear,\n disabledSaveButton,\n modifiers,\n renderDay,\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 forceHideTooltip={showDatePicker}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n active={showDatePicker}\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 showDatePicker,\n targetClassName,\n targetIconClassName,\n targetTextClassName,\n tooltipText,\n ]);\n\n return (\n <StyledSelectDate className=\"select-date\">\n {labelType !== \"inline\" ? (\n <Menu\n target={renderTargetEl}\n open={showDatePicker}\n onOpen={handleShowDatePicker}\n onBeforeClose={handleBeforeCloseMenu}\n onClose={handleClose}\n position={position}\n menuClassName={menuClassName}\n popperClassName={popperClassName}\n backgroundElementClass={backgroundElementClass}\n >\n {renderDatePickerForm()}\n </Menu>\n ) : (\n renderDatePickerForm()\n )}\n {mode === \"atomic\" ? (\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 </StyledSelectDate>\n );\n};\n\nSelectDate.displayName = \"SelectDate\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"SelectDate.js","names":["React","useCallback","useEffect","useMemo","useState","moment","classnames","Menu","DatePickerForm","customClassNames","Tooltip","SelectDateTarget","StyledConfirmDialog","StyledSelectDate","StyledSelectDateButton","useLocalization","formatDate","getUtcTimestampFromDate","date","utc","getFullYear","getMonth","getDate","unix","isDayInRange","day","data","repeating","from","Date","to","SelectDate","changeMode","mode","trigger","labelType","saveButtonText","cancelButtonText","clearButtonText","modalHeaderText","modalDiscardMessage","modalDiscardBtnText","modalCancelBtnText","onDayClick","onMonthChange","onSave","onCancel","onToggleDatePicker","required","dateRequired","defaultTimezoneAware","longDateFormat","defaultShowDatePicker","firstDayOfWeek","selectedDays","selectionMode","menuClassName","targetClassName","icon","defaultLabelText","targetTextClassName","targetIconClassName","backgroundElementClass","passedDateFormat","dateFormat","defaultMonth","daysToModify","weekends","weekendLabel","weekendIsSelectable","tooltipText","popperTooltipClassName","popperClassName","popperTooltipStyle","position","disableDaysBefore","timezoneAware","setTimezoneAware","localization","labelText","endDate","local","startDate","formattedEndDate","formattedStartDate","modifiedDates","toDate","offsetFrom","utcOffset","offsetTo","handleModifiedSave","selectedDates","Object","prototype","hasOwnProperty","call","undefined","getDefaultMonth","month","setMonth","handleMonthChange","newDates","setNewDates","showDiscardModal","setShowDiscardModal","showDatePicker","setShowDatePicker","disabledSaveButton","handleSave","handleChange","dates","handleBeforeCloseMenu","result","selectedDaysFrom","selectedDaysTo","newDatesFrom","newDatesTo","format","handleClose","handleCancel","event","preventDefault","handleShowDatePicker","handleCloseDiscardModal","handleClear","handleSaveDiscardModal","modifiers","userAvailabilities","filter","type","globalDaysOff","selectableGlobalDaysOff","userAvailability","currentDay","some","weekend","value","getDay","nonWorkingDay","nonWorkingDays","disabled","toJSON","slice","renderDay","titles","push","forEach","title","child","length","map","index","renderDatePickerForm","renderTargetEl","displayName"],"sources":["../../../../src/components/SelectDate/SelectDate.tsx"],"sourcesContent":["import React, {\n ElementType,\n FC,\n useCallback,\n useEffect,\n useMemo,\n useState,\n ReactNode,\n CSSProperties,\n} from \"react\";\nimport moment from \"moment\";\nimport classnames from \"classnames\";\nimport { DayModifiers } from \"react-day-picker\";\nimport { Placement } from \"@popperjs/core\";\nimport { Menu } from \"../Menu/Menu\";\nimport { DatePickerForm } from \"./DatePickerForm\";\nimport { customClassNames } from \"../DatePicker/ClassNames\";\nimport { DaysToModify } from \"./types\";\nimport { Tooltip } from \"../Tooltip/Tooltip\";\nimport { SelectDateTarget } from \"./SelectDateTarget\";\nimport {\n StyledConfirmDialog,\n StyledSelectDate,\n StyledSelectDateButton,\n} from \"./Styles\";\nimport { useLocalization } from \"../Localization\";\nimport { formatDate } from \"../../utils/dateUtils\";\n\nconst getUtcTimestampFromDate = (date: Date): number => {\n return moment\n .utc([date.getFullYear(), date.getMonth(), date.getDate()])\n .unix();\n};\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\ninterface 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 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: Date, modifiers: DayModifiers) => void;\n /** Called when month (or year) is changed */\n onMonthChange?: (day: Date) => void;\n /** Save changes in atomic mode */\n onSave?: (dates?: { from: number; to: number }) => 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?: { from: number; to: number };\n /** Set month */\n defaultMonth?: Date;\n /** Set selection range */\n selectionMode?: string;\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?: number;\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 /** 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?: Date;\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 modalHeaderText = \"Discard changes?\",\n modalDiscardMessage = \"All unsaved changes will be lost.\",\n modalDiscardBtnText = \"OK\",\n modalCancelBtnText = \"Cancel\",\n onDayClick,\n onMonthChange,\n onSave,\n onCancel,\n onToggleDatePicker,\n required: dateRequired = false,\n defaultTimezoneAware = 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: passedDateFormat,\n defaultMonth,\n daysToModify = [],\n weekends = [],\n weekendLabel = \"Weekend\",\n weekendIsSelectable = false,\n tooltipText,\n popperTooltipClassName,\n popperClassName,\n popperTooltipStyle,\n position,\n disableDaysBefore,\n}) => {\n const [timezoneAware, setTimezoneAware] = useState(defaultTimezoneAware);\n const localization = useLocalization();\n const dateFormat = passedDateFormat\n ? passedDateFormat\n : localization.dateFormat;\n\n const labelText = useMemo(() => {\n if (!selectedDays) {\n return defaultLabelText;\n } else {\n const endDate = timezoneAware\n ? moment.unix(selectedDays.to).local()\n : moment.unix(selectedDays.to).utc();\n\n const startDate = timezoneAware\n ? moment.unix(selectedDays.from).local()\n : moment.unix(selectedDays.from).utc();\n\n const formattedEndDate = formatDate(endDate, dateFormat, longDateFormat);\n const formattedStartDate = formatDate(\n startDate,\n dateFormat,\n longDateFormat\n );\n\n if (selectedDays.from === selectedDays.to) {\n return formattedEndDate;\n }\n\n return `${formattedStartDate} - ${formattedEndDate}`;\n }\n }, [\n selectedDays,\n dateFormat,\n timezoneAware,\n defaultLabelText,\n longDateFormat,\n ]);\n\n const modifiedDates = useMemo(() => {\n if (\n typeof selectedDays === \"object\" &&\n !!selectedDays.from &&\n !!selectedDays.to\n ) {\n if (timezoneAware) {\n return {\n from: moment.unix(selectedDays.from).toDate(),\n to: moment.unix(selectedDays.to).toDate(),\n };\n }\n const offsetFrom = moment.unix(selectedDays.from).utcOffset() * 60;\n const offsetTo = moment.unix(selectedDays.to).utcOffset() * 60;\n return {\n from: new Date((selectedDays.from - offsetFrom) * 1000),\n to: new Date((selectedDays.to - offsetTo) * 1000),\n };\n }\n }, [selectedDays, timezoneAware]);\n\n const handleModifiedSave = useCallback(\n (selectedDates) => {\n setTimezoneAware(false);\n if (typeof onSave === \"function\") {\n if (\n typeof selectedDates === \"object\" &&\n Object.prototype.hasOwnProperty.call(selectedDates, \"from\") &&\n Object.prototype.hasOwnProperty.call(selectedDates, \"to\")\n ) {\n onSave({\n from: getUtcTimestampFromDate(selectedDates.from),\n to: getUtcTimestampFromDate(selectedDates.to),\n });\n } else {\n onSave(undefined);\n }\n }\n },\n [onSave]\n );\n\n const getDefaultMonth = useCallback(() => {\n let date = new Date();\n\n if (typeof selectedDays === \"object\" && !!selectedDays.from) {\n date = timezoneAware\n ? new Date(selectedDays.from * 1000)\n : new Date(\n (selectedDays.from -\n moment.unix(selectedDays.from).utcOffset() * 60) *\n 1000\n );\n } else if (defaultMonth) {\n date = defaultMonth;\n }\n\n // forcing second day in month\n return new Date(date.getFullYear(), date.getMonth(), 2);\n }, [defaultMonth, selectedDays, timezoneAware]);\n\n const [month, setMonth] = useState(getDefaultMonth);\n\n const handleMonthChange = useCallback(\n (month) => {\n if (onMonthChange) {\n onMonthChange(month);\n }\n setMonth(month);\n },\n [setMonth, onMonthChange]\n );\n\n const [newDates, setNewDates] = useState(modifiedDates);\n const [showDiscardModal, setShowDiscardModal] = useState(false);\n const [showDatePicker, setShowDatePicker] = useState(defaultShowDatePicker);\n\n const disabledSaveButton = useMemo(() => {\n return (\n modifiedDates?.from === newDates?.from &&\n modifiedDates?.to === newDates?.to\n );\n }, [modifiedDates, newDates]);\n\n useEffect(() => {\n setShowDatePicker(defaultShowDatePicker);\n }, [defaultShowDatePicker]);\n\n useEffect(() => {\n modifiedDates && setNewDates(modifiedDates);\n }, [modifiedDates]);\n\n useEffect(() => {\n typeof onToggleDatePicker === \"function\" &&\n onToggleDatePicker(showDatePicker);\n }, [showDatePicker, onToggleDatePicker]);\n\n useEffect(() => {\n if (!showDatePicker) {\n setMonth(getDefaultMonth());\n }\n }, [showDatePicker, getDefaultMonth]);\n\n const handleSave = useCallback(() => {\n handleModifiedSave(newDates);\n setShowDatePicker(false);\n }, [newDates, handleModifiedSave]);\n\n const handleChange = useCallback(\n (dates) => {\n if (mode !== \"atomic\") {\n handleModifiedSave(dates);\n }\n setNewDates(dates);\n },\n [mode, handleModifiedSave]\n );\n\n const handleBeforeCloseMenu = useCallback(() => {\n let result = true;\n\n if ((modifiedDates && !newDates) || (!modifiedDates && newDates)) {\n result = false;\n }\n\n const selectedDaysFrom = modifiedDates?.from;\n const selectedDaysTo = modifiedDates?.to;\n const newDatesFrom = newDates?.from;\n const newDatesTo = newDates?.to;\n\n if (\n selectedDaysFrom &&\n newDatesFrom &&\n selectedDaysTo &&\n newDatesTo &&\n (moment(selectedDaysFrom).format(\"DD-MM-YYYY\") !==\n moment(newDatesFrom).format(\"DD-MM-YYYY\") ||\n moment(selectedDaysTo).format(\"DD-MM-YYYY\") !==\n moment(newDatesTo).format(\"DD-MM-YYYY\"))\n ) {\n result = false;\n }\n\n if (!result) {\n setShowDiscardModal(true);\n }\n\n return result;\n }, [modifiedDates, newDates]);\n\n const handleClose = useCallback(() => {\n if (mode !== \"atomic\" || handleBeforeCloseMenu()) {\n typeof onCancel === \"function\" && onCancel();\n setShowDatePicker(false);\n }\n }, [mode, onCancel, handleBeforeCloseMenu]);\n\n const handleCancel = useCallback(\n (event) => {\n event && event.preventDefault();\n return handleClose();\n },\n [handleClose]\n );\n\n const handleShowDatePicker = useCallback(() => {\n setShowDatePicker(!showDatePicker);\n }, [showDatePicker]);\n\n const handleCloseDiscardModal = useCallback(() => {\n setShowDiscardModal(false);\n }, []);\n\n const handleClear = useCallback(() => {\n if (!dateRequired) {\n setNewDates(undefined);\n if (mode === \"instant\") {\n handleModifiedSave(undefined);\n }\n }\n }, [mode, dateRequired, handleModifiedSave]);\n\n const handleSaveDiscardModal = useCallback(() => {\n setNewDates(modifiedDates);\n setShowDiscardModal(false);\n setShowDatePicker(false);\n }, [modifiedDates]);\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 [customClassNames.userAvailability]: (day: Date): boolean => {\n // construct new date because react-day-picker returns date with hours set\n const currentDay = new Date(\n day.getFullYear(),\n day.getMonth(),\n day.getDate()\n );\n return userAvailabilities.some((data) =>\n isDayInRange(currentDay, data)\n );\n },\n [customClassNames.weekend]: (day: Date): boolean => {\n return weekends.some((value) => day.getDay() === value);\n },\n [customClassNames.nonWorkingDay]: (day: Date): boolean => {\n // return true if day is weekend day\n if (weekends.some((value) => value === day.getDay())) {\n return true;\n }\n const nonWorkingDays = [...selectableGlobalDaysOff, ...globalDaysOff];\n const currentDay = new Date(\n day.getFullYear(),\n day.getMonth(),\n day.getDate()\n );\n return nonWorkingDays.some((data) => isDayInRange(currentDay, data));\n },\n [customClassNames.disabled]: (day: Date): boolean => {\n if (disableDaysBefore) {\n if (\n day.toJSON().slice(0, 10) < disableDaysBefore.toJSON().slice(0, 10)\n ) {\n return true;\n }\n }\n // return true if day is weekend day\n if (\n !weekendIsSelectable &&\n weekends.some((value) => value === day.getDay())\n ) {\n return true;\n }\n // construct new date because react-day-picker returns date with hours set\n const currentDay = new Date(\n day.getFullYear(),\n day.getMonth(),\n day.getDate()\n );\n return globalDaysOff.some((data) => isDayInRange(currentDay, data));\n },\n };\n }, [daysToModify, weekends, disableDaysBefore, weekendIsSelectable]);\n\n const renderDay = useCallback(\n (day: Date): ReactNode => {\n const titles: string[] = [];\n\n if (weekends.some((value) => day.getDay() === value)) {\n titles.push(weekendLabel);\n }\n\n // construct new date because react-day-picker returns date with hours set\n const currentDay = new Date(\n day.getFullYear(),\n day.getMonth(),\n day.getDate()\n );\n\n daysToModify.forEach((data) => {\n if (isDayInRange(currentDay, data)) {\n titles.push(data.title);\n }\n });\n\n const child = (\n <div className=\"c-DayPicker-Day-Number\">{day.getDate()}</div>\n );\n\n if (titles.length) {\n const title = (\n <div key={`title-wrapper-${day.getDate()}`}>\n {titles.map((title: string, index: number) => (\n <div key={`title-text-${index}`}>{title}</div>\n ))}\n </div>\n );\n\n return (\n <Tooltip\n title={title}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n >\n {child}\n </Tooltip>\n );\n }\n\n return child;\n },\n [\n weekendLabel,\n weekends,\n daysToModify,\n popperTooltipClassName,\n popperTooltipStyle,\n ]\n );\n\n const renderDatePickerForm = useCallback((): JSX.Element => {\n return (\n <DatePickerForm\n onMonthChange={handleMonthChange}\n month={month}\n mode={mode}\n selectionMode={selectionMode}\n dateRequired={dateRequired}\n selectedDays={newDates}\n firstDayOfWeek={firstDayOfWeek}\n saveButtonText={saveButtonText}\n cancelButtonText={cancelButtonText}\n clearButtonText={clearButtonText}\n onDayClick={onDayClick}\n onSave={handleSave}\n onChange={handleChange}\n onCancel={handleCancel}\n onClear={handleClear}\n disabledSaveButton={disabledSaveButton}\n modifiers={modifiers}\n renderDay={renderDay}\n />\n );\n }, [\n handleMonthChange,\n month,\n mode,\n selectionMode,\n dateRequired,\n newDates,\n firstDayOfWeek,\n saveButtonText,\n cancelButtonText,\n clearButtonText,\n onDayClick,\n handleSave,\n handleChange,\n handleCancel,\n handleClear,\n disabledSaveButton,\n modifiers,\n renderDay,\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 forceHideTooltip={showDatePicker}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n active={showDatePicker}\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 showDatePicker,\n targetClassName,\n targetIconClassName,\n targetTextClassName,\n tooltipText,\n ]);\n\n return (\n <StyledSelectDate className=\"select-date\">\n {labelType !== \"inline\" ? (\n <Menu\n target={renderTargetEl}\n open={showDatePicker}\n onOpen={handleShowDatePicker}\n onBeforeClose={handleBeforeCloseMenu}\n onClose={handleClose}\n position={position}\n menuClassName={menuClassName}\n popperClassName={popperClassName}\n backgroundElementClass={backgroundElementClass}\n >\n {renderDatePickerForm()}\n </Menu>\n ) : (\n renderDatePickerForm()\n )}\n {mode === \"atomic\" ? (\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 </StyledSelectDate>\n );\n};\n\nSelectDate.displayName = \"SelectDate\";\n"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -13873,6 +13873,7 @@
13873
13873
  _ref$modalCancelBtnTe = _ref.modalCancelBtnText,
13874
13874
  modalCancelBtnText = _ref$modalCancelBtnTe === void 0 ? "Cancel" : _ref$modalCancelBtnTe,
13875
13875
  onDayClick = _ref.onDayClick,
13876
+ onMonthChange = _ref.onMonthChange,
13876
13877
  onSave = _ref.onSave,
13877
13878
  onCancel = _ref.onCancel,
13878
13879
  onToggleDatePicker = _ref.onToggleDatePicker,
@@ -13978,8 +13979,11 @@
13978
13979
  month = _useState4[0],
13979
13980
  setMonth = _useState4[1];
13980
13981
  var handleMonthChange = React.useCallback(function (month) {
13982
+ if (onMonthChange) {
13983
+ onMonthChange(month);
13984
+ }
13981
13985
  setMonth(month);
13982
- }, [setMonth]);
13986
+ }, [setMonth, onMonthChange]);
13983
13987
  var _useState5 = React.useState(modifiedDates),
13984
13988
  _useState6 = _slicedToArray(_useState5, 2),
13985
13989
  newDates = _useState6[0],
@@ -16740,7 +16744,7 @@
16740
16744
  var StyledInput = styled__default["default"].input.withConfig({
16741
16745
  displayName: "CommandPalettestyles__StyledInput",
16742
16746
  componentId: "sc-na3mad-4"
16743
- })(["all:unset;caret-color:var(--color-primary);color:var(--color-theme-900);width:100%;", "{font-size:32px;font-weight:300;letter-spacing:0.5px;line-height:44px;}::-webkit-outer-spin-button,::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type=\"number\"]{-moz-appearance:textfield;}::placeholder{color:var(--color-theme-transparent-500);}::selection{background:var(--color-primary-300);}"], screen.sm);
16747
+ })(["all:unset;caret-color:var(--color-primary);color:var(--color-theme-900);width:100%;", "{font-size:32px;font-weight:300;letter-spacing:0.5px;line-height:44px;}::-webkit-outer-spin-button,::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type=\"search\"]::-webkit-search-decoration,&[type=\"search\"]::-webkit-search-cancel-button,&[type=\"search\"]::-webkit-search-results-button,&[type=\"search\"]::-webkit-search-results-decoration{-webkit-appearance:none;}&[type=\"number\"]{-moz-appearance:textfield;}::placeholder{color:var(--color-theme-transparent-500);}::selection{background:var(--color-primary-300);}"], screen.sm);
16744
16748
  var StyledParameter = styled__default["default"].span.withConfig({
16745
16749
  displayName: "CommandPalettestyles__StyledParameter",
16746
16750
  componentId: "sc-na3mad-5"
@@ -16923,7 +16927,7 @@
16923
16927
  ref: inputRef,
16924
16928
  autoFocus: true,
16925
16929
  placeholder: handleInputPlaceholder,
16926
- type: "text",
16930
+ type: "search",
16927
16931
  "aria-autocomplete": "list",
16928
16932
  autoCapitalize: "none",
16929
16933
  autoComplete: "off",