@entur/datepicker 8.0.11 → 8.1.0-beta.1
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/dist/TimePicker/SimpleTimePicker.d.ts +37 -0
- package/dist/TimePicker/index.d.ts +1 -0
- package/dist/datepicker.cjs.development.js +207 -23
- 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 +211 -28
- package/dist/datepicker.esm.js.map +1 -1
- package/dist/styles.css +93 -42
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.cjs.development.js","sources":["../src/shared/FieldSegment.tsx","../src/shared/utils.ts","../src/DatePicker/DateField.tsx","../src/shared/CalendarButton.tsx","../src/DatePicker/CalendarCell.tsx","../src/DatePicker/CalendarGrid.tsx","../src/DatePicker/Calendar.tsx","../src/DatePicker/DatePicker.tsx","../src/DatePicker/NativeDatePicker.tsx","../src/TimePicker/TimePickerArrowButton.tsx","../src/TimePicker/TimePicker.tsx","../src/TimePicker/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport { useDateSegment } from '@react-aria/datepicker';\nimport { DateSegment, DateFieldState } from '@react-stately/datepicker';\n\nimport './FieldSegment.scss';\n\ntype TimeSegmentProps = {\n segment: DateSegment;\n state: DateFieldState;\n};\n\nexport const FieldSegment = ({ segment, state }: TimeSegmentProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const { segmentProps } = useDateSegment(segment, state, ref);\n\n const is12HourFormatted = state.segments.some(\n segment => segment.text === 'AM' || segment.text === 'PM',\n );\n\n const segmentDisplayText = () => {\n if (is12HourFormatted) return segment.text;\n // if number add '0' padding to start when one digit\n if (segment.text.match(/\\d+/)) return segment.text.padStart(2, '0');\n return segment.text;\n };\n\n return (\n <div\n {...segmentProps}\n ref={ref}\n className={classNames('eds-date-and-time-field__segment', {\n 'eds-date-and-time-field__segment--placeholder': segment.isPlaceholder,\n 'eds-date-and-time-field__segment--dot-separator': segment.text === '.',\n })}\n tabIndex={state.isDisabled ? -1 : segmentProps.tabIndex}\n >\n {segmentDisplayText()}\n </div>\n );\n};\n","import {\n ZonedDateTime,\n CalendarDateTime,\n Time,\n parseAbsolute,\n DateValue,\n getLocalTimeZone,\n CalendarDate,\n} from '@internationalized/date';\nimport { TimeValue } from '@react-types/datepicker';\nimport { Calendar, GregorianCalendar } from '@internationalized/date';\n\nconst nativeDateToDateTime = (\n date: Date,\n timeZone?: string,\n offset?: number,\n) => {\n if (timeZone) {\n if (offset) {\n return new ZonedDateTime(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n timeZone,\n offset,\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n );\n }\n return parseAbsolute(date.toISOString(), timeZone);\n }\n return new CalendarDateTime(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n );\n};\n\n/**\n * Tar inn et JS Date-objekt og returnerer et av DateValue-objektene fra @internationalized/date-pakken\n * @param {Date} date JS Date-objekt som ønskes konvertert til et DateValue-objekt\n * @param {boolean} noTimeOnlyDate Hvis tidspunktet er irrelevant kan denne settes til true, da får man et CalendarDate-objekt uten tidspunkt tilbake\n * @param {string} timeZone Tidssonen på IANA-formatet som tidpunktet skal konverteres til. Utelates denne får man et tidspunkt uten tidssone. Kan brukes med og uten en UTC-offset Vær obs på annen oppførsel med offset, les mer på beskrivelsen av offset\n * @param {number} offset UTC-offset i millisekunder, må brukes med en tidssone. Ved å legge på en offset lager du en variant av en tidssone. Det betyr at tidspunktet ikke endres (time, minutt, sekund uendret), men tidssonen, med tilhørende offset, tidspunktet er i endres.\n * @returns {CalendarDateTime | ZonedDateTime | CalendarDate} et av DateValue-objektene med verdier fra date\n */\nexport const nativeDateToDateValue = (\n date: Date,\n noTimeOnlyDate = false,\n timeZone?: string,\n offset?: number,\n) => {\n if (noTimeOnlyDate)\n return new CalendarDate(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n );\n\n return nativeDateToDateTime(date, timeZone, offset);\n};\n\n/**\n * Tar inn et JS Date-objekt og returnerer et av TimeValue-objektene fra @internationalized/date-pakken\n * @param {Date} date JS Date-objekt som ønskes konvertert til et TimeValue-objekt\n * @param {boolean} noDateOnlyTime Hvis datoen er irrelevant kan denne settes til true, da får man et Time-objekt uten dato tilbake\n * @param {string} timeZone Tidssonen på IANA-formatet som tidpunktet skal konverteres til. Utelates denne får man et tidspunkt uten tidssone. Kan brukes med og uten en UTC-offset Vær obs på annen oppførsel med offset, les mer på beskrivelsen av offset\n * @param {number} offset UTC-offset i millisekunder, må brukes med en tidssone. Ved å legge på en offset lager du en variant av en tidssone. Det betyr at tidspunktet ikke endres (time, minutt, sekund uendret), men tidssonen, med tilhørende offset, tidspunktet er i endres.\n * @returns {Time | CalendarDateTime | ZonedDateTime} et av TimeValue-objektene med verdier fra date\n */\nexport const nativeDateToTimeValue = (\n date: Date,\n noDateOnlyTime = false,\n timeZone?: string,\n offset?: number,\n) => {\n if (noDateOnlyTime)\n return new Time(date.getHours(), date.getMinutes(), date.getSeconds(), 0);\n\n return nativeDateToDateTime(date, timeZone, offset);\n};\n\n/**\n * Tar inn et av Date- eller TimeValue-objektene fra @internationalized/date-pakken og returnerer et JS Date-objekt\n * @param {DateValue | TimeValue} value En dato eller et tidspunkt på Date- eller TimeValue-formatet som ønskes konvertert til et JS Date-objekt\n * @param {string} timeZoneForCalendarDateTime Tidssonen value er i. Fungerer kun med typen er CalendarDateTime\n * @returns {Date} et Date-objekt med verdier fra time\n */\n// This function uses a lot of @ts-expect-error to make it work with all Date- and TimeValue types. Sorry ...\nexport const timeOrDateValueToNativeDate = (\n value: TimeValue | DateValue,\n timeZoneForCalendarDateTime?: string,\n): Date => {\n // @ts-expect-error .day does not exist on Time-object\n if (!value.day) {\n // type is Time\n const date = new Date();\n // @ts-expect-error hour does not exist on CalendarDate\n date.setHours(value.hour);\n // @ts-expect-error minute does not exist on CalendarDate\n date.setMinutes(value.minute);\n // @ts-expect-error second does not exist on CalendarDate\n date.setSeconds(value.second);\n return date;\n }\n\n // @ts-expect-error .day does not exist on Time-object\n if (!value.hour) {\n // type is CalendarDate\n // @ts-expect-error .toDate(timeZone) does not exist in type Time\n return value.toDate(timeZoneForCalendarDateTime ?? getLocalTimeZone());\n }\n\n // @ts-expect-error .timeZone does not exist in type Time and CalendarDateTime\n if (!value.timeZone) {\n // type is CalendarDateTime\n if (timeZoneForCalendarDateTime)\n // @ts-expect-error .toDate(timeZone) does not exist in type Time\n return value.toDate(timeZoneForCalendarDateTime);\n\n return new Date(\n // @ts-expect-error not in type Time\n value.year,\n // @ts-expect-error not in type Time\n value.month - 1,\n // @ts-expect-error not in type Time\n value.day,\n // @ts-expect-error not in type CalendarDate\n value.hour,\n // @ts-expect-error not in type CalendarDate\n value.minute,\n // @ts-expect-error not in type CalendarDate\n value.second,\n );\n }\n\n // @ts-expect-error .toDate() does not exist in type Time or CalendarDateTime\n return value.toDate();\n};\n\nexport const createCalendar = (identifier = 'gregory'): Calendar => {\n switch (identifier) {\n case 'gregory':\n return new GregorianCalendar();\n default:\n throw new Error(`Unsupported calendar ${identifier}`);\n }\n};\n\nexport const ariaLabelIfNorwegian = (\n norwegianAriaLabel: string,\n locale: string,\n propsCollection: any,\n) => {\n if (locale.toLowerCase() !== 'no-no') return propsCollection['aria-label'];\n return norwegianAriaLabel;\n};\n","import React, { ReactNode, useRef } from 'react';\n\nimport { useDateFieldState } from '@react-stately/datepicker';\nimport { useDateField } from '@react-aria/datepicker';\nimport { I18nProvider, useLocale } from '@react-aria/i18n';\nimport classNames from 'classnames';\n\nimport type {\n SpectrumDateFieldProps,\n DateValue,\n} from '@react-types/datepicker';\n\nimport { BaseFormControl, VariantType } from '@entur/form';\nimport { ConditionalWrapper, mergeRefs, useRandomId } from '@entur/utils';\n\nimport { FieldSegment } from '../shared/FieldSegment';\nimport { createCalendar } from '../shared/utils';\n\nimport './DateField.scss';\n\nexport type DateFieldProps = {\n /** Den valgte tiden. Tid i '@internationalized/date'-pakkens format */\n selectedDate: DateValue | null;\n /** Kalles når tiden endres. Tid i '@internationalized/date'-pakkens format */\n onChange: (value: DateValue) => void;\n /** Label til TimePicker */\n label: string;\n /** BCP47-språkkoden til locale-en du ønsker å bruke.\n * @default Brukerenhetens selvvalgte locale\n */\n locale?: string;\n /** Viser den gjeldende tidssonen hvis en er valgt\n * @default false\n */\n showTimeZone?: boolean;\n showTime?: boolean;\n /** Tidligste gyldige datovalg.\n * Eks: today(getLocalTimeZone()) == i dag i lokal tidssone */\n minDate?: DateValue;\n /** Seneste gyldige datovalg. (se minValue) */\n maxDate?: DateValue;\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Varselmelding som forteller om ugyldig dato\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om ugyldig dato\n * @default \"error\"\n */\n validationVariant?: VariantType;\n labelTooltip?: React.ReactNode;\n disabled?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n style?: React.CSSProperties;\n [key: string]: any;\n} & Omit<\n SpectrumDateFieldProps<DateValue>,\n | 'value'\n | 'onChange'\n | 'label'\n | 'hideTimeZone'\n | 'placeholder'\n | 'minValue'\n | 'maxValue'\n>;\n\nexport const DateField = React.forwardRef<HTMLDivElement, DateFieldProps>(\n (\n {\n selectedDate: value,\n label,\n locale: customLocale,\n showTimeZone,\n showTime,\n granularity = 'day',\n disabled,\n variant,\n feedback,\n validationVariant = 'error',\n validationFeedback = 'Ugyldig dato',\n labelTooltip,\n minDate: minValue,\n maxDate: maxValue,\n style,\n className,\n labelProps: parentLabelProps,\n append,\n ...rest\n },\n ref,\n ) => {\n const { locale } = useLocale();\n\n const state = useDateFieldState({\n ...rest,\n locale: customLocale ?? locale,\n createCalendar,\n value: value === null ? undefined : value,\n hideTimeZone: !showTimeZone,\n granularity: showTime ? 'minute' : granularity,\n minValue,\n maxValue,\n });\n\n const dateFieldRef = useRef(null);\n const { labelProps, fieldProps } = useDateField(\n { ...rest, label: label, isDisabled: disabled || rest.isDisabled },\n state,\n dateFieldRef,\n );\n\n const id = useRandomId('datefield');\n\n return (\n <ConditionalWrapper\n condition={customLocale !== undefined}\n wrapper={(child: ReactNode) => (\n <I18nProvider locale={customLocale}>{child}</I18nProvider>\n )}\n >\n <BaseFormControl\n style={style}\n className={classNames('eds-datefield', className)}\n labelId={id}\n ref={mergeRefs(dateFieldRef, ref)}\n disabled={state.isDisabled}\n disableLabelAnimation\n label={label}\n labelTooltip={labelTooltip}\n labelProps={parentLabelProps ?? labelProps}\n {...fieldProps}\n variant={\n variant ?? state.validationState === 'invalid'\n ? validationVariant\n : undefined\n }\n feedback={\n feedback ?? state.validationState === 'invalid'\n ? validationFeedback\n : undefined\n }\n append={append}\n ariaAlertOnFeedback\n >\n {state.segments.map((segment, i) => (\n <FieldSegment segment={segment} state={state} key={i} />\n ))}\n </BaseFormControl>\n </ConditionalWrapper>\n );\n },\n);\n","import React, { useRef } from 'react';\n\nimport { useButton } from '@react-aria/button';\n\nimport { IconButton } from '@entur/button';\n\ntype CalendarButtonProps = {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n [key: string]: any;\n};\n\nexport const CalendarButton = ({\n children,\n className,\n style,\n ...props\n}: CalendarButtonProps) => {\n const ref = useRef(null);\n const { buttonProps } = useButton(props, ref);\n\n return (\n <IconButton {...buttonProps} ref={ref} className={className} style={style}>\n {children}\n </IconButton>\n );\n};\n","import React, { useRef } from 'react';\n\nimport { useCalendarCell } from '@react-aria/calendar';\nimport { CalendarState } from '@react-stately/calendar';\nimport {\n CalendarDate,\n getLocalTimeZone,\n isEqualDay,\n now,\n} from '@internationalized/date';\nimport classNames from 'classnames';\n\ntype CalendarCellProps = {\n state: CalendarState;\n date: CalendarDate;\n onSelectedCellClick?: () => void;\n};\n\nexport const CalendarCell = ({\n state,\n date,\n onSelectedCellClick = () => {\n return;\n },\n ...rest\n}: CalendarCellProps) => {\n const cellRef = useRef(null);\n\n const {\n cellProps,\n buttonProps,\n isSelected,\n isOutsideVisibleRange,\n isDisabled,\n isUnavailable,\n formattedDate,\n } = useCalendarCell({ date }, state, cellRef);\n return (\n <td {...cellProps} className=\"eds-datepicker__calendar__grid__cell__td\">\n <div\n {...buttonProps}\n ref={cellRef}\n hidden={isOutsideVisibleRange}\n className={classNames('eds-datepicker__calendar__grid__cell', {\n 'eds-datepicker__calendar__grid__cell--selected': isSelected,\n 'eds-datepicker__calendar__grid__cell--disabled':\n isDisabled || isUnavailable,\n 'eds-datepicker__calendar__grid__cell--outside-month':\n isOutsideVisibleRange,\n 'eds-datepicker__calendar__grid__cell--today': isEqualDay(\n date,\n now(state.timeZone ?? getLocalTimeZone()),\n ),\n })}\n {...rest}\n onClick={e => {\n buttonProps.onClick && buttonProps.onClick(e);\n isSelected && onSelectedCellClick();\n }}\n onKeyDown={e => {\n buttonProps.onKeyDown && buttonProps.onKeyDown(e);\n if (e.key === 'Enter' || e.key === ' ')\n isSelected && onSelectedCellClick();\n }}\n >\n {formattedDate}\n </div>\n </td>\n );\n};\n","import React from 'react';\n\nimport { useLocale } from '@react-aria/i18n';\nimport { useCalendarGrid } from '@react-aria/calendar';\nimport { CalendarState } from '@react-stately/calendar';\nimport { getWeeksInMonth } from '@internationalized/date';\n\nimport { useRandomId } from '@entur/utils';\nimport { VisuallyHidden } from '@entur/a11y';\n\nimport { CalendarCell } from './CalendarCell';\n\ntype CalendarGridProps = {\n state: CalendarState;\n navigationDescription?: string;\n onSelectedCellClick?: () => void;\n};\n\nexport const CalendarGrid = ({\n state,\n navigationDescription,\n onSelectedCellClick = () => {\n return;\n },\n ...rest\n}: CalendarGridProps) => {\n const calendarGridId = useRandomId('eds-calendar');\n const { locale } = useLocale();\n\n const { gridProps, headerProps, weekDays } = useCalendarGrid(rest, state);\n\n const weeksInMonth = getWeeksInMonth(state.visibleRange.start, locale);\n const weeksArray = Array.from(Array(weeksInMonth).keys());\n\n const weekDaysMapped = () => {\n if (locale.toLowerCase().includes('no'))\n return ['ma', 'ti', 'on', 'to', 'fr', 'lø', 'sø'];\n if (locale.toLowerCase().includes('en')) {\n if (weekDays[0] === 'M')\n return ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];\n if (weekDays[0] === 'S')\n return ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n }\n return weekDays.map(day => day.toLowerCase());\n };\n\n const getNavigationDescription = () => {\n if (navigationDescription) return navigationDescription;\n if (locale.toLowerCase().includes('en'))\n return 'Use the arrow keys to navigate between dates';\n return 'Bruk piltastene til å navigere mellom datoer';\n };\n\n return (\n <>\n <table\n {...gridProps}\n cellSpacing=\"0\"\n className=\"eds-datepicker__calendar__grid\"\n >\n <thead {...headerProps}>\n <tr>\n {weekDaysMapped().map((day, index) => (\n <th key={index}>{day}</th>\n ))}\n </tr>\n </thead>\n <tbody>\n {weeksArray.map(weekIndex => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex)\n .map((date, i) =>\n date ? (\n <CalendarCell\n key={i}\n state={state}\n date={date}\n aria-describedby={calendarGridId + 'description'}\n onSelectedCellClick={onSelectedCellClick}\n />\n ) : (\n <td key={i} />\n ),\n )}\n </tr>\n ))}\n </tbody>\n </table>\n <VisuallyHidden id={calendarGridId + 'description'}>\n {getNavigationDescription()}\n </VisuallyHidden>\n </>\n );\n};\n","import React, { ReactNode } from 'react';\n\nimport { I18nProvider, useLocale } from '@react-aria/i18n';\nimport { useCalendar } from '@react-aria/calendar';\nimport { useCalendarState } from '@react-stately/calendar';\nimport { DateValue } from '@internationalized/date';\n\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { ConditionalWrapper } from '@entur/utils';\n\nimport { ariaLabelIfNorwegian, createCalendar } from '../shared/utils';\nimport { CalendarButton } from '../shared/CalendarButton';\nimport { CalendarGrid } from './CalendarGrid';\n\nimport './Calendar.scss';\n\ntype CalendarProps = {\n selectedDate: DateValue | null;\n onChange: (SelectedDate: DateValue | null) => void;\n navigationDescription?: string;\n style?: React.CSSProperties;\n onSelectedCellClick?: () => void;\n [key: string]: any;\n};\n\nexport const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(\n (\n {\n selectedDate: value,\n onChange,\n locale: customLocale,\n style,\n children: _,\n navigationDescription,\n onSelectedCellClick = () => {\n return;\n },\n ...rest\n },\n ref,\n ) => {\n const { locale } = useLocale();\n\n const state = useCalendarState({\n ...rest,\n onChange,\n locale: customLocale ?? locale,\n createCalendar,\n });\n const { calendarProps, prevButtonProps, nextButtonProps, title } =\n useCalendar(rest, state);\n\n return (\n <ConditionalWrapper\n condition={customLocale}\n wrapper={(child: ReactNode) => (\n <I18nProvider locale={customLocale}>{child}</I18nProvider>\n )}\n >\n <div\n {...calendarProps}\n ref={ref}\n className=\"eds-datepicker__calendar\"\n style={style}\n >\n <div className=\"eds-datepicker__calendar__header\">\n <CalendarButton\n {...prevButtonProps}\n aria-label={ariaLabelIfNorwegian(\n 'Forrige måned',\n locale,\n prevButtonProps,\n )}\n >\n <LeftArrowIcon size={20} />\n </CalendarButton>\n <h2>{title}</h2>\n <CalendarButton\n {...nextButtonProps}\n aria-label={ariaLabelIfNorwegian(\n 'Neste måned',\n locale,\n nextButtonProps,\n )}\n >\n <RightArrowIcon size={20} />\n </CalendarButton>\n </div>\n <CalendarGrid\n state={state}\n navigationDescription={navigationDescription}\n onSelectedCellClick={onSelectedCellClick}\n />\n </div>\n </ConditionalWrapper>\n );\n },\n);\n","import React, { ReactNode, useRef } from 'react';\n\nimport { useDatePickerState } from '@react-stately/datepicker';\nimport { useDatePicker } from '@react-aria/datepicker';\nimport { I18nProvider } from '@react-aria/i18n';\nimport {\n useFloating,\n offset,\n flip,\n shift,\n autoUpdate,\n} from '@floating-ui/react-dom';\nimport FocusLock from 'react-focus-lock';\nimport classNames from 'classnames';\n\nimport type {\n DateValue,\n AriaDatePickerProps,\n MappedDateValue,\n} from '@react-types/datepicker';\n\nimport {\n ConditionalWrapper,\n useOnClickOutside,\n useOnEscape,\n useWindowDimensions,\n} from '@entur/utils';\nimport { space, zIndexes } from '@entur/tokens';\nimport { CalendarIcon } from '@entur/icons';\nimport { Modal } from '@entur/modal';\n\nimport type { VariantType } from '@entur/form';\n\nimport { DateField } from './DateField';\nimport { Calendar } from './Calendar';\nimport { CalendarButton } from '../shared/CalendarButton';\n\nimport './DatePicker.scss';\n\nexport type DatePickerProps<DateType extends DateValue> = {\n /** Den valgte datoen. Dato i '@internationalized/date'-pakkens format */\n selectedDate: DateType | null;\n /** Kalles når tiden endres. Dato i '@internationalized/date'-pakkens format */\n onChange: (value: MappedDateValue<DateType> | null) => void;\n /** Ledetekst for inputfeltet til DatePicker */\n label: string;\n /** BCP47-språkkoden til locale-en du ønsker å bruke.\n * @default Brukerenhetens selvvalgte locale\n */\n locale?: string;\n /** Viser den gjeldende tidssonen hvis en er valgt (krever at tid også vises)\n * @default false\n */\n showTimeZone?: boolean;\n /** Viser tidspunkt i tillegg til dato.\n * OBS: selectedDate må være av typen CalendarDateTime eller ZonedDateTime\n */\n showTime?: boolean;\n /** Tidligste gyldige datovalg.\n * Eks: today(getLocalTimeZone()) == i dag i lokal tidssone. */\n minDate?: DateValue;\n /** Seneste gyldige datovalg.\n * Eks: today(getLocalTimeZone()) == i dag i lokal tidssone\n *\n * OBS: Hvis du bruker dato med tid vil det være til, men ikke med denne datoen */\n maxDate?: DateValue;\n /** Funksjon som tar inn en dato og sier om den er utilgjengelig.\n * Eks. (date) => isWeekend(date, 'no-NO') == helgedager er ikke tilgjengelig */\n isDateUnavailable?: (date: DateValue) => boolean;\n /** Varselmelding, som vil komme under DatePicker sitt inputfelt */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Varselmelding som forteller om ugyldig dato\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om ugyldig dato\n * @default \"error\"\n */\n validationVariant?: VariantType;\n disabled?: boolean;\n /** Hvis true vil kalenderen alltid vises i en popover når den åpnes\n * @default false\n */\n disableModal?: boolean;\n /** Maxbredden til viewport-en for at modal skal vises\n * @default 1000\n */\n modalTreshold?: number;\n labelTooltip?: React.ReactNode;\n /** Skjermlesertest som forklarer navigasjon i kalenderen. Oversettes automatisk for engelsk locale, men ikke andre språk.\n * @default 'Bruk piltastene til å navigere mellom datoer'\n */\n navigationDescription?: string;\n /** Ekstra klassenavn */\n className?: string;\n style?: React.CSSProperties;\n} & Omit<\n AriaDatePickerProps<DateType>,\n | 'value'\n | 'onChange'\n | 'label'\n | 'hideTimeZone'\n | 'placeholder'\n | 'minValue'\n | 'maxValue'\n>;\n\nexport const DatePicker = <DateType extends DateValue>({\n selectedDate: value,\n onChange,\n locale,\n disabled: isDisabled,\n showTime,\n showTimeZone = false,\n className,\n style,\n variant,\n feedback,\n validationVariant,\n validationFeedback,\n disableModal = false,\n labelTooltip,\n navigationDescription,\n minDate: minValue,\n maxDate: maxValue,\n modalTreshold = 1000,\n ...rest\n}: DatePickerProps<DateType>) => {\n const CALENDAR_MODAL_MAX_SCREEN_WIDTH = modalTreshold;\n const datePickerRef = useRef<HTMLDivElement | null>(null);\n const calendarRef = useRef<HTMLDivElement | null>(null);\n const dateFieldRef = useRef<HTMLDivElement | null>(null);\n\n const { width } = useWindowDimensions();\n\n const state = useDatePickerState({\n ...rest,\n minValue,\n maxValue,\n value: value === null ? undefined : value,\n onChange,\n granularity: showTime ? 'minute' : rest.granularity,\n });\n const {\n groupProps,\n labelProps,\n fieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n } = useDatePicker(\n { isDisabled, minValue, maxValue, ...rest },\n state,\n datePickerRef,\n );\n\n // calculations for floating-UI popover position\n const { x, y, reference, floating, strategy } = useFloating({\n whileElementsMounted: autoUpdate,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall),\n flip(),\n shift({ padding: space.extraSmall }),\n ],\n });\n\n const onChangeCalendar = (newSelectedDate: DateValue) => {\n // Necessary to avoid state update on unmounted component\n requestAnimationFrame(() => {\n calendarProps.onChange && calendarProps.onChange(newSelectedDate);\n });\n };\n\n useOnClickOutside([calendarRef], () => {\n state.setOpen(false);\n });\n\n useOnEscape(calendarRef, () => {\n state.setOpen(false);\n });\n\n const calendarSharedProps = {\n ...dialogProps,\n ...calendarProps,\n disabled: calendarProps.isDisabled,\n navigationDescription: navigationDescription,\n onSelectedCellClick: () => state.setOpen(false),\n onChange: onChangeCalendar,\n granularity: showTime ? 'minute' : rest.granularity,\n };\n\n const useModal = width <= CALENDAR_MODAL_MAX_SCREEN_WIDTH && !disableModal;\n\n const popoverCalendar = (\n <div\n // styling for floating-UI popover\n style={{\n position: strategy,\n top: y ?? 0,\n left: x ?? 0,\n zIndex: zIndexes.popover,\n }}\n ref={node => {\n floating(node);\n }}\n >\n <FocusLock disabled={!state.isOpen || useModal} returnFocus>\n {state.isOpen && (\n <Calendar {...calendarSharedProps} ref={calendarRef} />\n )}\n </FocusLock>\n </div>\n );\n\n const modalCalendar = (\n <Modal\n size=\"small\"\n title=\"\"\n open={state.isOpen}\n onDismiss={() => state.setOpen(false)}\n closeOnClickOutside\n className=\"eds-datepicker__calendar-modal\"\n >\n <Calendar {...calendarSharedProps} />\n </Modal>\n );\n\n return (\n <ConditionalWrapper\n condition={locale !== undefined}\n wrapper={(child: ReactNode) => (\n <I18nProvider locale={locale}>{child}</I18nProvider>\n )}\n >\n <div className={classNames('eds-datepicker', className)}>\n <div\n {...groupProps}\n ref={node => {\n datePickerRef.current = node;\n reference(node);\n }}\n id={undefined}\n className=\"eds-datepicker__datefield__wrapper\"\n >\n <DateField\n {...fieldProps}\n selectedDate={state.value}\n label={rest.label}\n labelProps={labelProps}\n showTime={showTime}\n showTimeZone={showTimeZone}\n ref={dateFieldRef}\n variant={variant}\n feedback={feedback}\n validationVariant={validationVariant}\n validationFeedback={validationFeedback}\n labelTooltip={labelTooltip}\n className={classNames('eds-datepicker__datefield', {\n 'eds-datepicker__datefield--disabled': fieldProps.isDisabled,\n })}\n />\n {!fieldProps.isDisabled && (\n <CalendarButton\n {...buttonProps}\n onPress={() => state.setOpen(!state.isOpen)}\n className=\"eds-datepicker__open-calendar-button\"\n >\n <CalendarIcon />\n </CalendarButton>\n )}\n {useModal ? modalCalendar : popoverCalendar}\n </div>\n </div>\n </ConditionalWrapper>\n );\n};\n","import React from 'react';\nimport {\n BaseFormControl,\n isFilled,\n useInputGroupContext,\n useVariant,\n VariantType,\n} from '@entur/form';\nimport { DateIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\n\nexport type NativeDatePickerProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label over NativeDatePicker */\n label: string;\n /** Varselmelding, som vil komme under NativeDatePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Tekst eller ikon som kommer før inputfelter\n * @default <DateIcon />\n */\n prepend?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const NativeDatePicker = React.forwardRef<\n HTMLInputElement,\n NativeDatePickerProps\n>(\n (\n {\n className,\n style,\n label,\n onChange,\n feedback,\n variant,\n disableLabelAnimation,\n prepend = <DateIcon inline />,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const nativedatepickerId = useRandomId('eds-nativetimepicker');\n return (\n <BaseFormControl\n style={style}\n className={className}\n prepend={prepend}\n label={label}\n feedback={feedback}\n variant={variant}\n labelId={nativedatepickerId}\n disableLabelAnimation={disableLabelAnimation}\n isFilled\n >\n <NativeDatePickerBase\n onChange={onChange}\n aria-labelledby={nativedatepickerId}\n ref={ref}\n variant={variant}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype NativeDatePickerBaseProps = {\n onChange?: any;\n variant?: VariantType;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nconst NativeDatePickerBase = React.forwardRef<\n HTMLInputElement,\n NativeDatePickerBaseProps\n>(({ onChange, variant, value, ...rest }, ref) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n const { isFilled: isDatepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n setFiller && !isDatepickerFilled && setFiller(true);\n });\n\n React.useEffect(() => {\n if (value) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n }, [value, setFiller, isDatepickerFilled]);\n\n const handleChange = (event: any) => {\n if (isFilled(event.target)) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n return (\n <input\n ref={ref}\n aria-invalid={currentVariant === 'error'}\n type=\"date\"\n className=\"eds-form-control eds-native-date-picker\"\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n});\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport { IconButton } from '@entur/button';\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\n\ntype TimePickerArrowButtonProps = {\n direction: 'left' | 'right';\n} & React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n>;\n\nexport const TimePickerArrowButton: React.FC<TimePickerArrowButtonProps> = ({\n direction,\n onClick,\n disabled,\n 'aria-label': ariaLabel,\n}) => {\n return (\n <IconButton\n className={classNames(\n 'eds-timepicker__arrowbutton',\n `eds-timepicker__arrowbutton--${direction}`,\n { 'eds-timepicker__arrowbutton--disabled': disabled },\n )}\n type=\"button\"\n tabIndex={-1}\n onClick={onClick}\n aria-label={ariaLabel}\n disabled={disabled}\n >\n {direction === 'left' ? <LeftArrowIcon /> : <RightArrowIcon />}\n </IconButton>\n );\n};\n","import React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport { useTimeField } from '@react-aria/datepicker';\nimport { I18nProvider, useLocale } from '@react-aria/i18n';\nimport { useTimeFieldState } from '@react-stately/datepicker';\nimport { getLocalTimeZone, now } from '@internationalized/date';\n\nimport type {\n TimeValue,\n AriaTimeFieldProps,\n MappedTimeValue,\n} from '@react-types/datepicker';\n\nimport { BaseFormControl, VariantType } from '@entur/form';\nimport { useRandomId, mergeRefs } from '@entur/utils';\n\nimport { FieldSegment } from '../shared/FieldSegment';\nimport { TimePickerArrowButton } from './TimePickerArrowButton';\n\nimport './TimePicker.scss';\n\nexport type TimePickerProps<TimeType extends TimeValue> = {\n /** Den valgte tiden. Tid i '@internationalized/date'-pakkens format */\n selectedTime: TimeType | null;\n /** Kalles når tiden endres. Tid i '@internationalized/date'-pakkens format */\n onChange: (value: MappedTimeValue<TimeType> | null) => void;\n /** Label til TimePicker */\n label: string;\n /** Minutter som legges til eller trekkes fra ved klikk på pilene i TimePicker\n * @default 30\n */\n minuteIncrementForArrowButtons?: number;\n /** BCP47-språkkoden til locale-en du ønsker å bruke.\n * @default Brukerenhetens selvvalgte locale\n */\n locale?: string;\n /** Viser den gjeldende tidssonen hvis en er valgt\n * @default false\n */\n showTimeZone?: boolean;\n /** Aria-label for venstrepil-knappen som trekker fra tid\n * @default `Trekk fra ${minuteIncrementForArrowButtons} minutter`\n */\n leftArrowButtonAriaLabel?: string;\n /** Aria-label for høyrepil-knappen som legger til tid\n * @default `Legg til ${minuteIncrementForArrowButtons} minutter`\n */\n rightArrowButtonAriaLabel?: string;\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n labelTooltip?: React.ReactNode;\n disabled?: boolean;\n inputRef?: React.ForwardedRef<HTMLDivElement>;\n /** Ekstra klassenavn */\n className?: string;\n style?: React.CSSProperties;\n} & Omit<\n AriaTimeFieldProps<TimeType>,\n | 'value'\n | 'onChange'\n | 'label'\n | 'hideTimeZone'\n | 'placeholder'\n | 'minValue'\n | 'maxValue'\n>;\n\nexport const TimePicker = <TimeType extends TimeValue>({\n selectedTime,\n onChange,\n disabled,\n className,\n style,\n label,\n labelTooltip,\n feedback,\n variant,\n locale: customLocale,\n showTimeZone,\n minuteIncrementForArrowButtons = 30,\n leftArrowButtonAriaLabel = `Trekk fra ${minuteIncrementForArrowButtons} minutter`,\n rightArrowButtonAriaLabel = `Legg til ${minuteIncrementForArrowButtons} minutter`,\n inputRef,\n ...rest\n}: TimePickerProps<TimeType>) => {\n let { locale } = useLocale();\n if (customLocale) locale = customLocale;\n\n const state = useTimeFieldState({\n // @ts-expect-error Time should be assignable to MappedTime<TimeType>\n onChange,\n label: label,\n locale,\n value: selectedTime === null ? undefined : selectedTime,\n hideTimeZone: !showTimeZone,\n isDisabled: disabled,\n ...rest,\n });\n const timeFieldRef = useRef(null);\n const { labelProps, fieldProps } = useTimeField<TimeType>(\n { ...rest, label: label },\n state,\n timeFieldRef,\n );\n const id = useRandomId('timepicker');\n\n const handleOnClickArrowButton = (minutes: number) => {\n if (someSegmentIsUndefined) {\n setTimeToNearestMinuteIncrement();\n } else {\n addMinutesToSelectedTime(minutes);\n }\n };\n\n const someSegmentIsUndefined = state.segments.some(\n segment => segment.text === '––',\n );\n\n const setTimeToNearestMinuteIncrement = () => {\n const currentTime = now(getLocalTimeZone());\n const roundedMinute =\n Math.floor(currentTime.minute / minuteIncrementForArrowButtons) *\n minuteIncrementForArrowButtons;\n const newTime = currentTime.set({ minute: roundedMinute });\n // @ts-expect-error Since this function is used when selectedTime is null,\n // we can't guarantee newTime matching the type of selectedTime in the future.\n // This might lead to a type issue.\n onChange(newTime);\n };\n\n const addMinutesToSelectedTime = (minutes: number) => {\n state.value &&\n state.setValue(\n state.value?.add({\n minutes: minutes,\n }),\n );\n };\n\n return (\n <I18nProvider locale={locale}>\n <div className={classNames(className, 'eds-timepicker__wrapper')}>\n <TimePickerArrowButton\n direction=\"left\"\n disabled={disabled}\n aria-label={leftArrowButtonAriaLabel}\n onClick={() =>\n handleOnClickArrowButton(minuteIncrementForArrowButtons * -1)\n }\n />\n <BaseFormControl\n style={style}\n className={'eds-timepicker'}\n labelId={id}\n label={label}\n labelProps={{ ...labelProps }}\n ref={mergeRefs(timeFieldRef, inputRef)}\n disabled={disabled}\n disableLabelAnimation\n labelTooltip={labelTooltip}\n {...fieldProps}\n variant={variant}\n feedback={feedback}\n >\n {state.segments.map((segment, i) => (\n <FieldSegment segment={segment} state={state} key={i} />\n ))}\n </BaseFormControl>\n <TimePickerArrowButton\n direction=\"right\"\n disabled={disabled}\n aria-label={rightArrowButtonAriaLabel}\n onClick={() =>\n handleOnClickArrowButton(minuteIncrementForArrowButtons)\n }\n />\n </div>\n </I18nProvider>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n BaseFormControl,\n isFilled,\n useInputGroupContext,\n useVariant,\n VariantType,\n} from '@entur/form';\nimport { useOnMount, useRandomId } from '@entur/utils';\n\nimport './NativeTimePicker.scss';\n\nexport type NativeTimePickerProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label over NativeTimePicker */\n label: string;\n /** Varselmelding, som vil komme under NativeTimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Tekst eller ikon som kommer før inputfelter */\n prepend?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const NativeTimePicker = React.forwardRef<\n HTMLInputElement,\n NativeTimePickerProps\n>(\n (\n { className, style, onChange, label, feedback, variant, prepend, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const nativetimepickerId = useRandomId('eds-native-timepicker');\n return (\n <BaseFormControl\n style={style}\n className={classNames(className, 'eds-native-timepicker')}\n prepend={prepend}\n label={label}\n feedback={feedback}\n variant={variant}\n labelId={nativetimepickerId}\n disableLabelAnimation\n >\n <NativeTimePickerBase\n onChange={onChange}\n aria-labelledby={nativetimepickerId}\n ref={ref}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype NativeTimePickerBaseProps = {\n variant?: VariantType;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nconst NativeTimePickerBase = React.forwardRef<\n HTMLInputElement,\n NativeTimePickerBaseProps\n>(({ onChange, value, ...rest }, ref) => {\n const contextVariant = useVariant();\n const currentVariant = rest.variant || contextVariant;\n const { isFilled: isTimepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n setFiller && !isTimepickerFilled && setFiller(true);\n });\n\n React.useEffect(() => {\n if (value) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n }, [value, setFiller, isTimepickerFilled]);\n\n const handleChange = (event: any) => {\n if (isFilled(event.target)) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n return (\n <input\n ref={ref}\n aria-invalid={currentVariant === 'error'}\n type=\"time\"\n className=\"eds-form-control\"\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n});\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('datepicker', 'form', 'icons');\n\nexport * from './DatePicker';\nexport * from './TimePicker';\nexport * from './shared';\n\nexport type {\n DateValue,\n CalendarDate,\n CalendarDateTime,\n ZonedDateTime,\n Time,\n} from '@internationalized/date';\nexport type { TimeValue } from '@react-types/datepicker';\n"],"names":["FieldSegment","segment","state","ref","useRef","useDateSegment","segmentProps","is12HourFormatted","segments","some","text","segmentDisplayText","match","padStart","React","createElement","className","classNames","isPlaceholder","tabIndex","isDisabled","nativeDateToDateTime","date","timeZone","offset","ZonedDateTime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","parseAbsolute","toISOString","CalendarDateTime","nativeDateToDateValue","noTimeOnlyDate","CalendarDate","nativeDateToTimeValue","noDateOnlyTime","Time","timeOrDateValueToNativeDate","value","timeZoneForCalendarDateTime","day","Date","setHours","hour","setMinutes","minute","setSeconds","second","toDate","getLocalTimeZone","year","month","createCalendar","identifier","GregorianCalendar","Error","ariaLabelIfNorwegian","norwegianAriaLabel","locale","propsCollection","toLowerCase","DateField","forwardRef","selectedDate","label","customLocale","showTimeZone","showTime","granularity","disabled","variant","feedback","validationVariant","validationFeedback","labelTooltip","minValue","minDate","maxValue","maxDate","style","parentLabelProps","labelProps","append","rest","_excluded","useLocale","useDateFieldState","undefined","hideTimeZone","dateFieldRef","useDateField","fieldProps","id","useRandomId","ConditionalWrapper","condition","wrapper","child","I18nProvider","BaseFormControl","labelId","mergeRefs","disableLabelAnimation","validationState","ariaAlertOnFeedback","map","i","key","CalendarButton","children","props","useButton","buttonProps","IconButton","CalendarCell","onSelectedCellClick","cellRef","useCalendarCell","cellProps","isSelected","isOutsideVisibleRange","isUnavailable","formattedDate","hidden","isEqualDay","now","onClick","e","onKeyDown","CalendarGrid","navigationDescription","calendarGridId","useCalendarGrid","gridProps","headerProps","weekDays","weeksInMonth","getWeeksInMonth","visibleRange","start","weeksArray","Array","from","keys","weekDaysMapped","includes","getNavigationDescription","Fragment","cellSpacing","index","weekIndex","getDatesInWeek","VisuallyHidden","Calendar","onChange","_","useCalendarState","useCalendar","calendarProps","prevButtonProps","nextButtonProps","title","LeftArrowIcon","size","RightArrowIcon","DatePicker","disableModal","modalTreshold","CALENDAR_MODAL_MAX_SCREEN_WIDTH","datePickerRef","calendarRef","useWindowDimensions","width","useDatePickerState","useDatePicker","groupProps","dialogProps","useFloating","whileElementsMounted","autoUpdate","placement","middleware","space","extraSmall","flip","shift","padding","x","y","reference","floating","strategy","onChangeCalendar","newSelectedDate","requestAnimationFrame","useOnClickOutside","setOpen","useOnEscape","calendarSharedProps","useModal","popoverCalendar","position","top","left","zIndex","zIndexes","popover","node","FocusLock","isOpen","returnFocus","modalCalendar","Modal","open","onDismiss","closeOnClickOutside","current","onPress","CalendarIcon","NativeDatePicker","prepend","DateIcon","inline","nativedatepickerId","isFilled","NativeDatePickerBase","_excluded2","contextVariant","useVariant","currentVariant","useInputGroupContext","isDatepickerFilled","setFiller","setFilled","useOnMount","useEffect","handleChange","event","target","type","TimePickerArrowButton","direction","ariaLabel","TimePicker","selectedTime","minuteIncrementForArrowButtons","leftArrowButtonAriaLabel","rightArrowButtonAriaLabel","inputRef","useTimeFieldState","timeFieldRef","useTimeField","handleOnClickArrowButton","minutes","someSegmentIsUndefined","setTimeToNearestMinuteIncrement","addMinutesToSelectedTime","currentTime","roundedMinute","Math","floor","newTime","set","setValue","add","NativeTimePicker","nativetimepickerId","NativeTimePickerBase","isTimepickerFilled","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"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/TimePicker/SimpleTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport { useDateSegment } from '@react-aria/datepicker';\nimport { DateSegment, DateFieldState } from '@react-stately/datepicker';\n\nimport './FieldSegment.scss';\n\ntype TimeSegmentProps = {\n segment: DateSegment;\n state: DateFieldState;\n};\n\nexport const FieldSegment = ({ segment, state }: TimeSegmentProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const { segmentProps } = useDateSegment(segment, state, ref);\n\n const is12HourFormatted = state.segments.some(\n segment => segment.text === 'AM' || segment.text === 'PM',\n );\n\n const segmentDisplayText = () => {\n if (is12HourFormatted) return segment.text;\n // if number add '0' padding to start when one digit\n if (segment.text.match(/\\d+/)) return segment.text.padStart(2, '0');\n return segment.text;\n };\n\n return (\n <div\n {...segmentProps}\n ref={ref}\n className={classNames('eds-date-and-time-field__segment', {\n 'eds-date-and-time-field__segment--placeholder': segment.isPlaceholder,\n 'eds-date-and-time-field__segment--dot-separator': segment.text === '.',\n })}\n tabIndex={state.isDisabled ? -1 : segmentProps.tabIndex}\n >\n {segmentDisplayText()}\n </div>\n );\n};\n","import {\n ZonedDateTime,\n CalendarDateTime,\n Time,\n parseAbsolute,\n DateValue,\n getLocalTimeZone,\n CalendarDate,\n} from '@internationalized/date';\nimport { TimeValue } from '@react-types/datepicker';\nimport { Calendar, GregorianCalendar } from '@internationalized/date';\n\nconst nativeDateToDateTime = (\n date: Date,\n timeZone?: string,\n offset?: number,\n) => {\n if (timeZone) {\n if (offset) {\n return new ZonedDateTime(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n timeZone,\n offset,\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n );\n }\n return parseAbsolute(date.toISOString(), timeZone);\n }\n return new CalendarDateTime(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n );\n};\n\n/**\n * Tar inn et JS Date-objekt og returnerer et av DateValue-objektene fra @internationalized/date-pakken\n * @param {Date} date JS Date-objekt som ønskes konvertert til et DateValue-objekt\n * @param {boolean} noTimeOnlyDate Hvis tidspunktet er irrelevant kan denne settes til true, da får man et CalendarDate-objekt uten tidspunkt tilbake\n * @param {string} timeZone Tidssonen på IANA-formatet som tidpunktet skal konverteres til. Utelates denne får man et tidspunkt uten tidssone. Kan brukes med og uten en UTC-offset Vær obs på annen oppførsel med offset, les mer på beskrivelsen av offset\n * @param {number} offset UTC-offset i millisekunder, må brukes med en tidssone. Ved å legge på en offset lager du en variant av en tidssone. Det betyr at tidspunktet ikke endres (time, minutt, sekund uendret), men tidssonen, med tilhørende offset, tidspunktet er i endres.\n * @returns {CalendarDateTime | ZonedDateTime | CalendarDate} et av DateValue-objektene med verdier fra date\n */\nexport const nativeDateToDateValue = (\n date: Date,\n noTimeOnlyDate = false,\n timeZone?: string,\n offset?: number,\n) => {\n if (noTimeOnlyDate)\n return new CalendarDate(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n );\n\n return nativeDateToDateTime(date, timeZone, offset);\n};\n\n/**\n * Tar inn et JS Date-objekt og returnerer et av TimeValue-objektene fra @internationalized/date-pakken\n * @param {Date} date JS Date-objekt som ønskes konvertert til et TimeValue-objekt\n * @param {boolean} noDateOnlyTime Hvis datoen er irrelevant kan denne settes til true, da får man et Time-objekt uten dato tilbake\n * @param {string} timeZone Tidssonen på IANA-formatet som tidpunktet skal konverteres til. Utelates denne får man et tidspunkt uten tidssone. Kan brukes med og uten en UTC-offset Vær obs på annen oppførsel med offset, les mer på beskrivelsen av offset\n * @param {number} offset UTC-offset i millisekunder, må brukes med en tidssone. Ved å legge på en offset lager du en variant av en tidssone. Det betyr at tidspunktet ikke endres (time, minutt, sekund uendret), men tidssonen, med tilhørende offset, tidspunktet er i endres.\n * @returns {Time | CalendarDateTime | ZonedDateTime} et av TimeValue-objektene med verdier fra date\n */\nexport const nativeDateToTimeValue = (\n date: Date,\n noDateOnlyTime = false,\n timeZone?: string,\n offset?: number,\n) => {\n if (noDateOnlyTime)\n return new Time(date.getHours(), date.getMinutes(), date.getSeconds(), 0);\n\n return nativeDateToDateTime(date, timeZone, offset);\n};\n\n/**\n * Tar inn et av Date- eller TimeValue-objektene fra @internationalized/date-pakken og returnerer et JS Date-objekt\n * @param {DateValue | TimeValue} value En dato eller et tidspunkt på Date- eller TimeValue-formatet som ønskes konvertert til et JS Date-objekt\n * @param {string} timeZoneForCalendarDateTime Tidssonen value er i. Fungerer kun med typen er CalendarDateTime\n * @returns {Date} et Date-objekt med verdier fra time\n */\n// This function uses a lot of @ts-expect-error to make it work with all Date- and TimeValue types. Sorry ...\nexport const timeOrDateValueToNativeDate = (\n value: TimeValue | DateValue,\n timeZoneForCalendarDateTime?: string,\n): Date => {\n // @ts-expect-error .day does not exist on Time-object\n if (!value.day) {\n // type is Time\n const date = new Date();\n // @ts-expect-error hour does not exist on CalendarDate\n date.setHours(value.hour);\n // @ts-expect-error minute does not exist on CalendarDate\n date.setMinutes(value.minute);\n // @ts-expect-error second does not exist on CalendarDate\n date.setSeconds(value.second);\n return date;\n }\n\n // @ts-expect-error .day does not exist on Time-object\n if (!value.hour) {\n // type is CalendarDate\n // @ts-expect-error .toDate(timeZone) does not exist in type Time\n return value.toDate(timeZoneForCalendarDateTime ?? getLocalTimeZone());\n }\n\n // @ts-expect-error .timeZone does not exist in type Time and CalendarDateTime\n if (!value.timeZone) {\n // type is CalendarDateTime\n if (timeZoneForCalendarDateTime)\n // @ts-expect-error .toDate(timeZone) does not exist in type Time\n return value.toDate(timeZoneForCalendarDateTime);\n\n return new Date(\n // @ts-expect-error not in type Time\n value.year,\n // @ts-expect-error not in type Time\n value.month - 1,\n // @ts-expect-error not in type Time\n value.day,\n // @ts-expect-error not in type CalendarDate\n value.hour,\n // @ts-expect-error not in type CalendarDate\n value.minute,\n // @ts-expect-error not in type CalendarDate\n value.second,\n );\n }\n\n // @ts-expect-error .toDate() does not exist in type Time or CalendarDateTime\n return value.toDate();\n};\n\nexport const createCalendar = (identifier = 'gregory'): Calendar => {\n switch (identifier) {\n case 'gregory':\n return new GregorianCalendar();\n default:\n throw new Error(`Unsupported calendar ${identifier}`);\n }\n};\n\nexport const ariaLabelIfNorwegian = (\n norwegianAriaLabel: string,\n locale: string,\n propsCollection: any,\n) => {\n if (locale.toLowerCase() !== 'no-no') return propsCollection['aria-label'];\n return norwegianAriaLabel;\n};\n","import React, { ReactNode, useRef } from 'react';\n\nimport { useDateFieldState } from '@react-stately/datepicker';\nimport { useDateField } from '@react-aria/datepicker';\nimport { I18nProvider, useLocale } from '@react-aria/i18n';\nimport classNames from 'classnames';\n\nimport type {\n SpectrumDateFieldProps,\n DateValue,\n} from '@react-types/datepicker';\n\nimport { BaseFormControl, VariantType } from '@entur/form';\nimport { ConditionalWrapper, mergeRefs, useRandomId } from '@entur/utils';\n\nimport { FieldSegment } from '../shared/FieldSegment';\nimport { createCalendar } from '../shared/utils';\n\nimport './DateField.scss';\n\nexport type DateFieldProps = {\n /** Den valgte tiden. Tid i '@internationalized/date'-pakkens format */\n selectedDate: DateValue | null;\n /** Kalles når tiden endres. Tid i '@internationalized/date'-pakkens format */\n onChange: (value: DateValue) => void;\n /** Label til TimePicker */\n label: string;\n /** BCP47-språkkoden til locale-en du ønsker å bruke.\n * @default Brukerenhetens selvvalgte locale\n */\n locale?: string;\n /** Viser den gjeldende tidssonen hvis en er valgt\n * @default false\n */\n showTimeZone?: boolean;\n showTime?: boolean;\n /** Tidligste gyldige datovalg.\n * Eks: today(getLocalTimeZone()) == i dag i lokal tidssone */\n minDate?: DateValue;\n /** Seneste gyldige datovalg. (se minValue) */\n maxDate?: DateValue;\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Varselmelding som forteller om ugyldig dato\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om ugyldig dato\n * @default \"error\"\n */\n validationVariant?: VariantType;\n labelTooltip?: React.ReactNode;\n disabled?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n style?: React.CSSProperties;\n [key: string]: any;\n} & Omit<\n SpectrumDateFieldProps<DateValue>,\n | 'value'\n | 'onChange'\n | 'label'\n | 'hideTimeZone'\n | 'placeholder'\n | 'minValue'\n | 'maxValue'\n>;\n\nexport const DateField = React.forwardRef<HTMLDivElement, DateFieldProps>(\n (\n {\n selectedDate: value,\n label,\n locale: customLocale,\n showTimeZone,\n showTime,\n granularity = 'day',\n disabled,\n variant,\n feedback,\n validationVariant = 'error',\n validationFeedback = 'Ugyldig dato',\n labelTooltip,\n minDate: minValue,\n maxDate: maxValue,\n style,\n className,\n labelProps: parentLabelProps,\n append,\n ...rest\n },\n ref,\n ) => {\n const { locale } = useLocale();\n\n const state = useDateFieldState({\n ...rest,\n locale: customLocale ?? locale,\n createCalendar,\n value: value === null ? undefined : value,\n hideTimeZone: !showTimeZone,\n granularity: showTime ? 'minute' : granularity,\n minValue,\n maxValue,\n });\n\n const dateFieldRef = useRef(null);\n const { labelProps, fieldProps } = useDateField(\n { ...rest, label: label, isDisabled: disabled || rest.isDisabled },\n state,\n dateFieldRef,\n );\n\n const id = useRandomId('datefield');\n\n return (\n <ConditionalWrapper\n condition={customLocale !== undefined}\n wrapper={(child: ReactNode) => (\n <I18nProvider locale={customLocale}>{child}</I18nProvider>\n )}\n >\n <BaseFormControl\n style={style}\n className={classNames('eds-datefield', className)}\n labelId={id}\n ref={mergeRefs(dateFieldRef, ref)}\n disabled={state.isDisabled}\n disableLabelAnimation\n label={label}\n labelTooltip={labelTooltip}\n labelProps={parentLabelProps ?? labelProps}\n {...fieldProps}\n variant={\n variant ?? state.validationState === 'invalid'\n ? validationVariant\n : undefined\n }\n feedback={\n feedback ?? state.validationState === 'invalid'\n ? validationFeedback\n : undefined\n }\n append={append}\n ariaAlertOnFeedback\n >\n {state.segments.map((segment, i) => (\n <FieldSegment segment={segment} state={state} key={i} />\n ))}\n </BaseFormControl>\n </ConditionalWrapper>\n );\n },\n);\n","import React, { useRef } from 'react';\n\nimport { useButton } from '@react-aria/button';\n\nimport { IconButton } from '@entur/button';\n\ntype CalendarButtonProps = {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n [key: string]: any;\n};\n\nexport const CalendarButton = ({\n children,\n className,\n style,\n ...props\n}: CalendarButtonProps) => {\n const ref = useRef(null);\n const { buttonProps } = useButton(props, ref);\n\n return (\n <IconButton {...buttonProps} ref={ref} className={className} style={style}>\n {children}\n </IconButton>\n );\n};\n","import React, { useRef } from 'react';\n\nimport { useCalendarCell } from '@react-aria/calendar';\nimport { CalendarState } from '@react-stately/calendar';\nimport {\n CalendarDate,\n getLocalTimeZone,\n isEqualDay,\n now,\n} from '@internationalized/date';\nimport classNames from 'classnames';\n\ntype CalendarCellProps = {\n state: CalendarState;\n date: CalendarDate;\n onSelectedCellClick?: () => void;\n};\n\nexport const CalendarCell = ({\n state,\n date,\n onSelectedCellClick = () => {\n return;\n },\n ...rest\n}: CalendarCellProps) => {\n const cellRef = useRef(null);\n\n const {\n cellProps,\n buttonProps,\n isSelected,\n isOutsideVisibleRange,\n isDisabled,\n isUnavailable,\n formattedDate,\n } = useCalendarCell({ date }, state, cellRef);\n return (\n <td {...cellProps} className=\"eds-datepicker__calendar__grid__cell__td\">\n <div\n {...buttonProps}\n ref={cellRef}\n hidden={isOutsideVisibleRange}\n className={classNames('eds-datepicker__calendar__grid__cell', {\n 'eds-datepicker__calendar__grid__cell--selected': isSelected,\n 'eds-datepicker__calendar__grid__cell--disabled':\n isDisabled || isUnavailable,\n 'eds-datepicker__calendar__grid__cell--outside-month':\n isOutsideVisibleRange,\n 'eds-datepicker__calendar__grid__cell--today': isEqualDay(\n date,\n now(state.timeZone ?? getLocalTimeZone()),\n ),\n })}\n {...rest}\n onClick={e => {\n buttonProps.onClick && buttonProps.onClick(e);\n isSelected && onSelectedCellClick();\n }}\n onKeyDown={e => {\n buttonProps.onKeyDown && buttonProps.onKeyDown(e);\n if (e.key === 'Enter' || e.key === ' ')\n isSelected && onSelectedCellClick();\n }}\n >\n {formattedDate}\n </div>\n </td>\n );\n};\n","import React from 'react';\n\nimport { useLocale } from '@react-aria/i18n';\nimport { useCalendarGrid } from '@react-aria/calendar';\nimport { CalendarState } from '@react-stately/calendar';\nimport { getWeeksInMonth } from '@internationalized/date';\n\nimport { useRandomId } from '@entur/utils';\nimport { VisuallyHidden } from '@entur/a11y';\n\nimport { CalendarCell } from './CalendarCell';\n\ntype CalendarGridProps = {\n state: CalendarState;\n navigationDescription?: string;\n onSelectedCellClick?: () => void;\n};\n\nexport const CalendarGrid = ({\n state,\n navigationDescription,\n onSelectedCellClick = () => {\n return;\n },\n ...rest\n}: CalendarGridProps) => {\n const calendarGridId = useRandomId('eds-calendar');\n const { locale } = useLocale();\n\n const { gridProps, headerProps, weekDays } = useCalendarGrid(rest, state);\n\n const weeksInMonth = getWeeksInMonth(state.visibleRange.start, locale);\n const weeksArray = Array.from(Array(weeksInMonth).keys());\n\n const weekDaysMapped = () => {\n if (locale.toLowerCase().includes('no'))\n return ['ma', 'ti', 'on', 'to', 'fr', 'lø', 'sø'];\n if (locale.toLowerCase().includes('en')) {\n if (weekDays[0] === 'M')\n return ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];\n if (weekDays[0] === 'S')\n return ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n }\n return weekDays.map(day => day.toLowerCase());\n };\n\n const getNavigationDescription = () => {\n if (navigationDescription) return navigationDescription;\n if (locale.toLowerCase().includes('en'))\n return 'Use the arrow keys to navigate between dates';\n return 'Bruk piltastene til å navigere mellom datoer';\n };\n\n return (\n <>\n <table\n {...gridProps}\n cellSpacing=\"0\"\n className=\"eds-datepicker__calendar__grid\"\n >\n <thead {...headerProps}>\n <tr>\n {weekDaysMapped().map((day, index) => (\n <th key={index}>{day}</th>\n ))}\n </tr>\n </thead>\n <tbody>\n {weeksArray.map(weekIndex => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex)\n .map((date, i) =>\n date ? (\n <CalendarCell\n key={i}\n state={state}\n date={date}\n aria-describedby={calendarGridId + 'description'}\n onSelectedCellClick={onSelectedCellClick}\n />\n ) : (\n <td key={i} />\n ),\n )}\n </tr>\n ))}\n </tbody>\n </table>\n <VisuallyHidden id={calendarGridId + 'description'}>\n {getNavigationDescription()}\n </VisuallyHidden>\n </>\n );\n};\n","import React, { ReactNode } from 'react';\n\nimport { I18nProvider, useLocale } from '@react-aria/i18n';\nimport { useCalendar } from '@react-aria/calendar';\nimport { useCalendarState } from '@react-stately/calendar';\nimport { DateValue } from '@internationalized/date';\n\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { ConditionalWrapper } from '@entur/utils';\n\nimport { ariaLabelIfNorwegian, createCalendar } from '../shared/utils';\nimport { CalendarButton } from '../shared/CalendarButton';\nimport { CalendarGrid } from './CalendarGrid';\n\nimport './Calendar.scss';\n\ntype CalendarProps = {\n selectedDate: DateValue | null;\n onChange: (SelectedDate: DateValue | null) => void;\n navigationDescription?: string;\n style?: React.CSSProperties;\n onSelectedCellClick?: () => void;\n [key: string]: any;\n};\n\nexport const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(\n (\n {\n selectedDate: value,\n onChange,\n locale: customLocale,\n style,\n children: _,\n navigationDescription,\n onSelectedCellClick = () => {\n return;\n },\n ...rest\n },\n ref,\n ) => {\n const { locale } = useLocale();\n\n const state = useCalendarState({\n ...rest,\n onChange,\n locale: customLocale ?? locale,\n createCalendar,\n });\n const { calendarProps, prevButtonProps, nextButtonProps, title } =\n useCalendar(rest, state);\n\n return (\n <ConditionalWrapper\n condition={customLocale}\n wrapper={(child: ReactNode) => (\n <I18nProvider locale={customLocale}>{child}</I18nProvider>\n )}\n >\n <div\n {...calendarProps}\n ref={ref}\n className=\"eds-datepicker__calendar\"\n style={style}\n >\n <div className=\"eds-datepicker__calendar__header\">\n <CalendarButton\n {...prevButtonProps}\n aria-label={ariaLabelIfNorwegian(\n 'Forrige måned',\n locale,\n prevButtonProps,\n )}\n >\n <LeftArrowIcon size={20} />\n </CalendarButton>\n <h2>{title}</h2>\n <CalendarButton\n {...nextButtonProps}\n aria-label={ariaLabelIfNorwegian(\n 'Neste måned',\n locale,\n nextButtonProps,\n )}\n >\n <RightArrowIcon size={20} />\n </CalendarButton>\n </div>\n <CalendarGrid\n state={state}\n navigationDescription={navigationDescription}\n onSelectedCellClick={onSelectedCellClick}\n />\n </div>\n </ConditionalWrapper>\n );\n },\n);\n","import React, { ReactNode, useRef } from 'react';\n\nimport { useDatePickerState } from '@react-stately/datepicker';\nimport { useDatePicker } from '@react-aria/datepicker';\nimport { I18nProvider } from '@react-aria/i18n';\nimport {\n useFloating,\n offset,\n flip,\n shift,\n autoUpdate,\n} from '@floating-ui/react-dom';\nimport FocusLock from 'react-focus-lock';\nimport classNames from 'classnames';\n\nimport type {\n DateValue,\n AriaDatePickerProps,\n MappedDateValue,\n} from '@react-types/datepicker';\n\nimport {\n ConditionalWrapper,\n useOnClickOutside,\n useOnEscape,\n useWindowDimensions,\n} from '@entur/utils';\nimport { space, zIndexes } from '@entur/tokens';\nimport { CalendarIcon } from '@entur/icons';\nimport { Modal } from '@entur/modal';\n\nimport type { VariantType } from '@entur/form';\n\nimport { DateField } from './DateField';\nimport { Calendar } from './Calendar';\nimport { CalendarButton } from '../shared/CalendarButton';\n\nimport './DatePicker.scss';\n\nexport type DatePickerProps<DateType extends DateValue> = {\n /** Den valgte datoen. Dato i '@internationalized/date'-pakkens format */\n selectedDate: DateType | null;\n /** Kalles når tiden endres. Dato i '@internationalized/date'-pakkens format */\n onChange: (value: MappedDateValue<DateType> | null) => void;\n /** Ledetekst for inputfeltet til DatePicker */\n label: string;\n /** BCP47-språkkoden til locale-en du ønsker å bruke.\n * @default Brukerenhetens selvvalgte locale\n */\n locale?: string;\n /** Viser den gjeldende tidssonen hvis en er valgt (krever at tid også vises)\n * @default false\n */\n showTimeZone?: boolean;\n /** Viser tidspunkt i tillegg til dato.\n * OBS: selectedDate må være av typen CalendarDateTime eller ZonedDateTime\n */\n showTime?: boolean;\n /** Tidligste gyldige datovalg.\n * Eks: today(getLocalTimeZone()) == i dag i lokal tidssone. */\n minDate?: DateValue;\n /** Seneste gyldige datovalg.\n * Eks: today(getLocalTimeZone()) == i dag i lokal tidssone\n *\n * OBS: Hvis du bruker dato med tid vil det være til, men ikke med denne datoen */\n maxDate?: DateValue;\n /** Funksjon som tar inn en dato og sier om den er utilgjengelig.\n * Eks. (date) => isWeekend(date, 'no-NO') == helgedager er ikke tilgjengelig */\n isDateUnavailable?: (date: DateValue) => boolean;\n /** Varselmelding, som vil komme under DatePicker sitt inputfelt */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Varselmelding som forteller om ugyldig dato\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om ugyldig dato\n * @default \"error\"\n */\n validationVariant?: VariantType;\n disabled?: boolean;\n /** Hvis true vil kalenderen alltid vises i en popover når den åpnes\n * @default false\n */\n disableModal?: boolean;\n /** Maxbredden til viewport-en for at modal skal vises\n * @default 1000\n */\n modalTreshold?: number;\n labelTooltip?: React.ReactNode;\n /** Skjermlesertest som forklarer navigasjon i kalenderen. Oversettes automatisk for engelsk locale, men ikke andre språk.\n * @default 'Bruk piltastene til å navigere mellom datoer'\n */\n navigationDescription?: string;\n /** Ekstra klassenavn */\n className?: string;\n style?: React.CSSProperties;\n} & Omit<\n AriaDatePickerProps<DateType>,\n | 'value'\n | 'onChange'\n | 'label'\n | 'hideTimeZone'\n | 'placeholder'\n | 'minValue'\n | 'maxValue'\n>;\n\nexport const DatePicker = <DateType extends DateValue>({\n selectedDate: value,\n onChange,\n locale,\n disabled: isDisabled,\n showTime,\n showTimeZone = false,\n className,\n style,\n variant,\n feedback,\n validationVariant,\n validationFeedback,\n disableModal = false,\n labelTooltip,\n navigationDescription,\n minDate: minValue,\n maxDate: maxValue,\n modalTreshold = 1000,\n ...rest\n}: DatePickerProps<DateType>) => {\n const CALENDAR_MODAL_MAX_SCREEN_WIDTH = modalTreshold;\n const datePickerRef = useRef<HTMLDivElement | null>(null);\n const calendarRef = useRef<HTMLDivElement | null>(null);\n const dateFieldRef = useRef<HTMLDivElement | null>(null);\n\n const { width } = useWindowDimensions();\n\n const state = useDatePickerState({\n ...rest,\n minValue,\n maxValue,\n value: value === null ? undefined : value,\n onChange,\n granularity: showTime ? 'minute' : rest.granularity,\n });\n const {\n groupProps,\n labelProps,\n fieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n } = useDatePicker(\n { isDisabled, minValue, maxValue, ...rest },\n state,\n datePickerRef,\n );\n\n // calculations for floating-UI popover position\n const { x, y, reference, floating, strategy } = useFloating({\n whileElementsMounted: autoUpdate,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall),\n flip(),\n shift({ padding: space.extraSmall }),\n ],\n });\n\n const onChangeCalendar = (newSelectedDate: DateValue) => {\n // Necessary to avoid state update on unmounted component\n requestAnimationFrame(() => {\n calendarProps.onChange && calendarProps.onChange(newSelectedDate);\n });\n };\n\n useOnClickOutside([calendarRef], () => {\n state.setOpen(false);\n });\n\n useOnEscape(calendarRef, () => {\n state.setOpen(false);\n });\n\n const calendarSharedProps = {\n ...dialogProps,\n ...calendarProps,\n disabled: calendarProps.isDisabled,\n navigationDescription: navigationDescription,\n onSelectedCellClick: () => state.setOpen(false),\n onChange: onChangeCalendar,\n granularity: showTime ? 'minute' : rest.granularity,\n };\n\n const useModal = width <= CALENDAR_MODAL_MAX_SCREEN_WIDTH && !disableModal;\n\n const popoverCalendar = (\n <div\n // styling for floating-UI popover\n style={{\n position: strategy,\n top: y ?? 0,\n left: x ?? 0,\n zIndex: zIndexes.popover,\n }}\n ref={node => {\n floating(node);\n }}\n >\n <FocusLock disabled={!state.isOpen || useModal} returnFocus>\n {state.isOpen && (\n <Calendar {...calendarSharedProps} ref={calendarRef} />\n )}\n </FocusLock>\n </div>\n );\n\n const modalCalendar = (\n <Modal\n size=\"small\"\n title=\"\"\n open={state.isOpen}\n onDismiss={() => state.setOpen(false)}\n closeOnClickOutside\n className=\"eds-datepicker__calendar-modal\"\n >\n <Calendar {...calendarSharedProps} />\n </Modal>\n );\n\n return (\n <ConditionalWrapper\n condition={locale !== undefined}\n wrapper={(child: ReactNode) => (\n <I18nProvider locale={locale}>{child}</I18nProvider>\n )}\n >\n <div className={classNames('eds-datepicker', className)}>\n <div\n {...groupProps}\n ref={node => {\n datePickerRef.current = node;\n reference(node);\n }}\n id={undefined}\n className=\"eds-datepicker__datefield__wrapper\"\n >\n <DateField\n {...fieldProps}\n selectedDate={state.value}\n label={rest.label}\n labelProps={labelProps}\n showTime={showTime}\n showTimeZone={showTimeZone}\n ref={dateFieldRef}\n variant={variant}\n feedback={feedback}\n validationVariant={validationVariant}\n validationFeedback={validationFeedback}\n labelTooltip={labelTooltip}\n className={classNames('eds-datepicker__datefield', {\n 'eds-datepicker__datefield--disabled': fieldProps.isDisabled,\n })}\n />\n {!fieldProps.isDisabled && (\n <CalendarButton\n {...buttonProps}\n onPress={() => state.setOpen(!state.isOpen)}\n className=\"eds-datepicker__open-calendar-button\"\n >\n <CalendarIcon />\n </CalendarButton>\n )}\n {useModal ? modalCalendar : popoverCalendar}\n </div>\n </div>\n </ConditionalWrapper>\n );\n};\n","import React from 'react';\nimport {\n BaseFormControl,\n isFilled,\n useInputGroupContext,\n useVariant,\n VariantType,\n} from '@entur/form';\nimport { DateIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\n\nexport type NativeDatePickerProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label over NativeDatePicker */\n label: string;\n /** Varselmelding, som vil komme under NativeDatePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Tekst eller ikon som kommer før inputfelter\n * @default <DateIcon />\n */\n prepend?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const NativeDatePicker = React.forwardRef<\n HTMLInputElement,\n NativeDatePickerProps\n>(\n (\n {\n className,\n style,\n label,\n onChange,\n feedback,\n variant,\n disableLabelAnimation,\n prepend = <DateIcon inline />,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const nativedatepickerId = useRandomId('eds-nativetimepicker');\n return (\n <BaseFormControl\n style={style}\n className={className}\n prepend={prepend}\n label={label}\n feedback={feedback}\n variant={variant}\n labelId={nativedatepickerId}\n disableLabelAnimation={disableLabelAnimation}\n isFilled\n >\n <NativeDatePickerBase\n onChange={onChange}\n aria-labelledby={nativedatepickerId}\n ref={ref}\n variant={variant}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype NativeDatePickerBaseProps = {\n onChange?: any;\n variant?: VariantType;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nconst NativeDatePickerBase = React.forwardRef<\n HTMLInputElement,\n NativeDatePickerBaseProps\n>(({ onChange, variant, value, ...rest }, ref) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n const { isFilled: isDatepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n setFiller && !isDatepickerFilled && setFiller(true);\n });\n\n React.useEffect(() => {\n if (value) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n }, [value, setFiller, isDatepickerFilled]);\n\n const handleChange = (event: any) => {\n if (isFilled(event.target)) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n return (\n <input\n ref={ref}\n aria-invalid={currentVariant === 'error'}\n type=\"date\"\n className=\"eds-form-control eds-native-date-picker\"\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n});\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport { IconButton } from '@entur/button';\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\n\ntype TimePickerArrowButtonProps = {\n direction: 'left' | 'right';\n} & React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n>;\n\nexport const TimePickerArrowButton: React.FC<TimePickerArrowButtonProps> = ({\n direction,\n onClick,\n disabled,\n 'aria-label': ariaLabel,\n}) => {\n return (\n <IconButton\n className={classNames(\n 'eds-timepicker__arrowbutton',\n `eds-timepicker__arrowbutton--${direction}`,\n { 'eds-timepicker__arrowbutton--disabled': disabled },\n )}\n type=\"button\"\n tabIndex={-1}\n onClick={onClick}\n aria-label={ariaLabel}\n disabled={disabled}\n >\n {direction === 'left' ? <LeftArrowIcon /> : <RightArrowIcon />}\n </IconButton>\n );\n};\n","import React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport { useTimeField } from '@react-aria/datepicker';\nimport { I18nProvider, useLocale } from '@react-aria/i18n';\nimport { useTimeFieldState } from '@react-stately/datepicker';\nimport { getLocalTimeZone, now } from '@internationalized/date';\n\nimport type {\n TimeValue,\n AriaTimeFieldProps,\n MappedTimeValue,\n} from '@react-types/datepicker';\n\nimport { BaseFormControl, VariantType } from '@entur/form';\nimport { useRandomId, mergeRefs } from '@entur/utils';\n\nimport { FieldSegment } from '../shared/FieldSegment';\nimport { TimePickerArrowButton } from './TimePickerArrowButton';\n\nimport './TimePicker.scss';\n\nexport type TimePickerProps<TimeType extends TimeValue> = {\n /** Den valgte tiden. Tid i '@internationalized/date'-pakkens format */\n selectedTime: TimeType | null;\n /** Kalles når tiden endres. Tid i '@internationalized/date'-pakkens format */\n onChange: (value: MappedTimeValue<TimeType> | null) => void;\n /** Label til TimePicker */\n label: string;\n /** Minutter som legges til eller trekkes fra ved klikk på pilene i TimePicker\n * @default 30\n */\n minuteIncrementForArrowButtons?: number;\n /** BCP47-språkkoden til locale-en du ønsker å bruke.\n * @default Brukerenhetens selvvalgte locale\n */\n locale?: string;\n /** Viser den gjeldende tidssonen hvis en er valgt\n * @default false\n */\n showTimeZone?: boolean;\n /** Aria-label for venstrepil-knappen som trekker fra tid\n * @default `Trekk fra ${minuteIncrementForArrowButtons} minutter`\n */\n leftArrowButtonAriaLabel?: string;\n /** Aria-label for høyrepil-knappen som legger til tid\n * @default `Legg til ${minuteIncrementForArrowButtons} minutter`\n */\n rightArrowButtonAriaLabel?: string;\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n labelTooltip?: React.ReactNode;\n disabled?: boolean;\n inputRef?: React.ForwardedRef<HTMLDivElement>;\n /** Ekstra klassenavn */\n className?: string;\n style?: React.CSSProperties;\n} & Omit<\n AriaTimeFieldProps<TimeType>,\n | 'value'\n | 'onChange'\n | 'label'\n | 'hideTimeZone'\n | 'placeholder'\n | 'minValue'\n | 'maxValue'\n>;\n\nexport const TimePicker = <TimeType extends TimeValue>({\n selectedTime,\n onChange,\n disabled,\n className,\n style,\n label,\n labelTooltip,\n feedback,\n variant,\n locale: customLocale,\n showTimeZone,\n minuteIncrementForArrowButtons = 30,\n leftArrowButtonAriaLabel = `Trekk fra ${minuteIncrementForArrowButtons} minutter`,\n rightArrowButtonAriaLabel = `Legg til ${minuteIncrementForArrowButtons} minutter`,\n inputRef,\n ...rest\n}: TimePickerProps<TimeType>) => {\n let { locale } = useLocale();\n if (customLocale) locale = customLocale;\n\n const state = useTimeFieldState({\n onChange,\n label: label,\n locale,\n value: selectedTime === null ? undefined : selectedTime,\n hideTimeZone: !showTimeZone,\n isDisabled: disabled,\n ...rest,\n });\n const timeFieldRef = useRef(null);\n const { labelProps, fieldProps } = useTimeField<TimeType>(\n { ...rest, label: label },\n state,\n timeFieldRef,\n );\n const id = useRandomId('timepicker');\n\n const handleOnClickArrowButton = (minutes: number) => {\n if (someSegmentIsUndefined) {\n setTimeToNearestMinuteIncrement();\n } else {\n addMinutesToSelectedTime(minutes);\n }\n };\n\n const someSegmentIsUndefined = state.segments.some(\n segment => segment.text === '––',\n );\n\n const setTimeToNearestMinuteIncrement = () => {\n const currentTime = now(getLocalTimeZone());\n const roundedMinute =\n Math.floor(currentTime.minute / minuteIncrementForArrowButtons) *\n minuteIncrementForArrowButtons;\n const newTime = currentTime.set({ minute: roundedMinute });\n // @ts-expect-error Since this function is used when selectedTime is null,\n // we can't guarantee newTime matching the type of selectedTime in the future.\n // This might lead to a type issue.\n onChange(newTime);\n };\n\n const addMinutesToSelectedTime = (minutes: number) => {\n state.value &&\n state.setValue(\n state.value?.add({\n minutes: minutes,\n }),\n );\n };\n\n return (\n <I18nProvider locale={locale}>\n <div className={classNames(className, 'eds-timepicker__wrapper')}>\n <TimePickerArrowButton\n direction=\"left\"\n disabled={disabled}\n aria-label={leftArrowButtonAriaLabel}\n onClick={() =>\n handleOnClickArrowButton(minuteIncrementForArrowButtons * -1)\n }\n />\n <BaseFormControl\n style={style}\n className={'eds-timepicker'}\n labelId={id}\n label={label}\n labelProps={{ ...labelProps }}\n ref={mergeRefs(timeFieldRef, inputRef)}\n disabled={disabled}\n disableLabelAnimation\n labelTooltip={labelTooltip}\n {...fieldProps}\n variant={variant}\n feedback={feedback}\n >\n {state.segments.map((segment, i) => (\n <FieldSegment segment={segment} state={state} key={i} />\n ))}\n </BaseFormControl>\n <TimePickerArrowButton\n direction=\"right\"\n disabled={disabled}\n aria-label={rightArrowButtonAriaLabel}\n onClick={() =>\n handleOnClickArrowButton(minuteIncrementForArrowButtons)\n }\n />\n </div>\n </I18nProvider>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n BaseFormControl,\n isFilled,\n useInputGroupContext,\n useVariant,\n VariantType,\n} from '@entur/form';\nimport { useOnMount, useRandomId } from '@entur/utils';\n\nimport './NativeTimePicker.scss';\n\nexport type NativeTimePickerProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label over NativeTimePicker */\n label: string;\n /** Varselmelding, som vil komme under NativeTimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Tekst eller ikon som kommer før inputfelter */\n prepend?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const NativeTimePicker = React.forwardRef<\n HTMLInputElement,\n NativeTimePickerProps\n>(\n (\n { className, style, onChange, label, feedback, variant, prepend, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const nativetimepickerId = useRandomId('eds-native-timepicker');\n return (\n <BaseFormControl\n style={style}\n className={classNames(className, 'eds-native-timepicker')}\n prepend={prepend}\n label={label}\n feedback={feedback}\n variant={variant}\n labelId={nativetimepickerId}\n disableLabelAnimation\n >\n <NativeTimePickerBase\n onChange={onChange}\n aria-labelledby={nativetimepickerId}\n ref={ref}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype NativeTimePickerBaseProps = {\n variant?: VariantType;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nconst NativeTimePickerBase = React.forwardRef<\n HTMLInputElement,\n NativeTimePickerBaseProps\n>(({ onChange, value, ...rest }, ref) => {\n const contextVariant = useVariant();\n const currentVariant = rest.variant || contextVariant;\n const { isFilled: isTimepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n setFiller && !isTimepickerFilled && setFiller(true);\n });\n\n React.useEffect(() => {\n if (value) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n }, [value, setFiller, isTimepickerFilled]);\n\n const handleChange = (event: any) => {\n if (isFilled(event.target)) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n return (\n <input\n ref={ref}\n aria-invalid={currentVariant === 'error'}\n type=\"time\"\n className=\"eds-form-control\"\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n});\n","import React, { useEffect, useRef, useState } from 'react';\nimport { Time, parseTime, toTime } from '@internationalized/date';\nimport { useTimeField } from '@react-aria/datepicker';\nimport { I18nProvider, useLocale } from '@react-aria/i18n';\nimport { useTimeFieldState } from '@react-stately/datepicker';\nimport classNames from 'classnames';\n\nimport type {\n TimeValue,\n AriaTimeFieldProps,\n MappedTimeValue,\n} from '@react-types/datepicker';\n\nimport { TextField, VariantType } from '@entur/form';\nimport { ClockIcon } from '@entur/icons';\nimport { mergeRefs } from '@entur/utils';\n\nimport './SimpleTimePicker.scss';\n\nenum inputResult {\n RESET_TIME,\n INVALID,\n}\n\nexport type SimpleTimePickerProps<TimeType extends TimeValue> = {\n /** Den valgte tiden. Tid i '@internationalized/date'-pakkens format */\n selectedTime: TimeType | null;\n /** Kalles når tiden endres. Tid i '@internationalized/date'-pakkens format */\n onChange?: (\n value: MappedTimeValue<TimeType> | null,\n ) => void | React.Dispatch<React.SetStateAction<TimeValue | null>>;\n /** Label til TimePicker */\n label: string;\n /** Viser sekund i tillegg til time og minutt\n * @default false\n */\n showSeconds?: boolean;\n /** Viser et klokkeikonet for å klarere indikere at dette\n * er en tidsvelger\n * @default false\n */\n showClockIcon?: boolean;\n /** Velger hvor mye luft det skal være på sidene av klokkeslettet\n * @default 'default'\n */\n padding?: 'default' | 'large';\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n labelTooltip?: React.ReactNode;\n disabled?: boolean;\n readOnly?: boolean;\n inputRef?: React.ForwardedRef<HTMLInputElement>;\n /** Ekstra klassenavn */\n className?: string;\n style?: React.CSSProperties;\n} & Omit<\n AriaTimeFieldProps<TimeType>,\n | 'value'\n | 'onChange'\n | 'label'\n | 'hideTimeZone'\n | 'placeholder'\n | 'minValue'\n | 'maxValue'\n | 'locale'\n | 'isReadOnly'\n | 'isDisabled'\n | 'locale'\n>;\n\nexport const SimpleTimePicker = <TimeType extends TimeValue>({\n className,\n disabled,\n feedback,\n showClockIcon = false,\n inputRef,\n label,\n labelTooltip,\n onChange,\n padding = 'default',\n readOnly,\n selectedTime,\n showSeconds,\n style,\n variant,\n ...rest\n}: SimpleTimePickerProps<TimeType>) => {\n const [inputText, setInputText] = useState('');\n const timeFieldRef = useRef<HTMLInputElement>(null);\n const [lastValidSelectedTime, setLastValidSelectedTime] =\n useState<MappedTimeValue<TimeType> | null>(null);\n\n const { locale } = useLocale();\n\n const state = useTimeFieldState({\n onChange,\n label: label,\n locale,\n value: selectedTime === null ? undefined : selectedTime,\n hideTimeZone: true,\n isDisabled: disabled,\n isReadOnly: readOnly,\n ...rest,\n });\n const { labelProps, fieldProps } = useTimeField<TimeType>(\n { ...rest, label: label },\n state,\n timeFieldRef,\n );\n\n useEffect(() => {\n updateInputWithSelectedTime();\n // @ts-expect-error TimeType and MappedTimeValue<TimeType> is actually the same\n if (selectedTime !== null) setLastValidSelectedTime(selectedTime);\n }, [selectedTime?.toString()]);\n\n const updateInputWithSelectedTime = () => {\n const selectedTimeString = getStringFromTimeValue(selectedTime);\n setInputText(selectedTimeString);\n\n const timeFieldIsFocused = document.activeElement === timeFieldRef?.current;\n if (selectedTimeString === '' && !timeFieldIsFocused)\n addPlaceholderToInput();\n };\n\n const getStringFromTimeValue = (timeValue: TimeValue | null) => {\n if (timeValue === null) return '';\n\n const timeObject = 'day' in timeValue ? toTime(timeValue) : timeValue;\n\n if (showSeconds) return timeObject.toString().slice(0, 8);\n\n return timeObject.toString().slice(0, 5);\n };\n\n const addPlaceholderToInput = () => {\n if (showSeconds) setInputText('–– : –– : ––');\n else setInputText('–– : ––');\n };\n\n const handleChangeTime = () => {\n const newTime = getValueForOnChangeFromInput();\n\n if (newTime === inputResult.INVALID) {\n return updateInputWithSelectedTime();\n }\n\n if (newTime?.toString() !== selectedTime?.toString()) onChange?.(newTime);\n };\n\n const getValueForOnChangeFromInput = () => {\n const formatedTimeString = formatTimeString(inputText);\n const newTimeObject = formatedTimeStringToTimeObject(formatedTimeString);\n\n if (newTimeObject === inputResult.INVALID) {\n return inputResult.INVALID;\n }\n if (newTimeObject === inputResult.RESET_TIME) {\n return null;\n }\n\n const updatedSelectedTime =\n getSelectedTimeWithTimeFromObject(newTimeObject);\n\n return updatedSelectedTime;\n };\n\n const formatTimeString = (timeString: string): string | inputResult => {\n if (timeString.length === 0) return inputResult.RESET_TIME;\n if (timeString.length < 3 || timeString.length > 8)\n return inputResult.INVALID;\n\n const numberOfColons = (timeString.match(new RegExp(':', 'g')) || [])\n .length;\n const stringLength = timeString.length;\n\n // targets 'd:dd:dd' and 'dd:dd:dd'\n if (numberOfColons === 2 && stringLength >= 7) {\n return timeString.padStart(8, '0');\n }\n\n // targets 'd:dd' and 'dd:dd'\n if (numberOfColons === 1) {\n return timeString.padStart(5, '0');\n }\n\n if (stringLength > 6) return inputResult.INVALID;\n\n const stringLengthIsEven = stringLength % 2 == 0;\n\n const hourString = stringLengthIsEven\n ? timeString.slice(0, 2)\n : timeString.slice(0, 1);\n const minuteString = stringLengthIsEven\n ? timeString.slice(2, 4)\n : timeString.slice(1, 3);\n const secondString = (() => {\n const stringSlice = stringLengthIsEven\n ? timeString.slice(4, 6)\n : timeString.slice(3, 5);\n if (stringSlice === '') return '00';\n return stringSlice;\n })();\n\n const timeStringWithColon =\n hourString.padStart(2, '0') +\n ':' +\n minuteString +\n (showSeconds ? ':' + secondString : '');\n\n return timeStringWithColon;\n };\n\n const formatedTimeStringToTimeObject = (\n formatedTimeString: string | inputResult,\n ): Time | inputResult => {\n if (formatedTimeString === inputResult.INVALID) return inputResult.INVALID;\n if (formatedTimeString === inputResult.RESET_TIME)\n return inputResult.RESET_TIME;\n\n const isNumberTest = /^\\d+$/;\n const hourString = formatedTimeString.slice(0, 2);\n const minuteString = formatedTimeString.slice(3, 5);\n const secondString = formatedTimeString.slice(6, 8);\n if (\n hourString.match(isNumberTest) &&\n minuteString.match(isNumberTest) &&\n (secondString === '' || secondString.match(isNumberTest))\n ) {\n try {\n const timeObject = parseTime(formatedTimeString);\n return timeObject;\n } catch (e) {\n return inputResult.INVALID;\n }\n }\n\n return inputResult.INVALID;\n };\n\n const getSelectedTimeWithTimeFromObject = (\n newTime: Time,\n ): MappedTimeValue<TimeType> => {\n const selectedTimeWithUpdateTime = (\n lastValidSelectedTime ?? new Time()\n ).set({\n hour: newTime.hour,\n minute: newTime.minute,\n second: newTime.second,\n }) as MappedTimeValue<TimeType>;\n\n return selectedTimeWithUpdateTime;\n };\n\n const {\n onBlur,\n onClick,\n onDragStart,\n onFocus,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onPointerDown,\n onPointerUp,\n ...usedFieldProps\n } = fieldProps;\n\n return (\n <I18nProvider locale={locale}>\n <TextField\n append={\n showClockIcon ? (\n <ClockIcon inline onClick={() => timeFieldRef?.current?.focus()} />\n ) : undefined\n }\n className={classNames('eds-simple-timepicker', {\n 'eds-simple-timepicker--padding-large': padding === 'large',\n 'eds-simple-timepicker--show-seconds': showSeconds,\n })}\n disabled={disabled}\n disableLabelAnimation\n feedback={feedback}\n label={label}\n labelProps={labelProps}\n labelTooltip={labelTooltip}\n onBlur={() => {\n handleChangeTime();\n if (selectedTime === null) {\n addPlaceholderToInput();\n }\n }}\n onChange={e => setInputText(e.target.value)}\n onFocus={() => {\n if (selectedTime === null) {\n setInputText('');\n }\n }}\n onKeyDown={({ key }) => {\n if (key === 'Enter') handleChangeTime();\n }}\n placeholder={showSeconds ? '–– : –– : ––' : '–– : ––'}\n readOnly={readOnly}\n ref={mergeRefs(timeFieldRef, inputRef)}\n style={style}\n value={inputText}\n variant={variant}\n {...usedFieldProps}\n />\n </I18nProvider>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('datepicker', 'form', 'icons');\n\nexport * from './DatePicker';\nexport * from './TimePicker';\nexport * from './shared';\n\nexport type {\n DateValue,\n CalendarDate,\n CalendarDateTime,\n ZonedDateTime,\n Time,\n} from '@internationalized/date';\nexport type { TimeValue } from '@react-types/datepicker';\n"],"names":["FieldSegment","segment","state","ref","useRef","useDateSegment","segmentProps","is12HourFormatted","segments","some","text","segmentDisplayText","match","padStart","React","createElement","className","classNames","isPlaceholder","tabIndex","isDisabled","nativeDateToDateTime","date","timeZone","offset","ZonedDateTime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","parseAbsolute","toISOString","CalendarDateTime","nativeDateToDateValue","noTimeOnlyDate","CalendarDate","nativeDateToTimeValue","noDateOnlyTime","Time","timeOrDateValueToNativeDate","value","timeZoneForCalendarDateTime","day","Date","setHours","hour","setMinutes","minute","setSeconds","second","toDate","getLocalTimeZone","year","month","createCalendar","identifier","GregorianCalendar","Error","ariaLabelIfNorwegian","norwegianAriaLabel","locale","propsCollection","toLowerCase","DateField","forwardRef","selectedDate","label","customLocale","showTimeZone","showTime","granularity","disabled","variant","feedback","validationVariant","validationFeedback","labelTooltip","minValue","minDate","maxValue","maxDate","style","parentLabelProps","labelProps","append","rest","_excluded","useLocale","useDateFieldState","undefined","hideTimeZone","dateFieldRef","useDateField","fieldProps","id","useRandomId","ConditionalWrapper","condition","wrapper","child","I18nProvider","BaseFormControl","labelId","mergeRefs","disableLabelAnimation","validationState","ariaAlertOnFeedback","map","i","key","CalendarButton","children","props","useButton","buttonProps","IconButton","CalendarCell","onSelectedCellClick","cellRef","useCalendarCell","cellProps","isSelected","isOutsideVisibleRange","isUnavailable","formattedDate","hidden","isEqualDay","now","onClick","e","onKeyDown","CalendarGrid","navigationDescription","calendarGridId","useCalendarGrid","gridProps","headerProps","weekDays","weeksInMonth","getWeeksInMonth","visibleRange","start","weeksArray","Array","from","keys","weekDaysMapped","includes","getNavigationDescription","Fragment","cellSpacing","index","weekIndex","getDatesInWeek","VisuallyHidden","Calendar","onChange","_","useCalendarState","useCalendar","calendarProps","prevButtonProps","nextButtonProps","title","LeftArrowIcon","size","RightArrowIcon","DatePicker","disableModal","modalTreshold","CALENDAR_MODAL_MAX_SCREEN_WIDTH","datePickerRef","calendarRef","useWindowDimensions","width","useDatePickerState","useDatePicker","groupProps","dialogProps","useFloating","whileElementsMounted","autoUpdate","placement","middleware","space","extraSmall","flip","shift","padding","x","y","reference","floating","strategy","onChangeCalendar","newSelectedDate","requestAnimationFrame","useOnClickOutside","setOpen","useOnEscape","calendarSharedProps","useModal","popoverCalendar","position","top","left","zIndex","zIndexes","popover","node","FocusLock","isOpen","returnFocus","modalCalendar","Modal","open","onDismiss","closeOnClickOutside","current","onPress","CalendarIcon","NativeDatePicker","prepend","DateIcon","inline","nativedatepickerId","isFilled","NativeDatePickerBase","_excluded2","contextVariant","useVariant","currentVariant","useInputGroupContext","isDatepickerFilled","setFiller","setFilled","useOnMount","useEffect","handleChange","event","target","type","TimePickerArrowButton","direction","ariaLabel","TimePicker","selectedTime","minuteIncrementForArrowButtons","leftArrowButtonAriaLabel","rightArrowButtonAriaLabel","inputRef","useTimeFieldState","timeFieldRef","useTimeField","handleOnClickArrowButton","minutes","someSegmentIsUndefined","setTimeToNearestMinuteIncrement","addMinutesToSelectedTime","currentTime","roundedMinute","Math","floor","newTime","set","setValue","add","NativeTimePicker","nativetimepickerId","NativeTimePickerBase","isTimepickerFilled","inputResult","SimpleTimePicker","showClockIcon","readOnly","showSeconds","useState","inputText","setInputText","lastValidSelectedTime","setLastValidSelectedTime","isReadOnly","updateInputWithSelectedTime","toString","selectedTimeString","getStringFromTimeValue","timeFieldIsFocused","document","activeElement","addPlaceholderToInput","timeValue","timeObject","toTime","slice","handleChangeTime","getValueForOnChangeFromInput","INVALID","formatedTimeString","formatTimeString","newTimeObject","formatedTimeStringToTimeObject","RESET_TIME","updatedSelectedTime","getSelectedTimeWithTimeFromObject","timeString","length","numberOfColons","RegExp","stringLength","stringLengthIsEven","hourString","minuteString","secondString","stringSlice","timeStringWithColon","isNumberTest","parseTime","selectedTimeWithUpdateTime","usedFieldProps","TextField","ClockIcon","focus","onBlur","onFocus","placeholder","warnAboutMissingStyles"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),a=require("react"),t=require("@react-stately/datepicker"),l=require("@react-aria/datepicker"),n=require("@react-aria/i18n"),r=require("classnames"),i=require("@entur/form"),o=require("@internationalized/date"),d=require("@react-aria/calendar"),s=require("@react-stately/calendar"),u=require("@entur/icons"),c=require("@react-aria/button"),f=require("@entur/button"),m=require("@entur/a11y"),p=require("@floating-ui/react-dom"),b=require("react-focus-lock"),v=require("@entur/tokens"),g=require("@entur/modal");function k(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=k(a),C=k(r),_=k(b);function y(){return y=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},y.apply(this,arguments)}function D(e,a){if(null==e)return{};var t,l,n={},r=Object.keys(e);for(l=0;l<r.length;l++)a.indexOf(t=r[l])>=0||(n[t]=e[t]);return n}var w=function(e){var t=e.segment,n=e.state,r=a.useRef(null),i=l.useDateSegment(t,n,r).segmentProps,o=n.segments.some((function(e){return"AM"===e.text||"PM"===e.text}));return h.default.createElement("div",y({},i,{ref:r,className:C.default("eds-date-and-time-field__segment",{"eds-date-and-time-field__segment--placeholder":t.isPlaceholder,"eds-date-and-time-field__segment--dot-separator":"."===t.text}),tabIndex:n.isDisabled?-1:i.tabIndex}),o?t.text:t.text.match(/\d+/)?t.text.padStart(2,"0"):t.text)},E=function(e,a,t){return a?t?new o.ZonedDateTime(e.getFullYear(),e.getMonth()+1,e.getDate(),a,t,e.getHours(),e.getMinutes(),e.getSeconds()):o.parseAbsolute(e.toISOString(),a):new o.CalendarDateTime(e.getFullYear(),e.getMonth()+1,e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())},T=function(e){if(void 0===e&&(e="gregory"),"gregory"===e)return new o.GregorianCalendar;throw new Error("Unsupported calendar "+e)},x=function(e,a,t){return"no-no"!==a.toLowerCase()?t["aria-label"]:e},P=["selectedDate","label","locale","showTimeZone","showTime","granularity","disabled","variant","feedback","validationVariant","validationFeedback","labelTooltip","minDate","maxDate","style","className","labelProps","append"],N=h.default.forwardRef((function(r,o){var d=r.selectedDate,s=r.label,u=r.locale,c=r.showTimeZone,f=r.showTime,m=r.granularity,p=void 0===m?"day":m,b=r.disabled,v=r.variant,g=r.feedback,k=r.validationVariant,_=void 0===k?"error":k,E=r.validationFeedback,x=void 0===E?"Ugyldig dato":E,N=r.labelTooltip,F=r.minDate,I=r.maxDate,S=r.style,A=r.className,O=r.labelProps,R=r.append,L=D(r,P),M=n.useLocale(),q=t.useDateFieldState(y({},L,{locale:null!=u?u:M.locale,createCalendar:T,value:null===d?void 0:d,hideTimeZone:!c,granularity:f?"minute":p,minValue:F,maxValue:I})),V=a.useRef(null),B=l.useDateField(y({},L,{label:s,isDisabled:b||L.isDisabled}),q,V),Z=B.labelProps,W=B.fieldProps,j=e.useRandomId("datefield");return h.default.createElement(e.ConditionalWrapper,{condition:void 0!==u,wrapper:function(e){return h.default.createElement(n.I18nProvider,{locale:u},e)}},h.default.createElement(i.BaseFormControl,y({style:S,className:C.default("eds-datefield",A),labelId:j,ref:e.mergeRefs(V,o),disabled:q.isDisabled,disableLabelAnimation:!0,label:s,labelTooltip:N,labelProps:null!=O?O:Z},W,{variant:(null!=v?v:"invalid"===q.validationState)?_:void 0,feedback:(null!=g?g:"invalid"===q.validationState)?x:void 0,append:R,ariaAlertOnFeedback:!0}),q.segments.map((function(e,a){return h.default.createElement(w,{segment:e,state:q,key:a})}))))})),F=["children","className","style"],I=function(e){var t=e.children,l=e.className,n=e.style,r=D(e,F),i=a.useRef(null),o=c.useButton(r,i);return h.default.createElement(f.IconButton,y({},o.buttonProps,{ref:i,className:l,style:n}),t)},S=["state","date","onSelectedCellClick"],A=function(e){var t,l=e.state,n=e.date,r=e.onSelectedCellClick,i=void 0===r?function(){}:r,s=D(e,S),u=a.useRef(null),c=d.useCalendarCell({date:n},l,u),f=c.buttonProps,m=c.isSelected,p=c.isOutsideVisibleRange,b=c.isDisabled,v=c.isUnavailable,g=c.formattedDate;return h.default.createElement("td",y({},c.cellProps,{className:"eds-datepicker__calendar__grid__cell__td"}),h.default.createElement("div",y({},f,{ref:u,hidden:p,className:C.default("eds-datepicker__calendar__grid__cell",{"eds-datepicker__calendar__grid__cell--selected":m,"eds-datepicker__calendar__grid__cell--disabled":b||v,"eds-datepicker__calendar__grid__cell--outside-month":p,"eds-datepicker__calendar__grid__cell--today":o.isEqualDay(n,o.now(null!=(t=l.timeZone)?t:o.getLocalTimeZone()))})},s,{onClick:function(e){f.onClick&&f.onClick(e),m&&i()},onKeyDown:function(e){f.onKeyDown&&f.onKeyDown(e),"Enter"!==e.key&&" "!==e.key||m&&i()}}),g))},O=["state","navigationDescription","onSelectedCellClick"],R=function(a){var t=a.state,l=a.navigationDescription,r=a.onSelectedCellClick,i=void 0===r?function(){}:r,s=D(a,O),u=e.useRandomId("eds-calendar"),c=n.useLocale().locale,f=d.useCalendarGrid(s,t),p=f.gridProps,b=f.headerProps,v=f.weekDays,g=o.getWeeksInMonth(t.visibleRange.start,c),k=Array.from(Array(g).keys());return h.default.createElement(h.default.Fragment,null,h.default.createElement("table",y({},p,{cellSpacing:"0",className:"eds-datepicker__calendar__grid"}),h.default.createElement("thead",y({},b),h.default.createElement("tr",null,function(){if(c.toLowerCase().includes("no"))return["ma","ti","on","to","fr","lø","sø"];if(c.toLowerCase().includes("en")){if("M"===v[0])return["Mo","Tu","We","Th","Fr","Sa","Su"];if("S"===v[0])return["Su","Mo","Tu","We","Th","Fr","Sa"]}return v.map((function(e){return e.toLowerCase()}))}().map((function(e,a){return h.default.createElement("th",{key:a},e)})))),h.default.createElement("tbody",null,k.map((function(e){return h.default.createElement("tr",{key:e},t.getDatesInWeek(e).map((function(e,a){return e?h.default.createElement(A,{key:a,state:t,date:e,"aria-describedby":u+"description",onSelectedCellClick:i}):h.default.createElement("td",{key:a})})))})))),h.default.createElement(m.VisuallyHidden,{id:u+"description"},l||(c.toLowerCase().includes("en")?"Use the arrow keys to navigate between dates":"Bruk piltastene til å navigere mellom datoer")))},L=["selectedDate","onChange","locale","style","children","navigationDescription","onSelectedCellClick"],M=h.default.forwardRef((function(a,t){var l=a.onChange,r=a.locale,i=a.style,o=a.navigationDescription,c=a.onSelectedCellClick,f=void 0===c?function(){}:c,m=D(a,L),p=n.useLocale().locale,b=s.useCalendarState(y({},m,{onChange:l,locale:null!=r?r:p,createCalendar:T})),v=d.useCalendar(m,b),g=v.prevButtonProps,k=v.nextButtonProps,C=v.title;return h.default.createElement(e.ConditionalWrapper,{condition:r,wrapper:function(e){return h.default.createElement(n.I18nProvider,{locale:r},e)}},h.default.createElement("div",y({},v.calendarProps,{ref:t,className:"eds-datepicker__calendar",style:i}),h.default.createElement("div",{className:"eds-datepicker__calendar__header"},h.default.createElement(I,y({},g,{"aria-label":x("Forrige måned",p,g)}),h.default.createElement(u.LeftArrowIcon,{size:20})),h.default.createElement("h2",null,C),h.default.createElement(I,y({},k,{"aria-label":x("Neste måned",p,k)}),h.default.createElement(u.RightArrowIcon,{size:20}))),h.default.createElement(R,{state:b,navigationDescription:o,onSelectedCellClick:f})))})),q=["selectedDate","onChange","locale","disabled","showTime","showTimeZone","className","style","variant","feedback","validationVariant","validationFeedback","disableModal","labelTooltip","navigationDescription","minDate","maxDate","modalTreshold"],V=["className","style","label","onChange","feedback","variant","disableLabelAnimation","prepend"],B=["onChange","variant","value"],Z=h.default.forwardRef((function(a,t){var l=a.className,n=a.style,r=a.label,o=a.onChange,d=a.feedback,s=a.variant,c=a.disableLabelAnimation,f=a.prepend,m=void 0===f?h.default.createElement(u.DateIcon,{inline:!0}):f,p=D(a,V),b=e.useRandomId("eds-nativetimepicker");return h.default.createElement(i.BaseFormControl,{style:n,className:l,prepend:m,label:r,feedback:d,variant:s,labelId:b,disableLabelAnimation:c,isFilled:!0},h.default.createElement(W,y({onChange:o,"aria-labelledby":b,ref:t,variant:s},p)))})),W=h.default.forwardRef((function(a,t){var l=a.onChange,n=a.variant,r=a.value,o=D(a,B),d=i.useVariant(),s=n||d,u=i.useInputGroupContext(),c=u.isFilled,f=u.setFilled;return e.useOnMount((function(){f&&!c&&f(!0)})),h.default.useEffect((function(){r?f&&!c&&f(!0):f&&c&&f(!1)}),[r,f,c]),h.default.createElement("input",y({ref:t,"aria-invalid":"error"===s,type:"date",className:"eds-form-control eds-native-date-picker",onChange:function(e){i.isFilled(e.target)?f&&!c&&f(!0):f&&c&&f(!1),l&&l(e)},value:r},o))})),j=function(e){var a=e.direction,t=e.onClick,l=e.disabled,n=e["aria-label"];return h.default.createElement(f.IconButton,{className:C.default("eds-timepicker__arrowbutton","eds-timepicker__arrowbutton--"+a,{"eds-timepicker__arrowbutton--disabled":l}),type:"button",tabIndex:-1,onClick:t,"aria-label":n,disabled:l},h.default.createElement("left"===a?u.LeftArrowIcon:u.RightArrowIcon,null))},z=["selectedTime","onChange","disabled","className","style","label","labelTooltip","feedback","variant","locale","showTimeZone","minuteIncrementForArrowButtons","leftArrowButtonAriaLabel","rightArrowButtonAriaLabel","inputRef"],H=["className","style","onChange","label","feedback","variant","prepend"],U=["onChange","value"],G=h.default.forwardRef((function(a,t){var l=a.className,n=a.style,r=a.onChange,o=a.label,d=a.feedback,s=a.variant,u=a.prepend,c=D(a,H),f=e.useRandomId("eds-native-timepicker");return h.default.createElement(i.BaseFormControl,{style:n,className:C.default(l,"eds-native-timepicker"),prepend:u,label:o,feedback:d,variant:s,labelId:f,disableLabelAnimation:!0},h.default.createElement(K,y({onChange:r,"aria-labelledby":f,ref:t},c)))})),K=h.default.forwardRef((function(a,t){var l=a.onChange,n=a.value,r=D(a,U),o=i.useVariant(),d=r.variant||o,s=i.useInputGroupContext(),u=s.isFilled,c=s.setFilled;return e.useOnMount((function(){c&&!u&&c(!0)})),h.default.useEffect((function(){n?c&&!u&&c(!0):c&&u&&c(!1)}),[n,c,u]),h.default.createElement("input",y({ref:t,"aria-invalid":"error"===d,type:"time",className:"eds-form-control",onChange:function(e){i.isFilled(e.target)?c&&!u&&c(!0):c&&u&&c(!1),l&&l(e)},value:n},r))}));e.warnAboutMissingStyles("datepicker","form","icons"),exports.Calendar=M,exports.DateField=N,exports.DatePicker=function(r){var i=r.selectedDate,o=r.onChange,d=r.locale,s=r.disabled,c=r.showTime,f=r.showTimeZone,m=void 0!==f&&f,b=r.className,k=r.variant,w=r.feedback,E=r.validationVariant,T=r.validationFeedback,x=r.disableModal,P=void 0!==x&&x,F=r.labelTooltip,S=r.navigationDescription,A=r.minDate,O=r.maxDate,R=r.modalTreshold,L=void 0===R?1e3:R,V=D(r,q),B=L,Z=a.useRef(null),W=a.useRef(null),j=a.useRef(null),z=e.useWindowDimensions().width,H=t.useDatePickerState(y({},V,{minValue:A,maxValue:O,value:null===i?void 0:i,onChange:o,granularity:c?"minute":V.granularity})),U=l.useDatePicker(y({isDisabled:s,minValue:A,maxValue:O},V),H,Z),G=U.groupProps,K=U.labelProps,Y=U.fieldProps,J=U.buttonProps,Q=U.dialogProps,X=U.calendarProps,$=p.useFloating({whileElementsMounted:p.autoUpdate,placement:"bottom-start",middleware:[p.offset(v.space.extraSmall),p.flip(),p.shift({padding:v.space.extraSmall})]}),ee=$.x,ae=$.y,te=$.reference,le=$.floating,ne=$.strategy;e.useOnClickOutside([W],(function(){H.setOpen(!1)})),e.useOnEscape(W,(function(){H.setOpen(!1)}));var re=y({},Q,X,{disabled:X.isDisabled,navigationDescription:S,onSelectedCellClick:function(){return H.setOpen(!1)},onChange:function(e){requestAnimationFrame((function(){X.onChange&&X.onChange(e)}))},granularity:c?"minute":V.granularity}),ie=z<=B&&!P,oe=h.default.createElement("div",{style:{position:ne,top:null!=ae?ae:0,left:null!=ee?ee:0,zIndex:v.zIndexes.popover},ref:function(e){le(e)}},h.default.createElement(_.default,{disabled:!H.isOpen||ie,returnFocus:!0},H.isOpen&&h.default.createElement(M,y({},re,{ref:W})))),de=h.default.createElement(g.Modal,{size:"small",title:"",open:H.isOpen,onDismiss:function(){return H.setOpen(!1)},closeOnClickOutside:!0,className:"eds-datepicker__calendar-modal"},h.default.createElement(M,y({},re)));return h.default.createElement(e.ConditionalWrapper,{condition:void 0!==d,wrapper:function(e){return h.default.createElement(n.I18nProvider,{locale:d},e)}},h.default.createElement("div",{className:C.default("eds-datepicker",b)},h.default.createElement("div",y({},G,{ref:function(e){Z.current=e,te(e)},id:void 0,className:"eds-datepicker__datefield__wrapper"}),h.default.createElement(N,y({},Y,{selectedDate:H.value,label:V.label,labelProps:K,showTime:c,showTimeZone:m,ref:j,variant:k,feedback:w,validationVariant:E,validationFeedback:T,labelTooltip:F,className:C.default("eds-datepicker__datefield",{"eds-datepicker__datefield--disabled":Y.isDisabled})})),!Y.isDisabled&&h.default.createElement(I,y({},J,{onPress:function(){return H.setOpen(!H.isOpen)},className:"eds-datepicker__open-calendar-button"}),h.default.createElement(u.CalendarIcon,null)),ie?de:oe)))},exports.NativeDatePicker=Z,exports.NativeTimePicker=G,exports.TimePicker=function(r){var d=r.selectedTime,s=r.onChange,u=r.disabled,c=r.className,f=r.style,m=r.label,p=r.labelTooltip,b=r.feedback,v=r.variant,g=r.locale,k=r.showTimeZone,_=r.minuteIncrementForArrowButtons,E=void 0===_?30:_,T=r.leftArrowButtonAriaLabel,x=void 0===T?"Trekk fra "+E+" minutter":T,P=r.rightArrowButtonAriaLabel,N=void 0===P?"Legg til "+E+" minutter":P,F=r.inputRef,I=D(r,z),S=n.useLocale().locale;g&&(S=g);var A=t.useTimeFieldState(y({onChange:s,label:m,locale:S,value:null===d?void 0:d,hideTimeZone:!k,isDisabled:u},I)),O=a.useRef(null),R=l.useTimeField(y({},I,{label:m}),A,O),L=R.labelProps,M=R.fieldProps,q=e.useRandomId("timepicker"),V=function(e){B?Z():W(e)},B=A.segments.some((function(e){return"––"===e.text})),Z=function(){var e=o.now(o.getLocalTimeZone()),a=Math.floor(e.minute/E)*E,t=e.set({minute:a});s(t)},W=function(e){var a;A.value&&A.setValue(null==(a=A.value)?void 0:a.add({minutes:e}))};return h.default.createElement(n.I18nProvider,{locale:S},h.default.createElement("div",{className:C.default(c,"eds-timepicker__wrapper")},h.default.createElement(j,{direction:"left",disabled:u,"aria-label":x,onClick:function(){return V(-1*E)}}),h.default.createElement(i.BaseFormControl,y({style:f,className:"eds-timepicker",labelId:q,label:m,labelProps:y({},L),ref:e.mergeRefs(O,F),disabled:u,disableLabelAnimation:!0,labelTooltip:p},M,{variant:v,feedback:b}),A.segments.map((function(e,a){return h.default.createElement(w,{segment:e,state:A,key:a})}))),h.default.createElement(j,{direction:"right",disabled:u,"aria-label":N,onClick:function(){return V(E)}})))},exports.ariaLabelIfNorwegian=x,exports.createCalendar=T,exports.nativeDateToDateValue=function(e,a,t,l){return void 0===a&&(a=!1),a?new o.CalendarDate(e.getFullYear(),e.getMonth()+1,e.getDate()):E(e,t,l)},exports.nativeDateToTimeValue=function(e,a,t,l){return void 0===a&&(a=!1),a?new o.Time(e.getHours(),e.getMinutes(),e.getSeconds(),0):E(e,t,l)},exports.timeOrDateValueToNativeDate=function(e,a){if(!e.day){var t=new Date;return t.setHours(e.hour),t.setMinutes(e.minute),t.setSeconds(e.second),t}return e.hour?e.timeZone?e.toDate():a?e.toDate(a):new Date(e.year,e.month-1,e.day,e.hour,e.minute,e.second):e.toDate(null!=a?a:o.getLocalTimeZone())};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),t=require("react"),a=require("@react-stately/datepicker"),n=require("@react-aria/datepicker"),l=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(t),C=k(r),E=k(b);function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},y.apply(this,arguments)}function D(e,t){if(null==e)return{};var a,n,l={},r=Object.keys(e);for(n=0;n<r.length;n++)t.indexOf(a=r[n])>=0||(l[a]=e[a]);return l}var _,w=function(e){var a=e.segment,l=e.state,r=t.useRef(null),i=n.useDateSegment(a,l,r).segmentProps,o=l.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":a.isPlaceholder,"eds-date-and-time-field__segment--dot-separator":"."===a.text}),tabIndex:l.isDisabled?-1:i.tabIndex}),o?a.text:a.text.match(/\d+/)?a.text.padStart(2,"0"):a.text)},T=function(e,t,a){return t?a?new o.ZonedDateTime(e.getFullYear(),e.getMonth()+1,e.getDate(),t,a,e.getHours(),e.getMinutes(),e.getSeconds()):o.parseAbsolute(e.toISOString(),t):new o.CalendarDateTime(e.getFullYear(),e.getMonth()+1,e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())},I=function(e){if(void 0===e&&(e="gregory"),"gregory"===e)return new o.GregorianCalendar;throw new Error("Unsupported calendar "+e)},S=function(e,t,a){return"no-no"!==t.toLowerCase()?a["aria-label"]:e},N=["selectedDate","label","locale","showTimeZone","showTime","granularity","disabled","variant","feedback","validationVariant","validationFeedback","labelTooltip","minDate","maxDate","style","className","labelProps","append"],P=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,E=void 0===k?"error":k,_=r.validationFeedback,T=void 0===_?"Ugyldig dato":_,S=r.labelTooltip,P=r.minDate,x=r.maxDate,A=r.style,F=r.className,L=r.labelProps,R=r.append,O=D(r,N),V=l.useLocale(),M=a.useDateFieldState(y({},O,{locale:null!=u?u:V.locale,createCalendar:I,value:null===d?void 0:d,hideTimeZone:!c,granularity:f?"minute":p,minValue:P,maxValue:x})),q=t.useRef(null),B=n.useDateField(y({},O,{label:s,isDisabled:b||O.isDisabled}),M,q),Z=B.labelProps,W=B.fieldProps,U=e.useRandomId("datefield");return h.default.createElement(e.ConditionalWrapper,{condition:void 0!==u,wrapper:function(e){return h.default.createElement(l.I18nProvider,{locale:u},e)}},h.default.createElement(i.BaseFormControl,y({style:A,className:C.default("eds-datefield",F),labelId:U,ref:e.mergeRefs(q,o),disabled:M.isDisabled,disableLabelAnimation:!0,label:s,labelTooltip:S,labelProps:null!=L?L:Z},W,{variant:(null!=v?v:"invalid"===M.validationState)?E:void 0,feedback:(null!=g?g:"invalid"===M.validationState)?T:void 0,append:R,ariaAlertOnFeedback:!0}),M.segments.map((function(e,t){return h.default.createElement(w,{segment:e,state:M,key:t})}))))})),x=["children","className","style"],A=function(e){var a=e.children,n=e.className,l=e.style,r=D(e,x),i=t.useRef(null),o=c.useButton(r,i);return h.default.createElement(f.IconButton,y({},o.buttonProps,{ref:i,className:n,style:l}),a)},F=["state","date","onSelectedCellClick"],L=function(e){var a,n=e.state,l=e.date,r=e.onSelectedCellClick,i=void 0===r?function(){}:r,s=D(e,F),u=t.useRef(null),c=d.useCalendarCell({date:l},n,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(l,o.now(null!=(a=n.timeZone)?a: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))},R=["state","navigationDescription","onSelectedCellClick"],O=function(t){var a=t.state,n=t.navigationDescription,r=t.onSelectedCellClick,i=void 0===r?function(){}:r,s=D(t,R),u=e.useRandomId("eds-calendar"),c=l.useLocale().locale,f=d.useCalendarGrid(s,a),p=f.gridProps,b=f.headerProps,v=f.weekDays,g=o.getWeeksInMonth(a.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,t){return h.default.createElement("th",{key:t},e)})))),h.default.createElement("tbody",null,k.map((function(e){return h.default.createElement("tr",{key:e},a.getDatesInWeek(e).map((function(e,t){return e?h.default.createElement(L,{key:t,state:a,date:e,"aria-describedby":u+"description",onSelectedCellClick:i}):h.default.createElement("td",{key:t})})))})))),h.default.createElement(m.VisuallyHidden,{id:u+"description"},n||(c.toLowerCase().includes("en")?"Use the arrow keys to navigate between dates":"Bruk piltastene til å navigere mellom datoer")))},V=["selectedDate","onChange","locale","style","children","navigationDescription","onSelectedCellClick"],M=h.default.forwardRef((function(t,a){var n=t.onChange,r=t.locale,i=t.style,o=t.navigationDescription,c=t.onSelectedCellClick,f=void 0===c?function(){}:c,m=D(t,V),p=l.useLocale().locale,b=s.useCalendarState(y({},m,{onChange:n,locale:null!=r?r:p,createCalendar:I})),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(l.I18nProvider,{locale:r},e)}},h.default.createElement("div",y({},v.calendarProps,{ref:a,className:"eds-datepicker__calendar",style:i}),h.default.createElement("div",{className:"eds-datepicker__calendar__header"},h.default.createElement(A,y({},g,{"aria-label":S("Forrige måned",p,g)}),h.default.createElement(u.LeftArrowIcon,{size:20})),h.default.createElement("h2",null,C),h.default.createElement(A,y({},k,{"aria-label":S("Neste måned",p,k)}),h.default.createElement(u.RightArrowIcon,{size:20}))),h.default.createElement(O,{state:b,navigationDescription:o,onSelectedCellClick:f})))})),q=["selectedDate","onChange","locale","disabled","showTime","showTimeZone","className","style","variant","feedback","validationVariant","validationFeedback","disableModal","labelTooltip","navigationDescription","minDate","maxDate","modalTreshold"],B=["className","style","label","onChange","feedback","variant","disableLabelAnimation","prepend"],Z=["onChange","variant","value"],W=h.default.forwardRef((function(t,a){var n=t.className,l=t.style,r=t.label,o=t.onChange,d=t.feedback,s=t.variant,c=t.disableLabelAnimation,f=t.prepend,m=void 0===f?h.default.createElement(u.DateIcon,{inline:!0}):f,p=D(t,B),b=e.useRandomId("eds-nativetimepicker");return h.default.createElement(i.BaseFormControl,{style:l,className:n,prepend:m,label:r,feedback:d,variant:s,labelId:b,disableLabelAnimation:c,isFilled:!0},h.default.createElement(U,y({onChange:o,"aria-labelledby":b,ref:a,variant:s},p)))})),U=h.default.forwardRef((function(t,a){var n=t.onChange,l=t.variant,r=t.value,o=D(t,Z),d=i.useVariant(),s=l||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:a,"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),n&&n(e)},value:r},o))})),j=function(e){var t=e.direction,a=e.onClick,n=e.disabled,l=e["aria-label"];return h.default.createElement(f.IconButton,{className:C.default("eds-timepicker__arrowbutton","eds-timepicker__arrowbutton--"+t,{"eds-timepicker__arrowbutton--disabled":n}),type:"button",tabIndex:-1,onClick:a,"aria-label":l,disabled:n},h.default.createElement("left"===t?u.LeftArrowIcon:u.RightArrowIcon,null))},z=["selectedTime","onChange","disabled","className","style","label","labelTooltip","feedback","variant","locale","showTimeZone","minuteIncrementForArrowButtons","leftArrowButtonAriaLabel","rightArrowButtonAriaLabel","inputRef"],K=["className","style","onChange","label","feedback","variant","prepend"],H=["onChange","value"],G=h.default.forwardRef((function(t,a){var n=t.className,l=t.style,r=t.onChange,o=t.label,d=t.feedback,s=t.variant,u=t.prepend,c=D(t,K),f=e.useRandomId("eds-native-timepicker");return h.default.createElement(i.BaseFormControl,{style:l,className:C.default(n,"eds-native-timepicker"),prepend:u,label:o,feedback:d,variant:s,labelId:f,disableLabelAnimation:!0},h.default.createElement(Y,y({onChange:r,"aria-labelledby":f,ref:a},c)))})),Y=h.default.forwardRef((function(t,a){var n=t.onChange,l=t.value,r=D(t,H),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(){l?c&&!u&&c(!0):c&&u&&c(!1)}),[l,c,u]),h.default.createElement("input",y({ref:a,"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),n&&n(e)},value:l},r))})),$=["className","disabled","feedback","showClockIcon","inputRef","label","labelTooltip","onChange","padding","readOnly","selectedTime","showSeconds","style","variant"],J=["onBlur","onClick","onDragStart","onFocus","onKeyDown","onKeyUp","onMouseDown","onPointerDown","onPointerUp"];!function(e){e[e.RESET_TIME=0]="RESET_TIME",e[e.INVALID=1]="INVALID"}(_||(_={})),e.warnAboutMissingStyles("datepicker","form","icons"),exports.Calendar=M,exports.DateField=P,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,_=r.feedback,w=r.validationVariant,T=r.validationFeedback,I=r.disableModal,S=void 0!==I&&I,N=r.labelTooltip,x=r.navigationDescription,F=r.minDate,L=r.maxDate,R=r.modalTreshold,O=void 0===R?1e3:R,V=D(r,q),B=O,Z=t.useRef(null),W=t.useRef(null),U=t.useRef(null),j=e.useWindowDimensions().width,z=a.useDatePickerState(y({},V,{minValue:F,maxValue:L,value:null===i?void 0:i,onChange:o,granularity:c?"minute":V.granularity})),K=n.useDatePicker(y({isDisabled:s,minValue:F,maxValue:L},V),z,Z),H=K.groupProps,G=K.labelProps,Y=K.fieldProps,$=K.buttonProps,J=K.dialogProps,Q=K.calendarProps,X=p.useFloating({whileElementsMounted:p.autoUpdate,placement:"bottom-start",middleware:[p.offset(v.space.extraSmall),p.flip(),p.shift({padding:v.space.extraSmall})]}),ee=X.x,te=X.y,ae=X.reference,ne=X.floating,le=X.strategy;e.useOnClickOutside([W],(function(){z.setOpen(!1)})),e.useOnEscape(W,(function(){z.setOpen(!1)}));var re=y({},J,Q,{disabled:Q.isDisabled,navigationDescription:x,onSelectedCellClick:function(){return z.setOpen(!1)},onChange:function(e){requestAnimationFrame((function(){Q.onChange&&Q.onChange(e)}))},granularity:c?"minute":V.granularity}),ie=j<=B&&!S,oe=h.default.createElement("div",{style:{position:le,top:null!=te?te:0,left:null!=ee?ee:0,zIndex:v.zIndexes.popover},ref:function(e){ne(e)}},h.default.createElement(E.default,{disabled:!z.isOpen||ie,returnFocus:!0},z.isOpen&&h.default.createElement(M,y({},re,{ref:W})))),de=h.default.createElement(g.Modal,{size:"small",title:"",open:z.isOpen,onDismiss:function(){return z.setOpen(!1)},closeOnClickOutside:!0,className:"eds-datepicker__calendar-modal"},h.default.createElement(M,y({},re)));return h.default.createElement(e.ConditionalWrapper,{condition:void 0!==d,wrapper:function(e){return h.default.createElement(l.I18nProvider,{locale:d},e)}},h.default.createElement("div",{className:C.default("eds-datepicker",b)},h.default.createElement("div",y({},H,{ref:function(e){Z.current=e,ae(e)},id:void 0,className:"eds-datepicker__datefield__wrapper"}),h.default.createElement(P,y({},Y,{selectedDate:z.value,label:V.label,labelProps:G,showTime:c,showTimeZone:m,ref:U,variant:k,feedback:_,validationVariant:w,validationFeedback:T,labelTooltip:N,className:C.default("eds-datepicker__datefield",{"eds-datepicker__datefield--disabled":Y.isDisabled})})),!Y.isDisabled&&h.default.createElement(A,y({},$,{onPress:function(){return z.setOpen(!z.isOpen)},className:"eds-datepicker__open-calendar-button"}),h.default.createElement(u.CalendarIcon,null)),ie?de:oe)))},exports.NativeDatePicker=W,exports.NativeTimePicker=G,exports.SimpleTimePicker=function(r){var d=r.disabled,s=r.feedback,c=r.showClockIcon,f=void 0!==c&&c,m=r.inputRef,p=r.label,b=r.labelTooltip,v=r.onChange,g=r.padding,k=void 0===g?"default":g,E=r.readOnly,w=r.selectedTime,T=r.showSeconds,I=r.style,S=r.variant,N=D(r,$),P=t.useState(""),x=P[0],A=P[1],F=t.useRef(null),L=t.useState(null),R=L[0],O=L[1],V=l.useLocale().locale,M=a.useTimeFieldState(y({onChange:v,label:p,locale:V,value:null===w?void 0:w,hideTimeZone:!0,isDisabled:d,isReadOnly:E},N)),q=n.useTimeField(y({},N,{label:p}),M,F),B=q.labelProps,Z=q.fieldProps;t.useEffect((function(){W(),null!==w&&O(w)}),[null==w?void 0:w.toString()]);var W=function(){var e=U(w);A(e);var t=document.activeElement===(null==F?void 0:F.current);""!==e||t||j()},U=function(e){if(null===e)return"";var t="day"in e?o.toTime(e):e;return T?t.toString().slice(0,8):t.toString().slice(0,5)},j=function(){A(T?"–– : –– : ––":"–– : ––")},z=function(){var e=K();if(e===_.INVALID)return W();(null==e?void 0:e.toString())!==(null==w?void 0:w.toString())&&(null==v||v(e))},K=function(){var e=H(x),t=G(e);return t===_.INVALID?_.INVALID:t===_.RESET_TIME?null:Y(t)},H=function(e){if(0===e.length)return _.RESET_TIME;if(e.length<3||e.length>8)return _.INVALID;var t=(e.match(new RegExp(":","g"))||[]).length,a=e.length;if(2===t&&a>=7)return e.padStart(8,"0");if(1===t)return e.padStart(5,"0");if(a>6)return _.INVALID;var n,l=a%2==0,r=e.slice(0,l?2:1),i=l?e.slice(2,4):e.slice(1,3),o=""===(n=l?e.slice(4,6):e.slice(3,5))?"00":n;return r.padStart(2,"0")+":"+i+(T?":"+o:"")},G=function(e){if(e===_.INVALID)return _.INVALID;if(e===_.RESET_TIME)return _.RESET_TIME;var t=/^\d+$/,a=e.slice(0,2),n=e.slice(3,5),l=e.slice(6,8);if(a.match(t)&&n.match(t)&&(""===l||l.match(t)))try{return o.parseTime(e)}catch(e){return _.INVALID}return _.INVALID},Y=function(e){return(null!=R?R:new o.Time).set({hour:e.hour,minute:e.minute,second:e.second})},Q=D(Z,J);return h.default.createElement(l.I18nProvider,{locale:V},h.default.createElement(i.TextField,y({append:f?h.default.createElement(u.ClockIcon,{inline:!0,onClick:function(){var e;return null==F||null==(e=F.current)?void 0:e.focus()}}):void 0,className:C.default("eds-simple-timepicker",{"eds-simple-timepicker--padding-large":"large"===k,"eds-simple-timepicker--show-seconds":T}),disabled:d,disableLabelAnimation:!0,feedback:s,label:p,labelProps:B,labelTooltip:b,onBlur:function(){z(),null===w&&j()},onChange:function(e){return A(e.target.value)},onFocus:function(){null===w&&A("")},onKeyDown:function(e){"Enter"===e.key&&z()},placeholder:T?"–– : –– : ––":"–– : ––",readOnly:E,ref:e.mergeRefs(F,m),style:I,value:x,variant:S},Q)))},exports.TimePicker=function(r){var d=r.selectedTime,s=r.onChange,u=r.disabled,c=r.className,f=r.style,m=r.label,p=r.labelTooltip,b=r.feedback,v=r.variant,g=r.locale,k=r.showTimeZone,E=r.minuteIncrementForArrowButtons,_=void 0===E?30:E,T=r.leftArrowButtonAriaLabel,I=void 0===T?"Trekk fra "+_+" minutter":T,S=r.rightArrowButtonAriaLabel,N=void 0===S?"Legg til "+_+" minutter":S,P=r.inputRef,x=D(r,z),A=l.useLocale().locale;g&&(A=g);var F=a.useTimeFieldState(y({onChange:s,label:m,locale:A,value:null===d?void 0:d,hideTimeZone:!k,isDisabled:u},x)),L=t.useRef(null),R=n.useTimeField(y({},x,{label:m}),F,L),O=R.labelProps,V=R.fieldProps,M=e.useRandomId("timepicker"),q=function(e){B?Z():W(e)},B=F.segments.some((function(e){return"––"===e.text})),Z=function(){var e=o.now(o.getLocalTimeZone()),t=Math.floor(e.minute/_)*_,a=e.set({minute:t});s(a)},W=function(e){var t;F.value&&F.setValue(null==(t=F.value)?void 0:t.add({minutes:e}))};return h.default.createElement(l.I18nProvider,{locale:A},h.default.createElement("div",{className:C.default(c,"eds-timepicker__wrapper")},h.default.createElement(j,{direction:"left",disabled:u,"aria-label":I,onClick:function(){return q(-1*_)}}),h.default.createElement(i.BaseFormControl,y({style:f,className:"eds-timepicker",labelId:M,label:m,labelProps:y({},O),ref:e.mergeRefs(L,P),disabled:u,disableLabelAnimation:!0,labelTooltip:p},V,{variant:v,feedback:b}),F.segments.map((function(e,t){return h.default.createElement(w,{segment:e,state:F,key:t})}))),h.default.createElement(j,{direction:"right",disabled:u,"aria-label":N,onClick:function(){return q(_)}})))},exports.ariaLabelIfNorwegian=S,exports.createCalendar=I,exports.nativeDateToDateValue=function(e,t,a,n){return void 0===t&&(t=!1),t?new o.CalendarDate(e.getFullYear(),e.getMonth()+1,e.getDate()):T(e,a,n)},exports.nativeDateToTimeValue=function(e,t,a,n){return void 0===t&&(t=!1),t?new o.Time(e.getHours(),e.getMinutes(),e.getSeconds(),0):T(e,a,n)},exports.timeOrDateValueToNativeDate=function(e,t){if(!e.day){var a=new Date;return a.setHours(e.hour),a.setMinutes(e.minute),a.setSeconds(e.second),a}return e.hour?e.timeZone?e.toDate():t?e.toDate(t):new Date(e.year,e.month-1,e.day,e.hour,e.minute,e.second):e.toDate(null!=t?t:o.getLocalTimeZone())};
|
|
2
2
|
//# sourceMappingURL=datepicker.cjs.production.min.js.map
|