@entur/datepicker 8.0.11 → 8.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/TimePicker/SimpleTimePicker.d.ts +37 -0
- package/dist/TimePicker/index.d.ts +1 -0
- package/dist/datepicker.cjs.development.js +207 -23
- 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 +211 -28
- package/dist/datepicker.esm.js.map +1 -1
- package/dist/styles.css +93 -42
- package/package.json +9 -9
package/dist/datepicker.esm.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { useRandomId, ConditionalWrapper, mergeRefs, useWindowDimensions, useOnClickOutside, useOnEscape, useOnMount, warnAboutMissingStyles } from '@entur/utils';
|
|
2
|
-
import React, { useRef } from 'react';
|
|
2
|
+
import React, { useRef, useState, useEffect } from 'react';
|
|
3
3
|
import { useDateFieldState, useDatePickerState, useTimeFieldState } from '@react-stately/datepicker';
|
|
4
4
|
import { useDateSegment, useDateField, useDatePicker, useTimeField } from '@react-aria/datepicker';
|
|
5
5
|
import { useLocale, I18nProvider } from '@react-aria/i18n';
|
|
6
6
|
import classNames from 'classnames';
|
|
7
|
-
import { BaseFormControl, useVariant, useInputGroupContext, isFilled } from '@entur/form';
|
|
8
|
-
import { CalendarDate, Time, getLocalTimeZone, GregorianCalendar, ZonedDateTime, parseAbsolute, CalendarDateTime, isEqualDay, now, getWeeksInMonth } from '@internationalized/date';
|
|
7
|
+
import { BaseFormControl, useVariant, useInputGroupContext, isFilled, TextField } from '@entur/form';
|
|
8
|
+
import { CalendarDate, Time, getLocalTimeZone, GregorianCalendar, ZonedDateTime, parseAbsolute, CalendarDateTime, isEqualDay, now, getWeeksInMonth, toTime, parseTime } from '@internationalized/date';
|
|
9
9
|
import { useCalendarCell, useCalendarGrid, useCalendar } from '@react-aria/calendar';
|
|
10
10
|
import { useCalendarState } from '@react-stately/calendar';
|
|
11
|
-
import { LeftArrowIcon, RightArrowIcon, CalendarIcon, DateIcon } from '@entur/icons';
|
|
11
|
+
import { LeftArrowIcon, RightArrowIcon, CalendarIcon, DateIcon, ClockIcon } from '@entur/icons';
|
|
12
12
|
import { useButton } from '@react-aria/button';
|
|
13
13
|
import { IconButton } from '@entur/button';
|
|
14
14
|
import { VisuallyHidden } from '@entur/a11y';
|
|
@@ -173,7 +173,7 @@ var ariaLabelIfNorwegian = function ariaLabelIfNorwegian(norwegianAriaLabel, loc
|
|
|
173
173
|
return norwegianAriaLabel;
|
|
174
174
|
};
|
|
175
175
|
|
|
176
|
-
var _excluded$
|
|
176
|
+
var _excluded$9 = ["selectedDate", "label", "locale", "showTimeZone", "showTime", "granularity", "disabled", "variant", "feedback", "validationVariant", "validationFeedback", "labelTooltip", "minDate", "maxDate", "style", "className", "labelProps", "append"];
|
|
177
177
|
var DateField = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
178
178
|
var value = _ref.selectedDate,
|
|
179
179
|
label = _ref.label,
|
|
@@ -196,7 +196,7 @@ var DateField = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
196
196
|
className = _ref.className,
|
|
197
197
|
parentLabelProps = _ref.labelProps,
|
|
198
198
|
append = _ref.append,
|
|
199
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
199
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$9);
|
|
200
200
|
var _useLocale = useLocale(),
|
|
201
201
|
locale = _useLocale.locale;
|
|
202
202
|
var state = useDateFieldState(_extends({}, rest, {
|
|
@@ -247,12 +247,12 @@ var DateField = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
247
247
|
})));
|
|
248
248
|
});
|
|
249
249
|
|
|
250
|
-
var _excluded$
|
|
250
|
+
var _excluded$8 = ["children", "className", "style"];
|
|
251
251
|
var CalendarButton = function CalendarButton(_ref) {
|
|
252
252
|
var children = _ref.children,
|
|
253
253
|
className = _ref.className,
|
|
254
254
|
style = _ref.style,
|
|
255
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
255
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$8);
|
|
256
256
|
var ref = useRef(null);
|
|
257
257
|
var _useButton = useButton(props, ref),
|
|
258
258
|
buttonProps = _useButton.buttonProps;
|
|
@@ -263,7 +263,7 @@ var CalendarButton = function CalendarButton(_ref) {
|
|
|
263
263
|
}), children);
|
|
264
264
|
};
|
|
265
265
|
|
|
266
|
-
var _excluded$
|
|
266
|
+
var _excluded$7 = ["state", "date", "onSelectedCellClick"];
|
|
267
267
|
var CalendarCell = function CalendarCell(_ref) {
|
|
268
268
|
var _state$timeZone;
|
|
269
269
|
var state = _ref.state,
|
|
@@ -272,7 +272,7 @@ var CalendarCell = function CalendarCell(_ref) {
|
|
|
272
272
|
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
273
273
|
return;
|
|
274
274
|
} : _ref$onSelectedCellCl,
|
|
275
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
275
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);
|
|
276
276
|
var cellRef = useRef(null);
|
|
277
277
|
var _useCalendarCell = useCalendarCell({
|
|
278
278
|
date: date
|
|
@@ -307,7 +307,7 @@ var CalendarCell = function CalendarCell(_ref) {
|
|
|
307
307
|
}), formattedDate));
|
|
308
308
|
};
|
|
309
309
|
|
|
310
|
-
var _excluded$
|
|
310
|
+
var _excluded$6 = ["state", "navigationDescription", "onSelectedCellClick"];
|
|
311
311
|
var CalendarGrid = function CalendarGrid(_ref) {
|
|
312
312
|
var state = _ref.state,
|
|
313
313
|
navigationDescription = _ref.navigationDescription,
|
|
@@ -315,7 +315,7 @@ var CalendarGrid = function CalendarGrid(_ref) {
|
|
|
315
315
|
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
316
316
|
return;
|
|
317
317
|
} : _ref$onSelectedCellCl,
|
|
318
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
318
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
319
319
|
var calendarGridId = useRandomId('eds-calendar');
|
|
320
320
|
var _useLocale = useLocale(),
|
|
321
321
|
locale = _useLocale.locale;
|
|
@@ -366,7 +366,7 @@ var CalendarGrid = function CalendarGrid(_ref) {
|
|
|
366
366
|
}, getNavigationDescription()));
|
|
367
367
|
};
|
|
368
368
|
|
|
369
|
-
var _excluded$
|
|
369
|
+
var _excluded$5 = ["selectedDate", "onChange", "locale", "style", "children", "navigationDescription", "onSelectedCellClick"];
|
|
370
370
|
var Calendar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
371
371
|
var onChange = _ref.onChange,
|
|
372
372
|
customLocale = _ref.locale,
|
|
@@ -376,7 +376,7 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
376
376
|
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
377
377
|
return;
|
|
378
378
|
} : _ref$onSelectedCellCl,
|
|
379
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
379
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
380
380
|
var _useLocale = useLocale(),
|
|
381
381
|
locale = _useLocale.locale;
|
|
382
382
|
var state = useCalendarState(_extends({}, rest, {
|
|
@@ -417,7 +417,7 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
417
417
|
})));
|
|
418
418
|
});
|
|
419
419
|
|
|
420
|
-
var _excluded$
|
|
420
|
+
var _excluded$4 = ["selectedDate", "onChange", "locale", "disabled", "showTime", "showTimeZone", "className", "style", "variant", "feedback", "validationVariant", "validationFeedback", "disableModal", "labelTooltip", "navigationDescription", "minDate", "maxDate", "modalTreshold"];
|
|
421
421
|
var DatePicker = function DatePicker(_ref) {
|
|
422
422
|
var value = _ref.selectedDate,
|
|
423
423
|
onChange = _ref.onChange,
|
|
@@ -439,7 +439,7 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
439
439
|
maxValue = _ref.maxDate,
|
|
440
440
|
_ref$modalTreshold = _ref.modalTreshold,
|
|
441
441
|
modalTreshold = _ref$modalTreshold === void 0 ? 1000 : _ref$modalTreshold,
|
|
442
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
442
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
|
|
443
443
|
var CALENDAR_MODAL_MAX_SCREEN_WIDTH = modalTreshold;
|
|
444
444
|
var datePickerRef = useRef(null);
|
|
445
445
|
var calendarRef = useRef(null);
|
|
@@ -565,8 +565,8 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
565
565
|
}), React.createElement(CalendarIcon, null)), useModal ? modalCalendar : popoverCalendar)));
|
|
566
566
|
};
|
|
567
567
|
|
|
568
|
-
var _excluded$
|
|
569
|
-
_excluded2$
|
|
568
|
+
var _excluded$3 = ["className", "style", "label", "onChange", "feedback", "variant", "disableLabelAnimation", "prepend"],
|
|
569
|
+
_excluded2$2 = ["onChange", "variant", "value"];
|
|
570
570
|
var NativeDatePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
571
571
|
var className = _ref.className,
|
|
572
572
|
style = _ref.style,
|
|
@@ -579,7 +579,7 @@ var NativeDatePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
579
579
|
prepend = _ref$prepend === void 0 ? React.createElement(DateIcon, {
|
|
580
580
|
inline: true
|
|
581
581
|
}) : _ref$prepend,
|
|
582
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
582
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
583
583
|
var nativedatepickerId = useRandomId('eds-nativetimepicker');
|
|
584
584
|
return React.createElement(BaseFormControl, {
|
|
585
585
|
style: style,
|
|
@@ -602,7 +602,7 @@ var NativeDatePickerBase = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
|
|
|
602
602
|
var onChange = _ref2.onChange,
|
|
603
603
|
variant = _ref2.variant,
|
|
604
604
|
value = _ref2.value,
|
|
605
|
-
rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$
|
|
605
|
+
rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$2);
|
|
606
606
|
var contextVariant = useVariant();
|
|
607
607
|
var currentVariant = variant || contextVariant;
|
|
608
608
|
var _useInputGroupContext = useInputGroupContext(),
|
|
@@ -655,7 +655,7 @@ var TimePickerArrowButton = function TimePickerArrowButton(_ref) {
|
|
|
655
655
|
}, direction === 'left' ? React.createElement(LeftArrowIcon, null) : React.createElement(RightArrowIcon, null));
|
|
656
656
|
};
|
|
657
657
|
|
|
658
|
-
var _excluded$
|
|
658
|
+
var _excluded$2 = ["selectedTime", "onChange", "disabled", "className", "style", "label", "labelTooltip", "feedback", "variant", "locale", "showTimeZone", "minuteIncrementForArrowButtons", "leftArrowButtonAriaLabel", "rightArrowButtonAriaLabel", "inputRef"];
|
|
659
659
|
var TimePicker = function TimePicker(_ref) {
|
|
660
660
|
var selectedTime = _ref.selectedTime,
|
|
661
661
|
onChange = _ref.onChange,
|
|
@@ -675,12 +675,11 @@ var TimePicker = function TimePicker(_ref) {
|
|
|
675
675
|
_ref$rightArrowButton = _ref.rightArrowButtonAriaLabel,
|
|
676
676
|
rightArrowButtonAriaLabel = _ref$rightArrowButton === void 0 ? "Legg til " + minuteIncrementForArrowButtons + " minutter" : _ref$rightArrowButton,
|
|
677
677
|
inputRef = _ref.inputRef,
|
|
678
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
678
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
679
679
|
var _useLocale = useLocale(),
|
|
680
680
|
locale = _useLocale.locale;
|
|
681
681
|
if (customLocale) locale = customLocale;
|
|
682
682
|
var state = useTimeFieldState(_extends({
|
|
683
|
-
// @ts-expect-error Time should be assignable to MappedTime<TimeType>
|
|
684
683
|
onChange: onChange,
|
|
685
684
|
label: label,
|
|
686
685
|
locale: locale,
|
|
@@ -762,8 +761,8 @@ var TimePicker = function TimePicker(_ref) {
|
|
|
762
761
|
})));
|
|
763
762
|
};
|
|
764
763
|
|
|
765
|
-
var _excluded = ["className", "style", "onChange", "label", "feedback", "variant", "prepend"],
|
|
766
|
-
_excluded2 = ["onChange", "value"];
|
|
764
|
+
var _excluded$1 = ["className", "style", "onChange", "label", "feedback", "variant", "prepend"],
|
|
765
|
+
_excluded2$1 = ["onChange", "value"];
|
|
767
766
|
var NativeTimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
768
767
|
var className = _ref.className,
|
|
769
768
|
style = _ref.style,
|
|
@@ -772,7 +771,7 @@ var NativeTimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
772
771
|
feedback = _ref.feedback,
|
|
773
772
|
variant = _ref.variant,
|
|
774
773
|
prepend = _ref.prepend,
|
|
775
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
774
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
776
775
|
var nativetimepickerId = useRandomId('eds-native-timepicker');
|
|
777
776
|
return React.createElement(BaseFormControl, {
|
|
778
777
|
style: style,
|
|
@@ -792,7 +791,7 @@ var NativeTimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
792
791
|
var NativeTimePickerBase = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
|
|
793
792
|
var onChange = _ref2.onChange,
|
|
794
793
|
value = _ref2.value,
|
|
795
|
-
rest = _objectWithoutPropertiesLoose(_ref2, _excluded2);
|
|
794
|
+
rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$1);
|
|
796
795
|
var contextVariant = useVariant();
|
|
797
796
|
var currentVariant = rest.variant || contextVariant;
|
|
798
797
|
var _useInputGroupContext = useInputGroupContext(),
|
|
@@ -828,7 +827,191 @@ var NativeTimePickerBase = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
|
|
|
828
827
|
}, rest));
|
|
829
828
|
});
|
|
830
829
|
|
|
830
|
+
var _excluded = ["className", "disabled", "feedback", "showClockIcon", "inputRef", "label", "labelTooltip", "onChange", "padding", "readOnly", "selectedTime", "showSeconds", "style", "variant"],
|
|
831
|
+
_excluded2 = ["onBlur", "onClick", "onDragStart", "onFocus", "onKeyDown", "onKeyUp", "onMouseDown", "onPointerDown", "onPointerUp"];
|
|
832
|
+
var inputResult;
|
|
833
|
+
(function (inputResult) {
|
|
834
|
+
inputResult[inputResult["RESET_TIME"] = 0] = "RESET_TIME";
|
|
835
|
+
inputResult[inputResult["INVALID"] = 1] = "INVALID";
|
|
836
|
+
})(inputResult || (inputResult = {}));
|
|
837
|
+
var SimpleTimePicker = function SimpleTimePicker(_ref) {
|
|
838
|
+
var disabled = _ref.disabled,
|
|
839
|
+
feedback = _ref.feedback,
|
|
840
|
+
_ref$showClockIcon = _ref.showClockIcon,
|
|
841
|
+
showClockIcon = _ref$showClockIcon === void 0 ? false : _ref$showClockIcon,
|
|
842
|
+
inputRef = _ref.inputRef,
|
|
843
|
+
label = _ref.label,
|
|
844
|
+
labelTooltip = _ref.labelTooltip,
|
|
845
|
+
onChange = _ref.onChange,
|
|
846
|
+
_ref$padding = _ref.padding,
|
|
847
|
+
padding = _ref$padding === void 0 ? 'default' : _ref$padding,
|
|
848
|
+
readOnly = _ref.readOnly,
|
|
849
|
+
selectedTime = _ref.selectedTime,
|
|
850
|
+
showSeconds = _ref.showSeconds,
|
|
851
|
+
style = _ref.style,
|
|
852
|
+
variant = _ref.variant,
|
|
853
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
854
|
+
var _useState = useState(''),
|
|
855
|
+
inputText = _useState[0],
|
|
856
|
+
setInputText = _useState[1];
|
|
857
|
+
var timeFieldRef = useRef(null);
|
|
858
|
+
var _useState2 = useState(null),
|
|
859
|
+
lastValidSelectedTime = _useState2[0],
|
|
860
|
+
setLastValidSelectedTime = _useState2[1];
|
|
861
|
+
var _useLocale = useLocale(),
|
|
862
|
+
locale = _useLocale.locale;
|
|
863
|
+
var state = useTimeFieldState(_extends({
|
|
864
|
+
onChange: onChange,
|
|
865
|
+
label: label,
|
|
866
|
+
locale: locale,
|
|
867
|
+
value: selectedTime === null ? undefined : selectedTime,
|
|
868
|
+
hideTimeZone: true,
|
|
869
|
+
isDisabled: disabled,
|
|
870
|
+
isReadOnly: readOnly
|
|
871
|
+
}, rest));
|
|
872
|
+
var _useTimeField = useTimeField(_extends({}, rest, {
|
|
873
|
+
label: label
|
|
874
|
+
}), state, timeFieldRef),
|
|
875
|
+
labelProps = _useTimeField.labelProps,
|
|
876
|
+
fieldProps = _useTimeField.fieldProps;
|
|
877
|
+
useEffect(function () {
|
|
878
|
+
updateInputWithSelectedTime();
|
|
879
|
+
// @ts-expect-error TimeType and MappedTimeValue<TimeType> is actually the same
|
|
880
|
+
if (selectedTime !== null) setLastValidSelectedTime(selectedTime);
|
|
881
|
+
}, [selectedTime == null ? void 0 : selectedTime.toString()]);
|
|
882
|
+
var updateInputWithSelectedTime = function updateInputWithSelectedTime() {
|
|
883
|
+
var selectedTimeString = getStringFromTimeValue(selectedTime);
|
|
884
|
+
setInputText(selectedTimeString);
|
|
885
|
+
var timeFieldIsFocused = document.activeElement === (timeFieldRef == null ? void 0 : timeFieldRef.current);
|
|
886
|
+
if (selectedTimeString === '' && !timeFieldIsFocused) addPlaceholderToInput();
|
|
887
|
+
};
|
|
888
|
+
var getStringFromTimeValue = function getStringFromTimeValue(timeValue) {
|
|
889
|
+
if (timeValue === null) return '';
|
|
890
|
+
var timeObject = 'day' in timeValue ? toTime(timeValue) : timeValue;
|
|
891
|
+
if (showSeconds) return timeObject.toString().slice(0, 8);
|
|
892
|
+
return timeObject.toString().slice(0, 5);
|
|
893
|
+
};
|
|
894
|
+
var addPlaceholderToInput = function addPlaceholderToInput() {
|
|
895
|
+
if (showSeconds) setInputText('–– : –– : ––');else setInputText('–– : ––');
|
|
896
|
+
};
|
|
897
|
+
var handleChangeTime = function handleChangeTime() {
|
|
898
|
+
var newTime = getValueForOnChangeFromInput();
|
|
899
|
+
if (newTime === inputResult.INVALID) {
|
|
900
|
+
return updateInputWithSelectedTime();
|
|
901
|
+
}
|
|
902
|
+
if ((newTime == null ? void 0 : newTime.toString()) !== (selectedTime == null ? void 0 : selectedTime.toString())) onChange == null ? void 0 : onChange(newTime);
|
|
903
|
+
};
|
|
904
|
+
var getValueForOnChangeFromInput = function getValueForOnChangeFromInput() {
|
|
905
|
+
var formatedTimeString = formatTimeString(inputText);
|
|
906
|
+
var newTimeObject = formatedTimeStringToTimeObject(formatedTimeString);
|
|
907
|
+
if (newTimeObject === inputResult.INVALID) {
|
|
908
|
+
return inputResult.INVALID;
|
|
909
|
+
}
|
|
910
|
+
if (newTimeObject === inputResult.RESET_TIME) {
|
|
911
|
+
return null;
|
|
912
|
+
}
|
|
913
|
+
var updatedSelectedTime = getSelectedTimeWithTimeFromObject(newTimeObject);
|
|
914
|
+
return updatedSelectedTime;
|
|
915
|
+
};
|
|
916
|
+
var formatTimeString = function formatTimeString(timeString) {
|
|
917
|
+
if (timeString.length === 0) return inputResult.RESET_TIME;
|
|
918
|
+
if (timeString.length < 3 || timeString.length > 8) return inputResult.INVALID;
|
|
919
|
+
var numberOfColons = (timeString.match(new RegExp(':', 'g')) || []).length;
|
|
920
|
+
var stringLength = timeString.length;
|
|
921
|
+
// targets 'd:dd:dd' and 'dd:dd:dd'
|
|
922
|
+
if (numberOfColons === 2 && stringLength >= 7) {
|
|
923
|
+
return timeString.padStart(8, '0');
|
|
924
|
+
}
|
|
925
|
+
// targets 'd:dd' and 'dd:dd'
|
|
926
|
+
if (numberOfColons === 1) {
|
|
927
|
+
return timeString.padStart(5, '0');
|
|
928
|
+
}
|
|
929
|
+
if (stringLength > 6) return inputResult.INVALID;
|
|
930
|
+
var stringLengthIsEven = stringLength % 2 == 0;
|
|
931
|
+
var hourString = stringLengthIsEven ? timeString.slice(0, 2) : timeString.slice(0, 1);
|
|
932
|
+
var minuteString = stringLengthIsEven ? timeString.slice(2, 4) : timeString.slice(1, 3);
|
|
933
|
+
var secondString = function () {
|
|
934
|
+
var stringSlice = stringLengthIsEven ? timeString.slice(4, 6) : timeString.slice(3, 5);
|
|
935
|
+
if (stringSlice === '') return '00';
|
|
936
|
+
return stringSlice;
|
|
937
|
+
}();
|
|
938
|
+
var timeStringWithColon = hourString.padStart(2, '0') + ':' + minuteString + (showSeconds ? ':' + secondString : '');
|
|
939
|
+
return timeStringWithColon;
|
|
940
|
+
};
|
|
941
|
+
var formatedTimeStringToTimeObject = function formatedTimeStringToTimeObject(formatedTimeString) {
|
|
942
|
+
if (formatedTimeString === inputResult.INVALID) return inputResult.INVALID;
|
|
943
|
+
if (formatedTimeString === inputResult.RESET_TIME) return inputResult.RESET_TIME;
|
|
944
|
+
var isNumberTest = /^\d+$/;
|
|
945
|
+
var hourString = formatedTimeString.slice(0, 2);
|
|
946
|
+
var minuteString = formatedTimeString.slice(3, 5);
|
|
947
|
+
var secondString = formatedTimeString.slice(6, 8);
|
|
948
|
+
if (hourString.match(isNumberTest) && minuteString.match(isNumberTest) && (secondString === '' || secondString.match(isNumberTest))) {
|
|
949
|
+
try {
|
|
950
|
+
var timeObject = parseTime(formatedTimeString);
|
|
951
|
+
return timeObject;
|
|
952
|
+
} catch (e) {
|
|
953
|
+
return inputResult.INVALID;
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
return inputResult.INVALID;
|
|
957
|
+
};
|
|
958
|
+
var getSelectedTimeWithTimeFromObject = function getSelectedTimeWithTimeFromObject(newTime) {
|
|
959
|
+
var selectedTimeWithUpdateTime = (lastValidSelectedTime != null ? lastValidSelectedTime : new Time()).set({
|
|
960
|
+
hour: newTime.hour,
|
|
961
|
+
minute: newTime.minute,
|
|
962
|
+
second: newTime.second
|
|
963
|
+
});
|
|
964
|
+
return selectedTimeWithUpdateTime;
|
|
965
|
+
};
|
|
966
|
+
var usedFieldProps = _objectWithoutPropertiesLoose(fieldProps, _excluded2);
|
|
967
|
+
return React.createElement(I18nProvider, {
|
|
968
|
+
locale: locale
|
|
969
|
+
}, React.createElement(TextField, _extends({
|
|
970
|
+
append: showClockIcon ? React.createElement(ClockIcon, {
|
|
971
|
+
inline: true,
|
|
972
|
+
onClick: function onClick() {
|
|
973
|
+
var _timeFieldRef$current;
|
|
974
|
+
return timeFieldRef == null ? void 0 : (_timeFieldRef$current = timeFieldRef.current) == null ? void 0 : _timeFieldRef$current.focus();
|
|
975
|
+
}
|
|
976
|
+
}) : undefined,
|
|
977
|
+
className: classNames('eds-simple-timepicker', {
|
|
978
|
+
'eds-simple-timepicker--padding-large': padding === 'large',
|
|
979
|
+
'eds-simple-timepicker--show-seconds': showSeconds
|
|
980
|
+
}),
|
|
981
|
+
disabled: disabled,
|
|
982
|
+
disableLabelAnimation: true,
|
|
983
|
+
feedback: feedback,
|
|
984
|
+
label: label,
|
|
985
|
+
labelProps: labelProps,
|
|
986
|
+
labelTooltip: labelTooltip,
|
|
987
|
+
onBlur: function onBlur() {
|
|
988
|
+
handleChangeTime();
|
|
989
|
+
if (selectedTime === null) {
|
|
990
|
+
addPlaceholderToInput();
|
|
991
|
+
}
|
|
992
|
+
},
|
|
993
|
+
onChange: function onChange(e) {
|
|
994
|
+
return setInputText(e.target.value);
|
|
995
|
+
},
|
|
996
|
+
onFocus: function onFocus() {
|
|
997
|
+
if (selectedTime === null) {
|
|
998
|
+
setInputText('');
|
|
999
|
+
}
|
|
1000
|
+
},
|
|
1001
|
+
onKeyDown: function onKeyDown(_ref2) {
|
|
1002
|
+
var key = _ref2.key;
|
|
1003
|
+
if (key === 'Enter') handleChangeTime();
|
|
1004
|
+
},
|
|
1005
|
+
placeholder: showSeconds ? '–– : –– : ––' : '–– : ––',
|
|
1006
|
+
readOnly: readOnly,
|
|
1007
|
+
ref: mergeRefs(timeFieldRef, inputRef),
|
|
1008
|
+
style: style,
|
|
1009
|
+
value: inputText,
|
|
1010
|
+
variant: variant
|
|
1011
|
+
}, usedFieldProps)));
|
|
1012
|
+
};
|
|
1013
|
+
|
|
831
1014
|
warnAboutMissingStyles('datepicker', 'form', 'icons');
|
|
832
1015
|
|
|
833
|
-
export { Calendar, DateField, DatePicker, NativeDatePicker, NativeTimePicker, TimePicker, ariaLabelIfNorwegian, createCalendar, nativeDateToDateValue, nativeDateToTimeValue, timeOrDateValueToNativeDate };
|
|
1016
|
+
export { Calendar, DateField, DatePicker, NativeDatePicker, NativeTimePicker, SimpleTimePicker, TimePicker, ariaLabelIfNorwegian, createCalendar, nativeDateToDateValue, nativeDateToTimeValue, timeOrDateValueToNativeDate };
|
|
834
1017
|
//# sourceMappingURL=datepicker.esm.js.map
|