@entur/datepicker 4.0.0-beta.0 → 4.0.0-beta.2

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.
@@ -13,7 +13,7 @@ import 'react-datepicker/dist/react-datepicker.css';
13
13
  import { useDateFieldState, useDatePickerState, useTimeFieldState } from '@react-stately/datepicker';
14
14
  import { useDateSegment, useDateField, useDatePicker, useTimeField } from '@react-aria/datepicker';
15
15
  import { useLocale, I18nProvider } from '@react-aria/i18n';
16
- import { ZonedDateTime, parseAbsolute, Time, CalendarDateTime, GregorianCalendar, isEqualDay, now, getLocalTimeZone, getWeeksInMonth } from '@internationalized/date';
16
+ import { ZonedDateTime, parseAbsolute, Time, CalendarDate, CalendarDateTime, getLocalTimeZone, GregorianCalendar, isEqualDay, now, getWeeksInMonth } from '@internationalized/date';
17
17
  import { useCalendarCell, useCalendarGrid, useCalendar } from '@react-aria/calendar';
18
18
  import { useCalendarState } from '@react-stately/calendar';
19
19
  import { useButton } from '@react-aria/button';
@@ -513,19 +513,24 @@ var FieldSegment = function FieldSegment(_ref) {
513
513
  };
514
514
 
515
515
  /**
516
- * Tar inn et JS Date-objekt og returnerer et av TimeValue-objektene fra @internationalized/date-pakken
517
- * @param {Date} date JS Date-objekt som ønskes konvertert til et TimeValue-objekt
516
+ * Tar inn et JS Date-objekt og returnerer et av Date- eller TimeValue-objektene fra @internationalized/date-pakken
517
+ * @param {Date} date JS Date-objekt som ønskes konvertert til et Date- eller TimeValue-objekt
518
518
  * @param {boolean} noDateOnlyTime Hvis datoen er irrelevant kan denne settes til true, da får man et Time-objekt uten dato tilbake
519
+ * @param {boolean} noTimeOnlyDate Hvis tidspunktet er irrelevant kan denne settes til true, da får man et CalendarDate-objekt uten tidspunkt tilbake
519
520
  * @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
520
521
  * @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.
521
- * @returns {Time | CalendarDateTime | ZonedDateTime} et av TimeValue-objektene med verdier fra date
522
+ * @returns {Time | CalendarDateTime | ZonedDateTime | CalendarDate} et av TimeValue-objektene med verdier fra date
522
523
  */
523
524
 
