import * as i0 from '@angular/core'; import { Type, Provider, TemplateRef, ChangeDetectorRef, OnInit, OnChanges, ViewContainerRef, SimpleChanges, AfterContentInit, OnDestroy, QueryList } from '@angular/core'; import { ValidatorFn, UntypedFormControl, AbstractControl, UntypedFormGroup } from '@angular/forms'; import { CdkPortal } from '@angular/cdk/portal'; import { IControlValueAccessor } from '@covalent/core/common'; declare enum TdDynamicType { Text = "text", Boolean = "boolean", Number = "number", Array = "array", Date = "date" } declare enum TdDynamicElement { Input = "input", Datepicker = "datepicker", Password = "password", Textarea = "textarea", Slider = "slider", SlideToggle = "slide-toggle", Checkbox = "checkbox", Select = "select", FileInput = "file-input" } interface ITdDynamicElementValidator { validator: ValidatorFn; } interface ITdDynamicElementCustomConfig { [name: string]: any; } interface ITdDynamicElementConfig { label?: string; name: string; hint?: string; type: TdDynamicType | TdDynamicElement | Type; required?: boolean; disabled?: boolean; min?: any; max?: any; minLength?: any; maxLength?: any; selections?: string[] | { value: any; label: string; }[]; multiple?: boolean; default?: any; flex?: number; validators?: ITdDynamicElementValidator[]; customConfig?: ITdDynamicElementCustomConfig; placeholder?: string; } declare const DYNAMIC_ELEMENT_NAME_REGEX: RegExp; 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 | Type | undefined): any; /** * Creates form control for element depending [ITdDynamicElementConfig] properties. */ createFormControl(config: ITdDynamicElementConfig): UntypedFormControl; /** * Creates form validationdepending [ITdDynamicElementConfig] properties. */ createValidators(config: ITdDynamicElementConfig): ValidatorFn | null; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare function DYNAMIC_FORMS_PROVIDER_FACTORY(parent: TdDynamicFormsService): TdDynamicFormsService; declare const DYNAMIC_FORMS_PROVIDER: Provider; declare class TdDynamicElementBase { _changeDetectorRef: ChangeDetectorRef; constructor(_changeDetectorRef: ChangeDetectorRef); } declare const _TdDynamicElementMixinBase: (new (...args: any[]) => IControlValueAccessor) & typeof TdDynamicElementBase; declare class TdDynamicFormsErrorTemplateDirective extends CdkPortal { templateRef: TemplateRef; tdDynamicFormsError?: string; constructor(); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class TdDynamicElementDirective { viewContainer: ViewContainerRef; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class TdDynamicElementComponent extends _TdDynamicElementMixinBase implements IControlValueAccessor, OnInit, OnChanges { private _injector; private _dynamicFormsService; private _instance; /** * Sets form control of the element. */ dynamicControl: AbstractControl; /** * Sets label to be displayed. */ label: string; /** * Sets hint to be displayed. */ hint?: string | undefined; /** * Sets name to be displayed as attribute. */ name: string; /** * Sets type or element of element to be rendered. * Throws error if does not exist or no supported. */ type?: TdDynamicElement | TdDynamicType | Type; /** * Sets required validation checkup (if supported by element). */ required?: boolean | string | undefined; /** * Sets min validation checkup (if supported by element). */ min?: number; /** * Sets max validation checkup (if supported by element). */ max?: number; /** * Sets minLength validation checkup (if supported by element). */ minLength?: number; /** * Sets maxLength validation checkup (if supported by element). */ maxLength?: number; /** * Sets selections for array elements (if supported by element). */ selections?: any[]; /** * Sets multiple property for array elements (if supported by element). */ multiple?: boolean; /** * Sets any additional properties on custom component. */ customConfig?: ITdDynamicElementCustomConfig; /** * Sets error message template so it can be injected into dynamic components. */ errorMessageTemplate: TemplateRef | undefined; /** * Sets the placeholder message */ placeholder?: string | undefined; childElement: TdDynamicElementDirective; get maxAttr(): any; get minAttr(): any; constructor(); ngOnInit(): void; /** * Reassign any inputs that have changed */ ngOnChanges(changes: SimpleChanges): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class TdDynamicFormsComponent implements AfterContentInit, OnDestroy { private _formBuilder; private _dynamicFormsService; private _changeDetectorRef; private _renderedElements; private _elements; private _templateMap; private _destroy$; private _destroyControl$; _errorTemplates: QueryList; dynamicForm: UntypedFormGroup; /** * elements: ITdDynamicElementConfig[] * JS Object that will render the elements depending on its config. * [name] property is required. */ set elements(elements: ITdDynamicElementConfig[]); get elements(): ITdDynamicElementConfig[]; /** * Getter property for dynamic [FormGroup]. */ get form(): UntypedFormGroup; /** * Getter property for [valid] of dynamic [FormGroup]. */ get valid(): boolean; /** * Getter property for [value] of dynamic [FormGroup]. */ get value(): any; /** * Getter property for [errors] of dynamic [FormGroup]. */ get errors(): { [name: string]: any; }; /** * Getter property for [controls] of dynamic [FormGroup]. */ get controls(): { [key: string]: AbstractControl; }; constructor(); ngAfterContentInit(): void; ngOnDestroy(): void; /** * Refreshes the form and rerenders all validator/element modifications. */ refresh(): void; /** * Getter method for error template references */ getErrorTemplateRef(name: string): TemplateRef | undefined; /** * Loads error templates and sets them in a map for faster access. */ private _updateErrorTemplates; private _rerenderElements; private _clearRemovedElements; private _subscribeToControlStatusChanges; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class TdDynamicInputComponent { control: UntypedFormControl; label: string; hint: string; type: string; required: boolean; name: string; min?: number; max?: number; minLength?: number; maxLength?: number; errorMessageTemplate: TemplateRef; placeholder: string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class TdDynamicFileInputComponent { control: UntypedFormControl; required: boolean; label: string; name: string; hint: string; errorMessageTemplate: TemplateRef; placeholder: string; _handlefileDrop(value: any): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class TdDynamicTextareaComponent { control: UntypedFormControl; label: string; hint: string; name: string; required: boolean; errorMessageTemplate: TemplateRef; placeholder: string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class TdDynamicSlideToggleComponent { control: UntypedFormControl; label: string; name: string; hint: string; required: boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class TdDynamicCheckboxComponent { control: UntypedFormControl; label: string; name: string; hint: string; required: boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class TdDynamicSliderComponent { private _changeDetectorRef; control: UntypedFormControl; label: string; required: boolean; name: string; hint: string; min?: number; max?: number; _handleBlur(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class TdDynamicSelectComponent { control: UntypedFormControl; label: string; hint: string; name: string; required: boolean; selections?: any[]; multiple?: boolean; errorMessageTemplate: TemplateRef; placeholder: string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class TdDynamicDatepickerComponent { control: UntypedFormControl; label: string; hint: string; name: string; type?: string; required: boolean; min?: number; max?: number; errorMessageTemplate: TemplateRef; placeholder: string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class CovalentDynamicFormsModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { CovalentDynamicFormsModule, DYNAMIC_ELEMENT_NAME_REGEX, DYNAMIC_FORMS_PROVIDER, DYNAMIC_FORMS_PROVIDER_FACTORY, TdDynamicCheckboxComponent, TdDynamicDatepickerComponent, TdDynamicElement, TdDynamicElementBase, TdDynamicElementComponent, TdDynamicElementDirective, TdDynamicFileInputComponent, TdDynamicFormsComponent, TdDynamicFormsErrorTemplateDirective, TdDynamicFormsService, TdDynamicInputComponent, TdDynamicSelectComponent, TdDynamicSlideToggleComponent, TdDynamicSliderComponent, TdDynamicTextareaComponent, TdDynamicType, _TdDynamicElementMixinBase }; export type { ITdDynamicElementConfig, ITdDynamicElementCustomConfig, ITdDynamicElementValidator };