import { IFormAmount, IFormAutocomplete, IFormCheckbox, IFormChips, IFormDate, IFormFile, IFormInfo, IFormLink, IFormNumber, IFormPassword, IFormRadio, IFormSelect, IFormText, IFormTextarea } from './form-cell'; export interface IFormMaterialElement { changeValues(values: { [k: string]: any; }): (values: any) => void; } export interface IDynamicForm { title?: string; name: string; justified?: boolean; pages: IFormPage[]; formColor?: 'BASIC' | 'PRIMARY' | 'ACCENT' | 'WARN'; formAppearance?: 'LEGACY' | 'STANDARD' | 'FILL' | 'OUTLINE'; buttonColor?: 'BASIC' | 'PRIMARY' | 'ACCENT' | 'WARN'; buttonStyle?: 'BASIC' | 'RAISED' | 'STROKED' | 'FLAT'; buttonResetName?: string; buttonSubmitName?: string; buttonNextName?: string; buttonPrevName?: string; buttonNextAlwaysEnabled?: boolean; buttonSubmitAlwaysPresent?: boolean; showStepper?: boolean; showResetButton?: boolean; stepperStyle?: 'TABS' | 'WIZARD'; readonly?: boolean; language?: string; positionPageLabel?: 'CENTER TOP' | 'END TOP' | 'START TOP' | 'CENTER BOTTOM' | 'END BOTTOM' | 'START BOTTOM' | 'TOP' | 'BOTTOM' | 'CENTER' | 'END' | 'START'; } export interface IFormPage { title?: string; name: string; position?: number; sections: IFormSection[]; } export interface IFormSection { title?: string; name: string; validators?: IFormValidatorSection[]; hidden?: (boolean | string)[]; disabled?: (boolean | string)[]; rows: IFormRow[]; } export interface IFormRow { rowSize?: number; cells: (IFormTextarea | IFormText | IFormPassword | IFormNumber | IFormDate | IFormFile | IFormSelect | IFormChips | IFormRadio | IFormCheckbox | IFormAutocomplete | IFormAmount | IFormLink | IFormInfo)[]; } export interface IFormValidatorSection { value?: any; error?: string; }