@covalent/dynamic-forms 4.0.0-alpha.0 → 4.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/covalent-dynamic-forms.d.ts +1 -0
- package/dynamic-element.component.d.ts +7 -0
- package/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.d.ts +3 -0
- package/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.d.ts +3 -0
- package/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.scss +1 -0
- package/dynamic-elements/dynamic-file-input/dynamic-file-input.component.d.ts +3 -0
- package/dynamic-elements/dynamic-file-input/dynamic-file-input.component.scss +2 -0
- package/dynamic-elements/dynamic-input/dynamic-input.component.d.ts +3 -0
- package/dynamic-elements/dynamic-input/dynamic-input.component.scss +1 -0
- package/dynamic-elements/dynamic-select/dynamic-select.component.d.ts +3 -0
- package/dynamic-elements/dynamic-select/dynamic-select.component.scss +1 -0
- package/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.d.ts +3 -0
- package/dynamic-elements/dynamic-slider/dynamic-slider.component.d.ts +3 -0
- package/dynamic-elements/dynamic-slider/dynamic-slider.component.scss +2 -0
- package/dynamic-elements/dynamic-textarea/dynamic-textarea.component.d.ts +3 -0
- package/dynamic-elements/dynamic-textarea/dynamic-textarea.component.scss +1 -0
- package/dynamic-forms.component.d.ts +3 -0
- package/dynamic-forms.component.scss +10 -12
- package/dynamic-forms.module.d.ts +27 -0
- package/esm2020/covalent-dynamic-forms.mjs +5 -0
- package/esm2020/dynamic-element.component.mjs +220 -0
- package/esm2020/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.mjs +35 -0
- package/esm2020/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.mjs +58 -0
- package/esm2020/dynamic-elements/dynamic-file-input/dynamic-file-input.component.mjs +84 -0
- package/esm2020/dynamic-elements/dynamic-input/dynamic-input.component.mjs +55 -0
- package/esm2020/dynamic-elements/dynamic-select/dynamic-select.component.mjs +67 -0
- package/esm2020/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.mjs +36 -0
- package/esm2020/dynamic-elements/dynamic-slider/dynamic-slider.component.mjs +62 -0
- package/esm2020/dynamic-elements/dynamic-textarea/dynamic-textarea.component.mjs +50 -0
- package/esm2020/dynamic-forms.component.mjs +220 -0
- package/esm2020/dynamic-forms.module.mjs +118 -0
- package/esm2020/index.mjs +2 -0
- package/esm2020/public_api.mjs +13 -0
- package/esm2020/services/dynamic-forms.service.mjs +125 -0
- package/fesm2015/covalent-dynamic-forms.mjs +1143 -0
- package/fesm2015/covalent-dynamic-forms.mjs.map +1 -0
- package/fesm2020/covalent-dynamic-forms.mjs +1063 -0
- package/fesm2020/covalent-dynamic-forms.mjs.map +1 -0
- package/package.json +29 -12
- package/services/dynamic-forms.service.d.ts +3 -0
- package/bundles/covalent-dynamic-forms.umd.js +0 -1654
- package/bundles/covalent-dynamic-forms.umd.js.map +0 -1
- package/bundles/covalent-dynamic-forms.umd.min.js +0 -16
- package/bundles/covalent-dynamic-forms.umd.min.js.map +0 -1
- package/covalent-dynamic-forms.metadata.json +0 -1
- package/esm2015/covalent-dynamic-forms.js +0 -10
- package/esm2015/dynamic-element.component.js +0 -340
- package/esm2015/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.js +0 -34
- package/esm2015/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.js +0 -49
- package/esm2015/dynamic-elements/dynamic-file-input/dynamic-file-input.component.js +0 -47
- package/esm2015/dynamic-elements/dynamic-input/dynamic-input.component.js +0 -55
- package/esm2015/dynamic-elements/dynamic-select/dynamic-select.component.js +0 -46
- package/esm2015/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.js +0 -34
- package/esm2015/dynamic-elements/dynamic-slider/dynamic-slider.component.js +0 -64
- package/esm2015/dynamic-elements/dynamic-textarea/dynamic-textarea.component.js +0 -40
- package/esm2015/dynamic-forms.component.js +0 -306
- package/esm2015/dynamic-forms.module.js +0 -73
- package/esm2015/index.js +0 -7
- package/esm2015/public_api.js +0 -18
- package/esm2015/services/dynamic-forms.service.js +0 -201
- package/fesm2015/covalent-dynamic-forms.js +0 -1269
- package/fesm2015/covalent-dynamic-forms.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"covalent-dynamic-forms.mjs","sources":["../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-input/dynamic-input.component.ts","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-input/dynamic-input.component.html","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-file-input/dynamic-file-input.component.html","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-file-input/dynamic-file-input.component.ts","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-textarea/dynamic-textarea.component.ts","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-textarea/dynamic-textarea.component.html","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.ts","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.html","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.ts","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.html","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-slider/dynamic-slider.component.html","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-slider/dynamic-slider.component.ts","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-select/dynamic-select.component.html","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-select/dynamic-select.component.ts","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.ts","../../../../src/platform/dynamic-forms/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.html","../../../../src/platform/dynamic-forms/services/dynamic-forms.service.ts","../../../../src/platform/dynamic-forms/dynamic-element.component.ts","../../../../src/platform/dynamic-forms/dynamic-forms.component.html","../../../../src/platform/dynamic-forms/dynamic-forms.component.ts","../../../../src/platform/dynamic-forms/dynamic-forms.module.ts","../../../../src/platform/dynamic-forms/covalent-dynamic-forms.ts"],"sourcesContent":["import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-input',\n styleUrls: ['./dynamic-input.component.scss'],\n templateUrl: './dynamic-input.component.html',\n})\nexport class TdDynamicInputComponent {\n control: FormControl;\n\n label: string = '';\n\n hint: string = '';\n\n type: string = undefined;\n\n required: boolean = undefined;\n\n name: string = '';\n\n min: number = undefined;\n\n max: number = undefined;\n\n minLength: number = undefined;\n\n maxLength: number = undefined;\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n}\n","<div class=\"td-dynamic-input-wrapper\">\n <mat-form-field class=\"td-dynamic-input-field\">\n <mat-label>{{ label }}</mat-label>\n <input\n #elementInput\n matInput\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [type]=\"type\"\n [required]=\"required\"\n [attr.name]=\"name\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.minLength]=\"minLength\"\n [attr.maxLength]=\"maxLength\"\n />\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]=\"errorMessageTemplate\"\n [ngTemplateOutletContext]=\"{ control: control, errors: control?.errors }\"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n</div>\n","<div class=\"td-dynamic-file-input-wrapper\">\n <mat-form-field\n tdFileDrop\n class=\"td-dynamic-file-input-field\"\n floatLabel=\"never\"\n [disabled]=\"control?.disabled\"\n (fileDrop)=\"_handlefileDrop($event)\"\n (click)=\"!control?.disabled && fileInput.inputElement.click()\"\n (keyup.enter)=\"!control?.disabled && fileInput.inputElement.click()\"\n (keyup.delete)=\"fileInput.clear()\"\n (keyup.backspace)=\"fileInput.clear()\"\n >\n <mat-label>{{ label }}</mat-label>\n <input\n matInput\n [value]=\"control?.value?.name\"\n [placeholder]=\"placeholder\"\n [attr.name]=\"name\"\n [disabled]=\"control?.disabled\"\n readonly\n />\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]=\"errorMessageTemplate\"\n [ngTemplateOutletContext]=\"{ control: control, errors: control?.errors }\"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n <button mat-icon-button *ngIf=\"control.value\" (click)=\"fileInput.clear()\" (keyup.enter)=\"fileInput.clear()\">\n <mat-icon>cancel</mat-icon>\n </button>\n <td-file-input class=\"td-file-input\" #fileInput [formControl]=\"control\">\n <mat-icon>folder</mat-icon>\n <span>{{ label }}</span>\n </td-file-input>\n</div>\n","import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-file-input',\n styleUrls: ['./dynamic-file-input.component.scss'],\n templateUrl: './dynamic-file-input.component.html',\n})\nexport class TdDynamicFileInputComponent {\n control: FormControl;\n\n required: boolean = undefined;\n\n label: string = '';\n\n name: string = '';\n\n hint: string = '';\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n\n _handlefileDrop(value: File): void {\n this.control.setValue(value);\n }\n}\n","import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-textarea',\n styleUrls: ['./dynamic-textarea.component.scss'],\n templateUrl: './dynamic-textarea.component.html',\n})\nexport class TdDynamicTextareaComponent {\n control: FormControl;\n\n label: string = '';\n\n hint: string = '';\n\n name: string = '';\n\n required: boolean = undefined;\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n}\n","<div class=\"td-dynamic-textarea-wrapper\">\n <mat-form-field class=\"td-dynamic-textarea-field\">\n <mat-label>{{ label }}</mat-label>\n <textarea\n #elementInput\n matInput\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [attr.name]=\"name\"\n rows=\"4\"\n ></textarea>\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]=\"errorMessageTemplate\"\n [ngTemplateOutletContext]=\"{ control: control, errors: control?.errors }\"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n</div>\n","import { Component } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-slide-toggle',\n styleUrls: ['./dynamic-slide-toggle.component.scss'],\n templateUrl: './dynamic-slide-toggle.component.html',\n})\nexport class TdDynamicSlideToggleComponent {\n control: FormControl;\n\n label: string = '';\n\n name: string = '';\n\n hint: string = '';\n\n required: boolean = false;\n}\n","<div class=\"td-dynamic-slide-toggle-wrapper\">\n <mat-slide-toggle [formControl]=\"control\" [attr.name]=\"name\" [required]=\"required\">\n {{ label }}\n </mat-slide-toggle>\n <span class=\"mat-hint td-dynamic-element-hint\">{{ hint }}</span>\n</div>\n","import { Component } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-checkbox',\n styleUrls: ['./dynamic-checkbox.component.scss'],\n templateUrl: './dynamic-checkbox.component.html',\n})\nexport class TdDynamicCheckboxComponent {\n control: FormControl;\n\n label: string = '';\n\n name: string = '';\n\n hint: string = '';\n\n required: boolean = false;\n}\n","<div class=\"td-dynamic-checkbox-wrapper\">\n <mat-checkbox [formControl]=\"control\" [name]=\"name\" [required]=\"required\">\n {{ label }}\n </mat-checkbox>\n <span class=\"mat-hint td-dynamic-element-hint\">{{ hint }}</span>\n</div>\n","<div\n class=\"td-dynamic-slider-wrapper mat-form-field mat-form-field-can-float mat-form-field-should-float\"\n [class.mat-focused]=\"slider._isActive\"\n>\n <span class=\"mat-form-field-label-wrapper\">\n <label class=\"mat-form-field-label mat-primary td-slider-label\">\n {{ label }}\n <span *ngIf=\"required && !control?.disabled\" class=\"mat-form-field-required-marker\">*</span>\n </label>\n </span>\n <div class=\"td-dynamic-slider-field\">\n <mat-slider\n #slider\n class=\"td-dynamic-slider\"\n [formControl]=\"control\"\n [attr.name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n thumbLabel\n tickInterval=\"auto\"\n [required]=\"required\"\n (blur)=\"_handleBlur()\"\n ></mat-slider>\n </div>\n <span class=\"mat-hint td-dynamic-element-hint\">{{ hint }}</span>\n</div>\n","import { Component, ChangeDetectorRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-slider',\n styleUrls: ['./dynamic-slider.component.scss'],\n templateUrl: './dynamic-slider.component.html',\n})\nexport class TdDynamicSliderComponent {\n control: FormControl;\n\n label: string = '';\n\n required: boolean = undefined;\n\n name: string = '';\n\n hint: string = '';\n\n min: number = undefined;\n\n max: number = undefined;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n _handleBlur(): void {\n setTimeout(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n}\n","<div class=\"td-dynamic-select-wrapper\">\n <mat-form-field class=\"td-dynamic-select-field\">\n <mat-label>{{ label }}</mat-label>\n <mat-select\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [attr.name]=\"name\"\n [multiple]=\"multiple\"\n >\n <mat-option *ngFor=\"let selection of selections\" [value]=\"selection.value || selection\">\n {{ selection.label || selection }}\n </mat-option>\n </mat-select>\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]=\"errorMessageTemplate\"\n [ngTemplateOutletContext]=\"{ control: control, errors: control?.errors }\"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n</div>\n","import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-select',\n styleUrls: ['./dynamic-select.component.scss'],\n templateUrl: './dynamic-select.component.html',\n})\nexport class TdDynamicSelectComponent {\n control: FormControl;\n\n label: string = '';\n\n hint: string = '';\n\n name: string = '';\n\n required: boolean = undefined;\n\n selections: any[] = undefined;\n\n multiple: boolean = undefined;\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n}\n","import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-datepicker',\n styleUrls: ['./dynamic-datepicker.component.scss'],\n templateUrl: './dynamic-datepicker.component.html',\n})\nexport class TdDynamicDatepickerComponent {\n control: FormControl;\n\n label: string = '';\n\n hint: string = '';\n\n name: string = '';\n\n type: string = undefined;\n\n required: boolean = undefined;\n\n min: number = undefined;\n\n max: number = undefined;\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n}\n","<div class=\"td-dynamic-datepicker-wrapper\">\n <mat-form-field class=\"td-dynamic-datepicker-field\">\n <mat-label>{{ label }}</mat-label>\n <input\n #elementInput\n matInput\n [matDatepicker]=\"dynamicDatePicker\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n />\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]=\"errorMessageTemplate\"\n [ngTemplateOutletContext]=\"{ control: control, errors: control?.errors }\"\n ></ng-template>\n </mat-error>\n <mat-datepicker-toggle matSuffix [for]=\"dynamicDatePicker\"></mat-datepicker-toggle>\n <mat-datepicker #dynamicDatePicker></mat-datepicker>\n </mat-form-field>\n</div>\n","import { Injectable, Provider, SkipSelf, Optional, Type } from '@angular/core';\nimport { Validators, ValidatorFn, FormControl, AbstractControl } from '@angular/forms';\n\nimport { TdDynamicInputComponent } from '../dynamic-elements/dynamic-input/dynamic-input.component';\nimport { TdDynamicFileInputComponent } from '../dynamic-elements/dynamic-file-input/dynamic-file-input.component';\nimport { TdDynamicTextareaComponent } from '../dynamic-elements/dynamic-textarea/dynamic-textarea.component';\nimport { TdDynamicSlideToggleComponent } from '../dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component';\nimport { TdDynamicCheckboxComponent } from '../dynamic-elements/dynamic-checkbox/dynamic-checkbox.component';\nimport { TdDynamicSliderComponent } from '../dynamic-elements/dynamic-slider/dynamic-slider.component';\nimport { TdDynamicSelectComponent } from '../dynamic-elements/dynamic-select/dynamic-select.component';\nimport { TdDynamicDatepickerComponent } from '../dynamic-elements/dynamic-datepicker/dynamic-datepicker.component';\n\nexport enum TdDynamicType {\n Text = 'text',\n Boolean = 'boolean',\n Number = 'number',\n Array = 'array',\n Date = 'date',\n}\n\nexport enum TdDynamicElement {\n Input = 'input',\n Datepicker = 'datepicker',\n Password = 'password',\n Textarea = 'textarea',\n Slider = 'slider',\n SlideToggle = 'slide-toggle',\n Checkbox = 'checkbox',\n Select = 'select',\n FileInput = 'file-input',\n}\n\nexport interface ITdDynamicElementValidator {\n validator: ValidatorFn;\n}\n\n// Property values to be set in custom component\nexport interface ITdDynamicElementCustomConfig {\n [name: string]: any;\n}\n\nexport interface ITdDynamicElementConfig {\n label?: string;\n name: string;\n hint?: string;\n type: TdDynamicType | TdDynamicElement | Type<any>;\n required?: boolean;\n disabled?: boolean;\n min?: any;\n max?: any;\n minLength?: any;\n maxLength?: any;\n selections?: string[] | { value: any; label: string }[];\n multiple?: boolean;\n default?: any;\n flex?: number;\n validators?: ITdDynamicElementValidator[];\n customConfig?: ITdDynamicElementCustomConfig;\n placeholder?: string;\n}\n\nexport const DYNAMIC_ELEMENT_NAME_REGEX: RegExp = /^[^0-9][^\\@]*$/;\n\n@Injectable()\nexport class TdDynamicFormsService {\n /**\n * Method to validate if the [name] is a proper element name.\n * Throws error if name is not valid.\n */\n validateDynamicElementName(name: string): void {\n if (!DYNAMIC_ELEMENT_NAME_REGEX.test(name)) {\n throw new Error('Dynamic element name: \"${name}\" is not valid.');\n }\n }\n\n /**\n * Gets component to be rendered depending on [TdDynamicElement | TdDynamicType]\n * Throws error if it does not exists or not supported.\n */\n getDynamicElement(element: TdDynamicElement | TdDynamicType | Type<any>): any {\n switch (element) {\n case TdDynamicType.Text:\n case TdDynamicType.Number:\n case TdDynamicElement.Input:\n case TdDynamicElement.Password:\n return TdDynamicInputComponent;\n case TdDynamicElement.Textarea:\n return TdDynamicTextareaComponent;\n case TdDynamicType.Boolean:\n case TdDynamicElement.SlideToggle:\n return TdDynamicSlideToggleComponent;\n case TdDynamicElement.Checkbox:\n return TdDynamicCheckboxComponent;\n case TdDynamicElement.Slider:\n return TdDynamicSliderComponent;\n case TdDynamicType.Array:\n case TdDynamicElement.Select:\n return TdDynamicSelectComponent;\n case TdDynamicElement.FileInput:\n return TdDynamicFileInputComponent;\n case TdDynamicElement.Datepicker:\n case TdDynamicType.Date:\n return TdDynamicDatepickerComponent;\n default:\n throw new Error(`Error: type ${element} does not exist or not supported.`);\n }\n }\n\n /**\n * Creates form control for element depending [ITdDynamicElementConfig] properties.\n */\n createFormControl(config: ITdDynamicElementConfig): FormControl {\n const validator: ValidatorFn = this.createValidators(config);\n return new FormControl({ value: config.default, disabled: config.disabled }, validator);\n }\n\n /**\n * Creates form validationdepending [ITdDynamicElementConfig] properties.\n */\n createValidators(config: ITdDynamicElementConfig): ValidatorFn {\n let validator: ValidatorFn;\n if (config.required) {\n validator = Validators.required;\n }\n if (config.max || config.max === 0) {\n validator = Validators.compose([validator, Validators.max(parseFloat(config.max))]);\n }\n if (config.min || config.min === 0) {\n validator = Validators.compose([validator, Validators.min(parseFloat(config.min))]);\n }\n if (config.maxLength || config.maxLength === 0) {\n validator = Validators.compose([validator, Validators.maxLength(parseFloat(config.maxLength))]);\n }\n if (config.minLength || config.minLength === 0) {\n validator = Validators.compose([validator, Validators.minLength(parseFloat(config.minLength))]);\n }\n // Add provided custom validators to the validator function\n if (config.validators) {\n config.validators.forEach((validatorConfig: ITdDynamicElementValidator) => {\n validator = Validators.compose([validator, validatorConfig.validator]);\n });\n }\n return validator;\n }\n}\n\nexport function DYNAMIC_FORMS_PROVIDER_FACTORY(parent: TdDynamicFormsService): TdDynamicFormsService {\n return parent || new TdDynamicFormsService();\n}\n\nexport const DYNAMIC_FORMS_PROVIDER: Provider = {\n // If there is already a service available, use that. Otherwise, provide a new one.\n provide: TdDynamicFormsService,\n deps: [[new Optional(), new SkipSelf(), TdDynamicFormsService]],\n useFactory: DYNAMIC_FORMS_PROVIDER_FACTORY,\n};\n","import {\n Component,\n Directive,\n Input,\n HostBinding,\n OnInit,\n SimpleChanges,\n OnChanges,\n TemplateRef,\n ChangeDetectorRef,\n Type,\n} from '@angular/core';\nimport { ViewChild, ViewContainerRef } from '@angular/core';\nimport { ComponentFactoryResolver, ComponentRef, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\nimport { TemplatePortalDirective } from '@angular/cdk/portal';\n\nimport { mixinControlValueAccessor, IControlValueAccessor } from '@covalent/core/common';\n\nimport {\n TdDynamicElement,\n TdDynamicType,\n TdDynamicFormsService,\n ITdDynamicElementCustomConfig,\n} from './services/dynamic-forms.service';\n\nexport class TdDynamicElementBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n/* tslint:disable-next-line */\nexport const _TdDynamicElementMixinBase = mixinControlValueAccessor(TdDynamicElementBase);\n\n@Directive({ selector: '[tdDynamicFormsError]ng-template' })\nexport class TdDynamicFormsErrorTemplateDirective extends TemplatePortalDirective {\n @Input() tdDynamicFormsError: string;\n constructor(public templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\n@Directive({\n selector: '[tdDynamicContainer]',\n})\nexport class TdDynamicElementDirective {\n constructor(public viewContainer: ViewContainerRef) {}\n}\n\n@Component({\n providers: [\n TdDynamicFormsService,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdDynamicElementComponent),\n multi: true,\n },\n ],\n selector: 'td-dynamic-element',\n template: '<div tdDynamicContainer></div>',\n})\nexport class TdDynamicElementComponent\n extends _TdDynamicElementMixinBase\n implements IControlValueAccessor, OnInit, OnChanges\n{\n private _instance: any;\n\n /**\n * Sets form control of the element.\n */\n @Input() dynamicControl: FormControl;\n\n /**\n * Sets label to be displayed.\n */\n @Input() label: string = '';\n\n /**\n * Sets hint to be displayed.\n */\n @Input() hint: string = '';\n\n /**\n * Sets name to be displayed as attribute.\n */\n @Input() name: string = '';\n\n /**\n * Sets type or element of element to be rendered.\n * Throws error if does not exist or no supported.\n */\n @Input() type: TdDynamicElement | TdDynamicType | Type<any> = undefined;\n\n /**\n * Sets required validation checkup (if supported by element).\n */\n @Input() required: boolean = undefined;\n\n /**\n * Sets min validation checkup (if supported by element).\n */\n @Input() min: number = undefined;\n\n /**\n * Sets max validation checkup (if supported by element).\n */\n @Input() max: number = undefined;\n\n /**\n * Sets minLength validation checkup (if supported by element).\n */\n @Input() minLength: number = undefined;\n\n /**\n * Sets maxLength validation checkup (if supported by element).\n */\n @Input() maxLength: number = undefined;\n\n /**\n * Sets selections for array elements (if supported by element).\n */\n @Input() selections: any[] = undefined;\n\n /**\n * Sets multiple property for array elements (if supported by element).\n */\n @Input() multiple: boolean = undefined;\n\n /**\n * Sets any additional properties on custom component.\n */\n @Input() customConfig: ITdDynamicElementCustomConfig;\n\n /**\n * Sets error message template so it can be injected into dynamic components.\n */\n @Input() errorMessageTemplate: TemplateRef<any> = undefined;\n\n /**\n * Sets the placeholder message\n */\n @Input() placeholder: string = '';\n\n @ViewChild(TdDynamicElementDirective, { static: true }) childElement: TdDynamicElementDirective;\n\n @HostBinding('attr.max')\n get maxAttr(): any {\n return this.max;\n }\n\n @HostBinding('attr.min')\n get minAttr(): any {\n return this.min;\n }\n\n constructor(\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _dynamicFormsService: TdDynamicFormsService,\n _changeDetectorRef: ChangeDetectorRef,\n ) {\n super(_changeDetectorRef);\n }\n\n ngOnInit(): void {\n const component: any =\n <any>this.type instanceof Type ? this.type : this._dynamicFormsService.getDynamicElement(this.type);\n const ref: ComponentRef<any> = this._componentFactoryResolver\n .resolveComponentFactory(component)\n .create(this.childElement.viewContainer.injector);\n this.childElement.viewContainer.insert(ref.hostView);\n this._instance = ref.instance;\n this._instance.control = this.dynamicControl;\n this._instance.label = this.label;\n this._instance.hint = this.hint;\n this._instance.name = this.name;\n this._instance.type = this.type;\n this._instance.value = this.value;\n this._instance.required = this.required;\n this._instance.min = this.min;\n this._instance.max = this.max;\n this._instance.minLength = this.minLength;\n this._instance.maxLength = this.maxLength;\n this._instance.selections = this.selections;\n this._instance.multiple = this.multiple;\n this._instance.errorMessageTemplate = this.errorMessageTemplate;\n this._instance.placeholder = this.placeholder;\n if (this.customConfig) {\n Object.getOwnPropertyNames(this.customConfig).forEach((name: string) => {\n this._instance[name] = this.customConfig[name];\n });\n }\n }\n\n /**\n * Reassign any inputs that have changed\n */\n ngOnChanges(changes: SimpleChanges): void {\n if (this._instance) {\n for (const prop of Object.keys(changes)) {\n this._instance[prop] = changes[prop].currentValue;\n }\n }\n }\n}\n","<form [formGroup]=\"dynamicForm\" novalidate>\n <div class=\"td-dynamic-form-wrapper\">\n <ng-template let-element ngFor [ngForOf]=\"elements\">\n <div\n class=\"td-dynamic-element-wrapper\"\n [style.max-width.%]=\"element.flex ? element.flex : 100\"\n [style.flex]=\"'1 1 ' + (element.flex ? element.flex : 100) + '%'\"\n [style.-ms-flex]=\"'1 1 ' + (element.flex ? element.flex : 100) + '%'\"\n [style.-webkit-box-flex]=\"1\"\n >\n <td-dynamic-element\n #dynamicElement\n *ngIf=\"dynamicForm.controls[element.name]\"\n [formControlName]=\"element.name\"\n [dynamicControl]=\"dynamicForm.controls[element.name]\"\n [id]=\"element.name\"\n [name]=\"element.name\"\n [label]=\"element.label || element.name\"\n [hint]=\"element.hint\"\n [type]=\"element.type\"\n [required]=\"element.required\"\n [min]=\"element.min\"\n [max]=\"element.max\"\n [minLength]=\"element.minLength\"\n [maxLength]=\"element.maxLength\"\n [selections]=\"element.selections\"\n [multiple]=\"element.multiple\"\n [customConfig]=\"element.customConfig\"\n [errorMessageTemplate]=\"getErrorTemplateRef(element.name)\"\n [placeholder]=\"element.placeholder\"\n ></td-dynamic-element>\n </div>\n </ng-template>\n </div>\n <ng-content></ng-content>\n</form>\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ContentChildren,\n TemplateRef,\n QueryList,\n AfterContentInit,\n OnDestroy,\n} from '@angular/core';\nimport { FormGroup, FormBuilder, AbstractControl } from '@angular/forms';\n\nimport { TdDynamicFormsService, ITdDynamicElementConfig } from './services/dynamic-forms.service';\nimport { TdDynamicFormsErrorTemplateDirective } from './dynamic-element.component';\n\nimport { timer, Subject, Observable } from 'rxjs';\nimport { takeUntil, filter } from 'rxjs/operators';\n\n@Component({\n selector: 'td-dynamic-forms',\n templateUrl: './dynamic-forms.component.html',\n styleUrls: ['./dynamic-forms.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdDynamicFormsComponent implements AfterContentInit, OnDestroy {\n private _renderedElements: ITdDynamicElementConfig[] = [];\n private _elements: ITdDynamicElementConfig[];\n private _templateMap: Map<string, TemplateRef<any>> = new Map<string, TemplateRef<any>>();\n private _destroy$: Subject<any> = new Subject();\n private _destroyControl$: Subject<string> = new Subject();\n\n @ContentChildren(TdDynamicFormsErrorTemplateDirective, { descendants: true })\n _errorTemplates: QueryList<TdDynamicFormsErrorTemplateDirective>;\n dynamicForm: FormGroup;\n\n /**\n * elements: ITdDynamicElementConfig[]\n * JS Object that will render the elements depending on its config.\n * [name] property is required.\n */\n @Input('elements')\n set elements(elements: ITdDynamicElementConfig[]) {\n if (elements) {\n this._elements = elements;\n } else {\n this._elements = [];\n }\n this._rerenderElements();\n }\n get elements(): ITdDynamicElementConfig[] {\n return this._renderedElements;\n }\n\n /**\n * Getter property for dynamic [FormGroup].\n */\n get form(): FormGroup {\n return this.dynamicForm;\n }\n\n /**\n * Getter property for [valid] of dynamic [FormGroup].\n */\n get valid(): boolean {\n if (this.dynamicForm) {\n return this.dynamicForm.valid;\n }\n return false;\n }\n\n /**\n * Getter property for [value] of dynamic [FormGroup].\n */\n get value(): any {\n if (this.dynamicForm) {\n return this.dynamicForm.value;\n }\n return {};\n }\n\n /**\n * Getter property for [errors] of dynamic [FormGroup].\n */\n get errors(): { [name: string]: any } {\n if (this.dynamicForm) {\n const errors: { [name: string]: any } = {};\n for (const name of Object.keys(this.dynamicForm.controls)) {\n errors[name] = this.dynamicForm.controls[name].errors;\n }\n return errors;\n }\n return {};\n }\n\n /**\n * Getter property for [controls] of dynamic [FormGroup].\n */\n get controls(): { [key: string]: AbstractControl } {\n if (this.dynamicForm) {\n return this.dynamicForm.controls;\n }\n return {};\n }\n\n constructor(\n private _formBuilder: FormBuilder,\n private _dynamicFormsService: TdDynamicFormsService,\n private _changeDetectorRef: ChangeDetectorRef,\n ) {\n this.dynamicForm = this._formBuilder.group({});\n }\n\n ngAfterContentInit(): void {\n this._updateErrorTemplates();\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n this._destroyControl$.complete();\n }\n\n /**\n * Refreshes the form and rerenders all validator/element modifications.\n */\n refresh(): void {\n this._rerenderElements();\n this._updateErrorTemplates();\n }\n\n /**\n * Getter method for error template references\n */\n getErrorTemplateRef(name: string): TemplateRef<any> {\n return this._templateMap.get(name);\n }\n\n /**\n * Loads error templates and sets them in a map for faster access.\n */\n private _updateErrorTemplates(): void {\n this._templateMap = new Map<string, TemplateRef<any>>();\n for (const errorTemplate of this._errorTemplates.toArray()) {\n this._templateMap.set(errorTemplate.tdDynamicFormsError, errorTemplate.templateRef);\n }\n }\n\n private _rerenderElements(): void {\n this._clearRemovedElements();\n this._renderedElements = [];\n const duplicates: string[] = [];\n this._elements.forEach((elem: ITdDynamicElementConfig) => {\n this._dynamicFormsService.validateDynamicElementName(elem.name);\n if (duplicates.indexOf(elem.name) > -1) {\n throw new Error(`Dynamic element name: \"${elem.name}\" is duplicated`);\n }\n duplicates.push(elem.name);\n const dynamicElement: AbstractControl = this.dynamicForm.get(elem.name);\n if (!dynamicElement) {\n this.dynamicForm.addControl(elem.name, this._dynamicFormsService.createFormControl(elem));\n this._subscribeToControlStatusChanges(elem.name);\n } else {\n dynamicElement.setValue(elem.default);\n dynamicElement.markAsPristine();\n dynamicElement.markAsUntouched();\n if (elem.disabled) {\n dynamicElement.disable();\n } else {\n dynamicElement.enable();\n }\n dynamicElement.setValidators(this._dynamicFormsService.createValidators(elem));\n }\n // copy objects so they are only changes when calling this method\n this._renderedElements.push(Object.assign({}, elem));\n });\n // call a change detection since the whole form might change\n this._changeDetectorRef.detectChanges();\n timer()\n .toPromise()\n .then(() => {\n // call a markForCheck so elements are rendered correctly in OnPush\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private _clearRemovedElements(): void {\n this._renderedElements = this._renderedElements.filter(\n (renderedElement: ITdDynamicElementConfig) =>\n !this._elements.some((element: ITdDynamicElementConfig) => element.name === renderedElement.name),\n );\n // remove elements that were removed from the array\n this._renderedElements.forEach((elem: ITdDynamicElementConfig) => {\n this._destroyControl$.next(elem.name);\n this.dynamicForm.removeControl(elem.name);\n });\n }\n\n // Updates component when manually adding errors to controls\n private _subscribeToControlStatusChanges(elementName: string): void {\n const control: AbstractControl = this.controls[elementName];\n\n const controlDestroyed$: Observable<any> = this._destroyControl$.pipe(\n filter((destroyedElementName: string) => destroyedElementName === elementName),\n );\n\n control.statusChanges.pipe(takeUntil(this._destroy$), takeUntil(controlDestroyed$)).subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n}\n","import { NgModule, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\n\nimport { CovalentCommonModule } from '@covalent/core/common';\nimport { CovalentFileModule } from '@covalent/core/file';\n\nimport { TdDynamicFormsComponent } from './dynamic-forms.component';\nimport {\n TdDynamicElementComponent,\n TdDynamicElementDirective,\n TdDynamicFormsErrorTemplateDirective,\n} from './dynamic-element.component';\nimport { DYNAMIC_FORMS_PROVIDER } from './services/dynamic-forms.service';\n\nimport { TdDynamicInputComponent } from './dynamic-elements/dynamic-input/dynamic-input.component';\nimport { TdDynamicFileInputComponent } from './dynamic-elements/dynamic-file-input/dynamic-file-input.component';\nimport { TdDynamicTextareaComponent } from './dynamic-elements/dynamic-textarea/dynamic-textarea.component';\nimport { TdDynamicSlideToggleComponent } from './dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component';\nimport { TdDynamicCheckboxComponent } from './dynamic-elements/dynamic-checkbox/dynamic-checkbox.component';\nimport { TdDynamicSliderComponent } from './dynamic-elements/dynamic-slider/dynamic-slider.component';\nimport { TdDynamicSelectComponent } from './dynamic-elements/dynamic-select/dynamic-select.component';\nimport { TdDynamicDatepickerComponent } from './dynamic-elements/dynamic-datepicker/dynamic-datepicker.component';\n\nconst TD_DYNAMIC_FORMS: Type<any>[] = [\n TdDynamicFormsComponent,\n TdDynamicElementComponent,\n TdDynamicElementDirective,\n TdDynamicFormsErrorTemplateDirective,\n];\n\nconst TD_DYNAMIC_FORMS_ENTRY_COMPONENTS: Type<any>[] = [\n TdDynamicInputComponent,\n TdDynamicFileInputComponent,\n TdDynamicTextareaComponent,\n TdDynamicSlideToggleComponent,\n TdDynamicCheckboxComponent,\n TdDynamicSliderComponent,\n TdDynamicSelectComponent,\n TdDynamicDatepickerComponent,\n];\n\n@NgModule({\n declarations: [TD_DYNAMIC_FORMS, TD_DYNAMIC_FORMS_ENTRY_COMPONENTS],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n MatCheckboxModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatIconModule,\n MatButtonModule,\n MatDatepickerModule,\n CovalentCommonModule,\n CovalentFileModule,\n ],\n exports: [TD_DYNAMIC_FORMS, TD_DYNAMIC_FORMS_ENTRY_COMPONENTS],\n providers: [DYNAMIC_FORMS_PROVIDER],\n})\nexport class CovalentDynamicFormsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|