@3kles/kles-material-dynamicforms 17.8.0 → 17.8.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 (58) 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/directive/mat-error-form.directive.mjs +3 -3
  4. package/esm2022/lib/directive/mat-error-message.directive.mjs +3 -3
  5. package/esm2022/lib/dynamic-form.component.mjs +6 -6
  6. package/esm2022/lib/fields/array.component.mjs +3 -3
  7. package/esm2022/lib/fields/badge.component.mjs +3 -3
  8. package/esm2022/lib/fields/button-fab.component.mjs +3 -3
  9. package/esm2022/lib/fields/button-form.component.mjs +3 -3
  10. package/esm2022/lib/fields/button-icon.component.mjs +3 -3
  11. package/esm2022/lib/fields/button-mini-fab.component.mjs +3 -3
  12. package/esm2022/lib/fields/button-toogle-group.component.mjs +3 -3
  13. package/esm2022/lib/fields/buttonchecker-form.component.mjs +3 -3
  14. package/esm2022/lib/fields/buttonfile-form.component.mjs +3 -3
  15. package/esm2022/lib/fields/checkbox-indeterminate.component.mjs +7 -6
  16. package/esm2022/lib/fields/checkbox.component.mjs +3 -3
  17. package/esm2022/lib/fields/chip.component.mjs +3 -3
  18. package/esm2022/lib/fields/clear.component.mjs +3 -3
  19. package/esm2022/lib/fields/color.component.mjs +3 -3
  20. package/esm2022/lib/fields/date-time.component.mjs +3 -3
  21. package/esm2022/lib/fields/date.component.mjs +3 -3
  22. package/esm2022/lib/fields/field.abstract.mjs +3 -3
  23. package/esm2022/lib/fields/group.component.mjs +3 -3
  24. package/esm2022/lib/fields/icon.component.mjs +3 -3
  25. package/esm2022/lib/fields/input.clearable.component.mjs +3 -3
  26. package/esm2022/lib/fields/input.component.mjs +3 -3
  27. package/esm2022/lib/fields/label.component.mjs +3 -3
  28. package/esm2022/lib/fields/line-break.component.mjs +3 -3
  29. package/esm2022/lib/fields/link.component.mjs +3 -3
  30. package/esm2022/lib/fields/list-field.component.mjs +3 -3
  31. package/esm2022/lib/fields/radio.component.mjs +3 -3
  32. package/esm2022/lib/fields/range.component.mjs +3 -3
  33. package/esm2022/lib/fields/select.component.mjs +3 -3
  34. package/esm2022/lib/fields/select.lazy-search.component.mjs +3 -3
  35. package/esm2022/lib/fields/select.search.component.mjs +3 -3
  36. package/esm2022/lib/fields/selection-list.component.mjs +3 -3
  37. package/esm2022/lib/fields/selection-list.search.component.mjs +3 -3
  38. package/esm2022/lib/fields/slide-toggle.component.mjs +3 -3
  39. package/esm2022/lib/fields/text.component.mjs +3 -3
  40. package/esm2022/lib/fields/textarea.component.mjs +3 -3
  41. package/esm2022/lib/forms/button-control-base.mjs +3 -3
  42. package/esm2022/lib/forms/button-control.component.mjs +3 -3
  43. package/esm2022/lib/forms/buttonchecker-control.component.mjs +3 -3
  44. package/esm2022/lib/forms/buttonfile-control.component.mjs +3 -3
  45. package/esm2022/lib/forms/fab-control.component.mjs +3 -3
  46. package/esm2022/lib/forms/icon-button-control.component.mjs +3 -3
  47. package/esm2022/lib/forms/indeterminate-checkbox.mjs +62 -35
  48. package/esm2022/lib/forms/mini-fab-control.component.mjs +3 -3
  49. package/esm2022/lib/kles-material-dynamicforms.module.mjs +9 -5
  50. package/esm2022/lib/matcher/form-error.matcher.mjs +3 -3
  51. package/esm2022/lib/modules/material.module.mjs +4 -4
  52. package/esm2022/lib/pipe/array.pipe.mjs +3 -3
  53. package/esm2022/lib/pipe/transform.pipe.mjs +3 -3
  54. package/fesm2022/3kles-kles-material-dynamicforms.mjs +253 -224
  55. package/fesm2022/3kles-kles-material-dynamicforms.mjs.map +1 -1
  56. package/lib/forms/indeterminate-checkbox.d.ts +16 -13
  57. package/lib/kles-material-dynamicforms.module.d.ts +43 -41
  58. package/package.json +1 -1
