@3kles/kles-material-dynamicforms 1.1.20 → 14.0.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 (200) hide show
  1. package/esm2020/3kles-kles-material-dynamicforms.mjs +5 -0
  2. package/esm2020/lib/decorators/component.decorator.mjs +7 -0
  3. package/esm2020/lib/directive/dynamic-component.directive.mjs +44 -0
  4. package/esm2020/lib/directive/dynamic-field.directive.mjs +50 -0
  5. package/esm2020/lib/dynamic-form.component.mjs +247 -0
  6. package/esm2020/lib/enums/type.enum.mjs +19 -0
  7. package/esm2020/lib/fields/array.component.mjs +53 -0
  8. package/esm2020/lib/fields/badge.component.mjs +40 -0
  9. package/esm2020/lib/fields/button-form.component.mjs +44 -0
  10. package/esm2020/lib/fields/button-submit.component.mjs +38 -0
  11. package/esm2020/lib/fields/button-toogle-group.component.mjs +51 -0
  12. package/esm2020/lib/fields/buttonchecker-form.component.mjs +44 -0
  13. package/esm2020/lib/fields/buttonfile-form.component.mjs +42 -0
  14. package/esm2020/lib/fields/checkbox.component.mjs +50 -0
  15. package/esm2020/lib/fields/chip.component.mjs +41 -0
  16. package/esm2020/lib/fields/color.component.mjs +84 -0
  17. package/esm2020/lib/fields/date.component.mjs +52 -0
  18. package/esm2020/lib/fields/field.abstract.mjs +66 -0
  19. package/esm2020/lib/fields/group.component.mjs +44 -0
  20. package/esm2020/lib/fields/icon.component.mjs +28 -0
  21. package/esm2020/lib/fields/input.clearable.component.mjs +112 -0
  22. package/esm2020/lib/fields/input.component.mjs +158 -0
  23. package/esm2020/lib/fields/label.component.mjs +40 -0
  24. package/esm2020/lib/fields/line-break.component.mjs +23 -0
  25. package/esm2020/lib/fields/link.component.mjs +32 -0
  26. package/esm2020/lib/fields/list-field.component.mjs +114 -0
  27. package/esm2020/lib/fields/radio.component.mjs +49 -0
  28. package/esm2020/lib/fields/select.component.mjs +211 -0
  29. package/esm2020/lib/fields/select.search.component.mjs +307 -0
  30. package/esm2020/lib/fields/selection-list.component.mjs +63 -0
  31. package/esm2020/lib/fields/slide-toggle.component.mjs +43 -0
  32. package/esm2020/lib/fields/text.component.mjs +40 -0
  33. package/esm2020/lib/fields/textarea.component.mjs +56 -0
  34. package/esm2020/lib/forms/button-control.component.mjs +115 -0
  35. package/esm2020/lib/forms/buttonchecker-control.component.mjs +85 -0
  36. package/esm2020/lib/forms/buttonfile-control.component.mjs +118 -0
  37. package/esm2020/lib/interfaces/component.interface.mjs +2 -0
  38. package/esm2020/lib/interfaces/directive.interface.mjs +2 -0
  39. package/esm2020/lib/interfaces/field.config.interface.mjs +2 -0
  40. package/esm2020/lib/interfaces/field.interface.mjs +2 -0
  41. package/esm2020/lib/interfaces/validator.interface.mjs +2 -0
  42. package/esm2020/lib/kles-material-dynamicforms.module.mjs +191 -0
  43. package/esm2020/lib/matcher/form-error.matcher.mjs +16 -0
  44. package/esm2020/lib/modules/material.module.mjs +278 -0
  45. package/esm2020/lib/pipe/array.pipe.mjs +22 -0
  46. package/esm2020/lib/pipe/transform.pipe.mjs +27 -0
  47. package/esm2020/lib/validators/autocomplete.validator.mjs +23 -0
  48. package/esm2020/public-api.mjs +59 -0
  49. package/fesm2015/3kles-kles-material-dynamicforms.mjs +2839 -0
  50. package/fesm2015/3kles-kles-material-dynamicforms.mjs.map +1 -0
  51. package/fesm2020/3kles-kles-material-dynamicforms.mjs +2835 -0
  52. package/fesm2020/3kles-kles-material-dynamicforms.mjs.map +1 -0
  53. package/{3kles-kles-material-dynamicforms.d.ts → index.d.ts} +1 -1
  54. package/lib/decorators/component.decorator.d.ts +8 -0
  55. package/lib/directive/dynamic-component.directive.d.ts +5 -3
  56. package/lib/directive/dynamic-field.directive.d.ts +7 -5
  57. package/lib/dynamic-form.component.d.ts +6 -3
  58. package/lib/enums/type.enum.d.ts +4 -1
  59. package/lib/fields/array.component.d.ts +5 -2
  60. package/lib/fields/badge.component.d.ts +3 -0
  61. package/lib/fields/button-form.component.d.ts +3 -0
  62. package/lib/fields/button-submit.component.d.ts +3 -0
  63. package/lib/fields/button-toogle-group.component.d.ts +3 -0
  64. package/lib/fields/buttonchecker-form.component.d.ts +3 -0
  65. package/lib/fields/buttonfile-form.component.d.ts +3 -0
  66. package/lib/fields/checkbox.component.d.ts +4 -1
  67. package/lib/fields/chip.component.d.ts +3 -0
  68. package/lib/fields/color.component.d.ts +3 -0
  69. package/lib/fields/date.component.d.ts +3 -0
  70. package/lib/fields/field.abstract.d.ts +5 -2
  71. package/lib/fields/group.component.d.ts +5 -2
  72. package/lib/fields/icon.component.d.ts +3 -0
  73. package/lib/fields/input.clearable.component.d.ts +3 -0
  74. package/lib/fields/input.component.d.ts +3 -0
  75. package/lib/fields/label.component.d.ts +3 -0
  76. package/lib/fields/line-break.component.d.ts +5 -2
  77. package/lib/fields/link.component.d.ts +3 -0
  78. package/lib/fields/list-field.component.d.ts +6 -3
  79. package/lib/fields/radio.component.d.ts +3 -0
  80. package/lib/fields/select.component.d.ts +3 -0
  81. package/lib/fields/select.search.component.d.ts +6 -3
  82. package/lib/fields/selection-list.component.d.ts +3 -0
  83. package/lib/fields/slide-toggle.component.d.ts +3 -0
  84. package/lib/fields/text.component.d.ts +3 -0
  85. package/lib/fields/textarea.component.d.ts +3 -0
  86. package/lib/forms/button-control.component.d.ts +3 -0
  87. package/lib/forms/buttonchecker-control.component.d.ts +3 -0
  88. package/lib/forms/buttonfile-control.component.d.ts +3 -0
  89. package/lib/interfaces/field.config.interface.d.ts +2 -2
  90. package/lib/interfaces/field.interface.d.ts +2 -2
  91. package/lib/kles-material-dynamicforms.module.d.ts +45 -0
  92. package/lib/matcher/form-error.matcher.d.ts +5 -2
  93. package/lib/modules/material.module.d.ts +40 -0
  94. package/lib/pipe/array.pipe.d.ts +3 -0
  95. package/lib/pipe/transform.pipe.d.ts +3 -0
  96. package/package.json +22 -12
  97. package/public-api.d.ts +2 -0
  98. package/3kles-kles-material-dynamicforms.metadata.json +0 -1
  99. package/bundles/3kles-kles-material-dynamicforms.umd.js +0 -1980
  100. package/bundles/3kles-kles-material-dynamicforms.umd.js.map +0 -1
  101. package/bundles/3kles-kles-material-dynamicforms.umd.min.js +0 -16
  102. package/bundles/3kles-kles-material-dynamicforms.umd.min.js.map +0 -1
  103. package/esm2015/3kles-kles-material-dynamicforms.js +0 -6
  104. package/esm2015/lib/directive/dynamic-component.directive.js +0 -50
  105. package/esm2015/lib/directive/dynamic-field.directive.js +0 -95
  106. package/esm2015/lib/dynamic-form.component.js +0 -260
  107. package/esm2015/lib/enums/type.enum.js +0 -16
  108. package/esm2015/lib/fields/array.component.js +0 -37
  109. package/esm2015/lib/fields/badge.component.js +0 -23
  110. package/esm2015/lib/fields/button-form.component.js +0 -31
  111. package/esm2015/lib/fields/button-submit.component.js +0 -23
  112. package/esm2015/lib/fields/button-toogle-group.component.js +0 -35
  113. package/esm2015/lib/fields/buttonchecker-form.component.js +0 -31
  114. package/esm2015/lib/fields/buttonfile-form.component.js +0 -30
  115. package/esm2015/lib/fields/checkbox.component.js +0 -27
  116. package/esm2015/lib/fields/chip.component.js +0 -26
  117. package/esm2015/lib/fields/color.component.js +0 -61
  118. package/esm2015/lib/fields/date.component.js +0 -31
  119. package/esm2015/lib/fields/field.abstract.js +0 -68
  120. package/esm2015/lib/fields/group.component.js +0 -32
  121. package/esm2015/lib/fields/icon.component.js +0 -21
  122. package/esm2015/lib/fields/input.clearable.component.js +0 -59
  123. package/esm2015/lib/fields/input.component.js +0 -104
  124. package/esm2015/lib/fields/label.component.js +0 -26
  125. package/esm2015/lib/fields/line-break.component.js +0 -22
  126. package/esm2015/lib/fields/link.component.js +0 -23
  127. package/esm2015/lib/fields/list-field.component.js +0 -88
  128. package/esm2015/lib/fields/radio.component.js +0 -30
  129. package/esm2015/lib/fields/select.component.js +0 -127
  130. package/esm2015/lib/fields/select.search.component.js +0 -205
  131. package/esm2015/lib/fields/selection-list.component.js +0 -43
  132. package/esm2015/lib/fields/slide-toggle.component.js +0 -27
  133. package/esm2015/lib/fields/text.component.js +0 -23
  134. package/esm2015/lib/fields/textarea.component.js +0 -35
  135. package/esm2015/lib/forms/button-control.component.js +0 -102
  136. package/esm2015/lib/forms/buttonchecker-control.component.js +0 -53
  137. package/esm2015/lib/forms/buttonfile-control.component.js +0 -103
  138. package/esm2015/lib/interfaces/component.interface.js +0 -1
  139. package/esm2015/lib/interfaces/directive.interface.js +0 -1
  140. package/esm2015/lib/interfaces/field.config.interface.js +0 -1
  141. package/esm2015/lib/interfaces/field.interface.js +0 -1
  142. package/esm2015/lib/interfaces/validator.interface.js +0 -1
  143. package/esm2015/lib/kles-material-dynamicforms.module.js +0 -116
  144. package/esm2015/lib/matcher/form-error.matcher.js +0 -9
  145. package/esm2015/lib/modules/material.module.js +0 -129
  146. package/esm2015/lib/pipe/array.pipe.js +0 -20
  147. package/esm2015/lib/pipe/transform.pipe.js +0 -25
  148. package/esm2015/lib/validators/autocomplete.validator.js +0 -23
  149. package/esm2015/public-api.js +0 -51
  150. package/esm5/3kles-kles-material-dynamicforms.js +0 -6
  151. package/esm5/lib/directive/dynamic-component.directive.js +0 -51
  152. package/esm5/lib/directive/dynamic-field.directive.js +0 -96
  153. package/esm5/lib/dynamic-form.component.js +0 -262
  154. package/esm5/lib/enums/type.enum.js +0 -16
  155. package/esm5/lib/fields/array.component.js +0 -31
  156. package/esm5/lib/fields/badge.component.js +0 -24
  157. package/esm5/lib/fields/button-form.component.js +0 -24
  158. package/esm5/lib/fields/button-submit.component.js +0 -24
  159. package/esm5/lib/fields/button-toogle-group.component.js +0 -31
  160. package/esm5/lib/fields/buttonchecker-form.component.js +0 -24
  161. package/esm5/lib/fields/buttonfile-form.component.js +0 -24
  162. package/esm5/lib/fields/checkbox.component.js +0 -22
  163. package/esm5/lib/fields/chip.component.js +0 -22
  164. package/esm5/lib/fields/color.component.js +0 -49
  165. package/esm5/lib/fields/date.component.js +0 -22
  166. package/esm5/lib/fields/field.abstract.js +0 -70
  167. package/esm5/lib/fields/group.component.js +0 -30
  168. package/esm5/lib/fields/icon.component.js +0 -22
  169. package/esm5/lib/fields/input.clearable.component.js +0 -22
  170. package/esm5/lib/fields/input.component.js +0 -73
  171. package/esm5/lib/fields/label.component.js +0 -25
  172. package/esm5/lib/fields/line-break.component.js +0 -23
  173. package/esm5/lib/fields/link.component.js +0 -24
  174. package/esm5/lib/fields/list-field.component.js +0 -68
  175. package/esm5/lib/fields/radio.component.js +0 -22
  176. package/esm5/lib/fields/select.component.js +0 -59
  177. package/esm5/lib/fields/select.search.component.js +0 -119
  178. package/esm5/lib/fields/selection-list.component.js +0 -32
  179. package/esm5/lib/fields/slide-toggle.component.js +0 -22
  180. package/esm5/lib/fields/text.component.js +0 -24
  181. package/esm5/lib/fields/textarea.component.js +0 -25
  182. package/esm5/lib/forms/button-control.component.js +0 -95
  183. package/esm5/lib/forms/buttonchecker-control.component.js +0 -37
  184. package/esm5/lib/forms/buttonfile-control.component.js +0 -119
  185. package/esm5/lib/interfaces/component.interface.js +0 -1
  186. package/esm5/lib/interfaces/directive.interface.js +0 -1
  187. package/esm5/lib/interfaces/field.config.interface.js +0 -1
  188. package/esm5/lib/interfaces/field.interface.js +0 -1
  189. package/esm5/lib/interfaces/validator.interface.js +0 -1
  190. package/esm5/lib/kles-material-dynamicforms.module.js +0 -119
  191. package/esm5/lib/matcher/form-error.matcher.js +0 -11
  192. package/esm5/lib/modules/material.module.js +0 -132
  193. package/esm5/lib/pipe/array.pipe.js +0 -23
  194. package/esm5/lib/pipe/transform.pipe.js +0 -28
  195. package/esm5/lib/validators/autocomplete.validator.js +0 -23
  196. package/esm5/public-api.js +0 -51
  197. package/fesm2015/3kles-kles-material-dynamicforms.js +0 -2087
  198. package/fesm2015/3kles-kles-material-dynamicforms.js.map +0 -1
  199. package/fesm5/3kles-kles-material-dynamicforms.js +0 -1766
  200. package/fesm5/3kles-kles-material-dynamicforms.js.map +0 -1
