@activecollab/components 2.0.211 → 2.0.213

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/cjs/components/DatePicker/DatePicker.js +678 -301
  2. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  3. package/dist/cjs/components/DatePicker/Styles.js +91 -37
  4. package/dist/cjs/components/DatePicker/Styles.js.map +1 -1
  5. package/dist/cjs/components/DatePicker/index.js +0 -11
  6. package/dist/cjs/components/DatePicker/index.js.map +1 -1
  7. package/dist/cjs/components/EditableContent/EditableContent.js +4 -2
  8. package/dist/cjs/components/EditableContent/EditableContent.js.map +1 -1
  9. package/dist/cjs/components/EditableContent/Styles.js +8 -2
  10. package/dist/cjs/components/EditableContent/Styles.js.map +1 -1
  11. package/dist/cjs/components/EditableCurrency/EditableCurrency.js +3 -1
  12. package/dist/cjs/components/EditableCurrency/EditableCurrency.js.map +1 -1
  13. package/dist/cjs/components/SelectDate/SelectDate.js +126 -280
  14. package/dist/cjs/components/SelectDate/SelectDate.js.map +1 -1
  15. package/dist/cjs/components/SelectDate/index.js +0 -11
  16. package/dist/cjs/components/SelectDate/index.js.map +1 -1
  17. package/dist/cjs/components/Steppers/DateStepper/DateStepper.js +94 -100
  18. package/dist/cjs/components/Steppers/DateStepper/DateStepper.js.map +1 -1
  19. package/dist/cjs/components/Steppers/DateStepper/index.js +0 -11
  20. package/dist/cjs/components/Steppers/DateStepper/index.js.map +1 -1
  21. package/dist/cjs/components/index.js +0 -11
  22. package/dist/cjs/components/index.js.map +1 -1
  23. package/dist/esm/components/DatePicker/DatePicker.d.ts +64 -26
  24. package/dist/esm/components/DatePicker/DatePicker.d.ts.map +1 -1
  25. package/dist/esm/components/DatePicker/DatePicker.js +619 -278
  26. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  27. package/dist/esm/components/DatePicker/Styles.d.ts +21 -9
  28. package/dist/esm/components/DatePicker/Styles.d.ts.map +1 -1
  29. package/dist/esm/components/DatePicker/Styles.js +89 -30
  30. package/dist/esm/components/DatePicker/Styles.js.map +1 -1
  31. package/dist/esm/components/DatePicker/index.d.ts +0 -1
  32. package/dist/esm/components/DatePicker/index.d.ts.map +1 -1
  33. package/dist/esm/components/DatePicker/index.js +0 -1
  34. package/dist/esm/components/DatePicker/index.js.map +1 -1
  35. package/dist/esm/components/EditableContent/EditableContent.d.ts +1 -0
  36. package/dist/esm/components/EditableContent/EditableContent.d.ts.map +1 -1
  37. package/dist/esm/components/EditableContent/EditableContent.js +3 -1
  38. package/dist/esm/components/EditableContent/EditableContent.js.map +1 -1
  39. package/dist/esm/components/EditableContent/Styles.d.ts.map +1 -1
  40. package/dist/esm/components/EditableContent/Styles.js +12 -2
  41. package/dist/esm/components/EditableContent/Styles.js.map +1 -1
  42. package/dist/esm/components/EditableCurrency/EditableCurrency.d.ts.map +1 -1
  43. package/dist/esm/components/EditableCurrency/EditableCurrency.js +2 -0
  44. package/dist/esm/components/EditableCurrency/EditableCurrency.js.map +1 -1
  45. package/dist/esm/components/SelectDate/SelectDate.d.ts +20 -19
  46. package/dist/esm/components/SelectDate/SelectDate.d.ts.map +1 -1
  47. package/dist/esm/components/SelectDate/SelectDate.js +124 -246
  48. package/dist/esm/components/SelectDate/SelectDate.js.map +1 -1
  49. package/dist/esm/components/SelectDate/index.d.ts +0 -1
  50. package/dist/esm/components/SelectDate/index.d.ts.map +1 -1
  51. package/dist/esm/components/SelectDate/index.js +0 -1
  52. package/dist/esm/components/SelectDate/index.js.map +1 -1
  53. package/dist/esm/components/Steppers/DateStepper/DateStepper.d.ts +10 -7
  54. package/dist/esm/components/Steppers/DateStepper/DateStepper.d.ts.map +1 -1
  55. package/dist/esm/components/Steppers/DateStepper/DateStepper.js +88 -97
  56. package/dist/esm/components/Steppers/DateStepper/DateStepper.js.map +1 -1
  57. package/dist/esm/components/Steppers/DateStepper/index.d.ts +0 -1
  58. package/dist/esm/components/Steppers/DateStepper/index.d.ts.map +1 -1
  59. package/dist/esm/components/Steppers/DateStepper/index.js +0 -1
  60. package/dist/esm/components/Steppers/DateStepper/index.js.map +1 -1
  61. package/dist/esm/components/index.d.ts +0 -1
  62. package/dist/esm/components/index.d.ts.map +1 -1
  63. package/dist/esm/components/index.js +0 -1
  64. package/dist/esm/components/index.js.map +1 -1
  65. package/dist/index.js +229 -1568
  66. package/dist/index.js.map +1 -1
  67. package/dist/index.min.js +1 -1
  68. package/dist/index.min.js.map +1 -1
  69. package/package.json +1 -3
  70. package/dist/cjs/components/DatePicker/CustomNavBarElement.js +0 -41
  71. package/dist/cjs/components/DatePicker/CustomNavBarElement.js.map +0 -1
  72. package/dist/cjs/components/DatePicker/DatePickerV2.js +0 -734
  73. package/dist/cjs/components/DatePicker/DatePickerV2.js.map +0 -1
  74. package/dist/cjs/components/DatePicker/StylesV2.js +0 -100
  75. package/dist/cjs/components/DatePicker/StylesV2.js.map +0 -1
  76. package/dist/cjs/components/Pickers/NavBarElement.js +0 -52
  77. package/dist/cjs/components/Pickers/NavBarElement.js.map +0 -1
  78. package/dist/cjs/components/Pickers/Styles.js +0 -76
  79. package/dist/cjs/components/Pickers/Styles.js.map +0 -1
  80. package/dist/cjs/components/Pickers/YearMonthPicker.js +0 -80
  81. package/dist/cjs/components/Pickers/YearMonthPicker.js.map +0 -1
  82. package/dist/cjs/components/Pickers/index.js +0 -28
  83. package/dist/cjs/components/Pickers/index.js.map +0 -1
  84. package/dist/cjs/components/SelectDate/DatePickerForm.js +0 -94
  85. package/dist/cjs/components/SelectDate/DatePickerForm.js.map +0 -1
  86. package/dist/cjs/components/SelectDate/SelectDateV2.js +0 -263
  87. package/dist/cjs/components/SelectDate/SelectDateV2.js.map +0 -1
  88. package/dist/cjs/components/Steppers/DateStepper/DateStepperV2.js +0 -276
  89. package/dist/cjs/components/Steppers/DateStepper/DateStepperV2.js.map +0 -1
  90. package/dist/esm/components/DatePicker/CustomNavBarElement.d.ts +0 -12
  91. package/dist/esm/components/DatePicker/CustomNavBarElement.d.ts.map +0 -1
  92. package/dist/esm/components/DatePicker/CustomNavBarElement.js +0 -34
  93. package/dist/esm/components/DatePicker/CustomNavBarElement.js.map +0 -1
  94. package/dist/esm/components/DatePicker/DatePickerV2.d.ts +0 -68
  95. package/dist/esm/components/DatePicker/DatePickerV2.d.ts.map +0 -1
  96. package/dist/esm/components/DatePicker/DatePickerV2.js +0 -649
  97. package/dist/esm/components/DatePicker/DatePickerV2.js.map +0 -1
  98. package/dist/esm/components/DatePicker/StylesV2.d.ts +0 -22
  99. package/dist/esm/components/DatePicker/StylesV2.d.ts.map +0 -1
  100. package/dist/esm/components/DatePicker/StylesV2.js +0 -93
  101. package/dist/esm/components/DatePicker/StylesV2.js.map +0 -1
  102. package/dist/esm/components/Pickers/NavBarElement.d.ts +0 -9
  103. package/dist/esm/components/Pickers/NavBarElement.d.ts.map +0 -1
  104. package/dist/esm/components/Pickers/NavBarElement.js +0 -45
  105. package/dist/esm/components/Pickers/NavBarElement.js.map +0 -1
  106. package/dist/esm/components/Pickers/Styles.d.ts +0 -18
  107. package/dist/esm/components/Pickers/Styles.d.ts.map +0 -1
  108. package/dist/esm/components/Pickers/Styles.js +0 -56
  109. package/dist/esm/components/Pickers/Styles.js.map +0 -1
  110. package/dist/esm/components/Pickers/YearMonthPicker.d.ts +0 -17
  111. package/dist/esm/components/Pickers/YearMonthPicker.d.ts.map +0 -1
  112. package/dist/esm/components/Pickers/YearMonthPicker.js +0 -59
  113. package/dist/esm/components/Pickers/YearMonthPicker.js.map +0 -1
  114. package/dist/esm/components/Pickers/index.d.ts +0 -3
  115. package/dist/esm/components/Pickers/index.d.ts.map +0 -1
  116. package/dist/esm/components/Pickers/index.js +0 -3
  117. package/dist/esm/components/Pickers/index.js.map +0 -1
  118. package/dist/esm/components/SelectDate/DatePickerForm.d.ts +0 -39
  119. package/dist/esm/components/SelectDate/DatePickerForm.d.ts.map +0 -1
  120. package/dist/esm/components/SelectDate/DatePickerForm.js +0 -80
  121. package/dist/esm/components/SelectDate/DatePickerForm.js.map +0 -1
  122. package/dist/esm/components/SelectDate/SelectDateV2.d.ts +0 -102
  123. package/dist/esm/components/SelectDate/SelectDateV2.d.ts.map +0 -1
  124. package/dist/esm/components/SelectDate/SelectDateV2.js +0 -223
  125. package/dist/esm/components/SelectDate/SelectDateV2.js.map +0 -1
  126. package/dist/esm/components/Steppers/DateStepper/DateStepperV2.d.ts +0 -45
  127. package/dist/esm/components/Steppers/DateStepper/DateStepperV2.d.ts.map +0 -1
  128. package/dist/esm/components/Steppers/DateStepper/DateStepperV2.js +0 -241
  129. package/dist/esm/components/Steppers/DateStepper/DateStepperV2.js.map +0 -1
