@3kles/kles-material-dynamicforms 17.0.0 → 17.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/esm2022/lib/directive/dynamic-component.directive.mjs +3 -3
  2. package/esm2022/lib/directive/dynamic-field.directive.mjs +3 -3
  3. package/esm2022/lib/dynamic-form.component.mjs +4 -4
  4. package/esm2022/lib/enums/button-attribute.enum.mjs +8 -0
  5. package/esm2022/lib/fields/array.component.mjs +3 -3
  6. package/esm2022/lib/fields/badge.component.mjs +3 -3
  7. package/esm2022/lib/fields/button-fab.component.mjs +48 -0
  8. package/esm2022/lib/fields/button-form.component.mjs +7 -5
  9. package/esm2022/lib/fields/button-icon.component.mjs +48 -0
  10. package/esm2022/lib/fields/button-mini-fab.component.mjs +48 -0
  11. package/esm2022/lib/fields/button-toogle-group.component.mjs +3 -3
  12. package/esm2022/lib/fields/buttonchecker-form.component.mjs +3 -3
  13. package/esm2022/lib/fields/buttonfile-form.component.mjs +3 -3
  14. package/esm2022/lib/fields/checkbox.component.mjs +3 -3
  15. package/esm2022/lib/fields/chip.component.mjs +3 -3
  16. package/esm2022/lib/fields/clear.component.mjs +3 -3
  17. package/esm2022/lib/fields/color.component.mjs +6 -6
  18. package/esm2022/lib/fields/date-time.component.mjs +6 -6
  19. package/esm2022/lib/fields/date.component.mjs +6 -6
  20. package/esm2022/lib/fields/field.abstract.mjs +3 -3
  21. package/esm2022/lib/fields/group.component.mjs +3 -3
  22. package/esm2022/lib/fields/icon.component.mjs +3 -3
  23. package/esm2022/lib/fields/input.clearable.component.mjs +6 -6
  24. package/esm2022/lib/fields/input.component.mjs +13 -7
  25. package/esm2022/lib/fields/label.component.mjs +3 -3
  26. package/esm2022/lib/fields/line-break.component.mjs +3 -3
  27. package/esm2022/lib/fields/link.component.mjs +3 -3
  28. package/esm2022/lib/fields/list-field.component.mjs +3 -3
  29. package/esm2022/lib/fields/radio.component.mjs +3 -3
  30. package/esm2022/lib/fields/range.component.mjs +6 -6
  31. package/esm2022/lib/fields/select.component.mjs +17 -7
  32. package/esm2022/lib/fields/select.lazy-search.component.mjs +6 -6
  33. package/esm2022/lib/fields/select.search.component.mjs +15 -7
  34. package/esm2022/lib/fields/selection-list.component.mjs +3 -3
  35. package/esm2022/lib/fields/slide-toggle.component.mjs +3 -3
  36. package/esm2022/lib/fields/text.component.mjs +3 -3
  37. package/esm2022/lib/fields/textarea.component.mjs +6 -6
  38. package/esm2022/lib/forms/button-control-base.mjs +82 -0
  39. package/esm2022/lib/forms/button-control.component.mjs +37 -78
  40. package/esm2022/lib/forms/buttonchecker-control.component.mjs +7 -7
  41. package/esm2022/lib/forms/buttonfile-control.component.mjs +7 -7
  42. package/esm2022/lib/forms/fab-control.component.mjs +60 -0
  43. package/esm2022/lib/forms/icon-button-control.component.mjs +55 -0
  44. package/esm2022/lib/forms/mini-fab-control.component.mjs +60 -0
  45. package/esm2022/lib/interfaces/field.config.interface.mjs +1 -1
  46. package/esm2022/lib/kles-material-dynamicforms.module.mjs +32 -12
  47. package/esm2022/lib/matcher/form-error.matcher.mjs +3 -3
  48. package/esm2022/lib/modules/material.module.mjs +4 -4
  49. package/esm2022/lib/pipe/array.pipe.mjs +3 -3
  50. package/esm2022/lib/pipe/transform.pipe.mjs +3 -3
  51. package/esm2022/public-api.mjs +9 -2
  52. package/fesm2022/3kles-kles-material-dynamicforms.mjs +552 -214
  53. package/fesm2022/3kles-kles-material-dynamicforms.mjs.map +1 -1
  54. package/lib/enums/button-attribute.enum.d.ts +6 -0
  55. package/lib/fields/button-fab.component.d.ts +9 -0
  56. package/lib/fields/button-icon.component.d.ts +9 -0
  57. package/lib/fields/button-mini-fab.component.d.ts +9 -0
  58. package/lib/forms/button-control-base.d.ts +39 -0
  59. package/lib/forms/button-control.component.d.ts +6 -35
  60. package/lib/forms/buttonchecker-control.component.d.ts +2 -2
  61. package/lib/forms/buttonfile-control.component.d.ts +2 -3
  62. package/lib/forms/fab-control.component.d.ts +7 -0
  63. package/lib/forms/icon-button-control.component.d.ts +7 -0
  64. package/lib/forms/mini-fab-control.component.d.ts +7 -0
  65. package/lib/interfaces/field.config.interface.d.ts +4 -0
  66. package/lib/kles-material-dynamicforms.module.d.ts +49 -44
  67. package/package.json +1 -1
  68. package/public-api.d.ts +8 -1
  69. package/esm2022/lib/fields/button-submit.component.mjs +0 -37
  70. package/lib/fields/button-submit.component.d.ts +0 -9
@@ -26,10 +26,10 @@ export class KlesComponentDirective {
26
26
  this.componentRef.instance.value = this.value;
27
27
  this.componentRef.instance.field = this.field;
28
28
  }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesComponentDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
