@entur/datepicker 4.0.0-RC.1 → 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.
@@ -18,57 +18,47 @@ import { space, zIndexes } from '@entur/tokens';
18
18
  import { Modal } from '@entur/modal';
19
19
 
20
20
  function _extends() {
21
- _extends = Object.assign || function (target) {
21
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
22
22
  for (var i = 1; i < arguments.length; i++) {
23
23
  var source = arguments[i];
24
-
25
24
  for (var key in source) {
26
25
  if (Object.prototype.hasOwnProperty.call(source, key)) {
27
26
  target[key] = source[key];
28
27
  }
29
28
  }
30
29
  }
31
-
32
30
  return target;
33
31
  };
34
-
35
32
  return _extends.apply(this, arguments);
36
33
  }
37
-
38
34
  function _objectWithoutPropertiesLoose(source, excluded) {
39
35
  if (source == null) return {};
40
36
  var target = {};
41
37
  var sourceKeys = Object.keys(source);
42
38
  var key, i;
43
-
44
39
  for (i = 0; i < sourceKeys.length; i++) {
45
40
  key = sourceKeys[i];
46
41
  if (excluded.indexOf(key) >= 0) continue;
47
42
  target[key] = source[key];
48
43
  }
49
-
50
44
  return target;
51
45
  }
52
46
 
