@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.
- package/CHANGELOG.md +22 -0
- package/dist/{DatePicker.d.ts → DatePicker/DatePicker.d.ts} +43 -10
- package/dist/DatePicker/DatePickerHeader.d.ts +3 -0
- package/dist/DatePicker/DatePickerInput.d.ts +25 -0
- package/dist/DatePicker/index.d.ts +1 -0
- package/dist/TimePicker.d.ts +1 -1
- package/dist/datepicker.cjs.development.js +335 -211
- package/dist/datepicker.cjs.development.js.map +1 -1
- package/dist/datepicker.cjs.production.min.js +1 -1
- package/dist/datepicker.cjs.production.min.js.map +1 -1
- package/dist/datepicker.esm.js +336 -212
- package/dist/datepicker.esm.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/styles.css +119 -1082
- package/package.json +8 -4
|
@@ -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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
var
|
|
58
|
-
name
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
_ref$
|
|
77
|
-
|
|
78
|
-
|
|
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
|
-
|
|
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$
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
98
|
-
|
|
276
|
+
showValidation = _useState[0],
|
|
277
|
+
setShowValidation = _useState[1];
|
|
99
278
|
|
|
100
|
-
var
|
|
101
|
-
|
|
102
|
-
|
|
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
|
|
105
|
-
|
|
106
|
-
setLastValidValue = _useState3[1];
|
|
285
|
+
var handleOnKeyDown = function handleOnKeyDown(event) {
|
|
286
|
+
var _datepickerRef$curren;
|
|
107
287
|
|
|
108
|
-
|
|
288
|
+
var calendarIsClosed = !((_datepickerRef$curren = datepickerRef.current) != null && _datepickerRef$curren.isCalendarOpen());
|
|
289
|
+
setShowValidation(false);
|
|
109
290
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
|
|
115
|
-
|
|
116
|
-
handleChange(selectedDate, undefined);
|
|
117
|
-
}, [selectedDate, setFilled, isFilled]);
|
|
300
|
+
onKeyDown(event);
|
|
301
|
+
};
|
|
118
302
|
|
|
119
|
-
var
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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 (
|
|
133
|
-
|
|
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
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
|
145
|
-
|
|
146
|
-
|
|
342
|
+
var focusAndSelectInputField = function focusAndSelectInputField() {
|
|
343
|
+
return setTimeout(function () {
|
|
344
|
+
var _inputRef$current2;
|
|
147
345
|
|
|
148
|
-
|
|
149
|
-
|
|
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
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
if (!inputValue) {
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
350
|
+
var forceUpdateInputFormat = function forceUpdateInputFormat() {
|
|
351
|
+
var _datepickerRef$curren2;
|
|
160
352
|
|
|
161
|
-
|
|
162
|
-
|
|
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
|
|
175
|
-
|
|
176
|
-
if (!hideValidationFeedback && showValidationFeedback) return validationFeedback;
|
|
177
|
-
return '';
|
|
178
|
-
};
|
|
358
|
+
var toggleCalendarGUI = function toggleCalendarGUI() {
|
|
359
|
+
var _datepickerRef$curren3, _datepickerRef$curren4;
|
|
179
360
|
|
|
180
|
-
|
|
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
|
-
|
|
366
|
+
minDate: minDate,
|
|
367
|
+
maxDate: maxDate,
|
|
368
|
+
dateFormat: dateFormats,
|
|
191
369
|
showWeekNumbers: true,
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
readOnly: readOnly,
|
|
370
|
+
weekLabel: weekLabel,
|
|
371
|
+
onChange: onChange,
|
|
372
|
+
onClickOutside: validateInput,
|
|
196
373
|
id: datepickerId,
|
|
197
374
|
ariaLabelledBy: datepickerId,
|
|
198
|
-
|
|
375
|
+
showPopperArrow: false,
|
|
199
376
|
locale: locale$1,
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
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
|
-
|
|
216
|
-
|
|
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
|
-
|
|
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"],
|