@entur/datepicker 0.11.6 → 1.0.0

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.
@@ -5,11 +5,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var utils = require('@entur/utils');
6
6
  var React = require('react');
7
7
  var ReactDatepicker = require('react-datepicker');
8
- var classNames = require('classnames');
9
- var form = require('@entur/form');
10
- var icons = require('@entur/icons');
11
8
  var dateFns = require('date-fns');
12
9
  var locale = require('date-fns/locale');
10
+ var classNames = require('classnames');
11
+ require('react-datepicker/dist/react-datepicker.css');
12
+ var icons = require('@entur/icons');
13
+ var typography = require('@entur/typography');
14
+ var button = require('@entur/button');
15
+ var form = require('@entur/form');
13
16
  var tooltip = require('@entur/tooltip');
14
17
 
15
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -51,264 +54,385 @@ function _objectWithoutPropertiesLoose(source, excluded) {
51
54
  return target;
52
55
  }
53
56
 
54
- var _excluded$3 = ["selectedDate", "onChange", "onChangeInput", "placeholder", "className", "style", "readOnly", "disableLabelAnimation", "locale", "prepend", "disabled", "variant", "validationVariant", "feedback", "validationFeedback", "label", "hideCalendarButton", "hideCalendar", "hideValidationFeedback", "id"],
55
- _excluded2$3 = ["value", "onClick", "onFocus", "onKeyDown", "variant", "feedback", "style", "disableLabelAnimation", "disabled", "label", "readOnly", "id", "prepend", "className", "hideCalendarButton", "inputId", "onChangeInput", "onKeyDownInput", "onBlurInput"];
56
- ReactDatepicker.registerLocale('nb', locale.nb);
57
- var POPPER_MODIFIERS$1 = [{
58
- name: 'offset',
59
- enabled: true,
60
- options: {
61
- offset: [0, 0]
57
+ function _unsupportedIterableToArray(o, minLen) {
58
+ if (!o) return;
59
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
60
+ var n = Object.prototype.toString.call(o).slice(8, -1);
61
+ if (n === "Object" && o.constructor) n = o.constructor.name;
62
+ if (n === "Map" || n === "Set") return Array.from(o);
63
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
64
+ }
65
+
66
+ function _arrayLikeToArray(arr, len) {
67
+ if (len == null || len > arr.length) len = arr.length;
68
+
69
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
70
+
71
+ return arr2;
72
+ }
73
+
74
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
75
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
76
+ if (it) return (it = it.call(o)).next.bind(it);
77
+
78
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
79
+ if (it) o = it;
80
+ var i = 0;
81
+ return function () {
82
+ if (i >= o.length) return {
83
+ done: true
84
+ };
85
+ return {
86
+ done: false,
87
+ value: o[i++]
88
+ };
89
+ };
62
90
  }
63
- }];
91
+
92
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
93
+ }
94
+
95
+ var DatePickerHeader = function DatePickerHeader(_ref) {
96
+ var _date$getMonth;
97
+
98
+ var date = _ref.date,
99
+ decreaseMonth = _ref.decreaseMonth,
100
+ increaseMonth = _ref.increaseMonth,
101
+ prevMonthButtonDisabled = _ref.prevMonthButtonDisabled,
102
+ nextMonthButtonDisabled = _ref.nextMonthButtonDisabled;
103
+ var monthNames = getMonthList();
104
+ return React__default["default"].createElement("div", {
105
+ className: "eds-datepicker__calender__header"
106
+ }, React__default["default"].createElement(button.IconButton, {
107
+ className: "eds-datepicker__calender__header__month-button--left",
108
+ onClick: decreaseMonth,
109
+ disabled: prevMonthButtonDisabled
110
+ }, React__default["default"].createElement(icons.LeftArrowIcon, null)), React__default["default"].createElement(typography.Heading3, {
111
+ className: "eds-datepicker__calender__header__month-text"
112
+ }, monthNames[(_date$getMonth = date == null ? void 0 : date.getMonth()) != null ? _date$getMonth : 0]), React__default["default"].createElement(typography.Heading3, {
113
+ className: "eds-datepicker__calender__header__month-text"
114
+ }, date == null ? void 0 : date.getFullYear()), React__default["default"].createElement(button.IconButton, {
115
+ className: "eds-datepicker__calender__header__month-button--right",
116
+ onClick: increaseMonth,
117
+ disabled: nextMonthButtonDisabled
118
+ }, React__default["default"].createElement(icons.RightArrowIcon, null)));
119
+ };
120
+
121
+ function getMonthList(locale) {
122
+ if (locale === void 0) {
123
+ locale = 'nb';
124
+ }
125
+
126
+ var year = new Date().getFullYear();
127
+ var monthList = Array(12).keys();
128
+ var formatter = new Intl.DateTimeFormat(locale, {
129
+ month: 'long'
130
+ });
131
+
132
+ var getMonthName = function getMonthName(monthIndex) {
133
+ return formatter.format(new Date(year, monthIndex));
134
+ };
135
+
136
+ return Array.from(monthList, getMonthName);
137
+ }
138
+
139
+ var _excluded$4 = ["style", "label", "inputPlaceholder", "prepend", "feedback", "variant", "disabled", "calendarButtonTooltip", "hideCalendarButton", "disableLabelAnimation", "inputRef", "forwardRef", "toggleCalendarGUI", "onKeyDownInput", "onBlurInput", "selectedDate", "placeholder"];
140
+ var DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
141
+ var style = _ref.style,
142
+ label = _ref.label,
143
+ inputPlaceholder = _ref.inputPlaceholder,
144
+ prepend = _ref.prepend,
145
+ feedback = _ref.feedback,
146
+ variant = _ref.variant,
147
+ disabled = _ref.disabled,
148
+ calendarButtonTooltip = _ref.calendarButtonTooltip,
149
+ hideCalendarButton = _ref.hideCalendarButton,
150
+ disableLabelAnimation = _ref.disableLabelAnimation,
151
+ inputRef = _ref.inputRef,
152
+ forwardRef = _ref.forwardRef,
153
+ toggleCalendarGUI = _ref.toggleCalendarGUI,
154
+ onKeyDownInput = _ref.onKeyDownInput,
155
+ onBlurInput = _ref.onBlurInput,
156
+ selectedDate = _ref.selectedDate,
157
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
158
+
159
+ React__default["default"].useEffect(function () {
160
+ var _inputRef$current, _inputRef$current2, _inputRef$current3;
161
+
162
+ (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.addEventListener('keydown', handleOnKeyDown);
163
+ (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.addEventListener('blur', handleOnBlur);
164
+ (_inputRef$current3 = inputRef.current) == null ? void 0 : _inputRef$current3.addEventListener('focus', handleOnFocus);
165
+ return function () {
166
+ var _inputRef$current4, _inputRef$current5, _inputRef$current6;
167
+
168
+ (_inputRef$current4 = inputRef.current) == null ? void 0 : _inputRef$current4.removeEventListener('keydown', handleOnKeyDown);
169
+ (_inputRef$current5 = inputRef.current) == null ? void 0 : _inputRef$current5.removeEventListener('blur', handleOnBlur);
170
+ (_inputRef$current6 = inputRef.current) == null ? void 0 : _inputRef$current6.removeEventListener('focus', handleOnFocus);
171
+ };
172
+ }, [inputRef, selectedDate]);
173
+
174
+ function handleOnKeyDown(event) {
175
+ onKeyDownInput(event);
176
+ }
177
+
178
+ function handleOnBlur(event) {
179
+ onBlurInput(event);
180
+ }
181
+
182
+ function handleOnFocus() {
183
+ setTimeout(function () {
184
+ var _inputRef$current7;
185
+
186
+ return (_inputRef$current7 = inputRef.current) == null ? void 0 : _inputRef$current7.select();
187
+ }, 5);
188
+ }
189
+
190
+ return React__default["default"].createElement(form.TextField, _extends({
191
+ style: style,
192
+ label: label,
193
+ placeholder: inputPlaceholder,
194
+ prepend: prepend,
195
+ feedback: feedback,
196
+ variant: variant,
197
+ disableLabelAnimation: disableLabelAnimation,
198
+ ref: mergeRefs(ref, inputRef, forwardRef),
199
+ append: !hideCalendarButton && React__default["default"].createElement(tooltip.Tooltip, {
200
+ placement: "top",
201
+ content: calendarButtonTooltip,
202
+ disableHoverListener: disabled,
203
+ disableFocusListener: disabled
204
+ }, React__default["default"].createElement(button.IconButton, {
205
+ type: "button",
206
+ onClick: toggleCalendarGUI
207
+ }, React__default["default"].createElement(icons.CalendarIcon, null)))
208
+ }, rest));
209
+ });
210
+
211
+ var mergeRefs = function mergeRefs() {
212
+ for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
213
+ refs[_key] = arguments[_key];
214
+ }
215
+
216
+ return function (node) {
217
+ for (var _iterator = _createForOfIteratorHelperLoose(refs), _step; !(_step = _iterator()).done;) {
218
+ var ref = _step.value;
219
+
220
+ if (typeof ref === 'function') {
221
+ ref(node);
222
+ } else if (ref) ref.current = node;
223
+ }
224
+ };
225
+ };
226
+
227
+ var _excluded$3 = ["style", "className", "selectedDate", "label", "placeholder", "onChange", "onKeyDown", "dateFormats", "minDate", "maxDate", "inline", "disabled", "prepend", "feedback", "variant", "validationFeedback", "validationVariant", "disableLabelAnimation", "calendarButtonTooltip", "hideCalendarButton", "hideCalendar", "hideValidation", "weekLabel", "locale", "open"];
228
+ ReactDatepicker.registerLocale('nb', locale.nb);
64
229
  var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
