@entur/datepicker 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/datepicker.cjs.development.js +2 -0
- 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 +2 -0
- package/dist/datepicker.esm.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.0.3](https://bitbucket.org/enturas/design-system/compare/@entur/datepicker@2.0.2...@entur/datepicker@2.0.3) (2022-05-04)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **datepicker:** fix form being submitted on clicking month change buttons ([6c3a32d](https://bitbucket.org/enturas/design-system/commits/6c3a32de335a07c0ebbe06e2c7107a9c08cc7135))
|
|
11
|
+
|
|
6
12
|
## [2.0.2](https://bitbucket.org/enturas/design-system/compare/@entur/datepicker@2.0.1...@entur/datepicker@2.0.2) (2022-04-27)
|
|
7
13
|
|
|
8
14
|
**Note:** Version bump only for package @entur/datepicker
|
|
@@ -104,6 +104,7 @@ var DatePickerHeader = function DatePickerHeader(_ref) {
|
|
|
104
104
|
return React__default["default"].createElement("div", {
|
|
105
105
|
className: "eds-datepicker__calender__header"
|
|
106
106
|
}, React__default["default"].createElement(button.IconButton, {
|
|
107
|
+
type: "button",
|
|
107
108
|
className: "eds-datepicker__calender__header__month-button--left",
|
|
108
109
|
onClick: decreaseMonth,
|
|
109
110
|
disabled: prevMonthButtonDisabled
|
|
@@ -112,6 +113,7 @@ var DatePickerHeader = function DatePickerHeader(_ref) {
|
|
|
112
113
|
}, monthNames[(_date$getMonth = date == null ? void 0 : date.getMonth()) != null ? _date$getMonth : 0]), React__default["default"].createElement(typography.Heading3, {
|
|
113
114
|
className: "eds-datepicker__calender__header__month-text"
|
|
114
115
|
}, date == null ? void 0 : date.getFullYear()), React__default["default"].createElement(button.IconButton, {
|
|
116
|
+
type: "button",
|
|
115
117
|
className: "eds-datepicker__calender__header__month-button--right",
|
|
116
118
|
onClick: increaseMonth,
|
|
117
119
|
disabled: nextMonthButtonDisabled
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.cjs.development.js","sources":["../src/DatePicker/DatePickerHeader.tsx","../src/DatePicker/DatePickerInput.tsx","../src/DatePicker/DatePicker.tsx","../src/NativeDatePicker.tsx","../src/TimePicker.tsx","../src/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport { ReactDatePickerCustomHeaderProps } from 'react-datepicker';\n\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { Heading3 } from '@entur/typography';\nimport { IconButton } from '@entur/button';\n\nexport const DatePickerHeader = ({\n date,\n decreaseMonth,\n increaseMonth,\n prevMonthButtonDisabled,\n nextMonthButtonDisabled,\n}: Partial<ReactDatePickerCustomHeaderProps>) => {\n const monthNames = getMonthList();\n return (\n <div className=\"eds-datepicker__calender__header\">\n <IconButton\n className=\"eds-datepicker__calender__header__month-button--left\"\n onClick={decreaseMonth}\n disabled={prevMonthButtonDisabled}\n >\n <LeftArrowIcon />\n </IconButton>\n <Heading3 className=\"eds-datepicker__calender__header__month-text\">\n {monthNames[date?.getMonth() ?? 0]}\n </Heading3>\n <Heading3 className=\"eds-datepicker__calender__header__month-text\">\n {date?.getFullYear()}\n </Heading3>\n\n <IconButton\n className=\"eds-datepicker__calender__header__month-button--right\"\n onClick={increaseMonth}\n disabled={nextMonthButtonDisabled}\n >\n <RightArrowIcon />\n </IconButton>\n </div>\n );\n};\n\nfunction getMonthList(locale = 'nb') {\n const year = new Date().getFullYear();\n const monthList = Array(12).keys();\n const formatter = new Intl.DateTimeFormat(locale, {\n month: 'long',\n });\n const getMonthName = (monthIndex: number) =>\n formatter.format(new Date(year, monthIndex));\n\n return Array.from(monthList, getMonthName);\n}\n","import React from 'react';\n\nimport { TextField, VariantType } from '@entur/form';\nimport { Tooltip } from '@entur/tooltip';\nimport { IconButton } from '@entur/button';\nimport { CalendarIcon } from '@entur/icons';\n\ntype DatePickerInputProps = {\n style?: React.CSSProperties;\n label: string;\n inputPlaceholder: string;\n prepend?: React.ReactNode;\n feedback?: string;\n variant?: VariantType;\n disabled?: boolean;\n disableLabelAnimation?: boolean;\n calendarButtonTooltip: string;\n hideCalendarButton?: boolean;\n inputRef: React.RefObject<HTMLInputElement>;\n forwardRef: React.ForwardedRef<HTMLInputElement>;\n toggleCalendarGUI: () => void;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLInputElement>;\n onKeyDownInput: (event: KeyboardEvent) => any;\n onBlurInput: (event: FocusEvent) => any;\n onFocus: undefined; // To prevent open on focus\n selectedDate: Date | null; // Necessary to update component on state change\n placeholder?: null; // override react-datepickers placeholder prop\n};\n\nexport const DatePickerInput = React.forwardRef<\n HTMLInputElement,\n DatePickerInputProps\n>(\n (\n {\n style,\n label,\n inputPlaceholder,\n prepend,\n feedback,\n variant,\n disabled,\n calendarButtonTooltip,\n hideCalendarButton,\n disableLabelAnimation,\n inputRef,\n forwardRef,\n toggleCalendarGUI,\n onKeyDownInput,\n onBlurInput,\n selectedDate,\n placeholder, // eslint-disable-line\n ...rest // forwarded props from react-datepicker\n },\n ref,\n ) => {\n React.useEffect(() => {\n inputRef.current?.addEventListener('keydown', handleOnKeyDown);\n inputRef.current?.addEventListener('blur', handleOnBlur);\n inputRef.current?.addEventListener('focus', handleOnFocus);\n return () => {\n inputRef.current?.removeEventListener('keydown', handleOnKeyDown);\n inputRef.current?.removeEventListener('blur', handleOnBlur);\n inputRef.current?.removeEventListener('focus', handleOnFocus);\n };\n }, [inputRef, selectedDate]);\n\n function handleOnKeyDown(this: HTMLElement, event: KeyboardEvent) {\n onKeyDownInput(event);\n }\n function handleOnBlur(this: HTMLElement, event: FocusEvent) {\n onBlurInput(event);\n }\n function handleOnFocus() {\n setTimeout(() => inputRef.current?.select(), 5);\n }\n\n return (\n <TextField\n style={style}\n label={label}\n placeholder={inputPlaceholder}\n prepend={prepend}\n feedback={feedback}\n variant={variant}\n disableLabelAnimation={disableLabelAnimation}\n ref={mergeRefs(ref, inputRef, forwardRef)}\n append={\n !hideCalendarButton && (\n <Tooltip\n placement=\"top\"\n content={calendarButtonTooltip}\n disableHoverListener={disabled}\n disableFocusListener={disabled}\n >\n <IconButton type=\"button\" onClick={toggleCalendarGUI}>\n <CalendarIcon />\n </IconButton>\n </Tooltip>\n )\n }\n {...rest}\n />\n );\n },\n);\n\nconst mergeRefs = <T extends HTMLElement>(\n ...refs: React.MutableRefObject<T>[] | React.ForwardedRef<T>[]\n) => {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) ref.current = node;\n }\n };\n};\n","import React, { useRef, useState } from 'react';\nimport ReactDatePicker, {\n default as ReactDatepicker,\n ReactDatePickerProps,\n registerLocale,\n} from 'react-datepicker';\nimport { parse, isSameDay, Locale } from 'date-fns';\nimport { nb } from 'date-fns/locale';\nimport classNames from 'classnames';\n\nimport { VariantType } from '@entur/form';\nimport { useRandomId } from '@entur/utils';\n\nimport { DatePickerHeader } from './DatePickerHeader';\nimport { DatePickerInput } from './DatePickerInput';\n\nimport './DatePicker.scss';\nimport 'react-datepicker/dist/react-datepicker.css';\n\nregisterLocale('nb', nb);\n\nexport type DatePickerProps = {\n /** Hva som er den valgte datoen */\n selectedDate: Date | null;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event> | undefined,\n ) => void;\n /**\n * Kalles når en tast trykkes i inputfeltet\n */\n onKeyDown?: (event: KeyboardEvent) => void;\n /**\n * Datoformater som skal støttes. Første i listen er formatet alt input omgjøres til.\n * Format-valg tilgjengelig her: https://date-fns.org/v2.28.0/docs/format\n * OBS: Noen kombinasjoner av datoformater kan gi rar og uønsket oppførsel,\n * test nøye ved endring\n * @default \"['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy', 'ddMMyy']\"\n */\n dateFormats?: string[];\n /**\n * Locale fra date-fns som brukes av Datepicker-en\n * @default nb\n */\n locale?: Locale;\n /** Placeholder om ingen dato er valgt\n * @default \"dd.mm.yyyy\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over DatePicker */\n label: string;\n /**\n * Varselmelding, som vil komme under DatePicker\n */\n feedback?: string;\n /** Valideringsvariant\n */\n variant?: VariantType;\n /** Varselmelding for når datoen er på feil format\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om feil datoformat\n * @default \"error\"\n */\n validationVariant?: VariantType;\n style?: React.CSSProperties;\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 /**\n * Tekst som vises ved hover på «Åpne kalender»-knappen\n */\n calendarButtonTooltip?: string;\n /** Skjuler knapp for åpning av kalender\n * @default false\n */\n hideCalendarButton?: boolean;\n /** Skjuler tilbakemeldingsteksten ved feil dato-input\n * @default false\n */\n hideValidation?: boolean;\n /** Skjuler kalender-GUI-et\n * @default false\n */\n hideCalendar?: boolean;\n /** Viser kun kalender-popover-en\n * @default false\n */\n inline?: boolean;\n // For testing\n 'data-cy'?: any;\n} & Omit<\n ReactDatePickerProps,\n 'selected' | 'customInput' | 'onChangeRaw' | 'dateFormat' | 'locale'\n>;\n\nexport const DatePicker = React.forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n style,\n className,\n selectedDate,\n label,\n placeholder = 'dd.mm.yyyy',\n onChange,\n onKeyDown = () => null,\n dateFormats = ['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy', 'ddMMyy'],\n minDate,\n maxDate,\n inline = false,\n disabled,\n prepend,\n feedback = '',\n variant,\n validationFeedback = 'Ugyldig dato',\n validationVariant = 'error',\n disableLabelAnimation = false,\n calendarButtonTooltip = 'Åpne\\xa0kalender',\n hideCalendarButton = false,\n hideCalendar = false,\n hideValidation = false,\n weekLabel = 'uke',\n locale = nb,\n open,\n ...rest\n },\n ref,\n ) => {\n const datepickerId = useRandomId('eds-datepicker');\n\n const [showValidation, setShowValidation] = useState(false);\n\n const datepickerRef = useRef<ReactDatePicker>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => validateInput(), [selectedDate]);\n\n const handleOnKeyDown = (event: KeyboardEvent) => {\n const calendarIsClosed = !datepickerRef.current?.isCalendarOpen();\n\n setShowValidation(false);\n if (event.key === 'Enter') {\n validateInput();\n focusAndSelectInputField();\n forceUpdateInputFormat();\n } else if (event.key === 'Tab' && calendarIsClosed) {\n validateInput();\n forceUpdateInputFormat();\n }\n onKeyDown(event);\n };\n\n const validateInput = () => {\n setShowValidation(false);\n const inputValue = inputRef.current?.value;\n if (!inputValue) return;\n\n const inputValueParsedWithAllDateFormats = dateFormats.map(format =>\n parse(inputValue, format, new Date(), {\n locale: locale,\n }),\n );\n\n const parsedDateFromInputIsTheSameAsSelectedDate =\n selectedDate &&\n inputValueParsedWithAllDateFormats.some(dateFormat =>\n isSameDay(dateFormat, selectedDate),\n );\n\n if (parsedDateFromInputIsTheSameAsSelectedDate) {\n // valid date inputted\n setShowValidation(false);\n } else {\n // invalid date inputted\n setShowValidation(true);\n }\n };\n\n const getFeedbackAndVariant = (): {\n feedback: string;\n variant: VariantType | undefined;\n } => {\n if (feedback) return { feedback, variant };\n if (!hideValidation && showValidation)\n return { feedback: validationFeedback, variant: validationVariant };\n return { feedback: '', variant: undefined };\n };\n\n const focusAndSelectInputField = () =>\n setTimeout(() => {\n inputRef.current?.select();\n }, 5);\n\n const forceUpdateInputFormat = () =>\n datepickerRef.current?.setState({ inputValue: null });\n\n const toggleCalendarGUI = () =>\n datepickerRef.current?.setOpen(!datepickerRef.current?.isCalendarOpen());\n\n return (\n <>\n <ReactDatepicker\n selected={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n dateFormat={dateFormats}\n showWeekNumbers\n weekLabel={weekLabel}\n onChange={onChange}\n onClickOutside={validateInput}\n id={datepickerId}\n ariaLabelledBy={datepickerId}\n showPopperArrow={false}\n locale={locale}\n inline={inline}\n disabled={disabled}\n preventOpenOnFocus={true}\n open={hideCalendar ? false : open}\n ref={datepickerRef}\n calendarClassName=\"eds-datepicker__calender\"\n dayClassName={() => 'eds-datepicker__calender__day'}\n weekDayClassName={() => 'eds-datepicker__calender__day-name'}\n className={classNames(className, 'eds-datepicker__input')}\n highlightDates={[\n { 'eds-datepicker__calender__day--today': [new Date()] },\n {\n 'eds-datepicker__calender__day--selected': selectedDate\n ? [selectedDate]\n : [],\n },\n ]}\n renderCustomHeader={({\n date,\n changeYear,\n changeMonth,\n decreaseMonth,\n increaseMonth,\n prevMonthButtonDisabled,\n nextMonthButtonDisabled,\n }) => (\n <DatePickerHeader\n date={date}\n changeYear={changeYear}\n changeMonth={changeMonth}\n increaseMonth={increaseMonth}\n decreaseMonth={decreaseMonth}\n prevMonthButtonDisabled={prevMonthButtonDisabled}\n nextMonthButtonDisabled={nextMonthButtonDisabled}\n />\n )}\n customInput={\n <DatePickerInput\n style={style}\n label={label}\n inputPlaceholder={placeholder}\n calendarButtonTooltip={calendarButtonTooltip}\n prepend={prepend}\n feedback={getFeedbackAndVariant().feedback}\n variant={getFeedbackAndVariant().variant}\n inputRef={inputRef}\n forwardRef={ref}\n onKeyDownInput={handleOnKeyDown}\n onBlurInput={() =>\n !datepickerRef.current?.isCalendarOpen() && validateInput()\n }\n onFocus={undefined}\n toggleCalendarGUI={toggleCalendarGUI}\n disableLabelAnimation={disableLabelAnimation}\n hideCalendarButton={hideCalendarButton}\n selectedDate={selectedDate}\n />\n }\n {...rest}\n />\n </>\n );\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 {\n default as ReactDatepicker,\n ReactDatePickerProps,\n registerLocale,\n} from 'react-datepicker';\nimport classNames from 'classnames';\nimport {\n BaseFormControl,\n useInputGroupContext,\n VariantType,\n} from '@entur/form';\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\nimport { nb } from 'date-fns/locale';\nimport { add, sub } from 'date-fns';\nimport * as Popper from '@popperjs/core';\nimport './TimePicker.scss';\nregisterLocale('nb', nb);\n\nexport type TimePickerProps = {\n /** Hva som er den valgte datoen */\n selectedTime?: Date;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event>,\n ) => void;\n /** Placeholder om ingen dato er valgt\n * @default \"Velg tid\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over TimePicker */\n label: string;\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n style?: React.CSSProperties;\n labelTooltip?: React.ReactNode;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Kalles ved klikk på pil venstre i TimePicker\n * @default Trekker fra 30 minutter av den valgte tiden\n */\n onLeftArrowClick?: (selectedTime?: Date | null, e?: React.MouseEvent) => void;\n /** Kalles ved klikk på pil høyre i TimePicker\n * @default Legger til 30 minutter av den valgte tiden\n */\n onRightArrowClick?: (\n selectedTime?: Date | null,\n e?: React.MouseEvent,\n ) => void;\n} & ReactDatePickerProps;\n\nexport const TimePicker = React.forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n selectedTime = null,\n onChange,\n placeholder = 'Velg tid',\n disabled,\n className,\n style,\n label,\n labelTooltip,\n feedback,\n variant,\n disableLabelAnimation,\n locale = 'nb',\n onLeftArrowClick = (selectedTime, event) =>\n selectedTime && onChange(sub(selectedTime, { minutes: 30 }), event),\n onRightArrowClick = (selectedTime, event) =>\n selectedTime && onChange(add(selectedTime, { minutes: 30 }), event),\n ...rest\n },\n ref,\n ) => {\n const timepickerId = useRandomId('eds-timepicker');\n return (\n <BaseFormControl\n style={style}\n ref={ref}\n label={label}\n labelId={timepickerId}\n labelTooltip={labelTooltip}\n variant={variant}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n className=\"eds-timepicker-form-control\"\n disabled={disabled}\n prepend={\n <TimePickerArrowButton\n direction=\"left\"\n tabIndex={-1}\n onClick={(e: React.MouseEvent) => onLeftArrowClick(selectedTime, e)}\n disabled={disabled}\n />\n }\n >\n <TimePickerBase\n selectedTime={selectedTime}\n onChange={onChange}\n placeholder={placeholder}\n className={className}\n locale={locale}\n ariaLabelledBy={timepickerId}\n disabled={disabled}\n {...rest}\n />\n <TimePickerArrowButton\n direction=\"right\"\n tabIndex={-1}\n onClick={(e: React.MouseEvent) => onRightArrowClick(selectedTime, e)}\n disabled={disabled}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TimePickerBaseProps = {\n /** Hva som er den valgte datoen */\n selectedTime?: Date | null;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event>,\n ) => void;\n /** Placeholder om ingen dato er valgt\n * @default \"Velg tid\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n} & ReactDatePickerProps;\n\nconst POPPER_MODIFIERS: Popper.StrictModifiers[] = [\n {\n name: 'offset',\n enabled: true,\n options: {\n offset: [0, 0],\n },\n },\n];\nconst TimePickerBase: React.FC<TimePickerBaseProps> = ({\n className,\n onChange,\n selectedTime,\n placeholder,\n timeFormat = 'HH:mm',\n dateFormat = ['HH:mm', 'HHmm'],\n ...rest\n}) => {\n const { isFilled: isTimepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (selectedTime) {\n setFiller && !isTimepickerFilled && setFiller(true);\n }\n });\n\n React.useEffect(() => {\n if (selectedTime) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n }, [selectedTime, setFiller, isTimepickerFilled]);\n\n const handleChange = (date: any, event: any) => {\n if (date) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(date, event);\n }\n };\n return (\n <ReactDatepicker\n className={classNames(\n 'eds-form-control',\n 'eds-timepicker__input',\n className,\n )}\n calendarClassName=\"eds-timepicker\"\n selected={selectedTime}\n onChange={handleChange}\n dateFormat={dateFormat}\n timeFormat={timeFormat}\n showTimeSelect\n showTimeInput={true}\n showTimeSelectOnly\n showPopperArrow={false}\n placeholderText={placeholder}\n popperClassName=\"eds-datepicker__popper\"\n popperModifiers={POPPER_MODIFIERS}\n open={false}\n {...rest}\n />\n );\n};\n\ntype TimePickerArrowButtonProps = {\n direction: 'left' | 'right';\n} & React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n>;\n\nconst TimePickerArrowButton: React.FC<TimePickerArrowButtonProps> = ({\n direction,\n ...rest\n}) => {\n return (\n <button\n className={classNames(\n 'eds-timepicker__arrowbutton',\n `eds-timepicker__arrowbutton--${direction}`,\n )}\n type=\"button\"\n {...rest}\n >\n {direction === 'left' ? <LeftArrowIcon /> : <RightArrowIcon />}\n </button>\n );\n};\n","import React from 'react';\nimport {\n BaseFormControl,\n isFilled,\n useInputGroupContext,\n useVariant,\n VariantType,\n} from '@entur/form';\nimport { ClockIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\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 /** 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 <ClockIcon />\n */\n prepend?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const NativeTimePicker = React.forwardRef<\n HTMLInputElement,\n NativeTimePickerProps\n>(\n (\n {\n className,\n style,\n onChange,\n label,\n feedback,\n variant,\n disableLabelAnimation,\n prepend = <ClockIcon />,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const nativetimepickerId = 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={nativetimepickerId}\n disableLabelAnimation={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 eds-native-date-picker\"\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 './NativeDatePicker';\nexport * from './TimePicker';\nexport * from './NativeTimePicker';\n"],"names":["DatePickerHeader","date","decreaseMonth","increaseMonth","prevMonthButtonDisabled","nextMonthButtonDisabled","monthNames","getMonthList","React","className","IconButton","onClick","disabled","LeftArrowIcon","Heading3","getMonth","getFullYear","RightArrowIcon","locale","year","Date","monthList","Array","keys","formatter","Intl","DateTimeFormat","month","getMonthName","monthIndex","format","from","DatePickerInput","forwardRef","ref","style","label","inputPlaceholder","prepend","feedback","variant","calendarButtonTooltip","hideCalendarButton","disableLabelAnimation","inputRef","toggleCalendarGUI","onKeyDownInput","onBlurInput","selectedDate","rest","useEffect","current","addEventListener","handleOnKeyDown","handleOnBlur","handleOnFocus","removeEventListener","event","setTimeout","select","TextField","placeholder","mergeRefs","append","Tooltip","placement","content","disableHoverListener","disableFocusListener","type","CalendarIcon","refs","node","registerLocale","nb","DatePicker","onChange","onKeyDown","dateFormats","minDate","maxDate","inline","validationFeedback","validationVariant","hideCalendar","hideValidation","weekLabel","open","datepickerId","useRandomId","useState","showValidation","setShowValidation","datepickerRef","useRef","validateInput","calendarIsClosed","isCalendarOpen","key","focusAndSelectInputField","forceUpdateInputFormat","inputValue","value","inputValueParsedWithAllDateFormats","map","parse","parsedDateFromInputIsTheSameAsSelectedDate","some","dateFormat","isSameDay","getFeedbackAndVariant","undefined","setState","setOpen","ReactDatepicker","selected","showWeekNumbers","onClickOutside","id","ariaLabelledBy","showPopperArrow","preventOpenOnFocus","calendarClassName","dayClassName","weekDayClassName","classNames","highlightDates","renderCustomHeader","changeYear","changeMonth","customInput","onFocus","NativeDatePicker","DateIcon","nativedatepickerId","BaseFormControl","labelId","isFilled","NativeDatePickerBase","contextVariant","useVariant","currentVariant","useInputGroupContext","isDatepickerFilled","setFiller","setFilled","useOnMount","handleChange","target","TimePicker","selectedTime","labelTooltip","onLeftArrowClick","sub","minutes","onRightArrowClick","add","timepickerId","TimePickerArrowButton","direction","tabIndex","e","TimePickerBase","POPPER_MODIFIERS","name","enabled","options","offset","timeFormat","isTimepickerFilled","showTimeSelect","showTimeInput","showTimeSelectOnly","placeholderText","popperClassName","popperModifiers","NativeTimePicker","ClockIcon","nativetimepickerId","NativeTimePickerBase","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datepicker.cjs.development.js","sources":["../src/DatePicker/DatePickerHeader.tsx","../src/DatePicker/DatePickerInput.tsx","../src/DatePicker/DatePicker.tsx","../src/NativeDatePicker.tsx","../src/TimePicker.tsx","../src/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport { ReactDatePickerCustomHeaderProps } from 'react-datepicker';\n\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { Heading3 } from '@entur/typography';\nimport { IconButton } from '@entur/button';\n\nexport const DatePickerHeader = ({\n date,\n decreaseMonth,\n increaseMonth,\n prevMonthButtonDisabled,\n nextMonthButtonDisabled,\n}: Partial<ReactDatePickerCustomHeaderProps>) => {\n const monthNames = getMonthList();\n return (\n <div className=\"eds-datepicker__calender__header\">\n <IconButton\n type=\"button\"\n className=\"eds-datepicker__calender__header__month-button--left\"\n onClick={decreaseMonth}\n disabled={prevMonthButtonDisabled}\n >\n <LeftArrowIcon />\n </IconButton>\n <Heading3 className=\"eds-datepicker__calender__header__month-text\">\n {monthNames[date?.getMonth() ?? 0]}\n </Heading3>\n <Heading3 className=\"eds-datepicker__calender__header__month-text\">\n {date?.getFullYear()}\n </Heading3>\n\n <IconButton\n type=\"button\"\n className=\"eds-datepicker__calender__header__month-button--right\"\n onClick={increaseMonth}\n disabled={nextMonthButtonDisabled}\n >\n <RightArrowIcon />\n </IconButton>\n </div>\n );\n};\n\nfunction getMonthList(locale = 'nb') {\n const year = new Date().getFullYear();\n const monthList = Array(12).keys();\n const formatter = new Intl.DateTimeFormat(locale, {\n month: 'long',\n });\n const getMonthName = (monthIndex: number) =>\n formatter.format(new Date(year, monthIndex));\n\n return Array.from(monthList, getMonthName);\n}\n","import React from 'react';\n\nimport { TextField, VariantType } from '@entur/form';\nimport { Tooltip } from '@entur/tooltip';\nimport { IconButton } from '@entur/button';\nimport { CalendarIcon } from '@entur/icons';\n\ntype DatePickerInputProps = {\n style?: React.CSSProperties;\n label: string;\n inputPlaceholder: string;\n prepend?: React.ReactNode;\n feedback?: string;\n variant?: VariantType;\n disabled?: boolean;\n disableLabelAnimation?: boolean;\n calendarButtonTooltip: string;\n hideCalendarButton?: boolean;\n inputRef: React.RefObject<HTMLInputElement>;\n forwardRef: React.ForwardedRef<HTMLInputElement>;\n toggleCalendarGUI: () => void;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLInputElement>;\n onKeyDownInput: (event: KeyboardEvent) => any;\n onBlurInput: (event: FocusEvent) => any;\n onFocus: undefined; // To prevent open on focus\n selectedDate: Date | null; // Necessary to update component on state change\n placeholder?: null; // override react-datepickers placeholder prop\n};\n\nexport const DatePickerInput = React.forwardRef<\n HTMLInputElement,\n DatePickerInputProps\n>(\n (\n {\n style,\n label,\n inputPlaceholder,\n prepend,\n feedback,\n variant,\n disabled,\n calendarButtonTooltip,\n hideCalendarButton,\n disableLabelAnimation,\n inputRef,\n forwardRef,\n toggleCalendarGUI,\n onKeyDownInput,\n onBlurInput,\n selectedDate,\n placeholder, // eslint-disable-line\n ...rest // forwarded props from react-datepicker\n },\n ref,\n ) => {\n React.useEffect(() => {\n inputRef.current?.addEventListener('keydown', handleOnKeyDown);\n inputRef.current?.addEventListener('blur', handleOnBlur);\n inputRef.current?.addEventListener('focus', handleOnFocus);\n return () => {\n inputRef.current?.removeEventListener('keydown', handleOnKeyDown);\n inputRef.current?.removeEventListener('blur', handleOnBlur);\n inputRef.current?.removeEventListener('focus', handleOnFocus);\n };\n }, [inputRef, selectedDate]);\n\n function handleOnKeyDown(this: HTMLElement, event: KeyboardEvent) {\n onKeyDownInput(event);\n }\n function handleOnBlur(this: HTMLElement, event: FocusEvent) {\n onBlurInput(event);\n }\n function handleOnFocus() {\n setTimeout(() => inputRef.current?.select(), 5);\n }\n\n return (\n <TextField\n style={style}\n label={label}\n placeholder={inputPlaceholder}\n prepend={prepend}\n feedback={feedback}\n variant={variant}\n disableLabelAnimation={disableLabelAnimation}\n ref={mergeRefs(ref, inputRef, forwardRef)}\n append={\n !hideCalendarButton && (\n <Tooltip\n placement=\"top\"\n content={calendarButtonTooltip}\n disableHoverListener={disabled}\n disableFocusListener={disabled}\n >\n <IconButton type=\"button\" onClick={toggleCalendarGUI}>\n <CalendarIcon />\n </IconButton>\n </Tooltip>\n )\n }\n {...rest}\n />\n );\n },\n);\n\nconst mergeRefs = <T extends HTMLElement>(\n ...refs: React.MutableRefObject<T>[] | React.ForwardedRef<T>[]\n) => {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) ref.current = node;\n }\n };\n};\n","import React, { useRef, useState } from 'react';\nimport ReactDatePicker, {\n default as ReactDatepicker,\n ReactDatePickerProps,\n registerLocale,\n} from 'react-datepicker';\nimport { parse, isSameDay, Locale } from 'date-fns';\nimport { nb } from 'date-fns/locale';\nimport classNames from 'classnames';\n\nimport { VariantType } from '@entur/form';\nimport { useRandomId } from '@entur/utils';\n\nimport { DatePickerHeader } from './DatePickerHeader';\nimport { DatePickerInput } from './DatePickerInput';\n\nimport './DatePicker.scss';\nimport 'react-datepicker/dist/react-datepicker.css';\n\nregisterLocale('nb', nb);\n\nexport type DatePickerProps = {\n /** Hva som er den valgte datoen */\n selectedDate: Date | null;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event> | undefined,\n ) => void;\n /**\n * Kalles når en tast trykkes i inputfeltet\n */\n onKeyDown?: (event: KeyboardEvent) => void;\n /**\n * Datoformater som skal støttes. Første i listen er formatet alt input omgjøres til.\n * Format-valg tilgjengelig her: https://date-fns.org/v2.28.0/docs/format\n * OBS: Noen kombinasjoner av datoformater kan gi rar og uønsket oppførsel,\n * test nøye ved endring\n * @default \"['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy', 'ddMMyy']\"\n */\n dateFormats?: string[];\n /**\n * Locale fra date-fns som brukes av Datepicker-en\n * @default nb\n */\n locale?: Locale;\n /** Placeholder om ingen dato er valgt\n * @default \"dd.mm.yyyy\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over DatePicker */\n label: string;\n /**\n * Varselmelding, som vil komme under DatePicker\n */\n feedback?: string;\n /** Valideringsvariant\n */\n variant?: VariantType;\n /** Varselmelding for når datoen er på feil format\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om feil datoformat\n * @default \"error\"\n */\n validationVariant?: VariantType;\n style?: React.CSSProperties;\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 /**\n * Tekst som vises ved hover på «Åpne kalender»-knappen\n */\n calendarButtonTooltip?: string;\n /** Skjuler knapp for åpning av kalender\n * @default false\n */\n hideCalendarButton?: boolean;\n /** Skjuler tilbakemeldingsteksten ved feil dato-input\n * @default false\n */\n hideValidation?: boolean;\n /** Skjuler kalender-GUI-et\n * @default false\n */\n hideCalendar?: boolean;\n /** Viser kun kalender-popover-en\n * @default false\n */\n inline?: boolean;\n // For testing\n 'data-cy'?: any;\n} & Omit<\n ReactDatePickerProps,\n 'selected' | 'customInput' | 'onChangeRaw' | 'dateFormat' | 'locale'\n>;\n\nexport const DatePicker = React.forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n style,\n className,\n selectedDate,\n label,\n placeholder = 'dd.mm.yyyy',\n onChange,\n onKeyDown = () => null,\n dateFormats = ['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy', 'ddMMyy'],\n minDate,\n maxDate,\n inline = false,\n disabled,\n prepend,\n feedback = '',\n variant,\n validationFeedback = 'Ugyldig dato',\n validationVariant = 'error',\n disableLabelAnimation = false,\n calendarButtonTooltip = 'Åpne\\xa0kalender',\n hideCalendarButton = false,\n hideCalendar = false,\n hideValidation = false,\n weekLabel = 'uke',\n locale = nb,\n open,\n ...rest\n },\n ref,\n ) => {\n const datepickerId = useRandomId('eds-datepicker');\n\n const [showValidation, setShowValidation] = useState(false);\n\n const datepickerRef = useRef<ReactDatePicker>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => validateInput(), [selectedDate]);\n\n const handleOnKeyDown = (event: KeyboardEvent) => {\n const calendarIsClosed = !datepickerRef.current?.isCalendarOpen();\n\n setShowValidation(false);\n if (event.key === 'Enter') {\n validateInput();\n focusAndSelectInputField();\n forceUpdateInputFormat();\n } else if (event.key === 'Tab' && calendarIsClosed) {\n validateInput();\n forceUpdateInputFormat();\n }\n onKeyDown(event);\n };\n\n const validateInput = () => {\n setShowValidation(false);\n const inputValue = inputRef.current?.value;\n if (!inputValue) return;\n\n const inputValueParsedWithAllDateFormats = dateFormats.map(format =>\n parse(inputValue, format, new Date(), {\n locale: locale,\n }),\n );\n\n const parsedDateFromInputIsTheSameAsSelectedDate =\n selectedDate &&\n inputValueParsedWithAllDateFormats.some(dateFormat =>\n isSameDay(dateFormat, selectedDate),\n );\n\n if (parsedDateFromInputIsTheSameAsSelectedDate) {\n // valid date inputted\n setShowValidation(false);\n } else {\n // invalid date inputted\n setShowValidation(true);\n }\n };\n\n const getFeedbackAndVariant = (): {\n feedback: string;\n variant: VariantType | undefined;\n } => {\n if (feedback) return { feedback, variant };\n if (!hideValidation && showValidation)\n return { feedback: validationFeedback, variant: validationVariant };\n return { feedback: '', variant: undefined };\n };\n\n const focusAndSelectInputField = () =>\n setTimeout(() => {\n inputRef.current?.select();\n }, 5);\n\n const forceUpdateInputFormat = () =>\n datepickerRef.current?.setState({ inputValue: null });\n\n const toggleCalendarGUI = () =>\n datepickerRef.current?.setOpen(!datepickerRef.current?.isCalendarOpen());\n\n return (\n <>\n <ReactDatepicker\n selected={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n dateFormat={dateFormats}\n showWeekNumbers\n weekLabel={weekLabel}\n onChange={onChange}\n onClickOutside={validateInput}\n id={datepickerId}\n ariaLabelledBy={datepickerId}\n showPopperArrow={false}\n locale={locale}\n inline={inline}\n disabled={disabled}\n preventOpenOnFocus={true}\n open={hideCalendar ? false : open}\n ref={datepickerRef}\n calendarClassName=\"eds-datepicker__calender\"\n dayClassName={() => 'eds-datepicker__calender__day'}\n weekDayClassName={() => 'eds-datepicker__calender__day-name'}\n className={classNames(className, 'eds-datepicker__input')}\n highlightDates={[\n { 'eds-datepicker__calender__day--today': [new Date()] },\n {\n 'eds-datepicker__calender__day--selected': selectedDate\n ? [selectedDate]\n : [],\n },\n ]}\n renderCustomHeader={({\n date,\n changeYear,\n changeMonth,\n decreaseMonth,\n increaseMonth,\n prevMonthButtonDisabled,\n nextMonthButtonDisabled,\n }) => (\n <DatePickerHeader\n date={date}\n changeYear={changeYear}\n changeMonth={changeMonth}\n increaseMonth={increaseMonth}\n decreaseMonth={decreaseMonth}\n prevMonthButtonDisabled={prevMonthButtonDisabled}\n nextMonthButtonDisabled={nextMonthButtonDisabled}\n />\n )}\n customInput={\n <DatePickerInput\n style={style}\n label={label}\n inputPlaceholder={placeholder}\n calendarButtonTooltip={calendarButtonTooltip}\n prepend={prepend}\n feedback={getFeedbackAndVariant().feedback}\n variant={getFeedbackAndVariant().variant}\n inputRef={inputRef}\n forwardRef={ref}\n onKeyDownInput={handleOnKeyDown}\n onBlurInput={() =>\n !datepickerRef.current?.isCalendarOpen() && validateInput()\n }\n onFocus={undefined}\n toggleCalendarGUI={toggleCalendarGUI}\n disableLabelAnimation={disableLabelAnimation}\n hideCalendarButton={hideCalendarButton}\n selectedDate={selectedDate}\n />\n }\n {...rest}\n />\n </>\n );\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 {\n default as ReactDatepicker,\n ReactDatePickerProps,\n registerLocale,\n} from 'react-datepicker';\nimport classNames from 'classnames';\nimport {\n BaseFormControl,\n useInputGroupContext,\n VariantType,\n} from '@entur/form';\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\nimport { nb } from 'date-fns/locale';\nimport { add, sub } from 'date-fns';\nimport * as Popper from '@popperjs/core';\nimport './TimePicker.scss';\nregisterLocale('nb', nb);\n\nexport type TimePickerProps = {\n /** Hva som er den valgte datoen */\n selectedTime?: Date;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event>,\n ) => void;\n /** Placeholder om ingen dato er valgt\n * @default \"Velg tid\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over TimePicker */\n label: string;\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n style?: React.CSSProperties;\n labelTooltip?: React.ReactNode;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Kalles ved klikk på pil venstre i TimePicker\n * @default Trekker fra 30 minutter av den valgte tiden\n */\n onLeftArrowClick?: (selectedTime?: Date | null, e?: React.MouseEvent) => void;\n /** Kalles ved klikk på pil høyre i TimePicker\n * @default Legger til 30 minutter av den valgte tiden\n */\n onRightArrowClick?: (\n selectedTime?: Date | null,\n e?: React.MouseEvent,\n ) => void;\n} & ReactDatePickerProps;\n\nexport const TimePicker = React.forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n selectedTime = null,\n onChange,\n placeholder = 'Velg tid',\n disabled,\n className,\n style,\n label,\n labelTooltip,\n feedback,\n variant,\n disableLabelAnimation,\n locale = 'nb',\n onLeftArrowClick = (selectedTime, event) =>\n selectedTime && onChange(sub(selectedTime, { minutes: 30 }), event),\n onRightArrowClick = (selectedTime, event) =>\n selectedTime && onChange(add(selectedTime, { minutes: 30 }), event),\n ...rest\n },\n ref,\n ) => {\n const timepickerId = useRandomId('eds-timepicker');\n return (\n <BaseFormControl\n style={style}\n ref={ref}\n label={label}\n labelId={timepickerId}\n labelTooltip={labelTooltip}\n variant={variant}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n className=\"eds-timepicker-form-control\"\n disabled={disabled}\n prepend={\n <TimePickerArrowButton\n direction=\"left\"\n tabIndex={-1}\n onClick={(e: React.MouseEvent) => onLeftArrowClick(selectedTime, e)}\n disabled={disabled}\n />\n }\n >\n <TimePickerBase\n selectedTime={selectedTime}\n onChange={onChange}\n placeholder={placeholder}\n className={className}\n locale={locale}\n ariaLabelledBy={timepickerId}\n disabled={disabled}\n {...rest}\n />\n <TimePickerArrowButton\n direction=\"right\"\n tabIndex={-1}\n onClick={(e: React.MouseEvent) => onRightArrowClick(selectedTime, e)}\n disabled={disabled}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TimePickerBaseProps = {\n /** Hva som er den valgte datoen */\n selectedTime?: Date | null;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event>,\n ) => void;\n /** Placeholder om ingen dato er valgt\n * @default \"Velg tid\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n} & ReactDatePickerProps;\n\nconst POPPER_MODIFIERS: Popper.StrictModifiers[] = [\n {\n name: 'offset',\n enabled: true,\n options: {\n offset: [0, 0],\n },\n },\n];\nconst TimePickerBase: React.FC<TimePickerBaseProps> = ({\n className,\n onChange,\n selectedTime,\n placeholder,\n timeFormat = 'HH:mm',\n dateFormat = ['HH:mm', 'HHmm'],\n ...rest\n}) => {\n const { isFilled: isTimepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (selectedTime) {\n setFiller && !isTimepickerFilled && setFiller(true);\n }\n });\n\n React.useEffect(() => {\n if (selectedTime) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n }, [selectedTime, setFiller, isTimepickerFilled]);\n\n const handleChange = (date: any, event: any) => {\n if (date) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(date, event);\n }\n };\n return (\n <ReactDatepicker\n className={classNames(\n 'eds-form-control',\n 'eds-timepicker__input',\n className,\n )}\n calendarClassName=\"eds-timepicker\"\n selected={selectedTime}\n onChange={handleChange}\n dateFormat={dateFormat}\n timeFormat={timeFormat}\n showTimeSelect\n showTimeInput={true}\n showTimeSelectOnly\n showPopperArrow={false}\n placeholderText={placeholder}\n popperClassName=\"eds-datepicker__popper\"\n popperModifiers={POPPER_MODIFIERS}\n open={false}\n {...rest}\n />\n );\n};\n\ntype TimePickerArrowButtonProps = {\n direction: 'left' | 'right';\n} & React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n>;\n\nconst TimePickerArrowButton: React.FC<TimePickerArrowButtonProps> = ({\n direction,\n ...rest\n}) => {\n return (\n <button\n className={classNames(\n 'eds-timepicker__arrowbutton',\n `eds-timepicker__arrowbutton--${direction}`,\n )}\n type=\"button\"\n {...rest}\n >\n {direction === 'left' ? <LeftArrowIcon /> : <RightArrowIcon />}\n </button>\n );\n};\n","import React from 'react';\nimport {\n BaseFormControl,\n isFilled,\n useInputGroupContext,\n useVariant,\n VariantType,\n} from '@entur/form';\nimport { ClockIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\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 /** 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 <ClockIcon />\n */\n prepend?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const NativeTimePicker = React.forwardRef<\n HTMLInputElement,\n NativeTimePickerProps\n>(\n (\n {\n className,\n style,\n onChange,\n label,\n feedback,\n variant,\n disableLabelAnimation,\n prepend = <ClockIcon />,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const nativetimepickerId = 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={nativetimepickerId}\n disableLabelAnimation={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 eds-native-date-picker\"\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 './NativeDatePicker';\nexport * from './TimePicker';\nexport * from './NativeTimePicker';\n"],"names":["DatePickerHeader","date","decreaseMonth","increaseMonth","prevMonthButtonDisabled","nextMonthButtonDisabled","monthNames","getMonthList","React","className","IconButton","type","onClick","disabled","LeftArrowIcon","Heading3","getMonth","getFullYear","RightArrowIcon","locale","year","Date","monthList","Array","keys","formatter","Intl","DateTimeFormat","month","getMonthName","monthIndex","format","from","DatePickerInput","forwardRef","ref","style","label","inputPlaceholder","prepend","feedback","variant","calendarButtonTooltip","hideCalendarButton","disableLabelAnimation","inputRef","toggleCalendarGUI","onKeyDownInput","onBlurInput","selectedDate","rest","useEffect","current","addEventListener","handleOnKeyDown","handleOnBlur","handleOnFocus","removeEventListener","event","setTimeout","select","TextField","placeholder","mergeRefs","append","Tooltip","placement","content","disableHoverListener","disableFocusListener","CalendarIcon","refs","node","registerLocale","nb","DatePicker","onChange","onKeyDown","dateFormats","minDate","maxDate","inline","validationFeedback","validationVariant","hideCalendar","hideValidation","weekLabel","open","datepickerId","useRandomId","useState","showValidation","setShowValidation","datepickerRef","useRef","validateInput","calendarIsClosed","isCalendarOpen","key","focusAndSelectInputField","forceUpdateInputFormat","inputValue","value","inputValueParsedWithAllDateFormats","map","parse","parsedDateFromInputIsTheSameAsSelectedDate","some","dateFormat","isSameDay","getFeedbackAndVariant","undefined","setState","setOpen","ReactDatepicker","selected","showWeekNumbers","onClickOutside","id","ariaLabelledBy","showPopperArrow","preventOpenOnFocus","calendarClassName","dayClassName","weekDayClassName","classNames","highlightDates","renderCustomHeader","changeYear","changeMonth","customInput","onFocus","NativeDatePicker","DateIcon","nativedatepickerId","BaseFormControl","labelId","isFilled","NativeDatePickerBase","contextVariant","useVariant","currentVariant","useInputGroupContext","isDatepickerFilled","setFiller","setFilled","useOnMount","handleChange","target","TimePicker","selectedTime","labelTooltip","onLeftArrowClick","sub","minutes","onRightArrowClick","add","timepickerId","TimePickerArrowButton","direction","tabIndex","e","TimePickerBase","POPPER_MODIFIERS","name","enabled","options","offset","timeFormat","isTimepickerFilled","showTimeSelect","showTimeInput","showTimeSelectOnly","placeholderText","popperClassName","popperModifiers","NativeTimePicker","ClockIcon","nativetimepickerId","NativeTimePickerBase","warnAboutMissingStyles"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),t=require("react"),a=require("react-datepicker"),n=require("date-fns"),r=require("date-fns/locale"),l=require("classnames"),o=require("@entur/icons"),i=require("@entur/typography"),d=require("@entur/button"),u=require("@entur/form"),c=require("@entur/tooltip");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("react-datepicker/dist/react-datepicker.css");var f=s(t),m=s(a),p=s(l);function b(){return b=Object.assign||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},b.apply(this,arguments)}function v(e,t){if(null==e)return{};var a,n,r={},l=Object.keys(e);for(n=0;n<l.length;n++)t.indexOf(a=l[n])>=0||(r[a]=e[a]);return r}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function y(e,t){var a="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(a)return(a=a.call(e)).next.bind(a);if(Array.isArray(e)||(a=function(e,t){if(e){if("string"==typeof e)return h(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?h(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){a&&(e=a);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var k=function(e){var t,a=e.date,n=e.decreaseMonth,r=e.increaseMonth,l=e.prevMonthButtonDisabled,u=e.nextMonthButtonDisabled,c=function(e){void 0===e&&(e="nb");var t=(new Date).getFullYear(),a=Array(12).keys(),n=new Intl.DateTimeFormat(e,{month:"long"});return Array.from(a,(function(e){return n.format(new Date(t,e))}))}();return f.default.createElement("div",{className:"eds-datepicker__calender__header"},f.default.createElement(d.IconButton,{className:"eds-datepicker__calender__header__month-button--left",onClick:n,disabled:l},f.default.createElement(o.LeftArrowIcon,null)),f.default.createElement(i.Heading3,{className:"eds-datepicker__calender__header__month-text"},c[null!=(t=null==a?void 0:a.getMonth())?t:0]),f.default.createElement(i.Heading3,{className:"eds-datepicker__calender__header__month-text"},null==a?void 0:a.getFullYear()),f.default.createElement(d.IconButton,{className:"eds-datepicker__calender__header__month-button--right",onClick:r,disabled:u},f.default.createElement(o.RightArrowIcon,null)))},g=["style","label","inputPlaceholder","prepend","feedback","variant","disabled","calendarButtonTooltip","hideCalendarButton","disableLabelAnimation","inputRef","forwardRef","toggleCalendarGUI","onKeyDownInput","onBlurInput","selectedDate","placeholder"],C=f.default.forwardRef((function(e,t){var a=e.style,n=e.label,r=e.inputPlaceholder,l=e.prepend,i=e.feedback,s=e.variant,m=e.disabled,p=e.calendarButtonTooltip,h=e.hideCalendarButton,y=e.disableLabelAnimation,k=e.inputRef,C=e.forwardRef,w=e.toggleCalendarGUI,E=e.onKeyDownInput,I=e.onBlurInput,A=e.selectedDate,L=v(e,g);function D(e){E(e)}function N(e){I(e)}function F(){setTimeout((function(){var e;return null==(e=k.current)?void 0:e.select()}),5)}return f.default.useEffect((function(){var e,t,a;return null==(e=k.current)||e.addEventListener("keydown",D),null==(t=k.current)||t.addEventListener("blur",N),null==(a=k.current)||a.addEventListener("focus",F),function(){var e,t,a;null==(e=k.current)||e.removeEventListener("keydown",D),null==(t=k.current)||t.removeEventListener("blur",N),null==(a=k.current)||a.removeEventListener("focus",F)}}),[k,A]),f.default.createElement(u.TextField,b({style:a,label:n,placeholder:r,prepend:l,feedback:i,variant:s,disableLabelAnimation:y,ref:_(t,k,C),append:!h&&f.default.createElement(c.Tooltip,{placement:"top",content:p,disableHoverListener:m,disableFocusListener:m},f.default.createElement(d.IconButton,{type:"button",onClick:w},f.default.createElement(o.CalendarIcon,null)))},L))})),_=function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return function(e){for(var a,n=y(t);!(a=n()).done;){var r=a.value;"function"==typeof r?r(e):r&&(r.current=e)}}},w=["style","className","selectedDate","label","placeholder","onChange","onKeyDown","dateFormats","minDate","maxDate","inline","disabled","prepend","feedback","variant","validationFeedback","validationVariant","disableLabelAnimation","calendarButtonTooltip","hideCalendarButton","hideCalendar","hideValidation","weekLabel","locale","open"];a.registerLocale("nb",r.nb);var E=f.default.forwardRef((function(a,l){var o=a.style,i=a.className,d=a.selectedDate,u=a.label,c=a.placeholder,s=void 0===c?"dd.mm.yyyy":c,h=a.onChange,y=a.onKeyDown,g=void 0===y?function(){return null}:y,_=a.dateFormats,E=void 0===_?["dd.MM.yyyy","ddMMyyyy","dd/MM/yyyy","ddMMyy"]:_,I=a.minDate,A=a.maxDate,L=a.inline,D=void 0!==L&&L,N=a.disabled,F=a.prepend,M=a.feedback,B=void 0===M?"":M,T=a.variant,R=a.validationFeedback,x=void 0===R?"Ugyldig dato":R,O=a.validationVariant,q=void 0===O?"error":O,P=a.disableLabelAnimation,S=void 0!==P&&P,H=a.calendarButtonTooltip,j=void 0===H?"Åpne kalender":H,V=a.hideCalendarButton,G=void 0!==V&&V,K=a.hideCalendar,U=void 0!==K&&K,Y=a.hideValidation,W=void 0!==Y&&Y,$=a.weekLabel,z=void 0===$?"uke":$,J=a.locale,Q=void 0===J?r.nb:J,X=a.open,Z=v(a,w),ee=e.useRandomId("eds-datepicker"),te=t.useState(!1),ae=te[0],ne=te[1],re=t.useRef(null),le=f.default.useRef(null);f.default.useEffect((function(){return oe()}),[d]);var oe=function(){var e;ne(!1);var t=null==(e=le.current)?void 0:e.value;if(t){var a=E.map((function(e){return n.parse(t,e,new Date,{locale:Q})})),r=d&&a.some((function(e){return n.isSameDay(e,d)}));ne(!r)}},ie=function(){return B?{feedback:B,variant:T}:!W&&ae?{feedback:x,variant:q}:{feedback:"",variant:void 0}},de=function(){var e;return null==(e=re.current)?void 0:e.setState({inputValue:null})};return f.default.createElement(f.default.Fragment,null,f.default.createElement(m.default,b({selected:d,minDate:I,maxDate:A,dateFormat:E,showWeekNumbers:!0,weekLabel:z,onChange:h,onClickOutside:oe,id:ee,ariaLabelledBy:ee,showPopperArrow:!1,locale:Q,inline:D,disabled:N,preventOpenOnFocus:!0,open:!U&&X,ref:re,calendarClassName:"eds-datepicker__calender",dayClassName:function(){return"eds-datepicker__calender__day"},weekDayClassName:function(){return"eds-datepicker__calender__day-name"},className:p.default(i,"eds-datepicker__input"),highlightDates:[{"eds-datepicker__calender__day--today":[new Date]},{"eds-datepicker__calender__day--selected":d?[d]:[]}],renderCustomHeader:function(e){return f.default.createElement(k,{date:e.date,changeYear:e.changeYear,changeMonth:e.changeMonth,increaseMonth:e.increaseMonth,decreaseMonth:e.decreaseMonth,prevMonthButtonDisabled:e.prevMonthButtonDisabled,nextMonthButtonDisabled:e.nextMonthButtonDisabled})},customInput:f.default.createElement(C,{style:o,label:u,inputPlaceholder:s,calendarButtonTooltip:j,prepend:F,feedback:ie().feedback,variant:ie().variant,inputRef:le,forwardRef:l,onKeyDownInput:function(e){var t,a=!(null!=(t=re.current)&&t.isCalendarOpen());ne(!1),"Enter"===e.key?(oe(),setTimeout((function(){var e;null==(e=le.current)||e.select()}),5),de()):"Tab"===e.key&&a&&(oe(),de()),g(e)},onBlurInput:function(){var e;return!(null!=(e=re.current)&&e.isCalendarOpen())&&oe()},onFocus:void 0,toggleCalendarGUI:function(){var e,t;return null==(e=re.current)?void 0:e.setOpen(!(null!=(t=re.current)&&t.isCalendarOpen()))},disableLabelAnimation:S,hideCalendarButton:G,selectedDate:d})},Z)))})),I=["className","style","label","onChange","feedback","variant","disableLabelAnimation","prepend"],A=["onChange","variant","value"],L=f.default.forwardRef((function(t,a){var n=t.className,r=t.style,l=t.label,i=t.onChange,d=t.feedback,c=t.variant,s=t.disableLabelAnimation,m=t.prepend,p=void 0===m?f.default.createElement(o.DateIcon,{inline:!0}):m,h=v(t,I),y=e.useRandomId("eds-nativetimepicker");return f.default.createElement(u.BaseFormControl,{style:r,className:n,prepend:p,label:l,feedback:d,variant:c,labelId:y,disableLabelAnimation:s,isFilled:!0},f.default.createElement(D,b({onChange:i,"aria-labelledby":y,ref:a,variant:c},h)))})),D=f.default.forwardRef((function(t,a){var n=t.onChange,r=t.variant,l=t.value,o=v(t,A),i=u.useVariant(),d=r||i,c=u.useInputGroupContext(),s=c.isFilled,m=c.setFilled;return e.useOnMount((function(){m&&!s&&m(!0)})),f.default.useEffect((function(){l?m&&!s&&m(!0):m&&s&&m(!1)}),[l,m,s]),f.default.createElement("input",b({ref:a,"aria-invalid":"error"===d,type:"date",className:"eds-form-control eds-native-date-picker",onChange:function(e){u.isFilled(e.target)?m&&!s&&m(!0):m&&s&&m(!1),n&&n(e)},value:l},o))})),N=["selectedTime","onChange","placeholder","disabled","className","style","label","labelTooltip","feedback","variant","disableLabelAnimation","locale","onLeftArrowClick","onRightArrowClick"],F=["className","onChange","selectedTime","placeholder","timeFormat","dateFormat"],M=["direction"];a.registerLocale("nb",r.nb);var B=f.default.forwardRef((function(t,a){var r=t.selectedTime,l=void 0===r?null:r,o=t.onChange,i=t.placeholder,d=void 0===i?"Velg tid":i,c=t.disabled,s=t.className,m=t.style,p=t.label,h=t.labelTooltip,y=t.feedback,k=t.variant,g=t.disableLabelAnimation,C=t.locale,_=void 0===C?"nb":C,w=t.onLeftArrowClick,E=void 0===w?function(e,t){return e&&o(n.sub(e,{minutes:30}),t)}:w,I=t.onRightArrowClick,A=void 0===I?function(e,t){return e&&o(n.add(e,{minutes:30}),t)}:I,L=v(t,N),D=e.useRandomId("eds-timepicker");return f.default.createElement(u.BaseFormControl,{style:m,ref:a,label:p,labelId:D,labelTooltip:h,variant:k,feedback:y,disableLabelAnimation:g,className:"eds-timepicker-form-control",disabled:c,prepend:f.default.createElement(x,{direction:"left",tabIndex:-1,onClick:function(e){return E(l,e)},disabled:c})},f.default.createElement(R,b({selectedTime:l,onChange:o,placeholder:d,className:s,locale:_,ariaLabelledBy:D,disabled:c},L)),f.default.createElement(x,{direction:"right",tabIndex:-1,onClick:function(e){return A(l,e)},disabled:c}))})),T=[{name:"offset",enabled:!0,options:{offset:[0,0]}}],R=function(t){var a=t.className,n=t.onChange,r=t.selectedTime,l=t.placeholder,o=t.timeFormat,i=void 0===o?"HH:mm":o,d=t.dateFormat,c=void 0===d?["HH:mm","HHmm"]:d,s=v(t,F),h=u.useInputGroupContext(),y=h.isFilled,k=h.setFilled;return e.useOnMount((function(){r&&k&&!y&&k(!0)})),f.default.useEffect((function(){r?k&&!y&&k(!0):k&&y&&k(!1)}),[r,k,y]),f.default.createElement(m.default,b({className:p.default("eds-form-control","eds-timepicker__input",a),calendarClassName:"eds-timepicker",selected:r,onChange:function(e,t){e?k&&!y&&k(!0):k&&y&&k(!1),n&&n(e,t)},dateFormat:c,timeFormat:i,showTimeSelect:!0,showTimeInput:!0,showTimeSelectOnly:!0,showPopperArrow:!1,placeholderText:l,popperClassName:"eds-datepicker__popper",popperModifiers:T,open:!1},s))},x=function(e){var t=e.direction,a=v(e,M);return f.default.createElement("button",b({className:p.default("eds-timepicker__arrowbutton","eds-timepicker__arrowbutton--"+t),type:"button"},a),f.default.createElement("left"===t?o.LeftArrowIcon:o.RightArrowIcon,null))},O=["className","style","onChange","label","feedback","variant","disableLabelAnimation","prepend"],q=["onChange","value"],P=f.default.forwardRef((function(t,a){var n=t.className,r=t.style,l=t.onChange,i=t.label,d=t.feedback,c=t.variant,s=t.disableLabelAnimation,m=t.prepend,p=void 0===m?f.default.createElement(o.ClockIcon,null):m,h=v(t,O),y=e.useRandomId("eds-nativetimepicker");return f.default.createElement(u.BaseFormControl,{style:r,className:n,prepend:p,label:i,feedback:d,variant:c,labelId:y,disableLabelAnimation:s},f.default.createElement(S,b({onChange:l,"aria-labelledby":y,ref:a},h)))})),S=f.default.forwardRef((function(t,a){var n=t.onChange,r=t.value,l=v(t,q),o=u.useVariant(),i=l.variant||o,d=u.useInputGroupContext(),c=d.isFilled,s=d.setFilled;return e.useOnMount((function(){s&&!c&&s(!0)})),f.default.useEffect((function(){r?s&&!c&&s(!0):s&&c&&s(!1)}),[r,s,c]),f.default.createElement("input",b({ref:a,"aria-invalid":"error"===i,type:"time",className:"eds-form-control eds-native-date-picker",onChange:function(e){u.isFilled(e.target)?s&&!c&&s(!0):s&&c&&s(!1),n&&n(e)},value:r},l))}));e.warnAboutMissingStyles("datepicker","form","icons"),exports.DatePicker=E,exports.NativeDatePicker=L,exports.NativeTimePicker=P,exports.TimePicker=B;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),t=require("react"),a=require("react-datepicker"),n=require("date-fns"),r=require("date-fns/locale"),l=require("classnames"),o=require("@entur/icons"),i=require("@entur/typography"),d=require("@entur/button"),u=require("@entur/form"),c=require("@entur/tooltip");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("react-datepicker/dist/react-datepicker.css");var f=s(t),m=s(a),p=s(l);function b(){return b=Object.assign||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},b.apply(this,arguments)}function v(e,t){if(null==e)return{};var a,n,r={},l=Object.keys(e);for(n=0;n<l.length;n++)t.indexOf(a=l[n])>=0||(r[a]=e[a]);return r}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function y(e,t){var a="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(a)return(a=a.call(e)).next.bind(a);if(Array.isArray(e)||(a=function(e,t){if(e){if("string"==typeof e)return h(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?h(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){a&&(e=a);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var k=function(e){var t,a=e.date,n=e.decreaseMonth,r=e.increaseMonth,l=e.prevMonthButtonDisabled,u=e.nextMonthButtonDisabled,c=function(e){void 0===e&&(e="nb");var t=(new Date).getFullYear(),a=Array(12).keys(),n=new Intl.DateTimeFormat(e,{month:"long"});return Array.from(a,(function(e){return n.format(new Date(t,e))}))}();return f.default.createElement("div",{className:"eds-datepicker__calender__header"},f.default.createElement(d.IconButton,{type:"button",className:"eds-datepicker__calender__header__month-button--left",onClick:n,disabled:l},f.default.createElement(o.LeftArrowIcon,null)),f.default.createElement(i.Heading3,{className:"eds-datepicker__calender__header__month-text"},c[null!=(t=null==a?void 0:a.getMonth())?t:0]),f.default.createElement(i.Heading3,{className:"eds-datepicker__calender__header__month-text"},null==a?void 0:a.getFullYear()),f.default.createElement(d.IconButton,{type:"button",className:"eds-datepicker__calender__header__month-button--right",onClick:r,disabled:u},f.default.createElement(o.RightArrowIcon,null)))},g=["style","label","inputPlaceholder","prepend","feedback","variant","disabled","calendarButtonTooltip","hideCalendarButton","disableLabelAnimation","inputRef","forwardRef","toggleCalendarGUI","onKeyDownInput","onBlurInput","selectedDate","placeholder"],C=f.default.forwardRef((function(e,t){var a=e.style,n=e.label,r=e.inputPlaceholder,l=e.prepend,i=e.feedback,s=e.variant,m=e.disabled,p=e.calendarButtonTooltip,h=e.hideCalendarButton,y=e.disableLabelAnimation,k=e.inputRef,C=e.forwardRef,w=e.toggleCalendarGUI,E=e.onKeyDownInput,I=e.onBlurInput,A=e.selectedDate,L=v(e,g);function D(e){E(e)}function N(e){I(e)}function F(){setTimeout((function(){var e;return null==(e=k.current)?void 0:e.select()}),5)}return f.default.useEffect((function(){var e,t,a;return null==(e=k.current)||e.addEventListener("keydown",D),null==(t=k.current)||t.addEventListener("blur",N),null==(a=k.current)||a.addEventListener("focus",F),function(){var e,t,a;null==(e=k.current)||e.removeEventListener("keydown",D),null==(t=k.current)||t.removeEventListener("blur",N),null==(a=k.current)||a.removeEventListener("focus",F)}}),[k,A]),f.default.createElement(u.TextField,b({style:a,label:n,placeholder:r,prepend:l,feedback:i,variant:s,disableLabelAnimation:y,ref:_(t,k,C),append:!h&&f.default.createElement(c.Tooltip,{placement:"top",content:p,disableHoverListener:m,disableFocusListener:m},f.default.createElement(d.IconButton,{type:"button",onClick:w},f.default.createElement(o.CalendarIcon,null)))},L))})),_=function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return function(e){for(var a,n=y(t);!(a=n()).done;){var r=a.value;"function"==typeof r?r(e):r&&(r.current=e)}}},w=["style","className","selectedDate","label","placeholder","onChange","onKeyDown","dateFormats","minDate","maxDate","inline","disabled","prepend","feedback","variant","validationFeedback","validationVariant","disableLabelAnimation","calendarButtonTooltip","hideCalendarButton","hideCalendar","hideValidation","weekLabel","locale","open"];a.registerLocale("nb",r.nb);var E=f.default.forwardRef((function(a,l){var o=a.style,i=a.className,d=a.selectedDate,u=a.label,c=a.placeholder,s=void 0===c?"dd.mm.yyyy":c,h=a.onChange,y=a.onKeyDown,g=void 0===y?function(){return null}:y,_=a.dateFormats,E=void 0===_?["dd.MM.yyyy","ddMMyyyy","dd/MM/yyyy","ddMMyy"]:_,I=a.minDate,A=a.maxDate,L=a.inline,D=void 0!==L&&L,N=a.disabled,F=a.prepend,M=a.feedback,B=void 0===M?"":M,T=a.variant,R=a.validationFeedback,x=void 0===R?"Ugyldig dato":R,O=a.validationVariant,q=void 0===O?"error":O,P=a.disableLabelAnimation,S=void 0!==P&&P,H=a.calendarButtonTooltip,j=void 0===H?"Åpne kalender":H,V=a.hideCalendarButton,G=void 0!==V&&V,K=a.hideCalendar,U=void 0!==K&&K,Y=a.hideValidation,W=void 0!==Y&&Y,$=a.weekLabel,z=void 0===$?"uke":$,J=a.locale,Q=void 0===J?r.nb:J,X=a.open,Z=v(a,w),ee=e.useRandomId("eds-datepicker"),te=t.useState(!1),ae=te[0],ne=te[1],re=t.useRef(null),le=f.default.useRef(null);f.default.useEffect((function(){return oe()}),[d]);var oe=function(){var e;ne(!1);var t=null==(e=le.current)?void 0:e.value;if(t){var a=E.map((function(e){return n.parse(t,e,new Date,{locale:Q})})),r=d&&a.some((function(e){return n.isSameDay(e,d)}));ne(!r)}},ie=function(){return B?{feedback:B,variant:T}:!W&&ae?{feedback:x,variant:q}:{feedback:"",variant:void 0}},de=function(){var e;return null==(e=re.current)?void 0:e.setState({inputValue:null})};return f.default.createElement(f.default.Fragment,null,f.default.createElement(m.default,b({selected:d,minDate:I,maxDate:A,dateFormat:E,showWeekNumbers:!0,weekLabel:z,onChange:h,onClickOutside:oe,id:ee,ariaLabelledBy:ee,showPopperArrow:!1,locale:Q,inline:D,disabled:N,preventOpenOnFocus:!0,open:!U&&X,ref:re,calendarClassName:"eds-datepicker__calender",dayClassName:function(){return"eds-datepicker__calender__day"},weekDayClassName:function(){return"eds-datepicker__calender__day-name"},className:p.default(i,"eds-datepicker__input"),highlightDates:[{"eds-datepicker__calender__day--today":[new Date]},{"eds-datepicker__calender__day--selected":d?[d]:[]}],renderCustomHeader:function(e){return f.default.createElement(k,{date:e.date,changeYear:e.changeYear,changeMonth:e.changeMonth,increaseMonth:e.increaseMonth,decreaseMonth:e.decreaseMonth,prevMonthButtonDisabled:e.prevMonthButtonDisabled,nextMonthButtonDisabled:e.nextMonthButtonDisabled})},customInput:f.default.createElement(C,{style:o,label:u,inputPlaceholder:s,calendarButtonTooltip:j,prepend:F,feedback:ie().feedback,variant:ie().variant,inputRef:le,forwardRef:l,onKeyDownInput:function(e){var t,a=!(null!=(t=re.current)&&t.isCalendarOpen());ne(!1),"Enter"===e.key?(oe(),setTimeout((function(){var e;null==(e=le.current)||e.select()}),5),de()):"Tab"===e.key&&a&&(oe(),de()),g(e)},onBlurInput:function(){var e;return!(null!=(e=re.current)&&e.isCalendarOpen())&&oe()},onFocus:void 0,toggleCalendarGUI:function(){var e,t;return null==(e=re.current)?void 0:e.setOpen(!(null!=(t=re.current)&&t.isCalendarOpen()))},disableLabelAnimation:S,hideCalendarButton:G,selectedDate:d})},Z)))})),I=["className","style","label","onChange","feedback","variant","disableLabelAnimation","prepend"],A=["onChange","variant","value"],L=f.default.forwardRef((function(t,a){var n=t.className,r=t.style,l=t.label,i=t.onChange,d=t.feedback,c=t.variant,s=t.disableLabelAnimation,m=t.prepend,p=void 0===m?f.default.createElement(o.DateIcon,{inline:!0}):m,h=v(t,I),y=e.useRandomId("eds-nativetimepicker");return f.default.createElement(u.BaseFormControl,{style:r,className:n,prepend:p,label:l,feedback:d,variant:c,labelId:y,disableLabelAnimation:s,isFilled:!0},f.default.createElement(D,b({onChange:i,"aria-labelledby":y,ref:a,variant:c},h)))})),D=f.default.forwardRef((function(t,a){var n=t.onChange,r=t.variant,l=t.value,o=v(t,A),i=u.useVariant(),d=r||i,c=u.useInputGroupContext(),s=c.isFilled,m=c.setFilled;return e.useOnMount((function(){m&&!s&&m(!0)})),f.default.useEffect((function(){l?m&&!s&&m(!0):m&&s&&m(!1)}),[l,m,s]),f.default.createElement("input",b({ref:a,"aria-invalid":"error"===d,type:"date",className:"eds-form-control eds-native-date-picker",onChange:function(e){u.isFilled(e.target)?m&&!s&&m(!0):m&&s&&m(!1),n&&n(e)},value:l},o))})),N=["selectedTime","onChange","placeholder","disabled","className","style","label","labelTooltip","feedback","variant","disableLabelAnimation","locale","onLeftArrowClick","onRightArrowClick"],F=["className","onChange","selectedTime","placeholder","timeFormat","dateFormat"],M=["direction"];a.registerLocale("nb",r.nb);var B=f.default.forwardRef((function(t,a){var r=t.selectedTime,l=void 0===r?null:r,o=t.onChange,i=t.placeholder,d=void 0===i?"Velg tid":i,c=t.disabled,s=t.className,m=t.style,p=t.label,h=t.labelTooltip,y=t.feedback,k=t.variant,g=t.disableLabelAnimation,C=t.locale,_=void 0===C?"nb":C,w=t.onLeftArrowClick,E=void 0===w?function(e,t){return e&&o(n.sub(e,{minutes:30}),t)}:w,I=t.onRightArrowClick,A=void 0===I?function(e,t){return e&&o(n.add(e,{minutes:30}),t)}:I,L=v(t,N),D=e.useRandomId("eds-timepicker");return f.default.createElement(u.BaseFormControl,{style:m,ref:a,label:p,labelId:D,labelTooltip:h,variant:k,feedback:y,disableLabelAnimation:g,className:"eds-timepicker-form-control",disabled:c,prepend:f.default.createElement(x,{direction:"left",tabIndex:-1,onClick:function(e){return E(l,e)},disabled:c})},f.default.createElement(R,b({selectedTime:l,onChange:o,placeholder:d,className:s,locale:_,ariaLabelledBy:D,disabled:c},L)),f.default.createElement(x,{direction:"right",tabIndex:-1,onClick:function(e){return A(l,e)},disabled:c}))})),T=[{name:"offset",enabled:!0,options:{offset:[0,0]}}],R=function(t){var a=t.className,n=t.onChange,r=t.selectedTime,l=t.placeholder,o=t.timeFormat,i=void 0===o?"HH:mm":o,d=t.dateFormat,c=void 0===d?["HH:mm","HHmm"]:d,s=v(t,F),h=u.useInputGroupContext(),y=h.isFilled,k=h.setFilled;return e.useOnMount((function(){r&&k&&!y&&k(!0)})),f.default.useEffect((function(){r?k&&!y&&k(!0):k&&y&&k(!1)}),[r,k,y]),f.default.createElement(m.default,b({className:p.default("eds-form-control","eds-timepicker__input",a),calendarClassName:"eds-timepicker",selected:r,onChange:function(e,t){e?k&&!y&&k(!0):k&&y&&k(!1),n&&n(e,t)},dateFormat:c,timeFormat:i,showTimeSelect:!0,showTimeInput:!0,showTimeSelectOnly:!0,showPopperArrow:!1,placeholderText:l,popperClassName:"eds-datepicker__popper",popperModifiers:T,open:!1},s))},x=function(e){var t=e.direction,a=v(e,M);return f.default.createElement("button",b({className:p.default("eds-timepicker__arrowbutton","eds-timepicker__arrowbutton--"+t),type:"button"},a),f.default.createElement("left"===t?o.LeftArrowIcon:o.RightArrowIcon,null))},O=["className","style","onChange","label","feedback","variant","disableLabelAnimation","prepend"],q=["onChange","value"],P=f.default.forwardRef((function(t,a){var n=t.className,r=t.style,l=t.onChange,i=t.label,d=t.feedback,c=t.variant,s=t.disableLabelAnimation,m=t.prepend,p=void 0===m?f.default.createElement(o.ClockIcon,null):m,h=v(t,O),y=e.useRandomId("eds-nativetimepicker");return f.default.createElement(u.BaseFormControl,{style:r,className:n,prepend:p,label:i,feedback:d,variant:c,labelId:y,disableLabelAnimation:s},f.default.createElement(S,b({onChange:l,"aria-labelledby":y,ref:a},h)))})),S=f.default.forwardRef((function(t,a){var n=t.onChange,r=t.value,l=v(t,q),o=u.useVariant(),i=l.variant||o,d=u.useInputGroupContext(),c=d.isFilled,s=d.setFilled;return e.useOnMount((function(){s&&!c&&s(!0)})),f.default.useEffect((function(){r?s&&!c&&s(!0):s&&c&&s(!1)}),[r,s,c]),f.default.createElement("input",b({ref:a,"aria-invalid":"error"===i,type:"time",className:"eds-form-control eds-native-date-picker",onChange:function(e){u.isFilled(e.target)?s&&!c&&s(!0):s&&c&&s(!1),n&&n(e)},value:r},l))}));e.warnAboutMissingStyles("datepicker","form","icons"),exports.DatePicker=E,exports.NativeDatePicker=L,exports.NativeTimePicker=P,exports.TimePicker=B;
|
|
2
2
|
//# sourceMappingURL=datepicker.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.cjs.production.min.js","sources":["../src/DatePicker/DatePickerHeader.tsx","../src/DatePicker/DatePickerInput.tsx","../src/DatePicker/DatePicker.tsx","../src/NativeDatePicker.tsx","../src/TimePicker.tsx","../src/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport { ReactDatePickerCustomHeaderProps } from 'react-datepicker';\n\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { Heading3 } from '@entur/typography';\nimport { IconButton } from '@entur/button';\n\nexport const DatePickerHeader = ({\n date,\n decreaseMonth,\n increaseMonth,\n prevMonthButtonDisabled,\n nextMonthButtonDisabled,\n}: Partial<ReactDatePickerCustomHeaderProps>) => {\n const monthNames = getMonthList();\n return (\n <div className=\"eds-datepicker__calender__header\">\n <IconButton\n className=\"eds-datepicker__calender__header__month-button--left\"\n onClick={decreaseMonth}\n disabled={prevMonthButtonDisabled}\n >\n <LeftArrowIcon />\n </IconButton>\n <Heading3 className=\"eds-datepicker__calender__header__month-text\">\n {monthNames[date?.getMonth() ?? 0]}\n </Heading3>\n <Heading3 className=\"eds-datepicker__calender__header__month-text\">\n {date?.getFullYear()}\n </Heading3>\n\n <IconButton\n className=\"eds-datepicker__calender__header__month-button--right\"\n onClick={increaseMonth}\n disabled={nextMonthButtonDisabled}\n >\n <RightArrowIcon />\n </IconButton>\n </div>\n );\n};\n\nfunction getMonthList(locale = 'nb') {\n const year = new Date().getFullYear();\n const monthList = Array(12).keys();\n const formatter = new Intl.DateTimeFormat(locale, {\n month: 'long',\n });\n const getMonthName = (monthIndex: number) =>\n formatter.format(new Date(year, monthIndex));\n\n return Array.from(monthList, getMonthName);\n}\n","import React from 'react';\n\nimport { TextField, VariantType } from '@entur/form';\nimport { Tooltip } from '@entur/tooltip';\nimport { IconButton } from '@entur/button';\nimport { CalendarIcon } from '@entur/icons';\n\ntype DatePickerInputProps = {\n style?: React.CSSProperties;\n label: string;\n inputPlaceholder: string;\n prepend?: React.ReactNode;\n feedback?: string;\n variant?: VariantType;\n disabled?: boolean;\n disableLabelAnimation?: boolean;\n calendarButtonTooltip: string;\n hideCalendarButton?: boolean;\n inputRef: React.RefObject<HTMLInputElement>;\n forwardRef: React.ForwardedRef<HTMLInputElement>;\n toggleCalendarGUI: () => void;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLInputElement>;\n onKeyDownInput: (event: KeyboardEvent) => any;\n onBlurInput: (event: FocusEvent) => any;\n onFocus: undefined; // To prevent open on focus\n selectedDate: Date | null; // Necessary to update component on state change\n placeholder?: null; // override react-datepickers placeholder prop\n};\n\nexport const DatePickerInput = React.forwardRef<\n HTMLInputElement,\n DatePickerInputProps\n>(\n (\n {\n style,\n label,\n inputPlaceholder,\n prepend,\n feedback,\n variant,\n disabled,\n calendarButtonTooltip,\n hideCalendarButton,\n disableLabelAnimation,\n inputRef,\n forwardRef,\n toggleCalendarGUI,\n onKeyDownInput,\n onBlurInput,\n selectedDate,\n placeholder, // eslint-disable-line\n ...rest // forwarded props from react-datepicker\n },\n ref,\n ) => {\n React.useEffect(() => {\n inputRef.current?.addEventListener('keydown', handleOnKeyDown);\n inputRef.current?.addEventListener('blur', handleOnBlur);\n inputRef.current?.addEventListener('focus', handleOnFocus);\n return () => {\n inputRef.current?.removeEventListener('keydown', handleOnKeyDown);\n inputRef.current?.removeEventListener('blur', handleOnBlur);\n inputRef.current?.removeEventListener('focus', handleOnFocus);\n };\n }, [inputRef, selectedDate]);\n\n function handleOnKeyDown(this: HTMLElement, event: KeyboardEvent) {\n onKeyDownInput(event);\n }\n function handleOnBlur(this: HTMLElement, event: FocusEvent) {\n onBlurInput(event);\n }\n function handleOnFocus() {\n setTimeout(() => inputRef.current?.select(), 5);\n }\n\n return (\n <TextField\n style={style}\n label={label}\n placeholder={inputPlaceholder}\n prepend={prepend}\n feedback={feedback}\n variant={variant}\n disableLabelAnimation={disableLabelAnimation}\n ref={mergeRefs(ref, inputRef, forwardRef)}\n append={\n !hideCalendarButton && (\n <Tooltip\n placement=\"top\"\n content={calendarButtonTooltip}\n disableHoverListener={disabled}\n disableFocusListener={disabled}\n >\n <IconButton type=\"button\" onClick={toggleCalendarGUI}>\n <CalendarIcon />\n </IconButton>\n </Tooltip>\n )\n }\n {...rest}\n />\n );\n },\n);\n\nconst mergeRefs = <T extends HTMLElement>(\n ...refs: React.MutableRefObject<T>[] | React.ForwardedRef<T>[]\n) => {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) ref.current = node;\n }\n };\n};\n","import React, { useRef, useState } from 'react';\nimport ReactDatePicker, {\n default as ReactDatepicker,\n ReactDatePickerProps,\n registerLocale,\n} from 'react-datepicker';\nimport { parse, isSameDay, Locale } from 'date-fns';\nimport { nb } from 'date-fns/locale';\nimport classNames from 'classnames';\n\nimport { VariantType } from '@entur/form';\nimport { useRandomId } from '@entur/utils';\n\nimport { DatePickerHeader } from './DatePickerHeader';\nimport { DatePickerInput } from './DatePickerInput';\n\nimport './DatePicker.scss';\nimport 'react-datepicker/dist/react-datepicker.css';\n\nregisterLocale('nb', nb);\n\nexport type DatePickerProps = {\n /** Hva som er den valgte datoen */\n selectedDate: Date | null;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event> | undefined,\n ) => void;\n /**\n * Kalles når en tast trykkes i inputfeltet\n */\n onKeyDown?: (event: KeyboardEvent) => void;\n /**\n * Datoformater som skal støttes. Første i listen er formatet alt input omgjøres til.\n * Format-valg tilgjengelig her: https://date-fns.org/v2.28.0/docs/format\n * OBS: Noen kombinasjoner av datoformater kan gi rar og uønsket oppførsel,\n * test nøye ved endring\n * @default \"['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy', 'ddMMyy']\"\n */\n dateFormats?: string[];\n /**\n * Locale fra date-fns som brukes av Datepicker-en\n * @default nb\n */\n locale?: Locale;\n /** Placeholder om ingen dato er valgt\n * @default \"dd.mm.yyyy\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over DatePicker */\n label: string;\n /**\n * Varselmelding, som vil komme under DatePicker\n */\n feedback?: string;\n /** Valideringsvariant\n */\n variant?: VariantType;\n /** Varselmelding for når datoen er på feil format\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om feil datoformat\n * @default \"error\"\n */\n validationVariant?: VariantType;\n style?: React.CSSProperties;\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 /**\n * Tekst som vises ved hover på «Åpne kalender»-knappen\n */\n calendarButtonTooltip?: string;\n /** Skjuler knapp for åpning av kalender\n * @default false\n */\n hideCalendarButton?: boolean;\n /** Skjuler tilbakemeldingsteksten ved feil dato-input\n * @default false\n */\n hideValidation?: boolean;\n /** Skjuler kalender-GUI-et\n * @default false\n */\n hideCalendar?: boolean;\n /** Viser kun kalender-popover-en\n * @default false\n */\n inline?: boolean;\n // For testing\n 'data-cy'?: any;\n} & Omit<\n ReactDatePickerProps,\n 'selected' | 'customInput' | 'onChangeRaw' | 'dateFormat' | 'locale'\n>;\n\nexport const DatePicker = React.forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n style,\n className,\n selectedDate,\n label,\n placeholder = 'dd.mm.yyyy',\n onChange,\n onKeyDown = () => null,\n dateFormats = ['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy', 'ddMMyy'],\n minDate,\n maxDate,\n inline = false,\n disabled,\n prepend,\n feedback = '',\n variant,\n validationFeedback = 'Ugyldig dato',\n validationVariant = 'error',\n disableLabelAnimation = false,\n calendarButtonTooltip = 'Åpne\\xa0kalender',\n hideCalendarButton = false,\n hideCalendar = false,\n hideValidation = false,\n weekLabel = 'uke',\n locale = nb,\n open,\n ...rest\n },\n ref,\n ) => {\n const datepickerId = useRandomId('eds-datepicker');\n\n const [showValidation, setShowValidation] = useState(false);\n\n const datepickerRef = useRef<ReactDatePicker>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => validateInput(), [selectedDate]);\n\n const handleOnKeyDown = (event: KeyboardEvent) => {\n const calendarIsClosed = !datepickerRef.current?.isCalendarOpen();\n\n setShowValidation(false);\n if (event.key === 'Enter') {\n validateInput();\n focusAndSelectInputField();\n forceUpdateInputFormat();\n } else if (event.key === 'Tab' && calendarIsClosed) {\n validateInput();\n forceUpdateInputFormat();\n }\n onKeyDown(event);\n };\n\n const validateInput = () => {\n setShowValidation(false);\n const inputValue = inputRef.current?.value;\n if (!inputValue) return;\n\n const inputValueParsedWithAllDateFormats = dateFormats.map(format =>\n parse(inputValue, format, new Date(), {\n locale: locale,\n }),\n );\n\n const parsedDateFromInputIsTheSameAsSelectedDate =\n selectedDate &&\n inputValueParsedWithAllDateFormats.some(dateFormat =>\n isSameDay(dateFormat, selectedDate),\n );\n\n if (parsedDateFromInputIsTheSameAsSelectedDate) {\n // valid date inputted\n setShowValidation(false);\n } else {\n // invalid date inputted\n setShowValidation(true);\n }\n };\n\n const getFeedbackAndVariant = (): {\n feedback: string;\n variant: VariantType | undefined;\n } => {\n if (feedback) return { feedback, variant };\n if (!hideValidation && showValidation)\n return { feedback: validationFeedback, variant: validationVariant };\n return { feedback: '', variant: undefined };\n };\n\n const focusAndSelectInputField = () =>\n setTimeout(() => {\n inputRef.current?.select();\n }, 5);\n\n const forceUpdateInputFormat = () =>\n datepickerRef.current?.setState({ inputValue: null });\n\n const toggleCalendarGUI = () =>\n datepickerRef.current?.setOpen(!datepickerRef.current?.isCalendarOpen());\n\n return (\n <>\n <ReactDatepicker\n selected={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n dateFormat={dateFormats}\n showWeekNumbers\n weekLabel={weekLabel}\n onChange={onChange}\n onClickOutside={validateInput}\n id={datepickerId}\n ariaLabelledBy={datepickerId}\n showPopperArrow={false}\n locale={locale}\n inline={inline}\n disabled={disabled}\n preventOpenOnFocus={true}\n open={hideCalendar ? false : open}\n ref={datepickerRef}\n calendarClassName=\"eds-datepicker__calender\"\n dayClassName={() => 'eds-datepicker__calender__day'}\n weekDayClassName={() => 'eds-datepicker__calender__day-name'}\n className={classNames(className, 'eds-datepicker__input')}\n highlightDates={[\n { 'eds-datepicker__calender__day--today': [new Date()] },\n {\n 'eds-datepicker__calender__day--selected': selectedDate\n ? [selectedDate]\n : [],\n },\n ]}\n renderCustomHeader={({\n date,\n changeYear,\n changeMonth,\n decreaseMonth,\n increaseMonth,\n prevMonthButtonDisabled,\n nextMonthButtonDisabled,\n }) => (\n <DatePickerHeader\n date={date}\n changeYear={changeYear}\n changeMonth={changeMonth}\n increaseMonth={increaseMonth}\n decreaseMonth={decreaseMonth}\n prevMonthButtonDisabled={prevMonthButtonDisabled}\n nextMonthButtonDisabled={nextMonthButtonDisabled}\n />\n )}\n customInput={\n <DatePickerInput\n style={style}\n label={label}\n inputPlaceholder={placeholder}\n calendarButtonTooltip={calendarButtonTooltip}\n prepend={prepend}\n feedback={getFeedbackAndVariant().feedback}\n variant={getFeedbackAndVariant().variant}\n inputRef={inputRef}\n forwardRef={ref}\n onKeyDownInput={handleOnKeyDown}\n onBlurInput={() =>\n !datepickerRef.current?.isCalendarOpen() && validateInput()\n }\n onFocus={undefined}\n toggleCalendarGUI={toggleCalendarGUI}\n disableLabelAnimation={disableLabelAnimation}\n hideCalendarButton={hideCalendarButton}\n selectedDate={selectedDate}\n />\n }\n {...rest}\n />\n </>\n );\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 {\n default as ReactDatepicker,\n ReactDatePickerProps,\n registerLocale,\n} from 'react-datepicker';\nimport classNames from 'classnames';\nimport {\n BaseFormControl,\n useInputGroupContext,\n VariantType,\n} from '@entur/form';\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\nimport { nb } from 'date-fns/locale';\nimport { add, sub } from 'date-fns';\nimport * as Popper from '@popperjs/core';\nimport './TimePicker.scss';\nregisterLocale('nb', nb);\n\nexport type TimePickerProps = {\n /** Hva som er den valgte datoen */\n selectedTime?: Date;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event>,\n ) => void;\n /** Placeholder om ingen dato er valgt\n * @default \"Velg tid\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over TimePicker */\n label: string;\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n style?: React.CSSProperties;\n labelTooltip?: React.ReactNode;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Kalles ved klikk på pil venstre i TimePicker\n * @default Trekker fra 30 minutter av den valgte tiden\n */\n onLeftArrowClick?: (selectedTime?: Date | null, e?: React.MouseEvent) => void;\n /** Kalles ved klikk på pil høyre i TimePicker\n * @default Legger til 30 minutter av den valgte tiden\n */\n onRightArrowClick?: (\n selectedTime?: Date | null,\n e?: React.MouseEvent,\n ) => void;\n} & ReactDatePickerProps;\n\nexport const TimePicker = React.forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n selectedTime = null,\n onChange,\n placeholder = 'Velg tid',\n disabled,\n className,\n style,\n label,\n labelTooltip,\n feedback,\n variant,\n disableLabelAnimation,\n locale = 'nb',\n onLeftArrowClick = (selectedTime, event) =>\n selectedTime && onChange(sub(selectedTime, { minutes: 30 }), event),\n onRightArrowClick = (selectedTime, event) =>\n selectedTime && onChange(add(selectedTime, { minutes: 30 }), event),\n ...rest\n },\n ref,\n ) => {\n const timepickerId = useRandomId('eds-timepicker');\n return (\n <BaseFormControl\n style={style}\n ref={ref}\n label={label}\n labelId={timepickerId}\n labelTooltip={labelTooltip}\n variant={variant}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n className=\"eds-timepicker-form-control\"\n disabled={disabled}\n prepend={\n <TimePickerArrowButton\n direction=\"left\"\n tabIndex={-1}\n onClick={(e: React.MouseEvent) => onLeftArrowClick(selectedTime, e)}\n disabled={disabled}\n />\n }\n >\n <TimePickerBase\n selectedTime={selectedTime}\n onChange={onChange}\n placeholder={placeholder}\n className={className}\n locale={locale}\n ariaLabelledBy={timepickerId}\n disabled={disabled}\n {...rest}\n />\n <TimePickerArrowButton\n direction=\"right\"\n tabIndex={-1}\n onClick={(e: React.MouseEvent) => onRightArrowClick(selectedTime, e)}\n disabled={disabled}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TimePickerBaseProps = {\n /** Hva som er den valgte datoen */\n selectedTime?: Date | null;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event>,\n ) => void;\n /** Placeholder om ingen dato er valgt\n * @default \"Velg tid\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n} & ReactDatePickerProps;\n\nconst POPPER_MODIFIERS: Popper.StrictModifiers[] = [\n {\n name: 'offset',\n enabled: true,\n options: {\n offset: [0, 0],\n },\n },\n];\nconst TimePickerBase: React.FC<TimePickerBaseProps> = ({\n className,\n onChange,\n selectedTime,\n placeholder,\n timeFormat = 'HH:mm',\n dateFormat = ['HH:mm', 'HHmm'],\n ...rest\n}) => {\n const { isFilled: isTimepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (selectedTime) {\n setFiller && !isTimepickerFilled && setFiller(true);\n }\n });\n\n React.useEffect(() => {\n if (selectedTime) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n }, [selectedTime, setFiller, isTimepickerFilled]);\n\n const handleChange = (date: any, event: any) => {\n if (date) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(date, event);\n }\n };\n return (\n <ReactDatepicker\n className={classNames(\n 'eds-form-control',\n 'eds-timepicker__input',\n className,\n )}\n calendarClassName=\"eds-timepicker\"\n selected={selectedTime}\n onChange={handleChange}\n dateFormat={dateFormat}\n timeFormat={timeFormat}\n showTimeSelect\n showTimeInput={true}\n showTimeSelectOnly\n showPopperArrow={false}\n placeholderText={placeholder}\n popperClassName=\"eds-datepicker__popper\"\n popperModifiers={POPPER_MODIFIERS}\n open={false}\n {...rest}\n />\n );\n};\n\ntype TimePickerArrowButtonProps = {\n direction: 'left' | 'right';\n} & React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n>;\n\nconst TimePickerArrowButton: React.FC<TimePickerArrowButtonProps> = ({\n direction,\n ...rest\n}) => {\n return (\n <button\n className={classNames(\n 'eds-timepicker__arrowbutton',\n `eds-timepicker__arrowbutton--${direction}`,\n )}\n type=\"button\"\n {...rest}\n >\n {direction === 'left' ? <LeftArrowIcon /> : <RightArrowIcon />}\n </button>\n );\n};\n","import React from 'react';\nimport {\n BaseFormControl,\n isFilled,\n useInputGroupContext,\n useVariant,\n VariantType,\n} from '@entur/form';\nimport { ClockIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\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 /** 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 <ClockIcon />\n */\n prepend?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const NativeTimePicker = React.forwardRef<\n HTMLInputElement,\n NativeTimePickerProps\n>(\n (\n {\n className,\n style,\n onChange,\n label,\n feedback,\n variant,\n disableLabelAnimation,\n prepend = <ClockIcon />,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const nativetimepickerId = 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={nativetimepickerId}\n disableLabelAnimation={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 eds-native-date-picker\"\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 './NativeDatePicker';\nexport * from './TimePicker';\nexport * from './NativeTimePicker';\n"],"names":["DatePickerHeader","date","decreaseMonth","increaseMonth","prevMonthButtonDisabled","nextMonthButtonDisabled","monthNames","locale","year","Date","getFullYear","monthList","Array","keys","formatter","Intl","DateTimeFormat","month","from","monthIndex","format","getMonthList","React","className","IconButton","onClick","disabled","LeftArrowIcon","Heading3","getMonth","RightArrowIcon","DatePickerInput","forwardRef","ref","style","label","inputPlaceholder","prepend","feedback","variant","calendarButtonTooltip","hideCalendarButton","disableLabelAnimation","inputRef","toggleCalendarGUI","onKeyDownInput","onBlurInput","selectedDate","rest","handleOnKeyDown","event","handleOnBlur","handleOnFocus","setTimeout","current","_inputRef$current7","select","useEffect","addEventListener","removeEventListener","TextField","placeholder","mergeRefs","append","Tooltip","placement","content","disableHoverListener","disableFocusListener","type","CalendarIcon","refs","node","registerLocale","nb","DatePicker","onChange","onKeyDown","dateFormats","minDate","maxDate","inline","validationFeedback","validationVariant","hideCalendar","hideValidation","weekLabel","open","datepickerId","useRandomId","useState","showValidation","setShowValidation","datepickerRef","useRef","validateInput","inputValue","_inputRef$current","value","inputValueParsedWithAllDateFormats","map","parse","parsedDateFromInputIsTheSameAsSelectedDate","some","dateFormat","isSameDay","getFeedbackAndVariant","undefined","forceUpdateInputFormat","_datepickerRef$curren2","setState","ReactDatepicker","selected","showWeekNumbers","onClickOutside","id","ariaLabelledBy","showPopperArrow","preventOpenOnFocus","calendarClassName","dayClassName","weekDayClassName","classNames","highlightDates","renderCustomHeader","changeYear","changeMonth","customInput","calendarIsClosed","_datepickerRef$curren","isCalendarOpen","key","_datepickerRef$curren5","onFocus","_datepickerRef$curren3","setOpen","_datepickerRef$curren4","NativeDatePicker","DateIcon","nativedatepickerId","BaseFormControl","labelId","isFilled","NativeDatePickerBase","contextVariant","useVariant","currentVariant","useInputGroupContext","isDatepickerFilled","setFiller","setFilled","useOnMount","target","TimePicker","selectedTime","labelTooltip","onLeftArrowClick","sub","minutes","onRightArrowClick","add","timepickerId","TimePickerArrowButton","direction","tabIndex","e","TimePickerBase","POPPER_MODIFIERS","name","enabled","options","offset","timeFormat","isTimepickerFilled","showTimeSelect","showTimeInput","showTimeSelectOnly","placeholderText","popperClassName","popperModifiers","NativeTimePicker","ClockIcon","nativetimepickerId","NativeTimePickerBase","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datepicker.cjs.production.min.js","sources":["../src/DatePicker/DatePickerHeader.tsx","../src/DatePicker/DatePickerInput.tsx","../src/DatePicker/DatePicker.tsx","../src/NativeDatePicker.tsx","../src/TimePicker.tsx","../src/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport { ReactDatePickerCustomHeaderProps } from 'react-datepicker';\n\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { Heading3 } from '@entur/typography';\nimport { IconButton } from '@entur/button';\n\nexport const DatePickerHeader = ({\n date,\n decreaseMonth,\n increaseMonth,\n prevMonthButtonDisabled,\n nextMonthButtonDisabled,\n}: Partial<ReactDatePickerCustomHeaderProps>) => {\n const monthNames = getMonthList();\n return (\n <div className=\"eds-datepicker__calender__header\">\n <IconButton\n type=\"button\"\n className=\"eds-datepicker__calender__header__month-button--left\"\n onClick={decreaseMonth}\n disabled={prevMonthButtonDisabled}\n >\n <LeftArrowIcon />\n </IconButton>\n <Heading3 className=\"eds-datepicker__calender__header__month-text\">\n {monthNames[date?.getMonth() ?? 0]}\n </Heading3>\n <Heading3 className=\"eds-datepicker__calender__header__month-text\">\n {date?.getFullYear()}\n </Heading3>\n\n <IconButton\n type=\"button\"\n className=\"eds-datepicker__calender__header__month-button--right\"\n onClick={increaseMonth}\n disabled={nextMonthButtonDisabled}\n >\n <RightArrowIcon />\n </IconButton>\n </div>\n );\n};\n\nfunction getMonthList(locale = 'nb') {\n const year = new Date().getFullYear();\n const monthList = Array(12).keys();\n const formatter = new Intl.DateTimeFormat(locale, {\n month: 'long',\n });\n const getMonthName = (monthIndex: number) =>\n formatter.format(new Date(year, monthIndex));\n\n return Array.from(monthList, getMonthName);\n}\n","import React from 'react';\n\nimport { TextField, VariantType } from '@entur/form';\nimport { Tooltip } from '@entur/tooltip';\nimport { IconButton } from '@entur/button';\nimport { CalendarIcon } from '@entur/icons';\n\ntype DatePickerInputProps = {\n style?: React.CSSProperties;\n label: string;\n inputPlaceholder: string;\n prepend?: React.ReactNode;\n feedback?: string;\n variant?: VariantType;\n disabled?: boolean;\n disableLabelAnimation?: boolean;\n calendarButtonTooltip: string;\n hideCalendarButton?: boolean;\n inputRef: React.RefObject<HTMLInputElement>;\n forwardRef: React.ForwardedRef<HTMLInputElement>;\n toggleCalendarGUI: () => void;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLInputElement>;\n onKeyDownInput: (event: KeyboardEvent) => any;\n onBlurInput: (event: FocusEvent) => any;\n onFocus: undefined; // To prevent open on focus\n selectedDate: Date | null; // Necessary to update component on state change\n placeholder?: null; // override react-datepickers placeholder prop\n};\n\nexport const DatePickerInput = React.forwardRef<\n HTMLInputElement,\n DatePickerInputProps\n>(\n (\n {\n style,\n label,\n inputPlaceholder,\n prepend,\n feedback,\n variant,\n disabled,\n calendarButtonTooltip,\n hideCalendarButton,\n disableLabelAnimation,\n inputRef,\n forwardRef,\n toggleCalendarGUI,\n onKeyDownInput,\n onBlurInput,\n selectedDate,\n placeholder, // eslint-disable-line\n ...rest // forwarded props from react-datepicker\n },\n ref,\n ) => {\n React.useEffect(() => {\n inputRef.current?.addEventListener('keydown', handleOnKeyDown);\n inputRef.current?.addEventListener('blur', handleOnBlur);\n inputRef.current?.addEventListener('focus', handleOnFocus);\n return () => {\n inputRef.current?.removeEventListener('keydown', handleOnKeyDown);\n inputRef.current?.removeEventListener('blur', handleOnBlur);\n inputRef.current?.removeEventListener('focus', handleOnFocus);\n };\n }, [inputRef, selectedDate]);\n\n function handleOnKeyDown(this: HTMLElement, event: KeyboardEvent) {\n onKeyDownInput(event);\n }\n function handleOnBlur(this: HTMLElement, event: FocusEvent) {\n onBlurInput(event);\n }\n function handleOnFocus() {\n setTimeout(() => inputRef.current?.select(), 5);\n }\n\n return (\n <TextField\n style={style}\n label={label}\n placeholder={inputPlaceholder}\n prepend={prepend}\n feedback={feedback}\n variant={variant}\n disableLabelAnimation={disableLabelAnimation}\n ref={mergeRefs(ref, inputRef, forwardRef)}\n append={\n !hideCalendarButton && (\n <Tooltip\n placement=\"top\"\n content={calendarButtonTooltip}\n disableHoverListener={disabled}\n disableFocusListener={disabled}\n >\n <IconButton type=\"button\" onClick={toggleCalendarGUI}>\n <CalendarIcon />\n </IconButton>\n </Tooltip>\n )\n }\n {...rest}\n />\n );\n },\n);\n\nconst mergeRefs = <T extends HTMLElement>(\n ...refs: React.MutableRefObject<T>[] | React.ForwardedRef<T>[]\n) => {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) ref.current = node;\n }\n };\n};\n","import React, { useRef, useState } from 'react';\nimport ReactDatePicker, {\n default as ReactDatepicker,\n ReactDatePickerProps,\n registerLocale,\n} from 'react-datepicker';\nimport { parse, isSameDay, Locale } from 'date-fns';\nimport { nb } from 'date-fns/locale';\nimport classNames from 'classnames';\n\nimport { VariantType } from '@entur/form';\nimport { useRandomId } from '@entur/utils';\n\nimport { DatePickerHeader } from './DatePickerHeader';\nimport { DatePickerInput } from './DatePickerInput';\n\nimport './DatePicker.scss';\nimport 'react-datepicker/dist/react-datepicker.css';\n\nregisterLocale('nb', nb);\n\nexport type DatePickerProps = {\n /** Hva som er den valgte datoen */\n selectedDate: Date | null;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event> | undefined,\n ) => void;\n /**\n * Kalles når en tast trykkes i inputfeltet\n */\n onKeyDown?: (event: KeyboardEvent) => void;\n /**\n * Datoformater som skal støttes. Første i listen er formatet alt input omgjøres til.\n * Format-valg tilgjengelig her: https://date-fns.org/v2.28.0/docs/format\n * OBS: Noen kombinasjoner av datoformater kan gi rar og uønsket oppførsel,\n * test nøye ved endring\n * @default \"['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy', 'ddMMyy']\"\n */\n dateFormats?: string[];\n /**\n * Locale fra date-fns som brukes av Datepicker-en\n * @default nb\n */\n locale?: Locale;\n /** Placeholder om ingen dato er valgt\n * @default \"dd.mm.yyyy\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over DatePicker */\n label: string;\n /**\n * Varselmelding, som vil komme under DatePicker\n */\n feedback?: string;\n /** Valideringsvariant\n */\n variant?: VariantType;\n /** Varselmelding for når datoen er på feil format\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om feil datoformat\n * @default \"error\"\n */\n validationVariant?: VariantType;\n style?: React.CSSProperties;\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 /**\n * Tekst som vises ved hover på «Åpne kalender»-knappen\n */\n calendarButtonTooltip?: string;\n /** Skjuler knapp for åpning av kalender\n * @default false\n */\n hideCalendarButton?: boolean;\n /** Skjuler tilbakemeldingsteksten ved feil dato-input\n * @default false\n */\n hideValidation?: boolean;\n /** Skjuler kalender-GUI-et\n * @default false\n */\n hideCalendar?: boolean;\n /** Viser kun kalender-popover-en\n * @default false\n */\n inline?: boolean;\n // For testing\n 'data-cy'?: any;\n} & Omit<\n ReactDatePickerProps,\n 'selected' | 'customInput' | 'onChangeRaw' | 'dateFormat' | 'locale'\n>;\n\nexport const DatePicker = React.forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n style,\n className,\n selectedDate,\n label,\n placeholder = 'dd.mm.yyyy',\n onChange,\n onKeyDown = () => null,\n dateFormats = ['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy', 'ddMMyy'],\n minDate,\n maxDate,\n inline = false,\n disabled,\n prepend,\n feedback = '',\n variant,\n validationFeedback = 'Ugyldig dato',\n validationVariant = 'error',\n disableLabelAnimation = false,\n calendarButtonTooltip = 'Åpne\\xa0kalender',\n hideCalendarButton = false,\n hideCalendar = false,\n hideValidation = false,\n weekLabel = 'uke',\n locale = nb,\n open,\n ...rest\n },\n ref,\n ) => {\n const datepickerId = useRandomId('eds-datepicker');\n\n const [showValidation, setShowValidation] = useState(false);\n\n const datepickerRef = useRef<ReactDatePicker>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => validateInput(), [selectedDate]);\n\n const handleOnKeyDown = (event: KeyboardEvent) => {\n const calendarIsClosed = !datepickerRef.current?.isCalendarOpen();\n\n setShowValidation(false);\n if (event.key === 'Enter') {\n validateInput();\n focusAndSelectInputField();\n forceUpdateInputFormat();\n } else if (event.key === 'Tab' && calendarIsClosed) {\n validateInput();\n forceUpdateInputFormat();\n }\n onKeyDown(event);\n };\n\n const validateInput = () => {\n setShowValidation(false);\n const inputValue = inputRef.current?.value;\n if (!inputValue) return;\n\n const inputValueParsedWithAllDateFormats = dateFormats.map(format =>\n parse(inputValue, format, new Date(), {\n locale: locale,\n }),\n );\n\n const parsedDateFromInputIsTheSameAsSelectedDate =\n selectedDate &&\n inputValueParsedWithAllDateFormats.some(dateFormat =>\n isSameDay(dateFormat, selectedDate),\n );\n\n if (parsedDateFromInputIsTheSameAsSelectedDate) {\n // valid date inputted\n setShowValidation(false);\n } else {\n // invalid date inputted\n setShowValidation(true);\n }\n };\n\n const getFeedbackAndVariant = (): {\n feedback: string;\n variant: VariantType | undefined;\n } => {\n if (feedback) return { feedback, variant };\n if (!hideValidation && showValidation)\n return { feedback: validationFeedback, variant: validationVariant };\n return { feedback: '', variant: undefined };\n };\n\n const focusAndSelectInputField = () =>\n setTimeout(() => {\n inputRef.current?.select();\n }, 5);\n\n const forceUpdateInputFormat = () =>\n datepickerRef.current?.setState({ inputValue: null });\n\n const toggleCalendarGUI = () =>\n datepickerRef.current?.setOpen(!datepickerRef.current?.isCalendarOpen());\n\n return (\n <>\n <ReactDatepicker\n selected={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n dateFormat={dateFormats}\n showWeekNumbers\n weekLabel={weekLabel}\n onChange={onChange}\n onClickOutside={validateInput}\n id={datepickerId}\n ariaLabelledBy={datepickerId}\n showPopperArrow={false}\n locale={locale}\n inline={inline}\n disabled={disabled}\n preventOpenOnFocus={true}\n open={hideCalendar ? false : open}\n ref={datepickerRef}\n calendarClassName=\"eds-datepicker__calender\"\n dayClassName={() => 'eds-datepicker__calender__day'}\n weekDayClassName={() => 'eds-datepicker__calender__day-name'}\n className={classNames(className, 'eds-datepicker__input')}\n highlightDates={[\n { 'eds-datepicker__calender__day--today': [new Date()] },\n {\n 'eds-datepicker__calender__day--selected': selectedDate\n ? [selectedDate]\n : [],\n },\n ]}\n renderCustomHeader={({\n date,\n changeYear,\n changeMonth,\n decreaseMonth,\n increaseMonth,\n prevMonthButtonDisabled,\n nextMonthButtonDisabled,\n }) => (\n <DatePickerHeader\n date={date}\n changeYear={changeYear}\n changeMonth={changeMonth}\n increaseMonth={increaseMonth}\n decreaseMonth={decreaseMonth}\n prevMonthButtonDisabled={prevMonthButtonDisabled}\n nextMonthButtonDisabled={nextMonthButtonDisabled}\n />\n )}\n customInput={\n <DatePickerInput\n style={style}\n label={label}\n inputPlaceholder={placeholder}\n calendarButtonTooltip={calendarButtonTooltip}\n prepend={prepend}\n feedback={getFeedbackAndVariant().feedback}\n variant={getFeedbackAndVariant().variant}\n inputRef={inputRef}\n forwardRef={ref}\n onKeyDownInput={handleOnKeyDown}\n onBlurInput={() =>\n !datepickerRef.current?.isCalendarOpen() && validateInput()\n }\n onFocus={undefined}\n toggleCalendarGUI={toggleCalendarGUI}\n disableLabelAnimation={disableLabelAnimation}\n hideCalendarButton={hideCalendarButton}\n selectedDate={selectedDate}\n />\n }\n {...rest}\n />\n </>\n );\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 {\n default as ReactDatepicker,\n ReactDatePickerProps,\n registerLocale,\n} from 'react-datepicker';\nimport classNames from 'classnames';\nimport {\n BaseFormControl,\n useInputGroupContext,\n VariantType,\n} from '@entur/form';\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\nimport { nb } from 'date-fns/locale';\nimport { add, sub } from 'date-fns';\nimport * as Popper from '@popperjs/core';\nimport './TimePicker.scss';\nregisterLocale('nb', nb);\n\nexport type TimePickerProps = {\n /** Hva som er den valgte datoen */\n selectedTime?: Date;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event>,\n ) => void;\n /** Placeholder om ingen dato er valgt\n * @default \"Velg tid\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over TimePicker */\n label: string;\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n style?: React.CSSProperties;\n labelTooltip?: React.ReactNode;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Kalles ved klikk på pil venstre i TimePicker\n * @default Trekker fra 30 minutter av den valgte tiden\n */\n onLeftArrowClick?: (selectedTime?: Date | null, e?: React.MouseEvent) => void;\n /** Kalles ved klikk på pil høyre i TimePicker\n * @default Legger til 30 minutter av den valgte tiden\n */\n onRightArrowClick?: (\n selectedTime?: Date | null,\n e?: React.MouseEvent,\n ) => void;\n} & ReactDatePickerProps;\n\nexport const TimePicker = React.forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n selectedTime = null,\n onChange,\n placeholder = 'Velg tid',\n disabled,\n className,\n style,\n label,\n labelTooltip,\n feedback,\n variant,\n disableLabelAnimation,\n locale = 'nb',\n onLeftArrowClick = (selectedTime, event) =>\n selectedTime && onChange(sub(selectedTime, { minutes: 30 }), event),\n onRightArrowClick = (selectedTime, event) =>\n selectedTime && onChange(add(selectedTime, { minutes: 30 }), event),\n ...rest\n },\n ref,\n ) => {\n const timepickerId = useRandomId('eds-timepicker');\n return (\n <BaseFormControl\n style={style}\n ref={ref}\n label={label}\n labelId={timepickerId}\n labelTooltip={labelTooltip}\n variant={variant}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n className=\"eds-timepicker-form-control\"\n disabled={disabled}\n prepend={\n <TimePickerArrowButton\n direction=\"left\"\n tabIndex={-1}\n onClick={(e: React.MouseEvent) => onLeftArrowClick(selectedTime, e)}\n disabled={disabled}\n />\n }\n >\n <TimePickerBase\n selectedTime={selectedTime}\n onChange={onChange}\n placeholder={placeholder}\n className={className}\n locale={locale}\n ariaLabelledBy={timepickerId}\n disabled={disabled}\n {...rest}\n />\n <TimePickerArrowButton\n direction=\"right\"\n tabIndex={-1}\n onClick={(e: React.MouseEvent) => onRightArrowClick(selectedTime, e)}\n disabled={disabled}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TimePickerBaseProps = {\n /** Hva som er den valgte datoen */\n selectedTime?: Date | null;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event>,\n ) => void;\n /** Placeholder om ingen dato er valgt\n * @default \"Velg tid\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n} & ReactDatePickerProps;\n\nconst POPPER_MODIFIERS: Popper.StrictModifiers[] = [\n {\n name: 'offset',\n enabled: true,\n options: {\n offset: [0, 0],\n },\n },\n];\nconst TimePickerBase: React.FC<TimePickerBaseProps> = ({\n className,\n onChange,\n selectedTime,\n placeholder,\n timeFormat = 'HH:mm',\n dateFormat = ['HH:mm', 'HHmm'],\n ...rest\n}) => {\n const { isFilled: isTimepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (selectedTime) {\n setFiller && !isTimepickerFilled && setFiller(true);\n }\n });\n\n React.useEffect(() => {\n if (selectedTime) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n }, [selectedTime, setFiller, isTimepickerFilled]);\n\n const handleChange = (date: any, event: any) => {\n if (date) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(date, event);\n }\n };\n return (\n <ReactDatepicker\n className={classNames(\n 'eds-form-control',\n 'eds-timepicker__input',\n className,\n )}\n calendarClassName=\"eds-timepicker\"\n selected={selectedTime}\n onChange={handleChange}\n dateFormat={dateFormat}\n timeFormat={timeFormat}\n showTimeSelect\n showTimeInput={true}\n showTimeSelectOnly\n showPopperArrow={false}\n placeholderText={placeholder}\n popperClassName=\"eds-datepicker__popper\"\n popperModifiers={POPPER_MODIFIERS}\n open={false}\n {...rest}\n />\n );\n};\n\ntype TimePickerArrowButtonProps = {\n direction: 'left' | 'right';\n} & React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n>;\n\nconst TimePickerArrowButton: React.FC<TimePickerArrowButtonProps> = ({\n direction,\n ...rest\n}) => {\n return (\n <button\n className={classNames(\n 'eds-timepicker__arrowbutton',\n `eds-timepicker__arrowbutton--${direction}`,\n )}\n type=\"button\"\n {...rest}\n >\n {direction === 'left' ? <LeftArrowIcon /> : <RightArrowIcon />}\n </button>\n );\n};\n","import React from 'react';\nimport {\n BaseFormControl,\n isFilled,\n useInputGroupContext,\n useVariant,\n VariantType,\n} from '@entur/form';\nimport { ClockIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\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 /** 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 <ClockIcon />\n */\n prepend?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const NativeTimePicker = React.forwardRef<\n HTMLInputElement,\n NativeTimePickerProps\n>(\n (\n {\n className,\n style,\n onChange,\n label,\n feedback,\n variant,\n disableLabelAnimation,\n prepend = <ClockIcon />,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const nativetimepickerId = 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={nativetimepickerId}\n disableLabelAnimation={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 eds-native-date-picker\"\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 './NativeDatePicker';\nexport * from './TimePicker';\nexport * from './NativeTimePicker';\n"],"names":["DatePickerHeader","date","decreaseMonth","increaseMonth","prevMonthButtonDisabled","nextMonthButtonDisabled","monthNames","locale","year","Date","getFullYear","monthList","Array","keys","formatter","Intl","DateTimeFormat","month","from","monthIndex","format","getMonthList","React","className","IconButton","type","onClick","disabled","LeftArrowIcon","Heading3","getMonth","RightArrowIcon","DatePickerInput","forwardRef","ref","style","label","inputPlaceholder","prepend","feedback","variant","calendarButtonTooltip","hideCalendarButton","disableLabelAnimation","inputRef","toggleCalendarGUI","onKeyDownInput","onBlurInput","selectedDate","rest","handleOnKeyDown","event","handleOnBlur","handleOnFocus","setTimeout","current","_inputRef$current7","select","useEffect","addEventListener","removeEventListener","TextField","placeholder","mergeRefs","append","Tooltip","placement","content","disableHoverListener","disableFocusListener","CalendarIcon","refs","node","registerLocale","nb","DatePicker","onChange","onKeyDown","dateFormats","minDate","maxDate","inline","validationFeedback","validationVariant","hideCalendar","hideValidation","weekLabel","open","datepickerId","useRandomId","useState","showValidation","setShowValidation","datepickerRef","useRef","validateInput","inputValue","_inputRef$current","value","inputValueParsedWithAllDateFormats","map","parse","parsedDateFromInputIsTheSameAsSelectedDate","some","dateFormat","isSameDay","getFeedbackAndVariant","undefined","forceUpdateInputFormat","_datepickerRef$curren2","setState","ReactDatepicker","selected","showWeekNumbers","onClickOutside","id","ariaLabelledBy","showPopperArrow","preventOpenOnFocus","calendarClassName","dayClassName","weekDayClassName","classNames","highlightDates","renderCustomHeader","changeYear","changeMonth","customInput","calendarIsClosed","_datepickerRef$curren","isCalendarOpen","key","_datepickerRef$curren5","onFocus","_datepickerRef$curren3","setOpen","_datepickerRef$curren4","NativeDatePicker","DateIcon","nativedatepickerId","BaseFormControl","labelId","isFilled","NativeDatePickerBase","contextVariant","useVariant","currentVariant","useInputGroupContext","isDatepickerFilled","setFiller","setFilled","useOnMount","target","TimePicker","selectedTime","labelTooltip","onLeftArrowClick","sub","minutes","onRightArrowClick","add","timepickerId","TimePickerArrowButton","direction","tabIndex","e","TimePickerBase","POPPER_MODIFIERS","name","enabled","options","offset","timeFormat","isTimepickerFilled","showTimeSelect","showTimeInput","showTimeSelectOnly","placeholderText","popperClassName","popperModifiers","NativeTimePicker","ClockIcon","nativetimepickerId","NativeTimePickerBase","warnAboutMissingStyles"],"mappings":"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"}
|
package/dist/datepicker.esm.js
CHANGED
|
@@ -94,6 +94,7 @@ var DatePickerHeader = function DatePickerHeader(_ref) {
|
|
|
94
94
|
return React.createElement("div", {
|
|
95
95
|
className: "eds-datepicker__calender__header"
|
|
96
96
|
}, React.createElement(IconButton, {
|
|
97
|
+
type: "button",
|
|
97
98
|
className: "eds-datepicker__calender__header__month-button--left",
|
|
98
99
|
onClick: decreaseMonth,
|
|
99
100
|
disabled: prevMonthButtonDisabled
|
|
@@ -102,6 +103,7 @@ var DatePickerHeader = function DatePickerHeader(_ref) {
|
|
|
102
103
|
}, monthNames[(_date$getMonth = date == null ? void 0 : date.getMonth()) != null ? _date$getMonth : 0]), React.createElement(Heading3, {
|
|
103
104
|
className: "eds-datepicker__calender__header__month-text"
|
|
104
105
|
}, date == null ? void 0 : date.getFullYear()), React.createElement(IconButton, {
|
|
106
|
+
type: "button",
|
|
105
107
|
className: "eds-datepicker__calender__header__month-button--right",
|
|
106
108
|
onClick: increaseMonth,
|
|
107
109
|
disabled: nextMonthButtonDisabled
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.esm.js","sources":["../src/DatePicker/DatePickerHeader.tsx","../src/DatePicker/DatePickerInput.tsx","../src/DatePicker/DatePicker.tsx","../src/NativeDatePicker.tsx","../src/TimePicker.tsx","../src/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport { ReactDatePickerCustomHeaderProps } from 'react-datepicker';\n\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { Heading3 } from '@entur/typography';\nimport { IconButton } from '@entur/button';\n\nexport const DatePickerHeader = ({\n date,\n decreaseMonth,\n increaseMonth,\n prevMonthButtonDisabled,\n nextMonthButtonDisabled,\n}: Partial<ReactDatePickerCustomHeaderProps>) => {\n const monthNames = getMonthList();\n return (\n <div className=\"eds-datepicker__calender__header\">\n <IconButton\n className=\"eds-datepicker__calender__header__month-button--left\"\n onClick={decreaseMonth}\n disabled={prevMonthButtonDisabled}\n >\n <LeftArrowIcon />\n </IconButton>\n <Heading3 className=\"eds-datepicker__calender__header__month-text\">\n {monthNames[date?.getMonth() ?? 0]}\n </Heading3>\n <Heading3 className=\"eds-datepicker__calender__header__month-text\">\n {date?.getFullYear()}\n </Heading3>\n\n <IconButton\n className=\"eds-datepicker__calender__header__month-button--right\"\n onClick={increaseMonth}\n disabled={nextMonthButtonDisabled}\n >\n <RightArrowIcon />\n </IconButton>\n </div>\n );\n};\n\nfunction getMonthList(locale = 'nb') {\n const year = new Date().getFullYear();\n const monthList = Array(12).keys();\n const formatter = new Intl.DateTimeFormat(locale, {\n month: 'long',\n });\n const getMonthName = (monthIndex: number) =>\n formatter.format(new Date(year, monthIndex));\n\n return Array.from(monthList, getMonthName);\n}\n","import React from 'react';\n\nimport { TextField, VariantType } from '@entur/form';\nimport { Tooltip } from '@entur/tooltip';\nimport { IconButton } from '@entur/button';\nimport { CalendarIcon } from '@entur/icons';\n\ntype DatePickerInputProps = {\n style?: React.CSSProperties;\n label: string;\n inputPlaceholder: string;\n prepend?: React.ReactNode;\n feedback?: string;\n variant?: VariantType;\n disabled?: boolean;\n disableLabelAnimation?: boolean;\n calendarButtonTooltip: string;\n hideCalendarButton?: boolean;\n inputRef: React.RefObject<HTMLInputElement>;\n forwardRef: React.ForwardedRef<HTMLInputElement>;\n toggleCalendarGUI: () => void;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLInputElement>;\n onKeyDownInput: (event: KeyboardEvent) => any;\n onBlurInput: (event: FocusEvent) => any;\n onFocus: undefined; // To prevent open on focus\n selectedDate: Date | null; // Necessary to update component on state change\n placeholder?: null; // override react-datepickers placeholder prop\n};\n\nexport const DatePickerInput = React.forwardRef<\n HTMLInputElement,\n DatePickerInputProps\n>(\n (\n {\n style,\n label,\n inputPlaceholder,\n prepend,\n feedback,\n variant,\n disabled,\n calendarButtonTooltip,\n hideCalendarButton,\n disableLabelAnimation,\n inputRef,\n forwardRef,\n toggleCalendarGUI,\n onKeyDownInput,\n onBlurInput,\n selectedDate,\n placeholder, // eslint-disable-line\n ...rest // forwarded props from react-datepicker\n },\n ref,\n ) => {\n React.useEffect(() => {\n inputRef.current?.addEventListener('keydown', handleOnKeyDown);\n inputRef.current?.addEventListener('blur', handleOnBlur);\n inputRef.current?.addEventListener('focus', handleOnFocus);\n return () => {\n inputRef.current?.removeEventListener('keydown', handleOnKeyDown);\n inputRef.current?.removeEventListener('blur', handleOnBlur);\n inputRef.current?.removeEventListener('focus', handleOnFocus);\n };\n }, [inputRef, selectedDate]);\n\n function handleOnKeyDown(this: HTMLElement, event: KeyboardEvent) {\n onKeyDownInput(event);\n }\n function handleOnBlur(this: HTMLElement, event: FocusEvent) {\n onBlurInput(event);\n }\n function handleOnFocus() {\n setTimeout(() => inputRef.current?.select(), 5);\n }\n\n return (\n <TextField\n style={style}\n label={label}\n placeholder={inputPlaceholder}\n prepend={prepend}\n feedback={feedback}\n variant={variant}\n disableLabelAnimation={disableLabelAnimation}\n ref={mergeRefs(ref, inputRef, forwardRef)}\n append={\n !hideCalendarButton && (\n <Tooltip\n placement=\"top\"\n content={calendarButtonTooltip}\n disableHoverListener={disabled}\n disableFocusListener={disabled}\n >\n <IconButton type=\"button\" onClick={toggleCalendarGUI}>\n <CalendarIcon />\n </IconButton>\n </Tooltip>\n )\n }\n {...rest}\n />\n );\n },\n);\n\nconst mergeRefs = <T extends HTMLElement>(\n ...refs: React.MutableRefObject<T>[] | React.ForwardedRef<T>[]\n) => {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) ref.current = node;\n }\n };\n};\n","import React, { useRef, useState } from 'react';\nimport ReactDatePicker, {\n default as ReactDatepicker,\n ReactDatePickerProps,\n registerLocale,\n} from 'react-datepicker';\nimport { parse, isSameDay, Locale } from 'date-fns';\nimport { nb } from 'date-fns/locale';\nimport classNames from 'classnames';\n\nimport { VariantType } from '@entur/form';\nimport { useRandomId } from '@entur/utils';\n\nimport { DatePickerHeader } from './DatePickerHeader';\nimport { DatePickerInput } from './DatePickerInput';\n\nimport './DatePicker.scss';\nimport 'react-datepicker/dist/react-datepicker.css';\n\nregisterLocale('nb', nb);\n\nexport type DatePickerProps = {\n /** Hva som er den valgte datoen */\n selectedDate: Date | null;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event> | undefined,\n ) => void;\n /**\n * Kalles når en tast trykkes i inputfeltet\n */\n onKeyDown?: (event: KeyboardEvent) => void;\n /**\n * Datoformater som skal støttes. Første i listen er formatet alt input omgjøres til.\n * Format-valg tilgjengelig her: https://date-fns.org/v2.28.0/docs/format\n * OBS: Noen kombinasjoner av datoformater kan gi rar og uønsket oppførsel,\n * test nøye ved endring\n * @default \"['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy', 'ddMMyy']\"\n */\n dateFormats?: string[];\n /**\n * Locale fra date-fns som brukes av Datepicker-en\n * @default nb\n */\n locale?: Locale;\n /** Placeholder om ingen dato er valgt\n * @default \"dd.mm.yyyy\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over DatePicker */\n label: string;\n /**\n * Varselmelding, som vil komme under DatePicker\n */\n feedback?: string;\n /** Valideringsvariant\n */\n variant?: VariantType;\n /** Varselmelding for når datoen er på feil format\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om feil datoformat\n * @default \"error\"\n */\n validationVariant?: VariantType;\n style?: React.CSSProperties;\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 /**\n * Tekst som vises ved hover på «Åpne kalender»-knappen\n */\n calendarButtonTooltip?: string;\n /** Skjuler knapp for åpning av kalender\n * @default false\n */\n hideCalendarButton?: boolean;\n /** Skjuler tilbakemeldingsteksten ved feil dato-input\n * @default false\n */\n hideValidation?: boolean;\n /** Skjuler kalender-GUI-et\n * @default false\n */\n hideCalendar?: boolean;\n /** Viser kun kalender-popover-en\n * @default false\n */\n inline?: boolean;\n // For testing\n 'data-cy'?: any;\n} & Omit<\n ReactDatePickerProps,\n 'selected' | 'customInput' | 'onChangeRaw' | 'dateFormat' | 'locale'\n>;\n\nexport const DatePicker = React.forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n style,\n className,\n selectedDate,\n label,\n placeholder = 'dd.mm.yyyy',\n onChange,\n onKeyDown = () => null,\n dateFormats = ['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy', 'ddMMyy'],\n minDate,\n maxDate,\n inline = false,\n disabled,\n prepend,\n feedback = '',\n variant,\n validationFeedback = 'Ugyldig dato',\n validationVariant = 'error',\n disableLabelAnimation = false,\n calendarButtonTooltip = 'Åpne\\xa0kalender',\n hideCalendarButton = false,\n hideCalendar = false,\n hideValidation = false,\n weekLabel = 'uke',\n locale = nb,\n open,\n ...rest\n },\n ref,\n ) => {\n const datepickerId = useRandomId('eds-datepicker');\n\n const [showValidation, setShowValidation] = useState(false);\n\n const datepickerRef = useRef<ReactDatePicker>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => validateInput(), [selectedDate]);\n\n const handleOnKeyDown = (event: KeyboardEvent) => {\n const calendarIsClosed = !datepickerRef.current?.isCalendarOpen();\n\n setShowValidation(false);\n if (event.key === 'Enter') {\n validateInput();\n focusAndSelectInputField();\n forceUpdateInputFormat();\n } else if (event.key === 'Tab' && calendarIsClosed) {\n validateInput();\n forceUpdateInputFormat();\n }\n onKeyDown(event);\n };\n\n const validateInput = () => {\n setShowValidation(false);\n const inputValue = inputRef.current?.value;\n if (!inputValue) return;\n\n const inputValueParsedWithAllDateFormats = dateFormats.map(format =>\n parse(inputValue, format, new Date(), {\n locale: locale,\n }),\n );\n\n const parsedDateFromInputIsTheSameAsSelectedDate =\n selectedDate &&\n inputValueParsedWithAllDateFormats.some(dateFormat =>\n isSameDay(dateFormat, selectedDate),\n );\n\n if (parsedDateFromInputIsTheSameAsSelectedDate) {\n // valid date inputted\n setShowValidation(false);\n } else {\n // invalid date inputted\n setShowValidation(true);\n }\n };\n\n const getFeedbackAndVariant = (): {\n feedback: string;\n variant: VariantType | undefined;\n } => {\n if (feedback) return { feedback, variant };\n if (!hideValidation && showValidation)\n return { feedback: validationFeedback, variant: validationVariant };\n return { feedback: '', variant: undefined };\n };\n\n const focusAndSelectInputField = () =>\n setTimeout(() => {\n inputRef.current?.select();\n }, 5);\n\n const forceUpdateInputFormat = () =>\n datepickerRef.current?.setState({ inputValue: null });\n\n const toggleCalendarGUI = () =>\n datepickerRef.current?.setOpen(!datepickerRef.current?.isCalendarOpen());\n\n return (\n <>\n <ReactDatepicker\n selected={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n dateFormat={dateFormats}\n showWeekNumbers\n weekLabel={weekLabel}\n onChange={onChange}\n onClickOutside={validateInput}\n id={datepickerId}\n ariaLabelledBy={datepickerId}\n showPopperArrow={false}\n locale={locale}\n inline={inline}\n disabled={disabled}\n preventOpenOnFocus={true}\n open={hideCalendar ? false : open}\n ref={datepickerRef}\n calendarClassName=\"eds-datepicker__calender\"\n dayClassName={() => 'eds-datepicker__calender__day'}\n weekDayClassName={() => 'eds-datepicker__calender__day-name'}\n className={classNames(className, 'eds-datepicker__input')}\n highlightDates={[\n { 'eds-datepicker__calender__day--today': [new Date()] },\n {\n 'eds-datepicker__calender__day--selected': selectedDate\n ? [selectedDate]\n : [],\n },\n ]}\n renderCustomHeader={({\n date,\n changeYear,\n changeMonth,\n decreaseMonth,\n increaseMonth,\n prevMonthButtonDisabled,\n nextMonthButtonDisabled,\n }) => (\n <DatePickerHeader\n date={date}\n changeYear={changeYear}\n changeMonth={changeMonth}\n increaseMonth={increaseMonth}\n decreaseMonth={decreaseMonth}\n prevMonthButtonDisabled={prevMonthButtonDisabled}\n nextMonthButtonDisabled={nextMonthButtonDisabled}\n />\n )}\n customInput={\n <DatePickerInput\n style={style}\n label={label}\n inputPlaceholder={placeholder}\n calendarButtonTooltip={calendarButtonTooltip}\n prepend={prepend}\n feedback={getFeedbackAndVariant().feedback}\n variant={getFeedbackAndVariant().variant}\n inputRef={inputRef}\n forwardRef={ref}\n onKeyDownInput={handleOnKeyDown}\n onBlurInput={() =>\n !datepickerRef.current?.isCalendarOpen() && validateInput()\n }\n onFocus={undefined}\n toggleCalendarGUI={toggleCalendarGUI}\n disableLabelAnimation={disableLabelAnimation}\n hideCalendarButton={hideCalendarButton}\n selectedDate={selectedDate}\n />\n }\n {...rest}\n />\n </>\n );\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 {\n default as ReactDatepicker,\n ReactDatePickerProps,\n registerLocale,\n} from 'react-datepicker';\nimport classNames from 'classnames';\nimport {\n BaseFormControl,\n useInputGroupContext,\n VariantType,\n} from '@entur/form';\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\nimport { nb } from 'date-fns/locale';\nimport { add, sub } from 'date-fns';\nimport * as Popper from '@popperjs/core';\nimport './TimePicker.scss';\nregisterLocale('nb', nb);\n\nexport type TimePickerProps = {\n /** Hva som er den valgte datoen */\n selectedTime?: Date;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event>,\n ) => void;\n /** Placeholder om ingen dato er valgt\n * @default \"Velg tid\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over TimePicker */\n label: string;\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n style?: React.CSSProperties;\n labelTooltip?: React.ReactNode;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Kalles ved klikk på pil venstre i TimePicker\n * @default Trekker fra 30 minutter av den valgte tiden\n */\n onLeftArrowClick?: (selectedTime?: Date | null, e?: React.MouseEvent) => void;\n /** Kalles ved klikk på pil høyre i TimePicker\n * @default Legger til 30 minutter av den valgte tiden\n */\n onRightArrowClick?: (\n selectedTime?: Date | null,\n e?: React.MouseEvent,\n ) => void;\n} & ReactDatePickerProps;\n\nexport const TimePicker = React.forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n selectedTime = null,\n onChange,\n placeholder = 'Velg tid',\n disabled,\n className,\n style,\n label,\n labelTooltip,\n feedback,\n variant,\n disableLabelAnimation,\n locale = 'nb',\n onLeftArrowClick = (selectedTime, event) =>\n selectedTime && onChange(sub(selectedTime, { minutes: 30 }), event),\n onRightArrowClick = (selectedTime, event) =>\n selectedTime && onChange(add(selectedTime, { minutes: 30 }), event),\n ...rest\n },\n ref,\n ) => {\n const timepickerId = useRandomId('eds-timepicker');\n return (\n <BaseFormControl\n style={style}\n ref={ref}\n label={label}\n labelId={timepickerId}\n labelTooltip={labelTooltip}\n variant={variant}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n className=\"eds-timepicker-form-control\"\n disabled={disabled}\n prepend={\n <TimePickerArrowButton\n direction=\"left\"\n tabIndex={-1}\n onClick={(e: React.MouseEvent) => onLeftArrowClick(selectedTime, e)}\n disabled={disabled}\n />\n }\n >\n <TimePickerBase\n selectedTime={selectedTime}\n onChange={onChange}\n placeholder={placeholder}\n className={className}\n locale={locale}\n ariaLabelledBy={timepickerId}\n disabled={disabled}\n {...rest}\n />\n <TimePickerArrowButton\n direction=\"right\"\n tabIndex={-1}\n onClick={(e: React.MouseEvent) => onRightArrowClick(selectedTime, e)}\n disabled={disabled}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TimePickerBaseProps = {\n /** Hva som er den valgte datoen */\n selectedTime?: Date | null;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event>,\n ) => void;\n /** Placeholder om ingen dato er valgt\n * @default \"Velg tid\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n} & ReactDatePickerProps;\n\nconst POPPER_MODIFIERS: Popper.StrictModifiers[] = [\n {\n name: 'offset',\n enabled: true,\n options: {\n offset: [0, 0],\n },\n },\n];\nconst TimePickerBase: React.FC<TimePickerBaseProps> = ({\n className,\n onChange,\n selectedTime,\n placeholder,\n timeFormat = 'HH:mm',\n dateFormat = ['HH:mm', 'HHmm'],\n ...rest\n}) => {\n const { isFilled: isTimepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (selectedTime) {\n setFiller && !isTimepickerFilled && setFiller(true);\n }\n });\n\n React.useEffect(() => {\n if (selectedTime) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n }, [selectedTime, setFiller, isTimepickerFilled]);\n\n const handleChange = (date: any, event: any) => {\n if (date) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(date, event);\n }\n };\n return (\n <ReactDatepicker\n className={classNames(\n 'eds-form-control',\n 'eds-timepicker__input',\n className,\n )}\n calendarClassName=\"eds-timepicker\"\n selected={selectedTime}\n onChange={handleChange}\n dateFormat={dateFormat}\n timeFormat={timeFormat}\n showTimeSelect\n showTimeInput={true}\n showTimeSelectOnly\n showPopperArrow={false}\n placeholderText={placeholder}\n popperClassName=\"eds-datepicker__popper\"\n popperModifiers={POPPER_MODIFIERS}\n open={false}\n {...rest}\n />\n );\n};\n\ntype TimePickerArrowButtonProps = {\n direction: 'left' | 'right';\n} & React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n>;\n\nconst TimePickerArrowButton: React.FC<TimePickerArrowButtonProps> = ({\n direction,\n ...rest\n}) => {\n return (\n <button\n className={classNames(\n 'eds-timepicker__arrowbutton',\n `eds-timepicker__arrowbutton--${direction}`,\n )}\n type=\"button\"\n {...rest}\n >\n {direction === 'left' ? <LeftArrowIcon /> : <RightArrowIcon />}\n </button>\n );\n};\n","import React from 'react';\nimport {\n BaseFormControl,\n isFilled,\n useInputGroupContext,\n useVariant,\n VariantType,\n} from '@entur/form';\nimport { ClockIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\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 /** 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 <ClockIcon />\n */\n prepend?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const NativeTimePicker = React.forwardRef<\n HTMLInputElement,\n NativeTimePickerProps\n>(\n (\n {\n className,\n style,\n onChange,\n label,\n feedback,\n variant,\n disableLabelAnimation,\n prepend = <ClockIcon />,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const nativetimepickerId = 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={nativetimepickerId}\n disableLabelAnimation={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 eds-native-date-picker\"\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 './NativeDatePicker';\nexport * from './TimePicker';\nexport * from './NativeTimePicker';\n"],"names":["DatePickerHeader","date","decreaseMonth","increaseMonth","prevMonthButtonDisabled","nextMonthButtonDisabled","monthNames","getMonthList","React","className","IconButton","onClick","disabled","LeftArrowIcon","Heading3","getMonth","getFullYear","RightArrowIcon","locale","year","Date","monthList","Array","keys","formatter","Intl","DateTimeFormat","month","getMonthName","monthIndex","format","from","DatePickerInput","forwardRef","ref","style","label","inputPlaceholder","prepend","feedback","variant","calendarButtonTooltip","hideCalendarButton","disableLabelAnimation","inputRef","toggleCalendarGUI","onKeyDownInput","onBlurInput","selectedDate","rest","useEffect","current","addEventListener","handleOnKeyDown","handleOnBlur","handleOnFocus","removeEventListener","event","setTimeout","select","TextField","placeholder","mergeRefs","append","Tooltip","placement","content","disableHoverListener","disableFocusListener","type","CalendarIcon","refs","node","registerLocale","nb","DatePicker","onChange","onKeyDown","dateFormats","minDate","maxDate","inline","validationFeedback","validationVariant","hideCalendar","hideValidation","weekLabel","open","datepickerId","useRandomId","useState","showValidation","setShowValidation","datepickerRef","useRef","validateInput","calendarIsClosed","isCalendarOpen","key","focusAndSelectInputField","forceUpdateInputFormat","inputValue","value","inputValueParsedWithAllDateFormats","map","parse","parsedDateFromInputIsTheSameAsSelectedDate","some","dateFormat","isSameDay","getFeedbackAndVariant","undefined","setState","setOpen","ReactDatepicker","selected","showWeekNumbers","onClickOutside","id","ariaLabelledBy","showPopperArrow","preventOpenOnFocus","calendarClassName","dayClassName","weekDayClassName","classNames","highlightDates","renderCustomHeader","changeYear","changeMonth","customInput","onFocus","NativeDatePicker","DateIcon","nativedatepickerId","BaseFormControl","labelId","isFilled","NativeDatePickerBase","contextVariant","useVariant","currentVariant","useInputGroupContext","isDatepickerFilled","setFiller","setFilled","useOnMount","handleChange","target","TimePicker","selectedTime","labelTooltip","onLeftArrowClick","sub","minutes","onRightArrowClick","add","timepickerId","TimePickerArrowButton","direction","tabIndex","e","TimePickerBase","POPPER_MODIFIERS","name","enabled","options","offset","timeFormat","isTimepickerFilled","showTimeSelect","showTimeInput","showTimeSelectOnly","placeholderText","popperClassName","popperModifiers","NativeTimePicker","ClockIcon","nativetimepickerId","NativeTimePickerBase","warnAboutMissingStyles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB;;;MAC9BC,YAAAA;MACAC,qBAAAA;MACAC,qBAAAA;MACAC,+BAAAA;MACAC,+BAAAA;AAEA,MAAMC,UAAU,GAAGC,YAAY,EAA/B;AACA,SACEC,mBAAA,MAAA;AAAKC,IAAAA,SAAS,EAAC;GAAf,EACED,mBAAA,CAACE,UAAD;AACED,IAAAA,SAAS,EAAC;AACVE,IAAAA,OAAO,EAAET;AACTU,IAAAA,QAAQ,EAAER;GAHZ,EAKEI,mBAAA,CAACK,aAAD,MAAA,CALF,CADF,EAQEL,mBAAA,CAACM,QAAD;AAAUL,IAAAA,SAAS,EAAC;GAApB,EACGH,UAAU,mBAACL,IAAD,oBAACA,IAAI,CAAEc,QAAN,EAAD,6BAAqB,CAArB,CADb,CARF,EAWEP,mBAAA,CAACM,QAAD;AAAUL,IAAAA,SAAS,EAAC;GAApB,EACGR,IADH,oBACGA,IAAI,CAAEe,WAAN,EADH,CAXF,EAeER,mBAAA,CAACE,UAAD;AACED,IAAAA,SAAS,EAAC;AACVE,IAAAA,OAAO,EAAER;AACTS,IAAAA,QAAQ,EAAEP;GAHZ,EAKEG,mBAAA,CAACS,cAAD,MAAA,CALF,CAfF,CADF;AAyBD,CAjCM;;AAmCP,SAASV,YAAT,CAAsBW,MAAtB;MAAsBA;AAAAA,IAAAA,SAAS;;;AAC7B,MAAMC,IAAI,GAAG,IAAIC,IAAJ,GAAWJ,WAAX,EAAb;AACA,MAAMK,SAAS,GAAGC,KAAK,CAAC,EAAD,CAAL,CAAUC,IAAV,EAAlB;AACA,MAAMC,SAAS,GAAG,IAAIC,IAAI,CAACC,cAAT,CAAwBR,MAAxB,EAAgC;AAChDS,IAAAA,KAAK,EAAE;AADyC,GAAhC,CAAlB;;AAGA,MAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,UAAD;AAAA,WACnBL,SAAS,CAACM,MAAV,CAAiB,IAAIV,IAAJ,CAASD,IAAT,EAAeU,UAAf,CAAjB,CADmB;AAAA,GAArB;;AAGA,SAAOP,KAAK,CAACS,IAAN,CAAWV,SAAX,EAAsBO,YAAtB,CAAP;AACD;;;ACvBM,IAAMI,eAAe,gBAAGxB,KAAK,CAACyB,UAAN,CAI7B,gBAqBEC,GArBF;MAEIC,aAAAA;MACAC,aAAAA;MACAC,wBAAAA;MACAC,eAAAA;MACAC,gBAAAA;MACAC,eAAAA;MACA5B,gBAAAA;MACA6B,6BAAAA;MACAC,0BAAAA;MACAC,6BAAAA;MACAC,gBAAAA;MACAX,kBAAAA;MACAY,yBAAAA;MACAC,sBAAAA;MACAC,mBAAAA;MACAC,oBAAAA;MAEGC;;AAILzC,EAAAA,KAAK,CAAC0C,SAAN,CAAgB;;;AACd,yBAAAN,QAAQ,CAACO,OAAT,uCAAkBC,gBAAlB,CAAmC,SAAnC,EAA8CC,eAA9C;AACA,0BAAAT,QAAQ,CAACO,OAAT,wCAAkBC,gBAAlB,CAAmC,MAAnC,EAA2CE,YAA3C;AACA,0BAAAV,QAAQ,CAACO,OAAT,wCAAkBC,gBAAlB,CAAmC,OAAnC,EAA4CG,aAA5C;AACA,WAAO;;;AACL,4BAAAX,QAAQ,CAACO,OAAT,wCAAkBK,mBAAlB,CAAsC,SAAtC,EAAiDH,eAAjD;AACA,4BAAAT,QAAQ,CAACO,OAAT,wCAAkBK,mBAAlB,CAAsC,MAAtC,EAA8CF,YAA9C;AACA,4BAAAV,QAAQ,CAACO,OAAT,wCAAkBK,mBAAlB,CAAsC,OAAtC,EAA+CD,aAA/C;AACD,KAJD;AAKD,GATD,EASG,CAACX,QAAD,EAAWI,YAAX,CATH;;AAWA,WAASK,eAAT,CAA4CI,KAA5C;AACEX,IAAAA,cAAc,CAACW,KAAD,CAAd;AACD;;AACD,WAASH,YAAT,CAAyCG,KAAzC;AACEV,IAAAA,WAAW,CAACU,KAAD,CAAX;AACD;;AACD,WAASF,aAAT;AACEG,IAAAA,UAAU,CAAC;AAAA;;AAAA,mCAAMd,QAAQ,CAACO,OAAf,qBAAM,mBAAkBQ,MAAlB,EAAN;AAAA,KAAD,EAAmC,CAAnC,CAAV;AACD;;AAED,SACEnD,mBAAA,CAACoD,SAAD;AACEzB,IAAAA,KAAK,EAAEA,KADT;AAEEC,IAAAA,KAAK,EAAEA,KAFT;AAGEyB,IAAAA,WAAW,EAAExB,gBAHf;AAIEC,IAAAA,OAAO,EAAEA,OAJX;AAKEC,IAAAA,QAAQ,EAAEA,QALZ;AAMEC,IAAAA,OAAO,EAAEA,OANX;AAOEG,IAAAA,qBAAqB,EAAEA,qBAPzB;AAQET,IAAAA,GAAG,EAAE4B,SAAS,CAAC5B,GAAD,EAAMU,QAAN,EAAgBX,UAAhB,CARhB;AASE8B,IAAAA,MAAM,EACJ,CAACrB,kBAAD,IACElC,mBAAA,CAACwD,OAAD;AACEC,MAAAA,SAAS,EAAC;AACVC,MAAAA,OAAO,EAAEzB;AACT0B,MAAAA,oBAAoB,EAAEvD;AACtBwD,MAAAA,oBAAoB,EAAExD;KAJxB,EAMEJ,mBAAA,CAACE,UAAD;AAAY2D,MAAAA,IAAI,EAAC;AAAS1D,MAAAA,OAAO,EAAEkC;KAAnC,EACErC,mBAAA,CAAC8D,YAAD,MAAA,CADF,CANF;AAXN,KAuBMrB,IAvBN,EADF;AA2BD,CA3E4B,CAAxB;;AA8EP,IAAMa,SAAS,GAAG,SAAZA,SAAY;oCACbS;AAAAA,IAAAA;;;AAEH,SAAO,UAACC,IAAD;AACL,yDAAkBD,IAAlB,wCAAwB;AAAA,UAAbrC,GAAa;;AACtB,UAAI,OAAOA,GAAP,KAAe,UAAnB,EAA+B;AAC7BA,QAAAA,GAAG,CAACsC,IAAD,CAAH;AACD,OAFD,MAEO,IAAItC,GAAJ,EAASA,GAAG,CAACiB,OAAJ,GAAcqB,IAAd;AACjB;AACF,GAND;AAOD,CAVD;;;ACxFAC,cAAc,CAAC,IAAD,EAAOC,EAAP,CAAd;IAsFaC,UAAU,gBAAGnE,KAAK,CAACyB,UAAN,CACxB,gBA6BEC,GA7BF;MAEIC,aAAAA;MACA1B,iBAAAA;MACAuC,oBAAAA;MACAZ,aAAAA;8BACAyB;MAAAA,4CAAc;MACde,gBAAAA;4BACAC;MAAAA,wCAAY;AAAA,WAAM,IAAN;AAAA;8BACZC;MAAAA,4CAAc,CAAC,YAAD,EAAe,UAAf,EAA2B,YAA3B,EAAyC,QAAzC;MACdC,eAAAA;MACAC,eAAAA;yBACAC;MAAAA,kCAAS;MACTrE,gBAAAA;MACA0B,eAAAA;2BACAC;MAAAA,sCAAW;MACXC,eAAAA;mCACA0C;MAAAA,wDAAqB;mCACrBC;MAAAA,uDAAoB;mCACpBxC;MAAAA,2DAAwB;mCACxBF;MAAAA,2DAAwB;mCACxBC;MAAAA,wDAAqB;+BACrB0C;MAAAA,8CAAe;iCACfC;MAAAA,kDAAiB;4BACjBC;MAAAA,wCAAY;yBACZpE;MAAAA,kCAASwD;MACTa,YAAAA;MACGtC;;AAIL,MAAMuC,YAAY,GAAGC,WAAW,CAAC,gBAAD,CAAhC;;AAEA,kBAA4CC,QAAQ,CAAC,KAAD,CAApD;AAAA,MAAOC,cAAP;AAAA,MAAuBC,iBAAvB;;AAEA,MAAMC,aAAa,GAAGC,MAAM,CAAkB,IAAlB,CAA5B;AACA,MAAMlD,QAAQ,GAAGpC,KAAK,CAACsF,MAAN,CAA+B,IAA/B,CAAjB;AAEAtF,EAAAA,KAAK,CAAC0C,SAAN,CAAgB;AAAA,WAAM6C,aAAa,EAAnB;AAAA,GAAhB,EAAuC,CAAC/C,YAAD,CAAvC;;AAEA,MAAMK,eAAe,GAAG,SAAlBA,eAAkB,CAACI,KAAD;;;AACtB,QAAMuC,gBAAgB,GAAG,2BAACH,aAAa,CAAC1C,OAAf,aAAC,sBAAuB8C,cAAvB,EAAD,CAAzB;AAEAL,IAAAA,iBAAiB,CAAC,KAAD,CAAjB;;AACA,QAAInC,KAAK,CAACyC,GAAN,KAAc,OAAlB,EAA2B;AACzBH,MAAAA,aAAa;AACbI,MAAAA,wBAAwB;AACxBC,MAAAA,sBAAsB;AACvB,KAJD,MAIO,IAAI3C,KAAK,CAACyC,GAAN,KAAc,KAAd,IAAuBF,gBAA3B,EAA6C;AAClDD,MAAAA,aAAa;AACbK,MAAAA,sBAAsB;AACvB;;AACDvB,IAAAA,SAAS,CAACpB,KAAD,CAAT;AACD,GAbD;;AAeA,MAAMsC,aAAa,GAAG,SAAhBA,aAAgB;;;AACpBH,IAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACA,QAAMS,UAAU,wBAAGzD,QAAQ,CAACO,OAAZ,qBAAG,kBAAkBmD,KAArC;AACA,QAAI,CAACD,UAAL,EAAiB;AAEjB,QAAME,kCAAkC,GAAGzB,WAAW,CAAC0B,GAAZ,CAAgB,UAAA1E,MAAM;AAAA,aAC/D2E,KAAK,CAACJ,UAAD,EAAavE,MAAb,EAAqB,IAAIV,IAAJ,EAArB,EAAiC;AACpCF,QAAAA,MAAM,EAAEA;AAD4B,OAAjC,CAD0D;AAAA,KAAtB,CAA3C;AAMA,QAAMwF,0CAA0C,GAC9C1D,YAAY,IACZuD,kCAAkC,CAACI,IAAnC,CAAwC,UAAAC,UAAU;AAAA,aAChDC,SAAS,CAACD,UAAD,EAAa5D,YAAb,CADuC;AAAA,KAAlD,CAFF;;AAMA,QAAI0D,0CAAJ,EAAgD;AAC9C;AACAd,MAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD,KAHD,MAGO;AACL;AACAA,MAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD;AACF,GAxBD;;AA0BA,MAAMkB,qBAAqB,GAAG,SAAxBA,qBAAwB;AAI5B,QAAIvE,QAAJ,EAAc,OAAO;AAAEA,MAAAA,QAAQ,EAARA,QAAF;AAAYC,MAAAA,OAAO,EAAPA;AAAZ,KAAP;AACd,QAAI,CAAC6C,cAAD,IAAmBM,cAAvB,EACE,OAAO;AAAEpD,MAAAA,QAAQ,EAAE2C,kBAAZ;AAAgC1C,MAAAA,OAAO,EAAE2C;AAAzC,KAAP;AACF,WAAO;AAAE5C,MAAAA,QAAQ,EAAE,EAAZ;AAAgBC,MAAAA,OAAO,EAAEuE;AAAzB,KAAP;AACD,GARD;;AAUA,MAAMZ,wBAAwB,GAAG,SAA3BA,wBAA2B;AAAA,WAC/BzC,UAAU,CAAC;;;AACT,4BAAAd,QAAQ,CAACO,OAAT,wCAAkBQ,MAAlB;AACD,KAFS,EAEP,CAFO,CADqB;AAAA,GAAjC;;AAKA,MAAMyC,sBAAsB,GAAG,SAAzBA,sBAAyB;AAAA;;AAAA,qCAC7BP,aAAa,CAAC1C,OADe,qBAC7B,uBAAuB6D,QAAvB,CAAgC;AAAEX,MAAAA,UAAU,EAAE;AAAd,KAAhC,CAD6B;AAAA,GAA/B;;AAGA,MAAMxD,iBAAiB,GAAG,SAApBA,iBAAoB;AAAA;;AAAA,qCACxBgD,aAAa,CAAC1C,OADU,qBACxB,uBAAuB8D,OAAvB,CAA+B,4BAACpB,aAAa,CAAC1C,OAAf,aAAC,uBAAuB8C,cAAvB,EAAD,CAA/B,CADwB;AAAA,GAA1B;;AAGA,SACEzF,mBAAA,eAAA,MAAA,EACEA,mBAAA,CAAC0G,eAAD;AACEC,IAAAA,QAAQ,EAAEnE,YADZ;AAEE+B,IAAAA,OAAO,EAAEA,OAFX;AAGEC,IAAAA,OAAO,EAAEA,OAHX;AAIE4B,IAAAA,UAAU,EAAE9B,WAJd;AAKEsC,IAAAA,eAAe,MALjB;AAME9B,IAAAA,SAAS,EAAEA,SANb;AAOEV,IAAAA,QAAQ,EAAEA,QAPZ;AAQEyC,IAAAA,cAAc,EAAEtB,aARlB;AASEuB,IAAAA,EAAE,EAAE9B,YATN;AAUE+B,IAAAA,cAAc,EAAE/B,YAVlB;AAWEgC,IAAAA,eAAe,EAAE,KAXnB;AAYEtG,IAAAA,MAAM,EAAEA,MAZV;AAaE+D,IAAAA,MAAM,EAAEA,MAbV;AAcErE,IAAAA,QAAQ,EAAEA,QAdZ;AAeE6G,IAAAA,kBAAkB,EAAE,IAftB;AAgBElC,IAAAA,IAAI,EAAEH,YAAY,GAAG,KAAH,GAAWG,IAhB/B;AAiBErD,IAAAA,GAAG,EAAE2D,aAjBP;AAkBE6B,IAAAA,iBAAiB,EAAC,0BAlBpB;AAmBEC,IAAAA,YAAY,EAAE;AAAA,aAAM,+BAAN;AAAA,KAnBhB;AAoBEC,IAAAA,gBAAgB,EAAE;AAAA,aAAM,oCAAN;AAAA,KApBpB;AAqBEnH,IAAAA,SAAS,EAAEoH,UAAU,CAACpH,SAAD,EAAY,uBAAZ,CArBvB;AAsBEqH,IAAAA,cAAc,EAAE,CACd;AAAE,8CAAwC,CAAC,IAAI1G,IAAJ,EAAD;AAA1C,KADc,EAEd;AACE,iDAA2C4B,YAAY,GACnD,CAACA,YAAD,CADmD,GAEnD;AAHN,KAFc,CAtBlB;AA8BE+E,IAAAA,kBAAkB,EAAE;AAAA,UAClB9H,IADkB,SAClBA,IADkB;AAAA,UAElB+H,UAFkB,SAElBA,UAFkB;AAAA,UAGlBC,WAHkB,SAGlBA,WAHkB;AAAA,UAIlB/H,aAJkB,SAIlBA,aAJkB;AAAA,UAKlBC,aALkB,SAKlBA,aALkB;AAAA,UAMlBC,uBANkB,SAMlBA,uBANkB;AAAA,UAOlBC,uBAPkB,SAOlBA,uBAPkB;AAAA,aASlBG,mBAAA,CAACR,gBAAD;AACEC,QAAAA,IAAI,EAAEA;AACN+H,QAAAA,UAAU,EAAEA;AACZC,QAAAA,WAAW,EAAEA;AACb9H,QAAAA,aAAa,EAAEA;AACfD,QAAAA,aAAa,EAAEA;AACfE,QAAAA,uBAAuB,EAAEA;AACzBC,QAAAA,uBAAuB,EAAEA;OAP3B,CATkB;AAAA,KA9BtB;AAiDE6H,IAAAA,WAAW,EACT1H,mBAAA,CAACwB,eAAD;AACEG,MAAAA,KAAK,EAAEA;AACPC,MAAAA,KAAK,EAAEA;AACPC,MAAAA,gBAAgB,EAAEwB;AAClBpB,MAAAA,qBAAqB,EAAEA;AACvBH,MAAAA,OAAO,EAAEA;AACTC,MAAAA,QAAQ,EAAEuE,qBAAqB,GAAGvE;AAClCC,MAAAA,OAAO,EAAEsE,qBAAqB,GAAGtE;AACjCI,MAAAA,QAAQ,EAAEA;AACVX,MAAAA,UAAU,EAAEC;AACZY,MAAAA,cAAc,EAAEO;AAChBN,MAAAA,WAAW,EAAE;AAAA;;AAAA,eACX,4BAAC8C,aAAa,CAAC1C,OAAf,aAAC,uBAAuB8C,cAAvB,EAAD,KAA4CF,aAAa,EAD9C;AAAA;AAGboC,MAAAA,OAAO,EAAEpB;AACTlE,MAAAA,iBAAiB,EAAEA;AACnBF,MAAAA,qBAAqB,EAAEA;AACvBD,MAAAA,kBAAkB,EAAEA;AACpBM,MAAAA,YAAY,EAAEA;KAlBhB;AAlDJ,KAuEMC,IAvEN,EADF,CADF;AA6ED,CApLuB;;;;IC3EbmF,gBAAgB,gBAAG5H,KAAK,CAACyB,UAAN,CAI9B,gBAYEC,GAZF;MAEIzB,iBAAAA;MACA0B,aAAAA;MACAC,aAAAA;MACAwC,gBAAAA;MACArC,gBAAAA;MACAC,eAAAA;MACAG,6BAAAA;0BACAL;MAAAA,oCAAU9B,mBAAA,CAAC6H,QAAD;AAAUpD,IAAAA,MAAM;GAAhB;MACPhC;;AAIL,MAAMqF,kBAAkB,GAAG7C,WAAW,CAAC,sBAAD,CAAtC;AACA,SACEjF,mBAAA,CAAC+H,eAAD;AACEpG,IAAAA,KAAK,EAAEA;AACP1B,IAAAA,SAAS,EAAEA;AACX6B,IAAAA,OAAO,EAAEA;AACTF,IAAAA,KAAK,EAAEA;AACPG,IAAAA,QAAQ,EAAEA;AACVC,IAAAA,OAAO,EAAEA;AACTgG,IAAAA,OAAO,EAAEF;AACT3F,IAAAA,qBAAqB,EAAEA;AACvB8F,IAAAA,QAAQ;GATV,EAWEjI,mBAAA,CAACkI,oBAAD;AACE9D,IAAAA,QAAQ,EAAEA,QADZ;uBAEmB0D,kBAFnB;AAGEpG,IAAAA,GAAG,EAAEA,GAHP;AAIEM,IAAAA,OAAO,EAAEA;AAJX,KAKMS,IALN,EAXF,CADF;AAqBD,CAxC6B;AAmDhC,IAAMyF,oBAAoB,gBAAGlI,KAAK,CAACyB,UAAN,CAG3B,iBAAwCC,GAAxC;MAAG0C,iBAAAA;MAAUpC,gBAAAA;MAAS8D,cAAAA;MAAUrD;;AAChC,MAAM0F,cAAc,GAAGC,UAAU,EAAjC;AACA,MAAMC,cAAc,GAAGrG,OAAO,IAAImG,cAAlC;;AACA,8BACEG,oBAAoB,EADtB;AAAA,MAAkBC,kBAAlB,yBAAQN,QAAR;AAAA,MAAiDO,SAAjD,yBAAsCC,SAAtC;;AAGAC,EAAAA,UAAU,CAAC;AACTF,IAAAA,SAAS,IAAI,CAACD,kBAAd,IAAoCC,SAAS,CAAC,IAAD,CAA7C;AACD,GAFS,CAAV;AAIAxI,EAAAA,KAAK,CAAC0C,SAAN,CAAgB;AACd,QAAIoD,KAAJ,EAAW;AACT0C,MAAAA,SAAS,IAAI,CAACD,kBAAd,IAAoCC,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAID,kBAAb,IAAmCC,SAAS,CAAC,KAAD,CAA5C;AACD;AACF,GAND,EAMG,CAAC1C,KAAD,EAAQ0C,SAAR,EAAmBD,kBAAnB,CANH;;AAQA,MAAMI,YAAY,GAAG,SAAfA,YAAe,CAAC1F,KAAD;AACnB,QAAIgF,QAAQ,CAAChF,KAAK,CAAC2F,MAAP,CAAZ,EAA4B;AAC1BJ,MAAAA,SAAS,IAAI,CAACD,kBAAd,IAAoCC,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAID,kBAAb,IAAmCC,SAAS,CAAC,KAAD,CAA5C;AACD;;AACD,QAAIpE,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAACnB,KAAD,CAAR;AACD;AACF,GATD;;AAUA,SACEjD,mBAAA,QAAA;AACE0B,IAAAA,GAAG,EAAEA,GADP;oBAEgB2G,cAAc,KAAK,OAFnC;AAGExE,IAAAA,IAAI,EAAC,MAHP;AAIE5D,IAAAA,SAAS,EAAC,yCAJZ;AAKEmE,IAAAA,QAAQ,EAAEuE,YALZ;AAME7C,IAAAA,KAAK,EAAEA;AANT,KAOMrD,IAPN,EADF;AAWD,CA1C4B,CAA7B;;;;;AC/DAwB,cAAc,CAAC,IAAD,EAAOC,EAAP,CAAd;IAyCa2E,UAAU,gBAAG7I,KAAK,CAACyB,UAAN,CACxB,gBAoBEC,GApBF;+BAEIoH;MAAAA,8CAAe;MACf1E,gBAAAA;8BACAf;MAAAA,4CAAc;MACdjD,gBAAAA;MACAH,iBAAAA;MACA0B,aAAAA;MACAC,aAAAA;MACAmH,oBAAAA;MACAhH,gBAAAA;MACAC,eAAAA;MACAG,6BAAAA;yBACAzB;MAAAA,kCAAS;mCACTsI;MAAAA,sDAAmB,UAACF,YAAD,EAAe7F,KAAf;AAAA,WACjB6F,YAAY,IAAI1E,QAAQ,CAAC6E,GAAG,CAACH,YAAD,EAAe;AAAEI,MAAAA,OAAO,EAAE;AAAX,KAAf,CAAJ,EAAqCjG,KAArC,CADP;AAAA;mCAEnBkG;MAAAA,uDAAoB,UAACL,YAAD,EAAe7F,KAAf;AAAA,WAClB6F,YAAY,IAAI1E,QAAQ,CAACgF,GAAG,CAACN,YAAD,EAAe;AAAEI,MAAAA,OAAO,EAAE;AAAX,KAAf,CAAJ,EAAqCjG,KAArC,CADN;AAAA;MAEjBR;;AAIL,MAAM4G,YAAY,GAAGpE,WAAW,CAAC,gBAAD,CAAhC;AACA,SACEjF,mBAAA,CAAC+H,eAAD;AACEpG,IAAAA,KAAK,EAAEA;AACPD,IAAAA,GAAG,EAAEA;AACLE,IAAAA,KAAK,EAAEA;AACPoG,IAAAA,OAAO,EAAEqB;AACTN,IAAAA,YAAY,EAAEA;AACd/G,IAAAA,OAAO,EAAEA;AACTD,IAAAA,QAAQ,EAAEA;AACVI,IAAAA,qBAAqB,EAAEA;AACvBlC,IAAAA,SAAS,EAAC;AACVG,IAAAA,QAAQ,EAAEA;AACV0B,IAAAA,OAAO,EACL9B,mBAAA,CAACsJ,qBAAD;AACEC,MAAAA,SAAS,EAAC;AACVC,MAAAA,QAAQ,EAAE,CAAC;AACXrJ,MAAAA,OAAO,EAAE,iBAACsJ,CAAD;AAAA,eAAyBT,gBAAgB,CAACF,YAAD,EAAeW,CAAf,CAAzC;AAAA;AACTrJ,MAAAA,QAAQ,EAAEA;KAJZ;GAZJ,EAoBEJ,mBAAA,CAAC0J,cAAD;AACEZ,IAAAA,YAAY,EAAEA,YADhB;AAEE1E,IAAAA,QAAQ,EAAEA,QAFZ;AAGEf,IAAAA,WAAW,EAAEA,WAHf;AAIEpD,IAAAA,SAAS,EAAEA,SAJb;AAKES,IAAAA,MAAM,EAAEA,MALV;AAMEqG,IAAAA,cAAc,EAAEsC,YANlB;AAOEjJ,IAAAA,QAAQ,EAAEA;AAPZ,KAQMqC,IARN,EApBF,EA8BEzC,mBAAA,CAACsJ,qBAAD;AACEC,IAAAA,SAAS,EAAC;AACVC,IAAAA,QAAQ,EAAE,CAAC;AACXrJ,IAAAA,OAAO,EAAE,iBAACsJ,CAAD;AAAA,aAAyBN,iBAAiB,CAACL,YAAD,EAAeW,CAAf,CAA1C;AAAA;AACTrJ,IAAAA,QAAQ,EAAEA;GAJZ,CA9BF,CADF;AAuCD,CA/DuB;AAmF1B,IAAMuJ,gBAAgB,GAA6B,CACjD;AACEC,EAAAA,IAAI,EAAE,QADR;AAEEC,EAAAA,OAAO,EAAE,IAFX;AAGEC,EAAAA,OAAO,EAAE;AACPC,IAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ;AADD;AAHX,CADiD,CAAnD;;AASA,IAAML,cAAc,GAAkC,SAAhDA,cAAgD;MACpDzJ,kBAAAA;MACAmE,iBAAAA;MACA0E,qBAAAA;MACAzF,oBAAAA;+BACA2G;MAAAA,2CAAa;+BACb5D;MAAAA,2CAAa,CAAC,OAAD,EAAU,MAAV;MACV3D;;AAEH,8BACE6F,oBAAoB,EADtB;AAAA,MAAkB2B,kBAAlB,yBAAQhC,QAAR;AAAA,MAAiDO,SAAjD,yBAAsCC,SAAtC;;AAGAC,EAAAA,UAAU,CAAC;AACT,QAAII,YAAJ,EAAkB;AAChBN,MAAAA,SAAS,IAAI,CAACyB,kBAAd,IAAoCzB,SAAS,CAAC,IAAD,CAA7C;AACD;AACF,GAJS,CAAV;AAMAxI,EAAAA,KAAK,CAAC0C,SAAN,CAAgB;AACd,QAAIoG,YAAJ,EAAkB;AAChBN,MAAAA,SAAS,IAAI,CAACyB,kBAAd,IAAoCzB,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAIyB,kBAAb,IAAmCzB,SAAS,CAAC,KAAD,CAA5C;AACD;AACF,GAND,EAMG,CAACM,YAAD,EAAeN,SAAf,EAA0ByB,kBAA1B,CANH;;AAQA,MAAMtB,YAAY,GAAG,SAAfA,YAAe,CAAClJ,IAAD,EAAYwD,KAAZ;AACnB,QAAIxD,IAAJ,EAAU;AACR+I,MAAAA,SAAS,IAAI,CAACyB,kBAAd,IAAoCzB,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAIyB,kBAAb,IAAmCzB,SAAS,CAAC,KAAD,CAA5C;AACD;;AACD,QAAIpE,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAAC3E,IAAD,EAAOwD,KAAP,CAAR;AACD;AACF,GATD;;AAUA,SACEjD,mBAAA,CAAC0G,eAAD;AACEzG,IAAAA,SAAS,EAAEoH,UAAU,CACnB,kBADmB,EAEnB,uBAFmB,EAGnBpH,SAHmB,CADvB;AAMEiH,IAAAA,iBAAiB,EAAC,gBANpB;AAOEP,IAAAA,QAAQ,EAAEmC,YAPZ;AAQE1E,IAAAA,QAAQ,EAAEuE,YARZ;AASEvC,IAAAA,UAAU,EAAEA,UATd;AAUE4D,IAAAA,UAAU,EAAEA,UAVd;AAWEE,IAAAA,cAAc,MAXhB;AAYEC,IAAAA,aAAa,EAAE,IAZjB;AAaEC,IAAAA,kBAAkB,MAbpB;AAcEpD,IAAAA,eAAe,EAAE,KAdnB;AAeEqD,IAAAA,eAAe,EAAEhH,WAfnB;AAgBEiH,IAAAA,eAAe,EAAC,wBAhBlB;AAiBEC,IAAAA,eAAe,EAAEZ,gBAjBnB;AAkBE5E,IAAAA,IAAI,EAAE;AAlBR,KAmBMtC,IAnBN,EADF;AAuBD,CA3DD;;AAoEA,IAAM6G,qBAAqB,GAAyC,SAA9DA,qBAA8D;MAClEC,kBAAAA;MACG9G;;AAEH,SACEzC,mBAAA,SAAA;AACEC,IAAAA,SAAS,EAAEoH,UAAU,CACnB,6BADmB,oCAEakC,SAFb,CADvB;AAKE1F,IAAAA,IAAI,EAAC;AALP,KAMMpB,IANN,GAQG8G,SAAS,KAAK,MAAd,GAAuBvJ,mBAAA,CAACK,aAAD,MAAA,CAAvB,GAA2CL,mBAAA,CAACS,cAAD,MAAA,CAR9C,CADF;AAYD,CAhBD;;;;IC7La+J,gBAAgB,gBAAGxK,KAAK,CAACyB,UAAN,CAI9B,gBAYEC,GAZF;MAEIzB,iBAAAA;MACA0B,aAAAA;MACAyC,gBAAAA;MACAxC,aAAAA;MACAG,gBAAAA;MACAC,eAAAA;MACAG,6BAAAA;0BACAL;MAAAA,oCAAU9B,mBAAA,CAACyK,SAAD,MAAA;MACPhI;;AAIL,MAAMiI,kBAAkB,GAAGzF,WAAW,CAAC,sBAAD,CAAtC;AACA,SACEjF,mBAAA,CAAC+H,eAAD;AACEpG,IAAAA,KAAK,EAAEA;AACP1B,IAAAA,SAAS,EAAEA;AACX6B,IAAAA,OAAO,EAAEA;AACTF,IAAAA,KAAK,EAAEA;AACPG,IAAAA,QAAQ,EAAEA;AACVC,IAAAA,OAAO,EAAEA;AACTgG,IAAAA,OAAO,EAAE0C;AACTvI,IAAAA,qBAAqB,EAAEA;GARzB,EAUEnC,mBAAA,CAAC2K,oBAAD;AACEvG,IAAAA,QAAQ,EAAEA,QADZ;uBAEmBsG,kBAFnB;AAGEhJ,IAAAA,GAAG,EAAEA;AAHP,KAIMe,IAJN,EAVF,CADF;AAmBD,CAtC6B;AAgDhC,IAAMkI,oBAAoB,gBAAG3K,KAAK,CAACyB,UAAN,CAG3B,iBAA+BC,GAA/B;MAAG0C,iBAAAA;MAAU0B,cAAAA;MAAUrD;;AACvB,MAAM0F,cAAc,GAAGC,UAAU,EAAjC;AACA,MAAMC,cAAc,GAAG5F,IAAI,CAACT,OAAL,IAAgBmG,cAAvC;;AACA,8BACEG,oBAAoB,EADtB;AAAA,MAAkB2B,kBAAlB,yBAAQhC,QAAR;AAAA,MAAiDO,SAAjD,yBAAsCC,SAAtC;;AAGAC,EAAAA,UAAU,CAAC;AACTF,IAAAA,SAAS,IAAI,CAACyB,kBAAd,IAAoCzB,SAAS,CAAC,IAAD,CAA7C;AACD,GAFS,CAAV;AAIAxI,EAAAA,KAAK,CAAC0C,SAAN,CAAgB;AACd,QAAIoD,KAAJ,EAAW;AACT0C,MAAAA,SAAS,IAAI,CAACyB,kBAAd,IAAoCzB,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAIyB,kBAAb,IAAmCzB,SAAS,CAAC,KAAD,CAA5C;AACD;AACF,GAND,EAMG,CAAC1C,KAAD,EAAQ0C,SAAR,EAAmByB,kBAAnB,CANH;;AAQA,MAAMtB,YAAY,GAAG,SAAfA,YAAe,CAAC1F,KAAD;AACnB,QAAIgF,QAAQ,CAAChF,KAAK,CAAC2F,MAAP,CAAZ,EAA4B;AAC1BJ,MAAAA,SAAS,IAAI,CAACyB,kBAAd,IAAoCzB,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAIyB,kBAAb,IAAmCzB,SAAS,CAAC,KAAD,CAA5C;AACD;;AACD,QAAIpE,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAACnB,KAAD,CAAR;AACD;AACF,GATD;;AAUA,SACEjD,mBAAA,QAAA;AACE0B,IAAAA,GAAG,EAAEA,GADP;oBAEgB2G,cAAc,KAAK,OAFnC;AAGExE,IAAAA,IAAI,EAAC,MAHP;AAIE5D,IAAAA,SAAS,EAAC,yCAJZ;AAKEmE,IAAAA,QAAQ,EAAEuE,YALZ;AAME7C,IAAAA,KAAK,EAAEA;AANT,KAOMrD,IAPN,EADF;AAWD,CA1C4B,CAA7B;;AC3EAmI,sBAAsB,CAAC,YAAD,EAAe,MAAf,EAAuB,OAAvB,CAAtB;;;;"}
|
|
1
|
+
{"version":3,"file":"datepicker.esm.js","sources":["../src/DatePicker/DatePickerHeader.tsx","../src/DatePicker/DatePickerInput.tsx","../src/DatePicker/DatePicker.tsx","../src/NativeDatePicker.tsx","../src/TimePicker.tsx","../src/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport { ReactDatePickerCustomHeaderProps } from 'react-datepicker';\n\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { Heading3 } from '@entur/typography';\nimport { IconButton } from '@entur/button';\n\nexport const DatePickerHeader = ({\n date,\n decreaseMonth,\n increaseMonth,\n prevMonthButtonDisabled,\n nextMonthButtonDisabled,\n}: Partial<ReactDatePickerCustomHeaderProps>) => {\n const monthNames = getMonthList();\n return (\n <div className=\"eds-datepicker__calender__header\">\n <IconButton\n type=\"button\"\n className=\"eds-datepicker__calender__header__month-button--left\"\n onClick={decreaseMonth}\n disabled={prevMonthButtonDisabled}\n >\n <LeftArrowIcon />\n </IconButton>\n <Heading3 className=\"eds-datepicker__calender__header__month-text\">\n {monthNames[date?.getMonth() ?? 0]}\n </Heading3>\n <Heading3 className=\"eds-datepicker__calender__header__month-text\">\n {date?.getFullYear()}\n </Heading3>\n\n <IconButton\n type=\"button\"\n className=\"eds-datepicker__calender__header__month-button--right\"\n onClick={increaseMonth}\n disabled={nextMonthButtonDisabled}\n >\n <RightArrowIcon />\n </IconButton>\n </div>\n );\n};\n\nfunction getMonthList(locale = 'nb') {\n const year = new Date().getFullYear();\n const monthList = Array(12).keys();\n const formatter = new Intl.DateTimeFormat(locale, {\n month: 'long',\n });\n const getMonthName = (monthIndex: number) =>\n formatter.format(new Date(year, monthIndex));\n\n return Array.from(monthList, getMonthName);\n}\n","import React from 'react';\n\nimport { TextField, VariantType } from '@entur/form';\nimport { Tooltip } from '@entur/tooltip';\nimport { IconButton } from '@entur/button';\nimport { CalendarIcon } from '@entur/icons';\n\ntype DatePickerInputProps = {\n style?: React.CSSProperties;\n label: string;\n inputPlaceholder: string;\n prepend?: React.ReactNode;\n feedback?: string;\n variant?: VariantType;\n disabled?: boolean;\n disableLabelAnimation?: boolean;\n calendarButtonTooltip: string;\n hideCalendarButton?: boolean;\n inputRef: React.RefObject<HTMLInputElement>;\n forwardRef: React.ForwardedRef<HTMLInputElement>;\n toggleCalendarGUI: () => void;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLInputElement>;\n onKeyDownInput: (event: KeyboardEvent) => any;\n onBlurInput: (event: FocusEvent) => any;\n onFocus: undefined; // To prevent open on focus\n selectedDate: Date | null; // Necessary to update component on state change\n placeholder?: null; // override react-datepickers placeholder prop\n};\n\nexport const DatePickerInput = React.forwardRef<\n HTMLInputElement,\n DatePickerInputProps\n>(\n (\n {\n style,\n label,\n inputPlaceholder,\n prepend,\n feedback,\n variant,\n disabled,\n calendarButtonTooltip,\n hideCalendarButton,\n disableLabelAnimation,\n inputRef,\n forwardRef,\n toggleCalendarGUI,\n onKeyDownInput,\n onBlurInput,\n selectedDate,\n placeholder, // eslint-disable-line\n ...rest // forwarded props from react-datepicker\n },\n ref,\n ) => {\n React.useEffect(() => {\n inputRef.current?.addEventListener('keydown', handleOnKeyDown);\n inputRef.current?.addEventListener('blur', handleOnBlur);\n inputRef.current?.addEventListener('focus', handleOnFocus);\n return () => {\n inputRef.current?.removeEventListener('keydown', handleOnKeyDown);\n inputRef.current?.removeEventListener('blur', handleOnBlur);\n inputRef.current?.removeEventListener('focus', handleOnFocus);\n };\n }, [inputRef, selectedDate]);\n\n function handleOnKeyDown(this: HTMLElement, event: KeyboardEvent) {\n onKeyDownInput(event);\n }\n function handleOnBlur(this: HTMLElement, event: FocusEvent) {\n onBlurInput(event);\n }\n function handleOnFocus() {\n setTimeout(() => inputRef.current?.select(), 5);\n }\n\n return (\n <TextField\n style={style}\n label={label}\n placeholder={inputPlaceholder}\n prepend={prepend}\n feedback={feedback}\n variant={variant}\n disableLabelAnimation={disableLabelAnimation}\n ref={mergeRefs(ref, inputRef, forwardRef)}\n append={\n !hideCalendarButton && (\n <Tooltip\n placement=\"top\"\n content={calendarButtonTooltip}\n disableHoverListener={disabled}\n disableFocusListener={disabled}\n >\n <IconButton type=\"button\" onClick={toggleCalendarGUI}>\n <CalendarIcon />\n </IconButton>\n </Tooltip>\n )\n }\n {...rest}\n />\n );\n },\n);\n\nconst mergeRefs = <T extends HTMLElement>(\n ...refs: React.MutableRefObject<T>[] | React.ForwardedRef<T>[]\n) => {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) ref.current = node;\n }\n };\n};\n","import React, { useRef, useState } from 'react';\nimport ReactDatePicker, {\n default as ReactDatepicker,\n ReactDatePickerProps,\n registerLocale,\n} from 'react-datepicker';\nimport { parse, isSameDay, Locale } from 'date-fns';\nimport { nb } from 'date-fns/locale';\nimport classNames from 'classnames';\n\nimport { VariantType } from '@entur/form';\nimport { useRandomId } from '@entur/utils';\n\nimport { DatePickerHeader } from './DatePickerHeader';\nimport { DatePickerInput } from './DatePickerInput';\n\nimport './DatePicker.scss';\nimport 'react-datepicker/dist/react-datepicker.css';\n\nregisterLocale('nb', nb);\n\nexport type DatePickerProps = {\n /** Hva som er den valgte datoen */\n selectedDate: Date | null;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event> | undefined,\n ) => void;\n /**\n * Kalles når en tast trykkes i inputfeltet\n */\n onKeyDown?: (event: KeyboardEvent) => void;\n /**\n * Datoformater som skal støttes. Første i listen er formatet alt input omgjøres til.\n * Format-valg tilgjengelig her: https://date-fns.org/v2.28.0/docs/format\n * OBS: Noen kombinasjoner av datoformater kan gi rar og uønsket oppførsel,\n * test nøye ved endring\n * @default \"['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy', 'ddMMyy']\"\n */\n dateFormats?: string[];\n /**\n * Locale fra date-fns som brukes av Datepicker-en\n * @default nb\n */\n locale?: Locale;\n /** Placeholder om ingen dato er valgt\n * @default \"dd.mm.yyyy\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over DatePicker */\n label: string;\n /**\n * Varselmelding, som vil komme under DatePicker\n */\n feedback?: string;\n /** Valideringsvariant\n */\n variant?: VariantType;\n /** Varselmelding for når datoen er på feil format\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om feil datoformat\n * @default \"error\"\n */\n validationVariant?: VariantType;\n style?: React.CSSProperties;\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 /**\n * Tekst som vises ved hover på «Åpne kalender»-knappen\n */\n calendarButtonTooltip?: string;\n /** Skjuler knapp for åpning av kalender\n * @default false\n */\n hideCalendarButton?: boolean;\n /** Skjuler tilbakemeldingsteksten ved feil dato-input\n * @default false\n */\n hideValidation?: boolean;\n /** Skjuler kalender-GUI-et\n * @default false\n */\n hideCalendar?: boolean;\n /** Viser kun kalender-popover-en\n * @default false\n */\n inline?: boolean;\n // For testing\n 'data-cy'?: any;\n} & Omit<\n ReactDatePickerProps,\n 'selected' | 'customInput' | 'onChangeRaw' | 'dateFormat' | 'locale'\n>;\n\nexport const DatePicker = React.forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n style,\n className,\n selectedDate,\n label,\n placeholder = 'dd.mm.yyyy',\n onChange,\n onKeyDown = () => null,\n dateFormats = ['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy', 'ddMMyy'],\n minDate,\n maxDate,\n inline = false,\n disabled,\n prepend,\n feedback = '',\n variant,\n validationFeedback = 'Ugyldig dato',\n validationVariant = 'error',\n disableLabelAnimation = false,\n calendarButtonTooltip = 'Åpne\\xa0kalender',\n hideCalendarButton = false,\n hideCalendar = false,\n hideValidation = false,\n weekLabel = 'uke',\n locale = nb,\n open,\n ...rest\n },\n ref,\n ) => {\n const datepickerId = useRandomId('eds-datepicker');\n\n const [showValidation, setShowValidation] = useState(false);\n\n const datepickerRef = useRef<ReactDatePicker>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => validateInput(), [selectedDate]);\n\n const handleOnKeyDown = (event: KeyboardEvent) => {\n const calendarIsClosed = !datepickerRef.current?.isCalendarOpen();\n\n setShowValidation(false);\n if (event.key === 'Enter') {\n validateInput();\n focusAndSelectInputField();\n forceUpdateInputFormat();\n } else if (event.key === 'Tab' && calendarIsClosed) {\n validateInput();\n forceUpdateInputFormat();\n }\n onKeyDown(event);\n };\n\n const validateInput = () => {\n setShowValidation(false);\n const inputValue = inputRef.current?.value;\n if (!inputValue) return;\n\n const inputValueParsedWithAllDateFormats = dateFormats.map(format =>\n parse(inputValue, format, new Date(), {\n locale: locale,\n }),\n );\n\n const parsedDateFromInputIsTheSameAsSelectedDate =\n selectedDate &&\n inputValueParsedWithAllDateFormats.some(dateFormat =>\n isSameDay(dateFormat, selectedDate),\n );\n\n if (parsedDateFromInputIsTheSameAsSelectedDate) {\n // valid date inputted\n setShowValidation(false);\n } else {\n // invalid date inputted\n setShowValidation(true);\n }\n };\n\n const getFeedbackAndVariant = (): {\n feedback: string;\n variant: VariantType | undefined;\n } => {\n if (feedback) return { feedback, variant };\n if (!hideValidation && showValidation)\n return { feedback: validationFeedback, variant: validationVariant };\n return { feedback: '', variant: undefined };\n };\n\n const focusAndSelectInputField = () =>\n setTimeout(() => {\n inputRef.current?.select();\n }, 5);\n\n const forceUpdateInputFormat = () =>\n datepickerRef.current?.setState({ inputValue: null });\n\n const toggleCalendarGUI = () =>\n datepickerRef.current?.setOpen(!datepickerRef.current?.isCalendarOpen());\n\n return (\n <>\n <ReactDatepicker\n selected={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n dateFormat={dateFormats}\n showWeekNumbers\n weekLabel={weekLabel}\n onChange={onChange}\n onClickOutside={validateInput}\n id={datepickerId}\n ariaLabelledBy={datepickerId}\n showPopperArrow={false}\n locale={locale}\n inline={inline}\n disabled={disabled}\n preventOpenOnFocus={true}\n open={hideCalendar ? false : open}\n ref={datepickerRef}\n calendarClassName=\"eds-datepicker__calender\"\n dayClassName={() => 'eds-datepicker__calender__day'}\n weekDayClassName={() => 'eds-datepicker__calender__day-name'}\n className={classNames(className, 'eds-datepicker__input')}\n highlightDates={[\n { 'eds-datepicker__calender__day--today': [new Date()] },\n {\n 'eds-datepicker__calender__day--selected': selectedDate\n ? [selectedDate]\n : [],\n },\n ]}\n renderCustomHeader={({\n date,\n changeYear,\n changeMonth,\n decreaseMonth,\n increaseMonth,\n prevMonthButtonDisabled,\n nextMonthButtonDisabled,\n }) => (\n <DatePickerHeader\n date={date}\n changeYear={changeYear}\n changeMonth={changeMonth}\n increaseMonth={increaseMonth}\n decreaseMonth={decreaseMonth}\n prevMonthButtonDisabled={prevMonthButtonDisabled}\n nextMonthButtonDisabled={nextMonthButtonDisabled}\n />\n )}\n customInput={\n <DatePickerInput\n style={style}\n label={label}\n inputPlaceholder={placeholder}\n calendarButtonTooltip={calendarButtonTooltip}\n prepend={prepend}\n feedback={getFeedbackAndVariant().feedback}\n variant={getFeedbackAndVariant().variant}\n inputRef={inputRef}\n forwardRef={ref}\n onKeyDownInput={handleOnKeyDown}\n onBlurInput={() =>\n !datepickerRef.current?.isCalendarOpen() && validateInput()\n }\n onFocus={undefined}\n toggleCalendarGUI={toggleCalendarGUI}\n disableLabelAnimation={disableLabelAnimation}\n hideCalendarButton={hideCalendarButton}\n selectedDate={selectedDate}\n />\n }\n {...rest}\n />\n </>\n );\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 {\n default as ReactDatepicker,\n ReactDatePickerProps,\n registerLocale,\n} from 'react-datepicker';\nimport classNames from 'classnames';\nimport {\n BaseFormControl,\n useInputGroupContext,\n VariantType,\n} from '@entur/form';\nimport { LeftArrowIcon, RightArrowIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\nimport { nb } from 'date-fns/locale';\nimport { add, sub } from 'date-fns';\nimport * as Popper from '@popperjs/core';\nimport './TimePicker.scss';\nregisterLocale('nb', nb);\n\nexport type TimePickerProps = {\n /** Hva som er den valgte datoen */\n selectedTime?: Date;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event>,\n ) => void;\n /** Placeholder om ingen dato er valgt\n * @default \"Velg tid\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over TimePicker */\n label: string;\n /** Varselmelding, som vil komme under TimePicker */\n feedback?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n style?: React.CSSProperties;\n labelTooltip?: React.ReactNode;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Kalles ved klikk på pil venstre i TimePicker\n * @default Trekker fra 30 minutter av den valgte tiden\n */\n onLeftArrowClick?: (selectedTime?: Date | null, e?: React.MouseEvent) => void;\n /** Kalles ved klikk på pil høyre i TimePicker\n * @default Legger til 30 minutter av den valgte tiden\n */\n onRightArrowClick?: (\n selectedTime?: Date | null,\n e?: React.MouseEvent,\n ) => void;\n} & ReactDatePickerProps;\n\nexport const TimePicker = React.forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n selectedTime = null,\n onChange,\n placeholder = 'Velg tid',\n disabled,\n className,\n style,\n label,\n labelTooltip,\n feedback,\n variant,\n disableLabelAnimation,\n locale = 'nb',\n onLeftArrowClick = (selectedTime, event) =>\n selectedTime && onChange(sub(selectedTime, { minutes: 30 }), event),\n onRightArrowClick = (selectedTime, event) =>\n selectedTime && onChange(add(selectedTime, { minutes: 30 }), event),\n ...rest\n },\n ref,\n ) => {\n const timepickerId = useRandomId('eds-timepicker');\n return (\n <BaseFormControl\n style={style}\n ref={ref}\n label={label}\n labelId={timepickerId}\n labelTooltip={labelTooltip}\n variant={variant}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n className=\"eds-timepicker-form-control\"\n disabled={disabled}\n prepend={\n <TimePickerArrowButton\n direction=\"left\"\n tabIndex={-1}\n onClick={(e: React.MouseEvent) => onLeftArrowClick(selectedTime, e)}\n disabled={disabled}\n />\n }\n >\n <TimePickerBase\n selectedTime={selectedTime}\n onChange={onChange}\n placeholder={placeholder}\n className={className}\n locale={locale}\n ariaLabelledBy={timepickerId}\n disabled={disabled}\n {...rest}\n />\n <TimePickerArrowButton\n direction=\"right\"\n tabIndex={-1}\n onClick={(e: React.MouseEvent) => onRightArrowClick(selectedTime, e)}\n disabled={disabled}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TimePickerBaseProps = {\n /** Hva som er den valgte datoen */\n selectedTime?: Date | null;\n /** Kalles når datoen/tiden endres */\n onChange: (\n date: Date | null,\n event: React.SyntheticEvent<any, Event>,\n ) => void;\n /** Placeholder om ingen dato er valgt\n * @default \"Velg tid\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n} & ReactDatePickerProps;\n\nconst POPPER_MODIFIERS: Popper.StrictModifiers[] = [\n {\n name: 'offset',\n enabled: true,\n options: {\n offset: [0, 0],\n },\n },\n];\nconst TimePickerBase: React.FC<TimePickerBaseProps> = ({\n className,\n onChange,\n selectedTime,\n placeholder,\n timeFormat = 'HH:mm',\n dateFormat = ['HH:mm', 'HHmm'],\n ...rest\n}) => {\n const { isFilled: isTimepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (selectedTime) {\n setFiller && !isTimepickerFilled && setFiller(true);\n }\n });\n\n React.useEffect(() => {\n if (selectedTime) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n }, [selectedTime, setFiller, isTimepickerFilled]);\n\n const handleChange = (date: any, event: any) => {\n if (date) {\n setFiller && !isTimepickerFilled && setFiller(true);\n } else {\n setFiller && isTimepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(date, event);\n }\n };\n return (\n <ReactDatepicker\n className={classNames(\n 'eds-form-control',\n 'eds-timepicker__input',\n className,\n )}\n calendarClassName=\"eds-timepicker\"\n selected={selectedTime}\n onChange={handleChange}\n dateFormat={dateFormat}\n timeFormat={timeFormat}\n showTimeSelect\n showTimeInput={true}\n showTimeSelectOnly\n showPopperArrow={false}\n placeholderText={placeholder}\n popperClassName=\"eds-datepicker__popper\"\n popperModifiers={POPPER_MODIFIERS}\n open={false}\n {...rest}\n />\n );\n};\n\ntype TimePickerArrowButtonProps = {\n direction: 'left' | 'right';\n} & React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n>;\n\nconst TimePickerArrowButton: React.FC<TimePickerArrowButtonProps> = ({\n direction,\n ...rest\n}) => {\n return (\n <button\n className={classNames(\n 'eds-timepicker__arrowbutton',\n `eds-timepicker__arrowbutton--${direction}`,\n )}\n type=\"button\"\n {...rest}\n >\n {direction === 'left' ? <LeftArrowIcon /> : <RightArrowIcon />}\n </button>\n );\n};\n","import React from 'react';\nimport {\n BaseFormControl,\n isFilled,\n useInputGroupContext,\n useVariant,\n VariantType,\n} from '@entur/form';\nimport { ClockIcon } from '@entur/icons';\nimport { useOnMount, useRandomId } from '@entur/utils';\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 /** 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 <ClockIcon />\n */\n prepend?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const NativeTimePicker = React.forwardRef<\n HTMLInputElement,\n NativeTimePickerProps\n>(\n (\n {\n className,\n style,\n onChange,\n label,\n feedback,\n variant,\n disableLabelAnimation,\n prepend = <ClockIcon />,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const nativetimepickerId = 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={nativetimepickerId}\n disableLabelAnimation={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 eds-native-date-picker\"\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 './NativeDatePicker';\nexport * from './TimePicker';\nexport * from './NativeTimePicker';\n"],"names":["DatePickerHeader","date","decreaseMonth","increaseMonth","prevMonthButtonDisabled","nextMonthButtonDisabled","monthNames","getMonthList","React","className","IconButton","type","onClick","disabled","LeftArrowIcon","Heading3","getMonth","getFullYear","RightArrowIcon","locale","year","Date","monthList","Array","keys","formatter","Intl","DateTimeFormat","month","getMonthName","monthIndex","format","from","DatePickerInput","forwardRef","ref","style","label","inputPlaceholder","prepend","feedback","variant","calendarButtonTooltip","hideCalendarButton","disableLabelAnimation","inputRef","toggleCalendarGUI","onKeyDownInput","onBlurInput","selectedDate","rest","useEffect","current","addEventListener","handleOnKeyDown","handleOnBlur","handleOnFocus","removeEventListener","event","setTimeout","select","TextField","placeholder","mergeRefs","append","Tooltip","placement","content","disableHoverListener","disableFocusListener","CalendarIcon","refs","node","registerLocale","nb","DatePicker","onChange","onKeyDown","dateFormats","minDate","maxDate","inline","validationFeedback","validationVariant","hideCalendar","hideValidation","weekLabel","open","datepickerId","useRandomId","useState","showValidation","setShowValidation","datepickerRef","useRef","validateInput","calendarIsClosed","isCalendarOpen","key","focusAndSelectInputField","forceUpdateInputFormat","inputValue","value","inputValueParsedWithAllDateFormats","map","parse","parsedDateFromInputIsTheSameAsSelectedDate","some","dateFormat","isSameDay","getFeedbackAndVariant","undefined","setState","setOpen","ReactDatepicker","selected","showWeekNumbers","onClickOutside","id","ariaLabelledBy","showPopperArrow","preventOpenOnFocus","calendarClassName","dayClassName","weekDayClassName","classNames","highlightDates","renderCustomHeader","changeYear","changeMonth","customInput","onFocus","NativeDatePicker","DateIcon","nativedatepickerId","BaseFormControl","labelId","isFilled","NativeDatePickerBase","contextVariant","useVariant","currentVariant","useInputGroupContext","isDatepickerFilled","setFiller","setFilled","useOnMount","handleChange","target","TimePicker","selectedTime","labelTooltip","onLeftArrowClick","sub","minutes","onRightArrowClick","add","timepickerId","TimePickerArrowButton","direction","tabIndex","e","TimePickerBase","POPPER_MODIFIERS","name","enabled","options","offset","timeFormat","isTimepickerFilled","showTimeSelect","showTimeInput","showTimeSelectOnly","placeholderText","popperClassName","popperModifiers","NativeTimePicker","ClockIcon","nativetimepickerId","NativeTimePickerBase","warnAboutMissingStyles"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur/datepicker",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/datepicker.esm.js",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"react-dom": ">=16.8.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@entur/form": "^5.3.
|
|
31
|
-
"@entur/icons": "^4.1.
|
|
30
|
+
"@entur/form": "^5.3.4",
|
|
31
|
+
"@entur/icons": "^4.1.2",
|
|
32
32
|
"@entur/tokens": "^3.3.2",
|
|
33
33
|
"@entur/typography": "^1.6.12",
|
|
34
34
|
"@entur/utils": "^0.4.3",
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"node": "14.17.0",
|
|
41
41
|
"yarn": "1.18.0"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "0fba0071ad9dc75cc68b72b846f5bab78be12449"
|
|
44
44
|
}
|