@covalent/dynamic-forms 4.0.0-beta.2 → 4.1.0-develop.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +26 -18
  2. package/covalent-dynamic-forms.d.ts +1 -1
  3. package/esm2020/covalent-dynamic-forms.mjs +2 -2
  4. package/esm2020/lib/dynamic-element.component.mjs +178 -0
  5. package/esm2020/lib/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.mjs +19 -0
  6. package/esm2020/lib/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.mjs +23 -0
  7. package/esm2020/lib/dynamic-elements/dynamic-file-input/dynamic-file-input.component.mjs +28 -0
  8. package/esm2020/lib/dynamic-elements/dynamic-input/dynamic-input.component.mjs +22 -0
  9. package/esm2020/lib/dynamic-elements/dynamic-select/dynamic-select.component.mjs +23 -0
  10. package/esm2020/lib/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.mjs +19 -0
  11. package/esm2020/lib/dynamic-elements/dynamic-slider/dynamic-slider.component.mjs +26 -0
  12. package/esm2020/lib/dynamic-elements/dynamic-textarea/dynamic-textarea.component.mjs +22 -0
  13. package/esm2020/lib/dynamic-forms.component.mjs +185 -0
  14. package/esm2020/lib/dynamic-forms.module.mjs +127 -0
  15. package/esm2020/lib/services/dynamic-forms.service.mjs +140 -0
  16. package/esm2020/public_api.mjs +13 -13
  17. package/fesm2015/covalent-dynamic-forms.mjs +177 -572
  18. package/fesm2015/covalent-dynamic-forms.mjs.map +1 -1
  19. package/fesm2020/covalent-dynamic-forms.mjs +248 -565
  20. package/fesm2020/covalent-dynamic-forms.mjs.map +1 -1
  21. package/{dynamic-element.component.d.ts → lib/dynamic-element.component.d.ts} +17 -17
  22. package/{dynamic-elements → lib/dynamic-elements}/dynamic-checkbox/dynamic-checkbox.component.d.ts +0 -0
  23. package/{dynamic-elements → lib/dynamic-elements}/dynamic-datepicker/dynamic-datepicker.component.d.ts +3 -3
  24. package/{dynamic-elements → lib/dynamic-elements}/dynamic-file-input/dynamic-file-input.component.d.ts +1 -1
  25. package/{dynamic-elements → lib/dynamic-elements}/dynamic-input/dynamic-input.component.d.ts +4 -4
  26. package/{dynamic-elements → lib/dynamic-elements}/dynamic-select/dynamic-select.component.d.ts +2 -2
  27. package/{dynamic-elements → lib/dynamic-elements}/dynamic-slide-toggle/dynamic-slide-toggle.component.d.ts +0 -0
  28. package/{dynamic-elements → lib/dynamic-elements}/dynamic-slider/dynamic-slider.component.d.ts +2 -2
  29. package/{dynamic-elements → lib/dynamic-elements}/dynamic-textarea/dynamic-textarea.component.d.ts +0 -0
  30. package/{dynamic-forms.component.d.ts → lib/dynamic-forms.component.d.ts} +1 -1
  31. package/{dynamic-forms.module.d.ts → lib/dynamic-forms.module.d.ts} +2 -3
  32. package/{services → lib/services}/dynamic-forms.service.d.ts +2 -2
  33. package/package.json +17 -19
  34. package/public_api.d.ts +12 -12
  35. package/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.scss +0 -0
  36. package/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.scss +0 -13
  37. package/dynamic-elements/dynamic-file-input/dynamic-file-input.component.scss +0 -17
  38. package/dynamic-elements/dynamic-input/dynamic-input.component.scss +0 -13
  39. package/dynamic-elements/dynamic-select/dynamic-select.component.scss +0 -13
  40. package/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.scss +0 -0
  41. package/dynamic-elements/dynamic-slider/dynamic-slider.component.scss +0 -19
  42. package/dynamic-elements/dynamic-textarea/dynamic-textarea.component.scss +0 -13
  43. package/dynamic-forms.component.scss +0 -27
  44. package/esm2020/dynamic-element.component.mjs +0 -220
  45. package/esm2020/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.mjs +0 -35
  46. package/esm2020/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.mjs +0 -58
  47. package/esm2020/dynamic-elements/dynamic-file-input/dynamic-file-input.component.mjs +0 -84
  48. package/esm2020/dynamic-elements/dynamic-input/dynamic-input.component.mjs +0 -55
  49. package/esm2020/dynamic-elements/dynamic-select/dynamic-select.component.mjs +0 -67
  50. package/esm2020/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.mjs +0 -36
  51. package/esm2020/dynamic-elements/dynamic-slider/dynamic-slider.component.mjs +0 -62
  52. package/esm2020/dynamic-elements/dynamic-textarea/dynamic-textarea.component.mjs +0 -50
  53. package/esm2020/dynamic-forms.component.mjs +0 -220
  54. package/esm2020/dynamic-forms.module.mjs +0 -118
  55. package/esm2020/index.mjs +0 -2
  56. package/esm2020/services/dynamic-forms.service.mjs +0 -125
  57. package/index.d.ts +0 -1
