@entur/datepicker 0.11.4 → 0.11.5

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 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.5](https://bitbucket.org/enturas/design-system/compare/@entur/datepicker@0.11.4...@entur/datepicker@0.11.5) (2022-03-17)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **datepicker:** fix visuals not updating when changing selectedDate prop ([c6882ad](https://bitbucket.org/enturas/design-system/commits/c6882ad4629282797faf16f597e26c18284440af))
11
+
6
12
  ## [0.11.4](https://bitbucket.org/enturas/design-system/compare/@entur/datepicker@0.11.3...@entur/datepicker@0.11.4) (2022-03-14)
7
13
 
8
14
  **Note:** Version bump only for package @entur/datepicker
@@ -111,18 +111,14 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
111
111
  isDatepickerFilled = _useInputGroupContext.isFilled,
112
112
  setFiller = _useInputGroupContext.setFilled;
113
113
 
114
- utils.useOnMount(function () {
115
- if (selectedDate) {
116
- setFiller && !isDatepickerFilled && setFiller(true);
117
- handleChange(selectedDate, undefined);
118
- }
119
- });
120
114
  React__default["default"].useEffect(function () {
121
115
  if (selectedDate) {
122
116
  setFiller && !isDatepickerFilled && setFiller(true);
123
117
  } else {
124
118
  setFiller && isDatepickerFilled && setFiller(false);
125
119
  }
120
+
121
+ handleChange(selectedDate, undefined);
126
122
  }, [selectedDate, setFiller, isDatepickerFilled]);
127
123
 
128
124
  var handleChange = function handleChange(date, event) {
@@ -160,7 +156,11 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
160
156
  };
161
157
 
162
158
  var handleKeyDownInput = function handleKeyDownInput(event) {
163
- if (event.key === 'Enter') validateInput(currentValue);
159
+ var inputValue = event.currentTarget.value;
160
+
161
+ if (event.key === 'Enter') {
162
+ if (inputValue) validateInput(currentValue);else setShowValidationFeedback(false);
163
+ }
164
164
  };
165
165
 
166
166
  var validateInput = function validateInput(inputValue) {
@@ -170,12 +170,12 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function (_re
170
170
  var yearIsFourCharacters = currentValue.slice(currentValue.lastIndexOf('.') + 1).length === 4;
171
171
  var isValidDate = dateFns.isValid(parsedDate) && yearIsFourCharacters;
172
172
 
173
- if (!isValidDate) {
174
- setShowValidationFeedback(true);
175
- setCurrentValue(lastValidValue);
176
- } else {
173
+ if (isValidDate) {
177
174
  setShowValidationFeedback(false);
178
175
  setLastValidValue(currentValue);
176
+ } else {
177
+ setShowValidationFeedback(true);
178
+ setCurrentValue(lastValidValue);
179
179
  }
180
180
  };
181
181
 
@@ -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 /**\n * Kalles når innholdet i inputfeltet endres\n */\n onChangeInput?: (value: string) => 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 /**\n * Varselmelding, som vil komme under DatePicker\n */\n feedback?: string;\n /** Valideringsvariant\n */\n variant?: VariantType;\n /** Varselmelding for når datoen er på feil format\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om feil datoformat\n * @default \"error\"\n */\n validationVariant?: VariantType;\n style?: React.CSSProperties;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Tekst eller ikon som kommer før inputfelter\n * @default <DateIcon />\n */\n prepend?: React.ReactNode;\n /** 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 hideValidationFeedback?: 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' | 'onChangeRaw'>;\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 onChangeInput,\n placeholder = 'dd.mm.yyyy',\n className,\n style,\n readOnly,\n disableLabelAnimation = false,\n locale = 'nb',\n prepend,\n disabled,\n variant,\n validationVariant = 'error',\n feedback,\n validationFeedback = 'Ugyldig dato',\n label,\n hideCalendarButton = false,\n hideCalendar = false,\n hideValidationFeedback = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const [showValidationFeedback, setShowValidationFeedback] = 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 setShowValidationFeedback(false);\n setCurrentValue(event.target.value);\n if (onChangeInput) onChangeInput(event.target.value);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (showValidationFeedback) {\n setShowValidationFeedback(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 setShowValidationFeedback(true);\n setCurrentValue(lastValidValue);\n } else {\n setShowValidationFeedback(false);\n setLastValidValue(currentValue);\n }\n };\n\n const displayedFeedback = (): string => {\n if (feedback) return feedback;\n if (!hideValidationFeedback && showValidationFeedback)\n return validationFeedback;\n return '';\n };\n\n const displayedVariant = (): string | undefined => {\n if (feedback && variant) return variant;\n if (!hideValidationFeedback && showValidationFeedback)\n return validationVariant;\n return undefined;\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={() => setShowValidationFeedback(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={displayedVariant()}\n feedback={displayedFeedback()}\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 onChangeInput={onChangeInput}\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 onChangeInput,\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 onChange={onChangeInput}\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","onChangeInput","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","validationVariant","feedback","validationFeedback","label","hideCalendarButton","hideCalendar","hideValidationFeedback","id","rest","useState","showValidationFeedback","setShowValidationFeedback","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","displayedFeedback","displayedVariant","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 { 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 /**\n * Kalles når innholdet i inputfeltet endres\n */\n onChangeInput?: (value: string) => 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 /**\n * Varselmelding, som vil komme under DatePicker\n */\n feedback?: string;\n /** Valideringsvariant\n */\n variant?: VariantType;\n /** Varselmelding for når datoen er på feil format\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om feil datoformat\n * @default \"error\"\n */\n validationVariant?: VariantType;\n style?: React.CSSProperties;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Tekst eller ikon som kommer før inputfelter\n * @default <DateIcon />\n */\n prepend?: React.ReactNode;\n /** 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 hideValidationFeedback?: 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' | 'onChangeRaw'>;\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 onChangeInput,\n placeholder = 'dd.mm.yyyy',\n className,\n style,\n readOnly,\n disableLabelAnimation = false,\n locale = 'nb',\n prepend,\n disabled,\n variant,\n validationVariant = 'error',\n feedback,\n validationFeedback = 'Ugyldig dato',\n label,\n hideCalendarButton = false,\n hideCalendar = false,\n hideValidationFeedback = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const [showValidationFeedback, setShowValidationFeedback] = 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 React.useEffect(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n handleChange(selectedDate, undefined);\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 setShowValidationFeedback(false);\n setCurrentValue(event.target.value);\n if (onChangeInput) onChangeInput(event.target.value);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (showValidationFeedback) {\n setShowValidationFeedback(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 const inputValue = event.currentTarget.value;\n if (event.key === 'Enter') {\n if (inputValue) validateInput(currentValue);\n else setShowValidationFeedback(false);\n }\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 setShowValidationFeedback(false);\n setLastValidValue(currentValue);\n } else {\n setShowValidationFeedback(true);\n setCurrentValue(lastValidValue);\n }\n };\n\n const displayedFeedback = (): string => {\n if (feedback) return feedback;\n if (!hideValidationFeedback && showValidationFeedback)\n return validationFeedback;\n return '';\n };\n\n const displayedVariant = (): string | undefined => {\n if (feedback && variant) return variant;\n if (!hideValidationFeedback && showValidationFeedback)\n return validationVariant;\n return undefined;\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={() => setShowValidationFeedback(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={displayedVariant()}\n feedback={displayedFeedback()}\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 onChangeInput={onChangeInput}\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 onChangeInput,\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 onChange={onChangeInput}\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","onChangeInput","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","validationVariant","feedback","validationFeedback","label","hideCalendarButton","hideCalendar","hideValidationFeedback","id","rest","useState","showValidationFeedback","setShowValidationFeedback","currentValue","setCurrentValue","lastValidValue","setLastValidValue","datepickerId","useRandomId","useInputGroupContext","isDatepickerFilled","isFilled","setFiller","setFilled","useEffect","handleChange","undefined","date","event","dateString","toLocaleDateString","day","month","year","handleChangeRaw","target","value","handleBlur","inputValue","validateInput","handleKeyDownInput","currentTarget","key","parsedDate","parse","Date","yearIsFourCharacters","slice","lastIndexOf","length","isValidDate","isValid","displayedFeedback","displayedVariant","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","useOnMount","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;AA6DA,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,gBAwBEC,GAxBF;+BAEIC;MAAAA,8CAAe;MACfC,gBAAAA;MACAC,qBAAAA;8BACAC;MAAAA,4CAAc;MACdC,iBAAAA;MACAC,aAAAA;MACAC,gBAAAA;mCACAC;MAAAA,2DAAwB;yBACxBC;MAAAA,oCAAS;MACTC,eAAAA;MACAC,gBAAAA;MACAC,eAAAA;mCACAC;MAAAA,uDAAoB;MACpBC,gBAAAA;mCACAC;MAAAA,wDAAqB;MACrBC,aAAAA;mCACAC;MAAAA,wDAAqB;+BACrBC;MAAAA,8CAAe;mCACfC;MAAAA,4DAAyB;MACzBC,UAAAA;MACGC;;AAIL,kBAA4DC,cAAQ,CAAC,KAAD,CAApE;AAAA,MAAOC,sBAAP;AAAA,MAA+BC,yBAA/B;;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;;AAGArC,EAAAA,yBAAK,CAACsC,SAAN,CAAgB;AACd,QAAInC,YAAJ,EAAkB;AAChBiC,MAAAA,SAAS,IAAI,CAACF,kBAAd,IAAoCE,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAIF,kBAAb,IAAmCE,SAAS,CAAC,KAAD,CAA5C;AACD;;AACDG,IAAAA,YAAY,CAACpC,YAAD,EAAeqC,SAAf,CAAZ;AACD,GAPD,EAOG,CAACrC,YAAD,EAAeiC,SAAf,EAA0BF,kBAA1B,CAPH;;AASA,MAAMK,YAAY,GAAG,SAAfA,YAAe,CACnBE,IADmB,EAEnBC,KAFmB;AAInB,QAAID,IAAJ,EAAU;AACRL,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,QAAIhC,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAACqC,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;AAKAnB,MAAAA,eAAe,CAACe,UAAD,WAACA,UAAD,GAAe,EAAf,CAAf;AACAb,MAAAA,iBAAiB,CAACa,UAAD,WAACA,UAAD,GAAe,EAAf,CAAjB;AACD;AACF,GAnBD;;AAqBA,MAAMK,eAAe,GAAG,SAAlBA,eAAkB,CAACN,KAAD;AACtBhB,IAAAA,yBAAyB,CAAC,KAAD,CAAzB;AACAE,IAAAA,eAAe,CAACc,KAAK,CAACO,MAAN,CAAaC,KAAd,CAAf;AACA,QAAI7C,aAAJ,EAAmBA,aAAa,CAACqC,KAAK,CAACO,MAAN,CAAaC,KAAd,CAAb;AACpB,GAJD;;AAMA,MAAMC,UAAU,GAAG,SAAbA,UAAa,CAACT,KAAD;AACjB,QAAIjB,sBAAJ,EAA4B;AAC1BC,MAAAA,yBAAyB,CAAC,KAAD,CAAzB;AACD,KAFD,MAEO;AACL,UAAM0B,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,QAAMU,UAAU,GAAGV,KAAK,CAACa,aAAN,CAAoBL,KAAvC;;AACA,QAAIR,KAAK,CAACc,GAAN,KAAc,OAAlB,EAA2B;AACzB,UAAIJ,UAAJ,EAAgBC,aAAa,CAAC1B,YAAD,CAAb,CAAhB,KACKD,yBAAyB,CAAC,KAAD,CAAzB;AACN;AACF,GARD;;AAUA,MAAM2B,aAAa,GAAG,SAAhBA,aAAgB,CAACD,UAAD;AACpB,QAAMK,UAAU,GAAGC,aAAK,CAACN,UAAD,EAAa,YAAb,EAA2B,IAAIO,IAAJ,EAA3B,EAAuC;AAC7DhD,MAAAA,MAAM,EAAElB;AADqD,KAAvC,CAAxB;AAIA,QAAMmE,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,QAAII,WAAJ,EAAiB;AACftC,MAAAA,yBAAyB,CAAC,KAAD,CAAzB;AACAI,MAAAA,iBAAiB,CAACH,YAAD,CAAjB;AACD,KAHD,MAGO;AACLD,MAAAA,yBAAyB,CAAC,IAAD,CAAzB;AACAE,MAAAA,eAAe,CAACC,cAAD,CAAf;AACD;AACF,GAhBD;;AAkBA,MAAMqC,iBAAiB,GAAG,SAApBA,iBAAoB;AACxB,QAAIlD,QAAJ,EAAc,OAAOA,QAAP;AACd,QAAI,CAACK,sBAAD,IAA2BI,sBAA/B,EACE,OAAOR,kBAAP;AACF,WAAO,EAAP;AACD,GALD;;AAOA,MAAMkD,gBAAgB,GAAG,SAAnBA,gBAAmB;AACvB,QAAInD,QAAQ,IAAIF,OAAhB,EAAyB,OAAOA,OAAP;AACzB,QAAI,CAACO,sBAAD,IAA2BI,sBAA/B,EACE,OAAOV,iBAAP;AACF,WAAOyB,SAAP;AACD,GALD;;AAOA,SACExC,uCAAA,CAACoE,mCAAD;AACE7D,IAAAA,SAAS,EAAE8D,8BAAU,CAAC9D,SAAD,CADvB;AAEE+D,IAAAA,iBAAiB,EAAC,0BAFpB;AAGEC,IAAAA,QAAQ,EAAEpE,YAHZ;AAIEC,IAAAA,QAAQ,EAAEmC,YAJZ;AAKEiC,IAAAA,eAAe,EAAE,IALnB;AAMEC,IAAAA,UAAU,EAAE,CAAC,YAAD,EAAe,UAAf,EAA2B,YAA3B,CANd;AAOEC,IAAAA,eAAe,EAAE,KAPnB;AAQEC,IAAAA,eAAe,EAAErE,WARnB;AASEG,IAAAA,QAAQ,EAAEA,QATZ;AAUEa,IAAAA,EAAE,EAAES,YAVN;AAWE6C,IAAAA,cAAc,EAAE7C,YAXlB;AAYElB,IAAAA,QAAQ,EAAEA,QAZZ;AAaEF,IAAAA,MAAM,EAAEA,QAbV;AAcEkE,IAAAA,eAAe,EAAEnF,kBAdnB;AAeEoF,IAAAA,MAAM,EAAE3B,UAfV;AAgBE4B,IAAAA,WAAW,EAAE/B,eAhBf;AAiBEgC,IAAAA,cAAc,EAAE;AAAA,aAAMtD,yBAAyB,CAAC,KAAD,CAA/B;AAAA,KAjBlB;AAkBEwB,IAAAA,KAAK,EAAEvB,YAlBT;AAmBEsD,IAAAA,IAAI,EAAE7D,YAAY,KAAK,IAAjB,GAAwB,KAAxB,GAAgCG,IAAI,CAAC0D;AAnB7C,KAoBM1D,IApBN;AAqBE2D,IAAAA,WAAW,EACTlF,uCAAA,CAACmF,eAAD;AACE3E,MAAAA,KAAK,EAAEA;AACPC,MAAAA,QAAQ,EAAEA;AACVK,MAAAA,OAAO,EAAEqD,gBAAgB;AACzBnD,MAAAA,QAAQ,EAAEkD,iBAAiB;AAC3BhD,MAAAA,KAAK,EAAEA;AACPL,MAAAA,QAAQ,EAAEA;AACVX,MAAAA,GAAG,EAAEA;iBACIqB,IAAI,CAAC,SAAD;AACbb,MAAAA,qBAAqB,EAAEA;AACvBE,MAAAA,OAAO,EAAEA;AACTO,MAAAA,kBAAkB,EAAEA;AACpBiE,MAAAA,OAAO,EAAE9D;AACT+D,MAAAA,cAAc,EAAE/B;AAChBgC,MAAAA,WAAW,EAAEnC;AACb9C,MAAAA,aAAa,EAAEA;KAfjB;AAtBJ,KADF;AA2CD,CArKuB;AAmL1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAM8E,eAAe,gBAAGnF,yBAAK,CAACC,UAAN,CAItB,iBAyBEC,GAzBF;MAEIgD,cAAAA;MACAqC,gBAAAA;MAIAC,kBAAAA;MACA1E,gBAAAA;MACAE,iBAAAA;MACAR,cAAAA;MACAE,8BAAAA;MACAG,iBAAAA;MACAK,cAAAA;MACAT,iBAAAA;MACAa,WAAAA;MACAV,gBAAAA;MACAL,kBAAAA;MACAY,2BAAAA;MACAiE,gBAAAA;MACA/E,sBAAAA;MACAgF,uBAAAA;MACAC,oBAAAA;MACG/D;;AAIL,SACEvB,uCAAA,OAAA;AAAMO,IAAAA,SAAS,EAAEA;AAAWuE,IAAAA,MAAM,EAAEQ;GAApC,EACEtF,uCAAA,CAACyF,oBAAD;AACEjF,IAAAA,KAAK,EAAEA;AACPD,IAAAA,SAAS,EAAC;AACVE,IAAAA,QAAQ,EAAEA;AACVS,IAAAA,KAAK,EAAEA;AACPwE,IAAAA,OAAO,EAAEpE;AACTN,IAAAA,QAAQ,EAAEA;AACVF,IAAAA,OAAO,EAAEA;AACTD,IAAAA,QAAQ,EAAEA;AACVH,IAAAA,qBAAqB,EAAEA;AACvByB,IAAAA,QAAQ,EAAEe,KAAK,GAAG,IAAH,GAAU;AACzBtC,IAAAA,OAAO,EAAEA;GAXX,EAaEZ,uCAAA,QAAA;AACEkD,IAAAA,KAAK,EAAEA,KADT;AAEEqC,IAAAA,OAAO,EAAEA,OAFX;AAGE9E,IAAAA,QAAQ,EAAEA,QAHZ;AAIEI,IAAAA,QAAQ,EAAEA,QAJZ;AAKEX,IAAAA,GAAG,EAAEA,GALP;AAME;AACAK,IAAAA,SAAS,EAAC,kBAPZ;AAQEe,IAAAA,EAAE,EAAE8D,OARN;AASEI,IAAAA,SAAS,EAAEH,cATb;AAUEjF,IAAAA,QAAQ,EAAEC;AAVZ,KAWMkB,IAXN,EAbF,EA0BG,CAACJ,kBAAD,IACCnB,uCAAA,CAAC2F,eAAD;AACEC,IAAAA,SAAS,EAAC;AACVC,IAAAA,OAAO,EAAC;AACRC,IAAAA,oBAAoB,EAAEjF;AACtBkF,IAAAA,oBAAoB,EAAElF;GAJxB,EAMEb,uCAAA,SAAA;AACEO,IAAAA,SAAS,EAAE8D,8BAAU,CAAC,iCAAD,EAAoC;AACvD,+CAAyC,IADc;AAEvD,mDAA6CxD;AAFU,KAApC;AAIrB2E,IAAAA,SAAS,EAAEA;AACXD,IAAAA,OAAO,EAAEA;AACT1E,IAAAA,QAAQ,EAAEA;AACVmF,IAAAA,IAAI,EAAC;GARP,EAUEhG,uCAAA,CAACiG,kBAAD,MAAA,CAVF,CANF,CA3BJ,CADF,CADF;AAoDD,CAnFqB,CAAxB;;;;ICtQaC,gBAAgB,gBAAGlG,yBAAK,CAACC,UAAN,CAI9B,gBAYEC,GAZF;MAEIK,iBAAAA;MACAC,aAAAA;MACAU,aAAAA;MACAd,gBAAAA;MACAY,gBAAAA;MACAF,eAAAA;MACAJ,6BAAAA;0BACAE;MAAAA,oCAAUZ,uCAAA,CAACmG,cAAD;AAAUC,IAAAA,MAAM;GAAhB;MACP7E;;AAIL,MAAM8E,kBAAkB,GAAGrE,iBAAW,CAAC,sBAAD,CAAtC;AACA,SACEhC,uCAAA,CAACyF,oBAAD;AACEjF,IAAAA,KAAK,EAAEA;AACPD,IAAAA,SAAS,EAAEA;AACXK,IAAAA,OAAO,EAAEA;AACTM,IAAAA,KAAK,EAAEA;AACPF,IAAAA,QAAQ,EAAEA;AACVF,IAAAA,OAAO,EAAEA;AACT4E,IAAAA,OAAO,EAAEW;AACT3F,IAAAA,qBAAqB,EAAEA;AACvByB,IAAAA,QAAQ;GATV,EAWEnC,uCAAA,CAACsG,oBAAD;AACElG,IAAAA,QAAQ,EAAEA,QADZ;uBAEmBiG,kBAFnB;AAGEnG,IAAAA,GAAG,EAAEA,GAHP;AAIEY,IAAAA,OAAO,EAAEA;AAJX,KAKMS,IALN,EAXF,CADF;AAqBD,CAxC6B;AAmDhC,IAAM+E,oBAAoB,gBAAGtG,yBAAK,CAACC,UAAN,CAG3B,iBAAwCC,GAAxC;MAAGE,iBAAAA;MAAUU,gBAAAA;MAASoC,cAAAA;MAAU3B;;AAChC,MAAMgF,cAAc,GAAGC,eAAU,EAAjC;AACA,MAAMC,cAAc,GAAG3F,OAAO,IAAIyF,cAAlC;;AACA,8BACEtE,yBAAoB,EADtB;AAAA,MAAkBC,kBAAlB,yBAAQC,QAAR;AAAA,MAAiDC,SAAjD,yBAAsCC,SAAtC;;AAGAqE,EAAAA,gBAAU,CAAC;AACTtE,IAAAA,SAAS,IAAI,CAACF,kBAAd,IAAoCE,SAAS,CAAC,IAAD,CAA7C;AACD,GAFS,CAAV;AAIApC,EAAAA,yBAAK,CAACsC,SAAN,CAAgB;AACd,QAAIY,KAAJ,EAAW;AACTd,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,CAACc,KAAD,EAAQd,SAAR,EAAmBF,kBAAnB,CANH;;AAQA,MAAMK,YAAY,GAAG,SAAfA,YAAe,CAACG,KAAD;AACnB,QAAIP,aAAQ,CAACO,KAAK,CAACO,MAAP,CAAZ,EAA4B;AAC1Bb,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,QAAIhC,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAACsC,KAAD,CAAR;AACD;AACF,GATD;;AAUA,SACE1C,uCAAA,QAAA;AACEE,IAAAA,GAAG,EAAEA,GADP;oBAEgBuG,cAAc,KAAK,OAFnC;AAGET,IAAAA,IAAI,EAAC,MAHP;AAIEzF,IAAAA,SAAS,EAAC,yCAJZ;AAKEH,IAAAA,QAAQ,EAAEmC,YALZ;AAMEW,IAAAA,KAAK,EAAEA;AANT,KAOM3B,IAPN,EADF;AAWD,CA1C4B,CAA7B;;;;;AC/DA/B,8BAAc,CAAC,IAAD,EAAOC,SAAP,CAAd;IAyCakH,UAAU,gBAAG3G,yBAAK,CAACC,UAAN,CACxB,gBAoBEC,GApBF;+BAEI0G;MAAAA,8CAAe;MACfxG,gBAAAA;8BACAE;MAAAA,4CAAc;MACdO,gBAAAA;MACAN,iBAAAA;MACAC,aAAAA;MACAU,aAAAA;MACA2F,oBAAAA;MACA7F,gBAAAA;MACAF,eAAAA;MACAJ,6BAAAA;yBACAC;MAAAA,kCAAS;mCACTmG;MAAAA,sDAAmB,UAACF,YAAD,EAAelE,KAAf;AAAA,WACjBkE,YAAY,IAAIxG,QAAQ,CAAC2G,WAAG,CAACH,YAAD,EAAe;AAAEI,MAAAA,OAAO,EAAE;AAAX,KAAf,CAAJ,EAAqCtE,KAArC,CADP;AAAA;mCAEnBuE;MAAAA,uDAAoB,UAACL,YAAD,EAAelE,KAAf;AAAA,WAClBkE,YAAY,IAAIxG,QAAQ,CAAC8G,WAAG,CAACN,YAAD,EAAe;AAAEI,MAAAA,OAAO,EAAE;AAAX,KAAf,CAAJ,EAAqCtE,KAArC,CADN;AAAA;MAEjBnB;;AAIL,MAAM4F,YAAY,GAAGnF,iBAAW,CAAC,gBAAD,CAAhC;AACA,SACEhC,uCAAA,CAACyF,oBAAD;AACEjF,IAAAA,KAAK,EAAEA;AACPN,IAAAA,GAAG,EAAEA;AACLgB,IAAAA,KAAK,EAAEA;AACPwE,IAAAA,OAAO,EAAEyB;AACTN,IAAAA,YAAY,EAAEA;AACd/F,IAAAA,OAAO,EAAEA;AACTE,IAAAA,QAAQ,EAAEA;AACVN,IAAAA,qBAAqB,EAAEA;AACvBH,IAAAA,SAAS,EAAC;AACVM,IAAAA,QAAQ,EAAEA;AACVD,IAAAA,OAAO,EACLZ,uCAAA,CAACoH,qBAAD;AACEC,MAAAA,SAAS,EAAC;AACVC,MAAAA,QAAQ,EAAE,CAAC;AACX/B,MAAAA,OAAO,EAAE,iBAACgC,CAAD;AAAA,eAAyBT,gBAAgB,CAACF,YAAD,EAAeW,CAAf,CAAzC;AAAA;AACT1G,MAAAA,QAAQ,EAAEA;KAJZ;GAZJ,EAoBEb,uCAAA,CAACwH,cAAD;AACEZ,IAAAA,YAAY,EAAEA,YADhB;AAEExG,IAAAA,QAAQ,EAAEA,QAFZ;AAGEE,IAAAA,WAAW,EAAEA,WAHf;AAIEC,IAAAA,SAAS,EAAEA,SAJb;AAKEI,IAAAA,MAAM,EAAEA,MALV;AAMEiE,IAAAA,cAAc,EAAEuC,YANlB;AAOEtG,IAAAA,QAAQ,EAAEA;AAPZ,KAQMU,IARN,EApBF,EA8BEvB,uCAAA,CAACoH,qBAAD;AACEC,IAAAA,SAAS,EAAC;AACVC,IAAAA,QAAQ,EAAE,CAAC;AACX/B,IAAAA,OAAO,EAAE,iBAACgC,CAAD;AAAA,aAAyBN,iBAAiB,CAACL,YAAD,EAAeW,CAAf,CAA1C;AAAA;AACT1G,IAAAA,QAAQ,EAAEA;GAJZ,CA9BF,CADF;AAuCD,CA/DuB;AAmF1B,IAAMnB,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,IAAM0H,cAAc,GAAkC,SAAhDA,cAAgD;MACpDjH,kBAAAA;MACAH,iBAAAA;MACAwG,qBAAAA;MACAtG,oBAAAA;+BACAmH;MAAAA,2CAAa;+BACbhD;MAAAA,2CAAa,CAAC,OAAD,EAAU,MAAV;MACVlD;;AAEH,8BACEU,yBAAoB,EADtB;AAAA,MAAkByF,kBAAlB,yBAAQvF,QAAR;AAAA,MAAiDC,SAAjD,yBAAsCC,SAAtC;;AAGAqE,EAAAA,gBAAU,CAAC;AACT,QAAIE,YAAJ,EAAkB;AAChBxE,MAAAA,SAAS,IAAI,CAACsF,kBAAd,IAAoCtF,SAAS,CAAC,IAAD,CAA7C;AACD;AACF,GAJS,CAAV;AAMApC,EAAAA,yBAAK,CAACsC,SAAN,CAAgB;AACd,QAAIsE,YAAJ,EAAkB;AAChBxE,MAAAA,SAAS,IAAI,CAACsF,kBAAd,IAAoCtF,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAIsF,kBAAb,IAAmCtF,SAAS,CAAC,KAAD,CAA5C;AACD;AACF,GAND,EAMG,CAACwE,YAAD,EAAexE,SAAf,EAA0BsF,kBAA1B,CANH;;AAQA,MAAMnF,YAAY,GAAG,SAAfA,YAAe,CAACE,IAAD,EAAYC,KAAZ;AACnB,QAAID,IAAJ,EAAU;AACRL,MAAAA,SAAS,IAAI,CAACsF,kBAAd,IAAoCtF,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAIsF,kBAAb,IAAmCtF,SAAS,CAAC,KAAD,CAA5C;AACD;;AACD,QAAIhC,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAACqC,IAAD,EAAOC,KAAP,CAAR;AACD;AACF,GATD;;AAUA,SACE1C,uCAAA,CAACoE,mCAAD;AACE7D,IAAAA,SAAS,EAAE8D,8BAAU,CACnB,kBADmB,EAEnB,uBAFmB,EAGnB9D,SAHmB,CADvB;AAME+D,IAAAA,iBAAiB,EAAC,gBANpB;AAOEC,IAAAA,QAAQ,EAAEqC,YAPZ;AAQExG,IAAAA,QAAQ,EAAEmC,YARZ;AASEkC,IAAAA,UAAU,EAAEA,UATd;AAUEgD,IAAAA,UAAU,EAAEA,UAVd;AAWEE,IAAAA,cAAc,MAXhB;AAYEC,IAAAA,aAAa,EAAE,IAZjB;AAaEC,IAAAA,kBAAkB,MAbpB;AAcEnD,IAAAA,eAAe,EAAE,KAdnB;AAeEC,IAAAA,eAAe,EAAErE,WAfnB;AAgBEwH,IAAAA,eAAe,EAAC,wBAhBlB;AAiBEjD,IAAAA,eAAe,EAAEnF,gBAjBnB;AAkBEuF,IAAAA,IAAI,EAAE;AAlBR,KAmBM1D,IAnBN,EADF;AAuBD,CA3DD;;AAoEA,IAAM6F,qBAAqB,GAAyC,SAA9DA,qBAA8D;MAClEC,kBAAAA;MACG9F;;AAEH,SACEvB,uCAAA,SAAA;AACEO,IAAAA,SAAS,EAAE8D,8BAAU,CACnB,6BADmB,oCAEagD,SAFb,CADvB;AAKErB,IAAAA,IAAI,EAAC;AALP,KAMMzE,IANN,GAQG8F,SAAS,KAAK,MAAd,GAAuBrH,uCAAA,CAAC+H,mBAAD,MAAA,CAAvB,GAA2C/H,uCAAA,CAACgI,oBAAD,MAAA,CAR9C,CADF;AAYD,CAhBD;;;;IC7LaC,gBAAgB,gBAAGjI,yBAAK,CAACC,UAAN,CAI9B,gBAYEC,GAZF;MAEIK,iBAAAA;MACAC,aAAAA;MACAJ,gBAAAA;MACAc,aAAAA;MACAF,gBAAAA;MACAF,eAAAA;MACAJ,6BAAAA;0BACAE;MAAAA,oCAAUZ,uCAAA,CAACkI,eAAD,MAAA;MACP3G;;AAIL,MAAM4G,kBAAkB,GAAGnG,iBAAW,CAAC,sBAAD,CAAtC;AACA,SACEhC,uCAAA,CAACyF,oBAAD;AACEjF,IAAAA,KAAK,EAAEA;AACPD,IAAAA,SAAS,EAAEA;AACXK,IAAAA,OAAO,EAAEA;AACTM,IAAAA,KAAK,EAAEA;AACPF,IAAAA,QAAQ,EAAEA;AACVF,IAAAA,OAAO,EAAEA;AACT4E,IAAAA,OAAO,EAAEyC;AACTzH,IAAAA,qBAAqB,EAAEA;GARzB,EAUEV,uCAAA,CAACoI,oBAAD;AACEhI,IAAAA,QAAQ,EAAEA,QADZ;uBAEmB+H,kBAFnB;AAGEjI,IAAAA,GAAG,EAAEA;AAHP,KAIMqB,IAJN,EAVF,CADF;AAmBD,CAtC6B;AAgDhC,IAAM6G,oBAAoB,gBAAGpI,yBAAK,CAACC,UAAN,CAG3B,iBAA+BC,GAA/B;MAAGE,iBAAAA;MAAU8C,cAAAA;MAAU3B;;AACvB,MAAMgF,cAAc,GAAGC,eAAU,EAAjC;AACA,MAAMC,cAAc,GAAGlF,IAAI,CAACT,OAAL,IAAgByF,cAAvC;;AACA,8BACEtE,yBAAoB,EADtB;AAAA,MAAkByF,kBAAlB,yBAAQvF,QAAR;AAAA,MAAiDC,SAAjD,yBAAsCC,SAAtC;;AAGAqE,EAAAA,gBAAU,CAAC;AACTtE,IAAAA,SAAS,IAAI,CAACsF,kBAAd,IAAoCtF,SAAS,CAAC,IAAD,CAA7C;AACD,GAFS,CAAV;AAIApC,EAAAA,yBAAK,CAACsC,SAAN,CAAgB;AACd,QAAIY,KAAJ,EAAW;AACTd,MAAAA,SAAS,IAAI,CAACsF,kBAAd,IAAoCtF,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAIsF,kBAAb,IAAmCtF,SAAS,CAAC,KAAD,CAA5C;AACD;AACF,GAND,EAMG,CAACc,KAAD,EAAQd,SAAR,EAAmBsF,kBAAnB,CANH;;AAQA,MAAMnF,YAAY,GAAG,SAAfA,YAAe,CAACG,KAAD;AACnB,QAAIP,aAAQ,CAACO,KAAK,CAACO,MAAP,CAAZ,EAA4B;AAC1Bb,MAAAA,SAAS,IAAI,CAACsF,kBAAd,IAAoCtF,SAAS,CAAC,IAAD,CAA7C;AACD,KAFD,MAEO;AACLA,MAAAA,SAAS,IAAIsF,kBAAb,IAAmCtF,SAAS,CAAC,KAAD,CAA5C;AACD;;AACD,QAAIhC,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAACsC,KAAD,CAAR;AACD;AACF,GATD;;AAUA,SACE1C,uCAAA,QAAA;AACEE,IAAAA,GAAG,EAAEA,GADP;oBAEgBuG,cAAc,KAAK,OAFnC;AAGET,IAAAA,IAAI,EAAC,MAHP;AAIEzF,IAAAA,SAAS,EAAC,yCAJZ;AAKEH,IAAAA,QAAQ,EAAEmC,YALZ;AAMEW,IAAAA,KAAK,EAAEA;AANT,KAOM3B,IAPN,EADF;AAWD,CA1C4B,CAA7B;;ACzEA8G,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 u=s(a),c=s(t),f=s(n);function p(){return p=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},p.apply(this,arguments)}function m(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","onChangeInput","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","validationVariant","feedback","validationFeedback","label","hideCalendarButton","hideCalendar","hideValidationFeedback","id"],v=["value","onClick","onFocus","onKeyDown","variant","feedback","style","disableLabelAnimation","disabled","label","readOnly","id","prepend","className","hideCalendarButton","inputId","onChangeInput","onKeyDownInput","onBlurInput"];t.registerLocale("nb",d.nb);var y=[{name:"offset",enabled:!0,options:{offset:[0,0]}}],h=u.default.forwardRef((function(t,n){var r=t.selectedDate,o=void 0===r?null:r,s=t.onChange,v=t.onChangeInput,h=t.placeholder,k=void 0===h?"dd.mm.yyyy":h,g=t.className,I=t.style,w=t.readOnly,N=t.disableLabelAnimation,F=void 0!==N&&N,E=t.locale,L=void 0===E?"nb":E,A=t.prepend,O=t.disabled,_=t.variant,B=t.validationVariant,M=void 0===B?"error":B,T=t.feedback,x=t.validationFeedback,R=void 0===x?"Ugyldig dato":x,D=t.label,q=t.hideCalendarButton,P=void 0!==q&&q,V=t.hideCalendar,H=void 0!==V&&V,K=t.hideValidationFeedback,S=void 0!==K&&K,j=t.id,G=m(t,b),U=a.useState(!1),W=U[0],z=U[1],J=a.useState(""),Q=J[0],X=J[1],Y=a.useState(""),Z=Y[0],$=Y[1],ee=e.useRandomId("eds-datepicker"),ae=l.useInputGroupContext(),te=ae.isFilled,ne=ae.setFilled;e.useOnMount((function(){o&&(ne&&!te&&ne(!0),le(o,void 0))})),u.default.useEffect((function(){o?ne&&!te&&ne(!0):ne&&te&&ne(!1)}),[o,ne,te]);var le=function(e,a){if(e?ne&&!te&&ne(!0):ne&&te&&ne(!1),s){s(e,a);var t=null==e?void 0:e.toLocaleDateString("no-NO",{day:"2-digit",month:"2-digit",year:"numeric"});X(null!=t?t:""),$(null!=t?t:"")}},re=function(e){if(W)z(!1);else{var a=e.target.value;a&&ie(a)}},ie=function(e){var a=i.parse(e,"dd.MM.yyyy",new Date,{locale:d.nb}),t=4===Q.slice(Q.lastIndexOf(".")+1).length;i.isValid(a)&&t?(z(!1),$(Q)):(z(!0),X(Z))};return u.default.createElement(c.default,p({className:f.default(g),calendarClassName:"eds-datepicker__calender",selected:o,onChange:le,showWeekNumbers:!0,dateFormat:["dd.MM.yyyy","ddMMyyyy","dd/MM/yyyy"],showPopperArrow:!1,placeholderText:k,readOnly:w,id:ee,ariaLabelledBy:ee,disabled:O,locale:L,popperModifiers:y,onBlur:re,onChangeRaw:function(e){z(!1),X(e.target.value),v&&v(e.target.value)},onCalendarOpen:function(){return z(!1)},value:Q,open:!0!==H&&G.open},G,{customInput:u.default.createElement(C,{style:I,readOnly:w,variant:T&&_?_:!S&&W?M:void 0,feedback:T||(!S&&W?R:""),label:D,disabled:O,ref:n,"data-cy":G["data-cy"],disableLabelAnimation:F,prepend:A,hideCalendarButton:P,inputId:j,onKeyDownInput:function(e){"Enter"===e.key&&ie(Q)},onBlurInput:re,onChangeInput:v})}))})),C=u.default.forwardRef((function(e,a){var t=e.value,n=e.onClick,i=e.onKeyDown,d=e.variant,s=e.feedback,c=e.style,b=e.disableLabelAnimation,y=e.disabled,h=e.label,C=e.readOnly,k=e.id,g=e.prepend,I=e.className,w=e.hideCalendarButton,N=e.inputId,F=e.onChangeInput,E=e.onKeyDownInput,L=e.onBlurInput,A=m(e,v);return u.default.createElement("span",{className:I,onBlur:L},u.default.createElement(l.BaseFormControl,{style:c,className:"eds-datepicker__form-control",readOnly:C,label:h,labelId:k,feedback:s,variant:d,disabled:y,disableLabelAnimation:b,isFilled:!!t,prepend:g},u.default.createElement("input",p({value:t,onClick:n,readOnly:C,disabled:y,ref:a,className:"eds-form-control",id:N,onKeyDown:E,onChange:F},A)),!w&&u.default.createElement(o.Tooltip,{placement:"top",content:"Åpne kalender",disableHoverListener:y,disableFocusListener:y},u.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"},u.default.createElement(r.CalendarIcon,null)))))})),k=["className","style","label","onChange","feedback","variant","disableLabelAnimation","prepend"],g=["onChange","variant","value"],I=u.default.forwardRef((function(a,t){var n=a.className,i=a.style,d=a.label,o=a.onChange,s=a.feedback,c=a.variant,f=a.disableLabelAnimation,b=a.prepend,v=void 0===b?u.default.createElement(r.DateIcon,{inline:!0}):b,y=m(a,k),h=e.useRandomId("eds-nativetimepicker");return u.default.createElement(l.BaseFormControl,{style:i,className:n,prepend:v,label:d,feedback:s,variant:c,labelId:h,disableLabelAnimation:f,isFilled:!0},u.default.createElement(w,p({onChange:o,"aria-labelledby":h,ref:t,variant:c},y)))})),w=u.default.forwardRef((function(a,t){var n=a.onChange,r=a.variant,i=a.value,d=m(a,g),o=l.useVariant(),s=r||o,c=l.useInputGroupContext(),f=c.isFilled,b=c.setFilled;return e.useOnMount((function(){b&&!f&&b(!0)})),u.default.useEffect((function(){i?b&&!f&&b(!0):b&&f&&b(!1)}),[i,b,f]),u.default.createElement("input",p({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))})),N=["selectedTime","onChange","placeholder","disabled","className","style","label","labelTooltip","feedback","variant","disableLabelAnimation","locale","onLeftArrowClick","onRightArrowClick"],F=["className","onChange","selectedTime","placeholder","timeFormat","dateFormat"],E=["direction"];t.registerLocale("nb",d.nb);var L=u.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,c=a.disabled,f=a.className,b=a.style,v=a.label,y=a.labelTooltip,h=a.feedback,C=a.variant,k=a.disableLabelAnimation,g=a.locale,I=void 0===g?"nb":g,w=a.onLeftArrowClick,F=void 0===w?function(e,a){return e&&d(i.sub(e,{minutes:30}),a)}:w,E=a.onRightArrowClick,L=void 0===E?function(e,a){return e&&d(i.add(e,{minutes:30}),a)}:E,A=m(a,N),B=e.useRandomId("eds-timepicker");return u.default.createElement(l.BaseFormControl,{style:b,ref:t,label:v,labelId:B,labelTooltip:y,variant:C,feedback:h,disableLabelAnimation:k,className:"eds-timepicker-form-control",disabled:c,prepend:u.default.createElement(_,{direction:"left",tabIndex:-1,onClick:function(e){return F(r,e)},disabled:c})},u.default.createElement(O,p({selectedTime:r,onChange:d,placeholder:s,className:f,locale:I,ariaLabelledBy:B,disabled:c},A)),u.default.createElement(_,{direction:"right",tabIndex:-1,onClick:function(e){return L(r,e)},disabled:c}))})),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=m(a,F),y=l.useInputGroupContext(),h=y.isFilled,C=y.setFilled;return e.useOnMount((function(){r&&C&&!h&&C(!0)})),u.default.useEffect((function(){r?C&&!h&&C(!0):C&&h&&C(!1)}),[r,C,h]),u.default.createElement(c.default,p({className:f.default("eds-form-control","eds-timepicker__input",t),calendarClassName:"eds-timepicker",selected:r,onChange:function(e,a){e?C&&!h&&C(!0):C&&h&&C(!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=m(e,E);return u.default.createElement("button",p({className:f.default("eds-timepicker__arrowbutton","eds-timepicker__arrowbutton--"+a),type:"button"},t),u.default.createElement("left"===a?r.LeftArrowIcon:r.RightArrowIcon,null))},B=["className","style","onChange","label","feedback","variant","disableLabelAnimation","prepend"],M=["onChange","value"],T=u.default.forwardRef((function(a,t){var n=a.className,i=a.style,d=a.onChange,o=a.label,s=a.feedback,c=a.variant,f=a.disableLabelAnimation,b=a.prepend,v=void 0===b?u.default.createElement(r.ClockIcon,null):b,y=m(a,B),h=e.useRandomId("eds-nativetimepicker");return u.default.createElement(l.BaseFormControl,{style:i,className:n,prepend:v,label:o,feedback:s,variant:c,labelId:h,disableLabelAnimation:f},u.default.createElement(x,p({onChange:d,"aria-labelledby":h,ref:t},y)))})),x=u.default.forwardRef((function(a,t){var n=a.onChange,r=a.value,i=m(a,M),d=l.useVariant(),o=i.variant||d,s=l.useInputGroupContext(),c=s.isFilled,f=s.setFilled;return e.useOnMount((function(){f&&!c&&f(!0)})),u.default.useEffect((function(){r?f&&!c&&f(!0):f&&c&&f(!1)}),[r,f,c]),u.default.createElement("input",p({ref:t,"aria-invalid":"error"===o,type:"time",className:"eds-form-control eds-native-date-picker",onChange:function(e){l.isFilled(e.target)?f&&!c&&f(!0):f&&c&&f(!1),n&&n(e)},value:r},i))}));e.warnAboutMissingStyles("datepicker","form","icons"),exports.DatePicker=h,exports.NativeDatePicker=I,exports.NativeTimePicker=T,exports.TimePicker=L;
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 u=s(a),c=s(t),f=s(n);function p(){return p=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},p.apply(this,arguments)}function m(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","onChangeInput","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","validationVariant","feedback","validationFeedback","label","hideCalendarButton","hideCalendar","hideValidationFeedback","id"],v=["value","onClick","onFocus","onKeyDown","variant","feedback","style","disableLabelAnimation","disabled","label","readOnly","id","prepend","className","hideCalendarButton","inputId","onChangeInput","onKeyDownInput","onBlurInput"];t.registerLocale("nb",d.nb);var y=[{name:"offset",enabled:!0,options:{offset:[0,0]}}],h=u.default.forwardRef((function(t,n){var r=t.selectedDate,o=void 0===r?null:r,s=t.onChange,v=t.onChangeInput,h=t.placeholder,k=void 0===h?"dd.mm.yyyy":h,g=t.className,I=t.style,w=t.readOnly,N=t.disableLabelAnimation,F=void 0!==N&&N,E=t.locale,L=void 0===E?"nb":E,A=t.prepend,O=t.disabled,_=t.variant,T=t.validationVariant,B=void 0===T?"error":T,x=t.feedback,M=t.validationFeedback,R=void 0===M?"Ugyldig dato":M,D=t.label,q=t.hideCalendarButton,P=void 0!==q&&q,V=t.hideCalendar,H=void 0!==V&&V,K=t.hideValidationFeedback,S=void 0!==K&&K,j=t.id,G=m(t,b),U=a.useState(!1),W=U[0],z=U[1],J=a.useState(""),Q=J[0],X=J[1],Y=a.useState(""),Z=Y[0],$=Y[1],ee=e.useRandomId("eds-datepicker"),ae=l.useInputGroupContext(),te=ae.isFilled,ne=ae.setFilled;u.default.useEffect((function(){o?ne&&!te&&ne(!0):ne&&te&&ne(!1),le(o,void 0)}),[o,ne,te]);var le=function(e,a){if(e?ne&&!te&&ne(!0):ne&&te&&ne(!1),s){s(e,a);var t=null==e?void 0:e.toLocaleDateString("no-NO",{day:"2-digit",month:"2-digit",year:"numeric"});X(null!=t?t:""),$(null!=t?t:"")}},re=function(e){if(W)z(!1);else{var a=e.target.value;a&&ie(a)}},ie=function(e){var a=i.parse(e,"dd.MM.yyyy",new Date,{locale:d.nb}),t=4===Q.slice(Q.lastIndexOf(".")+1).length;i.isValid(a)&&t?(z(!1),$(Q)):(z(!0),X(Z))};return u.default.createElement(c.default,p({className:f.default(g),calendarClassName:"eds-datepicker__calender",selected:o,onChange:le,showWeekNumbers:!0,dateFormat:["dd.MM.yyyy","ddMMyyyy","dd/MM/yyyy"],showPopperArrow:!1,placeholderText:k,readOnly:w,id:ee,ariaLabelledBy:ee,disabled:O,locale:L,popperModifiers:y,onBlur:re,onChangeRaw:function(e){z(!1),X(e.target.value),v&&v(e.target.value)},onCalendarOpen:function(){return z(!1)},value:Q,open:!0!==H&&G.open},G,{customInput:u.default.createElement(C,{style:I,readOnly:w,variant:x&&_?_:!S&&W?B:void 0,feedback:x||(!S&&W?R:""),label:D,disabled:O,ref:n,"data-cy":G["data-cy"],disableLabelAnimation:F,prepend:A,hideCalendarButton:P,inputId:j,onKeyDownInput:function(e){"Enter"===e.key&&(e.currentTarget.value?ie(Q):z(!1))},onBlurInput:re,onChangeInput:v})}))})),C=u.default.forwardRef((function(e,a){var t=e.value,n=e.onClick,i=e.onKeyDown,d=e.variant,s=e.feedback,c=e.style,b=e.disableLabelAnimation,y=e.disabled,h=e.label,C=e.readOnly,k=e.id,g=e.prepend,I=e.className,w=e.hideCalendarButton,N=e.inputId,F=e.onChangeInput,E=e.onKeyDownInput,L=e.onBlurInput,A=m(e,v);return u.default.createElement("span",{className:I,onBlur:L},u.default.createElement(l.BaseFormControl,{style:c,className:"eds-datepicker__form-control",readOnly:C,label:h,labelId:k,feedback:s,variant:d,disabled:y,disableLabelAnimation:b,isFilled:!!t,prepend:g},u.default.createElement("input",p({value:t,onClick:n,readOnly:C,disabled:y,ref:a,className:"eds-form-control",id:N,onKeyDown:E,onChange:F},A)),!w&&u.default.createElement(o.Tooltip,{placement:"top",content:"Åpne kalender",disableHoverListener:y,disableFocusListener:y},u.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"},u.default.createElement(r.CalendarIcon,null)))))})),k=["className","style","label","onChange","feedback","variant","disableLabelAnimation","prepend"],g=["onChange","variant","value"],I=u.default.forwardRef((function(a,t){var n=a.className,i=a.style,d=a.label,o=a.onChange,s=a.feedback,c=a.variant,f=a.disableLabelAnimation,b=a.prepend,v=void 0===b?u.default.createElement(r.DateIcon,{inline:!0}):b,y=m(a,k),h=e.useRandomId("eds-nativetimepicker");return u.default.createElement(l.BaseFormControl,{style:i,className:n,prepend:v,label:d,feedback:s,variant:c,labelId:h,disableLabelAnimation:f,isFilled:!0},u.default.createElement(w,p({onChange:o,"aria-labelledby":h,ref:t,variant:c},y)))})),w=u.default.forwardRef((function(a,t){var n=a.onChange,r=a.variant,i=a.value,d=m(a,g),o=l.useVariant(),s=r||o,c=l.useInputGroupContext(),f=c.isFilled,b=c.setFilled;return e.useOnMount((function(){b&&!f&&b(!0)})),u.default.useEffect((function(){i?b&&!f&&b(!0):b&&f&&b(!1)}),[i,b,f]),u.default.createElement("input",p({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))})),N=["selectedTime","onChange","placeholder","disabled","className","style","label","labelTooltip","feedback","variant","disableLabelAnimation","locale","onLeftArrowClick","onRightArrowClick"],F=["className","onChange","selectedTime","placeholder","timeFormat","dateFormat"],E=["direction"];t.registerLocale("nb",d.nb);var L=u.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,c=a.disabled,f=a.className,b=a.style,v=a.label,y=a.labelTooltip,h=a.feedback,C=a.variant,k=a.disableLabelAnimation,g=a.locale,I=void 0===g?"nb":g,w=a.onLeftArrowClick,F=void 0===w?function(e,a){return e&&d(i.sub(e,{minutes:30}),a)}:w,E=a.onRightArrowClick,L=void 0===E?function(e,a){return e&&d(i.add(e,{minutes:30}),a)}:E,A=m(a,N),T=e.useRandomId("eds-timepicker");return u.default.createElement(l.BaseFormControl,{style:b,ref:t,label:v,labelId:T,labelTooltip:y,variant:C,feedback:h,disableLabelAnimation:k,className:"eds-timepicker-form-control",disabled:c,prepend:u.default.createElement(_,{direction:"left",tabIndex:-1,onClick:function(e){return F(r,e)},disabled:c})},u.default.createElement(O,p({selectedTime:r,onChange:d,placeholder:s,className:f,locale:I,ariaLabelledBy:T,disabled:c},A)),u.default.createElement(_,{direction:"right",tabIndex:-1,onClick:function(e){return L(r,e)},disabled:c}))})),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=m(a,F),y=l.useInputGroupContext(),h=y.isFilled,C=y.setFilled;return e.useOnMount((function(){r&&C&&!h&&C(!0)})),u.default.useEffect((function(){r?C&&!h&&C(!0):C&&h&&C(!1)}),[r,C,h]),u.default.createElement(c.default,p({className:f.default("eds-form-control","eds-timepicker__input",t),calendarClassName:"eds-timepicker",selected:r,onChange:function(e,a){e?C&&!h&&C(!0):C&&h&&C(!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=m(e,E);return u.default.createElement("button",p({className:f.default("eds-timepicker__arrowbutton","eds-timepicker__arrowbutton--"+a),type:"button"},t),u.default.createElement("left"===a?r.LeftArrowIcon:r.RightArrowIcon,null))},T=["className","style","onChange","label","feedback","variant","disableLabelAnimation","prepend"],B=["onChange","value"],x=u.default.forwardRef((function(a,t){var n=a.className,i=a.style,d=a.onChange,o=a.label,s=a.feedback,c=a.variant,f=a.disableLabelAnimation,b=a.prepend,v=void 0===b?u.default.createElement(r.ClockIcon,null):b,y=m(a,T),h=e.useRandomId("eds-nativetimepicker");return u.default.createElement(l.BaseFormControl,{style:i,className:n,prepend:v,label:o,feedback:s,variant:c,labelId:h,disableLabelAnimation:f},u.default.createElement(M,p({onChange:d,"aria-labelledby":h,ref:t},y)))})),M=u.default.forwardRef((function(a,t){var n=a.onChange,r=a.value,i=m(a,B),d=l.useVariant(),o=i.variant||d,s=l.useInputGroupContext(),c=s.isFilled,f=s.setFilled;return e.useOnMount((function(){f&&!c&&f(!0)})),u.default.useEffect((function(){r?f&&!c&&f(!0):f&&c&&f(!1)}),[r,f,c]),u.default.createElement("input",p({ref:t,"aria-invalid":"error"===o,type:"time",className:"eds-form-control eds-native-date-picker",onChange:function(e){l.isFilled(e.target)?f&&!c&&f(!0):f&&c&&f(!1),n&&n(e)},value:r},i))}));e.warnAboutMissingStyles("datepicker","form","icons"),exports.DatePicker=h,exports.NativeDatePicker=I,exports.NativeTimePicker=x,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 /**\n * Kalles når innholdet i inputfeltet endres\n */\n onChangeInput?: (value: string) => 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 /**\n * Varselmelding, som vil komme under DatePicker\n */\n feedback?: string;\n /** Valideringsvariant\n */\n variant?: VariantType;\n /** Varselmelding for når datoen er på feil format\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om feil datoformat\n * @default \"error\"\n */\n validationVariant?: VariantType;\n style?: React.CSSProperties;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Tekst eller ikon som kommer før inputfelter\n * @default <DateIcon />\n */\n prepend?: React.ReactNode;\n /** 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 hideValidationFeedback?: 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' | 'onChangeRaw'>;\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 onChangeInput,\n placeholder = 'dd.mm.yyyy',\n className,\n style,\n readOnly,\n disableLabelAnimation = false,\n locale = 'nb',\n prepend,\n disabled,\n variant,\n validationVariant = 'error',\n feedback,\n validationFeedback = 'Ugyldig dato',\n label,\n hideCalendarButton = false,\n hideCalendar = false,\n hideValidationFeedback = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const [showValidationFeedback, setShowValidationFeedback] = 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 setShowValidationFeedback(false);\n setCurrentValue(event.target.value);\n if (onChangeInput) onChangeInput(event.target.value);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (showValidationFeedback) {\n setShowValidationFeedback(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 setShowValidationFeedback(true);\n setCurrentValue(lastValidValue);\n } else {\n setShowValidationFeedback(false);\n setLastValidValue(currentValue);\n }\n };\n\n const displayedFeedback = (): string => {\n if (feedback) return feedback;\n if (!hideValidationFeedback && showValidationFeedback)\n return validationFeedback;\n return '';\n };\n\n const displayedVariant = (): string | undefined => {\n if (feedback && variant) return variant;\n if (!hideValidationFeedback && showValidationFeedback)\n return validationVariant;\n return undefined;\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={() => setShowValidationFeedback(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={displayedVariant()}\n feedback={displayedFeedback()}\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 onChangeInput={onChangeInput}\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 onChangeInput,\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 onChange={onChangeInput}\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","onChangeInput","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","validationVariant","feedback","validationFeedback","label","hideCalendarButton","hideCalendar","hideValidationFeedback","id","rest","useState","showValidationFeedback","setShowValidationFeedback","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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"}
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 { 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 /**\n * Kalles når innholdet i inputfeltet endres\n */\n onChangeInput?: (value: string) => 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 /**\n * Varselmelding, som vil komme under DatePicker\n */\n feedback?: string;\n /** Valideringsvariant\n */\n variant?: VariantType;\n /** Varselmelding for når datoen er på feil format\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om feil datoformat\n * @default \"error\"\n */\n validationVariant?: VariantType;\n style?: React.CSSProperties;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Tekst eller ikon som kommer før inputfelter\n * @default <DateIcon />\n */\n prepend?: React.ReactNode;\n /** 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 hideValidationFeedback?: 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' | 'onChangeRaw'>;\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 onChangeInput,\n placeholder = 'dd.mm.yyyy',\n className,\n style,\n readOnly,\n disableLabelAnimation = false,\n locale = 'nb',\n prepend,\n disabled,\n variant,\n validationVariant = 'error',\n feedback,\n validationFeedback = 'Ugyldig dato',\n label,\n hideCalendarButton = false,\n hideCalendar = false,\n hideValidationFeedback = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const [showValidationFeedback, setShowValidationFeedback] = 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 React.useEffect(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n handleChange(selectedDate, undefined);\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 setShowValidationFeedback(false);\n setCurrentValue(event.target.value);\n if (onChangeInput) onChangeInput(event.target.value);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (showValidationFeedback) {\n setShowValidationFeedback(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 const inputValue = event.currentTarget.value;\n if (event.key === 'Enter') {\n if (inputValue) validateInput(currentValue);\n else setShowValidationFeedback(false);\n }\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 setShowValidationFeedback(false);\n setLastValidValue(currentValue);\n } else {\n setShowValidationFeedback(true);\n setCurrentValue(lastValidValue);\n }\n };\n\n const displayedFeedback = (): string => {\n if (feedback) return feedback;\n if (!hideValidationFeedback && showValidationFeedback)\n return validationFeedback;\n return '';\n };\n\n const displayedVariant = (): string | undefined => {\n if (feedback && variant) return variant;\n if (!hideValidationFeedback && showValidationFeedback)\n return validationVariant;\n return undefined;\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={() => setShowValidationFeedback(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={displayedVariant()}\n feedback={displayedFeedback()}\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 onChangeInput={onChangeInput}\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 onChangeInput,\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 onChange={onChangeInput}\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","onChangeInput","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","validationVariant","feedback","validationFeedback","label","hideCalendarButton","hideCalendar","hideValidationFeedback","id","rest","useState","showValidationFeedback","setShowValidationFeedback","currentValue","setCurrentValue","lastValidValue","setLastValidValue","datepickerId","useRandomId","useInputGroupContext","isDatepickerFilled","isFilled","setFiller","setFilled","useEffect","handleChange","undefined","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","currentTarget","onBlurInput","onClick","onKeyDown","BaseFormControl","labelId","Tooltip","placement","content","disableHoverListener","disableFocusListener","type","CalendarIcon","NativeDatePicker","DateIcon","inline","nativedatepickerId","NativeDatePickerBase","contextVariant","useVariant","currentVariant","useOnMount","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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"}
@@ -101,18 +101,14 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
101
101
  isDatepickerFilled = _useInputGroupContext.isFilled,
102
102
  setFiller = _useInputGroupContext.setFilled;
103
103
 
104
- useOnMount(function () {
105
- if (selectedDate) {
106
- setFiller && !isDatepickerFilled && setFiller(true);
107
- handleChange(selectedDate, undefined);
108
- }
109
- });
110
104
  React.useEffect(function () {
111
105
  if (selectedDate) {
112
106
  setFiller && !isDatepickerFilled && setFiller(true);
113
107
  } else {
114
108
  setFiller && isDatepickerFilled && setFiller(false);
115
109
  }
110
+
111
+ handleChange(selectedDate, undefined);
116
112
  }, [selectedDate, setFiller, isDatepickerFilled]);
117
113
 
118
114
  var handleChange = function handleChange(date, event) {
@@ -150,7 +146,11 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
150
146
  };
151
147
 
152
148
  var handleKeyDownInput = function handleKeyDownInput(event) {
153
- if (event.key === 'Enter') validateInput(currentValue);
149
+ var inputValue = event.currentTarget.value;
150
+
151
+ if (event.key === 'Enter') {
152
+ if (inputValue) validateInput(currentValue);else setShowValidationFeedback(false);
153
+ }
154
154
  };
155
155
 
156
156
  var validateInput = function validateInput(inputValue) {
@@ -160,12 +160,12 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
160
160
  var yearIsFourCharacters = currentValue.slice(currentValue.lastIndexOf('.') + 1).length === 4;
161
161
  var isValidDate = isValid(parsedDate) && yearIsFourCharacters;
162
162
 
163
- if (!isValidDate) {
164
- setShowValidationFeedback(true);
165
- setCurrentValue(lastValidValue);
166
- } else {
163
+ if (isValidDate) {
167
164
  setShowValidationFeedback(false);
168
165
  setLastValidValue(currentValue);
166
+ } else {
167
+ setShowValidationFeedback(true);
168
+ setCurrentValue(lastValidValue);
169
169
  }
170
170
  };
171
171
 
@@ -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 /**\n * Kalles når innholdet i inputfeltet endres\n */\n onChangeInput?: (value: string) => 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 /**\n * Varselmelding, som vil komme under DatePicker\n */\n feedback?: string;\n /** Valideringsvariant\n */\n variant?: VariantType;\n /** Varselmelding for når datoen er på feil format\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om feil datoformat\n * @default \"error\"\n */\n validationVariant?: VariantType;\n style?: React.CSSProperties;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Tekst eller ikon som kommer før inputfelter\n * @default <DateIcon />\n */\n prepend?: React.ReactNode;\n /** 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 hideValidationFeedback?: 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' | 'onChangeRaw'>;\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 onChangeInput,\n placeholder = 'dd.mm.yyyy',\n className,\n style,\n readOnly,\n disableLabelAnimation = false,\n locale = 'nb',\n prepend,\n disabled,\n variant,\n validationVariant = 'error',\n feedback,\n validationFeedback = 'Ugyldig dato',\n label,\n hideCalendarButton = false,\n hideCalendar = false,\n hideValidationFeedback = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const [showValidationFeedback, setShowValidationFeedback] = 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 setShowValidationFeedback(false);\n setCurrentValue(event.target.value);\n if (onChangeInput) onChangeInput(event.target.value);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (showValidationFeedback) {\n setShowValidationFeedback(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 setShowValidationFeedback(true);\n setCurrentValue(lastValidValue);\n } else {\n setShowValidationFeedback(false);\n setLastValidValue(currentValue);\n }\n };\n\n const displayedFeedback = (): string => {\n if (feedback) return feedback;\n if (!hideValidationFeedback && showValidationFeedback)\n return validationFeedback;\n return '';\n };\n\n const displayedVariant = (): string | undefined => {\n if (feedback && variant) return variant;\n if (!hideValidationFeedback && showValidationFeedback)\n return validationVariant;\n return undefined;\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={() => setShowValidationFeedback(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={displayedVariant()}\n feedback={displayedFeedback()}\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 onChangeInput={onChangeInput}\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 onChangeInput,\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 onChange={onChangeInput}\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","onChangeInput","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","validationVariant","feedback","validationFeedback","label","hideCalendarButton","hideCalendar","hideValidationFeedback","id","rest","useState","showValidationFeedback","setShowValidationFeedback","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","displayedFeedback","displayedVariant","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 { 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 /**\n * Kalles når innholdet i inputfeltet endres\n */\n onChangeInput?: (value: string) => 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 /**\n * Varselmelding, som vil komme under DatePicker\n */\n feedback?: string;\n /** Valideringsvariant\n */\n variant?: VariantType;\n /** Varselmelding for når datoen er på feil format\n * @default \"Ugyldig dato\"\n */\n validationFeedback?: string;\n /** Valideringsvariant for melding om feil datoformat\n * @default \"error\"\n */\n validationVariant?: VariantType;\n style?: React.CSSProperties;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Tekst eller ikon som kommer før inputfelter\n * @default <DateIcon />\n */\n prepend?: React.ReactNode;\n /** 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 hideValidationFeedback?: 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' | 'onChangeRaw'>;\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 onChangeInput,\n placeholder = 'dd.mm.yyyy',\n className,\n style,\n readOnly,\n disableLabelAnimation = false,\n locale = 'nb',\n prepend,\n disabled,\n variant,\n validationVariant = 'error',\n feedback,\n validationFeedback = 'Ugyldig dato',\n label,\n hideCalendarButton = false,\n hideCalendar = false,\n hideValidationFeedback = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const [showValidationFeedback, setShowValidationFeedback] = 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 React.useEffect(() => {\n if (selectedDate) {\n setFiller && !isDatepickerFilled && setFiller(true);\n } else {\n setFiller && isDatepickerFilled && setFiller(false);\n }\n handleChange(selectedDate, undefined);\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 setShowValidationFeedback(false);\n setCurrentValue(event.target.value);\n if (onChangeInput) onChangeInput(event.target.value);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (showValidationFeedback) {\n setShowValidationFeedback(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 const inputValue = event.currentTarget.value;\n if (event.key === 'Enter') {\n if (inputValue) validateInput(currentValue);\n else setShowValidationFeedback(false);\n }\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 setShowValidationFeedback(false);\n setLastValidValue(currentValue);\n } else {\n setShowValidationFeedback(true);\n setCurrentValue(lastValidValue);\n }\n };\n\n const displayedFeedback = (): string => {\n if (feedback) return feedback;\n if (!hideValidationFeedback && showValidationFeedback)\n return validationFeedback;\n return '';\n };\n\n const displayedVariant = (): string | undefined => {\n if (feedback && variant) return variant;\n if (!hideValidationFeedback && showValidationFeedback)\n return validationVariant;\n return undefined;\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={() => setShowValidationFeedback(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={displayedVariant()}\n feedback={displayedFeedback()}\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 onChangeInput={onChangeInput}\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 onChangeInput,\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 onChange={onChangeInput}\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","onChangeInput","placeholder","className","style","readOnly","disableLabelAnimation","locale","prepend","disabled","variant","validationVariant","feedback","validationFeedback","label","hideCalendarButton","hideCalendar","hideValidationFeedback","id","rest","useState","showValidationFeedback","setShowValidationFeedback","currentValue","setCurrentValue","lastValidValue","setLastValidValue","datepickerId","useRandomId","useInputGroupContext","isDatepickerFilled","isFilled","setFiller","setFilled","useEffect","handleChange","undefined","date","event","dateString","toLocaleDateString","day","month","year","handleChangeRaw","target","value","handleBlur","inputValue","validateInput","handleKeyDownInput","currentTarget","key","parsedDate","parse","Date","yearIsFourCharacters","slice","lastIndexOf","length","isValidDate","isValid","displayedFeedback","displayedVariant","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","useOnMount","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,99 +828,6 @@
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. */
924
831
  .eds-datepicker__calender {
925
832
  font-family: var(--eds-font-family);
926
833
  color: #181c56;
@@ -1174,4 +1081,97 @@
1174
1081
 
1175
1082
  .eds-native-date-picker {
1176
1083
  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.4",
3
+ "version": "0.11.5",
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": "c672c8396ce0c3d436746e4299680137488d579d"
39
+ "gitHead": "bac1c320b3de1c10ab25a76ebb15b0cce989a27d"
40
40
  }