@@ -1,23 +1,28 @@
1
- import React, { useCallback, useEffect, useMemo, useState } from "react";
1
+ import React, { useMemo } from "react";
2
2
  import classnames from "classnames";
3
- import moment from "moment";
4
- import { DatePickerForm } from "./DatePickerForm";
3
+ import moment from "moment-timezone";
5
4
  import { SelectDateTarget } from "./SelectDateTarget";
6
- import { StyledConfirmDialog, StyledSelectDate, StyledSelectDateButton } from "./Styles";
5
+ import { StyledSelectDate, StyledSelectDateButton } from "./Styles";
7
6
  import { formatDate } from "../../utils/dateUtils";
8
- import { useLocalization } from "../Localization";
9
- import { Menu } from "../Menu/Menu";
10
- import { Tooltip } from "../Tooltip/Tooltip";
11
- const getUtcTimestampFromDate = date => {
12
- return moment.utc([date.getFullYear(), date.getMonth(), date.getDate()]).unix();
13
- };
7
+ import { DatePicker, toMoment } from "../DatePicker/DatePicker";
14
8
  const isDayInRange = (day, data) => {
9
+ const fromMoment = moment.unix(data.from).utc();
10
+ const toMoment = moment.unix(data.to).utc();
15
11
  if (data.repeating) {
16
- const from = new Date(day.getFullYear(), data.from.getMonth(), data.from.getDate());
17
- const to = new Date(day.getFullYear(), data.to.getMonth(), data.to.getDate());
18
- return day >= from && day <= to;
12
+ const year = day.year();
13
+ const from = moment.utc({
14
+ year,
15
+ month: fromMoment.month(),
16
+ date: fromMoment.date()
17
+ });
18
+ const to = moment.utc({
19
+ year,
20
+ month: toMoment.month(),
21
+ date: toMoment.date()
22
+ });
23
+ return day.isSameOrAfter(from, "day") && day.isSameOrBefore(to, "day");
19
24
  }
20
- return day >= data.from && day <= data.to;
25
+ return day.isSameOrAfter(fromMoment, "day") && day.isSameOrBefore(toMoment, "day");
21
26
  };
