Represents the layout of a component.

interface ILayout<Data extends IAnything = IAnything> {
    autoFocus?: boolean;
    baseline?: boolean;
    blur?: (
        name: string,
        data: Data,
        payload: any,
        onValueChange: (value: Value) => void,
        onChange: (data: Data) => void,
    ) => void;
    bottom?: string | ISizeCallback<Data>;
    buttonColor?:
        | "error"
        | "inherit"
        | "primary"
        | "secondary"
        | "success"
        | "info"
        | "warning";
    buttonSize?: "small"
    | "medium"
    | "large";
    buttonVariant?: "outlined" | "text" | "contained";
    change?: (object: Data, invalidMap: Record<string, boolean>) => void;
    child?: IField<Data, any>;
    children: ReactElement[];
    choose?: (
        data: Data,
        payload: any,
    ) => null | string | string[] | Promise<null | string | string[]>;
    className?: string;
    click?: (
        name: string,
        e: MouseEvent<HTMLElement>,
        data: Data,
        payload: any,
        onValueChange: (value: Value) => void,
        onChange: (data: Data) => void,
    ) => void | Promise<void>;
    columns?: string;
    columnsOverride?: string;
    compute?: (v: Data, payload: any) => Value | Promise<Value>;
    condition?:
        | (data: Data, payload: any) => boolean
        | (data: Data, payload: any) => Promise<boolean>;
    conditionElse?: any;
    conditionLoading?: any;
    customLayout?: (
        props: PropsWithChildren<
            Data & {
                _fieldData: Data;
                _fieldParams: IField;
                _payload: Payload;
                onChange: (data: Partial<Data>) => void;
            },
        >,
    ) => ReactElement;
    debug?: (params: IDebug<Data, any>) => void;
    description?: string;
    desktopBottom?: string | ISizeCallback<Data>;
    desktopColumns?: string;
    desktopHeight?: string | ISizeCallback<Data>;
    desktopHidden?: boolean | (payload: any) => boolean;
    desktopLeft?: string | ISizeCallback<Data>;
    desktopMaxHeight?: string | ISizeCallback<Data>;
    desktopMaxWidth?: string | ISizeCallback<Data>;
    desktopMinHeight?: string | ISizeCallback<Data>;
    desktopMinWidth?: string | ISizeCallback<Data>;
    desktopRight?: string | ISizeCallback<Data>;
    desktopTop?: string | ISizeCallback<Data>;
    desktopWidth?: string | ISizeCallback<Data>;
    dictCreateButton?: any;
    dictDelay?: number;
    dictLimit?: number;
    dictOnAppend?: (
        search: string,
        data: Data,
        payload: any,
        onValueChange: (value: null | string) => void,
        onChange: (value: Data) => void,
    ) => void;
    dictOnItem?: (
        value: null | string,
        data: Data,
        payload: any,
        onValueChange: (value: null | string) => void,
        onChange: (data: Data) => void,
    ) => void;
    dictOnText?: (
        text: string,
        data: Data,
        payload: any,
        onValueChange: (value: null | string) => void,
        onChange: (data: Data) => void,
    ) => void;
    dictSearch?: (
        dto: {
            data: Data;
            initial: boolean;
            limit: number;
            offset: number;
            payload: any;
            rows: ISearchItem<any>[];
            search: string;
        },
    ) => ISearchItem<any>[]
    | Promise<ISearchItem<any>[]>;
    dictSearchItem?: any;
    dictSearchText?: (data: Data, payload: any) => string | Promise<string>;
    dictValue?: (
        value: string,
        data: Data,
        payload: any,
    ) => ISearchItem<any> | Promise<ISearchItem<any>>;
    dirty?: boolean;
    disabled?: boolean;
    element?: any;
    expansionOpened?: boolean;
    fallback: (e: Error) => void;
    features?: string[];
    fieldBottomMargin?: string;
    fieldRightMargin?: string;
    fields?: IField<Data, any>[];
    fileAccept?: string;
    focus?: (
        name: string,
        data: Data,
        payload: any,
        onValueChange: (value: Value) => void,
        onChange: (data: Data) => void,
    ) => void;
    freeSolo?: boolean;
    groupRef?: (element?: null | HTMLDivElement) => void;
    height?: string | ISizeCallback<Data>;
    heroInnerDesktopStyle?: any;
    heroInnerPhoneStyle?: any;
    heroInnerStyle?: any;
    heroInnerTabletStyle?: any;
    heroOuterDesktopStyle?: any;
    heroOuterPhoneStyle?: any;
    heroOuterStyle?: any;
    heroOuterTabletStyle?: any;
    hidden?: boolean | (payload: any) => boolean;
    icon?: any;
    iconBackground?:
        | "error"
        | "inherit"
        | "primary"
        | "secondary"
        | "success"
        | "info"
        | "warning";
    iconColor?: | "error"
    | "inherit"
    | "primary"
    | "secondary"
    | "success"
    | "info"
    | "warning"
    | "default";
    iconSize?: number;
    innerPadding?: string;
    inputAutocomplete?: "new-password"
    | "on"
    | "off"
    | "false";
    inputFormatter?: (input: string) => string;
    inputFormatterAllowed?: RegExp | (char: string, idx: number) => boolean;
    inputFormatterReplace?: (char: string) => null | string;
    inputFormatterSymbol?: string;
    inputFormatterTemplate?: string;
    inputMode?:
        | "search"
        | "text"
        | "email"
        | "tel"
        | "url"
        | "none"
        | "numeric"
        | "decimal";
    inputPattern?: string;
    inputRef?: (element?: null | HTMLInputElement) => void;
    inputRows?: number;
    inputType?:
        | "number"
        | "color"
        | "search"
        | "text"
        | "date"
        | "email"
        | "month"
        | "password"
        | "tel"
        | "time"
        | "url"
        | "week";
    invalidity: (name: string, msg: string, payload: any) => void;
    isBaselineAlign: boolean;
    isDisabled?: (v: Data, payload: any) => boolean;
    isIncorrect?: (v: Data, payload: any) => null | string;
    isInvalid?: (v: Data, payload: any) => null | string;
    isReadonly?: (v: Data, payload: any) => boolean;
    isVisible?: (v: Data, payload: any) => boolean;
    itemList?:
        | string[]
        | (data: Data, payload: any) => string[]
        | (data: Data, payload: any) => Promise<string[]>;
    itemTree?:
        | ITreeNode[]
        | (data: Data, payload: any) => ITreeNode[]
        | (data: Data, payload: any) => Promise<ITreeNode[]>;
    keepRaw?: boolean;
    labelFormatSlider?: (v: number) => string | number;
    labelShrink?: boolean;
    leadingIcon?: any;
    leadingIconClick?: (
        value: Value,
        data: Data,
        payload: any,
        onValueChange: (v: Value) => void,
        onChange: (data: Data) => void,
    ) => void;
    leadingIconRipple?: boolean;
    leadingIconTabIndex?: number;
    left?: string | ISizeCallback<Data>;
    lineTransparent?: boolean;
    map?: (data: Data, payload: any) => Data;
    maxHeight?: string | ISizeCallback<Data>;
    maxPercent?: number;
    maxSlider?: number;
    maxWidth?: string | ISizeCallback<Data>;
    menu?: (
        name: string,
        action: string,
        data: Data,
        payload: any,
        onValueChange: (value: Value) => void,
        onChange: (data: Data) => void,
    ) => void;
    menuItems?: IFieldMenu<any, any>[];
    minHeight?: string | ISizeCallback<Data>;
    minSlider?: number;
    minWidth?: string | ISizeCallback<Data>;
    name?: string;
    noBaseline?: boolean;
    noDeselect?: boolean;
    object: Data;
    outlined?: boolean;
    outlinePaper: boolean;
    phoneBottom?: string | ISizeCallback<Data>;
    phoneColumns?: string;
    phoneHeight?: string | ISizeCallback<Data>;
    phoneHidden?: boolean | (payload: any) => boolean;
    phoneLeft?: string | ISizeCallback<Data>;
    phoneMaxHeight?: string | ISizeCallback<Data>;
    phoneMaxWidth?: string | ISizeCallback<Data>;
    phoneMinHeight?: string | ISizeCallback<Data>;
    phoneMinWidth?: string | ISizeCallback<Data>;
    phoneRight?: string | ISizeCallback<Data>;
    phoneTop?: string | ISizeCallback<Data>;
    phoneWidth?: string | ISizeCallback<Data>;
    placeholder?: string;
    prefix: string;
    progressBarColor?: (v: number) => string;
    progressColor?: (v: number) => string;
    radioValue?: string;
    readonly?: boolean;
    readTransform?: (
        value: Value,
        name: string,
        data: Data,
        payload: any,
    ) => Value;
    ready: () => void;
    right?: string | ISizeCallback<Data>;
    shouldCondition?: (prevData: Data, nextData: Data, payload: any) => boolean;
    shouldRecompute?: (prevData: Data, nextData: Data, payload: any) => boolean;
    shouldUpdateItemList?: (
        prevData: Data,
        currentData: Data,
        payload: any,
    ) => boolean;
    shouldUpdateTr?: (
        prevArgs: [string, Data],
        currentArgs: [string, Data],
        payload: any,
    ) => boolean;
    showPercentLabel?: boolean;
    sliderRailColor?: (v: number) => string;
    sliderSteps?: { label: string; value: number }[];
    sliderThumbColor?: (v: number) => string;
    sliderTrackColor?: (v: number) => string;
    stepSlider?: number;
    style?: any;
    switchActiveLabel?: string;
    switchNoColor?: boolean;
    sx?: any;
    tabBackground?: boolean;
    tabChange?: (idx: number) => void;
    tabColor?: "primary" | "secondary";
    tabIndex?: number;
    tabKeepFlow?: boolean;
    tabletBottom?: string | ISizeCallback<Data>;
    tabletColumns?: string;
    tabletHeight?: string | ISizeCallback<Data>;
    tabletHidden?: boolean | (payload: any) => boolean;
    tabletLeft?: string | ISizeCallback<Data>;
    tabletMaxHeight?: string | ISizeCallback<Data>;
    tabletMaxWidth?: string | ISizeCallback<Data>;
    tabletMinHeight?: string | ISizeCallback<Data>;
    tabletMinWidth?: string | ISizeCallback<Data>;
    tabletRight?: string | ISizeCallback<Data>;
    tabletTop?: string | ISizeCallback<Data>;
    tabletWidth?: string | ISizeCallback<Data>;
    tabLine?: boolean;
    tabList?: string[];
    tabVariant?: "fullWidth" | "standard" | "scrollable";
    testId?: string;
    tip?:
        | string[]
        | (
            value: string,
            data: Data,
            payload: any,
        ) => string[] | Promise<string[]>;
    tipSelect?: (
        value: string,
        data: Data,
        payload: any,
        onChange: (data: Data) => void,
    ) => void;
    title?: string;
    top?: string | ISizeCallback<Data>;
    tr?:
        | (s: string, data: Data, payload: any) => string
        | (s: string, data: Data, payload: any) => Promise<string>;
    trailingIcon?: any;
    trailingIconClick?: (
        value: Value,
        data: Data,
        payload: any,
        onValueChange: (v: Value) => void,
        onChange: (data: Data) => void,
    ) => void;
    trailingIconRipple?: boolean;
    trailingIconTabIndex?: number;
    transparentPaper: boolean;
    type: FieldType;
    typoVariant?:
        | "h1"
        | "h2"
        | "h3"
        | "h4"
        | "h5"
        | "h6"
        | "subtitle1"
        | "subtitle2"
        | "body1"
        | "body2"
        | "caption";
    upload?: (file: File, data: Data, payload: any) => string | Promise<string>;
    validation?: IValidation;
    view?: (file: string, data: Data, payload: any) => void | Promise<void>;
    virtualListBox?: boolean;
    watchItemList?: boolean;
    watchItemTree?: boolean;
    watchOneContext?: boolean;
    width?: string | ISizeCallback<Data>;
    writeTransform?: (
        value: Value,
        name: string,
        data: Data,
        payload: any,
    ) => Value;
}

