@entur/datepicker 5.0.3 → 6.0.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.
@@ -1,12 +1,12 @@
1
1
  import React from 'react';
2
- import type { TimeValue, AriaTimeFieldProps } from '@react-types/datepicker';
2
+ import type { TimeValue, AriaTimeFieldProps, MappedTimeValue } from '@react-types/datepicker';
3
3
  import { VariantType } from '@entur/form';
4
4
  import './TimePicker.scss';
5
- export type TimePickerProps = {
5
+ export type TimePickerProps<TimeType extends TimeValue> = {
6
6
  /** Den valgte tiden. Tid i '@internationalized/date'-pakkens format */
7
- selectedTime: TimeValue | null;
7
+ selectedTime: TimeType | null;
8
8
  /** Kalles når tiden endres. Tid i '@internationalized/date'-pakkens format */
9
- onChange: (value: TimeValue) => void;
9
+ onChange: (value: MappedTimeValue<TimeType> | null) => void;
10
10
  /** Label til TimePicker */
11
11
  label: string;
12
12
  /** Minutter som legges til eller trekkes fra ved klikk på pilene i TimePicker
@@ -35,44 +35,9 @@ export type TimePickerProps = {
35
35
  variant?: VariantType;
36
36
  labelTooltip?: React.ReactNode;
37
37
  disabled?: boolean;
38
+ inputRef?: React.ForwardedRef<HTMLDivElement>;
38
39
  /** Ekstra klassenavn */
39
40
  className?: string;
40
41
  style?: React.CSSProperties;
41
- } & Omit<AriaTimeFieldProps<TimeValue>, 'onChange' | 'label' | 'hideTimeZone' | 'placeholder'>;
42
- export declare const TimePicker: React.ForwardRefExoticComponent<{
43
- /** Den valgte tiden. Tid i '@internationalized/date'-pakkens format */
44
- selectedTime: TimeValue | null;
45
- /** Kalles når tiden endres. Tid i '@internationalized/date'-pakkens format */
46
- onChange: (value: TimeValue) => void;
47
- /** Label til TimePicker */
48
- label: string;
49
- /** Minutter som legges til eller trekkes fra ved klikk på pilene i TimePicker
50
- * @default 30
51
- */
52
- minuteIncrementForArrowButtons?: number | undefined;
53
- /** BCP47-språkkoden til locale-en du ønsker å bruke.
54
- * @default Brukerenhetens selvvalgte locale
55
- */
56
- locale?: string | undefined;
57
- /** Viser den gjeldende tidssonen hvis en er valgt
58
- * @default false
59
- */
60
- showTimeZone?: boolean | undefined;
61
- /** Aria-label for venstrepil-knappen som trekker fra tid
62
- * @default `Trekk fra ${minuteIncrementForArrowButtons} minutter`
63
- */
64
- leftArrowButtonAriaLabel?: string | undefined;
65
- /** Aria-label for høyrepil-knappen som legger til tid
66
- * @default `Legg til ${minuteIncrementForArrowButtons} minutter`
67
- */
68
- rightArrowButtonAriaLabel?: string | undefined;
69
- /** Varselmelding, som vil komme under TimePicker */
70
- feedback?: string | undefined;
71
- /** Valideringsvariant */
72
- variant?: VariantType | undefined;
73
- labelTooltip?: React.ReactNode;
74
- disabled?: boolean | undefined;
75
- /** Ekstra klassenavn */
76
- className?: string | undefined;
77
- style?: React.CSSProperties | undefined;
78
- } & Omit<AriaTimeFieldProps<TimeValue>, "onChange" | "label" | "hideTimeZone" | "placeholder"> & React.RefAttributes<HTMLDivElement>>;
42
+ } & Omit<AriaTimeFieldProps<TimeType>, 'value' | 'onChange' | 'label' | 'hideTimeZone' | 'placeholder' | 'minValue' | 'maxValue'>;
43
+ export declare const TimePicker: <TimeType extends TimeValue>({ selectedTime, onChange, disabled, className, style, label, labelTooltip, feedback, variant, locale: customLocale, showTimeZone, minuteIncrementForArrowButtons, leftArrowButtonAriaLabel, rightArrowButtonAriaLabel, inputRef, ...rest }: TimePickerProps<TimeType>) => JSX.Element;
@@ -665,8 +665,8 @@ var TimePickerArrowButton = function TimePickerArrowButton(_ref) {
665
665
  }, direction === 'left' ? React__default["default"].createElement(icons.LeftArrowIcon, null) : React__default["default"].createElement(icons.RightArrowIcon, null));
666
666
  };
667
667
 
668
- var _excluded$1 = ["selectedTime", "onChange", "disabled", "className", "style", "label", "labelTooltip", "feedback", "variant", "locale", "showTimeZone", "minuteIncrementForArrowButtons", "leftArrowButtonAriaLabel", "rightArrowButtonAriaLabel"];
669
- var TimePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
668
+ var _excluded$1 = ["selectedTime", "onChange", "disabled", "className", "style", "label", "labelTooltip", "feedback", "variant", "locale", "showTimeZone", "minuteIncrementForArrowButtons", "leftArrowButtonAriaLabel", "rightArrowButtonAriaLabel", "inputRef"];
669
+ var TimePicker = function TimePicker(_ref) {
670
670
  var selectedTime = _ref.selectedTime,
671
671
  onChange = _ref.onChange,
672
672
  disabled = _ref.disabled,
@@ -684,11 +684,13 @@ var TimePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
684
684
  leftArrowButtonAriaLabel = _ref$leftArrowButtonA === void 0 ? "Trekk fra " + minuteIncrementForArrowButtons + " minutter" : _ref$leftArrowButtonA,
685
685
  _ref$rightArrowButton = _ref.rightArrowButtonAriaLabel,
686
686
  rightArrowButtonAriaLabel = _ref$rightArrowButton === void 0 ? "Legg til " + minuteIncrementForArrowButtons + " minutter" : _ref$rightArrowButton,
687
+ inputRef = _ref.inputRef,
687
688
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
688
689
  var _useLocale = i18n.useLocale(),
689
690
  locale = _useLocale.locale;
690
691
  if (customLocale) locale = customLocale;
691
692
  var state = datepicker$1.useTimeFieldState(_extends({
693
+ // @ts-expect-error Time should be assignable to MappedTime<TimeType>
692
694
  onChange: onChange,
693
695
  label: label,
694
696
  locale: locale,
@@ -719,6 +721,9 @@ var TimePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
719
721
  var newTime = currentTime.set({
720
722
  minute: roundedMinute
721
723
  });
724
+ // @ts-expect-error Since this function is used when selectedTime is null,
725
+ // we can't guarantee newTime matching the type of selectedTime in the future.
726
+ // This might lead to a type issue.
722
727
  onChange(newTime);
723
728
  };
724
729
  var addMinutesToSelectedTime = function addMinutesToSelectedTime(minutes) {
@@ -744,7 +749,7 @@ var TimePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
744
749
  labelId: id,
745
750
  label: label,
746
751
  labelProps: _extends({}, labelProps),
747
- ref: utils.mergeRefs(timeFieldRef, ref),
752
+ ref: utils.mergeRefs(timeFieldRef, inputRef),
748
753
  disabled: disabled,
749
754
  disableLabelAnimation: true,
750
755
  labelTooltip: labelTooltip
@@ -765,7 +770,7 @@ var TimePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
765
770
  return handleOnClickArrowButton(minuteIncrementForArrowButtons);
766
771
  }
767
772
  })));
768
- });
773
+ };
769
774
 
770
775
  var _excluded = ["className", "style", "onChange", "label", "feedback", "variant", "prepend"],