65
- var _ref$selectedDate = _ref.selectedDate,
66
- selectedDate = _ref$selectedDate === void 0 ? null : _ref$selectedDate,
67
- onChange = _ref.onChange,
68
- onChangeInput = _ref.onChangeInput,
230
+ var style = _ref.style,
231
+ className = _ref.className,
232
+ selectedDate = _ref.selectedDate,
233
+ label = _ref.label,
69
234
  _ref$placeholder = _ref.placeholder,
70
235
  placeholder = _ref$placeholder === void 0 ? 'dd.mm.yyyy' : _ref$placeholder,
71
- className = _ref.className,
72
- style = _ref.style,
73
- readOnly = _ref.readOnly,
74
- _ref$disableLabelAnim = _ref.disableLabelAnimation,
75
- disableLabelAnimation = _ref$disableLabelAnim === void 0 ? false : _ref$disableLabelAnim,
76
- _ref$locale = _ref.locale,
77
- locale$1 = _ref$locale === void 0 ? 'nb' : _ref$locale,
78
- prepend = _ref.prepend,
236
+ onChange = _ref.onChange,
237
+ _ref$onKeyDown = _ref.onKeyDown,
238
+ onKeyDown = _ref$onKeyDown === void 0 ? function () {
239
+ return null;
240
+ } : _ref$onKeyDown,
241
+ _ref$dateFormats = _ref.dateFormats,
242
+ dateFormats = _ref$dateFormats === void 0 ? ['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy', 'ddMMyy'] : _ref$dateFormats,
243
+ minDate = _ref.minDate,
244
+ maxDate = _ref.maxDate,
245
+ _ref$inline = _ref.inline,
246
+ inline = _ref$inline === void 0 ? false : _ref$inline,
79
247
  disabled = _ref.disabled,
