@activecollab/components 1.0.132 → 1.0.133
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.
- package/dist/cjs/components/SelectDate/SelectDate.js +24 -13
- package/dist/cjs/components/SelectDate/SelectDate.js.map +1 -1
- package/dist/esm/components/SelectDate/SelectDate.d.ts +3 -1
- package/dist/esm/components/SelectDate/SelectDate.d.ts.map +1 -1
- package/dist/esm/components/SelectDate/SelectDate.js +24 -13
- package/dist/esm/components/SelectDate/SelectDate.js.map +1 -1
- package/dist/index.js +24 -13
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -418,23 +418,34 @@ var SelectDate = function SelectDate(_ref) {
|
|
|
418
418
|
renderDay: renderDay
|
|
419
419
|
});
|
|
420
420
|
}, [handleMonthChange, month, mode, selectionMode, dateRequired, newDates, firstDayOfWeek, saveButtonText, cancelButtonText, clearButtonText, onDayClick, handleSave, handleChange, handleCancel, handleClear, disabledSaveButton, modifiers, renderDay]);
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
}
|
|
421
|
+
var renderTargetEl = (0, _react.useMemo)(function () {
|
|
422
|
+
if (labelType === "icon" && icon) {
|
|
423
|
+
return /*#__PURE__*/_react.default.createElement(_SelectDateTarget.SelectDateTarget, {
|
|
424
|
+
icon: icon,
|
|
425
|
+
title: tooltipText,
|
|
426
|
+
targetIconClassName: targetIconClassName,
|
|
427
|
+
forceHideTooltip: showDatePicker,
|
|
428
|
+
popperTooltipClassName: popperTooltipClassName,
|
|
429
|
+
popperTooltipStyle: popperTooltipStyle,
|
|
430
|
+
active: showDatePicker
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
if (typeof labelType === "function") {
|
|
435
|
+
return labelType(labelText);
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
return /*#__PURE__*/_react.default.createElement(_Styles.StyledSelectDateButton, {
|
|
433
439
|
type: "button",
|
|
434
440
|
className: (0, _classnames.default)("date-picker-target", targetClassName)
|
|
435
441
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
436
442
|
className: targetTextClassName
|
|
437
|
-
}, labelText))
|
|
443
|
+
}, labelText));
|
|
444
|
+
}, [icon, labelText, labelType, popperTooltipClassName, popperTooltipStyle, showDatePicker, targetClassName, targetIconClassName, targetTextClassName, tooltipText]);
|
|
445
|
+
return /*#__PURE__*/_react.default.createElement(_Styles.StyledSelectDate, {
|
|
446
|
+
className: "select-date"
|
|
447
|
+
}, labelType !== "inline" ? /*#__PURE__*/_react.default.createElement(_Menu.Menu, {
|
|
448
|
+
target: renderTargetEl,
|
|
438
449
|
open: showDatePicker,
|
|
439
450
|
onOpen: handleShowDatePicker,
|
|
440
451
|
onBeforeClose: handleBeforeCloseMenu,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/SelectDate/SelectDate.tsx"],"names":["getUtcTimestampFromDate","date","moment","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","dateFormat","defaultMonth","daysToModify","weekends","weekendLabel","weekendIsSelectable","tooltipText","popperTooltipClassName","popperClassName","popperTooltipStyle","position","disableDaysBefore","timezoneAware","setTimezoneAware","labelText","endDate","local","startDate","currentYear","year","formattedEndDate","format","replace","trim","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","handleClose","handleCancel","event","preventDefault","handleShowDatePicker","handleCloseDiscardModal","handleClear","handleSaveDiscardModal","modifiers","userAvailabilities","filter","type","globalDaysOff","selectableGlobalDaysOff","customClassNames","userAvailability","currentDay","some","weekend","value","getDay","nonWorkingDay","nonWorkingDays","disabled","toJSON","slice","renderDay","titles","push","forEach","title","child","length","map","index","renderDatePickerForm","displayName"],"mappings":"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","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\";\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\ninterface ISelectDate {\n /** Change mode - can be atomic and instant */\n changeMode?: \"atomic\" | \"instant\";\n /** Trigger - can be text, icon, or inline */\n trigger?: \"text\" | \"icon\" | \"inline\";\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 = \"DD MM. YYYY\",\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\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 currentYear = moment.utc().year();\n\n const formattedEndDate =\n !longDateFormat && endDate.year() === currentYear\n ? endDate.format(dateFormat.replace(/Y|,$/gi, ``).trim())\n : endDate.format(dateFormat);\n const formattedStartDate =\n !longDateFormat && startDate.year() === currentYear\n ? startDate.format(dateFormat.replace(/Y|,$/gi, ``).trim())\n : startDate.format(dateFormat);\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 return (\n <StyledSelectDate className=\"select-date\">\n {labelType !== \"inline\" ? (\n <Menu\n target={\n labelType === \"icon\" && icon ? (\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 <StyledSelectDateButton\n type=\"button\"\n className={classnames(\"date-picker-target\", targetClassName)}\n >\n <span className={targetTextClassName}>{labelText}</span>\n </StyledSelectDateButton>\n )\n }\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"],"file":"SelectDate.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SelectDate/SelectDate.tsx"],"names":["getUtcTimestampFromDate","date","moment","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","dateFormat","defaultMonth","daysToModify","weekends","weekendLabel","weekendIsSelectable","tooltipText","popperTooltipClassName","popperClassName","popperTooltipStyle","position","disableDaysBefore","timezoneAware","setTimezoneAware","labelText","endDate","local","startDate","currentYear","year","formattedEndDate","format","replace","trim","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","handleClose","handleCancel","event","preventDefault","handleShowDatePicker","handleCloseDiscardModal","handleClear","handleSaveDiscardModal","modifiers","userAvailabilities","filter","type","globalDaysOff","selectableGlobalDaysOff","customClassNames","userAvailability","currentDay","some","weekend","value","getDay","nonWorkingDay","nonWorkingDays","disabled","toJSON","slice","renderDay","titles","push","forEach","title","child","length","map","index","renderDatePickerForm","renderTargetEl","displayName"],"mappings":"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","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\";\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 = \"DD MM. YYYY\",\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\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 currentYear = moment.utc().year();\n\n const formattedEndDate =\n !longDateFormat && endDate.year() === currentYear\n ? endDate.format(dateFormat.replace(/Y|,$/gi, ``).trim())\n : endDate.format(dateFormat);\n const formattedStartDate =\n !longDateFormat && startDate.year() === currentYear\n ? startDate.format(dateFormat.replace(/Y|,$/gi, ``).trim())\n : startDate.format(dateFormat);\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"],"file":"SelectDate.js"}
|
|
@@ -2,9 +2,11 @@ import { ElementType, FC, CSSProperties } from "react";
|
|
|
2
2
|
import { DayModifiers } from "react-day-picker";
|
|
3
3
|
import { Placement } from "@popperjs/core";
|
|
4
4
|
import { DaysToModify } from "./types";
|
|
5
|
+
declare type TriggerStringType = "text" | "icon" | "inline";
|
|
6
|
+
declare type TriggerFunctionType = (text: string) => JSX.Element;
|
|
5
7
|
interface ISelectDate {
|
|
6
8
|
changeMode?: "atomic" | "instant";
|
|
7
|
-
trigger?:
|
|
9
|
+
trigger?: TriggerStringType | TriggerFunctionType;
|
|
8
10
|
saveButtonText?: string;
|
|
9
11
|
cancelButtonText?: string;
|
|
10
12
|
clearButtonText?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectDate.d.ts","sourceRoot":"","sources":["../../../../src/components/SelectDate/SelectDate.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,WAAW,EACX,EAAE,EAMF,aAAa,EACd,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAiCvC,UAAU,WAAW;IAEnB,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAElC,OAAO,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"SelectDate.d.ts","sourceRoot":"","sources":["../../../../src/components/SelectDate/SelectDate.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,WAAW,EACX,EAAE,EAMF,aAAa,EACd,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAiCvC,aAAK,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AACpD,aAAK,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC;AAEzD,UAAU,WAAW;IAEnB,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAElC,OAAO,CAAC,EAAE,iBAAiB,GAAG,mBAAmB,CAAC;IAElD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,KAAK,IAAI,CAAC;IAE1D,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAExD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAE9C,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAE5C,YAAY,CAAC,EAAE,IAAI,CAAC;IAEpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAE9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,kBAAkB,CAAC,EAAE,aAAa,CAAC;IAEnC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,iBAAiB,CAAC,EAAE,IAAI,CAAC;CAC1B;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,WAAW,CAqftC,CAAC"}
|
|
@@ -364,23 +364,34 @@ export var SelectDate = function SelectDate(_ref) {
|
|
|
364
364
|
renderDay: renderDay
|
|
365
365
|
});
|
|
366
366
|
}, [handleMonthChange, month, mode, selectionMode, dateRequired, newDates, firstDayOfWeek, saveButtonText, cancelButtonText, clearButtonText, onDayClick, handleSave, handleChange, handleCancel, handleClear, disabledSaveButton, modifiers, renderDay]);
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
}
|
|
367
|
+
var renderTargetEl = useMemo(function () {
|
|
368
|
+
if (labelType === "icon" && icon) {
|
|
369
|
+
return /*#__PURE__*/React.createElement(SelectDateTarget, {
|
|
370
|
+
icon: icon,
|
|
371
|
+
title: tooltipText,
|
|
372
|
+
targetIconClassName: targetIconClassName,
|
|
373
|
+
forceHideTooltip: showDatePicker,
|
|
374
|
+
popperTooltipClassName: popperTooltipClassName,
|
|
375
|
+
popperTooltipStyle: popperTooltipStyle,
|
|
376
|
+
active: showDatePicker
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
if (typeof labelType === "function") {
|
|
381
|
+
return labelType(labelText);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
return /*#__PURE__*/React.createElement(StyledSelectDateButton, {
|
|
379
385
|
type: "button",
|
|
380
386
|
className: classnames("date-picker-target", targetClassName)
|
|
381
387
|
}, /*#__PURE__*/React.createElement("span", {
|
|
382
388
|
className: targetTextClassName
|
|
383
|
-
}, labelText))
|
|
389
|
+
}, labelText));
|
|
390
|
+
}, [icon, labelText, labelType, popperTooltipClassName, popperTooltipStyle, showDatePicker, targetClassName, targetIconClassName, targetTextClassName, tooltipText]);
|
|
391
|
+
return /*#__PURE__*/React.createElement(StyledSelectDate, {
|
|
392
|
+
className: "select-date"
|
|
393
|
+
}, labelType !== "inline" ? /*#__PURE__*/React.createElement(Menu, {
|
|
394
|
+
target: renderTargetEl,
|
|
384
395
|
open: showDatePicker,
|
|
385
396
|
onOpen: handleShowDatePicker,
|
|
386
397
|
onBeforeClose: handleBeforeCloseMenu,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/SelectDate/SelectDate.tsx"],"names":["React","useCallback","useEffect","useMemo","useState","moment","classnames","Menu","DatePickerForm","customClassNames","Tooltip","SelectDateTarget","StyledConfirmDialog","StyledSelectDate","StyledSelectDateButton","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","dateFormat","defaultMonth","daysToModify","weekends","weekendLabel","weekendIsSelectable","tooltipText","popperTooltipClassName","popperClassName","popperTooltipStyle","position","disableDaysBefore","timezoneAware","setTimezoneAware","labelText","endDate","local","startDate","currentYear","year","formattedEndDate","format","replace","trim","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","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","displayName"],"mappings":"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","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\";\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\ninterface ISelectDate {\n /** Change mode - can be atomic and instant */\n changeMode?: \"atomic\" | \"instant\";\n /** Trigger - can be text, icon, or inline */\n trigger?: \"text\" | \"icon\" | \"inline\";\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 = \"DD MM. YYYY\",\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\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 currentYear = moment.utc().year();\n\n const formattedEndDate =\n !longDateFormat && endDate.year() === currentYear\n ? endDate.format(dateFormat.replace(/Y|,$/gi, ``).trim())\n : endDate.format(dateFormat);\n const formattedStartDate =\n !longDateFormat && startDate.year() === currentYear\n ? startDate.format(dateFormat.replace(/Y|,$/gi, ``).trim())\n : startDate.format(dateFormat);\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 return (\n <StyledSelectDate className=\"select-date\">\n {labelType !== \"inline\" ? (\n <Menu\n target={\n labelType === \"icon\" && icon ? (\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 <StyledSelectDateButton\n type=\"button\"\n className={classnames(\"date-picker-target\", targetClassName)}\n >\n <span className={targetTextClassName}>{labelText}</span>\n </StyledSelectDateButton>\n )\n }\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"],"file":"SelectDate.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SelectDate/SelectDate.tsx"],"names":["React","useCallback","useEffect","useMemo","useState","moment","classnames","Menu","DatePickerForm","customClassNames","Tooltip","SelectDateTarget","StyledConfirmDialog","StyledSelectDate","StyledSelectDateButton","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","dateFormat","defaultMonth","daysToModify","weekends","weekendLabel","weekendIsSelectable","tooltipText","popperTooltipClassName","popperClassName","popperTooltipStyle","position","disableDaysBefore","timezoneAware","setTimezoneAware","labelText","endDate","local","startDate","currentYear","year","formattedEndDate","format","replace","trim","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","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"],"mappings":"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","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\";\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 = \"DD MM. YYYY\",\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\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 currentYear = moment.utc().year();\n\n const formattedEndDate =\n !longDateFormat && endDate.year() === currentYear\n ? endDate.format(dateFormat.replace(/Y|,$/gi, ``).trim())\n : endDate.format(dateFormat);\n const formattedStartDate =\n !longDateFormat && startDate.year() === currentYear\n ? startDate.format(dateFormat.replace(/Y|,$/gi, ``).trim())\n : startDate.format(dateFormat);\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"],"file":"SelectDate.js"}
|
package/dist/index.js
CHANGED
|
@@ -9816,23 +9816,34 @@
|
|
|
9816
9816
|
renderDay: renderDay
|
|
9817
9817
|
});
|
|
9818
9818
|
}, [handleMonthChange, month, mode, selectionMode, dateRequired, newDates, firstDayOfWeek, saveButtonText, cancelButtonText, clearButtonText, onDayClick, handleSave, handleChange, handleCancel, handleClear, disabledSaveButton, modifiers, renderDay]);
|
|
9819
|
-
|
|
9820
|
-
|
|
9821
|
-
|
|
9822
|
-
|
|
9823
|
-
|
|
9824
|
-
|
|
9825
|
-
|
|
9826
|
-
|
|
9827
|
-
|
|
9828
|
-
|
|
9829
|
-
|
|
9830
|
-
}
|
|
9819
|
+
var renderTargetEl = React.useMemo(function () {
|
|
9820
|
+
if (labelType === "icon" && icon) {
|
|
9821
|
+
return /*#__PURE__*/React__default["default"].createElement(SelectDateTarget, {
|
|
9822
|
+
icon: icon,
|
|
9823
|
+
title: tooltipText,
|
|
9824
|
+
targetIconClassName: targetIconClassName,
|
|
9825
|
+
forceHideTooltip: showDatePicker,
|
|
9826
|
+
popperTooltipClassName: popperTooltipClassName,
|
|
9827
|
+
popperTooltipStyle: popperTooltipStyle,
|
|
9828
|
+
active: showDatePicker
|
|
9829
|
+
});
|
|
9830
|
+
}
|
|
9831
|
+
|
|
9832
|
+
if (typeof labelType === "function") {
|
|
9833
|
+
return labelType(labelText);
|
|
9834
|
+
}
|
|
9835
|
+
|
|
9836
|
+
return /*#__PURE__*/React__default["default"].createElement(StyledSelectDateButton, {
|
|
9831
9837
|
type: "button",
|
|
9832
9838
|
className: classnames__default["default"]("date-picker-target", targetClassName)
|
|
9833
9839
|
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
9834
9840
|
className: targetTextClassName
|
|
9835
|
-
}, labelText))
|
|
9841
|
+
}, labelText));
|
|
9842
|
+
}, [icon, labelText, labelType, popperTooltipClassName, popperTooltipStyle, showDatePicker, targetClassName, targetIconClassName, targetTextClassName, tooltipText]);
|
|
9843
|
+
return /*#__PURE__*/React__default["default"].createElement(StyledSelectDate, {
|
|
9844
|
+
className: "select-date"
|
|
9845
|
+
}, labelType !== "inline" ? /*#__PURE__*/React__default["default"].createElement(Menu, {
|
|
9846
|
+
target: renderTargetEl,
|
|
9836
9847
|
open: showDatePicker,
|
|
9837
9848
|
onOpen: handleShowDatePicker,
|
|
9838
9849
|
onBeforeClose: handleBeforeCloseMenu,
|