Type Parameters

Hierarchy (View Summary)

Properties

autoFocus? baseline? blur? bottom? buttonColor? buttonSize? buttonVariant? change? child? children choose? className? click? columns? columnsOverride? compute? condition? conditionElse? conditionLoading? customLayout? debug? description? desktopBottom? desktopColumns? desktopHeight? desktopHidden? desktopLeft? desktopMaxHeight? desktopMaxWidth? desktopMinHeight? desktopMinWidth? desktopRight? desktopTop? desktopWidth? dictCreateButton? dictDelay? dictLimit? dictOnAppend? dictOnItem? dictOnText? dictSearch? dictSearchItem? dictSearchText? dictValue? dirty? disabled? element? expansionOpened? fallback features? fieldBottomMargin? fieldRightMargin? fields? fileAccept? focus? freeSolo? groupRef? height? heroInnerDesktopStyle? heroInnerPhoneStyle? heroInnerStyle? heroInnerTabletStyle? heroOuterDesktopStyle? heroOuterPhoneStyle? heroOuterStyle? heroOuterTabletStyle? hidden? icon? iconBackground? iconColor? iconSize? innerPadding? inputAutocomplete? inputFormatter? inputFormatterAllowed? inputFormatterReplace? inputFormatterSymbol? inputFormatterTemplate? inputMode? inputPattern? inputRef? inputRows? inputType? invalidity isBaselineAlign isDisabled? isIncorrect? isInvalid? isReadonly? isVisible? itemList? itemTree? keepRaw? labelFormatSlider? labelShrink? leadingIcon? leadingIconClick? leadingIconRipple? leadingIconTabIndex? left? lineTransparent? map? maxHeight? maxPercent? maxSlider? maxWidth? menu? menuItems? minHeight? minSlider? minWidth? name? noBaseline? noDeselect? object outlined? outlinePaper phoneBottom? phoneColumns? phoneHeight? phoneHidden? phoneLeft? phoneMaxHeight? phoneMaxWidth? phoneMinHeight? phoneMinWidth? phoneRight? phoneTop? phoneWidth? placeholder? prefix progressBarColor? progressColor? radioValue? readonly? readTransform? ready right? shouldCondition? shouldRecompute? shouldUpdateItemList? shouldUpdateTr? showPercentLabel? sliderRailColor? sliderSteps? sliderThumbColor? sliderTrackColor? stepSlider? style? switchActiveLabel? switchNoColor? sx? tabBackground? tabChange? tabColor? tabIndex? tabKeepFlow? tabletBottom? tabletColumns? tabletHeight? tabletHidden? tabletLeft? tabletMaxHeight? tabletMaxWidth? tabletMinHeight? tabletMinWidth? tabletRight? tabletTop? tabletWidth? tabLine? tabList? tabVariant? testId? tip? tipSelect? title? top? tr? trailingIcon? trailingIconClick? trailingIconRipple? trailingIconTabIndex? transparentPaper type typoVariant? upload? validation? view? virtualListBox? watchItemList? watchItemTree? watchOneContext? width? writeTransform?