248
+ prepend = _ref.prepend,
249
+ _ref$feedback = _ref.feedback,
250
+ feedback = _ref$feedback === void 0 ? '' : _ref$feedback,
80
251
  variant = _ref.variant,
81
- _ref$validationVarian = _ref.validationVariant,
82
- validationVariant = _ref$validationVarian === void 0 ? 'error' : _ref$validationVarian,
83
- feedback = _ref.feedback,
84
252
  _ref$validationFeedba = _ref.validationFeedback,
85
253
  validationFeedback = _ref$validationFeedba === void 0 ? 'Ugyldig dato' : _ref$validationFeedba,
86
- label = _ref.label,
254
+ _ref$validationVarian = _ref.validationVariant,
255
+ validationVariant = _ref$validationVarian === void 0 ? 'error' : _ref$validationVarian,
256
+ _ref$disableLabelAnim = _ref.disableLabelAnimation,
257
+ disableLabelAnimation = _ref$disableLabelAnim === void 0 ? false : _ref$disableLabelAnim,
258
+ _ref$calendarButtonTo = _ref.calendarButtonTooltip,
259
+ calendarButtonTooltip = _ref$calendarButtonTo === void 0 ? 'Åpne\xa0kalender' : _ref$calendarButtonTo,
87
260
  _ref$hideCalendarButt = _ref.hideCalendarButton,
