@covalent/dynamic-forms 6.3.0 → 6.4.0

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.
Files changed (32) hide show
  1. package/esm2022/lib/dynamic-element.component.mjs +229 -0
  2. package/esm2022/lib/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.mjs +18 -0
  3. package/esm2022/lib/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.mjs +26 -0
  4. package/esm2022/lib/dynamic-elements/dynamic-file-input/dynamic-file-input.component.mjs +28 -0
  5. package/esm2022/lib/dynamic-elements/dynamic-input/dynamic-input.component.mjs +27 -0
  6. package/esm2022/lib/dynamic-elements/dynamic-select/dynamic-select.component.mjs +25 -0
  7. package/esm2022/lib/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.mjs +18 -0
  8. package/esm2022/lib/dynamic-elements/dynamic-slider/dynamic-slider.component.mjs +30 -0
  9. package/esm2022/lib/dynamic-elements/dynamic-textarea/dynamic-textarea.component.mjs +22 -0
  10. package/esm2022/lib/dynamic-forms.component.mjs +191 -0
  11. package/{esm2020 → esm2022}/lib/dynamic-forms.module.mjs +48 -48
  12. package/{esm2020 → esm2022}/lib/services/dynamic-forms.service.mjs +4 -4
  13. package/fesm2022/covalent-dynamic-forms.mjs +814 -0
  14. package/{fesm2015 → fesm2022}/covalent-dynamic-forms.mjs.map +1 -1
  15. package/lib/dynamic-element.component.d.ts +2 -2
  16. package/lib/dynamic-forms.component.d.ts +1 -1
  17. package/package.json +9 -17
  18. package/esm2020/lib/dynamic-element.component.mjs +0 -176
  19. package/esm2020/lib/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.mjs +0 -19
  20. package/esm2020/lib/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.mjs +0 -23
  21. package/esm2020/lib/dynamic-elements/dynamic-file-input/dynamic-file-input.component.mjs +0 -28
  22. package/esm2020/lib/dynamic-elements/dynamic-input/dynamic-input.component.mjs +0 -22
  23. package/esm2020/lib/dynamic-elements/dynamic-select/dynamic-select.component.mjs +0 -23
  24. package/esm2020/lib/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.mjs +0 -19
  25. package/esm2020/lib/dynamic-elements/dynamic-slider/dynamic-slider.component.mjs +0 -26
  26. package/esm2020/lib/dynamic-elements/dynamic-textarea/dynamic-textarea.component.mjs +0 -22
  27. package/esm2020/lib/dynamic-forms.component.mjs +0 -185
  28. package/fesm2015/covalent-dynamic-forms.mjs +0 -745
  29. package/fesm2020/covalent-dynamic-forms.mjs +0 -743
  30. package/fesm2020/covalent-dynamic-forms.mjs.map +0 -1
  31. /package/{esm2020 → esm2022}/covalent-dynamic-forms.mjs +0 -0
  32. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -1,745 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Component, Injectable, Optional, SkipSelf, Directive, Input, Type, ViewChild, HostBinding, ChangeDetectionStrategy, ContentChildren, NgModule } from '@angular/core';
