@entur/datepicker 3.0.6 → 4.0.0-RC.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 +59 -7
- package/dist/DatePicker/beta/Calendar.d.ts +13 -0
- package/dist/DatePicker/beta/CalendarCell.d.ts +10 -0
- package/dist/DatePicker/beta/CalendarGrid.d.ts +9 -0
- package/dist/DatePicker/beta/DateField.d.ts +46 -0
- package/dist/DatePicker/beta/DatePicker.d.ts +66 -0
- package/dist/DatePicker/beta/index.d.ts +3 -0
- package/dist/DatePicker/index.d.ts +1 -0
- package/dist/TimePicker/index.d.ts +1 -1
- package/dist/datepicker.cjs.development.js +557 -94
- 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 +553 -96
- package/dist/datepicker.esm.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/shared/CalendarButton.d.ts +9 -0
- package/dist/{TimePicker/TimeSegment.d.ts → shared/FieldSegment.d.ts} +2 -1
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/utils.d.ts +22 -0
- package/dist/styles.css +236 -45
- package/package.json +15 -7
- package/dist/TimePicker/utils.d.ts +0 -18
|
@@ -14,16 +14,25 @@ var button = require('@entur/button');
|
|
|
14
14
|
var form = require('@entur/form');
|
|
15
15
|
var tooltip = require('@entur/tooltip');
|
|
16
16
|
require('react-datepicker/dist/react-datepicker.css');
|
|
17
|
+
var datepicker$1 = require('@react-stately/datepicker');
|
|
17
18
|
var datepicker = require('@react-aria/datepicker');
|
|
18
19
|
var i18n = require('@react-aria/i18n');
|
|
19
|
-
var datepicker$1 = require('@react-stately/datepicker');
|
|
20
20
|
var date = require('@internationalized/date');
|
|
21
|
+
var calendar = require('@react-aria/calendar');
|
|
22
|
+
var calendar$1 = require('@react-stately/calendar');
|
|
23
|
+
var button$1 = require('@react-aria/button');
|
|
24
|
+
var a11y = require('@entur/a11y');
|
|
25
|
+
var reactDom = require('@floating-ui/react-dom');
|
|
26
|
+
var FocusLock = require('react-focus-lock');
|
|
27
|
+
var tokens = require('@entur/tokens');
|
|
28
|
+
var modal = require('@entur/modal');
|
|
21
29
|
|
|
22
30
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
23
31
|
|
|
24
32
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
25
33
|
var ReactDatepicker__default = /*#__PURE__*/_interopDefaultLegacy(ReactDatepicker);
|
|
26
34
|
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
35
|
+
var FocusLock__default = /*#__PURE__*/_interopDefaultLegacy(FocusLock);
|
|
27
36
|
|
|
28
37
|
function _extends() {
|
|
29
38
|
_extends = Object.assign || function (target) {
|
|
@@ -99,7 +108,7 @@ function getMonthName(monthIndex, locale) {
|
|
|
99
108
|
return formatter.format(new Date(year, monthIndex));
|
|
100
109
|
}
|
|
101
110
|
|
|
102
|
-
var _excluded$
|
|
111
|
+
var _excluded$a = ["style", "label", "inputPlaceholder", "prepend", "feedback", "variant", "disabled", "calendarButtonTooltipOpen", "calendarButtonTooltipClose", "hideCalendarButton", "disableLabelAnimation", "inputRef", "calendarButtonId", "forwardRef", "toggleCalendarGUI", "onKeyDownInput", "onBlurInput", "selectedDate", "setFocusToCalendarGUI", "setShouldFocusOnCalendarButtonAfterSelect", "calendarGUIIsOpen", "placeholder", "onClick", "aria-labelledby"];
|
|
103
112
|
var DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
104
113
|
var style = _ref.style,
|
|
105
114
|
label = _ref.label,
|
|
@@ -123,7 +132,7 @@ var DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function
|
|
|
123
132
|
setShouldFocusOnCalendarButtonAfterSelect = _ref.setShouldFocusOnCalendarButtonAfterSelect,
|
|
124
133
|
calendarGUIIsOpen = _ref.calendarGUIIsOpen,
|
|
125
134
|
onClick = _ref.onClick,
|
|
126
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
135
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$a);
|
|
127
136
|
|
|
128
137
|
React__default["default"].useEffect(function () {
|
|
129
138
|
var _inputRef$current, _inputRef$current2, _inputRef$current3;
|
|
@@ -201,7 +210,7 @@ var DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function
|
|
|
201
210
|
}, rest));
|
|
202
211
|
});
|
|
203
212
|
|
|
204
|
-
var _excluded$
|
|
213
|
+
var _excluded$9 = ["style", "className", "selectedDate", "label", "placeholder", "onChange", "onKeyDown", "dateFormats", "minDate", "maxDate", "inline", "disabled", "prepend", "feedback", "variant", "validationFeedback", "validationVariant", "disableLabelAnimation", "calendarButtonTooltipOpen", "calendarButtonTooltipClose", "hideCalendarButton", "hideCalendar", "hideValidation", "weekLabel", "chooseDayAriaLabelPrefix", "previousMonthAriaLabel", "nextMonthAriaLabel", "locale", "open"];
|
|
205
214
|
ReactDatepicker.registerLocale('nb', locale.nb);
|
|
206
215
|
var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
207
216
|
var style = _ref.style,
|
|
@@ -253,7 +262,7 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
|
|
|
253
262
|
_ref$locale = _ref.locale,
|
|
254
263
|
locale$1 = _ref$locale === void 0 ? locale.nb : _ref$locale,
|
|
255
264
|
open = _ref.open,
|
|
256
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
265
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$9);
|
|
257
266
|
|
|
258
267
|
var datepickerId = utils.useRandomId('eds-datepicker');
|
|
259
268
|
var datepickerRef = React.useRef(null);
|
|
@@ -485,6 +494,541 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
|
|
|
485
494
|
}, rest)));
|
|
486
495
|
});
|
|
487
496
|
|
|
497
|
+
var FieldSegment = function FieldSegment(_ref) {
|
|
498
|
+
var segment = _ref.segment,
|
|
499
|
+
state = _ref.state;
|
|
500
|
+
var ref = React.useRef(null);
|
|
501
|
+
|
|
502
|
+
var _useDateSegment = datepicker.useDateSegment(segment, state, ref),
|
|
503
|
+
segmentProps = _useDateSegment.segmentProps;
|
|
504
|
+
|
|
505
|
+
var is12HourFormatted = state.segments.some(function (segment) {
|
|
506
|
+
return segment.text === 'AM' || segment.text === 'PM';
|
|
507
|
+
});
|
|
508
|
+
|
|
509
|
+
var segmentDisplayText = function segmentDisplayText() {
|
|
510
|
+
if (is12HourFormatted) return segment.text; // if number add '0' padding to start when one digit
|
|
511
|
+
|
|
512
|
+
if (segment.text.match(/\d+/)) return segment.text.padStart(2, '0');
|
|
513
|
+
return segment.text;
|
|
514
|
+
};
|
|
515
|
+
|
|
516
|
+
return React__default["default"].createElement("div", _extends({}, segmentProps, {
|
|
517
|
+
ref: ref,
|
|
518
|
+
className: classNames__default["default"]('eds-date-and-time-field__segment', {
|
|
519
|
+
'eds-date-and-time-field__segment--placeholder': segment.isPlaceholder,
|
|
520
|
+
'eds-date-and-time-field__segment--dot-separator': segment.text === '.'
|
|
521
|
+
}),
|
|
522
|
+
tabIndex: state.isDisabled ? -1 : segmentProps.tabIndex
|
|
523
|
+
}), segmentDisplayText());
|
|
524
|
+
};
|
|
525
|
+
|
|
526
|
+
/**
|
|
527
|
+
* Tar inn et JS Date-objekt og returnerer et av Date- eller TimeValue-objektene fra @internationalized/date-pakken
|
|
528
|
+
* @param {Date} date JS Date-objekt som ønskes konvertert til et Date- eller TimeValue-objekt
|
|
529
|
+
* @param {boolean} noDateOnlyTime Hvis datoen er irrelevant kan denne settes til true, da får man et Time-objekt uten dato tilbake
|
|
530
|
+
* @param {boolean} noTimeOnlyDate Hvis tidspunktet er irrelevant kan denne settes til true, da får man et CalendarDate-objekt uten tidspunkt tilbake
|
|
531
|
+
* @param {string} timeZone Tidssonen på IANA-formatet som tidpunktet skal konverteres til. Utelates denne får man et tidspunkt uten tidssone. Kan brukes med og uten en UTC-offset Vær obs på annen oppførsel med offset, les mer på beskrivelsen av offset
|
|
532
|
+
* @param {number} offset UTC-offset i millisekunder, må brukes med en tidssone. Ved å legge på en offset lager du en variant av en tidssone. Det betyr at tidspunktet ikke endres (time, minutt, sekund uendret), men tidssonen, med tilhørende offset, tidspunktet er i endres.
|
|
533
|
+
* @returns {Time | CalendarDateTime | ZonedDateTime | CalendarDate} et av Time- eller DateValue-objektene med verdier fra date
|
|
534
|
+
*/
|
|
535
|
+
|
|
536
|
+
var nativeDateToTimeOrDateValue = function nativeDateToTimeOrDateValue(date$1, noDateOnlyTime, noTimeOnlyDate, timeZone, offset) {
|
|
537
|
+
if (noDateOnlyTime === void 0) {
|
|
538
|
+
noDateOnlyTime = false;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
if (noTimeOnlyDate === void 0) {
|
|
542
|
+
noTimeOnlyDate = false;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
if (timeZone) {
|
|
546
|
+
if (offset) {
|
|
547
|
+
return new date.ZonedDateTime(date$1.getFullYear(), date$1.getMonth() + 1, date$1.getDate(), timeZone, offset, date$1.getHours(), date$1.getMinutes(), date$1.getSeconds());
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
return date.parseAbsolute(date$1.toISOString(), timeZone);
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
if (noDateOnlyTime) return new date.Time(date$1.getHours(), date$1.getMinutes(), date$1.getSeconds(), 0);
|
|
554
|
+
if (noTimeOnlyDate) return new date.CalendarDate(date$1.getFullYear(), date$1.getMonth() + 1, date$1.getDate());
|
|
555
|
+
return new date.CalendarDateTime(date$1.getFullYear(), date$1.getMonth() + 1, date$1.getDate(), date$1.getHours(), date$1.getMinutes(), date$1.getSeconds());
|
|
556
|
+
};
|
|
557
|
+
/**
|
|
558
|
+
* Tar inn et av Date- eller TimeValue-objektene fra @internationalized/date-pakken og returnerer et JS Date-objekt
|
|
559
|
+
* @param {DateValue | TimeValue} value En dato eller et tidspunkt på Date- eller TimeValue-formatet som ønskes konvertert til et JS Date-objekt
|
|
560
|
+
* @param {string} timeZoneForCalendarDateTime Tidssonen value er i. Fungerer kun med typen er CalendarDateTime
|
|
561
|
+
* @returns {Date} et Date-objekt med verdier fra time
|
|
562
|
+
*/
|
|
563
|
+
// This function uses a lot of @ts-expect-error to make it work with all Date- and TimeValue types. Sorry ...
|
|
564
|
+
|
|
565
|
+
var timeOrDateValueToNativeDate = function timeOrDateValueToNativeDate(value, timeZoneForCalendarDateTime) {
|
|
566
|
+
// @ts-expect-error .day does not exist on Time-object
|
|
567
|
+
if (!value.day) {
|
|
568
|
+
// type is Time
|
|
569
|
+
var date$1 = new Date(); // @ts-expect-error hour does not exist on CalendarDate
|
|
570
|
+
|
|
571
|
+
date$1.setHours(value.hour); // @ts-expect-error minute does not exist on CalendarDate
|
|
572
|
+
|
|
573
|
+
date$1.setMinutes(value.minute); // @ts-expect-error second does not exist on CalendarDate
|
|
574
|
+
|
|
575
|
+
date$1.setSeconds(value.second);
|
|
576
|
+
return date$1;
|
|
577
|
+
} // @ts-expect-error .day does not exist on Time-object
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
if (!value.hour) {
|
|
581
|
+
// type is CalendarDate
|
|
582
|
+
// @ts-expect-error .toDate(timeZone) does not exist in type Time
|
|
583
|
+
return value.toDate(timeZoneForCalendarDateTime != null ? timeZoneForCalendarDateTime : date.getLocalTimeZone());
|
|
584
|
+
} // @ts-expect-error .timeZone does not exist in type Time and CalendarDateTime
|
|
585
|
+
|
|
586
|
+
|
|
587
|
+
if (!value.timeZone) {
|
|
588
|
+
// type is CalendarDateTime
|
|
589
|
+
if (timeZoneForCalendarDateTime) // @ts-expect-error .toDate(timeZone) does not exist in type Time
|
|
590
|
+
return value.toDate(timeZoneForCalendarDateTime);
|
|
591
|
+
return new Date( // @ts-expect-error not in type Time
|
|
592
|
+
value.year, // @ts-expect-error not in type Time
|
|
593
|
+
value.month - 1, // @ts-expect-error not in type Time
|
|
594
|
+
value.day, // @ts-expect-error not in type CalendarDate
|
|
595
|
+
value.hour, // @ts-expect-error not in type CalendarDate
|
|
596
|
+
value.minute, // @ts-expect-error not in type CalendarDate
|
|
597
|
+
value.second);
|
|
598
|
+
} // @ts-expect-error .toDate() does not exist in type Time or CalendarDateTime
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
return value.toDate();
|
|
602
|
+
};
|
|
603
|
+
var createCalendar = function createCalendar(identifier) {
|
|
604
|
+
if (identifier === void 0) {
|
|
605
|
+
identifier = 'gregory';
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
switch (identifier) {
|
|
609
|
+
case 'gregory':
|
|
610
|
+
return new date.GregorianCalendar();
|
|
611
|
+
|
|
612
|
+
default:
|
|
613
|
+
throw new Error("Unsupported calendar " + identifier);
|
|
614
|
+
}
|
|
615
|
+
};
|
|
616
|
+
var ariaLabelIfNorwegian = function ariaLabelIfNorwegian(norwegianAriaLabel, locale, propsCollection) {
|
|
617
|
+
if (locale.toLowerCase() !== 'no-no') return propsCollection['aria-label'];
|
|
618
|
+
return norwegianAriaLabel;
|
|
619
|
+
};
|
|
620
|
+
|
|
621
|
+
var _excluded$8 = ["selectedDate", "label", "locale", "showTimeZone", "showTime", "granularity", "disabled", "variant", "feedback", "validationVariant", "validationFeedback", "labelTooltip", "style", "className", "labelProps", "append"];
|
|
622
|
+
var DateField = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
623
|
+
var value = _ref.selectedDate,
|
|
624
|
+
label = _ref.label,
|
|
625
|
+
customLocale = _ref.locale,
|
|
626
|
+
showTimeZone = _ref.showTimeZone,
|
|
627
|
+
showTime = _ref.showTime,
|
|
628
|
+
_ref$granularity = _ref.granularity,
|
|
629
|
+
granularity = _ref$granularity === void 0 ? 'day' : _ref$granularity,
|
|
630
|
+
disabled = _ref.disabled,
|
|
631
|
+
variant = _ref.variant,
|
|
632
|
+
feedback = _ref.feedback,
|
|
633
|
+
_ref$validationVarian = _ref.validationVariant,
|
|
634
|
+
validationVariant = _ref$validationVarian === void 0 ? 'error' : _ref$validationVarian,
|
|
635
|
+
_ref$validationFeedba = _ref.validationFeedback,
|
|
636
|
+
validationFeedback = _ref$validationFeedba === void 0 ? 'Ugyldig dato' : _ref$validationFeedba,
|
|
637
|
+
labelTooltip = _ref.labelTooltip,
|
|
638
|
+
style = _ref.style,
|
|
639
|
+
className = _ref.className,
|
|
640
|
+
parentLabelProps = _ref.labelProps,
|
|
641
|
+
append = _ref.append,
|
|
642
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);
|
|
643
|
+
|
|
644
|
+
var _useLocale = i18n.useLocale(),
|
|
645
|
+
locale = _useLocale.locale;
|
|
646
|
+
|
|
647
|
+
var state = datepicker$1.useDateFieldState(_extends({}, rest, {
|
|
648
|
+
locale: customLocale != null ? customLocale : locale,
|
|
649
|
+
createCalendar: createCalendar,
|
|
650
|
+
value: value === null ? undefined : value,
|
|
651
|
+
hideTimeZone: !showTimeZone,
|
|
652
|
+
granularity: showTime ? 'minute' : granularity
|
|
653
|
+
}));
|
|
654
|
+
var dateFieldRef = React.useRef(null);
|
|
655
|
+
|
|
656
|
+
var _useDateField = datepicker.useDateField(_extends({}, rest, {
|
|
657
|
+
label: label,
|
|
658
|
+
isDisabled: disabled || rest.isDisabled
|
|
659
|
+
}), state, dateFieldRef),
|
|
660
|
+
labelProps = _useDateField.labelProps,
|
|
661
|
+
fieldProps = _useDateField.fieldProps;
|
|
662
|
+
|
|
663
|
+
var id = utils.useRandomId('datefield');
|
|
664
|
+
return React__default["default"].createElement(utils.ConditionalWrapper, {
|
|
665
|
+
condition: customLocale !== undefined,
|
|
666
|
+
wrapper: function wrapper(child) {
|
|
667
|
+
return React__default["default"].createElement(i18n.I18nProvider, {
|
|
668
|
+
locale: customLocale
|
|
669
|
+
}, child);
|
|
670
|
+
}
|
|
671
|
+
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
672
|
+
style: style,
|
|
673
|
+
className: classNames__default["default"]('eds-datefield', className),
|
|
674
|
+
labelId: id,
|
|
675
|
+
ref: utils.mergeRefs(dateFieldRef, ref),
|
|
676
|
+
disabled: state.isDisabled,
|
|
677
|
+
disableLabelAnimation: true,
|
|
678
|
+
label: label,
|
|
679
|
+
labelTooltip: labelTooltip,
|
|
680
|
+
labelProps: parentLabelProps != null ? parentLabelProps : labelProps
|
|
681
|
+
}, fieldProps, {
|
|
682
|
+
variant: (variant != null ? variant : state.validationState === 'invalid') ? validationVariant : undefined,
|
|
683
|
+
feedback: (feedback != null ? feedback : state.validationState === 'invalid') ? validationFeedback : undefined,
|
|
684
|
+
append: append,
|
|
685
|
+
ariaAlertOnFeedback: true
|
|
686
|
+
}), state.segments.map(function (segment, i) {
|
|
687
|
+
return React__default["default"].createElement(FieldSegment, {
|
|
688
|
+
segment: segment,
|
|
689
|
+
state: state,
|
|
690
|
+
key: i
|
|
691
|
+
});
|
|
692
|
+
})));
|
|
693
|
+
});
|
|
694
|
+
|
|
695
|
+
var _excluded$7 = ["children", "className", "style"];
|
|
696
|
+
var CalendarButton = function CalendarButton(_ref) {
|
|
697
|
+
var children = _ref.children,
|
|
698
|
+
className = _ref.className,
|
|
699
|
+
style = _ref.style,
|
|
700
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$7);
|
|
701
|
+
|
|
702
|
+
var ref = React.useRef(null);
|
|
703
|
+
|
|
704
|
+
var _useButton = button$1.useButton(props, ref),
|
|
705
|
+
buttonProps = _useButton.buttonProps;
|
|
706
|
+
|
|
707
|
+
return React__default["default"].createElement(button.IconButton, _extends({}, buttonProps, {
|
|
708
|
+
ref: ref,
|
|
709
|
+
className: className,
|
|
710
|
+
style: style
|
|
711
|
+
}), children);
|
|
712
|
+
};
|
|
713
|
+
|
|
714
|
+
var _excluded$6 = ["state", "date", "onSelectedCellClick"];
|
|
715
|
+
var CalendarCell = function CalendarCell(_ref) {
|
|
716
|
+
var _state$timeZone;
|
|
717
|
+
|
|
718
|
+
var state = _ref.state,
|
|
719
|
+
date$1 = _ref.date,
|
|
720
|
+
_ref$onSelectedCellCl = _ref.onSelectedCellClick,
|
|
721
|
+
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
722
|
+
return;
|
|
723
|
+
} : _ref$onSelectedCellCl,
|
|
724
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
725
|
+
|
|
726
|
+
var cellRef = React.useRef(null);
|
|
727
|
+
|
|
728
|
+
var _useCalendarCell = calendar.useCalendarCell({
|
|
729
|
+
date: date$1
|
|
730
|
+
}, state, cellRef),
|
|
731
|
+
cellProps = _useCalendarCell.cellProps,
|
|
732
|
+
buttonProps = _useCalendarCell.buttonProps,
|
|
733
|
+
isSelected = _useCalendarCell.isSelected,
|
|
734
|
+
isOutsideVisibleRange = _useCalendarCell.isOutsideVisibleRange,
|
|
735
|
+
isDisabled = _useCalendarCell.isDisabled,
|
|
736
|
+
isUnavailable = _useCalendarCell.isUnavailable,
|
|
737
|
+
formattedDate = _useCalendarCell.formattedDate;
|
|
738
|
+
|
|
739
|
+
return React__default["default"].createElement("td", _extends({}, cellProps, {
|
|
740
|
+
className: "eds-datepicker__calendar__grid__cell__td"
|
|
741
|
+
}), React__default["default"].createElement("div", _extends({}, buttonProps, {
|
|
742
|
+
ref: cellRef,
|
|
743
|
+
hidden: isOutsideVisibleRange,
|
|
744
|
+
className: classNames__default["default"]('eds-datepicker__calendar__grid__cell', {
|
|
745
|
+
'eds-datepicker__calendar__grid__cell--selected': isSelected,
|
|
746
|
+
'eds-datepicker__calendar__grid__cell--disabled': isDisabled || isUnavailable,
|
|
747
|
+
'eds-datepicker__calendar__grid__cell--outside-month': isOutsideVisibleRange,
|
|
748
|
+
'eds-datepicker__calendar__grid__cell--today': date.isEqualDay(date$1, date.now((_state$timeZone = state.timeZone) != null ? _state$timeZone : date.getLocalTimeZone()))
|
|
749
|
+
})
|
|
750
|
+
}, rest, {
|
|
751
|
+
onClick: function onClick(e) {
|
|
752
|
+
buttonProps.onClick && buttonProps.onClick(e);
|
|
753
|
+
isSelected && onSelectedCellClick();
|
|
754
|
+
}
|
|
755
|
+
}), formattedDate));
|
|
756
|
+
};
|
|
757
|
+
|
|
758
|
+
var _excluded$5 = ["state", "navigationDescription", "onSelectedCellClick"];
|
|
759
|
+
var CalendarGrid = function CalendarGrid(_ref) {
|
|
760
|
+
var state = _ref.state,
|
|
761
|
+
navigationDescription = _ref.navigationDescription,
|
|
762
|
+
_ref$onSelectedCellCl = _ref.onSelectedCellClick,
|
|
763
|
+
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
764
|
+
return;
|
|
765
|
+
} : _ref$onSelectedCellCl,
|
|
766
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
767
|
+
|
|
768
|
+
var calendarGridId = utils.useRandomId('eds-calendar');
|
|
769
|
+
|
|
770
|
+
var _useLocale = i18n.useLocale(),
|
|
771
|
+
locale = _useLocale.locale;
|
|
772
|
+
|
|
773
|
+
var _useCalendarGrid = calendar.useCalendarGrid(rest, state),
|
|
774
|
+
gridProps = _useCalendarGrid.gridProps,
|
|
775
|
+
headerProps = _useCalendarGrid.headerProps,
|
|
776
|
+
weekDays = _useCalendarGrid.weekDays;
|
|
777
|
+
|
|
778
|
+
var weeksInMonth = date.getWeeksInMonth(state.visibleRange.start, locale);
|
|
779
|
+
var weeksArray = Array.from(Array(weeksInMonth).keys());
|
|
780
|
+
|
|
781
|
+
var weekDaysMapped = function weekDaysMapped() {
|
|
782
|
+
if (locale.toLowerCase() === 'no-no' || locale.toLowerCase() === 'no') return ['ma', 'ti', 'on', 'to', 'fr', 'lø', 'sø'];
|
|
783
|
+
if (weekDays.toString() === 'M,T,W,T,F,S,S') return ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];
|
|
784
|
+
return weekDays.map(function (day) {
|
|
785
|
+
return day.toLowerCase();
|
|
786
|
+
});
|
|
787
|
+
};
|
|
788
|
+
|
|
789
|
+
var getNavigationDescription = function getNavigationDescription() {
|
|
790
|
+
if (navigationDescription) return navigationDescription;
|
|
791
|
+
if (locale.toLowerCase().includes('en')) return 'Use the arrow keys to navigate between dates';
|
|
792
|
+
return 'Bruk piltastene til å navigere mellom datoer';
|
|
793
|
+
};
|
|
794
|
+
|
|
795
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement("table", _extends({}, gridProps, {
|
|
796
|
+
cellSpacing: "0",
|
|
797
|
+
className: "eds-datepicker__calendar__grid"
|
|
798
|
+
}), React__default["default"].createElement("thead", _extends({}, headerProps), React__default["default"].createElement("tr", null, weekDaysMapped().map(function (day, index) {
|
|
799
|
+
return React__default["default"].createElement("th", {
|
|
800
|
+
key: index
|
|
801
|
+
}, day);
|
|
802
|
+
}))), React__default["default"].createElement("tbody", null, weeksArray.map(function (weekIndex) {
|
|
803
|
+
return React__default["default"].createElement("tr", {
|
|
804
|
+
key: weekIndex
|
|
805
|
+
}, state.getDatesInWeek(weekIndex).map(function (date, i) {
|
|
806
|
+
return date ? React__default["default"].createElement(CalendarCell, {
|
|
807
|
+
key: i,
|
|
808
|
+
state: state,
|
|
809
|
+
date: date,
|
|
810
|
+
"aria-describedby": calendarGridId + 'description',
|
|
811
|
+
onSelectedCellClick: onSelectedCellClick
|
|
812
|
+
}) : React__default["default"].createElement("td", {
|
|
813
|
+
key: i
|
|
814
|
+
});
|
|
815
|
+
}));
|
|
816
|
+
}))), React__default["default"].createElement(a11y.VisuallyHidden, {
|
|
817
|
+
id: calendarGridId + 'description'
|
|
818
|
+
}, getNavigationDescription()));
|
|
819
|
+
};
|
|
820
|
+
|
|
821
|
+
var _excluded$4 = ["selectedDate", "onChange", "locale", "style", "children", "navigationDescription", "onSelectedCellClick"];
|
|
822
|
+
var Calendar = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
823
|
+
var onChange = _ref.onChange,
|
|
824
|
+
customLocale = _ref.locale,
|
|
825
|
+
style = _ref.style,
|
|
826
|
+
navigationDescription = _ref.navigationDescription,
|
|
827
|
+
_ref$onSelectedCellCl = _ref.onSelectedCellClick,
|
|
828
|
+
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
829
|
+
return;
|
|
830
|
+
} : _ref$onSelectedCellCl,
|
|
831
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
|
|
832
|
+
|
|
833
|
+
var _useLocale = i18n.useLocale(),
|
|
834
|
+
locale = _useLocale.locale;
|
|
835
|
+
|
|
836
|
+
var state = calendar$1.useCalendarState(_extends({}, rest, {
|
|
837
|
+
onChange: onChange,
|
|
838
|
+
locale: customLocale != null ? customLocale : locale,
|
|
839
|
+
createCalendar: createCalendar
|
|
840
|
+
}));
|
|
841
|
+
|
|
842
|
+
var _useCalendar = calendar.useCalendar(rest, state),
|
|
843
|
+
calendarProps = _useCalendar.calendarProps,
|
|
844
|
+
prevButtonProps = _useCalendar.prevButtonProps,
|
|
845
|
+
nextButtonProps = _useCalendar.nextButtonProps,
|
|
846
|
+
title = _useCalendar.title;
|
|
847
|
+
|
|
848
|
+
return React__default["default"].createElement(utils.ConditionalWrapper, {
|
|
849
|
+
condition: customLocale,
|
|
850
|
+
wrapper: function wrapper(child) {
|
|
851
|
+
return React__default["default"].createElement(i18n.I18nProvider, {
|
|
852
|
+
locale: customLocale
|
|
853
|
+
}, child);
|
|
854
|
+
}
|
|
855
|
+
}, React__default["default"].createElement("div", _extends({}, calendarProps, {
|
|
856
|
+
ref: ref,
|
|
857
|
+
className: "eds-datepicker__calendar",
|
|
858
|
+
style: style
|
|
859
|
+
}), React__default["default"].createElement("div", {
|
|
860
|
+
className: "eds-datepicker__calendar__header"
|
|
861
|
+
}, React__default["default"].createElement(CalendarButton, _extends({}, prevButtonProps, {
|
|
862
|
+
"aria-label": ariaLabelIfNorwegian('Forrige måned', locale, prevButtonProps)
|
|
863
|
+
}), React__default["default"].createElement(icons.LeftArrowIcon, {
|
|
864
|
+
size: 20
|
|
865
|
+
})), React__default["default"].createElement("h2", null, title), React__default["default"].createElement(CalendarButton, _extends({}, nextButtonProps, {
|
|
866
|
+
"aria-label": ariaLabelIfNorwegian('Neste måned', locale, nextButtonProps)
|
|
867
|
+
}), React__default["default"].createElement(icons.RightArrowIcon, {
|
|
868
|
+
size: 20
|
|
869
|
+
}))), React__default["default"].createElement(CalendarGrid, {
|
|
870
|
+
state: state,
|
|
871
|
+
navigationDescription: navigationDescription,
|
|
872
|
+
onSelectedCellClick: onSelectedCellClick
|
|
873
|
+
})));
|
|
874
|
+
});
|
|
875
|
+
|
|
876
|
+
var _excluded$3 = ["selectedDate", "onChange", "locale", "disabled", "showTime", "showTimeZone", "className", "style", "variant", "feedback", "validationVariant", "validationFeedback", "disableModal", "labelTooltip", "navigationDescription", "minDate", "maxDate", "modalTreshold"];
|
|
877
|
+
var DatePickerBeta = function DatePickerBeta(_ref) {
|
|
878
|
+
var value = _ref.selectedDate,
|
|
879
|
+
onChange = _ref.onChange,
|
|
880
|
+
locale = _ref.locale,
|
|
881
|
+
isDisabled = _ref.disabled,
|
|
882
|
+
showTime = _ref.showTime,
|
|
883
|
+
_ref$showTimeZone = _ref.showTimeZone,
|
|
884
|
+
showTimeZone = _ref$showTimeZone === void 0 ? false : _ref$showTimeZone,
|
|
885
|
+
className = _ref.className,
|
|
886
|
+
variant = _ref.variant,
|
|
887
|
+
feedback = _ref.feedback,
|
|
888
|
+
validationVariant = _ref.validationVariant,
|
|
889
|
+
validationFeedback = _ref.validationFeedback,
|
|
890
|
+
_ref$disableModal = _ref.disableModal,
|
|
891
|
+
disableModal = _ref$disableModal === void 0 ? false : _ref$disableModal,
|
|
892
|
+
labelTooltip = _ref.labelTooltip,
|
|
893
|
+
navigationDescription = _ref.navigationDescription,
|
|
894
|
+
minValue = _ref.minDate,
|
|
895
|
+
maxValue = _ref.maxDate,
|
|
896
|
+
_ref$modalTreshold = _ref.modalTreshold,
|
|
897
|
+
modalTreshold = _ref$modalTreshold === void 0 ? 1000 : _ref$modalTreshold,
|
|
898
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
899
|
+
|
|
900
|
+
var CALENDAR_MODAL_MAX_SCREEN_WIDTH = modalTreshold;
|
|
901
|
+
var datePickerRef = React.useRef(null);
|
|
902
|
+
var calendarRef = React.useRef(null);
|
|
903
|
+
var dateFieldRef = React.useRef(null);
|
|
904
|
+
|
|
905
|
+
var _useWindowDimensions = utils.useWindowDimensions(),
|
|
906
|
+
width = _useWindowDimensions.width;
|
|
907
|
+
|
|
908
|
+
var state = datepicker$1.useDatePickerState(_extends({}, rest, {
|
|
909
|
+
minValue: minValue,
|
|
910
|
+
maxValue: maxValue,
|
|
911
|
+
value: value,
|
|
912
|
+
onChange: onChange
|
|
913
|
+
}));
|
|
914
|
+
|
|
915
|
+
var _useDatePicker = datepicker.useDatePicker(_extends({
|
|
916
|
+
isDisabled: isDisabled,
|
|
917
|
+
minValue: minValue,
|
|
918
|
+
maxValue: maxValue,
|
|
919
|
+
autoFocus: true
|
|
920
|
+
}, rest), state, datePickerRef),
|
|
921
|
+
groupProps = _useDatePicker.groupProps,
|
|
922
|
+
labelProps = _useDatePicker.labelProps,
|
|
923
|
+
fieldProps = _useDatePicker.fieldProps,
|
|
924
|
+
buttonProps = _useDatePicker.buttonProps,
|
|
925
|
+
dialogProps = _useDatePicker.dialogProps,
|
|
926
|
+
calendarProps = _useDatePicker.calendarProps; // calculations for floating-UI popover position
|
|
927
|
+
|
|
928
|
+
|
|
929
|
+
var _useFloating = reactDom.useFloating({
|
|
930
|
+
whileElementsMounted: reactDom.autoUpdate,
|
|
931
|
+
placement: 'bottom-start',
|
|
932
|
+
middleware: [reactDom.offset(tokens.space.extraSmall), reactDom.flip(), reactDom.shift({
|
|
933
|
+
padding: tokens.space.extraSmall
|
|
934
|
+
})]
|
|
935
|
+
}),
|
|
936
|
+
x = _useFloating.x,
|
|
937
|
+
y = _useFloating.y,
|
|
938
|
+
reference = _useFloating.reference,
|
|
939
|
+
floating = _useFloating.floating,
|
|
940
|
+
strategy = _useFloating.strategy;
|
|
941
|
+
|
|
942
|
+
var onChangeCalendar = function onChangeCalendar(newSelectedDate) {
|
|
943
|
+
// Necessary to avoid state update on unmounted component
|
|
944
|
+
requestAnimationFrame(function () {
|
|
945
|
+
calendarProps.onChange && calendarProps.onChange(newSelectedDate);
|
|
946
|
+
});
|
|
947
|
+
};
|
|
948
|
+
|
|
949
|
+
utils.useOnClickOutside([calendarRef], function () {
|
|
950
|
+
state.setOpen(false);
|
|
951
|
+
});
|
|
952
|
+
utils.useOnEscape(calendarRef, function () {
|
|
953
|
+
state.setOpen(false);
|
|
954
|
+
});
|
|
955
|
+
|
|
956
|
+
var calendarSharedProps = _extends({}, dialogProps, calendarProps, {
|
|
957
|
+
disabled: calendarProps.isDisabled,
|
|
958
|
+
navigationDescription: navigationDescription,
|
|
959
|
+
onSelectedCellClick: function onSelectedCellClick() {
|
|
960
|
+
return state.setOpen(false);
|
|
961
|
+
},
|
|
962
|
+
onChange: onChangeCalendar
|
|
963
|
+
});
|
|
964
|
+
|
|
965
|
+
var useModal = width <= CALENDAR_MODAL_MAX_SCREEN_WIDTH && !disableModal;
|
|
966
|
+
var popoverCalendar = React__default["default"].createElement("div", {
|
|
967
|
+
// styling for floating-UI popover
|
|
968
|
+
style: {
|
|
969
|
+
position: strategy,
|
|
970
|
+
top: y != null ? y : 0,
|
|
971
|
+
left: x != null ? x : 0,
|
|
972
|
+
zIndex: tokens.zIndexes.popover
|
|
973
|
+
},
|
|
974
|
+
ref: function ref(node) {
|
|
975
|
+
floating(node);
|
|
976
|
+
}
|
|
977
|
+
}, React__default["default"].createElement(FocusLock__default["default"], {
|
|
978
|
+
disabled: !state.isOpen || useModal,
|
|
979
|
+
returnFocus: true
|
|
980
|
+
}, state.isOpen && React__default["default"].createElement(Calendar, _extends({}, calendarSharedProps, {
|
|
981
|
+
ref: calendarRef
|
|
982
|
+
}))));
|
|
983
|
+
var modalCalendar = React__default["default"].createElement(modal.Modal, {
|
|
984
|
+
size: "small",
|
|
985
|
+
title: "",
|
|
986
|
+
open: state.isOpen,
|
|
987
|
+
onDismiss: function onDismiss() {
|
|
988
|
+
return state.setOpen(false);
|
|
989
|
+
},
|
|
990
|
+
closeOnClickOutside: true,
|
|
991
|
+
className: "eds-datepicker__calendar-modal"
|
|
992
|
+
}, React__default["default"].createElement(Calendar, _extends({}, calendarSharedProps)));
|
|
993
|
+
return React__default["default"].createElement(utils.ConditionalWrapper, {
|
|
994
|
+
condition: locale !== undefined,
|
|
995
|
+
wrapper: function wrapper(child) {
|
|
996
|
+
return React__default["default"].createElement(i18n.I18nProvider, {
|
|
997
|
+
locale: locale
|
|
998
|
+
}, child);
|
|
999
|
+
}
|
|
1000
|
+
}, React__default["default"].createElement("div", {
|
|
1001
|
+
className: classNames__default["default"]('eds-datepicker', className)
|
|
1002
|
+
}, React__default["default"].createElement("div", _extends({}, groupProps, {
|
|
1003
|
+
ref: function ref(node) {
|
|
1004
|
+
datePickerRef.current = node;
|
|
1005
|
+
reference(node);
|
|
1006
|
+
},
|
|
1007
|
+
id: undefined,
|
|
1008
|
+
className: "eds-datepicker__datefield__wrapper"
|
|
1009
|
+
}), React__default["default"].createElement(DateField, _extends({}, fieldProps, {
|
|
1010
|
+
selectedDate: state.value,
|
|
1011
|
+
label: rest.label,
|
|
1012
|
+
labelProps: labelProps,
|
|
1013
|
+
showTime: showTime,
|
|
1014
|
+
showTimeZone: showTimeZone,
|
|
1015
|
+
ref: dateFieldRef,
|
|
1016
|
+
variant: variant,
|
|
1017
|
+
feedback: feedback,
|
|
1018
|
+
validationVariant: validationVariant,
|
|
1019
|
+
validationFeedback: validationFeedback,
|
|
1020
|
+
labelTooltip: labelTooltip,
|
|
1021
|
+
className: classNames__default["default"]('eds-datepicker__datefield', {
|
|
1022
|
+
'eds-datepicker__datefield--disabled': fieldProps.isDisabled
|
|
1023
|
+
})
|
|
1024
|
+
})), !fieldProps.isDisabled && React__default["default"].createElement(CalendarButton, _extends({}, buttonProps, {
|
|
1025
|
+
onPress: function onPress() {
|
|
1026
|
+
return state.setOpen(!state.isOpen);
|
|
1027
|
+
},
|
|
1028
|
+
className: "eds-datepicker__open-calendar-button"
|
|
1029
|
+
}), React__default["default"].createElement(icons.CalendarIcon, null)), useModal ? modalCalendar : popoverCalendar)));
|
|
1030
|
+
};
|
|
1031
|
+
|
|
488
1032
|
var _excluded$2 = ["className", "style", "label", "onChange", "feedback", "variant", "disableLabelAnimation", "prepend"],
|
|
489
1033
|
_excluded2$1 = ["onChange", "variant", "value"];
|
|
490
1034
|
var NativeDatePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
@@ -565,33 +1109,6 @@ var NativeDatePickerBase = /*#__PURE__*/React__default["default"].forwardRef(fun
|
|
|
565
1109
|
}, rest));
|
|
566
1110
|
});
|
|
567
1111
|
|
|
568
|
-
var TimeSegment = function TimeSegment(_ref) {
|
|
569
|
-
var segment = _ref.segment,
|
|
570
|
-
state = _ref.state;
|
|
571
|
-
var ref = React.useRef(null);
|
|
572
|
-
|
|
573
|
-
var _useDateSegment = datepicker.useDateSegment(segment, state, ref),
|
|
574
|
-
segmentProps = _useDateSegment.segmentProps;
|
|
575
|
-
|
|
576
|
-
var is12HourFormatted = state.segments.some(function (segment) {
|
|
577
|
-
return segment.text === 'AM' || segment.text === 'PM';
|
|
578
|
-
});
|
|
579
|
-
|
|
580
|
-
var segmentDisplayText = function segmentDisplayText() {
|
|
581
|
-
if (is12HourFormatted) return segment.text; // if number add '0' padding to start when one digit
|
|
582
|
-
|
|
583
|
-
if (segment.text.match(/\d+/)) return segment.text.padStart(2, '0');
|
|
584
|
-
return segment.text;
|
|
585
|
-
};
|
|
586
|
-
|
|
587
|
-
return React__default["default"].createElement("div", _extends({}, segmentProps, {
|
|
588
|
-
ref: ref,
|
|
589
|
-
className: classNames__default["default"]('eds-timepicker__segment', {
|
|
590
|
-
'eds-timepicker__segment--placeholder': segment.isPlaceholder
|
|
591
|
-
})
|
|
592
|
-
}), segmentDisplayText());
|
|
593
|
-
};
|
|
594
|
-
|
|
595
1112
|
var TimePickerArrowButton = function TimePickerArrowButton(_ref) {
|
|
596
1113
|
var direction = _ref.direction,
|
|
597
1114
|
onClick = _ref.onClick,
|
|
@@ -706,7 +1223,7 @@ var TimePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
|
|
|
706
1223
|
variant: variant,
|
|
707
1224
|
feedback: feedback
|
|
708
1225
|
}), state.segments.map(function (segment, i) {
|
|
709
|
-
return React__default["default"].createElement(
|
|
1226
|
+
return React__default["default"].createElement(FieldSegment, {
|
|
710
1227
|
segment: segment,
|
|
711
1228
|
state: state,
|
|
712
1229
|
key: i
|
|
@@ -794,71 +1311,17 @@ var NativeTimePickerBase = /*#__PURE__*/React__default["default"].forwardRef(fun
|
|
|
794
1311
|
}, rest));
|
|
795
1312
|
});
|
|
796
1313
|
|
|
797
|
-
/**
|
|
798
|
-
* Tar inn et JS Date-objekt og returnerer et av TimeValue-objektene fra @internationalized/date-pakken
|
|
799
|
-
* @param {Date} date JS Date-objekt som ønskes konvertert til et TimeValue-objekt
|
|
800
|
-
* @param {boolean} noDateOnlyTime Hvis datoen er irrelevant kan denne settes til true, da får man et Time-objekt uten dato tilbake
|
|
801
|
-
* @param {string} timeZone Tidssonen på IANA-formatet som tidpunktet skal konverteres til. Utelates denne får man et tidspunkt uten tidssone. Kan brukes med og uten en UTC-offset Vær obs på annen oppførsel med offset, les mer på beskrivelsen av offset
|
|
802
|
-
* @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.
|
|
803
|
-
* @returns {Time | CalendarDateTime | ZonedDateTime} et av TimeValue-objektene med verdier fra date
|
|
804
|
-
*/
|
|
805
|
-
|
|
806
|
-
var nativeDateToTimeValue = function nativeDateToTimeValue(date$1, noDateOnlyTime, timeZone, offset) {
|
|
807
|
-
if (noDateOnlyTime === void 0) {
|
|
808
|
-
noDateOnlyTime = false;
|
|
809
|
-
}
|
|
810
|
-
|
|
811
|
-
if (timeZone) {
|
|
812
|
-
if (offset) {
|
|
813
|
-
return new date.ZonedDateTime(date$1.getFullYear(), date$1.getMonth() + 1, date$1.getDate(), timeZone, offset, date$1.getHours(), date$1.getMinutes(), date$1.getSeconds());
|
|
814
|
-
}
|
|
815
|
-
|
|
816
|
-
return date.parseAbsolute(date$1.toISOString(), timeZone);
|
|
817
|
-
}
|
|
818
|
-
|
|
819
|
-
if (noDateOnlyTime) return new date.Time(date$1.getHours(), date$1.getMinutes(), date$1.getSeconds(), 0);
|
|
820
|
-
return new date.CalendarDateTime(date$1.getFullYear(), date$1.getMonth() + 1, date$1.getDate(), date$1.getHours(), date$1.getMinutes(), date$1.getSeconds());
|
|
821
|
-
};
|
|
822
|
-
/**
|
|
823
|
-
* Tar inn et av TimeValue-objektene fra @internationalized/date-pakken og returnerer et JS Date-objekt
|
|
824
|
-
* @param {TimeValue} time Et tidspunkt på TimeValue-formatet som ønsket konvertert til et JS Date-objekt
|
|
825
|
-
* @param {string} timeZoneForCalendarDateTime Tidssonen time er i. Fungerer kun med typen er CalendarDateTime
|
|
826
|
-
* @returns {Date} et Date-objekt med verdier fra time
|
|
827
|
-
*/
|
|
828
|
-
// This function uses a lot of @ts-expect-error to make it work with all TimeValue types. Sorry ...
|
|
829
|
-
|
|
830
|
-
var timeValueToNativeDate = function timeValueToNativeDate(time, timeZoneForCalendarDateTime) {
|
|
831
|
-
// @ts-expect-error .day does not exist on Time-object
|
|
832
|
-
if (!time.day) {
|
|
833
|
-
// type is Time
|
|
834
|
-
var date = new Date();
|
|
835
|
-
date.setHours(time.hour);
|
|
836
|
-
date.setMinutes(time.minute);
|
|
837
|
-
date.setSeconds(time.second);
|
|
838
|
-
return date;
|
|
839
|
-
} // @ts-expect-error .timeZone does not exist in type Time and CalendarDateTime
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
if (!time.timeZone) {
|
|
843
|
-
// type is CalendarDateTime
|
|
844
|
-
if (timeZoneForCalendarDateTime) // @ts-expect-error .toDate(timeZone) does not exist in type Time
|
|
845
|
-
return time.toDate(timeZoneForCalendarDateTime);
|
|
846
|
-
return new Date( // @ts-expect-error not in type Time
|
|
847
|
-
time.year, // @ts-expect-error not in type Time
|
|
848
|
-
time.month - 1, // @ts-expect-error not in type Time
|
|
849
|
-
time.day, time.hour, time.minute, time.second);
|
|
850
|
-
} // @ts-expect-error .toDate() does not exist in type Time or CalendarDateTime
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
return time.toDate();
|
|
854
|
-
};
|
|
855
|
-
|
|
856
1314
|
utils.warnAboutMissingStyles('datepicker', 'form', 'icons');
|
|
857
1315
|
|
|
1316
|
+
exports.Calendar = Calendar;
|
|
1317
|
+
exports.DateField = DateField;
|
|
858
1318
|
exports.DatePicker = DatePicker;
|
|
1319
|
+
exports.DatePickerBeta = DatePickerBeta;
|
|
859
1320
|
exports.NativeDatePicker = NativeDatePicker;
|
|
860
1321
|
exports.NativeTimePicker = NativeTimePicker;
|
|
861
1322
|
exports.TimePicker = TimePicker;
|
|
862
|
-
exports.
|
|
863
|
-
exports.
|
|
1323
|
+
exports.ariaLabelIfNorwegian = ariaLabelIfNorwegian;
|
|
1324
|
+
exports.createCalendar = createCalendar;
|
|
1325
|
+
exports.nativeDateToTimeOrDateValue = nativeDateToTimeOrDateValue;
|
|
1326
|
+
exports.timeOrDateValueToNativeDate = timeOrDateValueToNativeDate;
|
|
864
1327
|
//# sourceMappingURL=datepicker.cjs.development.js.map
|