@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 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
- minValue?: CalendarDate;
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
- maxValue?: CalendarDate;
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 nativeDateToTimeValue = function nativeDateToTimeValue(date$1, noDateOnlyTime, timeZone, offset) {
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} time Et tidspunkt på TimeValue-formatet som ønsket konvertert til et JS Date-objekt
554
- * @param {string} timeZoneForCalendarDateTime Tidssonen time er i. Fungerer kun med typen er CalendarDateTime
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 timeValueToNativeDate = function timeValueToNativeDate(time, timeZoneForCalendarDateTime) {
565
+ var timeOrDateValueToNativeDate = function timeOrDateValueToNativeDate(value, timeZoneForCalendarDateTime) {
560
566
  // @ts-expect-error .day does not exist on Time-object
561
- if (!time.day) {
567
+ if (!value.day) {
562
568
  // type is Time
563
- var date = new Date();
564
- date.setHours(time.hour);
565
- date.setMinutes(time.minute);
566
- date.setSeconds(time.second);
567
- return date;
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 (!time.timeZone) {
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 time.toDate(timeZoneForCalendarDateTime);
590
+ return value.toDate(timeZoneForCalendarDateTime);
575
591
  return new Date( // @ts-expect-error not in type Time
576
- time.year, // @ts-expect-error not in type Time
577
- time.month - 1, // @ts-expect-error not in type Time
578
- time.day, time.hour, time.minute, time.second);
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 time.toDate();
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: 10
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.nativeDateToTimeValue = nativeDateToTimeValue;
1305
- exports.timeValueToNativeDate = timeValueToNativeDate;
1328
+ exports.nativeDateToTimeOrDateValue = nativeDateToTimeOrDateValue;
1329
+ exports.timeOrDateValueToNativeDate = timeOrDateValueToNativeDate;
1306
1330
  //# sourceMappingURL=datepicker.cjs.development.js.map