Properties

autoFocus?: boolean

Автофокус и постоянное отключение поля

baseline?: boolean

Принудительно включает нижний baseline для текущей компоновки

blur?: (
    name: string,
    data: Data,
    payload: any,
    onValueChange: (value: Value) => void,
    onChange: (data: Data) => void,
) => void
bottom?: string | ISizeCallback<Data>
buttonColor?:
    | "error"
    | "inherit"
    | "primary"
    | "secondary"
    | "success"
    | "info"
    | "warning"

Тип цвета кнопки для FieldType.Button

buttonSize?: "small" | "medium" | "large"

Тип размера кнопки для FieldType.Button

buttonVariant?: "outlined" | "text" | "contained"

Тип заливки кнопки для FieldType.Button

change?: (object: Data, invalidMap: Record<string, boolean>) => void
child?: IField<Data, any>
children: ReactElement[]
choose?: (
    data: Data,
    payload: any,
) => null | string | string[] | Promise<null | string | string[]>

Функция для выбора документа из справочника для useSearchModal

className?: string

Наименование класса для корневого элемента поля (опционально)

click?: (
    name: string,
    e: MouseEvent<HTMLElement>,
    data: Data,
    payload: any,
    onValueChange: (value: Value) => void,
    onChange: (data: Data) => void,
) => void | Promise<void>

