@entur/datepicker 4.0.0-RC.0 → 4.0.0-RC.2

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.
@@ -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 button$1 = require('@react-aria/button');
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,489 +24,51 @@ 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
 
37
30
  function _extends() {
38
- _extends = Object.assign || function (target) {
31
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
39
32
  for (var i = 1; i < arguments.length; i++) {
40
33
  var source = arguments[i];
41
-
42
34
  for (var key in source) {
43
35
  if (Object.prototype.hasOwnProperty.call(source, key)) {
44
36
  target[key] = source[key];
45
37
  }
46
38
  }
47
39
  }
48
-
49
40
  return target;
50
41
  };
51
-
52
42
  return _extends.apply(this, arguments);
53
43
  }
54
-
55
44
  function _objectWithoutPropertiesLoose(source, excluded) {
56
45
  if (source == null) return {};
57
46
  var target = {};
58
47
  var sourceKeys = Object.keys(source);
59
48
  var key, i;
60
-
61
49
  for (i = 0; i < sourceKeys.length; i++) {
62
50
  key = sourceKeys[i];
63
51
  if (excluded.indexOf(key) >= 0) continue;
64
52
  target[key] = source[key];
65
53
  }
66
-
67
54
  return target;
68
55
  }
69
56
 
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
57
  var FieldSegment = function FieldSegment(_ref) {
498
58
  var segment = _ref.segment,
499
- state = _ref.state;
59
+ state = _ref.state;
500
60
  var ref = React.useRef(null);
501
-
502
61
  var _useDateSegment = datepicker.useDateSegment(segment, state, ref),
503
- segmentProps = _useDateSegment.segmentProps;
504
-
62
+ segmentProps = _useDateSegment.segmentProps;
505
63
  var is12HourFormatted = state.segments.some(function (segment) {
506
64
  return segment.text === 'AM' || segment.text === 'PM';
507
65
  });
508
-
509
66
  var segmentDisplayText = function segmentDisplayText() {
510
- if (is12HourFormatted) return segment.text; // if number add '0' padding to start when one digit
511
-
67
+ if (is12HourFormatted) return segment.text;
68
+ // if number add '0' padding to start when one digit
512
69
  if (segment.text.match(/\d+/)) return segment.text.padStart(2, '0');
513
70
  return segment.text;
514
71
  };
515
-
516
72
  return React__default["default"].createElement("div", _extends({}, segmentProps, {
517
73
  ref: ref,
518
74
  className: classNames__default["default"]('eds-date-and-time-field__segment', {
@@ -532,24 +88,19 @@ var FieldSegment = function FieldSegment(_ref) {
532
88
  * @param {number} offset UTC-offset i millisekunder, må brukes med en tidssone. Ved å legge på en offset lager du en variant av en tidssone. Det betyr at tidspunktet ikke endres (time, minutt, sekund uendret), men tidssonen, med tilhørende offset, tidspunktet er i endres.
533
89
  * @returns {Time | CalendarDateTime | ZonedDateTime | CalendarDate} et av Time- eller DateValue-objektene med verdier fra date
534
90
  */
535
-
536
91
  var nativeDateToTimeOrDateValue = function nativeDateToTimeOrDateValue(date$1, noDateOnlyTime, noTimeOnlyDate, timeZone, offset) {
537
92
  if (noDateOnlyTime === void 0) {
538
93
  noDateOnlyTime = false;
539
94
  }
540
-
541
95
  if (noTimeOnlyDate === void 0) {
542
96
  noTimeOnlyDate = false;
543
97
  }
544
-
545
98
  if (timeZone) {
546
99
  if (offset) {
547
100
  return new date.ZonedDateTime(date$1.getFullYear(), date$1.getMonth() + 1, date$1.getDate(), timeZone, offset, date$1.getHours(), date$1.getMinutes(), date$1.getSeconds());
548
101
  }
549
-
550
102
  return date.parseAbsolute(date$1.toISOString(), timeZone);
551
103
  }
552
-
553
104
  if (noDateOnlyTime) return new date.Time(date$1.getHours(), date$1.getMinutes(), date$1.getSeconds(), 0);
554
105
  if (noTimeOnlyDate) return new date.CalendarDate(date$1.getFullYear(), date$1.getMonth() + 1, date$1.getDate());
555
106
  return new date.CalendarDateTime(date$1.getFullYear(), date$1.getMonth() + 1, date$1.getDate(), date$1.getHours(), date$1.getMinutes(), date$1.getSeconds());
@@ -561,54 +112,55 @@ var nativeDateToTimeOrDateValue = function nativeDateToTimeOrDateValue(date$1, n
561
112
  * @returns {Date} et Date-objekt med verdier fra time
562
113
  */
563
114
  // This function uses a lot of @ts-expect-error to make it work with all Date- and TimeValue types. Sorry ...
564
-
565
115
  var timeOrDateValueToNativeDate = function timeOrDateValueToNativeDate(value, timeZoneForCalendarDateTime) {
566
116
  // @ts-expect-error .day does not exist on Time-object
567
117
  if (!value.day) {
568
118
  // type is Time
569
- var date$1 = new Date(); // @ts-expect-error hour does not exist on CalendarDate
570
-
571
- date$1.setHours(value.hour); // @ts-expect-error minute does not exist on CalendarDate
572
-
573
- date$1.setMinutes(value.minute); // @ts-expect-error second does not exist on CalendarDate
574
-
119
+ var date$1 = new Date();
120
+ // @ts-expect-error hour does not exist on CalendarDate
121
+ date$1.setHours(value.hour);
122
+ // @ts-expect-error minute does not exist on CalendarDate
123
+ date$1.setMinutes(value.minute);
124
+ // @ts-expect-error second does not exist on CalendarDate
575
125
  date$1.setSeconds(value.second);
576
126
  return date$1;
577
- } // @ts-expect-error .day does not exist on Time-object
578
-
579
-
127
+ }
128
+ // @ts-expect-error .day does not exist on Time-object
580
129
  if (!value.hour) {
581
130
  // type is CalendarDate
582
131
  // @ts-expect-error .toDate(timeZone) does not exist in type Time
583
132
  return value.toDate(timeZoneForCalendarDateTime != null ? timeZoneForCalendarDateTime : date.getLocalTimeZone());
584
- } // @ts-expect-error .timeZone does not exist in type Time and CalendarDateTime
585
-
586
-
133
+ }
134
+ // @ts-expect-error .timeZone does not exist in type Time and CalendarDateTime
587
135
  if (!value.timeZone) {
588
136
  // type is CalendarDateTime
589
- if (timeZoneForCalendarDateTime) // @ts-expect-error .toDate(timeZone) does not exist in type Time
137
+ if (timeZoneForCalendarDateTime)
138
+ // @ts-expect-error .toDate(timeZone) does not exist in type Time
590
139
  return value.toDate(timeZoneForCalendarDateTime);
591
- return new Date( // @ts-expect-error not in type Time
592
- value.year, // @ts-expect-error not in type Time
593
- value.month - 1, // @ts-expect-error not in type Time
594
- value.day, // @ts-expect-error not in type CalendarDate
595
- value.hour, // @ts-expect-error not in type CalendarDate
596
- value.minute, // @ts-expect-error not in type CalendarDate
140
+ return new Date(
141
+ // @ts-expect-error not in type Time
142
+ value.year,
143
+ // @ts-expect-error not in type Time
144
+ value.month - 1,
145
+ // @ts-expect-error not in type Time
146
+ value.day,
147
+ // @ts-expect-error not in type CalendarDate
148
+ value.hour,
149
+ // @ts-expect-error not in type CalendarDate
150
+ value.minute,
151
+ // @ts-expect-error not in type CalendarDate
597
152
  value.second);
598
- } // @ts-expect-error .toDate() does not exist in type Time or CalendarDateTime
599
-
600
-
153
+ }
154
+ // @ts-expect-error .toDate() does not exist in type Time or CalendarDateTime
601
155
  return value.toDate();
602
156
  };
603
157
  var createCalendar = function createCalendar(identifier) {
604
158
  if (identifier === void 0) {
605
159
  identifier = 'gregory';
606
160
  }
607
-
608
161
  switch (identifier) {
609
162
  case 'gregory':
610
163
  return new date.GregorianCalendar();
611
-
612
164
  default:
613
165
  throw new Error("Unsupported calendar " + identifier);
614
166
  }
@@ -621,29 +173,27 @@ var ariaLabelIfNorwegian = function ariaLabelIfNorwegian(norwegianAriaLabel, loc
621
173
  var _excluded$8 = ["selectedDate", "label", "locale", "showTimeZone", "showTime", "granularity", "disabled", "variant", "feedback", "validationVariant", "validationFeedback", "labelTooltip", "style", "className", "labelProps", "append"];
622
174
  var DateField = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
623
175
  var value = _ref.selectedDate,
624
- label = _ref.label,
625
- customLocale = _ref.locale,
626
- showTimeZone = _ref.showTimeZone,
627
- showTime = _ref.showTime,
628
- _ref$granularity = _ref.granularity,
629
- granularity = _ref$granularity === void 0 ? 'day' : _ref$granularity,
630
- disabled = _ref.disabled,
631
- variant = _ref.variant,
632
- feedback = _ref.feedback,
633
- _ref$validationVarian = _ref.validationVariant,
634
- validationVariant = _ref$validationVarian === void 0 ? 'error' : _ref$validationVarian,
635
- _ref$validationFeedba = _ref.validationFeedback,
636
- validationFeedback = _ref$validationFeedba === void 0 ? 'Ugyldig dato' : _ref$validationFeedba,
637
- labelTooltip = _ref.labelTooltip,
638
- style = _ref.style,
639
- className = _ref.className,
640
- parentLabelProps = _ref.labelProps,
641
- append = _ref.append,
642
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);
643
-
176
+ label = _ref.label,
177
+ customLocale = _ref.locale,
178
+ showTimeZone = _ref.showTimeZone,
179
+ showTime = _ref.showTime,
180
+ _ref$granularity = _ref.granularity,
181
+ granularity = _ref$granularity === void 0 ? 'day' : _ref$granularity,
182
+ disabled = _ref.disabled,
183
+ variant = _ref.variant,
184
+ feedback = _ref.feedback,
185
+ _ref$validationVarian = _ref.validationVariant,
186
+ validationVariant = _ref$validationVarian === void 0 ? 'error' : _ref$validationVarian,
187
+ _ref$validationFeedba = _ref.validationFeedback,
188
+ validationFeedback = _ref$validationFeedba === void 0 ? 'Ugyldig dato' : _ref$validationFeedba,
189
+ labelTooltip = _ref.labelTooltip,
190
+ style = _ref.style,
191
+ className = _ref.className,
192
+ parentLabelProps = _ref.labelProps,
193
+ append = _ref.append,
194
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);
644
195
  var _useLocale = i18n.useLocale(),
645
- locale = _useLocale.locale;
646
-
196
+ locale = _useLocale.locale;
647
197
  var state = datepicker$1.useDateFieldState(_extends({}, rest, {
648
198
  locale: customLocale != null ? customLocale : locale,
649
199
  createCalendar: createCalendar,
@@ -652,14 +202,12 @@ var DateField = /*#__PURE__*/React__default["default"].forwardRef(function (_ref
652
202
  granularity: showTime ? 'minute' : granularity
653
203
  }));
654
204
  var dateFieldRef = React.useRef(null);
655
-
656
205
  var _useDateField = datepicker.useDateField(_extends({}, rest, {
657
- label: label,
658
- isDisabled: disabled || rest.isDisabled
659
- }), state, dateFieldRef),
660
- labelProps = _useDateField.labelProps,
661
- fieldProps = _useDateField.fieldProps;
662
-
206
+ label: label,
207
+ isDisabled: disabled || rest.isDisabled
208
+ }), state, dateFieldRef),
209
+ labelProps = _useDateField.labelProps,
210
+ fieldProps = _useDateField.fieldProps;
663
211
  var id = utils.useRandomId('datefield');
664
212
  return React__default["default"].createElement(utils.ConditionalWrapper, {
665
213
  condition: customLocale !== undefined,
@@ -695,16 +243,13 @@ var DateField = /*#__PURE__*/React__default["default"].forwardRef(function (_ref
695
243
  var _excluded$7 = ["children", "className", "style"];
696
244
  var CalendarButton = function CalendarButton(_ref) {
697
245
  var children = _ref.children,
698
- className = _ref.className,
699
- style = _ref.style,
700
- props = _objectWithoutPropertiesLoose(_ref, _excluded$7);
701
-
246
+ className = _ref.className,
247
+ style = _ref.style,
248
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$7);
702
249
  var ref = React.useRef(null);
703
-
704
- var _useButton = button$1.useButton(props, ref),
705
- buttonProps = _useButton.buttonProps;
706
-
707
- return React__default["default"].createElement(button.IconButton, _extends({}, buttonProps, {
250
+ var _useButton = button.useButton(props, ref),
251
+ buttonProps = _useButton.buttonProps;
252
+ return React__default["default"].createElement(button$1.IconButton, _extends({}, buttonProps, {
708
253
  ref: ref,
709
254
  className: className,
710
255
  style: style
@@ -714,28 +259,24 @@ var CalendarButton = function CalendarButton(_ref) {
714
259
  var _excluded$6 = ["state", "date", "onSelectedCellClick"];
715
260
  var CalendarCell = function CalendarCell(_ref) {
716
261
  var _state$timeZone;
717
-
718
262
  var state = _ref.state,
719
- date$1 = _ref.date,
720
- _ref$onSelectedCellCl = _ref.onSelectedCellClick,
721
- onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
722
- return;
723
- } : _ref$onSelectedCellCl,
724
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
725
-
263
+ date$1 = _ref.date,
264
+ _ref$onSelectedCellCl = _ref.onSelectedCellClick,
265
+ onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
266
+ return;
267
+ } : _ref$onSelectedCellCl,
268
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
726
269
  var cellRef = React.useRef(null);
727
-
728
270
  var _useCalendarCell = calendar.useCalendarCell({
729
- date: date$1
730
- }, state, cellRef),
731
- cellProps = _useCalendarCell.cellProps,
732
- buttonProps = _useCalendarCell.buttonProps,
733
- isSelected = _useCalendarCell.isSelected,
734
- isOutsideVisibleRange = _useCalendarCell.isOutsideVisibleRange,
735
- isDisabled = _useCalendarCell.isDisabled,
736
- isUnavailable = _useCalendarCell.isUnavailable,
737
- formattedDate = _useCalendarCell.formattedDate;
738
-
271
+ date: date$1
272
+ }, state, cellRef),
273
+ cellProps = _useCalendarCell.cellProps,
274
+ buttonProps = _useCalendarCell.buttonProps,
275
+ isSelected = _useCalendarCell.isSelected,
276
+ isOutsideVisibleRange = _useCalendarCell.isOutsideVisibleRange,
277
+ isDisabled = _useCalendarCell.isDisabled,
278
+ isUnavailable = _useCalendarCell.isUnavailable,
279
+ formattedDate = _useCalendarCell.formattedDate;
739
280
  return React__default["default"].createElement("td", _extends({}, cellProps, {
740
281
  className: "eds-datepicker__calendar__grid__cell__td"
741
282
  }), React__default["default"].createElement("div", _extends({}, buttonProps, {
@@ -758,26 +299,21 @@ var CalendarCell = function CalendarCell(_ref) {
758
299
  var _excluded$5 = ["state", "navigationDescription", "onSelectedCellClick"];
759
300
  var CalendarGrid = function CalendarGrid(_ref) {
760
301
  var state = _ref.state,
761
- navigationDescription = _ref.navigationDescription,
762
- _ref$onSelectedCellCl = _ref.onSelectedCellClick,
763
- onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
764
- return;
765
- } : _ref$onSelectedCellCl,
766
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
767
-
302
+ navigationDescription = _ref.navigationDescription,
303
+ _ref$onSelectedCellCl = _ref.onSelectedCellClick,
304
+ onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
305
+ return;
306
+ } : _ref$onSelectedCellCl,
307
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
768
308
  var calendarGridId = utils.useRandomId('eds-calendar');
769
-
770
309
  var _useLocale = i18n.useLocale(),
771
- locale = _useLocale.locale;
772
-
310
+ locale = _useLocale.locale;
773
311
  var _useCalendarGrid = calendar.useCalendarGrid(rest, state),
774
- gridProps = _useCalendarGrid.gridProps,
775
- headerProps = _useCalendarGrid.headerProps,
776
- weekDays = _useCalendarGrid.weekDays;
777
-
312
+ gridProps = _useCalendarGrid.gridProps,
313
+ headerProps = _useCalendarGrid.headerProps,
314
+ weekDays = _useCalendarGrid.weekDays;
778
315
  var weeksInMonth = date.getWeeksInMonth(state.visibleRange.start, locale);
779
316
  var weeksArray = Array.from(Array(weeksInMonth).keys());
780
-
781
317
  var weekDaysMapped = function weekDaysMapped() {
782
318
  if (locale.toLowerCase() === 'no-no' || locale.toLowerCase() === 'no') return ['ma', 'ti', 'on', 'to', 'fr', 'lø', 'sø'];
783
319
  if (weekDays.toString() === 'M,T,W,T,F,S,S') return ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];
@@ -785,13 +321,11 @@ var CalendarGrid = function CalendarGrid(_ref) {
785
321
  return day.toLowerCase();
786
322
  });
787
323
  };
788
-
789
324
  var getNavigationDescription = function getNavigationDescription() {
790
325
  if (navigationDescription) return navigationDescription;
791
326
  if (locale.toLowerCase().includes('en')) return 'Use the arrow keys to navigate between dates';
792
327
  return 'Bruk piltastene til å navigere mellom datoer';
793
328
  };
794
-
795
329
  return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement("table", _extends({}, gridProps, {
796
330
  cellSpacing: "0",
797
331
  className: "eds-datepicker__calendar__grid"
@@ -821,30 +355,26 @@ var CalendarGrid = function CalendarGrid(_ref) {
821
355
  var _excluded$4 = ["selectedDate", "onChange", "locale", "style", "children", "navigationDescription", "onSelectedCellClick"];
822
356
  var Calendar = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
823
357
  var onChange = _ref.onChange,
824
- customLocale = _ref.locale,
825
- style = _ref.style,
826
- navigationDescription = _ref.navigationDescription,
827
- _ref$onSelectedCellCl = _ref.onSelectedCellClick,
828
- onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
829
- return;
830
- } : _ref$onSelectedCellCl,
831
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
832
-
358
+ customLocale = _ref.locale,
359
+ style = _ref.style,
360
+ navigationDescription = _ref.navigationDescription,
361
+ _ref$onSelectedCellCl = _ref.onSelectedCellClick,
362
+ onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
363
+ return;
364
+ } : _ref$onSelectedCellCl,
365
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
833
366
  var _useLocale = i18n.useLocale(),
834
- locale = _useLocale.locale;
835
-
367
+ locale = _useLocale.locale;
836
368
  var state = calendar$1.useCalendarState(_extends({}, rest, {
837
369
  onChange: onChange,
838
370
  locale: customLocale != null ? customLocale : locale,
839
371
  createCalendar: createCalendar
840
372
  }));
841
-
842
373
  var _useCalendar = calendar.useCalendar(rest, state),
843
- calendarProps = _useCalendar.calendarProps,
844
- prevButtonProps = _useCalendar.prevButtonProps,
845
- nextButtonProps = _useCalendar.nextButtonProps,
846
- title = _useCalendar.title;
847
-
374
+ calendarProps = _useCalendar.calendarProps,
375
+ prevButtonProps = _useCalendar.prevButtonProps,
376
+ nextButtonProps = _useCalendar.nextButtonProps,
377
+ title = _useCalendar.title;
848
378
  return React__default["default"].createElement(utils.ConditionalWrapper, {
849
379
  condition: customLocale,
850
380
  wrapper: function wrapper(child) {
@@ -874,85 +404,76 @@ var Calendar = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
874
404
  });
875
405
 
876
406
  var _excluded$3 = ["selectedDate", "onChange", "locale", "disabled", "showTime", "showTimeZone", "className", "style", "variant", "feedback", "validationVariant", "validationFeedback", "disableModal", "labelTooltip", "navigationDescription", "minDate", "maxDate", "modalTreshold"];
877
- var DatePickerBeta = function DatePickerBeta(_ref) {
407
+ var DatePicker = function DatePicker(_ref) {
878
408
  var value = _ref.selectedDate,
879
- onChange = _ref.onChange,
880
- locale = _ref.locale,
881
- isDisabled = _ref.disabled,
882
- showTime = _ref.showTime,
883
- _ref$showTimeZone = _ref.showTimeZone,
884
- showTimeZone = _ref$showTimeZone === void 0 ? false : _ref$showTimeZone,
885
- className = _ref.className,
886
- variant = _ref.variant,
887
- feedback = _ref.feedback,
888
- validationVariant = _ref.validationVariant,
889
- validationFeedback = _ref.validationFeedback,
890
- _ref$disableModal = _ref.disableModal,
891
- disableModal = _ref$disableModal === void 0 ? false : _ref$disableModal,
892
- labelTooltip = _ref.labelTooltip,
893
- navigationDescription = _ref.navigationDescription,
894
- minValue = _ref.minDate,
895
- maxValue = _ref.maxDate,
896
- _ref$modalTreshold = _ref.modalTreshold,
897
- modalTreshold = _ref$modalTreshold === void 0 ? 1000 : _ref$modalTreshold,
898
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
899
-
409
+ onChange = _ref.onChange,
410
+ locale = _ref.locale,
411
+ isDisabled = _ref.disabled,
412
+ showTime = _ref.showTime,
413
+ _ref$showTimeZone = _ref.showTimeZone,
414
+ showTimeZone = _ref$showTimeZone === void 0 ? false : _ref$showTimeZone,
415
+ className = _ref.className,
416
+ variant = _ref.variant,
417
+ feedback = _ref.feedback,
418
+ validationVariant = _ref.validationVariant,
419
+ validationFeedback = _ref.validationFeedback,
420
+ _ref$disableModal = _ref.disableModal,
421
+ disableModal = _ref$disableModal === void 0 ? false : _ref$disableModal,
422
+ labelTooltip = _ref.labelTooltip,
423
+ navigationDescription = _ref.navigationDescription,
424
+ minValue = _ref.minDate,
425
+ maxValue = _ref.maxDate,
426
+ _ref$modalTreshold = _ref.modalTreshold,
427
+ modalTreshold = _ref$modalTreshold === void 0 ? 1000 : _ref$modalTreshold,
428
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
900
429
  var CALENDAR_MODAL_MAX_SCREEN_WIDTH = modalTreshold;
901
430
  var datePickerRef = React.useRef(null);
902
431
  var calendarRef = React.useRef(null);
903
432
  var dateFieldRef = React.useRef(null);
904
-
905
433
  var _useWindowDimensions = utils.useWindowDimensions(),
906
- width = _useWindowDimensions.width;
907
-
434
+ width = _useWindowDimensions.width;
908
435
  var state = datepicker$1.useDatePickerState(_extends({}, rest, {
909
436
  minValue: minValue,
910
437
  maxValue: maxValue,
911
438
  value: value,
912
439
  onChange: onChange
913
440
  }));
914
-
915
441
  var _useDatePicker = datepicker.useDatePicker(_extends({
916
- isDisabled: isDisabled,
917
- minValue: minValue,
918
- maxValue: maxValue,
919
- autoFocus: true
920
- }, rest), state, datePickerRef),
921
- groupProps = _useDatePicker.groupProps,
922
- labelProps = _useDatePicker.labelProps,
923
- fieldProps = _useDatePicker.fieldProps,
924
- buttonProps = _useDatePicker.buttonProps,
925
- dialogProps = _useDatePicker.dialogProps,
926
- calendarProps = _useDatePicker.calendarProps; // calculations for floating-UI popover position
927
-
928
-
442
+ isDisabled: isDisabled,
443
+ minValue: minValue,
444
+ maxValue: maxValue
445
+ }, rest), state, datePickerRef),
446
+ groupProps = _useDatePicker.groupProps,
447
+ labelProps = _useDatePicker.labelProps,
448
+ fieldProps = _useDatePicker.fieldProps,
449
+ buttonProps = _useDatePicker.buttonProps,
450
+ dialogProps = _useDatePicker.dialogProps,
451
+ calendarProps = _useDatePicker.calendarProps;
452
+ // calculations for floating-UI popover position
929
453
  var _useFloating = reactDom.useFloating({
930
- whileElementsMounted: reactDom.autoUpdate,
931
- placement: 'bottom-start',
932
- middleware: [reactDom.offset(tokens.space.extraSmall), reactDom.flip(), reactDom.shift({
933
- padding: tokens.space.extraSmall
934
- })]
935
- }),
936
- x = _useFloating.x,
937
- y = _useFloating.y,
938
- reference = _useFloating.reference,
939
- floating = _useFloating.floating,
940
- strategy = _useFloating.strategy;
941
-
454
+ whileElementsMounted: reactDom.autoUpdate,
455
+ placement: 'bottom-start',
456
+ middleware: [reactDom.offset(tokens.space.extraSmall), reactDom.flip(), reactDom.shift({
457
+ padding: tokens.space.extraSmall
458
+ })]
459
+ }),
460
+ x = _useFloating.x,
461
+ y = _useFloating.y,
462
+ reference = _useFloating.reference,
463
+ floating = _useFloating.floating,
464
+ strategy = _useFloating.strategy;
942
465
  var onChangeCalendar = function onChangeCalendar(newSelectedDate) {
943
466
  // Necessary to avoid state update on unmounted component
944
467
  requestAnimationFrame(function () {
945
468
  calendarProps.onChange && calendarProps.onChange(newSelectedDate);
946
469
  });
947
470
  };
948
-
949
471
  utils.useOnClickOutside([calendarRef], function () {
950
472
  state.setOpen(false);
951
473
  });
952
474
  utils.useOnEscape(calendarRef, function () {
953
475
  state.setOpen(false);
954
476
  });
955
-
956
477
  var calendarSharedProps = _extends({}, dialogProps, calendarProps, {
957
478
  disabled: calendarProps.isDisabled,
958
479
  navigationDescription: navigationDescription,
@@ -961,7 +482,6 @@ var DatePickerBeta = function DatePickerBeta(_ref) {
961
482
  },
962
483
  onChange: onChangeCalendar
963
484
  });
964
-
965
485
  var useModal = width <= CALENDAR_MODAL_MAX_SCREEN_WIDTH && !disableModal;
966
486
  var popoverCalendar = React__default["default"].createElement("div", {
967
487
  // styling for floating-UI popover
@@ -1030,21 +550,20 @@ var DatePickerBeta = function DatePickerBeta(_ref) {
1030
550
  };
1031
551
 
1032
552
  var _excluded$2 = ["className", "style", "label", "onChange", "feedback", "variant", "disableLabelAnimation", "prepend"],
1033
- _excluded2$1 = ["onChange", "variant", "value"];
553
+ _excluded2$1 = ["onChange", "variant", "value"];
1034
554
  var NativeDatePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
1035
555
  var className = _ref.className,
1036
- style = _ref.style,
1037
- label = _ref.label,
1038
- onChange = _ref.onChange,
1039
- feedback = _ref.feedback,
1040
- variant = _ref.variant,
1041
- disableLabelAnimation = _ref.disableLabelAnimation,
1042
- _ref$prepend = _ref.prepend,
1043
- prepend = _ref$prepend === void 0 ? React__default["default"].createElement(icons.DateIcon, {
1044
- inline: true
1045
- }) : _ref$prepend,
1046
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
1047
-
556
+ style = _ref.style,
557
+ label = _ref.label,
558
+ onChange = _ref.onChange,
559
+ feedback = _ref.feedback,
560
+ variant = _ref.variant,
561
+ disableLabelAnimation = _ref.disableLabelAnimation,
562
+ _ref$prepend = _ref.prepend,
563
+ prepend = _ref$prepend === void 0 ? React__default["default"].createElement(icons.DateIcon, {
564
+ inline: true
565
+ }) : _ref$prepend,
566
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
1048
567
  var nativedatepickerId = utils.useRandomId('eds-nativetimepicker');
1049
568
  return React__default["default"].createElement(form.BaseFormControl, {
1050
569
  style: style,
@@ -1065,17 +584,14 @@ var NativeDatePicker = /*#__PURE__*/React__default["default"].forwardRef(functio
1065
584
  });
1066
585
  var NativeDatePickerBase = /*#__PURE__*/React__default["default"].forwardRef(function (_ref2, ref) {
1067
586
  var onChange = _ref2.onChange,
1068
- variant = _ref2.variant,
1069
- value = _ref2.value,
1070
- rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$1);
1071
-
587
+ variant = _ref2.variant,
588
+ value = _ref2.value,
589
+ rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$1);
1072
590
  var contextVariant = form.useVariant();
1073
591
  var currentVariant = variant || contextVariant;
1074
-
1075
592
  var _useInputGroupContext = form.useInputGroupContext(),
1076
- isDatepickerFilled = _useInputGroupContext.isFilled,
1077
- setFiller = _useInputGroupContext.setFilled;
1078
-
593
+ isDatepickerFilled = _useInputGroupContext.isFilled,
594
+ setFiller = _useInputGroupContext.setFilled;
1079
595
  utils.useOnMount(function () {
1080
596
  setFiller && !isDatepickerFilled && setFiller(true);
1081
597
  });
@@ -1086,19 +602,16 @@ var NativeDatePickerBase = /*#__PURE__*/React__default["default"].forwardRef(fun
1086
602
  setFiller && isDatepickerFilled && setFiller(false);
1087
603
  }
1088
604
  }, [value, setFiller, isDatepickerFilled]);
1089
-
1090
605
  var handleChange = function handleChange(event) {
1091
606
  if (form.isFilled(event.target)) {
1092
607
  setFiller && !isDatepickerFilled && setFiller(true);
1093
608
  } else {
1094
609
  setFiller && isDatepickerFilled && setFiller(false);
1095
610
  }
1096
-
1097
611
  if (onChange) {
1098
612
  onChange(event);
1099
613
  }
1100
614
  };
1101
-
1102
615
  return React__default["default"].createElement("input", _extends({
1103
616
  ref: ref,
1104
617
  "aria-invalid": currentVariant === 'error',
@@ -1111,10 +624,10 @@ var NativeDatePickerBase = /*#__PURE__*/React__default["default"].forwardRef(fun
1111
624
 
1112
625
  var TimePickerArrowButton = function TimePickerArrowButton(_ref) {
1113
626
  var direction = _ref.direction,
1114
- onClick = _ref.onClick,
1115
- disabled = _ref.disabled,
1116
- ariaLabel = _ref['aria-label'];
1117
- return React__default["default"].createElement(button.IconButton, {
627
+ onClick = _ref.onClick,
628
+ disabled = _ref.disabled,
629
+ ariaLabel = _ref['aria-label'];
630
+ return React__default["default"].createElement(button$1.IconButton, {
1118
631
  className: classNames__default["default"]('eds-timepicker__arrowbutton', "eds-timepicker__arrowbutton--" + direction, {
1119
632
  'eds-timepicker__arrowbutton--disabled': disabled
1120
633
  }),
@@ -1129,27 +642,25 @@ var TimePickerArrowButton = function TimePickerArrowButton(_ref) {
1129
642
  var _excluded$1 = ["selectedTime", "onChange", "disabled", "className", "style", "label", "labelTooltip", "feedback", "variant", "locale", "showTimeZone", "minuteIncrementForArrowButtons", "leftArrowButtonAriaLabel", "rightArrowButtonAriaLabel"];
1130
643
  var TimePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
1131
644
  var selectedTime = _ref.selectedTime,
1132
- onChange = _ref.onChange,
1133
- disabled = _ref.disabled,
1134
- className = _ref.className,
1135
- style = _ref.style,
1136
- label = _ref.label,
1137
- labelTooltip = _ref.labelTooltip,
1138
- feedback = _ref.feedback,
1139
- variant = _ref.variant,
1140
- customLocale = _ref.locale,
1141
- showTimeZone = _ref.showTimeZone,
1142
- _ref$minuteIncrementF = _ref.minuteIncrementForArrowButtons,
1143
- minuteIncrementForArrowButtons = _ref$minuteIncrementF === void 0 ? 30 : _ref$minuteIncrementF,
1144
- _ref$leftArrowButtonA = _ref.leftArrowButtonAriaLabel,
1145
- leftArrowButtonAriaLabel = _ref$leftArrowButtonA === void 0 ? "Trekk fra " + minuteIncrementForArrowButtons + " minutter" : _ref$leftArrowButtonA,
1146
- _ref$rightArrowButton = _ref.rightArrowButtonAriaLabel,
1147
- rightArrowButtonAriaLabel = _ref$rightArrowButton === void 0 ? "Legg til " + minuteIncrementForArrowButtons + " minutter" : _ref$rightArrowButton,
1148
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
1149
-
645
+ onChange = _ref.onChange,
646
+ disabled = _ref.disabled,
647
+ className = _ref.className,
648
+ style = _ref.style,
649
+ label = _ref.label,
650
+ labelTooltip = _ref.labelTooltip,
651
+ feedback = _ref.feedback,
652
+ variant = _ref.variant,
653
+ customLocale = _ref.locale,
654
+ showTimeZone = _ref.showTimeZone,
655
+ _ref$minuteIncrementF = _ref.minuteIncrementForArrowButtons,
656
+ minuteIncrementForArrowButtons = _ref$minuteIncrementF === void 0 ? 30 : _ref$minuteIncrementF,
657
+ _ref$leftArrowButtonA = _ref.leftArrowButtonAriaLabel,
658
+ leftArrowButtonAriaLabel = _ref$leftArrowButtonA === void 0 ? "Trekk fra " + minuteIncrementForArrowButtons + " minutter" : _ref$leftArrowButtonA,
659
+ _ref$rightArrowButton = _ref.rightArrowButtonAriaLabel,
660
+ rightArrowButtonAriaLabel = _ref$rightArrowButton === void 0 ? "Legg til " + minuteIncrementForArrowButtons + " minutter" : _ref$rightArrowButton,
661
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
1150
662
  var _useLocale = i18n.useLocale(),
1151
- locale = _useLocale.locale;
1152
-
663
+ locale = _useLocale.locale;
1153
664
  if (customLocale) locale = customLocale;
1154
665
  var state = datepicker$1.useTimeFieldState(_extends({
1155
666
  onChange: onChange,
@@ -1160,15 +671,12 @@ var TimePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
1160
671
  isDisabled: disabled
1161
672
  }, rest));
1162
673
  var timeFieldRef = React.useRef(null);
1163
-
1164
674
  var _useTimeField = datepicker.useTimeField(_extends({}, rest, {
1165
- label: label
1166
- }), state, timeFieldRef),
1167
- labelProps = _useTimeField.labelProps,
1168
- fieldProps = _useTimeField.fieldProps;
1169
-
675
+ label: label
676
+ }), state, timeFieldRef),
677
+ labelProps = _useTimeField.labelProps,
678
+ fieldProps = _useTimeField.fieldProps;
1170
679
  var id = utils.useRandomId('timepicker');
1171
-
1172
680
  var handleOnClickArrowButton = function handleOnClickArrowButton(minutes) {
1173
681
  if (someSegmentIsUndefined) {
1174
682
  setTimeToNearestMinuteIncrement();
@@ -1176,11 +684,9 @@ var TimePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
1176
684
  addMinutesToSelectedTime(minutes);
1177
685
  }
1178
686
  };
1179
-
1180
687
  var someSegmentIsUndefined = state.segments.some(function (segment) {
1181
688
  return segment.text === '––';
1182
689
  });
1183
-
1184
690
  var setTimeToNearestMinuteIncrement = function setTimeToNearestMinuteIncrement() {
1185
691
  var currentTime = date.now(date.getLocalTimeZone());
1186
692
  var roundedMinute = Math.floor(currentTime.minute / minuteIncrementForArrowButtons) * minuteIncrementForArrowButtons;
@@ -1189,15 +695,12 @@ var TimePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
1189
695
  });
1190
696
  onChange(newTime);
1191
697
  };
1192
-
1193
698
  var addMinutesToSelectedTime = function addMinutesToSelectedTime(minutes) {
1194
699
  var _state$value;
1195
-
1196
700
  state.value && state.setValue((_state$value = state.value) == null ? void 0 : _state$value.add({
1197
701
  minutes: minutes
1198
702
  }));
1199
703
  };
1200
-
1201
704
  return React__default["default"].createElement(i18n.I18nProvider, {
1202
705
  locale: locale
1203
706
  }, React__default["default"].createElement("div", {
@@ -1239,17 +742,16 @@ var TimePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
1239
742
  });
1240
743
 
1241
744
  var _excluded = ["className", "style", "onChange", "label", "feedback", "variant", "prepend"],
1242
- _excluded2 = ["onChange", "value"];
745
+ _excluded2 = ["onChange", "value"];
1243
746
  var NativeTimePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
1244
747
  var className = _ref.className,
1245
- style = _ref.style,
1246
- onChange = _ref.onChange,
1247
- label = _ref.label,
1248
- feedback = _ref.feedback,
1249
- variant = _ref.variant,
1250
- prepend = _ref.prepend,
1251
- rest = _objectWithoutPropertiesLoose(_ref, _excluded);
1252
-
748
+ style = _ref.style,
749
+ onChange = _ref.onChange,
750
+ label = _ref.label,
751
+ feedback = _ref.feedback,
752
+ variant = _ref.variant,
753
+ prepend = _ref.prepend,
754
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded);
1253
755
  var nativetimepickerId = utils.useRandomId('eds-native-timepicker');
1254
756
  return React__default["default"].createElement(form.BaseFormControl, {
1255
757
  style: style,
@@ -1268,16 +770,13 @@ var NativeTimePicker = /*#__PURE__*/React__default["default"].forwardRef(functio
1268
770
  });
1269
771
  var NativeTimePickerBase = /*#__PURE__*/React__default["default"].forwardRef(function (_ref2, ref) {
1270
772
  var onChange = _ref2.onChange,
1271
- value = _ref2.value,
1272
- rest = _objectWithoutPropertiesLoose(_ref2, _excluded2);
1273
-
773
+ value = _ref2.value,
774
+ rest = _objectWithoutPropertiesLoose(_ref2, _excluded2);
1274
775
  var contextVariant = form.useVariant();
1275
776
  var currentVariant = rest.variant || contextVariant;
1276
-
1277
777
  var _useInputGroupContext = form.useInputGroupContext(),
1278
- isTimepickerFilled = _useInputGroupContext.isFilled,
1279
- setFiller = _useInputGroupContext.setFilled;
1280
-
778
+ isTimepickerFilled = _useInputGroupContext.isFilled,
779
+ setFiller = _useInputGroupContext.setFilled;
1281
780
  utils.useOnMount(function () {
1282
781
  setFiller && !isTimepickerFilled && setFiller(true);
1283
782
  });
@@ -1288,19 +787,16 @@ var NativeTimePickerBase = /*#__PURE__*/React__default["default"].forwardRef(fun
1288
787
  setFiller && isTimepickerFilled && setFiller(false);
1289
788
  }
1290
789
  }, [value, setFiller, isTimepickerFilled]);
1291
-
1292
790
  var handleChange = function handleChange(event) {
1293
791
  if (form.isFilled(event.target)) {
1294
792
  setFiller && !isTimepickerFilled && setFiller(true);
1295
793
  } else {
1296
794
  setFiller && isTimepickerFilled && setFiller(false);
1297
795
  }
1298
-
1299
796
  if (onChange) {
1300
797
  onChange(event);
1301
798
  }
1302
799
  };
1303
-
1304
800
  return React__default["default"].createElement("input", _extends({
1305
801
  ref: ref,
1306
802
  "aria-invalid": currentVariant === 'error',
@@ -1316,7 +812,6 @@ utils.warnAboutMissingStyles('datepicker', 'form', 'icons');
1316
812
  exports.Calendar = Calendar;
1317
813
  exports.DateField = DateField;
1318
814
  exports.DatePicker = DatePicker;
1319
- exports.DatePickerBeta = DatePickerBeta;
1320
815
  exports.NativeDatePicker = NativeDatePicker;
1321
816
  exports.NativeTimePicker = NativeTimePicker;
1322
817
  exports.TimePicker = TimePicker;