@@ -0,0 +1,38 @@
1
+ import { __decorate } from "tslib";
2
+ import { KlesFieldAbstract } from './field.abstract';
3
+ import { Component } from '@angular/core';
4
+ import { EnumType } from '../enums/type.enum';
5
+ import { FieldMapper } from '../decorators/component.decorator';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "@angular/flex-layout/extended";
10
+ import * as i4 from "@angular/material/button";
11
+ import * as i5 from "@angular/material/tooltip";
12
+ let KlesFormSubmitButtonComponent = class KlesFormSubmitButtonComponent extends KlesFieldAbstract {
13
+ ngOnInit() {
14
+ super.ngOnInit();
15
+ }
16
+ ngOnDestroy() {
17
+ super.ngOnDestroy();
18
+ }
19
+ };
20
+ KlesFormSubmitButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormSubmitButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
21
+ KlesFormSubmitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: KlesFormSubmitButtonComponent, selector: "kles-submit-button", usesInheritance: true, ngImport: i0, template: `
22
+ <div [formGroup]="group">
23
+ <button matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="field.ngClass" type="submit" [disabled]="field.disabled" mat-raised-button color="primary">{{field.label}}</button>
24
+ </div>
25
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
26
+ KlesFormSubmitButtonComponent = __decorate([
27
+ FieldMapper({ type: EnumType.button })
28
+ ], KlesFormSubmitButtonComponent);
29
+ export { KlesFormSubmitButtonComponent };
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormSubmitButtonComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'kles-submit-button', template: `
33
+ <div [formGroup]="group">
34
+ <button matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="field.ngClass" type="submit" [disabled]="field.disabled" mat-raised-button color="primary">{{field.label}}</button>
35
+ </div>
36
+ ` }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXN1Ym1pdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGVzLW1hdGVyaWFsLWR5bmFtaWNmb3Jtcy9zcmMvbGliL2ZpZWxkcy9idXR0b24tc3VibWl0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFVLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7O0lBWW5ELDZCQUE2QixTQUE3Qiw2QkFBOEIsU0FBUSxpQkFBaUI7SUFFaEUsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO0NBQ0osQ0FBQTswSEFUWSw2QkFBNkI7OEdBQTdCLDZCQUE2QixpRkFQNUI7Ozs7S0FJVDtBQUdRLDZCQUE2QjtJQVZ6QyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0dBVTFCLDZCQUE2QixDQVN6QztTQVRZLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQVR6QyxTQUFTOytCQUNJLG9CQUFvQixZQUNwQjs7OztLQUlUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2xlc0ZpZWxkQWJzdHJhY3QgfSBmcm9tICcuL2ZpZWxkLmFic3RyYWN0JztcbmltcG9ydCB7IE9uSW5pdCwgQ29tcG9uZW50LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudW1UeXBlIH0gZnJvbSAnLi4vZW51bXMvdHlwZS5lbnVtJztcbmltcG9ydCB7IEZpZWxkTWFwcGVyIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9jb21wb25lbnQuZGVjb3JhdG9yJztcblxuQEZpZWxkTWFwcGVyKHsgdHlwZTogRW51bVR5cGUuYnV0dG9uIH0pXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2tsZXMtc3VibWl0LWJ1dHRvbicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXRUb29sdGlwPVwie3tmaWVsZC50b29sdGlwfX1cIiBbYXR0ci5pZF09XCJmaWVsZC5pZFwiIFtuZ0NsYXNzXT1cImZpZWxkLm5nQ2xhc3NcIiB0eXBlPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cImZpZWxkLmRpc2FibGVkXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCI+e3tmaWVsZC5sYWJlbH19PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgYCxcbiAgICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEtsZXNGb3JtU3VibWl0QnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgS2xlc0ZpZWxkQWJzdHJhY3QgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { Component } from '@angular/core';
2
+ import { Observable, of } from 'rxjs';
3
+ import { KlesFieldAbstract } from './field.abstract';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "@angular/flex-layout/extended";
8
+ import * as i4 from "@angular/material/button-toggle";
9
+ import * as i5 from "../pipe/transform.pipe";
10
+ export class KlesFormButtonToogleGroupComponent extends KlesFieldAbstract {
11
+ ngOnInit() {
12
+ super.ngOnInit();
13
+ if (!(this.field.options instanceof Observable)) {
14
+ this.options$ = of(this.field.options);
15
+ }
16
+ else {
17
+ this.options$ = this.field.options;
18
+ }
19
+ }
20
+ ngOnDestroy() {
21
+ super.ngOnDestroy();
22
+ }
23
+ }
24
+ KlesFormButtonToogleGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormButtonToogleGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
25
+ KlesFormButtonToogleGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: KlesFormButtonToogleGroupComponent, selector: "kles-form-button-toogle-group", usesInheritance: true, ngImport: i0, template: `
26
+ <div [formGroup]="group" class="form-element">
27
+ <mat-button-toggle-group [formControlName]="field.name" [multiple]="field.multiple"
28
+ [attr.id]="field.id" [ngClass]="field.ngClass">
29
+ <mat-button-toggle *ngFor="let item of options$ | async" [value]="item">
30
+ {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}
31
+ </mat-button-toggle>
32
+ </mat-button-toggle-group>
33
+ </div>
34
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i4.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.KlesTransformPipe, name: "klesTransform" }] });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormButtonToogleGroupComponent, decorators: [{
36
+ type: Component,
37
+ args: [{
38
+ selector: 'kles-form-button-toogle-group',
39
+ template: `
40
+ <div [formGroup]="group" class="form-element">
41
+ <mat-button-toggle-group [formControlName]="field.name" [multiple]="field.multiple"
42
+ [attr.id]="field.id" [ngClass]="field.ngClass">
43
+ <mat-button-toggle *ngFor="let item of options$ | async" [value]="item">
44
+ {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}
45
+ </mat-button-toggle>
46
+ </mat-button-toggle-group>
47
+ </div>
48
+ `
49
+ }]
50
+ }] });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXRvb2dsZS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGVzLW1hdGVyaWFsLWR5bmFtaWNmb3Jtcy9zcmMvbGliL2ZpZWxkcy9idXR0b24tdG9vZ2xlLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7OztBQWVyRCxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsaUJBQWlCO0lBSXJFLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLFlBQVksVUFBVSxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMxQzthQUFNO1lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztTQUN0QztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7OytIQWZRLGtDQUFrQzttSEFBbEMsa0NBQWtDLDRGQVhqQzs7Ozs7Ozs7O0NBU2I7MkZBRVksa0NBQWtDO2tCQWI5QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwrQkFBK0I7b0JBQ3pDLFFBQVEsRUFBRTs7Ozs7Ozs7O0NBU2I7aUJBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgS2xlc0ZpZWxkQWJzdHJhY3QgfSBmcm9tICcuL2ZpZWxkLmFic3RyYWN0JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrbGVzLWZvcm0tYnV0dG9uLXRvb2dsZS1ncm91cCcsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCIgY2xhc3M9XCJmb3JtLWVsZW1lbnRcIj5cbiAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIiBbbXVsdGlwbGVdPVwiZmllbGQubXVsdGlwbGVcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiZmllbGQuaWRcIiBbbmdDbGFzc109XCJmaWVsZC5uZ0NsYXNzXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wdGlvbnMkIHwgYXN5bmNcIiBbdmFsdWVdPVwiaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyhmaWVsZC5wcm9wZXJ0eSA/IGl0ZW1bZmllbGQucHJvcGVydHldIDogaXRlbSkgfCBrbGVzVHJhbnNmb3JtOmZpZWxkLnBpcGVUcmFuc2Zvcm19fVxuICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbmBcbn0pXG5leHBvcnQgY2xhc3MgS2xlc0Zvcm1CdXR0b25Ub29nbGVHcm91cENvbXBvbmVudCBleHRlbmRzIEtsZXNGaWVsZEFic3RyYWN0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgb3B0aW9ucyQ6IE9ic2VydmFibGU8YW55W10+O1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgaWYgKCEodGhpcy5maWVsZC5vcHRpb25zIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyQgPSBvZih0aGlzLmZpZWxkLm9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zJCA9IHRoaXMuZmllbGQub3B0aW9ucztcbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,44 @@
1
+ import { Component } from '@angular/core';
2
+ import { KlesFieldAbstract } from './field.abstract';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "../forms/buttonchecker-control.component";
6
+ export class KlesFormButtonCheckerComponent extends KlesFieldAbstract {
7
+ ngOnInit() {
8
+ super.ngOnInit();
9
+ }
10
+ ngOnDestroy() {
11
+ super.ngOnDestroy();
12
+ }
13
+ }
14
+ KlesFormButtonCheckerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormButtonCheckerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
15
+ KlesFormButtonCheckerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: KlesFormButtonCheckerComponent, selector: "kles-form-button-checker", usesInheritance: true, ngImport: i0, template: `
16
+ <div [formGroup]="group">
17
+ <kles-button-checker
18
+ [attr.id]="field.id" [classButton]="field.ngClass"
19
+ [name]="field.name" [label]="field.label" [color]="field.color"
20
+ [icon]="field.icon"
21
+ [iconSvg]="field.iconSvg"
22
+ [value]="field.value"
23
+ [formControlName]="field.name"
24
+ [tooltip]="field.tooltip">
25
+ </kles-button-checker>
26
+ </div>
27
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.KlesButtonCheckerComponent, selector: "kles-button-checker" }] });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormButtonCheckerComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'kles-form-button-checker', template: `
31
+ <div [formGroup]="group">
32
+ <kles-button-checker
33
+ [attr.id]="field.id" [classButton]="field.ngClass"
34
+ [name]="field.name" [label]="field.label" [color]="field.color"
35
+ [icon]="field.icon"
36
+ [iconSvg]="field.iconSvg"
37
+ [value]="field.value"
38
+ [formControlName]="field.name"
39
+ [tooltip]="field.tooltip">
40
+ </kles-button-checker>
41
+ </div>
42
+ ` }]
43
+ }] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uY2hlY2tlci1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9saWIvZmllbGRzL2J1dHRvbmNoZWNrZXItZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQW1CckQsTUFBTSxPQUFPLDhCQUErQixTQUFRLGlCQUFpQjtJQUVqRSxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7OzJIQVJRLDhCQUE4QjsrR0FBOUIsOEJBQThCLHVGQWY3Qjs7Ozs7Ozs7Ozs7O0tBWVQ7MkZBR1EsOEJBQThCO2tCQWpCMUMsU0FBUzsrQkFDSSwwQkFBMEIsWUFDMUI7Ozs7Ozs7Ozs7OztLQVlUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25Jbml0LCBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2xlc0ZpZWxkQWJzdHJhY3QgfSBmcm9tICcuL2ZpZWxkLmFic3RyYWN0JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrbGVzLWZvcm0tYnV0dG9uLWNoZWNrZXInLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gICAgICAgIDxrbGVzLWJ1dHRvbi1jaGVja2VyXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJmaWVsZC5pZFwiIFtjbGFzc0J1dHRvbl09XCJmaWVsZC5uZ0NsYXNzXCJcbiAgICAgICAgICAgIFtuYW1lXT1cImZpZWxkLm5hbWVcIiBbbGFiZWxdPVwiZmllbGQubGFiZWxcIiBbY29sb3JdPVwiZmllbGQuY29sb3JcIlxuICAgICAgICAgICAgW2ljb25dPVwiZmllbGQuaWNvblwiXG4gICAgICAgICAgICBbaWNvblN2Z109XCJmaWVsZC5pY29uU3ZnXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIlxuICAgICAgICAgICAgW3Rvb2x0aXBdPVwiZmllbGQudG9vbHRpcFwiPlxuICAgICAgICA8L2tsZXMtYnV0dG9uLWNoZWNrZXI+XG4gICAgPC9kaXY+XG4gICAgYCxcbiAgICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEtsZXNGb3JtQnV0dG9uQ2hlY2tlckNvbXBvbmVudCBleHRlbmRzIEtsZXNGaWVsZEFic3RyYWN0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,42 @@
1
+ import { Component } from '@angular/core';
2
+ import { KlesFieldAbstract } from './field.abstract';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "../forms/buttonfile-control.component";
6
+ export class KlesFormButtonFileComponent extends KlesFieldAbstract {
7
+ ngOnInit() {
8
+ super.ngOnInit();
9
+ }
10
+ ngOnDestroy() {
11
+ super.ngOnDestroy();
12
+ }
13
+ }
14
+ KlesFormButtonFileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormButtonFileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
15
+ KlesFormButtonFileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: KlesFormButtonFileComponent, selector: "kles-form-button-file", usesInheritance: true, ngImport: i0, template: `
16
+ <div [formGroup]="group">
17
+ <kles-button-file
18
+ [attr.id]="field.id" [classButton]="field.ngClass"
19
+ [name]="field.name" [label]="field.label" [color]="field.color"
20
+ [icon]="field.icon"
21
+ [iconSvg]="field.iconSvg"
22
+ [value]="field.value"
23
+ [formControlName]="field.name">
24
+ </kles-button-file>
25
+ </div>
26
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.KlesButtonFileComponent, selector: "kles-button-file" }] });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormButtonFileComponent, decorators: [{
28
+ type: Component,
29
+ args: [{ selector: 'kles-form-button-file', template: `
30
+ <div [formGroup]="group">
31
+ <kles-button-file
32
+ [attr.id]="field.id" [classButton]="field.ngClass"
33
+ [name]="field.name" [label]="field.label" [color]="field.color"
34
+ [icon]="field.icon"
35
+ [iconSvg]="field.iconSvg"
36
+ [value]="field.value"
37
+ [formControlName]="field.name">
38
+ </kles-button-file>
39
+ </div>
40
+ ` }]
41
+ }] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uZmlsZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9saWIvZmllbGRzL2J1dHRvbmZpbGUtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQWtCckQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGlCQUFpQjtJQUU5RCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7O3dIQVJRLDJCQUEyQjs0R0FBM0IsMkJBQTJCLG9GQWQxQjs7Ozs7Ozs7Ozs7S0FXVDsyRkFHUSwyQkFBMkI7a0JBaEJ2QyxTQUFTOytCQUNJLHVCQUF1QixZQUN2Qjs7Ozs7Ozs7Ozs7S0FXVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCwgQ29tcG9uZW50LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtsZXNGaWVsZEFic3RyYWN0IH0gZnJvbSAnLi9maWVsZC5hYnN0cmFjdCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2xlcy1mb3JtLWJ1dHRvbi1maWxlJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJncm91cFwiPlxuICAgICAgICA8a2xlcy1idXR0b24tZmlsZVxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiZmllbGQuaWRcIiBbY2xhc3NCdXR0b25dPVwiZmllbGQubmdDbGFzc1wiIFxuICAgICAgICAgICAgW25hbWVdPVwiZmllbGQubmFtZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiIFtjb2xvcl09XCJmaWVsZC5jb2xvclwiIFxuICAgICAgICAgICAgW2ljb25dPVwiZmllbGQuaWNvblwiXG4gICAgICAgICAgICBbaWNvblN2Z109XCJmaWVsZC5pY29uU3ZnXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIj5cbiAgICAgICAgPC9rbGVzLWJ1dHRvbi1maWxlPlxuICAgIDwvZGl2PlxuICAgIGAsXG4gICAgc3R5bGVzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBLbGVzRm9ybUJ1dHRvbkZpbGVDb21wb25lbnQgZXh0ZW5kcyBLbGVzRmllbGRBYnN0cmFjdCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,50 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component } from '@angular/core';
3
+ import { FieldMapper } from '../decorators/component.decorator';
4
+ import { EnumType } from '../enums/type.enum';
5
+ import { KlesFieldAbstract } from './field.abstract';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "@angular/flex-layout/extended";
10
+ import * as i4 from "@angular/material/form-field";
11
+ import * as i5 from "@angular/material/tooltip";
12
+ import * as i6 from "@angular/material/checkbox";
13
+ import * as i7 from "@ngx-translate/core";
14
+ let KlesFormCheckboxComponent = class KlesFormCheckboxComponent extends KlesFieldAbstract {
15
+ ngOnInit() { super.ngOnInit(); }
16
+ ngOnDestroy() {
17
+ super.ngOnDestroy();
18
+ }
19
+ };
20
+ KlesFormCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
21
+ KlesFormCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: KlesFormCheckboxComponent, selector: "kles-form-checkbox", usesInheritance: true, ngImport: i0, template: `
22
+ <div [formGroup]="group" >
23
+ <mat-checkbox matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="field.ngClass" [indeterminate]="field.indeterminate" [color]="field.color" [formControlName]="field.name">{{field.label | translate}}</mat-checkbox>
24
+ <ng-container *ngFor="let validation of field.validations;" ngProjectAs="mat-error">
25
+ <mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message}}</mat-error>
26
+ </ng-container>
27
+ <ng-container *ngFor="let validation of field.asyncValidations;" ngProjectAs="mat-error">
28
+ <mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message}}</mat-error>
29
+ </ng-container>
30
+ </div>
31
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
32
+ KlesFormCheckboxComponent = __decorate([
33
+ FieldMapper({ type: EnumType.checkbox })
34
+ ], KlesFormCheckboxComponent);
35
+ export { KlesFormCheckboxComponent };
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormCheckboxComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'kles-form-checkbox', template: `
39
+ <div [formGroup]="group" >
40
+ <mat-checkbox matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="field.ngClass" [indeterminate]="field.indeterminate" [color]="field.color" [formControlName]="field.name">{{field.label | translate}}</mat-checkbox>
41
+ <ng-container *ngFor="let validation of field.validations;" ngProjectAs="mat-error">
42
+ <mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message}}</mat-error>
43
+ </ng-container>
44
+ <ng-container *ngFor="let validation of field.asyncValidations;" ngProjectAs="mat-error">
45
+ <mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message}}</mat-error>
46
+ </ng-container>
47
+ </div>
48
+ ` }]
49
+ }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xlcy1tYXRlcmlhbC1keW5hbWljZm9ybXMvc3JjL2xpYi9maWVsZHMvY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7SUFrQnhDLHlCQUF5QixTQUF6Qix5QkFBMEIsU0FBUSxpQkFBaUI7SUFDNUQsUUFBUSxLQUFLLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFaEMsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO0NBQ0osQ0FBQTtzSEFOWSx5QkFBeUI7MEdBQXpCLHlCQUF5QixpRkFieEI7Ozs7Ozs7Ozs7Q0FVYjtBQUdZLHlCQUF5QjtJQWhCckMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztHQWdCNUIseUJBQXlCLENBTXJDO1NBTlkseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBZnJDLFNBQVM7K0JBQ0ksb0JBQW9CLFlBQ3BCOzs7Ozs7Ozs7O0NBVWIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkTWFwcGVyIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9jb21wb25lbnQuZGVjb3JhdG9yJztcbmltcG9ydCB7IEVudW1UeXBlIH0gZnJvbSAnLi4vZW51bXMvdHlwZS5lbnVtJztcbmltcG9ydCB7IElLbGVzRmllbGRDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ZpZWxkLmNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgS2xlc0ZpZWxkQWJzdHJhY3QgfSBmcm9tICcuL2ZpZWxkLmFic3RyYWN0JztcblxuQEZpZWxkTWFwcGVyKHsgdHlwZTogRW51bVR5cGUuY2hlY2tib3ggfSlcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2xlcy1mb3JtLWNoZWNrYm94JyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJncm91cFwiID4gIFxuICAgICAgICA8bWF0LWNoZWNrYm94IG1hdFRvb2x0aXA9XCJ7e2ZpZWxkLnRvb2x0aXB9fVwiIFthdHRyLmlkXT1cImZpZWxkLmlkXCIgW25nQ2xhc3NdPVwiZmllbGQubmdDbGFzc1wiIFtpbmRldGVybWluYXRlXT1cImZpZWxkLmluZGV0ZXJtaW5hdGVcIiBbY29sb3JdPVwiZmllbGQuY29sb3JcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIj57e2ZpZWxkLmxhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1jaGVja2JveD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdmFsaWRhdGlvbiBvZiBmaWVsZC52YWxpZGF0aW9ucztcIiBuZ1Byb2plY3RBcz1cIm1hdC1lcnJvclwiPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImdyb3VwLmdldChmaWVsZC5uYW1lKS5oYXNFcnJvcih2YWxpZGF0aW9uLm5hbWUpXCI+e3t2YWxpZGF0aW9uLm1lc3NhZ2V9fTwvbWF0LWVycm9yPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdmFsaWRhdGlvbiBvZiBmaWVsZC5hc3luY1ZhbGlkYXRpb25zO1wiIG5nUHJvamVjdEFzPVwibWF0LWVycm9yXCI+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZ3JvdXAuZ2V0KGZpZWxkLm5hbWUpLmhhc0Vycm9yKHZhbGlkYXRpb24ubmFtZSlcIj57e3ZhbGlkYXRpb24ubWVzc2FnZX19PC9tYXQtZXJyb3I+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuYCxcbiAgICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEtsZXNGb3JtQ2hlY2tib3hDb21wb25lbnQgZXh0ZW5kcyBLbGVzRmllbGRBYnN0cmFjdCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBuZ09uSW5pdCgpIHsgc3VwZXIubmdPbkluaXQoKTsgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,41 @@
1
+ import { Component } from "@angular/core";
2
+ import { KlesFieldAbstract } from "./field.abstract";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@angular/flex-layout/extended";
7
+ import * as i4 from "@angular/material/icon";
8
+ import * as i5 from "@angular/material/chips";
9
+ import * as i6 from "@angular/material/tooltip";
10
+ import * as i7 from "../pipe/transform.pipe";
11
+ export class KlesFormChipComponent extends KlesFieldAbstract {
12
+ ngOnInit() { super.ngOnInit(); }
13
+ ngOnDestroy() {
14
+ super.ngOnDestroy();
15
+ }
16
+ }
17
+ KlesFormChipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormChipComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
18
+ KlesFormChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: KlesFormChipComponent, selector: "kles-form-chip", usesInheritance: true, ngImport: i0, template: `
19
+ <div [formGroup]="group">
20
+ <mat-chip-list>
21
+ <mat-chip [color]="field.color" matTooltip="{{field.tooltip}}" [attr.id]="field.id" selected [ngClass]="field.ngClass" [ngStyle]="field.ngStyle">
22
+ <mat-icon *ngIf="field.icon">{{field.icon}}</mat-icon>
23
+ {{group.controls[field.name].value | klesTransform:field.pipeTransform}}
24
+ </mat-chip>
25
+ </mat-chip-list>
26
+ </div>
27
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i3.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i5.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i7.KlesTransformPipe, name: "klesTransform" }] });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormChipComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: "kles-form-chip", template: `
31
+ <div [formGroup]="group">
32
+ <mat-chip-list>
33
+ <mat-chip [color]="field.color" matTooltip="{{field.tooltip}}" [attr.id]="field.id" selected [ngClass]="field.ngClass" [ngStyle]="field.ngStyle">
34
+ <mat-icon *ngIf="field.icon">{{field.icon}}</mat-icon>
35
+ {{group.controls[field.name].value | klesTransform:field.pipeTransform}}
36
+ </mat-chip>
37
+ </mat-chip-list>
38
+ </div>
39
+ ` }]
40
+ }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGVzLW1hdGVyaWFsLWR5bmFtaWNmb3Jtcy9zcmMvbGliL2ZpZWxkcy9jaGlwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7O0FBZ0JyRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsaUJBQWlCO0lBQ3hELFFBQVEsS0FBSyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWhDLFdBQVc7UUFDUCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7a0hBTFEscUJBQXFCO3NHQUFyQixxQkFBcUIsNkVBWnBCOzs7Ozs7Ozs7Q0FTYjsyRkFHWSxxQkFBcUI7a0JBZGpDLFNBQVM7K0JBQ0ksZ0JBQWdCLFlBQ2hCOzs7Ozs7Ozs7Q0FTYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgS2xlc0ZpZWxkQWJzdHJhY3QgfSBmcm9tIFwiLi9maWVsZC5hYnN0cmFjdFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJrbGVzLWZvcm0tY2hpcFwiLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCI+ICBcbiAgICAgICAgPG1hdC1jaGlwLWxpc3Q+XG4gICAgICAgICAgICA8bWF0LWNoaXAgW2NvbG9yXT1cImZpZWxkLmNvbG9yXCIgbWF0VG9vbHRpcD1cInt7ZmllbGQudG9vbHRpcH19XCIgW2F0dHIuaWRdPVwiZmllbGQuaWRcIiBzZWxlY3RlZCBbbmdDbGFzc109XCJmaWVsZC5uZ0NsYXNzXCIgW25nU3R5bGVdPVwiZmllbGQubmdTdHlsZVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImZpZWxkLmljb25cIj57e2ZpZWxkLmljb259fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAge3tncm91cC5jb250cm9sc1tmaWVsZC5uYW1lXS52YWx1ZSB8IGtsZXNUcmFuc2Zvcm06ZmllbGQucGlwZVRyYW5zZm9ybX19XG4gICAgICAgICAgICA8L21hdC1jaGlwPlxuICAgICAgICA8L21hdC1jaGlwLWxpc3Q+XG4gICAgPC9kaXY+XG5gLFxuICAgIHN0eWxlczogW11cbn0pXG5leHBvcnQgY2xhc3MgS2xlc0Zvcm1DaGlwQ29tcG9uZW50IGV4dGVuZHMgS2xlc0ZpZWxkQWJzdHJhY3QgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgbmdPbkluaXQoKSB7IHN1cGVyLm5nT25Jbml0KCk7IH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,84 @@
1
+ import { KlesFieldAbstract } from './field.abstract';
2
+ import { Component } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@angular/flex-layout/extended";
7
+ import * as i4 from "@angular/material/form-field";
8
+ import * as i5 from "@angular/material/input";
9
+ import * as i6 from "@angular/material/tooltip";
10
+ import * as i7 from "ngx-color-picker";
11
+ import * as i8 from "@ngx-translate/core";
12
+ export class KlesFormColorComponent extends KlesFieldAbstract {
13
+ ngOnInit() { super.ngOnInit(); }
14
+ invertColor(hex, bw) {
15
+ if (hex.indexOf('#') === 0) {
16
+ hex = hex.slice(1);
17
+ }
18
+ // convert 3-digit hex to 6-digits.
19
+ if (hex.length === 3) {
20
+ hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
21
+ }
22
+ if (hex.length !== 6) {
23
+ return '#000000';
24
+ }
25
+ let r = parseInt(hex.slice(0, 2), 16);
26
+ let g = parseInt(hex.slice(2, 4), 16);
27
+ let b = parseInt(hex.slice(4, 6), 16);
28
+ if (bw) {
29
+ return (r * 0.299 + g * 0.587 + b * 0.114) > 186
30
+ ? '#000000'
31
+ : '#FFFFFF';
32
+ }
33
+ // invert color components
34
+ const r1 = (255 - r).toString(16);
35
+ const g1 = (255 - g).toString(16);
36
+ const b1 = (255 - b).toString(16);
37
+ // pad each with zeros and return
38
+ return "#" + r1 + g1 + b1;
39
+ }
40
+ ngOnDestroy() {
41
+ super.ngOnDestroy();
42
+ }
43
+ }
44
+ KlesFormColorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormColorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
45
+ KlesFormColorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: KlesFormColorComponent, selector: "kles-form-color", usesInheritance: true, ngImport: i0, template: `
46
+ <mat-form-field [formGroup]="group" class="form-element">
47
+ <input matInput matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="field.ngClass" [placeholder]="field.placeholder | translate"
48
+ [colorPicker]="group.get(field.name).value"
49
+ [value]="group.get(field.name).value"
50
+ (colorPickerChange)="group.get(field.name).setValue($event)"
51
+ class="colorPicker"
52
+ [style.background]="group.get(field.name).value"
53
+ [style.color]="invertColor(group.get(field.name).value,true)"
54
+ [formControlName]="field.name">
55
+ <ng-container *ngFor="let validation of field.validations;" ngProjectAs="mat-error">
56
+ <mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message | translate}}</mat-error>
57
+ </ng-container>
58
+ <ng-container *ngFor="let validation of field.asyncValidations;" ngProjectAs="mat-error">
59
+ <mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message | translate}}</mat-error>
60
+ </ng-container>
61
+ </mat-form-field>
62
+ `, isInline: true, styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i7.ColorPickerDirective, selector: "[colorPicker]", inputs: ["cpWidth", "cpHeight", "cpToggle", "cpDisabled", "cpIgnoredElements", "cpFallbackColor", "cpColorMode", "cpCmykEnabled", "cpOutputFormat", "cpAlphaChannel", "cpDisableInput", "cpDialogDisplay", "cpSaveClickOutside", "cpCloseClickOutside", "cpUseRootViewContainer", "cpPosition", "cpPositionOffset", "cpPositionRelativeToArrow", "cpOKButton", "cpOKButtonText", "cpOKButtonClass", "cpCancelButton", "cpCancelButtonText", "cpCancelButtonClass", "cpPresetLabel", "cpPresetColorsClass", "cpMaxPresetColorsLength", "cpPresetEmptyMessage", "cpPresetEmptyMessageClass", "cpAddColorButton", "cpAddColorButtonText", "cpAddColorButtonClass", "cpRemoveColorButtonClass", "colorPicker", "cpPresetColors"], outputs: ["cpInputChange", "cpToggleChange", "cpSliderChange", "cpSliderDragEnd", "cpSliderDragStart", "colorPickerOpen", "colorPickerClose", "colorPickerCancel", "colorPickerSelect", "colorPickerChange", "cpCmykColorChange", "cpPresetColorsChange"], exportAs: ["ngxColorPicker"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormColorComponent, decorators: [{
64
+ type: Component,
65
+ args: [{ selector: 'kles-form-color', template: `
66
+ <mat-form-field [formGroup]="group" class="form-element">
67
+ <input matInput matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="field.ngClass" [placeholder]="field.placeholder | translate"
68
+ [colorPicker]="group.get(field.name).value"
69
+ [value]="group.get(field.name).value"
70
+ (colorPickerChange)="group.get(field.name).setValue($event)"
71
+ class="colorPicker"
72
+ [style.background]="group.get(field.name).value"
73
+ [style.color]="invertColor(group.get(field.name).value,true)"
74
+ [formControlName]="field.name">
75
+ <ng-container *ngFor="let validation of field.validations;" ngProjectAs="mat-error">
76
+ <mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message | translate}}</mat-error>
77
+ </ng-container>
78
+ <ng-container *ngFor="let validation of field.asyncValidations;" ngProjectAs="mat-error">
79
+ <mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message | translate}}</mat-error>
80
+ </ng-container>
81
+ </mat-form-field>
82
+ `, styles: ["mat-form-field{width:100%}\n"] }]
83
+ }] });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xlcy1tYXRlcmlhbC1keW5hbWljZm9ybXMvc3JjL2xpYi9maWVsZHMvY29sb3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBVSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUF1QjdELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxpQkFBaUI7SUFHekQsUUFBUSxLQUFLLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFaEMsV0FBVyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ2YsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0QjtRQUNELG1DQUFtQztRQUNuQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2xCLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3RDtRQUNELElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbEIsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFDRCxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLEVBQUUsRUFBRTtZQUNKLE9BQU8sQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUc7Z0JBQzVDLENBQUMsQ0FBQyxTQUFTO2dCQUNYLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDbkI7UUFDRCwwQkFBMEI7UUFDMUIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEMsaUNBQWlDO1FBQ2pDLE9BQU8sR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7O21IQWxDUSxzQkFBc0I7dUdBQXRCLHNCQUFzQiw4RUFwQnJCOzs7Ozs7Ozs7Ozs7Ozs7OztLQWlCVDsyRkFHUSxzQkFBc0I7a0JBdEJsQyxTQUFTOytCQUNJLGlCQUFpQixZQUNqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLbGVzRmllbGRBYnN0cmFjdCB9IGZyb20gJy4vZmllbGQuYWJzdHJhY3QnO1xuaW1wb3J0IHsgT25Jbml0LCBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrbGVzLWZvcm0tY29sb3InLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPG1hdC1mb3JtLWZpZWxkIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIiBjbGFzcz1cImZvcm0tZWxlbWVudFwiPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgbWF0VG9vbHRpcD1cInt7ZmllbGQudG9vbHRpcH19XCIgW2F0dHIuaWRdPVwiZmllbGQuaWRcIiBbbmdDbGFzc109XCJmaWVsZC5uZ0NsYXNzXCIgW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtjb2xvclBpY2tlcl09XCJncm91cC5nZXQoZmllbGQubmFtZSkudmFsdWVcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImdyb3VwLmdldChmaWVsZC5uYW1lKS52YWx1ZVwiXG4gICAgICAgICAgICAoY29sb3JQaWNrZXJDaGFuZ2UpPVwiZ3JvdXAuZ2V0KGZpZWxkLm5hbWUpLnNldFZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgY2xhc3M9XCJjb2xvclBpY2tlclwiXG4gICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJncm91cC5nZXQoZmllbGQubmFtZSkudmFsdWVcIlxuICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImludmVydENvbG9yKGdyb3VwLmdldChmaWVsZC5uYW1lKS52YWx1ZSx0cnVlKVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdmFsaWRhdGlvbiBvZiBmaWVsZC52YWxpZGF0aW9ucztcIiBuZ1Byb2plY3RBcz1cIm1hdC1lcnJvclwiPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImdyb3VwLmdldChmaWVsZC5uYW1lKS5oYXNFcnJvcih2YWxpZGF0aW9uLm5hbWUpXCI+e3t2YWxpZGF0aW9uLm1lc3NhZ2UgfCB0cmFuc2xhdGV9fTwvbWF0LWVycm9yPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdmFsaWRhdGlvbiBvZiBmaWVsZC5hc3luY1ZhbGlkYXRpb25zO1wiIG5nUHJvamVjdEFzPVwibWF0LWVycm9yXCI+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZ3JvdXAuZ2V0KGZpZWxkLm5hbWUpLmhhc0Vycm9yKHZhbGlkYXRpb24ubmFtZSlcIj57e3ZhbGlkYXRpb24ubWVzc2FnZSB8IHRyYW5zbGF0ZX19PC9tYXQtZXJyb3I+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgYCxcbiAgICBzdHlsZXM6IFsnbWF0LWZvcm0tZmllbGQge3dpZHRoOiBjYWxjKDEwMCUpfSddXG59KVxuZXhwb3J0IGNsYXNzIEtsZXNGb3JtQ29sb3JDb21wb25lbnQgZXh0ZW5kcyBLbGVzRmllbGRBYnN0cmFjdCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuXG4gICAgbmdPbkluaXQoKSB7IHN1cGVyLm5nT25Jbml0KCk7IH1cblxuICAgIGludmVydENvbG9yKGhleCwgYncpOiBzdHJpbmcge1xuICAgICAgICBpZiAoaGV4LmluZGV4T2YoJyMnKSA9PT0gMCkge1xuICAgICAgICAgICAgaGV4ID0gaGV4LnNsaWNlKDEpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnZlcnQgMy1kaWdpdCBoZXggdG8gNi1kaWdpdHMuXG4gICAgICAgIGlmIChoZXgubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICBoZXggPSBoZXhbMF0gKyBoZXhbMF0gKyBoZXhbMV0gKyBoZXhbMV0gKyBoZXhbMl0gKyBoZXhbMl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhleC5sZW5ndGggIT09IDYpIHtcbiAgICAgICAgICAgIHJldHVybiAnIzAwMDAwMCc7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHIgPSBwYXJzZUludChoZXguc2xpY2UoMCwgMiksIDE2KTtcbiAgICAgICAgbGV0IGcgPSBwYXJzZUludChoZXguc2xpY2UoMiwgNCksIDE2KTtcbiAgICAgICAgbGV0IGIgPSBwYXJzZUludChoZXguc2xpY2UoNCwgNiksIDE2KTtcbiAgICAgICAgaWYgKGJ3KSB7XG4gICAgICAgICAgICByZXR1cm4gKHIgKiAwLjI5OSArIGcgKiAwLjU4NyArIGIgKiAwLjExNCkgPiAxODZcbiAgICAgICAgICAgICAgICA/ICcjMDAwMDAwJ1xuICAgICAgICAgICAgICAgIDogJyNGRkZGRkYnO1xuICAgICAgICB9XG4gICAgICAgIC8vIGludmVydCBjb2xvciBjb21wb25lbnRzXG4gICAgICAgIGNvbnN0IHIxID0gKDI1NSAtIHIpLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgY29uc3QgZzEgPSAoMjU1IC0gZykudG9TdHJpbmcoMTYpO1xuICAgICAgICBjb25zdCBiMSA9ICgyNTUgLSBiKS50b1N0cmluZygxNik7XG4gICAgICAgIC8vIHBhZCBlYWNoIHdpdGggemVyb3MgYW5kIHJldHVyblxuICAgICAgICByZXR1cm4gXCIjXCIgKyByMSArIGcxICsgYjE7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,52 @@
1
+ import { Component } from "@angular/core";
2
+ import { KlesFieldAbstract } from './field.abstract';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@angular/flex-layout/extended";
7
+ import * as i4 from "@angular/material/form-field";
8
+ import * as i5 from "@angular/material/input";
9
+ import * as i6 from "@angular/material/datepicker";
10
+ import * as i7 from "@angular/material/tooltip";
11
+ import * as i8 from "@ngx-translate/core";
12
+ export class KlesFormDateComponent extends KlesFieldAbstract {
13
+ ngOnInit() { super.ngOnInit(); }
14
+ ngOnDestroy() {
15
+ super.ngOnDestroy();
16
+ }
17
+ }
18
+ KlesFormDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormDateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
19
+ KlesFormDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: KlesFormDateComponent, selector: "kles-form-datepicker", usesInheritance: true, ngImport: i0, template: `
20
+ <mat-form-field class="demo-full-width margin-top" [color]="field.color" [formGroup]="group">
21
+ <input matInput matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="field.ngClass" [matDatepicker]="picker" [formControlName]="field.name" [placeholder]="field.placeholder | translate">
22
+ <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
23
+ <mat-datepicker #picker></mat-datepicker>
24
+ <mat-hint></mat-hint>
25
+
26
+ <ng-container *ngFor="let validation of field.validations;" ngProjectAs="mat-error">
27
+ <mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message | translate}}</mat-error>
28
+ </ng-container>
29
+ <ng-container *ngFor="let validation of field.asyncValidations;" ngProjectAs="mat-error">
30
+ <mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message | translate}}</mat-error>
31
+ </ng-container>
32
+ </mat-form-field>
33
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFormDateComponent, decorators: [{
35
+ type: Component,
36
+ args: [{ selector: "kles-form-datepicker", template: `
37
+ <mat-form-field class="demo-full-width margin-top" [color]="field.color" [formGroup]="group">
38
+ <input matInput matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="field.ngClass" [matDatepicker]="picker" [formControlName]="field.name" [placeholder]="field.placeholder | translate">
39
+ <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
40
+ <mat-datepicker #picker></mat-datepicker>
41
+ <mat-hint></mat-hint>
42
+
43
+ <ng-container *ngFor="let validation of field.validations;" ngProjectAs="mat-error">
44
+ <mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message | translate}}</mat-error>
45
+ </ng-container>
46
+ <ng-container *ngFor="let validation of field.asyncValidations;" ngProjectAs="mat-error">
47
+ <mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message | translate}}</mat-error>
48
+ </ng-container>
49
+ </mat-form-field>
50
+ ` }]
51
+ }] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGVzLW1hdGVyaWFsLWR5bmFtaWNmb3Jtcy9zcmMvbGliL2ZpZWxkcy9kYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7OztBQXFCckQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGlCQUFpQjtJQUN4RCxRQUFRLEtBQUssS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVoQyxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7O2tIQUxRLHFCQUFxQjtzR0FBckIscUJBQXFCLG1GQWpCcEI7Ozs7Ozs7Ozs7Ozs7O0tBY1Q7MkZBR1EscUJBQXFCO2tCQW5CakMsU0FBUzsrQkFDSSxzQkFBc0IsWUFDdEI7Ozs7Ozs7Ozs7Ozs7O0tBY1QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEtsZXNGaWVsZEFic3RyYWN0IH0gZnJvbSAnLi9maWVsZC5hYnN0cmFjdCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcImtsZXMtZm9ybS1kYXRlcGlja2VyXCIsXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJkZW1vLWZ1bGwtd2lkdGggbWFyZ2luLXRvcFwiIFtjb2xvcl09XCJmaWVsZC5jb2xvclwiIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IG1hdFRvb2x0aXA9XCJ7e2ZpZWxkLnRvb2x0aXB9fVwiIFthdHRyLmlkXT1cImZpZWxkLmlkXCIgW25nQ2xhc3NdPVwiZmllbGQubmdDbGFzc1wiIFttYXREYXRlcGlja2VyXT1cInBpY2tlclwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcj48L21hdC1kYXRlcGlja2VyPlxuICAgICAgICA8bWF0LWhpbnQ+PC9tYXQtaGludD5cbiAgICAgICAgXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZhbGlkYXRpb24gb2YgZmllbGQudmFsaWRhdGlvbnM7XCIgbmdQcm9qZWN0QXM9XCJtYXQtZXJyb3JcIj5cbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJncm91cC5nZXQoZmllbGQubmFtZSkuaGFzRXJyb3IodmFsaWRhdGlvbi5uYW1lKVwiPnt7dmFsaWRhdGlvbi5tZXNzYWdlIHwgdHJhbnNsYXRlfX08L21hdC1lcnJvcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZhbGlkYXRpb24gb2YgZmllbGQuYXN5bmNWYWxpZGF0aW9ucztcIiBuZ1Byb2plY3RBcz1cIm1hdC1lcnJvclwiPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImdyb3VwLmdldChmaWVsZC5uYW1lKS5oYXNFcnJvcih2YWxpZGF0aW9uLm5hbWUpXCI+e3t2YWxpZGF0aW9uLm1lc3NhZ2UgfCB0cmFuc2xhdGV9fTwvbWF0LWVycm9yPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICBgLFxuICAgIHN0eWxlczogW11cbn0pXG5leHBvcnQgY2xhc3MgS2xlc0Zvcm1EYXRlQ29tcG9uZW50IGV4dGVuZHMgS2xlc0ZpZWxkQWJzdHJhY3QgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgbmdPbkluaXQoKSB7IHN1cGVyLm5nT25Jbml0KCk7IH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,66 @@
1
+ import { Directive, HostBinding } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { takeUntil } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ export class KlesFieldAbstract {
6
+ constructor(viewRef) {
7
+ this.viewRef = viewRef;
8
+ this._onDestroy = new Subject();
9
+ }
10
+ ngOnInit() {
11
+ // this.applyPipeTransform();
12
+ if (this.field.valueChanges) {
13
+ this.field.valueChanges(this.field, this.group, this.siblingFields);
14
+ }
15
+ this.group.controls[this.field.name]?.valueChanges
16
+ .pipe(takeUntil(this._onDestroy))
17
+ .subscribe(val => {
18
+ if (this.field.valueChanges) {
19
+ this.field.valueChanges(this.field, this.group, this.siblingFields, val);
20
+ }
21
+ // this.applyPipeTransform();
22
+ });
23
+ if (this.field.directive) {
24
+ this.directive = new this.field.directive(this.viewRef, this);
25
+ this.directive.ngOnInit();
26
+ }
27
+ }
28
+ ngAfterViewInit() {
29
+ }
30
+ ngOnDestroy() {
31
+ this.directive?.ngOnDestroy();
32
+ this._onDestroy.next();
33
+ this._onDestroy.complete();
34
+ }
35
+ applyPipeTransform() {
36
+ if (this.group && this.field) {
37
+ const control = this.group.controls[this.field.name];
38
+ if (control) {
39
+ const val = this.group.controls[this.field.name].value;
40
+ if (this.field.pipeTransform) {
41
+ this.field.pipeTransform.forEach(p => {
42
+ let pipeVal = control.value;
43
+ if (p.options) {
44
+ p.options.forEach(opt => {
45
+ pipeVal = p.pipe.transform(val, opt);
46
+ });
47
+ }
48
+ else {
49
+ pipeVal = p.pipe.transform(val);
50
+ }
51
+ control.patchValue(pipeVal, { onlySelf: true, emitEvent: false });
52
+ });
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }
58
+ KlesFieldAbstract.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFieldAbstract, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
59
+ KlesFieldAbstract.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.4", type: KlesFieldAbstract, host: { properties: { "attr.klesDirective": "this.directive" } }, ngImport: i0 });
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: KlesFieldAbstract, decorators: [{
61
+ type: Directive
62
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { directive: [{
63
+ type: HostBinding,
64
+ args: ['attr.klesDirective']
65
+ }] } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuYWJzdHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGVzLW1hdGVyaWFsLWR5bmFtaWNmb3Jtcy9zcmMvbGliL2ZpZWxkcy9maWVsZC5hYnN0cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQW9DLFNBQVMsRUFBb0IsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUczQyxNQUFNLE9BQWdCLGlCQUFpQjtJQVNuQyxZQUFzQixPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUZyQyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUkzQyxDQUFDO0lBRUQsUUFBUTtRQUNKLDZCQUE2QjtRQUM3QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDdkU7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLFlBQVk7YUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDaEMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRTtnQkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDNUU7WUFDRCw2QkFBNkI7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFUCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDN0I7SUFDTCxDQUFDO0lBRUQsZUFBZTtJQUVmLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3ZELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDakMsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQzt3QkFDNUIsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFOzRCQUNYLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dDQUNwQixPQUFPLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDOzRCQUN6QyxDQUFDLENBQUMsQ0FBQzt5QkFDTjs2QkFBTTs0QkFDSCxPQUFPLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7eUJBQ25DO3dCQUNELE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztvQkFDdEUsQ0FBQyxDQUFDLENBQUM7aUJBQ047YUFDSjtTQUNKO0lBQ0wsQ0FBQzs7OEdBaEVpQixpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUR0QyxTQUFTO3VHQU02QixTQUFTO3NCQUEzQyxXQUFXO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElLbGVzRmllbGQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJS2xlc0ZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9maWVsZC5jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBLbGVzRmllbGRBYnN0cmFjdCBpbXBsZW1lbnRzIElLbGVzRmllbGQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBmaWVsZDogSUtsZXNGaWVsZENvbmZpZztcbiAgICBncm91cDogVW50eXBlZEZvcm1Hcm91cDtcbiAgICBzaWJsaW5nRmllbGRzOiBJS2xlc0ZpZWxkQ29uZmlnW107XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIua2xlc0RpcmVjdGl2ZScpIGRpcmVjdGl2ZTtcblxuICAgIHByb3RlY3RlZCBfb25EZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB2aWV3UmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG5cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gdGhpcy5hcHBseVBpcGVUcmFuc2Zvcm0oKTtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQudmFsdWVDaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnZhbHVlQ2hhbmdlcyh0aGlzLmZpZWxkLCB0aGlzLmdyb3VwLCB0aGlzLnNpYmxpbmdGaWVsZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ncm91cC5jb250cm9sc1t0aGlzLmZpZWxkLm5hbWVdPy52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkLnZhbHVlQ2hhbmdlcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLnZhbHVlQ2hhbmdlcyh0aGlzLmZpZWxkLCB0aGlzLmdyb3VwLCB0aGlzLnNpYmxpbmdGaWVsZHMsIHZhbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHRoaXMuYXBwbHlQaXBlVHJhbnNmb3JtKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5maWVsZC5kaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlID0gbmV3IHRoaXMuZmllbGQuZGlyZWN0aXZlKHRoaXMudmlld1JlZiwgdGhpcyk7XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGl2ZS5uZ09uSW5pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlPy5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBhcHBseVBpcGVUcmFuc2Zvcm0oKSB7XG4gICAgICAgIGlmICh0aGlzLmdyb3VwICYmIHRoaXMuZmllbGQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGQubmFtZV07XG4gICAgICAgICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5maWVsZC5uYW1lXS52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5maWVsZC5waXBlVHJhbnNmb3JtKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQucGlwZVRyYW5zZm9ybS5mb3JFYWNoKHAgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBpcGVWYWwgPSBjb250cm9sLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHAub3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAub3B0aW9ucy5mb3JFYWNoKG9wdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpcGVWYWwgPSBwLnBpcGUudHJhbnNmb3JtKHZhbCwgb3B0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlwZVZhbCA9IHAucGlwZS50cmFuc2Zvcm0odmFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wucGF0Y2hWYWx1ZShwaXBlVmFsLCB7IG9ubHlTZWxmOiB0cnVlLCBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=