import * as React from 'react'; import { TooltipProps } from '../Tooltip'; import { InputSize, InputStatus, InputValue, MinValue, MaxValue } from '../Input'; export { InputValue, MinValue, MaxValue } from '../Input'; export type NumberInputProps = { /** Applies a data-hook HTML attribute that can be used in the tests */ dataHook?: string; /** Specifies a CSS class name to be appended to the component’s root element */ className?: string; /** Assigns a unique identifier for the root element */ id?: string; ariaControls?: string; ariaDescribedby?: string; ariaLabel?: string; autoFocus?: boolean; autoSelect?: boolean; autocomplete?: string; /** Defines the initial value of an input */ defaultValue?: InputValue; /** Specifies whether input should be disabled or not */ disabled?: boolean; /** Specify the status of a field */ status?: InputStatus; /** Defines the message to display on status icon hover. If not given or empty there will be no tooltip. */ statusMessage?: React.ReactNode; hideStatusSuffix?: boolean; forceFocus?: boolean; forceHover?: boolean; maxLength?: number; menuArrow?: boolean; clearButton?: boolean; focusOnClearClick?: boolean; /** Reference element data when a form is submitted */ name?: string; border?: 'standard' | 'round' | 'bottomLine' | 'none'; noLeftBorderRadius?: boolean; noRightBorderRadius?: boolean; /** Defines a standard input onBlur callback */ onBlur?: React.FocusEventHandler; onClear?: React.MouseEventHandler; onCompositionChange?: (isComposing: boolean) => void; onEnterPressed?: React.KeyboardEventHandler; onEscapePressed?: React.KeyboardEventHandler; /** Defines a standard input onFocus callback */ onFocus?: (e?: React.FocusEvent) => void; onInputClicked?: React.MouseEventHandler; onKeyDown?: React.KeyboardEventHandler; onKeyUp?: React.KeyboardEventHandler; onPaste?: React.ClipboardEventHandler; /** Sets a placeholder message to display */ placeholder?: string; /** Pass a component you want to show as the prefix of the input, e.g., text, icon */ prefix?: React.ReactNode; readOnly?: boolean; disableEditing?: boolean; rtl?: boolean; /** Controls the size of the input */ size?: InputSize; suffix?: React.ReactNode; tabIndex?: number; textOverflow?: 'clip' | 'ellipsis'; tooltipPlacement?: TooltipProps['placement']; type?: string; /** Specifies the current value of the element */ value?: string | number; withSelection?: boolean; required?: boolean; /** Sets a minimum value of an input. Similar to HTML5 min attribute. */ min?: MinValue; /** Sets a maximum value of an input. Similar to html5 max attribute. */ max?: MaxValue; /** Specifies the interval between number values */ step?: number; customInput?: React.ReactNode | Function; pattern?: string; inputRef?: (input: HTMLInputElement) => void; strict?: boolean; /** Specifies whether stepper should be hidden */ hideStepper?: boolean; /** Defines a standard input onChange callback */ onChange?(value: number | null, stringValue: string): void; /** Enables internal validation and defines a message to display when user types invalid value */ invalidMessage?: string; /** Defines a callback function which is called on cases when invalid value is typed. * - return { stringValue: string, { validationType: 'formatError' | 'outOfBoundsError', value: string }} * - `validationType` - type 'formatError' is set when value is in the wrong format * - type 'outOfBoundsError' is set when min or max props are used and value does not match the bounds * - `value` - is set to current input value */ onInvalid?(stringValue: string, { validationType, value, }: { validationType?: 'outOfBoundsError' | 'formatError'; value: string; }): void; }; //# sourceMappingURL=NumberInput.types.d.ts.map