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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +26 -18
  2. package/covalent-dynamic-forms.d.ts +2 -1
  3. package/esm2020/covalent-dynamic-forms.mjs +5 -0
  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 -0
  17. package/fesm2015/covalent-dynamic-forms.mjs +748 -0
  18. package/fesm2015/covalent-dynamic-forms.mjs.map +1 -0
  19. package/fesm2020/covalent-dynamic-forms.mjs +746 -0
  20. package/fesm2020/covalent-dynamic-forms.mjs.map +1 -0
  21. package/{dynamic-element.component.d.ts → lib/dynamic-element.component.d.ts} +24 -17
  22. package/lib/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.d.ts +11 -0
  23. package/{dynamic-elements → lib/dynamic-elements}/dynamic-datepicker/dynamic-datepicker.component.d.ts +6 -3
  24. package/{dynamic-elements → lib/dynamic-elements}/dynamic-file-input/dynamic-file-input.component.d.ts +4 -1
  25. package/{dynamic-elements → lib/dynamic-elements}/dynamic-input/dynamic-input.component.d.ts +7 -4
  26. package/{dynamic-elements → lib/dynamic-elements}/dynamic-select/dynamic-select.component.d.ts +5 -2
  27. package/lib/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.d.ts +11 -0
  28. package/{dynamic-elements → lib/dynamic-elements}/dynamic-slider/dynamic-slider.component.d.ts +5 -2
  29. package/{dynamic-elements → lib/dynamic-elements}/dynamic-textarea/dynamic-textarea.component.d.ts +3 -0
  30. package/{dynamic-forms.component.d.ts → lib/dynamic-forms.component.d.ts} +4 -1
  31. package/lib/dynamic-forms.module.d.ts +28 -0
  32. package/{services → lib/services}/dynamic-forms.service.d.ts +5 -2
  33. package/package.json +32 -17
  34. package/public_api.d.ts +12 -12
  35. package/bundles/covalent-dynamic-forms.umd.js +0 -1654
  36. package/bundles/covalent-dynamic-forms.umd.js.map +0 -1
  37. package/bundles/covalent-dynamic-forms.umd.min.js +0 -16
  38. package/bundles/covalent-dynamic-forms.umd.min.js.map +0 -1
  39. package/covalent-dynamic-forms.metadata.json +0 -1
  40. package/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.d.ts +0 -8
  41. package/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.scss +0 -0
  42. package/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.scss +0 -12
  43. package/dynamic-elements/dynamic-file-input/dynamic-file-input.component.scss +0 -15
  44. package/dynamic-elements/dynamic-input/dynamic-input.component.scss +0 -12
  45. package/dynamic-elements/dynamic-select/dynamic-select.component.scss +0 -12
  46. package/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.d.ts +0 -8
  47. package/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.scss +0 -0
  48. package/dynamic-elements/dynamic-slider/dynamic-slider.component.scss +0 -17
  49. package/dynamic-elements/dynamic-textarea/dynamic-textarea.component.scss +0 -12
  50. package/dynamic-forms.component.scss +0 -29
  51. package/dynamic-forms.module.d.ts +0 -2
  52. package/esm2015/covalent-dynamic-forms.js +0 -10
  53. package/esm2015/dynamic-element.component.js +0 -340
  54. package/esm2015/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.js +0 -34
  55. package/esm2015/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.js +0 -49
  56. package/esm2015/dynamic-elements/dynamic-file-input/dynamic-file-input.component.js +0 -47
  57. package/esm2015/dynamic-elements/dynamic-input/dynamic-input.component.js +0 -55
  58. package/esm2015/dynamic-elements/dynamic-select/dynamic-select.component.js +0 -46
  59. package/esm2015/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.js +0 -34
  60. package/esm2015/dynamic-elements/dynamic-slider/dynamic-slider.component.js +0 -64
  61. package/esm2015/dynamic-elements/dynamic-textarea/dynamic-textarea.component.js +0 -40
  62. package/esm2015/dynamic-forms.component.js +0 -306
  63. package/esm2015/dynamic-forms.module.js +0 -73
  64. package/esm2015/index.js +0 -7
  65. package/esm2015/public_api.js +0 -18
  66. package/esm2015/services/dynamic-forms.service.js +0 -201
  67. package/fesm2015/covalent-dynamic-forms.js +0 -1269
  68. package/fesm2015/covalent-dynamic-forms.js.map +0 -1
  69. package/index.d.ts +0 -1
