@covalent/dynamic-forms 0.0.1

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 (36) hide show
  1. package/README.md +183 -0
  2. package/covalent-dynamic-forms.d.ts +5 -0
  3. package/esm2020/covalent-dynamic-forms.mjs +5 -0
  4. package/esm2020/lib/behaviors/control-value-accesor.mixin.mjs +41 -0
  5. package/esm2020/lib/dynamic-element.component.mjs +178 -0
  6. package/esm2020/lib/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.mjs +19 -0
  7. package/esm2020/lib/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.mjs +23 -0
  8. package/esm2020/lib/dynamic-elements/dynamic-file-input/dynamic-file-input.component.mjs +28 -0
  9. package/esm2020/lib/dynamic-elements/dynamic-input/dynamic-input.component.mjs +22 -0
  10. package/esm2020/lib/dynamic-elements/dynamic-select/dynamic-select.component.mjs +23 -0
  11. package/esm2020/lib/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.mjs +19 -0
  12. package/esm2020/lib/dynamic-elements/dynamic-slider/dynamic-slider.component.mjs +26 -0
  13. package/esm2020/lib/dynamic-elements/dynamic-textarea/dynamic-textarea.component.mjs +22 -0
  14. package/esm2020/lib/dynamic-forms.component.mjs +185 -0
  15. package/esm2020/lib/dynamic-forms.module.mjs +127 -0
  16. package/esm2020/lib/services/dynamic-forms.service.mjs +140 -0
  17. package/esm2020/public_api.mjs +13 -0
  18. package/fesm2015/covalent-dynamic-forms.mjs +787 -0
  19. package/fesm2015/covalent-dynamic-forms.mjs.map +1 -0
  20. package/fesm2020/covalent-dynamic-forms.mjs +785 -0
  21. package/fesm2020/covalent-dynamic-forms.mjs.map +1 -0
  22. package/lib/behaviors/control-value-accesor.mixin.d.ts +16 -0
  23. package/lib/dynamic-element.component.d.ts +103 -0
  24. package/lib/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.d.ts +11 -0
  25. package/lib/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.d.ts +17 -0
  26. package/lib/dynamic-elements/dynamic-file-input/dynamic-file-input.component.d.ts +15 -0
  27. package/lib/dynamic-elements/dynamic-input/dynamic-input.component.d.ts +19 -0
  28. package/lib/dynamic-elements/dynamic-select/dynamic-select.component.d.ts +16 -0
  29. package/lib/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.d.ts +11 -0
  30. package/lib/dynamic-elements/dynamic-slider/dynamic-slider.component.d.ts +17 -0
  31. package/lib/dynamic-elements/dynamic-textarea/dynamic-textarea.component.d.ts +14 -0
  32. package/lib/dynamic-forms.component.d.ts +68 -0
  33. package/lib/dynamic-forms.module.d.ts +28 -0
  34. package/lib/services/dynamic-forms.service.d.ts +74 -0
  35. package/package.json +40 -0
  36. package/public_api.d.ts +12 -0
