@noaestudio/forms
Version:
Dynamic forms extension for Covalent
98 lines (97 loc) • 2.88 kB
TypeScript
import { Provider } from '@angular/core';
import { ValidatorFn, FormControl } from '@angular/forms';
export declare enum TdDynamicType {
Text = "text",
Boolean = "boolean",
Number = "number",
Array = "array",
Date = "date",
}
export declare enum TdDynamicElement {
Input = "input",
Datepicker = "datepicker",
Password = "password",
Textarea = "textarea",
Slider = "slider",
SlideToggle = "slide-toggle",
Checkbox = "checkbox",
Select = "select",
FileInput = "file-input",
TextEditor = "text-editor",
ColorPicker = "color-picker",
TimePicker = "time-picker",
DateTimePicker = "date-time-picker",
Organization = "organization",
GallerySelector = "gallery-selector",
TreeSelector = "tree-selector",
EditableTable = "editable-table",
ChipSelector = "chip-selector",
}
export declare enum Visibility {
None = -1,
All = 0,
Add = 1,
Edit = 2,
}
export interface ITdDynamicElementValidator {
validator: ValidatorFn;
}
export interface ITdDynamicElementConfig {
label?: string;
name: string;
type: TdDynamicType | TdDynamicElement;
required?: boolean;
disabled?: boolean;
hidden?: boolean;
min?: any;
max?: any;
minLength?: any;
maxLength?: any;
step?: number;
selections?: string[] | {
value: any;
label: string;
}[];
default?: any;
flex?: number;
validators?: ITdDynamicElementValidator[];
visibility?: Visibility;
selectComplex?: boolean;
selectMultiple?: boolean;
searchable?: boolean;
translate?: boolean;
treeItems?: any;
action?: (value?: any) => Promise<any>;
schema?: any;
draggable?: any;
extras?: any;
extraFields?: string[];
chips?: {
value: any;
label: string;
active: boolean;
}[];
}
export declare const DYNAMIC_ELEMENT_NAME_REGEX: RegExp;
export declare class TdDynamicFormsService {
/**
* Method to validate if the [name] is a proper element name.
* Throws error if name is not valid.
*/
validateDynamicElementName(name: string): void;
/**
* Gets component to be rendered depending on [TdDynamicElement | TdDynamicType]
* Throws error if it does not exists or not supported.
*/
getDynamicElement(element: TdDynamicElement | TdDynamicType, translate?: boolean): any;
/**
* Creates form control for element depending [ITdDynamicElementConfig] properties.
*/
createFormControl(config: ITdDynamicElementConfig): FormControl;
/**
* Creates form validationdepending [ITdDynamicElementConfig] properties.
*/
createValidators(config: ITdDynamicElementConfig): ValidatorFn;
}
export declare function DYNAMIC_FORMS_PROVIDER_FACTORY(parent: TdDynamicFormsService): TdDynamicFormsService;
export declare const DYNAMIC_FORMS_PROVIDER: Provider;