@entur/datepicker 0.11.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/datepicker.cjs.development.js +1 -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 +1 -0
- package/dist/datepicker.esm.js.map +1 -1
- package/dist/styles.css +93 -93
- package/package.json +2 -2
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
|
+
## [0.11.1](https://bitbucket.org/enturas/design-system/compare/@entur/datepicker@0.11.0...@entur/datepicker@0.11.1) (2022-02-14)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **datepicker:** fix default value for date not working ([283734a](https://bitbucket.org/enturas/design-system/commits/283734af696c1ed5ddb13232c8a7c3a4916551b0))
|
|
11
|
+
|
|
6
12
|
# [0.11.0](https://bitbucket.org/enturas/design-system/compare/@entur/datepicker@0.10.8...@entur/datepicker@0.11.0) (2022-02-09)
|
|
7
13
|
|
|
8
14
|
### Features
|
|
@@ -111,6 +111,7 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
|
|
|
111
111
|
utils.useOnMount(function () {
|
|
112
112
|
if (selectedDate) {
|
|
113
113
|
setFiller && !isDatepickerFilled && setFiller(true);
|
|
114
|
+
handleChange(selectedDate, undefined);
|
|
114
115
|
}
|
|
115
116
|
});
|
|
116
117
|
React__default["default"].useEffect(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.cjs.development.js","sources":["../src/DatePicker.tsx","../src/NativeDatePicker.tsx","../src/TimePicker.tsx","../src/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React, { useState } 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 { CalendarIcon } from '@entur/icons';\nimport { parse, isValid } from 'date-fns';\nimport { nb } from 'date-fns/locale';\nimport './DatePicker.scss';\nimport { Tooltip } from '@entur/tooltip';\nimport { useOnMount, useRandomId } from '@entur/utils';\nimport * as Popper from '@popperjs/core';\n\nregisterLocale('nb', nb);\n\nexport type DatePickerProps = {\n /** Hva som er den valgte datoen */\n selectedDate?: 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 \"dd.mm.yyyy\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over DatePicker */\n label: string;\n /** Varselmelding, som vil komme under DatePicker\n * @default \"Ugyldig dato\"\n */\n feedback?: string;\n /** Valideringsvariant\n * @default \"error\"\n */\n variant?: 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 /** 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 hideFeedback?: boolean;\n /** Skjuler kalender-GUI-et\n * @default false\n */\n hideCalendar?: boolean;\n // For testing\n 'data-cy'?: any;\n} & Omit<ReactDatePickerProps, 'selected' | 'customInput'>;\nconst POPPER_MODIFIERS: Popper.StrictModifiers[] = [\n {\n name: 'offset',\n enabled: true,\n options: {\n offset: [0, 0],\n },\n },\n];\n\nexport const DatePicker = React.forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n selectedDate = null,\n onChange,\n placeholder = 'dd.mm.yyyy',\n className,\n style,\n readOnly,\n disableLabelAnimation = false,\n locale = 'nb',\n prepend,\n disabled,\n variant = 'error',\n feedback = 'Ugyldig dato',\n label,\n hideCalendarButton = false,\n hideCalendar = false,\n hideFeedback = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const [showFeedback, setShowFeedback] = useState(false);\n const [currentValue, setCurrentValue] = useState('');\n const [lastValidValue, setLastValidValue] = useState('');\n\n const datepickerId = useRandomId('eds-datepicker');\n const { isFilled: isDatepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n }\n });\n\n React.useEffect(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n }, [selectedDate, setFiller, isDatepickerFilled]);\n\n const handleChange = (\n date: any,\n event: React.SyntheticEvent<any> | undefined,\n ) => {\n if (date) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(date, event);\n const dateString = date?.toLocaleDateString('no-NO', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n });\n setCurrentValue(dateString ?? '');\n setLastValidValue(dateString ?? '');\n }\n };\n\n const handleChangeRaw = (event: React.FocusEvent<HTMLInputElement>) => {\n setShowFeedback(false);\n setCurrentValue(event.target.value);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (showFeedback) {\n setShowFeedback(false);\n } else {\n const inputValue = event.target.value;\n if (inputValue) validateInput(inputValue);\n }\n };\n\n const handleKeyDownInput = (\n event: React.KeyboardEvent<HTMLInputElement>,\n ) => {\n if (event.key === 'Enter') validateInput(currentValue);\n };\n\n const validateInput = (inputValue: string) => {\n const parsedDate = parse(inputValue, 'dd.MM.yyyy', new Date(), {\n locale: nb,\n });\n\n const yearIsFourCharacters =\n currentValue.slice(currentValue.lastIndexOf('.') + 1).length === 4;\n const isValidDate = isValid(parsedDate) && yearIsFourCharacters;\n\n if (!isValidDate) {\n setShowFeedback(true);\n setCurrentValue(lastValidValue);\n } else {\n setShowFeedback(false);\n setLastValidValue(currentValue);\n }\n };\n\n return (\n <ReactDatepicker\n className={classNames(className)}\n calendarClassName=\"eds-datepicker__calender\"\n selected={selectedDate}\n onChange={handleChange}\n showWeekNumbers={true}\n dateFormat={['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy']}\n showPopperArrow={false}\n placeholderText={placeholder}\n readOnly={readOnly}\n id={datepickerId}\n ariaLabelledBy={datepickerId}\n disabled={disabled}\n locale={locale}\n popperModifiers={POPPER_MODIFIERS}\n onBlur={handleBlur}\n onChangeRaw={handleChangeRaw}\n onCalendarOpen={() => setShowFeedback(false)}\n value={currentValue}\n open={hideCalendar === true ? false : rest.open}\n {...rest}\n customInput={\n <DatePickerInput\n style={style}\n readOnly={readOnly}\n variant={!hideFeedback && showFeedback ? variant : ''}\n feedback={!hideFeedback && showFeedback ? feedback : ''}\n label={label}\n disabled={disabled}\n ref={ref}\n data-cy={rest['data-cy']}\n disableLabelAnimation={disableLabelAnimation}\n prepend={prepend}\n hideCalendarButton={hideCalendarButton}\n inputId={id}\n onKeyDownInput={handleKeyDownInput}\n onBlurInput={handleBlur}\n />\n }\n />\n );\n },\n);\n\ntype DatePickerInputProps = {\n onClick?: any;\n value?: any;\n disableLabelAnimation?: boolean;\n className?: string;\n hideCalendarButton?: boolean;\n feedback?: string;\n inputId?: string;\n [key: string]: any;\n};\n// Props fra customInput i react-datepicker\n// value: inputValue,\n// onBlur: this.handleBlur,\n// onChange: this.handleChange,\n// onClick: this.onInputClick,\n// onFocus: this.handleFocus,\n// onKeyDown: this.onInputKeyDown,\n// id: this.props.id,\n// name: this.props.name,\n// autoFocus: this.props.autoFocus,\n// placeholder: this.props.placeholderText,\n// disabled: this.props.disabled,\n// autoComplete: this.props.autoComplete,\n// className: classnames(customInput.props.className, className),\n// title: this.props.title,\n// readOnly: this.props.readOnly,\n// required: this.props.required,\n// tabIndex: this.props.tabIndex,\n// \"aria-describedby\": this.props.ariaDescribedBy,\n// \"aria-invalid\": this.props.ariaInvalid,\n// \"aria-labelledby\": this.props.ariaLabelledBy,\n// \"aria-required\": this.props.ariaRequired,\n\nconst DatePickerInput = React.forwardRef<\n HTMLInputElement,\n DatePickerInputProps\n>(\n (\n {\n value,\n onClick,\n // Capture onFocus prop from react-datepicker, but doesn't use it\n // eslint-disable-next-line\n onFocus,\n onKeyDown,\n variant,\n feedback,\n style,\n disableLabelAnimation,\n disabled,\n label,\n readOnly,\n id,\n prepend,\n className,\n hideCalendarButton,\n inputId,\n onKeyDownInput,\n onBlurInput,\n ...rest\n },\n ref,\n ) => {\n return (\n <span className={className} onBlur={onBlurInput}>\n <BaseFormControl\n style={style}\n className=\"eds-datepicker__form-control\"\n readOnly={readOnly}\n label={label}\n labelId={id}\n feedback={feedback}\n variant={variant}\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\n isFilled={value ? true : false}\n prepend={prepend}\n >\n <input\n value={value}\n onClick={onClick}\n readOnly={readOnly}\n disabled={disabled}\n ref={ref}\n // aria-labelledby={id}\n className=\"eds-form-control\"\n id={inputId}\n onKeyDown={onKeyDownInput}\n {...rest}\n />\n {!hideCalendarButton && (\n <Tooltip\n placement=\"top\"\n content=\"Åpne kalender\"\n disableHoverListener={disabled}\n disableFocusListener={disabled}\n >\n <button\n className={classNames('eds-datepicker__calendar-button', {\n 'eds-datepicker__calendar-button--open': true,\n 'eds-datepicker__calendar-button--disabled': disabled,\n })}\n onKeyDown={onKeyDown}\n onClick={onClick}\n disabled={disabled}\n type=\"button\"\n >\n <CalendarIcon />\n </button>\n </Tooltip>\n )}\n </BaseFormControl>\n </span>\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\nimport './react-datepicker.scss';\n\nwarnAboutMissingStyles('datepicker', 'form', 'icons');\n\nexport * from './DatePicker';\nexport * from './NativeDatePicker';\nexport * from './TimePicker';\nexport * from './NativeTimePicker';\n"],"names":["registerLocale","nb","POPPER_MODIFIERS","name","enabled","options","offset","DatePicker","React","forwardRef","ref","selectedDate","onChange","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","feedback","label","hideCalendarButton","hideCalendar","hideFeedback","id","rest","useState","showFeedback","setShowFeedback","currentValue","setCurrentValue","lastValidValue","setLastValidValue","datepickerId","useRandomId","useInputGroupContext","isDatepickerFilled","isFilled","setFiller","setFilled","useOnMount","useEffect","handleChange","date","event","dateString","toLocaleDateString","day","month","year","handleChangeRaw","target","value","handleBlur","inputValue","validateInput","handleKeyDownInput","key","parsedDate","parse","Date","yearIsFourCharacters","slice","lastIndexOf","length","isValidDate","isValid","ReactDatepicker","classNames","calendarClassName","selected","showWeekNumbers","dateFormat","showPopperArrow","placeholderText","ariaLabelledBy","popperModifiers","onBlur","onChangeRaw","onCalendarOpen","open","customInput","DatePickerInput","inputId","onKeyDownInput","onBlurInput","onClick","onKeyDown","BaseFormControl","labelId","Tooltip","placement","content","disableHoverListener","disableFocusListener","type","CalendarIcon","NativeDatePicker","DateIcon","inline","nativedatepickerId","NativeDatePickerBase","contextVariant","useVariant","currentVariant","TimePicker","selectedTime","labelTooltip","onLeftArrowClick","sub","minutes","onRightArrowClick","add","timepickerId","TimePickerArrowButton","direction","tabIndex","e","TimePickerBase","timeFormat","isTimepickerFilled","showTimeSelect","showTimeInput","showTimeSelectOnly","popperClassName","LeftArrowIcon","RightArrowIcon","NativeTimePicker","ClockIcon","nativetimepickerId","NativeTimePickerBase","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datepicker.cjs.development.js","sources":["../src/DatePicker.tsx","../src/NativeDatePicker.tsx","../src/TimePicker.tsx","../src/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React, { useState } 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 { CalendarIcon } from '@entur/icons';\nimport { parse, isValid } from 'date-fns';\nimport { nb } from 'date-fns/locale';\nimport './DatePicker.scss';\nimport { Tooltip } from '@entur/tooltip';\nimport { useOnMount, useRandomId } from '@entur/utils';\nimport * as Popper from '@popperjs/core';\n\nregisterLocale('nb', nb);\n\nexport type DatePickerProps = {\n /** Hva som er den valgte datoen */\n selectedDate?: 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 \"dd.mm.yyyy\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over DatePicker */\n label: string;\n /** Varselmelding, som vil komme under DatePicker\n * @default \"Ugyldig dato\"\n */\n feedback?: string;\n /** Valideringsvariant\n * @default \"error\"\n */\n variant?: 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 /** 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 hideFeedback?: boolean;\n /** Skjuler kalender-GUI-et\n * @default false\n */\n hideCalendar?: boolean;\n // For testing\n 'data-cy'?: any;\n} & Omit<ReactDatePickerProps, 'selected' | 'customInput'>;\nconst POPPER_MODIFIERS: Popper.StrictModifiers[] = [\n {\n name: 'offset',\n enabled: true,\n options: {\n offset: [0, 0],\n },\n },\n];\n\nexport const DatePicker = React.forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n selectedDate = null,\n onChange,\n placeholder = 'dd.mm.yyyy',\n className,\n style,\n readOnly,\n disableLabelAnimation = false,\n locale = 'nb',\n prepend,\n disabled,\n variant = 'error',\n feedback = 'Ugyldig dato',\n label,\n hideCalendarButton = false,\n hideCalendar = false,\n hideFeedback = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const [showFeedback, setShowFeedback] = useState(false);\n const [currentValue, setCurrentValue] = useState('');\n const [lastValidValue, setLastValidValue] = useState('');\n\n const datepickerId = useRandomId('eds-datepicker');\n const { isFilled: isDatepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n handleChange(selectedDate, undefined);\n }\n });\n\n React.useEffect(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n }, [selectedDate, setFiller, isDatepickerFilled]);\n\n const handleChange = (\n date: any,\n event: React.SyntheticEvent<any> | undefined,\n ) => {\n if (date) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(date, event);\n const dateString = date?.toLocaleDateString('no-NO', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n });\n setCurrentValue(dateString ?? '');\n setLastValidValue(dateString ?? '');\n }\n };\n\n const handleChangeRaw = (event: React.FocusEvent<HTMLInputElement>) => {\n setShowFeedback(false);\n setCurrentValue(event.target.value);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (showFeedback) {\n setShowFeedback(false);\n } else {\n const inputValue = event.target.value;\n if (inputValue) validateInput(inputValue);\n }\n };\n\n const handleKeyDownInput = (\n event: React.KeyboardEvent<HTMLInputElement>,\n ) => {\n if (event.key === 'Enter') validateInput(currentValue);\n };\n\n const validateInput = (inputValue: string) => {\n const parsedDate = parse(inputValue, 'dd.MM.yyyy', new Date(), {\n locale: nb,\n });\n\n const yearIsFourCharacters =\n currentValue.slice(currentValue.lastIndexOf('.') + 1).length === 4;\n const isValidDate = isValid(parsedDate) && yearIsFourCharacters;\n\n if (!isValidDate) {\n setShowFeedback(true);\n setCurrentValue(lastValidValue);\n } else {\n setShowFeedback(false);\n setLastValidValue(currentValue);\n }\n };\n\n return (\n <ReactDatepicker\n className={classNames(className)}\n calendarClassName=\"eds-datepicker__calender\"\n selected={selectedDate}\n onChange={handleChange}\n showWeekNumbers={true}\n dateFormat={['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy']}\n showPopperArrow={false}\n placeholderText={placeholder}\n readOnly={readOnly}\n id={datepickerId}\n ariaLabelledBy={datepickerId}\n disabled={disabled}\n locale={locale}\n popperModifiers={POPPER_MODIFIERS}\n onBlur={handleBlur}\n onChangeRaw={handleChangeRaw}\n onCalendarOpen={() => setShowFeedback(false)}\n value={currentValue}\n open={hideCalendar === true ? false : rest.open}\n {...rest}\n customInput={\n <DatePickerInput\n style={style}\n readOnly={readOnly}\n variant={!hideFeedback && showFeedback ? variant : ''}\n feedback={!hideFeedback && showFeedback ? feedback : ''}\n label={label}\n disabled={disabled}\n ref={ref}\n data-cy={rest['data-cy']}\n disableLabelAnimation={disableLabelAnimation}\n prepend={prepend}\n hideCalendarButton={hideCalendarButton}\n inputId={id}\n onKeyDownInput={handleKeyDownInput}\n onBlurInput={handleBlur}\n />\n }\n />\n );\n },\n);\n\ntype DatePickerInputProps = {\n onClick?: any;\n value?: any;\n disableLabelAnimation?: boolean;\n className?: string;\n hideCalendarButton?: boolean;\n feedback?: string;\n inputId?: string;\n [key: string]: any;\n};\n// Props fra customInput i react-datepicker\n// value: inputValue,\n// onBlur: this.handleBlur,\n// onChange: this.handleChange,\n// onClick: this.onInputClick,\n// onFocus: this.handleFocus,\n// onKeyDown: this.onInputKeyDown,\n// id: this.props.id,\n// name: this.props.name,\n// autoFocus: this.props.autoFocus,\n// placeholder: this.props.placeholderText,\n// disabled: this.props.disabled,\n// autoComplete: this.props.autoComplete,\n// className: classnames(customInput.props.className, className),\n// title: this.props.title,\n// readOnly: this.props.readOnly,\n// required: this.props.required,\n// tabIndex: this.props.tabIndex,\n// \"aria-describedby\": this.props.ariaDescribedBy,\n// \"aria-invalid\": this.props.ariaInvalid,\n// \"aria-labelledby\": this.props.ariaLabelledBy,\n// \"aria-required\": this.props.ariaRequired,\n\nconst DatePickerInput = React.forwardRef<\n HTMLInputElement,\n DatePickerInputProps\n>(\n (\n {\n value,\n onClick,\n // Capture onFocus prop from react-datepicker, but doesn't use it\n // eslint-disable-next-line\n onFocus,\n onKeyDown,\n variant,\n feedback,\n style,\n disableLabelAnimation,\n disabled,\n label,\n readOnly,\n id,\n prepend,\n className,\n hideCalendarButton,\n inputId,\n onKeyDownInput,\n onBlurInput,\n ...rest\n },\n ref,\n ) => {\n return (\n <span className={className} onBlur={onBlurInput}>\n <BaseFormControl\n style={style}\n className=\"eds-datepicker__form-control\"\n readOnly={readOnly}\n label={label}\n labelId={id}\n feedback={feedback}\n variant={variant}\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\n isFilled={value ? true : false}\n prepend={prepend}\n >\n <input\n value={value}\n onClick={onClick}\n readOnly={readOnly}\n disabled={disabled}\n ref={ref}\n // aria-labelledby={id}\n className=\"eds-form-control\"\n id={inputId}\n onKeyDown={onKeyDownInput}\n {...rest}\n />\n {!hideCalendarButton && (\n <Tooltip\n placement=\"top\"\n content=\"Åpne kalender\"\n disableHoverListener={disabled}\n disableFocusListener={disabled}\n >\n <button\n className={classNames('eds-datepicker__calendar-button', {\n 'eds-datepicker__calendar-button--open': true,\n 'eds-datepicker__calendar-button--disabled': disabled,\n })}\n onKeyDown={onKeyDown}\n onClick={onClick}\n disabled={disabled}\n type=\"button\"\n >\n <CalendarIcon />\n </button>\n </Tooltip>\n )}\n </BaseFormControl>\n </span>\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\nimport './react-datepicker.scss';\n\nwarnAboutMissingStyles('datepicker', 'form', 'icons');\n\nexport * from './DatePicker';\nexport * from './NativeDatePicker';\nexport * from './TimePicker';\nexport * from './NativeTimePicker';\n"],"names":["registerLocale","nb","POPPER_MODIFIERS","name","enabled","options","offset","DatePicker","React","forwardRef","ref","selectedDate","onChange","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","feedback","label","hideCalendarButton","hideCalendar","hideFeedback","id","rest","useState","showFeedback","setShowFeedback","currentValue","setCurrentValue","lastValidValue","setLastValidValue","datepickerId","useRandomId","useInputGroupContext","isDatepickerFilled","isFilled","setFiller","setFilled","useOnMount","handleChange","undefined","useEffect","date","event","dateString","toLocaleDateString","day","month","year","handleChangeRaw","target","value","handleBlur","inputValue","validateInput","handleKeyDownInput","key","parsedDate","parse","Date","yearIsFourCharacters","slice","lastIndexOf","length","isValidDate","isValid","ReactDatepicker","classNames","calendarClassName","selected","showWeekNumbers","dateFormat","showPopperArrow","placeholderText","ariaLabelledBy","popperModifiers","onBlur","onChangeRaw","onCalendarOpen","open","customInput","DatePickerInput","inputId","onKeyDownInput","onBlurInput","onClick","onKeyDown","BaseFormControl","labelId","Tooltip","placement","content","disableHoverListener","disableFocusListener","type","CalendarIcon","NativeDatePicker","DateIcon","inline","nativedatepickerId","NativeDatePickerBase","contextVariant","useVariant","currentVariant","TimePicker","selectedTime","labelTooltip","onLeftArrowClick","sub","minutes","onRightArrowClick","add","timepickerId","TimePickerArrowButton","direction","tabIndex","e","TimePickerBase","timeFormat","isTimepickerFilled","showTimeSelect","showTimeInput","showTimeSelectOnly","popperClassName","LeftArrowIcon","RightArrowIcon","NativeTimePicker","ClockIcon","nativetimepickerId","NativeTimePickerBase","warnAboutMissingStyles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBAA,8BAAc,CAAC,IAAD,EAAOC,SAAP,CAAd;AAkDA,IAAMC,kBAAgB,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;IAUaC,UAAU,gBAAGC,yBAAK,CAACC,UAAN,CACxB,gBAqBEC,GArBF;+BAEIC;MAAAA,8CAAe;MACfC,gBAAAA;8BACAC;MAAAA,4CAAc;MACdC,iBAAAA;MACAC,aAAAA;MACAC,gBAAAA;mCACAC;MAAAA,2DAAwB;yBACxBC;MAAAA,oCAAS;MACTC,eAAAA;MACAC,gBAAAA;0BACAC;MAAAA,oCAAU;2BACVC;MAAAA,sCAAW;MACXC,aAAAA;mCACAC;MAAAA,wDAAqB;+BACrBC;MAAAA,8CAAe;+BACfC;MAAAA,8CAAe;MACfC,UAAAA;MACGC;;AAIL,kBAAwCC,cAAQ,CAAC,KAAD,CAAhD;AAAA,MAAOC,YAAP;AAAA,MAAqBC,eAArB;;AACA,mBAAwCF,cAAQ,CAAC,EAAD,CAAhD;AAAA,MAAOG,YAAP;AAAA,MAAqBC,eAArB;;AACA,mBAA4CJ,cAAQ,CAAC,EAAD,CAApD;AAAA,MAAOK,cAAP;AAAA,MAAuBC,iBAAvB;;AAEA,MAAMC,YAAY,GAAGC,iBAAW,CAAC,gBAAD,CAAhC;;AACA,8BACEC,yBAAoB,EADtB;AAAA,MAAkBC,kBAAlB,yBAAQC,QAAR;AAAA,MAAiDC,SAAjD,yBAAsCC,SAAtC;;AAGAC,EAAAA,gBAAU,CAAC;AACT,QAAIhC,YAAJ,EAAkB;AAChB8B,MAAAA,SAAS,IAAI,CAACF,kBAAd,IAAoCE,SAAS,CAAC,IAAD,CAA7C;AACAG,MAAAA,YAAY,CAACjC,YAAD,EAAekC,SAAf,CAAZ;AACD;AACF,GALS,CAAV;AAOArC,EAAAA,yBAAK,CAACsC,SAAN,CAAgB;AACd,QAAInC,YAAJ,EAAkB;AAChB8B,MAAAA,SAAS,IAAI,CAACF,kBAAd,IAAoCE,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAIF,kBAAb,IAAmCE,SAAS,CAAC,KAAD,CAA5C;AACD;AACF,GAND,EAMG,CAAC9B,YAAD,EAAe8B,SAAf,EAA0BF,kBAA1B,CANH;;AAQA,MAAMK,YAAY,GAAG,SAAfA,YAAe,CACnBG,IADmB,EAEnBC,KAFmB;AAInB,QAAID,IAAJ,EAAU;AACRN,MAAAA,SAAS,IAAI,CAACF,kBAAd,IAAoCE,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAIF,kBAAb,IAAmCE,SAAS,CAAC,KAAD,CAA5C;AACD;;AACD,QAAI7B,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAACmC,IAAD,EAAOC,KAAP,CAAR;AACA,UAAMC,UAAU,GAAGF,IAAH,oBAAGA,IAAI,CAAEG,kBAAN,CAAyB,OAAzB,EAAkC;AACnDC,QAAAA,GAAG,EAAE,SAD8C;AAEnDC,QAAAA,KAAK,EAAE,SAF4C;AAGnDC,QAAAA,IAAI,EAAE;AAH6C,OAAlC,CAAnB;AAKApB,MAAAA,eAAe,CAACgB,UAAD,WAACA,UAAD,GAAe,EAAf,CAAf;AACAd,MAAAA,iBAAiB,CAACc,UAAD,WAACA,UAAD,GAAe,EAAf,CAAjB;AACD;AACF,GAnBD;;AAqBA,MAAMK,eAAe,GAAG,SAAlBA,eAAkB,CAACN,KAAD;AACtBjB,IAAAA,eAAe,CAAC,KAAD,CAAf;AACAE,IAAAA,eAAe,CAACe,KAAK,CAACO,MAAN,CAAaC,KAAd,CAAf;AACD,GAHD;;AAKA,MAAMC,UAAU,GAAG,SAAbA,UAAa,CAACT,KAAD;AACjB,QAAIlB,YAAJ,EAAkB;AAChBC,MAAAA,eAAe,CAAC,KAAD,CAAf;AACD,KAFD,MAEO;AACL,UAAM2B,UAAU,GAAGV,KAAK,CAACO,MAAN,CAAaC,KAAhC;AACA,UAAIE,UAAJ,EAAgBC,aAAa,CAACD,UAAD,CAAb;AACjB;AACF,GAPD;;AASA,MAAME,kBAAkB,GAAG,SAArBA,kBAAqB,CACzBZ,KADyB;AAGzB,QAAIA,KAAK,CAACa,GAAN,KAAc,OAAlB,EAA2BF,aAAa,CAAC3B,YAAD,CAAb;AAC5B,GAJD;;AAMA,MAAM2B,aAAa,GAAG,SAAhBA,aAAgB,CAACD,UAAD;AACpB,QAAMI,UAAU,GAAGC,aAAK,CAACL,UAAD,EAAa,YAAb,EAA2B,IAAIM,IAAJ,EAA3B,EAAuC;AAC7D9C,MAAAA,MAAM,EAAEjB;AADqD,KAAvC,CAAxB;AAIA,QAAMgE,oBAAoB,GACxBjC,YAAY,CAACkC,KAAb,CAAmBlC,YAAY,CAACmC,WAAb,CAAyB,GAAzB,IAAgC,CAAnD,EAAsDC,MAAtD,KAAiE,CADnE;AAEA,QAAMC,WAAW,GAAGC,eAAO,CAACR,UAAD,CAAP,IAAuBG,oBAA3C;;AAEA,QAAI,CAACI,WAAL,EAAkB;AAChBtC,MAAAA,eAAe,CAAC,IAAD,CAAf;AACAE,MAAAA,eAAe,CAACC,cAAD,CAAf;AACD,KAHD,MAGO;AACLH,MAAAA,eAAe,CAAC,KAAD,CAAf;AACAI,MAAAA,iBAAiB,CAACH,YAAD,CAAjB;AACD;AACF,GAhBD;;AAkBA,SACExB,uCAAA,CAAC+D,mCAAD;AACEzD,IAAAA,SAAS,EAAE0D,8BAAU,CAAC1D,SAAD,CADvB;AAEE2D,IAAAA,iBAAiB,EAAC,0BAFpB;AAGEC,IAAAA,QAAQ,EAAE/D,YAHZ;AAIEC,IAAAA,QAAQ,EAAEgC,YAJZ;AAKE+B,IAAAA,eAAe,EAAE,IALnB;AAMEC,IAAAA,UAAU,EAAE,CAAC,YAAD,EAAe,UAAf,EAA2B,YAA3B,CANd;AAOEC,IAAAA,eAAe,EAAE,KAPnB;AAQEC,IAAAA,eAAe,EAAEjE,WARnB;AASEG,IAAAA,QAAQ,EAAEA,QATZ;AAUEW,IAAAA,EAAE,EAAES,YAVN;AAWE2C,IAAAA,cAAc,EAAE3C,YAXlB;AAYEhB,IAAAA,QAAQ,EAAEA,QAZZ;AAaEF,IAAAA,MAAM,EAAEA,QAbV;AAcE8D,IAAAA,eAAe,EAAE9E,kBAdnB;AAeE+E,IAAAA,MAAM,EAAExB,UAfV;AAgBEyB,IAAAA,WAAW,EAAE5B,eAhBf;AAiBE6B,IAAAA,cAAc,EAAE;AAAA,aAAMpD,eAAe,CAAC,KAAD,CAArB;AAAA,KAjBlB;AAkBEyB,IAAAA,KAAK,EAAExB,YAlBT;AAmBEoD,IAAAA,IAAI,EAAE3D,YAAY,KAAK,IAAjB,GAAwB,KAAxB,GAAgCG,IAAI,CAACwD;AAnB7C,KAoBMxD,IApBN;AAqBEyD,IAAAA,WAAW,EACT7E,uCAAA,CAAC8E,eAAD;AACEvE,MAAAA,KAAK,EAAEA;AACPC,MAAAA,QAAQ,EAAEA;AACVK,MAAAA,OAAO,EAAE,CAACK,YAAD,IAAiBI,YAAjB,GAAgCT,OAAhC,GAA0C;AACnDC,MAAAA,QAAQ,EAAE,CAACI,YAAD,IAAiBI,YAAjB,GAAgCR,QAAhC,GAA2C;AACrDC,MAAAA,KAAK,EAAEA;AACPH,MAAAA,QAAQ,EAAEA;AACVV,MAAAA,GAAG,EAAEA;iBACIkB,IAAI,CAAC,SAAD;AACbX,MAAAA,qBAAqB,EAAEA;AACvBE,MAAAA,OAAO,EAAEA;AACTK,MAAAA,kBAAkB,EAAEA;AACpB+D,MAAAA,OAAO,EAAE5D;AACT6D,MAAAA,cAAc,EAAE5B;AAChB6B,MAAAA,WAAW,EAAEhC;KAdf;AAtBJ,KADF;AA0CD,CApJuB;AAkK1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAM6B,eAAe,gBAAG9E,yBAAK,CAACC,UAAN,CAItB,iBAwBEC,GAxBF;MAEI8C,cAAAA;MACAkC,gBAAAA;MAIAC,kBAAAA;MACAtE,gBAAAA;MACAC,iBAAAA;MACAP,cAAAA;MACAE,8BAAAA;MACAG,iBAAAA;MACAG,cAAAA;MACAP,iBAAAA;MACAW,WAAAA;MACAR,gBAAAA;MACAL,kBAAAA;MACAU,2BAAAA;MACA+D,gBAAAA;MACAC,uBAAAA;MACAC,oBAAAA;MACG7D;;AAIL,SACEpB,uCAAA,OAAA;AAAMM,IAAAA,SAAS,EAAEA;AAAWmE,IAAAA,MAAM,EAAEQ;GAApC,EACEjF,uCAAA,CAACoF,oBAAD;AACE7E,IAAAA,KAAK,EAAEA;AACPD,IAAAA,SAAS,EAAC;AACVE,IAAAA,QAAQ,EAAEA;AACVO,IAAAA,KAAK,EAAEA;AACPsE,IAAAA,OAAO,EAAElE;AACTL,IAAAA,QAAQ,EAAEA;AACVD,IAAAA,OAAO,EAAEA;AACTD,IAAAA,QAAQ,EAAEA;AACVH,IAAAA,qBAAqB,EAAEA;AACvBuB,IAAAA,QAAQ,EAAEgB,KAAK,GAAG,IAAH,GAAU;AACzBrC,IAAAA,OAAO,EAAEA;GAXX,EAaEX,uCAAA,QAAA;AACEgD,IAAAA,KAAK,EAAEA,KADT;AAEEkC,IAAAA,OAAO,EAAEA,OAFX;AAGE1E,IAAAA,QAAQ,EAAEA,QAHZ;AAIEI,IAAAA,QAAQ,EAAEA,QAJZ;AAKEV,IAAAA,GAAG,EAAEA,GALP;AAME;AACAI,IAAAA,SAAS,EAAC,kBAPZ;AAQEa,IAAAA,EAAE,EAAE4D,OARN;AASEI,IAAAA,SAAS,EAAEH;AATb,KAUM5D,IAVN,EAbF,EAyBG,CAACJ,kBAAD,IACChB,uCAAA,CAACsF,eAAD;AACEC,IAAAA,SAAS,EAAC;AACVC,IAAAA,OAAO,EAAC;AACRC,IAAAA,oBAAoB,EAAE7E;AACtB8E,IAAAA,oBAAoB,EAAE9E;GAJxB,EAMEZ,uCAAA,SAAA;AACEM,IAAAA,SAAS,EAAE0D,8BAAU,CAAC,iCAAD,EAAoC;AACvD,+CAAyC,IADc;AAEvD,mDAA6CpD;AAFU,KAApC;AAIrBuE,IAAAA,SAAS,EAAEA;AACXD,IAAAA,OAAO,EAAEA;AACTtE,IAAAA,QAAQ,EAAEA;AACV+E,IAAAA,IAAI,EAAC;GARP,EAUE3F,uCAAA,CAAC4F,kBAAD,MAAA,CAVF,CANF,CA1BJ,CADF,CADF;AAmDD,CAjFqB,CAAxB;;;;IC1OaC,gBAAgB,gBAAG7F,yBAAK,CAACC,UAAN,CAI9B,gBAYEC,GAZF;MAEII,iBAAAA;MACAC,aAAAA;MACAQ,aAAAA;MACAX,gBAAAA;MACAU,gBAAAA;MACAD,eAAAA;MACAJ,6BAAAA;0BACAE;MAAAA,oCAAUX,uCAAA,CAAC8F,cAAD;AAAUC,IAAAA,MAAM;GAAhB;MACP3E;;AAIL,MAAM4E,kBAAkB,GAAGnE,iBAAW,CAAC,sBAAD,CAAtC;AACA,SACE7B,uCAAA,CAACoF,oBAAD;AACE7E,IAAAA,KAAK,EAAEA;AACPD,IAAAA,SAAS,EAAEA;AACXK,IAAAA,OAAO,EAAEA;AACTI,IAAAA,KAAK,EAAEA;AACPD,IAAAA,QAAQ,EAAEA;AACVD,IAAAA,OAAO,EAAEA;AACTwE,IAAAA,OAAO,EAAEW;AACTvF,IAAAA,qBAAqB,EAAEA;AACvBuB,IAAAA,QAAQ;GATV,EAWEhC,uCAAA,CAACiG,oBAAD;AACE7F,IAAAA,QAAQ,EAAEA,QADZ;uBAEmB4F,kBAFnB;AAGE9F,IAAAA,GAAG,EAAEA,GAHP;AAIEW,IAAAA,OAAO,EAAEA;AAJX,KAKMO,IALN,EAXF,CADF;AAqBD,CAxC6B;AAmDhC,IAAM6E,oBAAoB,gBAAGjG,yBAAK,CAACC,UAAN,CAG3B,iBAAwCC,GAAxC;MAAGE,iBAAAA;MAAUS,gBAAAA;MAASmC,cAAAA;MAAU5B;;AAChC,MAAM8E,cAAc,GAAGC,eAAU,EAAjC;AACA,MAAMC,cAAc,GAAGvF,OAAO,IAAIqF,cAAlC;;AACA,8BACEpE,yBAAoB,EADtB;AAAA,MAAkBC,kBAAlB,yBAAQC,QAAR;AAAA,MAAiDC,SAAjD,yBAAsCC,SAAtC;;AAGAC,EAAAA,gBAAU,CAAC;AACTF,IAAAA,SAAS,IAAI,CAACF,kBAAd,IAAoCE,SAAS,CAAC,IAAD,CAA7C;AACD,GAFS,CAAV;AAIAjC,EAAAA,yBAAK,CAACsC,SAAN,CAAgB;AACd,QAAIU,KAAJ,EAAW;AACTf,MAAAA,SAAS,IAAI,CAACF,kBAAd,IAAoCE,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAIF,kBAAb,IAAmCE,SAAS,CAAC,KAAD,CAA5C;AACD;AACF,GAND,EAMG,CAACe,KAAD,EAAQf,SAAR,EAAmBF,kBAAnB,CANH;;AAQA,MAAMK,YAAY,GAAG,SAAfA,YAAe,CAACI,KAAD;AACnB,QAAIR,aAAQ,CAACQ,KAAK,CAACO,MAAP,CAAZ,EAA4B;AAC1Bd,MAAAA,SAAS,IAAI,CAACF,kBAAd,IAAoCE,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAIF,kBAAb,IAAmCE,SAAS,CAAC,KAAD,CAA5C;AACD;;AACD,QAAI7B,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAACoC,KAAD,CAAR;AACD;AACF,GATD;;AAUA,SACExC,uCAAA,QAAA;AACEE,IAAAA,GAAG,EAAEA,GADP;oBAEgBkG,cAAc,KAAK,OAFnC;AAGET,IAAAA,IAAI,EAAC,MAHP;AAIErF,IAAAA,SAAS,EAAC,yCAJZ;AAKEF,IAAAA,QAAQ,EAAEgC,YALZ;AAMEY,IAAAA,KAAK,EAAEA;AANT,KAOM5B,IAPN,EADF;AAWD,CA1C4B,CAA7B;;;;;AC/DA5B,8BAAc,CAAC,IAAD,EAAOC,SAAP,CAAd;IAyCa4G,UAAU,gBAAGrG,yBAAK,CAACC,UAAN,CACxB,gBAoBEC,GApBF;+BAEIoG;MAAAA,8CAAe;MACflG,gBAAAA;8BACAC;MAAAA,4CAAc;MACdO,gBAAAA;MACAN,iBAAAA;MACAC,aAAAA;MACAQ,aAAAA;MACAwF,oBAAAA;MACAzF,gBAAAA;MACAD,eAAAA;MACAJ,6BAAAA;yBACAC;MAAAA,kCAAS;mCACT8F;MAAAA,sDAAmB,UAACF,YAAD,EAAe9D,KAAf;AAAA,WACjB8D,YAAY,IAAIlG,QAAQ,CAACqG,WAAG,CAACH,YAAD,EAAe;AAAEI,MAAAA,OAAO,EAAE;AAAX,KAAf,CAAJ,EAAqClE,KAArC,CADP;AAAA;mCAEnBmE;MAAAA,uDAAoB,UAACL,YAAD,EAAe9D,KAAf;AAAA,WAClB8D,YAAY,IAAIlG,QAAQ,CAACwG,WAAG,CAACN,YAAD,EAAe;AAAEI,MAAAA,OAAO,EAAE;AAAX,KAAf,CAAJ,EAAqClE,KAArC,CADN;AAAA;MAEjBpB;;AAIL,MAAMyF,YAAY,GAAGhF,iBAAW,CAAC,gBAAD,CAAhC;AACA,SACE7B,uCAAA,CAACoF,oBAAD;AACE7E,IAAAA,KAAK,EAAEA;AACPL,IAAAA,GAAG,EAAEA;AACLa,IAAAA,KAAK,EAAEA;AACPsE,IAAAA,OAAO,EAAEwB;AACTN,IAAAA,YAAY,EAAEA;AACd1F,IAAAA,OAAO,EAAEA;AACTC,IAAAA,QAAQ,EAAEA;AACVL,IAAAA,qBAAqB,EAAEA;AACvBH,IAAAA,SAAS,EAAC;AACVM,IAAAA,QAAQ,EAAEA;AACVD,IAAAA,OAAO,EACLX,uCAAA,CAAC8G,qBAAD;AACEC,MAAAA,SAAS,EAAC;AACVC,MAAAA,QAAQ,EAAE,CAAC;AACX9B,MAAAA,OAAO,EAAE,iBAAC+B,CAAD;AAAA,eAAyBT,gBAAgB,CAACF,YAAD,EAAeW,CAAf,CAAzC;AAAA;AACTrG,MAAAA,QAAQ,EAAEA;KAJZ;GAZJ,EAoBEZ,uCAAA,CAACkH,cAAD;AACEZ,IAAAA,YAAY,EAAEA,YADhB;AAEElG,IAAAA,QAAQ,EAAEA,QAFZ;AAGEC,IAAAA,WAAW,EAAEA,WAHf;AAIEC,IAAAA,SAAS,EAAEA,SAJb;AAKEI,IAAAA,MAAM,EAAEA,MALV;AAME6D,IAAAA,cAAc,EAAEsC,YANlB;AAOEjG,IAAAA,QAAQ,EAAEA;AAPZ,KAQMQ,IARN,EApBF,EA8BEpB,uCAAA,CAAC8G,qBAAD;AACEC,IAAAA,SAAS,EAAC;AACVC,IAAAA,QAAQ,EAAE,CAAC;AACX9B,IAAAA,OAAO,EAAE,iBAAC+B,CAAD;AAAA,aAAyBN,iBAAiB,CAACL,YAAD,EAAeW,CAAf,CAA1C;AAAA;AACTrG,IAAAA,QAAQ,EAAEA;GAJZ,CA9BF,CADF;AAuCD,CA/DuB;AAmF1B,IAAMlB,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,IAAMoH,cAAc,GAAkC,SAAhDA,cAAgD;MACpD5G,kBAAAA;MACAF,iBAAAA;MACAkG,qBAAAA;MACAjG,oBAAAA;+BACA8G;MAAAA,2CAAa;+BACb/C;MAAAA,2CAAa,CAAC,OAAD,EAAU,MAAV;MACVhD;;AAEH,8BACEU,yBAAoB,EADtB;AAAA,MAAkBsF,kBAAlB,yBAAQpF,QAAR;AAAA,MAAiDC,SAAjD,yBAAsCC,SAAtC;;AAGAC,EAAAA,gBAAU,CAAC;AACT,QAAImE,YAAJ,EAAkB;AAChBrE,MAAAA,SAAS,IAAI,CAACmF,kBAAd,IAAoCnF,SAAS,CAAC,IAAD,CAA7C;AACD;AACF,GAJS,CAAV;AAMAjC,EAAAA,yBAAK,CAACsC,SAAN,CAAgB;AACd,QAAIgE,YAAJ,EAAkB;AAChBrE,MAAAA,SAAS,IAAI,CAACmF,kBAAd,IAAoCnF,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAImF,kBAAb,IAAmCnF,SAAS,CAAC,KAAD,CAA5C;AACD;AACF,GAND,EAMG,CAACqE,YAAD,EAAerE,SAAf,EAA0BmF,kBAA1B,CANH;;AAQA,MAAMhF,YAAY,GAAG,SAAfA,YAAe,CAACG,IAAD,EAAYC,KAAZ;AACnB,QAAID,IAAJ,EAAU;AACRN,MAAAA,SAAS,IAAI,CAACmF,kBAAd,IAAoCnF,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAImF,kBAAb,IAAmCnF,SAAS,CAAC,KAAD,CAA5C;AACD;;AACD,QAAI7B,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAACmC,IAAD,EAAOC,KAAP,CAAR;AACD;AACF,GATD;;AAUA,SACExC,uCAAA,CAAC+D,mCAAD;AACEzD,IAAAA,SAAS,EAAE0D,8BAAU,CACnB,kBADmB,EAEnB,uBAFmB,EAGnB1D,SAHmB,CADvB;AAME2D,IAAAA,iBAAiB,EAAC,gBANpB;AAOEC,IAAAA,QAAQ,EAAEoC,YAPZ;AAQElG,IAAAA,QAAQ,EAAEgC,YARZ;AASEgC,IAAAA,UAAU,EAAEA,UATd;AAUE+C,IAAAA,UAAU,EAAEA,UAVd;AAWEE,IAAAA,cAAc,MAXhB;AAYEC,IAAAA,aAAa,EAAE,IAZjB;AAaEC,IAAAA,kBAAkB,MAbpB;AAcElD,IAAAA,eAAe,EAAE,KAdnB;AAeEC,IAAAA,eAAe,EAAEjE,WAfnB;AAgBEmH,IAAAA,eAAe,EAAC,wBAhBlB;AAiBEhD,IAAAA,eAAe,EAAE9E,gBAjBnB;AAkBEkF,IAAAA,IAAI,EAAE;AAlBR,KAmBMxD,IAnBN,EADF;AAuBD,CA3DD;;AAoEA,IAAM0F,qBAAqB,GAAyC,SAA9DA,qBAA8D;MAClEC,kBAAAA;MACG3F;;AAEH,SACEpB,uCAAA,SAAA;AACEM,IAAAA,SAAS,EAAE0D,8BAAU,CACnB,6BADmB,oCAEa+C,SAFb,CADvB;AAKEpB,IAAAA,IAAI,EAAC;AALP,KAMMvE,IANN,GAQG2F,SAAS,KAAK,MAAd,GAAuB/G,uCAAA,CAACyH,mBAAD,MAAA,CAAvB,GAA2CzH,uCAAA,CAAC0H,oBAAD,MAAA,CAR9C,CADF;AAYD,CAhBD;;;;IC7LaC,gBAAgB,gBAAG3H,yBAAK,CAACC,UAAN,CAI9B,gBAYEC,GAZF;MAEII,iBAAAA;MACAC,aAAAA;MACAH,gBAAAA;MACAW,aAAAA;MACAD,gBAAAA;MACAD,eAAAA;MACAJ,6BAAAA;0BACAE;MAAAA,oCAAUX,uCAAA,CAAC4H,eAAD,MAAA;MACPxG;;AAIL,MAAMyG,kBAAkB,GAAGhG,iBAAW,CAAC,sBAAD,CAAtC;AACA,SACE7B,uCAAA,CAACoF,oBAAD;AACE7E,IAAAA,KAAK,EAAEA;AACPD,IAAAA,SAAS,EAAEA;AACXK,IAAAA,OAAO,EAAEA;AACTI,IAAAA,KAAK,EAAEA;AACPD,IAAAA,QAAQ,EAAEA;AACVD,IAAAA,OAAO,EAAEA;AACTwE,IAAAA,OAAO,EAAEwC;AACTpH,IAAAA,qBAAqB,EAAEA;GARzB,EAUET,uCAAA,CAAC8H,oBAAD;AACE1H,IAAAA,QAAQ,EAAEA,QADZ;uBAEmByH,kBAFnB;AAGE3H,IAAAA,GAAG,EAAEA;AAHP,KAIMkB,IAJN,EAVF,CADF;AAmBD,CAtC6B;AAgDhC,IAAM0G,oBAAoB,gBAAG9H,yBAAK,CAACC,UAAN,CAG3B,iBAA+BC,GAA/B;MAAGE,iBAAAA;MAAU4C,cAAAA;MAAU5B;;AACvB,MAAM8E,cAAc,GAAGC,eAAU,EAAjC;AACA,MAAMC,cAAc,GAAGhF,IAAI,CAACP,OAAL,IAAgBqF,cAAvC;;AACA,8BACEpE,yBAAoB,EADtB;AAAA,MAAkBsF,kBAAlB,yBAAQpF,QAAR;AAAA,MAAiDC,SAAjD,yBAAsCC,SAAtC;;AAGAC,EAAAA,gBAAU,CAAC;AACTF,IAAAA,SAAS,IAAI,CAACmF,kBAAd,IAAoCnF,SAAS,CAAC,IAAD,CAA7C;AACD,GAFS,CAAV;AAIAjC,EAAAA,yBAAK,CAACsC,SAAN,CAAgB;AACd,QAAIU,KAAJ,EAAW;AACTf,MAAAA,SAAS,IAAI,CAACmF,kBAAd,IAAoCnF,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAImF,kBAAb,IAAmCnF,SAAS,CAAC,KAAD,CAA5C;AACD;AACF,GAND,EAMG,CAACe,KAAD,EAAQf,SAAR,EAAmBmF,kBAAnB,CANH;;AAQA,MAAMhF,YAAY,GAAG,SAAfA,YAAe,CAACI,KAAD;AACnB,QAAIR,aAAQ,CAACQ,KAAK,CAACO,MAAP,CAAZ,EAA4B;AAC1Bd,MAAAA,SAAS,IAAI,CAACmF,kBAAd,IAAoCnF,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAImF,kBAAb,IAAmCnF,SAAS,CAAC,KAAD,CAA5C;AACD;;AACD,QAAI7B,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAACoC,KAAD,CAAR;AACD;AACF,GATD;;AAUA,SACExC,uCAAA,QAAA;AACEE,IAAAA,GAAG,EAAEA,GADP;oBAEgBkG,cAAc,KAAK,OAFnC;AAGET,IAAAA,IAAI,EAAC,MAHP;AAIErF,IAAAA,SAAS,EAAC,yCAJZ;AAKEF,IAAAA,QAAQ,EAAEgC,YALZ;AAMEY,IAAAA,KAAK,EAAEA;AANT,KAOM5B,IAPN,EADF;AAWD,CA1C4B,CAA7B;;ACzEA2G,4BAAsB,CAAC,YAAD,EAAe,MAAf,EAAuB,OAAvB,CAAtB;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),a=require("react"),t=require("react-datepicker"),n=require("classnames"),l=require("@entur/form"),r=require("@entur/icons"),i=require("date-fns"),d=require("date-fns/locale"),o=require("@entur/tooltip");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=s(a),u=s(t),f=s(n);function m(){return m=Object.assign||function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},m.apply(this,arguments)}function p(e,a){if(null==e)return{};var t,n,l={},r=Object.keys(e);for(n=0;n<r.length;n++)a.indexOf(t=r[n])>=0||(l[t]=e[t]);return l}var b=["selectedDate","onChange","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","feedback","label","hideCalendarButton","hideCalendar","hideFeedback","id"],v=["value","onClick","onFocus","onKeyDown","variant","feedback","style","disableLabelAnimation","disabled","label","readOnly","id","prepend","className","hideCalendarButton","inputId","onKeyDownInput","onBlurInput"];t.registerLocale("nb",d.nb);var y=[{name:"offset",enabled:!0,options:{offset:[0,0]}}],h=c.default.forwardRef((function(t,n){var r=t.selectedDate,o=void 0===r?null:r,s=t.onChange,v=t.placeholder,h=void 0===v?"dd.mm.yyyy":v,C=t.className,g=t.style,w=t.readOnly,N=t.disableLabelAnimation,I=void 0!==N&&N,E=t.locale,F=void 0===E?"nb":E,L=t.prepend,A=t.disabled,O=t.variant,_=void 0===O?"error":O,B=t.feedback,M=void 0===B?"Ugyldig dato":B,T=t.label,x=t.hideCalendarButton,R=void 0!==x&&x,D=t.hideCalendar,q=void 0!==D&&D,P=t.hideFeedback,H=void 0!==P&&P,K=t.id,S=p(t,b),j=a.useState(!1),G=j[0],V=j[1],U=a.useState(""),W=U[0],z=U[1],J=a.useState(""),Q=J[0],X=J[1],Y=e.useRandomId("eds-datepicker"),Z=l.useInputGroupContext(),$=Z.isFilled,ee=Z.setFilled;e.useOnMount((function(){o&&ee&&!$&&ee(!0)})),c.default.useEffect((function(){o?ee&&!$&&ee(!0):ee&&$&&ee(!1)}),[o,ee,$]);var ae=function(e){if(G)V(!1);else{var a=e.target.value;a&&
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),a=require("react"),t=require("react-datepicker"),n=require("classnames"),l=require("@entur/form"),r=require("@entur/icons"),i=require("date-fns"),d=require("date-fns/locale"),o=require("@entur/tooltip");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=s(a),u=s(t),f=s(n);function m(){return m=Object.assign||function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},m.apply(this,arguments)}function p(e,a){if(null==e)return{};var t,n,l={},r=Object.keys(e);for(n=0;n<r.length;n++)a.indexOf(t=r[n])>=0||(l[t]=e[t]);return l}var b=["selectedDate","onChange","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","feedback","label","hideCalendarButton","hideCalendar","hideFeedback","id"],v=["value","onClick","onFocus","onKeyDown","variant","feedback","style","disableLabelAnimation","disabled","label","readOnly","id","prepend","className","hideCalendarButton","inputId","onKeyDownInput","onBlurInput"];t.registerLocale("nb",d.nb);var y=[{name:"offset",enabled:!0,options:{offset:[0,0]}}],h=c.default.forwardRef((function(t,n){var r=t.selectedDate,o=void 0===r?null:r,s=t.onChange,v=t.placeholder,h=void 0===v?"dd.mm.yyyy":v,C=t.className,g=t.style,w=t.readOnly,N=t.disableLabelAnimation,I=void 0!==N&&N,E=t.locale,F=void 0===E?"nb":E,L=t.prepend,A=t.disabled,O=t.variant,_=void 0===O?"error":O,B=t.feedback,M=void 0===B?"Ugyldig dato":B,T=t.label,x=t.hideCalendarButton,R=void 0!==x&&x,D=t.hideCalendar,q=void 0!==D&&D,P=t.hideFeedback,H=void 0!==P&&P,K=t.id,S=p(t,b),j=a.useState(!1),G=j[0],V=j[1],U=a.useState(""),W=U[0],z=U[1],J=a.useState(""),Q=J[0],X=J[1],Y=e.useRandomId("eds-datepicker"),Z=l.useInputGroupContext(),$=Z.isFilled,ee=Z.setFilled;e.useOnMount((function(){o&&(ee&&!$&&ee(!0),ae(o,void 0))})),c.default.useEffect((function(){o?ee&&!$&&ee(!0):ee&&$&&ee(!1)}),[o,ee,$]);var ae=function(e,a){if(e?ee&&!$&&ee(!0):ee&&$&&ee(!1),s){s(e,a);var t=null==e?void 0:e.toLocaleDateString("no-NO",{day:"2-digit",month:"2-digit",year:"numeric"});z(null!=t?t:""),X(null!=t?t:"")}},te=function(e){if(G)V(!1);else{var a=e.target.value;a&&ne(a)}},ne=function(e){var a=i.parse(e,"dd.MM.yyyy",new Date,{locale:d.nb}),t=4===W.slice(W.lastIndexOf(".")+1).length;i.isValid(a)&&t?(V(!1),X(W)):(V(!0),z(Q))};return c.default.createElement(u.default,m({className:f.default(C),calendarClassName:"eds-datepicker__calender",selected:o,onChange:ae,showWeekNumbers:!0,dateFormat:["dd.MM.yyyy","ddMMyyyy","dd/MM/yyyy"],showPopperArrow:!1,placeholderText:h,readOnly:w,id:Y,ariaLabelledBy:Y,disabled:A,locale:F,popperModifiers:y,onBlur:te,onChangeRaw:function(e){V(!1),z(e.target.value)},onCalendarOpen:function(){return V(!1)},value:W,open:!0!==q&&S.open},S,{customInput:c.default.createElement(k,{style:g,readOnly:w,variant:!H&&G?_:"",feedback:!H&&G?M:"",label:T,disabled:A,ref:n,"data-cy":S["data-cy"],disableLabelAnimation:I,prepend:L,hideCalendarButton:R,inputId:K,onKeyDownInput:function(e){"Enter"===e.key&&ne(W)},onBlurInput:te})}))})),k=c.default.forwardRef((function(e,a){var t=e.value,n=e.onClick,i=e.onKeyDown,d=e.variant,s=e.feedback,u=e.style,b=e.disableLabelAnimation,y=e.disabled,h=e.label,k=e.readOnly,C=e.id,g=e.prepend,w=e.className,N=e.hideCalendarButton,I=e.inputId,E=e.onKeyDownInput,F=e.onBlurInput,L=p(e,v);return c.default.createElement("span",{className:w,onBlur:F},c.default.createElement(l.BaseFormControl,{style:u,className:"eds-datepicker__form-control",readOnly:k,label:h,labelId:C,feedback:s,variant:d,disabled:y,disableLabelAnimation:b,isFilled:!!t,prepend:g},c.default.createElement("input",m({value:t,onClick:n,readOnly:k,disabled:y,ref:a,className:"eds-form-control",id:I,onKeyDown:E},L)),!N&&c.default.createElement(o.Tooltip,{placement:"top",content:"Åpne kalender",disableHoverListener:y,disableFocusListener:y},c.default.createElement("button",{className:f.default("eds-datepicker__calendar-button",{"eds-datepicker__calendar-button--open":!0,"eds-datepicker__calendar-button--disabled":y}),onKeyDown:i,onClick:n,disabled:y,type:"button"},c.default.createElement(r.CalendarIcon,null)))))})),C=["className","style","label","onChange","feedback","variant","disableLabelAnimation","prepend"],g=["onChange","variant","value"],w=c.default.forwardRef((function(a,t){var n=a.className,i=a.style,d=a.label,o=a.onChange,s=a.feedback,u=a.variant,f=a.disableLabelAnimation,b=a.prepend,v=void 0===b?c.default.createElement(r.DateIcon,{inline:!0}):b,y=p(a,C),h=e.useRandomId("eds-nativetimepicker");return c.default.createElement(l.BaseFormControl,{style:i,className:n,prepend:v,label:d,feedback:s,variant:u,labelId:h,disableLabelAnimation:f,isFilled:!0},c.default.createElement(N,m({onChange:o,"aria-labelledby":h,ref:t,variant:u},y)))})),N=c.default.forwardRef((function(a,t){var n=a.onChange,r=a.variant,i=a.value,d=p(a,g),o=l.useVariant(),s=r||o,u=l.useInputGroupContext(),f=u.isFilled,b=u.setFilled;return e.useOnMount((function(){b&&!f&&b(!0)})),c.default.useEffect((function(){i?b&&!f&&b(!0):b&&f&&b(!1)}),[i,b,f]),c.default.createElement("input",m({ref:t,"aria-invalid":"error"===s,type:"date",className:"eds-form-control eds-native-date-picker",onChange:function(e){l.isFilled(e.target)?b&&!f&&b(!0):b&&f&&b(!1),n&&n(e)},value:i},d))})),I=["selectedTime","onChange","placeholder","disabled","className","style","label","labelTooltip","feedback","variant","disableLabelAnimation","locale","onLeftArrowClick","onRightArrowClick"],E=["className","onChange","selectedTime","placeholder","timeFormat","dateFormat"],F=["direction"];t.registerLocale("nb",d.nb);var L=c.default.forwardRef((function(a,t){var n=a.selectedTime,r=void 0===n?null:n,d=a.onChange,o=a.placeholder,s=void 0===o?"Velg tid":o,u=a.disabled,f=a.className,b=a.style,v=a.label,y=a.labelTooltip,h=a.feedback,k=a.variant,C=a.disableLabelAnimation,g=a.locale,w=void 0===g?"nb":g,N=a.onLeftArrowClick,E=void 0===N?function(e,a){return e&&d(i.sub(e,{minutes:30}),a)}:N,F=a.onRightArrowClick,L=void 0===F?function(e,a){return e&&d(i.add(e,{minutes:30}),a)}:F,A=p(a,I),B=e.useRandomId("eds-timepicker");return c.default.createElement(l.BaseFormControl,{style:b,ref:t,label:v,labelId:B,labelTooltip:y,variant:k,feedback:h,disableLabelAnimation:C,className:"eds-timepicker-form-control",disabled:u,prepend:c.default.createElement(_,{direction:"left",tabIndex:-1,onClick:function(e){return E(r,e)},disabled:u})},c.default.createElement(O,m({selectedTime:r,onChange:d,placeholder:s,className:f,locale:w,ariaLabelledBy:B,disabled:u},A)),c.default.createElement(_,{direction:"right",tabIndex:-1,onClick:function(e){return L(r,e)},disabled:u}))})),A=[{name:"offset",enabled:!0,options:{offset:[0,0]}}],O=function(a){var t=a.className,n=a.onChange,r=a.selectedTime,i=a.placeholder,d=a.timeFormat,o=void 0===d?"HH:mm":d,s=a.dateFormat,b=void 0===s?["HH:mm","HHmm"]:s,v=p(a,E),y=l.useInputGroupContext(),h=y.isFilled,k=y.setFilled;return e.useOnMount((function(){r&&k&&!h&&k(!0)})),c.default.useEffect((function(){r?k&&!h&&k(!0):k&&h&&k(!1)}),[r,k,h]),c.default.createElement(u.default,m({className:f.default("eds-form-control","eds-timepicker__input",t),calendarClassName:"eds-timepicker",selected:r,onChange:function(e,a){e?k&&!h&&k(!0):k&&h&&k(!1),n&&n(e,a)},dateFormat:b,timeFormat:o,showTimeSelect:!0,showTimeInput:!0,showTimeSelectOnly:!0,showPopperArrow:!1,placeholderText:i,popperClassName:"eds-datepicker__popper",popperModifiers:A,open:!1},v))},_=function(e){var a=e.direction,t=p(e,F);return c.default.createElement("button",m({className:f.default("eds-timepicker__arrowbutton","eds-timepicker__arrowbutton--"+a),type:"button"},t),c.default.createElement("left"===a?r.LeftArrowIcon:r.RightArrowIcon,null))},B=["className","style","onChange","label","feedback","variant","disableLabelAnimation","prepend"],M=["onChange","value"],T=c.default.forwardRef((function(a,t){var n=a.className,i=a.style,d=a.onChange,o=a.label,s=a.feedback,u=a.variant,f=a.disableLabelAnimation,b=a.prepend,v=void 0===b?c.default.createElement(r.ClockIcon,null):b,y=p(a,B),h=e.useRandomId("eds-nativetimepicker");return c.default.createElement(l.BaseFormControl,{style:i,className:n,prepend:v,label:o,feedback:s,variant:u,labelId:h,disableLabelAnimation:f},c.default.createElement(x,m({onChange:d,"aria-labelledby":h,ref:t},y)))})),x=c.default.forwardRef((function(a,t){var n=a.onChange,r=a.value,i=p(a,M),d=l.useVariant(),o=i.variant||d,s=l.useInputGroupContext(),u=s.isFilled,f=s.setFilled;return e.useOnMount((function(){f&&!u&&f(!0)})),c.default.useEffect((function(){r?f&&!u&&f(!0):f&&u&&f(!1)}),[r,f,u]),c.default.createElement("input",m({ref:t,"aria-invalid":"error"===o,type:"time",className:"eds-form-control eds-native-date-picker",onChange:function(e){l.isFilled(e.target)?f&&!u&&f(!0):f&&u&&f(!1),n&&n(e)},value:r},i))}));e.warnAboutMissingStyles("datepicker","form","icons"),exports.DatePicker=h,exports.NativeDatePicker=w,exports.NativeTimePicker=T,exports.TimePicker=L;
|
|
2
2
|
//# sourceMappingURL=datepicker.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.cjs.production.min.js","sources":["../src/DatePicker.tsx","../src/NativeDatePicker.tsx","../src/TimePicker.tsx","../src/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React, { useState } 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 { CalendarIcon } from '@entur/icons';\nimport { parse, isValid } from 'date-fns';\nimport { nb } from 'date-fns/locale';\nimport './DatePicker.scss';\nimport { Tooltip } from '@entur/tooltip';\nimport { useOnMount, useRandomId } from '@entur/utils';\nimport * as Popper from '@popperjs/core';\n\nregisterLocale('nb', nb);\n\nexport type DatePickerProps = {\n /** Hva som er den valgte datoen */\n selectedDate?: 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 \"dd.mm.yyyy\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over DatePicker */\n label: string;\n /** Varselmelding, som vil komme under DatePicker\n * @default \"Ugyldig dato\"\n */\n feedback?: string;\n /** Valideringsvariant\n * @default \"error\"\n */\n variant?: 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 /** 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 hideFeedback?: boolean;\n /** Skjuler kalender-GUI-et\n * @default false\n */\n hideCalendar?: boolean;\n // For testing\n 'data-cy'?: any;\n} & Omit<ReactDatePickerProps, 'selected' | 'customInput'>;\nconst POPPER_MODIFIERS: Popper.StrictModifiers[] = [\n {\n name: 'offset',\n enabled: true,\n options: {\n offset: [0, 0],\n },\n },\n];\n\nexport const DatePicker = React.forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n selectedDate = null,\n onChange,\n placeholder = 'dd.mm.yyyy',\n className,\n style,\n readOnly,\n disableLabelAnimation = false,\n locale = 'nb',\n prepend,\n disabled,\n variant = 'error',\n feedback = 'Ugyldig dato',\n label,\n hideCalendarButton = false,\n hideCalendar = false,\n hideFeedback = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const [showFeedback, setShowFeedback] = useState(false);\n const [currentValue, setCurrentValue] = useState('');\n const [lastValidValue, setLastValidValue] = useState('');\n\n const datepickerId = useRandomId('eds-datepicker');\n const { isFilled: isDatepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n }\n });\n\n React.useEffect(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n }, [selectedDate, setFiller, isDatepickerFilled]);\n\n const handleChange = (\n date: any,\n event: React.SyntheticEvent<any> | undefined,\n ) => {\n if (date) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(date, event);\n const dateString = date?.toLocaleDateString('no-NO', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n });\n setCurrentValue(dateString ?? '');\n setLastValidValue(dateString ?? '');\n }\n };\n\n const handleChangeRaw = (event: React.FocusEvent<HTMLInputElement>) => {\n setShowFeedback(false);\n setCurrentValue(event.target.value);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (showFeedback) {\n setShowFeedback(false);\n } else {\n const inputValue = event.target.value;\n if (inputValue) validateInput(inputValue);\n }\n };\n\n const handleKeyDownInput = (\n event: React.KeyboardEvent<HTMLInputElement>,\n ) => {\n if (event.key === 'Enter') validateInput(currentValue);\n };\n\n const validateInput = (inputValue: string) => {\n const parsedDate = parse(inputValue, 'dd.MM.yyyy', new Date(), {\n locale: nb,\n });\n\n const yearIsFourCharacters =\n currentValue.slice(currentValue.lastIndexOf('.') + 1).length === 4;\n const isValidDate = isValid(parsedDate) && yearIsFourCharacters;\n\n if (!isValidDate) {\n setShowFeedback(true);\n setCurrentValue(lastValidValue);\n } else {\n setShowFeedback(false);\n setLastValidValue(currentValue);\n }\n };\n\n return (\n <ReactDatepicker\n className={classNames(className)}\n calendarClassName=\"eds-datepicker__calender\"\n selected={selectedDate}\n onChange={handleChange}\n showWeekNumbers={true}\n dateFormat={['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy']}\n showPopperArrow={false}\n placeholderText={placeholder}\n readOnly={readOnly}\n id={datepickerId}\n ariaLabelledBy={datepickerId}\n disabled={disabled}\n locale={locale}\n popperModifiers={POPPER_MODIFIERS}\n onBlur={handleBlur}\n onChangeRaw={handleChangeRaw}\n onCalendarOpen={() => setShowFeedback(false)}\n value={currentValue}\n open={hideCalendar === true ? false : rest.open}\n {...rest}\n customInput={\n <DatePickerInput\n style={style}\n readOnly={readOnly}\n variant={!hideFeedback && showFeedback ? variant : ''}\n feedback={!hideFeedback && showFeedback ? feedback : ''}\n label={label}\n disabled={disabled}\n ref={ref}\n data-cy={rest['data-cy']}\n disableLabelAnimation={disableLabelAnimation}\n prepend={prepend}\n hideCalendarButton={hideCalendarButton}\n inputId={id}\n onKeyDownInput={handleKeyDownInput}\n onBlurInput={handleBlur}\n />\n }\n />\n );\n },\n);\n\ntype DatePickerInputProps = {\n onClick?: any;\n value?: any;\n disableLabelAnimation?: boolean;\n className?: string;\n hideCalendarButton?: boolean;\n feedback?: string;\n inputId?: string;\n [key: string]: any;\n};\n// Props fra customInput i react-datepicker\n// value: inputValue,\n// onBlur: this.handleBlur,\n// onChange: this.handleChange,\n// onClick: this.onInputClick,\n// onFocus: this.handleFocus,\n// onKeyDown: this.onInputKeyDown,\n// id: this.props.id,\n// name: this.props.name,\n// autoFocus: this.props.autoFocus,\n// placeholder: this.props.placeholderText,\n// disabled: this.props.disabled,\n// autoComplete: this.props.autoComplete,\n// className: classnames(customInput.props.className, className),\n// title: this.props.title,\n// readOnly: this.props.readOnly,\n// required: this.props.required,\n// tabIndex: this.props.tabIndex,\n// \"aria-describedby\": this.props.ariaDescribedBy,\n// \"aria-invalid\": this.props.ariaInvalid,\n// \"aria-labelledby\": this.props.ariaLabelledBy,\n// \"aria-required\": this.props.ariaRequired,\n\nconst DatePickerInput = React.forwardRef<\n HTMLInputElement,\n DatePickerInputProps\n>(\n (\n {\n value,\n onClick,\n // Capture onFocus prop from react-datepicker, but doesn't use it\n // eslint-disable-next-line\n onFocus,\n onKeyDown,\n variant,\n feedback,\n style,\n disableLabelAnimation,\n disabled,\n label,\n readOnly,\n id,\n prepend,\n className,\n hideCalendarButton,\n inputId,\n onKeyDownInput,\n onBlurInput,\n ...rest\n },\n ref,\n ) => {\n return (\n <span className={className} onBlur={onBlurInput}>\n <BaseFormControl\n style={style}\n className=\"eds-datepicker__form-control\"\n readOnly={readOnly}\n label={label}\n labelId={id}\n feedback={feedback}\n variant={variant}\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\n isFilled={value ? true : false}\n prepend={prepend}\n >\n <input\n value={value}\n onClick={onClick}\n readOnly={readOnly}\n disabled={disabled}\n ref={ref}\n // aria-labelledby={id}\n className=\"eds-form-control\"\n id={inputId}\n onKeyDown={onKeyDownInput}\n {...rest}\n />\n {!hideCalendarButton && (\n <Tooltip\n placement=\"top\"\n content=\"Åpne kalender\"\n disableHoverListener={disabled}\n disableFocusListener={disabled}\n >\n <button\n className={classNames('eds-datepicker__calendar-button', {\n 'eds-datepicker__calendar-button--open': true,\n 'eds-datepicker__calendar-button--disabled': disabled,\n })}\n onKeyDown={onKeyDown}\n onClick={onClick}\n disabled={disabled}\n type=\"button\"\n >\n <CalendarIcon />\n </button>\n </Tooltip>\n )}\n </BaseFormControl>\n </span>\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\nimport './react-datepicker.scss';\n\nwarnAboutMissingStyles('datepicker', 'form', 'icons');\n\nexport * from './DatePicker';\nexport * from './NativeDatePicker';\nexport * from './TimePicker';\nexport * from './NativeTimePicker';\n"],"names":["registerLocale","nb","POPPER_MODIFIERS","name","enabled","options","offset","DatePicker","React","forwardRef","ref","selectedDate","onChange","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","feedback","label","hideCalendarButton","hideCalendar","hideFeedback","id","rest","useState","showFeedback","setShowFeedback","currentValue","setCurrentValue","lastValidValue","setLastValidValue","datepickerId","useRandomId","useInputGroupContext","isDatepickerFilled","isFilled","setFiller","setFilled","useOnMount","useEffect","handleBlur","event","inputValue","target","value","validateInput","parsedDate","parse","Date","yearIsFourCharacters","slice","lastIndexOf","length","isValid","ReactDatepicker","classNames","calendarClassName","selected","date","dateString","toLocaleDateString","day","month","year","showWeekNumbers","dateFormat","showPopperArrow","placeholderText","ariaLabelledBy","popperModifiers","onBlur","onChangeRaw","onCalendarOpen","open","customInput","DatePickerInput","inputId","onKeyDownInput","key","onBlurInput","onClick","onKeyDown","BaseFormControl","labelId","Tooltip","placement","content","disableHoverListener","disableFocusListener","type","CalendarIcon","NativeDatePicker","DateIcon","inline","nativedatepickerId","NativeDatePickerBase","contextVariant","useVariant","currentVariant","TimePicker","selectedTime","labelTooltip","onLeftArrowClick","sub","minutes","onRightArrowClick","add","timepickerId","TimePickerArrowButton","direction","tabIndex","e","TimePickerBase","timeFormat","isTimepickerFilled","showTimeSelect","showTimeInput","showTimeSelectOnly","popperClassName","LeftArrowIcon","RightArrowIcon","NativeTimePicker","ClockIcon","nativetimepickerId","NativeTimePickerBase","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datepicker.cjs.production.min.js","sources":["../src/DatePicker.tsx","../src/NativeDatePicker.tsx","../src/TimePicker.tsx","../src/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React, { useState } 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 { CalendarIcon } from '@entur/icons';\nimport { parse, isValid } from 'date-fns';\nimport { nb } from 'date-fns/locale';\nimport './DatePicker.scss';\nimport { Tooltip } from '@entur/tooltip';\nimport { useOnMount, useRandomId } from '@entur/utils';\nimport * as Popper from '@popperjs/core';\n\nregisterLocale('nb', nb);\n\nexport type DatePickerProps = {\n /** Hva som er den valgte datoen */\n selectedDate?: 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 \"dd.mm.yyyy\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over DatePicker */\n label: string;\n /** Varselmelding, som vil komme under DatePicker\n * @default \"Ugyldig dato\"\n */\n feedback?: string;\n /** Valideringsvariant\n * @default \"error\"\n */\n variant?: 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 /** 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 hideFeedback?: boolean;\n /** Skjuler kalender-GUI-et\n * @default false\n */\n hideCalendar?: boolean;\n // For testing\n 'data-cy'?: any;\n} & Omit<ReactDatePickerProps, 'selected' | 'customInput'>;\nconst POPPER_MODIFIERS: Popper.StrictModifiers[] = [\n {\n name: 'offset',\n enabled: true,\n options: {\n offset: [0, 0],\n },\n },\n];\n\nexport const DatePicker = React.forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n selectedDate = null,\n onChange,\n placeholder = 'dd.mm.yyyy',\n className,\n style,\n readOnly,\n disableLabelAnimation = false,\n locale = 'nb',\n prepend,\n disabled,\n variant = 'error',\n feedback = 'Ugyldig dato',\n label,\n hideCalendarButton = false,\n hideCalendar = false,\n hideFeedback = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const [showFeedback, setShowFeedback] = useState(false);\n const [currentValue, setCurrentValue] = useState('');\n const [lastValidValue, setLastValidValue] = useState('');\n\n const datepickerId = useRandomId('eds-datepicker');\n const { isFilled: isDatepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n handleChange(selectedDate, undefined);\n }\n });\n\n React.useEffect(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n }, [selectedDate, setFiller, isDatepickerFilled]);\n\n const handleChange = (\n date: any,\n event: React.SyntheticEvent<any> | undefined,\n ) => {\n if (date) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(date, event);\n const dateString = date?.toLocaleDateString('no-NO', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n });\n setCurrentValue(dateString ?? '');\n setLastValidValue(dateString ?? '');\n }\n };\n\n const handleChangeRaw = (event: React.FocusEvent<HTMLInputElement>) => {\n setShowFeedback(false);\n setCurrentValue(event.target.value);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (showFeedback) {\n setShowFeedback(false);\n } else {\n const inputValue = event.target.value;\n if (inputValue) validateInput(inputValue);\n }\n };\n\n const handleKeyDownInput = (\n event: React.KeyboardEvent<HTMLInputElement>,\n ) => {\n if (event.key === 'Enter') validateInput(currentValue);\n };\n\n const validateInput = (inputValue: string) => {\n const parsedDate = parse(inputValue, 'dd.MM.yyyy', new Date(), {\n locale: nb,\n });\n\n const yearIsFourCharacters =\n currentValue.slice(currentValue.lastIndexOf('.') + 1).length === 4;\n const isValidDate = isValid(parsedDate) && yearIsFourCharacters;\n\n if (!isValidDate) {\n setShowFeedback(true);\n setCurrentValue(lastValidValue);\n } else {\n setShowFeedback(false);\n setLastValidValue(currentValue);\n }\n };\n\n return (\n <ReactDatepicker\n className={classNames(className)}\n calendarClassName=\"eds-datepicker__calender\"\n selected={selectedDate}\n onChange={handleChange}\n showWeekNumbers={true}\n dateFormat={['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy']}\n showPopperArrow={false}\n placeholderText={placeholder}\n readOnly={readOnly}\n id={datepickerId}\n ariaLabelledBy={datepickerId}\n disabled={disabled}\n locale={locale}\n popperModifiers={POPPER_MODIFIERS}\n onBlur={handleBlur}\n onChangeRaw={handleChangeRaw}\n onCalendarOpen={() => setShowFeedback(false)}\n value={currentValue}\n open={hideCalendar === true ? false : rest.open}\n {...rest}\n customInput={\n <DatePickerInput\n style={style}\n readOnly={readOnly}\n variant={!hideFeedback && showFeedback ? variant : ''}\n feedback={!hideFeedback && showFeedback ? feedback : ''}\n label={label}\n disabled={disabled}\n ref={ref}\n data-cy={rest['data-cy']}\n disableLabelAnimation={disableLabelAnimation}\n prepend={prepend}\n hideCalendarButton={hideCalendarButton}\n inputId={id}\n onKeyDownInput={handleKeyDownInput}\n onBlurInput={handleBlur}\n />\n }\n />\n );\n },\n);\n\ntype DatePickerInputProps = {\n onClick?: any;\n value?: any;\n disableLabelAnimation?: boolean;\n className?: string;\n hideCalendarButton?: boolean;\n feedback?: string;\n inputId?: string;\n [key: string]: any;\n};\n// Props fra customInput i react-datepicker\n// value: inputValue,\n// onBlur: this.handleBlur,\n// onChange: this.handleChange,\n// onClick: this.onInputClick,\n// onFocus: this.handleFocus,\n// onKeyDown: this.onInputKeyDown,\n// id: this.props.id,\n// name: this.props.name,\n// autoFocus: this.props.autoFocus,\n// placeholder: this.props.placeholderText,\n// disabled: this.props.disabled,\n// autoComplete: this.props.autoComplete,\n// className: classnames(customInput.props.className, className),\n// title: this.props.title,\n// readOnly: this.props.readOnly,\n// required: this.props.required,\n// tabIndex: this.props.tabIndex,\n// \"aria-describedby\": this.props.ariaDescribedBy,\n// \"aria-invalid\": this.props.ariaInvalid,\n// \"aria-labelledby\": this.props.ariaLabelledBy,\n// \"aria-required\": this.props.ariaRequired,\n\nconst DatePickerInput = React.forwardRef<\n HTMLInputElement,\n DatePickerInputProps\n>(\n (\n {\n value,\n onClick,\n // Capture onFocus prop from react-datepicker, but doesn't use it\n // eslint-disable-next-line\n onFocus,\n onKeyDown,\n variant,\n feedback,\n style,\n disableLabelAnimation,\n disabled,\n label,\n readOnly,\n id,\n prepend,\n className,\n hideCalendarButton,\n inputId,\n onKeyDownInput,\n onBlurInput,\n ...rest\n },\n ref,\n ) => {\n return (\n <span className={className} onBlur={onBlurInput}>\n <BaseFormControl\n style={style}\n className=\"eds-datepicker__form-control\"\n readOnly={readOnly}\n label={label}\n labelId={id}\n feedback={feedback}\n variant={variant}\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\n isFilled={value ? true : false}\n prepend={prepend}\n >\n <input\n value={value}\n onClick={onClick}\n readOnly={readOnly}\n disabled={disabled}\n ref={ref}\n // aria-labelledby={id}\n className=\"eds-form-control\"\n id={inputId}\n onKeyDown={onKeyDownInput}\n {...rest}\n />\n {!hideCalendarButton && (\n <Tooltip\n placement=\"top\"\n content=\"Åpne kalender\"\n disableHoverListener={disabled}\n disableFocusListener={disabled}\n >\n <button\n className={classNames('eds-datepicker__calendar-button', {\n 'eds-datepicker__calendar-button--open': true,\n 'eds-datepicker__calendar-button--disabled': disabled,\n })}\n onKeyDown={onKeyDown}\n onClick={onClick}\n disabled={disabled}\n type=\"button\"\n >\n <CalendarIcon />\n </button>\n </Tooltip>\n )}\n </BaseFormControl>\n </span>\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\nimport './react-datepicker.scss';\n\nwarnAboutMissingStyles('datepicker', 'form', 'icons');\n\nexport * from './DatePicker';\nexport * from './NativeDatePicker';\nexport * from './TimePicker';\nexport * from './NativeTimePicker';\n"],"names":["registerLocale","nb","POPPER_MODIFIERS","name","enabled","options","offset","DatePicker","React","forwardRef","ref","selectedDate","onChange","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","feedback","label","hideCalendarButton","hideCalendar","hideFeedback","id","rest","useState","showFeedback","setShowFeedback","currentValue","setCurrentValue","lastValidValue","setLastValidValue","datepickerId","useRandomId","useInputGroupContext","isDatepickerFilled","isFilled","setFiller","setFilled","useOnMount","handleChange","undefined","useEffect","date","event","dateString","toLocaleDateString","day","month","year","handleBlur","inputValue","target","value","validateInput","parsedDate","parse","Date","yearIsFourCharacters","slice","lastIndexOf","length","isValid","ReactDatepicker","classNames","calendarClassName","selected","showWeekNumbers","dateFormat","showPopperArrow","placeholderText","ariaLabelledBy","popperModifiers","onBlur","onChangeRaw","onCalendarOpen","open","customInput","DatePickerInput","inputId","onKeyDownInput","key","onBlurInput","onClick","onKeyDown","BaseFormControl","labelId","Tooltip","placement","content","disableHoverListener","disableFocusListener","type","CalendarIcon","NativeDatePicker","DateIcon","inline","nativedatepickerId","NativeDatePickerBase","contextVariant","useVariant","currentVariant","TimePicker","selectedTime","labelTooltip","onLeftArrowClick","sub","minutes","onRightArrowClick","add","timepickerId","TimePickerArrowButton","direction","tabIndex","e","TimePickerBase","timeFormat","isTimepickerFilled","showTimeSelect","showTimeInput","showTimeSelectOnly","popperClassName","LeftArrowIcon","RightArrowIcon","NativeTimePicker","ClockIcon","nativetimepickerId","NativeTimePickerBase","warnAboutMissingStyles"],"mappings":"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"}
|
package/dist/datepicker.esm.js
CHANGED
|
@@ -101,6 +101,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
101
101
|
useOnMount(function () {
|
|
102
102
|
if (selectedDate) {
|
|
103
103
|
setFiller && !isDatepickerFilled && setFiller(true);
|
|
104
|
+
handleChange(selectedDate, undefined);
|
|
104
105
|
}
|
|
105
106
|
});
|
|
106
107
|
React.useEffect(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.esm.js","sources":["../src/DatePicker.tsx","../src/NativeDatePicker.tsx","../src/TimePicker.tsx","../src/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React, { useState } 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 { CalendarIcon } from '@entur/icons';\nimport { parse, isValid } from 'date-fns';\nimport { nb } from 'date-fns/locale';\nimport './DatePicker.scss';\nimport { Tooltip } from '@entur/tooltip';\nimport { useOnMount, useRandomId } from '@entur/utils';\nimport * as Popper from '@popperjs/core';\n\nregisterLocale('nb', nb);\n\nexport type DatePickerProps = {\n /** Hva som er den valgte datoen */\n selectedDate?: 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 \"dd.mm.yyyy\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over DatePicker */\n label: string;\n /** Varselmelding, som vil komme under DatePicker\n * @default \"Ugyldig dato\"\n */\n feedback?: string;\n /** Valideringsvariant\n * @default \"error\"\n */\n variant?: 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 /** 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 hideFeedback?: boolean;\n /** Skjuler kalender-GUI-et\n * @default false\n */\n hideCalendar?: boolean;\n // For testing\n 'data-cy'?: any;\n} & Omit<ReactDatePickerProps, 'selected' | 'customInput'>;\nconst POPPER_MODIFIERS: Popper.StrictModifiers[] = [\n {\n name: 'offset',\n enabled: true,\n options: {\n offset: [0, 0],\n },\n },\n];\n\nexport const DatePicker = React.forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n selectedDate = null,\n onChange,\n placeholder = 'dd.mm.yyyy',\n className,\n style,\n readOnly,\n disableLabelAnimation = false,\n locale = 'nb',\n prepend,\n disabled,\n variant = 'error',\n feedback = 'Ugyldig dato',\n label,\n hideCalendarButton = false,\n hideCalendar = false,\n hideFeedback = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const [showFeedback, setShowFeedback] = useState(false);\n const [currentValue, setCurrentValue] = useState('');\n const [lastValidValue, setLastValidValue] = useState('');\n\n const datepickerId = useRandomId('eds-datepicker');\n const { isFilled: isDatepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n }\n });\n\n React.useEffect(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n }, [selectedDate, setFiller, isDatepickerFilled]);\n\n const handleChange = (\n date: any,\n event: React.SyntheticEvent<any> | undefined,\n ) => {\n if (date) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(date, event);\n const dateString = date?.toLocaleDateString('no-NO', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n });\n setCurrentValue(dateString ?? '');\n setLastValidValue(dateString ?? '');\n }\n };\n\n const handleChangeRaw = (event: React.FocusEvent<HTMLInputElement>) => {\n setShowFeedback(false);\n setCurrentValue(event.target.value);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (showFeedback) {\n setShowFeedback(false);\n } else {\n const inputValue = event.target.value;\n if (inputValue) validateInput(inputValue);\n }\n };\n\n const handleKeyDownInput = (\n event: React.KeyboardEvent<HTMLInputElement>,\n ) => {\n if (event.key === 'Enter') validateInput(currentValue);\n };\n\n const validateInput = (inputValue: string) => {\n const parsedDate = parse(inputValue, 'dd.MM.yyyy', new Date(), {\n locale: nb,\n });\n\n const yearIsFourCharacters =\n currentValue.slice(currentValue.lastIndexOf('.') + 1).length === 4;\n const isValidDate = isValid(parsedDate) && yearIsFourCharacters;\n\n if (!isValidDate) {\n setShowFeedback(true);\n setCurrentValue(lastValidValue);\n } else {\n setShowFeedback(false);\n setLastValidValue(currentValue);\n }\n };\n\n return (\n <ReactDatepicker\n className={classNames(className)}\n calendarClassName=\"eds-datepicker__calender\"\n selected={selectedDate}\n onChange={handleChange}\n showWeekNumbers={true}\n dateFormat={['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy']}\n showPopperArrow={false}\n placeholderText={placeholder}\n readOnly={readOnly}\n id={datepickerId}\n ariaLabelledBy={datepickerId}\n disabled={disabled}\n locale={locale}\n popperModifiers={POPPER_MODIFIERS}\n onBlur={handleBlur}\n onChangeRaw={handleChangeRaw}\n onCalendarOpen={() => setShowFeedback(false)}\n value={currentValue}\n open={hideCalendar === true ? false : rest.open}\n {...rest}\n customInput={\n <DatePickerInput\n style={style}\n readOnly={readOnly}\n variant={!hideFeedback && showFeedback ? variant : ''}\n feedback={!hideFeedback && showFeedback ? feedback : ''}\n label={label}\n disabled={disabled}\n ref={ref}\n data-cy={rest['data-cy']}\n disableLabelAnimation={disableLabelAnimation}\n prepend={prepend}\n hideCalendarButton={hideCalendarButton}\n inputId={id}\n onKeyDownInput={handleKeyDownInput}\n onBlurInput={handleBlur}\n />\n }\n />\n );\n },\n);\n\ntype DatePickerInputProps = {\n onClick?: any;\n value?: any;\n disableLabelAnimation?: boolean;\n className?: string;\n hideCalendarButton?: boolean;\n feedback?: string;\n inputId?: string;\n [key: string]: any;\n};\n// Props fra customInput i react-datepicker\n// value: inputValue,\n// onBlur: this.handleBlur,\n// onChange: this.handleChange,\n// onClick: this.onInputClick,\n// onFocus: this.handleFocus,\n// onKeyDown: this.onInputKeyDown,\n// id: this.props.id,\n// name: this.props.name,\n// autoFocus: this.props.autoFocus,\n// placeholder: this.props.placeholderText,\n// disabled: this.props.disabled,\n// autoComplete: this.props.autoComplete,\n// className: classnames(customInput.props.className, className),\n// title: this.props.title,\n// readOnly: this.props.readOnly,\n// required: this.props.required,\n// tabIndex: this.props.tabIndex,\n// \"aria-describedby\": this.props.ariaDescribedBy,\n// \"aria-invalid\": this.props.ariaInvalid,\n// \"aria-labelledby\": this.props.ariaLabelledBy,\n// \"aria-required\": this.props.ariaRequired,\n\nconst DatePickerInput = React.forwardRef<\n HTMLInputElement,\n DatePickerInputProps\n>(\n (\n {\n value,\n onClick,\n // Capture onFocus prop from react-datepicker, but doesn't use it\n // eslint-disable-next-line\n onFocus,\n onKeyDown,\n variant,\n feedback,\n style,\n disableLabelAnimation,\n disabled,\n label,\n readOnly,\n id,\n prepend,\n className,\n hideCalendarButton,\n inputId,\n onKeyDownInput,\n onBlurInput,\n ...rest\n },\n ref,\n ) => {\n return (\n <span className={className} onBlur={onBlurInput}>\n <BaseFormControl\n style={style}\n className=\"eds-datepicker__form-control\"\n readOnly={readOnly}\n label={label}\n labelId={id}\n feedback={feedback}\n variant={variant}\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\n isFilled={value ? true : false}\n prepend={prepend}\n >\n <input\n value={value}\n onClick={onClick}\n readOnly={readOnly}\n disabled={disabled}\n ref={ref}\n // aria-labelledby={id}\n className=\"eds-form-control\"\n id={inputId}\n onKeyDown={onKeyDownInput}\n {...rest}\n />\n {!hideCalendarButton && (\n <Tooltip\n placement=\"top\"\n content=\"Åpne kalender\"\n disableHoverListener={disabled}\n disableFocusListener={disabled}\n >\n <button\n className={classNames('eds-datepicker__calendar-button', {\n 'eds-datepicker__calendar-button--open': true,\n 'eds-datepicker__calendar-button--disabled': disabled,\n })}\n onKeyDown={onKeyDown}\n onClick={onClick}\n disabled={disabled}\n type=\"button\"\n >\n <CalendarIcon />\n </button>\n </Tooltip>\n )}\n </BaseFormControl>\n </span>\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\nimport './react-datepicker.scss';\n\nwarnAboutMissingStyles('datepicker', 'form', 'icons');\n\nexport * from './DatePicker';\nexport * from './NativeDatePicker';\nexport * from './TimePicker';\nexport * from './NativeTimePicker';\n"],"names":["registerLocale","nb","POPPER_MODIFIERS","name","enabled","options","offset","DatePicker","React","forwardRef","ref","selectedDate","onChange","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","feedback","label","hideCalendarButton","hideCalendar","hideFeedback","id","rest","useState","showFeedback","setShowFeedback","currentValue","setCurrentValue","lastValidValue","setLastValidValue","datepickerId","useRandomId","useInputGroupContext","isDatepickerFilled","isFilled","setFiller","setFilled","useOnMount","useEffect","handleChange","date","event","dateString","toLocaleDateString","day","month","year","handleChangeRaw","target","value","handleBlur","inputValue","validateInput","handleKeyDownInput","key","parsedDate","parse","Date","yearIsFourCharacters","slice","lastIndexOf","length","isValidDate","isValid","ReactDatepicker","classNames","calendarClassName","selected","showWeekNumbers","dateFormat","showPopperArrow","placeholderText","ariaLabelledBy","popperModifiers","onBlur","onChangeRaw","onCalendarOpen","open","customInput","DatePickerInput","inputId","onKeyDownInput","onBlurInput","onClick","onKeyDown","BaseFormControl","labelId","Tooltip","placement","content","disableHoverListener","disableFocusListener","type","CalendarIcon","NativeDatePicker","DateIcon","inline","nativedatepickerId","NativeDatePickerBase","contextVariant","useVariant","currentVariant","TimePicker","selectedTime","labelTooltip","onLeftArrowClick","sub","minutes","onRightArrowClick","add","timepickerId","TimePickerArrowButton","direction","tabIndex","e","TimePickerBase","timeFormat","isTimepickerFilled","showTimeSelect","showTimeInput","showTimeSelectOnly","popperClassName","LeftArrowIcon","RightArrowIcon","NativeTimePicker","ClockIcon","nativetimepickerId","NativeTimePickerBase","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datepicker.esm.js","sources":["../src/DatePicker.tsx","../src/NativeDatePicker.tsx","../src/TimePicker.tsx","../src/NativeTimePicker.tsx","../src/index.tsx"],"sourcesContent":["import React, { useState } 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 { CalendarIcon } from '@entur/icons';\nimport { parse, isValid } from 'date-fns';\nimport { nb } from 'date-fns/locale';\nimport './DatePicker.scss';\nimport { Tooltip } from '@entur/tooltip';\nimport { useOnMount, useRandomId } from '@entur/utils';\nimport * as Popper from '@popperjs/core';\n\nregisterLocale('nb', nb);\n\nexport type DatePickerProps = {\n /** Hva som er den valgte datoen */\n selectedDate?: 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 \"dd.mm.yyyy\"\n */\n placeholder?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over DatePicker */\n label: string;\n /** Varselmelding, som vil komme under DatePicker\n * @default \"Ugyldig dato\"\n */\n feedback?: string;\n /** Valideringsvariant\n * @default \"error\"\n */\n variant?: 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 /** 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 hideFeedback?: boolean;\n /** Skjuler kalender-GUI-et\n * @default false\n */\n hideCalendar?: boolean;\n // For testing\n 'data-cy'?: any;\n} & Omit<ReactDatePickerProps, 'selected' | 'customInput'>;\nconst POPPER_MODIFIERS: Popper.StrictModifiers[] = [\n {\n name: 'offset',\n enabled: true,\n options: {\n offset: [0, 0],\n },\n },\n];\n\nexport const DatePicker = React.forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n selectedDate = null,\n onChange,\n placeholder = 'dd.mm.yyyy',\n className,\n style,\n readOnly,\n disableLabelAnimation = false,\n locale = 'nb',\n prepend,\n disabled,\n variant = 'error',\n feedback = 'Ugyldig dato',\n label,\n hideCalendarButton = false,\n hideCalendar = false,\n hideFeedback = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const [showFeedback, setShowFeedback] = useState(false);\n const [currentValue, setCurrentValue] = useState('');\n const [lastValidValue, setLastValidValue] = useState('');\n\n const datepickerId = useRandomId('eds-datepicker');\n const { isFilled: isDatepickerFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n handleChange(selectedDate, undefined);\n }\n });\n\n React.useEffect(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n }, [selectedDate, setFiller, isDatepickerFilled]);\n\n const handleChange = (\n date: any,\n event: React.SyntheticEvent<any> | undefined,\n ) => {\n if (date) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n if (onChange) {\n onChange(date, event);\n const dateString = date?.toLocaleDateString('no-NO', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n });\n setCurrentValue(dateString ?? '');\n setLastValidValue(dateString ?? '');\n }\n };\n\n const handleChangeRaw = (event: React.FocusEvent<HTMLInputElement>) => {\n setShowFeedback(false);\n setCurrentValue(event.target.value);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (showFeedback) {\n setShowFeedback(false);\n } else {\n const inputValue = event.target.value;\n if (inputValue) validateInput(inputValue);\n }\n };\n\n const handleKeyDownInput = (\n event: React.KeyboardEvent<HTMLInputElement>,\n ) => {\n if (event.key === 'Enter') validateInput(currentValue);\n };\n\n const validateInput = (inputValue: string) => {\n const parsedDate = parse(inputValue, 'dd.MM.yyyy', new Date(), {\n locale: nb,\n });\n\n const yearIsFourCharacters =\n currentValue.slice(currentValue.lastIndexOf('.') + 1).length === 4;\n const isValidDate = isValid(parsedDate) && yearIsFourCharacters;\n\n if (!isValidDate) {\n setShowFeedback(true);\n setCurrentValue(lastValidValue);\n } else {\n setShowFeedback(false);\n setLastValidValue(currentValue);\n }\n };\n\n return (\n <ReactDatepicker\n className={classNames(className)}\n calendarClassName=\"eds-datepicker__calender\"\n selected={selectedDate}\n onChange={handleChange}\n showWeekNumbers={true}\n dateFormat={['dd.MM.yyyy', 'ddMMyyyy', 'dd/MM/yyyy']}\n showPopperArrow={false}\n placeholderText={placeholder}\n readOnly={readOnly}\n id={datepickerId}\n ariaLabelledBy={datepickerId}\n disabled={disabled}\n locale={locale}\n popperModifiers={POPPER_MODIFIERS}\n onBlur={handleBlur}\n onChangeRaw={handleChangeRaw}\n onCalendarOpen={() => setShowFeedback(false)}\n value={currentValue}\n open={hideCalendar === true ? false : rest.open}\n {...rest}\n customInput={\n <DatePickerInput\n style={style}\n readOnly={readOnly}\n variant={!hideFeedback && showFeedback ? variant : ''}\n feedback={!hideFeedback && showFeedback ? feedback : ''}\n label={label}\n disabled={disabled}\n ref={ref}\n data-cy={rest['data-cy']}\n disableLabelAnimation={disableLabelAnimation}\n prepend={prepend}\n hideCalendarButton={hideCalendarButton}\n inputId={id}\n onKeyDownInput={handleKeyDownInput}\n onBlurInput={handleBlur}\n />\n }\n />\n );\n },\n);\n\ntype DatePickerInputProps = {\n onClick?: any;\n value?: any;\n disableLabelAnimation?: boolean;\n className?: string;\n hideCalendarButton?: boolean;\n feedback?: string;\n inputId?: string;\n [key: string]: any;\n};\n// Props fra customInput i react-datepicker\n// value: inputValue,\n// onBlur: this.handleBlur,\n// onChange: this.handleChange,\n// onClick: this.onInputClick,\n// onFocus: this.handleFocus,\n// onKeyDown: this.onInputKeyDown,\n// id: this.props.id,\n// name: this.props.name,\n// autoFocus: this.props.autoFocus,\n// placeholder: this.props.placeholderText,\n// disabled: this.props.disabled,\n// autoComplete: this.props.autoComplete,\n// className: classnames(customInput.props.className, className),\n// title: this.props.title,\n// readOnly: this.props.readOnly,\n// required: this.props.required,\n// tabIndex: this.props.tabIndex,\n// \"aria-describedby\": this.props.ariaDescribedBy,\n// \"aria-invalid\": this.props.ariaInvalid,\n// \"aria-labelledby\": this.props.ariaLabelledBy,\n// \"aria-required\": this.props.ariaRequired,\n\nconst DatePickerInput = React.forwardRef<\n HTMLInputElement,\n DatePickerInputProps\n>(\n (\n {\n value,\n onClick,\n // Capture onFocus prop from react-datepicker, but doesn't use it\n // eslint-disable-next-line\n onFocus,\n onKeyDown,\n variant,\n feedback,\n style,\n disableLabelAnimation,\n disabled,\n label,\n readOnly,\n id,\n prepend,\n className,\n hideCalendarButton,\n inputId,\n onKeyDownInput,\n onBlurInput,\n ...rest\n },\n ref,\n ) => {\n return (\n <span className={className} onBlur={onBlurInput}>\n <BaseFormControl\n style={style}\n className=\"eds-datepicker__form-control\"\n readOnly={readOnly}\n label={label}\n labelId={id}\n feedback={feedback}\n variant={variant}\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\n isFilled={value ? true : false}\n prepend={prepend}\n >\n <input\n value={value}\n onClick={onClick}\n readOnly={readOnly}\n disabled={disabled}\n ref={ref}\n // aria-labelledby={id}\n className=\"eds-form-control\"\n id={inputId}\n onKeyDown={onKeyDownInput}\n {...rest}\n />\n {!hideCalendarButton && (\n <Tooltip\n placement=\"top\"\n content=\"Åpne kalender\"\n disableHoverListener={disabled}\n disableFocusListener={disabled}\n >\n <button\n className={classNames('eds-datepicker__calendar-button', {\n 'eds-datepicker__calendar-button--open': true,\n 'eds-datepicker__calendar-button--disabled': disabled,\n })}\n onKeyDown={onKeyDown}\n onClick={onClick}\n disabled={disabled}\n type=\"button\"\n >\n <CalendarIcon />\n </button>\n </Tooltip>\n )}\n </BaseFormControl>\n </span>\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\nimport './react-datepicker.scss';\n\nwarnAboutMissingStyles('datepicker', 'form', 'icons');\n\nexport * from './DatePicker';\nexport * from './NativeDatePicker';\nexport * from './TimePicker';\nexport * from './NativeTimePicker';\n"],"names":["registerLocale","nb","POPPER_MODIFIERS","name","enabled","options","offset","DatePicker","React","forwardRef","ref","selectedDate","onChange","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","feedback","label","hideCalendarButton","hideCalendar","hideFeedback","id","rest","useState","showFeedback","setShowFeedback","currentValue","setCurrentValue","lastValidValue","setLastValidValue","datepickerId","useRandomId","useInputGroupContext","isDatepickerFilled","isFilled","setFiller","setFilled","useOnMount","handleChange","undefined","useEffect","date","event","dateString","toLocaleDateString","day","month","year","handleChangeRaw","target","value","handleBlur","inputValue","validateInput","handleKeyDownInput","key","parsedDate","parse","Date","yearIsFourCharacters","slice","lastIndexOf","length","isValidDate","isValid","ReactDatepicker","classNames","calendarClassName","selected","showWeekNumbers","dateFormat","showPopperArrow","placeholderText","ariaLabelledBy","popperModifiers","onBlur","onChangeRaw","onCalendarOpen","open","customInput","DatePickerInput","inputId","onKeyDownInput","onBlurInput","onClick","onKeyDown","BaseFormControl","labelId","Tooltip","placement","content","disableHoverListener","disableFocusListener","type","CalendarIcon","NativeDatePicker","DateIcon","inline","nativedatepickerId","NativeDatePickerBase","contextVariant","useVariant","currentVariant","TimePicker","selectedTime","labelTooltip","onLeftArrowClick","sub","minutes","onRightArrowClick","add","timepickerId","TimePickerArrowButton","direction","tabIndex","e","TimePickerBase","timeFormat","isTimepickerFilled","showTimeSelect","showTimeInput","showTimeSelectOnly","popperClassName","LeftArrowIcon","RightArrowIcon","NativeTimePicker","ClockIcon","nativetimepickerId","NativeTimePickerBase","warnAboutMissingStyles"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -828,6 +828,99 @@
|
|
|
828
828
|
font-size: 1.44rem;
|
|
829
829
|
}/* DO NOT CHANGE!*/
|
|
830
830
|
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
831
|
+
.react-datepicker.eds-timepicker.react-datepicker--time-only {
|
|
832
|
+
width: 100%;
|
|
833
|
+
}
|
|
834
|
+
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time-container {
|
|
835
|
+
float: left;
|
|
836
|
+
overflow-x: hidden;
|
|
837
|
+
width: inherit;
|
|
838
|
+
}
|
|
839
|
+
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time-box {
|
|
840
|
+
border-radius: 0;
|
|
841
|
+
width: inherit;
|
|
842
|
+
}
|
|
843
|
+
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__header--time {
|
|
844
|
+
display: none;
|
|
845
|
+
}
|
|
846
|
+
.eds-contrast .eds-form-control-wrapper--dark .react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time-container {
|
|
847
|
+
background-color: #ffffff;
|
|
848
|
+
}
|
|
849
|
+
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list {
|
|
850
|
+
font-family: var(--eds-font-family);
|
|
851
|
+
color: #181c56;
|
|
852
|
+
background-color: #ffffff;
|
|
853
|
+
}
|
|
854
|
+
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item {
|
|
855
|
+
align-items: center;
|
|
856
|
+
box-sizing: border-box;
|
|
857
|
+
border-bottom: 0.125rem solid #e9e9e9;
|
|
858
|
+
display: flex;
|
|
859
|
+
font-size: 1rem;
|
|
860
|
+
height: 2rem;
|
|
861
|
+
justify-content: center;
|
|
862
|
+
line-height: 1.25rem;
|
|
863
|
+
padding: calc(0.25rem/ 2) 1rem;
|
|
864
|
+
}
|
|
865
|
+
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item:hover {
|
|
866
|
+
background-color: #aeb7e2;
|
|
867
|
+
}
|
|
868
|
+
.eds-contrast .eds-form-control-wrapper--dark .react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item {
|
|
869
|
+
color: #181c56;
|
|
870
|
+
background-color: #ffffff;
|
|
871
|
+
}
|
|
872
|
+
.eds-contrast .eds-form-control-wrapper--dark .react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item:hover {
|
|
873
|
+
background-color: #aeb7e2;
|
|
874
|
+
}
|
|
875
|
+
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item--selected {
|
|
876
|
+
color: #ffffff;
|
|
877
|
+
background-color: #181c56;
|
|
878
|
+
}
|
|
879
|
+
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item--selected:hover {
|
|
880
|
+
background-color: #292b6a;
|
|
881
|
+
}
|
|
882
|
+
.eds-contrast .eds-form-control-wrapper--dark .react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item--selected {
|
|
883
|
+
color: #ffffff;
|
|
884
|
+
background-color: #181c56;
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
.eds-timepicker-form-control.eds-form-control-wrapper {
|
|
888
|
+
height: 2rem;
|
|
889
|
+
}
|
|
890
|
+
.eds-timepicker-form-control.eds-form-control-wrapper .eds-timepicker__input {
|
|
891
|
+
padding-left: 0;
|
|
892
|
+
padding-right: 0;
|
|
893
|
+
}
|
|
894
|
+
.eds-timepicker-form-control.eds-form-control-wrapper .eds-input-group__label {
|
|
895
|
+
margin-left: 0 !important;
|
|
896
|
+
}
|
|
897
|
+
.eds-timepicker-form-control.eds-form-control-wrapper .eds-form-control__prepend {
|
|
898
|
+
margin-left: 0;
|
|
899
|
+
}
|
|
900
|
+
.eds-timepicker-form-control.eds-form-control-wrapper .eds-timepicker__arrowbutton {
|
|
901
|
+
appearance: none;
|
|
902
|
+
border: none;
|
|
903
|
+
border-radius: 0.0625rem;
|
|
904
|
+
background: #ffffff;
|
|
905
|
+
color: #181c56;
|
|
906
|
+
cursor: pointer;
|
|
907
|
+
display: flex;
|
|
908
|
+
font-size: 1rem;
|
|
909
|
+
padding: calc(1rem - 0.25rem);
|
|
910
|
+
margin: 0.25rem;
|
|
911
|
+
margin-left: 0.125rem;
|
|
912
|
+
}
|
|
913
|
+
.eds-timepicker-form-control.eds-form-control-wrapper .eds-timepicker__arrowbutton--right {
|
|
914
|
+
margin-right: 0.125rem;
|
|
915
|
+
margin-left: 0.25rem;
|
|
916
|
+
}
|
|
917
|
+
.eds-timepicker-form-control.eds-form-control-wrapper .eds-timepicker__arrowbutton:hover {
|
|
918
|
+
background-color: #d1d4e3;
|
|
919
|
+
}
|
|
920
|
+
.eds-timepicker-form-control.eds-form-control-wrapper .eds-timepicker__arrowbutton:focus {
|
|
921
|
+
outline-offset: none;
|
|
922
|
+
}/* DO NOT CHANGE!*/
|
|
923
|
+
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
831
924
|
.eds-datepicker__calender {
|
|
832
925
|
font-family: var(--eds-font-family);
|
|
833
926
|
color: #181c56;
|
|
@@ -1081,97 +1174,4 @@
|
|
|
1081
1174
|
|
|
1082
1175
|
.eds-native-date-picker {
|
|
1083
1176
|
height: 2.75rem;
|
|
1084
|
-
}/* DO NOT CHANGE!*/
|
|
1085
|
-
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
1086
|
-
.react-datepicker.eds-timepicker.react-datepicker--time-only {
|
|
1087
|
-
width: 100%;
|
|
1088
|
-
}
|
|
1089
|
-
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time-container {
|
|
1090
|
-
float: left;
|
|
1091
|
-
overflow-x: hidden;
|
|
1092
|
-
width: inherit;
|
|
1093
|
-
}
|
|
1094
|
-
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time-box {
|
|
1095
|
-
border-radius: 0;
|
|
1096
|
-
width: inherit;
|
|
1097
|
-
}
|
|
1098
|
-
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__header--time {
|
|
1099
|
-
display: none;
|
|
1100
|
-
}
|
|
1101
|
-
.eds-contrast .eds-form-control-wrapper--dark .react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time-container {
|
|
1102
|
-
background-color: #ffffff;
|
|
1103
|
-
}
|
|
1104
|
-
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list {
|
|
1105
|
-
font-family: var(--eds-font-family);
|
|
1106
|
-
color: #181c56;
|
|
1107
|
-
background-color: #ffffff;
|
|
1108
|
-
}
|
|
1109
|
-
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item {
|
|
1110
|
-
align-items: center;
|
|
1111
|
-
box-sizing: border-box;
|
|
1112
|
-
border-bottom: 0.125rem solid #e9e9e9;
|
|
1113
|
-
display: flex;
|
|
1114
|
-
font-size: 1rem;
|
|
1115
|
-
height: 2rem;
|
|
1116
|
-
justify-content: center;
|
|
1117
|
-
line-height: 1.25rem;
|
|
1118
|
-
padding: calc(0.25rem/ 2) 1rem;
|
|
1119
|
-
}
|
|
1120
|
-
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item:hover {
|
|
1121
|
-
background-color: #aeb7e2;
|
|
1122
|
-
}
|
|
1123
|
-
.eds-contrast .eds-form-control-wrapper--dark .react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item {
|
|
1124
|
-
color: #181c56;
|
|
1125
|
-
background-color: #ffffff;
|
|
1126
|
-
}
|
|
1127
|
-
.eds-contrast .eds-form-control-wrapper--dark .react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item:hover {
|
|
1128
|
-
background-color: #aeb7e2;
|
|
1129
|
-
}
|
|
1130
|
-
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item--selected {
|
|
1131
|
-
color: #ffffff;
|
|
1132
|
-
background-color: #181c56;
|
|
1133
|
-
}
|
|
1134
|
-
.react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item--selected:hover {
|
|
1135
|
-
background-color: #292b6a;
|
|
1136
|
-
}
|
|
1137
|
-
.eds-contrast .eds-form-control-wrapper--dark .react-datepicker.eds-timepicker.react-datepicker--time-only .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item--selected {
|
|
1138
|
-
color: #ffffff;
|
|
1139
|
-
background-color: #181c56;
|
|
1140
|
-
}
|
|
1141
|
-
|
|
1142
|
-
.eds-timepicker-form-control.eds-form-control-wrapper {
|
|
1143
|
-
height: 2rem;
|
|
1144
|
-
}
|
|
1145
|
-
.eds-timepicker-form-control.eds-form-control-wrapper .eds-timepicker__input {
|
|
1146
|
-
padding-left: 0;
|
|
1147
|
-
padding-right: 0;
|
|
1148
|
-
}
|
|
1149
|
-
.eds-timepicker-form-control.eds-form-control-wrapper .eds-input-group__label {
|
|
1150
|
-
margin-left: 0 !important;
|
|
1151
|
-
}
|
|
1152
|
-
.eds-timepicker-form-control.eds-form-control-wrapper .eds-form-control__prepend {
|
|
1153
|
-
margin-left: 0;
|
|
1154
|
-
}
|
|
1155
|
-
.eds-timepicker-form-control.eds-form-control-wrapper .eds-timepicker__arrowbutton {
|
|
1156
|
-
appearance: none;
|
|
1157
|
-
border: none;
|
|
1158
|
-
border-radius: 0.0625rem;
|
|
1159
|
-
background: #ffffff;
|
|
1160
|
-
color: #181c56;
|
|
1161
|
-
cursor: pointer;
|
|
1162
|
-
display: flex;
|
|
1163
|
-
font-size: 1rem;
|
|
1164
|
-
padding: calc(1rem - 0.25rem);
|
|
1165
|
-
margin: 0.25rem;
|
|
1166
|
-
margin-left: 0.125rem;
|
|
1167
|
-
}
|
|
1168
|
-
.eds-timepicker-form-control.eds-form-control-wrapper .eds-timepicker__arrowbutton--right {
|
|
1169
|
-
margin-right: 0.125rem;
|
|
1170
|
-
margin-left: 0.25rem;
|
|
1171
|
-
}
|
|
1172
|
-
.eds-timepicker-form-control.eds-form-control-wrapper .eds-timepicker__arrowbutton:hover {
|
|
1173
|
-
background-color: #d1d4e3;
|
|
1174
|
-
}
|
|
1175
|
-
.eds-timepicker-form-control.eds-form-control-wrapper .eds-timepicker__arrowbutton:focus {
|
|
1176
|
-
outline-offset: none;
|
|
1177
1177
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur/datepicker",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/datepicker.esm.js",
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"classnames": "^2.3.1",
|
|
37
37
|
"react-datepicker": "4.6.0"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "9ba607bb5fb9896bc9ae5a16a4dff32727620e3c"
|
|
40
40
|
}
|