88
261
  hideCalendarButton = _ref$hideCalendarButt === void 0 ? false : _ref$hideCalendarButt,
89
262
  _ref$hideCalendar = _ref.hideCalendar,
90
263
  hideCalendar = _ref$hideCalendar === void 0 ? false : _ref$hideCalendar,
91
- _ref$hideValidationFe = _ref.hideValidationFeedback,
92
- hideValidationFeedback = _ref$hideValidationFe === void 0 ? false : _ref$hideValidationFe,
93
- id = _ref.id,
264
+ _ref$hideValidation = _ref.hideValidation,
265
+ hideValidation = _ref$hideValidation === void 0 ? false : _ref$hideValidation,
266
+ _ref$weekLabel = _ref.weekLabel,
267
+ weekLabel = _ref$weekLabel === void 0 ? 'uke' : _ref$weekLabel,
268
+ _ref$locale = _ref.locale,
269
+ locale$1 = _ref$locale === void 0 ? 'nb' : _ref$locale,
270
+ open = _ref.open,
94
271
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
95
272
 
273
+ var datepickerId = utils.useRandomId('eds-datepicker');
274
+
96
275
  var _useState = React.useState(false),
97
- showValidationFeedback = _useState[0],
98
- setShowValidationFeedback = _useState[1];
276
+ showValidation = _useState[0],
277
+ setShowValidation = _useState[1];
99
278
 
100
- var _useState2 = React.useState(''),
101
- currentValue = _useState2[0],
102
- setCurrentValue = _useState2[1];
279
+ var datepickerRef = React.useRef(null);
280
+ var inputRef = React__default["default"].useRef(null);
281
+ React__default["default"].useEffect(function () {
282
+ return validateInput();
283
+ }, [selectedDate]);
103
284
 
104
- var _useState3 = React.useState(''),
105
- lastValidValue = _useState3[0],
106
- setLastValidValue = _useState3[1];
285
+ var handleOnKeyDown = function handleOnKeyDown(event) {
286
+ var _datepickerRef$curren;
107
287
 
108
- var datepickerId = utils.useRandomId('eds-datepicker');
288
+ var calendarIsClosed = !((_datepickerRef$curren = datepickerRef.current) != null && _datepickerRef$curren.isCalendarOpen());
289
+ setShowValidation(false);
109
290
 
110
- var _useInputGroupContext = form.useInputGroupContext(),
111
- isFilled = _useInputGroupContext.isFilled,
112
- setFilled = _useInputGroupContext.setFilled;
291
+ if (event.key === 'Enter') {
292
+ validateInput();
293
+ focusAndSelectInputField();
294
+ forceUpdateInputFormat();
295
+ } else if (event.key === 'Tab' && calendarIsClosed) {
296
+ validateInput();
297
+ forceUpdateInputFormat();
298
+ }
113
299
 
114
- React__default["default"].useEffect(function () {
115
- setFilled(!!selectedDate);
116
- handleChange(selectedDate, undefined);
117
- }, [selectedDate, setFilled, isFilled]);
300
+ onKeyDown(event);
301
+ };
118
302
 
