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
TypeScript
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;
};
}