22
27
  export const SelectDate = _ref => {
23
28
  let {
@@ -35,7 +40,6 @@ export const SelectDate = _ref => {
35
40
  onCancel,
36
41
  onToggleDatePicker,
37
42
  required: dateRequired = false,
38
- defaultTimezoneAware = false,
39
43
  longDateFormat = false,
40
44
  defaultShowDatePicker = false,
41
45
  firstDayOfWeek = 0,
@@ -48,7 +52,7 @@ export const SelectDate = _ref => {
48
52
  targetTextClassName,
49
53
  targetIconClassName,
50
54
  backgroundElementClass,
51
- dateFormat: passedDateFormat,
55
+ dateFormat,
52
56
  defaultMonth,
53
57
  daysToModify = [],
54
58
  weekends = [],
@@ -61,251 +65,86 @@ export const SelectDate = _ref => {
61
65
  popperClassName,
62
66
  popperTooltipStyle,
63
67
  position,
64
- disableDaysBefore
68
+ disableDaysBefore,
69
+ enableYearPicker,
70
+ disableAnimations,
71
+ disabledDaysAfter,
72
+ onChange
65
73
  } = _ref;
66
- const [timezoneAware, setTimezoneAware] = useState(defaultTimezoneAware);
67
- const localization = useLocalization();
68
- const dateFormat = passedDateFormat ? passedDateFormat : localization.dateFormat;
69
74
  const labelText = useMemo(() => {
70
75
  if (!selectedDays) {
71
76
  return defaultLabelText;
77
+ } else if (!selectedDays.from && !selectedDays.to) {
78
+ return defaultLabelText;
72
79
  } else {
73
- const endDate = timezoneAware ? moment.unix(selectedDays.to).local() : moment.unix(selectedDays.to).utc();
74
- const startDate = timezoneAware ? moment.unix(selectedDays.from).local() : moment.unix(selectedDays.from).utc();
75
- const formattedEndDate = formatDate(endDate, dateFormat, longDateFormat);
76
- const formattedStartDate = formatDate(startDate, dateFormat, longDateFormat);
77
- if (selectedDays.from === selectedDays.to) {
80
+ const formattedEndDate = selectedDays.to ? formatDate(toMoment(selectedDays.to), dateFormat, longDateFormat) : "";
81
+ const formattedStartDate = selectedDays.from ? formatDate(toMoment(selectedDays == null ? void 0 : selectedDays.from), dateFormat, longDateFormat) : "";
82
+ if (selectedDays.to && selectedDays.from && toMoment(selectedDays.from).isSame(toMoment(selectedDays.to))) {
78
83
  return formattedEndDate;
79
84
  }
80
- return formattedStartDate + " - " + formattedEndDate;
81
- }
82
- }, [selectedDays, dateFormat, timezoneAware, defaultLabelText, longDateFormat]);
83
- const modifiedDates = useMemo(() => {
84
- if (typeof selectedDays === "object" && !!selectedDays.from && !!selectedDays.to) {
85
- if (timezoneAware) {
86
- return {
87
- from: moment.unix(selectedDays.from).toDate(),
88
- to: moment.unix(selectedDays.to).toDate()
89
- };
90
- }
91
- const offsetFrom = moment.unix(selectedDays.from).utcOffset() * 60;
92
- const offsetTo = moment.unix(selectedDays.to).utcOffset() * 60;
93
- return {
94
- from: new Date((selectedDays.from - offsetFrom) * 1000),
95
- to: new Date((selectedDays.to - offsetTo) * 1000)
96
- };
97
- }
98
- }, [selectedDays, timezoneAware]);
99
- const handleModifiedSave = useCallback(selectedDates => {
100
- setTimezoneAware(false);
101
- if (typeof onSave === "function") {
102
- if (typeof selectedDates === "object" && Object.prototype.hasOwnProperty.call(selectedDates, "from") && Object.prototype.hasOwnProperty.call(selectedDates, "to")) {
103
- onSave({
104
- from: getUtcTimestampFromDate(selectedDates.from),
105
- to: getUtcTimestampFromDate(selectedDates.to)
106
- });
107
- } else {
108
- onSave(undefined);
109
- }
110
- }
111
- }, [onSave]);
112
- const getDefaultMonth = useCallback(() => {
113
- let date = new Date();
114
- if (typeof selectedDays === "object" && !!selectedDays.from) {
115
- date = timezoneAware ? new Date(selectedDays.from * 1000) : new Date((selectedDays.from - moment.unix(selectedDays.from).utcOffset() * 60) * 1000);
116
- } else if (defaultMonth) {
117
- date = defaultMonth;
118
- }
119
-
120
- // forcing second day in month
121
- return new Date(date.getFullYear(), date.getMonth(), 2);
122
- }, [defaultMonth, selectedDays, timezoneAware]);
123
- const [month, setMonth] = useState(getDefaultMonth);
124
- const handleMonthChange = useCallback(month => {
125
- setMonth(month);
126
- }, [setMonth]);
127
- const [newDates, setNewDates] = useState(modifiedDates);
128
- const [showDiscardModal, setShowDiscardModal] = useState(false);
129
- const [showDatePicker, setShowDatePicker] = useState(defaultShowDatePicker);
130
- const disabledSaveButton = useMemo(() => {
131
- return (modifiedDates == null ? void 0 : modifiedDates.from) === (newDates == null ? void 0 : newDates.from) && (modifiedDates == null ? void 0 : modifiedDates.to) === (newDates == null ? void 0 : newDates.to);
132
- }, [modifiedDates, newDates]);
133
- useEffect(() => {
134
- setShowDatePicker(defaultShowDatePicker);
135
- }, [defaultShowDatePicker]);
136
- useEffect(() => {
137
- setNewDates(modifiedDates);
138
- }, [modifiedDates]);
139
- useEffect(() => {
140
- typeof onToggleDatePicker === "function" && onToggleDatePicker(showDatePicker);
141
- }, [showDatePicker, onToggleDatePicker]);
142
- useEffect(() => {
143
- if (!showDatePicker) {
144
- setMonth(getDefaultMonth());
145
- }
146
- }, [showDatePicker, getDefaultMonth]);
147
- const handleSave = useCallback(() => {
148
- handleModifiedSave(newDates);
149
- setShowDatePicker(false);
150
- }, [newDates, handleModifiedSave]);
151
- const handleChange = useCallback(dates => {
152
- if (mode !== "atomic") {
153
- handleModifiedSave(dates);
154
- }
155
- setNewDates(dates);
156
- }, [mode, handleModifiedSave]);
157
- const handleBeforeCloseMenu = useCallback(() => {
158
- let result = true;
159
- if (modifiedDates && !newDates || !modifiedDates && newDates) {
160
- result = false;
161
- }
162
- const selectedDaysFrom = modifiedDates == null ? void 0 : modifiedDates.from;
163
- const selectedDaysTo = modifiedDates == null ? void 0 : modifiedDates.to;
164
- const newDatesFrom = newDates == null ? void 0 : newDates.from;
165
- const newDatesTo = newDates == null ? void 0 : newDates.to;
166
- if (selectedDaysFrom && newDatesFrom && selectedDaysTo && newDatesTo && (moment(selectedDaysFrom).format("DD-MM-YYYY") !== moment(newDatesFrom).format("DD-MM-YYYY") || moment(selectedDaysTo).format("DD-MM-YYYY") !== moment(newDatesTo).format("DD-MM-YYYY"))) {
167
- result = false;
168
- }
169
- if (!result) {
170
- setShowDiscardModal(true);
171
- }
172
- return result;
173
- }, [modifiedDates, newDates]);
174
- const handleClose = useCallback(() => {
175
- if (mode !== "atomic" || handleBeforeCloseMenu()) {
176
- typeof onCancel === "function" && onCancel();
177
- setShowDatePicker(false);
178
- }
179
- }, [mode, onCancel, handleBeforeCloseMenu]);
180
- const handleCancel = useCallback(event => {
181
- event && event.preventDefault();
182
- return handleClose();
183
- }, [handleClose]);
184
- const handleShowDatePicker = useCallback(() => {
185
- setShowDatePicker(!showDatePicker);
186
- }, [showDatePicker]);
187
- const handleCloseDiscardModal = useCallback(() => {
188
- setShowDiscardModal(false);
189
- }, []);
190
- const handleClear = useCallback(() => {
191
- if (!dateRequired) {
192
- setNewDates(undefined);
193
- if (mode === "instant") {
194
- handleModifiedSave(undefined);
85
+ if (!selectedDays.to && selectedDays.from) {
86
+ return formattedStartDate;
195
87
  }
88
+ return formattedStartDate + " - " + formattedEndDate;
196
89
  }
197
- }, [mode, dateRequired, handleModifiedSave]);
198
- const handleSaveDiscardModal = useCallback(() => {
199
- setNewDates(modifiedDates);
200
- setShowDiscardModal(false);
201
- setShowDatePicker(false);
202
- }, [modifiedDates]);
90
+ }, [selectedDays, dateFormat, defaultLabelText, longDateFormat]);
203
91
  const modifiers = useMemo(() => {
204
92
  const userAvailabilities = daysToModify.filter(data => data.type === "user_day_off");
205
93
  const globalDaysOff = daysToModify.filter(data => data.type === "global_day_off");
206
94
  const selectableGlobalDaysOff = daysToModify.filter(data => data.type === "selectable_global_day_off");
207
95
  return {
208
96
  userAvailability: day => {
209
- // construct new date because react-day-picker returns date with hours set
210
- const currentDay = new Date(day.getFullYear(), day.getMonth(), day.getDate());
211
- return userAvailabilities.some(data => isDayInRange(currentDay, data));
97
+ const matchedData = userAvailabilities.find(data => isDayInRange(day, data));
98
+ return {
99
+ matched: !!matchedData,
100
+ title: matchedData ? matchedData.title : null
101
+ };
212
102
  },
213
103
  weekend: day => {
214
- return weekends.some(value => day.getDay() === value);
104
+ const isWeekend = weekends.includes(day.day());
105
+ return {
106
+ matched: isWeekend,
107
+ title: isWeekend ? weekendLabel : null
108
+ };
215
109
  },
216
110
  nonWorkingDay: day => {
217
- // return true if day is weekend day
218
- if (weekends.some(value => value === day.getDay())) {
219
- return true;
111
+ if (weekends.includes(day.day())) {
112
+ return {
113
+ matched: true,
114
+ title: ""
115
+ };
220
116
  }
221
117
  const nonWorkingDays = [...selectableGlobalDaysOff, ...globalDaysOff];
222
- const currentDay = new Date(day.getFullYear(), day.getMonth(), day.getDate());
223
- return nonWorkingDays.some(data => isDayInRange(currentDay, data));
118
+ const matchedData = nonWorkingDays.find(data => isDayInRange(day, data));
119
+ return {
120
+ matched: !!matchedData,
121
+ title: matchedData ? matchedData.title : null
122
+ };
224
123
  },
225
- day_disabled: day => {
226
- if (disableDaysBefore) {
227
- if (day.toJSON().slice(0, 10) < disableDaysBefore.toJSON().slice(0, 10)) {
228
- return true;
229
- }
230
- }
231
- // return true if day is weekend day
232
- if (!weekendIsSelectable && weekends.some(value => value === day.getDay())) {
233
- return true;
234
- }
235
- // construct new date because react-day-picker returns date with hours set
236
- const currentDay = new Date(day.getFullYear(), day.getMonth(), day.getDate());
237
- return globalDaysOff.some(data => isDayInRange(currentDay, data));
124
+ nonWorkingDaysOfWeek: day => {
125
+ const isNonWorkingDay = nonWorkingDaysOfWeek.includes(day.day());
126
+ return {
127
+ matched: isNonWorkingDay,
128
+ title: isNonWorkingDay ? nonWorkingDaysOfWeekLabel : null
129
+ };
238
130
  },
239
- nonWorkingDaysOfWeek: {
240
- dayOfWeek: nonWorkingDaysOfWeek
131
+ day_disabled: day => {
132
+ const globalDayOff = globalDaysOff.find(data => isDayInRange(day, data));
133
+ return {
134
+ matched: !!globalDayOff,
135
+ title: null
136
+ };
241
137
  }
242
138
  };
243
- }, [daysToModify, nonWorkingDaysOfWeek, weekends, disableDaysBefore, weekendIsSelectable]);
244
- const renderDay = useCallback(props => {
245
- const titles = [];
246
- if (weekends.some(value => props.date.getDay() === value)) {
247
- titles.push(weekendLabel);
248
- }
249
- if (nonWorkingDaysOfWeek.includes(props.date.getDay())) {
250
- titles.push(nonWorkingDaysOfWeekLabel);
251
- }
252
-
253
- // construct new date because react-day-picker returns date with hours set
254
- const currentDay = new Date(props.date.getFullYear(), props.date.getMonth(), props.date.getDate());
255
- daysToModify.forEach(data => {
256
- if (isDayInRange(currentDay, data)) {
257
- titles.push(data.title);
258
- }
259
- });
260
- const child = /*#__PURE__*/React.createElement("div", {
261
- className: "c-DayPicker-Day-Number"
262
- }, props.date.getDate());
263
- if (titles.length) {
264
- const title = /*#__PURE__*/React.createElement("div", {
265
- key: "title-wrapper-" + props.date.getDate()
266
- }, titles.map((title, index) => /*#__PURE__*/React.createElement("div", {
267
- key: "title-text-" + index
268
- }, title)));
269
- return /*#__PURE__*/React.createElement(Tooltip, {
270
- title: title,
271
- popperTooltipClassName: popperTooltipClassName,
272
- popperTooltipStyle: popperTooltipStyle
273
- }, child);
274
- }
275
- return child;
276
- }, [weekends, nonWorkingDaysOfWeek, daysToModify, weekendLabel, nonWorkingDaysOfWeekLabel, popperTooltipClassName, popperTooltipStyle]);
277
- const renderDatePickerForm = useCallback(() => {
278
- return /*#__PURE__*/React.createElement(DatePickerForm, {
279
- onMonthChange: handleMonthChange,
280
- month: month,
281
- mode: mode,
282
- selectionMode: selectionMode,
283
- dateRequired: dateRequired,
284
- selectedDays: newDates,
285
- firstDayOfWeek: firstDayOfWeek,
286
- saveButtonText: saveButtonText,
287
- cancelButtonText: cancelButtonText,
288
- clearButtonText: clearButtonText,
289
- onDayClick: onDayClick,
290
- onSave: handleSave,
291
- onChange: handleChange,
292
- onCancel: handleCancel,
293
- onClear: handleClear,
294
- disabledSaveButton: disabledSaveButton,
295
- modifiers: modifiers,
296
- renderDay: renderDay
297
- });
298
- }, [handleMonthChange, month, mode, selectionMode, dateRequired, newDates, firstDayOfWeek, saveButtonText, cancelButtonText, clearButtonText, onDayClick, handleSave, handleChange, handleCancel, handleClear, disabledSaveButton, modifiers, renderDay]);
139
+ }, [daysToModify, nonWorkingDaysOfWeek, nonWorkingDaysOfWeekLabel, weekendLabel, weekends]);
299
140
  const renderTargetEl = useMemo(() => {
300
141
  if (labelType === "icon" && icon) {
301
142
  return /*#__PURE__*/React.createElement(SelectDateTarget, {
302
143
  icon: icon,
303
144
  title: tooltipText,
304
145
  targetIconClassName: targetIconClassName,
305
- forceHideTooltip: showDatePicker,
306
146
  popperTooltipClassName: popperTooltipClassName,
307
- popperTooltipStyle: popperTooltipStyle,
308
- active: showDatePicker
147
+ popperTooltipStyle: popperTooltipStyle
309
148
  });
310
149
  }
311
150
  if (typeof labelType === "function") {
@@ -317,29 +156,68 @@ export const SelectDate = _ref => {
317
156
  }, /*#__PURE__*/React.createElement("span", {
318
157
  className: targetTextClassName
319
158
  }, labelText));
320
- }, [icon, labelText, labelType, popperTooltipClassName, popperTooltipStyle, showDatePicker, targetClassName, targetIconClassName, targetTextClassName, tooltipText]);
159
+ }, [icon, labelText, labelType, popperTooltipClassName, popperTooltipStyle, targetClassName, targetIconClassName, targetTextClassName, tooltipText]);
321
160
  return /*#__PURE__*/React.createElement(StyledSelectDate, {
322
161
  className: "select-date"
323
- }, labelType !== "inline" ? /*#__PURE__*/React.createElement(Menu, {
162
+ }, labelType !== "inline" ? /*#__PURE__*/React.createElement(DatePicker, {
324
163
  target: renderTargetEl,
325
- open: showDatePicker,
326
- onOpen: handleShowDatePicker,
327
- onBeforeClose: handleBeforeCloseMenu,
328
- onClose: handleClose,
329
164
  position: position,
330
165
  menuClassName: menuClassName,
331
166
  popperClassName: popperClassName,
332
- backgroundElementClass: backgroundElementClass
333
- }, renderDatePickerForm()) : renderDatePickerForm(), mode === "atomic" ? /*#__PURE__*/React.createElement(StyledConfirmDialog, {
334
- className: "modal-select-date",
335
- open: showDiscardModal,
336
- onCancel: handleCloseDiscardModal,
337
- onConfirm: handleSaveDiscardModal,
338
- dialogTitle: modalHeaderText,
339
- dialogContent: modalDiscardMessage,
340
- cancelBtnText: modalCancelBtnText,
341
- confirmBtnText: modalDiscardBtnText
342
- }) : null);
167
+ month: defaultMonth,
168
+ instant: mode === "instant",
169
+ mode: selectionMode,
170
+ required: dateRequired,
171
+ selected: selectedDays,
172
+ firstDayOfWeek: firstDayOfWeek,
173
+ saveLabel: saveButtonText,
174
+ cancelLabel: cancelButtonText,
175
+ clearLabel: clearButtonText,
176
+ onSave: onSave,
177
+ onChange: onChange,
178
+ onClose: onCancel,
179
+ modifiers: modifiers,
180
+ modalHeaderText: modalHeaderText,
181
+ modalDiscardMessage: modalDiscardMessage,
182
+ modalDiscardBtnText: modalDiscardBtnText,
183
+ modalCancelBtnText: modalCancelBtnText,
184
+ disabledDaysBefore: disableDaysBefore,
185
+ disabledDaysAfter: disabledDaysAfter,
186
+ backgroundElementClass: backgroundElementClass,
187
+ disabled: weekendIsSelectable ? [] : weekends,
188
+ popperTooltipClassName: popperTooltipClassName,
189
+ popperTooltipStyle: popperTooltipStyle,
190
+ open: defaultShowDatePicker,
191
+ onCalendarToggle: onToggleDatePicker,
192
+ onDayClick: onDayClick,
193
+ enableConfirmModal: mode === "atomic" && !dateRequired,
194
+ disableYearPicker: !enableYearPicker,
195
+ disableAnimations: disableAnimations,
196
+ showControls: true
197
+ }) : /*#__PURE__*/React.createElement(DatePicker, {
198
+ month: defaultMonth,
199
+ instant: mode === "instant",
200
+ mode: selectionMode,
201
+ required: dateRequired,
202
+ selected: selectedDays,
203
+ firstDayOfWeek: firstDayOfWeek,
204
+ saveLabel: saveButtonText,
205
+ cancelLabel: cancelButtonText,
206
+ clearLabel: clearButtonText,
207
+ disabledDaysBefore: disableDaysBefore,
208
+ disabledDaysAfter: disabledDaysAfter,
209
+ popperTooltipClassName: popperTooltipClassName,
210
+ popperTooltipStyle: popperTooltipStyle,
211
+ disabled: weekendIsSelectable ? [] : weekends,
212
+ onSave: onSave,
213
+ onChange: onChange,
214
+ modifiers: modifiers,
215
+ onDayClick: onDayClick,
216
+ disableYearPicker: !enableYearPicker,
217
+ disableAnimations: disableAnimations,
218
+ showControls: true,
219
+ open: true
220
+ }));
343
221
  };