Перехват клика по полю, следует использовать для копирования значения у карточек просмотра без редактирования

columns?: string

Колонки для One. Не используются в List (кроме фильтров). Если указано поле columns, то остальные приравниваются к его значению

columnsOverride?: string

Произвольное количество колонок в строке

compute?: (v: Data, payload: any) => Value | Promise<Value>

Функция, применяемая если значение поля вычисляется динамически. Включает readonly.

condition?:
    | (data: Data, payload: any) => boolean
    | (data: Data, payload: any) => Promise<boolean>

Предикат для компоновки Condition

conditionElse?: any

Компонент отображения else для condition

conditionLoading?: any

Компонент отображения загрузки condition

customLayout?: (
    props: PropsWithChildren<
        Data & {
            _fieldData: Data;
            _fieldParams: IField;
            _payload: Payload;
            onChange: (data: Partial<Data>) => void;
        },
    >,
) => ReactElement

Коллбек, позволяющий применить собственную компоновку

debug?: (params: IDebug<Data, any>) => void

Коллбек для отладки

description?: string
desktopBottom?: string | ISizeCallback<Data>
desktopColumns?: string
desktopHeight?: string | ISizeCallback<Data>
desktopHidden?: boolean | (payload: any) => boolean

Исключает группу из DOM древа на компьютере

