UNPKG

@tutim/types

Version:

form infrastructure for web applications

71 lines (70 loc) 1.55 kB
import { FieldConfig } from './FieldConfig'; import { FormLayout } from './FormLayout'; /** * form configuration * * @remarks * [API](https://docs.tutim.io/) • [Builder](https://tutim.io/) **/ export interface FormConfig { meta?: FormMeta; fields: FieldConfig[]; layout?: FormLayout; logic?: FormLogic; wizard?: Wizard; id?: string; } export declare type PartialFieldConfig = Partial<FieldConfig> & Pick<FieldConfig, 'key'>; /** * form configuration * * @remarks * [API](https://docs.tutim.io/) • [Builder](https://tutim.io/) **/ export interface PartialFormConfig { meta?: FormMeta; fields: PartialFieldConfig[]; layout?: FormLayout; logic?: FormLogic; wizard?: Wizard; id?: string; } export interface FormMeta { title?: string; description?: string; version?: string; } export interface Wizard { steps: WizardStep[]; orientation?: 'horizontal' | 'vertical'; } export interface WizardStep { label: string; fields: string[]; } interface BasicLogic { field: string; operator: string; value: any; } export interface FieldLogic { displayIf?: BasicLogic; } export declare enum Operators { EQUAL = "equal", IN = "in" } export declare type FieldsLogic = Record<string, FieldLogic>; export interface FormLogic { webhook?: { endpoint?: string; }; submissionPage?: { allowResubmit?: boolean; }; fieldsLogic?: FieldsLogic; arrayFieldsLogic?: { [arrayKey: string]: FieldsLogic; }; } export {};