524
- var nativeDateToTimeValue = function nativeDateToTimeValue(date, noDateOnlyTime, timeZone, offset) {
525
+ var nativeDateToTimeOrDateValue = function nativeDateToTimeOrDateValue(date, noDateOnlyTime, noTimeOnlyDate, timeZone, offset) {
525
526
  if (noDateOnlyTime === void 0) {
526
527
  noDateOnlyTime = false;
527
528
  }
528
529
 
530
+ if (noTimeOnlyDate === void 0) {
531
+ noTimeOnlyDate = false;
532
+ }
533
+
529
534
  if (timeZone) {
530
535
  if (offset) {
531
536
  return new ZonedDateTime(date.getFullYear(), date.getMonth() + 1, date.getDate(), timeZone, offset, date.getHours(), date.getMinutes(), date.getSeconds());
@@ -535,40 +540,54 @@ var nativeDateToTimeValue = function nativeDateToTimeValue(date, noDateOnlyTime,
535
540
  }
536
541
 
537
542
  if (noDateOnlyTime) return new Time(date.getHours(), date.getMinutes(), date.getSeconds(), 0);
543
+ if (noTimeOnlyDate) return new CalendarDate(date.getFullYear(), date.getMonth() + 1, date.getDate());
538
544
  return new CalendarDateTime(date.getFullYear(), date.getMonth() + 1, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());
539
545
  };
540
546
  /**
541
- * Tar inn et av TimeValue-objektene fra @internationalized/date-pakken og returnerer et JS Date-objekt
542
- * @param {TimeValue} time Et tidspunkt på TimeValue-formatet som ønsket konvertert til et JS Date-objekt
543
- * @param {string} timeZoneForCalendarDateTime Tidssonen time er i. Fungerer kun med typen er CalendarDateTime
547
+ * Tar inn et av Date- eller TimeValue-objektene fra @internationalized/date-pakken og returnerer et JS Date-objekt
548
+ * @param {DateValue | TimeValue} value En dato eller et tidspunkt på Date- eller TimeValue-formatet som ønskes konvertert til et JS Date-objekt
549
+ * @param {string} timeZoneForCalendarDateTime Tidssonen value er i. Fungerer kun med typen er CalendarDateTime
544
550
  * @returns {Date} et Date-objekt med verdier fra time
545
551
  */
546
552
  // This function uses a lot of @ts-expect-error to make it work with all TimeValue types. Sorry ...
547
553
 
548
- var timeValueToNativeDate = function timeValueToNativeDate(time, timeZoneForCalendarDateTime) {
554
+ var timeOrDateValueToNativeDate = function timeOrDateValueToNativeDate(value, timeZoneForCalendarDateTime) {
549
555
  // @ts-expect-error .day does not exist on Time-object
550
- if (!time.day) {
556
+ if (!value.day) {
551
557
  // type is Time
552
- var date = new Date();
553
- date.setHours(time.hour);
554
- date.setMinutes(time.minute);
555
- date.setSeconds(time.second);
558
+ var date = new Date(); // @ts-expect-error hour does not exist on CalendarDate
559
+
560
+ date.setHours(value.hour); // @ts-expect-error minute does not exist on CalendarDate
561
+
562
+ date.setMinutes(value.minute); // @ts-expect-error second does not exist on CalendarDate
563
+
564
+ date.setSeconds(value.second);
556
565
  return date;
566
+ } // @ts-expect-error .day does not exist on Time-object
567
+
568
+
569
+ if (!value.hour) {
570
+ // type is CalendarDate
571
+ // @ts-expect-error .toDate(timeZone) does not exist in type Time
572
+ return value.toDate(timeZoneForCalendarDateTime != null ? timeZoneForCalendarDateTime : getLocalTimeZone());
557
573
  } // @ts-expect-error .timeZone does not exist in type Time and CalendarDateTime
558
574
 
559
575
 
560
- if (!time.timeZone) {
576
+ if (!value.timeZone) {
561
577
  // type is CalendarDateTime
562
578
  if (timeZoneForCalendarDateTime) // @ts-expect-error .toDate(timeZone) does not exist in type Time
563
- return time.toDate(timeZoneForCalendarDateTime);
579
+ return value.toDate(timeZoneForCalendarDateTime);
564
580
  return new Date( // @ts-expect-error not in type Time
565
- time.year, // @ts-expect-error not in type Time
566
- time.month - 1, // @ts-expect-error not in type Time
567
- time.day, time.hour, time.minute, time.second);
581
+ value.year, // @ts-expect-error not in type Time
582
+ value.month - 1, // @ts-expect-error not in type Time
583
+ value.day, // @ts-expect-error not in type CalendarDate
584
+ value.hour, // @ts-expect-error not in type CalendarDate
585
+ value.minute, // @ts-expect-error not in type CalendarDate
586
+ value.second);
568
587
  } // @ts-expect-error .toDate() does not exist in type Time or CalendarDateTime
569
588
 
570
589
 
571
- return time.toDate();
590
+ return value.toDate();
572
591
  };
573
592
  var createCalendar = function createCalendar(identifier) {
574
593
  if (identifier === void 0) {
@@ -1281,5 +1300,5 @@ var NativeTimePickerBase = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
1281
1300
 
1282
1301
  warnAboutMissingStyles('datepicker', 'form', 'icons');
1283
1302
 
1284
- export { Calendar, DateField, DatePicker, DatePickerBeta, NativeDatePicker, NativeTimePicker, TimePicker, ariaLabelIfNorwegian, createCalendar, nativeDateToTimeValue, timeValueToNativeDate };
1303
+ export { Calendar, DateField, DatePicker, DatePickerBeta, NativeDatePicker, NativeTimePicker, TimePicker, ariaLabelIfNorwegian, createCalendar, nativeDateToTimeOrDateValue, timeOrDateValueToNativeDate };
1285
1304
  //# sourceMappingURL=datepicker.esm.js.map