desktopLeft?: string | ISizeCallback<Data>
desktopMaxHeight?: string | ISizeCallback<Data>
desktopMaxWidth?: string | ISizeCallback<Data>
desktopMinHeight?: string | ISizeCallback<Data>
desktopMinWidth?: string | ISizeCallback<Data>
desktopRight?: string | ISizeCallback<Data>
desktopTop?: string | ISizeCallback<Data>
desktopWidth?: string | ISizeCallback<Data>
dictCreateButton?: any

Функция позволяет переопределить компонент создание записи в словарь из модалки

dictDelay?: number

Позволяет задать задержку для api запросов поля справочника

dictLimit?: number

Позволяет задать limit для поля справочника

dictOnAppend?: (
    search: string,
    data: Data,
    payload: any,
    onValueChange: (value: null | string) => void,
    onChange: (value: Data) => void,
) => void

Поле справочника позволяет создавать новые записи, если поиск не дал результата

dictOnItem?: (
    value: null | string,
    data: Data,
    payload: any,
    onValueChange: (value: null | string) => void,
    onChange: (data: Data) => void,
) => void

Функция вызывается на каждый выбор из модалки. Подразумевается запись в целевой объект. Для контекстного поиска по label, value можно записать в другое поле

dictOnText?: (
    text: string,
    data: Data,
    payload: any,
    onValueChange: (value: null | string) => void,
    onChange: (data: Data) => void,
) => void

Функция вызывается на каждое изменение текста. Подразумевается запись в целевой объект. Для контекстного поиска по label, value можно записать в другое поле

dictSearch?: (
    dto: {
        data: Data;
        initial: boolean;
        limit: number;
        offset: number;
        payload: any;
        rows: ISearchItem<any>[];
        search: string;
    },
) => ISearchItem<any>[]
| Promise<ISearchItem<any>[]>

Обработчик запроса справочника. Если число объектов меньше dictLimit, подразумевается, что все данные выгружены на фронт и новые запросы не выполняются

dictSearchItem?: any

Функция позволяет переопределить компонент элемента списка из модалки

dictSearchText?: (data: Data, payload: any) => string | Promise<string>

Функция позволяет загрузить searchText для выбранного элемента асинхронно

dictValue?: (
    value: string,
    data: Data,
    payload: any,
) => ISearchItem<any> | Promise<ISearchItem<any>>

Функция позволяет загрузить label для выбранного элемента асинхронно

dirty?: boolean

Отменяет ожидание фокуса для валидации

disabled?: boolean
element?: any

Инъекция JSX для ComponentField

expansionOpened?: boolean

Поле для ExpansionLayout

fallback: (e: Error) => void
features?: string[]

Список бизнес-функций, необходимых для отображения поля

fieldBottomMargin?: string
fieldRightMargin?: string

Позволяет выключить отступ. Можно использовать по аналогии с исключением последней запятой при склеивании массива руками, если раздражает

fields?: IField<Data, any>[]

Дочерние поля для групп

