UNPKG

@oslokommune/punkt-react

Version:

React komponentbibliotek til Punkt, et designsystem laget av Oslo Origo

113 lines (112 loc) 3.88 kB
import { ChangeEvent, InputHTMLAttributes, ReactNode } from 'react'; import { IDatepickerStrings } from '../../shared-types/datepicker'; import { TPktInputSize } from '../../shared-types/size'; export interface IPktDatepicker extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'> { id: string; label: string; value?: string | string[]; dateformat?: string; multiple?: boolean; maxlength?: number; range?: boolean; showRangeLabels?: boolean; weeknumbers?: boolean; withcontrols?: boolean; excludedates?: string[]; excludeweekdays?: string[]; currentmonth?: string; today?: string; calendarOpen?: boolean; timezone?: string; fullwidth?: boolean; inputSize?: TPktInputSize; hasFieldset?: boolean; inline?: boolean; helptext?: string | ReactNode; helptextDropdown?: string | ReactNode; helptextDropdownButton?: string; hasError?: boolean; errorMessage?: string | ReactNode; optionalTag?: boolean; optionalText?: string; requiredTag?: boolean; requiredText?: string; tagText?: string; useWrapper?: boolean; strings?: IDatepickerStrings; onChange?: (e: ChangeEvent<HTMLInputElement>) => void; onValueChange?: (values: string[]) => void; className?: string; } export interface IDatepickerState { id: string; inputId: string; values: string[]; calendarOpen: boolean; label: string; dateformat: string; multiple: boolean; maxlength?: number; range: boolean; showRangeLabels: boolean; weeknumbers: boolean; withcontrols: boolean; excludedates?: string[]; excludeweekdays?: string[]; disabled: boolean; readOnly: boolean; required: boolean; name?: string; placeholder?: string; fullwidth: boolean; inputSize: TPktInputSize; hasFieldset: boolean; inline: boolean; helptext?: string | ReactNode; helptextDropdown?: string | ReactNode; helptextDropdownButton?: string; hasError: boolean; errorMessage?: string | ReactNode; optionalTag: boolean; optionalText?: string; requiredTag: boolean; requiredText?: string; tagText?: string; useWrapper: boolean; className?: string; minStr?: string; maxStr?: string; effectiveCurrentMonth?: string; today?: string; inputType: string; isIOSDevice: boolean; strings: IDatepickerStrings; inputClasses: string; buttonClasses: string; rangeLabelClasses: string; datepickerInputsClasses: string; isInputDisabled: boolean; hasCounter: boolean; inputRef: React.RefObject<HTMLInputElement | null>; inputRefTo: React.RefObject<HTMLInputElement | null>; changeInputRef: React.RefObject<HTMLInputElement | null>; btnRef: React.RefObject<HTMLButtonElement | null>; wrapperRef: React.RefObject<HTMLDivElement | null>; onChange?: (e: ChangeEvent<HTMLInputElement>) => void; toggleCalendar: () => void; hideCalendar: () => void; handleDateSelected: (selected: string[]) => void; handleCalendarClose: () => void; handleFocus: () => void; handleSingleInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void; handleRangeFromChange: (e: React.ChangeEvent<HTMLInputElement>) => void; handleRangeToChange: (e: React.ChangeEvent<HTMLInputElement>) => void; handleRangeBlur: () => void; handleMultipleBlur: (e: React.FocusEvent<HTMLInputElement>) => void; handleTagRemoved: (date: string) => void; handleSingleKeydown: (e: React.KeyboardEvent<HTMLInputElement>) => void; handleRangeFromKeydown: (e: React.KeyboardEvent<HTMLInputElement>) => void; handleRangeToKeydown: (e: React.KeyboardEvent<HTMLInputElement>) => void; handleMultipleKeydown: (e: React.KeyboardEvent<HTMLInputElement>) => void; restProps: Record<string, unknown>; }