119
- var handleChange = function handleChange(date, event) {
120
- // The return value from reactDatePicker can potentially be a range of dates, this however is not supported.
121
- // To circumvent this we create simply pick the first selected value in that case.
122
- var newDate = [date].flat()[0];
123
- setFilled(!!newDate);
124
- var dateString = newDate == null ? void 0 : newDate.toLocaleDateString('no-NO', {
125
- day: '2-digit',
126
- month: '2-digit',
127
- year: 'numeric'
303
+ var validateInput = function validateInput() {
304
+ var _inputRef$current;
305
+
306
+ setShowValidation(false);
307
+ var inputValue = (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.value;
308
+ if (!inputValue) return;
309
+ var inputValueParsedWithAllDateFormats = dateFormats.map(function (format) {
310
+ return dateFns.parse(inputValue, format, new Date(), {
311
+ locale: locale.nb
312
+ });
313
+ });
314
+ var parsedDateFromInputIsTheSameAsSelectedDate = selectedDate && inputValueParsedWithAllDateFormats.some(function (dateFormat) {
315
+ return dateFns.isSameDay(dateFormat, selectedDate);
128
316
  });
129
- setCurrentValue(dateString != null ? dateString : '');
130
- setLastValidValue(dateString != null ? dateString : '');
131
317
 
132
- if (onChange) {
133
- onChange(newDate, event);
318
+ if (parsedDateFromInputIsTheSameAsSelectedDate) {
319
+ // valid date inputted
320
+ setShowValidation(false);
321
+ } else {
322
+ // invalid date inputted
323
+ setShowValidation(true);
134
324
  }
135
325
  };
136
326
 
137
- var handleChangeRaw = function handleChangeRaw(event) {
138
- setShowValidationFeedback(false);
139
- var inputValue = event.target.value;
140
- setCurrentValue(inputValue);
141
- if (onChangeInput) onChangeInput(inputValue);
327
+ var getFeedbackAndVariant = function getFeedbackAndVariant() {
328
+ if (feedback) return {
329
+ feedback: feedback,
330
+ variant: variant
331
+ };
332
+ if (!hideValidation && showValidation) return {
333
+ feedback: validationFeedback,
334
+ variant: validationVariant
335
+ };
336
+ return {
337
+ feedback: '',
338
+ variant: undefined
339
+ };
142
340
  };
143
341
 
144
- var handleBlur = function handleBlur(event) {
145
- validateInput(event.target.value);
146
- };
342
+ var focusAndSelectInputField = function focusAndSelectInputField() {
343
+ return setTimeout(function () {
344
+ var _inputRef$current2;
147
345
 
148
- var handleKeyDownInput = function handleKeyDownInput(event) {
149
- if (event.key === 'Enter') {
150
- validateInput(event.currentTarget.value);
151
- }
346
+ (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.select();
347
+ }, 5);
152
348
  };
153
349
 
154
- var validateInput = function validateInput(inputValue) {
155
- setShowValidationFeedback(false);
156
-
157
- if (!inputValue) {
158
- return;
159
- }
350
+ var forceUpdateInputFormat = function forceUpdateInputFormat() {
351
+ var _datepickerRef$curren2;
160
352
 
161
- var parsedDate = dateFns.parse(inputValue, 'dd.MM.yyyy', new Date(), {
162
- locale: locale.nb
353
+ return (_datepickerRef$curren2 = datepickerRef.current) == null ? void 0 : _datepickerRef$curren2.setState({
354
+ inputValue: null
163
355
  });
164
- var selectedDateIsTheSameAsParsedDateFromInput = selectedDate && dateFns.isSameDay(parsedDate, selectedDate);
165
-
166
- if (selectedDateIsTheSameAsParsedDateFromInput) {
167
- setLastValidValue(currentValue);
168
- } else {
169
- setShowValidationFeedback(true);
170
- setCurrentValue(lastValidValue);
171
- }
172
356
  };
173
357
 
174
- var displayedFeedback = function displayedFeedback() {
175
- if (feedback) return feedback;
176
- if (!hideValidationFeedback && showValidationFeedback) return validationFeedback;
177
- return '';
178
- };
358
+ var toggleCalendarGUI = function toggleCalendarGUI() {
359
+ var _datepickerRef$curren3, _datepickerRef$curren4;
179
360
 
180
- var displayedVariant = function displayedVariant() {
181
- if (feedback && variant) return variant;
182
- if (!hideValidationFeedback && showValidationFeedback) return validationVariant;
183
- return undefined;
361
+ return (_datepickerRef$curren3 = datepickerRef.current) == null ? void 0 : _datepickerRef$curren3.setOpen(!((_datepickerRef$curren4 = datepickerRef.current) != null && _datepickerRef$curren4.isCalendarOpen()));
184
362
  };
185
363
 
186
- return React__default["default"].createElement(ReactDatepicker__default["default"], _extends({
187
- className: classNames__default["default"](className),
188
- calendarClassName: "eds-datepicker__calender",
364
+ return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(ReactDatepicker__default["default"], _extends({
189
365
  selected: selectedDate,
190
- onChange: handleChange,
366
+ minDate: minDate,
367
+ maxDate: maxDate,
368
+ dateFormat: dateFormats,
191
369
  showWeekNumbers: true,
192
- dateFormat: ['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy'],
193
- showPopperArrow: false,
194
- placeholderText: placeholder,
195
- readOnly: readOnly,
370
+ weekLabel: weekLabel,
371
+ onChange: onChange,
372
+ onClickOutside: validateInput,
196
373
  id: datepickerId,
197
374
  ariaLabelledBy: datepickerId,
198
- disabled: disabled,
375
+ showPopperArrow: false,
199
376
  locale: locale$1,
200
- popperModifiers: POPPER_MODIFIERS$1,
201
- onBlur: handleBlur,
202
- onChangeRaw: handleChangeRaw,
203
- onCalendarOpen: function onCalendarOpen() {
204
- return setShowValidationFeedback(false);
377
+ inline: inline,
378
+ disabled: disabled,
379
+ preventOpenOnFocus: true,
380
+ open: hideCalendar ? false : open,
381
+ ref: datepickerRef,
382
+ calendarClassName: "eds-datepicker__calender",
383
+ dayClassName: function dayClassName() {
384
+ return 'eds-datepicker__calender__day';
385
+ },
386
+ weekDayClassName: function weekDayClassName() {
387
+ return 'eds-datepicker__calender__day-name';
388
+ },
389
+ className: classNames__default["default"](className, 'eds-datepicker__input'),
390
+ highlightDates: [{
391
+ 'eds-datepicker__calender__day--today': [new Date()]
392
+ }, {
393
+ 'eds-datepicker__calender__day--selected': selectedDate ? [selectedDate] : []
394
+ }],
395
+ renderCustomHeader: function renderCustomHeader(_ref2) {
396
+ var date = _ref2.date,
397
+ changeYear = _ref2.changeYear,
398
+ changeMonth = _ref2.changeMonth,
399
+ decreaseMonth = _ref2.decreaseMonth,
400
+ increaseMonth = _ref2.increaseMonth,
401
+ prevMonthButtonDisabled = _ref2.prevMonthButtonDisabled,
402
+ nextMonthButtonDisabled = _ref2.nextMonthButtonDisabled;
403
+ return React__default["default"].createElement(DatePickerHeader, {
404
+ date: date,
405
+ changeYear: changeYear,
406
+ changeMonth: changeMonth,
407
+ increaseMonth: increaseMonth,
408
+ decreaseMonth: decreaseMonth,
409
+ prevMonthButtonDisabled: prevMonthButtonDisabled,
410
+ nextMonthButtonDisabled: nextMonthButtonDisabled
411
+ });
205
412
  },
206
- value: currentValue,
207
- open: hideCalendar === true ? false : rest.open
208
- }, rest, {
209
413
  customInput: React__default["default"].createElement(DatePickerInput, {
210
414
  style: style,
211
- readOnly: readOnly,
212
- variant: displayedVariant(),
213
- feedback: displayedFeedback(),
214
415
  label: label,
215
- disabled: disabled,
216
- ref: ref,
217
- "data-cy": rest['data-cy'],
218
- disableLabelAnimation: disableLabelAnimation,
416
+ inputPlaceholder: placeholder,
417
+ calendarButtonTooltip: calendarButtonTooltip,
219
418
  prepend: prepend,
419
+ feedback: getFeedbackAndVariant().feedback,
420
+ variant: getFeedbackAndVariant().variant,
421
+ inputRef: inputRef,
422
+ forwardRef: ref,
423
+ onKeyDownInput: handleOnKeyDown,
424
+ onBlurInput: function onBlurInput() {
425
+ var _datepickerRef$curren5;
426
+
427
+ return !((_datepickerRef$curren5 = datepickerRef.current) != null && _datepickerRef$curren5.isCalendarOpen()) && validateInput();
428
+ },
429
+ onFocus: undefined,
430
+ toggleCalendarGUI: toggleCalendarGUI,
431
+ disableLabelAnimation: disableLabelAnimation,
220
432
  hideCalendarButton: hideCalendarButton,
221
- inputId: id,
222
- onKeyDownInput: handleKeyDownInput,
223
- onBlurInput: handleBlur,
224
- onChangeInput: onChangeInput
433
+ selectedDate: selectedDate
225
434
  })
226
- }));
227
- }); // Props fra customInput i react-datepicker
228
- // value: inputValue,
229
- // onBlur: this.handleBlur,
230
- // onChange: this.handleChange,
231
- // onClick: this.onInputClick,
232
- // onFocus: this.handleFocus,
233
- // onKeyDown: this.onInputKeyDown,
234
- // id: this.props.id,
235
- // name: this.props.name,
236
- // autoFocus: this.props.autoFocus,
237
- // placeholder: this.props.placeholderText,
238
- // disabled: this.props.disabled,
239
- // autoComplete: this.props.autoComplete,
240
- // className: classnames(customInput.props.className, className),
241
- // title: this.props.title,
242
- // readOnly: this.props.readOnly,
243
- // required: this.props.required,
244
- // tabIndex: this.props.tabIndex,
245
- // "aria-describedby": this.props.ariaDescribedBy,
246
- // "aria-invalid": this.props.ariaInvalid,
247
- // "aria-labelledby": this.props.ariaLabelledBy,
248
- // "aria-required": this.props.ariaRequired,
249
-
250
- var DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function (_ref2, ref) {
251
- var value = _ref2.value,
252
- onClick = _ref2.onClick,
253
- onKeyDown = _ref2.onKeyDown,
254
- variant = _ref2.variant,
255
- feedback = _ref2.feedback,
256
- style = _ref2.style,
257
- disableLabelAnimation = _ref2.disableLabelAnimation,
258
- disabled = _ref2.disabled,
259
- label = _ref2.label,
260
- readOnly = _ref2.readOnly,
261
- id = _ref2.id,
262
- prepend = _ref2.prepend,
263
- className = _ref2.className,
264
- hideCalendarButton = _ref2.hideCalendarButton,
265
- inputId = _ref2.inputId,
266
- onChangeInput = _ref2.onChangeInput,
267
- onKeyDownInput = _ref2.onKeyDownInput,
268
- onBlurInput = _ref2.onBlurInput,
269
- rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$3);
270
-
271
- return React__default["default"].createElement("span", {
272
- className: className,
273
- onBlur: onBlurInput
274
- }, React__default["default"].createElement(form.BaseFormControl, {
275
- style: style,
276
- className: "eds-datepicker__form-control",
277
- readOnly: readOnly,
278
- label: label,
279
- labelId: id,
280
- feedback: feedback,
281
- variant: variant,
282
- disabled: disabled,
283
- disableLabelAnimation: disableLabelAnimation,
284
- isFilled: !!value,
285
- prepend: prepend
286
- }, React__default["default"].createElement("input", _extends({
287
- value: value,
288
- onClick: onClick,
289
- readOnly: readOnly,
290
- disabled: disabled,
291
- ref: ref,
292
- // aria-labelledby={id}
293
- className: "eds-form-control",
294
- id: inputId,
295
- onKeyDown: onKeyDownInput,
296
- onChange: onChangeInput
297
- }, rest)), !hideCalendarButton && React__default["default"].createElement(tooltip.Tooltip, {
298
- placement: "top",
299
- content: "\xC5pne kalender",
300
- disableHoverListener: disabled,
301
- disableFocusListener: disabled
302
- }, React__default["default"].createElement("button", {
303
- className: classNames__default["default"]('eds-datepicker__calendar-button', {
304
- 'eds-datepicker__calendar-button--open': true,
305
- 'eds-datepicker__calendar-button--disabled': disabled
306
- }),
307
- onKeyDown: onKeyDown,
308
- onClick: onClick,
309
- disabled: disabled,
310
- type: "button"
311
- }, React__default["default"].createElement(icons.CalendarIcon, null)))));
435
+ }, rest)));
312
436
  });
313
437
 
314
438
  var _excluded$2 = ["className", "style", "label", "onChange", "feedback", "variant", "disableLabelAnimation", "prepend"],