UNPKG

wfw-ngx-formly

Version:

ngx-formly is an Angular 2 module which has a Components to help customize and render JavaScript/JSON configured forms. The formly-form Component and the FormlyConfig service are very powerful and bring unmatched maintainability to your application's form

92 lines (91 loc) 3.12 kB
import { InjectionToken } from '@angular/core'; import { ValidationErrors, FormGroup, FormArray, AbstractControl } from '@angular/forms'; import { Field } from './../templates/field'; import { FormlyFieldConfig, FormlyFormOptions } from '../components/formly.field.config'; export declare const FORMLY_CONFIG_TOKEN: InjectionToken<FormlyConfig>; /** * Maintains list of formly field directive types. This can be used to register new field templates. */ export declare class FormlyConfig { types: { [name: string]: TypeOption; }; validators: { [name: string]: ValidatorOption; }; wrappers: { [name: string]: WrapperOption; }; messages: { [name: string]: string | ((error: any, field: FormlyFieldConfig) => string); }; templateManipulators: { preWrapper: ManipulatorWrapper[]; postWrapper: ManipulatorWrapper[]; }; extras: { fieldTransform?: ((fields: FormlyFieldConfig[], model: any, form: FormGroup | FormArray, options: FormlyFormOptions) => FormlyFieldConfig[])[]; showError?: (field: Field) => boolean; }; constructor(configs?: ConfigOption[]); addConfig(config: ConfigOption): void; setType(options: TypeOption | TypeOption[]): void; getType(name: string): TypeOption; getMergedField(field?: FormlyFieldConfig): any; setWrapper(options: WrapperOption): void; getWrapper(name: string): WrapperOption; setTypeWrapper(type: string, name: string): void; setValidator(options: ValidatorOption): void; getValidator(name: string): ValidatorOption; addValidatorMessage(name: string, message: string | ((error: any, field: FormlyFieldConfig) => string)): void; getValidatorMessage(name: string): string | ((error: any, field: FormlyFieldConfig) => string); setManipulator(manipulator: ManipulatorOption): void; private mergeExtendedType(name); } export interface TypeOption { name: string; component?: any; wrappers?: string[]; extends?: string; defaultOptions?: FormlyFieldConfig; } export interface WrapperOption { name: string; component: any; types?: string[]; } export interface FieldValidatorFn { (c: AbstractControl, field: FormlyFieldConfig): ValidationErrors | null; } export interface ValidatorOption { name: string; validation: FieldValidatorFn; } export interface ValidationMessageOption { name: string; message: string | ((error: any, field: FormlyFieldConfig) => string); } export interface ManipulatorOption { class?: { new (): any; }; method?: string; } export interface ManipulatorWrapper { (f: FormlyFieldConfig): string; } export interface TemplateManipulators { preWrapper?: ManipulatorWrapper[]; postWrapper?: ManipulatorWrapper[]; } export interface ConfigOption { types?: TypeOption[]; wrappers?: WrapperOption[]; validators?: ValidatorOption[]; validationMessages?: ValidationMessageOption[]; manipulators?: ManipulatorOption[]; extras?: { fieldTransform?: any; showError?: (field: Field) => boolean; }; }