@@ -1,13 +0,0 @@
1
- .td-dynamic-select-wrapper {
2
- // [layout="row"]
3
- flex-direction: row;
4
- // [layout]
5
- display: flex;
6
- box-sizing: border-box;
7
-
8
- .td-dynamic-select-field {
9
- // [flex]
10
- flex: 1;
11
- box-sizing: border-box;
12
- }
13
- }
@@ -1,19 +0,0 @@
1
- :host {
2
- .td-dynamic-slider-wrapper {
3
- display: block;
4
- }
5
- }
6
-
7
- .td-dynamic-slider-field {
8
- position: relative;
9
- // [layout="row"]
10
- flex-direction: row;
11
- // [layout]
12
- display: flex;
13
- box-sizing: border-box;
14
-
15
- .td-dynamic-slider {
16
- // [flex]
17
- flex: 1;
18
- }
19
- }
@@ -1,13 +0,0 @@
1
- .td-dynamic-textarea-wrapper {
2
- // [layout="row"]
3
- flex-direction: row;
4
- // [layout]
5
- display: flex;
6
- box-sizing: border-box;
7
-
8
- .td-dynamic-textarea-field {
9
- // [flex]
10
- flex: 1;
11
- box-sizing: border-box;
12
- }
13
- }
@@ -1,27 +0,0 @@
1
- .td-dynamic-form-wrapper {
2
- flex-flow: row wrap;
3
- box-sizing: border-box;
4
- display: flex;
5
- align-items: center;
6
- align-content: center;
7
- max-width: 100%;
8
- justify-content: flex-start;
9
-
10
- ::ng-deep {
11
- .mat-form-field-infix {
12
- width: auto;
13
- }
14
-
15
- .td-dynamic-element-hint {
16
- font-size: 75%;
17
- display: block;
18
- }
19
- }
20
-
21
- .td-dynamic-element-wrapper {
22
- max-height: 100%;
23
- box-sizing: border-box;
24
- position: relative;
25
- padding: 4px 4px 8px;
26
- }
27
- }
@@ -1,220 +0,0 @@
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, FormControl } from '@angular/forms';
5
- import { TemplatePortalDirective } from '@angular/cdk/portal';
6
- import { mixinControlValueAccessor } from '@covalent/core/common';
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 TemplatePortalDirective {
18
- constructor(templateRef, viewContainerRef) {
19
- super(templateRef, viewContainerRef);
20
- this.templateRef = templateRef;
21
- }
22
- }
23
- /** @nocollapse */ /** @nocollapse */ TdDynamicFormsErrorTemplateDirective.ɵfac = function TdDynamicFormsErrorTemplateDirective_Factory(t) { return new (t || TdDynamicFormsErrorTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
24
- /** @nocollapse */ /** @nocollapse */ TdDynamicFormsErrorTemplateDirective.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: TdDynamicFormsErrorTemplateDirective, selectors: [["ng-template", "tdDynamicFormsError", ""]], inputs: { tdDynamicFormsError: "tdDynamicFormsError" }, features: [i0.ɵɵInheritDefinitionFeature] });
25
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdDynamicFormsErrorTemplateDirective, [{
26
- type: Directive,
27
- args: [{ selector: '[tdDynamicFormsError]ng-template' }]
28
- }], function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, { tdDynamicFormsError: [{
29
- type: Input
30
- }] }); })();
31
- export class TdDynamicElementDirective {
32
- constructor(viewContainer) {
33
- this.viewContainer = viewContainer;
34
- }
35
- }
36
- /** @nocollapse */ /** @nocollapse */ TdDynamicElementDirective.ɵfac = function TdDynamicElementDirective_Factory(t) { return new (t || TdDynamicElementDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
37
- /** @nocollapse */ /** @nocollapse */ TdDynamicElementDirective.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: TdDynamicElementDirective, selectors: [["", "tdDynamicContainer", ""]] });
38
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdDynamicElementDirective, [{
39
- type: Directive,
40
- args: [{
41
- selector: '[tdDynamicContainer]',
42
- }]
43
- }], function () { return [{ type: i0.ViewContainerRef }]; }, null); })();
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 type or element of element to be rendered.
63
- * Throws error if does not exist or no supported.
64
- */
65
- this.type = undefined;
66
- /**
67
- * Sets required validation checkup (if supported by element).
68
- */
69
- this.required = undefined;
70
- /**
71
- * Sets min validation checkup (if supported by element).
72
- */
73
- this.min = undefined;
74
- /**
75
- * Sets max validation checkup (if supported by element).
76
- */
77
- this.max = undefined;
78
- /**
79
- * Sets minLength validation checkup (if supported by element).
80
- */
81
- this.minLength = undefined;
82
- /**
83
- * Sets maxLength validation checkup (if supported by element).
84
- */
85
- this.maxLength = undefined;
86
- /**
87
- * Sets selections for array elements (if supported by element).
88
- */
89
- this.selections = undefined;
90
- /**
91
- * Sets multiple property for array elements (if supported by element).
92
- */
93
- this.multiple = undefined;
94
- /**
95
- * Sets error message template so it can be injected into dynamic components.
96
- */
97
- this.errorMessageTemplate = undefined;
98
- /**
99
- * Sets the placeholder message
100
- */
101
- this.placeholder = '';
102
- }
103
- get maxAttr() {
104
- return this.max;
105
- }
106
- get minAttr() {
107
- return this.min;
108
- }
109
- ngOnInit() {
110
- const component = this.type instanceof Type ? this.type : this._dynamicFormsService.getDynamicElement(this.type);
111
- const ref = this._componentFactoryResolver
112
- .resolveComponentFactory(component)
113
- .create(this.childElement.viewContainer.injector);
114
- this.childElement.viewContainer.insert(ref.hostView);
115
- this._instance = ref.instance;
116
- this._instance.control = this.dynamicControl;
117
- this._instance.label = this.label;
118
- this._instance.hint = this.hint;
119
- this._instance.name = this.name;
120
- this._instance.type = this.type;
121
- this._instance.value = this.value;
122
- this._instance.required = this.required;
123
- this._instance.min = this.min;
124
- this._instance.max = this.max;
125
- this._instance.minLength = this.minLength;
126
- this._instance.maxLength = this.maxLength;
127
- this._instance.selections = this.selections;
128
- this._instance.multiple = this.multiple;
129
- this._instance.errorMessageTemplate = this.errorMessageTemplate;
130
- this._instance.placeholder = this.placeholder;
131
- if (this.customConfig) {
132
- Object.getOwnPropertyNames(this.customConfig).forEach((name) => {
133
- this._instance[name] = this.customConfig[name];
134
- });
135
- }
136
- }
137
- /**
138
- * Reassign any inputs that have changed
139
- */
140
- ngOnChanges(changes) {
141
- if (this._instance) {
142
- for (const prop of Object.keys(changes)) {
143
- this._instance[prop] = changes[prop].currentValue;
144
- }
145
- }
146
- }
147
- }
148
- /** @nocollapse */ /** @nocollapse */ TdDynamicElementComponent.ɵfac = function TdDynamicElementComponent_Factory(t) { return new (t || TdDynamicElementComponent)(i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i1.TdDynamicFormsService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
149
- /** @nocollapse */ /** @nocollapse */ TdDynamicElementComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TdDynamicElementComponent, selectors: [["td-dynamic-element"]], viewQuery: function TdDynamicElementComponent_Query(rf, ctx) { if (rf & 1) {
150
- i0.ɵɵviewQuery(TdDynamicElementDirective, 7);
151
- } if (rf & 2) {
152
- let _t;
153
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.childElement = _t.first);
154
- } }, hostVars: 2, hostBindings: function TdDynamicElementComponent_HostBindings(rf, ctx) { if (rf & 2) {
155
- i0.ɵɵattribute("max", ctx.maxAttr)("min", ctx.minAttr);
156
- } }, 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" }, features: [i0.ɵɵProvidersFeature([
157
- TdDynamicFormsService,
158
- {
159
- provide: NG_VALUE_ACCESSOR,
160
- useExisting: forwardRef((() => TdDynamicElementComponent)),
161
- multi: true,
162
- },
163
- ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 1, vars: 0, consts: [["tdDynamicContainer", ""]], template: function TdDynamicElementComponent_Template(rf, ctx) { if (rf & 1) {
164
- i0.ɵɵelement(0, "div", 0);
165
- } }, directives: [TdDynamicElementDirective], encapsulation: 2 });
166
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdDynamicElementComponent, [{
167
- type: Component,
168
- args: [{
169
- providers: [
170
- TdDynamicFormsService,
171
- {
172
- provide: NG_VALUE_ACCESSOR,
173
- useExisting: forwardRef((() => TdDynamicElementComponent)),
174
- multi: true,
175
- },
176
- ],
177
- selector: 'td-dynamic-element',
178
- template: '<div tdDynamicContainer></div>',
179
- }]
180
- }], function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.TdDynamicFormsService }, { type: i0.ChangeDetectorRef }]; }, { dynamicControl: [{
181
- type: Input
182
- }], label: [{
183
- type: Input
184
- }], hint: [{
185
- type: Input
186
- }], name: [{
187
- type: Input
188
- }], type: [{
189
- type: Input
190
- }], required: [{
191
- type: Input
192
- }], min: [{
193
- type: Input
194
- }], max: [{
195
- type: Input
196
- }], minLength: [{
197
- type: Input
198
- }], maxLength: [{
199
- type: Input
200
- }], selections: [{
201
- type: Input
202
- }], multiple: [{
203
- type: Input
204
- }], customConfig: [{
205
- type: Input
206
- }], errorMessageTemplate: [{
207
- type: Input
208
- }], placeholder: [{
209
- type: Input
210
- }], childElement: [{
211
- type: ViewChild,
212
- args: [TdDynamicElementDirective, { static: true }]
213
- }], maxAttr: [{
214
- type: HostBinding,
215
- args: ['attr.max']
216
- }], minAttr: [{
217
- type: HostBinding,
218
- args: ['attr.min']
219
- }] }); })();
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1lbGVtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9keW5hbWljLWZvcm1zL2R5bmFtaWMtZWxlbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFJWCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSx3QkFBd0IsRUFBZ0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHlCQUF5QixFQUF5QixNQUFNLHVCQUF1QixDQUFDO0FBRXpGLE9BQU8sRUFHTCxxQkFBcUIsR0FFdEIsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBRTFDLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFBbUIsa0JBQXFDO1FBQXJDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7SUFBRyxDQUFDO0NBQzdEO0FBRUQsOEJBQThCO0FBQzlCLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLHlCQUF5QixDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFHMUYsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLHVCQUF1QjtJQUUvRSxZQUFtQixXQUE2QixFQUFFLGdCQUFrQztRQUNsRixLQUFLLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFEcEIsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO0lBRWhELENBQUM7OzhKQUpVLG9DQUFv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QUFXO21CQUFDLFVBQVU7WUFNbkIsT0FBTztrQkFEVixXQUFXO21CQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIEhvc3RCaW5kaW5nLFxuICBPbkluaXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWYsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5pbXBvcnQgeyBtaXhpbkNvbnRyb2xWYWx1ZUFjY2Vzc29yLCBJQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAY292YWxlbnQvY29yZS9jb21tb24nO1xuXG5pbXBvcnQge1xuICBUZER5bmFtaWNFbGVtZW50LFxuICBUZER5bmFtaWNUeXBlLFxuICBUZER5bmFtaWNGb3Jtc1NlcnZpY2UsXG4gIElUZER5bmFtaWNFbGVtZW50Q3VzdG9tQ29uZmlnLFxufSBmcm9tICcuL3NlcnZpY2VzL2R5bmFtaWMtZm9ybXMuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBUZER5bmFtaWNFbGVtZW50QmFzZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxufVxuXG4vKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgKi9cbmV4cG9ydCBjb25zdCBfVGREeW5hbWljRWxlbWVudE1peGluQmFzZSA9IG1peGluQ29udHJvbFZhbHVlQWNjZXNzb3IoVGREeW5hbWljRWxlbWVudEJhc2UpO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbdGREeW5hbWljRm9ybXNFcnJvcl1uZy10ZW1wbGF0ZScgfSlcbmV4cG9ydCBjbGFzcyBUZER5bmFtaWNGb3Jtc0Vycm9yVGVtcGxhdGVEaXJlY3RpdmUgZXh0ZW5kcyBUZW1wbGF0ZVBvcnRhbERpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIHRkRHluYW1pY0Zvcm1zRXJyb3I6IHN0cmluZztcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgc3VwZXIodGVtcGxhdGVSZWYsIHZpZXdDb250YWluZXJSZWYpO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZER5bmFtaWNDb250YWluZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgVGREeW5hbWljRWxlbWVudERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxufVxuXG5AQ29tcG9uZW50KHtcbiAgcHJvdmlkZXJzOiBbXG4gICAgVGREeW5hbWljRm9ybXNTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGREeW5hbWljRWxlbWVudENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBzZWxlY3RvcjogJ3RkLWR5bmFtaWMtZWxlbWVudCcsXG4gIHRlbXBsYXRlOiAnPGRpdiB0ZER5bmFtaWNDb250YWluZXI+PC9kaXY+Jyxcbn0pXG5leHBvcnQgY2xhc3MgVGREeW5hbWljRWxlbWVudENvbXBvbmVudFxuICBleHRlbmRzIF9UZER5bmFtaWNFbGVtZW50TWl4aW5CYXNlXG4gIGltcGxlbWVudHMgSUNvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uQ2hhbmdlc1xue1xuICBwcml2YXRlIF9pbnN0YW5jZTogYW55O1xuXG4gIC8qKlxuICAgKiBTZXRzIGZvcm0gY29udHJvbCBvZiB0aGUgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIGR5bmFtaWNDb250cm9sOiBGb3JtQ29udHJvbDtcblxuICAvKipcbiAgICogU2V0cyBsYWJlbCB0byBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIFNldHMgaGludCB0byBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBASW5wdXQoKSBoaW50OiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogU2V0cyBuYW1lIHRvIGJlIGRpc3BsYXllZCBhcyBhdHRyaWJ1dGUuXG4gICAqL1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogU2V0cyB0eXBlIG9yIGVsZW1lbnQgb2YgZWxlbWVudCB0byBiZSByZW5kZXJlZC5cbiAgICogVGhyb3dzIGVycm9yIGlmIGRvZXMgbm90IGV4aXN0IG9yIG5vIHN1cHBvcnRlZC5cbiAgICovXG4gIEBJbnB1dCgpIHR5cGU6IFRkRHluYW1pY0VsZW1lbnQgfCBUZER5bmFtaWNUeXBlIHwgVHlwZTxhbnk+ID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTZXRzIHJlcXVpcmVkIHZhbGlkYXRpb24gY2hlY2t1cCAoaWYgc3VwcG9ydGVkIGJ5IGVsZW1lbnQpLlxuICAgKi9cbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgbWluIHZhbGlkYXRpb24gY2hlY2t1cCAoaWYgc3VwcG9ydGVkIGJ5IGVsZW1lbnQpLlxuICAgKi9cbiAgQElucHV0KCkgbWluOiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgbWF4IHZhbGlkYXRpb24gY2hlY2t1cCAoaWYgc3VwcG9ydGVkIGJ5IGVsZW1lbnQpLlxuICAgKi9cbiAgQElucHV0KCkgbWF4OiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgbWluTGVuZ3RoIHZhbGlkYXRpb24gY2hlY2t1cCAoaWYgc3VwcG9ydGVkIGJ5IGVsZW1lbnQpLlxuICAgKi9cbiAgQElucHV0KCkgbWluTGVuZ3RoOiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgbWF4TGVuZ3RoIHZhbGlkYXRpb24gY2hlY2t1cCAoaWYgc3VwcG9ydGVkIGJ5IGVsZW1lbnQpLlxuICAgKi9cbiAgQElucHV0KCkgbWF4TGVuZ3RoOiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgc2VsZWN0aW9ucyBmb3IgYXJyYXkgZWxlbWVudHMgKGlmIHN1cHBvcnRlZCBieSBlbGVtZW50KS5cbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdGlvbnM6IGFueVtdID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTZXRzIG11bHRpcGxlIHByb3BlcnR5IGZvciBhcnJheSBlbGVtZW50cyAoaWYgc3VwcG9ydGVkIGJ5IGVsZW1lbnQpLlxuICAgKi9cbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgYW55IGFkZGl0aW9uYWwgcHJvcGVydGllcyBvbiBjdXN0b20gY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KCkgY3VzdG9tQ29uZmlnOiBJVGREeW5hbWljRWxlbWVudEN1c3RvbUNvbmZpZztcblxuICAvKipcbiAgICogU2V0cyBlcnJvciBtZXNzYWdlIHRlbXBsYXRlIHNvIGl0IGNhbiBiZSBpbmplY3RlZCBpbnRvIGR5bmFtaWMgY29tcG9uZW50cy5cbiAgICovXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+ID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwbGFjZWhvbGRlciBtZXNzYWdlXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgQFZpZXdDaGlsZChUZER5bmFtaWNFbGVtZW50RGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSBjaGlsZEVsZW1lbnQ6IFRkRHluYW1pY0VsZW1lbnREaXJlY3RpdmU7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLm1heCcpXG4gIGdldCBtYXhBdHRyKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMubWF4O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLm1pbicpXG4gIGdldCBtaW5BdHRyKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMubWluO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBfZHluYW1pY0Zvcm1zU2VydmljZTogVGREeW5hbWljRm9ybXNTZXJ2aWNlLFxuICAgIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIHN1cGVyKF9jaGFuZ2VEZXRlY3RvclJlZik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb25lbnQ6IGFueSA9XG4gICAgICA8YW55PnRoaXMudHlwZSBpbnN0YW5jZW9mIFR5cGUgPyB0aGlzLnR5cGUgOiB0aGlzLl9keW5hbWljRm9ybXNTZXJ2aWNlLmdldER5bmFtaWNFbGVtZW50KHRoaXMudHlwZSk7XG4gICAgY29uc3QgcmVmOiBDb21wb25lbnRSZWY8YW55PiA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudClcbiAgICAgIC5jcmVhdGUodGhpcy5jaGlsZEVsZW1lbnQudmlld0NvbnRhaW5lci5pbmplY3Rvcik7XG4gICAgdGhpcy5jaGlsZEVsZW1lbnQudmlld0NvbnRhaW5lci5pbnNlcnQocmVmLmhvc3RWaWV3KTtcbiAgICB0aGlzLl9pbnN0YW5jZSA9IHJlZi5pbnN0YW5jZTtcbiAgICB0aGlzLl9pbnN0YW5jZS5jb250cm9sID0gdGhpcy5keW5hbWljQ29udHJvbDtcbiAgICB0aGlzLl9pbnN0YW5jZS5sYWJlbCA9IHRoaXMubGFiZWw7XG4gICAgdGhpcy5faW5zdGFuY2UuaGludCA9IHRoaXMuaGludDtcbiAgICB0aGlzLl9pbnN0YW5jZS5uYW1lID0gdGhpcy5uYW1lO1xuICAgIHRoaXMuX2luc3RhbmNlLnR5cGUgPSB0aGlzLnR5cGU7XG4gICAgdGhpcy5faW5zdGFuY2UudmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIHRoaXMuX2luc3RhbmNlLnJlcXVpcmVkID0gdGhpcy5yZXF1aXJlZDtcbiAgICB0aGlzLl9pbnN0YW5jZS5taW4gPSB0aGlzLm1pbjtcbiAgICB0aGlzLl9pbnN0YW5jZS5tYXggPSB0aGlzLm1heDtcbiAgICB0aGlzLl9pbnN0YW5jZS5taW5MZW5ndGggPSB0aGlzLm1pbkxlbmd0aDtcbiAgICB0aGlzLl9pbnN0YW5jZS5tYXhMZW5ndGggPSB0aGlzLm1heExlbmd0aDtcbiAgICB0aGlzLl9pbnN0YW5jZS5zZWxlY3Rpb25zID0gdGhpcy5zZWxlY3Rpb25zO1xuICAgIHRoaXMuX2luc3RhbmNlLm11bHRpcGxlID0gdGhpcy5tdWx0aXBsZTtcbiAgICB0aGlzLl9pbnN0YW5jZS5lcnJvck1lc3NhZ2VUZW1wbGF0ZSA9IHRoaXMuZXJyb3JNZXNzYWdlVGVtcGxhdGU7XG4gICAgdGhpcy5faW5zdGFuY2UucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyO1xuICAgIGlmICh0aGlzLmN1c3RvbUNvbmZpZykge1xuICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcy5jdXN0b21Db25maWcpLmZvckVhY2goKG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLl9pbnN0YW5jZVtuYW1lXSA9IHRoaXMuY3VzdG9tQ29uZmlnW25hbWVdO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlYXNzaWduIGFueSBpbnB1dHMgdGhhdCBoYXZlIGNoYW5nZWRcbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faW5zdGFuY2UpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBPYmplY3Qua2V5cyhjaGFuZ2VzKSkge1xuICAgICAgICB0aGlzLl9pbnN0YW5jZVtwcm9wXSA9IGNoYW5nZXNbcHJvcF0uY3VycmVudFZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,35 +0,0 @@
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
- /** @nocollapse */ /** @nocollapse */ TdDynamicCheckboxComponent.ɵfac = function TdDynamicCheckboxComponent_Factory(t) { return new (t || TdDynamicCheckboxComponent)(); };
14
- /** @nocollapse */ /** @nocollapse */ TdDynamicCheckboxComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TdDynamicCheckboxComponent, selectors: [["td-dynamic-checkbox"]], decls: 5, vars: 5, consts: [[1, "td-dynamic-checkbox-wrapper"], [3, "formControl", "name", "required"], [1, "mat-hint", "td-dynamic-element-hint"]], template: function TdDynamicCheckboxComponent_Template(rf, ctx) { if (rf & 1) {
15
- i0.ɵɵelementStart(0, "div", 0);
16
- i0.ɵɵelementStart(1, "mat-checkbox", 1);
17
- i0.ɵɵtext(2);
18
- i0.ɵɵelementEnd();
19
- i0.ɵɵelementStart(3, "span", 2);
20
- i0.ɵɵtext(4);
21
- i0.ɵɵelementEnd();
22
- i0.ɵɵelementEnd();
23
- } if (rf & 2) {
24
- i0.ɵɵadvance(1);
25
- i0.ɵɵproperty("formControl", ctx.control)("name", ctx.name)("required", ctx.required);
26
- i0.ɵɵadvance(1);
27
- i0.ɵɵtextInterpolate1(" ", ctx.label, " ");
28
- i0.ɵɵadvance(2);
29
- i0.ɵɵtextInterpolate(ctx.hint);
30
- } }, directives: [i1.MatCheckbox, i1.MatCheckboxRequiredValidator, i2.NgControlStatus, i2.FormControlDirective, i2.RequiredValidator], styles: [""] });
31
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdDynamicCheckboxComponent, [{
32
- type: Component,
33
- 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: [""] }]
34
- }], null, null); })();
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vZHluYW1pYy1mb3Jtcy9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vZHluYW1pYy1mb3Jtcy9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTFDLE1BQU0sT0FBTywwQkFBMEI7SUFMdkM7UUFRRSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5CLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbEIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUVsQixhQUFRLEdBQVksS0FBSyxDQUFDO0tBQzNCOzswSUFWWSwwQkFBMEI7K0hBQTFCLDBCQUEwQjtRQ1J2Qyw4QkFBeUM7UUFDdkMsdUNBQTBFO1FBQ3hFLFlBQ0Y7UUFBQSxpQkFBZTtRQUNmLCtCQUErQztRQUFBLFlBQVU7UUFBQSxpQkFBTztRQUNsRSxpQkFBTTs7UUFKVSxlQUF1QjtRQUF2Qix5Q0FBdUIsa0JBQUEsMEJBQUE7UUFDbkMsZUFDRjtRQURFLDBDQUNGO1FBQytDLGVBQVU7UUFBViw4QkFBVTs7dUZESTlDLDBCQUEwQjtjQUx0QyxTQUFTOzJCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RkLWR5bmFtaWMtY2hlY2tib3gnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWNoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWNoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVGREeW5hbWljQ2hlY2tib3hDb21wb25lbnQge1xuICBjb250cm9sOiBGb3JtQ29udHJvbDtcblxuICBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgbmFtZTogc3RyaW5nID0gJyc7XG5cbiAgaGludDogc3RyaW5nID0gJyc7XG5cbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJ0ZC1keW5hbWljLWNoZWNrYm94LXdyYXBwZXJcIj5cbiAgPG1hdC1jaGVja2JveCBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIFtuYW1lXT1cIm5hbWVcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIj5cbiAgICB7eyBsYWJlbCB9fVxuICA8L21hdC1jaGVja2JveD5cbiAgPHNwYW4gY2xhc3M9XCJtYXQtaGludCB0ZC1keW5hbWljLWVsZW1lbnQtaGludFwiPnt7IGhpbnQgfX08L3NwYW4+XG48L2Rpdj5cbiJdfQ==
@@ -1,58 +0,0 @@
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/material/datepicker";
6
- import * as i4 from "@angular/forms";
7
- import * as i5 from "@angular/common";
8
- function TdDynamicDatepickerComponent_ng_template_9_Template(rf, ctx) { }
9
- const _c0 = function (a0, a1) { return { control: a0, errors: a1 }; };
10
- export class TdDynamicDatepickerComponent {
11
- constructor() {
12
- this.label = '';
13
- this.hint = '';
14
- this.name = '';
15
- this.type = undefined;
16
- this.required = undefined;
17
- this.min = undefined;
18
- this.max = undefined;
19
- this.errorMessageTemplate = undefined;
20
- this.placeholder = '';
21
- }
22
- }
23
- /** @nocollapse */ /** @nocollapse */ TdDynamicDatepickerComponent.ɵfac = function TdDynamicDatepickerComponent_Factory(t) { return new (t || TdDynamicDatepickerComponent)(); };
24
- /** @nocollapse */ /** @nocollapse */ TdDynamicDatepickerComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TdDynamicDatepickerComponent, selectors: [["td-dynamic-datepicker"]], decls: 13, vars: 15, consts: [[1, "td-dynamic-datepicker-wrapper"], [1, "td-dynamic-datepicker-field"], ["matInput", "", 3, "matDatepicker", "formControl", "placeholder", "required", "name", "min", "max"], ["elementInput", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["matSuffix", "", 3, "for"], ["dynamicDatePicker", ""]], template: function TdDynamicDatepickerComponent_Template(rf, ctx) { if (rf & 1) {
25
- i0.ɵɵelementStart(0, "div", 0);
26
- i0.ɵɵelementStart(1, "mat-form-field", 1);
27
- i0.ɵɵelementStart(2, "mat-label");
28
- i0.ɵɵtext(3);
29
- i0.ɵɵelementEnd();
30
- i0.ɵɵelement(4, "input", 2, 3);
31
- i0.ɵɵelementStart(6, "mat-hint");
32
- i0.ɵɵtext(7);
33
- i0.ɵɵelementEnd();
34
- i0.ɵɵelementStart(8, "mat-error");
35
- i0.ɵɵtemplate(9, TdDynamicDatepickerComponent_ng_template_9_Template, 0, 0, "ng-template", 4);
36
- i0.ɵɵelementEnd();
37
- i0.ɵɵelement(10, "mat-datepicker-toggle", 5);
38
- i0.ɵɵelement(11, "mat-datepicker", null, 6);
39
- i0.ɵɵelementEnd();
40
- i0.ɵɵelementEnd();
41
- } if (rf & 2) {
42
- const _r2 = i0.ɵɵreference(12);
43
- i0.ɵɵadvance(3);
44
- i0.ɵɵtextInterpolate(ctx.label);
45
- i0.ɵɵadvance(1);
46
- i0.ɵɵproperty("matDatepicker", _r2)("formControl", ctx.control)("placeholder", ctx.placeholder)("required", ctx.required)("name", ctx.name)("min", ctx.min)("max", ctx.max);
47
- i0.ɵɵadvance(3);
48
- i0.ɵɵtextInterpolate(ctx.hint);
49
- i0.ɵɵadvance(2);
50
- i0.ɵɵproperty("ngTemplateOutlet", ctx.errorMessageTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction2(12, _c0, ctx.control, ctx.control == null ? null : ctx.control.errors));
51
- i0.ɵɵadvance(1);
52
- i0.ɵɵproperty("for", _r2);
53
- } }, directives: [i1.MatFormField, i1.MatLabel, i2.MatInput, i3.MatDatepickerInput, i4.DefaultValueAccessor, i4.NgControlStatus, i4.FormControlDirective, i4.RequiredValidator, i1.MatHint, i1.MatError, i5.NgTemplateOutlet, i3.MatDatepickerToggle, i1.MatSuffix, i3.MatDatepicker], styles: [".td-dynamic-datepicker-wrapper[_ngcontent-%COMP%]{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-datepicker-wrapper[_ngcontent-%COMP%] .td-dynamic-datepicker-field[_ngcontent-%COMP%]{-ms-flex:1;flex:1;box-sizing:border-box}"] });
54
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdDynamicDatepickerComponent, [{
55
- type: Component,
56
- 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]=\"{ control: control, errors: control?.errors }\"\n ></ng-template>\n </mat-error>\n <mat-datepicker-toggle matSuffix [for]=\"dynamicDatePicker\"></mat-datepicker-toggle>\n <mat-datepicker #dynamicDatePicker></mat-datepicker>\n </mat-form-field>\n</div>\n", styles: [".td-dynamic-datepicker-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-datepicker-wrapper .td-dynamic-datepicker-field{-ms-flex:1;flex:1;box-sizing:border-box}\n"] }]
57
- }], null, null); })();
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kYXRlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9keW5hbWljLWZvcm1zL2R5bmFtaWMtZWxlbWVudHMvZHluYW1pYy1kYXRlcGlja2VyL2R5bmFtaWMtZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vZHluYW1pYy1mb3Jtcy9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtZGF0ZXBpY2tlci9keW5hbWljLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBUXZELE1BQU0sT0FBTyw0QkFBNEI7SUFMekM7UUFRRSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5CLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbEIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUVsQixTQUFJLEdBQVcsU0FBUyxDQUFDO1FBRXpCLGFBQVEsR0FBWSxTQUFTLENBQUM7UUFFOUIsUUFBRyxHQUFXLFNBQVMsQ0FBQztRQUV4QixRQUFHLEdBQVcsU0FBUyxDQUFDO1FBRXhCLHlCQUFvQixHQUFxQixTQUFTLENBQUM7UUFFbkQsZ0JBQVcsR0FBVyxFQUFFLENBQUM7S0FDMUI7OzhJQXBCWSw0QkFBNEI7aUlBQTVCLDRCQUE0QjtRQ1J6Qyw4QkFBMkM7UUFDekMseUNBQW9EO1FBQ2xELGlDQUFXO1FBQUEsWUFBVztRQUFBLGlCQUFZO1FBQ2xDLDhCQVVFO1FBQ0YsZ0NBQVU7UUFBQSxZQUFVO1FBQUEsaUJBQVc7UUFDL0IsaUNBQVc7UUFDVCw2RkFHZTtRQUNqQixpQkFBWTtRQUNaLDRDQUFtRjtRQUNuRiwyQ0FBb0Q7UUFDdEQsaUJBQWlCO1FBQ25CLGlCQUFNOzs7UUF0QlMsZUFBVztRQUFYLCtCQUFXO1FBSXBCLGVBQW1DO1FBQW5DLG1DQUFtQyw0QkFBQSxnQ0FBQSwwQkFBQSxrQkFBQSxnQkFBQSxnQkFBQTtRQVEzQixlQUFVO1FBQVYsOEJBQVU7UUFHaEIsZUFBeUM7UUFBekMsMkRBQXlDLHNIQUFBO1FBSVosZUFBeUI7UUFBekIseUJBQXlCOzt1RkRiakQsNEJBQTRCO2NBTHhDLFNBQVM7MkJBQ0UsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RkLWR5bmFtaWMtZGF0ZXBpY2tlcicsXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVGREeW5hbWljRGF0ZXBpY2tlckNvbXBvbmVudCB7XG4gIGNvbnRyb2w6IEZvcm1Db250cm9sO1xuXG4gIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICBoaW50OiBzdHJpbmcgPSAnJztcblxuICBuYW1lOiBzdHJpbmcgPSAnJztcblxuICB0eXBlOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG5cbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSB1bmRlZmluZWQ7XG5cbiAgbWluOiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgbWF4OiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgZXJyb3JNZXNzYWdlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gPSB1bmRlZmluZWQ7XG5cbiAgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xufVxuIiwiPGRpdiBjbGFzcz1cInRkLWR5bmFtaWMtZGF0ZXBpY2tlci13cmFwcGVyXCI+XG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInRkLWR5bmFtaWMtZGF0ZXBpY2tlci1maWVsZFwiPlxuICAgIDxtYXQtbGFiZWw+e3sgbGFiZWwgfX08L21hdC1sYWJlbD5cbiAgICA8aW5wdXRcbiAgICAgICNlbGVtZW50SW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICBbbWF0RGF0ZXBpY2tlcl09XCJkeW5hbWljRGF0ZVBpY2tlclwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgW21heF09XCJtYXhcIlxuICAgIC8+XG4gICAgPG1hdC1oaW50Pnt7IGhpbnQgfX08L21hdC1oaW50PlxuICAgIDxtYXQtZXJyb3I+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXJyb3JNZXNzYWdlVGVtcGxhdGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBjb250cm9sOiBjb250cm9sLCBlcnJvcnM6IGNvbnRyb2w/LmVycm9ycyB9XCJcbiAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIDwvbWF0LWVycm9yPlxuICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiZHluYW1pY0RhdGVQaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICA8bWF0LWRhdGVwaWNrZXIgI2R5bmFtaWNEYXRlUGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Rpdj5cbiJdfQ==
@@ -1,84 +0,0 @@
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 "@covalent/core/file";
5
- import * as i3 from "@angular/material/input";
6
- import * as i4 from "@angular/common";
7
- import * as i5 from "@angular/material/button";
8
- import * as i6 from "@angular/material/icon";
9
- import * as i7 from "@angular/forms";
10
- function TdDynamicFileInputComponent_ng_template_8_Template(rf, ctx) { }
11
- function TdDynamicFileInputComponent_button_9_Template(rf, ctx) { if (rf & 1) {
12
- const _r4 = i0.ɵɵgetCurrentView();
13
- i0.ɵɵelementStart(0, "button", 7);
14
- i0.ɵɵlistener("click", function TdDynamicFileInputComponent_button_9_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); i0.ɵɵnextContext(); const _r2 = i0.ɵɵreference(11); return _r2.clear(); })("keyup.enter", function TdDynamicFileInputComponent_button_9_Template_button_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r4); i0.ɵɵnextContext(); const _r2 = i0.ɵɵreference(11); return _r2.clear(); });
15
- i0.ɵɵelementStart(1, "mat-icon");
16
- i0.ɵɵtext(2, "cancel");
17
- i0.ɵɵelementEnd();
18
- i0.ɵɵelementEnd();
19
- } }
20
- const _c0 = function (a0, a1) { return { control: a0, errors: a1 }; };
21
- export class TdDynamicFileInputComponent {
22
- constructor() {
23
- this.required = undefined;
24
- this.label = '';
25
- this.name = '';
26
- this.hint = '';
27
- this.errorMessageTemplate = undefined;
28
- this.placeholder = '';
29
- }
30
- _handlefileDrop(value) {
31
- this.control.setValue(value);
32
- }
33
- }
34
- /** @nocollapse */ /** @nocollapse */ TdDynamicFileInputComponent.ɵfac = function TdDynamicFileInputComponent_Factory(t) { return new (t || TdDynamicFileInputComponent)(); };
35
- /** @nocollapse */ /** @nocollapse */ TdDynamicFileInputComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TdDynamicFileInputComponent, selectors: [["td-dynamic-file-input"]], decls: 16, vars: 15, consts: [[1, "td-dynamic-file-input-wrapper"], ["tdFileDrop", "", "floatLabel", "never", 1, "td-dynamic-file-input-field", 3, "disabled", "fileDrop", "click", "keyup.enter", "keyup.delete", "keyup.backspace"], ["matInput", "", "readonly", "", 3, "value", "placeholder", "disabled"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["mat-icon-button", "", 3, "click", "keyup.enter", 4, "ngIf"], [1, "td-file-input", 3, "formControl"], ["fileInput", ""], ["mat-icon-button", "", 3, "click", "keyup.enter"]], template: function TdDynamicFileInputComponent_Template(rf, ctx) { if (rf & 1) {
36
- const _r6 = i0.ɵɵgetCurrentView();
37
- i0.ɵɵelementStart(0, "div", 0);
38
- i0.ɵɵelementStart(1, "mat-form-field", 1);
39
- i0.ɵɵlistener("fileDrop", function TdDynamicFileInputComponent_Template_mat_form_field_fileDrop_1_listener($event) { return ctx._handlefileDrop($event); })("click", function TdDynamicFileInputComponent_Template_mat_form_field_click_1_listener() { i0.ɵɵrestoreView(_r6); const _r2 = i0.ɵɵreference(11); return !(ctx.control == null ? null : ctx.control.disabled) && _r2.inputElement.click(); })("keyup.enter", function TdDynamicFileInputComponent_Template_mat_form_field_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r6); const _r2 = i0.ɵɵreference(11); return !(ctx.control == null ? null : ctx.control.disabled) && _r2.inputElement.click(); })("keyup.delete", function TdDynamicFileInputComponent_Template_mat_form_field_keyup_delete_1_listener() { i0.ɵɵrestoreView(_r6); const _r2 = i0.ɵɵreference(11); return _r2.clear(); })("keyup.backspace", function TdDynamicFileInputComponent_Template_mat_form_field_keyup_backspace_1_listener() { i0.ɵɵrestoreView(_r6); const _r2 = i0.ɵɵreference(11); return _r2.clear(); });
40
- i0.ɵɵelementStart(2, "mat-label");
41
- i0.ɵɵtext(3);
42
- i0.ɵɵelementEnd();
43
- i0.ɵɵelement(4, "input", 2);
44
- i0.ɵɵelementStart(5, "mat-hint");
45
- i0.ɵɵtext(6);
46
- i0.ɵɵelementEnd();
47
- i0.ɵɵelementStart(7, "mat-error");
48
- i0.ɵɵtemplate(8, TdDynamicFileInputComponent_ng_template_8_Template, 0, 0, "ng-template", 3);
49
- i0.ɵɵelementEnd();
50
- i0.ɵɵelementEnd();
51
- i0.ɵɵtemplate(9, TdDynamicFileInputComponent_button_9_Template, 3, 0, "button", 4);
52
- i0.ɵɵelementStart(10, "td-file-input", 5, 6);
53
- i0.ɵɵelementStart(12, "mat-icon");
54
- i0.ɵɵtext(13, "folder");
55
- i0.ɵɵelementEnd();
56
- i0.ɵɵelementStart(14, "span");
57
- i0.ɵɵtext(15);
58
- i0.ɵɵelementEnd();
59
- i0.ɵɵelementEnd();
60
- i0.ɵɵelementEnd();
61
- } if (rf & 2) {
62
- i0.ɵɵadvance(1);
63
- i0.ɵɵproperty("disabled", ctx.control == null ? null : ctx.control.disabled);
64
- i0.ɵɵadvance(2);
65
- i0.ɵɵtextInterpolate(ctx.label);
66
- i0.ɵɵadvance(1);
67
- i0.ɵɵproperty("value", ctx.control == null ? null : ctx.control.value == null ? null : ctx.control.value.name)("placeholder", ctx.placeholder)("disabled", ctx.control == null ? null : ctx.control.disabled);
68
- i0.ɵɵattribute("name", ctx.name);
69
- i0.ɵɵadvance(2);
70
- i0.ɵɵtextInterpolate(ctx.hint);
71
- i0.ɵɵadvance(2);
72
- i0.ɵɵproperty("ngTemplateOutlet", ctx.errorMessageTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction2(12, _c0, ctx.control, ctx.control == null ? null : ctx.control.errors));
73
- i0.ɵɵadvance(1);
74
- i0.ɵɵproperty("ngIf", ctx.control.value);
75
- i0.ɵɵadvance(1);
76
- i0.ɵɵproperty("formControl", ctx.control);
77
- i0.ɵɵadvance(5);
78
- i0.ɵɵtextInterpolate(ctx.label);
79
- } }, directives: [i1.MatFormField, i2.TdFileDropDirective, i1.MatLabel, i3.MatInput, i1.MatHint, i1.MatError, i4.NgTemplateOutlet, i4.NgIf, i5.MatButton, i6.MatIcon, i2.TdFileInputComponent, i7.NgControlStatus, i7.FormControlDirective], styles: [".td-dynamic-file-input-wrapper[_ngcontent-%COMP%]{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-file-input-wrapper[_ngcontent-%COMP%] .td-dynamic-file-input-field[_ngcontent-%COMP%]{-ms-flex:1;flex:1;box-sizing:border-box}.td-file-input[_ngcontent-%COMP%]{margin-left:10px}"] });
80
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdDynamicFileInputComponent, [{
81
- type: Component,
82
- 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]=\"{ control: control, errors: control?.errors }\"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n <button mat-icon-button *ngIf=\"control.value\" (click)=\"fileInput.clear()\" (keyup.enter)=\"fileInput.clear()\">\n <mat-icon>cancel</mat-icon>\n </button>\n <td-file-input class=\"td-file-input\" #fileInput [formControl]=\"control\">\n <mat-icon>folder</mat-icon>\n <span>{{ label }}</span>\n </td-file-input>\n</div>\n", styles: [".td-dynamic-file-input-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-file-input-wrapper .td-dynamic-file-input-field{-ms-flex:1;flex:1;box-sizing:border-box}.td-file-input{margin-left:10px}\n"] }]
83
- }], null, null); })();
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWxlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9keW5hbWljLWZvcm1zL2R5bmFtaWMtZWxlbWVudHMvZHluYW1pYy1maWxlLWlucHV0L2R5bmFtaWMtZmlsZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vZHluYW1pYy1mb3Jtcy9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtZmlsZS1pbnB1dC9keW5hbWljLWZpbGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7O0lDNkJyRCxpQ0FBNEc7SUFBOUQsNExBQVMsV0FBaUIsSUFBQywyTEFBZ0IsV0FBaUIsSUFBakM7SUFDdkUsZ0NBQVU7SUFBQSxzQkFBTTtJQUFBLGlCQUFXO0lBQzdCLGlCQUFTOzs7QUR2QlgsTUFBTSxPQUFPLDJCQUEyQjtJQUx4QztRQVFFLGFBQVEsR0FBWSxTQUFTLENBQUM7UUFFOUIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbEIseUJBQW9CLEdBQXFCLFNBQVMsQ0FBQztRQUVuRCxnQkFBVyxHQUFXLEVBQUUsQ0FBQztLQUsxQjtJQUhDLGVBQWUsQ0FBQyxLQUFXO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7OzRJQWpCVSwyQkFBMkI7Z0lBQTNCLDJCQUEyQjs7UUNSeEMsOEJBQTJDO1FBQ3pDLHlDQVVDO1FBTEMsNEhBQVksMkJBQXVCLElBQUMsa05BQ0wsd0JBQThCLElBRHpCLDhOQUVDLHdCQUE4QixJQUYvQix3S0FHcEIsV0FBaUIsSUFIRyw4S0FJakIsV0FBaUIsSUFKQTtRQU1wQyxpQ0FBVztRQUFBLFlBQVc7UUFBQSxpQkFBWTtRQUNsQywyQkFPRTtRQUNGLGdDQUFVO1FBQUEsWUFBVTtRQUFBLGlCQUFXO1FBQy9CLGlDQUFXO1FBQ1QsNEZBR2U7UUFDakIsaUJBQVk7UUFDZCxpQkFBaUI7UUFDakIsa0ZBRVM7UUFDVCw0Q0FBd0U7UUFDdEUsaUNBQVU7UUFBQSx1QkFBTTtRQUFBLGlCQUFXO1FBQzNCLDZCQUFNO1FBQUEsYUFBVztRQUFBLGlCQUFPO1FBQzFCLGlCQUFnQjtRQUNsQixpQkFBTTs7UUEvQkYsZUFBOEI7UUFBOUIsNEVBQThCO1FBT25CLGVBQVc7UUFBWCwrQkFBVztRQUdwQixlQUE4QjtRQUE5Qiw4R0FBOEIsZ0NBQUEsK0RBQUE7UUFFOUIsZ0NBQWtCO1FBSVYsZUFBVTtRQUFWLDhCQUFVO1FBR2hCLGVBQXlDO1FBQXpDLDJEQUF5QyxzSEFBQTtRQUt0QixlQUFtQjtRQUFuQix3Q0FBbUI7UUFHSSxlQUF1QjtRQUF2Qix5Q0FBdUI7UUFFL0QsZUFBVztRQUFYLCtCQUFXOzt1RkQxQlIsMkJBQTJCO2NBTHZDLFNBQVM7MkJBQ0UsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RkLWR5bmFtaWMtZmlsZS1pbnB1dCcsXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtZmlsZS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1maWxlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVGREeW5hbWljRmlsZUlucHV0Q29tcG9uZW50IHtcbiAgY29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSB1bmRlZmluZWQ7XG5cbiAgbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gIGhpbnQ6IHN0cmluZyA9ICcnO1xuXG4gIGVycm9yTWVzc2FnZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+ID0gdW5kZWZpbmVkO1xuXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuICBfaGFuZGxlZmlsZURyb3AodmFsdWU6IEZpbGUpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGQtZHluYW1pYy1maWxlLWlucHV0LXdyYXBwZXJcIj5cbiAgPG1hdC1mb3JtLWZpZWxkXG4gICAgdGRGaWxlRHJvcFxuICAgIGNsYXNzPVwidGQtZHluYW1pYy1maWxlLWlucHV0LWZpZWxkXCJcbiAgICBmbG9hdExhYmVsPVwibmV2ZXJcIlxuICAgIFtkaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZFwiXG4gICAgKGZpbGVEcm9wKT1cIl9oYW5kbGVmaWxlRHJvcCgkZXZlbnQpXCJcbiAgICAoY2xpY2spPVwiIWNvbnRyb2w/LmRpc2FibGVkICYmIGZpbGVJbnB1dC5pbnB1dEVsZW1lbnQuY2xpY2soKVwiXG4gICAgKGtleXVwLmVudGVyKT1cIiFjb250cm9sPy5kaXNhYmxlZCAmJiBmaWxlSW5wdXQuaW5wdXRFbGVtZW50LmNsaWNrKClcIlxuICAgIChrZXl1cC5kZWxldGUpPVwiZmlsZUlucHV0LmNsZWFyKClcIlxuICAgIChrZXl1cC5iYWNrc3BhY2UpPVwiZmlsZUlucHV0LmNsZWFyKClcIlxuICA+XG4gICAgPG1hdC1sYWJlbD57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIFt2YWx1ZV09XCJjb250cm9sPy52YWx1ZT8ubmFtZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZFwiXG4gICAgICByZWFkb25seVxuICAgIC8+XG4gICAgPG1hdC1oaW50Pnt7IGhpbnQgfX08L21hdC1oaW50PlxuICAgIDxtYXQtZXJyb3I+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXJyb3JNZXNzYWdlVGVtcGxhdGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBjb250cm9sOiBjb250cm9sLCBlcnJvcnM6IGNvbnRyb2w/LmVycm9ycyB9XCJcbiAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIDwvbWF0LWVycm9yPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cImNvbnRyb2wudmFsdWVcIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsZWFyKClcIiAoa2V5dXAuZW50ZXIpPVwiZmlsZUlucHV0LmNsZWFyKClcIj5cbiAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG4gIDx0ZC1maWxlLWlucHV0IGNsYXNzPVwidGQtZmlsZS1pbnB1dFwiICNmaWxlSW5wdXQgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIj5cbiAgICA8bWF0LWljb24+Zm9sZGVyPC9tYXQtaWNvbj5cbiAgICA8c3Bhbj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgPC90ZC1maWxlLWlucHV0PlxuPC9kaXY+XG4iXX0=
@@ -1,55 +0,0 @@
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
- function TdDynamicInputComponent_ng_template_9_Template(rf, ctx) { }
8
- const _c0 = function (a0, a1) { return { control: a0, errors: a1 }; };
9
- export class TdDynamicInputComponent {
10
- constructor() {
11
- this.label = '';
12
- this.hint = '';
13
- this.type = undefined;
14
- this.required = undefined;
15
- this.name = '';
16
- this.min = undefined;
17
- this.max = undefined;
18
- this.minLength = undefined;
19
- this.maxLength = undefined;
20
- this.errorMessageTemplate = undefined;
21
- this.placeholder = '';
22
- }
23
- }
24
- /** @nocollapse */ /** @nocollapse */ TdDynamicInputComponent.ɵfac = function TdDynamicInputComponent_Factory(t) { return new (t || TdDynamicInputComponent)(); };
25
- /** @nocollapse */ /** @nocollapse */ TdDynamicInputComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TdDynamicInputComponent, selectors: [["td-dynamic-input"]], decls: 10, vars: 16, consts: [[1, "td-dynamic-input-wrapper"], [1, "td-dynamic-input-field"], ["matInput", "", 3, "formControl", "placeholder", "type", "required"], ["elementInput", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function TdDynamicInputComponent_Template(rf, ctx) { if (rf & 1) {
26
- i0.ɵɵelementStart(0, "div", 0);
27
- i0.ɵɵelementStart(1, "mat-form-field", 1);
28
- i0.ɵɵelementStart(2, "mat-label");
29
- i0.ɵɵtext(3);
30
- i0.ɵɵelementEnd();
31
- i0.ɵɵelement(4, "input", 2, 3);
32
- i0.ɵɵelementStart(6, "mat-hint");
33
- i0.ɵɵtext(7);
34
- i0.ɵɵelementEnd();
35
- i0.ɵɵelementStart(8, "mat-error");
36
- i0.ɵɵtemplate(9, TdDynamicInputComponent_ng_template_9_Template, 0, 0, "ng-template", 4);
37
- i0.ɵɵelementEnd();
38
- i0.ɵɵelementEnd();
39
- i0.ɵɵelementEnd();
40
- } if (rf & 2) {
41
- i0.ɵɵadvance(3);
42
- i0.ɵɵtextInterpolate(ctx.label);
43
- i0.ɵɵadvance(1);
44
- i0.ɵɵproperty("formControl", ctx.control)("placeholder", ctx.placeholder)("type", ctx.type)("required", ctx.required);
45
- i0.ɵɵattribute("name", ctx.name)("min", ctx.min)("max", ctx.max)("minLength", ctx.minLength)("maxLength", ctx.maxLength);
46
- i0.ɵɵadvance(3);
47
- i0.ɵɵtextInterpolate(ctx.hint);
48
- i0.ɵɵadvance(2);
49
- i0.ɵɵproperty("ngTemplateOutlet", ctx.errorMessageTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction2(13, _c0, ctx.control, ctx.control == null ? null : ctx.control.errors));
50
- } }, directives: [i1.MatFormField, i1.MatLabel, i2.MatInput, i3.DefaultValueAccessor, i3.NgControlStatus, i3.FormControlDirective, i3.RequiredValidator, i1.MatHint, i1.MatError, i4.NgTemplateOutlet], styles: [".td-dynamic-input-wrapper[_ngcontent-%COMP%]{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-input-wrapper[_ngcontent-%COMP%] .td-dynamic-input-field[_ngcontent-%COMP%]{-ms-flex:1;flex:1;box-sizing:border-box}"] });
51
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdDynamicInputComponent, [{
52
- type: Component,
53
- 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]=\"{ control: control, errors: control?.errors }\"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n</div>\n", styles: [".td-dynamic-input-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-input-wrapper .td-dynamic-input-field{-ms-flex:1;flex:1;box-sizing:border-box}\n"] }]
54
- }], null, null); })();
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vZHluYW1pYy1mb3Jtcy9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtaW5wdXQvZHluYW1pYy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vZHluYW1pYy1mb3Jtcy9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtaW5wdXQvZHluYW1pYy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVF2RCxNQUFNLE9BQU8sdUJBQXVCO0lBTHBDO1FBUUUsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLFNBQUksR0FBVyxTQUFTLENBQUM7UUFFekIsYUFBUSxHQUFZLFNBQVMsQ0FBQztRQUU5QixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLFFBQUcsR0FBVyxTQUFTLENBQUM7UUFFeEIsUUFBRyxHQUFXLFNBQVMsQ0FBQztRQUV4QixjQUFTLEdBQVcsU0FBUyxDQUFDO1FBRTlCLGNBQVMsR0FBVyxTQUFTLENBQUM7UUFFOUIseUJBQW9CLEdBQXFCLFNBQVMsQ0FBQztRQUVuRCxnQkFBVyxHQUFXLEVBQUUsQ0FBQztLQUMxQjs7b0lBeEJZLHVCQUF1Qjs0SEFBdkIsdUJBQXVCO1FDUnBDLDhCQUFzQztRQUNwQyx5Q0FBK0M7UUFDN0MsaUNBQVc7UUFBQSxZQUFXO1FBQUEsaUJBQVk7UUFDbEMsOEJBWUU7UUFDRixnQ0FBVTtRQUFBLFlBQVU7UUFBQSxpQkFBVztRQUMvQixpQ0FBVztRQUNULHdGQUdlO1FBQ2pCLGlCQUFZO1FBQ2QsaUJBQWlCO1FBQ25CLGlCQUFNOztRQXRCUyxlQUFXO1FBQVgsK0JBQVc7UUFJcEIsZUFBdUI7UUFBdkIseUNBQXVCLGdDQUFBLGtCQUFBLDBCQUFBO1FBSXZCLGdDQUFrQixnQkFBQSxnQkFBQSw0QkFBQSw0QkFBQTtRQU1WLGVBQVU7UUFBViw4QkFBVTtRQUdoQixlQUF5QztRQUF6QywyREFBeUMsc0hBQUE7O3VGRFhwQyx1QkFBdUI7Y0FMbkMsU0FBUzsyQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtZHluYW1pYy1pbnB1dCcsXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUZER5bmFtaWNJbnB1dENvbXBvbmVudCB7XG4gIGNvbnRyb2w6IEZvcm1Db250cm9sO1xuXG4gIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICBoaW50OiBzdHJpbmcgPSAnJztcblxuICB0eXBlOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG5cbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSB1bmRlZmluZWQ7XG5cbiAgbmFtZTogc3RyaW5nID0gJyc7XG5cbiAgbWluOiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgbWF4OiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgbWluTGVuZ3RoOiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgbWF4TGVuZ3RoOiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgZXJyb3JNZXNzYWdlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gPSB1bmRlZmluZWQ7XG5cbiAgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xufVxuIiwiPGRpdiBjbGFzcz1cInRkLWR5bmFtaWMtaW5wdXQtd3JhcHBlclwiPlxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ0ZC1keW5hbWljLWlucHV0LWZpZWxkXCI+XG4gICAgPG1hdC1sYWJlbD57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgI2VsZW1lbnRJbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgW2F0dHIubWluXT1cIm1pblwiXG4gICAgICBbYXR0ci5tYXhdPVwibWF4XCJcbiAgICAgIFthdHRyLm1pbkxlbmd0aF09XCJtaW5MZW5ndGhcIlxuICAgICAgW2F0dHIubWF4TGVuZ3RoXT1cIm1heExlbmd0aFwiXG4gICAgLz5cbiAgICA8bWF0LWhpbnQ+e3sgaGludCB9fTwvbWF0LWhpbnQ+XG4gICAgPG1hdC1lcnJvcj5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJlcnJvck1lc3NhZ2VUZW1wbGF0ZVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGNvbnRyb2w6IGNvbnRyb2wsIGVycm9yczogY29udHJvbD8uZXJyb3JzIH1cIlxuICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtZXJyb3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Rpdj5cbiJdfQ==