fileAccept?: string

mime тип выбираемого файла

focus?: (
    name: string,
    data: Data,
    payload: any,
    onValueChange: (value: Value) => void,
    onChange: (data: Data) => void,
) => void

Коллбеки, вызываемый при фокусировке и потере фокуса. Подразумевается изменение формы со стороны прикладного программиста, а не работа с полем ввода (например, обновление ссылки на изображение)

freeSolo?: boolean

Поле, позволяющее передавать собственные значения в FieldType.Items и FieldType.Combo

groupRef?: (element?: null | HTMLDivElement) => void

Передает ссылку при перерисовках

height?: string | ISizeCallback<Data>
heroInnerDesktopStyle?: any
heroInnerPhoneStyle?: any
heroInnerStyle?: any
heroInnerTabletStyle?: any
heroOuterDesktopStyle?: any
heroOuterPhoneStyle?: any
heroOuterStyle?: any
heroOuterTabletStyle?: any
hidden?: boolean | (payload: any) => boolean

Флаг, убирающий поле из древа отрисовки. Следует использовать для создания динамических значений полей компонента

icon?: any

Иконка для FieldType.Button и FieldType.Icon

iconBackground?:
    | "error"
    | "inherit"
    | "primary"
    | "secondary"
    | "success"
    | "info"
    | "warning"

Цвет фона иконки для FieldType.Icon

iconColor?:
    | "error"
    | "inherit"
    | "primary"
    | "secondary"
    | "success"
    | "info"
    | "warning"
    | "default"

Цвет иконки для FieldType.Icon

iconSize?: number

Размер иконки для FieldType.Icon

innerPadding?: string

Внутренние отступы для Paper

inputAutocomplete?: "new-password" | "on" | "off" | "false"
inputFormatter?: (input: string) => string

Форматтер, преобразующий пользовательский ввод к нужному шаблону

inputFormatterAllowed?: RegExp | (char: string, idx: number) => boolean

Разрешенные к вводу символы

inputFormatterReplace?: (char: string) => null | string

Замена символов для форматерра, например запятую на точку в числе

inputFormatterSymbol?: string

Разделитель шаблона форматтера, по дефолту 0

inputFormatterTemplate?: string

Шаблонов для форматтера

inputMode?:
    | "search"
    | "text"
    | "email"
    | "tel"
    | "url"
    | "none"
    | "numeric"
    | "decimal"

Поле inputmode для MatTextField

inputPattern?: string

Паттерн для MatTextField (inputmode: 'decimal' и pattern: '[0-9.,]+' добавят запятую на iOS клавиатуре)

inputRef?: (element?: null | HTMLInputElement) => void
inputRows?: number

Делает TextField многострочным, если inputRows больше единицы

inputType?:
    | "number"
    | "color"
    | "search"
    | "text"
    | "date"
    | "email"
    | "month"
    | "password"
    | "tel"
    | "time"
    | "url"
    | "week"

Поле type для MatTextField

invalidity: (name: string, msg: string, payload: any) => void

Коллбек, вызываемый у поля при не прохождении валидации

isBaselineAlign: boolean
isDisabled?: (v: Data, payload: any) => boolean

Функция, позволяющая отключить поле, исходя из целевого объекта

isIncorrect?: (v: Data, payload: any) => null | string

Функция, позволяющая огранизовать неблокирующую валидацию. Проверка правописания (spellcheck) должен быть отображен в UI, но не должен блокировать кнопку "Сохранить"

isInvalid?: (v: Data, payload: any) => null | string

Функция, позволяющая организовать валидацию. Если возвращаемое значение не равно null, считается за ошибкую

isReadonly?: (v: Data, payload: any) => boolean

Функция, позволяющая отключить ввод данных в поле, исходя из целевого объекта

isVisible?: (v: Data, payload: any) => boolean

Функция, позволяющая скрыть поле, исходя из целевого объекта

itemList?:
    | string[]
    | (data: Data, payload: any) => string[]
    | (data: Data, payload: any) => Promise<string[]>

Варианты выбора для ComboField и ItemsField

itemTree?:
    | ITreeNode[]
    | (data: Data, payload: any) => ITreeNode[]
    | (data: Data, payload: any) => Promise<ITreeNode[]>