30
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: KlesComponentDirective, selector: "[klesComponent]", inputs: { component: "component", value: "value", field: "field" }, usesOnChanges: true, ngImport: i0 }); }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesComponentDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
30
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: KlesComponentDirective, selector: "[klesComponent]", inputs: { component: "component", value: "value", field: "field" }, usesOnChanges: true, ngImport: i0 }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesComponentDirective, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesComponentDirective, decorators: [{
33
33
  type: Directive,
34
34
  args: [{
35
35
  selector: '[klesComponent]'
@@ -65,10 +65,10 @@ export class KlesDynamicFieldDirective {
65
65
  component.instance.siblingFields = this.siblingFields;
66
66
  return component;
67
67
  }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesDynamicFieldDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
69
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: KlesDynamicFieldDirective, selector: "[klesDynamicField]", inputs: { field: "field", group: "group", siblingFields: "siblingFields" }, usesOnChanges: true, ngImport: i0 }); }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesDynamicFieldDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
69
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: KlesDynamicFieldDirective, selector: "[klesDynamicField]", inputs: { field: "field", group: "group", siblingFields: "siblingFields" }, usesOnChanges: true, ngImport: i0 }); }
70
70
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesDynamicFieldDirective, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesDynamicFieldDirective, decorators: [{
72
72
  type: Directive,
73
73
  args: [{
74
74
  selector: '[klesDynamicField]'
@@ -149,8 +149,8 @@ export class KlesDynamicFormComponent {
149
149
  control.markAsTouched({ onlySelf: true });
150
150
  });
151
151
  }
152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesDynamicFormComponent, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
153
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.2", type: KlesDynamicFormComponent, selector: "app-kles-dynamic-form", inputs: { fields: "fields", validators: "validators", asyncValidators: "asyncValidators", direction: "direction" }, outputs: { submit: "submit", _onLoaded: "_onLoaded" }, exportAs: ["klesDynamicForm"], usesOnChanges: true, ngImport: i0, template: `
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesDynamicFormComponent, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
153
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: KlesDynamicFormComponent, selector: "app-kles-dynamic-form", inputs: { fields: "fields", validators: "validators", asyncValidators: "asyncValidators", direction: "direction" }, outputs: { submit: "submit", _onLoaded: "_onLoaded" }, exportAs: ["klesDynamicForm"], usesOnChanges: true, ngImport: i0, template: `
154
154
  <form class="{{orientationClass}}" [formGroup]="form" (submit)="onSubmit($event)">
155
155
  @for (field of fields; track field.name) {
156
156
  @if (field.visible !== false) {
@@ -162,7 +162,7 @@ export class KlesDynamicFormComponent {
162
162
  </form>
163
163
  `, isInline: true, styles: [".dynamic-form-column{display:flex;flex-direction:column}\n", ".dynamic-form-column>*{width:100%}\n", ".dynamic-form-row{display:inline-flex;flex-wrap:wrap;gap:10px}\n", ".dynamic-form-row>*{width:100%}\n", ".dynamic-form-row-item{margin-right:10px}\n", ".dynamic-form-column-item{margin-bottom:10px}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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: i2.KlesDynamicFieldDirective, selector: "[klesDynamicField]", inputs: ["field", "group", "siblingFields"] }] }); }
164
164
  }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesDynamicFormComponent, decorators: [{
165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesDynamicFormComponent, decorators: [{
166
166
  type: Component,
167
167
  args: [{ exportAs: 'klesDynamicForm', selector: 'app-kles-dynamic-form', template: `
168
168
  <form class="{{orientationClass}}" [formGroup]="form" (submit)="onSubmit($event)">
@@ -188,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
188
188
  }], direction: [{
189
189
  type: Input
190
190
  }] } });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9saWIvZHluYW1pYy1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQThHLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25MLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFJcEUsTUFBTSw0QkFBNEIsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0FBQ2hGLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUc7SUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDO0lBQ3hFLE9BQU8sNEJBQTRCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMvRCxDQUFDLENBQUM7QUFFRixNQUFNLGdDQUFnQyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0FBQy9FLGVBQWUsQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHO0lBQ3BDLE1BQU0sTUFBTSxHQUFHLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDO0lBQzNFLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQTZCRixNQUFNLE9BQU8sd0JBQXdCO0lBY2pDLElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQW9CLEVBQXNCO1FBQXRCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBakJqQyxXQUFNLEdBQXVCLEVBQUUsQ0FBQztRQUNoQyxlQUFVLEdBQWtDLEVBQUUsQ0FBQztRQUMvQyxvQkFBZSxHQUF1QyxFQUFFLENBQUM7UUFDbEUsNkNBQTZDO1FBQ25DLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNwRCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoQyxjQUFTLEdBQXFCLFFBQVEsQ0FBQztRQUdoRCxxQkFBZ0IsR0FBK0MscUJBQXFCLENBQUM7UUFDckYseUJBQW9CLEdBQXlELDBCQUEwQixDQUFDO0lBTTFELENBQUM7SUFHL0MsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO1FBQzlGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1FBQzVHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLG9DQUFvQztZQUNwQywyQkFBMkI7WUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDNUU7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUU7WUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7WUFDOUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUM7U0FDL0c7SUFFTCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVk7UUFDakIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNILElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekM7SUFDTCxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUdPLFVBQVU7UUFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTTtZQUNQLG9EQUFvRDthQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDYixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDbkMsT0FBTzthQUNWO1lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQ25FO2lCQUFNO2dCQUNILE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDN0M7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBdUIsRUFBRSxPQUF3QjtRQUNuRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLEtBQUssRUFBRTtZQUMvQixNQUFNLEtBQUssR0FBRyxPQUFvQixDQUFDO1lBQ25DLFFBQVE7WUFDUixPQUFPLEtBQUssQ0FBQztTQUNoQjthQUFNLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsS0FBSyxFQUFFO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLE9BQW9CLENBQUM7WUFDbkMsSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN2RCxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDakMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUMxQixPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO3FCQUNwRTt5QkFBTTt3QkFDSCxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDMUM7b0JBQ0QsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRSxDQUFDLENBQUMsQ0FBQzthQUNOO1lBQ0QsT0FBTyxLQUFLLENBQUM7U0FDaEI7YUFBTTtZQUNILHdFQUF3RTtZQUN4RSx1RkFBdUY7WUFDdkYsc0RBQXNEO1lBQ3RELHFDQUFxQztZQUNyQyxJQUFJO1lBQ0osT0FBTyxPQUFPLENBQUM7U0FDbEI7SUFFTCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQXVCO1FBQ3pDLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUNaLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3RzthQUFNO1lBQ0gsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZIO0lBQ0wsQ0FBQztJQUdPLFVBQVU7UUFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUV4QixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDbkMsT0FBTzthQUNWO1lBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUxQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFckUsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUtPLHFCQUFxQixDQUFDLFNBQTJCO1FBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBM0pRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDRSQXhCdkI7Ozs7Ozs7Ozs7S0FVVDs7MkZBY1Esd0JBQXdCO2tCQTNCcEMsU0FBUzsrQkFDSSxpQkFBaUIsWUFDakIsdUJBQXVCLFlBQ3ZCOzs7Ozs7Ozs7O0tBVVQ7dUZBZVEsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFFRSxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25Jbml0LCBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvckZuLCBBc3luY1ZhbGlkYXRvckZuLCBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUdyb3VwLCBGb3JtQ29udHJvbERpcmVjdGl2ZSwgRm9ybUNvbnRyb2xOYW1lIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29tcG9uZW50TWFwcGVyIH0gZnJvbSAnLi9kZWNvcmF0b3JzL2NvbXBvbmVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgRW51bVR5cGUgfSBmcm9tICcuL2VudW1zL3R5cGUuZW51bSc7XG5pbXBvcnQgeyBrbGVzRmllbGRDb250cm9sRmFjdG9yeSB9IGZyb20gJy4vZmFjdG9yaWVzL2ZpZWxkLmZhY3RvcnknO1xuaW1wb3J0IHsgSUtsZXNGaWVsZENvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy9maWVsZC5jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IElLbGVzVmFsaWRhdG9yIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3ZhbGlkYXRvci5pbnRlcmZhY2UnO1xuXG5jb25zdCBvcmlnaW5Gb3JtQ29udHJvbE5nT25DaGFuZ2VzID0gRm9ybUNvbnRyb2xEaXJlY3RpdmUucHJvdG90eXBlLm5nT25DaGFuZ2VzO1xuRm9ybUNvbnRyb2xEaXJlY3RpdmUucHJvdG90eXBlLm5nT25DaGFuZ2VzID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZm9ybS5uYXRpdmVFbGVtZW50ID0gdGhpcy52YWx1ZUFjY2Vzc29yLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIHJldHVybiBvcmlnaW5Gb3JtQ29udHJvbE5nT25DaGFuZ2VzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuXG5jb25zdCBvcmlnaW5Gb3JtQ29udHJvbE5hbWVOZ09uQ2hhbmdlcyA9IEZvcm1Db250cm9sTmFtZS5wcm90b3R5cGUubmdPbkNoYW5nZXM7XG5Gb3JtQ29udHJvbE5hbWUucHJvdG90eXBlLm5nT25DaGFuZ2VzID0gZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IG9yaWdpbkZvcm1Db250cm9sTmFtZU5nT25DaGFuZ2VzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgdGhpcy5jb250cm9sLm5hdGl2ZUVsZW1lbnQgPSB0aGlzLnZhbHVlQWNjZXNzb3IuX2VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIGV4cG9ydEFzOiAna2xlc0R5bmFtaWNGb3JtJyxcbiAgICBzZWxlY3RvcjogJ2FwcC1rbGVzLWR5bmFtaWMtZm9ybScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8Zm9ybSBjbGFzcz1cInt7b3JpZW50YXRpb25DbGFzc319XCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgKHN1Ym1pdCk9XCJvblN1Ym1pdCgkZXZlbnQpXCI+XG4gICAgICAgIEBmb3IgKGZpZWxkIG9mIGZpZWxkczsgdHJhY2sgZmllbGQubmFtZSkge1xuICAgICAgICAgICAgQGlmIChmaWVsZC52aXNpYmxlICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJ7e29yaWVudGF0aW9uSXRlbUNsYXNzfX1cIiBrbGVzRHluYW1pY0ZpZWxkIFtmaWVsZF09XCJmaWVsZFwiIFtncm91cF09XCJmb3JtXCIgW3NpYmxpbmdGaWVsZHNdPVwiZmllbGRzXCI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPCEtLTxidXR0b24gKGNsaWNrKT1cInJlc2V0KClcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5SRVNFVDwvYnV0dG9uPi0tPlxuICAgIDwvZm9ybT5cbiAgICBgLFxuICAgIHN0eWxlczogW1xuICAgICAgICAvLyAnLmR5bmFtaWMtZm9ybSB7ZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjt9JyxcbiAgICAgICAgLy8nLmR5bmFtaWMtZm9ybSB7ZGlzcGxheTogZmxleDt9JyxcbiAgICAgICAgLy8nLmR5bmFtaWMtZm9ybSB7IHdpZHRoOiAxMDAlOyB9JyxcbiAgICAgICAgJy5keW5hbWljLWZvcm0tY29sdW1uIHsgZGlzcGxheTogZmxleDtmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9JyxcbiAgICAgICAgJy5keW5hbWljLWZvcm0tY29sdW1uID4gKiB7IHdpZHRoOiAxMDAlOyB9JyxcbiAgICAgICAgJy5keW5hbWljLWZvcm0tcm93IHsgZGlzcGxheTogaW5saW5lLWZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjEwcHggfScsXG4gICAgICAgICcuZHluYW1pYy1mb3JtLXJvdyA+ICogeyB3aWR0aDogMTAwJTsgfScsXG4gICAgICAgICcuZHluYW1pYy1mb3JtLXJvdy1pdGVtIHsgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9JyxcbiAgICAgICAgJy5keW5hbWljLWZvcm0tY29sdW1uLWl0ZW0geyBtYXJnaW4tYm90dG9tOiAxMHB4OyB9JyxcbiAgICBdXG5cbn0pXG5leHBvcnQgY2xhc3MgS2xlc0R5bmFtaWNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIGZpZWxkczogSUtsZXNGaWVsZENvbmZpZ1tdID0gW107XG4gICAgQElucHV0KCkgdmFsaWRhdG9yczogSUtsZXNWYWxpZGF0b3I8VmFsaWRhdG9yRm4+W10gPSBbXTtcbiAgICBASW5wdXQoKSBhc3luY1ZhbGlkYXRvcnM6IElLbGVzVmFsaWRhdG9yPEFzeW5jVmFsaWRhdG9yRm4+W10gPSBbXTtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW91dHB1dC1uYXRpdmVcbiAgICBAT3V0cHV0KCkgc3VibWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBfb25Mb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASW5wdXQoKSBkaXJlY3Rpb246ICdjb2x1bW4nIHwgJ3JvdycgPSAnY29sdW1uJztcblxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gICAgb3JpZW50YXRpb25DbGFzczogJ2R5bmFtaWMtZm9ybS1jb2x1bW4nIHwgJ2R5bmFtaWMtZm9ybS1yb3cnID0gJ2R5bmFtaWMtZm9ybS1jb2x1bW4nO1xuICAgIG9yaWVudGF0aW9uSXRlbUNsYXNzOiAnZHluYW1pYy1mb3JtLWNvbHVtbi1pdGVtJyB8ICdkeW5hbWljLWZvcm0tcm93LWl0ZW0nID0gJ2R5bmFtaWMtZm9ybS1jb2x1bW4taXRlbSc7XG5cbiAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0udmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyKSB7IH1cblxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgICAgICB0aGlzLm9yaWVudGF0aW9uQ2xhc3MgPSB0aGlzLmRpcmVjdGlvbiA9PT0gJ3JvdycgPyAnZHluYW1pYy1mb3JtLXJvdycgOiAnZHluYW1pYy1mb3JtLWNvbHVtbic7XG4gICAgICAgIHRoaXMub3JpZW50YXRpb25JdGVtQ2xhc3MgPSB0aGlzLmRpcmVjdGlvbiA9PT0gJ3JvdycgPyAnZHluYW1pYy1mb3JtLXJvdy1pdGVtJyA6ICdkeW5hbWljLWZvcm0tY29sdW1uLWl0ZW0nO1xuICAgICAgICB0aGlzLl9vbkxvYWRlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoIWNoYW5nZXMuZmllbGRzPy5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGb3JtKCk7XG4gICAgICAgICAgICAvLyB0aGlzLmZvcm0gPSB0aGlzLmNyZWF0ZUNvbnRyb2woKTtcbiAgICAgICAgICAgIC8vIHRoaXMuZm9ybS5jb250cm9scyA9IHt9O1xuICAgICAgICAgICAgdGhpcy5fb25Mb2FkZWQuZW1pdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjaGFuZ2VzLnZhbGlkYXRvcnM/LmZpcnN0Q2hhbmdlICYmIHRoaXMuZm9ybSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtLnNldFZhbGlkYXRvcnModGhpcy52YWxpZGF0b3JzLm1hcCh2ID0+IHYudmFsaWRhdG9yKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNoYW5nZXMuYXN5bmNWYWxpZGF0b3JzPy5maXJzdENoYW5nZSAmJiB0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5zZXRBc3luY1ZhbGlkYXRvcnModGhpcy5hc3luY1ZhbGlkYXRvcnMubWFwKHYgPT4gdi52YWxpZGF0b3IpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2hhbmdlcy5kaXJlY3Rpb24/LmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uQ2xhc3MgPSB0aGlzLmRpcmVjdGlvbiA9PT0gJ3JvdycgPyAnZHluYW1pYy1mb3JtLXJvdycgOiAnZHluYW1pYy1mb3JtLWNvbHVtbic7XG4gICAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uSXRlbUNsYXNzID0gdGhpcy5kaXJlY3Rpb24gPT09ICdyb3cnID8gJ2R5bmFtaWMtZm9ybS1yb3ctaXRlbScgOiAnZHluYW1pYy1mb3JtLWNvbHVtbi1pdGVtJztcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgb25TdWJtaXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdC5lbWl0KHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmZvcm0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVzZXQoKSB7XG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSB1cGRhdGVGb3JtKCkge1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm0uY29udHJvbHMpLmZpbHRlcihrZXkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmZpZWxkcy5tYXAoZmllbGQgPT4gZmllbGQubmFtZSkuaW5jbHVkZXMoa2V5KTtcbiAgICAgICAgfSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb3JtLnJlbW92ZUNvbnRyb2woa2V5KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5maWVsZHNcbiAgICAgICAgICAgIC8vIC5maWx0ZXIoZmllbGQgPT4gIXRoaXMuZm9ybS5jb250cm9sc1tmaWVsZC5uYW1lXSlcbiAgICAgICAgICAgIC5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gRW51bVR5cGUubGluZUJyZWFrKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mb3JtLmNvbnRyb2xzW2ZpZWxkLm5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnVwZGF0ZUNvbnRyb2woZmllbGQsIHRoaXMuZm9ybS5jb250cm9sc1tmaWVsZC5uYW1lXSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5zZXRDb250cm9sKGZpZWxkLm5hbWUsIGNvbnRyb2wsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jcmVhdGVDb250cm9sKGZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woZmllbGQubmFtZSwgY29udHJvbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDb250cm9sKGZpZWxkOiBJS2xlc0ZpZWxkQ29uZmlnLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gRW51bVR5cGUuYXJyYXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGFycmF5ID0gY29udHJvbCBhcyBGb3JtQXJyYXk7XG4gICAgICAgICAgICAvKlRPRE8qL1xuICAgICAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgICB9IGVsc2UgaWYgKGZpZWxkLnR5cGUgPT09IEVudW1UeXBlLmdyb3VwKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IGNvbnRyb2wgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgaWYgKGZpZWxkLmNvbGxlY3Rpb25zICYmIEFycmF5LmlzQXJyYXkoZmllbGQuY29sbGVjdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAgZmllbGQuY29sbGVjdGlvbnMuZm9yRWFjaChzdWJmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChncm91cC5jb250cm9sc1tzdWJmaWVsZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSB0aGlzLnVwZGF0ZUNvbnRyb2woc3ViZmllbGQsIGdyb3VwLmNvbnRyb2xzW3N1YmZpZWxkXSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sID0gdGhpcy5jcmVhdGVDb250cm9sKHN1YmZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBncm91cC5zZXRDb250cm9sKHN1YmZpZWxkLm5hbWUsIGNvbnRyb2wsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBncm91cDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLmJpbmRWYWxpZGF0aW9ucyhmaWVsZC52YWxpZGF0aW9ucyB8fCBbXSkpO1xuICAgICAgICAgICAgLy8gY29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnModGhpcy5iaW5kQXN5bmNWYWxpZGF0aW9ucyhmaWVsZC5hc3luY1ZhbGlkYXRpb25zIHx8IFtdKSk7XG4gICAgICAgICAgICAvLyBpZiAoZmllbGQudmFsdWUgJiYgY29udHJvbC52YWx1ZSAhPT0gZmllbGQudmFsdWUpIHtcbiAgICAgICAgICAgIC8vICAgICBjb250cm9sLnNldFZhbHVlKGZpZWxkLnZhbHVlKTtcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgIHJldHVybiBjb250cm9sO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNvbnRyb2woZmllbGQ6IElLbGVzRmllbGRDb25maWcpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICBpZiAoZmllbGQudHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudE1hcHBlci5maW5kKGMgPT4gYy50eXBlID09PSBmaWVsZC50eXBlKT8uZmFjdG9yeShmaWVsZCkgfHwga2xlc0ZpZWxkQ29udHJvbEZhY3RvcnkoZmllbGQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudE1hcHBlci5maW5kKGMgPT4gYy5jb21wb25lbnQgPT09IGZpZWxkLmNvbXBvbmVudCk/LmZhY3RvcnkoZmllbGQpIHx8IGtsZXNGaWVsZENvbnRyb2xGYWN0b3J5KGZpZWxkKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xuXG4gICAgICAgIHRoaXMuZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuXG4gICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gRW51bVR5cGUubGluZUJyZWFrKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY3JlYXRlQ29udHJvbChmaWVsZCk7XG5cbiAgICAgICAgICAgIGdyb3VwLmFkZENvbnRyb2woZmllbGQubmFtZSwgY29udHJvbCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGdyb3VwLnNldFZhbGlkYXRvcnModGhpcy52YWxpZGF0b3JzLm1hcCh2ID0+IHYudmFsaWRhdG9yKSk7XG4gICAgICAgIGdyb3VwLnNldEFzeW5jVmFsaWRhdG9ycyh0aGlzLmFzeW5jVmFsaWRhdG9ycy5tYXAodiA9PiB2LnZhbGlkYXRvcikpO1xuXG4gICAgICAgIHJldHVybiBncm91cDtcbiAgICB9XG5cblxuXG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICAgICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcbiAgICAgICAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9saWIvZHluYW1pYy1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQThHLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25MLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFJcEUsTUFBTSw0QkFBNEIsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0FBQ2hGLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUc7SUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDO0lBQ3hFLE9BQU8sNEJBQTRCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMvRCxDQUFDLENBQUM7QUFFRixNQUFNLGdDQUFnQyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0FBQy9FLGVBQWUsQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHO0lBQ3BDLE1BQU0sTUFBTSxHQUFHLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDO0lBQzNFLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQTZCRixNQUFNLE9BQU8sd0JBQXdCO0lBY2pDLElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQW9CLEVBQXNCO1FBQXRCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBakJqQyxXQUFNLEdBQXVCLEVBQUUsQ0FBQztRQUNoQyxlQUFVLEdBQWtDLEVBQUUsQ0FBQztRQUMvQyxvQkFBZSxHQUF1QyxFQUFFLENBQUM7UUFDbEUsNkNBQTZDO1FBQ25DLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNwRCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoQyxjQUFTLEdBQXFCLFFBQVEsQ0FBQztRQUdoRCxxQkFBZ0IsR0FBK0MscUJBQXFCLENBQUM7UUFDckYseUJBQW9CLEdBQXlELDBCQUEwQixDQUFDO0lBTTFELENBQUM7SUFHL0MsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO1FBQzlGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1FBQzVHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLG9DQUFvQztZQUNwQywyQkFBMkI7WUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDNUU7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUU7WUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7WUFDOUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUM7U0FDL0c7SUFFTCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVk7UUFDakIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNILElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekM7SUFDTCxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUdPLFVBQVU7UUFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTTtZQUNQLG9EQUFvRDthQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDYixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDbkMsT0FBTzthQUNWO1lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQ25FO2lCQUFNO2dCQUNILE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDN0M7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBdUIsRUFBRSxPQUF3QjtRQUNuRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLEtBQUssRUFBRTtZQUMvQixNQUFNLEtBQUssR0FBRyxPQUFvQixDQUFDO1lBQ25DLFFBQVE7WUFDUixPQUFPLEtBQUssQ0FBQztTQUNoQjthQUFNLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsS0FBSyxFQUFFO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLE9BQW9CLENBQUM7WUFDbkMsSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN2RCxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDakMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUMxQixPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO3FCQUNwRTt5QkFBTTt3QkFDSCxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDMUM7b0JBQ0QsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRSxDQUFDLENBQUMsQ0FBQzthQUNOO1lBQ0QsT0FBTyxLQUFLLENBQUM7U0FDaEI7YUFBTTtZQUNILHdFQUF3RTtZQUN4RSx1RkFBdUY7WUFDdkYsc0RBQXNEO1lBQ3RELHFDQUFxQztZQUNyQyxJQUFJO1lBQ0osT0FBTyxPQUFPLENBQUM7U0FDbEI7SUFFTCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQXVCO1FBQ3pDLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUNaLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3RzthQUFNO1lBQ0gsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZIO0lBQ0wsQ0FBQztJQUdPLFVBQVU7UUFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUV4QixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDbkMsT0FBTzthQUNWO1lBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUxQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFckUsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUtPLHFCQUFxQixDQUFDLFNBQTJCO1FBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBM0pRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDRSQXhCdkI7Ozs7Ozs7Ozs7S0FVVDs7MkZBY1Esd0JBQXdCO2tCQTNCcEMsU0FBUzsrQkFDSSxpQkFBaUIsWUFDakIsdUJBQXVCLFlBQ3ZCOzs7Ozs7Ozs7O0tBVVQ7dUZBZVEsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFFRSxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25Jbml0LCBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvckZuLCBBc3luY1ZhbGlkYXRvckZuLCBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUdyb3VwLCBGb3JtQ29udHJvbERpcmVjdGl2ZSwgRm9ybUNvbnRyb2xOYW1lIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29tcG9uZW50TWFwcGVyIH0gZnJvbSAnLi9kZWNvcmF0b3JzL2NvbXBvbmVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgRW51bVR5cGUgfSBmcm9tICcuL2VudW1zL3R5cGUuZW51bSc7XG5pbXBvcnQgeyBrbGVzRmllbGRDb250cm9sRmFjdG9yeSB9IGZyb20gJy4vZmFjdG9yaWVzL2ZpZWxkLmZhY3RvcnknO1xuaW1wb3J0IHsgSUtsZXNGaWVsZENvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy9maWVsZC5jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IElLbGVzVmFsaWRhdG9yIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3ZhbGlkYXRvci5pbnRlcmZhY2UnO1xuXG5jb25zdCBvcmlnaW5Gb3JtQ29udHJvbE5nT25DaGFuZ2VzID0gRm9ybUNvbnRyb2xEaXJlY3RpdmUucHJvdG90eXBlLm5nT25DaGFuZ2VzO1xuRm9ybUNvbnRyb2xEaXJlY3RpdmUucHJvdG90eXBlLm5nT25DaGFuZ2VzID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZm9ybS5uYXRpdmVFbGVtZW50ID0gdGhpcy52YWx1ZUFjY2Vzc29yLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIHJldHVybiBvcmlnaW5Gb3JtQ29udHJvbE5nT25DaGFuZ2VzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuXG5jb25zdCBvcmlnaW5Gb3JtQ29udHJvbE5hbWVOZ09uQ2hhbmdlcyA9IEZvcm1Db250cm9sTmFtZS5wcm90b3R5cGUubmdPbkNoYW5nZXM7XG5Gb3JtQ29udHJvbE5hbWUucHJvdG90eXBlLm5nT25DaGFuZ2VzID0gZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IG9yaWdpbkZvcm1Db250cm9sTmFtZU5nT25DaGFuZ2VzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgdGhpcy5jb250cm9sLm5hdGl2ZUVsZW1lbnQgPSB0aGlzLnZhbHVlQWNjZXNzb3IuX2VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIGV4cG9ydEFzOiAna2xlc0R5bmFtaWNGb3JtJyxcbiAgICBzZWxlY3RvcjogJ2FwcC1rbGVzLWR5bmFtaWMtZm9ybScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8Zm9ybSBjbGFzcz1cInt7b3JpZW50YXRpb25DbGFzc319XCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgKHN1Ym1pdCk9XCJvblN1Ym1pdCgkZXZlbnQpXCI+XG4gICAgICAgIEBmb3IgKGZpZWxkIG9mIGZpZWxkczsgdHJhY2sgZmllbGQubmFtZSkge1xuICAgICAgICAgICAgQGlmIChmaWVsZC52aXNpYmxlICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJ7e29yaWVudGF0aW9uSXRlbUNsYXNzfX1cIiBrbGVzRHluYW1pY0ZpZWxkIFtmaWVsZF09XCJmaWVsZFwiIFtncm91cF09XCJmb3JtXCIgW3NpYmxpbmdGaWVsZHNdPVwiZmllbGRzXCI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPCEtLTxidXR0b24gKGNsaWNrKT1cInJlc2V0KClcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5SRVNFVDwvYnV0dG9uPi0tPlxuICAgIDwvZm9ybT5cbiAgICBgLFxuICAgIHN0eWxlczogW1xuICAgICAgICAvLyAnLmR5bmFtaWMtZm9ybSB7ZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjt9JyxcbiAgICAgICAgLy8nLmR5bmFtaWMtZm9ybSB7ZGlzcGxheTogZmxleDt9JyxcbiAgICAgICAgLy8nLmR5bmFtaWMtZm9ybSB7IHdpZHRoOiAxMDAlOyB9JyxcbiAgICAgICAgJy5keW5hbWljLWZvcm0tY29sdW1uIHsgZGlzcGxheTogZmxleDtmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9JyxcbiAgICAgICAgJy5keW5hbWljLWZvcm0tY29sdW1uID4gKiB7IHdpZHRoOiAxMDAlOyB9JyxcbiAgICAgICAgJy5keW5hbWljLWZvcm0tcm93IHsgZGlzcGxheTogaW5saW5lLWZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjEwcHg7IH0nLFxuICAgICAgICAnLmR5bmFtaWMtZm9ybS1yb3cgPiAqIHsgd2lkdGg6IDEwMCU7IH0nLFxuICAgICAgICAnLmR5bmFtaWMtZm9ybS1yb3ctaXRlbSB7IG1hcmdpbi1yaWdodDogMTBweDsgfScsXG4gICAgICAgICcuZHluYW1pYy1mb3JtLWNvbHVtbi1pdGVtIHsgbWFyZ2luLWJvdHRvbTogMTBweDsgfScsXG4gICAgXVxuXG59KVxuZXhwb3J0IGNsYXNzIEtsZXNEeW5hbWljRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBmaWVsZHM6IElLbGVzRmllbGRDb25maWdbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHZhbGlkYXRvcnM6IElLbGVzVmFsaWRhdG9yPFZhbGlkYXRvckZuPltdID0gW107XG4gICAgQElucHV0KCkgYXN5bmNWYWxpZGF0b3JzOiBJS2xlc1ZhbGlkYXRvcjxBc3luY1ZhbGlkYXRvckZuPltdID0gW107XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1vdXRwdXQtbmF0aXZlXG4gICAgQE91dHB1dCgpIHN1Ym1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgX29uTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQElucHV0KCkgZGlyZWN0aW9uOiAnY29sdW1uJyB8ICdyb3cnID0gJ2NvbHVtbic7XG5cbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgIG9yaWVudGF0aW9uQ2xhc3M6ICdkeW5hbWljLWZvcm0tY29sdW1uJyB8ICdkeW5hbWljLWZvcm0tcm93JyA9ICdkeW5hbWljLWZvcm0tY29sdW1uJztcbiAgICBvcmllbnRhdGlvbkl0ZW1DbGFzczogJ2R5bmFtaWMtZm9ybS1jb2x1bW4taXRlbScgfCAnZHluYW1pYy1mb3JtLXJvdy1pdGVtJyA9ICdkeW5hbWljLWZvcm0tY29sdW1uLWl0ZW0nO1xuXG4gICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLnZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcikgeyB9XG5cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICAgICAgdGhpcy5vcmllbnRhdGlvbkNsYXNzID0gdGhpcy5kaXJlY3Rpb24gPT09ICdyb3cnID8gJ2R5bmFtaWMtZm9ybS1yb3cnIDogJ2R5bmFtaWMtZm9ybS1jb2x1bW4nO1xuICAgICAgICB0aGlzLm9yaWVudGF0aW9uSXRlbUNsYXNzID0gdGhpcy5kaXJlY3Rpb24gPT09ICdyb3cnID8gJ2R5bmFtaWMtZm9ybS1yb3ctaXRlbScgOiAnZHluYW1pYy1mb3JtLWNvbHVtbi1pdGVtJztcbiAgICAgICAgdGhpcy5fb25Mb2FkZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFjaGFuZ2VzLmZpZWxkcz8uZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRm9ybSgpO1xuICAgICAgICAgICAgLy8gdGhpcy5mb3JtID0gdGhpcy5jcmVhdGVDb250cm9sKCk7XG4gICAgICAgICAgICAvLyB0aGlzLmZvcm0uY29udHJvbHMgPSB7fTtcbiAgICAgICAgICAgIHRoaXMuX29uTG9hZGVkLmVtaXQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2hhbmdlcy52YWxpZGF0b3JzPy5maXJzdENoYW5nZSAmJiB0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5zZXRWYWxpZGF0b3JzKHRoaXMudmFsaWRhdG9ycy5tYXAodiA9PiB2LnZhbGlkYXRvcikpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjaGFuZ2VzLmFzeW5jVmFsaWRhdG9ycz8uZmlyc3RDaGFuZ2UgJiYgdGhpcy5mb3JtKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMuYXN5bmNWYWxpZGF0b3JzLm1hcCh2ID0+IHYudmFsaWRhdG9yKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNoYW5nZXMuZGlyZWN0aW9uPy5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5vcmllbnRhdGlvbkNsYXNzID0gdGhpcy5kaXJlY3Rpb24gPT09ICdyb3cnID8gJ2R5bmFtaWMtZm9ybS1yb3cnIDogJ2R5bmFtaWMtZm9ybS1jb2x1bW4nO1xuICAgICAgICAgICAgdGhpcy5vcmllbnRhdGlvbkl0ZW1DbGFzcyA9IHRoaXMuZGlyZWN0aW9uID09PSAncm93JyA/ICdkeW5hbWljLWZvcm0tcm93LWl0ZW0nIDogJ2R5bmFtaWMtZm9ybS1jb2x1bW4taXRlbSc7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIG9uU3VibWl0KGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXQuZW1pdCh0aGlzLmZvcm0udmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5mb3JtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgdXBkYXRlRm9ybSgpIHtcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5mb3JtLmNvbnRyb2xzKS5maWx0ZXIoa2V5ID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5maWVsZHMubWFwKGZpZWxkID0+IGZpZWxkLm5hbWUpLmluY2x1ZGVzKGtleSk7XG4gICAgICAgIH0pLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5yZW1vdmVDb250cm9sKGtleSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZmllbGRzXG4gICAgICAgICAgICAvLyAuZmlsdGVyKGZpZWxkID0+ICF0aGlzLmZvcm0uY29udHJvbHNbZmllbGQubmFtZV0pXG4gICAgICAgICAgICAuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IEVudW1UeXBlLmxpbmVCcmVhaykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9sc1tmaWVsZC5uYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy51cGRhdGVDb250cm9sKGZpZWxkLCB0aGlzLmZvcm0uY29udHJvbHNbZmllbGQubmFtZV0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uc2V0Q29udHJvbChmaWVsZC5uYW1lLCBjb250cm9sLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY3JlYXRlQ29udHJvbChmaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKGZpZWxkLm5hbWUsIGNvbnRyb2wpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ29udHJvbChmaWVsZDogSUtsZXNGaWVsZENvbmZpZywgY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IEVudW1UeXBlLmFycmF5KSB7XG4gICAgICAgICAgICBjb25zdCBhcnJheSA9IGNvbnRyb2wgYXMgRm9ybUFycmF5O1xuICAgICAgICAgICAgLypUT0RPKi9cbiAgICAgICAgICAgIHJldHVybiBhcnJheTtcbiAgICAgICAgfSBlbHNlIGlmIChmaWVsZC50eXBlID09PSBFbnVtVHlwZS5ncm91cCkge1xuICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSBjb250cm9sIGFzIEZvcm1Hcm91cDtcbiAgICAgICAgICAgIGlmIChmaWVsZC5jb2xsZWN0aW9ucyAmJiBBcnJheS5pc0FycmF5KGZpZWxkLmNvbGxlY3Rpb25zKSkge1xuICAgICAgICAgICAgICAgIGZpZWxkLmNvbGxlY3Rpb25zLmZvckVhY2goc3ViZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAuY29udHJvbHNbc3ViZmllbGRdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sID0gdGhpcy51cGRhdGVDb250cm9sKHN1YmZpZWxkLCBncm91cC5jb250cm9sc1tzdWJmaWVsZF0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbCA9IHRoaXMuY3JlYXRlQ29udHJvbChzdWJmaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAuc2V0Q29udHJvbChzdWJmaWVsZC5uYW1lLCBjb250cm9sLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ3JvdXA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBjb250cm9sLnNldFZhbGlkYXRvcnModGhpcy5iaW5kVmFsaWRhdGlvbnMoZmllbGQudmFsaWRhdGlvbnMgfHwgW10pKTtcbiAgICAgICAgICAgIC8vIGNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMuYmluZEFzeW5jVmFsaWRhdGlvbnMoZmllbGQuYXN5bmNWYWxpZGF0aW9ucyB8fCBbXSkpO1xuICAgICAgICAgICAgLy8gaWYgKGZpZWxkLnZhbHVlICYmIGNvbnRyb2wudmFsdWUgIT09IGZpZWxkLnZhbHVlKSB7XG4gICAgICAgICAgICAvLyAgICAgY29udHJvbC5zZXRWYWx1ZShmaWVsZC52YWx1ZSk7XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICByZXR1cm4gY29udHJvbDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDb250cm9sKGZpZWxkOiBJS2xlc0ZpZWxkQ29uZmlnKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRNYXBwZXIuZmluZChjID0+IGMudHlwZSA9PT0gZmllbGQudHlwZSk/LmZhY3RvcnkoZmllbGQpIHx8IGtsZXNGaWVsZENvbnRyb2xGYWN0b3J5KGZpZWxkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRNYXBwZXIuZmluZChjID0+IGMuY29tcG9uZW50ID09PSBmaWVsZC5jb21wb25lbnQpPy5mYWN0b3J5KGZpZWxkKSB8fCBrbGVzRmllbGRDb250cm9sRmFjdG9yeShmaWVsZCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHByaXZhdGUgY3JlYXRlRm9ybSgpIHtcbiAgICAgICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcblxuICAgICAgICB0aGlzLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcblxuICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IEVudW1UeXBlLmxpbmVCcmVhaykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNyZWF0ZUNvbnRyb2woZmllbGQpO1xuXG4gICAgICAgICAgICBncm91cC5hZGRDb250cm9sKGZpZWxkLm5hbWUsIGNvbnRyb2wpO1xuICAgICAgICB9KTtcblxuICAgICAgICBncm91cC5zZXRWYWxpZGF0b3JzKHRoaXMudmFsaWRhdG9ycy5tYXAodiA9PiB2LnZhbGlkYXRvcikpO1xuICAgICAgICBncm91cC5zZXRBc3luY1ZhbGlkYXRvcnModGhpcy5hc3luY1ZhbGlkYXRvcnMubWFwKHYgPT4gdi52YWxpZGF0b3IpKTtcblxuICAgICAgICByZXR1cm4gZ3JvdXA7XG4gICAgfVxuXG5cblxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XG4gICAgICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,8 @@
1
+ export var EnumButtonAttribute;
2
+ (function (EnumButtonAttribute) {
3
+ EnumButtonAttribute["mat-button"] = "mat-button";
4
+ EnumButtonAttribute["mat-flat-button"] = "mat-flat-button";
5
+ EnumButtonAttribute["mat-raised-button"] = "mat-raised-button";
6
+ EnumButtonAttribute["mat-stroked-button"] = "mat-stroked-button";
7
+ })(EnumButtonAttribute || (EnumButtonAttribute = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWF0dHJpYnV0ZS5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xlcy1tYXRlcmlhbC1keW5hbWljZm9ybXMvc3JjL2xpYi9lbnVtcy9idXR0b24tYXR0cmlidXRlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksbUJBS1g7QUFMRCxXQUFZLG1CQUFtQjtJQUMzQixnREFBMkIsQ0FBQTtJQUMzQiwwREFBcUMsQ0FBQTtJQUNyQyw4REFBeUMsQ0FBQTtJQUN6QyxnRUFBMkMsQ0FBQTtBQUMvQyxDQUFDLEVBTFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUs5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEVudW1CdXR0b25BdHRyaWJ1dGUge1xuICAgICdtYXQtYnV0dG9uJyA9ICdtYXQtYnV0dG9uJyxcbiAgICAnbWF0LWZsYXQtYnV0dG9uJyA9ICdtYXQtZmxhdC1idXR0b24nLFxuICAgICdtYXQtcmFpc2VkLWJ1dHRvbicgPSAnbWF0LXJhaXNlZC1idXR0b24nLFxuICAgICdtYXQtc3Ryb2tlZC1idXR0b24nID0gJ21hdC1zdHJva2VkLWJ1dHRvbicsXG59XG4iXX0=
@@ -17,8 +17,8 @@ let KlesFormArrayComponent = class KlesFormArrayComponent extends KlesFieldAbstr
17
17
  ngOnDestroy() {
18
18
  super.ngOnDestroy();
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormArrayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.2", type: KlesFormArrayComponent, selector: "kles-array", usesInheritance: true, ngImport: i0, template: `
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormArrayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: KlesFormArrayComponent, selector: "kles-array", usesInheritance: true, ngImport: i0, template: `
22
22
  <div [formGroup]="group" class="container" [ngClass]="{'container-column': field.direction ==='column'}">
23
23
  <ng-container [formArrayName]="field.name">
24
24
  @for (subGroup of formArray.controls; track subGroup.value._id) {
@@ -39,7 +39,7 @@ KlesFormArrayComponent = __decorate([
39
39
  FieldMapper({ type: EnumType.array, factory: (field) => (new KlesFormArray(field).create()) })
40
40
  ], KlesFormArrayComponent);
41
41
  export { KlesFormArrayComponent };
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormArrayComponent, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormArrayComponent, decorators: [{
43
43
  type: Component,
44
44
  args: [{ selector: 'kles-array', template: `
45
45
  <div [formGroup]="group" class="container" [ngClass]="{'container-column': field.direction ==='column'}">
@@ -14,8 +14,8 @@ let KlesFormBadgeComponent = class KlesFormBadgeComponent extends KlesFieldAbstr
14
14
  ngOnDestroy() {
15
15
  super.ngOnDestroy();
16
16
  }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormBadgeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: KlesFormBadgeComponent, selector: "kles-form-badge", usesInheritance: true, ngImport: i0, template: `
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormBadgeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: KlesFormBadgeComponent, selector: "kles-form-badge", usesInheritance: true, ngImport: i0, template: `
19
19
  <span matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="field.ngClass"
20
20
  matBadge="{{group.controls[field.name].value}}" matBadgeOverlap="false" matBadgeColor="{{field.color}}">
21
21
  </span>
@@ -25,7 +25,7 @@ KlesFormBadgeComponent = __decorate([
25
25
  FieldMapper({ type: EnumType.badge })
26
26
  ], KlesFormBadgeComponent);
27
27
  export { KlesFormBadgeComponent };
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormBadgeComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormBadgeComponent, decorators: [{
29
29
  type: Component,
30
30
  args: [{
31
31
  selector: 'kles-form-badge',
@@ -0,0 +1,48 @@
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/fab-control.component";
6
+ export class KlesFormFabComponent extends KlesFieldAbstract {
7
+ ngOnInit() {
8
+ super.ngOnInit();
9
+ }
10
+ ngOnDestroy() {
11
+ super.ngOnDestroy();
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormFabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: KlesFormFabComponent, selector: "kles-form-fab", usesInheritance: true, ngImport: i0, template: `
15
+ <div [formGroup]="group">
16
+ <kles-fab
17
+ [attr.id]="field.id" [classButton]="field.ngClass"
18
+ [name]="field.name" [label]="field.label" [color]="field.color"
19
+ [icon]="field.icon"
20
+ [iconSvg]="field.iconSvg"
21
+ [value]="field.value"
22
+ [formControlName]="field.name"
23
+ [tooltip]="field.tooltip"
24
+ [type]="field.buttonType"
25
+ >
26
+ </kles-fab>
27
+ </div>
28
+ `, 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.KlesFabComponent, selector: "kles-fab" }] }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormFabComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'kles-form-fab', template: `
33
+ <div [formGroup]="group">
34
+ <kles-fab
35
+ [attr.id]="field.id" [classButton]="field.ngClass"
36
+ [name]="field.name" [label]="field.label" [color]="field.color"
37
+ [icon]="field.icon"
38
+ [iconSvg]="field.iconSvg"
39
+ [value]="field.value"
40
+ [formControlName]="field.name"
41
+ [tooltip]="field.tooltip"
42
+ [type]="field.buttonType"
43
+ >
44
+ </kles-fab>
45
+ </div>
46
+ ` }]
47
+ }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWZhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGVzLW1hdGVyaWFsLWR5bmFtaWNmb3Jtcy9zcmMvbGliL2ZpZWxkcy9idXR0b24tZmFiLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBcUJyRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsaUJBQWlCO0lBRXZELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDUCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0FSUSxvQkFBb0I7a0dBQXBCLG9CQUFvQiw0RUFqQm5COzs7Ozs7Ozs7Ozs7OztLQWNUOzsyRkFHUSxvQkFBb0I7a0JBbkJoQyxTQUFTOytCQUNJLGVBQWUsWUFDZjs7Ozs7Ozs7Ozs7Ozs7S0FjVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCwgQ29tcG9uZW50LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtsZXNGaWVsZEFic3RyYWN0IH0gZnJvbSAnLi9maWVsZC5hYnN0cmFjdCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2xlcy1mb3JtLWZhYicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgICAgICAgPGtsZXMtZmFiXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJmaWVsZC5pZFwiIFtjbGFzc0J1dHRvbl09XCJmaWVsZC5uZ0NsYXNzXCIgXG4gICAgICAgICAgICBbbmFtZV09XCJmaWVsZC5uYW1lXCIgW2xhYmVsXT1cImZpZWxkLmxhYmVsXCIgW2NvbG9yXT1cImZpZWxkLmNvbG9yXCJcbiAgICAgICAgICAgIFtpY29uXT1cImZpZWxkLmljb25cIlxuICAgICAgICAgICAgW2ljb25TdmddPVwiZmllbGQuaWNvblN2Z1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwiZmllbGQudmFsdWVcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcbiAgICAgICAgICAgIFt0b29sdGlwXT1cImZpZWxkLnRvb2x0aXBcIlxuICAgICAgICAgICAgW3R5cGVdPVwiZmllbGQuYnV0dG9uVHlwZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgIDwva2xlcy1mYWI+XG4gICAgPC9kaXY+XG4gICAgYCxcbiAgICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEtsZXNGb3JtRmFiQ29tcG9uZW50IGV4dGVuZHMgS2xlc0ZpZWxkQWJzdHJhY3QgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
@@ -10,12 +10,13 @@ export class KlesFormButtonComponent extends KlesFieldAbstract {
10
10
  ngOnDestroy() {
11
11
  super.ngOnDestroy();
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: KlesFormButtonComponent, selector: "kles-form-button", usesInheritance: true, ngImport: i0, template: `
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: KlesFormButtonComponent, selector: "kles-form-button", usesInheritance: true, ngImport: i0, template: `
15
15
  <div [formGroup]="group">
16
16
  <kles-button
17
17
  [attr.id]="field.id" [classButton]="field.ngClass"
18
18
  [name]="field.name" [label]="field.label" [color]="field.color"
19
+ [attribute]="field.attribute"
19
20
  [icon]="field.icon"
20
21
  [iconSvg]="field.iconSvg"
21
22
  [value]="field.value"
@@ -25,15 +26,16 @@ export class KlesFormButtonComponent extends KlesFieldAbstract {
25
26
  >
26
27
  </kles-button>
27
28
  </div>
28
- `, 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.KlesButtonComponent, selector: "kles-button", inputs: ["name", "label", "color", "icon", "iconSvg", "disabled", "type", "classButton", "value", "tooltip"] }] }); }
29
+ `, 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.KlesButtonComponent, selector: "kles-button", inputs: ["attribute"] }] }); }
29
30
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormButtonComponent, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormButtonComponent, decorators: [{
31
32
  type: Component,
32
33
  args: [{ selector: 'kles-form-button', template: `
33
34
  <div [formGroup]="group">
34
35
  <kles-button
35
36
  [attr.id]="field.id" [classButton]="field.ngClass"
36
37
  [name]="field.name" [label]="field.label" [color]="field.color"
38
+ [attribute]="field.attribute"
37
39
  [icon]="field.icon"
38
40
  [iconSvg]="field.iconSvg"
39
41
  [value]="field.value"
@@ -45,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
45
47
  </div>
46
48
  ` }]
47
49
  }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xlcy1tYXRlcmlhbC1keW5hbWljZm9ybXMvc3JjL2xpYi9maWVsZHMvYnV0dG9uLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFzQnJELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFFMUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQVJRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLCtFQWpCdEI7Ozs7Ozs7Ozs7Ozs7O0tBY1Q7OzJGQUdRLHVCQUF1QjtrQkFuQm5DLFNBQVM7K0JBQ0ksa0JBQWtCLFlBQ2xCOzs7Ozs7Ozs7Ozs7OztLQWNUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25Jbml0LCBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2xlc0ZpZWxkQWJzdHJhY3QgfSBmcm9tICcuL2ZpZWxkLmFic3RyYWN0JztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2tsZXMtZm9ybS1idXR0b24nLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gICAgICAgIDxrbGVzLWJ1dHRvblxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiZmllbGQuaWRcIiBbY2xhc3NCdXR0b25dPVwiZmllbGQubmdDbGFzc1wiIFxuICAgICAgICAgICAgW25hbWVdPVwiZmllbGQubmFtZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiIFtjb2xvcl09XCJmaWVsZC5jb2xvclwiIFxuICAgICAgICAgICAgW2ljb25dPVwiZmllbGQuaWNvblwiXG4gICAgICAgICAgICBbaWNvblN2Z109XCJmaWVsZC5pY29uU3ZnXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIlxuICAgICAgICAgICAgW3Rvb2x0aXBdPVwiZmllbGQudG9vbHRpcFwiXG4gICAgICAgICAgICBbdHlwZV09XCJmaWVsZC5idXR0b25UeXBlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgPC9rbGVzLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICBgLFxuICAgIHN0eWxlczogW11cbn0pXG5leHBvcnQgY2xhc3MgS2xlc0Zvcm1CdXR0b25Db21wb25lbnQgZXh0ZW5kcyBLbGVzRmllbGRBYnN0cmFjdCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xlcy1tYXRlcmlhbC1keW5hbWljZm9ybXMvc3JjL2xpYi9maWVsZHMvYnV0dG9uLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUF1QnJELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFFMUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQVJRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLCtFQWxCdEI7Ozs7Ozs7Ozs7Ozs7OztLQWVUOzsyRkFHUSx1QkFBdUI7a0JBcEJuQyxTQUFTOytCQUNJLGtCQUFrQixZQUNsQjs7Ozs7Ozs7Ozs7Ozs7O0tBZVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQsIENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLbGVzRmllbGRBYnN0cmFjdCB9IGZyb20gJy4vZmllbGQuYWJzdHJhY3QnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2xlcy1mb3JtLWJ1dHRvbicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgICAgICAgPGtsZXMtYnV0dG9uXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJmaWVsZC5pZFwiIFtjbGFzc0J1dHRvbl09XCJmaWVsZC5uZ0NsYXNzXCIgXG4gICAgICAgICAgICBbbmFtZV09XCJmaWVsZC5uYW1lXCIgW2xhYmVsXT1cImZpZWxkLmxhYmVsXCIgW2NvbG9yXT1cImZpZWxkLmNvbG9yXCIgXG4gICAgICAgICAgICBbYXR0cmlidXRlXT1cImZpZWxkLmF0dHJpYnV0ZVwiXG4gICAgICAgICAgICBbaWNvbl09XCJmaWVsZC5pY29uXCJcbiAgICAgICAgICAgIFtpY29uU3ZnXT1cImZpZWxkLmljb25TdmdcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImZpZWxkLnZhbHVlXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiXG4gICAgICAgICAgICBbdG9vbHRpcF09XCJmaWVsZC50b29sdGlwXCJcbiAgICAgICAgICAgIFt0eXBlXT1cImZpZWxkLmJ1dHRvblR5cGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICA8L2tsZXMtYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIGAsXG4gICAgc3R5bGVzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBLbGVzRm9ybUJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIEtsZXNGaWVsZEFic3RyYWN0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,48 @@
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/icon-button-control.component";
6
+ export class KlesFormIconButtonComponent extends KlesFieldAbstract {
7
+ ngOnInit() {
8
+ super.ngOnInit();
9
+ }
10
+ ngOnDestroy() {
11
+ super.ngOnDestroy();
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormIconButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: KlesFormIconButtonComponent, selector: "kles-form-icon-button", usesInheritance: true, ngImport: i0, template: `
15
+ <div [formGroup]="group">
16
+ <kles-icon-button
17
+ [attr.id]="field.id" [classButton]="field.ngClass"
18
+ [name]="field.name" [color]="field.color"
19
+ [icon]="field.icon"
20
+ [iconSvg]="field.iconSvg"
21
+ [value]="field.value"
22
+ [formControlName]="field.name"
23
+ [tooltip]="field.tooltip"
24
+ [type]="field.buttonType"
25
+ >
26
+ </kles-icon-button>
27
+ </div>
28
+ `, 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.KlesIconButtonComponent, selector: "kles-icon-button" }] }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormIconButtonComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'kles-form-icon-button', template: `
33
+ <div [formGroup]="group">
34
+ <kles-icon-button
35
+ [attr.id]="field.id" [classButton]="field.ngClass"
36
+ [name]="field.name" [color]="field.color"
37
+ [icon]="field.icon"
38
+ [iconSvg]="field.iconSvg"
39
+ [value]="field.value"
40
+ [formControlName]="field.name"
41
+ [tooltip]="field.tooltip"
42
+ [type]="field.buttonType"
43
+ >
44
+ </kles-icon-button>
45
+ </div>
46
+ ` }]
47
+ }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xlcy1tYXRlcmlhbC1keW5hbWljZm9ybXMvc3JjL2xpYi9maWVsZHMvYnV0dG9uLWljb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFxQnJELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxpQkFBaUI7SUFFOUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQVJRLDJCQUEyQjtrR0FBM0IsMkJBQTJCLG9GQWpCMUI7Ozs7Ozs7Ozs7Ozs7O0tBY1Q7OzJGQUdRLDJCQUEyQjtrQkFuQnZDLFNBQVM7K0JBQ0ksdUJBQXVCLFlBQ3ZCOzs7Ozs7Ozs7Ozs7OztLQWNUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25Jbml0LCBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2xlc0ZpZWxkQWJzdHJhY3QgfSBmcm9tICcuL2ZpZWxkLmFic3RyYWN0JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrbGVzLWZvcm0taWNvbi1idXR0b24nLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gICAgICAgIDxrbGVzLWljb24tYnV0dG9uXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJmaWVsZC5pZFwiIFtjbGFzc0J1dHRvbl09XCJmaWVsZC5uZ0NsYXNzXCIgXG4gICAgICAgICAgICBbbmFtZV09XCJmaWVsZC5uYW1lXCIgW2NvbG9yXT1cImZpZWxkLmNvbG9yXCIgXG4gICAgICAgICAgICBbaWNvbl09XCJmaWVsZC5pY29uXCJcbiAgICAgICAgICAgIFtpY29uU3ZnXT1cImZpZWxkLmljb25TdmdcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImZpZWxkLnZhbHVlXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiXG4gICAgICAgICAgICBbdG9vbHRpcF09XCJmaWVsZC50b29sdGlwXCJcbiAgICAgICAgICAgIFt0eXBlXT1cImZpZWxkLmJ1dHRvblR5cGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICA8L2tsZXMtaWNvbi1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgYCxcbiAgICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEtsZXNGb3JtSWNvbkJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIEtsZXNGaWVsZEFic3RyYWN0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,48 @@
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/mini-fab-control.component";
6
+ export class KlesFormMiniFabComponent extends KlesFieldAbstract {
7
+ ngOnInit() {
8
+ super.ngOnInit();
9
+ }
10
+ ngOnDestroy() {
11
+ super.ngOnDestroy();
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormMiniFabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: KlesFormMiniFabComponent, selector: "kles-form-mini-fab", usesInheritance: true, ngImport: i0, template: `
15
+ <div [formGroup]="group">
16
+ <kles-mini-fab
17
+ [attr.id]="field.id" [classButton]="field.ngClass"
18
+ [name]="field.name" [label]="field.label" [color]="field.color"
19
+ [icon]="field.icon"
20
+ [iconSvg]="field.iconSvg"
21
+ [value]="field.value"
22
+ [formControlName]="field.name"
23
+ [tooltip]="field.tooltip"
24
+ [type]="field.buttonType"
25
+ >
26
+ </kles-mini-fab>
27
+ </div>
28
+ `, 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.KlesMiniFabComponent, selector: "kles-mini-fab" }] }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormMiniFabComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'kles-form-mini-fab', template: `
33
+ <div [formGroup]="group">
34
+ <kles-mini-fab
35
+ [attr.id]="field.id" [classButton]="field.ngClass"
36
+ [name]="field.name" [label]="field.label" [color]="field.color"
37
+ [icon]="field.icon"
38
+ [iconSvg]="field.iconSvg"
39
+ [value]="field.value"
40
+ [formControlName]="field.name"
41
+ [tooltip]="field.tooltip"
42
+ [type]="field.buttonType"
43
+ >
44
+ </kles-mini-fab>
45
+ </div>
46
+ ` }]
47
+ }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLW1pbmktZmFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9saWIvZmllbGRzL2J1dHRvbi1taW5pLWZhYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQXFCckQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGlCQUFpQjtJQUUzRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7OEdBUlEsd0JBQXdCO2tHQUF4Qix3QkFBd0IsaUZBakJ2Qjs7Ozs7Ozs7Ozs7Ozs7S0FjVDs7MkZBR1Esd0JBQXdCO2tCQW5CcEMsU0FBUzsrQkFDSSxvQkFBb0IsWUFDcEI7Ozs7Ozs7Ozs7Ozs7O0tBY1QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQsIENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLbGVzRmllbGRBYnN0cmFjdCB9IGZyb20gJy4vZmllbGQuYWJzdHJhY3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2tsZXMtZm9ybS1taW5pLWZhYicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgICAgICAgPGtsZXMtbWluaS1mYWJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImZpZWxkLmlkXCIgW2NsYXNzQnV0dG9uXT1cImZpZWxkLm5nQ2xhc3NcIiBcbiAgICAgICAgICAgIFtuYW1lXT1cImZpZWxkLm5hbWVcIiBbbGFiZWxdPVwiZmllbGQubGFiZWxcIiBbY29sb3JdPVwiZmllbGQuY29sb3JcIiBcbiAgICAgICAgICAgIFtpY29uXT1cImZpZWxkLmljb25cIlxuICAgICAgICAgICAgW2ljb25TdmddPVwiZmllbGQuaWNvblN2Z1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwiZmllbGQudmFsdWVcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcbiAgICAgICAgICAgIFt0b29sdGlwXT1cImZpZWxkLnRvb2x0aXBcIlxuICAgICAgICAgICAgW3R5cGVdPVwiZmllbGQuYnV0dG9uVHlwZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgIDwva2xlcy1taW5pLWZhYj5cbiAgICA8L2Rpdj5cbiAgICBgLFxuICAgIHN0eWxlczogW11cbn0pXG5leHBvcnQgY2xhc3MgS2xlc0Zvcm1NaW5pRmFiQ29tcG9uZW50IGV4dGVuZHMgS2xlc0ZpZWxkQWJzdHJhY3QgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
@@ -22,8 +22,8 @@ export class KlesFormButtonToogleGroupComponent extends KlesFieldAbstract {
22
22
  ngOnDestroy() {
23
23
  super.ngOnDestroy();
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormButtonToogleGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.2", type: KlesFormButtonToogleGroupComponent, selector: "kles-form-button-toogle-group", usesInheritance: true, ngImport: i0, template: `
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormButtonToogleGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: KlesFormButtonToogleGroupComponent, selector: "kles-form-button-toogle-group", usesInheritance: true, ngImport: i0, template: `
27
27
  <div [formGroup]="group" class="form-element">
28
28
  <mat-button-toggle-group [formControlName]="field.name" [multiple]="field.multiple" [attr.id]="field.id" [ngClass]="field.ngClass">
29
29
  @for (item of options$ | async; track item) {
@@ -35,7 +35,7 @@ export class KlesFormButtonToogleGroupComponent extends KlesFieldAbstract {
35
35
  </div>
36
36
  `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.KlesTransformPipe, name: "klesTransform" }] }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormButtonToogleGroupComponent, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormButtonToogleGroupComponent, decorators: [{
39
39
  type: Component,
40
40
  args: [{
41
41
  selector: 'kles-form-button-toogle-group',
@@ -10,8 +10,8 @@ export class KlesFormButtonCheckerComponent extends KlesFieldAbstract {
10
10
  ngOnDestroy() {
11
11
  super.ngOnDestroy();
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormButtonCheckerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: KlesFormButtonCheckerComponent, selector: "kles-form-button-checker", usesInheritance: true, ngImport: i0, template: `
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormButtonCheckerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: KlesFormButtonCheckerComponent, selector: "kles-form-button-checker", usesInheritance: true, ngImport: i0, template: `
15
15
  <div [formGroup]="group">
16
16
  <kles-button-checker
17
17
  [attr.id]="field.id" [classButton]="field.ngClass"
@@ -27,7 +27,7 @@ export class KlesFormButtonCheckerComponent extends KlesFieldAbstract {
27
27
  </div>
28
28
  `, 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" }] }); }
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormButtonCheckerComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormButtonCheckerComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: 'kles-form-button-checker', template: `
33
33
  <div [formGroup]="group">
@@ -11,8 +11,8 @@ export class KlesFormButtonFileComponent extends KlesFieldAbstract {
11
11
  ngOnDestroy() {
12
12
  super.ngOnDestroy();
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormButtonFileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: KlesFormButtonFileComponent, selector: "kles-form-button-file", usesInheritance: true, ngImport: i0, template: `
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormButtonFileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: KlesFormButtonFileComponent, selector: "kles-form-button-file", usesInheritance: true, ngImport: i0, template: `
16
16
  <div [formGroup]="group">
17
17
  <kles-button-file
18
18
  [attr.id]="field.id" [classButton]="field.ngClass"
@@ -29,7 +29,7 @@ export class KlesFormButtonFileComponent extends KlesFieldAbstract {
29
29
  </div>
30
30
  `, 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", inputs: ["accept"] }] }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormButtonFileComponent, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormButtonFileComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{ selector: 'kles-form-button-file', template: `
35
35
  <div [formGroup]="group">
@@ -15,8 +15,8 @@ let KlesFormCheckboxComponent = class KlesFormCheckboxComponent extends KlesFiel
15
15
  ngOnDestroy() {
16
16
  super.ngOnDestroy();
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.2", type: KlesFormCheckboxComponent, selector: "kles-form-checkbox", usesInheritance: true, ngImport: i0, template: `
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: KlesFormCheckboxComponent, selector: "kles-form-checkbox", usesInheritance: true, ngImport: i0, template: `
20
20
  <div [formGroup]="group" >
21
21
  <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>
22
22
  @for (validation of field.validations; track validation.name) {
@@ -40,7 +40,7 @@ KlesFormCheckboxComponent = __decorate([
40
40
  FieldMapper({ type: EnumType.checkbox })
41
41
  ], KlesFormCheckboxComponent);
42
42
  export { KlesFormCheckboxComponent };
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormCheckboxComponent, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormCheckboxComponent, decorators: [{
44
44
  type: Component,
45
45
  args: [{ selector: 'kles-form-checkbox', template: `
46
46
  <div [formGroup]="group" >
@@ -12,8 +12,8 @@ export class KlesFormChipComponent extends KlesFieldAbstract {
12
12
  ngOnDestroy() {
13
13
  super.ngOnDestroy();
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormChipComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.2", type: KlesFormChipComponent, selector: "kles-form-chip", usesInheritance: true, ngImport: i0, template: `
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormChipComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: KlesFormChipComponent, selector: "kles-form-chip", usesInheritance: true, ngImport: i0, template: `
17
17
  <div [formGroup]="group">
18
18
  <mat-chip-listbox>
19
19
  <mat-chip-option [color]="field.color" matTooltip="{{field.tooltip}}" [attr.id]="field.id" selected [ngClass]="field.ngClass" [ngStyle]="field.ngStyle">
@@ -26,7 +26,7 @@ export class KlesFormChipComponent extends KlesFieldAbstract {
26
26
  </div>
27
27
  `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i4.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i6.KlesTransformPipe, name: "klesTransform" }] }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormChipComponent, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormChipComponent, decorators: [{
30
30
  type: Component,
31
31
  args: [{ selector: "kles-form-chip", template: `
32
32
  <div [formGroup]="group">
@@ -7,15 +7,15 @@ export class KlesFormClearComponent {
7
7
  event.stopPropagation();
8
8
  this.group.controls[this.field.name].reset();
9
9
  }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormClearComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: KlesFormClearComponent, selector: "kles-form-clear", ngImport: i0, template: `
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormClearComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: KlesFormClearComponent, selector: "kles-form-clear", ngImport: i0, template: `
12
12
  <button [disabled]="!group.get(field.name).value || group.get(field.name).disabled" mat-icon-button aria-label="Clear" type="button"
13
13
  (click)="clear($event)">
14
14
  <mat-icon>close</mat-icon>
15
15
  </button>
16
16
  `, isInline: true, dependencies: [{ kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: KlesFormClearComponent, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: KlesFormClearComponent, decorators: [{
19
19
  type: Component,
20
20
  args: [{
21
21
  selector: 'kles-form-clear',