@@ -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.3.11", ngImport: i0, type: KlesComponentDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
30
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", 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.3.12", ngImport: i0, type: KlesComponentDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
30
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", 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.3.11", ngImport: i0, type: KlesComponentDirective, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesComponentDirective, decorators: [{
33
33
  type: Directive,
34
34
  args: [{
35
35
  selector: '[klesComponent]'
@@ -77,10 +77,10 @@ export class KlesDynamicFieldDirective {
77
77
  component.instance.siblingFields = this.siblingFields;
78
78
  return component;
79
79
  }
80
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesDynamicFieldDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
81
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: KlesDynamicFieldDirective, selector: "[klesDynamicField]", inputs: { field: "field", group: "group", siblingFields: "siblingFields" }, usesOnChanges: true, ngImport: i0 }); }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesDynamicFieldDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
81
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: KlesDynamicFieldDirective, selector: "[klesDynamicField]", inputs: { field: "field", group: "group", siblingFields: "siblingFields" }, usesOnChanges: true, ngImport: i0 }); }
82
82
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesDynamicFieldDirective, decorators: [{
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesDynamicFieldDirective, decorators: [{
84
84
  type: Directive,
85
85
  args: [{
86
86
  selector: '[klesDynamicField]'
@@ -6,8 +6,8 @@ export class MatErrorFormDirective {
6
6
  this.validations = [];
7
7
  this.asyncValidations = [];
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MatErrorFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: MatErrorFormDirective, selector: "[matErrorForm]", inputs: { validations: "validations", asyncValidations: "asyncValidations", form: "form" }, ngImport: i0, template: `
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MatErrorFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: MatErrorFormDirective, selector: "[matErrorForm]", inputs: { validations: "validations", asyncValidations: "asyncValidations", form: "form" }, ngImport: i0, template: `
11
11
  @if(form && form.errors){
12
12
  @for (validation of validations; track validation.name) {
13
13
  @if (form?.hasError(validation.name) && validation.message) {
@@ -22,7 +22,7 @@ export class MatErrorFormDirective {
22
22
  }
23
23
  `, isInline: true, dependencies: [{ kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MatErrorFormDirective, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MatErrorFormDirective, decorators: [{
26
26
  type: Component,
27
27
  args: [{
28
28
  selector: '[matErrorForm]',
@@ -12,8 +12,8 @@ export class MatErrorMessageDirective {
12
12
  let container = this._inj.get(MatFormField, null, { optional: true });
13
13
  this.inputRef = container?._control;
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MatErrorMessageDirective, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: { validations: "validations", asyncValidations: "asyncValidations" }, ngImport: i0, template: `
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MatErrorMessageDirective, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: { validations: "validations", asyncValidations: "asyncValidations" }, ngImport: i0, template: `
17
17
  @for (validation of validations; track validation.name) {
18
18
  @if (inputRef?.ngControl.hasError(validation.name) && validation.message) {
19
19
  {{validation.message | translate}}
@@ -26,7 +26,7 @@ export class MatErrorMessageDirective {
26
26
  }
27
27
  `, isInline: true, dependencies: [{ kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MatErrorMessageDirective, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MatErrorMessageDirective, decorators: [{
30
30
  type: Component,
31
31
  args: [{
32
32
  selector: '[matErrorMessage]',
@@ -165,8 +165,8 @@ export class KlesDynamicFormComponent {
165
165
  control.markAsTouched({ onlySelf: true });
166
166
  });
167
167
  }
168
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesDynamicFormComponent, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
169
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: KlesDynamicFormComponent, selector: "app-kles-dynamic-form", inputs: { fields: "fields", validators: "validators", asyncValidators: "asyncValidators", direction: "direction", formClass: "formClass" }, outputs: { submit: "submit", _onLoaded: "_onLoaded" }, exportAs: ["klesDynamicForm"], usesOnChanges: true, ngImport: i0, template: `
168
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesDynamicFormComponent, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
169
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: KlesDynamicFormComponent, selector: "app-kles-dynamic-form", inputs: { fields: "fields", validators: "validators", asyncValidators: "asyncValidators", direction: "direction", formClass: "formClass" }, outputs: { submit: "submit", _onLoaded: "_onLoaded" }, exportAs: ["klesDynamicForm"], usesOnChanges: true, ngImport: i0, template: `
170
170
  <form class="{{orientationClass}}" [ngClass]="formClass" [formGroup]="form" (submit)="onSubmit($event)">
171
171
  @for (field of fields; track field.name) {
172
172
  @if (field.visible !== false) {
@@ -178,9 +178,9 @@ export class KlesDynamicFormComponent {
178
178
  <mat-error matErrorForm [form]="form" [validations]="validators" [asyncValidations]="asyncValidators"></mat-error>
179
179
  }
180
180
  </form>
181
- `, 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-grid{display:grid}\n", ".dynamic-form-inline-grid{display:inline-grid}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.KlesDynamicFieldDirective, selector: "[klesDynamicField]", inputs: ["field", "group", "siblingFields"] }, { kind: "component", type: i5.MatErrorFormDirective, selector: "[matErrorForm]", inputs: ["validations", "asyncValidations", "form"] }] }); }
181
+ `, 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;align-items:baseline}\n", ".dynamic-form-row>*{width:100%}\n", ".dynamic-form-grid{display:grid}\n", ".dynamic-form-inline-grid{display:inline-grid}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.KlesDynamicFieldDirective, selector: "[klesDynamicField]", inputs: ["field", "group", "siblingFields"] }, { kind: "component", type: i5.MatErrorFormDirective, selector: "[matErrorForm]", inputs: ["validations", "asyncValidations", "form"] }] }); }
182
182
  }
183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesDynamicFormComponent, decorators: [{
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesDynamicFormComponent, decorators: [{
184
184
  type: Component,
185
185
  args: [{ exportAs: 'klesDynamicForm', selector: 'app-kles-dynamic-form', template: `
186
186
  <form class="{{orientationClass}}" [ngClass]="formClass" [formGroup]="form" (submit)="onSubmit($event)">
@@ -194,7 +194,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
194
194
  <mat-error matErrorForm [form]="form" [validations]="validators" [asyncValidations]="asyncValidators"></mat-error>
195
195
  }
196
196
  </form>
197
- `, 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-grid{display:grid}\n", ".dynamic-form-inline-grid{display:inline-grid}\n"] }]
197
+ `, 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;align-items:baseline}\n", ".dynamic-form-row>*{width:100%}\n", ".dynamic-form-grid{display:grid}\n", ".dynamic-form-inline-grid{display:inline-grid}\n"] }]
198
198
  }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }], propDecorators: { fields: [{
199
199
  type: Input
200
200
  }], validators: [{
@@ -210,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
210
210
  }], formClass: [{
211
211
  type: Input
212
212
  }] } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9saWIvZHluYW1pYy1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQThHLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25MLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFJcEUsTUFBTSw0QkFBNEIsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0FBQ2hGLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUc7SUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDO0lBQ3hFLE9BQU8sNEJBQTRCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQUM7QUFFRixNQUFNLGdDQUFnQyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0FBQy9FLGVBQWUsQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHO0lBQ3RDLE1BQU0sTUFBTSxHQUFHLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FB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QUFPLENBQUMsQ0FBQzthQUN2QztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzNELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBRXJFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLHFCQUFxQixDQUFDLFNBQTJCO1FBQ3ZELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBcktVLHdCQUF3QjttR0FBeEIsd0JBQXdCLG9UQXZCekI7Ozs7Ozs7Ozs7OztLQVlQOzs0RkFXUSx3QkFBd0I7a0JBMUJwQyxTQUFTOytCQUNFLGlCQUFpQixZQUNqQix1QkFBdUIsWUFDdkI7Ozs7Ozs7Ozs7OztLQVlQO3VGQVlNLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUUsU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25Jbml0LCBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvckZuLCBBc3luY1ZhbGlkYXRvckZuLCBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUdyb3VwLCBGb3JtQ29udHJvbERpcmVjdGl2ZSwgRm9ybUNvbnRyb2xOYW1lIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29tcG9uZW50TWFwcGVyIH0gZnJvbSAnLi9kZWNvcmF0b3JzL2NvbXBvbmVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgRW51bVR5cGUgfSBmcm9tICcuL2VudW1zL3R5cGUuZW51bSc7XG5pbXBvcnQgeyBrbGVzRmllbGRDb250cm9sRmFjdG9yeSB9IGZyb20gJy4vZmFjdG9yaWVzL2ZpZWxkLmZhY3RvcnknO1xuaW1wb3J0IHsgSUtsZXNGaWVsZENvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy9maWVsZC5jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IElLbGVzVmFsaWRhdG9yIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3ZhbGlkYXRvci5pbnRlcmZhY2UnO1xuXG5jb25zdCBvcmlnaW5Gb3JtQ29udHJvbE5nT25DaGFuZ2VzID0gRm9ybUNvbnRyb2xEaXJlY3RpdmUucHJvdG90eXBlLm5nT25DaGFuZ2VzO1xuRm9ybUNvbnRyb2xEaXJlY3RpdmUucHJvdG90eXBlLm5nT25DaGFuZ2VzID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmZvcm0ubmF0aXZlRWxlbWVudCA9IHRoaXMudmFsdWVBY2Nlc3Nvci5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudDtcbiAgcmV0dXJuIG9yaWdpbkZvcm1Db250cm9sTmdPbkNoYW5nZXMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5cbmNvbnN0IG9yaWdpbkZvcm1Db250cm9sTmFtZU5nT25DaGFuZ2VzID0gRm9ybUNvbnRyb2xOYW1lLnByb3RvdHlwZS5uZ09uQ2hhbmdlcztcbkZvcm1Db250cm9sTmFtZS5wcm90b3R5cGUubmdPbkNoYW5nZXMgPSBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHJlc3VsdCA9IG9yaWdpbkZvcm1Db250cm9sTmFtZU5nT25DaGFuZ2VzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIHRoaXMuY29udHJvbC5uYXRpdmVFbGVtZW50ID0gdGhpcy52YWx1ZUFjY2Vzc29yLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50O1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxuQENvbXBvbmVudCh7XG4gIGV4cG9ydEFzOiAna2xlc0R5bmFtaWNGb3JtJyxcbiAgc2VsZWN0b3I6ICdhcHAta2xlcy1keW5hbWljLWZvcm0nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxmb3JtIGNsYXNzPVwie3tvcmllbnRhdGlvbkNsYXNzfX1cIiBbbmdDbGFzc109XCJmb3JtQ2xhc3NcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiAoc3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIj5cbiAgICAgICAgQGZvciAoZmllbGQgb2YgZmllbGRzOyB0cmFjayBmaWVsZC5uYW1lKSB7XG4gICAgICAgICAgICBAaWYgKGZpZWxkLnZpc2libGUgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBrbGVzRHluYW1pY0ZpZWxkIFtmaWVsZF09XCJmaWVsZFwiIFtncm91cF09XCJmb3JtXCIgW3NpYmxpbmdGaWVsZHNdPVwiZmllbGRzXCI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChmb3JtICYmIGZvcm0uZXJyb3JzKXtcbiAgICAgICAgICA8bWF0LWVycm9yIG1hdEVycm9yRm9ybSBbZm9ybV09XCJmb3JtXCIgW3ZhbGlkYXRpb25zXT1cInZhbGlkYXRvcnNcIiBbYXN5bmNWYWxpZGF0aW9uc109XCJhc3luY1ZhbGlkYXRvcnNcIj48L21hdC1lcnJvcj5cbiAgICAgICAgfVxuICAgIDwvZm9ybT5cbiAgICBgLFxuICBzdHlsZXM6IFtcbiAgICAnLmR5bmFtaWMtZm9ybS1jb2x1bW4geyBkaXNwbGF5OiBmbGV4O2ZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0nLFxuICAgICcuZHluYW1pYy1mb3JtLWNvbHVtbiA+ICogeyB3aWR0aDogMTAwJTsgfScsXG4gICAgJy5keW5hbWljLWZvcm0tcm93IHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGZsZXgtd3JhcDp3cmFwOyBnYXA6MTBweDsgfScsXG4gICAgJy5keW5hbWljLWZvcm0tcm93ID4gKiB7IHdpZHRoOiAxMDAlOyB9JyxcbiAgICAnLmR5bmFtaWMtZm9ybS1ncmlkIHsgZGlzcGxheTogZ3JpZDsgfScsXG4gICAgJy5keW5hbWljLWZvcm0taW5saW5lLWdyaWQgeyBkaXNwbGF5OiBpbmxpbmUtZ3JpZDsgfScsXG4gIF1cblxufSlcbmV4cG9ydCBjbGFzcyBLbGVzRHluYW1pY0Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGZpZWxkczogSUtsZXNGaWVsZENvbmZpZ1tdID0gW107XG4gIEBJbnB1dCgpIHZhbGlkYXRvcnM6IElLbGVzVmFsaWRhdG9yPFZhbGlkYXRvckZuPltdID0gW107XG4gIEBJbnB1dCgpIGFzeW5jVmFsaWRhdG9yczogSUtsZXNWYWxpZGF0b3I8QXN5bmNWYWxpZGF0b3JGbj5bXSA9IFtdO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIHN1Ym1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIF9vbkxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKSBkaXJlY3Rpb246ICdjb2x1bW4nIHwgJ3JvdycgfCAnZ3JpZCcgfCAnaW5saW5lLWdyaWQnID0gJ2NvbHVtbic7XG4gIEBJbnB1dCgpIGZvcm1DbGFzczogc3RyaW5nIHwgc3RyaW5nW10gfCBTZXQ8c3RyaW5nPiB8IHsgW2tsYXNzOiBzdHJpbmddOiBhbnk7IH07XG5cbiAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgb3JpZW50YXRpb25DbGFzczogJ2R5bmFtaWMtZm9ybS1jb2x1bW4nIHwgJ2R5bmFtaWMtZm9ybS1yb3cnIHwgJ2R5bmFtaWMtZm9ybS1ncmlkJyB8ICdkeW5hbWljLWZvcm0taW5saW5lLWdyaWQnID0gJ2R5bmFtaWMtZm9ybS1jb2x1bW4nO1xuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLnZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyKSB7IH1cblxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIHRoaXMuc2V0T3JpZW50YXRpb25DbGFzcygpO1xuICAgIHRoaXMuX29uTG9hZGVkLmVtaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIWNoYW5nZXMuZmllbGRzPy5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy51cGRhdGVGb3JtKCk7XG4gICAgICB0aGlzLl9vbkxvYWRlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgaWYgKCFjaGFuZ2VzLnZhbGlkYXRvcnM/LmZpcnN0Q2hhbmdlICYmIHRoaXMuZm9ybSkge1xuICAgICAgdGhpcy5mb3JtLnNldFZhbGlkYXRvcnModGhpcy52YWxpZGF0b3JzLm1hcCh2ID0+IHYudmFsaWRhdG9yKSk7XG4gICAgfVxuXG4gICAgaWYgKCFjaGFuZ2VzLmFzeW5jVmFsaWRhdG9ycz8uZmlyc3RDaGFuZ2UgJiYgdGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmZvcm0uc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMuYXN5bmNWYWxpZGF0b3JzLm1hcCh2ID0+IHYudmFsaWRhdG9yKSk7XG4gICAgfVxuXG4gICAgaWYgKCFjaGFuZ2VzLmRpcmVjdGlvbj8uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMub3JpZW50YXRpb25DbGFzcyA9IHRoaXMuZGlyZWN0aW9uID09PSAncm93JyA/ICdkeW5hbWljLWZvcm0tcm93JyA6ICdkeW5hbWljLWZvcm0tY29sdW1uJztcbiAgICB9XG5cbiAgfVxuXG4gIG9uU3VibWl0KGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5zdWJtaXQuZW1pdCh0aGlzLmZvcm0udmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmZvcm0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0T3JpZW50YXRpb25DbGFzcygpIHtcbiAgICBzd2l0Y2ggKHRoaXMuZGlyZWN0aW9uKSB7XG4gICAgICBjYXNlICdjb2x1bW4nOlxuICAgICAgICB0aGlzLm9yaWVudGF0aW9uQ2xhc3MgPSAnZHluYW1pYy1mb3JtLWNvbHVtbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncm93JzpcbiAgICAgICAgdGhpcy5vcmllbnRhdGlvbkNsYXNzID0gJ2R5bmFtaWMtZm9ybS1yb3cnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2dyaWQnOlxuICAgICAgICB0aGlzLm9yaWVudGF0aW9uQ2xhc3MgPSAnZHluYW1pYy1mb3JtLWdyaWQnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2lubGluZS1ncmlkJzpcbiAgICAgICAgdGhpcy5vcmllbnRhdGlvbkNsYXNzID0gJ2R5bmFtaWMtZm9ybS1pbmxpbmUtZ3JpZCc7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb3JtKCkge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuZm9ybS5jb250cm9scykuZmlsdGVyKGtleSA9PiB7XG4gICAgICByZXR1cm4gIXRoaXMuZmllbGRzLm1hcChmaWVsZCA9PiBmaWVsZC5uYW1lKS5pbmNsdWRlcyhrZXkpO1xuICAgIH0pLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIHRoaXMuZm9ybS5yZW1vdmVDb250cm9sKGtleSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZpZWxkc1xuICAgICAgLy8gLmZpbHRlcihmaWVsZCA9PiAhdGhpcy5mb3JtLmNvbnRyb2xzW2ZpZWxkLm5hbWVdKVxuICAgICAgLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gRW51bVR5cGUubGluZUJyZWFrKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9sc1tmaWVsZC5uYW1lXSkge1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnVwZGF0ZUNvbnRyb2woZmllbGQsIHRoaXMuZm9ybS5jb250cm9sc1tmaWVsZC5uYW1lXSk7XG4gICAgICAgICAgdGhpcy5mb3JtLnNldENvbnRyb2woZmllbGQubmFtZSwgY29udHJvbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNyZWF0ZUNvbnRyb2woZmllbGQpO1xuICAgICAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbChmaWVsZC5uYW1lLCBjb250cm9sKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbnRyb2woZmllbGQ6IElLbGVzRmllbGRDb25maWcsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgaWYgKGZpZWxkLnR5cGUgPT09IEVudW1UeXBlLmFycmF5KSB7XG4gICAgICBjb25zdCBhcnJheSA9IGNvbnRyb2wgYXMgRm9ybUFycmF5O1xuICAgICAgLypUT0RPKi9cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9IGVsc2UgaWYgKGZpZWxkLnR5cGUgPT09IEVudW1UeXBlLmdyb3VwKSB7XG4gICAgICBjb25zdCBncm91cCA9IGNvbnRyb2wgYXMgRm9ybUdyb3VwO1xuICAgICAgaWYgKGZpZWxkLmNvbGxlY3Rpb25zICYmIEFycmF5LmlzQXJyYXkoZmllbGQuY29sbGVjdGlvbnMpKSB7XG4gICAgICAgIGZpZWxkLmNvbGxlY3Rpb25zLmZvckVhY2goc3ViZmllbGQgPT4ge1xuICAgICAgICAgIGlmIChncm91cC5jb250cm9sc1tzdWJmaWVsZF0pIHtcbiAgICAgICAgICAgIGNvbnRyb2wgPSB0aGlzLnVwZGF0ZUNvbnRyb2woc3ViZmllbGQsIGdyb3VwLmNvbnRyb2xzW3N1YmZpZWxkXSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2wgPSB0aGlzLmNyZWF0ZUNvbnRyb2woc3ViZmllbGQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICAgICAgZ3JvdXAuc2V0Q29udHJvbChzdWJmaWVsZC5uYW1lLCBjb250cm9sLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGdyb3VwO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjb250cm9sLnNldFZhbGlkYXRvcnModGhpcy5iaW5kVmFsaWRhdGlvbnMoZmllbGQudmFsaWRhdGlvbnMgfHwgW10pKTtcbiAgICAgIC8vIGNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMuYmluZEFzeW5jVmFsaWRhdGlvbnMoZmllbGQuYXN5bmNWYWxpZGF0aW9ucyB8fCBbXSkpO1xuICAgICAgLy8gaWYgKGZpZWxkLnZhbHVlICYmIGNvbnRyb2wudmFsdWUgIT09IGZpZWxkLnZhbHVlKSB7XG4gICAgICAvLyAgICAgY29udHJvbC5zZXRWYWx1ZShmaWVsZC52YWx1ZSk7XG4gICAgICAvLyB9XG4gICAgICByZXR1cm4gY29udHJvbDtcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29udHJvbChmaWVsZDogSUtsZXNGaWVsZENvbmZpZyk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgaWYgKGZpZWxkLnR5cGUpIHtcbiAgICAgIHJldHVybiBjb21wb25lbnRNYXBwZXIuZmluZChjID0+IGMudHlwZSA9PT0gZmllbGQudHlwZSk/LmZhY3RvcnlcbiAgICAgICAgPyBjb21wb25lbnRNYXBwZXIuZmluZChjID0+IGMudHlwZSA9PT0gZmllbGQudHlwZSk/LmZhY3RvcnkoZmllbGQpIDoga2xlc0ZpZWxkQ29udHJvbEZhY3RvcnkoZmllbGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY29tcG9uZW50TWFwcGVyLmZpbmQoYyA9PiBjLmNvbXBvbmVudCA9PT0gZmllbGQuY29tcG9uZW50KT8uZmFjdG9yeSA/XG4gICAgICAgIGNvbXBvbmVudE1hcHBlci5maW5kKGMgPT4gYy5jb21wb25lbnQgPT09IGZpZWxkLmNvbXBvbmVudCk/LmZhY3RvcnkoZmllbGQpIDoga2xlc0ZpZWxkQ29udHJvbEZhY3RvcnkoZmllbGQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRm9ybSgpIHtcbiAgICBjb25zdCBncm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xuXG4gICAgdGhpcy5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jcmVhdGVDb250cm9sKGZpZWxkKTtcbiAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woZmllbGQubmFtZSwgY29udHJvbCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBncm91cC5zZXRWYWxpZGF0b3JzKHRoaXMudmFsaWRhdG9ycy5tYXAodiA9PiB2LnZhbGlkYXRvcikpO1xuICAgIGdyb3VwLnNldEFzeW5jVmFsaWRhdG9ycyh0aGlzLmFzeW5jVmFsaWRhdG9ycy5tYXAodiA9PiB2LnZhbGlkYXRvcikpO1xuXG4gICAgcmV0dXJuIGdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKSB7XG4gICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcbiAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9saWIvZHluYW1pYy1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQThHLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25MLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFJcEUsTUFBTSw0QkFBNEIsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0FBQ2hGLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUc7SUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDO0lBQ3hFLE9BQU8sNEJBQTRCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQUM7QUFFRixNQUFNLGdDQUFnQyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0FBQy9FLGVBQWUsQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHO0lBQ3RDLE1BQU0sTUFBTSxHQUFHLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FB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QUFPLENBQUMsQ0FBQzthQUN2QztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzNELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBRXJFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLHFCQUFxQixDQUFDLFNBQTJCO1FBQ3ZELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBcktVLHdCQUF3QjttR0FBeEIsd0JBQXdCLG9UQXZCekI7Ozs7Ozs7Ozs7OztLQVlQOzs0RkFXUSx3QkFBd0I7a0JBMUJwQyxTQUFTOytCQUNFLGlCQUFpQixZQUNqQix1QkFBdUIsWUFDdkI7Ozs7Ozs7Ozs7OztLQVlQO3VGQVlNLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUUsU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25Jbml0LCBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvckZuLCBBc3luY1ZhbGlkYXRvckZuLCBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUdyb3VwLCBGb3JtQ29udHJvbERpcmVjdGl2ZSwgRm9ybUNvbnRyb2xOYW1lIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29tcG9uZW50TWFwcGVyIH0gZnJvbSAnLi9kZWNvcmF0b3JzL2NvbXBvbmVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgRW51bVR5cGUgfSBmcm9tICcuL2VudW1zL3R5cGUuZW51bSc7XG5pbXBvcnQgeyBrbGVzRmllbGRDb250cm9sRmFjdG9yeSB9IGZyb20gJy4vZmFjdG9yaWVzL2ZpZWxkLmZhY3RvcnknO1xuaW1wb3J0IHsgSUtsZXNGaWVsZENvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy9maWVsZC5jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IElLbGVzVmFsaWRhdG9yIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3ZhbGlkYXRvci5pbnRlcmZhY2UnO1xuXG5jb25zdCBvcmlnaW5Gb3JtQ29udHJvbE5nT25DaGFuZ2VzID0gRm9ybUNvbnRyb2xEaXJlY3RpdmUucHJvdG90eXBlLm5nT25DaGFuZ2VzO1xuRm9ybUNvbnRyb2xEaXJlY3RpdmUucHJvdG90eXBlLm5nT25DaGFuZ2VzID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmZvcm0ubmF0aXZlRWxlbWVudCA9IHRoaXMudmFsdWVBY2Nlc3Nvci5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudDtcbiAgcmV0dXJuIG9yaWdpbkZvcm1Db250cm9sTmdPbkNoYW5nZXMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5cbmNvbnN0IG9yaWdpbkZvcm1Db250cm9sTmFtZU5nT25DaGFuZ2VzID0gRm9ybUNvbnRyb2xOYW1lLnByb3RvdHlwZS5uZ09uQ2hhbmdlcztcbkZvcm1Db250cm9sTmFtZS5wcm90b3R5cGUubmdPbkNoYW5nZXMgPSBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHJlc3VsdCA9IG9yaWdpbkZvcm1Db250cm9sTmFtZU5nT25DaGFuZ2VzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIHRoaXMuY29udHJvbC5uYXRpdmVFbGVtZW50ID0gdGhpcy52YWx1ZUFjY2Vzc29yLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50O1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxuQENvbXBvbmVudCh7XG4gIGV4cG9ydEFzOiAna2xlc0R5bmFtaWNGb3JtJyxcbiAgc2VsZWN0b3I6ICdhcHAta2xlcy1keW5hbWljLWZvcm0nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxmb3JtIGNsYXNzPVwie3tvcmllbnRhdGlvbkNsYXNzfX1cIiBbbmdDbGFzc109XCJmb3JtQ2xhc3NcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiAoc3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIj5cbiAgICAgICAgQGZvciAoZmllbGQgb2YgZmllbGRzOyB0cmFjayBmaWVsZC5uYW1lKSB7XG4gICAgICAgICAgICBAaWYgKGZpZWxkLnZpc2libGUgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBrbGVzRHluYW1pY0ZpZWxkIFtmaWVsZF09XCJmaWVsZFwiIFtncm91cF09XCJmb3JtXCIgW3NpYmxpbmdGaWVsZHNdPVwiZmllbGRzXCI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChmb3JtICYmIGZvcm0uZXJyb3JzKXtcbiAgICAgICAgICA8bWF0LWVycm9yIG1hdEVycm9yRm9ybSBbZm9ybV09XCJmb3JtXCIgW3ZhbGlkYXRpb25zXT1cInZhbGlkYXRvcnNcIiBbYXN5bmNWYWxpZGF0aW9uc109XCJhc3luY1ZhbGlkYXRvcnNcIj48L21hdC1lcnJvcj5cbiAgICAgICAgfVxuICAgIDwvZm9ybT5cbiAgICBgLFxuICBzdHlsZXM6IFtcbiAgICAnLmR5bmFtaWMtZm9ybS1jb2x1bW4geyBkaXNwbGF5OiBmbGV4O2ZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0nLFxuICAgICcuZHluYW1pYy1mb3JtLWNvbHVtbiA+ICogeyB3aWR0aDogMTAwJTsgfScsXG4gICAgJy5keW5hbWljLWZvcm0tcm93IHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGZsZXgtd3JhcDp3cmFwOyBnYXA6MTBweDsgYWxpZ24taXRlbXM6IGJhc2VsaW5lfScsXG4gICAgJy5keW5hbWljLWZvcm0tcm93ID4gKiB7IHdpZHRoOiAxMDAlOyB9JyxcbiAgICAnLmR5bmFtaWMtZm9ybS1ncmlkIHsgZGlzcGxheTogZ3JpZDsgfScsXG4gICAgJy5keW5hbWljLWZvcm0taW5saW5lLWdyaWQgeyBkaXNwbGF5OiBpbmxpbmUtZ3JpZDsgfScsXG4gIF1cblxufSlcbmV4cG9ydCBjbGFzcyBLbGVzRHluYW1pY0Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGZpZWxkczogSUtsZXNGaWVsZENvbmZpZ1tdID0gW107XG4gIEBJbnB1dCgpIHZhbGlkYXRvcnM6IElLbGVzVmFsaWRhdG9yPFZhbGlkYXRvckZuPltdID0gW107XG4gIEBJbnB1dCgpIGFzeW5jVmFsaWRhdG9yczogSUtsZXNWYWxpZGF0b3I8QXN5bmNWYWxpZGF0b3JGbj5bXSA9IFtdO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIHN1Ym1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIF9vbkxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKSBkaXJlY3Rpb246ICdjb2x1bW4nIHwgJ3JvdycgfCAnZ3JpZCcgfCAnaW5saW5lLWdyaWQnID0gJ2NvbHVtbic7XG4gIEBJbnB1dCgpIGZvcm1DbGFzczogc3RyaW5nIHwgc3RyaW5nW10gfCBTZXQ8c3RyaW5nPiB8IHsgW2tsYXNzOiBzdHJpbmddOiBhbnk7IH07XG5cbiAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgb3JpZW50YXRpb25DbGFzczogJ2R5bmFtaWMtZm9ybS1jb2x1bW4nIHwgJ2R5bmFtaWMtZm9ybS1yb3cnIHwgJ2R5bmFtaWMtZm9ybS1ncmlkJyB8ICdkeW5hbWljLWZvcm0taW5saW5lLWdyaWQnID0gJ2R5bmFtaWMtZm9ybS1jb2x1bW4nO1xuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLnZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyKSB7IH1cblxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIHRoaXMuc2V0T3JpZW50YXRpb25DbGFzcygpO1xuICAgIHRoaXMuX29uTG9hZGVkLmVtaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIWNoYW5nZXMuZmllbGRzPy5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy51cGRhdGVGb3JtKCk7XG4gICAgICB0aGlzLl9vbkxvYWRlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgaWYgKCFjaGFuZ2VzLnZhbGlkYXRvcnM/LmZpcnN0Q2hhbmdlICYmIHRoaXMuZm9ybSkge1xuICAgICAgdGhpcy5mb3JtLnNldFZhbGlkYXRvcnModGhpcy52YWxpZGF0b3JzLm1hcCh2ID0+IHYudmFsaWRhdG9yKSk7XG4gICAgfVxuXG4gICAgaWYgKCFjaGFuZ2VzLmFzeW5jVmFsaWRhdG9ycz8uZmlyc3RDaGFuZ2UgJiYgdGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmZvcm0uc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMuYXN5bmNWYWxpZGF0b3JzLm1hcCh2ID0+IHYudmFsaWRhdG9yKSk7XG4gICAgfVxuXG4gICAgaWYgKCFjaGFuZ2VzLmRpcmVjdGlvbj8uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMub3JpZW50YXRpb25DbGFzcyA9IHRoaXMuZGlyZWN0aW9uID09PSAncm93JyA/ICdkeW5hbWljLWZvcm0tcm93JyA6ICdkeW5hbWljLWZvcm0tY29sdW1uJztcbiAgICB9XG5cbiAgfVxuXG4gIG9uU3VibWl0KGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5zdWJtaXQuZW1pdCh0aGlzLmZvcm0udmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmZvcm0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0T3JpZW50YXRpb25DbGFzcygpIHtcbiAgICBzd2l0Y2ggKHRoaXMuZGlyZWN0aW9uKSB7XG4gICAgICBjYXNlICdjb2x1bW4nOlxuICAgICAgICB0aGlzLm9yaWVudGF0aW9uQ2xhc3MgPSAnZHluYW1pYy1mb3JtLWNvbHVtbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncm93JzpcbiAgICAgICAgdGhpcy5vcmllbnRhdGlvbkNsYXNzID0gJ2R5bmFtaWMtZm9ybS1yb3cnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2dyaWQnOlxuICAgICAgICB0aGlzLm9yaWVudGF0aW9uQ2xhc3MgPSAnZHluYW1pYy1mb3JtLWdyaWQnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2lubGluZS1ncmlkJzpcbiAgICAgICAgdGhpcy5vcmllbnRhdGlvbkNsYXNzID0gJ2R5bmFtaWMtZm9ybS1pbmxpbmUtZ3JpZCc7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb3JtKCkge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuZm9ybS5jb250cm9scykuZmlsdGVyKGtleSA9PiB7XG4gICAgICByZXR1cm4gIXRoaXMuZmllbGRzLm1hcChmaWVsZCA9PiBmaWVsZC5uYW1lKS5pbmNsdWRlcyhrZXkpO1xuICAgIH0pLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIHRoaXMuZm9ybS5yZW1vdmVDb250cm9sKGtleSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZpZWxkc1xuICAgICAgLy8gLmZpbHRlcihmaWVsZCA9PiAhdGhpcy5mb3JtLmNvbnRyb2xzW2ZpZWxkLm5hbWVdKVxuICAgICAgLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gRW51bVR5cGUubGluZUJyZWFrKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9sc1tmaWVsZC5uYW1lXSkge1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnVwZGF0ZUNvbnRyb2woZmllbGQsIHRoaXMuZm9ybS5jb250cm9sc1tmaWVsZC5uYW1lXSk7XG4gICAgICAgICAgdGhpcy5mb3JtLnNldENvbnRyb2woZmllbGQubmFtZSwgY29udHJvbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNyZWF0ZUNvbnRyb2woZmllbGQpO1xuICAgICAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbChmaWVsZC5uYW1lLCBjb250cm9sKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbnRyb2woZmllbGQ6IElLbGVzRmllbGRDb25maWcsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgaWYgKGZpZWxkLnR5cGUgPT09IEVudW1UeXBlLmFycmF5KSB7XG4gICAgICBjb25zdCBhcnJheSA9IGNvbnRyb2wgYXMgRm9ybUFycmF5O1xuICAgICAgLypUT0RPKi9cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9IGVsc2UgaWYgKGZpZWxkLnR5cGUgPT09IEVudW1UeXBlLmdyb3VwKSB7XG4gICAgICBjb25zdCBncm91cCA9IGNvbnRyb2wgYXMgRm9ybUdyb3VwO1xuICAgICAgaWYgKGZpZWxkLmNvbGxlY3Rpb25zICYmIEFycmF5LmlzQXJyYXkoZmllbGQuY29sbGVjdGlvbnMpKSB7XG4gICAgICAgIGZpZWxkLmNvbGxlY3Rpb25zLmZvckVhY2goc3ViZmllbGQgPT4ge1xuICAgICAgICAgIGlmIChncm91cC5jb250cm9sc1tzdWJmaWVsZF0pIHtcbiAgICAgICAgICAgIGNvbnRyb2wgPSB0aGlzLnVwZGF0ZUNvbnRyb2woc3ViZmllbGQsIGdyb3VwLmNvbnRyb2xzW3N1YmZpZWxkXSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2wgPSB0aGlzLmNyZWF0ZUNvbnRyb2woc3ViZmllbGQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICAgICAgZ3JvdXAuc2V0Q29udHJvbChzdWJmaWVsZC5uYW1lLCBjb250cm9sLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGdyb3VwO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjb250cm9sLnNldFZhbGlkYXRvcnModGhpcy5iaW5kVmFsaWRhdGlvbnMoZmllbGQudmFsaWRhdGlvbnMgfHwgW10pKTtcbiAgICAgIC8vIGNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMuYmluZEFzeW5jVmFsaWRhdGlvbnMoZmllbGQuYXN5bmNWYWxpZGF0aW9ucyB8fCBbXSkpO1xuICAgICAgLy8gaWYgKGZpZWxkLnZhbHVlICYmIGNvbnRyb2wudmFsdWUgIT09IGZpZWxkLnZhbHVlKSB7XG4gICAgICAvLyAgICAgY29udHJvbC5zZXRWYWx1ZShmaWVsZC52YWx1ZSk7XG4gICAgICAvLyB9XG4gICAgICByZXR1cm4gY29udHJvbDtcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29udHJvbChmaWVsZDogSUtsZXNGaWVsZENvbmZpZyk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgaWYgKGZpZWxkLnR5cGUpIHtcbiAgICAgIHJldHVybiBjb21wb25lbnRNYXBwZXIuZmluZChjID0+IGMudHlwZSA9PT0gZmllbGQudHlwZSk/LmZhY3RvcnlcbiAgICAgICAgPyBjb21wb25lbnRNYXBwZXIuZmluZChjID0+IGMudHlwZSA9PT0gZmllbGQudHlwZSk/LmZhY3RvcnkoZmllbGQpIDoga2xlc0ZpZWxkQ29udHJvbEZhY3RvcnkoZmllbGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY29tcG9uZW50TWFwcGVyLmZpbmQoYyA9PiBjLmNvbXBvbmVudCA9PT0gZmllbGQuY29tcG9uZW50KT8uZmFjdG9yeSA/XG4gICAgICAgIGNvbXBvbmVudE1hcHBlci5maW5kKGMgPT4gYy5jb21wb25lbnQgPT09IGZpZWxkLmNvbXBvbmVudCk/LmZhY3RvcnkoZmllbGQpIDoga2xlc0ZpZWxkQ29udHJvbEZhY3RvcnkoZmllbGQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRm9ybSgpIHtcbiAgICBjb25zdCBncm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xuXG4gICAgdGhpcy5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jcmVhdGVDb250cm9sKGZpZWxkKTtcbiAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woZmllbGQubmFtZSwgY29udHJvbCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBncm91cC5zZXRWYWxpZGF0b3JzKHRoaXMudmFsaWRhdG9ycy5tYXAodiA9PiB2LnZhbGlkYXRvcikpO1xuICAgIGdyb3VwLnNldEFzeW5jVmFsaWRhdG9ycyh0aGlzLmFzeW5jVmFsaWRhdG9ycy5tYXAodiA9PiB2LnZhbGlkYXRvcikpO1xuXG4gICAgcmV0dXJuIGdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKSB7XG4gICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcbiAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -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.3.11", ngImport: i0, type: KlesFormArrayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: KlesFormArrayComponent, selector: "kles-array", usesInheritance: true, ngImport: i0, template: `
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormArrayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", 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.3.11", ngImport: i0, type: KlesFormArrayComponent, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", 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.3.11", ngImport: i0, type: KlesFormBadgeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: KlesFormBadgeComponent, selector: "kles-form-badge", usesInheritance: true, ngImport: i0, template: `
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormBadgeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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.3.11", ngImport: i0, type: KlesFormBadgeComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormBadgeComponent, decorators: [{
29
29
  type: Component,
30
30
  args: [{
31
31
  selector: 'kles-form-badge',
@@ -10,8 +10,8 @@ export class KlesFormFabComponent extends KlesFieldAbstract {
10
10
  ngOnDestroy() {
11
11
  super.ngOnDestroy();
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesFormFabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: KlesFormFabComponent, selector: "kles-form-fab", usesInheritance: true, ngImport: i0, template: `
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormFabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KlesFormFabComponent, selector: "kles-form-fab", usesInheritance: true, ngImport: i0, template: `
15
15
  <div [formGroup]="group">
16
16
  <kles-fab
17
17
  [attr.id]="field.id" [classButton]="field.ngClass"
@@ -27,7 +27,7 @@ export class KlesFormFabComponent 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.KlesFabComponent, selector: "kles-fab" }] }); }
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesFormFabComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormFabComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: 'kles-form-fab', template: `
33
33
  <div [formGroup]="group">
@@ -10,8 +10,8 @@ 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.3.11", ngImport: i0, type: KlesFormButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: KlesFormButtonComponent, selector: "kles-form-button", usesInheritance: true, ngImport: i0, template: `
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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"
@@ -28,7 +28,7 @@ export class KlesFormButtonComponent extends KlesFieldAbstract {
28
28
  </div>
29
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"] }] }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesFormButtonComponent, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormButtonComponent, decorators: [{
32
32
  type: Component,
33
33
  args: [{ selector: 'kles-form-button', template: `
34
34
  <div [formGroup]="group">
@@ -10,8 +10,8 @@ export class KlesFormIconButtonComponent extends KlesFieldAbstract {
10
10
  ngOnDestroy() {
11
11
  super.ngOnDestroy();
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesFormIconButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: KlesFormIconButtonComponent, selector: "kles-form-icon-button", usesInheritance: true, ngImport: i0, template: `
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormIconButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KlesFormIconButtonComponent, selector: "kles-form-icon-button", usesInheritance: true, ngImport: i0, template: `
15
15
  <div [formGroup]="group">
16
16
  <kles-icon-button
17
17
  [attr.id]="field.id" [classButton]="field.ngClass"
@@ -27,7 +27,7 @@ export class KlesFormIconButtonComponent 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.KlesIconButtonComponent, selector: "kles-icon-button" }] }); }
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesFormIconButtonComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormIconButtonComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: 'kles-form-icon-button', template: `
33
33
  <div [formGroup]="group">
@@ -10,8 +10,8 @@ export class KlesFormMiniFabComponent extends KlesFieldAbstract {
10
10
  ngOnDestroy() {
11
11
  super.ngOnDestroy();
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesFormMiniFabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: KlesFormMiniFabComponent, selector: "kles-form-mini-fab", usesInheritance: true, ngImport: i0, template: `
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormMiniFabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KlesFormMiniFabComponent, selector: "kles-form-mini-fab", usesInheritance: true, ngImport: i0, template: `
15
15
  <div [formGroup]="group">
16
16
  <kles-mini-fab
17
17
  [attr.id]="field.id" [classButton]="field.ngClass"
@@ -27,7 +27,7 @@ export class KlesFormMiniFabComponent 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.KlesMiniFabComponent, selector: "kles-mini-fab" }] }); }
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesFormMiniFabComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormMiniFabComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: 'kles-form-mini-fab', template: `
33
33
  <div [formGroup]="group">
@@ -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.3.11", ngImport: i0, type: KlesFormButtonToogleGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", 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.3.12", ngImport: i0, type: KlesFormButtonToogleGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", 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", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], 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.3.11", ngImport: i0, type: KlesFormButtonToogleGroupComponent, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", 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.3.11", ngImport: i0, type: KlesFormButtonCheckerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: KlesFormButtonCheckerComponent, selector: "kles-form-button-checker", usesInheritance: true, ngImport: i0, template: `
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormButtonCheckerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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.3.11", ngImport: i0, type: KlesFormButtonCheckerComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", 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.3.11", ngImport: i0, type: KlesFormButtonFileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: KlesFormButtonFileComponent, selector: "kles-form-button-file", usesInheritance: true, ngImport: i0, template: `
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormButtonFileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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.3.11", ngImport: i0, type: KlesFormButtonFileComponent, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormButtonFileComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{ selector: 'kles-form-button-file', template: `
35
35
  <div [formGroup]="group">
@@ -7,7 +7,8 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/common";
8
8
  import * as i2 from "@angular/forms";
9
9
  import * as i3 from "@angular/material/tooltip";
10
- import * as i4 from "@ngx-translate/core";
10
+ import * as i4 from "../forms/indeterminate-checkbox";
11
+ import * as i5 from "@ngx-translate/core";
11
12
  let KlesFormCheckboxIndeterminateComponent = class KlesFormCheckboxIndeterminateComponent extends KlesFieldAbstract {
12
13
  ngOnInit() {
13
14
  super.ngOnInit();
@@ -15,20 +16,20 @@ let KlesFormCheckboxIndeterminateComponent = class KlesFormCheckboxIndeterminate
15
16
  ngOnDestroy() {
16
17
  super.ngOnDestroy();
17
18
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesFormCheckboxIndeterminateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: KlesFormCheckboxIndeterminateComponent, selector: "kles-form-checkbox-indeterminate", usesInheritance: true, ngImport: i0, template: `
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormCheckboxIndeterminateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KlesFormCheckboxIndeterminateComponent, selector: "kles-form-checkbox-indeterminate", usesInheritance: true, ngImport: i0, template: `
20
21
  <div [formGroup]="group" >
21
22
  <kles-checkbox-indeterminate matTooltip="{{field.tooltip}}" [attr.id]="field.id"
22
23
  [ngClass]="field.ngClass" [(indeterminate)]="field.indeterminate"
23
24
  [color]="field.color" [formControlName]="field.name">{{field.label | translate}}</kles-checkbox-indeterminate>
24
25
  </div>
25
- `, 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.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
26
+ `, 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.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.KlesIndeterminateCheckboxComponent, selector: "kles-checkbox-indeterminate", inputs: ["label"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
26
27
  };
27
28
  KlesFormCheckboxIndeterminateComponent = __decorate([
28
29
  FieldMapper({ type: EnumType.checkbox })
29
30
  ], KlesFormCheckboxIndeterminateComponent);
30
31
  export { KlesFormCheckboxIndeterminateComponent };
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesFormCheckboxIndeterminateComponent, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormCheckboxIndeterminateComponent, decorators: [{
32
33
  type: Component,
33
34
  args: [{ selector: 'kles-form-checkbox-indeterminate', template: `
34
35
  <div [formGroup]="group" >
@@ -38,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
38
39
  </div>
39
40
  ` }]
40
41
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGVzLW1hdGVyaWFsLWR5bmFtaWNmb3Jtcy9zcmMvbGliL2ZpZWxkcy9jaGVja2JveC1pbmRldGVybWluYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7O0FBYzlDLElBQU0sc0NBQXNDLEdBQTVDLE1BQU0sc0NBQXVDLFNBQVEsaUJBQWlCO0lBQzNFLFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVc7UUFDVCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEIsQ0FBQzsrR0FQVSxzQ0FBc0M7bUdBQXRDLHNDQUFzQywrRkFUdkM7Ozs7OztDQU1YOztBQUdZLHNDQUFzQztJQVpsRCxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0dBWTVCLHNDQUFzQyxDQVFsRDs7NEZBUlksc0NBQXNDO2tCQVhsRCxTQUFTOytCQUNFLGtDQUFrQyxZQUNsQzs7Ozs7O0NBTVgiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkTWFwcGVyIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9jb21wb25lbnQuZGVjb3JhdG9yJztcbmltcG9ydCB7IEVudW1UeXBlIH0gZnJvbSAnLi4vZW51bXMvdHlwZS5lbnVtJztcbmltcG9ydCB7IEtsZXNGaWVsZEFic3RyYWN0IH0gZnJvbSAnLi9maWVsZC5hYnN0cmFjdCc7XG5cbkBGaWVsZE1hcHBlcih7IHR5cGU6IEVudW1UeXBlLmNoZWNrYm94IH0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdrbGVzLWZvcm0tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCIgPlxuICAgICAgICA8a2xlcy1jaGVja2JveC1pbmRldGVybWluYXRlIG1hdFRvb2x0aXA9XCJ7e2ZpZWxkLnRvb2x0aXB9fVwiIFthdHRyLmlkXT1cImZpZWxkLmlkXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiZmllbGQubmdDbGFzc1wiIFsoaW5kZXRlcm1pbmF0ZSldPVwiZmllbGQuaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgIFtjb2xvcl09XCJmaWVsZC5jb2xvclwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiPnt7ZmllbGQubGFiZWwgfCB0cmFuc2xhdGV9fTwva2xlcy1jaGVja2JveC1pbmRldGVybWluYXRlPlxuICAgIDwvZGl2PlxuYCxcbiAgc3R5bGVzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBLbGVzRm9ybUNoZWNrYm94SW5kZXRlcm1pbmF0ZUNvbXBvbmVudCBleHRlbmRzIEtsZXNGaWVsZEFic3RyYWN0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgfVxufVxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGVzLW1hdGVyaWFsLWR5bmFtaWNmb3Jtcy9zcmMvbGliL2ZpZWxkcy9jaGVja2JveC1pbmRldGVybWluYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7OztBQWM5QyxJQUFNLHNDQUFzQyxHQUE1QyxNQUFNLHNDQUF1QyxTQUFRLGlCQUFpQjtJQUMzRSxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXO1FBQ1QsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7K0dBUFUsc0NBQXNDO21HQUF0QyxzQ0FBc0MsK0ZBVHZDOzs7Ozs7Q0FNWDs7QUFHWSxzQ0FBc0M7SUFabEQsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztHQVk1QixzQ0FBc0MsQ0FRbEQ7OzRGQVJZLHNDQUFzQztrQkFYbEQsU0FBUzsrQkFDRSxrQ0FBa0MsWUFDbEM7Ozs7OztDQU1YIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWVsZE1hcHBlciB9IGZyb20gJy4uL2RlY29yYXRvcnMvY29tcG9uZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBFbnVtVHlwZSB9IGZyb20gJy4uL2VudW1zL3R5cGUuZW51bSc7XG5pbXBvcnQgeyBLbGVzRmllbGRBYnN0cmFjdCB9IGZyb20gJy4vZmllbGQuYWJzdHJhY3QnO1xuXG5ARmllbGRNYXBwZXIoeyB0eXBlOiBFbnVtVHlwZS5jaGVja2JveCB9KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2xlcy1mb3JtLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJncm91cFwiID5cbiAgICAgICAgPGtsZXMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSBtYXRUb29sdGlwPVwie3tmaWVsZC50b29sdGlwfX1cIiBbYXR0ci5pZF09XCJmaWVsZC5pZFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLm5nQ2xhc3NcIiBbKGluZGV0ZXJtaW5hdGUpXT1cImZpZWxkLmluZGV0ZXJtaW5hdGVcIlxuICAgICAgICBbY29sb3JdPVwiZmllbGQuY29sb3JcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIj57e2ZpZWxkLmxhYmVsIHwgdHJhbnNsYXRlfX08L2tsZXMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZT5cbiAgICA8L2Rpdj5cbmAsXG4gIHN0eWxlczogW11cbn0pXG5leHBvcnQgY2xhc3MgS2xlc0Zvcm1DaGVja2JveEluZGV0ZXJtaW5hdGVDb21wb25lbnQgZXh0ZW5kcyBLbGVzRmllbGRBYnN0cmFjdCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==
@@ -16,8 +16,8 @@ let KlesFormCheckboxComponent = class KlesFormCheckboxComponent extends KlesFiel
16
16
  ngOnDestroy() {
17
17
  super.ngOnDestroy();
18
18
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesFormCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: KlesFormCheckboxComponent, selector: "kles-form-checkbox", usesInheritance: true, ngImport: i0, template: `
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KlesFormCheckboxComponent, selector: "kles-form-checkbox", usesInheritance: true, ngImport: i0, template: `
21
21
  <div [formGroup]="group" >
22
22
  <mat-checkbox matTooltip="{{field.tooltip}}" [attr.id]="field.id"
23
23
  [ngClass]="field.ngClass" [(indeterminate)]="field.indeterminate"
@@ -29,7 +29,7 @@ KlesFormCheckboxComponent = __decorate([
29
29
  FieldMapper({ type: EnumType.checkbox })
30
30
  ], KlesFormCheckboxComponent);
31
31
  export { KlesFormCheckboxComponent };
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesFormCheckboxComponent, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormCheckboxComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{ selector: 'kles-form-checkbox', template: `
35
35
  <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.3.11", ngImport: i0, type: KlesFormChipComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: KlesFormChipComponent, selector: "kles-form-chip", usesInheritance: true, ngImport: i0, template: `
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormChipComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", 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: ["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: ["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.3.11", ngImport: i0, type: KlesFormChipComponent, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", 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.3.11", ngImport: i0, type: KlesFormClearComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: KlesFormClearComponent, selector: "kles-form-clear", ngImport: i0, template: `
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormClearComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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.3.11", ngImport: i0, type: KlesFormClearComponent, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormClearComponent, decorators: [{
19
19
  type: Component,
20
20
  args: [{
21
21
  selector: 'kles-form-clear',
@@ -74,8 +74,8 @@ export class KlesFormColorComponent extends KlesFieldAbstract {
74
74
  ngOnDestroy() {
75
75
  super.ngOnDestroy();
76
76
  }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesFormColorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: KlesFormColorComponent, selector: "kles-form-color", usesInheritance: true, ngImport: i0, template: `
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormColorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: KlesFormColorComponent, selector: "kles-form-color", usesInheritance: true, ngImport: i0, template: `
79
79
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [formGroup]="group" class="form-element"
80
80
  [colorPicker]="group.get(field.name).value"
81
81
  (colorPickerChange)="group.get(field.name).setValue($event)"
@@ -102,7 +102,7 @@ export class KlesFormColorComponent extends KlesFieldAbstract {
102
102
  </mat-form-field>
103
103
  `, isInline: true, styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.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: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i6.ColorPickerDirective, selector: "[colorPicker]", inputs: ["colorPicker", "cpWidth", "cpHeight", "cpToggle", "cpDisabled", "cpIgnoredElements", "cpFallbackColor", "cpColorMode", "cpCmykEnabled", "cpOutputFormat", "cpAlphaChannel", "cpDisableInput", "cpDialogDisplay", "cpSaveClickOutside", "cpCloseClickOutside", "cpUseRootViewContainer", "cpPosition", "cpPositionOffset", "cpPositionRelativeToArrow", "cpOKButton", "cpOKButtonText", "cpOKButtonClass", "cpCancelButton", "cpCancelButtonText", "cpCancelButtonClass", "cpEyeDropper", "cpPresetLabel", "cpPresetColors", "cpPresetColorsClass", "cpMaxPresetColorsLength", "cpPresetEmptyMessage", "cpPresetEmptyMessageClass", "cpAddColorButton", "cpAddColorButtonText", "cpAddColorButtonClass", "cpRemoveColorButtonClass", "cpArrowPosition", "cpExtraTemplate"], outputs: ["cpInputChange", "cpToggleChange", "cpSliderChange", "cpSliderDragEnd", "cpSliderDragStart", "colorPickerOpen", "colorPickerClose", "colorPickerCancel", "colorPickerSelect", "colorPickerChange", "cpCmykColorChange", "cpPresetColorsChange"], exportAs: ["ngxColorPicker"] }, { kind: "component", type: i7.MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
104
104
  }
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: KlesFormColorComponent, decorators: [{
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormColorComponent, decorators: [{
106
106
  type: Component,
107
107
  args: [{ selector: 'kles-form-color', template: `
108
108
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [formGroup]="group" class="form-element"