@@ -1,34 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Component } from '@angular/core';
7
- export class TdDynamicSlideToggleComponent {
8
- constructor() {
9
- this.label = '';
10
- this.name = '';
11
- this.hint = '';
12
- this.required = false;
13
- }
14
- }
15
- TdDynamicSlideToggleComponent.decorators = [
16
- { type: Component, args: [{
17
- selector: 'td-dynamic-slide-toggle',
18
- template: "<div class=\"td-dynamic-slide-toggle-wrapper\">\n <mat-slide-toggle [formControl]=\"control\" [attr.name]=\"name\" [required]=\"required\">\n {{ label }}\n </mat-slide-toggle>\n <span class=\"mat-hint td-dynamic-element-hint\">{{ hint }}</span>\n</div>\n",
19
- styles: [""]
20
- }] }
21
- ];
22
- if (false) {
23
- /** @type {?} */
24
- TdDynamicSlideToggleComponent.prototype.control;
25
- /** @type {?} */
26
- TdDynamicSlideToggleComponent.prototype.label;
27
- /** @type {?} */
28
- TdDynamicSlideToggleComponent.prototype.name;
29
- /** @type {?} */
30
- TdDynamicSlideToggleComponent.prototype.hint;
31
- /** @type {?} */
32
- TdDynamicSlideToggleComponent.prototype.required;
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1zbGlkZS10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9keW5hbWljLWZvcm1zLyIsInNvdXJjZXMiOlsiZHluYW1pYy1lbGVtZW50cy9keW5hbWljLXNsaWRlLXRvZ2dsZS9keW5hbWljLXNsaWRlLXRvZ2dsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUTFDLE1BQU0sT0FBTyw2QkFBNkI7SUFMMUM7UUFRRSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5CLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbEIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUVsQixhQUFRLEdBQVksS0FBSyxDQUFDO0lBQzVCLENBQUM7OztZQWZBLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2dCQUVuQyxnUkFBb0Q7O2FBQ3JEOzs7O0lBRUMsZ0RBQXFCOztJQUVyQiw4Q0FBbUI7O0lBRW5CLDZDQUFrQjs7SUFFbEIsNkNBQWtCOztJQUVsQixpREFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1keW5hbWljLXNsaWRlLXRvZ2dsZScsXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtc2xpZGUtdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXNsaWRlLXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRkRHluYW1pY1NsaWRlVG9nZ2xlQ29tcG9uZW50IHtcbiAgY29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gIGhpbnQ6IHN0cmluZyA9ICcnO1xuXG4gIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG59XG4iXX0=
@@ -1,64 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: dynamic-elements/dynamic-slider/dynamic-slider.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Component, ChangeDetectorRef } from '@angular/core';
7
- export class TdDynamicSliderComponent {
8
- /**
9
- * @param {?} _changeDetectorRef
10
- */
11
- constructor(_changeDetectorRef) {
12
- this._changeDetectorRef = _changeDetectorRef;
13
- this.label = '';
14
- this.required = undefined;
15
- this.name = '';
16
- this.hint = '';
17
- this.min = undefined;
18
- this.max = undefined;
19
- }
20
- /**
21
- * @return {?}
22
- */
23
- _handleBlur() {
24
- setTimeout((/**
25
- * @return {?}
26
- */
27
- () => {
28
- this._changeDetectorRef.markForCheck();
29
- }));
30
- }
31
- }
32
- TdDynamicSliderComponent.decorators = [
33
- { type: Component, args: [{
34
- selector: 'td-dynamic-slider',
35
- template: "<div\n class=\"td-dynamic-slider-wrapper mat-form-field mat-form-field-can-float mat-form-field-should-float\"\n [class.mat-focused]=\"slider._isActive\"\n>\n <span class=\"mat-form-field-label-wrapper\">\n <label class=\"mat-form-field-label mat-primary td-slider-label\">\n {{ label }}\n <span *ngIf=\"required && !control?.disabled\" class=\"mat-form-field-required-marker\">*</span>\n </label>\n </span>\n <div class=\"td-dynamic-slider-field\">\n <mat-slider\n #slider\n class=\"td-dynamic-slider\"\n [formControl]=\"control\"\n [attr.name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n thumbLabel\n tickInterval=\"auto\"\n [required]=\"required\"\n (blur)=\"_handleBlur()\"\n ></mat-slider>\n </div>\n <span class=\"mat-hint td-dynamic-element-hint\">{{ hint }}</span>\n</div>\n",
36
- styles: [":host .td-dynamic-slider-wrapper{display:block}.td-dynamic-slider-field{-ms-flex-direction:row;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row;position:relative}.td-dynamic-slider-field .td-dynamic-slider{-ms-flex:1;flex:1}"]
37
- }] }
38
- ];
39
- /** @nocollapse */
40
- TdDynamicSliderComponent.ctorParameters = () => [
41
- { type: ChangeDetectorRef }
42
- ];
43
- if (false) {
44
- /** @type {?} */
45
- TdDynamicSliderComponent.prototype.control;
46
- /** @type {?} */
47
- TdDynamicSliderComponent.prototype.label;
48
- /** @type {?} */
49
- TdDynamicSliderComponent.prototype.required;
50
- /** @type {?} */
51
- TdDynamicSliderComponent.prototype.name;
52
- /** @type {?} */
53
- TdDynamicSliderComponent.prototype.hint;
54
- /** @type {?} */
55
- TdDynamicSliderComponent.prototype.min;
56
- /** @type {?} */
57
- TdDynamicSliderComponent.prototype.max;
58
- /**
59
- * @type {?}
60
- * @private
61
- */
62
- TdDynamicSliderComponent.prototype._changeDetectorRef;
63
- }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1zbGlkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9keW5hbWljLWZvcm1zLyIsInNvdXJjZXMiOlsiZHluYW1pYy1lbGVtZW50cy9keW5hbWljLXNsaWRlci9keW5hbWljLXNsaWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUTdELE1BQU0sT0FBTyx3QkFBd0I7Ozs7SUFlbkMsWUFBb0Isa0JBQXFDO1FBQXJDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFaekQsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixhQUFRLEdBQVksU0FBUyxDQUFDO1FBRTlCLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbEIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUVsQixRQUFHLEdBQVcsU0FBUyxDQUFDO1FBRXhCLFFBQUcsR0FBVyxTQUFTLENBQUM7SUFFb0MsQ0FBQzs7OztJQUU3RCxXQUFXO1FBQ1QsVUFBVTs7O1FBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pDLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBMUJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUU3Qix3MkJBQThDOzthQUMvQzs7OztZQVBtQixpQkFBaUI7Ozs7SUFTbkMsMkNBQXFCOztJQUVyQix5Q0FBbUI7O0lBRW5CLDRDQUE4Qjs7SUFFOUIsd0NBQWtCOztJQUVsQix3Q0FBa0I7O0lBRWxCLHVDQUF3Qjs7SUFFeEIsdUNBQXdCOzs7OztJQUVaLHNEQUE2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1keW5hbWljLXNsaWRlcicsXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtc2xpZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXNsaWRlci5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRkRHluYW1pY1NsaWRlckNvbXBvbmVudCB7XG4gIGNvbnRyb2w6IEZvcm1Db250cm9sO1xuXG4gIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICByZXF1aXJlZDogYm9vbGVhbiA9IHVuZGVmaW5lZDtcblxuICBuYW1lOiBzdHJpbmcgPSAnJztcblxuICBoaW50OiBzdHJpbmcgPSAnJztcblxuICBtaW46IG51bWJlciA9IHVuZGVmaW5lZDtcblxuICBtYXg6IG51bWJlciA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgX2hhbmRsZUJsdXIoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,40 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: dynamic-elements/dynamic-textarea/dynamic-textarea.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Component } from '@angular/core';
7
- export class TdDynamicTextareaComponent {
8
- constructor() {
9
- this.label = '';
10
- this.hint = '';
11
- this.name = '';
12
- this.required = undefined;
13
- this.errorMessageTemplate = undefined;
14
- this.placeholder = '';
15
- }
16
- }
17
- TdDynamicTextareaComponent.decorators = [
18
- { type: Component, args: [{
19
- selector: 'td-dynamic-textarea',
20
- template: "<div class=\"td-dynamic-textarea-wrapper\">\n <mat-form-field class=\"td-dynamic-textarea-field\">\n <mat-label>{{ label }}</mat-label>\n <textarea\n #elementInput\n matInput\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [attr.name]=\"name\"\n rows=\"4\"\n ></textarea>\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]=\"errorMessageTemplate\"\n [ngTemplateOutletContext]=\"{ control: control, errors: control?.errors }\"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n</div>\n",
21
- styles: [".td-dynamic-textarea-wrapper{-ms-flex-direction:row;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row}.td-dynamic-textarea-wrapper .td-dynamic-textarea-field{-ms-flex:1;box-sizing:border-box;flex:1}"]
22
- }] }
23
- ];
24
- if (false) {
25
- /** @type {?} */
26
- TdDynamicTextareaComponent.prototype.control;
27
- /** @type {?} */
28
- TdDynamicTextareaComponent.prototype.label;
29
- /** @type {?} */
30
- TdDynamicTextareaComponent.prototype.hint;
31
- /** @type {?} */
32
- TdDynamicTextareaComponent.prototype.name;
33
- /** @type {?} */
34
- TdDynamicTextareaComponent.prototype.required;
35
- /** @type {?} */
36
- TdDynamicTextareaComponent.prototype.errorMessageTemplate;
37
- /** @type {?} */
38
- TdDynamicTextareaComponent.prototype.placeholder;
39
- }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10ZXh0YXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2R5bmFtaWMtZm9ybXMvIiwic291cmNlcyI6WyJkeW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtdGV4dGFyZWEvZHluYW1pYy10ZXh0YXJlYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBUXZELE1BQU0sT0FBTywwQkFBMEI7SUFMdkM7UUFRRSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5CLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbEIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUVsQixhQUFRLEdBQVksU0FBUyxDQUFDO1FBRTlCLHlCQUFvQixHQUFxQixTQUFTLENBQUM7UUFFbkQsZ0JBQVcsR0FBVyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7O1lBbkJBLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUUvQiw0b0JBQWdEOzthQUNqRDs7OztJQUVDLDZDQUFxQjs7SUFFckIsMkNBQW1COztJQUVuQiwwQ0FBa0I7O0lBRWxCLDBDQUFrQjs7SUFFbEIsOENBQThCOztJQUU5QiwwREFBbUQ7O0lBRW5ELGlEQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1keW5hbWljLXRleHRhcmVhJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy10ZXh0YXJlYS5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRkRHluYW1pY1RleHRhcmVhQ29tcG9uZW50IHtcbiAgY29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIGhpbnQ6IHN0cmluZyA9ICcnO1xuXG4gIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gIHJlcXVpcmVkOiBib29sZWFuID0gdW5kZWZpbmVkO1xuXG4gIGVycm9yTWVzc2FnZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+ID0gdW5kZWZpbmVkO1xuXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcbn1cbiJdfQ==
@@ -1,306 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: dynamic-forms.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, ContentChildren, QueryList, } from '@angular/core';
7
- import { FormBuilder } from '@angular/forms';
8
- import { TdDynamicFormsService } from './services/dynamic-forms.service';
9
- import { TdDynamicFormsErrorTemplateDirective } from './dynamic-element.component';
10
- import { timer, Subject } from 'rxjs';
11
- import { takeUntil, filter } from 'rxjs/operators';
12
- export class TdDynamicFormsComponent {
13
- /**
14
- * @param {?} _formBuilder
15
- * @param {?} _dynamicFormsService
16
- * @param {?} _changeDetectorRef
17
- */
18
- constructor(_formBuilder, _dynamicFormsService, _changeDetectorRef) {
19
- this._formBuilder = _formBuilder;
20
- this._dynamicFormsService = _dynamicFormsService;
21
- this._changeDetectorRef = _changeDetectorRef;
22
- this._renderedElements = [];
23
- this._templateMap = new Map();
24
- this._destroy$ = new Subject();
25
- this._destroyControl$ = new Subject();
26
- this.dynamicForm = this._formBuilder.group({});
27
- }
28
- /**
29
- * elements: ITdDynamicElementConfig[]
30
- * JS Object that will render the elements depending on its config.
31
- * [name] property is required.
32
- * @param {?} elements
33
- * @return {?}
34
- */
35
- set elements(elements) {
36
- if (elements) {
37
- this._elements = elements;
38
- }
39
- else {
40
- this._elements = [];
41
- }
42
- this._rerenderElements();
43
- }
44
- /**
45
- * @return {?}
46
- */
47
- get elements() {
48
- return this._renderedElements;
49
- }
50
- /**
51
- * Getter property for dynamic [FormGroup].
52
- * @return {?}
53
- */
54
- get form() {
55
- return this.dynamicForm;
56
- }
57
- /**
58
- * Getter property for [valid] of dynamic [FormGroup].
59
- * @return {?}
60
- */
61
- get valid() {
62
- if (this.dynamicForm) {
63
- return this.dynamicForm.valid;
64
- }
65
- return false;
66
- }
67
- /**
68
- * Getter property for [value] of dynamic [FormGroup].
69
- * @return {?}
70
- */
71
- get value() {
72
- if (this.dynamicForm) {
73
- return this.dynamicForm.value;
74
- }
75
- return {};
76
- }
77
- /**
78
- * Getter property for [errors] of dynamic [FormGroup].
79
- * @return {?}
80
- */
81
- get errors() {
82
- if (this.dynamicForm) {
83
- /** @type {?} */
84
- const errors = {};
85
- for (const name of Object.keys(this.dynamicForm.controls)) {
86
- errors[name] = this.dynamicForm.controls[name].errors;
87
- }
88
- return errors;
89
- }
90
- return {};
91
- }
92
- /**
93
- * Getter property for [controls] of dynamic [FormGroup].
94
- * @return {?}
95
- */
96
- get controls() {
97
- if (this.dynamicForm) {
98
- return this.dynamicForm.controls;
99
- }
100
- return {};
101
- }
102
- /**
103
- * @return {?}
104
- */
105
- ngAfterContentInit() {
106
- this._updateErrorTemplates();
107
- }
108
- /**
109
- * @return {?}
110
- */
111
- ngOnDestroy() {
112
- this._destroy$.next();
113
- this._destroy$.complete();
114
- this._destroyControl$.complete();
115
- }
116
- /**
117
- * Refreshes the form and rerenders all validator/element modifications.
118
- * @return {?}
119
- */
120
- refresh() {
121
- this._rerenderElements();
122
- this._updateErrorTemplates();
123
- }
124
- /**
125
- * Getter method for error template references
126
- * @param {?} name
127
- * @return {?}
128
- */
129
- getErrorTemplateRef(name) {
130
- return this._templateMap.get(name);
131
- }
132
- /**
133
- * Loads error templates and sets them in a map for faster access.
134
- * @private
135
- * @return {?}
136
- */
137
- _updateErrorTemplates() {
138
- this._templateMap = new Map();
139
- for (const errorTemplate of this._errorTemplates.toArray()) {
140
- this._templateMap.set(errorTemplate.tdDynamicFormsError, errorTemplate.templateRef);
141
- }
142
- }
143
- /**
144
- * @private
145
- * @return {?}
146
- */
147
- _rerenderElements() {
148
- this._clearRemovedElements();
149
- this._renderedElements = [];
150
- /** @type {?} */
151
- const duplicates = [];
152
- this._elements.forEach((/**
153
- * @param {?} elem
154
- * @return {?}
155
- */
156
- (elem) => {
157
- this._dynamicFormsService.validateDynamicElementName(elem.name);
158
- if (duplicates.indexOf(elem.name) > -1) {
159
- throw new Error(`Dynamic element name: "${elem.name}" is duplicated`);
160
- }
161
- duplicates.push(elem.name);
162
- /** @type {?} */
163
- const dynamicElement = this.dynamicForm.get(elem.name);
164
- if (!dynamicElement) {
165
- this.dynamicForm.addControl(elem.name, this._dynamicFormsService.createFormControl(elem));
166
- this._subscribeToControlStatusChanges(elem.name);
167
- }
168
- else {
169
- dynamicElement.setValue(elem.default);
170
- dynamicElement.markAsPristine();
171
- dynamicElement.markAsUntouched();
172
- if (elem.disabled) {
173
- dynamicElement.disable();
174
- }
175
- else {
176
- dynamicElement.enable();
177
- }
178
- dynamicElement.setValidators(this._dynamicFormsService.createValidators(elem));
179
- }
180
- // copy objects so they are only changes when calling this method
181
- this._renderedElements.push(Object.assign({}, elem));
182
- }));
183
- // call a change detection since the whole form might change
184
- this._changeDetectorRef.detectChanges();
185
- timer()
186
- .toPromise()
187
- .then((/**
188
- * @return {?}
189
- */
190
- () => {
191
- // call a markForCheck so elements are rendered correctly in OnPush
192
- this._changeDetectorRef.markForCheck();
193
- }));
194
- }
195
- /**
196
- * @private
197
- * @return {?}
198
- */
199
- _clearRemovedElements() {
200
- this._renderedElements = this._renderedElements.filter((/**
201
- * @param {?} renderedElement
202
- * @return {?}
203
- */
204
- (renderedElement) => !this._elements.some((/**
205
- * @param {?} element
206
- * @return {?}
207
- */
208
- (element) => element.name === renderedElement.name))));
209
- // remove elements that were removed from the array
210
- this._renderedElements.forEach((/**
211
- * @param {?} elem
212
- * @return {?}
213
- */
214
- (elem) => {
215
- this._destroyControl$.next(elem.name);
216
- this.dynamicForm.removeControl(elem.name);
217
- }));
218
- }
219
- // Updates component when manually adding errors to controls
220
- /**
221
- * @private
222
- * @param {?} elementName
223
- * @return {?}
224
- */
225
- _subscribeToControlStatusChanges(elementName) {
226
- /** @type {?} */
227
- const control = this.controls[elementName];
228
- /** @type {?} */
229
- const controlDestroyed$ = this._destroyControl$.pipe(filter((/**
230
- * @param {?} destroyedElementName
231
- * @return {?}
232
- */
233
- (destroyedElementName) => destroyedElementName === elementName)));
234
- control.statusChanges.pipe(takeUntil(this._destroy$), takeUntil(controlDestroyed$)).subscribe((/**
235
- * @return {?}
236
- */
237
- () => {
238
- this._changeDetectorRef.markForCheck();
239
- }));
240
- }
241
- }
242
- TdDynamicFormsComponent.decorators = [
243
- { type: Component, args: [{
244
- selector: 'td-dynamic-forms',
245
- template: "<form [formGroup]=\"dynamicForm\" novalidate>\n <div class=\"td-dynamic-form-wrapper\">\n <ng-template let-element ngFor [ngForOf]=\"elements\">\n <div\n class=\"td-dynamic-element-wrapper\"\n [style.max-width.%]=\"element.flex ? element.flex : 100\"\n [style.flex]=\"'1 1 ' + (element.flex ? element.flex : 100) + '%'\"\n [style.-ms-flex]=\"'1 1 ' + (element.flex ? element.flex : 100) + '%'\"\n [style.-webkit-box-flex]=\"1\"\n >\n <td-dynamic-element\n #dynamicElement\n *ngIf=\"dynamicForm.controls[element.name]\"\n [formControlName]=\"element.name\"\n [dynamicControl]=\"dynamicForm.controls[element.name]\"\n [id]=\"element.name\"\n [name]=\"element.name\"\n [label]=\"element.label || element.name\"\n [hint]=\"element.hint\"\n [type]=\"element.type\"\n [required]=\"element.required\"\n [min]=\"element.min\"\n [max]=\"element.max\"\n [minLength]=\"element.minLength\"\n [maxLength]=\"element.maxLength\"\n [selections]=\"element.selections\"\n [multiple]=\"element.multiple\"\n [customConfig]=\"element.customConfig\"\n [errorMessageTemplate]=\"getErrorTemplateRef(element.name)\"\n [placeholder]=\"element.placeholder\"\n ></td-dynamic-element>\n </div>\n </ng-template>\n </div>\n <ng-content></ng-content>\n</form>\n",
246
- changeDetection: ChangeDetectionStrategy.OnPush,
247
- styles: [".td-dynamic-form-wrapper{-ms-flex-align:center;-ms-flex-direction:row;-ms-flex-line-pack:center;-ms-flex-pack:start;-ms-flex-wrap:wrap;align-content:center;align-items:center;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;max-width:100%}.td-dynamic-form-wrapper ::ng-deep .mat-form-field-infix{width:auto}.td-dynamic-form-wrapper ::ng-deep .td-dynamic-element-hint{display:block;font-size:75%}.td-dynamic-form-wrapper .td-dynamic-element-wrapper{box-sizing:border-box;max-height:100%;padding:4px 4px 8px;position:relative}"]
248
- }] }
249
- ];
250
- /** @nocollapse */
251
- TdDynamicFormsComponent.ctorParameters = () => [
252
- { type: FormBuilder },
253
- { type: TdDynamicFormsService },
254
- { type: ChangeDetectorRef }
255
- ];
256
- TdDynamicFormsComponent.propDecorators = {
257
- _errorTemplates: [{ type: ContentChildren, args: [TdDynamicFormsErrorTemplateDirective, { descendants: true },] }],
258
- elements: [{ type: Input, args: ['elements',] }]
259
- };
260
- if (false) {
261
- /**
262
- * @type {?}
263
- * @private
264
- */
265
- TdDynamicFormsComponent.prototype._renderedElements;
266
- /**
267
- * @type {?}
268
- * @private
269
- */
270
- TdDynamicFormsComponent.prototype._elements;
271
- /**
272
- * @type {?}
273
- * @private
274
- */
275
- TdDynamicFormsComponent.prototype._templateMap;
276
- /**
277
- * @type {?}
278
- * @private
279
- */
280
- TdDynamicFormsComponent.prototype._destroy$;
281
- /**
282
- * @type {?}
283
- * @private
284
- */
285
- TdDynamicFormsComponent.prototype._destroyControl$;
286
- /** @type {?} */
287
- TdDynamicFormsComponent.prototype._errorTemplates;
288
- /** @type {?} */
289
- TdDynamicFormsComponent.prototype.dynamicForm;
290
- /**
291
- * @type {?}
292
- * @private
293
- */
294
- TdDynamicFormsComponent.prototype._formBuilder;
295
- /**
296
- * @type {?}
297
- * @private
298
- */
299
- TdDynamicFormsComponent.prototype._dynamicFormsService;
300
- /**
301
- * @type {?}
302
- * @private
303
- */
304
- TdDynamicFormsComponent.prototype._changeDetectorRef;
305
- }
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3Jtcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2R5bmFtaWMtZm9ybXMvIiwic291cmNlcyI6WyJkeW5hbWljLWZvcm1zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsZUFBZSxFQUVmLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsV0FBVyxFQUFtQixNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxxQkFBcUIsRUFBMkIsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUW5ELE1BQU0sT0FBTyx1QkFBdUI7Ozs7OztJQWdGbEMsWUFDVSxZQUF5QixFQUN6QixvQkFBMkMsRUFDM0Msa0JBQXFDO1FBRnJDLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3pCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBdUI7UUFDM0MsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQWxGdkMsc0JBQWlCLEdBQThCLEVBQUUsQ0FBQztRQUVsRCxpQkFBWSxHQUFrQyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztRQUNsRixjQUFTLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDeEMscUJBQWdCLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFnRnhELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQzs7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QWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFNBQVM7OztRQUFDLEdBQUcsRUFBRTtZQUNqRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekMsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7WUE5TEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLDY4Q0FBNkM7Z0JBRTdDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7OztZQWJtQixXQUFXO1lBRXRCLHFCQUFxQjtZQVQ1QixpQkFBaUI7Ozs4QkE0QmhCLGVBQWUsU0FBQyxvQ0FBb0MsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7dUJBUzNFLEtBQUssU0FBQyxVQUFVOzs7Ozs7O0lBZmpCLG9EQUEwRDs7Ozs7SUFDMUQsNENBQTZDOzs7OztJQUM3QywrQ0FBMEY7Ozs7O0lBQzFGLDRDQUFnRDs7Ozs7SUFDaEQsbURBQTBEOztJQUUxRCxrREFDaUU7O0lBQ2pFLDhDQUF1Qjs7Ozs7SUF3RXJCLCtDQUFpQzs7Ozs7SUFDakMsdURBQW1EOzs7OztJQUNuRCxxREFBNkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgVGVtcGxhdGVSZWYsXG4gIFF1ZXJ5TGlzdCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgVGREeW5hbWljRm9ybXNTZXJ2aWNlLCBJVGREeW5hbWljRWxlbWVudENvbmZpZyB9IGZyb20gJy4vc2VydmljZXMvZHluYW1pYy1mb3Jtcy5zZXJ2aWNlJztcbmltcG9ydCB7IFRkRHluYW1pY0Zvcm1zRXJyb3JUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vZHluYW1pYy1lbGVtZW50LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IHRpbWVyLCBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtZHluYW1pYy1mb3JtcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm1zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1mb3Jtcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGREeW5hbWljRm9ybXNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9yZW5kZXJlZEVsZW1lbnRzOiBJVGREeW5hbWljRWxlbWVudENvbmZpZ1tdID0gW107XG4gIHByaXZhdGUgX2VsZW1lbnRzOiBJVGREeW5hbWljRWxlbWVudENvbmZpZ1tdO1xuICBwcml2YXRlIF90ZW1wbGF0ZU1hcDogTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4gPSBuZXcgTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgX2Rlc3Ryb3lDb250cm9sJDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcblxuICBAQ29udGVudENoaWxkcmVuKFRkRHluYW1pY0Zvcm1zRXJyb3JUZW1wbGF0ZURpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBfZXJyb3JUZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxUZER5bmFtaWNGb3Jtc0Vycm9yVGVtcGxhdGVEaXJlY3RpdmU+O1xuICBkeW5hbWljRm9ybTogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBlbGVtZW50czogSVRkRHluYW1pY0VsZW1lbnRDb25maWdbXVxuICAgKiBKUyBPYmplY3QgdGhhdCB3aWxsIHJlbmRlciB0aGUgZWxlbWVudHMgZGVwZW5kaW5nIG9uIGl0cyBjb25maWcuXG4gICAqIFtuYW1lXSBwcm9wZXJ0eSBpcyByZXF1aXJlZC5cbiAgICovXG4gIEBJbnB1dCgnZWxlbWVudHMnKVxuICBzZXQgZWxlbWVudHMoZWxlbWVudHM6IElUZER5bmFtaWNFbGVtZW50Q29uZmlnW10pIHtcbiAgICBpZiAoZWxlbWVudHMpIHtcbiAgICAgIHRoaXMuX2VsZW1lbnRzID0gZWxlbWVudHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2VsZW1lbnRzID0gW107XG4gICAgfVxuICAgIHRoaXMuX3JlcmVuZGVyRWxlbWVudHMoKTtcbiAgfVxuICBnZXQgZWxlbWVudHMoKTogSVRkRHluYW1pY0VsZW1lbnRDb25maWdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlbmRlcmVkRWxlbWVudHM7XG4gIH1cblxuICAvKipcbiAgICogR2V0dGVyIHByb3BlcnR5IGZvciBkeW5hbWljIFtGb3JtR3JvdXBdLlxuICAgKi9cbiAgZ2V0IGZvcm0oKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5keW5hbWljRm9ybTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgcHJvcGVydHkgZm9yIFt2YWxpZF0gb2YgZHluYW1pYyBbRm9ybUdyb3VwXS5cbiAgICovXG4gIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5keW5hbWljRm9ybSkge1xuICAgICAgcmV0dXJuIHRoaXMuZHluYW1pY0Zvcm0udmFsaWQ7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgcHJvcGVydHkgZm9yIFt2YWx1ZV0gb2YgZHluYW1pYyBbRm9ybUdyb3VwXS5cbiAgICovXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIGlmICh0aGlzLmR5bmFtaWNGb3JtKSB7XG4gICAgICByZXR1cm4gdGhpcy5keW5hbWljRm9ybS52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciBwcm9wZXJ0eSBmb3IgW2Vycm9yc10gb2YgZHluYW1pYyBbRm9ybUdyb3VwXS5cbiAgICovXG4gIGdldCBlcnJvcnMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIGlmICh0aGlzLmR5bmFtaWNGb3JtKSB7XG4gICAgICBjb25zdCBlcnJvcnM6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXModGhpcy5keW5hbWljRm9ybS5jb250cm9scykpIHtcbiAgICAgICAgZXJyb3JzW25hbWVdID0gdGhpcy5keW5hbWljRm9ybS5jb250cm9sc1tuYW1lXS5lcnJvcnM7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXJyb3JzO1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cblxuICAvKipcbiAgICogR2V0dGVyIHByb3BlcnR5IGZvciBbY29udHJvbHNdIG9mIGR5bmFtaWMgW0Zvcm1Hcm91cF0uXG4gICAqL1xuICBnZXQgY29udHJvbHMoKTogeyBba2V5OiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2wgfSB7XG4gICAgaWYgKHRoaXMuZHluYW1pY0Zvcm0pIHtcbiAgICAgIHJldHVybiB0aGlzLmR5bmFtaWNGb3JtLmNvbnRyb2xzO1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBfZHluYW1pY0Zvcm1zU2VydmljZTogVGREeW5hbWljRm9ybXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7XG4gICAgdGhpcy5keW5hbWljRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwKHt9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVFcnJvclRlbXBsYXRlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZGVzdHJveUNvbnRyb2wkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIHRoZSBmb3JtIGFuZCByZXJlbmRlcnMgYWxsIHZhbGlkYXRvci9lbGVtZW50IG1vZGlmaWNhdGlvbnMuXG4gICAqL1xuICByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuX3JlcmVuZGVyRWxlbWVudHMoKTtcbiAgICB0aGlzLl91cGRhdGVFcnJvclRlbXBsYXRlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciBtZXRob2QgZm9yIGVycm9yIHRlbXBsYXRlIHJlZmVyZW5jZXNcbiAgICovXG4gIGdldEVycm9yVGVtcGxhdGVSZWYobmFtZTogc3RyaW5nKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlTWFwLmdldChuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyBlcnJvciB0ZW1wbGF0ZXMgYW5kIHNldHMgdGhlbSBpbiBhIG1hcCBmb3IgZmFzdGVyIGFjY2Vzcy5cbiAgICovXG4gIHByaXZhdGUgX3VwZGF0ZUVycm9yVGVtcGxhdGVzKCk6IHZvaWQge1xuICAgIHRoaXMuX3RlbXBsYXRlTWFwID0gbmV3IE1hcDxzdHJpbmcsIFRlbXBsYXRlUmVmPGFueT4+KCk7XG4gICAgZm9yIChjb25zdCBlcnJvclRlbXBsYXRlIG9mIHRoaXMuX2Vycm9yVGVtcGxhdGVzLnRvQXJyYXkoKSkge1xuICAgICAgdGhpcy5fdGVtcGxhdGVNYXAuc2V0KGVycm9yVGVtcGxhdGUudGREeW5hbWljRm9ybXNFcnJvciwgZXJyb3JUZW1wbGF0ZS50ZW1wbGF0ZVJlZik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVyZW5kZXJFbGVtZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl9jbGVhclJlbW92ZWRFbGVtZW50cygpO1xuICAgIHRoaXMuX3JlbmRlcmVkRWxlbWVudHMgPSBbXTtcbiAgICBjb25zdCBkdXBsaWNhdGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHRoaXMuX2VsZW1lbnRzLmZvckVhY2goKGVsZW06IElUZER5bmFtaWNFbGVtZW50Q29uZmlnKSA9PiB7XG4gICAgICB0aGlzLl9keW5hbWljRm9ybXNTZXJ2aWNlLnZhbGlkYXRlRHluYW1pY0VsZW1lbnROYW1lKGVsZW0ubmFtZSk7XG4gICAgICBpZiAoZHVwbGljYXRlcy5pbmRleE9mKGVsZW0ubmFtZSkgPiAtMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYER5bmFtaWMgZWxlbWVudCBuYW1lOiBcIiR7ZWxlbS5uYW1lfVwiIGlzIGR1cGxpY2F0ZWRgKTtcbiAgICAgIH1cbiAgICAgIGR1cGxpY2F0ZXMucHVzaChlbGVtLm5hbWUpO1xuICAgICAgY29uc3QgZHluYW1pY0VsZW1lbnQ6IEFic3RyYWN0Q29udHJvbCA9IHRoaXMuZHluYW1pY0Zvcm0uZ2V0KGVsZW0ubmFtZSk7XG4gICAgICBpZiAoIWR5bmFtaWNFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuZHluYW1pY0Zvcm0uYWRkQ29udHJvbChlbGVtLm5hbWUsIHRoaXMuX2R5bmFtaWNGb3Jtc1NlcnZpY2UuY3JlYXRlRm9ybUNvbnRyb2woZWxlbSkpO1xuICAgICAgICB0aGlzLl9zdWJzY3JpYmVUb0NvbnRyb2xTdGF0dXNDaGFuZ2VzKGVsZW0ubmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkeW5hbWljRWxlbWVudC5zZXRWYWx1ZShlbGVtLmRlZmF1bHQpO1xuICAgICAgICBkeW5hbWljRWxlbWVudC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICBkeW5hbWljRWxlbWVudC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgICAgaWYgKGVsZW0uZGlzYWJsZWQpIHtcbiAgICAgICAgICBkeW5hbWljRWxlbWVudC5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZHluYW1pY0VsZW1lbnQuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZHluYW1pY0VsZW1lbnQuc2V0VmFsaWRhdG9ycyh0aGlzLl9keW5hbWljRm9ybXNTZXJ2aWNlLmNyZWF0ZVZhbGlkYXRvcnMoZWxlbSkpO1xuICAgICAgfVxuICAgICAgLy8gY29weSBvYmplY3RzIHNvIHRoZXkgYXJlIG9ubHkgY2hhbmdlcyB3aGVuIGNhbGxpbmcgdGhpcyBtZXRob2RcbiAgICAgIHRoaXMuX3JlbmRlcmVkRWxlbWVudHMucHVzaChPYmplY3QuYXNzaWduKHt9LCBlbGVtKSk7XG4gICAgfSk7XG4gICAgLy8gY2FsbCBhIGNoYW5nZSBkZXRlY3Rpb24gc2luY2UgdGhlIHdob2xlIGZvcm0gbWlnaHQgY2hhbmdlXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRpbWVyKClcbiAgICAgIC50b1Byb21pc2UoKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAvLyBjYWxsIGEgbWFya0ZvckNoZWNrIHNvIGVsZW1lbnRzIGFyZSByZW5kZXJlZCBjb3JyZWN0bHkgaW4gT25QdXNoXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jbGVhclJlbW92ZWRFbGVtZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW5kZXJlZEVsZW1lbnRzID0gdGhpcy5fcmVuZGVyZWRFbGVtZW50cy5maWx0ZXIoXG4gICAgICAocmVuZGVyZWRFbGVtZW50OiBJVGREeW5hbWljRWxlbWVudENvbmZpZykgPT5cbiAgICAgICAgIXRoaXMuX2VsZW1lbnRzLnNvbWUoKGVsZW1lbnQ6IElUZER5bmFtaWNFbGVtZW50Q29uZmlnKSA9PiBlbGVtZW50Lm5hbWUgPT09IHJlbmRlcmVkRWxlbWVudC5uYW1lKSxcbiAgICApO1xuICAgIC8vIHJlbW92ZSBlbGVtZW50cyB0aGF0IHdlcmUgcmVtb3ZlZCBmcm9tIHRoZSBhcnJheVxuICAgIHRoaXMuX3JlbmRlcmVkRWxlbWVudHMuZm9yRWFjaCgoZWxlbTogSVRkRHluYW1pY0VsZW1lbnRDb25maWcpID0+IHtcbiAgICAgIHRoaXMuX2Rlc3Ryb3lDb250cm9sJC5uZXh0KGVsZW0ubmFtZSk7XG4gICAgICB0aGlzLmR5bmFtaWNGb3JtLnJlbW92ZUNvbnRyb2woZWxlbS5uYW1lKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFVwZGF0ZXMgY29tcG9uZW50IHdoZW4gbWFudWFsbHkgYWRkaW5nIGVycm9ycyB0byBjb250cm9sc1xuICBwcml2YXRlIF9zdWJzY3JpYmVUb0NvbnRyb2xTdGF0dXNDaGFuZ2VzKGVsZW1lbnROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmNvbnRyb2xzW2VsZW1lbnROYW1lXTtcblxuICAgIGNvbnN0IGNvbnRyb2xEZXN0cm95ZWQkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLl9kZXN0cm95Q29udHJvbCQucGlwZShcbiAgICAgIGZpbHRlcigoZGVzdHJveWVkRWxlbWVudE5hbWU6IHN0cmluZykgPT4gZGVzdHJveWVkRWxlbWVudE5hbWUgPT09IGVsZW1lbnROYW1lKSxcbiAgICApO1xuXG4gICAgY29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSwgdGFrZVVudGlsKGNvbnRyb2xEZXN0cm95ZWQkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,73 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: dynamic-forms.module.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { NgModule } from '@angular/core';
7
- import { CommonModule } from '@angular/common';
8
- import { ReactiveFormsModule } from '@angular/forms';
9
- import { MatFormFieldModule } from '@angular/material/form-field';
10
- import { MatInputModule } from '@angular/material/input';
11
- import { MatSelectModule } from '@angular/material/select';
12
- import { MatCheckboxModule } from '@angular/material/checkbox';
13
- import { MatSliderModule } from '@angular/material/slider';
14
- import { MatSlideToggleModule } from '@angular/material/slide-toggle';
15
- import { MatIconModule } from '@angular/material/icon';
16
- import { MatButtonModule } from '@angular/material/button';
17
- import { MatDatepickerModule } from '@angular/material/datepicker';
18
- import { CovalentCommonModule } from '@covalent/core/common';
19
- import { CovalentFileModule } from '@covalent/core/file';
20
- import { TdDynamicFormsComponent } from './dynamic-forms.component';
21
- import { TdDynamicElementComponent, TdDynamicElementDirective, TdDynamicFormsErrorTemplateDirective, } from './dynamic-element.component';
22
- import { DYNAMIC_FORMS_PROVIDER } from './services/dynamic-forms.service';
23
- import { TdDynamicInputComponent } from './dynamic-elements/dynamic-input/dynamic-input.component';
24
- import { TdDynamicFileInputComponent } from './dynamic-elements/dynamic-file-input/dynamic-file-input.component';
25
- import { TdDynamicTextareaComponent } from './dynamic-elements/dynamic-textarea/dynamic-textarea.component';
26
- import { TdDynamicSlideToggleComponent } from './dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component';
27
- import { TdDynamicCheckboxComponent } from './dynamic-elements/dynamic-checkbox/dynamic-checkbox.component';
28
- import { TdDynamicSliderComponent } from './dynamic-elements/dynamic-slider/dynamic-slider.component';
29
- import { TdDynamicSelectComponent } from './dynamic-elements/dynamic-select/dynamic-select.component';
30
- import { TdDynamicDatepickerComponent } from './dynamic-elements/dynamic-datepicker/dynamic-datepicker.component';
31
- /** @type {?} */
32
- const TD_DYNAMIC_FORMS = [
33
- TdDynamicFormsComponent,
34
- TdDynamicElementComponent,
35
- TdDynamicElementDirective,
36
- TdDynamicFormsErrorTemplateDirective,
37
- ];
38
- /** @type {?} */
39
- const TD_DYNAMIC_FORMS_ENTRY_COMPONENTS = [
40
- TdDynamicInputComponent,
41
- TdDynamicFileInputComponent,
42
- TdDynamicTextareaComponent,
43
- TdDynamicSlideToggleComponent,
44
- TdDynamicCheckboxComponent,
45
- TdDynamicSliderComponent,
46
- TdDynamicSelectComponent,
47
- TdDynamicDatepickerComponent,
48
- ];
49
- export class CovalentDynamicFormsModule {
50
- }
51
- CovalentDynamicFormsModule.decorators = [
52
- { type: NgModule, args: [{
53
- declarations: [TD_DYNAMIC_FORMS, TD_DYNAMIC_FORMS_ENTRY_COMPONENTS],
54
- imports: [
55
- CommonModule,
56
- ReactiveFormsModule,
57
- MatFormFieldModule,
58
- MatInputModule,
59
- MatSelectModule,
60
- MatCheckboxModule,
61
- MatSliderModule,
62
- MatSlideToggleModule,
63
- MatIconModule,
64
- MatButtonModule,
65
- MatDatepickerModule,
66
- CovalentCommonModule,
67
- CovalentFileModule,
68
- ],
69
- exports: [TD_DYNAMIC_FORMS, TD_DYNAMIC_FORMS_ENTRY_COMPONENTS],
70
- providers: [DYNAMIC_FORMS_PROVIDER],
71
- },] }
72
- ];
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3Jtcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2R5bmFtaWMtZm9ybXMvIiwic291cmNlcyI6WyJkeW5hbWljLWZvcm1zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsb0NBQW9DLEdBQ3JDLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbkcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDakgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDNUcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDdkgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDNUcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7O01BRTVHLGdCQUFnQixHQUFnQjtJQUNwQyx1QkFBdUI7SUFDdkIseUJBQXlCO0lBQ3pCLHlCQUF5QjtJQUN6QixvQ0FBb0M7Q0FDckM7O01BRUssaUNBQWlDLEdBQWdCO0lBQ3JELHVCQUF1QjtJQUN2QiwyQkFBMkI7SUFDM0IsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3QiwwQkFBMEI7SUFDMUIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4Qiw0QkFBNEI7Q0FDN0I7QUFzQkQsTUFBTSxPQUFPLDBCQUEwQjs7O1lBcEJ0QyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsaUNBQWlDLENBQUM7Z0JBQ25FLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLG1CQUFtQjtvQkFDbkIsa0JBQWtCO29CQUNsQixjQUFjO29CQUNkLGVBQWU7b0JBQ2YsaUJBQWlCO29CQUNqQixlQUFlO29CQUNmLG9CQUFvQjtvQkFDcEIsYUFBYTtvQkFDYixlQUFlO29CQUNmLG1CQUFtQjtvQkFDbkIsb0JBQW9CO29CQUNwQixrQkFBa0I7aUJBQ25CO2dCQUNELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLGlDQUFpQyxDQUFDO2dCQUM5RCxTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdFNsaWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlcic7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuXG5pbXBvcnQgeyBDb3ZhbGVudENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bjb3ZhbGVudC9jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBDb3ZhbGVudEZpbGVNb2R1bGUgfSBmcm9tICdAY292YWxlbnQvY29yZS9maWxlJztcblxuaW1wb3J0IHsgVGREeW5hbWljRm9ybXNDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybXMuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFRkRHluYW1pY0VsZW1lbnRDb21wb25lbnQsXG4gIFRkRHluYW1pY0VsZW1lbnREaXJlY3RpdmUsXG4gIFRkRHluYW1pY0Zvcm1zRXJyb3JUZW1wbGF0ZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi9keW5hbWljLWVsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IERZTkFNSUNfRk9STVNfUFJPVklERVIgfSBmcm9tICcuL3NlcnZpY2VzL2R5bmFtaWMtZm9ybXMuc2VydmljZSc7XG5cbmltcG9ydCB7IFRkRHluYW1pY0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtaW5wdXQvZHluYW1pYy1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGREeW5hbWljRmlsZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtZmlsZS1pbnB1dC9keW5hbWljLWZpbGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRkRHluYW1pY1RleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtdGV4dGFyZWEvZHluYW1pYy10ZXh0YXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGREeW5hbWljU2xpZGVUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZWxlbWVudHMvZHluYW1pYy1zbGlkZS10b2dnbGUvZHluYW1pYy1zbGlkZS10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRkRHluYW1pY0NoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGREeW5hbWljU2xpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtc2xpZGVyL2R5bmFtaWMtc2xpZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZER5bmFtaWNTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZWxlbWVudHMvZHluYW1pYy1zZWxlY3QvZHluYW1pYy1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRkRHluYW1pY0RhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZWxlbWVudHMvZHluYW1pYy1kYXRlcGlja2VyL2R5bmFtaWMtZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuXG5jb25zdCBURF9EWU5BTUlDX0ZPUk1TOiBUeXBlPGFueT5bXSA9IFtcbiAgVGREeW5hbWljRm9ybXNDb21wb25lbnQsXG4gIFRkRHluYW1pY0VsZW1lbnRDb21wb25lbnQsXG4gIFRkRHluYW1pY0VsZW1lbnREaXJlY3RpdmUsXG4gIFRkRHluYW1pY0Zvcm1zRXJyb3JUZW1wbGF0ZURpcmVjdGl2ZSxcbl07XG5cbmNvbnN0IFREX0RZTkFNSUNfRk9STVNfRU5UUllfQ09NUE9ORU5UUzogVHlwZTxhbnk+W10gPSBbXG4gIFRkRHluYW1pY0lucHV0Q29tcG9uZW50LFxuICBUZER5bmFtaWNGaWxlSW5wdXRDb21wb25lbnQsXG4gIFRkRHluYW1pY1RleHRhcmVhQ29tcG9uZW50LFxuICBUZER5bmFtaWNTbGlkZVRvZ2dsZUNvbXBvbmVudCxcbiAgVGREeW5hbWljQ2hlY2tib3hDb21wb25lbnQsXG4gIFRkRHluYW1pY1NsaWRlckNvbXBvbmVudCxcbiAgVGREeW5hbWljU2VsZWN0Q29tcG9uZW50LFxuICBUZER5bmFtaWNEYXRlcGlja2VyQ29tcG9uZW50LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVERfRFlOQU1JQ19GT1JNUywgVERfRFlOQU1JQ19GT1JNU19FTlRSWV9DT01QT05FTlRTXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgTWF0U2xpZGVyTW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgQ292YWxlbnRDb21tb25Nb2R1bGUsXG4gICAgQ292YWxlbnRGaWxlTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbVERfRFlOQU1JQ19GT1JNUywgVERfRFlOQU1JQ19GT1JNU19FTlRSWV9DT01QT05FTlRTXSxcbiAgcHJvdmlkZXJzOiBbRFlOQU1JQ19GT1JNU19QUk9WSURFUl0sXG59KVxuZXhwb3J0IGNsYXNzIENvdmFsZW50RHluYW1pY0Zvcm1zTW9kdWxlIHt9XG4iXX0=
package/esm2015/index.js DELETED
@@ -1,7 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: index.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- export { CovalentDynamicFormsModule, TdDynamicFormsComponent, TdDynamicElementBase, _TdDynamicElementMixinBase, TdDynamicFormsErrorTemplateDirective, TdDynamicElementDirective, TdDynamicElementComponent, DYNAMIC_FORMS_PROVIDER_FACTORY, TdDynamicType, TdDynamicElement, DYNAMIC_ELEMENT_NAME_REGEX, TdDynamicFormsService, DYNAMIC_FORMS_PROVIDER, TdDynamicTextareaComponent, TdDynamicSliderComponent, TdDynamicSlideToggleComponent, TdDynamicSelectComponent, TdDynamicInputComponent, TdDynamicFileInputComponent, TdDynamicDatepickerComponent, TdDynamicCheckboxComponent } from './public_api';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2R5bmFtaWMtZm9ybXMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZqQkFBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
@@ -1,18 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: public_api.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- export { CovalentDynamicFormsModule } from './dynamic-forms.module';
7
- export { TdDynamicFormsComponent } from './dynamic-forms.component';
8
- export { TdDynamicElementBase, _TdDynamicElementMixinBase, TdDynamicFormsErrorTemplateDirective, TdDynamicElementDirective, TdDynamicElementComponent } from './dynamic-element.component';
9
- export { DYNAMIC_FORMS_PROVIDER_FACTORY, TdDynamicType, TdDynamicElement, DYNAMIC_ELEMENT_NAME_REGEX, TdDynamicFormsService, DYNAMIC_FORMS_PROVIDER } from './services/dynamic-forms.service';
10
- export { TdDynamicTextareaComponent } from './dynamic-elements/dynamic-textarea/dynamic-textarea.component';
11
- export { TdDynamicSliderComponent } from './dynamic-elements/dynamic-slider/dynamic-slider.component';
12
- export { TdDynamicSlideToggleComponent } from './dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component';
13
- export { TdDynamicSelectComponent } from './dynamic-elements/dynamic-select/dynamic-select.component';
14
- export { TdDynamicInputComponent } from './dynamic-elements/dynamic-input/dynamic-input.component';
15
- export { TdDynamicFileInputComponent } from './dynamic-elements/dynamic-file-input/dynamic-file-input.component';
16
- export { TdDynamicDatepickerComponent } from './dynamic-elements/dynamic-datepicker/dynamic-datepicker.component';
17
- export { TdDynamicCheckboxComponent } from './dynamic-elements/dynamic-checkbox/dynamic-checkbox.component';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vZHluYW1pYy1mb3Jtcy8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyQ0FBYyx3QkFBd0IsQ0FBQztBQUN2Qyx3Q0FBYywyQkFBMkIsQ0FBQztBQUMxQyw2SkFBYyw2QkFBNkIsQ0FBQztBQUM1QywySkFBYyxrQ0FBa0MsQ0FBQztBQUNqRCwyQ0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSx5Q0FBYyw0REFBNEQsQ0FBQztBQUMzRSw4Q0FBYyx3RUFBd0UsQ0FBQztBQUN2Rix5Q0FBYyw0REFBNEQsQ0FBQztBQUMzRSx3Q0FBYywwREFBMEQsQ0FBQztBQUN6RSw0Q0FBYyxvRUFBb0UsQ0FBQztBQUNuRiw2Q0FBYyxvRUFBb0UsQ0FBQztBQUNuRiwyQ0FBYyxnRUFBZ0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1mb3Jtcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWZvcm1zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtZWxlbWVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9keW5hbWljLWZvcm1zLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtdGV4dGFyZWEvZHluYW1pYy10ZXh0YXJlYS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtc2xpZGVyL2R5bmFtaWMtc2xpZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtZWxlbWVudHMvZHluYW1pYy1zbGlkZS10b2dnbGUvZHluYW1pYy1zbGlkZS10b2dnbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1lbGVtZW50cy9keW5hbWljLXNlbGVjdC9keW5hbWljLXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtaW5wdXQvZHluYW1pYy1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtZmlsZS1pbnB1dC9keW5hbWljLWZpbGUtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1lbGVtZW50cy9keW5hbWljLWRhdGVwaWNrZXIvZHluYW1pYy1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtZWxlbWVudHMvZHluYW1pYy1jaGVja2JveC9keW5hbWljLWNoZWNrYm94LmNvbXBvbmVudCc7XG4iXX0=