344
222
  SelectDate.displayName = "SelectDate";
345
223
  //# sourceMappingURL=SelectDate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDate.js","names":["React","useCallback","useEffect","useMemo","useState","classnames","moment","DatePickerForm","SelectDateTarget","StyledConfirmDialog","StyledSelectDate","StyledSelectDateButton","formatDate","useLocalization","Menu","Tooltip","getUtcTimestampFromDate","date","utc","getFullYear","getMonth","getDate","unix","isDayInRange","day","data","repeating","from","Date","to","SelectDate","_ref","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","passedDateFormat","defaultMonth","daysToModify","weekends","weekendLabel","nonWorkingDaysOfWeek","nonWorkingDaysOfWeekLabel","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","day_disabled","toJSON","slice","dayOfWeek","renderDay","props","titles","push","includes","forEach","title","child","createElement","className","length","key","map","index","renderDatePickerForm","onMonthChange","onChange","onClear","renderTargetEl","forceHideTooltip","active","target","open","onOpen","onBeforeClose","onClose","onConfirm","dialogTitle","dialogContent","cancelBtnText","confirmBtnText","displayName"],"sources":["../../../../src/components/SelectDate/SelectDate.tsx"],"sourcesContent":["import React, {\n ElementType,\n FC,\n useCallback,\n useEffect,\n useMemo,\n useState,\n CSSProperties,\n} from \"react\";\nimport { DayModifiers, DayProps } from \"react-day-picker\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classnames from \"classnames\";\nimport moment from \"moment\";\n\nimport { DatePickerForm } from \"./DatePickerForm\";\nimport { SelectDateTarget } from \"./SelectDateTarget\";\nimport {\n StyledConfirmDialog,\n StyledSelectDate,\n StyledSelectDateButton,\n} from \"./Styles\";\nimport { DaysToModifyV1 } from \"./types\";\nimport { formatDate } from \"../../utils/dateUtils\";\nimport { useLocalization } from \"../Localization\";\nimport { Menu } from \"../Menu/Menu\";\nimport { Tooltip } from \"../Tooltip/Tooltip\";\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: DaysToModifyV1): boolean => {\n if (data.repeating) {\n const from = new Date(\n day.getFullYear(),\n data.from.getMonth(),\n data.from.getDate()\n );\n const to = new Date(\n day.getFullYear(),\n data.to.getMonth(),\n data.to.getDate()\n );\n return day >= from && day <= to;\n }\n\n return day >= data.from && day <= data.to;\n};\n\ntype TriggerStringType = \"text\" | \"icon\" | \"inline\";\ntype TriggerFunctionType = (text: string) => JSX.Element;\n\nexport interface 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?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n /** One of icon types */\n icon?: ElementType;\n /** Default Label text */\n defaultLabelText?: string;\n /** Date format */\n dateFormat?: string;\n /** Menu classes */\n menuClassName?: string;\n /** Target element classes */\n targetClassName?: string;\n /** Target element text classes */\n targetTextClassName?: string;\n /** Target element icon classes */\n targetIconClassName?: string;\n /** Background style for clickable element after the menu is open (opacity, color, etc...) */\n backgroundElementClass?: string;\n /** Days to modify */\n daysToModify?: DaysToModifyV1[];\n /** Array of weekend days */\n weekends?: number[];\n /** Weekend label */\n weekendLabel?: string;\n /** Array of nonworking week days */\n nonWorkingDaysOfWeek?: number[];\n /** Nonworking week days label */\n nonWorkingDaysOfWeekLabel?: string;\n /** Allows weekends to be selected */\n weekendIsSelectable?: boolean;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n /** Popper class name*/\n popperClassName?: string;\n /** Position of selectDate menu */\n position?: Placement;\n /** Disable days before specified date */\n disableDaysBefore?: 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 nonWorkingDaysOfWeek = [],\n nonWorkingDaysOfWeekLabel = \"Unavailable\",\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 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 return {\n 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 weekend: (day: Date): boolean => {\n return weekends.some((value) => day.getDay() === value);\n },\n 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 day_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 nonWorkingDaysOfWeek: {\n dayOfWeek: nonWorkingDaysOfWeek,\n },\n };\n }, [\n daysToModify,\n nonWorkingDaysOfWeek,\n weekends,\n disableDaysBefore,\n weekendIsSelectable,\n ]);\n\n const renderDay = useCallback(\n (props: DayProps): JSX.Element | null => {\n const titles: string[] = [];\n if (weekends.some((value) => props.date.getDay() === value)) {\n titles.push(weekendLabel);\n }\n\n if (nonWorkingDaysOfWeek.includes(props.date.getDay())) {\n titles.push(nonWorkingDaysOfWeekLabel);\n }\n\n // construct new date because react-day-picker returns date with hours set\n const currentDay = new Date(\n props.date.getFullYear(),\n props.date.getMonth(),\n props.date.getDate()\n );\n\n daysToModify.forEach((data) => {\n if (isDayInRange(currentDay, data)) {\n titles.push(data.title);\n }\n });\n const child = (\n <div className=\"c-DayPicker-Day-Number\">{props.date.getDate()}</div>\n );\n\n if (titles.length) {\n const title = (\n <div key={`title-wrapper-${props.date.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 weekends,\n nonWorkingDaysOfWeek,\n daysToModify,\n weekendLabel,\n nonWorkingDaysOfWeekLabel,\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","useMemo","classnames","moment","SelectDateTarget","StyledSelectDate","StyledSelectDateButton","formatDate","DatePicker","toMoment","isDayInRange","day","data","fromMoment","unix","from","utc","to","repeating","year","month","date","isSameOrAfter","isSameOrBefore","SelectDate","_ref","changeMode","mode","trigger","labelType","saveButtonText","cancelButtonText","clearButtonText","modalHeaderText","modalDiscardMessage","modalDiscardBtnText","modalCancelBtnText","onDayClick","onSave","onCancel","onToggleDatePicker","required","dateRequired","longDateFormat","defaultShowDatePicker","firstDayOfWeek","selectedDays","selectionMode","menuClassName","targetClassName","icon","defaultLabelText","targetTextClassName","targetIconClassName","backgroundElementClass","dateFormat","defaultMonth","daysToModify","weekends","weekendLabel","nonWorkingDaysOfWeek","nonWorkingDaysOfWeekLabel","weekendIsSelectable","tooltipText","popperTooltipClassName","popperClassName","popperTooltipStyle","position","disableDaysBefore","enableYearPicker","disableAnimations","disabledDaysAfter","onChange","labelText","formattedEndDate","formattedStartDate","isSame","modifiers","userAvailabilities","filter","type","globalDaysOff","selectableGlobalDaysOff","userAvailability","matchedData","find","matched","title","weekend","isWeekend","includes","nonWorkingDay","nonWorkingDays","isNonWorkingDay","day_disabled","globalDayOff","renderTargetEl","createElement","className","target","instant","selected","saveLabel","cancelLabel","clearLabel","onClose","disabledDaysBefore","disabled","open","onCalendarToggle","enableConfirmModal","disableYearPicker","showControls","displayName"],"sources":["../../../../src/components/SelectDate/SelectDate.tsx"],"sourcesContent":["import React, { ElementType, FC, useMemo, CSSProperties } from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classnames from \"classnames\";\nimport { Moment } from \"moment\";\nimport moment from \"moment-timezone\";\n\nimport { SelectDateTarget } from \"./SelectDateTarget\";\nimport { StyledSelectDate, StyledSelectDateButton } from \"./Styles\";\nimport { DaysToModify } from \"./types\";\nimport { formatDate } from \"../../utils/dateUtils\";\nimport {\n ChangeMode,\n DatePicker,\n TimestampDateRange,\n toMoment,\n} from \"../DatePicker/DatePicker\";\n\ntype TriggerStringType = \"text\" | \"icon\" | \"inline\";\ntype TriggerFunctionType = (text: string) => JSX.Element;\n\nconst isDayInRange = (day: Moment, data: DaysToModify): boolean => {\n const fromMoment = moment.unix(data.from).utc();\n const toMoment = moment.unix(data.to).utc();\n\n if (data.repeating) {\n const year = day.year();\n const from = moment.utc({\n year,\n month: fromMoment.month(),\n date: fromMoment.date(),\n });\n const to = moment.utc({\n year,\n month: toMoment.month(),\n date: toMoment.date(),\n });\n\n return day.isSameOrAfter(from, \"day\") && day.isSameOrBefore(to, \"day\");\n }\n\n return (\n day.isSameOrAfter(fromMoment, \"day\") && day.isSameOrBefore(toMoment, \"day\")\n );\n};\n\nexport interface ISelectDate {\n /** Change mode - can be atomic and instant */\n changeMode?: \"atomic\" | \"instant\";\n /** Trigger - can be text, icon, inline, or custom render function */\n trigger?: TriggerStringType | TriggerFunctionType;\n /** Save button text */\n saveButtonText?: string;\n /** Cancel button text */\n cancelButtonText?: string;\n /** Clear button text */\n clearButtonText?: string;\n /** Modal header text */\n modalHeaderText?: string;\n /** Modal cancel button text */\n modalCancelBtnText?: string;\n /** Modal discard button text */\n modalDiscardBtnText?: string;\n /** Modal discard message text */\n modalDiscardMessage?: string;\n /** Tooltip text */\n tooltipText?: string;\n /** Called when day is clicked */\n onDayClick?: (day: Moment, modifiers: string[]) => void;\n /** Save changes callback */\n onSave?: (dates?: TimestampDateRange) => void;\n /** Changing dates callback */\n onChange?: (dates?: TimestampDateRange) => void;\n /** On cancel closes datepicker or opens discard modal in atomic mode */\n onCancel?: () => void;\n /** Clear dates when they are not required */\n onClear?: () => void;\n /** Use this callback to get is picker visible */\n onToggleDatePicker?: (value: boolean) => void;\n /** Set selected day or days */\n selectedDays?: TimestampDateRange;\n /** Set month */\n defaultMonth?: Moment;\n /** Set selection range */\n selectionMode?: ChangeMode;\n /** Set is date required */\n required?: boolean;\n /** Set default show on date picker (only for text and icon mode) */\n defaultShowDatePicker?: boolean;\n /** Long date format (Always show year) */\n longDateFormat?: boolean;\n /** Set first day of week */\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n /** One of icon types */\n icon?: ElementType;\n /** Default Label text */\n defaultLabelText?: string;\n /** Date format */\n dateFormat?: string;\n /** Menu classes */\n menuClassName?: string;\n /** Target element classes */\n targetClassName?: string;\n /** Target element text classes */\n targetTextClassName?: string;\n /** Target element icon classes */\n targetIconClassName?: string;\n /** Background style for clickable element after the menu is open (opacity, color, etc...) */\n backgroundElementClass?: string;\n /** Days to modify */\n daysToModify?: DaysToModify[];\n /** Array of weekend days */\n weekends?: number[];\n /** Weekend label */\n weekendLabel?: string;\n /** Array of nonworking week days */\n nonWorkingDaysOfWeek?: number[];\n /** Nonworking week days label */\n nonWorkingDaysOfWeekLabel?: string;\n /** Allows weekends to be selected */\n weekendIsSelectable?: boolean;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n /** Popper class name*/\n popperClassName?: string;\n /** Position of selectDate menu */\n position?: Placement;\n /** Disable days before specified date */\n disableDaysBefore?: Moment;\n /** Disable days after specified date */\n disabledDaysAfter?: Moment;\n /** Enable year selector */\n enableYearPicker?: boolean;\n /** Disable aniamtions */\n disableAnimations?: boolean;\n}\n\nexport const SelectDate: FC<ISelectDate> = ({\n changeMode: mode = \"instant\",\n trigger: labelType = \"text\",\n saveButtonText = \"Save\",\n cancelButtonText = \"Cancel\",\n clearButtonText = \"Clear\",\n modalHeaderText = \"Discard changes?\",\n modalDiscardMessage = \"All unsaved changes will be lost.\",\n modalDiscardBtnText = \"OK\",\n modalCancelBtnText = \"Cancel\",\n onDayClick,\n onSave,\n onCancel,\n onToggleDatePicker,\n required: dateRequired = false,\n longDateFormat = false,\n defaultShowDatePicker = false,\n firstDayOfWeek = 0,\n selectedDays,\n selectionMode = \"custom\",\n menuClassName,\n targetClassName,\n icon,\n defaultLabelText = \"Set...\",\n targetTextClassName,\n targetIconClassName,\n backgroundElementClass,\n dateFormat,\n defaultMonth,\n daysToModify = [],\n weekends = [],\n weekendLabel = \"Weekend\",\n nonWorkingDaysOfWeek = [],\n nonWorkingDaysOfWeekLabel = \"Unavailable\",\n weekendIsSelectable = false,\n tooltipText,\n popperTooltipClassName,\n popperClassName,\n popperTooltipStyle,\n position,\n disableDaysBefore,\n enableYearPicker,\n disableAnimations,\n disabledDaysAfter,\n onChange,\n}) => {\n const labelText = useMemo(() => {\n if (!selectedDays) {\n return defaultLabelText;\n } else if (!selectedDays.from && !selectedDays.to) {\n return defaultLabelText;\n } else {\n const formattedEndDate = selectedDays.to\n ? formatDate(toMoment(selectedDays.to), dateFormat, longDateFormat)\n : \"\";\n const formattedStartDate = selectedDays.from\n ? formatDate(toMoment(selectedDays?.from), dateFormat, longDateFormat)\n : \"\";\n\n if (\n selectedDays.to &&\n selectedDays.from &&\n toMoment(selectedDays.from).isSame(toMoment(selectedDays.to))\n ) {\n return formattedEndDate;\n }\n\n if (!selectedDays.to && selectedDays.from) {\n return formattedStartDate;\n }\n\n return `${formattedStartDate} - ${formattedEndDate}`;\n }\n }, [selectedDays, dateFormat, defaultLabelText, longDateFormat]);\n\n const modifiers = useMemo(() => {\n const userAvailabilities = daysToModify.filter(\n (data) => data.type === \"user_day_off\"\n );\n const globalDaysOff = daysToModify.filter(\n (data) => data.type === \"global_day_off\"\n );\n const selectableGlobalDaysOff = daysToModify.filter(\n (data) => data.type === \"selectable_global_day_off\"\n );\n\n return {\n userAvailability: (day: Moment) => {\n const matchedData = userAvailabilities.find((data) =>\n isDayInRange(day, data)\n );\n return {\n matched: !!matchedData,\n title: matchedData ? matchedData.title : null,\n };\n },\n weekend: (day: Moment) => {\n const isWeekend = weekends.includes(day.day());\n return {\n matched: isWeekend,\n title: isWeekend ? weekendLabel : null,\n };\n },\n nonWorkingDay: (day: Moment) => {\n if (weekends.includes(day.day())) {\n return { matched: true, title: \"\" };\n }\n const nonWorkingDays = [...selectableGlobalDaysOff, ...globalDaysOff];\n\n const matchedData = nonWorkingDays.find((data) =>\n isDayInRange(day, data)\n );\n return {\n matched: !!matchedData,\n title: matchedData ? matchedData.title : null,\n };\n },\n nonWorkingDaysOfWeek: (day: Moment) => {\n const isNonWorkingDay = nonWorkingDaysOfWeek.includes(day.day());\n return {\n matched: isNonWorkingDay,\n title: isNonWorkingDay ? nonWorkingDaysOfWeekLabel : null,\n };\n },\n day_disabled: (day: Moment) => {\n const globalDayOff = globalDaysOff.find((data) =>\n isDayInRange(day, data)\n );\n\n return {\n matched: !!globalDayOff,\n title: null,\n };\n },\n };\n }, [\n daysToModify,\n nonWorkingDaysOfWeek,\n nonWorkingDaysOfWeekLabel,\n weekendLabel,\n weekends,\n ]);\n\n const renderTargetEl = useMemo(() => {\n if (labelType === \"icon\" && icon) {\n return (\n <SelectDateTarget\n icon={icon}\n title={tooltipText}\n targetIconClassName={targetIconClassName}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n />\n );\n }\n if (typeof labelType === \"function\") {\n return labelType(labelText);\n }\n return (\n <StyledSelectDateButton\n type=\"button\"\n className={classnames(\"date-picker-target\", targetClassName)}\n >\n <span className={targetTextClassName}>{labelText}</span>\n </StyledSelectDateButton>\n );\n }, [\n icon,\n labelText,\n labelType,\n popperTooltipClassName,\n popperTooltipStyle,\n targetClassName,\n targetIconClassName,\n targetTextClassName,\n tooltipText,\n ]);\n\n return (\n <StyledSelectDate className=\"select-date\">\n {labelType !== \"inline\" ? (\n <DatePicker\n target={renderTargetEl}\n position={position}\n menuClassName={menuClassName}\n popperClassName={popperClassName}\n month={defaultMonth}\n instant={mode === \"instant\"}\n mode={selectionMode}\n required={dateRequired}\n selected={selectedDays}\n firstDayOfWeek={firstDayOfWeek}\n saveLabel={saveButtonText}\n cancelLabel={cancelButtonText}\n clearLabel={clearButtonText}\n onSave={onSave}\n onChange={onChange}\n onClose={onCancel}\n modifiers={modifiers}\n modalHeaderText={modalHeaderText}\n modalDiscardMessage={modalDiscardMessage}\n modalDiscardBtnText={modalDiscardBtnText}\n modalCancelBtnText={modalCancelBtnText}\n disabledDaysBefore={disableDaysBefore}\n disabledDaysAfter={disabledDaysAfter}\n backgroundElementClass={backgroundElementClass}\n disabled={weekendIsSelectable ? [] : weekends}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n open={defaultShowDatePicker}\n onCalendarToggle={onToggleDatePicker}\n onDayClick={onDayClick}\n enableConfirmModal={mode === \"atomic\" && !dateRequired}\n disableYearPicker={!enableYearPicker}\n disableAnimations={disableAnimations}\n showControls\n />\n ) : (\n <DatePicker\n month={defaultMonth}\n instant={mode === \"instant\"}\n mode={selectionMode}\n required={dateRequired}\n selected={selectedDays}\n firstDayOfWeek={firstDayOfWeek}\n saveLabel={saveButtonText}\n cancelLabel={cancelButtonText}\n clearLabel={clearButtonText}\n disabledDaysBefore={disableDaysBefore}\n disabledDaysAfter={disabledDaysAfter}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n disabled={weekendIsSelectable ? [] : weekends}\n onSave={onSave}\n onChange={onChange}\n modifiers={modifiers}\n onDayClick={onDayClick}\n disableYearPicker={!enableYearPicker}\n disableAnimations={disableAnimations}\n showControls\n open\n />\n )}\n </StyledSelectDate>\n );\n};\n\nSelectDate.displayName = \"SelectDate\";\n"],"mappings":"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"}
@@ -1,3 +1,2 @@
1
1
  export * from "./SelectDate";
2
- export * from "./SelectDateV2";
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/SelectDate/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/SelectDate/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -1,3 +1,2 @@
1
1
  export * from "./SelectDate";
2
- export * from "./SelectDateV2";
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/SelectDate/index.ts"],"sourcesContent":["export * from \"./SelectDate\";\nexport * from \"./SelectDateV2\";\n"],"mappings":"AAAA,cAAc,cAAc;AAC5B,cAAc,gBAAgB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/SelectDate/index.ts"],"sourcesContent":["export * from \"./SelectDate\";\n"],"mappings":"AAAA,cAAc,cAAc"}