/
kaws
/
ui-kit-ce
Обзор
Документация
Войти
/
kaws
/
ui-kit-ce
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
packages/input-number/src/types.ts
120 строк
3 KB
zavyalov.d.o
refactor: устранение eslint warnings
06 мар 2025, 00:50
06 мар 2025, 00:50
9490b1b
Код
Авторство
О чём код?
import { Item } from './utils' import { InputChangeEvent, InputChangeReason } from '@v-uik/input' export type StringValue<TCanClear extends boolean | unknown = boolean> = { /** * Тип возвращаемого и передаваемого значения. * * @inner */ valueType?: 'string' /** * Значение поля ввода. * * @inner */ value?: string | null /** * Обработчик события изменения. <br/>. * * @param `value` Измененное значение. <br/>. * @param `event` - Инициатор события из обработчика. Имеет или тип `React.ChangeEvent<HTMLInputElement>`, если флаг `canClear` равен `false` <br/> * или тип `InputChangeEvent`, если флаг `canClear` равен `true` <br/>. * @param `reason` Тип изменения значения поля: `input` - пользовательский ввод, `clear` - очищение поля с помощью кнопки очистки. * * @returns */ onChange?: TCanClear extends true ? ( value: string | null, event: InputChangeEvent, reason?: InputChangeReason ) => void : ( value: string | null, event: React.ChangeEvent<HTMLInputElement>, reason?: InputChangeReason ) => void } export type NumberValue<TCanClear extends boolean | unknown = boolean> = { /** * Тип возвращаемого и передаваемого значения. * * @inner */ valueType?: 'number' /** * Значение поля ввода. * * @inner */ value?: number | null /** * Обработчик события изменения. <br/>. * * @param `value` Измененное значение. <br/>. * @param `event` - Инициатор события из обработчика. Имеет или тип `React.ChangeEvent<HTMLInputElement>`, если флаг `canClear` равен `false` <br/> * или тип `InputChangeEvent`, если флаг `canClear` равен `true` <br/>. * @param `reason` Тип изменения значения поля: `input` - пользовательский ввод, `clear` - очищение поля с помощью кнопки очистки. * * @returns */ onChange?: TCanClear extends true ? ( value: number | null, event: InputChangeEvent, reason?: InputChangeReason ) => void : ( value: number | null, event: React.ChangeEvent<HTMLInputElement>, reason?: InputChangeReason ) => void } export type ValueType<TCanClear extends boolean | unknown = boolean> = | NumberValue<TCanClear> | (StringValue<TCanClear> & { /** * * @inner */ valueType?: string }) export interface ISelection { /** * * @inner */ caretPosition: number /** * * @inner */ newInputValue?: string } export interface IParts { /** * * @inner */ negativeSign: Item | null /** * * @inner */ integer: Item[] /** * * @inner */ fraction: Item[] /** * * @inner */ separator: Item | null }