Вариант выбора для TreeField

keepRaw?: boolean

Отключает fulltext фильтр для FieldType.Complete

labelFormatSlider?: (v: number) => string | number
labelShrink?: boolean

Флаг, удерживающий подпись текстового поля при пустом значении

leadingIcon?: any

Иконки для MatTextField

leadingIconClick?: (
    value: Value,
    data: Data,
    payload: any,
    onValueChange: (v: Value) => void,
    onChange: (data: Data) => void,
) => void

При клике на иконку мы можем запросить данные из модального окна, расположенного в коде прикладного программиста. Коллбек получает на вход текущее значение поля и функцию onChange...

leadingIconRipple?: boolean

Ripple эффект для иконок

leadingIconTabIndex?: number

Если нужно убрать фокус после нажатия tab

left?: string | ISizeCallback<Data>
lineTransparent?: boolean

Отключает отчерк у линии

map?: (data: Data, payload: any) => Data

Коллбек для 2Way биндингов. Вызывается если поле валидно перед применением нового целевого объекта при исходящем изменении

maxHeight?: string | ISizeCallback<Data>
maxPercent?: number

Максимальное число для высчитывания процента (минимальное число всегда ноль)

maxSlider?: number
maxWidth?: string | ISizeCallback<Data>
menu?: (
    name: string,
    action: string,
    data: Data,
    payload: any,
    onValueChange: (value: Value) => void,
    onChange: (data: Data) => void,
) => void

Коллбек для обработки клика по элементу контекстного меню

menuItems?: IFieldMenu<any, any>[]

Позволяет создать контекстное меню

minHeight?: string | ISizeCallback<Data>
minSlider?: number

Поля, специфичные для SliderField

minWidth?: string | ISizeCallback<Data>
name?: string

Общие поля. Поле name позволяет задать забор поля из целевого объекта, не нужен для group, expansion и line.

noBaseline?: boolean

Отключает нижний baseline для текущей компоновки

noDeselect?: boolean

Отключает возможность сброса выбора значения для Items и Combo

object: Data
outlined?: boolean
outlinePaper: boolean

Превращает FieldType.Paper в FieldType.Outline

phoneBottom?: string | ISizeCallback<Data>
phoneColumns?: string
phoneHeight?: string | ISizeCallback<Data>
phoneHidden?: boolean | (payload: any) => boolean

Исключает группу из DOM древа на телефоне

phoneLeft?: string | ISizeCallback<Data>
phoneMaxHeight?: string | ISizeCallback<Data>
phoneMaxWidth?: string | ISizeCallback<Data>
phoneMinHeight?: string | ISizeCallback<Data>
phoneMinWidth?: string | ISizeCallback<Data>
phoneRight?: string | ISizeCallback<Data>
phoneTop?: string | ISizeCallback<Data>
phoneWidth?: string | ISizeCallback<Data>
placeholder?: string

placeholder для TextField, ComboField, ItemsField

prefix: string
progressBarColor?: (v: number) => string
progressColor?: (v: number) => string
  • Коллбеки, позволяющие перекрасить ProgressField. Работают только если заданы все вместе
  • ВНИМАНИЕ! Потенциально возможна просадка производительности, так как осуществляет рекомпиляцию стилей material-ui
radioValue?: string

Поле, специфичное для RadioField и позволяющее задать значение при выборе элемента кликом

readonly?: boolean

Флаг только на чтение и "круглой окаймовки"

readTransform?: (value: Value, name: string, data: Data, payload: any) => Value
ready: () => void
right?: string | ISizeCallback<Data>
shouldCondition?: (prevData: Data, nextData: Data, payload: any) => boolean

Позволяет мемоизировать вызов condition

shouldRecompute?: (prevData: Data, nextData: Data, payload: any) => boolean

Позволяет мемоизировать вызов compute

shouldUpdateItemList?: (
    prevData: Data,
    currentData: Data,
    payload: any,
) => boolean

Позволяет мемоизировать список элементов

shouldUpdateTr?: (
    prevArgs: [string, Data],
    currentArgs: [string, Data],
    payload: any,
) => boolean

Позволяет мемоизировать перевод

showPercentLabel?: boolean