3
- import * as i1 from '@angular/common';
4
- import { CommonModule } from '@angular/common';
5
- import * as i2 from '@angular/forms';
6
- import { UntypedFormControl, Validators, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
7
- import * as i3 from '@angular/material/form-field';
8
- import { MatFormFieldModule } from '@angular/material/form-field';
9
- import * as i4 from '@angular/material/input';
10
- import { MatInputModule } from '@angular/material/input';
11
- import * as i4$1 from '@angular/material/select';
12
- import { MatSelectModule } from '@angular/material/select';
13
- import * as i2$2 from '@angular/material/checkbox';
14
- import { MatCheckboxModule } from '@angular/material/checkbox';
15
- import * as i3$1 from '@angular/material/slider';
16
- import { MatSliderModule } from '@angular/material/slider';
17
- import * as i2$1 from '@angular/material/slide-toggle';
18
- import { MatSlideToggleModule } from '@angular/material/slide-toggle';
19
- import * as i5 from '@angular/material/icon';
20
- import { MatIconModule } from '@angular/material/icon';
21
- import * as i6 from '@angular/material/button';
22
- import { MatButtonModule } from '@angular/material/button';
23
- import * as i5$2 from '@angular/material/datepicker';
24
- import { MatDatepickerModule } from '@angular/material/datepicker';
25
- import * as i7 from '@covalent/core/file';
26
- import { CovalentFileModule } from '@covalent/core/file';
27
- import { CdkPortal } from '@angular/cdk/portal';
28
- import { mixinControlValueAccessor } from '@covalent/core/common';
29
- import * as i5$1 from '@angular/material/core';
30
- import { Subject, timer } from 'rxjs';
31
- import { filter, takeUntil } from 'rxjs/operators';
32
-
33
- class TdDynamicInputComponent {
34
- constructor() {
35
- this.label = '';
36
- this.hint = '';
37
- this.required = false;
38
- this.name = '';
39
- this.placeholder = '';
40
- }
41
- }
42
- TdDynamicInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
43
- TdDynamicInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TdDynamicInputComponent, selector: "td-dynamic-input", ngImport: i0, template: "<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 [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", styles: [".td-dynamic-input-wrapper{flex-direction:row;display:flex;box-sizing:border-box}.td-dynamic-input-wrapper .td-dynamic-input-field{flex:1;box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicInputComponent, decorators: [{
45
- type: Component,
46
- args: [{ selector: 'td-dynamic-input', template: "<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 [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", styles: [".td-dynamic-input-wrapper{flex-direction:row;display:flex;box-sizing:border-box}.td-dynamic-input-wrapper .td-dynamic-input-field{flex:1;box-sizing:border-box}\n"] }]
47
- }] });
48
-
49
- class TdDynamicFileInputComponent {
50
- constructor() {
51
- this.required = false;
52
- this.label = '';
53
- this.name = '';
54
- this.hint = '';
55
- this.placeholder = '';
56
- }
57
- _handlefileDrop(value) {
58
- var _a;
59
- (_a = this.control) === null || _a === void 0 ? void 0 : _a.setValue(value);
60
- }
61
- }
62
- TdDynamicFileInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicFileInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
63
- TdDynamicFileInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TdDynamicFileInputComponent, selector: "td-dynamic-file-input", ngImport: i0, template: "<div class=\"td-dynamic-file-input-wrapper\">\n <mat-form-field\n tdFileDrop\n class=\"td-dynamic-file-input-field\"\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 [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", styles: [".td-dynamic-file-input-wrapper{flex-direction:row;display:flex;box-sizing:border-box}.td-dynamic-file-input-wrapper .td-dynamic-file-input-field{flex:1;box-sizing:border-box}.td-file-input{margin-left:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i7.TdFileDropDirective, selector: "[tdFileDrop]", inputs: ["multiple", "disabled"], outputs: ["fileDrop"] }, { kind: "component", type: i7.TdFileInputComponent, selector: "td-file-input", inputs: ["disabled", "value", "color", "multiple", "accept"], outputs: ["selectFile"] }] });
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicFileInputComponent, decorators: [{
65
- type: Component,
66
- args: [{ selector: 'td-dynamic-file-input', template: "<div class=\"td-dynamic-file-input-wrapper\">\n <mat-form-field\n tdFileDrop\n class=\"td-dynamic-file-input-field\"\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 [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", styles: [".td-dynamic-file-input-wrapper{flex-direction:row;display:flex;box-sizing:border-box}.td-dynamic-file-input-wrapper .td-dynamic-file-input-field{flex:1;box-sizing:border-box}.td-file-input{margin-left:10px}\n"] }]
67
- }] });
68
-
69
- class TdDynamicTextareaComponent {
70
- constructor() {
71
- this.label = '';
72
- this.hint = '';
73
- this.name = '';
74
- this.required = false;
75
- this.placeholder = '';
76
- }
77
- }
78
- TdDynamicTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicTextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
79
- TdDynamicTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TdDynamicTextareaComponent, selector: "td-dynamic-textarea", ngImport: i0, template: "<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 [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", styles: [".td-dynamic-textarea-wrapper{flex-direction:row;display:flex;box-sizing:border-box}.td-dynamic-textarea-wrapper .td-dynamic-textarea-field{flex:1;box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicTextareaComponent, decorators: [{
81
- type: Component,
82
- args: [{ selector: 'td-dynamic-textarea', template: "<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 [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", styles: [".td-dynamic-textarea-wrapper{flex-direction:row;display:flex;box-sizing:border-box}.td-dynamic-textarea-wrapper .td-dynamic-textarea-field{flex:1;box-sizing:border-box}\n"] }]
83
- }] });
84
-
85
- class TdDynamicSlideToggleComponent {
86
- constructor() {
87
- this.label = '';
88
- this.name = '';
89
- this.hint = '';
90
- this.required = false;
91
- }
92
- }
93
- TdDynamicSlideToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicSlideToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
94
- TdDynamicSlideToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TdDynamicSlideToggleComponent, selector: "td-dynamic-slide-toggle", ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.MatSlideToggleRequiredValidator, selector: "mat-slide-toggle[required][formControlName], mat-slide-toggle[required][formControl], mat-slide-toggle[required][ngModel]" }, { kind: "component", type: i2$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }] });
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicSlideToggleComponent, decorators: [{
96
- type: Component,
97
- args: [{ selector: 'td-dynamic-slide-toggle', template: "<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" }]
98
- }] });
99
-
100
- class TdDynamicCheckboxComponent {
101
- constructor() {
102
- this.label = '';
103
- this.name = '';
104
- this.hint = '';
105
- this.required = false;
106
- }
107
- }
108
- TdDynamicCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
109
- TdDynamicCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TdDynamicCheckboxComponent, selector: "td-dynamic-checkbox", ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i2$2.MatCheckboxRequiredValidator, selector: "mat-checkbox[required][formControlName], mat-checkbox[required][formControl], mat-checkbox[required][ngModel]" }] });
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicCheckboxComponent, decorators: [{
111
- type: Component,
112
- args: [{ selector: 'td-dynamic-checkbox', template: "<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" }]
113
- }] });
114
-
115
- class TdDynamicSliderComponent {
116
- constructor(_changeDetectorRef) {
117
- this._changeDetectorRef = _changeDetectorRef;
118
- this.label = '';
119
- this.required = false;
120
- this.name = '';
121
- this.hint = '';
122
- }
123
- _handleBlur() {
124
- setTimeout(() => {
125
- this._changeDetectorRef.markForCheck();
126
- });
127
- }
128
- }
129
- TdDynamicSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicSliderComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
130
- TdDynamicSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TdDynamicSliderComponent, selector: "td-dynamic-slider", ngImport: i0, template: "<div\n class=\"td-dynamic-slider-wrapper mat-form-field mat-form-field-can-float mat-form-field-should-float\"\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 thumbLabel\n tickInterval=\"auto\"\n (blur)=\"_handleBlur()\"\n >\n <input\n [attr.name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n [formControl]=\"control\"\n [required]=\"required\"\n matSliderThumb\n />\n </mat-slider>\n </div>\n <span class=\"mat-hint td-dynamic-element-hint\">{{ hint }}</span>\n</div>\n", styles: [":host .td-dynamic-slider-wrapper{display:block}.td-dynamic-slider-field{position:relative;flex-direction:row;display:flex;box-sizing:border-box}.td-dynamic-slider-field .td-dynamic-slider{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3$1.MatSlider, selector: "mat-slider", inputs: ["color", "disableRipple", "disabled", "discrete", "showTickMarks", "min", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i3$1.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }] });
131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicSliderComponent, decorators: [{
132
- type: Component,
133
- args: [{ selector: 'td-dynamic-slider', template: "<div\n class=\"td-dynamic-slider-wrapper mat-form-field mat-form-field-can-float mat-form-field-should-float\"\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 thumbLabel\n tickInterval=\"auto\"\n (blur)=\"_handleBlur()\"\n >\n <input\n [attr.name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n [formControl]=\"control\"\n [required]=\"required\"\n matSliderThumb\n />\n </mat-slider>\n </div>\n <span class=\"mat-hint td-dynamic-element-hint\">{{ hint }}</span>\n</div>\n", styles: [":host .td-dynamic-slider-wrapper{display:block}.td-dynamic-slider-field{position:relative;flex-direction:row;display:flex;box-sizing:border-box}.td-dynamic-slider-field .td-dynamic-slider{flex:1}\n"] }]
134
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
135
-
136
- class TdDynamicSelectComponent {
137
- constructor() {
138
- this.label = '';
139
- this.hint = '';
140
- this.name = '';
141
- this.required = false;
142
- this.placeholder = '';
143
- }
144
- }
145
- TdDynamicSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
146
- TdDynamicSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TdDynamicSelectComponent, selector: "td-dynamic-select", ngImport: i0, template: "<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", styles: [".td-dynamic-select-wrapper{flex-direction:row;display:flex;box-sizing:border-box}.td-dynamic-select-wrapper .td-dynamic-select-field{flex:1;box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i5$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }] });
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicSelectComponent, decorators: [{
148
- type: Component,
149
- args: [{ selector: 'td-dynamic-select', template: "<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", styles: [".td-dynamic-select-wrapper{flex-direction:row;display:flex;box-sizing:border-box}.td-dynamic-select-wrapper .td-dynamic-select-field{flex:1;box-sizing:border-box}\n"] }]
150
- }] });
151
-
152
- class TdDynamicDatepickerComponent {
153
- constructor() {
154
- this.label = '';
155
- this.hint = '';
156
- this.name = '';
157
- this.required = false;
158
- this.placeholder = '';
159
- }
160
- }
161
- TdDynamicDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
162
- TdDynamicDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TdDynamicDatepickerComponent, selector: "td-dynamic-datepicker", ngImport: i0, template: "<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", styles: [".td-dynamic-datepicker-wrapper{flex-direction:row;display:flex;box-sizing:border-box}.td-dynamic-datepicker-wrapper .td-dynamic-datepicker-field{flex:1;box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5$2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5$2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i5$2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }] });
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicDatepickerComponent, decorators: [{
164
- type: Component,
165
- args: [{ selector: 'td-dynamic-datepicker', template: "<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", styles: [".td-dynamic-datepicker-wrapper{flex-direction:row;display:flex;box-sizing:border-box}.td-dynamic-datepicker-wrapper .td-dynamic-datepicker-field{flex:1;box-sizing:border-box}\n"] }]
166
- }] });
167
-
168
- var TdDynamicType;
169
- (function (TdDynamicType) {
170
- TdDynamicType["Text"] = "text";
171
- TdDynamicType["Boolean"] = "boolean";
172
- TdDynamicType["Number"] = "number";
173
- TdDynamicType["Array"] = "array";
174
- TdDynamicType["Date"] = "date";
175
- })(TdDynamicType || (TdDynamicType = {}));
176
- var TdDynamicElement;
177
- (function (TdDynamicElement) {
178
- TdDynamicElement["Input"] = "input";
179
- TdDynamicElement["Datepicker"] = "datepicker";
180
- TdDynamicElement["Password"] = "password";
181
- TdDynamicElement["Textarea"] = "textarea";
182
- TdDynamicElement["Slider"] = "slider";
183
- TdDynamicElement["SlideToggle"] = "slide-toggle";
184
- TdDynamicElement["Checkbox"] = "checkbox";
185
- TdDynamicElement["Select"] = "select";
186
- TdDynamicElement["FileInput"] = "file-input";
187
- })(TdDynamicElement || (TdDynamicElement = {}));
188
- const DYNAMIC_ELEMENT_NAME_REGEX = /^[^0-9][^@]*$/;
189
- class TdDynamicFormsService {
190
- /**
191
- * Method to validate if the [name] is a proper element name.
192
- * Throws error if name is not valid.
193
- */
194
- validateDynamicElementName(name) {
195
- if (!DYNAMIC_ELEMENT_NAME_REGEX.test(name)) {
196
- throw new Error('Dynamic element name: "${name}" is not valid.');
197
- }
198
- }
199
- /**
200
- * Gets component to be rendered depending on [TdDynamicElement | TdDynamicType]
201
- * Throws error if it does not exists or not supported.
202
- */
203
- getDynamicElement(element) {
204
- switch (element) {
205
- case TdDynamicType.Text:
206
- case TdDynamicType.Number:
207
- case TdDynamicElement.Input:
208
- case TdDynamicElement.Password:
209
- return TdDynamicInputComponent;
210
- case TdDynamicElement.Textarea:
211
- return TdDynamicTextareaComponent;
212
- case TdDynamicType.Boolean:
213
- case TdDynamicElement.SlideToggle:
214
- return TdDynamicSlideToggleComponent;
215
- case TdDynamicElement.Checkbox:
216
- return TdDynamicCheckboxComponent;
217
- case TdDynamicElement.Slider:
218
- return TdDynamicSliderComponent;
219
- case TdDynamicType.Array:
220
- case TdDynamicElement.Select:
221
- return TdDynamicSelectComponent;
222
- case TdDynamicElement.FileInput:
223
- return TdDynamicFileInputComponent;
224
- case TdDynamicElement.Datepicker:
225
- case TdDynamicType.Date:
226
- return TdDynamicDatepickerComponent;
227
- default:
228
- throw new Error(`Error: type ${element} does not exist or not supported.`);
229
- }
230
- }
231
- /**
232
- * Creates form control for element depending [ITdDynamicElementConfig] properties.
233
- */
234
- createFormControl(config) {
235
- const validator = this.createValidators(config);
236
- return new UntypedFormControl({ value: config.default, disabled: config.disabled }, validator);
237
- }
238
- /**
239
- * Creates form validationdepending [ITdDynamicElementConfig] properties.
240
- */
241
- createValidators(config) {
242
- let validator = null;
243
- if (config.required) {
244
- validator = Validators.required;
245
- }
246
- if (config.max || config.max === 0) {
247
- validator = Validators.compose([
248
- validator,
249
- Validators.max(parseFloat(config.max)),
250
- ]);
251
- }
252
- if (config.min || config.min === 0) {
253
- validator = Validators.compose([
254
- validator,
255
- Validators.min(parseFloat(config.min)),
256
- ]);
257
- }
258
- if (config.maxLength || config.maxLength === 0) {
259
- validator = Validators.compose([
260
- validator,
261
- Validators.maxLength(parseFloat(config.maxLength)),
262
- ]);
263
- }
264
- if (config.minLength || config.minLength === 0) {
265
- validator = Validators.compose([
266
- validator,
267
- Validators.minLength(parseFloat(config.minLength)),
268
- ]);
269
- }
270
- // Add provided custom validators to the validator function
271
- if (config.validators) {
272
- config.validators.forEach((validatorConfig) => {
273
- validator = Validators.compose([
274
- validator,
275
- validatorConfig.validator,
276
- ]);
277
- });
278
- }
279
- return validator;
280
- }
281
- }
282
- TdDynamicFormsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicFormsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
283
- TdDynamicFormsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicFormsService });
284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicFormsService, decorators: [{
285
- type: Injectable
286
- }] });
287
- function DYNAMIC_FORMS_PROVIDER_FACTORY(parent) {
288
- return parent || new TdDynamicFormsService();
289
- }
290
- const DYNAMIC_FORMS_PROVIDER = {
291
- // If there is already a service available, use that. Otherwise, provide a new one.
292
- provide: TdDynamicFormsService,
293
- deps: [[new Optional(), new SkipSelf(), TdDynamicFormsService]],
294
- useFactory: DYNAMIC_FORMS_PROVIDER_FACTORY,
295
- };
296
-
297
- class TdDynamicElementBase {
298
- constructor(_changeDetectorRef) {
299
- this._changeDetectorRef = _changeDetectorRef;
300
- }
301
- }
302
- /* tslint:disable-next-line */
303
- const _TdDynamicElementMixinBase = mixinControlValueAccessor(TdDynamicElementBase);
304
- class TdDynamicFormsErrorTemplateDirective extends CdkPortal {
305
- constructor(templateRef, viewContainerRef) {
306
- super(templateRef, viewContainerRef);
307
- this.templateRef = templateRef;
308
- }
309
- }
310
- TdDynamicFormsErrorTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicFormsErrorTemplateDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
311
- TdDynamicFormsErrorTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: TdDynamicFormsErrorTemplateDirective, selector: "[tdDynamicFormsError]ng-template", inputs: { tdDynamicFormsError: "tdDynamicFormsError" }, usesInheritance: true, ngImport: i0 });
312
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicFormsErrorTemplateDirective, decorators: [{
313
- type: Directive,
314
- args: [{ selector: '[tdDynamicFormsError]ng-template' }]
315
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { tdDynamicFormsError: [{
316
- type: Input
317
- }] } });
318
- class TdDynamicElementDirective {
319
- constructor(viewContainer) {
320
- this.viewContainer = viewContainer;
321
- }
322
- }
323
- TdDynamicElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicElementDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
324
- TdDynamicElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: TdDynamicElementDirective, selector: "[tdDynamicContainer]", ngImport: i0 });
325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicElementDirective, decorators: [{
326
- type: Directive,
327
- args: [{
328
- selector: '[tdDynamicContainer]',
329
- }]
330
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
331
- class TdDynamicElementComponent extends _TdDynamicElementMixinBase {
332
- get maxAttr() {
333
- return this.max;
334
- }
335
- get minAttr() {
336
- return this.min;
337
- }
338
- constructor(_injector, _dynamicFormsService, _changeDetectorRef) {
339
- super(_changeDetectorRef);
340
- this._injector = _injector;
341
- this._dynamicFormsService = _dynamicFormsService;
342
- /**
343
- * Sets label to be displayed.
344
- */
345
- this.label = '';
346
- /**
347
- * Sets hint to be displayed.
348
- */
349
- this.hint = '';
350
- /**
351
- * Sets name to be displayed as attribute.
352
- */
353
- this.name = '';
354
- /**
355
- * Sets the placeholder message
356
- */
357
- this.placeholder = '';
358
- }
359
- ngOnInit() {
360
- const component = this.type instanceof Type
361
- ? this.type
362
- : this._dynamicFormsService.getDynamicElement(this.type);
363
- const ref = this.childElement.viewContainer.createComponent(component, {
364
- injector: this._injector,
365
- });
366
- this._instance = ref.instance;
367
- this._instance.control = this.dynamicControl;
368
- this._instance.label = this.label;
369
- this._instance.hint = this.hint;
370
- this._instance.name = this.name;
371
- this._instance.type = this.type;
372
- this._instance.value = this.value;
373
- this._instance.required = this.required;
374
- this._instance.min = this.min;
375
- this._instance.max = this.max;
376
- this._instance.minLength = this.minLength;
377
- this._instance.maxLength = this.maxLength;
378
- this._instance.selections = this.selections;
379
- this._instance.multiple = this.multiple;
380
- this._instance.errorMessageTemplate = this.errorMessageTemplate;
381
- this._instance.placeholder = this.placeholder;
382
- if (this.customConfig) {
383
- Object.getOwnPropertyNames(this.customConfig).forEach((name) => {
384
- if (this.customConfig) {
385
- this._instance[name] = this.customConfig[name];
386
- }
387
- });
388
- }
389
- }
390
- /**
391
- * Reassign any inputs that have changed
392
- */
393
- ngOnChanges(changes) {
394
- if (this._instance) {
395
- for (const prop of Object.keys(changes)) {
396
- this._instance[prop] = changes[prop].currentValue;
397
- }
398
- }
399
- }
400
- }
401
- TdDynamicElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicElementComponent, deps: [{ token: i0.Injector }, { token: TdDynamicFormsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
402
- TdDynamicElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TdDynamicElementComponent, selector: "td-dynamic-element", inputs: { 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" }, host: { properties: { "attr.max": "this.maxAttr", "attr.min": "this.minAttr" } }, providers: [
403
- TdDynamicFormsService,
404
- {
405
- provide: NG_VALUE_ACCESSOR,
406
- useExisting: TdDynamicElementComponent,
407
- multi: true,
408
- },
409
- ], viewQueries: [{ propertyName: "childElement", first: true, predicate: TdDynamicElementDirective, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<div tdDynamicContainer></div>', isInline: true, dependencies: [{ kind: "directive", type: TdDynamicElementDirective, selector: "[tdDynamicContainer]" }] });
410
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicElementComponent, decorators: [{
411
- type: Component,
412
- args: [{
413
- providers: [
414
- TdDynamicFormsService,
415
- {
416
- provide: NG_VALUE_ACCESSOR,
417
- useExisting: TdDynamicElementComponent,
418
- multi: true,
419
- },
420
- ],
421
- selector: 'td-dynamic-element',
422
- template: '<div tdDynamicContainer></div>',
423
- }]
424
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: TdDynamicFormsService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { dynamicControl: [{
425
- type: Input
426
- }], label: [{
427
- type: Input
428
- }], hint: [{
429
- type: Input
430
- }], name: [{
431
- type: Input
432
- }], type: [{
433
- type: Input
434
- }], required: [{
435
- type: Input
436
- }], min: [{
437
- type: Input
438
- }], max: [{
439
- type: Input
440
- }], minLength: [{
441
- type: Input
442
- }], maxLength: [{
443
- type: Input
444
- }], selections: [{
445
- type: Input
446
- }], multiple: [{
447
- type: Input
448
- }], customConfig: [{
449
- type: Input
450
- }], errorMessageTemplate: [{
451
- type: Input
452
- }], placeholder: [{
453
- type: Input
454
- }], childElement: [{
455
- type: ViewChild,
456
- args: [TdDynamicElementDirective, { static: true }]
457
- }], maxAttr: [{
458
- type: HostBinding,
459
- args: ['attr.max']
460
- }], minAttr: [{
461
- type: HostBinding,
462
- args: ['attr.min']
463
- }] } });
464
-
465
- class TdDynamicFormsComponent {
466
- /**
467
- * elements: ITdDynamicElementConfig[]
468
- * JS Object that will render the elements depending on its config.
469
- * [name] property is required.
470
- */
471
- set elements(elements) {
472
- if (elements) {
473
- this._elements = elements;
474
- }
475
- else {
476
- this._elements = [];
477
- }
478
- this._rerenderElements();
479
- }
480
- get elements() {
481
- return this._renderedElements;
482
- }
483
- /**
484
- * Getter property for dynamic [FormGroup].
485
- */
486
- get form() {
487
- return this.dynamicForm;
488
- }
489
- /**
490
- * Getter property for [valid] of dynamic [FormGroup].
491
- */
492
- get valid() {
493
- if (this.dynamicForm) {
494
- return this.dynamicForm.valid;
495
- }
496
- return false;
497
- }
498
- /**
499
- * Getter property for [value] of dynamic [FormGroup].
500
- */
501
- get value() {
502
- if (this.dynamicForm) {
503
- return this.dynamicForm.value;
504
- }
505
- return {};
506
- }
507
- /**
508
- * Getter property for [errors] of dynamic [FormGroup].
509
- */
510
- get errors() {
511
- if (this.dynamicForm) {
512
- const errors = {};
513
- for (const name of Object.keys(this.dynamicForm.controls)) {
514
- errors[name] = this.dynamicForm.controls[name].errors;
515
- }
516
- return errors;
517
- }
518
- return {};
519
- }
520
- /**
521
- * Getter property for [controls] of dynamic [FormGroup].
522
- */
523
- get controls() {
524
- if (this.dynamicForm) {
525
- return this.dynamicForm.controls;
526
- }
527
- return {};
528
- }
529
- constructor(_formBuilder, _dynamicFormsService, _changeDetectorRef) {
530
- this._formBuilder = _formBuilder;
531
- this._dynamicFormsService = _dynamicFormsService;
532
- this._changeDetectorRef = _changeDetectorRef;
533
- this._renderedElements = [];
534
- this._templateMap = new Map();
535
- this._destroy$ = new Subject();
536
- this._destroyControl$ = new Subject();
537
- this.dynamicForm = this._formBuilder.group({});
538
- }
539
- ngAfterContentInit() {
540
- this._updateErrorTemplates();
541
- }
542
- ngOnDestroy() {
543
- this._destroy$.next(0);
544
- this._destroy$.complete();
545
- this._destroyControl$.complete();
546
- }
547
- /**
548
- * Refreshes the form and rerenders all validator/element modifications.
549
- */
550
- refresh() {
551
- this._rerenderElements();
552
- this._updateErrorTemplates();
553
- }
554
- /**
555
- * Getter method for error template references
556
- */
557
- getErrorTemplateRef(name) {
558
- return this._templateMap.get(name);
559
- }
560
- /**
561
- * Loads error templates and sets them in a map for faster access.
562
- */
563
- _updateErrorTemplates() {
564
- var _a;
565
- this._templateMap = new Map();
566
- for (const errorTemplate of this._errorTemplates.toArray()) {
567
- this._templateMap.set((_a = errorTemplate.tdDynamicFormsError) !== null && _a !== void 0 ? _a : '', errorTemplate.templateRef);
568
- }
569
- }
570
- _rerenderElements() {
571
- this._clearRemovedElements();
572
- this._renderedElements = [];
573
- const duplicates = [];
574
- this._elements.forEach((elem) => {
575
- this._dynamicFormsService.validateDynamicElementName(elem.name);
576
- if (duplicates.indexOf(elem.name) > -1) {
577
- throw new Error(`Dynamic element name: "${elem.name}" is duplicated`);
578
- }
579
- duplicates.push(elem.name);
580
- const dynamicElement = this.dynamicForm.get(elem.name);
581
- if (!dynamicElement) {
582
- this.dynamicForm.addControl(elem.name, this._dynamicFormsService.createFormControl(elem));
583
- this._subscribeToControlStatusChanges(elem.name);
584
- }
585
- else {
586
- dynamicElement.setValue(elem.default);
587
- dynamicElement.markAsPristine();
588
- dynamicElement.markAsUntouched();
589
- if (elem.disabled) {
590
- dynamicElement.disable();
591
- }
592
- else {
593
- dynamicElement.enable();
594
- }
595
- dynamicElement.setValidators(this._dynamicFormsService.createValidators(elem));
596
- }
597
- // copy objects so they are only changes when calling this method
598
- this._renderedElements.push(Object.assign({}, elem));
599
- });
600
- // call a change detection since the whole form might change
601
- this._changeDetectorRef.detectChanges();
602
- timer(0)
603
- .toPromise()
604
- .then(() => {
605
- // call a markForCheck so elements are rendered correctly in OnPush
606
- this._changeDetectorRef.markForCheck();
607
- });
608
- }
609
- _clearRemovedElements() {
610
- this._renderedElements = this._renderedElements.filter((renderedElement) => !this._elements.some((element) => element.name === renderedElement.name));
611
- // remove elements that were removed from the array
612
- this._renderedElements.forEach((elem) => {
613
- this._destroyControl$.next(elem.name);
614
- this.dynamicForm.removeControl(elem.name);
615
- });
616
- }
617
- // Updates component when manually adding errors to controls
618
- _subscribeToControlStatusChanges(elementName) {
619
- const control = this.controls[elementName];
620
- const controlDestroyed$ = this._destroyControl$.pipe(filter((destroyedElementName) => destroyedElementName === elementName));
621
- control.statusChanges
622
- .pipe(takeUntil(this._destroy$), takeUntil(controlDestroyed$))
623
- .subscribe(() => {
624
- this._changeDetectorRef.markForCheck();
625
- });
626
- }
627
- }
628
- TdDynamicFormsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicFormsComponent, deps: [{ token: i2.UntypedFormBuilder }, { token: TdDynamicFormsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
629
- TdDynamicFormsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TdDynamicFormsComponent, selector: "td-dynamic-forms", inputs: { elements: "elements" }, queries: [{ propertyName: "_errorTemplates", predicate: TdDynamicFormsErrorTemplateDirective, descendants: true }], ngImport: i0, template: "<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", styles: [".td-dynamic-form-wrapper{flex-flow:row wrap;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}.td-dynamic-form-wrapper ::ng-deep .mat-form-field-infix{width:auto}.td-dynamic-form-wrapper ::ng-deep .td-dynamic-element-hint{font-size:75%;display:block}.td-dynamic-form-wrapper .td-dynamic-element-wrapper{max-height:100%;box-sizing:border-box;position:relative;padding:4px 4px 8px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TdDynamicElementComponent, selector: "td-dynamic-element", inputs: ["dynamicControl", "label", "hint", "name", "type", "required", "min", "max", "minLength", "maxLength", "selections", "multiple", "customConfig", "errorMessageTemplate", "placeholder"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
630
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdDynamicFormsComponent, decorators: [{
631
- type: Component,
632
- args: [{ selector: 'td-dynamic-forms', changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [".td-dynamic-form-wrapper{flex-flow:row wrap;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}.td-dynamic-form-wrapper ::ng-deep .mat-form-field-infix{width:auto}.td-dynamic-form-wrapper ::ng-deep .td-dynamic-element-hint{font-size:75%;display:block}.td-dynamic-form-wrapper .td-dynamic-element-wrapper{max-height:100%;box-sizing:border-box;position:relative;padding:4px 4px 8px}\n"] }]
633
- }], ctorParameters: function () { return [{ type: i2.UntypedFormBuilder }, { type: TdDynamicFormsService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { _errorTemplates: [{
634
- type: ContentChildren,
635
- args: [TdDynamicFormsErrorTemplateDirective, { descendants: true }]
636
- }], elements: [{
637
- type: Input
638
- }] } });
639
-
640
- const TD_DYNAMIC_FORMS = [
641
- TdDynamicFormsComponent,
642
- TdDynamicElementComponent,
643
- TdDynamicElementDirective,
644
- TdDynamicFormsErrorTemplateDirective,
645
- ];
646
- const TD_DYNAMIC_FORMS_ENTRY_COMPONENTS = [
647
- TdDynamicInputComponent,
648
- TdDynamicFileInputComponent,
649
- TdDynamicTextareaComponent,
650
- TdDynamicSlideToggleComponent,
651
- TdDynamicCheckboxComponent,
652
- TdDynamicSliderComponent,
653
- TdDynamicSelectComponent,
654
- TdDynamicDatepickerComponent,
655
- ];
656
- class CovalentDynamicFormsModule {
657
- }
658
- CovalentDynamicFormsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: CovalentDynamicFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
659
- CovalentDynamicFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.5", ngImport: i0, type: CovalentDynamicFormsModule, declarations: [TdDynamicFormsComponent,
660
- TdDynamicElementComponent,
661
- TdDynamicElementDirective,
662
- TdDynamicFormsErrorTemplateDirective,
663
- TdDynamicInputComponent,
664
- TdDynamicFileInputComponent,
665
- TdDynamicTextareaComponent,
666
- TdDynamicSlideToggleComponent,
667
- TdDynamicCheckboxComponent,
668
- TdDynamicSliderComponent,
669
- TdDynamicSelectComponent,
670
- TdDynamicDatepickerComponent], imports: [CommonModule,
671
- ReactiveFormsModule,
672
- MatFormFieldModule,
673
- MatInputModule,
674
- MatSelectModule,
675
- MatCheckboxModule,
676
- MatSliderModule,
677
- MatSlideToggleModule,
678
- MatIconModule,
679
- MatButtonModule,
680
- MatDatepickerModule,
681
- CovalentFileModule], exports: [TdDynamicFormsComponent,
682
- TdDynamicElementComponent,
683
- TdDynamicElementDirective,
684
- TdDynamicFormsErrorTemplateDirective, TdDynamicInputComponent,
685
- TdDynamicFileInputComponent,
686
- TdDynamicTextareaComponent,
687
- TdDynamicSlideToggleComponent,
688
- TdDynamicCheckboxComponent,
689
- TdDynamicSliderComponent,
690
- TdDynamicSelectComponent,
691
- TdDynamicDatepickerComponent] });
692
- CovalentDynamicFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: CovalentDynamicFormsModule, providers: [DYNAMIC_FORMS_PROVIDER], imports: [CommonModule,
693
- ReactiveFormsModule,
694
- MatFormFieldModule,
695
- MatInputModule,
696
- MatSelectModule,
697
- MatCheckboxModule,
698
- MatSliderModule,
699
- MatSlideToggleModule,
700
- MatIconModule,
701
- MatButtonModule,
702
- MatDatepickerModule,
703
- CovalentFileModule] });
704
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: CovalentDynamicFormsModule, decorators: [{
705
- type: NgModule,
706
- args: [{
707
- declarations: [
708
- TdDynamicFormsComponent,
709
- TdDynamicElementComponent,
710
- TdDynamicElementDirective,
711
- TdDynamicFormsErrorTemplateDirective,
712
- TdDynamicInputComponent,
713
- TdDynamicFileInputComponent,
714
- TdDynamicTextareaComponent,
715
- TdDynamicSlideToggleComponent,
716
- TdDynamicCheckboxComponent,
717
- TdDynamicSliderComponent,
718
- TdDynamicSelectComponent,
719
- TdDynamicDatepickerComponent,
720
- ],
721
- imports: [
722
- CommonModule,
723
- ReactiveFormsModule,
724
- MatFormFieldModule,
725
- MatInputModule,
726
- MatSelectModule,
727
- MatCheckboxModule,
728
- MatSliderModule,
729
- MatSlideToggleModule,
730
- MatIconModule,
731
- MatButtonModule,
732
- MatDatepickerModule,
733
- CovalentFileModule,
734
- ],
735
- exports: [...TD_DYNAMIC_FORMS, ...TD_DYNAMIC_FORMS_ENTRY_COMPONENTS],
736
- providers: [DYNAMIC_FORMS_PROVIDER],
737
- }]
738
- }] });
739
-
740
- /**
741
- * Generated bundle index. Do not edit.
742
- */
743
-
744
- export { CovalentDynamicFormsModule, DYNAMIC_ELEMENT_NAME_REGEX, DYNAMIC_FORMS_PROVIDER, DYNAMIC_FORMS_PROVIDER_FACTORY, TdDynamicCheckboxComponent, TdDynamicDatepickerComponent, TdDynamicElement, TdDynamicElementBase, TdDynamicElementComponent, TdDynamicElementDirective, TdDynamicFileInputComponent, TdDynamicFormsComponent, TdDynamicFormsErrorTemplateDirective, TdDynamicFormsService, TdDynamicInputComponent, TdDynamicSelectComponent, TdDynamicSlideToggleComponent, TdDynamicSliderComponent, TdDynamicTextareaComponent, TdDynamicType, _TdDynamicElementMixinBase };
745
- //# sourceMappingURL=covalent-dynamic-forms.mjs.map