@entur/datepicker 4.0.0 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +0 -71
- package/dist/DatePicker/Calendar.d.ts +1 -1
- package/dist/DatePicker/CalendarCell.d.ts +1 -1
- package/dist/DatePicker/CalendarGrid.d.ts +1 -1
- package/dist/DatePicker/DateField.d.ts +1 -1
- package/dist/DatePicker/DatePicker.d.ts +1 -1
- package/dist/DatePicker/NativeDatePicker.d.ts +1 -1
- package/dist/TimePicker/NativeTimePicker.d.ts +1 -1
- package/dist/TimePicker/TimePicker.d.ts +1 -1
- package/dist/TimePicker/TimePickerArrowButton.d.ts +1 -1
- package/dist/datepicker.cjs.development.js +197 -268
- package/dist/datepicker.cjs.development.js.map +1 -1
- package/dist/datepicker.cjs.production.min.js +1 -1
- package/dist/datepicker.cjs.production.min.js.map +1 -1
- package/dist/datepicker.esm.js +197 -268
- package/dist/datepicker.esm.js.map +1 -1
- package/dist/shared/CalendarButton.d.ts +1 -1
- package/dist/shared/FieldSegment.d.ts +1 -1
- package/dist/shared/utils.d.ts +2 -2
- package/dist/styles.css +65 -66
- package/package.json +14 -14
- package/CHANGELOG.md +0 -761
|
@@ -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\n/**\n * Tar inn et JS Date-objekt og returnerer et av Date- eller TimeValue-objektene fra @internationalized/date-pakken\n * @param {Date} date JS Date-objekt som ønskes konvertert til et Date- eller 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 {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 {Time | CalendarDateTime | ZonedDateTime | CalendarDate} et av Time- eller DateValue-objektene med verdier fra date\n */\nexport const nativeDateToTimeOrDateValue = (\n date: Date,\n noDateOnlyTime = false,\n noTimeOnlyDate = false,\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 if (noDateOnlyTime)\n return new Time(date.getHours(), date.getMinutes(), date.getSeconds(), 0);\n if (noTimeOnlyDate)\n return new CalendarDate(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\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 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;\n onChange: (SelectedDate: DateValue) => 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 { DateValue, AriaDatePickerProps } 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 = {\n /** Den valgte datoen. Dato i '@internationalized/date'-pakkens format */\n selectedDate: DateValue;\n /** Kalles når tiden endres. Dato i '@internationalized/date'-pakkens format */\n onChange: (date: DateValue) => 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<DateValue>,\n | 'value'\n | 'onChange'\n | 'label'\n | 'hideTimeZone'\n | 'placeholder'\n | 'minValue'\n | 'maxValue'\n>;\n\nexport const DatePicker = ({\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) => {\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,\n onChange,\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 };\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"],"names":["FieldSegment","segment","state","ref","useRef","useDateSegment","segmentProps","is12HourFormatted","segments","some","text","segmentDisplayText","match","padStart","React","className","classNames","isPlaceholder","tabIndex","isDisabled","nativeDateToTimeOrDateValue","date","noDateOnlyTime","noTimeOnlyDate","timeZone","offset","ZonedDateTime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","parseAbsolute","toISOString","Time","CalendarDate","CalendarDateTime","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","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","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","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\n/**\n * Tar inn et JS Date-objekt og returnerer et av Date- eller TimeValue-objektene fra @internationalized/date-pakken\n * @param {Date} date JS Date-objekt som ønskes konvertert til et Date- eller 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 {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 {Time | CalendarDateTime | ZonedDateTime | CalendarDate} et av Time- eller DateValue-objektene med verdier fra date\n */\nexport const nativeDateToTimeOrDateValue = (\n date: Date,\n noDateOnlyTime = false,\n noTimeOnlyDate = false,\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 if (noDateOnlyTime)\n return new Time(date.getHours(), date.getMinutes(), date.getSeconds(), 0);\n if (noTimeOnlyDate)\n return new CalendarDate(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\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 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;\n onChange: (SelectedDate: DateValue) => 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 { DateValue, AriaDatePickerProps } 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 = {\n /** Den valgte datoen. Dato i '@internationalized/date'-pakkens format */\n selectedDate: DateValue;\n /** Kalles når tiden endres. Dato i '@internationalized/date'-pakkens format */\n onChange: (date: DateValue) => 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<DateValue>,\n | 'value'\n | 'onChange'\n | 'label'\n | 'hideTimeZone'\n | 'placeholder'\n | 'minValue'\n | 'maxValue'\n>;\n\nexport const DatePicker = ({\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) => {\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,\n onChange,\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 };\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"],"names":["FieldSegment","segment","state","ref","useRef","useDateSegment","segmentProps","is12HourFormatted","segments","some","text","segmentDisplayText","match","padStart","React","createElement","className","classNames","isPlaceholder","tabIndex","isDisabled","nativeDateToTimeOrDateValue","date","noDateOnlyTime","noTimeOnlyDate","timeZone","offset","ZonedDateTime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","parseAbsolute","toISOString","Time","CalendarDate","CalendarDateTime","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,IAAMA,YAAY,GAAG,SAAfA,YAAY,CAA4C,IAAA,EAAA;EAAA,IAAtCC,OAAO,QAAPA,OAAO;AAAEC,IAAAA,KAAK,QAALA,KAAK,CAAA;AAC3C,EAAA,IAAMC,GAAG,GAAGC,YAAM,CAAiB,IAAI,CAAC,CAAA;AACxC,EAAA,IAAA,eAAA,GAAyBC,yBAAc,CAACJ,OAAO,EAAEC,KAAK,EAAEC,GAAG,CAAC;AAApDG,IAAAA,YAAY,mBAAZA,YAAY,CAAA;EAEpB,IAAMC,iBAAiB,GAAGL,KAAK,CAACM,QAAQ,CAACC,IAAI,CAC3C,UAAAR,OAAO,EAAA;IAAA,OAAIA,OAAO,CAACS,IAAI,KAAK,IAAI,IAAIT,OAAO,CAACS,IAAI,KAAK,IAAI,CAAA;GAC1D,CAAA,CAAA;AAED,EAAA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkB,GAAQ;AAC9B,IAAA,IAAIJ,iBAAiB,EAAE,OAAON,OAAO,CAACS,IAAI,CAAA;AAC1C;AACA,IAAA,IAAIT,OAAO,CAACS,IAAI,CAACE,KAAK,CAAC,KAAK,CAAC,EAAE,OAAOX,OAAO,CAACS,IAAI,CAACG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACnE,OAAOZ,OAAO,CAACS,IAAI,CAAA;GACpB,CAAA;AAED,EAAA,OACEI,yBAAA,CAAAC,aAAA,CAAA,KAAA,eACMT,YAAY,EAAA;AAChBH,IAAAA,GAAG,EAAEA,GAAG;AACRa,IAAAA,SAAS,EAAEC,8BAAU,CAAC,kCAAkC,EAAE;MACxD,+CAA+C,EAAEhB,OAAO,CAACiB,aAAa;AACtE,MAAA,iDAAiD,EAAEjB,OAAO,CAACS,IAAI,KAAK,GAAA;KACrE,CAAC;IACFS,QAAQ,EAAEjB,KAAK,CAACkB,UAAU,GAAG,CAAC,CAAC,GAAGd,YAAY,CAACa,QAAAA;GAE9CR,CAAAA,EAAAA,kBAAkB,EAAE,CACjB,CAAA;AAEV,CAAC;;AC5BD;;;;;;;;AAQG;AACUU,IAAAA,2BAA2B,GAAG,SAA9BA,2BAA2B,CACtCC,MAAU,EACVC,cAAc,EACdC,cAAc,EACdC,QAAiB,EACjBC,MAAe,EACb;AAAA,EAAA,IAJFH,cAAc,KAAA,KAAA,CAAA,EAAA;AAAdA,IAAAA,cAAc,GAAG,KAAK,CAAA;AAAA,GAAA;AAAA,EAAA,IACtBC,cAAc,KAAA,KAAA,CAAA,EAAA;AAAdA,IAAAA,cAAc,GAAG,KAAK,CAAA;AAAA,GAAA;AAItB,EAAA,IAAIC,QAAQ,EAAE;AACZ,IAAA,IAAIC,MAAM,EAAE;AACV,MAAA,OAAO,IAAIC,kBAAa,CACtBL,MAAI,CAACM,WAAW,EAAE,EAClBN,MAAI,CAACO,QAAQ,EAAE,GAAG,CAAC,EACnBP,MAAI,CAACQ,OAAO,EAAE,EACdL,QAAQ,EACRC,MAAM,EACNJ,MAAI,CAACS,QAAQ,EAAE,EACfT,MAAI,CAACU,UAAU,EAAE,EACjBV,MAAI,CAACW,UAAU,EAAE,CAClB,CAAA;AACF,KAAA;IACD,OAAOC,kBAAa,CAACZ,MAAI,CAACa,WAAW,EAAE,EAAEV,QAAQ,CAAC,CAAA;AACnD,GAAA;EACD,IAAIF,cAAc,EAChB,OAAO,IAAIa,SAAI,CAACd,MAAI,CAACS,QAAQ,EAAE,EAAET,MAAI,CAACU,UAAU,EAAE,EAAEV,MAAI,CAACW,UAAU,EAAE,EAAE,CAAC,CAAC,CAAA;EAC3E,IAAIT,cAAc,EAChB,OAAO,IAAIa,iBAAY,CACrBf,MAAI,CAACM,WAAW,EAAE,EAClBN,MAAI,CAACO,QAAQ,EAAE,GAAG,CAAC,EACnBP,MAAI,CAACQ,OAAO,EAAE,CACf,CAAA;AACH,EAAA,OAAO,IAAIQ,qBAAgB,CACzBhB,MAAI,CAACM,WAAW,EAAE,EAClBN,MAAI,CAACO,QAAQ,EAAE,GAAG,CAAC,EACnBP,MAAI,CAACQ,OAAO,EAAE,EACdR,MAAI,CAACS,QAAQ,EAAE,EACfT,MAAI,CAACU,UAAU,EAAE,EACjBV,MAAI,CAACW,UAAU,EAAE,CAClB,CAAA;AACH,EAAC;AAED;;;;;AAKG;AACH;AACO,IAAMM,2BAA2B,GAAG,SAA9BA,2BAA2B,CACtCC,KAA4B,EAC5BC,2BAAoC,EAC5B;AACR;AACA,EAAA,IAAI,CAACD,KAAK,CAACE,GAAG,EAAE;AACd;AACA,IAAA,IAAMpB,MAAI,GAAG,IAAIqB,IAAI,EAAE,CAAA;AACvB;AACArB,IAAAA,MAAI,CAACsB,QAAQ,CAACJ,KAAK,CAACK,IAAI,CAAC,CAAA;AACzB;AACAvB,IAAAA,MAAI,CAACwB,UAAU,CAACN,KAAK,CAACO,MAAM,CAAC,CAAA;AAC7B;AACAzB,IAAAA,MAAI,CAAC0B,UAAU,CAACR,KAAK,CAACS,MAAM,CAAC,CAAA;AAC7B,IAAA,OAAO3B,MAAI,CAAA;AACZ,GAAA;AAED;AACA,EAAA,IAAI,CAACkB,KAAK,CAACK,IAAI,EAAE;AACf;AACA;IACA,OAAOL,KAAK,CAACU,MAAM,CAACT,2BAA2B,WAA3BA,2BAA2B,GAAIU,qBAAgB,EAAE,CAAC,CAAA;AACvE,GAAA;AAED;AACA,EAAA,IAAI,CAACX,KAAK,CAACf,QAAQ,EAAE;AACnB;AACA,IAAA,IAAIgB,2BAA2B;AAC7B;AACA,MAAA,OAAOD,KAAK,CAACU,MAAM,CAACT,2BAA2B,CAAC,CAAA;AAElD,IAAA,OAAO,IAAIE,IAAI;AACb;AACAH,IAAAA,KAAK,CAACY,IAAI;AACV;IACAZ,KAAK,CAACa,KAAK,GAAG,CAAC;AACf;AACAb,IAAAA,KAAK,CAACE,GAAG;AACT;AACAF,IAAAA,KAAK,CAACK,IAAI;AACV;AACAL,IAAAA,KAAK,CAACO,MAAM;AACZ;IACAP,KAAK,CAACS,MAAM,CACb,CAAA;AACF,GAAA;AAED;EACA,OAAOT,KAAK,CAACU,MAAM,EAAE,CAAA;AACvB,EAAC;IAEYI,cAAc,GAAG,SAAjBA,cAAc,CAAIC,UAAU,EAA0B;AAAA,EAAA,IAApCA,UAAU,KAAA,KAAA,CAAA,EAAA;AAAVA,IAAAA,UAAU,GAAG,SAAS,CAAA;AAAA,GAAA;AACnD,EAAA,QAAQA,UAAU;AAChB,IAAA,KAAK,SAAS;MACZ,OAAO,IAAIC,sBAAiB,EAAE,CAAA;AAChC,IAAA;AACE,MAAA,MAAM,IAAIC,KAAK,CAAyBF,uBAAAA,GAAAA,UAAU,CAAG,CAAA;AAAC,GAAA;AAE5D,EAAC;AAEM,IAAMG,oBAAoB,GAAG,SAAvBA,oBAAoB,CAC/BC,kBAA0B,EAC1BC,MAAc,EACdC,eAAoB,EAClB;EACF,IAAID,MAAM,CAACE,WAAW,EAAE,KAAK,OAAO,EAAE,OAAOD,eAAe,CAAC,YAAY,CAAC,CAAA;AAC1E,EAAA,OAAOF,kBAAkB,CAAA;AAC3B;;;ACjEO,IAAMI,SAAS,gBAAGjD,yBAAK,CAACkD,UAAU,CACvC,UAsBE7D,IAAAA,EAAAA,GAAG,EACD;EAAA,IArBcqC,KAAK,QAAnByB,YAAY;AACZC,IAAAA,KAAK,QAALA,KAAK;AACGC,IAAAA,YAAY,QAApBP,MAAM;AACNQ,IAAAA,YAAY,QAAZA,YAAY;AACZC,IAAAA,QAAQ,QAARA,QAAQ;AAAA,IAAA,gBAAA,GAAA,IAAA,CACRC,WAAW;AAAXA,IAAAA,WAAW,iCAAG,KAAK,GAAA,gBAAA;AACnBC,IAAAA,QAAQ,QAARA,QAAQ;AACRC,IAAAA,OAAO,QAAPA,OAAO;AACPC,IAAAA,QAAQ,QAARA,QAAQ;AAAA,IAAA,qBAAA,GAAA,IAAA,CACRC,iBAAiB;AAAjBA,IAAAA,iBAAiB,sCAAG,OAAO,GAAA,qBAAA;AAAA,IAAA,qBAAA,GAAA,IAAA,CAC3BC,kBAAkB;AAAlBA,IAAAA,kBAAkB,sCAAG,cAAc,GAAA,qBAAA;AACnCC,IAAAA,YAAY,QAAZA,YAAY;AACHC,IAAAA,QAAQ,QAAjBC,OAAO;AACEC,IAAAA,QAAQ,QAAjBC,OAAO;AACPC,IAAAA,KAAK,QAALA,KAAK;AACLjE,IAAAA,SAAS,QAATA,SAAS;AACGkE,IAAAA,gBAAgB,QAA5BC,UAAU;AACVC,IAAAA,MAAM,QAANA,MAAM;IACHC,IAAI,GAAA,6BAAA,CAAA,IAAA,EAAAC,WAAA,CAAA,CAAA;AAIT,EAAA,IAAA,UAAA,GAAmBC,cAAS,EAAE;AAAtB3B,IAAAA,MAAM,cAANA,MAAM,CAAA;AAEd,EAAA,IAAM1D,KAAK,GAAGsF,8BAAiB,CAAA,QAAA,CAAA,EAAA,EAC1BH,IAAI,EAAA;AACPzB,IAAAA,MAAM,EAAEO,YAAY,IAAZA,IAAAA,GAAAA,YAAY,GAAIP,MAAM;AAC9BN,IAAAA,cAAc,EAAdA,cAAc;AACdd,IAAAA,KAAK,EAAEA,KAAK,KAAK,IAAI,GAAGiD,SAAS,GAAGjD,KAAK;IACzCkD,YAAY,EAAE,CAACtB,YAAY;AAC3BE,IAAAA,WAAW,EAAED,QAAQ,GAAG,QAAQ,GAAGC,WAAW;AAC9CO,IAAAA,QAAQ,EAARA,QAAQ;AACRE,IAAAA,QAAQ,EAARA,QAAAA;GACA,CAAA,CAAA,CAAA;AAEF,EAAA,IAAMY,YAAY,GAAGvF,YAAM,CAAC,IAAI,CAAC,CAAA;EACjC,IAAmCwF,aAAAA,GAAAA,uBAAY,cACxCP,IAAI,EAAA;AAAEnB,MAAAA,KAAK,EAAEA,KAAK;AAAE9C,MAAAA,UAAU,EAAEmD,QAAQ,IAAIc,IAAI,CAACjE,UAAAA;KACtDlB,CAAAA,EAAAA,KAAK,EACLyF,YAAY,CACb;AAJOR,IAAAA,UAAU,iBAAVA,UAAU;AAAEU,IAAAA,UAAU,iBAAVA,UAAU,CAAA;AAM9B,EAAA,IAAMC,EAAE,GAAGC,iBAAW,CAAC,WAAW,CAAC,CAAA;AAEnC,EAAA,OACEjF,yBAAC,CAAAC,aAAA,CAAAiF,wBAAkB,EACjB;IAAAC,SAAS,EAAE9B,YAAY,KAAKsB,SAAS;IACrCS,OAAO,EAAE,iBAACC,KAAgB,EAAA;AAAA,MAAA,OACxBrF,yBAAA,CAAAC,aAAA,CAACqF,iBAAY,EAAA;AAACxC,QAAAA,MAAM,EAAEO,YAAAA;OAAY,EAAGgC,KAAK,CAAgB,CAAA;AAAA,KAAA;AAC3D,GAAA,EAEDrF,yBAAA,CAAAC,aAAA,CAACsF,oBAAe,EAAA,QAAA,CAAA;AACdpB,IAAAA,KAAK,EAAEA,KAAK;AACZjE,IAAAA,SAAS,EAAEC,8BAAU,CAAC,eAAe,EAAED,SAAS,CAAC;AACjDsF,IAAAA,OAAO,EAAER,EAAE;AACX3F,IAAAA,GAAG,EAAEoG,eAAS,CAACZ,YAAY,EAAExF,GAAG,CAAC;IACjCoE,QAAQ,EAAErE,KAAK,CAACkB,UAAU;AAC1BoF,IAAAA,qBAAqB,EAAA,IAAA;AACrBtC,IAAAA,KAAK,EAAEA,KAAK;AACZU,IAAAA,YAAY,EAAEA,YAAY;AAC1BO,IAAAA,UAAU,EAAED,gBAAgB,IAAhBA,IAAAA,GAAAA,gBAAgB,GAAIC,UAAAA;AAAU,GAAA,EACtCU,UAAU,EAAA;AACdrB,IAAAA,OAAO,EACL,CAAAA,OAAO,IAAA,IAAA,GAAPA,OAAO,GAAItE,KAAK,CAACuG,eAAe,KAAK,SAAS,IAC1C/B,iBAAiB,GACjBe,SAAS;AAEfhB,IAAAA,QAAQ,EACN,CAAAA,QAAQ,IAAA,IAAA,GAARA,QAAQ,GAAIvE,KAAK,CAACuG,eAAe,KAAK,SAAS,IAC3C9B,kBAAkB,GAClBc,SAAS;AAEfL,IAAAA,MAAM,EAAEA,MAAM;AACdsB,IAAAA,mBAAmB,EAAA,IAAA;GAElBxG,CAAAA,EAAAA,KAAK,CAACM,QAAQ,CAACmG,GAAG,CAAC,UAAC1G,OAAO,EAAE2G,CAAC,EAAA;AAAA,IAAA,OAC7B9F,yBAAA,CAAAC,aAAA,CAACf,YAAY,EAAC;AAAAC,MAAAA,OAAO,EAAEA,OAAO;AAAEC,MAAAA,KAAK,EAAEA,KAAK;AAAE2G,MAAAA,GAAG,EAAED,CAAAA;AAAK,KAAA,CAAA,CAAA;GACzD,CAAC,CACc,CACC,CAAA;AAEzB,CAAC;;;AC7II,IAAME,cAAc,GAAG,SAAjBA,cAAc,CAKD,IAAA,EAAA;EAAA,IAJxBC,QAAQ,QAARA,QAAQ;AACR/F,IAAAA,SAAS,QAATA,SAAS;AACTiE,IAAAA,KAAK,QAALA,KAAK;IACF+B,KAAK,GAAA,6BAAA,CAAA,IAAA,EAAA1B,WAAA,CAAA,CAAA;AAER,EAAA,IAAMnF,GAAG,GAAGC,YAAM,CAAC,IAAI,CAAC,CAAA;AACxB,EAAA,IAAA,UAAA,GAAwB6G,gBAAS,CAACD,KAAK,EAAE7G,GAAG,CAAC;AAArC+G,IAAAA,WAAW,cAAXA,WAAW,CAAA;AAEnB,EAAA,OACEpG,wCAACqG,mBAAU,eAAKD,WAAW,EAAA;AAAE/G,IAAAA,GAAG,EAAEA,GAAG;AAAEa,IAAAA,SAAS,EAAEA,SAAS;AAAEiE,IAAAA,KAAK,EAAEA,KAAAA;AAAK,GAAA,CAAA,EACtE8B,QAAQ,CACE,CAAA;AAEjB,CAAC;;;ACTM,IAAMK,YAAY,GAAG,SAAfA,YAAY,CAOD,IAAA,EAAA;AAAA,EAAA,IAAA,eAAA,CAAA;EAAA,IANtBlH,KAAK,QAALA,KAAK;AACLoB,IAAAA,MAAI,QAAJA,IAAI;AAAA,IAAA,qBAAA,GAAA,IAAA,CACJ+F,mBAAmB;AAAnBA,IAAAA,mBAAmB,sCAAG,YAAK;AACzB,MAAA,OAAA;KACD,GAAA,qBAAA;IACEhC,IAAI,GAAA,6BAAA,CAAA,IAAA,EAAAC,WAAA,CAAA,CAAA;AAEP,EAAA,IAAMgC,OAAO,GAAGlH,YAAM,CAAC,IAAI,CAAC,CAAA;AAE5B,EAAA,IAAA,gBAAA,GAQImH,wBAAe,CAAC;AAAEjG,MAAAA,IAAI,EAAJA,MAAAA;AAAM,KAAA,EAAEpB,KAAK,EAAEoH,OAAO,CAAC;AAP3CE,IAAAA,SAAS,oBAATA,SAAS;AACTN,IAAAA,WAAW,oBAAXA,WAAW;AACXO,IAAAA,UAAU,oBAAVA,UAAU;AACVC,IAAAA,qBAAqB,oBAArBA,qBAAqB;AACrBtG,IAAAA,UAAU,oBAAVA,UAAU;AACVuG,IAAAA,aAAa,oBAAbA,aAAa;AACbC,IAAAA,aAAa,oBAAbA,aAAa,CAAA;AAEf,EAAA,OACE9G,yBAAQ,CAAAC,aAAA,CAAA,IAAA,eAAAyG,SAAS,EAAA;AAAExG,IAAAA,SAAS,EAAC,0CAAA;AAA0C,GAAA,CAAA,EACrEF,yBAAA,CAAAC,aAAA,CAAA,KAAA,eACMmG,WAAW,EAAA;AACf/G,IAAAA,GAAG,EAAEmH,OAAO;AACZO,IAAAA,MAAM,EAAEH,qBAAqB;AAC7B1G,IAAAA,SAAS,EAAEC,8BAAU,CAAC,sCAAsC,EAAE;AAC5D,MAAA,gDAAgD,EAAEwG,UAAU;MAC5D,gDAAgD,EAC9CrG,UAAU,IAAIuG,aAAa;AAC7B,MAAA,qDAAqD,EACnDD,qBAAqB;AACvB,MAAA,6CAA6C,EAAEI,eAAU,CACvDxG,MAAI,EACJyG,QAAG,CAAC7H,CAAAA,eAAAA,GAAAA,KAAK,CAACuB,QAAQ,KAAI0B,IAAAA,GAAAA,eAAAA,GAAAA,qBAAgB,EAAE,CAAC,CAAA;KAE5C,CAAA;AAAC,GAAA,EACEkC,IAAI,EAAA;IACR2C,OAAO,EAAE,SAAAC,OAAAA,CAAAA,CAAC,EAAG;MACXf,WAAW,CAACc,OAAO,IAAId,WAAW,CAACc,OAAO,CAACC,CAAC,CAAC,CAAA;MAC7CR,UAAU,IAAIJ,mBAAmB,EAAE,CAAA;KACpC;IACDa,SAAS,EAAE,SAAAD,SAAAA,CAAAA,CAAC,EAAG;MACbf,WAAW,CAACgB,SAAS,IAAIhB,WAAW,CAACgB,SAAS,CAACD,CAAC,CAAC,CAAA;AACjD,MAAA,IAAIA,CAAC,CAACpB,GAAG,KAAK,OAAO,IAAIoB,CAAC,CAACpB,GAAG,KAAK,GAAG,EACpCY,UAAU,IAAIJ,mBAAmB,EAAE,CAAA;AACvC,KAAA;GAECO,CAAAA,EAAAA,aAAa,CACV,CACH,CAAA;AAET,CAAC;;;ACnDM,IAAMO,YAAY,GAAG,SAAfA,YAAY,CAOD,IAAA,EAAA;EAAA,IANtBjI,KAAK,QAALA,KAAK;AACLkI,IAAAA,qBAAqB,QAArBA,qBAAqB;AAAA,IAAA,qBAAA,GAAA,IAAA,CACrBf,mBAAmB;AAAnBA,IAAAA,mBAAmB,sCAAG,YAAK;AACzB,MAAA,OAAA;KACD,GAAA,qBAAA;IACEhC,IAAI,GAAA,6BAAA,CAAA,IAAA,EAAAC,WAAA,CAAA,CAAA;AAEP,EAAA,IAAM+C,cAAc,GAAGtC,iBAAW,CAAC,cAAc,CAAC,CAAA;AAClD,EAAA,IAAA,UAAA,GAAmBR,cAAS,EAAE;AAAtB3B,IAAAA,MAAM,cAANA,MAAM,CAAA;AAEd,EAAA,IAAA,gBAAA,GAA6C0E,wBAAe,CAACjD,IAAI,EAAEnF,KAAK,CAAC;AAAjEqI,IAAAA,SAAS,oBAATA,SAAS;AAAEC,IAAAA,WAAW,oBAAXA,WAAW;AAAEC,IAAAA,QAAQ,oBAARA,QAAQ,CAAA;EAExC,IAAMC,YAAY,GAAGC,oBAAe,CAACzI,KAAK,CAAC0I,YAAY,CAACC,KAAK,EAAEjF,MAAM,CAAC,CAAA;AACtE,EAAA,IAAMkF,UAAU,GAAGC,KAAK,CAACC,IAAI,CAACD,KAAK,CAACL,YAAY,CAAC,CAACO,IAAI,EAAE,CAAC,CAAA;AAEzD,EAAA,IAAMC,cAAc,GAAG,SAAjBA,cAAc,GAAQ;IAC1B,IAAItF,MAAM,CAACE,WAAW,EAAE,CAACqF,QAAQ,CAAC,IAAI,CAAC,EACrC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACnD,IAAIvF,MAAM,CAACE,WAAW,EAAE,CAACqF,QAAQ,CAAC,IAAI,CAAC,EAAE;MACvC,IAAIV,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EACrB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;MACnD,IAAIA,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EACrB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACpD,KAAA;AACD,IAAA,OAAOA,QAAQ,CAAC9B,GAAG,CAAC,UAAAjE,GAAG,EAAA;MAAA,OAAIA,GAAG,CAACoB,WAAW,EAAE,CAAA;KAAC,CAAA,CAAA;GAC9C,CAAA;AAED,EAAA,IAAMsF,wBAAwB,GAAG,SAA3BA,wBAAwB,GAAQ;IACpC,IAAIhB,qBAAqB,EAAE,OAAOA,qBAAqB,CAAA;IACvD,IAAIxE,MAAM,CAACE,WAAW,EAAE,CAACqF,QAAQ,CAAC,IAAI,CAAC,EACrC,OAAO,8CAA8C,CAAA;AACvD,IAAA,OAAO,8CAA8C,CAAA;GACtD,CAAA;AAED,EAAA,OACErI,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAuI,QAAA,EAAA,IAAA,EACEvI,yBACM,CAAAC,aAAA,CAAA,OAAA,eAAAwH,SAAS,EAAA;AACbe,IAAAA,WAAW,EAAC,GAAG;AACftI,IAAAA,SAAS,EAAC,gCAAA;GAEVF,CAAAA,EAAAA,yBAAA,CAAAC,aAAA,CAAA,OAAA,eAAWyH,WAAW,CAAA,EACpB1H,yBACG,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,EAAAmI,cAAc,EAAE,CAACvC,GAAG,CAAC,UAACjE,GAAG,EAAE6G,KAAK,EAAA;AAAA,IAAA,OAC/BzI,yBAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAI8F,MAAAA,GAAG,EAAE0C,KAAAA;KAAK,EAAG7G,GAAG,CAAM,CAAA;AAAA,GAC3B,CAAC,CACC,CACC,EACR5B,yBAAA,CAAAC,aAAA,CAAA,OAAA,EAAA,IAAA,EACG+H,UAAU,CAACnC,GAAG,CAAC,UAAA6C,SAAS,EAAA;AAAA,IAAA,OACvB1I,yBAAI,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAA8F,MAAAA,GAAG,EAAE2C,SAAAA;OACNtJ,KAAK,CACHuJ,cAAc,CAACD,SAAS,CAAC,CACzB7C,GAAG,CAAC,UAACrF,IAAI,EAAEsF,CAAC,EAAA;AAAA,MAAA,OACXtF,IAAI,GACFR,yBAAC,CAAAC,aAAA,CAAAqG,YAAY,EACX;AAAAP,QAAAA,GAAG,EAAED,CAAC;AACN1G,QAAAA,KAAK,EAAEA,KAAK;AACZoB,QAAAA,IAAI,EAAEA,IAAI;QACQ,kBAAA,EAAA+G,cAAc,GAAG,aAAa;AAChDhB,QAAAA,mBAAmB,EAAEA,mBAAAA;AAAmB,OAAA,CACxC,GAEFvG,yBAAI,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAA8F,QAAAA,GAAG,EAAED,CAAAA;AAAK,OAAA,CACf,CAAA;AAAA,KAAA,CACF,CACA,CAAA;GACN,CAAC,CACI,CACF,EACR9F,yBAAA,CAAAC,aAAA,CAAC2I,mBAAc,EAAA;IAAC5D,EAAE,EAAEuC,cAAc,GAAG,aAAA;AAAa,GAAA,EAC/Ce,wBAAwB,EAAE,CACZ,CAChB,CAAA;AAEP,CAAC;;;ACrEM,IAAMO,QAAQ,gBAAG7I,yBAAK,CAACkD,UAAU,CACtC,UAaE7D,IAAAA,EAAAA,GAAG,EACD;EAZcqC,IACdoH,QAAQ,QAARA,QAAQ,CAAA;AACAzF,IAAAA,YAAY,QAApBP,MAAM,CAAA;AACNqB,IAAAA,KAAK,QAALA,KAAK,CAAA;AACK4E,IACVzB,qBAAqB,QAArBA,qBAAqB,CAAA;AAAA,IAAA,qBAAA,GAAA,IAAA,CACrBf,mBAAmB,CAAA;AAAnBA,IAAAA,mBAAmB,sCAAG,YAAK;AACzB,MAAA,OAAA;KACD,GAAA,qBAAA,CAAA;IACEhC,IAAI,GAAA,6BAAA,CAAA,IAAA,EAAAC,WAAA,EAAA;AAIT,EAAA,IAAA,UAAA,GAAmBC,cAAS,EAAE;AAAtB3B,IAAAA,MAAM,cAANA,MAAM,CAAA;AAEd,EAAA,IAAM1D,KAAK,GAAG4J,2BAAgB,CAAA,QAAA,CAAA,EAAA,EACzBzE,IAAI,EAAA;AACPuE,IAAAA,QAAQ,EAARA,QAAQ;AACRhG,IAAAA,MAAM,EAAEO,YAAY,IAAZA,IAAAA,GAAAA,YAAY,GAAIP,MAAM;AAC9BN,IAAAA,cAAc,EAAdA,cAAAA;GACA,CAAA,CAAA,CAAA;AACF,EAAA,IAAA,YAAA,GACEyG,oBAAW,CAAC1E,IAAI,EAAEnF,KAAK,CAAC;AADlB8J,IAAAA,aAAa,gBAAbA,aAAa;AAAEC,IAAAA,eAAe,gBAAfA,eAAe;AAAEC,IAAAA,eAAe,gBAAfA,eAAe;AAAEC,IAAAA,KAAK,gBAALA,KAAK,CAAA;AAG9D,EAAA,OACErJ,yBAAC,CAAAC,aAAA,CAAAiF,wBAAkB,EACjB;AAAAC,IAAAA,SAAS,EAAE9B,YAAY;IACvB+B,OAAO,EAAE,iBAACC,KAAgB,EAAA;AAAA,MAAA,OACxBrF,yBAAA,CAAAC,aAAA,CAACqF,iBAAY,EAAA;AAACxC,QAAAA,MAAM,EAAEO,YAAAA;OAAY,EAAGgC,KAAK,CAAgB,CAAA;AAAA,KAAA;AAC3D,GAAA,EAEDrF,yBAAA,CAAAC,aAAA,CAAA,KAAA,eACMiJ,aAAa,EAAA;AACjB7J,IAAAA,GAAG,EAAEA,GAAG;AACRa,IAAAA,SAAS,EAAC,0BAA0B;AACpCiE,IAAAA,KAAK,EAAEA,KAAAA;AAAK,GAAA,CAAA,EAEZnE,yBAAK,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAAC,IAAAA,SAAS,EAAC,kCAAA;AAAkC,GAAA,EAC/CF,yBAAC,CAAAC,aAAA,CAAA+F,cAAc,eACTmD,eAAe,EAAA;AACP,IAAA,YAAA,EAAAvG,oBAAoB,CAC9B,eAAe,EACfE,MAAM,EACNqG,eAAe,CAAA;AAChB,GAAA,CAAA,EAEDnJ,yBAAA,CAAAC,aAAA,CAACqJ,mBAAa,EAAC;AAAAC,IAAAA,IAAI,EAAE,EAAA;IAAM,CACZ,EACjBvJ,yBAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,EAAKoJ,KAAK,CAAM,EAChBrJ,yBAAC,CAAAC,aAAA,CAAA+F,cAAc,eACToD,eAAe,EAAA;AACP,IAAA,YAAA,EAAAxG,oBAAoB,CAC9B,aAAa,EACbE,MAAM,EACNsG,eAAe,CAAA;AAChB,GAAA,CAAA,EAEDpJ,yBAAA,CAAAC,aAAA,CAACuJ,oBAAc,EAAC;AAAAD,IAAAA,IAAI,EAAE,EAAA;GAAE,CAAI,CACb,CACb,EACNvJ,yBAAA,CAAAC,aAAA,CAACoH,YAAY,EACX;AAAAjI,IAAAA,KAAK,EAAEA,KAAK;AACZkI,IAAAA,qBAAqB,EAAEA,qBAAqB;AAC5Cf,IAAAA,mBAAmB,EAAEA,mBAAAA;IACrB,CACE,CACa,CAAA;AAEzB,CAAC;;;ACSUkD,IAAAA,UAAU,GAAG,SAAbA,UAAU,CAoBD,IAAA,EAAA;EAnBN/H,IAAAA,KAAK,QAAnByB,YAAY,CAAA;AACZ2F,IAAAA,QAAQ,QAARA,QAAQ,CAAA;AACRhG,IAAAA,MAAM,QAANA,MAAM,CAAA;AACIxC,IAAAA,UAAU,QAApBmD,QAAQ,CAAA;AACRF,IAAAA,QAAQ,QAARA,QAAQ,CAAA;AAAA,IAAA,iBAAA,GAAA,IAAA,CACRD,YAAY,CAAA;AAAZA,IAAAA,YAAY,kCAAG,KAAK,GAAA,iBAAA,CAAA;AACpBpD,IAAAA,SAAS,QAATA,SAAS,CAAA;AACTiE,IACAT,OAAO,QAAPA,OAAO,CAAA;AACPC,IAAAA,QAAQ,QAARA,QAAQ,CAAA;AACRC,IAAAA,iBAAiB,QAAjBA,iBAAiB,CAAA;AACjBC,IAAAA,kBAAkB,QAAlBA,kBAAkB,CAAA;AAAA,IAAA,iBAAA,GAAA,IAAA,CAClB6F,YAAY,CAAA;AAAZA,IAAAA,YAAY,kCAAG,KAAK,GAAA,iBAAA,CAAA;AACpB5F,IAAAA,YAAY,QAAZA,YAAY,CAAA;AACZwD,IAAAA,qBAAqB,QAArBA,qBAAqB,CAAA;AACZvD,IAAAA,QAAQ,QAAjBC,OAAO,CAAA;AACEC,IAAAA,QAAQ,QAAjBC,OAAO,CAAA;AAAA,IAAA,kBAAA,GAAA,IAAA,CACPyF,aAAa,CAAA;AAAbA,IAAAA,aAAa,mCAAG,IAAI,GAAA,kBAAA,CAAA;IACjBpF,IAAI,GAAA,6BAAA,CAAA,IAAA,EAAAC,WAAA,EAAA;EAEP,IAAMoF,+BAA+B,GAAGD,aAAa,CAAA;AACrD,EAAA,IAAME,aAAa,GAAGvK,YAAM,CAAwB,IAAI,CAAC,CAAA;AACzD,EAAA,IAAMwK,WAAW,GAAGxK,YAAM,CAAwB,IAAI,CAAC,CAAA;AACvD,EAAA,IAAMuF,YAAY,GAAGvF,YAAM,CAAwB,IAAI,CAAC,CAAA;AAExD,EAAA,IAAA,oBAAA,GAAkByK,yBAAmB,EAAE;AAA/BC,IAAAA,KAAK,wBAALA,KAAK,CAAA;AAEb,EAAA,IAAM5K,KAAK,GAAG6K,+BAAkB,CAAA,QAAA,CAAA,EAAA,EAC3B1F,IAAI,EAAA;AACPR,IAAAA,QAAQ,EAARA,QAAQ;AACRE,IAAAA,QAAQ,EAARA,QAAQ;AACRvC,IAAAA,KAAK,EAALA,KAAK;AACLoH,IAAAA,QAAQ,EAARA,QAAAA;GACA,CAAA,CAAA,CAAA;AACF,EAAA,IAAA,cAAA,GAOIoB,wBAAa,CAAA,QAAA,CAAA;AACb5J,MAAAA,UAAU,EAAVA,UAAU;AAAEyD,MAAAA,QAAQ,EAARA,QAAQ;AAAEE,MAAAA,QAAQ,EAARA,QAAAA;AAAQ,KAAA,EAAKM,IAAI,CAAA,EACzCnF,KAAK,EACLyK,aAAa,CACd;AAVCM,IAAAA,UAAU,kBAAVA,UAAU;AACV9F,IAAAA,UAAU,kBAAVA,UAAU;AACVU,IAAAA,UAAU,kBAAVA,UAAU;AACVqB,IAAAA,WAAW,kBAAXA,WAAW;AACXgE,IAAAA,WAAW,kBAAXA,WAAW;AACXlB,IAAAA,aAAa,kBAAbA,aAAa,CAAA;AAOf;AACA,EAAA,IAAA,YAAA,GAAgDmB,oBAAW,CAAC;AAC1DC,MAAAA,oBAAoB,EAAEC,mBAAU;AAChCC,MAAAA,SAAS,EAAE,cAAc;AACzBC,MAAAA,UAAU,EAAE,CACV7J,eAAM,CAAC8J,YAAK,CAACC,UAAU,CAAC,EACxBC,aAAI,EAAE,EACNC,cAAK,CAAC;QAAEC,OAAO,EAAEJ,YAAK,CAACC,UAAAA;OAAY,CAAC,CAAA;AAEvC,KAAA,CAAC;AARMI,IAAAA,CAAC,gBAADA,CAAC;AAAEC,IAAAA,CAAC,gBAADA,CAAC;AAAEC,IAAAA,SAAS,gBAATA,SAAS;AAAEC,IAAAA,QAAQ,gBAARA,QAAQ;AAAEC,IAAAA,QAAQ,gBAARA,QAAQ,CAAA;AAU3C,EAAA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgB,CAAIC,eAA0B,EAAI;AACtD;AACAC,IAAAA,qBAAqB,CAAC,YAAK;MACzBpC,aAAa,CAACJ,QAAQ,IAAII,aAAa,CAACJ,QAAQ,CAACuC,eAAe,CAAC,CAAA;AACnE,KAAC,CAAC,CAAA;GACH,CAAA;AAEDE,EAAAA,uBAAiB,CAAC,CAACzB,WAAW,CAAC,EAAE,YAAK;AACpC1K,IAAAA,KAAK,CAACoM,OAAO,CAAC,KAAK,CAAC,CAAA;AACtB,GAAC,CAAC,CAAA;EAEFC,iBAAW,CAAC3B,WAAW,EAAE,YAAK;AAC5B1K,IAAAA,KAAK,CAACoM,OAAO,CAAC,KAAK,CAAC,CAAA;AACtB,GAAC,CAAC,CAAA;AAEF,EAAA,IAAME,mBAAmB,GAAA,QAAA,CAAA,EAAA,EACpBtB,WAAW,EACXlB,aAAa,EAAA;IAChBzF,QAAQ,EAAEyF,aAAa,CAAC5I,UAAU;AAClCgH,IAAAA,qBAAqB,EAAEA,qBAAqB;AAC5Cf,IAAAA,mBAAmB,EAAE,SAAA,mBAAA,GAAA;AAAA,MAAA,OAAMnH,KAAK,CAACoM,OAAO,CAAC,KAAK,CAAC,CAAA;AAAA,KAAA;AAC/C1C,IAAAA,QAAQ,EAAEsC,gBAAAA;GACX,CAAA,CAAA;AAED,EAAA,IAAMO,QAAQ,GAAG3B,KAAK,IAAIJ,+BAA+B,IAAI,CAACF,YAAY,CAAA;AAE1E,EAAA,IAAMkC,eAAe,GACnB5L,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACE;AACAkE,IAAAA,KAAK,EAAE;AACL0H,MAAAA,QAAQ,EAAEV,QAAQ;AAClBW,MAAAA,GAAG,EAAEd,CAAC,IAADA,IAAAA,GAAAA,CAAC,GAAI,CAAC;AACXe,MAAAA,IAAI,EAAEhB,CAAC,IAADA,IAAAA,GAAAA,CAAC,GAAI,CAAC;MACZiB,MAAM,EAAEC,eAAQ,CAACC,OAAAA;KAClB;IACD7M,GAAG,EAAE,SAAA8M,GAAAA,CAAAA,IAAI,EAAG;MACVjB,QAAQ,CAACiB,IAAI,CAAC,CAAA;AAChB,KAAA;AAAC,GAAA,EAEDnM,yBAAA,CAAAC,aAAA,CAACmM,6BAAS,EAAA;AAAC3I,IAAAA,QAAQ,EAAE,CAACrE,KAAK,CAACiN,MAAM,IAAIV,QAAQ;AAAEW,IAAAA,WAAW;KACxDlN,KAAK,CAACiN,MAAM,IACXrM,yBAAA,CAAAC,aAAA,CAAC4I,QAAQ,EAAA,QAAA,CAAA,EAAA,EAAK6C,mBAAmB,EAAA;AAAErM,IAAAA,GAAG,EAAEyK,WAAAA;AAAW,GAAA,CAAA,CACpD,CACS,CAEf,CAAA;AAED,EAAA,IAAMyC,aAAa,GACjBvM,yBAAC,CAAAC,aAAA,CAAAuM,WAAK;AACJjD,IAAAA,IAAI,EAAC,OAAO;AACZF,IAAAA,KAAK,EAAC,EAAE;IACRoD,IAAI,EAAErN,KAAK,CAACiN,MAAM;AAClBK,IAAAA,SAAS,EAAE,SAAA,SAAA,GAAA;AAAA,MAAA,OAAMtN,KAAK,CAACoM,OAAO,CAAC,KAAK,CAAC,CAAA;AAAA,KAAA;AACrCmB,IAAAA,mBAAmB,EACnB,IAAA;AAAAzM,IAAAA,SAAS,EAAC,gCAAA;GAAgC,EAE1CF,yBAAA,CAAAC,aAAA,CAAC4I,QAAQ,EAAA,QAAA,CAAA,EAAA,EAAK6C,mBAAmB,CAAA,CAAI,CAExC,CAAA;AAED,EAAA,OACE1L,yBAAC,CAAAC,aAAA,CAAAiF,wBAAkB,EACjB;IAAAC,SAAS,EAAErC,MAAM,KAAK6B,SAAS;IAC/BS,OAAO,EAAE,iBAACC,KAAgB,EAAA;AAAA,MAAA,OACxBrF,yBAAA,CAAAC,aAAA,CAACqF,iBAAY,EAAA;AAACxC,QAAAA,MAAM,EAAEA,MAAAA;OAAM,EAAGuC,KAAK,CAAgB,CAAA;AAAA,KAAA;AACrD,GAAA,EAEDrF,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAEC,8BAAU,CAAC,gBAAgB,EAAED,SAAS,CAAA;AAAC,GAAA,EACrDF,yBAAA,CAAAC,aAAA,CAAA,KAAA,eACMkK,UAAU,EAAA;IACd9K,GAAG,EAAE,SAAA8M,GAAAA,CAAAA,IAAI,EAAG;MACVtC,aAAa,CAAC+C,OAAO,GAAGT,IAAI,CAAA;MAC5BlB,SAAS,CAACkB,IAAI,CAAC,CAAA;KAChB;AACDnH,IAAAA,EAAE,EAAEL,SAAS;AACbzE,IAAAA,SAAS,EAAC,oCAAA;AAAoC,GAAA,CAAA,EAE9CF,yBAAC,CAAAC,aAAA,CAAAgD,SAAS,eACJ8B,UAAU,EAAA;IACd5B,YAAY,EAAE/D,KAAK,CAACsC,KAAK;IACzB0B,KAAK,EAAEmB,IAAI,CAACnB,KAAK;AACjBiB,IAAAA,UAAU,EAAEA,UAAU;AACtBd,IAAAA,QAAQ,EAAEA,QAAQ;AAClBD,IAAAA,YAAY,EAAEA,YAAY;AAC1BjE,IAAAA,GAAG,EAAEwF,YAAY;AACjBnB,IAAAA,OAAO,EAAEA,OAAO;AAChBC,IAAAA,QAAQ,EAAEA,QAAQ;AAClBC,IAAAA,iBAAiB,EAAEA,iBAAiB;AACpCC,IAAAA,kBAAkB,EAAEA,kBAAkB;AACtCC,IAAAA,YAAY,EAAEA,YAAY;AAC1B5D,IAAAA,SAAS,EAAEC,8BAAU,CAAC,2BAA2B,EAAE;MACjD,qCAAqC,EAAE4E,UAAU,CAACzE,UAAAA;KACnD,CAAA;AAAC,GAAA,CAAA,CACF,EACD,CAACyE,UAAU,CAACzE,UAAU,IACrBN,yBAAC,CAAAC,aAAA,CAAA+F,cAAc,EAAA,QAAA,CAAA,EAAA,EACTI,WAAW,EAAA;AACfyG,IAAAA,OAAO,EAAE,SAAA,OAAA,GAAA;MAAA,OAAMzN,KAAK,CAACoM,OAAO,CAAC,CAACpM,KAAK,CAACiN,MAAM,CAAC,CAAA;AAAA,KAAA;AAC3CnM,IAAAA,SAAS,EAAC,sCAAA;AAAsC,GAAA,CAAA,EAEhDF,yBAAC,CAAAC,aAAA,CAAA6M,kBAAY,EAAG,IAAA,CAAA,CAEnB,EACAnB,QAAQ,GAAGY,aAAa,GAAGX,eAAe,CACvC,CACF,CACa,CAAA;AAEzB;;;;AClPO,IAAMmB,gBAAgB,gBAAG/M,yBAAK,CAACkD,UAAU,CAI9C,UAYE7D,IAAAA,EAAAA,GAAgC,EAC9B;EAAA,IAXAa,SAAS,QAATA,SAAS;AACTiE,IAAAA,KAAK,QAALA,KAAK;AACLf,IAAAA,KAAK,QAALA,KAAK;AACL0F,IAAAA,QAAQ,QAARA,QAAQ;AACRnF,IAAAA,QAAQ,QAARA,QAAQ;AACRD,IAAAA,OAAO,QAAPA,OAAO;AACPgC,IAAAA,qBAAqB,QAArBA,qBAAqB;AAAA,IAAA,YAAA,GAAA,IAAA,CACrBsH,OAAO;AAAPA,IAAAA,OAAO,6BAAGhN,wCAACiN,cAAQ,EAAA;AAACC,MAAAA,MAAM,EAAA,IAAA;AAAA,KAAA,CAAG,GAAA,YAAA;IAC1B3I,IAAI,GAAA,6BAAA,CAAA,IAAA,EAAAC,WAAA,CAAA,CAAA;AAIT,EAAA,IAAM2I,kBAAkB,GAAGlI,iBAAW,CAAC,sBAAsB,CAAC,CAAA;AAC9D,EAAA,OACEjF,yBAAC,CAAAC,aAAA,CAAAsF,oBAAe,EACd;AAAApB,IAAAA,KAAK,EAAEA,KAAK;AACZjE,IAAAA,SAAS,EAAEA,SAAS;AACpB8M,IAAAA,OAAO,EAAEA,OAAO;AAChB5J,IAAAA,KAAK,EAAEA,KAAK;AACZO,IAAAA,QAAQ,EAAEA,QAAQ;AAClBD,IAAAA,OAAO,EAAEA,OAAO;AAChB8B,IAAAA,OAAO,EAAE2H,kBAAkB;AAC3BzH,IAAAA,qBAAqB,EAAEA,qBAAqB;AAC5C0H,IAAAA,QAAQ,EAAA,IAAA;AAAA,GAAA,EAERpN,yBAAC,CAAAC,aAAA,CAAAoN,oBAAoB,EAAA,QAAA,CAAA;AACnBvE,IAAAA,QAAQ,EAAEA,QAAQ;AACD,IAAA,iBAAA,EAAAqE,kBAAkB;AACnC9N,IAAAA,GAAG,EAAEA,GAAG;AACRqE,IAAAA,OAAO,EAAEA,OAAAA;GACLa,EAAAA,IAAI,EACR,CACc,CAAA;AAEtB,CAAC,EACF;AAUD,IAAM8I,oBAAoB,gBAAGrN,yBAAK,CAACkD,UAAU,CAG3C,UAAA,KAAA,EAAwC7D,GAAG,EAAI;EAAA,IAA5CyJ,QAAQ,SAARA,QAAQ;AAAEpF,IAAAA,OAAO,SAAPA,OAAO;AAAEhC,IAAAA,KAAK,SAALA,KAAK;IAAK6C,IAAI,GAAA,6BAAA,CAAA,KAAA,EAAA+I,YAAA,CAAA,CAAA;EACpC,IAAMC,cAAc,GAAGC,eAAU,EAAE,CAAA;AACnC,EAAA,IAAMC,cAAc,GAAG/J,OAAO,IAAI6J,cAAc,CAAA;AAChD,EAAA,IAAA,qBAAA,GACEG,yBAAoB,EAAE;AADNC,IAAAA,kBAAkB,yBAA5BP,QAAQ;AAAiCQ,IAAAA,SAAS,yBAApBC,SAAS,CAAA;AAG/CC,EAAAA,gBAAU,CAAC,YAAK;AACdF,IAAAA,SAAS,IAAI,CAACD,kBAAkB,IAAIC,SAAS,CAAC,IAAI,CAAC,CAAA;AACrD,GAAC,CAAC,CAAA;EAEF5N,yBAAK,CAAC+N,SAAS,CAAC,YAAK;AACnB,IAAA,IAAIrM,KAAK,EAAE;AACTkM,MAAAA,SAAS,IAAI,CAACD,kBAAkB,IAAIC,SAAS,CAAC,IAAI,CAAC,CAAA;AACpD,KAAA,MAAM;AACLA,MAAAA,SAAS,IAAID,kBAAkB,IAAIC,SAAS,CAAC,KAAK,CAAC,CAAA;AACpD,KAAA;GACF,EAAE,CAAClM,KAAK,EAAEkM,SAAS,EAAED,kBAAkB,CAAC,CAAC,CAAA;AAE1C,EAAA,IAAMK,YAAY,GAAG,SAAfA,YAAY,CAAIC,KAAU,EAAI;AAClC,IAAA,IAAIb,aAAQ,CAACa,KAAK,CAACC,MAAM,CAAC,EAAE;AAC1BN,MAAAA,SAAS,IAAI,CAACD,kBAAkB,IAAIC,SAAS,CAAC,IAAI,CAAC,CAAA;AACpD,KAAA,MAAM;AACLA,MAAAA,SAAS,IAAID,kBAAkB,IAAIC,SAAS,CAAC,KAAK,CAAC,CAAA;AACpD,KAAA;AACD,IAAA,IAAI9E,QAAQ,EAAE;MACZA,QAAQ,CAACmF,KAAK,CAAC,CAAA;AAChB,KAAA;GACF,CAAA;AACD,EAAA,OACEjO,yBAAA,CAAAC,aAAA,CAAA,OAAA,EAAA,QAAA,CAAA;AACEZ,IAAAA,GAAG,EAAEA,GAAG;IAAA,cAAA,EACMoO,cAAc,KAAK,OAAO;AACxCU,IAAAA,IAAI,EAAC,MAAM;AACXjO,IAAAA,SAAS,EAAC,yCAAyC;AACnD4I,IAAAA,QAAQ,EAAEkF,YAAY;AACtBtM,IAAAA,KAAK,EAAEA,KAAAA;AAAK,GAAA,EACR6C,IAAI,CACR,CAAA,CAAA;AAEN,CAAC,CAAC;;AC9GK,IAAM6J,qBAAqB,GAAyC,SAA9DA,qBAAqB,CAK7B,IAAA,EAAA;EAAA,IAJHC,SAAS,QAATA,SAAS;AACTnH,IAAAA,OAAO,QAAPA,OAAO;AACPzD,IAAAA,QAAQ,QAARA,QAAQ;AACM6K,IAAAA,SAAS,QAAvB,YAAY,CAAA,CAAA;AAEZ,EAAA,OACEtO,yBAAC,CAAAC,aAAA,CAAAoG,mBAAU,EACT;AAAAnG,IAAAA,SAAS,EAAEC,8BAAU,CACnB,6BAA6B,EAAA,+BAAA,GACGkO,SAAS,EACzC;AAAE,MAAA,uCAAuC,EAAE5K,QAAAA;AAAU,KAAA,CACtD;AACD0K,IAAAA,IAAI,EAAC,QAAQ;IACb9N,QAAQ,EAAE,CAAC,CAAC;AACZ6G,IAAAA,OAAO,EAAEA,OAAO;AACJ,IAAA,YAAA,EAAAoH,SAAS;AACrB7K,IAAAA,QAAQ,EAAEA,QAAAA;GAET,EAAA4K,SAAS,KAAK,MAAM,GAAGrO,yBAAA,CAAAC,aAAA,CAACqJ,mBAAa,EAAA,IAAA,CAAG,GAAGtJ,yBAAA,CAAAC,aAAA,CAACuJ,oBAAc,EAAA,IAAA,CAAG,CACnD,CAAA;AAEjB,CAAC;;;ACuBM,IAAM+E,UAAU,gBAAGvO,yBAAK,CAACkD,UAAU,CACxC,UAkBE7D,IAAAA,EAAAA,GAAG,EACD;EAAA,IAjBAmP,YAAY,QAAZA,YAAY;AACZ1F,IAAAA,QAAQ,QAARA,QAAQ;AACRrF,IAAAA,QAAQ,QAARA,QAAQ;AACRvD,IAAAA,SAAS,QAATA,SAAS;AACTiE,IAAAA,KAAK,QAALA,KAAK;AACLf,IAAAA,KAAK,QAALA,KAAK;AACLU,IAAAA,YAAY,QAAZA,YAAY;AACZH,IAAAA,QAAQ,QAARA,QAAQ;AACRD,IAAAA,OAAO,QAAPA,OAAO;AACCL,IAAAA,YAAY,QAApBP,MAAM;AACNQ,IAAAA,YAAY,QAAZA,YAAY;AAAA,IAAA,qBAAA,GAAA,IAAA,CACZmL,8BAA8B;AAA9BA,IAAAA,8BAA8B,sCAAG,EAAE,GAAA,qBAAA;AAAA,IAAA,qBAAA,GAAA,IAAA,CACnCC,wBAAwB;AAAxBA,IAAAA,wBAAwB,qDAAgBD,8BAA8B,GAAA,WAAA,GAAA,qBAAA;AAAA,IAAA,qBAAA,GAAA,IAAA,CACtEE,yBAAyB;AAAzBA,IAAAA,yBAAyB,oDAAeF,8BAA8B,GAAA,WAAA,GAAA,qBAAA;IACnElK,IAAI,GAAA,6BAAA,CAAA,IAAA,EAAAC,WAAA,CAAA,CAAA;AAIT,EAAA,IAAA,UAAA,GAAiBC,cAAS,EAAE;AAAtB3B,IAAAA,MAAM,cAANA,MAAM,CAAA;AACZ,EAAA,IAAIO,YAAY,EAAEP,MAAM,GAAGO,YAAY,CAAA;EAEvC,IAAMjE,KAAK,GAAGwP,8BAAiB,CAAA,QAAA,CAAA;AAC7B9F,IAAAA,QAAQ,EAARA,QAAQ;AACR1F,IAAAA,KAAK,EAAEA,KAAK;AACZN,IAAAA,MAAM,EAANA,MAAM;AACNpB,IAAAA,KAAK,EAAE8M,YAAY,KAAK,IAAI,GAAG7J,SAAS,GAAG6J,YAAY;IACvD5J,YAAY,EAAE,CAACtB,YAAY;AAC3BhD,IAAAA,UAAU,EAAEmD,QAAAA;AAAQ,GAAA,EACjBc,IAAI,CACP,CAAA,CAAA;AACF,EAAA,IAAMsK,YAAY,GAAGvP,YAAM,CAAC,IAAI,CAAC,CAAA;EACjC,IAAmCwP,aAAAA,GAAAA,uBAAY,cACxCvK,IAAI,EAAA;AAAEnB,MAAAA,KAAK,EAAEA,KAAAA;KAClBhE,CAAAA,EAAAA,KAAK,EACLyP,YAAY,CACb;AAJOxK,IAAAA,UAAU,iBAAVA,UAAU;AAAEU,IAAAA,UAAU,iBAAVA,UAAU,CAAA;AAK9B,EAAA,IAAMC,EAAE,GAAGC,iBAAW,CAAC,YAAY,CAAC,CAAA;AAEpC,EAAA,IAAM8J,wBAAwB,GAAG,SAA3BA,wBAAwB,CAAIC,OAAe,EAAI;AACnD,IAAA,IAAIC,sBAAsB,EAAE;AAC1BC,MAAAA,+BAA+B,EAAE,CAAA;AAClC,KAAA,MAAM;MACLC,wBAAwB,CAACH,OAAO,CAAC,CAAA;AAClC,KAAA;GACF,CAAA;EAED,IAAMC,sBAAsB,GAAG7P,KAAK,CAACM,QAAQ,CAACC,IAAI,CAChD,UAAAR,OAAO,EAAA;AAAA,IAAA,OAAIA,OAAO,CAACS,IAAI,KAAK,IAAI,CAAA;GACjC,CAAA,CAAA;AAED,EAAA,IAAMsP,+BAA+B,GAAG,SAAlCA,+BAA+B,GAAQ;AAC3C,IAAA,IAAME,WAAW,GAAGnI,QAAG,CAAC5E,qBAAgB,EAAE,CAAC,CAAA;AAC3C,IAAA,IAAMgN,aAAa,GACjBC,IAAI,CAACC,KAAK,CAACH,WAAW,CAACnN,MAAM,GAAGwM,8BAA8B,CAAC,GAC/DA,8BAA8B,CAAA;AAChC,IAAA,IAAMe,OAAO,GAAGJ,WAAW,CAACK,GAAG,CAAC;AAAExN,MAAAA,MAAM,EAAEoN,aAAAA;AAAe,KAAA,CAAC,CAAA;IAC1DvG,QAAQ,CAAC0G,OAAO,CAAC,CAAA;GAClB,CAAA;AAED,EAAA,IAAML,wBAAwB,GAAG,SAA3BA,wBAAwB,CAAIH,OAAe,EAAI;AAAA,IAAA,IAAA,YAAA,CAAA;AACnD5P,IAAAA,KAAK,CAACsC,KAAK,IACTtC,KAAK,CAACsQ,QAAQ,CACZtQ,CAAAA,YAAAA,GAAAA,KAAK,CAACsC,KAAK,KAAX,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAaiO,GAAG,CAAC;AACfX,MAAAA,OAAO,EAAEA,OAAAA;AACV,KAAA,CAAC,CACH,CAAA;GACJ,CAAA;AAED,EAAA,OACEhP,yBAAC,CAAAC,aAAA,CAAAqF,iBAAY,EAAC;AAAAxC,IAAAA,MAAM,EAAEA,MAAAA;AAAM,GAAA,EAC1B9C,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAEC,8BAAU,CAACD,SAAS,EAAE,yBAAyB,CAAA;AAAC,GAAA,EAC9DF,yBAAC,CAAAC,aAAA,CAAAmO,qBAAqB,EACpB;AAAAC,IAAAA,SAAS,EAAC,MAAM;AAChB5K,IAAAA,QAAQ,EAAEA,QAAQ;AAAA,IAAA,YAAA,EACNiL,wBAAwB;AACpCxH,IAAAA,OAAO,EAAE,SAAA,OAAA,GAAA;AAAA,MAAA,OACP6H,wBAAwB,CAACN,8BAA8B,GAAG,CAAC,CAAC,CAAC,CAAA;AAAA,KAAA;AAE/D,GAAA,CAAA,EACFzO,yBAAA,CAAAC,aAAA,CAACsF,oBAAe,EAAA,QAAA,CAAA;AACdpB,IAAAA,KAAK,EAAEA,KAAK;AACZjE,IAAAA,SAAS,EAAE,gBAAgB;AAC3BsF,IAAAA,OAAO,EAAER,EAAE;AACX5B,IAAAA,KAAK,EAAEA,KAAK;IACZiB,UAAU,EAAA,QAAA,CAAA,EAAA,EAAOA,UAAU,CAAE;AAC7BhF,IAAAA,GAAG,EAAEoG,eAAS,CAACoJ,YAAY,EAAExP,GAAG,CAAC;AACjCoE,IAAAA,QAAQ,EAAEA,QAAQ;AAClBiC,IAAAA,qBAAqB;AACrB5B,IAAAA,YAAY,EAAEA,YAAAA;AAAY,GAAA,EACtBiB,UAAU,EAAA;AACdrB,IAAAA,OAAO,EAAEA,OAAO;AAChBC,IAAAA,QAAQ,EAAEA,QAAAA;GAETvE,CAAAA,EAAAA,KAAK,CAACM,QAAQ,CAACmG,GAAG,CAAC,UAAC1G,OAAO,EAAE2G,CAAC,EAAA;AAAA,IAAA,OAC7B9F,yBAAA,CAAAC,aAAA,CAACf,YAAY,EAAC;AAAAC,MAAAA,OAAO,EAAEA,OAAO;AAAEC,MAAAA,KAAK,EAAEA,KAAK;AAAE2G,MAAAA,GAAG,EAAED,CAAAA;AAAK,KAAA,CAAA,CAAA;GACzD,CAAC,CACc,EAClB9F,yBAAC,CAAAC,aAAA,CAAAmO,qBAAqB,EACpB;AAAAC,IAAAA,SAAS,EAAC,OAAO;AACjB5K,IAAAA,QAAQ,EAAEA,QAAQ;AAAA,IAAA,YAAA,EACNkL,yBAAyB;AACrCzH,IAAAA,OAAO,EAAE,SAAA,OAAA,GAAA;MAAA,OACP6H,wBAAwB,CAACN,8BAA8B,CAAC,CAAA;AAAA,KAAA;GAE1D,CAAA,CACE,CACO,CAAA;AAEnB,CAAC;;;;AC/II,IAAMmB,gBAAgB,gBAAG5P,yBAAK,CAACkD,UAAU,CAI9C,UAEE7D,IAAAA,EAAAA,GAAgC,EAC9B;EAAA,IAFAa,SAAS,QAATA,SAAS;AAAEiE,IAAAA,KAAK,QAALA,KAAK;AAAE2E,IAAAA,QAAQ,QAARA,QAAQ;AAAE1F,IAAAA,KAAK,QAALA,KAAK;AAAEO,IAAAA,QAAQ,QAARA,QAAQ;AAAED,IAAAA,OAAO,QAAPA,OAAO;AAAEsJ,IAAAA,OAAO,QAAPA,OAAO;IAAKzI,IAAI,GAAA,6BAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AAGxE,EAAA,IAAMsL,kBAAkB,GAAG5K,iBAAW,CAAC,uBAAuB,CAAC,CAAA;AAC/D,EAAA,OACEjF,yBAAC,CAAAC,aAAA,CAAAsF,oBAAe,EACd;AAAApB,IAAAA,KAAK,EAAEA,KAAK;AACZjE,IAAAA,SAAS,EAAEC,8BAAU,CAACD,SAAS,EAAE,uBAAuB,CAAC;AACzD8M,IAAAA,OAAO,EAAEA,OAAO;AAChB5J,IAAAA,KAAK,EAAEA,KAAK;AACZO,IAAAA,QAAQ,EAAEA,QAAQ;AAClBD,IAAAA,OAAO,EAAEA,OAAO;AAChB8B,IAAAA,OAAO,EAAEqK,kBAAkB;AAC3BnK,IAAAA,qBAAqB,EAAA,IAAA;AAAA,GAAA,EAErB1F,yBAAA,CAAAC,aAAA,CAAC6P,oBAAoB,EAAA,QAAA,CAAA;AACnBhH,IAAAA,QAAQ,EAAEA,QAAQ;uBACD+G,kBAAkB;AACnCxQ,IAAAA,GAAG,EAAEA,GAAAA;GACDkF,EAAAA,IAAI,EACR,CACc,CAAA;AAEtB,CAAC,EACF;AASD,IAAMuL,oBAAoB,gBAAG9P,yBAAK,CAACkD,UAAU,CAG3C,UAAA,KAAA,EAA+B7D,GAAG,EAAI;EAAA,IAAnCyJ,QAAQ,SAARA,QAAQ;AAAEpH,IAAAA,KAAK,SAALA,KAAK;IAAK6C,IAAI,GAAA,6BAAA,CAAA,KAAA,EAAA,UAAA,CAAA,CAAA;EAC3B,IAAMgJ,cAAc,GAAGC,eAAU,EAAE,CAAA;AACnC,EAAA,IAAMC,cAAc,GAAGlJ,IAAI,CAACb,OAAO,IAAI6J,cAAc,CAAA;AACrD,EAAA,IAAA,qBAAA,GACEG,yBAAoB,EAAE;AADNqC,IAAAA,kBAAkB,yBAA5B3C,QAAQ;AAAiCQ,IAAAA,SAAS,yBAApBC,SAAS,CAAA;AAG/CC,EAAAA,gBAAU,CAAC,YAAK;AACdF,IAAAA,SAAS,IAAI,CAACmC,kBAAkB,IAAInC,SAAS,CAAC,IAAI,CAAC,CAAA;AACrD,GAAC,CAAC,CAAA;EAEF5N,yBAAK,CAAC+N,SAAS,CAAC,YAAK;AACnB,IAAA,IAAIrM,KAAK,EAAE;AACTkM,MAAAA,SAAS,IAAI,CAACmC,kBAAkB,IAAInC,SAAS,CAAC,IAAI,CAAC,CAAA;AACpD,KAAA,MAAM;AACLA,MAAAA,SAAS,IAAImC,kBAAkB,IAAInC,SAAS,CAAC,KAAK,CAAC,CAAA;AACpD,KAAA;GACF,EAAE,CAAClM,KAAK,EAAEkM,SAAS,EAAEmC,kBAAkB,CAAC,CAAC,CAAA;AAE1C,EAAA,IAAM/B,YAAY,GAAG,SAAfA,YAAY,CAAIC,KAAU,EAAI;AAClC,IAAA,IAAIb,aAAQ,CAACa,KAAK,CAACC,MAAM,CAAC,EAAE;AAC1BN,MAAAA,SAAS,IAAI,CAACmC,kBAAkB,IAAInC,SAAS,CAAC,IAAI,CAAC,CAAA;AACpD,KAAA,MAAM;AACLA,MAAAA,SAAS,IAAImC,kBAAkB,IAAInC,SAAS,CAAC,KAAK,CAAC,CAAA;AACpD,KAAA;AACD,IAAA,IAAI9E,QAAQ,EAAE;MACZA,QAAQ,CAACmF,KAAK,CAAC,CAAA;AAChB,KAAA;GACF,CAAA;AACD,EAAA,OACEjO,yBAAA,CAAAC,aAAA,CAAA,OAAA,EAAA,QAAA,CAAA;AACEZ,IAAAA,GAAG,EAAEA,GAAG;IAAA,cAAA,EACMoO,cAAc,KAAK,OAAO;AACxCU,IAAAA,IAAI,EAAC,MAAM;AACXjO,IAAAA,SAAS,EAAC,kBAAkB;AAC5B4I,IAAAA,QAAQ,EAAEkF,YAAY;AACtBtM,IAAAA,KAAK,EAAEA,KAAAA;AAAK,GAAA,EACR6C,IAAI,CACR,CAAA,CAAA;AAEN,CAAC,CAAC;;ACvGFyL,4BAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC;;;;;;;;;;;;;"}
|
|
@@ -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||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){if(void 0===e&&(e="gregory"),"gregory"===e)return new o.GregorianCalendar;throw new Error("Unsupported calendar "+e)},T=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"],x=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,T=r.validationFeedback,x=void 0===T?"Ugyldig dato":T,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:E,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,z=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:z,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})}))))})),N=["children","className","style"],F=function(e){var t=e.children,l=e.className,n=e.style,r=w(e,N),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)},I=["state","date","onSelectedCellClick"],S=function(e){var t,l=e.state,n=e.date,r=e.onSelectedCellClick,i=void 0===r?function(){}:r,s=w(e,I),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))},A=["state","navigationDescription","onSelectedCellClick"],O=function(a){var t=a.state,l=a.navigationDescription,r=a.onSelectedCellClick,i=void 0===r?function(){}:r,s=w(a,A),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(S,{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"],R=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,L),p=n.useLocale().locale,b=s.useCalendarState(y({},m,{onChange:l,locale:null!=r?r:p,createCalendar:E})),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(F,y({},g,{"aria-label":T("Forrige måned",p,g)}),h.default.createElement(u.LeftArrowIcon,{size:20})),h.default.createElement("h2",null,C),h.default.createElement(F,y({},k,{"aria-label":T("Neste måned",p,k)}),h.default.createElement(u.RightArrowIcon,{size:20}))),h.default.createElement(O,{state:b,navigationDescription:o,onSelectedCellClick:f})))})),M=["selectedDate","onChange","locale","disabled","showTime","showTimeZone","className","style","variant","feedback","validationVariant","validationFeedback","disableModal","labelTooltip","navigationDescription","minDate","maxDate","modalTreshold"],q=["className","style","label","onChange","feedback","variant","disableLabelAnimation","prepend"],V=["onChange","variant","value"],B=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,q),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(Z,y({onChange:o,"aria-labelledby":b,ref:t,variant:s},p)))})),Z=h.default.forwardRef((function(a,t){var l=a.onChange,n=a.variant,r=a.value,o=w(a,V),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))})),W=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"],j=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,P=r.leftArrowButtonAriaLabel,x=void 0===P?"Trekk fra "+T+" minutter":P,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():j(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)},j=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(W,{direction:"left",disabled:c,"aria-label":x,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(W,{direction:"right",disabled:c,"aria-label":F,onClick:function(){return V(T)}})))})),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=w(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=w(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=R,exports.DateField=x,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,P=r.disableModal,N=void 0!==P&&P,I=r.labelTooltip,S=r.navigationDescription,A=r.minDate,O=r.maxDate,L=r.modalTreshold,q=void 0===L?1e3:L,V=w(r,M),B=q,Z=a.useRef(null),W=a.useRef(null),z=a.useRef(null),j=e.useWindowDimensions().width,H=t.useDatePickerState(y({},V,{minValue:A,maxValue:O,value:i,onChange:o})),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)}))}}),ie=j<=B&&!N,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(R,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(R,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(x,y({},Y,{selectedDate:H.value,label:V.label,labelProps:K,showTime:c,showTimeZone:m,ref:z,variant:k,feedback:D,validationVariant:E,validationFeedback:T,labelTooltip:I,className:C.default("eds-datepicker__datefield",{"eds-datepicker__datefield--disabled":Y.isDisabled})})),!Y.isDisabled&&h.default.createElement(F,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=B,exports.NativeTimePicker=G,exports.TimePicker=j,exports.ariaLabelIfNorwegian=T,exports.createCalendar=E,exports.nativeDateToTimeOrDateValue=function(e,a,t,l,n){return void 0===a&&(a=!1),void 0===t&&(t=!1),l?n?new o.ZonedDateTime(e.getFullYear(),e.getMonth()+1,e.getDate(),l,n,e.getHours(),e.getMinutes(),e.getSeconds()):o.parseAbsolute(e.toISOString(),l):a?new o.Time(e.getHours(),e.getMinutes(),e.getSeconds(),0):t?new o.CalendarDate(e.getFullYear(),e.getMonth()+1,e.getDate()):new o.CalendarDateTime(e.getFullYear(),e.getMonth()+1,e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())},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 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){if(void 0===e&&(e="gregory"),"gregory"===e)return new o.GregorianCalendar;throw new Error("Unsupported calendar "+e)},T=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"],x=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,T=r.validationFeedback,x=void 0===T?"Ugyldig dato":T,N=r.labelTooltip,F=r.minDate,I=r.maxDate,S=r.style,O=r.className,A=r.labelProps,L=r.append,R=w(r,P),M=n.useLocale(),q=t.useDateFieldState(y({},R,{locale:null!=u?u:M.locale,createCalendar:E,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",O),labelId:j,ref:e.mergeRefs(V,o),disabled:q.isDisabled,disableLabelAnimation:!0,label:s,labelTooltip:N,labelProps:null!=A?A: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})}))))})),N=["children","className","style"],F=function(e){var t=e.children,l=e.className,n=e.style,r=w(e,N),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)},I=["state","date","onSelectedCellClick"],S=function(e){var t,l=e.state,n=e.date,r=e.onSelectedCellClick,i=void 0===r?function(){}:r,s=w(e,I),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"],A=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(S,{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"],R=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,L),p=n.useLocale().locale,b=s.useCalendarState(y({},m,{onChange:l,locale:null!=r?r:p,createCalendar:E})),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(F,y({},g,{"aria-label":T("Forrige måned",p,g)}),h.default.createElement(u.LeftArrowIcon,{size:20})),h.default.createElement("h2",null,C),h.default.createElement(F,y({},k,{"aria-label":T("Neste måned",p,k)}),h.default.createElement(u.RightArrowIcon,{size:20}))),h.default.createElement(A,{state:b,navigationDescription:o,onSelectedCellClick:f})))})),M=["selectedDate","onChange","locale","disabled","showTime","showTimeZone","className","style","variant","feedback","validationVariant","validationFeedback","disableModal","labelTooltip","navigationDescription","minDate","maxDate","modalTreshold"],q=["className","style","label","onChange","feedback","variant","disableLabelAnimation","prepend"],V=["onChange","variant","value"],B=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,q),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(Z,y({onChange:o,"aria-labelledby":b,ref:t,variant:s},p)))})),Z=h.default.forwardRef((function(a,t){var l=a.onChange,n=a.variant,r=a.value,o=w(a,V),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))})),W=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))},j=["selectedTime","onChange","disabled","className","style","label","labelTooltip","feedback","variant","locale","showTimeZone","minuteIncrementForArrowButtons","leftArrowButtonAriaLabel","rightArrowButtonAriaLabel"],z=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,P=r.leftArrowButtonAriaLabel,x=void 0===P?"Trekk fra "+T+" minutter":P,N=r.rightArrowButtonAriaLabel,F=void 0===N?"Legg til "+T+" minutter":N,I=w(r,j),S=n.useLocale().locale;k&&(S=k);var O=t.useTimeFieldState(y({onChange:u,label:p,locale:S,value:null===s?void 0:s,hideTimeZone:!_,isDisabled:c},I)),A=a.useRef(null),L=l.useTimeField(y({},I,{label:p}),O,A),R=L.labelProps,M=L.fieldProps,q=e.useRandomId("timepicker"),V=function(e){B?Z():z(e)},B=O.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)},z=function(e){var a;O.value&&O.setValue(null==(a=O.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(W,{direction:"left",disabled:c,"aria-label":x,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(A,d),disabled:c,disableLabelAnimation:!0,labelTooltip:b},M,{variant:g,feedback:v}),O.segments.map((function(e,a){return h.default.createElement(D,{segment:e,state:O,key:a})}))),h.default.createElement(W,{direction:"right",disabled:c,"aria-label":F,onClick:function(){return V(T)}})))})),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=w(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=w(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=R,exports.DateField=x,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,P=r.disableModal,N=void 0!==P&&P,I=r.labelTooltip,S=r.navigationDescription,O=r.minDate,A=r.maxDate,L=r.modalTreshold,q=void 0===L?1e3:L,V=w(r,M),B=q,Z=a.useRef(null),W=a.useRef(null),j=a.useRef(null),z=e.useWindowDimensions().width,H=t.useDatePickerState(y({},V,{minValue:O,maxValue:A,value:i,onChange:o})),U=l.useDatePicker(y({isDisabled:s,minValue:O,maxValue:A},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)}))}}),ie=z<=B&&!N,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(R,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(R,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(x,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:I,className:C.default("eds-datepicker__datefield",{"eds-datepicker__datefield--disabled":Y.isDisabled})})),!Y.isDisabled&&h.default.createElement(F,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=B,exports.NativeTimePicker=G,exports.TimePicker=z,exports.ariaLabelIfNorwegian=T,exports.createCalendar=E,exports.nativeDateToTimeOrDateValue=function(e,a,t,l,n){return void 0===a&&(a=!1),void 0===t&&(t=!1),l?n?new o.ZonedDateTime(e.getFullYear(),e.getMonth()+1,e.getDate(),l,n,e.getHours(),e.getMinutes(),e.getSeconds()):o.parseAbsolute(e.toISOString(),l):a?new o.Time(e.getHours(),e.getMinutes(),e.getSeconds(),0):t?new o.CalendarDate(e.getFullYear(),e.getMonth()+1,e.getDate()):new o.CalendarDateTime(e.getFullYear(),e.getMonth()+1,e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())},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
|