UNPKG

@noaestudio/forms

Version:

Dynamic forms extension for Covalent

98 lines (97 loc) 2.88 kB
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;