@covalent/dynamic-forms 4.0.0 → 4.1.0-develop.2
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/README.md +26 -18
- package/covalent-dynamic-forms.d.ts +2 -1
- package/esm2020/covalent-dynamic-forms.mjs +5 -0
- package/esm2020/lib/dynamic-element.component.mjs +178 -0
- package/esm2020/lib/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.mjs +19 -0
- package/esm2020/lib/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.mjs +23 -0
- package/esm2020/lib/dynamic-elements/dynamic-file-input/dynamic-file-input.component.mjs +28 -0
- package/esm2020/lib/dynamic-elements/dynamic-input/dynamic-input.component.mjs +22 -0
- package/esm2020/lib/dynamic-elements/dynamic-select/dynamic-select.component.mjs +23 -0
- package/esm2020/lib/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.mjs +19 -0
- package/esm2020/lib/dynamic-elements/dynamic-slider/dynamic-slider.component.mjs +26 -0
- package/esm2020/lib/dynamic-elements/dynamic-textarea/dynamic-textarea.component.mjs +22 -0
- package/esm2020/lib/dynamic-forms.component.mjs +185 -0
- package/esm2020/lib/dynamic-forms.module.mjs +127 -0
- package/esm2020/lib/services/dynamic-forms.service.mjs +140 -0
- package/esm2020/public_api.mjs +13 -0
- package/fesm2015/covalent-dynamic-forms.mjs +748 -0
- package/fesm2015/covalent-dynamic-forms.mjs.map +1 -0
- package/fesm2020/covalent-dynamic-forms.mjs +746 -0
- package/fesm2020/covalent-dynamic-forms.mjs.map +1 -0
- package/{dynamic-element.component.d.ts → lib/dynamic-element.component.d.ts} +24 -17
- package/lib/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.d.ts +11 -0
- package/{dynamic-elements → lib/dynamic-elements}/dynamic-datepicker/dynamic-datepicker.component.d.ts +6 -3
- package/{dynamic-elements → lib/dynamic-elements}/dynamic-file-input/dynamic-file-input.component.d.ts +4 -1
- package/{dynamic-elements → lib/dynamic-elements}/dynamic-input/dynamic-input.component.d.ts +7 -4
- package/{dynamic-elements → lib/dynamic-elements}/dynamic-select/dynamic-select.component.d.ts +5 -2
- package/lib/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.d.ts +11 -0
- package/{dynamic-elements → lib/dynamic-elements}/dynamic-slider/dynamic-slider.component.d.ts +5 -2
- package/{dynamic-elements → lib/dynamic-elements}/dynamic-textarea/dynamic-textarea.component.d.ts +3 -0
- package/{dynamic-forms.component.d.ts → lib/dynamic-forms.component.d.ts} +4 -1
- package/lib/dynamic-forms.module.d.ts +28 -0
- package/{services → lib/services}/dynamic-forms.service.d.ts +5 -2
- package/package.json +32 -17
- package/public_api.d.ts +12 -12
- 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/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.d.ts +0 -8
- package/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.scss +0 -0
- package/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.scss +0 -12
- package/dynamic-elements/dynamic-file-input/dynamic-file-input.component.scss +0 -15
- package/dynamic-elements/dynamic-input/dynamic-input.component.scss +0 -12
- package/dynamic-elements/dynamic-select/dynamic-select.component.scss +0 -12
- package/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.d.ts +0 -8
- package/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.scss +0 -0
- package/dynamic-elements/dynamic-slider/dynamic-slider.component.scss +0 -17
- package/dynamic-elements/dynamic-textarea/dynamic-textarea.component.scss +0 -12
- package/dynamic-forms.component.scss +0 -29
- package/dynamic-forms.module.d.ts +0 -2
- 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
- package/index.d.ts +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"covalent-dynamic-forms.mjs","sources":["../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-input/dynamic-input.component.ts","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-input/dynamic-input.component.html","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-file-input/dynamic-file-input.component.ts","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-file-input/dynamic-file-input.component.html","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-textarea/dynamic-textarea.component.ts","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-textarea/dynamic-textarea.component.html","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.ts","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.html","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.ts","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.html","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-slider/dynamic-slider.component.ts","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-slider/dynamic-slider.component.html","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-select/dynamic-select.component.ts","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-select/dynamic-select.component.html","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.ts","../../../../libs/angular-dynamic-forms/src/lib/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.html","../../../../libs/angular-dynamic-forms/src/lib/services/dynamic-forms.service.ts","../../../../libs/angular-dynamic-forms/src/lib/dynamic-element.component.ts","../../../../libs/angular-dynamic-forms/src/lib/dynamic-forms.component.ts","../../../../libs/angular-dynamic-forms/src/lib/dynamic-forms.component.html","../../../../libs/angular-dynamic-forms/src/lib/dynamic-forms.module.ts","../../../../libs/angular-dynamic-forms/src/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 = '';\n\n hint = '';\n\n type!: string;\n\n required = false;\n\n name = '';\n\n min?: number;\n\n max?: number;\n\n minLength?: number;\n\n maxLength?: number;\n\n errorMessageTemplate!: TemplateRef<any>;\n\n placeholder = '';\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]=\"{\n control: control,\n errors: control?.errors\n }\"\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-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 = false;\n\n label = '';\n\n name = '';\n\n hint = '';\n\n errorMessageTemplate!: TemplateRef<any>;\n\n placeholder = '';\n\n _handlefileDrop(value: any): void {\n this.control?.setValue(value);\n }\n}\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]=\"{\n control: control,\n errors: control?.errors\n }\"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n <button\n mat-icon-button\n *ngIf=\"control.value\"\n (click)=\"fileInput.clear()\"\n (keyup.enter)=\"fileInput.clear()\"\n >\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-textarea',\n styleUrls: ['./dynamic-textarea.component.scss'],\n templateUrl: './dynamic-textarea.component.html',\n})\nexport class TdDynamicTextareaComponent {\n control!: FormControl;\n\n label = '';\n\n hint = '';\n\n name = '';\n\n required = false;\n\n errorMessageTemplate!: TemplateRef<any>;\n\n placeholder = '';\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]=\"{\n control: control,\n errors: control?.errors\n }\"\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 = '';\n\n name = '';\n\n hint = '';\n\n required = false;\n}\n","<div class=\"td-dynamic-slide-toggle-wrapper\">\n <mat-slide-toggle\n [formControl]=\"control\"\n [attr.name]=\"name\"\n [required]=\"required\"\n >\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 = '';\n\n name = '';\n\n hint = '';\n\n required = 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","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 = '';\n\n required = false;\n\n name = '';\n\n hint = '';\n\n min?: number;\n\n max?: number;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n _handleBlur(): void {\n setTimeout(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n}\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\n *ngIf=\"required && !control?.disabled\"\n class=\"mat-form-field-required-marker\"\n >*</span\n >\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, 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 = '';\n\n hint = '';\n\n name = '';\n\n required = false;\n\n selections?: any[];\n\n multiple?: boolean;\n\n errorMessageTemplate!: TemplateRef<any>;\n\n placeholder = '';\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\n *ngFor=\"let selection of selections\"\n [value]=\"selection.value || selection\"\n >\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]=\"{\n control: control,\n errors: control?.errors\n }\"\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-datepicker',\n styleUrls: ['./dynamic-datepicker.component.scss'],\n templateUrl: './dynamic-datepicker.component.html',\n})\nexport class TdDynamicDatepickerComponent {\n control!: FormControl;\n\n label = '';\n\n hint = '';\n\n name = '';\n\n type?: string;\n\n required = false;\n\n min?: number;\n\n max?: number;\n\n errorMessageTemplate!: TemplateRef<any>;\n\n placeholder = '';\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]=\"{\n control: control,\n errors: control?.errors\n }\"\n ></ng-template>\n </mat-error>\n <mat-datepicker-toggle\n matSuffix\n [for]=\"dynamicDatePicker\"\n ></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 } 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 = /^[^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(\n element: TdDynamicElement | TdDynamicType | Type<any> | undefined\n ): 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(\n `Error: type ${element} does not exist or not supported.`\n );\n }\n }\n\n /**\n * Creates form control for element depending [ITdDynamicElementConfig] properties.\n */\n createFormControl(config: ITdDynamicElementConfig): FormControl {\n const validator = this.createValidators(config);\n return new FormControl(\n { value: config.default, disabled: config.disabled },\n validator\n );\n }\n\n /**\n * Creates form validationdepending [ITdDynamicElementConfig] properties.\n */\n createValidators(config: ITdDynamicElementConfig): ValidatorFn | null {\n let validator: ValidatorFn | null = null;\n if (config.required) {\n validator = Validators.required;\n }\n if (config.max || config.max === 0) {\n validator = Validators.compose([\n validator,\n Validators.max(parseFloat(config.max)),\n ]);\n }\n if (config.min || config.min === 0) {\n validator = Validators.compose([\n validator,\n Validators.min(parseFloat(config.min)),\n ]);\n }\n if (config.maxLength || config.maxLength === 0) {\n validator = Validators.compose([\n validator,\n Validators.maxLength(parseFloat(config.maxLength)),\n ]);\n }\n if (config.minLength || config.minLength === 0) {\n validator = Validators.compose([\n validator,\n Validators.minLength(parseFloat(config.minLength)),\n ]);\n }\n // Add provided custom validators to the validator function\n if (config.validators) {\n config.validators.forEach(\n (validatorConfig: ITdDynamicElementValidator) => {\n validator = Validators.compose([\n validator,\n validatorConfig.validator,\n ]);\n }\n );\n }\n return validator;\n }\n}\n\nexport function DYNAMIC_FORMS_PROVIDER_FACTORY(\n parent: TdDynamicFormsService\n): 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 {\n ComponentFactoryResolver,\n ComponentRef,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, AbstractControl } from '@angular/forms';\nimport { CdkPortal } from '@angular/cdk/portal';\n\nimport {\n mixinControlValueAccessor,\n IControlValueAccessor,\n} 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 =\n mixinControlValueAccessor(TdDynamicElementBase);\n\n@Directive({ selector: '[tdDynamicFormsError]ng-template' })\nexport class TdDynamicFormsErrorTemplateDirective extends CdkPortal {\n @Input() tdDynamicFormsError?: string;\n constructor(\n public override templateRef: TemplateRef<any>,\n viewContainerRef: ViewContainerRef\n ) {\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!: AbstractControl;\n\n /**\n * Sets label to be displayed.\n */\n @Input() label = '';\n\n /**\n * Sets hint to be displayed.\n */\n @Input() hint? = '';\n\n /**\n * Sets name to be displayed as attribute.\n */\n @Input() name = '';\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>;\n\n /**\n * Sets required validation checkup (if supported by element).\n */\n @Input() required?: boolean | string | undefined;\n\n /**\n * Sets min validation checkup (if supported by element).\n */\n @Input() min?: number;\n\n /**\n * Sets max validation checkup (if supported by element).\n */\n @Input() max?: number;\n\n /**\n * Sets minLength validation checkup (if supported by element).\n */\n @Input() minLength?: number;\n\n /**\n * Sets maxLength validation checkup (if supported by element).\n */\n @Input() maxLength?: number;\n\n /**\n * Sets selections for array elements (if supported by element).\n */\n @Input() selections?: any[];\n\n /**\n * Sets multiple property for array elements (if supported by element).\n */\n @Input() multiple?: boolean;\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? = '';\n\n @ViewChild(TdDynamicElementDirective, { static: true })\n 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\n ? this.type\n : 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 if (this.customConfig) {\n this._instance[name] = this.customConfig[name];\n }\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","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 {\n TdDynamicFormsService,\n ITdDynamicElementConfig,\n} 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<\n string,\n TemplateRef<any>\n >();\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()\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(0);\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> | undefined {\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(\n errorTemplate.tdDynamicFormsError ?? '',\n errorTemplate.templateRef\n );\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 | null = this.dynamicForm.get(\n elem.name\n );\n if (!dynamicElement) {\n this.dynamicForm.addControl(\n elem.name,\n this._dynamicFormsService.createFormControl(elem)\n );\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(\n this._dynamicFormsService.createValidators(elem)\n );\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(0)\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(\n (element: ITdDynamicElementConfig) =>\n element.name === renderedElement.name\n )\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(\n (destroyedElementName: string) => destroyedElementName === elementName\n )\n );\n\n control.statusChanges\n .pipe(takeUntil(this._destroy$), takeUntil(controlDestroyed$))\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\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 ?? false\"\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 { 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 { 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: [\n TdDynamicFormsComponent,\n TdDynamicElementComponent,\n TdDynamicElementDirective,\n TdDynamicFormsErrorTemplateDirective,\n TdDynamicInputComponent,\n TdDynamicFileInputComponent,\n TdDynamicTextareaComponent,\n TdDynamicSlideToggleComponent,\n TdDynamicCheckboxComponent,\n TdDynamicSliderComponent,\n TdDynamicSelectComponent,\n TdDynamicDatepickerComponent,\n ],\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 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 './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,28 @@
|
|
|
1
1
|
import { OnInit, SimpleChanges, OnChanges, TemplateRef, ChangeDetectorRef, Type } from '@angular/core';
|
|
2
2
|
import { ViewContainerRef } from '@angular/core';
|
|
3
3
|
import { ComponentFactoryResolver } from '@angular/core';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { AbstractControl } from '@angular/forms';
|
|
5
|
+
import { CdkPortal } from '@angular/cdk/portal';
|
|
6
6
|
import { IControlValueAccessor } from '@covalent/core/common';
|
|
7
7
|
import { TdDynamicElement, TdDynamicType, TdDynamicFormsService, ITdDynamicElementCustomConfig } from './services/dynamic-forms.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
8
9
|
export declare class TdDynamicElementBase {
|
|
9
10
|
_changeDetectorRef: ChangeDetectorRef;
|
|
10
11
|
constructor(_changeDetectorRef: ChangeDetectorRef);
|
|
11
12
|
}
|
|
12
13
|
export declare const _TdDynamicElementMixinBase: (new (...args: any[]) => IControlValueAccessor) & typeof TdDynamicElementBase;
|
|
13
|
-
export declare class TdDynamicFormsErrorTemplateDirective extends
|
|
14
|
+
export declare class TdDynamicFormsErrorTemplateDirective extends CdkPortal {
|
|
14
15
|
templateRef: TemplateRef<any>;
|
|
15
|
-
tdDynamicFormsError
|
|
16
|
+
tdDynamicFormsError?: string;
|
|
16
17
|
constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef);
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicFormsErrorTemplateDirective, never>;
|
|
19
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TdDynamicFormsErrorTemplateDirective, "[tdDynamicFormsError]ng-template", never, { "tdDynamicFormsError": "tdDynamicFormsError"; }, {}, never>;
|
|
17
20
|
}
|
|
18
21
|
export declare class TdDynamicElementDirective {
|
|
19
22
|
viewContainer: ViewContainerRef;
|
|
20
23
|
constructor(viewContainer: ViewContainerRef);
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicElementDirective, never>;
|
|
25
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TdDynamicElementDirective, "[tdDynamicContainer]", never, {}, {}, never>;
|
|
21
26
|
}
|
|
22
27
|
export declare class TdDynamicElementComponent extends _TdDynamicElementMixinBase implements IControlValueAccessor, OnInit, OnChanges {
|
|
23
28
|
private _componentFactoryResolver;
|
|
@@ -26,7 +31,7 @@ export declare class TdDynamicElementComponent extends _TdDynamicElementMixinBas
|
|
|
26
31
|
/**
|
|
27
32
|
* Sets form control of the element.
|
|
28
33
|
*/
|
|
29
|
-
dynamicControl:
|
|
34
|
+
dynamicControl: AbstractControl;
|
|
30
35
|
/**
|
|
31
36
|
* Sets label to be displayed.
|
|
32
37
|
*/
|
|
@@ -34,7 +39,7 @@ export declare class TdDynamicElementComponent extends _TdDynamicElementMixinBas
|
|
|
34
39
|
/**
|
|
35
40
|
* Sets hint to be displayed.
|
|
36
41
|
*/
|
|
37
|
-
hint
|
|
42
|
+
hint?: string | undefined;
|
|
38
43
|
/**
|
|
39
44
|
* Sets name to be displayed as attribute.
|
|
40
45
|
*/
|
|
@@ -43,47 +48,47 @@ export declare class TdDynamicElementComponent extends _TdDynamicElementMixinBas
|
|
|
43
48
|
* Sets type or element of element to be rendered.
|
|
44
49
|
* Throws error if does not exist or no supported.
|
|
45
50
|
*/
|
|
46
|
-
type
|
|
51
|
+
type?: TdDynamicElement | TdDynamicType | Type<any>;
|
|
47
52
|
/**
|
|
48
53
|
* Sets required validation checkup (if supported by element).
|
|
49
54
|
*/
|
|
50
|
-
required
|
|
55
|
+
required?: boolean | string | undefined;
|
|
51
56
|
/**
|
|
52
57
|
* Sets min validation checkup (if supported by element).
|
|
53
58
|
*/
|
|
54
|
-
min
|
|
59
|
+
min?: number;
|
|
55
60
|
/**
|
|
56
61
|
* Sets max validation checkup (if supported by element).
|
|
57
62
|
*/
|
|
58
|
-
max
|
|
63
|
+
max?: number;
|
|
59
64
|
/**
|
|
60
65
|
* Sets minLength validation checkup (if supported by element).
|
|
61
66
|
*/
|
|
62
|
-
minLength
|
|
67
|
+
minLength?: number;
|
|
63
68
|
/**
|
|
64
69
|
* Sets maxLength validation checkup (if supported by element).
|
|
65
70
|
*/
|
|
66
|
-
maxLength
|
|
71
|
+
maxLength?: number;
|
|
67
72
|
/**
|
|
68
73
|
* Sets selections for array elements (if supported by element).
|
|
69
74
|
*/
|
|
70
|
-
selections
|
|
75
|
+
selections?: any[];
|
|
71
76
|
/**
|
|
72
77
|
* Sets multiple property for array elements (if supported by element).
|
|
73
78
|
*/
|
|
74
|
-
multiple
|
|
79
|
+
multiple?: boolean;
|
|
75
80
|
/**
|
|
76
81
|
* Sets any additional properties on custom component.
|
|
77
82
|
*/
|
|
78
|
-
customConfig
|
|
83
|
+
customConfig?: ITdDynamicElementCustomConfig;
|
|
79
84
|
/**
|
|
80
85
|
* Sets error message template so it can be injected into dynamic components.
|
|
81
86
|
*/
|
|
82
|
-
errorMessageTemplate: TemplateRef<any
|
|
87
|
+
errorMessageTemplate: TemplateRef<any> | undefined;
|
|
83
88
|
/**
|
|
84
89
|
* Sets the placeholder message
|
|
85
90
|
*/
|
|
86
|
-
placeholder
|
|
91
|
+
placeholder?: string | undefined;
|
|
87
92
|
childElement: TdDynamicElementDirective;
|
|
88
93
|
get maxAttr(): any;
|
|
89
94
|
get minAttr(): any;
|
|
@@ -93,4 +98,6 @@ export declare class TdDynamicElementComponent extends _TdDynamicElementMixinBas
|
|
|
93
98
|
* Reassign any inputs that have changed
|
|
94
99
|
*/
|
|
95
100
|
ngOnChanges(changes: SimpleChanges): void;
|
|
101
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicElementComponent, never>;
|
|
102
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicElementComponent, "td-dynamic-element", never, { "dynamicControl": "dynamicControl"; "label": "label"; "hint": "hint"; "name": "name"; "type": "type"; "required": "required"; "min": "min"; "max": "max"; "minLength": "minLength"; "maxLength": "maxLength"; "selections": "selections"; "multiple": "multiple"; "customConfig": "customConfig"; "errorMessageTemplate": "errorMessageTemplate"; "placeholder": "placeholder"; }, {}, never, never>;
|
|
96
103
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FormControl } from '@angular/forms';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class TdDynamicCheckboxComponent {
|
|
4
|
+
control: FormControl;
|
|
5
|
+
label: string;
|
|
6
|
+
name: string;
|
|
7
|
+
hint: string;
|
|
8
|
+
required: boolean;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicCheckboxComponent, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicCheckboxComponent, "td-dynamic-checkbox", never, {}, {}, never, never>;
|
|
11
|
+
}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { TemplateRef } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class TdDynamicDatepickerComponent {
|
|
4
5
|
control: FormControl;
|
|
5
6
|
label: string;
|
|
6
7
|
hint: string;
|
|
7
8
|
name: string;
|
|
8
|
-
type
|
|
9
|
+
type?: string;
|
|
9
10
|
required: boolean;
|
|
10
|
-
min
|
|
11
|
-
max
|
|
11
|
+
min?: number;
|
|
12
|
+
max?: number;
|
|
12
13
|
errorMessageTemplate: TemplateRef<any>;
|
|
13
14
|
placeholder: string;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicDatepickerComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicDatepickerComponent, "td-dynamic-datepicker", never, {}, {}, never, never>;
|
|
14
17
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TemplateRef } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class TdDynamicFileInputComponent {
|
|
4
5
|
control: FormControl;
|
|
5
6
|
required: boolean;
|
|
@@ -8,5 +9,7 @@ export declare class TdDynamicFileInputComponent {
|
|
|
8
9
|
hint: string;
|
|
9
10
|
errorMessageTemplate: TemplateRef<any>;
|
|
10
11
|
placeholder: string;
|
|
11
|
-
_handlefileDrop(value:
|
|
12
|
+
_handlefileDrop(value: any): void;
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicFileInputComponent, never>;
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicFileInputComponent, "td-dynamic-file-input", never, {}, {}, never, never>;
|
|
12
15
|
}
|
package/{dynamic-elements → lib/dynamic-elements}/dynamic-input/dynamic-input.component.d.ts
RENAMED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TemplateRef } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class TdDynamicInputComponent {
|
|
4
5
|
control: FormControl;
|
|
5
6
|
label: string;
|
|
@@ -7,10 +8,12 @@ export declare class TdDynamicInputComponent {
|
|
|
7
8
|
type: string;
|
|
8
9
|
required: boolean;
|
|
9
10
|
name: string;
|
|
10
|
-
min
|
|
11
|
-
max
|
|
12
|
-
minLength
|
|
13
|
-
maxLength
|
|
11
|
+
min?: number;
|
|
12
|
+
max?: number;
|
|
13
|
+
minLength?: number;
|
|
14
|
+
maxLength?: number;
|
|
14
15
|
errorMessageTemplate: TemplateRef<any>;
|
|
15
16
|
placeholder: string;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicInputComponent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicInputComponent, "td-dynamic-input", never, {}, {}, never, never>;
|
|
16
19
|
}
|
package/{dynamic-elements → lib/dynamic-elements}/dynamic-select/dynamic-select.component.d.ts
RENAMED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { TemplateRef } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class TdDynamicSelectComponent {
|
|
4
5
|
control: FormControl;
|
|
5
6
|
label: string;
|
|
6
7
|
hint: string;
|
|
7
8
|
name: string;
|
|
8
9
|
required: boolean;
|
|
9
|
-
selections
|
|
10
|
-
multiple
|
|
10
|
+
selections?: any[];
|
|
11
|
+
multiple?: boolean;
|
|
11
12
|
errorMessageTemplate: TemplateRef<any>;
|
|
12
13
|
placeholder: string;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicSelectComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicSelectComponent, "td-dynamic-select", never, {}, {}, never, never>;
|
|
13
16
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FormControl } from '@angular/forms';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class TdDynamicSlideToggleComponent {
|
|
4
|
+
control: FormControl;
|
|
5
|
+
label: string;
|
|
6
|
+
name: string;
|
|
7
|
+
hint: string;
|
|
8
|
+
required: boolean;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicSlideToggleComponent, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicSlideToggleComponent, "td-dynamic-slide-toggle", never, {}, {}, never, never>;
|
|
11
|
+
}
|
package/{dynamic-elements → lib/dynamic-elements}/dynamic-slider/dynamic-slider.component.d.ts
RENAMED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ChangeDetectorRef } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class TdDynamicSliderComponent {
|
|
4
5
|
private _changeDetectorRef;
|
|
5
6
|
control: FormControl;
|
|
@@ -7,8 +8,10 @@ export declare class TdDynamicSliderComponent {
|
|
|
7
8
|
required: boolean;
|
|
8
9
|
name: string;
|
|
9
10
|
hint: string;
|
|
10
|
-
min
|
|
11
|
-
max
|
|
11
|
+
min?: number;
|
|
12
|
+
max?: number;
|
|
12
13
|
constructor(_changeDetectorRef: ChangeDetectorRef);
|
|
13
14
|
_handleBlur(): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicSliderComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicSliderComponent, "td-dynamic-slider", never, {}, {}, never, never>;
|
|
14
17
|
}
|
package/{dynamic-elements → lib/dynamic-elements}/dynamic-textarea/dynamic-textarea.component.d.ts
RENAMED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TemplateRef } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class TdDynamicTextareaComponent {
|
|
4
5
|
control: FormControl;
|
|
5
6
|
label: string;
|
|
@@ -8,4 +9,6 @@ export declare class TdDynamicTextareaComponent {
|
|
|
8
9
|
required: boolean;
|
|
9
10
|
errorMessageTemplate: TemplateRef<any>;
|
|
10
11
|
placeholder: string;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicTextareaComponent, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicTextareaComponent, "td-dynamic-textarea", never, {}, {}, never, never>;
|
|
11
14
|
}
|
|
@@ -2,6 +2,7 @@ import { ChangeDetectorRef, TemplateRef, QueryList, AfterContentInit, OnDestroy
|
|
|
2
2
|
import { FormGroup, FormBuilder, AbstractControl } from '@angular/forms';
|
|
3
3
|
import { TdDynamicFormsService, ITdDynamicElementConfig } from './services/dynamic-forms.service';
|
|
4
4
|
import { TdDynamicFormsErrorTemplateDirective } from './dynamic-element.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
5
6
|
export declare class TdDynamicFormsComponent implements AfterContentInit, OnDestroy {
|
|
6
7
|
private _formBuilder;
|
|
7
8
|
private _dynamicFormsService;
|
|
@@ -54,7 +55,7 @@ export declare class TdDynamicFormsComponent implements AfterContentInit, OnDest
|
|
|
54
55
|
/**
|
|
55
56
|
* Getter method for error template references
|
|
56
57
|
*/
|
|
57
|
-
getErrorTemplateRef(name: string): TemplateRef<any
|
|
58
|
+
getErrorTemplateRef(name: string): TemplateRef<any> | undefined;
|
|
58
59
|
/**
|
|
59
60
|
* Loads error templates and sets them in a map for faster access.
|
|
60
61
|
*/
|
|
@@ -62,4 +63,6 @@ export declare class TdDynamicFormsComponent implements AfterContentInit, OnDest
|
|
|
62
63
|
private _rerenderElements;
|
|
63
64
|
private _clearRemovedElements;
|
|
64
65
|
private _subscribeToControlStatusChanges;
|
|
66
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicFormsComponent, never>;
|
|
67
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicFormsComponent, "td-dynamic-forms", never, { "elements": "elements"; }, {}, ["_errorTemplates"], ["*"]>;
|
|
65
68
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./dynamic-forms.component";
|
|
3
|
+
import * as i2 from "./dynamic-element.component";
|
|
4
|
+
import * as i3 from "./dynamic-elements/dynamic-input/dynamic-input.component";
|
|
5
|
+
import * as i4 from "./dynamic-elements/dynamic-file-input/dynamic-file-input.component";
|
|
6
|
+
import * as i5 from "./dynamic-elements/dynamic-textarea/dynamic-textarea.component";
|
|
7
|
+
import * as i6 from "./dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component";
|
|
8
|
+
import * as i7 from "./dynamic-elements/dynamic-checkbox/dynamic-checkbox.component";
|
|
9
|
+
import * as i8 from "./dynamic-elements/dynamic-slider/dynamic-slider.component";
|
|
10
|
+
import * as i9 from "./dynamic-elements/dynamic-select/dynamic-select.component";
|
|
11
|
+
import * as i10 from "./dynamic-elements/dynamic-datepicker/dynamic-datepicker.component";
|
|
12
|
+
import * as i11 from "@angular/common";
|
|
13
|
+
import * as i12 from "@angular/forms";
|
|
14
|
+
import * as i13 from "@angular/material/form-field";
|
|
15
|
+
import * as i14 from "@angular/material/input";
|
|
16
|
+
import * as i15 from "@angular/material/select";
|
|
17
|
+
import * as i16 from "@angular/material/checkbox";
|
|
18
|
+
import * as i17 from "@angular/material/slider";
|
|
19
|
+
import * as i18 from "@angular/material/slide-toggle";
|
|
20
|
+
import * as i19 from "@angular/material/icon";
|
|
21
|
+
import * as i20 from "@angular/material/button";
|
|
22
|
+
import * as i21 from "@angular/material/datepicker";
|
|
23
|
+
import * as i22 from "@covalent/core/file";
|
|
24
|
+
export declare class CovalentDynamicFormsModule {
|
|
25
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CovalentDynamicFormsModule, never>;
|
|
26
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CovalentDynamicFormsModule, [typeof i1.TdDynamicFormsComponent, typeof i2.TdDynamicElementComponent, typeof i2.TdDynamicElementDirective, typeof i2.TdDynamicFormsErrorTemplateDirective, typeof i3.TdDynamicInputComponent, typeof i4.TdDynamicFileInputComponent, typeof i5.TdDynamicTextareaComponent, typeof i6.TdDynamicSlideToggleComponent, typeof i7.TdDynamicCheckboxComponent, typeof i8.TdDynamicSliderComponent, typeof i9.TdDynamicSelectComponent, typeof i10.TdDynamicDatepickerComponent], [typeof i11.CommonModule, typeof i12.ReactiveFormsModule, typeof i13.MatFormFieldModule, typeof i14.MatInputModule, typeof i15.MatSelectModule, typeof i16.MatCheckboxModule, typeof i17.MatSliderModule, typeof i18.MatSlideToggleModule, typeof i19.MatIconModule, typeof i20.MatButtonModule, typeof i21.MatDatepickerModule, typeof i22.CovalentFileModule], [typeof i1.TdDynamicFormsComponent, typeof i2.TdDynamicElementComponent, typeof i2.TdDynamicElementDirective, typeof i2.TdDynamicFormsErrorTemplateDirective, typeof i3.TdDynamicInputComponent, typeof i4.TdDynamicFileInputComponent, typeof i5.TdDynamicTextareaComponent, typeof i6.TdDynamicSlideToggleComponent, typeof i7.TdDynamicCheckboxComponent, typeof i8.TdDynamicSliderComponent, typeof i9.TdDynamicSelectComponent, typeof i10.TdDynamicDatepickerComponent]>;
|
|
27
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<CovalentDynamicFormsModule>;
|
|
28
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Provider, Type } from '@angular/core';
|
|
2
2
|
import { ValidatorFn, FormControl } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
3
4
|
export declare enum TdDynamicType {
|
|
4
5
|
Text = "text",
|
|
5
6
|
Boolean = "boolean",
|
|
@@ -57,7 +58,7 @@ export declare class TdDynamicFormsService {
|
|
|
57
58
|
* Gets component to be rendered depending on [TdDynamicElement | TdDynamicType]
|
|
58
59
|
* Throws error if it does not exists or not supported.
|
|
59
60
|
*/
|
|
60
|
-
getDynamicElement(element: TdDynamicElement | TdDynamicType | Type<any>): any;
|
|
61
|
+
getDynamicElement(element: TdDynamicElement | TdDynamicType | Type<any> | undefined): any;
|
|
61
62
|
/**
|
|
62
63
|
* Creates form control for element depending [ITdDynamicElementConfig] properties.
|
|
63
64
|
*/
|
|
@@ -65,7 +66,9 @@ export declare class TdDynamicFormsService {
|
|
|
65
66
|
/**
|
|
66
67
|
* Creates form validationdepending [ITdDynamicElementConfig] properties.
|
|
67
68
|
*/
|
|
68
|
-
createValidators(config: ITdDynamicElementConfig): ValidatorFn;
|
|
69
|
+
createValidators(config: ITdDynamicElementConfig): ValidatorFn | null;
|
|
70
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicFormsService, never>;
|
|
71
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TdDynamicFormsService>;
|
|
69
72
|
}
|
|
70
73
|
export declare function DYNAMIC_FORMS_PROVIDER_FACTORY(parent: TdDynamicFormsService): TdDynamicFormsService;
|
|
71
74
|
export declare const DYNAMIC_FORMS_PROVIDER: Provider;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@covalent/dynamic-forms",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.1.0-develop.2",
|
|
4
4
|
"description": "Teradata UI Platform Dynamic Forms Module",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -18,25 +18,40 @@
|
|
|
18
18
|
},
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"author": "Teradata UX",
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
|
|
21
|
+
"peerDependencies": {
|
|
22
|
+
"@angular/common": "^13.2.0",
|
|
23
|
+
"@angular/core": "^13.2.0",
|
|
24
|
+
"@angular/forms": "^13.2.0",
|
|
25
|
+
"@angular/cdk": "^13.2.1",
|
|
26
|
+
"@covalent/core": "4.1.0-develop.2",
|
|
27
|
+
"@angular/router": "^13.2.0",
|
|
28
|
+
"@angular/platform-browser": "^13.2.0",
|
|
29
|
+
"@angular/material": "^13.2.1",
|
|
30
|
+
"rxjs": "~7.4.0",
|
|
31
|
+
"@angular/animations": "^13.2.0",
|
|
32
|
+
"@angular/platform-browser-dynamic": "^13.2.0"
|
|
33
|
+
},
|
|
30
34
|
"dependencies": {
|
|
31
|
-
"@covalent/core": "^4.0.0",
|
|
32
35
|
"tslib": "^2.0.0"
|
|
33
36
|
},
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"fesm2015": "fesm2015/covalent-dynamic-forms.
|
|
37
|
+
"module": "fesm2015/covalent-dynamic-forms.mjs",
|
|
38
|
+
"es2020": "fesm2020/covalent-dynamic-forms.mjs",
|
|
39
|
+
"esm2020": "esm2020/covalent-dynamic-forms.mjs",
|
|
40
|
+
"fesm2020": "fesm2020/covalent-dynamic-forms.mjs",
|
|
41
|
+
"fesm2015": "fesm2015/covalent-dynamic-forms.mjs",
|
|
39
42
|
"typings": "covalent-dynamic-forms.d.ts",
|
|
40
|
-
"
|
|
43
|
+
"exports": {
|
|
44
|
+
"./package.json": {
|
|
45
|
+
"default": "./package.json"
|
|
46
|
+
},
|
|
47
|
+
".": {
|
|
48
|
+
"types": "./covalent-dynamic-forms.d.ts",
|
|
49
|
+
"esm2020": "./esm2020/covalent-dynamic-forms.mjs",
|
|
50
|
+
"es2020": "./fesm2020/covalent-dynamic-forms.mjs",
|
|
51
|
+
"es2015": "./fesm2015/covalent-dynamic-forms.mjs",
|
|
52
|
+
"node": "./fesm2015/covalent-dynamic-forms.mjs",
|
|
53
|
+
"default": "./fesm2020/covalent-dynamic-forms.mjs"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
41
56
|
"sideEffects": false
|
|
42
57
|
}
|
package/public_api.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export * from './dynamic-forms.module';
|
|
2
|
-
export * from './dynamic-forms.component';
|
|
3
|
-
export * from './dynamic-element.component';
|
|
4
|
-
export * from './services/dynamic-forms.service';
|
|
5
|
-
export * from './dynamic-elements/dynamic-textarea/dynamic-textarea.component';
|
|
6
|
-
export * from './dynamic-elements/dynamic-slider/dynamic-slider.component';
|
|
7
|
-
export * from './dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component';
|
|
8
|
-
export * from './dynamic-elements/dynamic-select/dynamic-select.component';
|
|
9
|
-
export * from './dynamic-elements/dynamic-input/dynamic-input.component';
|
|
10
|
-
export * from './dynamic-elements/dynamic-file-input/dynamic-file-input.component';
|
|
11
|
-
export * from './dynamic-elements/dynamic-datepicker/dynamic-datepicker.component';
|
|
12
|
-
export * from './dynamic-elements/dynamic-checkbox/dynamic-checkbox.component';
|
|
1
|
+
export * from './lib/dynamic-forms.module';
|
|
2
|
+
export * from './lib/dynamic-forms.component';
|
|
3
|
+
export * from './lib/dynamic-element.component';
|
|
4
|
+
export * from './lib/services/dynamic-forms.service';
|
|
5
|
+
export * from './lib/dynamic-elements/dynamic-textarea/dynamic-textarea.component';
|
|
6
|
+
export * from './lib/dynamic-elements/dynamic-slider/dynamic-slider.component';
|
|
7
|
+
export * from './lib/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component';
|
|
8
|
+
export * from './lib/dynamic-elements/dynamic-select/dynamic-select.component';
|
|
9
|
+
export * from './lib/dynamic-elements/dynamic-input/dynamic-input.component';
|
|
10
|
+
export * from './lib/dynamic-elements/dynamic-file-input/dynamic-file-input.component';
|
|
11
|
+
export * from './lib/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component';
|
|
12
|
+
export * from './lib/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component';
|