53
47
  var FieldSegment = function FieldSegment(_ref) {
54
48
  var segment = _ref.segment,
55
- state = _ref.state;
49
+ state = _ref.state;
56
50
  var ref = useRef(null);
57
-
58
51
  var _useDateSegment = useDateSegment(segment, state, ref),
59
- segmentProps = _useDateSegment.segmentProps;
60
-
52
+ segmentProps = _useDateSegment.segmentProps;
61
53
  var is12HourFormatted = state.segments.some(function (segment) {
62
54
  return segment.text === 'AM' || segment.text === 'PM';
63
55
  });
64
-
65
56
  var segmentDisplayText = function segmentDisplayText() {
66
- if (is12HourFormatted) return segment.text; // if number add '0' padding to start when one digit
67
-
57
+ if (is12HourFormatted) return segment.text;
58
+ // if number add '0' padding to start when one digit
68
59
  if (segment.text.match(/\d+/)) return segment.text.padStart(2, '0');
69
60
  return segment.text;
70
61
  };
71
-
72
62
  return React.createElement("div", _extends({}, segmentProps, {
73
63
  ref: ref,
74
64
  className: classNames('eds-date-and-time-field__segment', {
@@ -88,24 +78,19 @@ var FieldSegment = function FieldSegment(_ref) {
88
78
  * @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.
89
79
  * @returns {Time | CalendarDateTime | ZonedDateTime | CalendarDate} et av Time- eller DateValue-objektene med verdier fra date
90
80
  */
91
-
92
81
  var nativeDateToTimeOrDateValue = function nativeDateToTimeOrDateValue(date, noDateOnlyTime, noTimeOnlyDate, timeZone, offset) {
93
82
  if (noDateOnlyTime === void 0) {
94
83
  noDateOnlyTime = false;
95
84
  }
96
-
97
85
  if (noTimeOnlyDate === void 0) {
98
86
  noTimeOnlyDate = false;
99
87
  }
100
-
101
88
  if (timeZone) {
102
89
  if (offset) {
103
90
  return new ZonedDateTime(date.getFullYear(), date.getMonth() + 1, date.getDate(), timeZone, offset, date.getHours(), date.getMinutes(), date.getSeconds());
104
91
  }
105
-
106
92
  return parseAbsolute(date.toISOString(), timeZone);
107
93
  }
108
-
109
94
  if (noDateOnlyTime) return new Time(date.getHours(), date.getMinutes(), date.getSeconds(), 0);
110
95
  if (noTimeOnlyDate) return new CalendarDate(date.getFullYear(), date.getMonth() + 1, date.getDate());
111
96
  return new CalendarDateTime(date.getFullYear(), date.getMonth() + 1, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());
@@ -117,54 +102,55 @@ var nativeDateToTimeOrDateValue = function nativeDateToTimeOrDateValue(date, noD
117
102
  * @returns {Date} et Date-objekt med verdier fra time
118
103
  */
119
104
  // This function uses a lot of @ts-expect-error to make it work with all Date- and TimeValue types. Sorry ...
120
-
121
105
  var timeOrDateValueToNativeDate = function timeOrDateValueToNativeDate(value, timeZoneForCalendarDateTime) {
122
106
  // @ts-expect-error .day does not exist on Time-object
123
107
  if (!value.day) {
124
108
  // type is Time
125
- var date = new Date(); // @ts-expect-error hour does not exist on CalendarDate
126
-
127
- date.setHours(value.hour); // @ts-expect-error minute does not exist on CalendarDate
128
-
129
- date.setMinutes(value.minute); // @ts-expect-error second does not exist on CalendarDate
130
-
109
+ var date = new Date();
110
+ // @ts-expect-error hour does not exist on CalendarDate
111
+ date.setHours(value.hour);
112
+ // @ts-expect-error minute does not exist on CalendarDate
113
+ date.setMinutes(value.minute);
114
+ // @ts-expect-error second does not exist on CalendarDate
131
115
  date.setSeconds(value.second);
132
116
  return date;
133
- } // @ts-expect-error .day does not exist on Time-object
134
-
135
-
117
+ }
118
+ // @ts-expect-error .day does not exist on Time-object
136
119
  if (!value.hour) {
137
120
  // type is CalendarDate
138
121
  // @ts-expect-error .toDate(timeZone) does not exist in type Time
139
122
  return value.toDate(timeZoneForCalendarDateTime != null ? timeZoneForCalendarDateTime : getLocalTimeZone());
140
- } // @ts-expect-error .timeZone does not exist in type Time and CalendarDateTime
141
-
142
-
123
+ }
124
+ // @ts-expect-error .timeZone does not exist in type Time and CalendarDateTime
143
125
  if (!value.timeZone) {
144
126
  // type is CalendarDateTime
145
- if (timeZoneForCalendarDateTime) // @ts-expect-error .toDate(timeZone) does not exist in type Time
127
+ if (timeZoneForCalendarDateTime)
128
+ // @ts-expect-error .toDate(timeZone) does not exist in type Time
146
129
  return value.toDate(timeZoneForCalendarDateTime);
147
- return new Date( // @ts-expect-error not in type Time
148
- value.year, // @ts-expect-error not in type Time
149
- value.month - 1, // @ts-expect-error not in type Time
150
- value.day, // @ts-expect-error not in type CalendarDate
151
- value.hour, // @ts-expect-error not in type CalendarDate
152
- value.minute, // @ts-expect-error not in type CalendarDate
130
+ return new Date(
131
+ // @ts-expect-error not in type Time
132
+ value.year,
133
+ // @ts-expect-error not in type Time
134
+ value.month - 1,
135
+ // @ts-expect-error not in type Time
136
+ value.day,
137
+ // @ts-expect-error not in type CalendarDate
138
+ value.hour,
139
+ // @ts-expect-error not in type CalendarDate
140
+ value.minute,
141
+ // @ts-expect-error not in type CalendarDate
153
142
  value.second);
154
- } // @ts-expect-error .toDate() does not exist in type Time or CalendarDateTime
155
-
156
-
143
+ }
144
+ // @ts-expect-error .toDate() does not exist in type Time or CalendarDateTime
157
145
  return value.toDate();
158
146
  };
159
147
  var createCalendar = function createCalendar(identifier) {
160
148
  if (identifier === void 0) {
161
149
  identifier = 'gregory';
162
150
  }
163
-
164
151
  switch (identifier) {
165
152
  case 'gregory':
166
153
  return new GregorianCalendar();
167
-
168
154
  default:
169
155
  throw new Error("Unsupported calendar " + identifier);
170
156
  }
@@ -177,29 +163,27 @@ var ariaLabelIfNorwegian = function ariaLabelIfNorwegian(norwegianAriaLabel, loc
177
163
  var _excluded$8 = ["selectedDate", "label", "locale", "showTimeZone", "showTime", "granularity", "disabled", "variant", "feedback", "validationVariant", "validationFeedback", "labelTooltip", "style", "className", "labelProps", "append"];
178
164
  var DateField = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
179
165
  var value = _ref.selectedDate,
180
- label = _ref.label,
181
- customLocale = _ref.locale,
182
- showTimeZone = _ref.showTimeZone,
183
- showTime = _ref.showTime,
184
- _ref$granularity = _ref.granularity,
185
- granularity = _ref$granularity === void 0 ? 'day' : _ref$granularity,
186
- disabled = _ref.disabled,
187
- variant = _ref.variant,
188
- feedback = _ref.feedback,
189
- _ref$validationVarian = _ref.validationVariant,
190
- validationVariant = _ref$validationVarian === void 0 ? 'error' : _ref$validationVarian,
191
- _ref$validationFeedba = _ref.validationFeedback,
192
- validationFeedback = _ref$validationFeedba === void 0 ? 'Ugyldig dato' : _ref$validationFeedba,
193
- labelTooltip = _ref.labelTooltip,
194
- style = _ref.style,
195
- className = _ref.className,
196
- parentLabelProps = _ref.labelProps,
197
- append = _ref.append,
198
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);
199
-
166
+ label = _ref.label,
167
+ customLocale = _ref.locale,
168
+ showTimeZone = _ref.showTimeZone,
169
+ showTime = _ref.showTime,
170
+ _ref$granularity = _ref.granularity,
171
+ granularity = _ref$granularity === void 0 ? 'day' : _ref$granularity,
172
+ disabled = _ref.disabled,
173
+ variant = _ref.variant,
174
+ feedback = _ref.feedback,
175
+ _ref$validationVarian = _ref.validationVariant,
176
+ validationVariant = _ref$validationVarian === void 0 ? 'error' : _ref$validationVarian,
177
+ _ref$validationFeedba = _ref.validationFeedback,
178
+ validationFeedback = _ref$validationFeedba === void 0 ? 'Ugyldig dato' : _ref$validationFeedba,
179
+ labelTooltip = _ref.labelTooltip,
180
+ style = _ref.style,
181
+ className = _ref.className,
182
+ parentLabelProps = _ref.labelProps,
183
+ append = _ref.append,
184
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);
200
185
  var _useLocale = useLocale(),
201
- locale = _useLocale.locale;
202
-
186
+ locale = _useLocale.locale;
203
187
  var state = useDateFieldState(_extends({}, rest, {
204
188
  locale: customLocale != null ? customLocale : locale,
205
189
  createCalendar: createCalendar,
@@ -208,14 +192,12 @@ var DateField = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
208
192
  granularity: showTime ? 'minute' : granularity
209
193
  }));
210
194
  var dateFieldRef = useRef(null);
211
-
212
195
  var _useDateField = useDateField(_extends({}, rest, {
213
- label: label,
214
- isDisabled: disabled || rest.isDisabled
215
- }), state, dateFieldRef),
216
- labelProps = _useDateField.labelProps,
217
- fieldProps = _useDateField.fieldProps;
218
-
196
+ label: label,
197
+ isDisabled: disabled || rest.isDisabled
198
+ }), state, dateFieldRef),
199
+ labelProps = _useDateField.labelProps,
200
+ fieldProps = _useDateField.fieldProps;
219
201
  var id = useRandomId('datefield');
220
202
  return React.createElement(ConditionalWrapper, {
221
203
  condition: customLocale !== undefined,
@@ -251,15 +233,12 @@ var DateField = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
251
233
  var _excluded$7 = ["children", "className", "style"];
252
234
  var CalendarButton = function CalendarButton(_ref) {
253
235
  var children = _ref.children,
254
- className = _ref.className,
255
- style = _ref.style,
256
- props = _objectWithoutPropertiesLoose(_ref, _excluded$7);
257
-
236
+ className = _ref.className,
237
+ style = _ref.style,
238
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$7);
258
239
  var ref = useRef(null);
259
-
260
240
  var _useButton = useButton(props, ref),
261
- buttonProps = _useButton.buttonProps;
262
-
241
+ buttonProps = _useButton.buttonProps;
263
242
  return React.createElement(IconButton, _extends({}, buttonProps, {
264
243
  ref: ref,
265
244
  className: className,
@@ -270,28 +249,24 @@ var CalendarButton = function CalendarButton(_ref) {
270
249
  var _excluded$6 = ["state", "date", "onSelectedCellClick"];
271
250
  var CalendarCell = function CalendarCell(_ref) {
272
251
  var _state$timeZone;
273
-
274
252
  var state = _ref.state,
275
- date = _ref.date,
276
- _ref$onSelectedCellCl = _ref.onSelectedCellClick,
277
- onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
278
- return;
279
- } : _ref$onSelectedCellCl,
280
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
281
-
253
+ date = _ref.date,
254
+ _ref$onSelectedCellCl = _ref.onSelectedCellClick,
255
+ onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
256
+ return;
257
+ } : _ref$onSelectedCellCl,
258
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
282
259
  var cellRef = useRef(null);
283
-
284
260
  var _useCalendarCell = useCalendarCell({
285
- date: date
286
- }, state, cellRef),
287
- cellProps = _useCalendarCell.cellProps,
288
- buttonProps = _useCalendarCell.buttonProps,
289
- isSelected = _useCalendarCell.isSelected,
290
- isOutsideVisibleRange = _useCalendarCell.isOutsideVisibleRange,
291
- isDisabled = _useCalendarCell.isDisabled,
292
- isUnavailable = _useCalendarCell.isUnavailable,
293
- formattedDate = _useCalendarCell.formattedDate;
294
-
261
+ date: date
262
+ }, state, cellRef),
263
+ cellProps = _useCalendarCell.cellProps,
264
+ buttonProps = _useCalendarCell.buttonProps,
265
+ isSelected = _useCalendarCell.isSelected,
266
+ isOutsideVisibleRange = _useCalendarCell.isOutsideVisibleRange,
267
+ isDisabled = _useCalendarCell.isDisabled,
268
+ isUnavailable = _useCalendarCell.isUnavailable,
269
+ formattedDate = _useCalendarCell.formattedDate;
295
270
  return React.createElement("td", _extends({}, cellProps, {
296
271
  className: "eds-datepicker__calendar__grid__cell__td"
297
272
  }), React.createElement("div", _extends({}, buttonProps, {
@@ -314,26 +289,21 @@ var CalendarCell = function CalendarCell(_ref) {
314
289
  var _excluded$5 = ["state", "navigationDescription", "onSelectedCellClick"];
315
290
  var CalendarGrid = function CalendarGrid(_ref) {
316
291
  var state = _ref.state,
317
- navigationDescription = _ref.navigationDescription,
318
- _ref$onSelectedCellCl = _ref.onSelectedCellClick,
319
- onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
320
- return;
321
- } : _ref$onSelectedCellCl,
322
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
323
-
292
+ navigationDescription = _ref.navigationDescription,
293
+ _ref$onSelectedCellCl = _ref.onSelectedCellClick,
294
+ onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
295
+ return;
296
+ } : _ref$onSelectedCellCl,
297
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
324
298
  var calendarGridId = useRandomId('eds-calendar');
325
-
326
299
  var _useLocale = useLocale(),
327
- locale = _useLocale.locale;
328
-
300
+ locale = _useLocale.locale;
329
301
  var _useCalendarGrid = useCalendarGrid(rest, state),
330
- gridProps = _useCalendarGrid.gridProps,
331
- headerProps = _useCalendarGrid.headerProps,
332
- weekDays = _useCalendarGrid.weekDays;
333
-
302
+ gridProps = _useCalendarGrid.gridProps,
303
+ headerProps = _useCalendarGrid.headerProps,
304
+ weekDays = _useCalendarGrid.weekDays;
334
305
  var weeksInMonth = getWeeksInMonth(state.visibleRange.start, locale);
335
306
  var weeksArray = Array.from(Array(weeksInMonth).keys());
336
-
337
307
  var weekDaysMapped = function weekDaysMapped() {
338
308
  if (locale.toLowerCase() === 'no-no' || locale.toLowerCase() === 'no') return ['ma', 'ti', 'on', 'to', 'fr', 'lø', 'sø'];
339
309
  if (weekDays.toString() === 'M,T,W,T,F,S,S') return ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];
@@ -341,13 +311,11 @@ var CalendarGrid = function CalendarGrid(_ref) {
341
311
  return day.toLowerCase();
342
312
  });
343
313
  };
344
-
345
314
  var getNavigationDescription = function getNavigationDescription() {
346
315
  if (navigationDescription) return navigationDescription;
347
316
  if (locale.toLowerCase().includes('en')) return 'Use the arrow keys to navigate between dates';
348
317
  return 'Bruk piltastene til å navigere mellom datoer';
349
318
  };
350
-
351
319
  return React.createElement(React.Fragment, null, React.createElement("table", _extends({}, gridProps, {
352
320
  cellSpacing: "0",
353
321
  className: "eds-datepicker__calendar__grid"
@@ -377,30 +345,26 @@ var CalendarGrid = function CalendarGrid(_ref) {
377
345
  var _excluded$4 = ["selectedDate", "onChange", "locale", "style", "children", "navigationDescription", "onSelectedCellClick"];
378
346
  var Calendar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
379
347
  var onChange = _ref.onChange,
380
- customLocale = _ref.locale,
381
- style = _ref.style,
382
- navigationDescription = _ref.navigationDescription,
383
- _ref$onSelectedCellCl = _ref.onSelectedCellClick,
384
- onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
385
- return;
386
- } : _ref$onSelectedCellCl,
387
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
388
-
348
+ customLocale = _ref.locale,
349
+ style = _ref.style,
350
+ navigationDescription = _ref.navigationDescription,
351
+ _ref$onSelectedCellCl = _ref.onSelectedCellClick,
352
+ onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
353
+ return;
354
+ } : _ref$onSelectedCellCl,
355
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
389
356
  var _useLocale = useLocale(),
390
- locale = _useLocale.locale;
391
-
357
+ locale = _useLocale.locale;
392
358
  var state = useCalendarState(_extends({}, rest, {
393
359
  onChange: onChange,
394
360
  locale: customLocale != null ? customLocale : locale,
395
361
  createCalendar: createCalendar
396
362
  }));
397
-
398
363
  var _useCalendar = useCalendar(rest, state),
399
- calendarProps = _useCalendar.calendarProps,
400
- prevButtonProps = _useCalendar.prevButtonProps,
401
- nextButtonProps = _useCalendar.nextButtonProps,
402
- title = _useCalendar.title;
403
-
364
+ calendarProps = _useCalendar.calendarProps,
365
+ prevButtonProps = _useCalendar.prevButtonProps,
366
+ nextButtonProps = _useCalendar.nextButtonProps,
367
+ title = _useCalendar.title;
404
368
  return React.createElement(ConditionalWrapper, {
405
369
  condition: customLocale,
406
370
  wrapper: function wrapper(child) {
@@ -432,83 +396,74 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
432
396
  var _excluded$3 = ["selectedDate", "onChange", "locale", "disabled", "showTime", "showTimeZone", "className", "style", "variant", "feedback", "validationVariant", "validationFeedback", "disableModal", "labelTooltip", "navigationDescription", "minDate", "maxDate", "modalTreshold"];
433
397
  var DatePicker = function DatePicker(_ref) {
434
398
  var value = _ref.selectedDate,
435
- onChange = _ref.onChange,
436
- locale = _ref.locale,
437
- isDisabled = _ref.disabled,
438
- showTime = _ref.showTime,
439
- _ref$showTimeZone = _ref.showTimeZone,
440
- showTimeZone = _ref$showTimeZone === void 0 ? false : _ref$showTimeZone,
441
- className = _ref.className,
442
- variant = _ref.variant,
443
- feedback = _ref.feedback,
444
- validationVariant = _ref.validationVariant,
445
- validationFeedback = _ref.validationFeedback,
446
- _ref$disableModal = _ref.disableModal,
447
- disableModal = _ref$disableModal === void 0 ? false : _ref$disableModal,
448
- labelTooltip = _ref.labelTooltip,
449
- navigationDescription = _ref.navigationDescription,
450
- minValue = _ref.minDate,
451
- maxValue = _ref.maxDate,
452
- _ref$modalTreshold = _ref.modalTreshold,
453
- modalTreshold = _ref$modalTreshold === void 0 ? 1000 : _ref$modalTreshold,
454
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
455
-
399
+ onChange = _ref.onChange,
400
+ locale = _ref.locale,
401
+ isDisabled = _ref.disabled,
402
+ showTime = _ref.showTime,
403
+ _ref$showTimeZone = _ref.showTimeZone,
404
+ showTimeZone = _ref$showTimeZone === void 0 ? false : _ref$showTimeZone,
405
+ className = _ref.className,
406
+ variant = _ref.variant,
407
+ feedback = _ref.feedback,
408
+ validationVariant = _ref.validationVariant,
409
+ validationFeedback = _ref.validationFeedback,
410
+ _ref$disableModal = _ref.disableModal,
411
+ disableModal = _ref$disableModal === void 0 ? false : _ref$disableModal,
412
+ labelTooltip = _ref.labelTooltip,
413
+ navigationDescription = _ref.navigationDescription,
414
+ minValue = _ref.minDate,
415
+ maxValue = _ref.maxDate,
416
+ _ref$modalTreshold = _ref.modalTreshold,
417
+ modalTreshold = _ref$modalTreshold === void 0 ? 1000 : _ref$modalTreshold,
418
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
456
419
  var CALENDAR_MODAL_MAX_SCREEN_WIDTH = modalTreshold;
457
420
  var datePickerRef = useRef(null);
458
421
  var calendarRef = useRef(null);
459
422
  var dateFieldRef = useRef(null);
460
-
461
423
  var _useWindowDimensions = useWindowDimensions(),
462
- width = _useWindowDimensions.width;
463
-
424
+ width = _useWindowDimensions.width;
464
425
  var state = useDatePickerState(_extends({}, rest, {
465
426
  minValue: minValue,
466
427
  maxValue: maxValue,
467
428
  value: value,
468
429
  onChange: onChange
469
430
  }));
470
-
471
431
  var _useDatePicker = useDatePicker(_extends({
472
- isDisabled: isDisabled,
473
- minValue: minValue,
474
- maxValue: maxValue,
475
- autoFocus: true
476
- }, rest), state, datePickerRef),
477
- groupProps = _useDatePicker.groupProps,
478
- labelProps = _useDatePicker.labelProps,
479
- fieldProps = _useDatePicker.fieldProps,
480
- buttonProps = _useDatePicker.buttonProps,
481
- dialogProps = _useDatePicker.dialogProps,
482
- calendarProps = _useDatePicker.calendarProps; // calculations for floating-UI popover position
483
-
484
-
432
+ isDisabled: isDisabled,
433
+ minValue: minValue,
434
+ maxValue: maxValue
435
+ }, rest), state, datePickerRef),
436
+ groupProps = _useDatePicker.groupProps,
437
+ labelProps = _useDatePicker.labelProps,
438
+ fieldProps = _useDatePicker.fieldProps,
439
+ buttonProps = _useDatePicker.buttonProps,
440
+ dialogProps = _useDatePicker.dialogProps,
441
+ calendarProps = _useDatePicker.calendarProps;
442
+ // calculations for floating-UI popover position
485
443
  var _useFloating = useFloating({
486
- whileElementsMounted: autoUpdate,
487
- placement: 'bottom-start',
488
- middleware: [offset(space.extraSmall), flip(), shift({
489
- padding: space.extraSmall
490
- })]
491
- }),
492
- x = _useFloating.x,
493
- y = _useFloating.y,
494
- reference = _useFloating.reference,
495
- floating = _useFloating.floating,
496
- strategy = _useFloating.strategy;
497
-
444
+ whileElementsMounted: autoUpdate,
445
+ placement: 'bottom-start',
446
+ middleware: [offset(space.extraSmall), flip(), shift({
447
+ padding: space.extraSmall
448
+ })]
449
+ }),
450
+ x = _useFloating.x,
451
+ y = _useFloating.y,
452
+ reference = _useFloating.reference,
453
+ floating = _useFloating.floating,
454
+ strategy = _useFloating.strategy;
498
455
  var onChangeCalendar = function onChangeCalendar(newSelectedDate) {
499
456
  // Necessary to avoid state update on unmounted component
500
457
  requestAnimationFrame(function () {
501
458
  calendarProps.onChange && calendarProps.onChange(newSelectedDate);
502
459
  });
503
460
  };
504
-
505
461
  useOnClickOutside([calendarRef], function () {
506
462
  state.setOpen(false);
507
463
  });
508
464
  useOnEscape(calendarRef, function () {
509
465
  state.setOpen(false);
510
466
  });
511
-
512
467
  var calendarSharedProps = _extends({}, dialogProps, calendarProps, {
513
468
  disabled: calendarProps.isDisabled,
514
469
  navigationDescription: navigationDescription,
@@ -517,7 +472,6 @@ var DatePicker = function DatePicker(_ref) {
517
472
  },
518
473
  onChange: onChangeCalendar
519
474
  });
520
-
521
475
  var useModal = width <= CALENDAR_MODAL_MAX_SCREEN_WIDTH && !disableModal;
522
476
  var popoverCalendar = React.createElement("div", {
523
477
  // styling for floating-UI popover
@@ -586,21 +540,20 @@ var DatePicker = function DatePicker(_ref) {
586
540
  };
587
541
 
588
542
  var _excluded$2 = ["className", "style", "label", "onChange", "feedback", "variant", "disableLabelAnimation", "prepend"],
589
- _excluded2$1 = ["onChange", "variant", "value"];
543
+ _excluded2$1 = ["onChange", "variant", "value"];
590
544
  var NativeDatePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
591
545
  var className = _ref.className,
592
- style = _ref.style,
593
- label = _ref.label,
594
- onChange = _ref.onChange,
595
- feedback = _ref.feedback,
596
- variant = _ref.variant,
597
- disableLabelAnimation = _ref.disableLabelAnimation,
598
- _ref$prepend = _ref.prepend,
599
- prepend = _ref$prepend === void 0 ? React.createElement(DateIcon, {
600
- inline: true
601
- }) : _ref$prepend,
602
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
603
-
546
+ style = _ref.style,
547
+ label = _ref.label,
548
+ onChange = _ref.onChange,
549
+ feedback = _ref.feedback,
550
+ variant = _ref.variant,
551
+ disableLabelAnimation = _ref.disableLabelAnimation,
552
+ _ref$prepend = _ref.prepend,
553
+ prepend = _ref$prepend === void 0 ? React.createElement(DateIcon, {
554
+ inline: true
555
+ }) : _ref$prepend,
556
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
604
557
  var nativedatepickerId = useRandomId('eds-nativetimepicker');
605
558
  return React.createElement(BaseFormControl, {
606
559
  style: style,
@@ -621,17 +574,14 @@ var NativeDatePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
621
574
  });
622
575
  var NativeDatePickerBase = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
623
576
  var onChange = _ref2.onChange,
624
- variant = _ref2.variant,
625
- value = _ref2.value,
626
- rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$1);
627
-
577
+ variant = _ref2.variant,
578
+ value = _ref2.value,
579
+ rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$1);
628
580
  var contextVariant = useVariant();
629
581
  var currentVariant = variant || contextVariant;
630
-
631
582
  var _useInputGroupContext = useInputGroupContext(),
632
- isDatepickerFilled = _useInputGroupContext.isFilled,
633
- setFiller = _useInputGroupContext.setFilled;
634
-
583
+ isDatepickerFilled = _useInputGroupContext.isFilled,
584
+ setFiller = _useInputGroupContext.setFilled;
635
585
  useOnMount(function () {
636
586
  setFiller && !isDatepickerFilled && setFiller(true);
637
587
  });
@@ -642,19 +592,16 @@ var NativeDatePickerBase = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
642
592
  setFiller && isDatepickerFilled && setFiller(false);
643
593
  }
644
594
  }, [value, setFiller, isDatepickerFilled]);
645
-
646
595
  var handleChange = function handleChange(event) {
647
596
  if (isFilled(event.target)) {
648
597
  setFiller && !isDatepickerFilled && setFiller(true);
649
598
  } else {
650
599
  setFiller && isDatepickerFilled && setFiller(false);
651
600
  }
652
-
653
601
  if (onChange) {
654
602
  onChange(event);
655
603
  }
656
604
  };
657
-
658
605
  return React.createElement("input", _extends({
659
606
  ref: ref,
660
607
  "aria-invalid": currentVariant === 'error',
@@ -667,9 +614,9 @@ var NativeDatePickerBase = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
667
614
 
668
615
  var TimePickerArrowButton = function TimePickerArrowButton(_ref) {
669
616
  var direction = _ref.direction,
670
- onClick = _ref.onClick,
671
- disabled = _ref.disabled,
672
- ariaLabel = _ref['aria-label'];
617
+ onClick = _ref.onClick,
618
+ disabled = _ref.disabled,
619
+ ariaLabel = _ref['aria-label'];
673
620
  return React.createElement(IconButton, {
674
621
  className: classNames('eds-timepicker__arrowbutton', "eds-timepicker__arrowbutton--" + direction, {
675
622
  'eds-timepicker__arrowbutton--disabled': disabled
@@ -685,27 +632,25 @@ var TimePickerArrowButton = function TimePickerArrowButton(_ref) {
685
632
  var _excluded$1 = ["selectedTime", "onChange", "disabled", "className", "style", "label", "labelTooltip", "feedback", "variant", "locale", "showTimeZone", "minuteIncrementForArrowButtons", "leftArrowButtonAriaLabel", "rightArrowButtonAriaLabel"];
686
633
  var TimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
687
634
  var selectedTime = _ref.selectedTime,
688
- onChange = _ref.onChange,
689
- disabled = _ref.disabled,
690
- className = _ref.className,
691
- style = _ref.style,
692
- label = _ref.label,
693
- labelTooltip = _ref.labelTooltip,
694
- feedback = _ref.feedback,
695
- variant = _ref.variant,
696
- customLocale = _ref.locale,
697
- showTimeZone = _ref.showTimeZone,
698
- _ref$minuteIncrementF = _ref.minuteIncrementForArrowButtons,
699
- minuteIncrementForArrowButtons = _ref$minuteIncrementF === void 0 ? 30 : _ref$minuteIncrementF,
700
- _ref$leftArrowButtonA = _ref.leftArrowButtonAriaLabel,
701
- leftArrowButtonAriaLabel = _ref$leftArrowButtonA === void 0 ? "Trekk fra " + minuteIncrementForArrowButtons + " minutter" : _ref$leftArrowButtonA,
702
- _ref$rightArrowButton = _ref.rightArrowButtonAriaLabel,
703
- rightArrowButtonAriaLabel = _ref$rightArrowButton === void 0 ? "Legg til " + minuteIncrementForArrowButtons + " minutter" : _ref$rightArrowButton,
704
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
705
-
635
+ onChange = _ref.onChange,
636
+ disabled = _ref.disabled,
637
+ className = _ref.className,
638
+ style = _ref.style,
639
+ label = _ref.label,
640
+ labelTooltip = _ref.labelTooltip,
641
+ feedback = _ref.feedback,
642
+ variant = _ref.variant,
643
+ customLocale = _ref.locale,
644
+ showTimeZone = _ref.showTimeZone,
645
+ _ref$minuteIncrementF = _ref.minuteIncrementForArrowButtons,
646
+ minuteIncrementForArrowButtons = _ref$minuteIncrementF === void 0 ? 30 : _ref$minuteIncrementF,
647
+ _ref$leftArrowButtonA = _ref.leftArrowButtonAriaLabel,
648
+ leftArrowButtonAriaLabel = _ref$leftArrowButtonA === void 0 ? "Trekk fra " + minuteIncrementForArrowButtons + " minutter" : _ref$leftArrowButtonA,
649
+ _ref$rightArrowButton = _ref.rightArrowButtonAriaLabel,
650
+ rightArrowButtonAriaLabel = _ref$rightArrowButton === void 0 ? "Legg til " + minuteIncrementForArrowButtons + " minutter" : _ref$rightArrowButton,
651
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
706
652
  var _useLocale = useLocale(),
707
- locale = _useLocale.locale;
708
-
653
+ locale = _useLocale.locale;
709
654
  if (customLocale) locale = customLocale;
710
655
  var state = useTimeFieldState(_extends({
711
656
  onChange: onChange,
@@ -716,15 +661,12 @@ var TimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
716
661
  isDisabled: disabled
717
662
  }, rest));
718
663
  var timeFieldRef = useRef(null);
719
-
720
664
  var _useTimeField = useTimeField(_extends({}, rest, {
721
- label: label
722
- }), state, timeFieldRef),
723
- labelProps = _useTimeField.labelProps,
724
- fieldProps = _useTimeField.fieldProps;
725
-
665
+ label: label
666
+ }), state, timeFieldRef),
667
+ labelProps = _useTimeField.labelProps,
668
+ fieldProps = _useTimeField.fieldProps;
726
669
  var id = useRandomId('timepicker');
727
-
728
670
  var handleOnClickArrowButton = function handleOnClickArrowButton(minutes) {
729
671
  if (someSegmentIsUndefined) {
730
672
  setTimeToNearestMinuteIncrement();
@@ -732,11 +674,9 @@ var TimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
732
674
  addMinutesToSelectedTime(minutes);
733
675
  }
734
676
  };
735
-
736
677
  var someSegmentIsUndefined = state.segments.some(function (segment) {
737
678
  return segment.text === '––';
738
679
  });
739
-
740
680
  var setTimeToNearestMinuteIncrement = function setTimeToNearestMinuteIncrement() {
741
681
  var currentTime = now(getLocalTimeZone());
742
682
  var roundedMinute = Math.floor(currentTime.minute / minuteIncrementForArrowButtons) * minuteIncrementForArrowButtons;
@@ -745,15 +685,12 @@ var TimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
745
685
  });
746
686
  onChange(newTime);
747
687
  };
748
-
749
688
  var addMinutesToSelectedTime = function addMinutesToSelectedTime(minutes) {
750
689
  var _state$value;
751
-
752
690
  state.value && state.setValue((_state$value = state.value) == null ? void 0 : _state$value.add({
753
691
  minutes: minutes
754
692
  }));
755
693
  };
756
-
757
694
  return React.createElement(I18nProvider, {
758
695
  locale: locale
759
696
  }, React.createElement("div", {
@@ -795,17 +732,16 @@ var TimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
795
732
  });
796
733
 
797
734
  var _excluded = ["className", "style", "onChange", "label", "feedback", "variant", "prepend"],
798
- _excluded2 = ["onChange", "value"];
735
+ _excluded2 = ["onChange", "value"];
799
736
  var NativeTimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
800
737
  var className = _ref.className,
801
- style = _ref.style,
802
- onChange = _ref.onChange,
803
- label = _ref.label,
804
- feedback = _ref.feedback,
805
- variant = _ref.variant,
806
- prepend = _ref.prepend,
807
- rest = _objectWithoutPropertiesLoose(_ref, _excluded);
808
-
738
+ style = _ref.style,
739
+ onChange = _ref.onChange,
740
+ label = _ref.label,
741
+ feedback = _ref.feedback,
742
+ variant = _ref.variant,
743
+ prepend = _ref.prepend,
744
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded);
809
745
  var nativetimepickerId = useRandomId('eds-native-timepicker');
810
746
  return React.createElement(BaseFormControl, {
811
747
  style: style,
@@ -824,16 +760,13 @@ var NativeTimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
824
760
  });
825
761
  var NativeTimePickerBase = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
826
762
  var onChange = _ref2.onChange,
827
- value = _ref2.value,
828
- rest = _objectWithoutPropertiesLoose(_ref2, _excluded2);
829
-
763
+ value = _ref2.value,
764
+ rest = _objectWithoutPropertiesLoose(_ref2, _excluded2);
830
765
  var contextVariant = useVariant();
831
766
  var currentVariant = rest.variant || contextVariant;
832
-
833
767
  var _useInputGroupContext = useInputGroupContext(),
834
- isTimepickerFilled = _useInputGroupContext.isFilled,
835
- setFiller = _useInputGroupContext.setFilled;
836
-
768
+ isTimepickerFilled = _useInputGroupContext.isFilled,
769
+ setFiller = _useInputGroupContext.setFilled;
837
770
  useOnMount(function () {
838
771
  setFiller && !isTimepickerFilled && setFiller(true);
839
772
  });
@@ -844,19 +777,16 @@ var NativeTimePickerBase = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
844
777
  setFiller && isTimepickerFilled && setFiller(false);
845
778
  }
846
779
  }, [value, setFiller, isTimepickerFilled]);
847
-
848
780
  var handleChange = function handleChange(event) {
849
781
  if (isFilled(event.target)) {
850
782
  setFiller && !isTimepickerFilled && setFiller(true);
851
783
  } else {
852
784
  setFiller && isTimepickerFilled && setFiller(false);
853
785
  }
854
-
855
786
  if (onChange) {
856
787
  onChange(event);
857
788
  }
858
789
  };
859
-
860
790
  return React.createElement("input", _extends({
861
791
  ref: ref,
862
792
  "aria-invalid": currentVariant === 'error',