material-dynamic-forms
Version:
¡Crea formularios dinámicos, potentes y configurables en Angular usando Material Design! 🚀
98 lines (97 loc) • 2.76 kB
TypeScript
import { ValidatorFn } from '@angular/forms';
export interface IFieldDynamicForm {
key?: string;
value?: any;
valueTOShow?: any;
label: string;
name: string;
type: eDataType.input | eDataType.select | eDataType.date | eDataType.dateMultiple | eDataType.select_search | eDataType.tex_area | eDataType.button | eDataType.button_toggle | eDataType.select_chips | eDataType.select_autocomplete | eDataType.input_autocomplete | eDataType.checkbox;
controlType?: 'button' | 'checkbox' | 'date' | 'email' | 'number' | 'tel' | 'text';
typeModel?: eTypeMOdel.boolean | eTypeMOdel.number;
placeholder?: string;
options?: {
key: string | number | null;
value: string;
filterParam?: string;
[key: string]: any;
}[];
selectedOption?: any;
icon?: string;
visible: boolean;
active?: boolean;
disabled?: boolean;
multiple?: boolean;
validation?: ValidatorFn[];
apiUrl?: string;
dependency?: string;
filterParam?: string;
dateDependency?: string;
startDateName?: string;
endDateName?: string;
minDate?: Date;
maxDate?: Date;
minDateFn?: (value: Date) => Date;
maxDateFn?: (value: Date) => Date;
dateFilterFn?: (d: Date | null) => boolean;
urlParamDependency?: boolean;
urlQueryParam?: boolean;
urlEndParam?: boolean;
colspan?: number;
background?: string;
valueDependency?: {
dependency?: any;
valueDep?: any;
disabled?: boolean;
validation?: ValidatorFn[];
};
valueExcludeDependency?: {
dependency?: any;
valueDep?: any;
disabled?: boolean;
validation?: ValidatorFn[];
};
externalDependencies?: string[];
allOption?: boolean;
subscribeMap?: Function;
inputAutoComplete?: {
suggestions: any[];
showClear?: boolean;
onCompleteMethod?: (event: any) => void;
onSelect?: (event: any) => void;
onClear?: (event: any) => void;
};
}
export declare enum eDataType {
input = 0,
select = 1,
date = 2,
select_search = 3,
range = 4,
button = 5,
checkbox = 6,
dateMultiple = 7,
tex_area = 8,
button_toggle = 9,
select_chips = 10,
select_autocomplete = 11,
input_autocomplete = 12
}
export declare enum eControlType {
button = 0,
checkbox = 1,
date = 2,
email = 3,
number = 4,
tel = 5,
text = 6
}
export declare enum eTypeMOdel {
boolean = 0,
number = 1
}
export interface IFieldGroup {
title?: string;
countColumns?: number;
fields: IFieldDynamicForm[];
isRangeValidator?: boolean;
}