@entur/datepicker 4.0.0-beta.5 → 4.0.1
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/CHANGELOG.md +56 -0
- package/LICENSE.md +0 -71
- package/dist/DatePicker/{beta/Calendar.d.ts → Calendar.d.ts} +1 -0
- package/dist/DatePicker/{beta/CalendarCell.d.ts → CalendarCell.d.ts} +2 -1
- package/dist/DatePicker/{beta/CalendarGrid.d.ts → CalendarGrid.d.ts} +2 -1
- package/dist/DatePicker/{beta/DateField.d.ts → DateField.d.ts} +2 -3
- package/dist/DatePicker/DatePicker.d.ts +48 -175
- package/dist/{NativeDatePicker.d.ts → DatePicker/NativeDatePicker.d.ts} +0 -0
- package/dist/DatePicker/index.d.ts +3 -1
- package/dist/TimePicker/TimePicker.d.ts +3 -3
- package/dist/datepicker.cjs.development.js +91 -517
- package/dist/datepicker.cjs.development.js.map +1 -1
- package/dist/datepicker.cjs.production.min.js +1 -1
- package/dist/datepicker.cjs.production.min.js.map +1 -1
- package/dist/datepicker.esm.js +91 -515
- package/dist/datepicker.esm.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/styles.css +100 -206
- package/package.json +21 -22
- package/dist/DatePicker/DatePickerHeader.d.ts +0 -9
- package/dist/DatePicker/DatePickerInput.d.ts +0 -31
- package/dist/DatePicker/beta/DatePicker.d.ts +0 -62
- package/dist/DatePicker/beta/index.d.ts +0 -3
|
@@ -4,23 +4,17 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var utils = require('@entur/utils');
|
|
6
6
|
var React = require('react');
|
|
7
|
-
var ReactDatepicker = require('react-datepicker');
|
|
8
|
-
var dateFns = require('date-fns');
|
|
9
|
-
var locale = require('date-fns/locale');
|
|
10
|
-
var classNames = require('classnames');
|
|
11
|
-
var icons = require('@entur/icons');
|
|
12
|
-
var typography = require('@entur/typography');
|
|
13
|
-
var button = require('@entur/button');
|
|
14
|
-
var form = require('@entur/form');
|
|
15
|
-
var tooltip = require('@entur/tooltip');
|
|
16
|
-
require('react-datepicker/dist/react-datepicker.css');
|
|
17
7
|
var datepicker$1 = require('@react-stately/datepicker');
|
|
18
8
|
var datepicker = require('@react-aria/datepicker');
|
|
19
9
|
var i18n = require('@react-aria/i18n');
|
|
10
|
+
var classNames = require('classnames');
|
|
11
|
+
var form = require('@entur/form');
|
|
20
12
|
var date = require('@internationalized/date');
|
|
21
13
|
var calendar = require('@react-aria/calendar');
|
|
22
14
|
var calendar$1 = require('@react-stately/calendar');
|
|
23
|
-
var
|
|
15
|
+
var icons = require('@entur/icons');
|
|
16
|
+
var button = require('@react-aria/button');
|
|
17
|
+
var button$1 = require('@entur/button');
|
|
24
18
|
var a11y = require('@entur/a11y');
|
|
25
19
|
var reactDom = require('@floating-ui/react-dom');
|
|
26
20
|
var FocusLock = require('react-focus-lock');
|
|
@@ -30,7 +24,6 @@ var modal = require('@entur/modal');
|
|
|
30
24
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
31
25
|
|
|
32
26
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
33
|
-
var ReactDatepicker__default = /*#__PURE__*/_interopDefaultLegacy(ReactDatepicker);
|
|
34
27
|
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
35
28
|
var FocusLock__default = /*#__PURE__*/_interopDefaultLegacy(FocusLock);
|
|
36
29
|
|
|
@@ -67,433 +60,6 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
67
60
|
return target;
|
|
68
61
|
}
|
|
69
62
|
|
|
70
|
-
var DatePickerHeader = function DatePickerHeader(_ref) {
|
|
71
|
-
var _date$getMonth;
|
|
72
|
-
|
|
73
|
-
var date = _ref.date,
|
|
74
|
-
decreaseMonth = _ref.decreaseMonth,
|
|
75
|
-
increaseMonth = _ref.increaseMonth,
|
|
76
|
-
prevMonthButtonDisabled = _ref.prevMonthButtonDisabled,
|
|
77
|
-
nextMonthButtonDisabled = _ref.nextMonthButtonDisabled,
|
|
78
|
-
nextMonthAriaLabel = _ref.nextMonthAriaLabel,
|
|
79
|
-
previousMonthAriaLabel = _ref.previousMonthAriaLabel,
|
|
80
|
-
locale = _ref.locale;
|
|
81
|
-
var currentMonthIndex = (_date$getMonth = date == null ? void 0 : date.getMonth()) != null ? _date$getMonth : 0;
|
|
82
|
-
return React__default["default"].createElement("div", {
|
|
83
|
-
className: "eds-datepicker__calender__header"
|
|
84
|
-
}, React__default["default"].createElement(button.IconButton, {
|
|
85
|
-
type: "button",
|
|
86
|
-
className: "eds-datepicker__calender__header__month-button--left",
|
|
87
|
-
onClick: decreaseMonth,
|
|
88
|
-
disabled: prevMonthButtonDisabled,
|
|
89
|
-
"aria-label": previousMonthAriaLabel + " (" + getMonthName(currentMonthIndex - 1, locale) + ")"
|
|
90
|
-
}, React__default["default"].createElement(icons.LeftArrowIcon, null)), React__default["default"].createElement(typography.Heading3, {
|
|
91
|
-
className: "eds-datepicker__calender__header__month-text"
|
|
92
|
-
}, getMonthName(currentMonthIndex, locale)), React__default["default"].createElement(typography.Heading3, {
|
|
93
|
-
className: "eds-datepicker__calender__header__month-text"
|
|
94
|
-
}, date == null ? void 0 : date.getFullYear()), React__default["default"].createElement(button.IconButton, {
|
|
95
|
-
type: "button",
|
|
96
|
-
className: "eds-datepicker__calender__header__month-button--right",
|
|
97
|
-
onClick: increaseMonth,
|
|
98
|
-
disabled: nextMonthButtonDisabled,
|
|
99
|
-
"aria-label": nextMonthAriaLabel + " (" + getMonthName(currentMonthIndex + 1, locale) + ")"
|
|
100
|
-
}, React__default["default"].createElement(icons.RightArrowIcon, null)));
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
function getMonthName(monthIndex, locale) {
|
|
104
|
-
var year = new Date().getFullYear();
|
|
105
|
-
var formatter = new Intl.DateTimeFormat(locale.code, {
|
|
106
|
-
month: 'long'
|
|
107
|
-
});
|
|
108
|
-
return formatter.format(new Date(year, monthIndex));
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
var _excluded$a = ["style", "label", "inputPlaceholder", "prepend", "feedback", "variant", "disabled", "calendarButtonTooltipOpen", "calendarButtonTooltipClose", "hideCalendarButton", "disableLabelAnimation", "inputRef", "calendarButtonId", "forwardRef", "toggleCalendarGUI", "onKeyDownInput", "onBlurInput", "selectedDate", "setFocusToCalendarGUI", "setShouldFocusOnCalendarButtonAfterSelect", "calendarGUIIsOpen", "placeholder", "onClick", "aria-labelledby"];
|
|
112
|
-
var DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
113
|
-
var style = _ref.style,
|
|
114
|
-
label = _ref.label,
|
|
115
|
-
inputPlaceholder = _ref.inputPlaceholder,
|
|
116
|
-
prepend = _ref.prepend,
|
|
117
|
-
feedback = _ref.feedback,
|
|
118
|
-
variant = _ref.variant,
|
|
119
|
-
disabled = _ref.disabled,
|
|
120
|
-
calendarButtonTooltipOpen = _ref.calendarButtonTooltipOpen,
|
|
121
|
-
calendarButtonTooltipClose = _ref.calendarButtonTooltipClose,
|
|
122
|
-
hideCalendarButton = _ref.hideCalendarButton,
|
|
123
|
-
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
124
|
-
inputRef = _ref.inputRef,
|
|
125
|
-
calendarButtonId = _ref.calendarButtonId,
|
|
126
|
-
forwardRef = _ref.forwardRef,
|
|
127
|
-
toggleCalendarGUI = _ref.toggleCalendarGUI,
|
|
128
|
-
onKeyDownInput = _ref.onKeyDownInput,
|
|
129
|
-
onBlurInput = _ref.onBlurInput,
|
|
130
|
-
selectedDate = _ref.selectedDate,
|
|
131
|
-
setFocusToCalendarGUI = _ref.setFocusToCalendarGUI,
|
|
132
|
-
setShouldFocusOnCalendarButtonAfterSelect = _ref.setShouldFocusOnCalendarButtonAfterSelect,
|
|
133
|
-
calendarGUIIsOpen = _ref.calendarGUIIsOpen,
|
|
134
|
-
onClick = _ref.onClick,
|
|
135
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$a);
|
|
136
|
-
|
|
137
|
-
React__default["default"].useEffect(function () {
|
|
138
|
-
var _inputRef$current, _inputRef$current2, _inputRef$current3;
|
|
139
|
-
|
|
140
|
-
(_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.addEventListener('keydown', handleOnKeyDown);
|
|
141
|
-
(_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.addEventListener('blur', handleOnBlur);
|
|
142
|
-
(_inputRef$current3 = inputRef.current) == null ? void 0 : _inputRef$current3.addEventListener('focus', handleOnFocus);
|
|
143
|
-
return function () {
|
|
144
|
-
var _inputRef$current4, _inputRef$current5, _inputRef$current6;
|
|
145
|
-
|
|
146
|
-
(_inputRef$current4 = inputRef.current) == null ? void 0 : _inputRef$current4.removeEventListener('keydown', handleOnKeyDown);
|
|
147
|
-
(_inputRef$current5 = inputRef.current) == null ? void 0 : _inputRef$current5.removeEventListener('blur', handleOnBlur);
|
|
148
|
-
(_inputRef$current6 = inputRef.current) == null ? void 0 : _inputRef$current6.removeEventListener('focus', handleOnFocus);
|
|
149
|
-
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
150
|
-
}, [inputRef, selectedDate]);
|
|
151
|
-
|
|
152
|
-
function handleOnKeyDown(event) {
|
|
153
|
-
onKeyDownInput(event);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
function handleOnBlur(event) {
|
|
157
|
-
onBlurInput(event);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
var handleOnFocus = function handleOnFocus() {
|
|
161
|
-
return requestAnimationFrame(function () {
|
|
162
|
-
var _inputRef$current7;
|
|
163
|
-
|
|
164
|
-
return (_inputRef$current7 = inputRef.current) == null ? void 0 : _inputRef$current7.select();
|
|
165
|
-
});
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
var handleOnClickInputField = function handleOnClickInputField(event) {
|
|
169
|
-
setShouldFocusOnCalendarButtonAfterSelect(false);
|
|
170
|
-
onClick && onClick(event);
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
var handleOnClickCalendarButton = function handleOnClickCalendarButton() {
|
|
174
|
-
toggleCalendarGUI();
|
|
175
|
-
setFocusToCalendarGUI();
|
|
176
|
-
setShouldFocusOnCalendarButtonAfterSelect(true);
|
|
177
|
-
};
|
|
178
|
-
|
|
179
|
-
var calendarButtonAriaLabel = function calendarButtonAriaLabel() {
|
|
180
|
-
var _inputRef$current8;
|
|
181
|
-
|
|
182
|
-
var buttonStateText = calendarGUIIsOpen() ? calendarButtonTooltipClose : calendarButtonTooltipOpen;
|
|
183
|
-
var currentSelectionText = selectedDate ? ((_inputRef$current8 = inputRef.current) == null ? void 0 : _inputRef$current8.value) + " valgt" : 'Ingen dato valgt';
|
|
184
|
-
return buttonStateText + ", " + currentSelectionText;
|
|
185
|
-
};
|
|
186
|
-
|
|
187
|
-
return React__default["default"].createElement(form.TextField, _extends({
|
|
188
|
-
style: style,
|
|
189
|
-
label: label,
|
|
190
|
-
placeholder: inputPlaceholder,
|
|
191
|
-
prepend: prepend,
|
|
192
|
-
feedback: feedback,
|
|
193
|
-
variant: variant,
|
|
194
|
-
disableLabelAnimation: disableLabelAnimation,
|
|
195
|
-
ref: utils.mergeRefs(ref, inputRef, forwardRef),
|
|
196
|
-
onClick: handleOnClickInputField,
|
|
197
|
-
ariaAlertOnFeedback: true,
|
|
198
|
-
append: !hideCalendarButton && React__default["default"].createElement(tooltip.Tooltip, {
|
|
199
|
-
placement: "top",
|
|
200
|
-
content: calendarGUIIsOpen() ? calendarButtonTooltipClose : calendarButtonTooltipOpen,
|
|
201
|
-
disableHoverListener: disabled,
|
|
202
|
-
disableFocusListener: disabled
|
|
203
|
-
}, React__default["default"].createElement(button.IconButton, {
|
|
204
|
-
id: calendarButtonId,
|
|
205
|
-
type: "button",
|
|
206
|
-
onClick: handleOnClickCalendarButton,
|
|
207
|
-
tabIndex: calendarGUIIsOpen() ? -1 : 0,
|
|
208
|
-
"aria-label": calendarButtonAriaLabel()
|
|
209
|
-
}, React__default["default"].createElement(icons.CalendarIcon, null)))
|
|
210
|
-
}, rest));
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
var _excluded$9 = ["style", "className", "selectedDate", "label", "placeholder", "onChange", "onKeyDown", "dateFormats", "minDate", "maxDate", "inline", "disabled", "prepend", "feedback", "variant", "validationFeedback", "validationVariant", "disableLabelAnimation", "calendarButtonTooltipOpen", "calendarButtonTooltipClose", "hideCalendarButton", "hideCalendar", "hideValidation", "weekLabel", "chooseDayAriaLabelPrefix", "previousMonthAriaLabel", "nextMonthAriaLabel", "locale", "open"];
|
|
214
|
-
ReactDatepicker.registerLocale('nb', locale.nb);
|
|
215
|
-
var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
216
|
-
var style = _ref.style,
|
|
217
|
-
className = _ref.className,
|
|
218
|
-
selectedDate = _ref.selectedDate,
|
|
219
|
-
label = _ref.label,
|
|
220
|
-
_ref$placeholder = _ref.placeholder,
|
|
221
|
-
placeholder = _ref$placeholder === void 0 ? 'dd.mm.yyyy' : _ref$placeholder,
|
|
222
|
-
onChange = _ref.onChange,
|
|
223
|
-
_ref$onKeyDown = _ref.onKeyDown,
|
|
224
|
-
onKeyDown = _ref$onKeyDown === void 0 ? function () {
|
|
225
|
-
return null;
|
|
226
|
-
} : _ref$onKeyDown,
|
|
227
|
-
_ref$dateFormats = _ref.dateFormats,
|
|
228
|
-
dateFormats = _ref$dateFormats === void 0 ? ['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy', 'ddMMyy'] : _ref$dateFormats,
|
|
229
|
-
minDate = _ref.minDate,
|
|
230
|
-
maxDate = _ref.maxDate,
|
|
231
|
-
_ref$inline = _ref.inline,
|
|
232
|
-
inline = _ref$inline === void 0 ? false : _ref$inline,
|
|
233
|
-
disabled = _ref.disabled,
|
|
234
|
-
prepend = _ref.prepend,
|
|
235
|
-
_ref$feedback = _ref.feedback,
|
|
236
|
-
feedback = _ref$feedback === void 0 ? '' : _ref$feedback,
|
|
237
|
-
variant = _ref.variant,
|
|
238
|
-
_ref$validationFeedba = _ref.validationFeedback,
|
|
239
|
-
validationFeedback = _ref$validationFeedba === void 0 ? 'Ugyldig dato' : _ref$validationFeedba,
|
|
240
|
-
_ref$validationVarian = _ref.validationVariant,
|
|
241
|
-
validationVariant = _ref$validationVarian === void 0 ? 'error' : _ref$validationVarian,
|
|
242
|
-
_ref$disableLabelAnim = _ref.disableLabelAnimation,
|
|
243
|
-
disableLabelAnimation = _ref$disableLabelAnim === void 0 ? false : _ref$disableLabelAnim,
|
|
244
|
-
_ref$calendarButtonTo = _ref.calendarButtonTooltipOpen,
|
|
245
|
-
calendarButtonTooltipOpen = _ref$calendarButtonTo === void 0 ? 'Åpne\xa0kalender' : _ref$calendarButtonTo,
|
|
246
|
-
_ref$calendarButtonTo2 = _ref.calendarButtonTooltipClose,
|
|
247
|
-
calendarButtonTooltipClose = _ref$calendarButtonTo2 === void 0 ? 'Lukk\xa0kalender' : _ref$calendarButtonTo2,
|
|
248
|
-
_ref$hideCalendarButt = _ref.hideCalendarButton,
|
|
249
|
-
hideCalendarButton = _ref$hideCalendarButt === void 0 ? false : _ref$hideCalendarButt,
|
|
250
|
-
_ref$hideCalendar = _ref.hideCalendar,
|
|
251
|
-
hideCalendar = _ref$hideCalendar === void 0 ? false : _ref$hideCalendar,
|
|
252
|
-
_ref$hideValidation = _ref.hideValidation,
|
|
253
|
-
hideValidation = _ref$hideValidation === void 0 ? false : _ref$hideValidation,
|
|
254
|
-
_ref$weekLabel = _ref.weekLabel,
|
|
255
|
-
weekLabel = _ref$weekLabel === void 0 ? 'uke' : _ref$weekLabel,
|
|
256
|
-
_ref$chooseDayAriaLab = _ref.chooseDayAriaLabelPrefix,
|
|
257
|
-
chooseDayAriaLabelPrefix = _ref$chooseDayAriaLab === void 0 ? 'Velg' : _ref$chooseDayAriaLab,
|
|
258
|
-
_ref$previousMonthAri = _ref.previousMonthAriaLabel,
|
|
259
|
-
previousMonthAriaLabel = _ref$previousMonthAri === void 0 ? 'Forrige måned' : _ref$previousMonthAri,
|
|
260
|
-
_ref$nextMonthAriaLab = _ref.nextMonthAriaLabel,
|
|
261
|
-
nextMonthAriaLabel = _ref$nextMonthAriaLab === void 0 ? 'Neste måned' : _ref$nextMonthAriaLab,
|
|
262
|
-
_ref$locale = _ref.locale,
|
|
263
|
-
locale$1 = _ref$locale === void 0 ? locale.nb : _ref$locale,
|
|
264
|
-
open = _ref.open,
|
|
265
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$9);
|
|
266
|
-
|
|
267
|
-
var datepickerId = utils.useRandomId('eds-datepicker');
|
|
268
|
-
var datepickerRef = React.useRef(null);
|
|
269
|
-
var inputRef = React__default["default"].useRef(null);
|
|
270
|
-
var calendarButton = document.getElementById(datepickerId + '-button');
|
|
271
|
-
|
|
272
|
-
var _useState = React.useState(false),
|
|
273
|
-
showValidation = _useState[0],
|
|
274
|
-
setShowValidation = _useState[1];
|
|
275
|
-
|
|
276
|
-
var _useState2 = React.useState(false),
|
|
277
|
-
shouldFocusOnCalendarButtonAfterSelect = _useState2[0],
|
|
278
|
-
setShouldFocusOnCalendarButtonAfterSelect = _useState2[1]; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
React__default["default"].useEffect(function () {
|
|
282
|
-
return validateInput();
|
|
283
|
-
}, [selectedDate]);
|
|
284
|
-
|
|
285
|
-
var handleOnChange = function handleOnChange(date, event) {
|
|
286
|
-
var _inputRef$current;
|
|
287
|
-
|
|
288
|
-
if (shouldFocusOnCalendarButtonAfterSelect && !hideCalendarButton) {
|
|
289
|
-
calendarButton == null ? void 0 : calendarButton.focus();
|
|
290
|
-
setShouldFocusOnCalendarButtonAfterSelect(false);
|
|
291
|
-
} else (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.focus();
|
|
292
|
-
|
|
293
|
-
onChange(date, event);
|
|
294
|
-
};
|
|
295
|
-
|
|
296
|
-
var handleOnKeyDown = function handleOnKeyDown(event) {
|
|
297
|
-
setShowValidation(false);
|
|
298
|
-
|
|
299
|
-
if (event.key === 'Enter') {
|
|
300
|
-
if (!datePickerGUIIsOpen()) {
|
|
301
|
-
// onBlurInput will validate if calendar is open
|
|
302
|
-
validateInput();
|
|
303
|
-
forceUpdateInputFormat();
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
focusAndSelectInputField();
|
|
307
|
-
} else if (event.key === 'Tab' && datePickerGUIIsOpen()) {
|
|
308
|
-
forceUpdateInputFormat();
|
|
309
|
-
} else if (event.key === 'Escape') {
|
|
310
|
-
forceUpdateInputFormat();
|
|
311
|
-
focusAndSelectInputField();
|
|
312
|
-
if (datePickerGUIIsOpen()) toggleCalendarGUI();
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
onKeyDown(event);
|
|
316
|
-
};
|
|
317
|
-
|
|
318
|
-
var handleOnClickOutside = function handleOnClickOutside() {
|
|
319
|
-
return setShouldFocusOnCalendarButtonAfterSelect(false);
|
|
320
|
-
};
|
|
321
|
-
|
|
322
|
-
var handleOnBlurInput = function handleOnBlurInput() {
|
|
323
|
-
if (datePickerGUIIsOpen()) return;
|
|
324
|
-
validateInput();
|
|
325
|
-
forceUpdateInputFormat();
|
|
326
|
-
};
|
|
327
|
-
|
|
328
|
-
var validateInput = function validateInput() {
|
|
329
|
-
var _inputRef$current2;
|
|
330
|
-
|
|
331
|
-
setShowValidation(false);
|
|
332
|
-
var inputValue = (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.value;
|
|
333
|
-
if (!inputValue) return;
|
|
334
|
-
var inputValueParsedWithAllDateFormats = dateFormats.map(function (format) {
|
|
335
|
-
return dateFns.parse(inputValue, format, new Date(), {
|
|
336
|
-
locale: locale$1
|
|
337
|
-
});
|
|
338
|
-
});
|
|
339
|
-
var parsedDateFromInputIsTheSameAsSelectedDate = selectedDate && inputValueParsedWithAllDateFormats.some(function (dateFormat) {
|
|
340
|
-
return dateFns.isSameDay(dateFormat, selectedDate);
|
|
341
|
-
});
|
|
342
|
-
|
|
343
|
-
if (parsedDateFromInputIsTheSameAsSelectedDate) {
|
|
344
|
-
// valid date inputted
|
|
345
|
-
setShowValidation(false);
|
|
346
|
-
} else {
|
|
347
|
-
// invalid date inputted
|
|
348
|
-
setShowValidation(true);
|
|
349
|
-
}
|
|
350
|
-
};
|
|
351
|
-
|
|
352
|
-
var getFeedbackAndVariant = function getFeedbackAndVariant() {
|
|
353
|
-
if (feedback) return {
|
|
354
|
-
feedback: feedback,
|
|
355
|
-
variant: variant
|
|
356
|
-
};
|
|
357
|
-
if (!hideValidation && showValidation) return {
|
|
358
|
-
feedback: validationFeedback,
|
|
359
|
-
variant: validationVariant
|
|
360
|
-
};
|
|
361
|
-
return {
|
|
362
|
-
feedback: '',
|
|
363
|
-
variant: undefined
|
|
364
|
-
};
|
|
365
|
-
};
|
|
366
|
-
|
|
367
|
-
var focusAndSelectInputField = function focusAndSelectInputField() {
|
|
368
|
-
return requestAnimationFrame(function () {
|
|
369
|
-
var _inputRef$current3;
|
|
370
|
-
|
|
371
|
-
return (_inputRef$current3 = inputRef.current) == null ? void 0 : _inputRef$current3.select();
|
|
372
|
-
});
|
|
373
|
-
};
|
|
374
|
-
|
|
375
|
-
var forceUpdateInputFormat = function forceUpdateInputFormat() {
|
|
376
|
-
var _datepickerRef$curren;
|
|
377
|
-
|
|
378
|
-
return (_datepickerRef$curren = datepickerRef.current) == null ? void 0 : _datepickerRef$curren.setState({
|
|
379
|
-
inputValue: null
|
|
380
|
-
});
|
|
381
|
-
};
|
|
382
|
-
|
|
383
|
-
var toggleCalendarGUI = function toggleCalendarGUI() {
|
|
384
|
-
var _datepickerRef$curren2;
|
|
385
|
-
|
|
386
|
-
return (_datepickerRef$curren2 = datepickerRef.current) == null ? void 0 : _datepickerRef$curren2.setOpen(!datePickerGUIIsOpen());
|
|
387
|
-
};
|
|
388
|
-
|
|
389
|
-
var setFocusToCalendarGUI = function setFocusToCalendarGUI() {
|
|
390
|
-
if (inline || hideCalendar || datePickerGUIIsOpen()) return; // 1 frame delay to allow calendar to spawn
|
|
391
|
-
|
|
392
|
-
requestAnimationFrame(function () {
|
|
393
|
-
var _datepickerRef$curren3;
|
|
394
|
-
|
|
395
|
-
var datepickerGUIWrapper = // @ts-expect-error .calendar does actually exist in ReactDatePicker ref
|
|
396
|
-
(_datepickerRef$curren3 = datepickerRef.current) == null ? void 0 : _datepickerRef$curren3.calendar.componentNode;
|
|
397
|
-
var dateToSetFocusTo = selectedDate ? datepickerGUIWrapper.querySelector('.eds-datepicker__calender__day[tabindex="0"]') : datepickerGUIWrapper.querySelector('.eds-datepicker__calender__day[aria-current="date"]');
|
|
398
|
-
|
|
399
|
-
if (dateToSetFocusTo !== null) {
|
|
400
|
-
var _datepickerRef$curren4;
|
|
401
|
-
|
|
402
|
-
(_datepickerRef$curren4 = datepickerRef.current) == null ? void 0 : _datepickerRef$curren4.setBlur();
|
|
403
|
-
dateToSetFocusTo.focus({
|
|
404
|
-
preventScroll: true
|
|
405
|
-
});
|
|
406
|
-
}
|
|
407
|
-
});
|
|
408
|
-
setShouldFocusOnCalendarButtonAfterSelect(true);
|
|
409
|
-
setShowValidation(false);
|
|
410
|
-
};
|
|
411
|
-
|
|
412
|
-
var datePickerGUIIsOpen = function datePickerGUIIsOpen() {
|
|
413
|
-
var _datepickerRef$curren5;
|
|
414
|
-
|
|
415
|
-
return (_datepickerRef$curren5 = datepickerRef.current) == null ? void 0 : _datepickerRef$curren5.isCalendarOpen();
|
|
416
|
-
};
|
|
417
|
-
|
|
418
|
-
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(ReactDatepicker__default["default"], _extends({
|
|
419
|
-
selected: selectedDate,
|
|
420
|
-
minDate: minDate,
|
|
421
|
-
maxDate: maxDate,
|
|
422
|
-
dateFormat: dateFormats,
|
|
423
|
-
showWeekNumbers: true,
|
|
424
|
-
weekLabel: weekLabel,
|
|
425
|
-
onChange: handleOnChange,
|
|
426
|
-
onClickOutside: handleOnClickOutside,
|
|
427
|
-
id: datepickerId,
|
|
428
|
-
ariaLabelledBy: datepickerId,
|
|
429
|
-
showPopperArrow: false,
|
|
430
|
-
locale: locale$1,
|
|
431
|
-
inline: inline,
|
|
432
|
-
disabled: disabled,
|
|
433
|
-
preventOpenOnFocus: true,
|
|
434
|
-
chooseDayAriaLabelPrefix: chooseDayAriaLabelPrefix,
|
|
435
|
-
open: hideCalendar ? false : open,
|
|
436
|
-
ref: datepickerRef,
|
|
437
|
-
calendarClassName: "eds-datepicker__calender",
|
|
438
|
-
dayClassName: function dayClassName() {
|
|
439
|
-
return 'eds-datepicker__calender__day';
|
|
440
|
-
},
|
|
441
|
-
weekDayClassName: function weekDayClassName() {
|
|
442
|
-
return 'eds-datepicker__calender__day-name';
|
|
443
|
-
},
|
|
444
|
-
className: classNames__default["default"](className, 'eds-datepicker__input'),
|
|
445
|
-
highlightDates: [{
|
|
446
|
-
'eds-datepicker__calender__day--today': [new Date()]
|
|
447
|
-
}, {
|
|
448
|
-
'eds-datepicker__calender__day--selected': selectedDate ? [selectedDate] : []
|
|
449
|
-
}],
|
|
450
|
-
renderCustomHeader: function renderCustomHeader(_ref2) {
|
|
451
|
-
var date = _ref2.date,
|
|
452
|
-
changeYear = _ref2.changeYear,
|
|
453
|
-
changeMonth = _ref2.changeMonth,
|
|
454
|
-
decreaseMonth = _ref2.decreaseMonth,
|
|
455
|
-
increaseMonth = _ref2.increaseMonth,
|
|
456
|
-
prevMonthButtonDisabled = _ref2.prevMonthButtonDisabled,
|
|
457
|
-
nextMonthButtonDisabled = _ref2.nextMonthButtonDisabled;
|
|
458
|
-
return React__default["default"].createElement(DatePickerHeader, {
|
|
459
|
-
date: date,
|
|
460
|
-
changeYear: changeYear,
|
|
461
|
-
changeMonth: changeMonth,
|
|
462
|
-
increaseMonth: increaseMonth,
|
|
463
|
-
decreaseMonth: decreaseMonth,
|
|
464
|
-
prevMonthButtonDisabled: prevMonthButtonDisabled,
|
|
465
|
-
nextMonthButtonDisabled: nextMonthButtonDisabled,
|
|
466
|
-
previousMonthAriaLabel: previousMonthAriaLabel,
|
|
467
|
-
nextMonthAriaLabel: nextMonthAriaLabel,
|
|
468
|
-
locale: locale$1
|
|
469
|
-
});
|
|
470
|
-
},
|
|
471
|
-
customInput: React__default["default"].createElement(DatePickerInput, {
|
|
472
|
-
style: style,
|
|
473
|
-
label: label,
|
|
474
|
-
inputPlaceholder: placeholder,
|
|
475
|
-
calendarButtonTooltipOpen: calendarButtonTooltipOpen,
|
|
476
|
-
calendarButtonTooltipClose: calendarButtonTooltipClose,
|
|
477
|
-
prepend: prepend,
|
|
478
|
-
feedback: getFeedbackAndVariant().feedback,
|
|
479
|
-
variant: getFeedbackAndVariant().variant,
|
|
480
|
-
inputRef: inputRef,
|
|
481
|
-
calendarButtonId: datepickerId + '-button',
|
|
482
|
-
forwardRef: ref,
|
|
483
|
-
onKeyDownInput: handleOnKeyDown,
|
|
484
|
-
onBlurInput: handleOnBlurInput,
|
|
485
|
-
onFocus: undefined,
|
|
486
|
-
toggleCalendarGUI: toggleCalendarGUI,
|
|
487
|
-
setFocusToCalendarGUI: setFocusToCalendarGUI,
|
|
488
|
-
setShouldFocusOnCalendarButtonAfterSelect: setShouldFocusOnCalendarButtonAfterSelect,
|
|
489
|
-
calendarGUIIsOpen: datePickerGUIIsOpen,
|
|
490
|
-
disableLabelAnimation: disableLabelAnimation,
|
|
491
|
-
hideCalendarButton: hideCalendarButton,
|
|
492
|
-
selectedDate: selectedDate
|
|
493
|
-
})
|
|
494
|
-
}, rest)));
|
|
495
|
-
});
|
|
496
|
-
|
|
497
63
|
var FieldSegment = function FieldSegment(_ref) {
|
|
498
64
|
var segment = _ref.segment,
|
|
499
65
|
state = _ref.state;
|
|
@@ -618,7 +184,7 @@ var ariaLabelIfNorwegian = function ariaLabelIfNorwegian(norwegianAriaLabel, loc
|
|
|
618
184
|
return norwegianAriaLabel;
|
|
619
185
|
};
|
|
620
186
|
|
|
621
|
-
var _excluded$8 = ["selectedDate", "label", "locale", "showTimeZone", "showTime", "granularity", "disabled", "variant", "feedback", "validationVariant", "validationFeedback", "labelTooltip", "style", "className", "labelProps", "append"];
|
|
187
|
+
var _excluded$8 = ["selectedDate", "label", "locale", "showTimeZone", "showTime", "granularity", "disabled", "variant", "feedback", "validationVariant", "validationFeedback", "labelTooltip", "minDate", "maxDate", "style", "className", "labelProps", "append"];
|
|
622
188
|
var DateField = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
623
189
|
var value = _ref.selectedDate,
|
|
624
190
|
label = _ref.label,
|
|
@@ -635,6 +201,8 @@ var DateField = /*#__PURE__*/React__default["default"].forwardRef(function (_ref
|
|
|
635
201
|
_ref$validationFeedba = _ref.validationFeedback,
|
|
636
202
|
validationFeedback = _ref$validationFeedba === void 0 ? 'Ugyldig dato' : _ref$validationFeedba,
|
|
637
203
|
labelTooltip = _ref.labelTooltip,
|
|
204
|
+
minValue = _ref.minDate,
|
|
205
|
+
maxValue = _ref.maxDate,
|
|
638
206
|
style = _ref.style,
|
|
639
207
|
className = _ref.className,
|
|
640
208
|
parentLabelProps = _ref.labelProps,
|
|
@@ -649,7 +217,9 @@ var DateField = /*#__PURE__*/React__default["default"].forwardRef(function (_ref
|
|
|
649
217
|
createCalendar: createCalendar,
|
|
650
218
|
value: value === null ? undefined : value,
|
|
651
219
|
hideTimeZone: !showTimeZone,
|
|
652
|
-
granularity: showTime ? 'minute' : granularity
|
|
220
|
+
granularity: showTime ? 'minute' : granularity,
|
|
221
|
+
minValue: minValue,
|
|
222
|
+
maxValue: maxValue
|
|
653
223
|
}));
|
|
654
224
|
var dateFieldRef = React.useRef(null);
|
|
655
225
|
|
|
@@ -701,22 +271,26 @@ var CalendarButton = function CalendarButton(_ref) {
|
|
|
701
271
|
|
|
702
272
|
var ref = React.useRef(null);
|
|
703
273
|
|
|
704
|
-
var _useButton = button
|
|
274
|
+
var _useButton = button.useButton(props, ref),
|
|
705
275
|
buttonProps = _useButton.buttonProps;
|
|
706
276
|
|
|
707
|
-
return React__default["default"].createElement(button.IconButton, _extends({}, buttonProps, {
|
|
277
|
+
return React__default["default"].createElement(button$1.IconButton, _extends({}, buttonProps, {
|
|
708
278
|
ref: ref,
|
|
709
279
|
className: className,
|
|
710
280
|
style: style
|
|
711
281
|
}), children);
|
|
712
282
|
};
|
|
713
283
|
|
|
714
|
-
var _excluded$6 = ["state", "date"];
|
|
284
|
+
var _excluded$6 = ["state", "date", "onSelectedCellClick"];
|
|
715
285
|
var CalendarCell = function CalendarCell(_ref) {
|
|
716
286
|
var _state$timeZone;
|
|
717
287
|
|
|
718
288
|
var state = _ref.state,
|
|
719
289
|
date$1 = _ref.date,
|
|
290
|
+
_ref$onSelectedCellCl = _ref.onSelectedCellClick,
|
|
291
|
+
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
292
|
+
return;
|
|
293
|
+
} : _ref$onSelectedCellCl,
|
|
720
294
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
721
295
|
|
|
722
296
|
var cellRef = React.useRef(null);
|
|
@@ -743,13 +317,26 @@ var CalendarCell = function CalendarCell(_ref) {
|
|
|
743
317
|
'eds-datepicker__calendar__grid__cell--outside-month': isOutsideVisibleRange,
|
|
744
318
|
'eds-datepicker__calendar__grid__cell--today': date.isEqualDay(date$1, date.now((_state$timeZone = state.timeZone) != null ? _state$timeZone : date.getLocalTimeZone()))
|
|
745
319
|
})
|
|
746
|
-
}, rest
|
|
320
|
+
}, rest, {
|
|
321
|
+
onClick: function onClick(e) {
|
|
322
|
+
buttonProps.onClick && buttonProps.onClick(e);
|
|
323
|
+
isSelected && onSelectedCellClick();
|
|
324
|
+
},
|
|
325
|
+
onKeyDown: function onKeyDown(e) {
|
|
326
|
+
buttonProps.onKeyDown && buttonProps.onKeyDown(e);
|
|
327
|
+
if (e.key === 'Enter' || e.key === ' ') isSelected && onSelectedCellClick();
|
|
328
|
+
}
|
|
329
|
+
}), formattedDate));
|
|
747
330
|
};
|
|
748
331
|
|
|
749
|
-
var _excluded$5 = ["state", "navigationDescription"];
|
|
332
|
+
var _excluded$5 = ["state", "navigationDescription", "onSelectedCellClick"];
|
|
750
333
|
var CalendarGrid = function CalendarGrid(_ref) {
|
|
751
334
|
var state = _ref.state,
|
|
752
335
|
navigationDescription = _ref.navigationDescription,
|
|
336
|
+
_ref$onSelectedCellCl = _ref.onSelectedCellClick,
|
|
337
|
+
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
338
|
+
return;
|
|
339
|
+
} : _ref$onSelectedCellCl,
|
|
753
340
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
754
341
|
|
|
755
342
|
var calendarGridId = utils.useRandomId('eds-calendar');
|
|
@@ -766,8 +353,13 @@ var CalendarGrid = function CalendarGrid(_ref) {
|
|
|
766
353
|
var weeksArray = Array.from(Array(weeksInMonth).keys());
|
|
767
354
|
|
|
768
355
|
var weekDaysMapped = function weekDaysMapped() {
|
|
769
|
-
if (locale.toLowerCase()
|
|
770
|
-
|
|
356
|
+
if (locale.toLowerCase().includes('no')) return ['ma', 'ti', 'on', 'to', 'fr', 'lø', 'sø'];
|
|
357
|
+
|
|
358
|
+
if (locale.toLowerCase().includes('en')) {
|
|
359
|
+
if (weekDays[0] === 'M') return ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];
|
|
360
|
+
if (weekDays[0] === 'S') return ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];
|
|
361
|
+
}
|
|
362
|
+
|
|
771
363
|
return weekDays.map(function (day) {
|
|
772
364
|
return day.toLowerCase();
|
|
773
365
|
});
|
|
@@ -794,7 +386,8 @@ var CalendarGrid = function CalendarGrid(_ref) {
|
|
|
794
386
|
key: i,
|
|
795
387
|
state: state,
|
|
796
388
|
date: date,
|
|
797
|
-
"aria-describedby": calendarGridId + 'description'
|
|
389
|
+
"aria-describedby": calendarGridId + 'description',
|
|
390
|
+
onSelectedCellClick: onSelectedCellClick
|
|
798
391
|
}) : React__default["default"].createElement("td", {
|
|
799
392
|
key: i
|
|
800
393
|
});
|
|
@@ -804,12 +397,16 @@ var CalendarGrid = function CalendarGrid(_ref) {
|
|
|
804
397
|
}, getNavigationDescription()));
|
|
805
398
|
};
|
|
806
399
|
|
|
807
|
-
var _excluded$4 = ["selectedDate", "onChange", "locale", "style", "children", "navigationDescription"];
|
|
400
|
+
var _excluded$4 = ["selectedDate", "onChange", "locale", "style", "children", "navigationDescription", "onSelectedCellClick"];
|
|
808
401
|
var Calendar = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
809
402
|
var onChange = _ref.onChange,
|
|
810
403
|
customLocale = _ref.locale,
|
|
811
404
|
style = _ref.style,
|
|
812
405
|
navigationDescription = _ref.navigationDescription,
|
|
406
|
+
_ref$onSelectedCellCl = _ref.onSelectedCellClick,
|
|
407
|
+
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
408
|
+
return;
|
|
409
|
+
} : _ref$onSelectedCellCl,
|
|
813
410
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
|
|
814
411
|
|
|
815
412
|
var _useLocale = i18n.useLocale(),
|
|
@@ -850,14 +447,15 @@ var Calendar = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
|
|
|
850
447
|
size: 20
|
|
851
448
|
}))), React__default["default"].createElement(CalendarGrid, {
|
|
852
449
|
state: state,
|
|
853
|
-
navigationDescription: navigationDescription
|
|
450
|
+
navigationDescription: navigationDescription,
|
|
451
|
+
onSelectedCellClick: onSelectedCellClick
|
|
854
452
|
})));
|
|
855
453
|
});
|
|
856
454
|
|
|
857
|
-
var _excluded$3 = ["selectedDate", "onChange", "locale", "disabled", "showTime", "showTimeZone", "className", "style", "variant", "feedback", "validationVariant", "validationFeedback", "disableModal", "labelTooltip", "navigationDescription", "minDate", "maxDate"];
|
|
858
|
-
var
|
|
455
|
+
var _excluded$3 = ["selectedDate", "onChange", "locale", "disabled", "showTime", "showTimeZone", "className", "style", "variant", "feedback", "validationVariant", "validationFeedback", "disableModal", "labelTooltip", "navigationDescription", "minDate", "maxDate", "modalTreshold"];
|
|
456
|
+
var DatePicker = function DatePicker(_ref) {
|
|
859
457
|
var value = _ref.selectedDate,
|
|
860
|
-
|
|
458
|
+
onChange = _ref.onChange,
|
|
861
459
|
locale = _ref.locale,
|
|
862
460
|
isDisabled = _ref.disabled,
|
|
863
461
|
showTime = _ref.showTime,
|
|
@@ -874,9 +472,11 @@ var DatePickerBeta = function DatePickerBeta(_ref) {
|
|
|
874
472
|
navigationDescription = _ref.navigationDescription,
|
|
875
473
|
minValue = _ref.minDate,
|
|
876
474
|
maxValue = _ref.maxDate,
|
|
475
|
+
_ref$modalTreshold = _ref.modalTreshold,
|
|
476
|
+
modalTreshold = _ref$modalTreshold === void 0 ? 1000 : _ref$modalTreshold,
|
|
877
477
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
878
478
|
|
|
879
|
-
var CALENDAR_MODAL_MAX_SCREEN_WIDTH =
|
|
479
|
+
var CALENDAR_MODAL_MAX_SCREEN_WIDTH = modalTreshold;
|
|
880
480
|
var datePickerRef = React.useRef(null);
|
|
881
481
|
var calendarRef = React.useRef(null);
|
|
882
482
|
var dateFieldRef = React.useRef(null);
|
|
@@ -888,7 +488,7 @@ var DatePickerBeta = function DatePickerBeta(_ref) {
|
|
|
888
488
|
minValue: minValue,
|
|
889
489
|
maxValue: maxValue,
|
|
890
490
|
value: value,
|
|
891
|
-
onChange:
|
|
491
|
+
onChange: onChange
|
|
892
492
|
}));
|
|
893
493
|
|
|
894
494
|
var _useDatePicker = datepicker.useDatePicker(_extends({
|
|
@@ -901,24 +501,11 @@ var DatePickerBeta = function DatePickerBeta(_ref) {
|
|
|
901
501
|
fieldProps = _useDatePicker.fieldProps,
|
|
902
502
|
buttonProps = _useDatePicker.buttonProps,
|
|
903
503
|
dialogProps = _useDatePicker.dialogProps,
|
|
904
|
-
calendarProps = _useDatePicker.calendarProps;
|
|
905
|
-
|
|
906
|
-
React.useEffect(function () {
|
|
907
|
-
var _calendarRef$current;
|
|
908
|
-
|
|
909
|
-
var keyDownHandler = function keyDownHandler(event) {
|
|
910
|
-
if (event.key === 'Escape') state.setOpen(false);
|
|
911
|
-
};
|
|
504
|
+
calendarProps = _useDatePicker.calendarProps; // calculations for floating-UI popover position
|
|
912
505
|
|
|
913
|
-
(_calendarRef$current = calendarRef.current) == null ? void 0 : _calendarRef$current.addEventListener('keydown', keyDownHandler);
|
|
914
|
-
return function () {
|
|
915
|
-
var _calendarRef$current2;
|
|
916
|
-
|
|
917
|
-
return (_calendarRef$current2 = calendarRef.current) == null ? void 0 : _calendarRef$current2.removeEventListener('keydown', keyDownHandler);
|
|
918
|
-
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
919
|
-
}, []); // calculations for floating-UI popover position
|
|
920
506
|
|
|
921
507
|
var _useFloating = reactDom.useFloating({
|
|
508
|
+
whileElementsMounted: reactDom.autoUpdate,
|
|
922
509
|
placement: 'bottom-start',
|
|
923
510
|
middleware: [reactDom.offset(tokens.space.extraSmall), reactDom.flip(), reactDom.shift({
|
|
924
511
|
padding: tokens.space.extraSmall
|
|
@@ -930,53 +517,49 @@ var DatePickerBeta = function DatePickerBeta(_ref) {
|
|
|
930
517
|
floating = _useFloating.floating,
|
|
931
518
|
strategy = _useFloating.strategy;
|
|
932
519
|
|
|
520
|
+
var onChangeCalendar = function onChangeCalendar(newSelectedDate) {
|
|
521
|
+
// Necessary to avoid state update on unmounted component
|
|
522
|
+
requestAnimationFrame(function () {
|
|
523
|
+
calendarProps.onChange && calendarProps.onChange(newSelectedDate);
|
|
524
|
+
});
|
|
525
|
+
};
|
|
526
|
+
|
|
933
527
|
utils.useOnClickOutside([calendarRef], function () {
|
|
934
528
|
state.setOpen(false);
|
|
935
529
|
});
|
|
530
|
+
utils.useOnEscape(calendarRef, function () {
|
|
531
|
+
state.setOpen(false);
|
|
532
|
+
});
|
|
936
533
|
|
|
937
|
-
var
|
|
938
|
-
if (!calendarIsOpen) {
|
|
939
|
-
state.setOpen(true);
|
|
940
|
-
setFocusToRelevantDate();
|
|
941
|
-
} else {
|
|
942
|
-
state.setOpen(false);
|
|
943
|
-
}
|
|
944
|
-
};
|
|
945
|
-
|
|
946
|
-
var setFocusToRelevantDate = function setFocusToRelevantDate() {
|
|
947
|
-
var _calendarRef$current3, _calendarRef$current4;
|
|
948
|
-
|
|
949
|
-
var gridCellPrefix = 'eds-datepicker__calendar__grid__cell';
|
|
950
|
-
var selectedCell = (_calendarRef$current3 = calendarRef.current) == null ? void 0 : _calendarRef$current3.getElementsByClassName(gridCellPrefix + '--selected')[0];
|
|
951
|
-
var todayCell = (_calendarRef$current4 = calendarRef.current) == null ? void 0 : _calendarRef$current4.getElementsByClassName(gridCellPrefix + '--today')[0];
|
|
952
|
-
if (selectedCell) selectedCell.focus();else if (todayCell) todayCell.focus();
|
|
953
|
-
};
|
|
954
|
-
|
|
955
|
-
var popoverCalendar = React__default["default"].createElement(React__default["default"].Fragment, null, state.isOpen && React__default["default"].createElement(FocusLock__default["default"], {
|
|
956
|
-
disabled: !state.isOpen,
|
|
957
|
-
returnFocus: true
|
|
958
|
-
}, React__default["default"].createElement(Calendar, _extends({}, dialogProps, calendarProps, {
|
|
959
|
-
onChange: function onChange(dateValue) {
|
|
960
|
-
_onChange(dateValue);
|
|
961
|
-
|
|
962
|
-
state.setOpen(false);
|
|
963
|
-
},
|
|
534
|
+
var calendarSharedProps = _extends({}, dialogProps, calendarProps, {
|
|
964
535
|
disabled: calendarProps.isDisabled,
|
|
965
|
-
ref: function ref(node) {
|
|
966
|
-
calendarRef.current = node;
|
|
967
|
-
floating(node);
|
|
968
|
-
},
|
|
969
536
|
navigationDescription: navigationDescription,
|
|
537
|
+
onSelectedCellClick: function onSelectedCellClick() {
|
|
538
|
+
return state.setOpen(false);
|
|
539
|
+
},
|
|
540
|
+
onChange: onChangeCalendar
|
|
541
|
+
});
|
|
542
|
+
|
|
543
|
+
var useModal = width <= CALENDAR_MODAL_MAX_SCREEN_WIDTH && !disableModal;
|
|
544
|
+
var popoverCalendar = React__default["default"].createElement("div", {
|
|
970
545
|
// styling for floating-UI popover
|
|
971
546
|
style: {
|
|
972
547
|
position: strategy,
|
|
973
548
|
top: y != null ? y : 0,
|
|
974
549
|
left: x != null ? x : 0,
|
|
975
550
|
zIndex: tokens.zIndexes.popover
|
|
551
|
+
},
|
|
552
|
+
ref: function ref(node) {
|
|
553
|
+
floating(node);
|
|
976
554
|
}
|
|
555
|
+
}, React__default["default"].createElement(FocusLock__default["default"], {
|
|
556
|
+
disabled: !state.isOpen || useModal,
|
|
557
|
+
returnFocus: true
|
|
558
|
+
}, state.isOpen && React__default["default"].createElement(Calendar, _extends({}, calendarSharedProps, {
|
|
559
|
+
ref: calendarRef
|
|
977
560
|
}))));
|
|
978
561
|
var modalCalendar = React__default["default"].createElement(modal.Modal, {
|
|
979
|
-
size:
|
|
562
|
+
size: "small",
|
|
980
563
|
title: "",
|
|
981
564
|
open: state.isOpen,
|
|
982
565
|
onDismiss: function onDismiss() {
|
|
@@ -984,16 +567,7 @@ var DatePickerBeta = function DatePickerBeta(_ref) {
|
|
|
984
567
|
},
|
|
985
568
|
closeOnClickOutside: true,
|
|
986
569
|
className: "eds-datepicker__calendar-modal"
|
|
987
|
-
}, React__default["default"].createElement(Calendar, _extends({},
|
|
988
|
-
onChange: function onChange(dateValue) {
|
|
989
|
-
_onChange(dateValue);
|
|
990
|
-
|
|
991
|
-
state.setOpen(false);
|
|
992
|
-
},
|
|
993
|
-
disabled: calendarProps.isDisabled,
|
|
994
|
-
ref: calendarRef,
|
|
995
|
-
navigationDescription: navigationDescription
|
|
996
|
-
})));
|
|
570
|
+
}, React__default["default"].createElement(Calendar, _extends({}, calendarSharedProps)));
|
|
997
571
|
return React__default["default"].createElement(utils.ConditionalWrapper, {
|
|
998
572
|
condition: locale !== undefined,
|
|
999
573
|
wrapper: function wrapper(child) {
|
|
@@ -1008,6 +582,7 @@ var DatePickerBeta = function DatePickerBeta(_ref) {
|
|
|
1008
582
|
datePickerRef.current = node;
|
|
1009
583
|
reference(node);
|
|
1010
584
|
},
|
|
585
|
+
id: undefined,
|
|
1011
586
|
className: "eds-datepicker__datefield__wrapper"
|
|
1012
587
|
}), React__default["default"].createElement(DateField, _extends({}, fieldProps, {
|
|
1013
588
|
selectedDate: state.value,
|
|
@@ -1026,10 +601,10 @@ var DatePickerBeta = function DatePickerBeta(_ref) {
|
|
|
1026
601
|
})
|
|
1027
602
|
})), !fieldProps.isDisabled && React__default["default"].createElement(CalendarButton, _extends({}, buttonProps, {
|
|
1028
603
|
onPress: function onPress() {
|
|
1029
|
-
return
|
|
604
|
+
return state.setOpen(!state.isOpen);
|
|
1030
605
|
},
|
|
1031
606
|
className: "eds-datepicker__open-calendar-button"
|
|
1032
|
-
}), React__default["default"].createElement(icons.CalendarIcon, null)),
|
|
607
|
+
}), React__default["default"].createElement(icons.CalendarIcon, null)), useModal ? modalCalendar : popoverCalendar)));
|
|
1033
608
|
};
|
|
1034
609
|
|
|
1035
610
|
var _excluded$2 = ["className", "style", "label", "onChange", "feedback", "variant", "disableLabelAnimation", "prepend"],
|
|
@@ -1117,7 +692,7 @@ var TimePickerArrowButton = function TimePickerArrowButton(_ref) {
|
|
|
1117
692
|
onClick = _ref.onClick,
|
|
1118
693
|
disabled = _ref.disabled,
|
|
1119
694
|
ariaLabel = _ref['aria-label'];
|
|
1120
|
-
return React__default["default"].createElement(button.IconButton, {
|
|
695
|
+
return React__default["default"].createElement(button$1.IconButton, {
|
|
1121
696
|
className: classNames__default["default"]('eds-timepicker__arrowbutton', "eds-timepicker__arrowbutton--" + direction, {
|
|
1122
697
|
'eds-timepicker__arrowbutton--disabled': disabled
|
|
1123
698
|
}),
|
|
@@ -1319,7 +894,6 @@ utils.warnAboutMissingStyles('datepicker', 'form', 'icons');
|
|
|
1319
894
|
exports.Calendar = Calendar;
|
|
1320
895
|
exports.DateField = DateField;
|
|
1321
896
|
exports.DatePicker = DatePicker;
|
|
1322
|
-
exports.DatePickerBeta = DatePickerBeta;
|
|
1323
897
|
exports.NativeDatePicker = NativeDatePicker;
|
|
1324
898
|
exports.NativeTimePicker = NativeTimePicker;
|
|
1325
899
|
exports.TimePicker = TimePicker;
|