package/README.md ADDED
@@ -0,0 +1,183 @@
1
+ # td-dynamic-forms
2
+
3
+ ## API Summary
4
+
5
+ #### Inputs
6
+
7
+ - elements: ITdDynamicElementConfig[]
8
+ - JS Object that will render the elements depending on its config.
9
+ - [name] property is required.
10
+
11
+ #### Properties (Read only)
12
+
13
+ - form: FormGroup
14
+ - Getter property for dynamic [FormGroup].
15
+ - valid: boolean
16
+ - Getter property for [valid] of dynamic [FormGroup].
17
+ - value: any
18
+ - Getter property for [value] of dynamic [FormGroup].
19
+ - errors: {[name: string]: any}
20
+ - Getter property for [errors] of dynamic [FormGroup].
21
+ - controls: {[key: string]: AbstractControl}
22
+ - Getter property for [controls] of dynamic [FormGroup].
23
+
24
+ #### Methods
25
+
26
+ - refresh: function
27
+ - Refreshes the form and rerenders all validator/element modifications
28
+
29
+ ## Setup
30
+
31
+ Import the [CovalentDynamicFormsModule] in your NgModule:
32
+
33
+ ```typescript
34
+ import { CovalentDynamicFormsModule } from '@covalent/dynamic-forms';
35
+ @NgModule({
36
+ imports: [
37
+ CovalentDynamicFormsModule,
38
+ ...
39
+ ],
40
+ ...
41
+ })
42
+ export class MyModule {}
43
+ ```
44
+
45
+ ## Usage
46
+
47
+ `td-dynamic-forms` element generates a form dynamically
48
+
49
+ Pass an array of javascript objects that implement [ITdDynamicElementConfig] with the information to be rendered to the [elements] attribute.
50
+
51
+ ```typescript
52
+ // Property values to be set in custom component
53
+ export interface ITdDynamicElementCustomConfig {
54
+ [name: string]: any;
55
+ }
56
+
57
+ export interface ITdDynamicElementConfig {
58
+ label?: string;
59
+ name: string;
60
+ hint?: string;
61
+ type: TdDynamicType | TdDynamicElement | Type<any>;
62
+ required = false;
63
+ disabled?: boolean;
64
+ min?: any;
65
+ max?: any;
66
+ minLength?: any;
67
+ maxLength?: any;
68
+ selections?: string[] | { value: any; label: string }[];
69
+ multiple?: boolean;
70
+ default?: any;
71
+ flex?: number;
72
+ validators?: ITdDynamicElementValidator[];
73
+ customConfig?: ITdDynamicElementCustomConfig;
74
+ }
75
+ ```
76
+
77
+ NOTE: For custom types, you need to implement a `[control]` property and use it in your underlying element.
78
+
79
+ Example for HTML usage:
80
+
81
+ ```html
82
+ <td-dynamic-forms [elements]="elements">
83
+ <ng-template let-element ngFor [ngForOf]="elements">
84
+ <ng-template let-control="control" [tdDynamicFormsError]="element.name">
85
+ <span *ngIf="control.touched || !control.pristine">
86
+ <span *ngIf="control.hasError('required')">Required</span>
87
+ <span *ngIf="control.hasError('min')">Min value: {{element.min}}</span>
88
+ <span *ngIf="control.hasError('max')">Max value: {{element.max}}</span>
89
+ <span *ngIf="control.hasError('minlength')"
90
+ >Min length value: {{element.minLength}}</span
91
+ >
92
+ <span *ngIf="control.hasError('maxlength')"
93
+ >Max length value: {{element.minLength}}</span
94
+ >
95
+ </span>
96
+ </ng-template>
97
+ </ng-template>
98
+ </td-dynamic-forms>
99
+ ```
100
+
101
+ ```typescript
102
+ import { ITdDynamicElementConfig, TdDynamicElement, TdDynamicType } from '@covalent/dynamic-forms';
103
+ ...
104
+ /* CUSTOM TYPE */
105
+ template: `<label>{{label}}</label>
106
+ <input [formControl]="control">
107
+ <div *ngIf="errorMessageTemplate && control?.errors"
108
+ class="tc-red-600"
109
+ [style.font-size.%]="'70'">
110
+ <ng-template
111
+ [ngTemplateOutlet]="errorMessageTemplate"
112
+ [ngTemplateOutletContext]="{control: control, errors: control?.errors}">
113
+ </ng-template>
114
+ </div>`,
115
+ })
116
+ export class DynamicCustomComponent {
117
+ /* control property needed to properly bind the underlying element */
118
+ control: FormControl;
119
+
120
+ /* map any of the properties you passed in the config */
121
+ label: string;
122
+
123
+ /* map the error message template and use it anywhere you need to */
124
+ errorMessageTemplate: TemplateRef<any>;
125
+ }
126
+ ...
127
+ })
128
+ export class Demo {
129
+ elements: ITdDynamicElementConfig[] = [{
130
+ name: 'input',
131
+ hint: 'hint',
132
+ type: TdDynamicElement.Input,
133
+ required: true,
134
+ }, {
135
+ name: 'textLength',
136
+ label: 'Text Length',
137
+ type: TdDynamicElement.Input,
138
+ minLength: 4,
139
+ maxLength: 12,
140
+ }, {
141
+ name: 'number',
142
+ type: TdDynamicType.Number,
143
+ min: 10,
144
+ max: 80,
145
+ }, {
146
+ name: 'slider',
147
+ label: 'Label',
148
+ type: TdDynamicElement.Slider,
149
+ required: true,
150
+ }, {
151
+ name: 'boolean',
152
+ type: TdDynamicType.Boolean,
153
+ default: false,
154
+ disabled: true,
155
+ }, {
156
+ name: 'select',
157
+ type: TdDynamicElement.Select,
158
+ required: true,
159
+ multiple: false,
160
+ selections: ['A','B','C'],
161
+ default: 'A',
162
+ }, {
163
+ name: 'file-input',
164
+ label: 'Label',
165
+ type: TdDynamicElement.FileInput,
166
+ }, {
167
+ name: 'datepicker',
168
+ label: 'Date',
169
+ type: TdDynamicElement.Datepicker,
170
+ }, {
171
+ name: 'custom',
172
+ label: 'Custom',
173
+ type: DynamicCustomComponent,
174
+ required: true,
175
+ }];
176
+ }
177
+ ```
178
+
179
+ Note: To use the datepicker you need to provide an implementation of `DateAdapter`.. click [here] for more information on the material datepicker(https://material.angular.io/components/datepicker/overview#choosing-a-date-implementation-and-date-format-settings)
180
+
181
+ ## Running unit tests
182
+
183
+ Run `nx test angular-dynamic-forms` to execute the unit tests.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@covalent/dynamic-forms" />
5
+ export * from './public_api';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292YWxlbnQtZHluYW1pYy1mb3Jtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1keW5hbWljLWZvcm1zL3NyYy9jb3ZhbGVudC1keW5hbWljLWZvcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { Subject } from 'rxjs';
2
+ const noop = () => {
3
+ // empty method
4
+ };
5
+ /** Mixin to augment a component with ngModel support. */
6
+ export function mixinControlValueAccessor(base, initialValue) {
7
+ return class extends base {
8
+ constructor(...args) {
9
+ super(...args);
10
+ this._value = initialValue instanceof Array
11
+ ? Object.assign([], initialValue)
12
+ : initialValue;
13
+ this.onChange = (_) => noop;
14
+ this.onTouched = () => noop;
15
+ this._subjectValueChanges = new Subject();
16
+ this.valueChanges = this._subjectValueChanges.asObservable();
17
+ }
18
+ set value(v) {
19
+ if (v !== this._value) {
20
+ this._value = v;
21
+ this.onChange(v);
22
+ this._changeDetectorRef.markForCheck();
23
+ this._subjectValueChanges.next(v);
24
+ }
25
+ }
26
+ get value() {
27
+ return this._value;
28
+ }
29
+ writeValue(value) {
30
+ this.value = value;
31
+ this._changeDetectorRef.markForCheck();
32
+ }
33
+ registerOnChange(fn) {
34
+ this.onChange = fn;
35
+ }
36
+ registerOnTouched(fn) {
37
+ this.onTouched = fn;
38
+ }
39
+ };
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC12YWx1ZS1hY2Nlc29yLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWR5bmFtaWMtZm9ybXMvc3JjL2xpYi9iZWhhdmlvcnMvY29udHJvbC12YWx1ZS1hY2Nlc29yLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJM0MsTUFBTSxJQUFJLEdBQVEsR0FBRyxFQUFFO0lBQ3JCLGVBQWU7QUFDakIsQ0FBQyxDQUFDO0FBYUYseURBQXlEO0FBQ3pELE1BQU0sVUFBVSx5QkFBeUIsQ0FFdkMsSUFBTyxFQUFFLFlBQWtCO0lBQzNCLE9BQU8sS0FBTSxTQUFRLElBQUk7UUFRdkIsWUFBWSxHQUFHLElBQVc7WUFDeEIsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFSVCxXQUFNLEdBQ1osWUFBWSxZQUFZLEtBQUs7Z0JBQzNCLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFtQ25CLGFBQVEsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQzVCLGNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUE5QnJCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1lBQy9DLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQy9ELENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxDQUFNO1lBQ2QsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNuQztRQUNILENBQUM7UUFDRCxJQUFJLEtBQUs7WUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQztRQUVELFVBQVUsQ0FBQyxLQUFVO1lBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QyxDQUFDO1FBRUQsZ0JBQWdCLENBQUMsRUFBTztZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNyQixDQUFDO1FBRUQsaUJBQWlCLENBQUMsRUFBTztZQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUN0QixDQUFDO0tBSUYsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxudHlwZSBDb25zdHJ1Y3RvcjxUPiA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQ7XG5cbmNvbnN0IG5vb3A6IGFueSA9ICgpID0+IHtcbiAgLy8gZW1wdHkgbWV0aG9kXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb250cm9sVmFsdWVBY2Nlc3NvciBleHRlbmRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgdmFsdWU6IGFueTtcbiAgdmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPGFueT47XG4gIG9uQ2hhbmdlOiAoXzogYW55KSA9PiBhbnk7XG4gIG9uVG91Y2hlZDogKCkgPT4gYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElIYXNDaGFuZ2VEZXRlY3RvclJlZiB7XG4gIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG59XG5cbi8qKiBNaXhpbiB0byBhdWdtZW50IGEgY29tcG9uZW50IHdpdGggbmdNb2RlbCBzdXBwb3J0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1peGluQ29udHJvbFZhbHVlQWNjZXNzb3I8XG4gIFQgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxJSGFzQ2hhbmdlRGV0ZWN0b3JSZWY+XG4+KGJhc2U6IFQsIGluaXRpYWxWYWx1ZT86IGFueSk6IENvbnN0cnVjdG9yPElDb250cm9sVmFsdWVBY2Nlc3Nvcj4gJiBUIHtcbiAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgYmFzZSB7XG4gICAgcHJpdmF0ZSBfdmFsdWU6IGFueSA9XG4gICAgICBpbml0aWFsVmFsdWUgaW5zdGFuY2VvZiBBcnJheVxuICAgICAgICA/IE9iamVjdC5hc3NpZ24oW10sIGluaXRpYWxWYWx1ZSlcbiAgICAgICAgOiBpbml0aWFsVmFsdWU7XG4gICAgcHJpdmF0ZSBfc3ViamVjdFZhbHVlQ2hhbmdlczogU3ViamVjdDxhbnk+O1xuICAgIHZhbHVlQ2hhbmdlczogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gICAgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgdGhpcy5fc3ViamVjdFZhbHVlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VzID0gdGhpcy5fc3ViamVjdFZhbHVlQ2hhbmdlcy5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBzZXQgdmFsdWUodjogYW55KSB7XG4gICAgICBpZiAodiAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHYpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5fc3ViamVjdFZhbHVlQ2hhbmdlcy5uZXh0KHYpO1xuICAgICAgfVxuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiBub29wO1xuICAgIG9uVG91Y2hlZCA9ICgpID0+IG5vb3A7XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,178 @@
1
+ import { Component, Directive, Input, HostBinding, TemplateRef, ChangeDetectorRef, Type, } from '@angular/core';
2
+ import { ViewChild, ViewContainerRef } from '@angular/core';
3
+ import { ComponentFactoryResolver, forwardRef, } from '@angular/core';
4
+ import { NG_VALUE_ACCESSOR, AbstractControl, } from '@angular/forms';
5
+ import { CdkPortal } from '@angular/cdk/portal';
6
+ import { mixinControlValueAccessor, } from './behaviors/control-value-accesor.mixin';
7
+ import { TdDynamicFormsService, } from './services/dynamic-forms.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "./services/dynamic-forms.service";
10
+ export class TdDynamicElementBase {
11
+ constructor(_changeDetectorRef) {
12
+ this._changeDetectorRef = _changeDetectorRef;
13
+ }
14
+ }
15
+ /* tslint:disable-next-line */
16
+ export const _TdDynamicElementMixinBase = mixinControlValueAccessor(TdDynamicElementBase);
17
+ export class TdDynamicFormsErrorTemplateDirective extends CdkPortal {
18
+ constructor(templateRef, viewContainerRef) {
19
+ super(templateRef, viewContainerRef);
20
+ this.templateRef = templateRef;
21
+ }
22
+ }
23
+ TdDynamicFormsErrorTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicFormsErrorTemplateDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
24
+ TdDynamicFormsErrorTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: TdDynamicFormsErrorTemplateDirective, selector: "[tdDynamicFormsError]ng-template", inputs: { tdDynamicFormsError: "tdDynamicFormsError" }, usesInheritance: true, ngImport: i0 });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicFormsErrorTemplateDirective, decorators: [{
26
+ type: Directive,
27
+ args: [{ selector: '[tdDynamicFormsError]ng-template' }]
28
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { tdDynamicFormsError: [{
29
+ type: Input
30
+ }] } });
31
+ export class TdDynamicElementDirective {
32
+ constructor(viewContainer) {
33
+ this.viewContainer = viewContainer;
34
+ }
35
+ }
36
+ TdDynamicElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicElementDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
37
+ TdDynamicElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: TdDynamicElementDirective, selector: "[tdDynamicContainer]", ngImport: i0 });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicElementDirective, decorators: [{
39
+ type: Directive,
40
+ args: [{
41
+ selector: '[tdDynamicContainer]',
42
+ }]
43
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
44
+ export class TdDynamicElementComponent extends _TdDynamicElementMixinBase {
45
+ constructor(_componentFactoryResolver, _dynamicFormsService, _changeDetectorRef) {
46
+ super(_changeDetectorRef);
47
+ this._componentFactoryResolver = _componentFactoryResolver;
48
+ this._dynamicFormsService = _dynamicFormsService;
49
+ /**
50
+ * Sets label to be displayed.
51
+ */
52
+ this.label = '';
53
+ /**
54
+ * Sets hint to be displayed.
55
+ */
56
+ this.hint = '';
57
+ /**
58
+ * Sets name to be displayed as attribute.
59
+ */
60
+ this.name = '';
61
+ /**
62
+ * Sets the placeholder message
63
+ */
64
+ this.placeholder = '';
65
+ }
66
+ get maxAttr() {
67
+ return this.max;
68
+ }
69
+ get minAttr() {
70
+ return this.min;
71
+ }
72
+ ngOnInit() {
73
+ const component = this.type instanceof Type
74
+ ? this.type
75
+ : this._dynamicFormsService.getDynamicElement(this.type);
76
+ const ref = this._componentFactoryResolver
77
+ .resolveComponentFactory(component)
78
+ .create(this.childElement.viewContainer.injector);
79
+ this.childElement.viewContainer.insert(ref.hostView);
80
+ this._instance = ref.instance;
81
+ this._instance.control = this.dynamicControl;
82
+ this._instance.label = this.label;
83
+ this._instance.hint = this.hint;
84
+ this._instance.name = this.name;
85
+ this._instance.type = this.type;
86
+ this._instance.value = this.value;
87
+ this._instance.required = this.required;
88
+ this._instance.min = this.min;
89
+ this._instance.max = this.max;
90
+ this._instance.minLength = this.minLength;
91
+ this._instance.maxLength = this.maxLength;
92
+ this._instance.selections = this.selections;
93
+ this._instance.multiple = this.multiple;
94
+ this._instance.errorMessageTemplate = this.errorMessageTemplate;
95
+ this._instance.placeholder = this.placeholder;
96
+ if (this.customConfig) {
97
+ Object.getOwnPropertyNames(this.customConfig).forEach((name) => {
98
+ if (this.customConfig) {
99
+ this._instance[name] = this.customConfig[name];
100
+ }
101
+ });
102
+ }
103
+ }
104
+ /**
105
+ * Reassign any inputs that have changed
106
+ */
107
+ ngOnChanges(changes) {
108
+ if (this._instance) {
109
+ for (const prop of Object.keys(changes)) {
110
+ this._instance[prop] = changes[prop].currentValue;
111
+ }
112
+ }
113
+ }
114
+ }
115
+ TdDynamicElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicElementComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.TdDynamicFormsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
116
+ TdDynamicElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", 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: [
117
+ TdDynamicFormsService,
118
+ {
119
+ provide: NG_VALUE_ACCESSOR,
120
+ useExisting: forwardRef(() => TdDynamicElementComponent),
121
+ multi: true,
122
+ },
123
+ ], viewQueries: [{ propertyName: "childElement", first: true, predicate: TdDynamicElementDirective, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<div tdDynamicContainer></div>', isInline: true, directives: [{ type: TdDynamicElementDirective, selector: "[tdDynamicContainer]" }] });
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicElementComponent, decorators: [{
125
+ type: Component,
126
+ args: [{
127
+ providers: [
128
+ TdDynamicFormsService,
129
+ {
130
+ provide: NG_VALUE_ACCESSOR,
131
+ useExisting: forwardRef(() => TdDynamicElementComponent),
132
+ multi: true,
133
+ },
134
+ ],
135
+ selector: 'td-dynamic-element',
136
+ template: '<div tdDynamicContainer></div>',
137
+ }]
138
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.TdDynamicFormsService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { dynamicControl: [{
139
+ type: Input
140
+ }], label: [{
141
+ type: Input
142
+ }], hint: [{
143
+ type: Input
144
+ }], name: [{
145
+ type: Input
146
+ }], type: [{
147
+ type: Input
148
+ }], required: [{
149
+ type: Input
150
+ }], min: [{
151
+ type: Input
152
+ }], max: [{
153
+ type: Input
154
+ }], minLength: [{
155
+ type: Input
156
+ }], maxLength: [{
157
+ type: Input
158
+ }], selections: [{
159
+ type: Input
160
+ }], multiple: [{
161
+ type: Input
162
+ }], customConfig: [{
163
+ type: Input
164
+ }], errorMessageTemplate: [{
165
+ type: Input
166
+ }], placeholder: [{
167
+ type: Input
168
+ }], childElement: [{
169
+ type: ViewChild,
170
+ args: [TdDynamicElementDirective, { static: true }]
171
+ }], maxAttr: [{
172
+ type: HostBinding,
173
+ args: ['attr.max']
174
+ }], minAttr: [{
175
+ type: HostBinding,
176
+ args: ['attr.min']
177
+ }] } });
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1lbGVtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1keW5hbWljLWZvcm1zL3NyYy9saWIvZHluYW1pYy1lbGVtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxLQUFLLEVBQ0wsV0FBVyxFQUlYLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUNMLHdCQUF3QixFQUV4QixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGlCQUFpQixFQUVqQixlQUFlLEdBQ2hCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE9BQU8sRUFDTCx5QkFBeUIsR0FFMUIsTUFBTSx5Q0FBeUMsQ0FBQztBQUVqRCxPQUFPLEVBR0wscUJBQXFCLEdBRXRCLE1BQU0sa0NBQWtDLENBQUM7OztBQUUxQyxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQW1CLGtCQUFxQztRQUFyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO0lBQUcsQ0FBQztDQUM3RDtBQUVELDhCQUE4QjtBQUM5QixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FDckMseUJBQXlCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUdsRCxNQUFNLE9BQU8sb0NBQXFDLFNBQVEsU0FBUztJQUVqRSxZQUNrQixXQUE2QixFQUM3QyxnQkFBa0M7UUFFbEMsS0FBSyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBSHJCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtJQUkvQyxDQUFDOztpSUFQVSxvQ0FBb0M7cUhBQXBDLG9DQUFvQzsyRkFBcEMsb0NBQW9DO2tCQURoRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGtDQUFrQyxFQUFFO2lJQUVoRCxtQkFBbUI7c0JBQTNCLEtBQUs7O0FBWVIsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUFtQixhQUErQjtRQUEvQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFBRyxDQUFDOztzSEFEM0MseUJBQXlCOzBHQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFIckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQzs7QUFpQkQsTUFBTSxPQUFPLHlCQUNYLFNBQVEsMEJBQTBCO0lBOEZsQyxZQUNVLHlCQUFtRCxFQUNuRCxvQkFBMkMsRUFDbkQsa0JBQXFDO1FBRXJDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBSmxCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMEI7UUFDbkQseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF1QjtRQXRGckQ7O1dBRUc7UUFDTSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRXBCOztXQUVHO1FBQ00sU0FBSSxHQUFJLEVBQUUsQ0FBQztRQUVwQjs7V0FFRztRQUNNLFNBQUksR0FBRyxFQUFFLENBQUM7UUFxRG5COztXQUVHO1FBQ00sZ0JBQVcsR0FBSSxFQUFFLENBQUM7SUFxQjNCLENBQUM7SUFoQkQsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQVVELFFBQVE7UUFDTixNQUFNLFNBQVMsR0FDUixJQUFJLENBQUMsSUFBSSxZQUFZLElBQUk7WUFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0QsTUFBTSxHQUFHLEdBQXNCLElBQUksQ0FBQyx5QkFBeUI7YUFDMUQsdUJBQXVCLENBQUMsU0FBUyxDQUFDO2FBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQ2hFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDOUMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUU7Z0JBQ3JFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNoRDtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDO2FBQ25EO1NBQ0Y7SUFDSCxDQUFDOztzSEFsSlUseUJBQXlCOzBHQUF6Qix5QkFBeUIsNmRBWHpCO1FBQ1QscUJBQXFCO1FBQ3JCO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO1lBQ3hELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRix3RUFzRlUseUJBQXlCLDBHQXBGMUIsZ0NBQWdDLHVDQWQvQix5QkFBeUI7MkZBZ0J6Qix5QkFBeUI7a0JBWnJDLFNBQVM7bUJBQUM7b0JBQ1QsU0FBUyxFQUFFO3dCQUNULHFCQUFxQjt3QkFDckI7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7NEJBQ3hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO29CQUNELFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxnQ0FBZ0M7aUJBQzNDO21MQVVVLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBTUcsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csR0FBRztzQkFBWCxLQUFLO2dCQUtHLEdBQUc7c0JBQVgsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR04sWUFBWTtzQkFEWCxTQUFTO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJbEQsT0FBTztzQkFEVixXQUFXO3VCQUFDLFVBQVU7Z0JBTW5CLE9BQU87c0JBRFYsV0FBVzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBIb3N0QmluZGluZyxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPbkNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ29tcG9uZW50UmVmLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBGb3JtQ29udHJvbCxcbiAgQWJzdHJhY3RDb250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDZGtQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuaW1wb3J0IHtcbiAgbWl4aW5Db250cm9sVmFsdWVBY2Nlc3NvcixcbiAgSUNvbnRyb2xWYWx1ZUFjY2Vzc29yLFxufSBmcm9tICcuL2JlaGF2aW9ycy9jb250cm9sLXZhbHVlLWFjY2Vzb3IubWl4aW4nO1xuXG5pbXBvcnQge1xuICBUZER5bmFtaWNFbGVtZW50LFxuICBUZER5bmFtaWNUeXBlLFxuICBUZER5bmFtaWNGb3Jtc1NlcnZpY2UsXG4gIElUZER5bmFtaWNFbGVtZW50Q3VzdG9tQ29uZmlnLFxufSBmcm9tICcuL3NlcnZpY2VzL2R5bmFtaWMtZm9ybXMuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBUZER5bmFtaWNFbGVtZW50QmFzZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxufVxuXG4vKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgKi9cbmV4cG9ydCBjb25zdCBfVGREeW5hbWljRWxlbWVudE1peGluQmFzZSA9XG4gIG1peGluQ29udHJvbFZhbHVlQWNjZXNzb3IoVGREeW5hbWljRWxlbWVudEJhc2UpO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbdGREeW5hbWljRm9ybXNFcnJvcl1uZy10ZW1wbGF0ZScgfSlcbmV4cG9ydCBjbGFzcyBUZER5bmFtaWNGb3Jtc0Vycm9yVGVtcGxhdGVEaXJlY3RpdmUgZXh0ZW5kcyBDZGtQb3J0YWwge1xuICBASW5wdXQoKSB0ZER5bmFtaWNGb3Jtc0Vycm9yPzogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb3ZlcnJpZGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHtcbiAgICBzdXBlcih0ZW1wbGF0ZVJlZiwgdmlld0NvbnRhaW5lclJlZik7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RkRHluYW1pY0NvbnRhaW5lcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBUZER5bmFtaWNFbGVtZW50RGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYpIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICBwcm92aWRlcnM6IFtcbiAgICBUZER5bmFtaWNGb3Jtc1NlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZER5bmFtaWNFbGVtZW50Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHNlbGVjdG9yOiAndGQtZHluYW1pYy1lbGVtZW50JyxcbiAgdGVtcGxhdGU6ICc8ZGl2IHRkRHluYW1pY0NvbnRhaW5lcj48L2Rpdj4nLFxufSlcbmV4cG9ydCBjbGFzcyBUZER5bmFtaWNFbGVtZW50Q29tcG9uZW50XG4gIGV4dGVuZHMgX1RkRHluYW1pY0VsZW1lbnRNaXhpbkJhc2VcbiAgaW1wbGVtZW50cyBJQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25DaGFuZ2VzXG57XG4gIHByaXZhdGUgX2luc3RhbmNlOiBhbnk7XG5cbiAgLyoqXG4gICAqIFNldHMgZm9ybSBjb250cm9sIG9mIHRoZSBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgZHluYW1pY0NvbnRyb2whOiBBYnN0cmFjdENvbnRyb2w7XG5cbiAgLyoqXG4gICAqIFNldHMgbGFiZWwgdG8gYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWwgPSAnJztcblxuICAvKipcbiAgICogU2V0cyBoaW50IHRvIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIEBJbnB1dCgpIGhpbnQ/ID0gJyc7XG5cbiAgLyoqXG4gICAqIFNldHMgbmFtZSB0byBiZSBkaXNwbGF5ZWQgYXMgYXR0cmlidXRlLlxuICAgKi9cbiAgQElucHV0KCkgbmFtZSA9ICcnO1xuXG4gIC8qKlxuICAgKiBTZXRzIHR5cGUgb3IgZWxlbWVudCBvZiBlbGVtZW50IHRvIGJlIHJlbmRlcmVkLlxuICAgKiBUaHJvd3MgZXJyb3IgaWYgZG9lcyBub3QgZXhpc3Qgb3Igbm8gc3VwcG9ydGVkLlxuICAgKi9cbiAgQElucHV0KCkgdHlwZT86IFRkRHluYW1pY0VsZW1lbnQgfCBUZER5bmFtaWNUeXBlIHwgVHlwZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBTZXRzIHJlcXVpcmVkIHZhbGlkYXRpb24gY2hlY2t1cCAoaWYgc3VwcG9ydGVkIGJ5IGVsZW1lbnQpLlxuICAgKi9cbiAgQElucHV0KCkgcmVxdWlyZWQ/OiBib29sZWFuIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTZXRzIG1pbiB2YWxpZGF0aW9uIGNoZWNrdXAgKGlmIHN1cHBvcnRlZCBieSBlbGVtZW50KS5cbiAgICovXG4gIEBJbnB1dCgpIG1pbj86IG51bWJlcjtcblxuICAvKipcbiAgICogU2V0cyBtYXggdmFsaWRhdGlvbiBjaGVja3VwIChpZiBzdXBwb3J0ZWQgYnkgZWxlbWVudCkuXG4gICAqL1xuICBASW5wdXQoKSBtYXg/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNldHMgbWluTGVuZ3RoIHZhbGlkYXRpb24gY2hlY2t1cCAoaWYgc3VwcG9ydGVkIGJ5IGVsZW1lbnQpLlxuICAgKi9cbiAgQElucHV0KCkgbWluTGVuZ3RoPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTZXRzIG1heExlbmd0aCB2YWxpZGF0aW9uIGNoZWNrdXAgKGlmIHN1cHBvcnRlZCBieSBlbGVtZW50KS5cbiAgICovXG4gIEBJbnB1dCgpIG1heExlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogU2V0cyBzZWxlY3Rpb25zIGZvciBhcnJheSBlbGVtZW50cyAoaWYgc3VwcG9ydGVkIGJ5IGVsZW1lbnQpLlxuICAgKi9cbiAgQElucHV0KCkgc2VsZWN0aW9ucz86IGFueVtdO1xuXG4gIC8qKlxuICAgKiBTZXRzIG11bHRpcGxlIHByb3BlcnR5IGZvciBhcnJheSBlbGVtZW50cyAoaWYgc3VwcG9ydGVkIGJ5IGVsZW1lbnQpLlxuICAgKi9cbiAgQElucHV0KCkgbXVsdGlwbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXRzIGFueSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgb24gY3VzdG9tIGNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpIGN1c3RvbUNvbmZpZz86IElUZER5bmFtaWNFbGVtZW50Q3VzdG9tQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBTZXRzIGVycm9yIG1lc3NhZ2UgdGVtcGxhdGUgc28gaXQgY2FuIGJlIGluamVjdGVkIGludG8gZHluYW1pYyBjb21wb25lbnRzLlxuICAgKi9cbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwbGFjZWhvbGRlciBtZXNzYWdlXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj8gPSAnJztcblxuICBAVmlld0NoaWxkKFRkRHluYW1pY0VsZW1lbnREaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGNoaWxkRWxlbWVudCE6IFRkRHluYW1pY0VsZW1lbnREaXJlY3RpdmU7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLm1heCcpXG4gIGdldCBtYXhBdHRyKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMubWF4O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLm1pbicpXG4gIGdldCBtaW5BdHRyKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMubWluO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBfZHluYW1pY0Zvcm1zU2VydmljZTogVGREeW5hbWljRm9ybXNTZXJ2aWNlLFxuICAgIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIoX2NoYW5nZURldGVjdG9yUmVmKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbXBvbmVudDogYW55ID1cbiAgICAgIDxhbnk+dGhpcy50eXBlIGluc3RhbmNlb2YgVHlwZVxuICAgICAgICA/IHRoaXMudHlwZVxuICAgICAgICA6IHRoaXMuX2R5bmFtaWNGb3Jtc1NlcnZpY2UuZ2V0RHluYW1pY0VsZW1lbnQodGhpcy50eXBlKTtcbiAgICBjb25zdCByZWY6IENvbXBvbmVudFJlZjxhbnk+ID0gdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KVxuICAgICAgLmNyZWF0ZSh0aGlzLmNoaWxkRWxlbWVudC52aWV3Q29udGFpbmVyLmluamVjdG9yKTtcbiAgICB0aGlzLmNoaWxkRWxlbWVudC52aWV3Q29udGFpbmVyLmluc2VydChyZWYuaG9zdFZpZXcpO1xuICAgIHRoaXMuX2luc3RhbmNlID0gcmVmLmluc3RhbmNlO1xuICAgIHRoaXMuX2luc3RhbmNlLmNvbnRyb2wgPSB0aGlzLmR5bmFtaWNDb250cm9sO1xuICAgIHRoaXMuX2luc3RhbmNlLmxhYmVsID0gdGhpcy5sYWJlbDtcbiAgICB0aGlzLl9pbnN0YW5jZS5oaW50ID0gdGhpcy5oaW50O1xuICAgIHRoaXMuX2luc3RhbmNlLm5hbWUgPSB0aGlzLm5hbWU7XG4gICAgdGhpcy5faW5zdGFuY2UudHlwZSA9IHRoaXMudHlwZTtcbiAgICB0aGlzLl9pbnN0YW5jZS52YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgdGhpcy5faW5zdGFuY2UucmVxdWlyZWQgPSB0aGlzLnJlcXVpcmVkO1xuICAgIHRoaXMuX2luc3RhbmNlLm1pbiA9IHRoaXMubWluO1xuICAgIHRoaXMuX2luc3RhbmNlLm1heCA9IHRoaXMubWF4O1xuICAgIHRoaXMuX2luc3RhbmNlLm1pbkxlbmd0aCA9IHRoaXMubWluTGVuZ3RoO1xuICAgIHRoaXMuX2luc3RhbmNlLm1heExlbmd0aCA9IHRoaXMubWF4TGVuZ3RoO1xuICAgIHRoaXMuX2luc3RhbmNlLnNlbGVjdGlvbnMgPSB0aGlzLnNlbGVjdGlvbnM7XG4gICAgdGhpcy5faW5zdGFuY2UubXVsdGlwbGUgPSB0aGlzLm11bHRpcGxlO1xuICAgIHRoaXMuX2luc3RhbmNlLmVycm9yTWVzc2FnZVRlbXBsYXRlID0gdGhpcy5lcnJvck1lc3NhZ2VUZW1wbGF0ZTtcbiAgICB0aGlzLl9pbnN0YW5jZS5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgaWYgKHRoaXMuY3VzdG9tQ29uZmlnKSB7XG4gICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzLmN1c3RvbUNvbmZpZykuZm9yRWFjaCgobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUNvbmZpZykge1xuICAgICAgICAgIHRoaXMuX2luc3RhbmNlW25hbWVdID0gdGhpcy5jdXN0b21Db25maWdbbmFtZV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFzc2lnbiBhbnkgaW5wdXRzIHRoYXQgaGF2ZSBjaGFuZ2VkXG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2luc3RhbmNlKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3Agb2YgT2JqZWN0LmtleXMoY2hhbmdlcykpIHtcbiAgICAgICAgdGhpcy5faW5zdGFuY2VbcHJvcF0gPSBjaGFuZ2VzW3Byb3BdLmN1cnJlbnRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/checkbox";
4
+ import * as i2 from "@angular/forms";
5
+ export class TdDynamicCheckboxComponent {
6
+ constructor() {
7
+ this.label = '';
8
+ this.name = '';
9
+ this.hint = '';
10
+ this.required = false;
11
+ }
12
+ }
13
+ TdDynamicCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ TdDynamicCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", 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: [""], components: [{ type: i1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i1.MatCheckboxRequiredValidator, selector: "mat-checkbox[required][formControlName], mat-checkbox[required][formControl], mat-checkbox[required][ngModel]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicCheckboxComponent, decorators: [{
16
+ type: Component,
17
+ 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", styles: [""] }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItZHluYW1pYy1mb3Jtcy9zcmMvbGliL2R5bmFtaWMtZWxlbWVudHMvZHluYW1pYy1jaGVja2JveC9keW5hbWljLWNoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1keW5hbWljLWZvcm1zL3NyYy9saWIvZHluYW1pYy1lbGVtZW50cy9keW5hbWljLWNoZWNrYm94L2R5bmFtaWMtY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVExQyxNQUFNLE9BQU8sMEJBQTBCO0lBTHZDO1FBUUUsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLFNBQUksR0FBRyxFQUFFLENBQUM7UUFFVixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRVYsYUFBUSxHQUFHLEtBQUssQ0FBQztLQUNsQjs7dUhBVlksMEJBQTBCOzJHQUExQiwwQkFBMEIsMkRDUnZDLHFQQU1BOzJGREVhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1keW5hbWljLWNoZWNrYm94JyxcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRkRHluYW1pY0NoZWNrYm94Q29tcG9uZW50IHtcbiAgY29udHJvbCE6IEZvcm1Db250cm9sO1xuXG4gIGxhYmVsID0gJyc7XG5cbiAgbmFtZSA9ICcnO1xuXG4gIGhpbnQgPSAnJztcblxuICByZXF1aXJlZCA9IGZhbHNlO1xufVxuIiwiPGRpdiBjbGFzcz1cInRkLWR5bmFtaWMtY2hlY2tib3gtd3JhcHBlclwiPlxuICA8bWF0LWNoZWNrYm94IFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgW25hbWVdPVwibmFtZVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiPlxuICAgIHt7IGxhYmVsIH19XG4gIDwvbWF0LWNoZWNrYm94PlxuICA8c3BhbiBjbGFzcz1cIm1hdC1oaW50IHRkLWR5bmFtaWMtZWxlbWVudC1oaW50XCI+e3sgaGludCB9fTwvc3Bhbj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,23 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/form-field";
4
+ import * as i2 from "@angular/material/datepicker";
5
+ import * as i3 from "@angular/material/input";
6
+ import * as i4 from "@angular/forms";
7
+ import * as i5 from "@angular/common";
8
+ export class TdDynamicDatepickerComponent {
9
+ constructor() {
10
+ this.label = '';
11
+ this.hint = '';
12
+ this.name = '';
13
+ this.required = false;
14
+ this.placeholder = '';
15
+ }
16
+ }
17
+ TdDynamicDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ TdDynamicDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", 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"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i3.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"] }, { type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.MatSuffix, selector: "[matSuffix]" }] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicDatepickerComponent, decorators: [{
20
+ type: Component,
21
+ 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"] }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kYXRlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1keW5hbWljLWZvcm1zL3NyYy9saWIvZHluYW1pYy1lbGVtZW50cy9keW5hbWljLWRhdGVwaWNrZXIvZHluYW1pYy1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1keW5hbWljLWZvcm1zL3NyYy9saWIvZHluYW1pYy1lbGVtZW50cy9keW5hbWljLWRhdGVwaWNrZXIvZHluYW1pYy1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFRdkQsTUFBTSxPQUFPLDRCQUE0QjtJQUx6QztRQVFFLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFWCxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRVYsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUlWLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFRakIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7S0FDbEI7O3lIQXBCWSw0QkFBNEI7NkdBQTVCLDRCQUE0Qiw2RENSekMsaTRCQStCQTsyRkR2QmEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1keW5hbWljLWRhdGVwaWNrZXInLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWRhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRkRHluYW1pY0RhdGVwaWNrZXJDb21wb25lbnQge1xuICBjb250cm9sITogRm9ybUNvbnRyb2w7XG5cbiAgbGFiZWwgPSAnJztcblxuICBoaW50ID0gJyc7XG5cbiAgbmFtZSA9ICcnO1xuXG4gIHR5cGU/OiBzdHJpbmc7XG5cbiAgcmVxdWlyZWQgPSBmYWxzZTtcblxuICBtaW4/OiBudW1iZXI7XG5cbiAgbWF4PzogbnVtYmVyO1xuXG4gIGVycm9yTWVzc2FnZVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwbGFjZWhvbGRlciA9ICcnO1xufVxuIiwiPGRpdiBjbGFzcz1cInRkLWR5bmFtaWMtZGF0ZXBpY2tlci13cmFwcGVyXCI+XG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInRkLWR5bmFtaWMtZGF0ZXBpY2tlci1maWVsZFwiPlxuICAgIDxtYXQtbGFiZWw+e3sgbGFiZWwgfX08L21hdC1sYWJlbD5cbiAgICA8aW5wdXRcbiAgICAgICNlbGVtZW50SW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICBbbWF0RGF0ZXBpY2tlcl09XCJkeW5hbWljRGF0ZVBpY2tlclwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgW21heF09XCJtYXhcIlxuICAgIC8+XG4gICAgPG1hdC1oaW50Pnt7IGhpbnQgfX08L21hdC1oaW50PlxuICAgIDxtYXQtZXJyb3I+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXJyb3JNZXNzYWdlVGVtcGxhdGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgIGNvbnRyb2w6IGNvbnRyb2wsXG4gICAgICAgICAgZXJyb3JzOiBjb250cm9sPy5lcnJvcnNcbiAgICAgICAgfVwiXG4gICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlXG4gICAgICBtYXRTdWZmaXhcbiAgICAgIFtmb3JdPVwiZHluYW1pY0RhdGVQaWNrZXJcIlxuICAgID48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICA8bWF0LWRhdGVwaWNrZXIgI2R5bmFtaWNEYXRlUGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/form-field";
4
+ import * as i2 from "@angular/material/button";
5
+ import * as i3 from "@angular/material/icon";
6
+ import * as i4 from "@covalent/core/file";
7
+ import * as i5 from "@angular/material/input";
8
+ import * as i6 from "@angular/common";
9
+ import * as i7 from "@angular/forms";
10
+ export class TdDynamicFileInputComponent {
11
+ constructor() {
12
+ this.required = false;
13
+ this.label = '';
14
+ this.name = '';
15
+ this.hint = '';
16
+ this.placeholder = '';
17
+ }
18
+ _handlefileDrop(value) {
19
+ this.control?.setValue(value);
20
+ }
21
+ }
22
+ TdDynamicFileInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicFileInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ TdDynamicFileInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", 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 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", 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"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.TdFileInputComponent, selector: "td-file-input", inputs: ["color", "multiple", "accept", "disabled", "value"], outputs: ["selectFile"] }], directives: [{ type: i4.TdFileDropDirective, selector: "[tdFileDrop]", inputs: ["multiple", "disabled"], outputs: ["fileDrop"] }, { type: i1.MatLabel, selector: "mat-label" }, { type: i5.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"] }, { type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicFileInputComponent, decorators: [{
25
+ type: Component,
26
+ 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 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", 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"] }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWxlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1keW5hbWljLWZvcm1zL3NyYy9saWIvZHluYW1pYy1lbGVtZW50cy9keW5hbWljLWZpbGUtaW5wdXQvZHluYW1pYy1maWxlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1keW5hbWljLWZvcm1zL3NyYy9saWIvZHluYW1pYy1lbGVtZW50cy9keW5hbWljLWZpbGUtaW5wdXQvZHluYW1pYy1maWxlLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQVF2RCxNQUFNLE9BQU8sMkJBQTJCO0lBTHhDO1FBUUUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUVWLFNBQUksR0FBRyxFQUFFLENBQUM7UUFJVixnQkFBVyxHQUFHLEVBQUUsQ0FBQztLQUtsQjtJQUhDLGVBQWUsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7O3dIQWpCVSwyQkFBMkI7NEdBQTNCLDJCQUEyQiw2RENSeEMsODFDQTZDQTsyRkRyQ2EsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1keW5hbWljLWZpbGUtaW5wdXQnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZpbGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZmlsZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRkRHluYW1pY0ZpbGVJbnB1dENvbXBvbmVudCB7XG4gIGNvbnRyb2whOiBGb3JtQ29udHJvbDtcblxuICByZXF1aXJlZCA9IGZhbHNlO1xuXG4gIGxhYmVsID0gJyc7XG5cbiAgbmFtZSA9ICcnO1xuXG4gIGhpbnQgPSAnJztcblxuICBlcnJvck1lc3NhZ2VUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcGxhY2Vob2xkZXIgPSAnJztcblxuICBfaGFuZGxlZmlsZURyb3AodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbD8uc2V0VmFsdWUodmFsdWUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGQtZHluYW1pYy1maWxlLWlucHV0LXdyYXBwZXJcIj5cbiAgPG1hdC1mb3JtLWZpZWxkXG4gICAgdGRGaWxlRHJvcFxuICAgIGNsYXNzPVwidGQtZHluYW1pYy1maWxlLWlucHV0LWZpZWxkXCJcbiAgICBmbG9hdExhYmVsPVwibmV2ZXJcIlxuICAgIFtkaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZFwiXG4gICAgKGZpbGVEcm9wKT1cIl9oYW5kbGVmaWxlRHJvcCgkZXZlbnQpXCJcbiAgICAoY2xpY2spPVwiIWNvbnRyb2w/LmRpc2FibGVkICYmIGZpbGVJbnB1dC5pbnB1dEVsZW1lbnQuY2xpY2soKVwiXG4gICAgKGtleXVwLmVudGVyKT1cIiFjb250cm9sPy5kaXNhYmxlZCAmJiBmaWxlSW5wdXQuaW5wdXRFbGVtZW50LmNsaWNrKClcIlxuICAgIChrZXl1cC5kZWxldGUpPVwiZmlsZUlucHV0LmNsZWFyKClcIlxuICAgIChrZXl1cC5iYWNrc3BhY2UpPVwiZmlsZUlucHV0LmNsZWFyKClcIlxuICA+XG4gICAgPG1hdC1sYWJlbD57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIFt2YWx1ZV09XCJjb250cm9sPy52YWx1ZT8ubmFtZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZFwiXG4gICAgICByZWFkb25seVxuICAgIC8+XG4gICAgPG1hdC1oaW50Pnt7IGhpbnQgfX08L21hdC1oaW50PlxuICAgIDxtYXQtZXJyb3I+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXJyb3JNZXNzYWdlVGVtcGxhdGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgIGNvbnRyb2w6IGNvbnRyb2wsXG4gICAgICAgICAgZXJyb3JzOiBjb250cm9sPy5lcnJvcnNcbiAgICAgICAgfVwiXG4gICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L21hdC1lcnJvcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPGJ1dHRvblxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICpuZ0lmPVwiY29udHJvbC52YWx1ZVwiXG4gICAgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGVhcigpXCJcbiAgICAoa2V5dXAuZW50ZXIpPVwiZmlsZUlucHV0LmNsZWFyKClcIlxuICA+XG4gICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8dGQtZmlsZS1pbnB1dCBjbGFzcz1cInRkLWZpbGUtaW5wdXRcIiAjZmlsZUlucHV0IFtmb3JtQ29udHJvbF09XCJjb250cm9sXCI+XG4gICAgPG1hdC1pY29uPmZvbGRlcjwvbWF0LWljb24+XG4gICAgPHNwYW4+e3sgbGFiZWwgfX08L3NwYW4+XG4gIDwvdGQtZmlsZS1pbnB1dD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,22 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/form-field";
4
+ import * as i2 from "@angular/material/input";
5
+ import * as i3 from "@angular/forms";
6
+ import * as i4 from "@angular/common";
7
+ export class TdDynamicInputComponent {
8
+ constructor() {
9
+ this.label = '';
10
+ this.hint = '';
11
+ this.required = false;
12
+ this.name = '';
13
+ this.placeholder = '';
14
+ }
15
+ }
16
+ TdDynamicInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
+ TdDynamicInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", 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 [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", 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"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i2.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"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicInputComponent, decorators: [{
19
+ type: Component,
20
+ 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 [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", 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"] }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItZHluYW1pYy1mb3Jtcy9zcmMvbGliL2R5bmFtaWMtZWxlbWVudHMvZHluYW1pYy1pbnB1dC9keW5hbWljLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1keW5hbWljLWZvcm1zL3NyYy9saWIvZHluYW1pYy1lbGVtZW50cy9keW5hbWljLWlucHV0L2R5bmFtaWMtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUXZELE1BQU0sT0FBTyx1QkFBdUI7SUFMcEM7UUFRRSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUlWLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQVlWLGdCQUFXLEdBQUcsRUFBRSxDQUFDO0tBQ2xCOztvSEF4QlksdUJBQXVCO3dHQUF2Qix1QkFBdUIsd0RDUnBDLG14QkE0QkE7MkZEcEJhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtZHluYW1pYy1pbnB1dCcsXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUZER5bmFtaWNJbnB1dENvbXBvbmVudCB7XG4gIGNvbnRyb2whOiBGb3JtQ29udHJvbDtcblxuICBsYWJlbCA9ICcnO1xuXG4gIGhpbnQgPSAnJztcblxuICB0eXBlITogc3RyaW5nO1xuXG4gIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgbmFtZSA9ICcnO1xuXG4gIG1pbj86IG51bWJlcjtcblxuICBtYXg/OiBudW1iZXI7XG5cbiAgbWluTGVuZ3RoPzogbnVtYmVyO1xuXG4gIG1heExlbmd0aD86IG51bWJlcjtcblxuICBlcnJvck1lc3NhZ2VUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcGxhY2Vob2xkZXIgPSAnJztcbn1cbiIsIjxkaXYgY2xhc3M9XCJ0ZC1keW5hbWljLWlucHV0LXdyYXBwZXJcIj5cbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidGQtZHluYW1pYy1pbnB1dC1maWVsZFwiPlxuICAgIDxtYXQtbGFiZWw+e3sgbGFiZWwgfX08L21hdC1sYWJlbD5cbiAgICA8aW5wdXRcbiAgICAgICNlbGVtZW50SW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFthdHRyLm1pbl09XCJtaW5cIlxuICAgICAgW2F0dHIubWF4XT1cIm1heFwiXG4gICAgICBbYXR0ci5taW5MZW5ndGhdPVwibWluTGVuZ3RoXCJcbiAgICAgIFthdHRyLm1heExlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgIC8+XG4gICAgPG1hdC1oaW50Pnt7IGhpbnQgfX08L21hdC1oaW50PlxuICAgIDxtYXQtZXJyb3I+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXJyb3JNZXNzYWdlVGVtcGxhdGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgIGNvbnRyb2w6IGNvbnRyb2wsXG4gICAgICAgICAgZXJyb3JzOiBjb250cm9sPy5lcnJvcnNcbiAgICAgICAgfVwiXG4gICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L21hdC1lcnJvcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZGl2PlxuIl19