Properties of the template engine component

interface IOneProps<
    Data = IAnything,
    Payload = IAnything,
    Field = IField<Data, Payload>,
> {
    apiRef?: any;
    baseline?: boolean;
    blur?: (
        name: string,
        data: Data,
        payload: Payload,
        onValueChange: (value: Value) => void,
        onChange: (data: Data) => void,
    ) => void;
    change?: (Data: Data, initial: boolean) => void;
    changeSubject?: TSubject<Data>;
    className?: string;
    click?: (
        name: string,
        data: Data,
        payload: Payload,
        onValueChange: (value: Value) => void,
        onChange: (data: Data) => void,
        e: MouseEvent,
    ) => void | Promise<void>;
    context?: Record<string, any>;
    createField?: (entity: IEntity<Data>, currentPath: string) => ReactElement;
    createLayout?: (
        entity: IEntity<Data>,
        children: ReactNode,
        currentPath: string,
    ) => ReactElement;
    dirty?: boolean;
    disabled?: boolean;
    fallback?: (e: Error) => void;
    features?: string[];
    fieldDebounce?: number;
    fields: Field[];
    focus?: (
        name: string,
        data: Data,
        payload: Payload,
        onValueChange: (value: Value) => void,
        onChange: (data: Data) => void,
    ) => void;
    handler?: OneHandler<Data, Payload>;
    incomingTransform?: (data: any, payload: Payload) => Data;
    invalidity?: (name: string, msg: string, payload: Payload) => void;
    isBaseline?: (field: IField) => boolean;
    isBaselineForRoot?: (field: IField) => boolean;
    loadEnd?: (isOk: boolean, source: string) => void;
    loadStart?: (source: string) => void;
    menu?: (
        name: string,
        action: string,
        data: Data,
        payload: Payload,
        onValueChange: (value: Value) => void,
        onChange: (data: Data) => void,
    ) => void;
    noBaseline?: boolean;
    outgoingTransform?: (data: any, payload: Payload) => Data;
    outlinePaper?: boolean;
    payload?: Payload | () => Payload;
    prefix?: string;
    readonly?: boolean;
    readTransform?: (
        value: Value,
        name: string,
        data: Data,
        payload: Payload,
    ) => Value;
    ready?: () => void;
    reloadSubject?: TSubject<void>;
    slots?: Partial<ISlotFactoryContext>;
    style?: any;
    sx?: any;
    transparentPaper?: boolean;
    updateSubject?: TSubject<Data>;
    withNamedPlaceholders?: boolean;
    writeTransform?: (
        value: Value,
        name: string,
        data: Data,
        payload: Payload,
    ) => Value;
}

Type Parameters

Properties

apiRef?: any

Ссылка на объект API

baseline?: boolean

Привязывет поля к нижнему краю

blur?: (
    name: string,
    data: Data,
    payload: Payload,
    onValueChange: (value: Value) => void,
    onChange: (data: Data) => void,
) => void
change?: (Data: Data, initial: boolean) => void

Вызывается после изменения и передает измененный объект прикладному программисту

changeSubject?: TSubject<Data>

Эмиттер для перезаписи данных. Вызывает change(data, true)

className?: string

Класс корневой группы

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

Коллбек для перехвата клика по полю

context?: Record<string, any>

Контекст кастомных полей, в отличие от payload доступен к change detection

createField?: (entity: IEntity<Data>, currentPath: string) => ReactElement

Фабрика для создания полей пользователя

createLayout?: (
    entity: IEntity<Data>,
    children: ReactNode,
    currentPath: string,
) => ReactElement

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

dirty?: boolean

Если флаг включен, показываем валидацию до фокусировки по полю

disabled?: boolean

Отключает поля ввода

fallback?: (e: Error) => void

Вызывается при ошибке в handler

features?: string[]

Список бизнес-функций, ограничивающий отображение полей

fieldDebounce?: number

Debounce для FieldType.Text

fields: Field[]

Массив полей, выводимый в компоненте

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

Вызываются при фокусировки по филду в компоненте и потере фокуса

handler?: OneHandler<Data, Payload>

Позволяет загружать данные в компонент

incomingTransform?: (data: any, payload: Payload) => Data

Методы для преобразования целевого объекта, например сериализации/десереализации, чтобы хранить в data страницы строку, синхронизируемую через AJAX

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

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

isBaseline?: (field: IField) => boolean

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

isBaselineForRoot?: (field: IField) => boolean

Корневой компонент привязывает поля к нижнему краю только если нет ни одной компоновки

loadEnd?: (isOk: boolean, source: string) => void
loadStart?: (source: string) => void

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

menu?: (
    name: string,
    action: string,
    data: Data,
    payload: Payload,
    onValueChange: (value: Value) => void,
    onChange: (data: Data) => void,
) => void

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

noBaseline?: boolean

Привязывает поля и компоновки к верхнему краю

outgoingTransform?: (data: any, payload: Payload) => Data
outlinePaper?: boolean

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

payload?: Payload | () => Payload

Объект, передающийся в пользовательские поля через контекст

prefix?: string

Префикс для формирования ключей элементов

readonly?: boolean

Блокирует ввод данных

readTransform?: (
    value: Value,
    name: string,
    data: Data,
    payload: Payload,
) => Value

crypt/decrypt значения, получаемого в makeField из управляемого объекта

ready?: () => void

Вызывается, когда все поля успели отрисоваться в первый раз, после появления формы

reloadSubject?: TSubject<void>

Эмиттер для запроса данных

slots?: Partial<ISlotFactoryContext>

Слоты для полей ввода

style?: any

Стиль корневой группы

sx?: any

SX для корневой группы

transparentPaper?: boolean
updateSubject?: TSubject<Data>

Эмиттер для изменения данных. Вызывает change(data, false)

withNamedPlaceholders?: boolean

Генерирует плейсхолдеры согласно схеме полей целевого объекта

writeTransform?: (
    value: Value,
    name: string,
    data: Data,
    payload: Payload,
) => Value