771
776
  _excluded2 = ["onChange", "value"];
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.cjs.development.js","sources":["../src/shared/FieldSegment.tsx","../src/shared/utils.ts","../src/DatePicker/DateField.tsx","../src/shared/CalendarButton.tsx","../src/DatePicker/CalendarCell.tsx","../src/DatePicker/CalendarGrid.tsx","../src/DatePicker/Calendar.tsx","../src/DatePicker/DatePicker.tsx","../src/DatePicker/NativeDatePicker.tsx","../src/TimePicker/TimePickerArrowButton.tsx","../src/TimePicker/TimePicker.tsx","../src/TimePicker/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport { useDateSegment } from '@react-aria/datepicker';\nimport { DateSegment, DateFieldState } from '@react-stately/datepicker';\n\nimport './FieldSegment.scss';\n\ntype TimeSegmentProps = {\n segment: DateSegment;\n state: DateFieldState;\n};\n\nexport const FieldSegment = ({ segment, state }: TimeSegmentProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const { segmentProps } = useDateSegment(segment, state, ref);\n\n const is12HourFormatted = state.segments.some(\n segment => segment.text === 'AM' || segment.text === 'PM',\n );\n\n const segmentDisplayText = () => {\n if (is12HourFormatted) return segment.text;\n // if number add '0' padding to start when one digit\n if (segment.text.match(/\\d+/)) return segment.text.padStart(2, '0');\n return segment.text;\n };\n\n return (\n <div\n {...segmentProps}\n ref={ref}\n className={classNames('eds-date-and-time-field__segment', {\n 'eds-date-and-time-field__segment--placeholder': segment.isPlaceholder,\n 'eds-date-and-time-field__segment--dot-separator': segment.text === '.',\n })}\n tabIndex={state.isDisabled ? -1 : segmentProps.tabIndex}\n >\n {segmentDisplayText()}\n </div>\n );\n};\n","import {\n ZonedDateTime,\n CalendarDateTime,\n Time,\n parseAbsolute,\n DateValue,\n getLocalTimeZone,\n CalendarDate,\n} from '@internationalized/date';\nimport { TimeValue } from '@react-types/datepicker';\nimport { Calendar, GregorianCalendar } from '@internationalized/date';\n\nconst nativeDateToDateTime = (\n date: Date,\n timeZone?: string,\n offset?: number,\n) => {\n if (timeZone) {\n if (offset) {\n return new ZonedDateTime(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n timeZone,\n offset,\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n );\n }\n return parseAbsolute(date.toISOString(), timeZone);\n }\n return new CalendarDateTime(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n );\n};\n\n/**\n * Tar inn et JS Date-objekt og returnerer et av DateValue-objektene fra @internationalized/date-pakken\n * @param {Date} date JS Date-objekt som ønskes konvertert til et DateValue-objekt\n * @param {boolean} noTimeOnlyDate Hvis tidspunktet er irrelevant kan denne settes til true, da får man et CalendarDate-objekt uten tidspunkt tilbake\n * @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\n * @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.\n * @returns {CalendarDateTime | ZonedDateTime | CalendarDate} et av DateValue-objektene med verdier fra date\n */\nexport const nativeDateToDateValue = (\n date: Date,\n noTimeOnlyDate = false,\n timeZone?: string,\n offset?: number,\n) => {\n if (noTimeOnlyDate)\n return new CalendarDate(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n );\n\n return nativeDateToDateTime(date, timeZone, offset);\n};\n\n/**\n * Tar inn et JS Date-objekt og returnerer et av TimeValue-objektene fra @internationalized/date-pakken\n * @param {Date} date JS Date-objekt som ønskes konvertert til et TimeValue-objekt\n * @param {boolean} noDateOnlyTime Hvis datoen er irrelevant kan denne settes til true, da får man et Time-objekt uten dato tilbake\n * @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\n * @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.\n * @returns {Time | CalendarDateTime | ZonedDateTime} et av TimeValue-objektene med verdier fra date\n */\nexport const nativeDateToTimeValue = (\n date: Date,\n noDateOnlyTime = false,\n timeZone?: string,\n offset?: number,\n) => {\n if (noDateOnlyTime)\n return new Time(date.getHours(), date.getMinutes(), date.getSeconds(), 0);\n\n return nativeDateToDateTime(date, timeZone, offset);\n};\n\n/**\n * Tar inn et av Date- eller TimeValue-objektene fra @internationalized/date-pakken og returnerer et JS Date-objekt\n * @param {DateValue | TimeValue} value En dato eller et tidspunkt på Date- eller TimeValue-formatet som ønskes konvertert til et JS Date-objekt\n * @param {string} timeZoneForCalendarDateTime Tidssonen value er i. Fungerer kun med typen er CalendarDateTime\n * @returns {Date} et Date-objekt med verdier fra time\n */\n// This function uses a lot of @ts-expect-error to make it work with all Date- and TimeValue types. Sorry ...\nexport const timeOrDateValueToNativeDate = (\n value: TimeValue | DateValue,\n timeZoneForCalendarDateTime?: string,\n): Date => {\n // @ts-expect-error .day does not exist on Time-object\n if (!value.day) {\n // type is Time\n const date = new Date();\n // @ts-expect-error hour does not exist on CalendarDate\n date.setHours(value.hour);\n // @ts-expect-error minute does not exist on CalendarDate\n date.setMinutes(value.minute);\n // @ts-expect-error second does not exist on CalendarDate\n date.setSeconds(value.second);\n return date;\n }\n\n // @ts-expect-error .day does not exist on Time-object\n if (!value.hour) {\n // type is CalendarDate\n // @ts-expect-error .toDate(timeZone) does not exist in type Time\n return value.toDate(timeZoneForCalendarDateTime ?? getLocalTimeZone());\n }\n\n // @ts-expect-error .timeZone does not exist in type Time and CalendarDateTime\n if (!value.timeZone) {\n // type is CalendarDateTime\n if (timeZoneForCalendarDateTime)\n // @ts-expect-error .toDate(timeZone) does not exist in type Time\n return value.toDate(timeZoneForCalendarDateTime);\n\n return new Date(\n // @ts-expect-error not in type Time\n value.year,\n // @ts-expect-error not in type Time\n value.month - 1,\n // @ts-expect-error not in type Time\n value.day,\n // @ts-expect-error not in type CalendarDate\n value.hour,\n // @ts-expect-error not in type CalendarDate\n value.minute,\n // @ts-expect-error not in type CalendarDate\n value.second,\n );\n }\n\n // @ts-expect-error .toDate() does not exist in type Time or CalendarDateTime\n return value.toDate();\n};\n\nexport const createCalendar = (identifier = 'gregory'): Calendar => {\n switch (identifier) {\n case 'gregory':\n return new GregorianCalendar();\n default:\n throw new Error(`Unsupported calendar ${identifier}`);\n }\n};\n\nexport const ariaLabelIfNorwegian = (\n norwegianAriaLabel: string,\n locale: string,\n propsCollection: any,\n) => {\n if (locale.toLowerCase() !== 'no-no') return propsCollection['aria-label'];\n return norwegianAriaLabel;\n};\n","import React, { ReactNode, useRef } from 'react';\n\nimport { useDateFieldState } from '@react-stately/datepicker';\nimport { useDateField } from '@react-aria/datepicker';\nimport { I18nProvider, useLocale } from '@react-aria/i18n';\nimport classNames from 'classnames';\n\nimport type {\n SpectrumDateFieldProps,\n DateValue,\n} from '@react-types/datepicker';\n\nimport { BaseFormControl, VariantType } from '@entur/form';\nimport { ConditionalWrapper, mergeRefs, useRandomId } from '@entur/utils';\n\nimport { FieldSegment } from '../shared/FieldSegment';\nimport { createCalendar } from '../shared/utils';\n\nimport './DateField.scss';\n\nexport type DateFieldProps = {\n /** Den valgte tiden. Tid i '@internationalized/date'-pakkens format */\n selectedDate: DateValue | null;\n /** Kalles når tiden endres. Tid i '@internationalized/date'-pakkens format */\n onChange: (value: DateValue) => void;\n /** Label til TimePicker */\n label: string;\n /** BCP47-språkkoden til locale-en du ønsker å bruke.\n * @default Brukerenhetens selvvalgte locale\n */\n locale?: string;\n /** Viser den gjeldende tidssonen hvis en er valgt\n * @default false\n */\n showTimeZone?: boolean;\n showTime?: boolean;\n /** Tidligste gyldige datovalg.\n * Eks: today(getLocalTimeZone()) == i dag i lokal tidssone */\n minDate?: DateValue;\n /** Seneste gyldige datovalg. (se minValue) */\n maxDate?: DateValue;\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Varselmelding som forteller om ugyldig dato\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om ugyldig dato\n * @default \"error\"\n */\n validationVariant?: VariantType;\n labelTooltip?: React.ReactNode;\n disabled?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n style?: React.CSSProperties;\n [key: string]: any;\n} & Omit<\n SpectrumDateFieldProps<DateValue>,\n | 'value'\n | 'onChange'\n | 'label'\n | 'hideTimeZone'\n | 'placeholder'\n | 'minValue'\n | 'maxValue'\n>;\n\nexport const DateField = React.forwardRef<HTMLDivElement, DateFieldProps>(\n (\n {\n selectedDate: value,\n label,\n locale: customLocale,\n showTimeZone,\n showTime,\n granularity = 'day',\n disabled,\n variant,\n feedback,\n validationVariant = 'error',\n validationFeedback = 'Ugyldig dato',\n labelTooltip,\n minDate: minValue,\n maxDate: maxValue,\n style,\n className,\n labelProps: parentLabelProps,\n append,\n ...rest\n },\n ref,\n ) => {\n const { locale } = useLocale();\n\n const state = useDateFieldState({\n ...rest,\n locale: customLocale ?? locale,\n createCalendar,\n value: value === null ? undefined : value,\n hideTimeZone: !showTimeZone,\n granularity: showTime ? 'minute' : granularity,\n minValue,\n maxValue,\n });\n\n const dateFieldRef = useRef(null);\n const { labelProps, fieldProps } = useDateField(\n { ...rest, label: label, isDisabled: disabled || rest.isDisabled },\n state,\n dateFieldRef,\n );\n\n const id = useRandomId('datefield');\n\n return (\n <ConditionalWrapper\n condition={customLocale !== undefined}\n wrapper={(child: ReactNode) => (\n <I18nProvider locale={customLocale}>{child}</I18nProvider>\n )}\n >\n <BaseFormControl\n style={style}\n className={classNames('eds-datefield', className)}\n labelId={id}\n ref={mergeRefs(dateFieldRef, ref)}\n disabled={state.isDisabled}\n disableLabelAnimation\n label={label}\n labelTooltip={labelTooltip}\n labelProps={parentLabelProps ?? labelProps}\n {...fieldProps}\n variant={\n variant ?? state.validationState === 'invalid'\n ? validationVariant\n : undefined\n }\n feedback={\n feedback ?? state.validationState === 'invalid'\n ? validationFeedback\n : undefined\n }\n append={append}\n ariaAlertOnFeedback\n >\n {state.segments.map((segment, i) => (\n <FieldSegment segment={segment} state={state} key={i} />\n ))}\n </BaseFormControl>\n </ConditionalWrapper>\n );\n },\n);\n","import React, { useRef } from 'react';\n\nimport { useButton } from '@react-aria/button';\n\nimport { IconButton } from '@entur/button';\n\ntype CalendarButtonProps = {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n [key: string]: any;\n};\n\nexport const CalendarButton = ({\n children,\n className,\n style,\n ...props\n}: CalendarButtonProps) => {\n const ref = useRef(null);\n const { buttonProps } = useButton(props, ref);\n\n return (\n <IconButton {...buttonProps} ref={ref} className={className} style={style}>\n {children}\n </IconButton>\n );\n};\n","import React, { useRef } from 'react';\n\nimport { useCalendarCell } from '@react-aria/calendar';\nimport { CalendarState } from '@react-stately/calendar';\nimport {\n CalendarDate,\n getLocalTimeZone,\n isEqualDay,\n now,\n} from '@internationalized/date';\nimport classNames from 'classnames';\n\ntype CalendarCellProps = {\n state: CalendarState;\n date: CalendarDate;\n onSelectedCellClick?: () => void;\n};\n\nexport const CalendarCell = ({\n state,\n date,\n onSelectedCellClick = () => {\n return;\n },\n ...rest\n}: CalendarCellProps) => {\n const cellRef = useRef(null);\n\n const {\n cellProps,\n buttonProps,\n isSelected,\n isOutsideVisibleRange,\n isDisabled,\n isUnavailable,\n formattedDate,\n } = useCalendarCell({ date }, state, cellRef);\n return (\n <td {...cellProps} className=\"eds-datepicker__calendar__grid__cell__td\">\n <div\n {...buttonProps}\n ref={cellRef}\n hidden={isOutsideVisibleRange}\n className={classNames('eds-datepicker__calendar__grid__cell', {\n 'eds-datepicker__calendar__grid__cell--selected': isSelected,\n 'eds-datepicker__calendar__grid__cell--disabled':\n isDisabled || isUnavailable,\n 'eds-datepicker__calendar__grid__cell--outside-month':\n isOutsideVisibleRange,\n 'eds-datepicker__calendar__grid__cell--today': isEqualDay(\n date,\n now(state.timeZone ?? getLocalTimeZone()),\n ),\n })}\n {...rest}\n onClick={e => {\n buttonProps.onClick && buttonProps.onClick(e);\n isSelected && onSelectedCellClick();\n }}\n onKeyDown={e => {\n buttonProps.onKeyDown && buttonProps.onKeyDown(e);\n if (e.key === 'Enter' || e.key === ' ')\n isSelected && onSelectedCellClick();\n }}\n >\n {formattedDate}\n </div>\n </td>\n );\n};\n","import React from 'react';\n\nimport { useLocale } from '@react-aria/i18n';\nimport { useCalendarGrid } from '@react-aria/calendar';\nimport { CalendarState } from '@react-stately/calendar';\nimport { getWeeksInMonth } from '@internationalized/date';\n\nimport { useRandomId } from '@entur/utils';\nimport { VisuallyHidden } from '@entur/a11y';\n\nimport { CalendarCell } from './CalendarCell';\n\ntype CalendarGridProps = {\n state: CalendarState;\n navigationDescription?: string;\n onSelectedCellClick?: () => void;\n};\n\nexport const CalendarGrid = ({\n state,\n navigationDescription,\n onSelectedCellClick = () => {\n return;\n },\n ...rest\n}: CalendarGridProps) => {\n const calendarGridId = useRandomId('eds-calendar');\n const { locale } = useLocale();\n\n const { gridProps, headerProps, weekDays } = useCalendarGrid(rest, state);\n\n const weeksInMonth = getWeeksInMonth(state.visibleRange.start, locale);\n const weeksArray = Array.from(Array(weeksInMonth).keys());\n\n const weekDaysMapped = () => {\n if (locale.toLowerCase().includes('no'))\n return ['ma', 'ti', 'on', 'to', 'fr', 'lø', 'sø'];\n if (locale.toLowerCase().includes('en')) {\n if (weekDays[0] === 'M')\n return ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];\n if (weekDays[0] === 'S')\n return ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n }\n return weekDays.map(day => day.toLowerCase());\n };\n\n const getNavigationDescription = () => {\n if (navigationDescription) return navigationDescription;\n if (locale.toLowerCase().includes('en'))\n return 'Use the arrow keys to navigate between dates';\n return 'Bruk piltastene til å navigere mellom datoer';\n };\n\n return (\n <>\n <table\n {...gridProps}\n cellSpacing=\"0\"\n className=\"eds-datepicker__calendar__grid\"\n >\n <thead {...headerProps}>\n <tr>\n {weekDaysMapped().map((day, index) => (\n <th key={index}>{day}</th>\n ))}\n </tr>\n </thead>\n <tbody>\n {weeksArray.map(weekIndex => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex)\n .map((date, i) =>\n date ? (\n <CalendarCell\n key={i}\n state={state}\n date={date}\n aria-describedby={calendarGridId + 'description'}\n onSelectedCellClick={onSelectedCellClick}\n />\n ) : (\n <td key={i} />\n ),\n )}\n </tr>\n ))}\n </tbody>\n </table>\n <VisuallyHidden id={calendarGridId + 'description'}>\n {getNavigationDescription()}\n </VisuallyHidden>\n </>\n );\n};\n","import React, { ReactNode } from 'react';\n\nimport { I18nProvider, useLocale } from '@react-aria/i18n';\nimport { useCalendar } from '@react-aria/calendar';\nimport { useCalendarState } from '@react-stately/calendar';\nimport { DateValue } from '@internationalized/date';\n\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { ConditionalWrapper } from '@entur/utils';\n\nimport { ariaLabelIfNorwegian, createCalendar } from '../shared/utils';\nimport { CalendarButton } from '../shared/CalendarButton';\nimport { CalendarGrid } from './CalendarGrid';\n\nimport './Calendar.scss';\n\ntype CalendarProps = {\n selectedDate: DateValue | null;\n onChange: (SelectedDate: DateValue | null) => void;\n navigationDescription?: string;\n style?: React.CSSProperties;\n onSelectedCellClick?: () => void;\n [key: string]: any;\n};\n\nexport const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(\n (\n {\n selectedDate: value,\n onChange,\n locale: customLocale,\n style,\n children: _,\n navigationDescription,\n onSelectedCellClick = () => {\n return;\n },\n ...rest\n },\n ref,\n ) => {\n const { locale } = useLocale();\n\n const state = useCalendarState({\n ...rest,\n onChange,\n locale: customLocale ?? locale,\n createCalendar,\n });\n const { calendarProps, prevButtonProps, nextButtonProps, title } =\n useCalendar(rest, state);\n\n return (\n <ConditionalWrapper\n condition={customLocale}\n wrapper={(child: ReactNode) => (\n <I18nProvider locale={customLocale}>{child}</I18nProvider>\n )}\n >\n <div\n {...calendarProps}\n ref={ref}\n className=\"eds-datepicker__calendar\"\n style={style}\n >\n <div className=\"eds-datepicker__calendar__header\">\n <CalendarButton\n {...prevButtonProps}\n aria-label={ariaLabelIfNorwegian(\n 'Forrige måned',\n locale,\n prevButtonProps,\n )}\n >\n <LeftArrowIcon size={20} />\n </CalendarButton>\n <h2>{title}</h2>\n <CalendarButton\n {...nextButtonProps}\n aria-label={ariaLabelIfNorwegian(\n 'Neste måned',\n locale,\n nextButtonProps,\n )}\n >\n <RightArrowIcon size={20} />\n </CalendarButton>\n </div>\n <CalendarGrid\n state={state}\n navigationDescription={navigationDescription}\n onSelectedCellClick={onSelectedCellClick}\n />\n </div>\n </ConditionalWrapper>\n );\n },\n);\n","import React, { ReactNode, useRef } from 'react';\n\nimport { useDatePickerState } from '@react-stately/datepicker';\nimport { useDatePicker } from '@react-aria/datepicker';\nimport { I18nProvider } from '@react-aria/i18n';\nimport {\n useFloating,\n offset,\n flip,\n shift,\n autoUpdate,\n} from '@floating-ui/react-dom';\nimport FocusLock from 'react-focus-lock';\nimport classNames from 'classnames';\n\nimport type {\n DateValue,\n AriaDatePickerProps,\n MappedDateValue,\n} from '@react-types/datepicker';\n\nimport {\n ConditionalWrapper,\n useOnClickOutside,\n useOnEscape,\n useWindowDimensions,\n} from '@entur/utils';\nimport { space, zIndexes } from '@entur/tokens';\nimport { CalendarIcon } from '@entur/icons';\nimport { Modal } from '@entur/modal';\n\nimport type { VariantType } from '@entur/form';\n\nimport { DateField } from './DateField';\nimport { Calendar } from './Calendar';\nimport { CalendarButton } from '../shared/CalendarButton';\n\nimport './DatePicker.scss';\n\nexport type DatePickerProps<DateType extends DateValue> = {\n /** Den valgte datoen. Dato i '@internationalized/date'-pakkens format */\n selectedDate: DateType | null;\n /** Kalles når tiden endres. Dato i '@internationalized/date'-pakkens format */\n onChange: (value: MappedDateValue<DateType> | null) => void;\n /** Ledetekst for inputfeltet til DatePicker */\n label: string;\n /** BCP47-språkkoden til locale-en du ønsker å bruke.\n * @default Brukerenhetens selvvalgte locale\n */\n locale?: string;\n /** Viser den gjeldende tidssonen hvis en er valgt (krever at tid også vises)\n * @default false\n */\n showTimeZone?: boolean;\n /** Viser tidspunkt i tillegg til dato.\n * OBS: selectedDate må være av typen CalendarDateTime eller ZonedDateTime\n */\n showTime?: boolean;\n /** Tidligste gyldige datovalg.\n * Eks: today(getLocalTimeZone()) == i dag i lokal tidssone. */\n minDate?: DateValue;\n /** Seneste gyldige datovalg.\n * Eks: today(getLocalTimeZone()) == i dag i lokal tidssone\n *\n * OBS: Hvis du bruker dato med tid vil det være til, men ikke med denne datoen */\n maxDate?: DateValue;\n /** Funksjon som tar inn en dato og sier om den er utilgjengelig.\n * Eks. (date) => isWeekend(date, 'no-NO') == helgedager er ikke tilgjengelig */\n isDateUnavailable?: (date: DateValue) => boolean;\n /** Varselmelding, som vil komme under DatePicker sitt inputfelt */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Varselmelding som forteller om ugyldig dato\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om ugyldig dato\n * @default \"error\"\n */\n validationVariant?: VariantType;\n disabled?: boolean;\n /** Hvis true vil kalenderen alltid vises i en popover når den åpnes\n * @default false\n */\n disableModal?: boolean;\n /** Maxbredden til viewport-en for at modal skal vises\n * @default 1000\n */\n modalTreshold?: number;\n labelTooltip?: React.ReactNode;\n /** Skjermlesertest som forklarer navigasjon i kalenderen. Oversettes automatisk for engelsk locale, men ikke andre språk.\n * @default 'Bruk piltastene til å navigere mellom datoer'\n */\n navigationDescription?: string;\n /** Ekstra klassenavn */\n className?: string;\n style?: React.CSSProperties;\n} & Omit<\n AriaDatePickerProps<DateType>,\n | 'value'\n | 'onChange'\n | 'label'\n | 'hideTimeZone'\n | 'placeholder'\n | 'minValue'\n | 'maxValue'\n>;\n\nexport const DatePicker = <DateType extends DateValue>({\n selectedDate: value,\n onChange,\n locale,\n disabled: isDisabled,\n showTime,\n showTimeZone = false,\n className,\n style,\n variant,\n feedback,\n validationVariant,\n validationFeedback,\n disableModal = false,\n labelTooltip,\n navigationDescription,\n minDate: minValue,\n maxDate: maxValue,\n modalTreshold = 1000,\n ...rest\n}: DatePickerProps<DateType>) => {\n const CALENDAR_MODAL_MAX_SCREEN_WIDTH = modalTreshold;\n const datePickerRef = useRef<HTMLDivElement | null>(null);\n const calendarRef = useRef<HTMLDivElement | null>(null);\n const dateFieldRef = useRef<HTMLDivElement | null>(null);\n\n const { width } = useWindowDimensions();\n\n const state = useDatePickerState({\n ...rest,\n minValue,\n maxValue,\n value: value === null ? undefined : value,\n onChange,\n granularity: showTime ? 'minute' : rest.granularity,\n });\n const {\n groupProps,\n labelProps,\n fieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n } = useDatePicker(\n { isDisabled, minValue, maxValue, ...rest },\n state,\n datePickerRef,\n );\n\n // calculations for floating-UI popover position\n const { x, y, reference, floating, strategy } = useFloating({\n whileElementsMounted: autoUpdate,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall),\n flip(),\n shift({ padding: space.extraSmall }),\n ],\n });\n\n const onChangeCalendar = (newSelectedDate: DateValue) => {\n // Necessary to avoid state update on unmounted component\n requestAnimationFrame(() => {\n calendarProps.onChange && calendarProps.onChange(newSelectedDate);\n });\n };\n\n useOnClickOutside([calendarRef], () => {\n state.setOpen(false);\n });\n\n useOnEscape(calendarRef, () => {\n state.setOpen(false);\n });\n\n const calendarSharedProps = {\n ...dialogProps,\n ...calendarProps,\n disabled: calendarProps.isDisabled,\n navigationDescription: navigationDescription,\n onSelectedCellClick: () => state.setOpen(false),\n onChange: onChangeCalendar,\n granularity: showTime ? 'minute' : rest.granularity,\n };\n\n const useModal = width <= CALENDAR_MODAL_MAX_SCREEN_WIDTH && !disableModal;\n\n const popoverCalendar = (\n <div\n // styling for floating-UI popover\n style={{\n position: strategy,\n top: y ?? 0,\n left: x ?? 0,\n zIndex: zIndexes.popover,\n }}\n ref={node => {\n floating(node);\n }}\n >\n <FocusLock disabled={!state.isOpen || useModal} returnFocus>\n {state.isOpen && (\n <Calendar {...calendarSharedProps} ref={calendarRef} />\n )}\n </FocusLock>\n </div>\n );\n\n const modalCalendar = (\n <Modal\n size=\"small\"\n title=\"\"\n open={state.isOpen}\n onDismiss={() => state.setOpen(false)}\n closeOnClickOutside\n className=\"eds-datepicker__calendar-modal\"\n >\n <Calendar {...calendarSharedProps} />\n </Modal>\n );\n\n return (\n <ConditionalWrapper\n condition={locale !== undefined}\n wrapper={(child: ReactNode) => (\n <I18nProvider locale={locale}>{child}</I18nProvider>\n )}\n >\n <div className={classNames('eds-datepicker', className)}>\n <div\n {...groupProps}\n ref={node => {\n datePickerRef.current = node;\n reference(node);\n }}\n id={undefined}\n className=\"eds-datepicker__datefield__wrapper\"\n >\n <DateField\n {...fieldProps}\n selectedDate={state.value}\n label={rest.label}\n labelProps={labelProps}\n showTime={showTime}\n showTimeZone={showTimeZone}\n ref={dateFieldRef}\n variant={variant}\n feedback={feedback}\n validationVariant={validationVariant}\n validationFeedback={validationFeedback}\n labelTooltip={labelTooltip}\n className={classNames('eds-datepicker__datefield', {\n 'eds-datepicker__datefield--disabled': fieldProps.isDisabled,\n })}\n />\n {!fieldProps.isDisabled && (\n <CalendarButton\n {...buttonProps}\n onPress={() => state.setOpen(!state.isOpen)}\n className=\"eds-datepicker__open-calendar-button\"\n >\n <CalendarIcon />\n </CalendarButton>\n )}\n {useModal ? modalCalendar : popoverCalendar}\n </div>\n </div>\n </ConditionalWrapper>\n );\n};\n","import React from 'react';\nimport {\n BaseFormControl,\n isFilled,\n useInputGroupContext,\n useVariant,\n VariantType,\n} from '@entur/form';\nimport { DateIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\n\nexport type NativeDatePickerProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label over NativeDatePicker */\n label: string;\n /** Varselmelding, som vil komme under NativeDatePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Tekst eller ikon som kommer før inputfelter\n * @default <DateIcon />\n */\n prepend?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const NativeDatePicker = React.forwardRef<\n HTMLInputElement,\n NativeDatePickerProps\n>(\n (\n {\n className,\n style,\n label,\n onChange,\n feedback,\n variant,\n disableLabelAnimation,\n prepend = <DateIcon inline />,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const nativedatepickerId = useRandomId('eds-nativetimepicker');\n return (\n <BaseFormControl\n style={style}\n className={className}\n prepend={prepend}\n label={label}\n feedback={feedback}\n variant={variant}\n labelId={nativedatepickerId}\n disableLabelAnimation={disableLabelAnimation}\n isFilled\n >\n <NativeDatePickerBase\n onChange={onChange}\n aria-labelledby={nativedatepickerId}\n ref={ref}\n variant={variant}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype NativeDatePickerBaseProps = {\n onChange?: any;\n variant?: VariantType;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nconst NativeDatePickerBase = React.forwardRef<\n HTMLInputElement,\n NativeDatePickerBaseProps\n>(({ onChange, variant, value, ...rest }, ref) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n const { isFilled: isDatepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n setFiller && !isDatepickerFilled && setFiller(true);\n });\n\n React.useEffect(() => {\n if (value) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n }, [value, setFiller, isDatepickerFilled]);\n\n const handleChange = (event: any) => {\n if (isFilled(event.target)) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n return (\n <input\n ref={ref}\n aria-invalid={currentVariant === 'error'}\n type=\"date\"\n className=\"eds-form-control eds-native-date-picker\"\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n});\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport { IconButton } from '@entur/button';\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\n\ntype TimePickerArrowButtonProps = {\n direction: 'left' | 'right';\n} & React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n>;\n\nexport const TimePickerArrowButton: React.FC<TimePickerArrowButtonProps> = ({\n direction,\n onClick,\n disabled,\n 'aria-label': ariaLabel,\n}) => {\n return (\n <IconButton\n className={classNames(\n 'eds-timepicker__arrowbutton',\n `eds-timepicker__arrowbutton--${direction}`,\n { 'eds-timepicker__arrowbutton--disabled': disabled },\n )}\n type=\"button\"\n tabIndex={-1}\n onClick={onClick}\n aria-label={ariaLabel}\n disabled={disabled}\n >\n {direction === 'left' ? <LeftArrowIcon /> : <RightArrowIcon />}\n </IconButton>\n );\n};\n","import React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport { useTimeField } from '@react-aria/datepicker';\nimport { I18nProvider, useLocale } from '@react-aria/i18n';\nimport { useTimeFieldState } from '@react-stately/datepicker';\nimport { getLocalTimeZone, now } from '@internationalized/date';\n\nimport type { TimeValue, AriaTimeFieldProps } from '@react-types/datepicker';\n\nimport { BaseFormControl, VariantType } from '@entur/form';\nimport { useRandomId, mergeRefs } from '@entur/utils';\n\nimport { FieldSegment } from '../shared/FieldSegment';\nimport { TimePickerArrowButton } from './TimePickerArrowButton';\n\nimport './TimePicker.scss';\n\nexport type TimePickerProps = {\n /** Den valgte tiden. Tid i '@internationalized/date'-pakkens format */\n selectedTime: TimeValue | null;\n /** Kalles når tiden endres. Tid i '@internationalized/date'-pakkens format */\n onChange: (value: TimeValue) => void;\n /** Label til TimePicker */\n label: string;\n /** Minutter som legges til eller trekkes fra ved klikk på pilene i TimePicker\n * @default 30\n */\n minuteIncrementForArrowButtons?: number;\n /** BCP47-språkkoden til locale-en du ønsker å bruke.\n * @default Brukerenhetens selvvalgte locale\n */\n locale?: string;\n /** Viser den gjeldende tidssonen hvis en er valgt\n * @default false\n */\n showTimeZone?: boolean;\n /** Aria-label for venstrepil-knappen som trekker fra tid\n * @default `Trekk fra ${minuteIncrementForArrowButtons} minutter`\n */\n leftArrowButtonAriaLabel?: string;\n /** Aria-label for høyrepil-knappen som legger til tid\n * @default `Legg til ${minuteIncrementForArrowButtons} minutter`\n */\n rightArrowButtonAriaLabel?: string;\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n labelTooltip?: React.ReactNode;\n disabled?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n style?: React.CSSProperties;\n} & Omit<\n AriaTimeFieldProps<TimeValue>,\n 'onChange' | 'label' | 'hideTimeZone' | 'placeholder'\n>;\n\nexport const TimePicker = React.forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n selectedTime,\n onChange,\n disabled,\n className,\n style,\n label,\n labelTooltip,\n feedback,\n variant,\n locale: customLocale,\n showTimeZone,\n minuteIncrementForArrowButtons = 30,\n leftArrowButtonAriaLabel = `Trekk fra ${minuteIncrementForArrowButtons} minutter`,\n rightArrowButtonAriaLabel = `Legg til ${minuteIncrementForArrowButtons} minutter`,\n ...rest\n },\n ref,\n ) => {\n let { locale } = useLocale();\n if (customLocale) locale = customLocale;\n\n const state = useTimeFieldState({\n onChange,\n label: label,\n locale,\n value: selectedTime === null ? undefined : selectedTime,\n hideTimeZone: !showTimeZone,\n isDisabled: disabled,\n ...rest,\n });\n const timeFieldRef = useRef(null);\n const { labelProps, fieldProps } = useTimeField(\n { ...rest, label: label },\n state,\n timeFieldRef,\n );\n const id = useRandomId('timepicker');\n\n const handleOnClickArrowButton = (minutes: number) => {\n if (someSegmentIsUndefined) {\n setTimeToNearestMinuteIncrement();\n } else {\n addMinutesToSelectedTime(minutes);\n }\n };\n\n const someSegmentIsUndefined = state.segments.some(\n segment => segment.text === '––',\n );\n\n const setTimeToNearestMinuteIncrement = () => {\n const currentTime = now(getLocalTimeZone());\n const roundedMinute =\n Math.floor(currentTime.minute / minuteIncrementForArrowButtons) *\n minuteIncrementForArrowButtons;\n const newTime = currentTime.set({ minute: roundedMinute });\n onChange(newTime);\n };\n\n const addMinutesToSelectedTime = (minutes: number) => {\n state.value &&\n state.setValue(\n state.value?.add({\n minutes: minutes,\n }),\n );\n };\n\n return (\n <I18nProvider locale={locale}>\n <div className={classNames(className, 'eds-timepicker__wrapper')}>\n <TimePickerArrowButton\n direction=\"left\"\n disabled={disabled}\n aria-label={leftArrowButtonAriaLabel}\n onClick={() =>\n handleOnClickArrowButton(minuteIncrementForArrowButtons * -1)\n }\n />\n <BaseFormControl\n style={style}\n className={'eds-timepicker'}\n labelId={id}\n label={label}\n labelProps={{ ...labelProps }}\n ref={mergeRefs(timeFieldRef, ref)}\n disabled={disabled}\n disableLabelAnimation\n labelTooltip={labelTooltip}\n {...fieldProps}\n variant={variant}\n feedback={feedback}\n >\n {state.segments.map((segment, i) => (\n <FieldSegment segment={segment} state={state} key={i} />\n ))}\n </BaseFormControl>\n <TimePickerArrowButton\n direction=\"right\"\n disabled={disabled}\n aria-label={rightArrowButtonAriaLabel}\n onClick={() =>\n handleOnClickArrowButton(minuteIncrementForArrowButtons)\n }\n />\n </div>\n </I18nProvider>\n );\n },\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n BaseFormControl,\n isFilled,\n useInputGroupContext,\n useVariant,\n VariantType,\n} from '@entur/form';\nimport { useOnMount, useRandomId } from '@entur/utils';\n\nimport './NativeTimePicker.scss';\n\nexport type NativeTimePickerProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label over NativeTimePicker */\n label: string;\n /** Varselmelding, som vil komme under NativeTimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Tekst eller ikon som kommer før inputfelter */\n prepend?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const NativeTimePicker = React.forwardRef<\n HTMLInputElement,\n NativeTimePickerProps\n>(\n (\n { className, style, onChange, label, feedback, variant, prepend, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const nativetimepickerId = useRandomId('eds-native-timepicker');\n return (\n <BaseFormControl\n style={style}\n className={classNames(className, 'eds-native-timepicker')}\n prepend={prepend}\n label={label}\n feedback={feedback}\n variant={variant}\n labelId={nativetimepickerId}\n disableLabelAnimation\n >\n <NativeTimePickerBase\n onChange={onChange}\n aria-labelledby={nativetimepickerId}\n ref={ref}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype NativeTimePickerBaseProps = {\n variant?: VariantType;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nconst NativeTimePickerBase = React.forwardRef<\n HTMLInputElement,\n NativeTimePickerBaseProps\n>(({ onChange, value, ...rest }, ref) => {\n const contextVariant = useVariant();\n const currentVariant = rest.variant || contextVariant;\n const { isFilled: isTimepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n setFiller && !isTimepickerFilled && setFiller(true);\n });\n\n React.useEffect(() => {\n if (value) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n }, [value, setFiller, isTimepickerFilled]);\n\n const handleChange = (event: any) => {\n if (isFilled(event.target)) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n return (\n <input\n ref={ref}\n aria-invalid={currentVariant === 'error'}\n type=\"time\"\n className=\"eds-form-control\"\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n});\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('datepicker', 'form', 'icons');\n\nexport * from './DatePicker';\nexport * from './TimePicker';\nexport * from './shared';\n\nexport type {\n DateValue,\n CalendarDate,\n CalendarDateTime,\n ZonedDateTime,\n Time,\n} from '@internationalized/date';\nexport type { TimeValue } from '@react-types/datepicker';\n"],"names":["FieldSegment","segment","state","ref","useRef","useDateSegment","segmentProps","is12HourFormatted","segments","some","text","segmentDisplayText","match","padStart","React","createElement","className","classNames","isPlaceholder","tabIndex","isDisabled","nativeDateToDateTime","date","timeZone","offset","ZonedDateTime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","parseAbsolute","toISOString","CalendarDateTime","nativeDateToDateValue","noTimeOnlyDate","CalendarDate","nativeDateToTimeValue","noDateOnlyTime","Time","timeOrDateValueToNativeDate","value","timeZoneForCalendarDateTime","day","Date","setHours","hour","setMinutes","minute","setSeconds","second","toDate","getLocalTimeZone","year","month","createCalendar","identifier","GregorianCalendar","Error","ariaLabelIfNorwegian","norwegianAriaLabel","locale","propsCollection","toLowerCase","DateField","forwardRef","selectedDate","label","customLocale","showTimeZone","showTime","granularity","disabled","variant","feedback","validationVariant","validationFeedback","labelTooltip","minValue","minDate","maxValue","maxDate","style","parentLabelProps","labelProps","append","rest","_excluded","useLocale","useDateFieldState","undefined","hideTimeZone","dateFieldRef","useDateField","fieldProps","id","useRandomId","ConditionalWrapper","condition","wrapper","child","I18nProvider","BaseFormControl","labelId","mergeRefs","disableLabelAnimation","validationState","ariaAlertOnFeedback","map","i","key","CalendarButton","children","props","useButton","buttonProps","IconButton","CalendarCell","onSelectedCellClick","cellRef","useCalendarCell","cellProps","isSelected","isOutsideVisibleRange","isUnavailable","formattedDate","hidden","isEqualDay","now","onClick","e","onKeyDown","CalendarGrid","navigationDescription","calendarGridId","useCalendarGrid","gridProps","headerProps","weekDays","weeksInMonth","getWeeksInMonth","visibleRange","start","weeksArray","Array","from","keys","weekDaysMapped","includes","getNavigationDescription","Fragment","cellSpacing","index","weekIndex","getDatesInWeek","VisuallyHidden","Calendar","onChange","_","useCalendarState","useCalendar","calendarProps","prevButtonProps","nextButtonProps","title","LeftArrowIcon","size","RightArrowIcon","DatePicker","disableModal","modalTreshold","CALENDAR_MODAL_MAX_SCREEN_WIDTH","datePickerRef","calendarRef","useWindowDimensions","width","useDatePickerState","useDatePicker","groupProps","dialogProps","useFloating","whileElementsMounted","autoUpdate","placement","middleware","space","extraSmall","flip","shift","padding","x","y","reference","floating","strategy","onChangeCalendar","newSelectedDate","requestAnimationFrame","useOnClickOutside","setOpen","useOnEscape","calendarSharedProps","useModal","popoverCalendar","position","top","left","zIndex","zIndexes","popover","node","FocusLock","isOpen","returnFocus","modalCalendar","Modal","open","onDismiss","closeOnClickOutside","current","onPress","CalendarIcon","NativeDatePicker","prepend","DateIcon","inline","nativedatepickerId","isFilled","NativeDatePickerBase","_excluded2","contextVariant","useVariant","currentVariant","useInputGroupContext","isDatepickerFilled","setFiller","setFilled","useOnMount","useEffect","handleChange","event","target","type","TimePickerArrowButton","direction","ariaLabel","TimePicker","selectedTime","minuteIncrementForArrowButtons","leftArrowButtonAriaLabel","rightArrowButtonAriaLabel","useTimeFieldState","timeFieldRef","useTimeField","handleOnClickArrowButton","minutes","someSegmentIsUndefined","setTimeToNearestMinuteIncrement","addMinutesToSelectedTime","currentTime","roundedMinute","Math","floor","newTime","set","setValue","add","NativeTimePicker","nativetimepickerId","NativeTimePickerBase","isTimepickerFilled","warnAboutMissingStyles"],"mappings":"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"}
1
+ {"version":3,"file":"datepicker.cjs.development.js","sources":["../src/shared/FieldSegment.tsx","../src/shared/utils.ts","../src/DatePicker/DateField.tsx","../src/shared/CalendarButton.tsx","../src/DatePicker/CalendarCell.tsx","../src/DatePicker/CalendarGrid.tsx","../src/DatePicker/Calendar.tsx","../src/DatePicker/DatePicker.tsx","../src/DatePicker/NativeDatePicker.tsx","../src/TimePicker/TimePickerArrowButton.tsx","../src/TimePicker/TimePicker.tsx","../src/TimePicker/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport { useDateSegment } from '@react-aria/datepicker';\nimport { DateSegment, DateFieldState } from '@react-stately/datepicker';\n\nimport './FieldSegment.scss';\n\ntype TimeSegmentProps = {\n segment: DateSegment;\n state: DateFieldState;\n};\n\nexport const FieldSegment = ({ segment, state }: TimeSegmentProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const { segmentProps } = useDateSegment(segment, state, ref);\n\n const is12HourFormatted = state.segments.some(\n segment => segment.text === 'AM' || segment.text === 'PM',\n );\n\n const segmentDisplayText = () => {\n if (is12HourFormatted) return segment.text;\n // if number add '0' padding to start when one digit\n if (segment.text.match(/\\d+/)) return segment.text.padStart(2, '0');\n return segment.text;\n };\n\n return (\n <div\n {...segmentProps}\n ref={ref}\n className={classNames('eds-date-and-time-field__segment', {\n 'eds-date-and-time-field__segment--placeholder': segment.isPlaceholder,\n 'eds-date-and-time-field__segment--dot-separator': segment.text === '.',\n })}\n tabIndex={state.isDisabled ? -1 : segmentProps.tabIndex}\n >\n {segmentDisplayText()}\n </div>\n );\n};\n","import {\n ZonedDateTime,\n CalendarDateTime,\n Time,\n parseAbsolute,\n DateValue,\n getLocalTimeZone,\n CalendarDate,\n} from '@internationalized/date';\nimport { TimeValue } from '@react-types/datepicker';\nimport { Calendar, GregorianCalendar } from '@internationalized/date';\n\nconst nativeDateToDateTime = (\n date: Date,\n timeZone?: string,\n offset?: number,\n) => {\n if (timeZone) {\n if (offset) {\n return new ZonedDateTime(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n timeZone,\n offset,\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n );\n }\n return parseAbsolute(date.toISOString(), timeZone);\n }\n return new CalendarDateTime(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n );\n};\n\n/**\n * Tar inn et JS Date-objekt og returnerer et av DateValue-objektene fra @internationalized/date-pakken\n * @param {Date} date JS Date-objekt som ønskes konvertert til et DateValue-objekt\n * @param {boolean} noTimeOnlyDate Hvis tidspunktet er irrelevant kan denne settes til true, da får man et CalendarDate-objekt uten tidspunkt tilbake\n * @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\n * @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.\n * @returns {CalendarDateTime | ZonedDateTime | CalendarDate} et av DateValue-objektene med verdier fra date\n */\nexport const nativeDateToDateValue = (\n date: Date,\n noTimeOnlyDate = false,\n timeZone?: string,\n offset?: number,\n) => {\n if (noTimeOnlyDate)\n return new CalendarDate(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n );\n\n return nativeDateToDateTime(date, timeZone, offset);\n};\n\n/**\n * Tar inn et JS Date-objekt og returnerer et av TimeValue-objektene fra @internationalized/date-pakken\n * @param {Date} date JS Date-objekt som ønskes konvertert til et TimeValue-objekt\n * @param {boolean} noDateOnlyTime Hvis datoen er irrelevant kan denne settes til true, da får man et Time-objekt uten dato tilbake\n * @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\n * @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.\n * @returns {Time | CalendarDateTime | ZonedDateTime} et av TimeValue-objektene med verdier fra date\n */\nexport const nativeDateToTimeValue = (\n date: Date,\n noDateOnlyTime = false,\n timeZone?: string,\n offset?: number,\n) => {\n if (noDateOnlyTime)\n return new Time(date.getHours(), date.getMinutes(), date.getSeconds(), 0);\n\n return nativeDateToDateTime(date, timeZone, offset);\n};\n\n/**\n * Tar inn et av Date- eller TimeValue-objektene fra @internationalized/date-pakken og returnerer et JS Date-objekt\n * @param {DateValue | TimeValue} value En dato eller et tidspunkt på Date- eller TimeValue-formatet som ønskes konvertert til et JS Date-objekt\n * @param {string} timeZoneForCalendarDateTime Tidssonen value er i. Fungerer kun med typen er CalendarDateTime\n * @returns {Date} et Date-objekt med verdier fra time\n */\n// This function uses a lot of @ts-expect-error to make it work with all Date- and TimeValue types. Sorry ...\nexport const timeOrDateValueToNativeDate = (\n value: TimeValue | DateValue,\n timeZoneForCalendarDateTime?: string,\n): Date => {\n // @ts-expect-error .day does not exist on Time-object\n if (!value.day) {\n // type is Time\n const date = new Date();\n // @ts-expect-error hour does not exist on CalendarDate\n date.setHours(value.hour);\n // @ts-expect-error minute does not exist on CalendarDate\n date.setMinutes(value.minute);\n // @ts-expect-error second does not exist on CalendarDate\n date.setSeconds(value.second);\n return date;\n }\n\n // @ts-expect-error .day does not exist on Time-object\n if (!value.hour) {\n // type is CalendarDate\n // @ts-expect-error .toDate(timeZone) does not exist in type Time\n return value.toDate(timeZoneForCalendarDateTime ?? getLocalTimeZone());\n }\n\n // @ts-expect-error .timeZone does not exist in type Time and CalendarDateTime\n if (!value.timeZone) {\n // type is CalendarDateTime\n if (timeZoneForCalendarDateTime)\n // @ts-expect-error .toDate(timeZone) does not exist in type Time\n return value.toDate(timeZoneForCalendarDateTime);\n\n return new Date(\n // @ts-expect-error not in type Time\n value.year,\n // @ts-expect-error not in type Time\n value.month - 1,\n // @ts-expect-error not in type Time\n value.day,\n // @ts-expect-error not in type CalendarDate\n value.hour,\n // @ts-expect-error not in type CalendarDate\n value.minute,\n // @ts-expect-error not in type CalendarDate\n value.second,\n );\n }\n\n // @ts-expect-error .toDate() does not exist in type Time or CalendarDateTime\n return value.toDate();\n};\n\nexport const createCalendar = (identifier = 'gregory'): Calendar => {\n switch (identifier) {\n case 'gregory':\n return new GregorianCalendar();\n default:\n throw new Error(`Unsupported calendar ${identifier}`);\n }\n};\n\nexport const ariaLabelIfNorwegian = (\n norwegianAriaLabel: string,\n locale: string,\n propsCollection: any,\n) => {\n if (locale.toLowerCase() !== 'no-no') return propsCollection['aria-label'];\n return norwegianAriaLabel;\n};\n","import React, { ReactNode, useRef } from 'react';\n\nimport { useDateFieldState } from '@react-stately/datepicker';\nimport { useDateField } from '@react-aria/datepicker';\nimport { I18nProvider, useLocale } from '@react-aria/i18n';\nimport classNames from 'classnames';\n\nimport type {\n SpectrumDateFieldProps,\n DateValue,\n} from '@react-types/datepicker';\n\nimport { BaseFormControl, VariantType } from '@entur/form';\nimport { ConditionalWrapper, mergeRefs, useRandomId } from '@entur/utils';\n\nimport { FieldSegment } from '../shared/FieldSegment';\nimport { createCalendar } from '../shared/utils';\n\nimport './DateField.scss';\n\nexport type DateFieldProps = {\n /** Den valgte tiden. Tid i '@internationalized/date'-pakkens format */\n selectedDate: DateValue | null;\n /** Kalles når tiden endres. Tid i '@internationalized/date'-pakkens format */\n onChange: (value: DateValue) => void;\n /** Label til TimePicker */\n label: string;\n /** BCP47-språkkoden til locale-en du ønsker å bruke.\n * @default Brukerenhetens selvvalgte locale\n */\n locale?: string;\n /** Viser den gjeldende tidssonen hvis en er valgt\n * @default false\n */\n showTimeZone?: boolean;\n showTime?: boolean;\n /** Tidligste gyldige datovalg.\n * Eks: today(getLocalTimeZone()) == i dag i lokal tidssone */\n minDate?: DateValue;\n /** Seneste gyldige datovalg. (se minValue) */\n maxDate?: DateValue;\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Varselmelding som forteller om ugyldig dato\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om ugyldig dato\n * @default \"error\"\n */\n validationVariant?: VariantType;\n labelTooltip?: React.ReactNode;\n disabled?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n style?: React.CSSProperties;\n [key: string]: any;\n} & Omit<\n SpectrumDateFieldProps<DateValue>,\n | 'value'\n | 'onChange'\n | 'label'\n | 'hideTimeZone'\n | 'placeholder'\n | 'minValue'\n | 'maxValue'\n>;\n\nexport const DateField = React.forwardRef<HTMLDivElement, DateFieldProps>(\n (\n {\n selectedDate: value,\n label,\n locale: customLocale,\n showTimeZone,\n showTime,\n granularity = 'day',\n disabled,\n variant,\n feedback,\n validationVariant = 'error',\n validationFeedback = 'Ugyldig dato',\n labelTooltip,\n minDate: minValue,\n maxDate: maxValue,\n style,\n className,\n labelProps: parentLabelProps,\n append,\n ...rest\n },\n ref,\n ) => {\n const { locale } = useLocale();\n\n const state = useDateFieldState({\n ...rest,\n locale: customLocale ?? locale,\n createCalendar,\n value: value === null ? undefined : value,\n hideTimeZone: !showTimeZone,\n granularity: showTime ? 'minute' : granularity,\n minValue,\n maxValue,\n });\n\n const dateFieldRef = useRef(null);\n const { labelProps, fieldProps } = useDateField(\n { ...rest, label: label, isDisabled: disabled || rest.isDisabled },\n state,\n dateFieldRef,\n );\n\n const id = useRandomId('datefield');\n\n return (\n <ConditionalWrapper\n condition={customLocale !== undefined}\n wrapper={(child: ReactNode) => (\n <I18nProvider locale={customLocale}>{child}</I18nProvider>\n )}\n >\n <BaseFormControl\n style={style}\n className={classNames('eds-datefield', className)}\n labelId={id}\n ref={mergeRefs(dateFieldRef, ref)}\n disabled={state.isDisabled}\n disableLabelAnimation\n label={label}\n labelTooltip={labelTooltip}\n labelProps={parentLabelProps ?? labelProps}\n {...fieldProps}\n variant={\n variant ?? state.validationState === 'invalid'\n ? validationVariant\n : undefined\n }\n feedback={\n feedback ?? state.validationState === 'invalid'\n ? validationFeedback\n : undefined\n }\n append={append}\n ariaAlertOnFeedback\n >\n {state.segments.map((segment, i) => (\n <FieldSegment segment={segment} state={state} key={i} />\n ))}\n </BaseFormControl>\n </ConditionalWrapper>\n );\n },\n);\n","import React, { useRef } from 'react';\n\nimport { useButton } from '@react-aria/button';\n\nimport { IconButton } from '@entur/button';\n\ntype CalendarButtonProps = {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n [key: string]: any;\n};\n\nexport const CalendarButton = ({\n children,\n className,\n style,\n ...props\n}: CalendarButtonProps) => {\n const ref = useRef(null);\n const { buttonProps } = useButton(props, ref);\n\n return (\n <IconButton {...buttonProps} ref={ref} className={className} style={style}>\n {children}\n </IconButton>\n );\n};\n","import React, { useRef } from 'react';\n\nimport { useCalendarCell } from '@react-aria/calendar';\nimport { CalendarState } from '@react-stately/calendar';\nimport {\n CalendarDate,\n getLocalTimeZone,\n isEqualDay,\n now,\n} from '@internationalized/date';\nimport classNames from 'classnames';\n\ntype CalendarCellProps = {\n state: CalendarState;\n date: CalendarDate;\n onSelectedCellClick?: () => void;\n};\n\nexport const CalendarCell = ({\n state,\n date,\n onSelectedCellClick = () => {\n return;\n },\n ...rest\n}: CalendarCellProps) => {\n const cellRef = useRef(null);\n\n const {\n cellProps,\n buttonProps,\n isSelected,\n isOutsideVisibleRange,\n isDisabled,\n isUnavailable,\n formattedDate,\n } = useCalendarCell({ date }, state, cellRef);\n return (\n <td {...cellProps} className=\"eds-datepicker__calendar__grid__cell__td\">\n <div\n {...buttonProps}\n ref={cellRef}\n hidden={isOutsideVisibleRange}\n className={classNames('eds-datepicker__calendar__grid__cell', {\n 'eds-datepicker__calendar__grid__cell--selected': isSelected,\n 'eds-datepicker__calendar__grid__cell--disabled':\n isDisabled || isUnavailable,\n 'eds-datepicker__calendar__grid__cell--outside-month':\n isOutsideVisibleRange,\n 'eds-datepicker__calendar__grid__cell--today': isEqualDay(\n date,\n now(state.timeZone ?? getLocalTimeZone()),\n ),\n })}\n {...rest}\n onClick={e => {\n buttonProps.onClick && buttonProps.onClick(e);\n isSelected && onSelectedCellClick();\n }}\n onKeyDown={e => {\n buttonProps.onKeyDown && buttonProps.onKeyDown(e);\n if (e.key === 'Enter' || e.key === ' ')\n isSelected && onSelectedCellClick();\n }}\n >\n {formattedDate}\n </div>\n </td>\n );\n};\n","import React from 'react';\n\nimport { useLocale } from '@react-aria/i18n';\nimport { useCalendarGrid } from '@react-aria/calendar';\nimport { CalendarState } from '@react-stately/calendar';\nimport { getWeeksInMonth } from '@internationalized/date';\n\nimport { useRandomId } from '@entur/utils';\nimport { VisuallyHidden } from '@entur/a11y';\n\nimport { CalendarCell } from './CalendarCell';\n\ntype CalendarGridProps = {\n state: CalendarState;\n navigationDescription?: string;\n onSelectedCellClick?: () => void;\n};\n\nexport const CalendarGrid = ({\n state,\n navigationDescription,\n onSelectedCellClick = () => {\n return;\n },\n ...rest\n}: CalendarGridProps) => {\n const calendarGridId = useRandomId('eds-calendar');\n const { locale } = useLocale();\n\n const { gridProps, headerProps, weekDays } = useCalendarGrid(rest, state);\n\n const weeksInMonth = getWeeksInMonth(state.visibleRange.start, locale);\n const weeksArray = Array.from(Array(weeksInMonth).keys());\n\n const weekDaysMapped = () => {\n if (locale.toLowerCase().includes('no'))\n return ['ma', 'ti', 'on', 'to', 'fr', 'lø', 'sø'];\n if (locale.toLowerCase().includes('en')) {\n if (weekDays[0] === 'M')\n return ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];\n if (weekDays[0] === 'S')\n return ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n }\n return weekDays.map(day => day.toLowerCase());\n };\n\n const getNavigationDescription = () => {\n if (navigationDescription) return navigationDescription;\n if (locale.toLowerCase().includes('en'))\n return 'Use the arrow keys to navigate between dates';\n return 'Bruk piltastene til å navigere mellom datoer';\n };\n\n return (\n <>\n <table\n {...gridProps}\n cellSpacing=\"0\"\n className=\"eds-datepicker__calendar__grid\"\n >\n <thead {...headerProps}>\n <tr>\n {weekDaysMapped().map((day, index) => (\n <th key={index}>{day}</th>\n ))}\n </tr>\n </thead>\n <tbody>\n {weeksArray.map(weekIndex => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex)\n .map((date, i) =>\n date ? (\n <CalendarCell\n key={i}\n state={state}\n date={date}\n aria-describedby={calendarGridId + 'description'}\n onSelectedCellClick={onSelectedCellClick}\n />\n ) : (\n <td key={i} />\n ),\n )}\n </tr>\n ))}\n </tbody>\n </table>\n <VisuallyHidden id={calendarGridId + 'description'}>\n {getNavigationDescription()}\n </VisuallyHidden>\n </>\n );\n};\n","import React, { ReactNode } from 'react';\n\nimport { I18nProvider, useLocale } from '@react-aria/i18n';\nimport { useCalendar } from '@react-aria/calendar';\nimport { useCalendarState } from '@react-stately/calendar';\nimport { DateValue } from '@internationalized/date';\n\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { ConditionalWrapper } from '@entur/utils';\n\nimport { ariaLabelIfNorwegian, createCalendar } from '../shared/utils';\nimport { CalendarButton } from '../shared/CalendarButton';\nimport { CalendarGrid } from './CalendarGrid';\n\nimport './Calendar.scss';\n\ntype CalendarProps = {\n selectedDate: DateValue | null;\n onChange: (SelectedDate: DateValue | null) => void;\n navigationDescription?: string;\n style?: React.CSSProperties;\n onSelectedCellClick?: () => void;\n [key: string]: any;\n};\n\nexport const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(\n (\n {\n selectedDate: value,\n onChange,\n locale: customLocale,\n style,\n children: _,\n navigationDescription,\n onSelectedCellClick = () => {\n return;\n },\n ...rest\n },\n ref,\n ) => {\n const { locale } = useLocale();\n\n const state = useCalendarState({\n ...rest,\n onChange,\n locale: customLocale ?? locale,\n createCalendar,\n });\n const { calendarProps, prevButtonProps, nextButtonProps, title } =\n useCalendar(rest, state);\n\n return (\n <ConditionalWrapper\n condition={customLocale}\n wrapper={(child: ReactNode) => (\n <I18nProvider locale={customLocale}>{child}</I18nProvider>\n )}\n >\n <div\n {...calendarProps}\n ref={ref}\n className=\"eds-datepicker__calendar\"\n style={style}\n >\n <div className=\"eds-datepicker__calendar__header\">\n <CalendarButton\n {...prevButtonProps}\n aria-label={ariaLabelIfNorwegian(\n 'Forrige måned',\n locale,\n prevButtonProps,\n )}\n >\n <LeftArrowIcon size={20} />\n </CalendarButton>\n <h2>{title}</h2>\n <CalendarButton\n {...nextButtonProps}\n aria-label={ariaLabelIfNorwegian(\n 'Neste måned',\n locale,\n nextButtonProps,\n )}\n >\n <RightArrowIcon size={20} />\n </CalendarButton>\n </div>\n <CalendarGrid\n state={state}\n navigationDescription={navigationDescription}\n onSelectedCellClick={onSelectedCellClick}\n />\n </div>\n </ConditionalWrapper>\n );\n },\n);\n","import React, { ReactNode, useRef } from 'react';\n\nimport { useDatePickerState } from '@react-stately/datepicker';\nimport { useDatePicker } from '@react-aria/datepicker';\nimport { I18nProvider } from '@react-aria/i18n';\nimport {\n useFloating,\n offset,\n flip,\n shift,\n autoUpdate,\n} from '@floating-ui/react-dom';\nimport FocusLock from 'react-focus-lock';\nimport classNames from 'classnames';\n\nimport type {\n DateValue,\n AriaDatePickerProps,\n MappedDateValue,\n} from '@react-types/datepicker';\n\nimport {\n ConditionalWrapper,\n useOnClickOutside,\n useOnEscape,\n useWindowDimensions,\n} from '@entur/utils';\nimport { space, zIndexes } from '@entur/tokens';\nimport { CalendarIcon } from '@entur/icons';\nimport { Modal } from '@entur/modal';\n\nimport type { VariantType } from '@entur/form';\n\nimport { DateField } from './DateField';\nimport { Calendar } from './Calendar';\nimport { CalendarButton } from '../shared/CalendarButton';\n\nimport './DatePicker.scss';\n\nexport type DatePickerProps<DateType extends DateValue> = {\n /** Den valgte datoen. Dato i '@internationalized/date'-pakkens format */\n selectedDate: DateType | null;\n /** Kalles når tiden endres. Dato i '@internationalized/date'-pakkens format */\n onChange: (value: MappedDateValue<DateType> | null) => void;\n /** Ledetekst for inputfeltet til DatePicker */\n label: string;\n /** BCP47-språkkoden til locale-en du ønsker å bruke.\n * @default Brukerenhetens selvvalgte locale\n */\n locale?: string;\n /** Viser den gjeldende tidssonen hvis en er valgt (krever at tid også vises)\n * @default false\n */\n showTimeZone?: boolean;\n /** Viser tidspunkt i tillegg til dato.\n * OBS: selectedDate må være av typen CalendarDateTime eller ZonedDateTime\n */\n showTime?: boolean;\n /** Tidligste gyldige datovalg.\n * Eks: today(getLocalTimeZone()) == i dag i lokal tidssone. */\n minDate?: DateValue;\n /** Seneste gyldige datovalg.\n * Eks: today(getLocalTimeZone()) == i dag i lokal tidssone\n *\n * OBS: Hvis du bruker dato med tid vil det være til, men ikke med denne datoen */\n maxDate?: DateValue;\n /** Funksjon som tar inn en dato og sier om den er utilgjengelig.\n * Eks. (date) => isWeekend(date, 'no-NO') == helgedager er ikke tilgjengelig */\n isDateUnavailable?: (date: DateValue) => boolean;\n /** Varselmelding, som vil komme under DatePicker sitt inputfelt */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Varselmelding som forteller om ugyldig dato\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om ugyldig dato\n * @default \"error\"\n */\n validationVariant?: VariantType;\n disabled?: boolean;\n /** Hvis true vil kalenderen alltid vises i en popover når den åpnes\n * @default false\n */\n disableModal?: boolean;\n /** Maxbredden til viewport-en for at modal skal vises\n * @default 1000\n */\n modalTreshold?: number;\n labelTooltip?: React.ReactNode;\n /** Skjermlesertest som forklarer navigasjon i kalenderen. Oversettes automatisk for engelsk locale, men ikke andre språk.\n * @default 'Bruk piltastene til å navigere mellom datoer'\n */\n navigationDescription?: string;\n /** Ekstra klassenavn */\n className?: string;\n style?: React.CSSProperties;\n} & Omit<\n AriaDatePickerProps<DateType>,\n | 'value'\n | 'onChange'\n | 'label'\n | 'hideTimeZone'\n | 'placeholder'\n | 'minValue'\n | 'maxValue'\n>;\n\nexport const DatePicker = <DateType extends DateValue>({\n selectedDate: value,\n onChange,\n locale,\n disabled: isDisabled,\n showTime,\n showTimeZone = false,\n className,\n style,\n variant,\n feedback,\n validationVariant,\n validationFeedback,\n disableModal = false,\n labelTooltip,\n navigationDescription,\n minDate: minValue,\n maxDate: maxValue,\n modalTreshold = 1000,\n ...rest\n}: DatePickerProps<DateType>) => {\n const CALENDAR_MODAL_MAX_SCREEN_WIDTH = modalTreshold;\n const datePickerRef = useRef<HTMLDivElement | null>(null);\n const calendarRef = useRef<HTMLDivElement | null>(null);\n const dateFieldRef = useRef<HTMLDivElement | null>(null);\n\n const { width } = useWindowDimensions();\n\n const state = useDatePickerState({\n ...rest,\n minValue,\n maxValue,\n value: value === null ? undefined : value,\n onChange,\n granularity: showTime ? 'minute' : rest.granularity,\n });\n const {\n groupProps,\n labelProps,\n fieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n } = useDatePicker(\n { isDisabled, minValue, maxValue, ...rest },\n state,\n datePickerRef,\n );\n\n // calculations for floating-UI popover position\n const { x, y, reference, floating, strategy } = useFloating({\n whileElementsMounted: autoUpdate,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall),\n flip(),\n shift({ padding: space.extraSmall }),\n ],\n });\n\n const onChangeCalendar = (newSelectedDate: DateValue) => {\n // Necessary to avoid state update on unmounted component\n requestAnimationFrame(() => {\n calendarProps.onChange && calendarProps.onChange(newSelectedDate);\n });\n };\n\n useOnClickOutside([calendarRef], () => {\n state.setOpen(false);\n });\n\n useOnEscape(calendarRef, () => {\n state.setOpen(false);\n });\n\n const calendarSharedProps = {\n ...dialogProps,\n ...calendarProps,\n disabled: calendarProps.isDisabled,\n navigationDescription: navigationDescription,\n onSelectedCellClick: () => state.setOpen(false),\n onChange: onChangeCalendar,\n granularity: showTime ? 'minute' : rest.granularity,\n };\n\n const useModal = width <= CALENDAR_MODAL_MAX_SCREEN_WIDTH && !disableModal;\n\n const popoverCalendar = (\n <div\n // styling for floating-UI popover\n style={{\n position: strategy,\n top: y ?? 0,\n left: x ?? 0,\n zIndex: zIndexes.popover,\n }}\n ref={node => {\n floating(node);\n }}\n >\n <FocusLock disabled={!state.isOpen || useModal} returnFocus>\n {state.isOpen && (\n <Calendar {...calendarSharedProps} ref={calendarRef} />\n )}\n </FocusLock>\n </div>\n );\n\n const modalCalendar = (\n <Modal\n size=\"small\"\n title=\"\"\n open={state.isOpen}\n onDismiss={() => state.setOpen(false)}\n closeOnClickOutside\n className=\"eds-datepicker__calendar-modal\"\n >\n <Calendar {...calendarSharedProps} />\n </Modal>\n );\n\n return (\n <ConditionalWrapper\n condition={locale !== undefined}\n wrapper={(child: ReactNode) => (\n <I18nProvider locale={locale}>{child}</I18nProvider>\n )}\n >\n <div className={classNames('eds-datepicker', className)}>\n <div\n {...groupProps}\n ref={node => {\n datePickerRef.current = node;\n reference(node);\n }}\n id={undefined}\n className=\"eds-datepicker__datefield__wrapper\"\n >\n <DateField\n {...fieldProps}\n selectedDate={state.value}\n label={rest.label}\n labelProps={labelProps}\n showTime={showTime}\n showTimeZone={showTimeZone}\n ref={dateFieldRef}\n variant={variant}\n feedback={feedback}\n validationVariant={validationVariant}\n validationFeedback={validationFeedback}\n labelTooltip={labelTooltip}\n className={classNames('eds-datepicker__datefield', {\n 'eds-datepicker__datefield--disabled': fieldProps.isDisabled,\n })}\n />\n {!fieldProps.isDisabled && (\n <CalendarButton\n {...buttonProps}\n onPress={() => state.setOpen(!state.isOpen)}\n className=\"eds-datepicker__open-calendar-button\"\n >\n <CalendarIcon />\n </CalendarButton>\n )}\n {useModal ? modalCalendar : popoverCalendar}\n </div>\n </div>\n </ConditionalWrapper>\n );\n};\n","import React from 'react';\nimport {\n BaseFormControl,\n isFilled,\n useInputGroupContext,\n useVariant,\n VariantType,\n} from '@entur/form';\nimport { DateIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\n\nexport type NativeDatePickerProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label over NativeDatePicker */\n label: string;\n /** Varselmelding, som vil komme under NativeDatePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Tekst eller ikon som kommer før inputfelter\n * @default <DateIcon />\n */\n prepend?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const NativeDatePicker = React.forwardRef<\n HTMLInputElement,\n NativeDatePickerProps\n>(\n (\n {\n className,\n style,\n label,\n onChange,\n feedback,\n variant,\n disableLabelAnimation,\n prepend = <DateIcon inline />,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const nativedatepickerId = useRandomId('eds-nativetimepicker');\n return (\n <BaseFormControl\n style={style}\n className={className}\n prepend={prepend}\n label={label}\n feedback={feedback}\n variant={variant}\n labelId={nativedatepickerId}\n disableLabelAnimation={disableLabelAnimation}\n isFilled\n >\n <NativeDatePickerBase\n onChange={onChange}\n aria-labelledby={nativedatepickerId}\n ref={ref}\n variant={variant}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype NativeDatePickerBaseProps = {\n onChange?: any;\n variant?: VariantType;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nconst NativeDatePickerBase = React.forwardRef<\n HTMLInputElement,\n NativeDatePickerBaseProps\n>(({ onChange, variant, value, ...rest }, ref) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n const { isFilled: isDatepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n setFiller && !isDatepickerFilled && setFiller(true);\n });\n\n React.useEffect(() => {\n if (value) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n }, [value, setFiller, isDatepickerFilled]);\n\n const handleChange = (event: any) => {\n if (isFilled(event.target)) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n return (\n <input\n ref={ref}\n aria-invalid={currentVariant === 'error'}\n type=\"date\"\n className=\"eds-form-control eds-native-date-picker\"\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n});\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport { IconButton } from '@entur/button';\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\n\ntype TimePickerArrowButtonProps = {\n direction: 'left' | 'right';\n} & React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n>;\n\nexport const TimePickerArrowButton: React.FC<TimePickerArrowButtonProps> = ({\n direction,\n onClick,\n disabled,\n 'aria-label': ariaLabel,\n}) => {\n return (\n <IconButton\n className={classNames(\n 'eds-timepicker__arrowbutton',\n `eds-timepicker__arrowbutton--${direction}`,\n { 'eds-timepicker__arrowbutton--disabled': disabled },\n )}\n type=\"button\"\n tabIndex={-1}\n onClick={onClick}\n aria-label={ariaLabel}\n disabled={disabled}\n >\n {direction === 'left' ? <LeftArrowIcon /> : <RightArrowIcon />}\n </IconButton>\n );\n};\n","import React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport { useTimeField } from '@react-aria/datepicker';\nimport { I18nProvider, useLocale } from '@react-aria/i18n';\nimport { useTimeFieldState } from '@react-stately/datepicker';\nimport { getLocalTimeZone, now } from '@internationalized/date';\n\nimport type {\n TimeValue,\n AriaTimeFieldProps,\n MappedTimeValue,\n} from '@react-types/datepicker';\n\nimport { BaseFormControl, VariantType } from '@entur/form';\nimport { useRandomId, mergeRefs } from '@entur/utils';\n\nimport { FieldSegment } from '../shared/FieldSegment';\nimport { TimePickerArrowButton } from './TimePickerArrowButton';\n\nimport './TimePicker.scss';\n\nexport type TimePickerProps<TimeType extends TimeValue> = {\n /** Den valgte tiden. Tid i '@internationalized/date'-pakkens format */\n selectedTime: TimeType | null;\n /** Kalles når tiden endres. Tid i '@internationalized/date'-pakkens format */\n onChange: (value: MappedTimeValue<TimeType> | null) => void;\n /** Label til TimePicker */\n label: string;\n /** Minutter som legges til eller trekkes fra ved klikk på pilene i TimePicker\n * @default 30\n */\n minuteIncrementForArrowButtons?: number;\n /** BCP47-språkkoden til locale-en du ønsker å bruke.\n * @default Brukerenhetens selvvalgte locale\n */\n locale?: string;\n /** Viser den gjeldende tidssonen hvis en er valgt\n * @default false\n */\n showTimeZone?: boolean;\n /** Aria-label for venstrepil-knappen som trekker fra tid\n * @default `Trekk fra ${minuteIncrementForArrowButtons} minutter`\n */\n leftArrowButtonAriaLabel?: string;\n /** Aria-label for høyrepil-knappen som legger til tid\n * @default `Legg til ${minuteIncrementForArrowButtons} minutter`\n */\n rightArrowButtonAriaLabel?: string;\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n labelTooltip?: React.ReactNode;\n disabled?: boolean;\n inputRef?: React.ForwardedRef<HTMLDivElement>;\n /** Ekstra klassenavn */\n className?: string;\n style?: React.CSSProperties;\n} & Omit<\n AriaTimeFieldProps<TimeType>,\n | 'value'\n | 'onChange'\n | 'label'\n | 'hideTimeZone'\n | 'placeholder'\n | 'minValue'\n | 'maxValue'\n>;\n\nexport const TimePicker = <TimeType extends TimeValue>({\n selectedTime,\n onChange,\n disabled,\n className,\n style,\n label,\n labelTooltip,\n feedback,\n variant,\n locale: customLocale,\n showTimeZone,\n minuteIncrementForArrowButtons = 30,\n leftArrowButtonAriaLabel = `Trekk fra ${minuteIncrementForArrowButtons} minutter`,\n rightArrowButtonAriaLabel = `Legg til ${minuteIncrementForArrowButtons} minutter`,\n inputRef,\n ...rest\n}: TimePickerProps<TimeType>) => {\n let { locale } = useLocale();\n if (customLocale) locale = customLocale;\n\n const state = useTimeFieldState({\n // @ts-expect-error Time should be assignable to MappedTime<TimeType>\n onChange,\n label: label,\n locale,\n value: selectedTime === null ? undefined : selectedTime,\n hideTimeZone: !showTimeZone,\n isDisabled: disabled,\n ...rest,\n });\n const timeFieldRef = useRef(null);\n const { labelProps, fieldProps } = useTimeField<TimeType>(\n { ...rest, label: label },\n state,\n timeFieldRef,\n );\n const id = useRandomId('timepicker');\n\n const handleOnClickArrowButton = (minutes: number) => {\n if (someSegmentIsUndefined) {\n setTimeToNearestMinuteIncrement();\n } else {\n addMinutesToSelectedTime(minutes);\n }\n };\n\n const someSegmentIsUndefined = state.segments.some(\n segment => segment.text === '––',\n );\n\n const setTimeToNearestMinuteIncrement = () => {\n const currentTime = now(getLocalTimeZone());\n const roundedMinute =\n Math.floor(currentTime.minute / minuteIncrementForArrowButtons) *\n minuteIncrementForArrowButtons;\n const newTime = currentTime.set({ minute: roundedMinute });\n // @ts-expect-error Since this function is used when selectedTime is null,\n // we can't guarantee newTime matching the type of selectedTime in the future.\n // This might lead to a type issue.\n onChange(newTime);\n };\n\n const addMinutesToSelectedTime = (minutes: number) => {\n state.value &&\n state.setValue(\n state.value?.add({\n minutes: minutes,\n }),\n );\n };\n\n return (\n <I18nProvider locale={locale}>\n <div className={classNames(className, 'eds-timepicker__wrapper')}>\n <TimePickerArrowButton\n direction=\"left\"\n disabled={disabled}\n aria-label={leftArrowButtonAriaLabel}\n onClick={() =>\n handleOnClickArrowButton(minuteIncrementForArrowButtons * -1)\n }\n />\n <BaseFormControl\n style={style}\n className={'eds-timepicker'}\n labelId={id}\n label={label}\n labelProps={{ ...labelProps }}\n ref={mergeRefs(timeFieldRef, inputRef)}\n disabled={disabled}\n disableLabelAnimation\n labelTooltip={labelTooltip}\n {...fieldProps}\n variant={variant}\n feedback={feedback}\n >\n {state.segments.map((segment, i) => (\n <FieldSegment segment={segment} state={state} key={i} />\n ))}\n </BaseFormControl>\n <TimePickerArrowButton\n direction=\"right\"\n disabled={disabled}\n aria-label={rightArrowButtonAriaLabel}\n onClick={() =>\n handleOnClickArrowButton(minuteIncrementForArrowButtons)\n }\n />\n </div>\n </I18nProvider>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n BaseFormControl,\n isFilled,\n useInputGroupContext,\n useVariant,\n VariantType,\n} from '@entur/form';\nimport { useOnMount, useRandomId } from '@entur/utils';\n\nimport './NativeTimePicker.scss';\n\nexport type NativeTimePickerProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label over NativeTimePicker */\n label: string;\n /** Varselmelding, som vil komme under NativeTimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Tekst eller ikon som kommer før inputfelter */\n prepend?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const NativeTimePicker = React.forwardRef<\n HTMLInputElement,\n NativeTimePickerProps\n>(\n (\n { className, style, onChange, label, feedback, variant, prepend, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const nativetimepickerId = useRandomId('eds-native-timepicker');\n return (\n <BaseFormControl\n style={style}\n className={classNames(className, 'eds-native-timepicker')}\n prepend={prepend}\n label={label}\n feedback={feedback}\n variant={variant}\n labelId={nativetimepickerId}\n disableLabelAnimation\n >\n <NativeTimePickerBase\n onChange={onChange}\n aria-labelledby={nativetimepickerId}\n ref={ref}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype NativeTimePickerBaseProps = {\n variant?: VariantType;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nconst NativeTimePickerBase = React.forwardRef<\n HTMLInputElement,\n NativeTimePickerBaseProps\n>(({ onChange, value, ...rest }, ref) => {\n const contextVariant = useVariant();\n const currentVariant = rest.variant || contextVariant;\n const { isFilled: isTimepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n setFiller && !isTimepickerFilled && setFiller(true);\n });\n\n React.useEffect(() => {\n if (value) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n }, [value, setFiller, isTimepickerFilled]);\n\n const handleChange = (event: any) => {\n if (isFilled(event.target)) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n return (\n <input\n ref={ref}\n aria-invalid={currentVariant === 'error'}\n type=\"time\"\n className=\"eds-form-control\"\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n});\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('datepicker', 'form', 'icons');\n\nexport * from './DatePicker';\nexport * from './TimePicker';\nexport * from './shared';\n\nexport type {\n DateValue,\n CalendarDate,\n CalendarDateTime,\n ZonedDateTime,\n Time,\n} from '@internationalized/date';\nexport type { TimeValue } from '@react-types/datepicker';\n"],"names":["FieldSegment","segment","state","ref","useRef","useDateSegment","segmentProps","is12HourFormatted","segments","some","text","segmentDisplayText","match","padStart","React","createElement","className","classNames","isPlaceholder","tabIndex","isDisabled","nativeDateToDateTime","date","timeZone","offset","ZonedDateTime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","parseAbsolute","toISOString","CalendarDateTime","nativeDateToDateValue","noTimeOnlyDate","CalendarDate","nativeDateToTimeValue","noDateOnlyTime","Time","timeOrDateValueToNativeDate","value","timeZoneForCalendarDateTime","day","Date","setHours","hour","setMinutes","minute","setSeconds","second","toDate","getLocalTimeZone","year","month","createCalendar","identifier","GregorianCalendar","Error","ariaLabelIfNorwegian","norwegianAriaLabel","locale","propsCollection","toLowerCase","DateField","forwardRef","selectedDate","label","customLocale","showTimeZone","showTime","granularity","disabled","variant","feedback","validationVariant","validationFeedback","labelTooltip","minValue","minDate","maxValue","maxDate","style","parentLabelProps","labelProps","append","rest","_excluded","useLocale","useDateFieldState","undefined","hideTimeZone","dateFieldRef","useDateField","fieldProps","id","useRandomId","ConditionalWrapper","condition","wrapper","child","I18nProvider","BaseFormControl","labelId","mergeRefs","disableLabelAnimation","validationState","ariaAlertOnFeedback","map","i","key","CalendarButton","children","props","useButton","buttonProps","IconButton","CalendarCell","onSelectedCellClick","cellRef","useCalendarCell","cellProps","isSelected","isOutsideVisibleRange","isUnavailable","formattedDate","hidden","isEqualDay","now","onClick","e","onKeyDown","CalendarGrid","navigationDescription","calendarGridId","useCalendarGrid","gridProps","headerProps","weekDays","weeksInMonth","getWeeksInMonth","visibleRange","start","weeksArray","Array","from","keys","weekDaysMapped","includes","getNavigationDescription","Fragment","cellSpacing","index","weekIndex","getDatesInWeek","VisuallyHidden","Calendar","onChange","_","useCalendarState","useCalendar","calendarProps","prevButtonProps","nextButtonProps","title","LeftArrowIcon","size","RightArrowIcon","DatePicker","disableModal","modalTreshold","CALENDAR_MODAL_MAX_SCREEN_WIDTH","datePickerRef","calendarRef","useWindowDimensions","width","useDatePickerState","useDatePicker","groupProps","dialogProps","useFloating","whileElementsMounted","autoUpdate","placement","middleware","space","extraSmall","flip","shift","padding","x","y","reference","floating","strategy","onChangeCalendar","newSelectedDate","requestAnimationFrame","useOnClickOutside","setOpen","useOnEscape","calendarSharedProps","useModal","popoverCalendar","position","top","left","zIndex","zIndexes","popover","node","FocusLock","isOpen","returnFocus","modalCalendar","Modal","open","onDismiss","closeOnClickOutside","current","onPress","CalendarIcon","NativeDatePicker","prepend","DateIcon","inline","nativedatepickerId","isFilled","NativeDatePickerBase","_excluded2","contextVariant","useVariant","currentVariant","useInputGroupContext","isDatepickerFilled","setFiller","setFilled","useOnMount","useEffect","handleChange","event","target","type","TimePickerArrowButton","direction","ariaLabel","TimePicker","selectedTime","minuteIncrementForArrowButtons","leftArrowButtonAriaLabel","rightArrowButtonAriaLabel","inputRef","useTimeFieldState","timeFieldRef","useTimeField","handleOnClickArrowButton","minutes","someSegmentIsUndefined","setTimeToNearestMinuteIncrement","addMinutesToSelectedTime","currentTime","roundedMinute","Math","floor","newTime","set","setValue","add","NativeTimePicker","nativetimepickerId","NativeTimePickerBase","isTimepickerFilled","warnAboutMissingStyles"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),a=require("react"),t=require("@react-stately/datepicker"),l=require("@react-aria/datepicker"),n=require("@react-aria/i18n"),r=require("classnames"),i=require("@entur/form"),o=require("@internationalized/date"),d=require("@react-aria/calendar"),s=require("@react-stately/calendar"),u=require("@entur/icons"),c=require("@react-aria/button"),f=require("@entur/button"),m=require("@entur/a11y"),p=require("@floating-ui/react-dom"),b=require("react-focus-lock"),v=require("@entur/tokens"),g=require("@entur/modal");function k(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=k(a),C=k(r),_=k(b);function y(){return y=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},y.apply(this,arguments)}function w(e,a){if(null==e)return{};var t,l,n={},r=Object.keys(e);for(l=0;l<r.length;l++)a.indexOf(t=r[l])>=0||(n[t]=e[t]);return n}var D=function(e){var t=e.segment,n=e.state,r=a.useRef(null),i=l.useDateSegment(t,n,r).segmentProps,o=n.segments.some((function(e){return"AM"===e.text||"PM"===e.text}));return h.default.createElement("div",y({},i,{ref:r,className:C.default("eds-date-and-time-field__segment",{"eds-date-and-time-field__segment--placeholder":t.isPlaceholder,"eds-date-and-time-field__segment--dot-separator":"."===t.text}),tabIndex:n.isDisabled?-1:i.tabIndex}),o?t.text:t.text.match(/\d+/)?t.text.padStart(2,"0"):t.text)},E=function(e,a,t){return a?t?new o.ZonedDateTime(e.getFullYear(),e.getMonth()+1,e.getDate(),a,t,e.getHours(),e.getMinutes(),e.getSeconds()):o.parseAbsolute(e.toISOString(),a):new o.CalendarDateTime(e.getFullYear(),e.getMonth()+1,e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())},T=function(e){if(void 0===e&&(e="gregory"),"gregory"===e)return new o.GregorianCalendar;throw new Error("Unsupported calendar "+e)},x=function(e,a,t){return"no-no"!==a.toLowerCase()?t["aria-label"]:e},P=["selectedDate","label","locale","showTimeZone","showTime","granularity","disabled","variant","feedback","validationVariant","validationFeedback","labelTooltip","minDate","maxDate","style","className","labelProps","append"],N=h.default.forwardRef((function(r,o){var d=r.selectedDate,s=r.label,u=r.locale,c=r.showTimeZone,f=r.showTime,m=r.granularity,p=void 0===m?"day":m,b=r.disabled,v=r.variant,g=r.feedback,k=r.validationVariant,_=void 0===k?"error":k,E=r.validationFeedback,x=void 0===E?"Ugyldig dato":E,N=r.labelTooltip,F=r.minDate,I=r.maxDate,S=r.style,A=r.className,O=r.labelProps,L=r.append,R=w(r,P),M=n.useLocale(),q=t.useDateFieldState(y({},R,{locale:null!=u?u:M.locale,createCalendar:T,value:null===d?void 0:d,hideTimeZone:!c,granularity:f?"minute":p,minValue:F,maxValue:I})),V=a.useRef(null),B=l.useDateField(y({},R,{label:s,isDisabled:b||R.isDisabled}),q,V),Z=B.labelProps,W=B.fieldProps,j=e.useRandomId("datefield");return h.default.createElement(e.ConditionalWrapper,{condition:void 0!==u,wrapper:function(e){return h.default.createElement(n.I18nProvider,{locale:u},e)}},h.default.createElement(i.BaseFormControl,y({style:S,className:C.default("eds-datefield",A),labelId:j,ref:e.mergeRefs(V,o),disabled:q.isDisabled,disableLabelAnimation:!0,label:s,labelTooltip:N,labelProps:null!=O?O:Z},W,{variant:(null!=v?v:"invalid"===q.validationState)?_:void 0,feedback:(null!=g?g:"invalid"===q.validationState)?x:void 0,append:L,ariaAlertOnFeedback:!0}),q.segments.map((function(e,a){return h.default.createElement(D,{segment:e,state:q,key:a})}))))})),F=["children","className","style"],I=function(e){var t=e.children,l=e.className,n=e.style,r=w(e,F),i=a.useRef(null),o=c.useButton(r,i);return h.default.createElement(f.IconButton,y({},o.buttonProps,{ref:i,className:l,style:n}),t)},S=["state","date","onSelectedCellClick"],A=function(e){var t,l=e.state,n=e.date,r=e.onSelectedCellClick,i=void 0===r?function(){}:r,s=w(e,S),u=a.useRef(null),c=d.useCalendarCell({date:n},l,u),f=c.buttonProps,m=c.isSelected,p=c.isOutsideVisibleRange,b=c.isDisabled,v=c.isUnavailable,g=c.formattedDate;return h.default.createElement("td",y({},c.cellProps,{className:"eds-datepicker__calendar__grid__cell__td"}),h.default.createElement("div",y({},f,{ref:u,hidden:p,className:C.default("eds-datepicker__calendar__grid__cell",{"eds-datepicker__calendar__grid__cell--selected":m,"eds-datepicker__calendar__grid__cell--disabled":b||v,"eds-datepicker__calendar__grid__cell--outside-month":p,"eds-datepicker__calendar__grid__cell--today":o.isEqualDay(n,o.now(null!=(t=l.timeZone)?t:o.getLocalTimeZone()))})},s,{onClick:function(e){f.onClick&&f.onClick(e),m&&i()},onKeyDown:function(e){f.onKeyDown&&f.onKeyDown(e),"Enter"!==e.key&&" "!==e.key||m&&i()}}),g))},O=["state","navigationDescription","onSelectedCellClick"],L=function(a){var t=a.state,l=a.navigationDescription,r=a.onSelectedCellClick,i=void 0===r?function(){}:r,s=w(a,O),u=e.useRandomId("eds-calendar"),c=n.useLocale().locale,f=d.useCalendarGrid(s,t),p=f.gridProps,b=f.headerProps,v=f.weekDays,g=o.getWeeksInMonth(t.visibleRange.start,c),k=Array.from(Array(g).keys());return h.default.createElement(h.default.Fragment,null,h.default.createElement("table",y({},p,{cellSpacing:"0",className:"eds-datepicker__calendar__grid"}),h.default.createElement("thead",y({},b),h.default.createElement("tr",null,function(){if(c.toLowerCase().includes("no"))return["ma","ti","on","to","fr","lø","sø"];if(c.toLowerCase().includes("en")){if("M"===v[0])return["Mo","Tu","We","Th","Fr","Sa","Su"];if("S"===v[0])return["Su","Mo","Tu","We","Th","Fr","Sa"]}return v.map((function(e){return e.toLowerCase()}))}().map((function(e,a){return h.default.createElement("th",{key:a},e)})))),h.default.createElement("tbody",null,k.map((function(e){return h.default.createElement("tr",{key:e},t.getDatesInWeek(e).map((function(e,a){return e?h.default.createElement(A,{key:a,state:t,date:e,"aria-describedby":u+"description",onSelectedCellClick:i}):h.default.createElement("td",{key:a})})))})))),h.default.createElement(m.VisuallyHidden,{id:u+"description"},l||(c.toLowerCase().includes("en")?"Use the arrow keys to navigate between dates":"Bruk piltastene til å navigere mellom datoer")))},R=["selectedDate","onChange","locale","style","children","navigationDescription","onSelectedCellClick"],M=h.default.forwardRef((function(a,t){var l=a.onChange,r=a.locale,i=a.style,o=a.navigationDescription,c=a.onSelectedCellClick,f=void 0===c?function(){}:c,m=w(a,R),p=n.useLocale().locale,b=s.useCalendarState(y({},m,{onChange:l,locale:null!=r?r:p,createCalendar:T})),v=d.useCalendar(m,b),g=v.prevButtonProps,k=v.nextButtonProps,C=v.title;return h.default.createElement(e.ConditionalWrapper,{condition:r,wrapper:function(e){return h.default.createElement(n.I18nProvider,{locale:r},e)}},h.default.createElement("div",y({},v.calendarProps,{ref:t,className:"eds-datepicker__calendar",style:i}),h.default.createElement("div",{className:"eds-datepicker__calendar__header"},h.default.createElement(I,y({},g,{"aria-label":x("Forrige måned",p,g)}),h.default.createElement(u.LeftArrowIcon,{size:20})),h.default.createElement("h2",null,C),h.default.createElement(I,y({},k,{"aria-label":x("Neste måned",p,k)}),h.default.createElement(u.RightArrowIcon,{size:20}))),h.default.createElement(L,{state:b,navigationDescription:o,onSelectedCellClick:f})))})),q=["selectedDate","onChange","locale","disabled","showTime","showTimeZone","className","style","variant","feedback","validationVariant","validationFeedback","disableModal","labelTooltip","navigationDescription","minDate","maxDate","modalTreshold"],V=["className","style","label","onChange","feedback","variant","disableLabelAnimation","prepend"],B=["onChange","variant","value"],Z=h.default.forwardRef((function(a,t){var l=a.className,n=a.style,r=a.label,o=a.onChange,d=a.feedback,s=a.variant,c=a.disableLabelAnimation,f=a.prepend,m=void 0===f?h.default.createElement(u.DateIcon,{inline:!0}):f,p=w(a,V),b=e.useRandomId("eds-nativetimepicker");return h.default.createElement(i.BaseFormControl,{style:n,className:l,prepend:m,label:r,feedback:d,variant:s,labelId:b,disableLabelAnimation:c,isFilled:!0},h.default.createElement(W,y({onChange:o,"aria-labelledby":b,ref:t,variant:s},p)))})),W=h.default.forwardRef((function(a,t){var l=a.onChange,n=a.variant,r=a.value,o=w(a,B),d=i.useVariant(),s=n||d,u=i.useInputGroupContext(),c=u.isFilled,f=u.setFilled;return e.useOnMount((function(){f&&!c&&f(!0)})),h.default.useEffect((function(){r?f&&!c&&f(!0):f&&c&&f(!1)}),[r,f,c]),h.default.createElement("input",y({ref:t,"aria-invalid":"error"===s,type:"date",className:"eds-form-control eds-native-date-picker",onChange:function(e){i.isFilled(e.target)?f&&!c&&f(!0):f&&c&&f(!1),l&&l(e)},value:r},o))})),j=function(e){var a=e.direction,t=e.onClick,l=e.disabled,n=e["aria-label"];return h.default.createElement(f.IconButton,{className:C.default("eds-timepicker__arrowbutton","eds-timepicker__arrowbutton--"+a,{"eds-timepicker__arrowbutton--disabled":l}),type:"button",tabIndex:-1,onClick:t,"aria-label":n,disabled:l},h.default.createElement("left"===a?u.LeftArrowIcon:u.RightArrowIcon,null))},z=["selectedTime","onChange","disabled","className","style","label","labelTooltip","feedback","variant","locale","showTimeZone","minuteIncrementForArrowButtons","leftArrowButtonAriaLabel","rightArrowButtonAriaLabel"],H=h.default.forwardRef((function(r,d){var s=r.selectedTime,u=r.onChange,c=r.disabled,f=r.className,m=r.style,p=r.label,b=r.labelTooltip,v=r.feedback,g=r.variant,k=r.locale,_=r.showTimeZone,E=r.minuteIncrementForArrowButtons,T=void 0===E?30:E,x=r.leftArrowButtonAriaLabel,P=void 0===x?"Trekk fra "+T+" minutter":x,N=r.rightArrowButtonAriaLabel,F=void 0===N?"Legg til "+T+" minutter":N,I=w(r,z),S=n.useLocale().locale;k&&(S=k);var A=t.useTimeFieldState(y({onChange:u,label:p,locale:S,value:null===s?void 0:s,hideTimeZone:!_,isDisabled:c},I)),O=a.useRef(null),L=l.useTimeField(y({},I,{label:p}),A,O),R=L.labelProps,M=L.fieldProps,q=e.useRandomId("timepicker"),V=function(e){B?Z():W(e)},B=A.segments.some((function(e){return"––"===e.text})),Z=function(){var e=o.now(o.getLocalTimeZone()),a=Math.floor(e.minute/T)*T,t=e.set({minute:a});u(t)},W=function(e){var a;A.value&&A.setValue(null==(a=A.value)?void 0:a.add({minutes:e}))};return h.default.createElement(n.I18nProvider,{locale:S},h.default.createElement("div",{className:C.default(f,"eds-timepicker__wrapper")},h.default.createElement(j,{direction:"left",disabled:c,"aria-label":P,onClick:function(){return V(-1*T)}}),h.default.createElement(i.BaseFormControl,y({style:m,className:"eds-timepicker",labelId:q,label:p,labelProps:y({},R),ref:e.mergeRefs(O,d),disabled:c,disableLabelAnimation:!0,labelTooltip:b},M,{variant:g,feedback:v}),A.segments.map((function(e,a){return h.default.createElement(D,{segment:e,state:A,key:a})}))),h.default.createElement(j,{direction:"right",disabled:c,"aria-label":F,onClick:function(){return V(T)}})))})),U=["className","style","onChange","label","feedback","variant","prepend"],G=["onChange","value"],K=h.default.forwardRef((function(a,t){var l=a.className,n=a.style,r=a.onChange,o=a.label,d=a.feedback,s=a.variant,u=a.prepend,c=w(a,U),f=e.useRandomId("eds-native-timepicker");return h.default.createElement(i.BaseFormControl,{style:n,className:C.default(l,"eds-native-timepicker"),prepend:u,label:o,feedback:d,variant:s,labelId:f,disableLabelAnimation:!0},h.default.createElement(Y,y({onChange:r,"aria-labelledby":f,ref:t},c)))})),Y=h.default.forwardRef((function(a,t){var l=a.onChange,n=a.value,r=w(a,G),o=i.useVariant(),d=r.variant||o,s=i.useInputGroupContext(),u=s.isFilled,c=s.setFilled;return e.useOnMount((function(){c&&!u&&c(!0)})),h.default.useEffect((function(){n?c&&!u&&c(!0):c&&u&&c(!1)}),[n,c,u]),h.default.createElement("input",y({ref:t,"aria-invalid":"error"===d,type:"time",className:"eds-form-control",onChange:function(e){i.isFilled(e.target)?c&&!u&&c(!0):c&&u&&c(!1),l&&l(e)},value:n},r))}));e.warnAboutMissingStyles("datepicker","form","icons"),exports.Calendar=M,exports.DateField=N,exports.DatePicker=function(r){var i=r.selectedDate,o=r.onChange,d=r.locale,s=r.disabled,c=r.showTime,f=r.showTimeZone,m=void 0!==f&&f,b=r.className,k=r.variant,D=r.feedback,E=r.validationVariant,T=r.validationFeedback,x=r.disableModal,P=void 0!==x&&x,F=r.labelTooltip,S=r.navigationDescription,A=r.minDate,O=r.maxDate,L=r.modalTreshold,R=void 0===L?1e3:L,V=w(r,q),B=R,Z=a.useRef(null),W=a.useRef(null),j=a.useRef(null),z=e.useWindowDimensions().width,H=t.useDatePickerState(y({},V,{minValue:A,maxValue:O,value:null===i?void 0:i,onChange:o,granularity:c?"minute":V.granularity})),U=l.useDatePicker(y({isDisabled:s,minValue:A,maxValue:O},V),H,Z),G=U.groupProps,K=U.labelProps,Y=U.fieldProps,J=U.buttonProps,Q=U.dialogProps,X=U.calendarProps,$=p.useFloating({whileElementsMounted:p.autoUpdate,placement:"bottom-start",middleware:[p.offset(v.space.extraSmall),p.flip(),p.shift({padding:v.space.extraSmall})]}),ee=$.x,ae=$.y,te=$.reference,le=$.floating,ne=$.strategy;e.useOnClickOutside([W],(function(){H.setOpen(!1)})),e.useOnEscape(W,(function(){H.setOpen(!1)}));var re=y({},Q,X,{disabled:X.isDisabled,navigationDescription:S,onSelectedCellClick:function(){return H.setOpen(!1)},onChange:function(e){requestAnimationFrame((function(){X.onChange&&X.onChange(e)}))},granularity:c?"minute":V.granularity}),ie=z<=B&&!P,oe=h.default.createElement("div",{style:{position:ne,top:null!=ae?ae:0,left:null!=ee?ee:0,zIndex:v.zIndexes.popover},ref:function(e){le(e)}},h.default.createElement(_.default,{disabled:!H.isOpen||ie,returnFocus:!0},H.isOpen&&h.default.createElement(M,y({},re,{ref:W})))),de=h.default.createElement(g.Modal,{size:"small",title:"",open:H.isOpen,onDismiss:function(){return H.setOpen(!1)},closeOnClickOutside:!0,className:"eds-datepicker__calendar-modal"},h.default.createElement(M,y({},re)));return h.default.createElement(e.ConditionalWrapper,{condition:void 0!==d,wrapper:function(e){return h.default.createElement(n.I18nProvider,{locale:d},e)}},h.default.createElement("div",{className:C.default("eds-datepicker",b)},h.default.createElement("div",y({},G,{ref:function(e){Z.current=e,te(e)},id:void 0,className:"eds-datepicker__datefield__wrapper"}),h.default.createElement(N,y({},Y,{selectedDate:H.value,label:V.label,labelProps:K,showTime:c,showTimeZone:m,ref:j,variant:k,feedback:D,validationVariant:E,validationFeedback:T,labelTooltip:F,className:C.default("eds-datepicker__datefield",{"eds-datepicker__datefield--disabled":Y.isDisabled})})),!Y.isDisabled&&h.default.createElement(I,y({},J,{onPress:function(){return H.setOpen(!H.isOpen)},className:"eds-datepicker__open-calendar-button"}),h.default.createElement(u.CalendarIcon,null)),ie?de:oe)))},exports.NativeDatePicker=Z,exports.NativeTimePicker=K,exports.TimePicker=H,exports.ariaLabelIfNorwegian=x,exports.createCalendar=T,exports.nativeDateToDateValue=function(e,a,t,l){return void 0===a&&(a=!1),a?new o.CalendarDate(e.getFullYear(),e.getMonth()+1,e.getDate()):E(e,t,l)},exports.nativeDateToTimeValue=function(e,a,t,l){return void 0===a&&(a=!1),a?new o.Time(e.getHours(),e.getMinutes(),e.getSeconds(),0):E(e,t,l)},exports.timeOrDateValueToNativeDate=function(e,a){if(!e.day){var t=new Date;return t.setHours(e.hour),t.setMinutes(e.minute),t.setSeconds(e.second),t}return e.hour?e.timeZone?e.toDate():a?e.toDate(a):new Date(e.year,e.month-1,e.day,e.hour,e.minute,e.second):e.toDate(null!=a?a:o.getLocalTimeZone())};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),a=require("react"),t=require("@react-stately/datepicker"),l=require("@react-aria/datepicker"),n=require("@react-aria/i18n"),r=require("classnames"),i=require("@entur/form"),o=require("@internationalized/date"),d=require("@react-aria/calendar"),s=require("@react-stately/calendar"),u=require("@entur/icons"),c=require("@react-aria/button"),f=require("@entur/button"),m=require("@entur/a11y"),p=require("@floating-ui/react-dom"),b=require("react-focus-lock"),v=require("@entur/tokens"),g=require("@entur/modal");function k(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=k(a),C=k(r),_=k(b);function y(){return y=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},y.apply(this,arguments)}function D(e,a){if(null==e)return{};var t,l,n={},r=Object.keys(e);for(l=0;l<r.length;l++)a.indexOf(t=r[l])>=0||(n[t]=e[t]);return n}var w=function(e){var t=e.segment,n=e.state,r=a.useRef(null),i=l.useDateSegment(t,n,r).segmentProps,o=n.segments.some((function(e){return"AM"===e.text||"PM"===e.text}));return h.default.createElement("div",y({},i,{ref:r,className:C.default("eds-date-and-time-field__segment",{"eds-date-and-time-field__segment--placeholder":t.isPlaceholder,"eds-date-and-time-field__segment--dot-separator":"."===t.text}),tabIndex:n.isDisabled?-1:i.tabIndex}),o?t.text:t.text.match(/\d+/)?t.text.padStart(2,"0"):t.text)},E=function(e,a,t){return a?t?new o.ZonedDateTime(e.getFullYear(),e.getMonth()+1,e.getDate(),a,t,e.getHours(),e.getMinutes(),e.getSeconds()):o.parseAbsolute(e.toISOString(),a):new o.CalendarDateTime(e.getFullYear(),e.getMonth()+1,e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())},T=function(e){if(void 0===e&&(e="gregory"),"gregory"===e)return new o.GregorianCalendar;throw new Error("Unsupported calendar "+e)},x=function(e,a,t){return"no-no"!==a.toLowerCase()?t["aria-label"]:e},P=["selectedDate","label","locale","showTimeZone","showTime","granularity","disabled","variant","feedback","validationVariant","validationFeedback","labelTooltip","minDate","maxDate","style","className","labelProps","append"],N=h.default.forwardRef((function(r,o){var d=r.selectedDate,s=r.label,u=r.locale,c=r.showTimeZone,f=r.showTime,m=r.granularity,p=void 0===m?"day":m,b=r.disabled,v=r.variant,g=r.feedback,k=r.validationVariant,_=void 0===k?"error":k,E=r.validationFeedback,x=void 0===E?"Ugyldig dato":E,N=r.labelTooltip,F=r.minDate,I=r.maxDate,S=r.style,A=r.className,O=r.labelProps,R=r.append,L=D(r,P),M=n.useLocale(),q=t.useDateFieldState(y({},L,{locale:null!=u?u:M.locale,createCalendar:T,value:null===d?void 0:d,hideTimeZone:!c,granularity:f?"minute":p,minValue:F,maxValue:I})),V=a.useRef(null),B=l.useDateField(y({},L,{label:s,isDisabled:b||L.isDisabled}),q,V),Z=B.labelProps,W=B.fieldProps,j=e.useRandomId("datefield");return h.default.createElement(e.ConditionalWrapper,{condition:void 0!==u,wrapper:function(e){return h.default.createElement(n.I18nProvider,{locale:u},e)}},h.default.createElement(i.BaseFormControl,y({style:S,className:C.default("eds-datefield",A),labelId:j,ref:e.mergeRefs(V,o),disabled:q.isDisabled,disableLabelAnimation:!0,label:s,labelTooltip:N,labelProps:null!=O?O:Z},W,{variant:(null!=v?v:"invalid"===q.validationState)?_:void 0,feedback:(null!=g?g:"invalid"===q.validationState)?x:void 0,append:R,ariaAlertOnFeedback:!0}),q.segments.map((function(e,a){return h.default.createElement(w,{segment:e,state:q,key:a})}))))})),F=["children","className","style"],I=function(e){var t=e.children,l=e.className,n=e.style,r=D(e,F),i=a.useRef(null),o=c.useButton(r,i);return h.default.createElement(f.IconButton,y({},o.buttonProps,{ref:i,className:l,style:n}),t)},S=["state","date","onSelectedCellClick"],A=function(e){var t,l=e.state,n=e.date,r=e.onSelectedCellClick,i=void 0===r?function(){}:r,s=D(e,S),u=a.useRef(null),c=d.useCalendarCell({date:n},l,u),f=c.buttonProps,m=c.isSelected,p=c.isOutsideVisibleRange,b=c.isDisabled,v=c.isUnavailable,g=c.formattedDate;return h.default.createElement("td",y({},c.cellProps,{className:"eds-datepicker__calendar__grid__cell__td"}),h.default.createElement("div",y({},f,{ref:u,hidden:p,className:C.default("eds-datepicker__calendar__grid__cell",{"eds-datepicker__calendar__grid__cell--selected":m,"eds-datepicker__calendar__grid__cell--disabled":b||v,"eds-datepicker__calendar__grid__cell--outside-month":p,"eds-datepicker__calendar__grid__cell--today":o.isEqualDay(n,o.now(null!=(t=l.timeZone)?t:o.getLocalTimeZone()))})},s,{onClick:function(e){f.onClick&&f.onClick(e),m&&i()},onKeyDown:function(e){f.onKeyDown&&f.onKeyDown(e),"Enter"!==e.key&&" "!==e.key||m&&i()}}),g))},O=["state","navigationDescription","onSelectedCellClick"],R=function(a){var t=a.state,l=a.navigationDescription,r=a.onSelectedCellClick,i=void 0===r?function(){}:r,s=D(a,O),u=e.useRandomId("eds-calendar"),c=n.useLocale().locale,f=d.useCalendarGrid(s,t),p=f.gridProps,b=f.headerProps,v=f.weekDays,g=o.getWeeksInMonth(t.visibleRange.start,c),k=Array.from(Array(g).keys());return h.default.createElement(h.default.Fragment,null,h.default.createElement("table",y({},p,{cellSpacing:"0",className:"eds-datepicker__calendar__grid"}),h.default.createElement("thead",y({},b),h.default.createElement("tr",null,function(){if(c.toLowerCase().includes("no"))return["ma","ti","on","to","fr","lø","sø"];if(c.toLowerCase().includes("en")){if("M"===v[0])return["Mo","Tu","We","Th","Fr","Sa","Su"];if("S"===v[0])return["Su","Mo","Tu","We","Th","Fr","Sa"]}return v.map((function(e){return e.toLowerCase()}))}().map((function(e,a){return h.default.createElement("th",{key:a},e)})))),h.default.createElement("tbody",null,k.map((function(e){return h.default.createElement("tr",{key:e},t.getDatesInWeek(e).map((function(e,a){return e?h.default.createElement(A,{key:a,state:t,date:e,"aria-describedby":u+"description",onSelectedCellClick:i}):h.default.createElement("td",{key:a})})))})))),h.default.createElement(m.VisuallyHidden,{id:u+"description"},l||(c.toLowerCase().includes("en")?"Use the arrow keys to navigate between dates":"Bruk piltastene til å navigere mellom datoer")))},L=["selectedDate","onChange","locale","style","children","navigationDescription","onSelectedCellClick"],M=h.default.forwardRef((function(a,t){var l=a.onChange,r=a.locale,i=a.style,o=a.navigationDescription,c=a.onSelectedCellClick,f=void 0===c?function(){}:c,m=D(a,L),p=n.useLocale().locale,b=s.useCalendarState(y({},m,{onChange:l,locale:null!=r?r:p,createCalendar:T})),v=d.useCalendar(m,b),g=v.prevButtonProps,k=v.nextButtonProps,C=v.title;return h.default.createElement(e.ConditionalWrapper,{condition:r,wrapper:function(e){return h.default.createElement(n.I18nProvider,{locale:r},e)}},h.default.createElement("div",y({},v.calendarProps,{ref:t,className:"eds-datepicker__calendar",style:i}),h.default.createElement("div",{className:"eds-datepicker__calendar__header"},h.default.createElement(I,y({},g,{"aria-label":x("Forrige måned",p,g)}),h.default.createElement(u.LeftArrowIcon,{size:20})),h.default.createElement("h2",null,C),h.default.createElement(I,y({},k,{"aria-label":x("Neste måned",p,k)}),h.default.createElement(u.RightArrowIcon,{size:20}))),h.default.createElement(R,{state:b,navigationDescription:o,onSelectedCellClick:f})))})),q=["selectedDate","onChange","locale","disabled","showTime","showTimeZone","className","style","variant","feedback","validationVariant","validationFeedback","disableModal","labelTooltip","navigationDescription","minDate","maxDate","modalTreshold"],V=["className","style","label","onChange","feedback","variant","disableLabelAnimation","prepend"],B=["onChange","variant","value"],Z=h.default.forwardRef((function(a,t){var l=a.className,n=a.style,r=a.label,o=a.onChange,d=a.feedback,s=a.variant,c=a.disableLabelAnimation,f=a.prepend,m=void 0===f?h.default.createElement(u.DateIcon,{inline:!0}):f,p=D(a,V),b=e.useRandomId("eds-nativetimepicker");return h.default.createElement(i.BaseFormControl,{style:n,className:l,prepend:m,label:r,feedback:d,variant:s,labelId:b,disableLabelAnimation:c,isFilled:!0},h.default.createElement(W,y({onChange:o,"aria-labelledby":b,ref:t,variant:s},p)))})),W=h.default.forwardRef((function(a,t){var l=a.onChange,n=a.variant,r=a.value,o=D(a,B),d=i.useVariant(),s=n||d,u=i.useInputGroupContext(),c=u.isFilled,f=u.setFilled;return e.useOnMount((function(){f&&!c&&f(!0)})),h.default.useEffect((function(){r?f&&!c&&f(!0):f&&c&&f(!1)}),[r,f,c]),h.default.createElement("input",y({ref:t,"aria-invalid":"error"===s,type:"date",className:"eds-form-control eds-native-date-picker",onChange:function(e){i.isFilled(e.target)?f&&!c&&f(!0):f&&c&&f(!1),l&&l(e)},value:r},o))})),j=function(e){var a=e.direction,t=e.onClick,l=e.disabled,n=e["aria-label"];return h.default.createElement(f.IconButton,{className:C.default("eds-timepicker__arrowbutton","eds-timepicker__arrowbutton--"+a,{"eds-timepicker__arrowbutton--disabled":l}),type:"button",tabIndex:-1,onClick:t,"aria-label":n,disabled:l},h.default.createElement("left"===a?u.LeftArrowIcon:u.RightArrowIcon,null))},z=["selectedTime","onChange","disabled","className","style","label","labelTooltip","feedback","variant","locale","showTimeZone","minuteIncrementForArrowButtons","leftArrowButtonAriaLabel","rightArrowButtonAriaLabel","inputRef"],H=["className","style","onChange","label","feedback","variant","prepend"],U=["onChange","value"],G=h.default.forwardRef((function(a,t){var l=a.className,n=a.style,r=a.onChange,o=a.label,d=a.feedback,s=a.variant,u=a.prepend,c=D(a,H),f=e.useRandomId("eds-native-timepicker");return h.default.createElement(i.BaseFormControl,{style:n,className:C.default(l,"eds-native-timepicker"),prepend:u,label:o,feedback:d,variant:s,labelId:f,disableLabelAnimation:!0},h.default.createElement(K,y({onChange:r,"aria-labelledby":f,ref:t},c)))})),K=h.default.forwardRef((function(a,t){var l=a.onChange,n=a.value,r=D(a,U),o=i.useVariant(),d=r.variant||o,s=i.useInputGroupContext(),u=s.isFilled,c=s.setFilled;return e.useOnMount((function(){c&&!u&&c(!0)})),h.default.useEffect((function(){n?c&&!u&&c(!0):c&&u&&c(!1)}),[n,c,u]),h.default.createElement("input",y({ref:t,"aria-invalid":"error"===d,type:"time",className:"eds-form-control",onChange:function(e){i.isFilled(e.target)?c&&!u&&c(!0):c&&u&&c(!1),l&&l(e)},value:n},r))}));e.warnAboutMissingStyles("datepicker","form","icons"),exports.Calendar=M,exports.DateField=N,exports.DatePicker=function(r){var i=r.selectedDate,o=r.onChange,d=r.locale,s=r.disabled,c=r.showTime,f=r.showTimeZone,m=void 0!==f&&f,b=r.className,k=r.variant,w=r.feedback,E=r.validationVariant,T=r.validationFeedback,x=r.disableModal,P=void 0!==x&&x,F=r.labelTooltip,S=r.navigationDescription,A=r.minDate,O=r.maxDate,R=r.modalTreshold,L=void 0===R?1e3:R,V=D(r,q),B=L,Z=a.useRef(null),W=a.useRef(null),j=a.useRef(null),z=e.useWindowDimensions().width,H=t.useDatePickerState(y({},V,{minValue:A,maxValue:O,value:null===i?void 0:i,onChange:o,granularity:c?"minute":V.granularity})),U=l.useDatePicker(y({isDisabled:s,minValue:A,maxValue:O},V),H,Z),G=U.groupProps,K=U.labelProps,Y=U.fieldProps,J=U.buttonProps,Q=U.dialogProps,X=U.calendarProps,$=p.useFloating({whileElementsMounted:p.autoUpdate,placement:"bottom-start",middleware:[p.offset(v.space.extraSmall),p.flip(),p.shift({padding:v.space.extraSmall})]}),ee=$.x,ae=$.y,te=$.reference,le=$.floating,ne=$.strategy;e.useOnClickOutside([W],(function(){H.setOpen(!1)})),e.useOnEscape(W,(function(){H.setOpen(!1)}));var re=y({},Q,X,{disabled:X.isDisabled,navigationDescription:S,onSelectedCellClick:function(){return H.setOpen(!1)},onChange:function(e){requestAnimationFrame((function(){X.onChange&&X.onChange(e)}))},granularity:c?"minute":V.granularity}),ie=z<=B&&!P,oe=h.default.createElement("div",{style:{position:ne,top:null!=ae?ae:0,left:null!=ee?ee:0,zIndex:v.zIndexes.popover},ref:function(e){le(e)}},h.default.createElement(_.default,{disabled:!H.isOpen||ie,returnFocus:!0},H.isOpen&&h.default.createElement(M,y({},re,{ref:W})))),de=h.default.createElement(g.Modal,{size:"small",title:"",open:H.isOpen,onDismiss:function(){return H.setOpen(!1)},closeOnClickOutside:!0,className:"eds-datepicker__calendar-modal"},h.default.createElement(M,y({},re)));return h.default.createElement(e.ConditionalWrapper,{condition:void 0!==d,wrapper:function(e){return h.default.createElement(n.I18nProvider,{locale:d},e)}},h.default.createElement("div",{className:C.default("eds-datepicker",b)},h.default.createElement("div",y({},G,{ref:function(e){Z.current=e,te(e)},id:void 0,className:"eds-datepicker__datefield__wrapper"}),h.default.createElement(N,y({},Y,{selectedDate:H.value,label:V.label,labelProps:K,showTime:c,showTimeZone:m,ref:j,variant:k,feedback:w,validationVariant:E,validationFeedback:T,labelTooltip:F,className:C.default("eds-datepicker__datefield",{"eds-datepicker__datefield--disabled":Y.isDisabled})})),!Y.isDisabled&&h.default.createElement(I,y({},J,{onPress:function(){return H.setOpen(!H.isOpen)},className:"eds-datepicker__open-calendar-button"}),h.default.createElement(u.CalendarIcon,null)),ie?de:oe)))},exports.NativeDatePicker=Z,exports.NativeTimePicker=G,exports.TimePicker=function(r){var d=r.selectedTime,s=r.onChange,u=r.disabled,c=r.className,f=r.style,m=r.label,p=r.labelTooltip,b=r.feedback,v=r.variant,g=r.locale,k=r.showTimeZone,_=r.minuteIncrementForArrowButtons,E=void 0===_?30:_,T=r.leftArrowButtonAriaLabel,x=void 0===T?"Trekk fra "+E+" minutter":T,P=r.rightArrowButtonAriaLabel,N=void 0===P?"Legg til "+E+" minutter":P,F=r.inputRef,I=D(r,z),S=n.useLocale().locale;g&&(S=g);var A=t.useTimeFieldState(y({onChange:s,label:m,locale:S,value:null===d?void 0:d,hideTimeZone:!k,isDisabled:u},I)),O=a.useRef(null),R=l.useTimeField(y({},I,{label:m}),A,O),L=R.labelProps,M=R.fieldProps,q=e.useRandomId("timepicker"),V=function(e){B?Z():W(e)},B=A.segments.some((function(e){return"––"===e.text})),Z=function(){var e=o.now(o.getLocalTimeZone()),a=Math.floor(e.minute/E)*E,t=e.set({minute:a});s(t)},W=function(e){var a;A.value&&A.setValue(null==(a=A.value)?void 0:a.add({minutes:e}))};return h.default.createElement(n.I18nProvider,{locale:S},h.default.createElement("div",{className:C.default(c,"eds-timepicker__wrapper")},h.default.createElement(j,{direction:"left",disabled:u,"aria-label":x,onClick:function(){return V(-1*E)}}),h.default.createElement(i.BaseFormControl,y({style:f,className:"eds-timepicker",labelId:q,label:m,labelProps:y({},L),ref:e.mergeRefs(O,F),disabled:u,disableLabelAnimation:!0,labelTooltip:p},M,{variant:v,feedback:b}),A.segments.map((function(e,a){return h.default.createElement(w,{segment:e,state:A,key:a})}))),h.default.createElement(j,{direction:"right",disabled:u,"aria-label":N,onClick:function(){return V(E)}})))},exports.ariaLabelIfNorwegian=x,exports.createCalendar=T,exports.nativeDateToDateValue=function(e,a,t,l){return void 0===a&&(a=!1),a?new o.CalendarDate(e.getFullYear(),e.getMonth()+1,e.getDate()):E(e,t,l)},exports.nativeDateToTimeValue=function(e,a,t,l){return void 0===a&&(a=!1),a?new o.Time(e.getHours(),e.getMinutes(),e.getSeconds(),0):E(e,t,l)},exports.timeOrDateValueToNativeDate=function(e,a){if(!e.day){var t=new Date;return t.setHours(e.hour),t.setMinutes(e.minute),t.setSeconds(e.second),t}return e.hour?e.timeZone?e.toDate():a?e.toDate(a):new Date(e.year,e.month-1,e.day,e.hour,e.minute,e.second):e.toDate(null!=a?a:o.getLocalTimeZone())};
2
2
  //# sourceMappingURL=datepicker.cjs.production.min.js.map