Показывает процент числом слева

sliderRailColor?: (v: number) => string
sliderSteps?: { label: string; value: number }[]

Шаги для слайдера

sliderThumbColor?: (v: number) => string
  • Коллбеки, позволяющий перекрасить SliderField. Работают только если заданы все вместе
  • ВНИМАНИЕ! Потенциально возможна просадка производительности, так как осуществляет рекомпиляцию стилей material-ui
sliderTrackColor?: (v: number) => string
stepSlider?: number
style?: any

Стиль корневого элемента для поля (опционально)

switchActiveLabel?: string

Применяет к Switch второй title

switchNoColor?: boolean

Отключает цвет для Switch

sx?: any

Специальное поле только для MUI

tabBackground?: boolean

Закрашивает фон TabLayout в темный цвет

tabChange?: (idx: number) => void

Событие изменения вкладки

tabColor?: "primary" | "secondary"

Цвет вкладок для TabLayout

tabIndex?: number

Номер активной вкладки по-умолчанию

tabKeepFlow?: boolean

Позволяет содержимому растягивать высоту блока у TabLayout

tabletBottom?: string | ISizeCallback<Data>
tabletColumns?: string
tabletHeight?: string | ISizeCallback<Data>
tabletHidden?: boolean | (payload: any) => boolean

Исключает группу из DOM древа на планшете

tabletLeft?: string | ISizeCallback<Data>
tabletMaxHeight?: string | ISizeCallback<Data>
tabletMaxWidth?: string | ISizeCallback<Data>
tabletMinHeight?: string | ISizeCallback<Data>
tabletMinWidth?: string | ISizeCallback<Data>
tabletRight?: string | ISizeCallback<Data>
tabletTop?: string | ISizeCallback<Data>
tabletWidth?: string | ISizeCallback<Data>
tabLine?: boolean

Отделяет табы отчерком у TabLayout

tabList?: string[]

Список вкладок для TabLayout

tabVariant?: "fullWidth" | "standard" | "scrollable"

Вариант вывода вкладок для TabLayout

testId?: string

Атрибут, который будет передат в data-testid корневому элементу компоновки

tip?:
    | string[]
    | (value: string, data: Data, payload: any) => string[] | Promise<string[]>

Подсказки для CompleteField

tipSelect?: (
    value: string,
    data: Data,
    payload: any,
    onChange: (data: Data) => void,
) => void

Коллбек выбора элемента из CompleteField

title?: string

Заголовок и описание, если возможен вывод у поля

top?: string | ISizeCallback<Data>

Свойства для компоновки Hero - инструмента настройки отступов

tr?:
    | (s: string, data: Data, payload: any) => string
    | (s: string, data: Data, payload: any) => Promise<string>

Позволяет перевести значения у ComboField и ItemsField из поле itemList на человеческий, если используются константы

trailingIcon?: any
trailingIconClick?: (
    value: Value,
    data: Data,
    payload: any,
    onValueChange: (v: Value) => void,
    onChange: (data: Data) => void,
) => void
trailingIconRipple?: boolean
trailingIconTabIndex?: number
transparentPaper: boolean
type: FieldType

Тип поля для логического ветвления при рендеринге

typoVariant?:
    | "h1"
    | "h2"
    | "h3"
    | "h4"
    | "h5"
    | "h6"
    | "subtitle1"
    | "subtitle2"
    | "body1"
    | "body2"
    | "caption"

Шрифт для поля Typography

upload?: (file: File, data: Data, payload: any) => string | Promise<string>

Функция для загрузки файла на сервер

validation?: IValidation

Параметры фабрики для создания коллбека isInvalid

view?: (file: string, data: Data, payload: any) => void | Promise<void>
virtualListBox?: boolean

Позволяет включить виртуализацию для FieldType.List и FieldType.Combo

watchItemList?: boolean

Включает change-detection для выпадающих меню. По умолчанию выключено

watchItemTree?: boolean

Включает change-detection для выпадающих меню. По умолчанию выключено

watchOneContext?: boolean

Включает change-detection для поля компонента. По умолчанию выключено

width?: string | ISizeCallback<Data>
writeTransform?: (value: Value, name: string, data: Data, payload: any) => Value