@entur/datepicker 4.0.0-beta.1 → 4.0.0-beta.3
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 +13 -0
- package/dist/DatePicker/beta/DatePicker.d.ts +3 -3
- package/dist/datepicker.cjs.development.js +52 -28
- 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 +52 -28
- package/dist/datepicker.esm.js.map +1 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/utils.d.ts +10 -9
- package/dist/styles.css +103 -103
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [4.0.0-beta.3](https://bitbucket.org/enturas/design-system/compare/@entur/datepicker@4.0.0-beta.2...@entur/datepicker@4.0.0-beta.3) (2022-11-08)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **datepicker:** change min- and maxValue to min- and maxDate ([f5bfb88](https://bitbucket.org/enturas/design-system/commits/f5bfb885bbbd253f150756f36550b07ed848fdc3))
|
|
11
|
+
- **datepicker:** fix page jumping when opening datepicker popover ([4629f2c](https://bitbucket.org/enturas/design-system/commits/4629f2c6f134f622cab7546b3f6d3980c9ed913a))
|
|
12
|
+
|
|
13
|
+
# [4.0.0-beta.2](https://bitbucket.org/enturas/design-system/compare/@entur/datepicker@4.0.0-beta.1...@entur/datepicker@4.0.0-beta.2) (2022-10-31)
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
- **datepicker utils:** update utils to work with CalendarDate values ([d5993f2](https://bitbucket.org/enturas/design-system/commits/d5993f22c2abcc53e932cc58e960accb979182c3))
|
|
18
|
+
|
|
6
19
|
# [4.0.0-beta.1](https://bitbucket.org/enturas/design-system/compare/@entur/datepicker@4.0.0-beta.0...@entur/datepicker@4.0.0-beta.1) (2022-10-28)
|
|
7
20
|
|
|
8
21
|
### Bug Fixes
|
|
@@ -24,12 +24,12 @@ declare type DatePickerProps = {
|
|
|
24
24
|
showTime?: boolean;
|
|
25
25
|
/** Tidligste gyldige datovalg.
|
|
26
26
|
* Eks: today(getLocalTimeZone()) == i dag i lokal tidssone. */
|
|
27
|
-
|
|
27
|
+
minDate?: CalendarDate;
|
|
28
28
|
/** Seneste gyldige datovalg.
|
|
29
29
|
* Eks: today(getLocalTimeZone()) == i dag i lokal tidssone
|
|
30
30
|
*
|
|
31
31
|
* OBS: Hvis du bruker dato med tid vil det være til, men ikke med denne datoen */
|
|
32
|
-
|
|
32
|
+
maxDate?: CalendarDate;
|
|
33
33
|
/** Funksjon som tar inn en dato og sier om den er utilgjengelig.
|
|
34
34
|
* Eks. (date) => isWeekend(date, 'no-NO') == helgedager er ikke tilgjengelig */
|
|
35
35
|
isDateUnavailable?: (date: DateValue) => boolean;
|
|
@@ -59,5 +59,5 @@ declare type DatePickerProps = {
|
|
|
59
59
|
className?: string;
|
|
60
60
|
style?: React.CSSProperties;
|
|
61
61
|
} & Omit<SpectrumDatePickerProps<DateValue>, 'value' | 'onChange' | 'label' | 'hideTimeZone' | 'placeholder' | 'minValue' | 'maxValue'>;
|
|
62
|
-
export declare const DatePickerBeta: ({ selectedDate: value, onChange, locale, disabled: isDisabled, showTime, showTimeZone, className, style, variant, feedback, validationVariant, validationFeedback, disableModal, labelTooltip, navigationDescription, ...rest }: DatePickerProps) => JSX.Element;
|
|
62
|
+
export declare const DatePickerBeta: ({ selectedDate: value, onChange, locale, disabled: isDisabled, showTime, showTimeZone, className, style, variant, feedback, validationVariant, validationFeedback, disableModal, labelTooltip, navigationDescription, minDate: minValue, maxDate: maxValue, ...rest }: DatePickerProps) => JSX.Element;
|
|
63
63
|
export {};
|
|
@@ -524,19 +524,24 @@ var FieldSegment = function FieldSegment(_ref) {
|
|
|
524
524
|
};
|
|
525
525
|
|
|
526
526
|
/**
|
|
527
|
-
* Tar inn et JS Date-objekt og returnerer et av TimeValue-objektene fra @internationalized/date-pakken
|
|
528
|
-
* @param {Date} date JS Date-objekt som ønskes konvertert til et TimeValue-objekt
|
|
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
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
|
|
530
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
|
|
531
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.
|
|
532
|
-
* @returns {Time | CalendarDateTime | ZonedDateTime} et av TimeValue-objektene med verdier fra date
|
|
533
|
+
* @returns {Time | CalendarDateTime | ZonedDateTime | CalendarDate} et av TimeValue-objektene med verdier fra date
|
|
533
534
|
*/
|
|
534
535
|
|
|
535
|
-
var
|
|
536
|
+
var nativeDateToTimeOrDateValue = function nativeDateToTimeOrDateValue(date$1, noDateOnlyTime, noTimeOnlyDate, timeZone, offset) {
|
|
536
537
|
if (noDateOnlyTime === void 0) {
|
|
537
538
|
noDateOnlyTime = false;
|
|
538
539
|
}
|
|
539
540
|
|
|
541
|
+
if (noTimeOnlyDate === void 0) {
|
|
542
|
+
noTimeOnlyDate = false;
|
|
543
|
+
}
|
|
544
|
+
|
|
540
545
|
if (timeZone) {
|
|
541
546
|
if (offset) {
|
|
542
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());
|
|
@@ -546,40 +551,54 @@ var nativeDateToTimeValue = function nativeDateToTimeValue(date$1, noDateOnlyTim
|
|
|
546
551
|
}
|
|
547
552
|
|
|
548
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());
|
|
549
555
|
return new date.CalendarDateTime(date$1.getFullYear(), date$1.getMonth() + 1, date$1.getDate(), date$1.getHours(), date$1.getMinutes(), date$1.getSeconds());
|
|
550
556
|
};
|
|
551
557
|
/**
|
|
552
|
-
* Tar inn et av TimeValue-objektene fra @internationalized/date-pakken og returnerer et JS Date-objekt
|
|
553
|
-
* @param {TimeValue}
|
|
554
|
-
* @param {string} timeZoneForCalendarDateTime Tidssonen
|
|
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
|
|
555
561
|
* @returns {Date} et Date-objekt med verdier fra time
|
|
556
562
|
*/
|
|
557
563
|
// This function uses a lot of @ts-expect-error to make it work with all TimeValue types. Sorry ...
|
|
558
564
|
|
|
559
|
-
var
|
|
565
|
+
var timeOrDateValueToNativeDate = function timeOrDateValueToNativeDate(value, timeZoneForCalendarDateTime) {
|
|
560
566
|
// @ts-expect-error .day does not exist on Time-object
|
|
561
|
-
if (!
|
|
567
|
+
if (!value.day) {
|
|
562
568
|
// type is Time
|
|
563
|
-
var date = new Date();
|
|
564
|
-
|
|
565
|
-
date.
|
|
566
|
-
|
|
567
|
-
|
|
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());
|
|
568
584
|
} // @ts-expect-error .timeZone does not exist in type Time and CalendarDateTime
|
|
569
585
|
|
|
570
586
|
|
|
571
|
-
if (!
|
|
587
|
+
if (!value.timeZone) {
|
|
572
588
|
// type is CalendarDateTime
|
|
573
589
|
if (timeZoneForCalendarDateTime) // @ts-expect-error .toDate(timeZone) does not exist in type Time
|
|
574
|
-
return
|
|
590
|
+
return value.toDate(timeZoneForCalendarDateTime);
|
|
575
591
|
return new Date( // @ts-expect-error not in type Time
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
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);
|
|
579
598
|
} // @ts-expect-error .toDate() does not exist in type Time or CalendarDateTime
|
|
580
599
|
|
|
581
600
|
|
|
582
|
-
return
|
|
601
|
+
return value.toDate();
|
|
583
602
|
};
|
|
584
603
|
var createCalendar = function createCalendar(identifier) {
|
|
585
604
|
if (identifier === void 0) {
|
|
@@ -835,7 +854,7 @@ var Calendar = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
|
|
|
835
854
|
})));
|
|
836
855
|
});
|
|
837
856
|
|
|
838
|
-
var _excluded$3 = ["selectedDate", "onChange", "locale", "disabled", "showTime", "showTimeZone", "className", "style", "variant", "feedback", "validationVariant", "validationFeedback", "disableModal", "labelTooltip", "navigationDescription"];
|
|
857
|
+
var _excluded$3 = ["selectedDate", "onChange", "locale", "disabled", "showTime", "showTimeZone", "className", "style", "variant", "feedback", "validationVariant", "validationFeedback", "disableModal", "labelTooltip", "navigationDescription", "minDate", "maxDate"];
|
|
839
858
|
var DatePickerBeta = function DatePickerBeta(_ref) {
|
|
840
859
|
var value = _ref.selectedDate,
|
|
841
860
|
_onChange = _ref.onChange,
|
|
@@ -853,6 +872,8 @@ var DatePickerBeta = function DatePickerBeta(_ref) {
|
|
|
853
872
|
disableModal = _ref$disableModal === void 0 ? false : _ref$disableModal,
|
|
854
873
|
labelTooltip = _ref.labelTooltip,
|
|
855
874
|
navigationDescription = _ref.navigationDescription,
|
|
875
|
+
minValue = _ref.minDate,
|
|
876
|
+
maxValue = _ref.maxDate,
|
|
856
877
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
857
878
|
|
|
858
879
|
var CALENDAR_MODAL_MAX_SCREEN_WIDTH = 1000;
|
|
@@ -864,12 +885,16 @@ var DatePickerBeta = function DatePickerBeta(_ref) {
|
|
|
864
885
|
width = _useWindowDimensions.width;
|
|
865
886
|
|
|
866
887
|
var state = datepicker$1.useDatePickerState(_extends({}, rest, {
|
|
888
|
+
minValue: minValue,
|
|
889
|
+
maxValue: maxValue,
|
|
867
890
|
value: value,
|
|
868
891
|
onChange: _onChange
|
|
869
892
|
}));
|
|
870
893
|
|
|
871
894
|
var _useDatePicker = datepicker.useDatePicker(_extends({
|
|
872
|
-
isDisabled: isDisabled
|
|
895
|
+
isDisabled: isDisabled,
|
|
896
|
+
minValue: minValue,
|
|
897
|
+
maxValue: maxValue
|
|
873
898
|
}, rest), state, datePickerRef),
|
|
874
899
|
groupProps = _useDatePicker.groupProps,
|
|
875
900
|
labelProps = _useDatePicker.labelProps,
|
|
@@ -927,7 +952,7 @@ var DatePickerBeta = function DatePickerBeta(_ref) {
|
|
|
927
952
|
if (selectedCell) selectedCell.focus();else if (todayCell) todayCell.focus();
|
|
928
953
|
};
|
|
929
954
|
|
|
930
|
-
var popoverCalendar = React__default["default"].createElement(FocusLock__default["default"], {
|
|
955
|
+
var popoverCalendar = React__default["default"].createElement(React__default["default"].Fragment, null, state.isOpen && React__default["default"].createElement(FocusLock__default["default"], {
|
|
931
956
|
disabled: !state.isOpen,
|
|
932
957
|
returnFocus: true
|
|
933
958
|
}, React__default["default"].createElement(Calendar, _extends({}, dialogProps, calendarProps, {
|
|
@@ -944,13 +969,12 @@ var DatePickerBeta = function DatePickerBeta(_ref) {
|
|
|
944
969
|
navigationDescription: navigationDescription,
|
|
945
970
|
// styling for floating-UI popover
|
|
946
971
|
style: {
|
|
947
|
-
display: state.isOpen ? 'block' : 'none',
|
|
948
972
|
position: strategy,
|
|
949
973
|
top: y != null ? y : 0,
|
|
950
974
|
left: x != null ? x : 0,
|
|
951
|
-
zIndex:
|
|
975
|
+
zIndex: tokens.zIndexes.popover
|
|
952
976
|
}
|
|
953
|
-
})));
|
|
977
|
+
}))));
|
|
954
978
|
var modalCalendar = React__default["default"].createElement(modal.Modal, {
|
|
955
979
|
size: 'small',
|
|
956
980
|
title: "",
|
|
@@ -1301,6 +1325,6 @@ exports.NativeTimePicker = NativeTimePicker;
|
|
|
1301
1325
|
exports.TimePicker = TimePicker;
|
|
1302
1326
|
exports.ariaLabelIfNorwegian = ariaLabelIfNorwegian;
|
|
1303
1327
|
exports.createCalendar = createCalendar;
|
|
1304
|
-
exports.
|
|
1305
|
-
exports.
|
|
1328
|
+
exports.nativeDateToTimeOrDateValue = nativeDateToTimeOrDateValue;
|
|
1329
|
+
exports.timeOrDateValueToNativeDate = timeOrDateValueToNativeDate;
|
|
1306
1330
|
//# sourceMappingURL=datepicker.cjs.development.js.map
|