@tft/crispr-forms 13.0.22 → 14.0.1-rc.1

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 (83) hide show
  1. package/README.md +77 -76
  2. package/esm2020/lib/abstracts/autocomplete-field.abstract.mjs +3 -3
  3. package/esm2020/lib/abstracts/crispr-field.abstract.mjs +8 -5
  4. package/esm2020/lib/crispr-forms.module.mjs +27 -36
  5. package/esm2020/lib/field-container/field-container.component.mjs +12 -34
  6. package/esm2020/lib/field.directive.mjs +7 -28
  7. package/esm2020/lib/form/form.component.mjs +20 -11
  8. package/esm2020/lib/form-group-list/form-group-list.component.mjs +25 -10
  9. package/esm2020/lib/form-group-list/index.mjs +1 -2
  10. package/esm2020/lib/form.helpers.mjs +1 -1
  11. package/esm2020/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.mjs +34 -18
  12. package/esm2020/lib/material/autocomplete-field/autocomplete-field.component.mjs +28 -16
  13. package/esm2020/lib/material/button/button.component.mjs +21 -11
  14. package/esm2020/lib/material/checkbox-field/checkbox-field.component.mjs +20 -11
  15. package/esm2020/lib/material/datepicker-field/datepicker-field.component.mjs +27 -13
  16. package/esm2020/lib/material/divider/divider.component.mjs +12 -7
  17. package/esm2020/lib/material/file-upload/file-dropzone.directive.mjs +6 -5
  18. package/esm2020/lib/material/file-upload/file-upload.component.mjs +24 -62
  19. package/esm2020/lib/material/heading/heading.component.mjs +13 -37
  20. package/esm2020/lib/material/image-upload-field/image-upload-field.component.mjs +25 -65
  21. package/esm2020/lib/material/index.mjs +1 -2
  22. package/esm2020/lib/material/info/info.component.mjs +12 -35
  23. package/esm2020/lib/material/input-field/input-field.component.mjs +22 -12
  24. package/esm2020/lib/material/option/option.component.mjs +11 -7
  25. package/esm2020/lib/material/radio-field/radio-field.component.mjs +17 -10
  26. package/esm2020/lib/material/select-field/select-field.component.mjs +29 -15
  27. package/esm2020/lib/material/selected-file/selected-file.component.mjs +11 -32
  28. package/esm2020/lib/material/slider-field/slider-field.component.mjs +20 -10
  29. package/esm2020/lib/material/textarea-field/textarea-field.component.mjs +22 -12
  30. package/esm2020/lib/material/unit-conversion-field/unit-conversion-field.component.mjs +28 -16
  31. package/esm2020/lib/models/button.config.mjs +1 -1
  32. package/esm2020/lib/models/crispr-field.config.mjs +1 -1
  33. package/esm2020/lib/models/datepicker-field.config.mjs +1 -1
  34. package/esm2020/lib/pipes/crispr-pipes.module.mjs +5 -7
  35. package/esm2020/lib/pipes/initial-control-value.pipe.mjs +3 -3
  36. package/esm2020/lib/sub-group/sub-group.component.mjs +8 -8
  37. package/esm2020/lib/sub-group/sub-group.module.mjs +15 -18
  38. package/fesm2015/tft-crispr-forms.mjs +428 -718
  39. package/fesm2015/tft-crispr-forms.mjs.map +1 -1
  40. package/fesm2020/tft-crispr-forms.mjs +422 -712
  41. package/fesm2020/tft-crispr-forms.mjs.map +1 -1
  42. package/lib/abstracts/autocomplete-field.abstract.d.ts +4 -4
  43. package/lib/abstracts/crispr-field.abstract.d.ts +1 -1
  44. package/lib/crispr-forms.module.d.ts +10 -11
  45. package/lib/field-container/field-container.component.d.ts +2 -9
  46. package/lib/field.directive.d.ts +1 -7
  47. package/lib/form/form.component.d.ts +2 -2
  48. package/lib/form-group-list/form-group-list.component.d.ts +3 -3
  49. package/lib/form-group-list/index.d.ts +0 -1
  50. package/lib/form.helpers.d.ts +2 -2
  51. package/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.d.ts +1 -1
  52. package/lib/material/autocomplete-field/autocomplete-field.component.d.ts +1 -1
  53. package/lib/material/button/button.component.d.ts +1 -1
  54. package/lib/material/checkbox-field/checkbox-field.component.d.ts +3 -3
  55. package/lib/material/datepicker-field/datepicker-field.component.d.ts +5 -6
  56. package/lib/material/divider/divider.component.d.ts +1 -1
  57. package/lib/material/file-upload/file-dropzone.directive.d.ts +1 -1
  58. package/lib/material/file-upload/file-upload.component.d.ts +3 -18
  59. package/lib/material/heading/heading.component.d.ts +1 -9
  60. package/lib/material/image-upload-field/image-upload-field.component.d.ts +3 -18
  61. package/lib/material/index.d.ts +0 -1
  62. package/lib/material/info/info.component.d.ts +1 -9
  63. package/lib/material/input-field/input-field.component.d.ts +3 -3
  64. package/lib/material/option/option.component.d.ts +1 -1
  65. package/lib/material/radio-field/radio-field.component.d.ts +3 -3
  66. package/lib/material/select-field/select-field.component.d.ts +3 -3
  67. package/lib/material/selected-file/selected-file.component.d.ts +1 -8
  68. package/lib/material/slider-field/slider-field.component.d.ts +3 -3
  69. package/lib/material/textarea-field/textarea-field.component.d.ts +3 -4
  70. package/lib/material/unit-conversion-field/unit-conversion-field.component.d.ts +5 -5
  71. package/lib/models/crispr-field.config.d.ts +8 -1
  72. package/lib/models/datepicker-field.config.d.ts +3 -4
  73. package/lib/pipes/initial-control-value.pipe.d.ts +1 -1
  74. package/lib/sub-group/sub-group.component.d.ts +3 -3
  75. package/lib/sub-group/sub-group.module.d.ts +1 -1
  76. package/package.json +12 -14
  77. package/tft-crispr-forms-14.0.1-rc.1.tgz +0 -0
  78. package/esm2020/lib/form-group-list/form-group-list.module.mjs +0 -54
  79. package/esm2020/lib/material/material.module.mjs +0 -200
  80. package/lib/form-group-list/form-group-list.module.d.ts +0 -15
  81. package/lib/material/material.module.d.ts +0 -44
  82. package/tft-crispr-forms-13.0.22.tgz +0 -0
  83. package/tft-crispr-forms.d.ts +0 -5
@@ -1,13 +1,16 @@
1
1
  import { Component, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';
2
- import { FormGroup } from '@angular/forms';
2
+ import { ReactiveFormsModule, FormGroup } from '@angular/forms';
3
3
  import { buildFormGroupFromConfig } from '../form.helpers';
4
4
  import { Observable } from 'rxjs';
5
+ import { CommonModule } from '@angular/common';
6
+ import { CrisprFieldDirective } from '../field.directive';
7
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
8
+ import { CrisprPipesModule } from '../pipes/crispr-pipes.module';
5
9
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/forms";
7
- import * as i2 from "@tft/form-validation-handler";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "../field.directive";
10
- import * as i5 from "../pipes/initial-control-value.pipe";
10
+ import * as i1 from "@angular/common";
11
+ import * as i2 from "@angular/forms";
12
+ import * as i3 from "@tft/form-validation-handler";
13
+ import * as i4 from "../pipes/initial-control-value.pipe";
11
14
  export class CrisprFormComponent {
12
15
  constructor() {
13
16
  this.form = new FormGroup({});
@@ -29,11 +32,17 @@ export class CrisprFormComponent {
29
32
  this.submitTrigger.nativeElement.click();
30
33
  }
31
34
  }
32
- CrisprFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- CrisprFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: CrisprFormComponent, selector: "crispr-form", inputs: { config: "config", form: "form", value: "value" }, outputs: { submitted: "submitted", valueChanges: "valueChanges", statusChanges: "statusChanges" }, viewQueries: [{ propertyName: "submitTrigger", first: true, predicate: ["submitTrigger"], descendants: true }], ngImport: i0, template: "<form\n class=\"crispr-form\"\n [ngClass]=\"config.classes\"\n [formGroup]=\"form\"\n (ngSubmit)=\"handleSubmit()\"\n [autocomplete]=\"config.autocomplete || 'off'\"\n [errorDictionary]=\"config.errorDictionary\"\n #ngFormElement=\"ngForm\">\n\n <ng-container\n *ngFor=\"let field of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"form\">\n </ng-container>\n <!-- Hidden button, programmatically clicked when crispr form triggerSubmit function called.\n Uses a hidden button with type=\"submit\" because it will trigger both native form submit event\n (which the error handler has to listen for) and ngSubmit event -->\n <button #submitTrigger class=\"submit-trigger\" type=\"submit\">\n </button>\n</form>\n", styles: [".submit-trigger{display:none}\n"], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.ControlErrorsFormDirective, selector: "form", inputs: ["errorDictionary"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }], pipes: { "initialControlValue": i5.InitialControlValuePipe }, preserveWhitespaces: true });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFormComponent, decorators: [{
35
+ CrisprFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
+ CrisprFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: CrisprFormComponent, isStandalone: true, selector: "crispr-form", inputs: { config: "config", form: "form", value: "value" }, outputs: { submitted: "submitted", valueChanges: "valueChanges", statusChanges: "statusChanges" }, viewQueries: [{ propertyName: "submitTrigger", first: true, predicate: ["submitTrigger"], descendants: true }], ngImport: i0, template: "<form\n class=\"crispr-form\"\n [ngClass]=\"config.classes\"\n [formGroup]=\"form\"\n (ngSubmit)=\"handleSubmit()\"\n [autocomplete]=\"config.autocomplete || 'off'\"\n [errorDictionary]=\"config.errorDictionary\"\n #ngFormElement=\"ngForm\">\n\n <ng-container\n *ngFor=\"let field of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"form\">\n </ng-container>\n <!-- Hidden button, programmatically clicked when crispr form triggerSubmit function called.\n Uses a hidden button with type=\"submit\" because it will trigger both native form submit event\n (which the error handler has to listen for) and ngSubmit event -->\n <button #submitTrigger class=\"submit-trigger\" type=\"submit\">\n </button>\n</form>\n", styles: [".submit-trigger{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i3.ControlErrorsFormDirective, selector: "form", inputs: ["errorDictionary"] }, { kind: "directive", type: i3.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { kind: "ngmodule", type: CrisprPipesModule }, { kind: "pipe", type: i4.InitialControlValuePipe, name: "initialControlValue" }], preserveWhitespaces: true });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CrisprFormComponent, decorators: [{
35
38
  type: Component,
36
- args: [{ selector: 'crispr-form', template: "<form\n class=\"crispr-form\"\n [ngClass]=\"config.classes\"\n [formGroup]=\"form\"\n (ngSubmit)=\"handleSubmit()\"\n [autocomplete]=\"config.autocomplete || 'off'\"\n [errorDictionary]=\"config.errorDictionary\"\n #ngFormElement=\"ngForm\">\n\n <ng-container\n *ngFor=\"let field of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"form\">\n </ng-container>\n <!-- Hidden button, programmatically clicked when crispr form triggerSubmit function called.\n Uses a hidden button with type=\"submit\" because it will trigger both native form submit event\n (which the error handler has to listen for) and ngSubmit event -->\n <button #submitTrigger class=\"submit-trigger\" type=\"submit\">\n </button>\n</form>\n", styles: [".submit-trigger{display:none}\n"] }]
39
+ args: [{ selector: 'crispr-form', standalone: true, imports: [
40
+ CommonModule,
41
+ CrisprFieldDirective,
42
+ ReactiveFormsModule,
43
+ FormValidationHandlerModule,
44
+ CrisprPipesModule
45
+ ], template: "<form\n class=\"crispr-form\"\n [ngClass]=\"config.classes\"\n [formGroup]=\"form\"\n (ngSubmit)=\"handleSubmit()\"\n [autocomplete]=\"config.autocomplete || 'off'\"\n [errorDictionary]=\"config.errorDictionary\"\n #ngFormElement=\"ngForm\">\n\n <ng-container\n *ngFor=\"let field of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"form\">\n </ng-container>\n <!-- Hidden button, programmatically clicked when crispr form triggerSubmit function called.\n Uses a hidden button with type=\"submit\" because it will trigger both native form submit event\n (which the error handler has to listen for) and ngSubmit event -->\n <button #submitTrigger class=\"submit-trigger\" type=\"submit\">\n </button>\n</form>\n", styles: [".submit-trigger{display:none}\n"] }]
37
46
  }], propDecorators: { config: [{
38
47
  type: Input
39
48
  }], form: [{
@@ -50,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
50
59
  type: ViewChild,
51
60
  args: ['submitTrigger']
52
61
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUEyQixTQUFTLEVBQUUsVUFBVSxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUN6SixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFnQixVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFPaEQsTUFBTSxPQUFPLG1CQUFtQjtJQU5oQztRQVNXLFNBQUksR0FBYyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQyxVQUFLLEdBQXNCLElBQUksQ0FBQztRQUUvQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUNwRCxzRUFBc0U7UUFDNUQsaUJBQVksR0FBb0IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdkQsa0JBQWEsR0FBdUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7S0FpQnZFO0lBYkMsUUFBUTtRQUNOLHVHQUF1RztRQUN2Ryx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNDLENBQUM7O2dIQXpCVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixrVUNYaEMsMnlCQXNCQTsyRkRYYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsYUFBYTs4QkFPZCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNO2dCQUVHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFFcUIsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb250cm9sR3JvdXBWYWx1ZSwgRm9ybUNvbmZpZyB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBidWlsZEZvcm1Hcm91cEZyb21Db25maWcgfSBmcm9tICcuLi9mb3JtLmhlbHBlcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcmlzcHItZm9ybScsXG4gIHN0eWxlVXJsczogWydmb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIC8vIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENyaXNwckZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBpZiBubyBmb3JtIGhhcyBiZWVuIHBhc3NlZCBpbiBieSBjb25zdW1pbmcgY29tcG9uZW50LCB3ZSBjcmVhdGUgYW4gZW1wdHkgZ3JvdXAgdG8gYnVpbGQgb3V0XG4gIEBJbnB1dCgpIGNvbmZpZzogRm9ybUNvbmZpZztcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIEBJbnB1dCgpIHZhbHVlOiBDb250cm9sR3JvdXBWYWx1ZSA9IG51bGw7XG5cbiAgQE91dHB1dCgpIHN1Ym1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUdyb3VwPigpO1xuICAvLyBwcm94eSB2YWx1ZSBhbmQgc3RhdHVzIGNoYW5nZSBldmVudHMgdGhyb3VnaCB0byBjb25zdW1pbmcgY29tcG9uZW50XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXM7XG4gIEBPdXRwdXQoKSBzdGF0dXNDaGFuZ2VzOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmZvcm0uc3RhdHVzQ2hhbmdlcztcblxuICBAVmlld0NoaWxkKCdzdWJtaXRUcmlnZ2VyJykgc3VibWl0VHJpZ2dlcjogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gYnVpbGQgb3V0IHRoZSBmb3JtLCBub3RlIHRoYXQgd2UgcGFzcyBpbiB0aGUgZm9ybSBhcyB0aGUgdGhpcmQgYXJndW1lbnQgYW5kIHRoZSBmdW5jdGlvbiBtb2RpZmllcyBpdFxuICAgIGJ1aWxkRm9ybUdyb3VwRnJvbUNvbmZpZyh0aGlzLmNvbmZpZywgdGhpcy52YWx1ZSwgdGhpcy5mb3JtKTtcbiAgfVxuXG4gIGhhbmRsZVN1Ym1pdCgpIHtcbiAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIHRoaXMuc3VibWl0dGVkLmVtaXQodGhpcy5mb3JtKTtcbiAgfVxuXG4gIHRyaWdnZXJTdWJtaXQoKSB7XG4gICAgdGhpcy5zdWJtaXRUcmlnZ2VyLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxufVxuIiwiPGZvcm1cbiAgY2xhc3M9XCJjcmlzcHItZm9ybVwiXG4gIFtuZ0NsYXNzXT1cImNvbmZpZy5jbGFzc2VzXCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgKG5nU3VibWl0KT1cImhhbmRsZVN1Ym1pdCgpXCJcbiAgW2F1dG9jb21wbGV0ZV09XCJjb25maWcuYXV0b2NvbXBsZXRlIHx8ICdvZmYnXCJcbiAgW2Vycm9yRGljdGlvbmFyeV09XCJjb25maWcuZXJyb3JEaWN0aW9uYXJ5XCJcbiAgI25nRm9ybUVsZW1lbnQ9XCJuZ0Zvcm1cIj5cblxuICA8bmctY29udGFpbmVyXG4gICAgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGNvbmZpZy5maWVsZHM7XCJcbiAgICBjcmlzcHJGaWVsZFxuICAgIFt2YWx1ZV09XCJ2YWx1ZSB8IGluaXRpYWxDb250cm9sVmFsdWUgOiBmaWVsZFwiXG4gICAgW2NvbmZpZ109XCJmaWVsZFwiXG4gICAgW2dyb3VwXT1cImZvcm1cIj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDwhLS0gSGlkZGVuIGJ1dHRvbiwgcHJvZ3JhbW1hdGljYWxseSBjbGlja2VkIHdoZW4gY3Jpc3ByIGZvcm0gdHJpZ2dlclN1Ym1pdCBmdW5jdGlvbiBjYWxsZWQuXG4gICAgVXNlcyBhIGhpZGRlbiBidXR0b24gd2l0aCB0eXBlPVwic3VibWl0XCIgYmVjYXVzZSBpdCB3aWxsIHRyaWdnZXIgYm90aCBuYXRpdmUgZm9ybSBzdWJtaXQgZXZlbnRcbiAgICAod2hpY2ggdGhlIGVycm9yIGhhbmRsZXIgaGFzIHRvIGxpc3RlbiBmb3IpIGFuZCBuZ1N1Ym1pdCBldmVudCAgLS0+XG4gIDxidXR0b24gI3N1Ym1pdFRyaWdnZXIgY2xhc3M9XCJzdWJtaXQtdHJpZ2dlclwiIHR5cGU9XCJzdWJtaXRcIj5cbiAgPC9idXR0b24+XG48L2Zvcm0+XG4iXX0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7QUFlakUsTUFBTSxPQUFPLG1CQUFtQjtJQWRoQztRQWlCVyxTQUFJLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEMsVUFBSyxHQUFzQixJQUFJLENBQUM7UUFHL0IsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFDcEQsc0VBQXNFO1FBQzVELGlCQUFZLEdBQW9CLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3ZELGtCQUFhLEdBQXVCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0tBaUJ2RTtJQWJDLFFBQVE7UUFDTix1R0FBdUc7UUFDdkcsd0JBQXdCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQyxDQUFDOztnSEExQlUsbUJBQW1CO29HQUFuQixtQkFBbUIsc1ZDdkJoQywyeUJBc0JBLHdGRE5JLFlBQVksMFBBQ1osb0JBQW9CLCtGQUNwQixtQkFBbUIsb2JBQ25CLDJCQUEyQiwyUEFDM0IsaUJBQWlCOzJGQUdSLG1CQUFtQjtrQkFkL0IsU0FBUzsrQkFDRSxhQUFhLGNBSVgsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsaUJBQWlCO3FCQUNsQjs4QkFJUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHSSxTQUFTO3NCQUFsQixNQUFNO2dCQUVHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFFcUIsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb250cm9sR3JvdXBWYWx1ZSwgRm9ybUNvbmZpZyB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBidWlsZEZvcm1Hcm91cEZyb21Db25maWcgfSBmcm9tICcuLi9mb3JtLmhlbHBlcnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENyaXNwckZpZWxkRGlyZWN0aXZlIH0gZnJvbSAnLi4vZmllbGQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSB9IGZyb20gJ0B0ZnQvZm9ybS12YWxpZGF0aW9uLWhhbmRsZXInO1xuaW1wb3J0IHsgQ3Jpc3ByUGlwZXNNb2R1bGUgfSBmcm9tICcuLi9waXBlcy9jcmlzcHItcGlwZXMubW9kdWxlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1mb3JtJyxcbiAgc3R5bGVVcmxzOiBbJ2Zvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICdmb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgLy8gY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ3Jpc3ByRmllbGREaXJlY3RpdmUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGUsXG4gICAgQ3Jpc3ByUGlwZXNNb2R1bGVcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ3Jpc3ByRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIGlmIG5vIGZvcm0gaGFzIGJlZW4gcGFzc2VkIGluIGJ5IGNvbnN1bWluZyBjb21wb25lbnQsIHdlIGNyZWF0ZSBhbiBlbXB0eSBncm91cCB0byBidWlsZCBvdXRcbiAgQElucHV0KCkgY29uZmlnOiBGb3JtQ29uZmlnO1xuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgQElucHV0KCkgdmFsdWU6IENvbnRyb2xHcm91cFZhbHVlID0gbnVsbDtcblxuXG4gIEBPdXRwdXQoKSBzdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Hcm91cD4oKTtcbiAgLy8gcHJveHkgdmFsdWUgYW5kIHN0YXR1cyBjaGFuZ2UgZXZlbnRzIHRocm91Z2ggdG8gY29uc3VtaW5nIGNvbXBvbmVudFxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzO1xuICBAT3V0cHV0KCkgc3RhdHVzQ2hhbmdlczogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5mb3JtLnN0YXR1c0NoYW5nZXM7XG5cbiAgQFZpZXdDaGlsZCgnc3VibWl0VHJpZ2dlcicpIHN1Ym1pdFRyaWdnZXI6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIGJ1aWxkIG91dCB0aGUgZm9ybSwgbm90ZSB0aGF0IHdlIHBhc3MgaW4gdGhlIGZvcm0gYXMgdGhlIHRoaXJkIGFyZ3VtZW50IGFuZCB0aGUgZnVuY3Rpb24gbW9kaWZpZXMgaXRcbiAgICBidWlsZEZvcm1Hcm91cEZyb21Db25maWcodGhpcy5jb25maWcsIHRoaXMudmFsdWUsIHRoaXMuZm9ybSk7XG4gIH1cblxuICBoYW5kbGVTdWJtaXQoKSB7XG4gICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICB0aGlzLnN1Ym1pdHRlZC5lbWl0KHRoaXMuZm9ybSk7XG4gIH1cblxuICB0cmlnZ2VyU3VibWl0KCkge1xuICAgIHRoaXMuc3VibWl0VHJpZ2dlci5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gIH1cbn1cbiIsIjxmb3JtXG4gIGNsYXNzPVwiY3Jpc3ByLWZvcm1cIlxuICBbbmdDbGFzc109XCJjb25maWcuY2xhc3Nlc1wiXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gIChuZ1N1Ym1pdCk9XCJoYW5kbGVTdWJtaXQoKVwiXG4gIFthdXRvY29tcGxldGVdPVwiY29uZmlnLmF1dG9jb21wbGV0ZSB8fCAnb2ZmJ1wiXG4gIFtlcnJvckRpY3Rpb25hcnldPVwiY29uZmlnLmVycm9yRGljdGlvbmFyeVwiXG4gICNuZ0Zvcm1FbGVtZW50PVwibmdGb3JtXCI+XG5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBjb25maWcuZmllbGRzO1wiXG4gICAgY3Jpc3ByRmllbGRcbiAgICBbdmFsdWVdPVwidmFsdWUgfCBpbml0aWFsQ29udHJvbFZhbHVlIDogZmllbGRcIlxuICAgIFtjb25maWddPVwiZmllbGRcIlxuICAgIFtncm91cF09XCJmb3JtXCI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8IS0tIEhpZGRlbiBidXR0b24sIHByb2dyYW1tYXRpY2FsbHkgY2xpY2tlZCB3aGVuIGNyaXNwciBmb3JtIHRyaWdnZXJTdWJtaXQgZnVuY3Rpb24gY2FsbGVkLlxuICAgIFVzZXMgYSBoaWRkZW4gYnV0dG9uIHdpdGggdHlwZT1cInN1Ym1pdFwiIGJlY2F1c2UgaXQgd2lsbCB0cmlnZ2VyIGJvdGggbmF0aXZlIGZvcm0gc3VibWl0IGV2ZW50XG4gICAgKHdoaWNoIHRoZSBlcnJvciBoYW5kbGVyIGhhcyB0byBsaXN0ZW4gZm9yKSBhbmQgbmdTdWJtaXQgZXZlbnQgIC0tPlxuICA8YnV0dG9uICNzdWJtaXRUcmlnZ2VyIGNsYXNzPVwic3VibWl0LXRyaWdnZXJcIiB0eXBlPVwic3VibWl0XCI+XG4gIDwvYnV0dG9uPlxuPC9mb3JtPlxuIl19
@@ -1,15 +1,21 @@
1
1
  import { Component, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
2
2
  import { createControlForType } from '../form.helpers';
3
3
  import { CrisprFieldComponent, crisprControlMixin } from '../abstracts';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { FieldContainerComponent } from '../field-container';
6
+ import { MatIconModule } from '@angular/material/icon';
7
+ import { CrisprFieldDirective } from '../field.directive';
8
+ import { CrisprPipesModule } from '../pipes/crispr-pipes.module';
9
+ import { ReactiveFormsModule } from '@angular/forms';
10
+ import { CommonModule } from '@angular/common';
11
+ import { FormValidationHandlerModule } from '@tft/form-validation-handler';
4
12
  import * as i0 from "@angular/core";
5
- import * as i1 from "../field-container/field-container.component";
13
+ import * as i1 from "@angular/common";
6
14
  import * as i2 from "@angular/material/button";
7
15
  import * as i3 from "@angular/material/icon";
8
16
  import * as i4 from "@angular/forms";
9
- import * as i5 from "@tft/form-validation-handler";
10
- import * as i6 from "@angular/common";
11
- import * as i7 from "../field.directive";
12
- import * as i8 from "../pipes/initial-control-value.pipe";
17
+ import * as i5 from "../pipes/initial-control-value.pipe";
18
+ import * as i6 from "@tft/form-validation-handler";
13
19
  const defaultConfig = {
14
20
  addButtonLabel: 'ADD ITEM',
15
21
  minListLength: 1,
@@ -68,10 +74,19 @@ export class FormGroupListComponent extends FormGroupListMixin {
68
74
  this.control.removeAt(index);
69
75
  }
70
76
  }
71
- FormGroupListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FormGroupListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
72
- FormGroupListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: FormGroupListComponent, selector: "crispr-form-group-list", usesInheritance: true, ngImport: i0, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let con of control?.controls; let i = index;\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\"> {{ config.itemLabelBuilder ? config.itemLabelBuilder(i) : 'Item ' + (i + 1) }} </span>\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"clickDelete(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroup]=\"con\">\n <!-- TODO: if chiplists didn't need to have labels mixed in with their values we could use [value]=\"control.value\" below -->\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [value]=\"blockValue ? null : value && value[i] | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"con\">\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"clickAdd()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n", styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}\n"], components: [{ type: i1.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i4.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }], pipes: { "initialControlValue": i8.InitialControlValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FormGroupListComponent, decorators: [{
77
+ FormGroupListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormGroupListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
78
+ FormGroupListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: FormGroupListComponent, isStandalone: true, selector: "crispr-form-group-list", usesInheritance: true, ngImport: i0, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let con of control?.controls; let i = index;\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\"> {{ config.itemLabelBuilder ? config.itemLabelBuilder(i) : 'Item ' + (i + 1) }} </span>\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"clickDelete(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroup]=\"con\">\n <!-- TODO: if chiplists didn't need to have labels mixed in with their values we could use [value]=\"control.value\" below -->\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [value]=\"blockValue ? null : value && value[i] | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"con\">\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"clickAdd()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n", styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }, { kind: "ngmodule", type: CrisprPipesModule }, { kind: "pipe", type: i5.InitialControlValuePipe, name: "initialControlValue" }, { kind: "ngmodule", type: FormValidationHandlerModule }, { kind: "directive", type: i6.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormGroupListComponent, decorators: [{
74
80
  type: Component,
75
- args: [{ selector: 'crispr-form-group-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let con of control?.controls; let i = index;\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\"> {{ config.itemLabelBuilder ? config.itemLabelBuilder(i) : 'Item ' + (i + 1) }} </span>\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"clickDelete(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroup]=\"con\">\n <!-- TODO: if chiplists didn't need to have labels mixed in with their values we could use [value]=\"control.value\" below -->\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [value]=\"blockValue ? null : value && value[i] | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"con\">\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"clickAdd()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n", styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}\n"] }]
81
+ args: [{ selector: 'crispr-form-group-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
82
+ CommonModule,
83
+ MatButtonModule,
84
+ MatIconModule,
85
+ FieldContainerComponent,
86
+ ReactiveFormsModule,
87
+ CrisprFieldDirective,
88
+ CrisprPipesModule,
89
+ FormValidationHandlerModule
90
+ ], template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let con of control?.controls; let i = index;\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\"> {{ config.itemLabelBuilder ? config.itemLabelBuilder(i) : 'Item ' + (i + 1) }} </span>\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"clickDelete(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroup]=\"con\">\n <!-- TODO: if chiplists didn't need to have labels mixed in with their values we could use [value]=\"control.value\" below -->\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [value]=\"blockValue ? null : value && value[i] | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"con\">\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"clickAdd()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n", styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}\n"] }]
76
91
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvZm9ybS1ncm91cC1saXN0L2Zvcm0tZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0tZ3JvdXAtbGlzdC9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7QUFFeEUsTUFBTSxhQUFhLEdBQWlDO0lBQ2xELGNBQWMsRUFBRSxVQUFVO0lBQzFCLGFBQWEsRUFBRSxDQUFDO0NBQ2pCLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUFHLGtCQUFrQixDQUFzQixvQkFBb0IsQ0FBQyxDQUFDO0FBT3pGLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxrQkFBa0I7SUFXNUQsWUFBb0IsR0FBc0I7UUFDeEMsS0FBSyxFQUFFLENBQUM7UUFEVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVQxQyxrQkFBYSxHQUFHLGFBQWEsQ0FBQTtRQUc3Qjs7O2FBR0s7UUFDTCxlQUFVLEdBQUcsS0FBSyxDQUFDO0lBSW5CLENBQUM7SUFFRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLGdGQUFnRjtJQUNsRixDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQWE7UUFDM0IsSUFBRyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2YsSUFBRyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDckIsOEVBQThFO2dCQUM5RSxNQUFNLGFBQWEsR0FBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDNUMsSUFBRyxhQUFhLENBQUMsTUFBTSxFQUFFO29CQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUN0QjtnQkFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBRS9DO2lCQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRTtnQkFDekMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO2FBQ2hCO1lBQ0QsMENBQTBDO1lBQzFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQTtTQUNIO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSTtRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLDBDQUEwQztRQUMxQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDOzttSEE1RFUsc0JBQXNCO3VHQUF0QixzQkFBc0IscUZDbkJuQyxzZ0RBNENBOzJGRHpCYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB0eXBlIHsgRm9ybUdyb3VwTGlzdENvbmZpZyB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBjcmVhdGVDb250cm9sRm9yVHlwZSB9IGZyb20gJy4uL2Zvcm0uaGVscGVycyc7XG5pbXBvcnQgeyBDcmlzcHJGaWVsZENvbXBvbmVudCwgY3Jpc3ByQ29udHJvbE1peGluIH0gZnJvbSAnLi4vYWJzdHJhY3RzJztcblxuY29uc3QgZGVmYXVsdENvbmZpZzogUGFydGlhbDxGb3JtR3JvdXBMaXN0Q29uZmlnPiA9IHtcbiAgYWRkQnV0dG9uTGFiZWw6ICdBREQgSVRFTScsXG4gIG1pbkxpc3RMZW5ndGg6IDEsXG59O1xuXG5jb25zdCBGb3JtR3JvdXBMaXN0TWl4aW4gPSBjcmlzcHJDb250cm9sTWl4aW48Rm9ybUdyb3VwTGlzdENvbmZpZz4oQ3Jpc3ByRmllbGRDb21wb25lbnQpO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Jpc3ByLWZvcm0tZ3JvdXAtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdyb3VwTGlzdENvbXBvbmVudCBleHRlbmRzIEZvcm1Hcm91cExpc3RNaXhpbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgZGVmYXVsdENvbmZpZyA9IGRlZmF1bHRDb25maWdcbiAgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgY29udHJvbDogRm9ybUFycmF5O1xuICAvKipcbiAgICogQnkgc2V0dGluZyB0aGlzIHRvIHRydWUgd2hlbiBhZGRpbmcvcmVtb3ZpbmcgaXRlbXMgZnJvbSBhcnJheSxcbiAgICogd2UgY2FuIGJsb2NrIG9yaWdpbmFsIHZhbHVlcyBmcm9tIG92ZXJ3cml0aW5nIGZvcm0gdmFsdWVzXG4gICAqICovXG4gIGJsb2NrVmFsdWUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAvLyBUT0RPOiB0aGlzIGlzIHJlcXVpcmVkIHRvIG5nRm9yIG9mIGNvbnRyb2xzIGluIHRlbXBsYXRlLCBtdXN0IGJlIGEgYmV0dGVyIHdheVxuICB9XG5cbiAgc2V0Q29udHJvbFZhbHVlKHZhbHVlczogYW55W10pIHtcbiAgICBpZih0aGlzLmNvbnRyb2wpIHtcbiAgICAgIGlmKHZhbHVlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyBjbGVhciBhbnkgZXhpc3RpbmcgdmFsdWVzIHNvIHRoYXQgbmV3IHZhbHVlcyBkb24ndCBjb25jYXRlbmF0ZSBvbnRvIHRoZSBvbGRcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlczpbXSA9IHRoaXMuY29udHJvbC52YWx1ZTtcbiAgICAgICAgaWYoY3VycmVudFZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZXMuZm9yRWFjaCh2YWx1ZSA9PiB0aGlzLmFkZEdyb3VwKHZhbHVlKSk7XG5cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWcuZGlzcGxheUluaXRpYWxJdGVtKSB7XG4gICAgICAgIHRoaXMuYWRkR3JvdXAoKVxuICAgICAgfVxuICAgICAgLy8gbmVlZGVkIHRvIGVuc3VyZSBuZXcgYXJyYXkgaXRlbXMgcmVuZGVyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBjbGlja0RlbGV0ZShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5ibG9ja1ZhbHVlID0gdHJ1ZTtcbiAgICB0aGlzLmRlbGV0ZUdyb3VwKGluZGV4KTtcbiAgfVxuXG4gIGNsaWNrQWRkKCkge1xuICAgIHRoaXMuYmxvY2tWYWx1ZSA9IHRydWU7XG4gICAgdGhpcy5hZGRHcm91cCgpO1xuICB9XG5cbiAgYWRkR3JvdXAodmFsdWUgPSBudWxsKSB7XG4gICAgdGhpcy5jb250cm9sLnB1c2goY3JlYXRlQ29udHJvbEZvclR5cGUodGhpcy5jb25maWcuaXRlbUNvbmZpZywgdmFsdWUpKTtcbiAgICAvLyBuZWVkZWQgdG8gZW5zdXJlIG5ldyBhcnJheSBpdGVtcyByZW5kZXJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlR3JvdXAoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuY29udHJvbC5yZW1vdmVBdChpbmRleCk7XG4gIH1cbn1cbiIsIlxuPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIlxuICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG5cbiAgPGRpdiBbZm9ybUFycmF5TmFtZV09XCJjb25maWcuY29udHJvbE5hbWVcIj5cbiAgICA8IS0tIERvbid0IGFkZCB0cmFja0J5IGZ1bmN0aW9uLCBpdCBjb25mdXNlcyB0aGUgc3RhdGUgb2YgdGhlIGFycmF5IC0tPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGNvbiBvZiBjb250cm9sPy5jb250cm9sczsgbGV0IGkgPSBpbmRleDtcIj5cbiAgICAgIDwhLS0gVE9ETzogdXNlIGNvbnRlbnQgcHJvamVjdGlvbiB0byBhbGxvdyBjdXN0b20gaXRlbSBsYWJlbCBjb21wb25lbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1oZWFkZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtaDJcIj4ge3sgY29uZmlnLml0ZW1MYWJlbEJ1aWxkZXIgPyBjb25maWcuaXRlbUxhYmVsQnVpbGRlcihpKSA6ICdJdGVtICcgKyAoaSArIDEpIH19IDwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICpuZ0lmPVwiaSArIDEgPiBjb25maWcubWluTGlzdExlbmd0aFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiY2xpY2tEZWxldGUoaSlcIj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBbZm9ybUdyb3VwXT1cImNvblwiPlxuICAgICAgICA8IS0tIFRPRE86IGlmIGNoaXBsaXN0cyBkaWRuJ3QgbmVlZCB0byBoYXZlIGxhYmVscyBtaXhlZCBpbiB3aXRoIHRoZWlyIHZhbHVlcyB3ZSBjb3VsZCB1c2UgW3ZhbHVlXT1cImNvbnRyb2wudmFsdWVcIiBiZWxvdyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBjb25maWcuaXRlbUNvbmZpZy5maWVsZHM7XCJcbiAgICAgICAgICBjcmlzcHJGaWVsZFxuICAgICAgICAgIFt2YWx1ZV09XCJibG9ja1ZhbHVlID8gbnVsbCA6IHZhbHVlICYmIHZhbHVlW2ldIHwgaW5pdGlhbENvbnRyb2xWYWx1ZSA6IGZpZWxkXCJcbiAgICAgICAgICBbY29uZmlnXT1cImZpZWxkXCJcbiAgICAgICAgICBbZ3JvdXBdPVwiY29uXCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZm9vdGVyXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImFkZFwiXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgW2NvbG9yXT1cImNvbmZpZy5hZGRCdXR0b25Db2xvclwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tBZGQoKVwiPlxuICAgICAge3tjb25maWcuYWRkSXRlbUxhYmVsIHx8IGNvbmZpZy5hZGRCdXR0b25MYWJlbH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvZm9ybS1ncm91cC1saXN0L2Zvcm0tZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0tZ3JvdXAtbGlzdC9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7O0FBRTNFLE1BQU0sYUFBYSxHQUFpQztJQUNsRCxjQUFjLEVBQUUsVUFBVTtJQUMxQixhQUFhLEVBQUUsQ0FBQztDQUNqQixDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBc0Isb0JBQW9CLENBQUMsQ0FBQztBQWtCekYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUFrQjtJQVc1RCxZQUFvQixHQUFzQjtRQUN4QyxLQUFLLEVBQUUsQ0FBQztRQURVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBVDFDLGtCQUFhLEdBQUcsYUFBYSxDQUFBO1FBRzdCOzs7YUFHSztRQUNMLGVBQVUsR0FBRyxLQUFLLENBQUM7SUFJbkIsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsZ0ZBQWdGO0lBQ2xGLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBYTtRQUMzQixJQUFHLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZixJQUFHLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQiw4RUFBOEU7Z0JBQzlFLE1BQU0sYUFBYSxHQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUM1QyxJQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUU7b0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQ3RCO2dCQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFFL0M7aUJBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFO2dCQUN6QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7YUFDaEI7WUFDRCwwQ0FBMEM7WUFDMUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdkUsMENBQTBDO1FBQzFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7O21IQTVEVSxzQkFBc0I7dUdBQXRCLHNCQUFzQix5R0N0Q25DLHNnREE0Q0EsbU5EaEJJLFlBQVksK1BBQ1osZUFBZSwwVkFDZixhQUFhLG9MQUNiLHVCQUF1Qiw4R0FDdkIsbUJBQW1CLG1iQUNuQixvQkFBb0IsK0ZBQ3BCLGlCQUFpQiwrR0FDakIsMkJBQTJCOzJGQUdsQixzQkFBc0I7a0JBakJsQyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQiwyQkFBMkI7cUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB0eXBlIHsgRm9ybUdyb3VwTGlzdENvbmZpZyB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBjcmVhdGVDb250cm9sRm9yVHlwZSB9IGZyb20gJy4uL2Zvcm0uaGVscGVycyc7XG5pbXBvcnQgeyBDcmlzcHJGaWVsZENvbXBvbmVudCwgY3Jpc3ByQ29udHJvbE1peGluIH0gZnJvbSAnLi4vYWJzdHJhY3RzJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBGaWVsZENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2ZpZWxkLWNvbnRhaW5lcic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBDcmlzcHJGaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uL2ZpZWxkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDcmlzcHJQaXBlc01vZHVsZSB9IGZyb20gJy4uL3BpcGVzL2NyaXNwci1waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGUgfSBmcm9tICdAdGZ0L2Zvcm0tdmFsaWRhdGlvbi1oYW5kbGVyJztcblxuY29uc3QgZGVmYXVsdENvbmZpZzogUGFydGlhbDxGb3JtR3JvdXBMaXN0Q29uZmlnPiA9IHtcbiAgYWRkQnV0dG9uTGFiZWw6ICdBREQgSVRFTScsXG4gIG1pbkxpc3RMZW5ndGg6IDEsXG59O1xuXG5jb25zdCBGb3JtR3JvdXBMaXN0TWl4aW4gPSBjcmlzcHJDb250cm9sTWl4aW48Rm9ybUdyb3VwTGlzdENvbmZpZz4oQ3Jpc3ByRmllbGRDb21wb25lbnQpO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Jpc3ByLWZvcm0tZ3JvdXAtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgRmllbGRDb250YWluZXJDb21wb25lbnQsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBDcmlzcHJGaWVsZERpcmVjdGl2ZSxcbiAgICBDcmlzcHJQaXBlc01vZHVsZSxcbiAgICBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGVcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdyb3VwTGlzdENvbXBvbmVudCBleHRlbmRzIEZvcm1Hcm91cExpc3RNaXhpbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgZGVmYXVsdENvbmZpZyA9IGRlZmF1bHRDb25maWdcbiAgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgY29udHJvbDogRm9ybUFycmF5O1xuICAvKipcbiAgICogQnkgc2V0dGluZyB0aGlzIHRvIHRydWUgd2hlbiBhZGRpbmcvcmVtb3ZpbmcgaXRlbXMgZnJvbSBhcnJheSxcbiAgICogd2UgY2FuIGJsb2NrIG9yaWdpbmFsIHZhbHVlcyBmcm9tIG92ZXJ3cml0aW5nIGZvcm0gdmFsdWVzXG4gICAqICovXG4gIGJsb2NrVmFsdWUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAvLyBUT0RPOiB0aGlzIGlzIHJlcXVpcmVkIHRvIG5nRm9yIG9mIGNvbnRyb2xzIGluIHRlbXBsYXRlLCBtdXN0IGJlIGEgYmV0dGVyIHdheVxuICB9XG5cbiAgc2V0Q29udHJvbFZhbHVlKHZhbHVlczogYW55W10pIHtcbiAgICBpZih0aGlzLmNvbnRyb2wpIHtcbiAgICAgIGlmKHZhbHVlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyBjbGVhciBhbnkgZXhpc3RpbmcgdmFsdWVzIHNvIHRoYXQgbmV3IHZhbHVlcyBkb24ndCBjb25jYXRlbmF0ZSBvbnRvIHRoZSBvbGRcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlczpbXSA9IHRoaXMuY29udHJvbC52YWx1ZTtcbiAgICAgICAgaWYoY3VycmVudFZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZXMuZm9yRWFjaCh2YWx1ZSA9PiB0aGlzLmFkZEdyb3VwKHZhbHVlKSk7XG5cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWcuZGlzcGxheUluaXRpYWxJdGVtKSB7XG4gICAgICAgIHRoaXMuYWRkR3JvdXAoKVxuICAgICAgfVxuICAgICAgLy8gbmVlZGVkIHRvIGVuc3VyZSBuZXcgYXJyYXkgaXRlbXMgcmVuZGVyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBjbGlja0RlbGV0ZShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5ibG9ja1ZhbHVlID0gdHJ1ZTtcbiAgICB0aGlzLmRlbGV0ZUdyb3VwKGluZGV4KTtcbiAgfVxuXG4gIGNsaWNrQWRkKCkge1xuICAgIHRoaXMuYmxvY2tWYWx1ZSA9IHRydWU7XG4gICAgdGhpcy5hZGRHcm91cCgpO1xuICB9XG5cbiAgYWRkR3JvdXAodmFsdWUgPSBudWxsKSB7XG4gICAgdGhpcy5jb250cm9sLnB1c2goY3JlYXRlQ29udHJvbEZvclR5cGUodGhpcy5jb25maWcuaXRlbUNvbmZpZywgdmFsdWUpKTtcbiAgICAvLyBuZWVkZWQgdG8gZW5zdXJlIG5ldyBhcnJheSBpdGVtcyByZW5kZXJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlR3JvdXAoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuY29udHJvbC5yZW1vdmVBdChpbmRleCk7XG4gIH1cbn1cbiIsIlxuPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIlxuICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG5cbiAgPGRpdiBbZm9ybUFycmF5TmFtZV09XCJjb25maWcuY29udHJvbE5hbWVcIj5cbiAgICA8IS0tIERvbid0IGFkZCB0cmFja0J5IGZ1bmN0aW9uLCBpdCBjb25mdXNlcyB0aGUgc3RhdGUgb2YgdGhlIGFycmF5IC0tPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGNvbiBvZiBjb250cm9sPy5jb250cm9sczsgbGV0IGkgPSBpbmRleDtcIj5cbiAgICAgIDwhLS0gVE9ETzogdXNlIGNvbnRlbnQgcHJvamVjdGlvbiB0byBhbGxvdyBjdXN0b20gaXRlbSBsYWJlbCBjb21wb25lbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1oZWFkZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtaDJcIj4ge3sgY29uZmlnLml0ZW1MYWJlbEJ1aWxkZXIgPyBjb25maWcuaXRlbUxhYmVsQnVpbGRlcihpKSA6ICdJdGVtICcgKyAoaSArIDEpIH19IDwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICpuZ0lmPVwiaSArIDEgPiBjb25maWcubWluTGlzdExlbmd0aFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiY2xpY2tEZWxldGUoaSlcIj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBbZm9ybUdyb3VwXT1cImNvblwiPlxuICAgICAgICA8IS0tIFRPRE86IGlmIGNoaXBsaXN0cyBkaWRuJ3QgbmVlZCB0byBoYXZlIGxhYmVscyBtaXhlZCBpbiB3aXRoIHRoZWlyIHZhbHVlcyB3ZSBjb3VsZCB1c2UgW3ZhbHVlXT1cImNvbnRyb2wudmFsdWVcIiBiZWxvdyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBjb25maWcuaXRlbUNvbmZpZy5maWVsZHM7XCJcbiAgICAgICAgICBjcmlzcHJGaWVsZFxuICAgICAgICAgIFt2YWx1ZV09XCJibG9ja1ZhbHVlID8gbnVsbCA6IHZhbHVlICYmIHZhbHVlW2ldIHwgaW5pdGlhbENvbnRyb2xWYWx1ZSA6IGZpZWxkXCJcbiAgICAgICAgICBbY29uZmlnXT1cImZpZWxkXCJcbiAgICAgICAgICBbZ3JvdXBdPVwiY29uXCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZm9vdGVyXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImFkZFwiXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgW2NvbG9yXT1cImNvbmZpZy5hZGRCdXR0b25Db2xvclwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tBZGQoKVwiPlxuICAgICAge3tjb25maWcuYWRkSXRlbUxhYmVsIHx8IGNvbmZpZy5hZGRCdXR0b25MYWJlbH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
@@ -1,3 +1,2 @@
1
1
  export * from './form-group-list.component';
2
- export * from './form-group-list.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0tZ3JvdXAtbGlzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Zvcm0tZ3JvdXAtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWdyb3VwLWxpc3QubW9kdWxlJztcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0tZ3JvdXAtbGlzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50JztcbiJdfQ==
@@ -187,4 +187,4 @@ export function filterOptionsByLabel(options, searchString) {
187
187
  return option.label && option.label.toLowerCase().includes(searchString.toLowerCase());
188
188
  });
189
189
  }
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9mb3JtLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUNMLFdBQVcsR0FDWixNQUFNLDhCQUE4QixDQUFBO0FBQ3JDLE9BQU8sRUFDTCxJQUFJLEVBRUosRUFBRSxFQUNGLFlBQVksRUFDWixhQUFhLEVBRWQsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBZSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXNCN0Q7Ozs7O0VBS0U7QUFDRixNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxNQUEwQjtJQUNoRixrREFBa0Q7SUFDbEQsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNoRSxPQUFPLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUk7UUFDcEQsb0ZBQW9GO1FBQ3BGLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQ3RCLEdBQUcsQ0FBQyxDQUFDLGVBQXdCLEVBQUUsRUFBRTtZQUMvQix3R0FBd0c7WUFDeEcscUhBQXFIO1lBQ3JILElBQUssTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxZQUFZLFFBQVEsRUFBRztnQkFDNUQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ3pDO2lCQUFNO2dCQUFFLE9BQU8sZUFBZSxDQUFDO2FBQUU7UUFDcEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztLQUNIO1NBQU07UUFDTCxFQUFFO1FBQ0YsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakI7QUFDSCxDQUFDO0FBWUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEtBQWdCLEVBQUUsTUFBMkI7SUFDbEYsNEZBQTRGO0lBQzVGLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFO1FBQUUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FBRTtJQUN6RCxxRkFBcUY7SUFDckYsb0RBQW9EO0lBQ3BELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1FBQzFELHFGQUFxRjtRQUNyRixPQUFPLHFCQUFxQixDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sYUFBYSxDQUNsQixhQUFhLENBQ2QsQ0FBQyxJQUFJLENBQ0osU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDakIsR0FBRyxDQUFDLENBQUMsUUFBbUIsRUFBRSxFQUFFO1FBQzFCLGlEQUFpRDtRQUNqRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsWUFBWSxRQUFRLEVBQUU7WUFDMUQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2xDO2FBQU0sRUFBRSx3RUFBd0U7WUFDL0UsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQWNEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEtBQWdCLEVBQUUsbUJBQXVDO0lBQzlGLHdCQUF3QjtJQUN4QixNQUFNLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQztJQUNwRCxrRkFBa0Y7SUFDbEYsT0FBTyxhQUFhLENBQ2xCLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQzFGLENBQUMsSUFBSTtJQUNKLHlHQUF5RztJQUN6RywwRkFBMEY7SUFDMUYsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQ3JFLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsZUFBZSxDQUFDLEtBQWdCLEVBQUUsV0FBbUI7SUFDNUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsV0FBVyxFQUFFLENBQUcsQ0FBQztLQUNqRTtJQUNELE9BQU8sT0FBTyxDQUFDLFlBQVksQ0FBQztBQUM5QixDQUFDO0FBQ0Q7Ozs7OztHQU1HO0FBQ0gsU0FBUywyQkFBMkIsQ0FBQyxVQUEyQixFQUFFLFNBQXVDO0lBQ3ZHLElBQUk7UUFDRixPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFtQixFQUFFLEVBQTRCLEVBQUUsRUFBRTtZQUM1RSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0tBQ2hCO0lBQUMsTUFBTTtRQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUMxRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNqQjtBQUNILENBQUM7QUFHRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLE9BQWtELEVBQ2xELFdBQXVCLEVBQ3ZCLFlBQXFCO0lBRXJCLE9BQU8sT0FBTyxZQUFZLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3BGLENBQUM7QUFDRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxPQUFvQixFQUNwQixXQUFzQixFQUN0QixZQUFxQjtJQUVyQixNQUFNLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ2hGLDJCQUEyQjtJQUMzQixNQUFNLGlCQUFpQixHQUFHLGFBQWEsWUFBWSxPQUFPO1FBQzFELHdCQUF3QjtRQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNyQiw0QkFBNEI7UUFDNUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksYUFBYSxDQUFDLE1BQU07WUFDdEQsd0JBQXdCO1lBQ3hCLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQ25CLGdCQUFnQjtZQUNoQixDQUFDLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQztnQkFDN0IsWUFBWTtnQkFDWixDQUFDLENBQUMsYUFBYTtnQkFDZixzQkFBc0I7Z0JBQ3RCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDVCxPQUFPLGlCQUFpQixDQUFDO0FBQzNCLENBQUM7QUFFRDs7TUFFTTtBQUNOLE1BQU0sVUFBVSxlQUFlLENBQUMsV0FBOEI7SUFDNUQsT0FBTyxhQUFhLElBQUksV0FBVyxDQUFDO0FBQ3RDLENBQUM7QUFDRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxNQUFrQixFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsUUFBbUIsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDO0lBQzdHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFFLENBQUMsYUFBNkIsRUFBRSxFQUFFO1FBQ3ZELElBQUksZUFBZSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ2xDLDJFQUEyRTtZQUMzRSxNQUFNLEVBQUMsV0FBVyxFQUFDLEdBQUcsYUFBYSxDQUFDO1lBQ3BDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDMUIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNsQztZQUNELHlGQUF5RjtZQUN6Riw2QkFBNkI7WUFDN0IsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1lBQzNELE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQTtZQUNqRSxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsYUFBNkIsRUFBRSxRQUFzQixJQUFJO0lBQzVGLG1EQUFtRDtJQUNuRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxTQUFTO1FBQ2pFLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxhQUEyQixFQUFFLEtBQUssQ0FBQztRQUM5RCxDQUFDLENBQUMsYUFBYSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsVUFBVTtZQUN0RCxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsRUFBRSxFQUFHLGFBQXFDLENBQUMsVUFBVSxDQUFDO1lBQ3RFLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FDZixLQUFLLElBQUksSUFBSSxFQUNaLGFBQXFDLENBQUMsVUFBVSxDQUNsRCxDQUFDO0lBRUosT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsT0FBdUIsRUFBRSxZQUFvQjtJQUNoRixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDN0IsT0FBTyxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgU2VsZWN0T3B0aW9uLFxuICBBbnlGaWVsZENvbmZpZyxcbiAgRm9ybUNvbmZpZyxcbiAgRm9ybUdyb3VwTGlzdENvbmZpZyxcbiAgQ3Jpc3ByQ29udHJvbENvbmZpZyxcbiAgT3B0aW9uc1R5cGUsXG4gIEF1dG9jb21wbGV0ZU9wdGlvbnNDYWxsYmFjayxcbiAgQ3Jpc3ByRmllbGRDb25maWcsXG4gIENvbnRyb2xWYWx1ZVxufSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQge1xuICBDb250cm9sVHlwZSxcbn0gZnJvbSAnLi9tb2RlbHMvY3Jpc3ByLWZpZWxkLmNvbmZpZydcbmltcG9ydCB7XG4gIGZyb20sXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBpc09ic2VydmFibGUsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIE9wZXJhdG9yRnVuY3Rpb25cbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB2YWx1ZUluIH0gZnJvbSAnLi9mb3JtLm9wZXJhdG9ycyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogRFlOQU1JQyBGT1JNIFVUSUxTOiBhIGNvbGxlY3Rpb24gb2YgcHVyZS9tb3N0bHkgcHVyZSBmdW5jdGlvbnMgdGhhdCBhcmUgdXNlZnVsIGJvdGggaW50ZXJuYWxseSBhbmQgZm9yXG4gKiBkZXZlbG9waW5nIHRoZSBjb25zdW1pbmcgYXBwLlxuICpcbiAqIFRoZXkgYXJlIHNvcnRlZCBieSB1c2UgY2FzZTogYnVpbGRpbmcgb3V0IHRoZSBmb3JtIG9iamVjdDsgaGVscGVyIGZ1bmN0aW9ucyB0byB1c2Ugd2l0aCB0aGUgZGlzYWJsZWQkIGZ1bmN0aW9uO1xuICogaGVscGVyIGZ1bmN0aW9ucyB0byB1c2Ugd2l0aCB0aGUgY29tcHV0ZSBmaWVsZCBmdW5jdGlvbjsgYW5kIG90aGVyIGxvZ2ljIHNoYXJlZCBiZXR3ZWVuIGNvbXBvbmVudHNcbiAqL1xuXG4vKipcbiAqIFJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gdG8gdXNlIHdpdGggY2hlY2tDb250cm9sRm9yVmFsdWVzIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tDb250cm9sQ29uZmlnIHtcbiAgLy8gdGhlIGNvbnRyb2wgbmFtZSB0byB3YXRjaFxuICBjb250cm9sTmFtZTogc3RyaW5nO1xuICAvLyB0aGUgdmFsdWVzIHRvIHdhdGNoIGZvclxuICB2YWx1ZXM6IHN0cmluZ1tdO1xuICAvLyB0aGUgZnVuY3Rpb24gdG8gcnVuIG9uIHRoZSBib29sZWFuIHJldHVybmVkIGJ5IHRoZSB3YXRjaGVyXG4gIGV2YWx1YXRlPzogKGlzVmFsdWVJblZhbHVlczogYm9vbGVhbikgPT4gYm9vbGVhbjtcbn1cblxuLyoqXG4qIFdhdGNoZXMgYSBzaW5nbGUgY29udHJvbCBmb3IgYSBsaXN0IG9mIHZhbHVlcywgcmV0dXJucyB0cnVlIHdoZW4gZmllbGQgdmFsdWUgbWF0Y2hlcyBhbnkgdmFsdWUgaW4gbGlzdFxuKiB1bmxlc3MgYW4gZXZhbHVhdGUgbWV0aG9kIGlzIGZvdW5kIG9uIGNvbmZpZywgaW4gd2hpY2ggY2FzZSB0aGF0IG1ldGhvZCBpcyBydW4gb24gdGhlIHJldHVybmVkIGJvb2xlYW4gdmFsdWVcbiogQHBhcmFtIGdyb3VwIHRoZSBkaXJlY3QgcGFyZW50IG9mIHRoZSBmaWVsZCB3ZSB3YW50IHRvIHdhdGNoXG4qIEBwYXJhbSBjb25maWdcbiovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tDb250cm9sRm9yVmFsdWVzKGdyb3VwOiBGb3JtR3JvdXAsIGNvbmZpZzogQ2hlY2tDb250cm9sQ29uZmlnKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gIC8vIGNoZWNrIHRoYXQgYWxsIHRoZSBwaWVjZXMgd2UgbmVlZCBhcmUgYXZhaWxhYmxlXG4gIGlmIChjb25maWcgJiYgY29uZmlnLmNvbnRyb2xOYW1lICYmIEFycmF5LmlzQXJyYXkoY29uZmlnLnZhbHVlcykpIHtcbiAgICByZXR1cm4gZ2V0VmFsdWVDaGFuZ2VzKGdyb3VwLCBjb25maWcuY29udHJvbE5hbWUpLnBpcGUoXG4gICAgICAvLyByZXR1cm4gYSBib29sZWFuLCB0cnVlIGlmIHZhbHVlIGlzIGluIHRoZSB2YWx1ZXMgYmVpbmcgd2F0Y2ggZm9yLCBvdGhlcndpc2UgZmFsc2VcbiAgICAgIHZhbHVlSW4oY29uZmlnLnZhbHVlcyksXG4gICAgICBtYXAoKGlzVmFsdWVJblZhbHVlczogYm9vbGVhbikgPT4ge1xuICAgICAgICAvLyBzaW5jZSB3ZSBjYW4gb25seSBjaGVjayBpZiB0aGUgdmFsdWUgaXMgaW4gdGhlIGxpc3Qgb2Ygd2F0Y2hlZCB2YWx1ZXMsIHRoZSBldmFsdWF0ZSBmdW5jdGlvbiBnaXZlcyB1c1xuICAgICAgICAvLyBhIGNoYW5jZSB0byBtYWtlIG90aGVyIGRlY2lzaW9ucyBiYXNlZCBvbiBpZiB0aGUgYm9vbGVhbiByZXR1cm5lZCwgZS5nLiByZXR1cm4gdHJ1ZSBpZiB2YWx1ZSBub3QgaW4gd2F0Y2hlZCB2YWx1ZXNcbiAgICAgICAgaWYgKCBjb25maWcuZXZhbHVhdGUgJiYgY29uZmlnLmV2YWx1YXRlIGluc3RhbmNlb2YgRnVuY3Rpb24gKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbmZpZy5ldmFsdWF0ZShpc1ZhbHVlSW5WYWx1ZXMpO1xuICAgICAgICB9IGVsc2UgeyByZXR1cm4gaXNWYWx1ZUluVmFsdWVzOyB9XG4gICAgICB9KVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgLy9cbiAgICByZXR1cm4gb2YodHJ1ZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiBmb3IgcnVubmluZyB0aGUgY2hlY2tDb250cm9sc0ZvclZhbHVlcyBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja0NvbnRyb2xzQ29uZmlnIHtcbiAgLy8gYW4gYXJyYXkgb2YgY29udHJvbHMgdG8gd2F0Y2ggYW5kIHRoZSB2YWx1ZXMgdG8gY2hlY2sgZm9yXG4gIHdhdGNoQ29uZmlnczogQ2hlY2tDb250cm9sQ29uZmlnW107XG4gIC8vIHRoZSBmdW5jdGlvbiB0byBydW4gYWdhaW5zdCB0aGUgYXJyYXkgb2YgY3VycmVudCBmaWVsZCB2YWx1ZUluIHJlc3BvbnNlc1xuICBldmFsdWF0ZT86ICggYm9vbHM6IGJvb2xlYW5bXSApID0+IGJvb2xlYW47XG59XG5cbi8qKlxuICogV2F0Y2hlcyBhIGxpc3Qgb2YgZmllbGRzIGZvciBpbmRpdmlkdWFsIGxpc3RzIG9mIHZhbHVlcyByZXR1cm5pbmcgdHJ1ZSB3aGVuIGFueSBmaWVsZCBjb250YWlucyBvbmVcbiAqIG9mIHRoZSB2YWx1ZXMgYmVpbmcgd2F0Y2hlZCBmb3IsIG9yIG9wdGlvbmFsbHkgcnVubmluZyBhIGZ1bmN0aW9uIG9uIHRoZSBhcnJheSBvZiByZXNvbHZlZCBib29sZWFuc1xuICogZnJvbSB0aGUgbGlzdGVkIGZpZWxkcyBhbmQgcmV0dXJuaW5nIGEgYm9vbGVhblxuICogQHBhcmFtIGdyb3VwIHRoZSBmb3JtIGdyb3VwIHRoYXQgaGFzIHRoZSBmaWVsZHMgdG8gd2F0Y2ggYXMgZGlyZWN0IGRlc2NlbmRhbnRzXG4gKiBAcGFyYW0gY29uZmlnIHRoZSBjb25maWd1cmF0aW9uIHRvIHVzZSB3aGVuIGNhbGxpbmcgdGhlIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0NvbnRyb2xzRm9yVmFsdWVzKGdyb3VwOiBGb3JtR3JvdXAsIGNvbmZpZzogQ2hlY2tDb250cm9sc0NvbmZpZyk6IE9ic2VydmFibGU8YW55PiB7XG4gIC8vIGlmIG5vIGNvbmZpZyBpcyBwYXNzZWQgd2UganVzdCB3YW50IHRvIHNob3cgdGhlIGZpZWxkLCBzbyB3ZSByZXR1cm4gYW4gb2JzZXJ2YWJsZSBvZiB0cnVlXG4gIGlmICghY29uZmlnIHx8ICFjb25maWcud2F0Y2hDb25maWdzKSB7IHJldHVybiBvZih0cnVlKTsgfVxuICAvLyB3ZSBydW4gY2hlY2tDb250cm9sRm9yVmFsdWVzIG9uIGV2ZXJ5IGNvbnRyb2wgaW4gdGhlIGxpc3Qgb2YgV2F0Y2hDb25maWdzIGNyZWF0aW5nXG4gIC8vIGFuIGFycmF5IG9mIE9ic2VydmFibGUgd2F0Y2hpbmcgZmllbGRzIGZvciB2YWx1ZXNcbiAgY29uc3QgZmllbGRUcmlnZ2VycyA9IGNvbmZpZy53YXRjaENvbmZpZ3MubWFwKHdhdGNoQ29uZmlnID0+IHtcbiAgICAvLyByZXNvbHZlcyBhIGJvb2xlYW4sIHRydWUgd2hlbiBmaWVsZCB2YWx1ZSBtYXRjaGVzIGEgd2F0Y2hlZCB2YWx1ZSwgb3RoZXJ3aXNlIGZhbHNlXG4gICAgcmV0dXJuIGNoZWNrQ29udHJvbEZvclZhbHVlcyhncm91cCwgd2F0Y2hDb25maWcpO1xuICB9KTtcblxuICByZXR1cm4gY29tYmluZUxhdGVzdChcbiAgICBmaWVsZFRyaWdnZXJzXG4gICkucGlwZShcbiAgICBzdGFydFdpdGgoW3RydWVdKSxcbiAgICBtYXAoKGJvb2xlYW5zOiBib29sZWFuW10pID0+IHtcbiAgICAgIC8vIGlmIHRoZSB1c2VyIHBhc3NlZCBhbiBldmFsdWF0ZSBmdW5jdGlvbiB1c2UgaXRcbiAgICAgIGlmIChjb25maWcuZXZhbHVhdGUgJiYgY29uZmlnLmV2YWx1YXRlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5ldmFsdWF0ZShib29sZWFucyk7XG4gICAgICB9IGVsc2UgeyAvLyBvdGhlcndpc2Ugd2UgcmV0dXJuIHRydWUgaWYgYW55IG9mIHRoZSB3YXRjaGVkIGZpZWxkcyByZXNvbHZlIHRvIHRydWVcbiAgICAgICAgcmV0dXJuIGJvb2xlYW5zLnNvbWUoYm9vbCA9PiBib29sKTtcbiAgICAgIH1cbiAgICB9KVxuICApO1xufVxuXG4vKipcbiAqIFRoZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIHdoZW4gcnVubmluZyB0aGUgY29tcHV0ZVZhbHVlIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcHV0ZUZpZWxkQ29uZmlnPFQgPSBhbnksIFJUID0gYW55PiB7XG4gIC8vIGFycmF5IG9mIGNvbnRyb2wgbmFtZXMgd2hvJ3MgdmFsdWVzIHdlIHdhbnQgdG8gd2F0Y2hcbiAgY29udHJvbE5hbWVzVG9XYXRjaDogc3RyaW5nW107XG4gIC8vIHRoZSBmdW5jdGlvbiB3ZSB3YW50IHRvIGNhbGwgb24gdGhlIGFycmF5IG9mIHdhdGNoZWQgdmFsdWVzIHRvIGNvbXB1dGUgdGhlIHZhbHVlIG9mIHRoZSBjb250cm9sIHdlXG4gIGNvbXB1dGVDYWxsYmFjazogKFxuICAgIHZhbHVlczogKFQpW11cbiAgKSA9PiBSVDtcbn1cblxuLyoqXG4gKiBXYXRjaGVzIHZhbHVlcyBvbiBhbiBhcnJheSBvZiBmaWVsZHMsIGNvbXB1dGluZyB0aGVpciB2YWx1ZXMgYXMgdGhleSBjaGFuZ2VcbiAqIEBwYXJhbSBncm91cCB0aGUgZ3JvdXAgdG8gZ2V0IHRoZSBmaWVsZHMgZnJvbSwgZm9yIG5vdyBpdCBjYW4gb25seSBiZSB0aGUgcGFyZW50IG9mIHRoZSBjb21wdXRlZCBmaWVsZFxuICogQHBhcmFtIGNvbXB1dGVGaWVsZHNDb25maWcgdGhlIGNvbmZpZ3VyYXRpb24gdGhhdCBkcml2ZXMgdGhlIGNvbXB1dGF0aW9uLCBob2xkcyB0aGUgbmFtZXMgdG8gd2F0Y2ggYW5kIHRoZVxuICogY29tcHV0YXRpb24gZnVuY3Rpb24gdGhhdCBnZXQgY2FsbGVkIGFnYWluc3QgdGhlIGFycmF5IG9mIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZVZhbHVlRnJvbUZpZWxkcyhncm91cDogRm9ybUdyb3VwLCBjb21wdXRlRmllbGRzQ29uZmlnOiBDb21wdXRlRmllbGRDb25maWcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAvLyBUT0RPOiBiZXR0ZXIgY2hlY2tpbmdcbiAgY29uc3QgeyBjb250cm9sTmFtZXNUb1dhdGNoIH0gPSBjb21wdXRlRmllbGRzQ29uZmlnO1xuICAvL2NyZWF0ZXMgYW4gb2JzZXJ2YWJsZSBsaXN0ZW5lciBmb3IgZWFjaCBjb250cm9sIGluIHRoZSBjb250cm9sTmFtZXNUb1dhdGNoIGFycmF5XG4gIHJldHVybiBjb21iaW5lTGF0ZXN0KFxuICAgIGNvbnRyb2xOYW1lc1RvV2F0Y2gubWFwKGNvbnRyb2xOYW1lVG9XYXRjaCA9PiBnZXRWYWx1ZUNoYW5nZXMoZ3JvdXAsIGNvbnRyb2xOYW1lVG9XYXRjaCkpXG4gICkucGlwZShcbiAgICAvLyBlYWNoIHRpbWUgYSB3YXRjaGVkIGZpZWxkIHZhbHVlcyBjaGFuZ2VzIGEgbmV3IGFycmF5IG9mIHRoZSBsYXRlc3QgZmllbGQgdmFsdWVzIGlzIHBpcGUgdGhyb3VnaCB0byB0aGVcbiAgICAvLyBjb21wdXRlIGNhbGxiYWNrLiBXaGljaCBydW5zIHRoZSB1c2VycyBsb2dpYyBvbiB0aGUgdmFsdWVzIHRvIGNvbXB1dGUgdGhpcyBmaWVsZHMgdmFsdWVcbiAgICBtYXAodmFsdWVzQXJyYXkgPT4gY29tcHV0ZUZpZWxkc0NvbmZpZy5jb21wdXRlQ2FsbGJhY2sodmFsdWVzQXJyYXkpKSxcbiAgKTtcbn1cblxuLyoqXG4gKiBBIHNpbXBsZSB3cmFwcGVyIGZvciBkb2luZyBlcnJvciBjaGVja2luZyBhcm91bmQgZ2V0dGluZyB0aGUgdmFsdWVDaGFuZ2VzIG9ic2VydmFibGUgZnJvbSBhIGNvbnRyb2wgb24gYSBmb3JtIGdyb3VwXG4gKiBAcGFyYW0gZ3JvdXAgdGhlIGZvcm0gZ3JvdXAgd2Ugd2FudCB0byBwdWxsIHRoZSBvYnNlcnZhYmxlIGZyb21cbiAqIEBwYXJhbSBjb250cm9sTmFtZSB0aGUgbmFtZSBvZiB0aGUgY29udHJvbCB3aG8ncyB2YWx1ZSB3ZSB3YW50IHRvIHN1YnNjcmliZSB0b1xuICovXG5mdW5jdGlvbiBnZXRWYWx1ZUNoYW5nZXMoZ3JvdXA6IEZvcm1Hcm91cCwgY29udHJvbE5hbWU6IHN0cmluZykge1xuICBjb25zdCBjb250cm9sID0gZ3JvdXAuZ2V0KGNvbnRyb2xOYW1lKTtcbiAgaWYgKCFjb250cm9sKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBjb250cm9sIHdpdGggY29udHJvbE5hbWUgJHtjb250cm9sTmFtZX1gLCApO1xuICB9XG4gIHJldHVybiBjb250cm9sLnZhbHVlQ2hhbmdlcztcbn1cbi8qKlxuICogIFRPRE86IG1vdmUgdG8gdXRpbHMgbGlicmFyeSBhZnRlciBsaWJyYXJ5IGlzIGJ1aWx0XG4gKiAgQWxsb3dzIGRldmVsb3BlciB0byBwYXNzIGFuIGFycmF5IG9mIG9wZXJhdG9ycyBpbnRvIHRoZSBwaXBlIG9mIGFuIE9ic2VydmFibGUuXG4gKiAgVXNlZnVsIGZvciBjcmVhdGluZyBmdW5jdGlvbiB3aXRoIGEgdmFyaWFibGUgYW1vdW50IG9mIG9wZXJhdG9ycyB0byBiZSBydW5cbiAqIEBwYXJhbSBvYnNlcnZhYmxlIHRoZSBvYnNlcnZhYmxlIHRvIHBhc3MgdGhlIG9wZXJhdG9ycyB0b1xuICogQHBhcmFtIG9wZXJhdG9ycyBhcnJheSBvZiBvcGVyYXRvcnMgdG8gcGlwZVxuICovXG5mdW5jdGlvbiBwaXBlT3BlcmF0b3JzSW50b09ic2VydmFibGUob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnk+LCBvcGVyYXRvcnM6IE9wZXJhdG9yRnVuY3Rpb248YW55LCBhbnk+W10pIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gb3BlcmF0b3JzLnJlZHVjZSgob2JzOiBPYnNlcnZhYmxlPHt9Piwgb3A6IE9wZXJhdG9yRnVuY3Rpb248e30sIHt9PikgPT4ge1xuICAgICAgcmV0dXJuIG9icy5waXBlKG9wKTtcbiAgICB9LCBvYnNlcnZhYmxlKTtcbiAgfSBjYXRjaCB7XG4gICAgY29uc29sZS5lcnJvcignVW5hYmxlIHRvIHBpcGUgb3BlcmF0b3JzIGludG8gb2JzZXJ2YWJsZScpO1xuICAgIHJldHVybiBvZihudWxsKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxsT3B0aW9uc0lmRnVuY3Rpb24oXG4gIG9wdGlvbnM6IE9wdGlvbnNUeXBlIHwgQXV0b2NvbXBsZXRlT3B0aW9uc0NhbGxiYWNrLFxuICBwYXJlbnRHcm91cD86IEZvcm1Hcm91cCxcbiAgc2VhcmNoU3RyaW5nPzogc3RyaW5nXG4pOiBPcHRpb25zVHlwZSB7XG4gIHJldHVybiBvcHRpb25zIGluc3RhbmNlb2YgRnVuY3Rpb24gPyBvcHRpb25zKHBhcmVudEdyb3VwLCBzZWFyY2hTdHJpbmcpIDogb3B0aW9ucztcbn1cbi8qKlxuICogVGhlIHVzZXIgY2FuIGdpdmUgdXMgc2VsZWN0IG9wdGlvbnMgYXMgYW4gYXJyYXksIGEgZnVuY3Rpb24gdGhhdCByZXNvbHZlcyB0byBhIHByb21pc2UsXG4gKiBvciBhbiBvYnNlcnZhYmxlLiBUaGlzIGZ1bmN0aW9ucyBjb25zdW1lcyBhbnkgb2YgdGhvc2UgYW5kIHJldHVybnMgYW4gb2JzZXJ2YWJsZSB0aGF0XG4gKiByZXNvbHZlcyBhbiBhcnJheSBvZiBvcHRpb25zXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgdGhlIG9wdGlvbnMgcGFzc2VkIGluIGZyb20gdGhlIGNvbmZpZ1xuICogQHBhcmFtIGVtcHR5TWVzc2FnZU9wdGlvbiB0aGUgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gdGhlIGFycmF5IGlzIGVtcHR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZhYmxpZnlPcHRpb25zKFxuICBvcHRpb25zOiBPcHRpb25zVHlwZSxcbiAgcGFyZW50R3JvdXA6IEZvcm1Hcm91cCxcbiAgc2VhcmNoU3RyaW5nPzogc3RyaW5nLFxuKTogT2JzZXJ2YWJsZTxTZWxlY3RPcHRpb25bXT4ge1xuICBjb25zdCBjYWxsZWRPcHRpb25zID0gY2FsbE9wdGlvbnNJZkZ1bmN0aW9uKG9wdGlvbnMsIHBhcmVudEdyb3VwLCBzZWFyY2hTdHJpbmcpO1xuICAvLyBpZiBvcHRpb25zIGFyZSBhIHByb21pc2VcbiAgY29uc3Qgb2JzZXJ2YWJsZU9wdGlvbnMgPSBjYWxsZWRPcHRpb25zIGluc3RhbmNlb2YgUHJvbWlzZVxuICAvLyBjb252ZXJ0IHRvIG9ic2VydmFibGVcbiAgPyBmcm9tKGNhbGxlZE9wdGlvbnMpXG4gIC8vIGlmIGFycmF5IHRoYXQgaXNuJ3QgZW1wdHlcbiAgOiBBcnJheS5pc0FycmF5KGNhbGxlZE9wdGlvbnMpICYmIGNhbGxlZE9wdGlvbnMubGVuZ3RoXG4gIC8vIGNvbnZlcnQgdG8gb2JzZXJ2YWJsZVxuICA/IG9mKGNhbGxlZE9wdGlvbnMpXG4gIC8vIGlmIG9ic2VydmFibGVcbiAgOiBpc09ic2VydmFibGUoY2FsbGVkT3B0aW9ucylcbiAgLy8gcmV0dXJuIGl0XG4gID8gY2FsbGVkT3B0aW9uc1xuICAvLyBlbHNlIGFuIGVtcHR5IGFycmF5XG4gIDogb2YoW10pO1xuICByZXR1cm4gb2JzZXJ2YWJsZU9wdGlvbnM7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGUgZmllbGQgY29uZmlnIGlzIGZvciBhIGZvcm0gY29udHJvbCAobm90IGEgZGl2aWRlciwgaGVhZGluZyBvciBvdGhlciBub24tY29udHJvbCBmaWVsZClcbiAqICAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbENvbmZpZyhmaWVsZENvbmZpZzogQ3Jpc3ByRmllbGRDb25maWcpOiBmaWVsZENvbmZpZyBpcyBDcmlzcHJDb250cm9sQ29uZmlnIHtcbiAgcmV0dXJuICdjb250cm9sTmFtZScgaW4gZmllbGRDb25maWc7XG59XG4vKipcbiAqIGJ1aWxkcyBvdXQgZm9ybSBncm91cCBiYXNlZCBvbiBjb25maWdcbiAqIEBwYXJhbSBjb25maWcgYSBjb25maWd1cmF0aW9uIGZvciBhIGZvcm0gZ3JvdXBcbiAqIEBwYXJhbSB2YWx1ZSBhbiBvYmplY3Qgb2YgaW5pdGlhbCB2YWx1ZXMgdG8gcGFzcyBpblxuICogQHBhcmFtIGdyb3VwIHRoZSBmb3JtIGdyb3VwIHRvIG1vZGlmeSBhbmQgYnVpbGQgb3V0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZvcm1Hcm91cEZyb21Db25maWcoY29uZmlnOiBGb3JtQ29uZmlnLCB2YWx1ZSA9IG51bGwsIGdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KSApIHtcbiAgY29uZmlnLmZpZWxkcy5mb3JFYWNoKCAoY29udHJvbENvbmZpZzogQW55RmllbGRDb25maWcpID0+IHtcbiAgICBpZiAoaXNDb250cm9sQ29uZmlnKGNvbnRyb2xDb25maWcpKSB7XG4gICAgICAvLyB0aGVuIGFkZCBhIGNvbnRyb2wgdG8gdGhlIGdyb3VwIHVzaW5nIHRoZSBjb250cm9sTmFtZSBmcm9tIGNvbmZpZ3VyYXRpb25cbiAgICAgIGNvbnN0IHtjb250cm9sTmFtZX0gPSBjb250cm9sQ29uZmlnO1xuICAgICAgaWYgKGdyb3VwLmdldChjb250cm9sTmFtZSkpIHtcbiAgICAgICAgZ3JvdXAucmVtb3ZlQ29udHJvbChjb250cm9sTmFtZSk7XG4gICAgICB9XG4gICAgICAvLyBpZiB0aGVyZSdzIGEgdmFsdWUgb2JqZWN0IGFuZCBpdCBoYXMgYSBub24tbnVsbC91bmRlZmluZWQgdmFsdWUgZm9yIHRoaXMgZmllbGQgdXNlIGl0LlxuICAgICAgLy8gT3RoZXJ3aXNlLCBkZWZhdWx0IHRvIG51bGxcbiAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9ICh2YWx1ZSAmJiB2YWx1ZVtjb250cm9sTmFtZV0pID8/IG51bGw7XG4gICAgICBjb25zdCBjb250cm9sID0gY3JlYXRlQ29udHJvbEZvclR5cGUoY29udHJvbENvbmZpZywgY29udHJvbFZhbHVlKVxuICAgICAgZ3JvdXAuYWRkQ29udHJvbChjb250cm9sTmFtZSwgY29udHJvbCk7XG4gICAgfVxuICB9KTtcbiAgZ3JvdXAuc2V0VmFsaWRhdG9ycyhjb25maWcudmFsaWRhdG9ycyk7XG4gIHJldHVybiBncm91cDtcbn1cblxuLyoqXG4gKiBBbmFseXplIHRoZSBjb25maWcgYW5kIGJ1aWxkIGEgZm9ybSBjb250cm9sIHRvIHNwZWMuIE5vdGljZSB3ZSBkb24ndCB1c2UgRm9ybUJ1aWxkZXIgaGVyZVxuICogYXMgd2Ugd2FudCB0byBrZWVwIHRoaXMgZnVuY3Rpb24gcHVyZS5cbiAqIEBwYXJhbSBjb250cm9sQ29uZmlnIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhlIGNvbnRyb2wgdG8gYnVpbGRcbiAqIEBwYXJhbSB2YWx1ZSBhbiBpbml0aWFsIHZhbHVlIHRvIHVzZSBpZiBwYXNzZWQgaW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRyb2xGb3JUeXBlKGNvbnRyb2xDb25maWc6IEFueUZpZWxkQ29uZmlnLCB2YWx1ZTogQ29udHJvbFZhbHVlID0gbnVsbCkgIHtcbiAgLy8gYnVpbGQgZm9ybSBjb250cm9sIG91dCBiYXNlZCBvbiB0aGUgY29udHJvbCB0eXBlXG4gIGNvbnN0IGNvbnRyb2wgPSBjb250cm9sQ29uZmlnLmNvbnRyb2xUeXBlID09PSBDb250cm9sVHlwZS5TVUJfR1JPVVBcbiAgICA/IGJ1aWxkRm9ybUdyb3VwRnJvbUNvbmZpZyhjb250cm9sQ29uZmlnIGFzIEZvcm1Db25maWcsIHZhbHVlKVxuICAgIDogY29udHJvbENvbmZpZy5jb250cm9sVHlwZSA9PT0gQ29udHJvbFR5cGUuR1JPVVBfTElTVFxuICAgID8gbmV3IEZvcm1BcnJheShbXSwgKGNvbnRyb2xDb25maWcgYXMgRm9ybUdyb3VwTGlzdENvbmZpZykudmFsaWRhdG9ycylcbiAgICA6IG5ldyBGb3JtQ29udHJvbChcbiAgICAgIHZhbHVlIHx8IG51bGwsXG4gICAgICAoY29udHJvbENvbmZpZyBhcyBDcmlzcHJDb250cm9sQ29uZmlnKS52YWxpZGF0b3JzXG4gICAgKTtcblxuICByZXR1cm4gY29udHJvbDtcbn1cblxuLyoqXG4gKiBBIGJhc2ljIGZpbHRlciBmdW5jdGlvbiB0aGF0IGZpbHRlcnMgdGhlIHNlYXJjaCBzdHJpbmcgYWdhaW5zdCB0aGUgbGFiZWwgb2YgdGhlIG9wdGlvbnMgb2JqZWN0XG4gKiBAcGFyYW0gb3B0aW9ucyB0aGUgYXJyYXkgb2Ygb3B0aW9ucyB0byBmaWx0ZXJcbiAqIEBwYXJhbSBzZWFyY2hTdHJpbmcgdGhlIHN0cmluZyBmcm9tIHRoZSBpbnB1dFxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyT3B0aW9uc0J5TGFiZWwob3B0aW9uczogU2VsZWN0T3B0aW9uW10sIHNlYXJjaFN0cmluZzogc3RyaW5nKSAge1xuICByZXR1cm4gb3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IHtcbiAgICByZXR1cm4gb3B0aW9uLmxhYmVsICYmIG9wdGlvbi5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFN0cmluZy50b0xvd2VyQ2FzZSgpKTtcbiAgfSk7XG59XG4iXX0=
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9mb3JtLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUNMLFdBQVcsR0FDWixNQUFNLDhCQUE4QixDQUFBO0FBQ3JDLE9BQU8sRUFDTCxJQUFJLEVBRUosRUFBRSxFQUNGLFlBQVksRUFDWixhQUFhLEVBRWQsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXNCaEQ7Ozs7O0VBS0U7QUFDRixNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxNQUEwQjtJQUNoRixrREFBa0Q7SUFDbEQsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNoRSxPQUFPLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUk7UUFDcEQsb0ZBQW9GO1FBQ3BGLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQ3RCLEdBQUcsQ0FBQyxDQUFDLGVBQXdCLEVBQUUsRUFBRTtZQUMvQix3R0FBd0c7WUFDeEcscUhBQXFIO1lBQ3JILElBQUssTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxZQUFZLFFBQVEsRUFBRztnQkFDNUQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ3pDO2lCQUFNO2dCQUFFLE9BQU8sZUFBZSxDQUFDO2FBQUU7UUFD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T0FBdUIsRUFBRSxZQUFvQjtJQUNoRixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDN0IsT0FBTyxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgU2VsZWN0T3B0aW9uLFxuICBBbnlGaWVsZENvbmZpZyxcbiAgRm9ybUNvbmZpZyxcbiAgRm9ybUdyb3VwTGlzdENvbmZpZyxcbiAgQ3Jpc3ByQ29udHJvbENvbmZpZyxcbiAgT3B0aW9uc1R5cGUsXG4gIEF1dG9jb21wbGV0ZU9wdGlvbnNDYWxsYmFjayxcbiAgQ3Jpc3ByRmllbGRDb25maWcsXG4gIENvbnRyb2xWYWx1ZVxufSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQge1xuICBDb250cm9sVHlwZSxcbn0gZnJvbSAnLi9tb2RlbHMvY3Jpc3ByLWZpZWxkLmNvbmZpZydcbmltcG9ydCB7XG4gIGZyb20sXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBpc09ic2VydmFibGUsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIE9wZXJhdG9yRnVuY3Rpb25cbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB2YWx1ZUluIH0gZnJvbSAnLi9mb3JtLm9wZXJhdG9ycyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBEWU5BTUlDIEZPUk0gVVRJTFM6IGEgY29sbGVjdGlvbiBvZiBwdXJlL21vc3RseSBwdXJlIGZ1bmN0aW9ucyB0aGF0IGFyZSB1c2VmdWwgYm90aCBpbnRlcm5hbGx5IGFuZCBmb3JcbiAqIGRldmVsb3BpbmcgdGhlIGNvbnN1bWluZyBhcHAuXG4gKlxuICogVGhleSBhcmUgc29ydGVkIGJ5IHVzZSBjYXNlOiBidWlsZGluZyBvdXQgdGhlIGZvcm0gb2JqZWN0OyBoZWxwZXIgZnVuY3Rpb25zIHRvIHVzZSB3aXRoIHRoZSBkaXNhYmxlZCQgZnVuY3Rpb247XG4gKiBoZWxwZXIgZnVuY3Rpb25zIHRvIHVzZSB3aXRoIHRoZSBjb21wdXRlIGZpZWxkIGZ1bmN0aW9uOyBhbmQgb3RoZXIgbG9naWMgc2hhcmVkIGJldHdlZW4gY29tcG9uZW50c1xuICovXG5cbi8qKlxuICogUmVxdWlyZWQgY29uZmlndXJhdGlvbiB0byB1c2Ugd2l0aCBjaGVja0NvbnRyb2xGb3JWYWx1ZXMgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja0NvbnRyb2xDb25maWcge1xuICAvLyB0aGUgY29udHJvbCBuYW1lIHRvIHdhdGNoXG4gIGNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIC8vIHRoZSB2YWx1ZXMgdG8gd2F0Y2ggZm9yXG4gIHZhbHVlczogc3RyaW5nW107XG4gIC8vIHRoZSBmdW5jdGlvbiB0byBydW4gb24gdGhlIGJvb2xlYW4gcmV0dXJuZWQgYnkgdGhlIHdhdGNoZXJcbiAgZXZhbHVhdGU/OiAoaXNWYWx1ZUluVmFsdWVzOiBib29sZWFuKSA9PiBib29sZWFuO1xufVxuXG4vKipcbiogV2F0Y2hlcyBhIHNpbmdsZSBjb250cm9sIGZvciBhIGxpc3Qgb2YgdmFsdWVzLCByZXR1cm5zIHRydWUgd2hlbiBmaWVsZCB2YWx1ZSBtYXRjaGVzIGFueSB2YWx1ZSBpbiBsaXN0XG4qIHVubGVzcyBhbiBldmFsdWF0ZSBtZXRob2QgaXMgZm91bmQgb24gY29uZmlnLCBpbiB3aGljaCBjYXNlIHRoYXQgbWV0aG9kIGlzIHJ1biBvbiB0aGUgcmV0dXJuZWQgYm9vbGVhbiB2YWx1ZVxuKiBAcGFyYW0gZ3JvdXAgdGhlIGRpcmVjdCBwYXJlbnQgb2YgdGhlIGZpZWxkIHdlIHdhbnQgdG8gd2F0Y2hcbiogQHBhcmFtIGNvbmZpZ1xuKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0NvbnRyb2xGb3JWYWx1ZXMoZ3JvdXA6IEZvcm1Hcm91cCwgY29uZmlnOiBDaGVja0NvbnRyb2xDb25maWcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgLy8gY2hlY2sgdGhhdCBhbGwgdGhlIHBpZWNlcyB3ZSBuZWVkIGFyZSBhdmFpbGFibGVcbiAgaWYgKGNvbmZpZyAmJiBjb25maWcuY29udHJvbE5hbWUgJiYgQXJyYXkuaXNBcnJheShjb25maWcudmFsdWVzKSkge1xuICAgIHJldHVybiBnZXRWYWx1ZUNoYW5nZXMoZ3JvdXAsIGNvbmZpZy5jb250cm9sTmFtZSkucGlwZShcbiAgICAgIC8vIHJldHVybiBhIGJvb2xlYW4sIHRydWUgaWYgdmFsdWUgaXMgaW4gdGhlIHZhbHVlcyBiZWluZyB3YXRjaCBmb3IsIG90aGVyd2lzZSBmYWxzZVxuICAgICAgdmFsdWVJbihjb25maWcudmFsdWVzKSxcbiAgICAgIG1hcCgoaXNWYWx1ZUluVmFsdWVzOiBib29sZWFuKSA9PiB7XG4gICAgICAgIC8vIHNpbmNlIHdlIGNhbiBvbmx5IGNoZWNrIGlmIHRoZSB2YWx1ZSBpcyBpbiB0aGUgbGlzdCBvZiB3YXRjaGVkIHZhbHVlcywgdGhlIGV2YWx1YXRlIGZ1bmN0aW9uIGdpdmVzIHVzXG4gICAgICAgIC8vIGEgY2hhbmNlIHRvIG1ha2Ugb3RoZXIgZGVjaXNpb25zIGJhc2VkIG9uIGlmIHRoZSBib29sZWFuIHJldHVybmVkLCBlLmcuIHJldHVybiB0cnVlIGlmIHZhbHVlIG5vdCBpbiB3YXRjaGVkIHZhbHVlc1xuICAgICAgICBpZiAoIGNvbmZpZy5ldmFsdWF0ZSAmJiBjb25maWcuZXZhbHVhdGUgaW5zdGFuY2VvZiBGdW5jdGlvbiApIHtcbiAgICAgICAgICByZXR1cm4gY29uZmlnLmV2YWx1YXRlKGlzVmFsdWVJblZhbHVlcyk7XG4gICAgICAgIH0gZWxzZSB7IHJldHVybiBpc1ZhbHVlSW5WYWx1ZXM7IH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvL1xuICAgIHJldHVybiBvZih0cnVlKTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIGZvciBydW5uaW5nIHRoZSBjaGVja0NvbnRyb2xzRm9yVmFsdWVzIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrQ29udHJvbHNDb25maWcge1xuICAvLyBhbiBhcnJheSBvZiBjb250cm9scyB0byB3YXRjaCBhbmQgdGhlIHZhbHVlcyB0byBjaGVjayBmb3JcbiAgd2F0Y2hDb25maWdzOiBDaGVja0NvbnRyb2xDb25maWdbXTtcbiAgLy8gdGhlIGZ1bmN0aW9uIHRvIHJ1biBhZ2FpbnN0IHRoZSBhcnJheSBvZiBjdXJyZW50IGZpZWxkIHZhbHVlSW4gcmVzcG9uc2VzXG4gIGV2YWx1YXRlPzogKCBib29sczogYm9vbGVhbltdICkgPT4gYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBXYXRjaGVzIGEgbGlzdCBvZiBmaWVsZHMgZm9yIGluZGl2aWR1YWwgbGlzdHMgb2YgdmFsdWVzIHJldHVybmluZyB0cnVlIHdoZW4gYW55IGZpZWxkIGNvbnRhaW5zIG9uZVxuICogb2YgdGhlIHZhbHVlcyBiZWluZyB3YXRjaGVkIGZvciwgb3Igb3B0aW9uYWxseSBydW5uaW5nIGEgZnVuY3Rpb24gb24gdGhlIGFycmF5IG9mIHJlc29sdmVkIGJvb2xlYW5zXG4gKiBmcm9tIHRoZSBsaXN0ZWQgZmllbGRzIGFuZCByZXR1cm5pbmcgYSBib29sZWFuXG4gKiBAcGFyYW0gZ3JvdXAgdGhlIGZvcm0gZ3JvdXAgdGhhdCBoYXMgdGhlIGZpZWxkcyB0byB3YXRjaCBhcyBkaXJlY3QgZGVzY2VuZGFudHNcbiAqIEBwYXJhbSBjb25maWcgdGhlIGNvbmZpZ3VyYXRpb24gdG8gdXNlIHdoZW4gY2FsbGluZyB0aGUgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrQ29udHJvbHNGb3JWYWx1ZXMoZ3JvdXA6IEZvcm1Hcm91cCwgY29uZmlnOiBDaGVja0NvbnRyb2xzQ29uZmlnKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgLy8gaWYgbm8gY29uZmlnIGlzIHBhc3NlZCB3ZSBqdXN0IHdhbnQgdG8gc2hvdyB0aGUgZmllbGQsIHNvIHdlIHJldHVybiBhbiBvYnNlcnZhYmxlIG9mIHRydWVcbiAgaWYgKCFjb25maWcgfHwgIWNvbmZpZy53YXRjaENvbmZpZ3MpIHsgcmV0dXJuIG9mKHRydWUpOyB9XG4gIC8vIHdlIHJ1biBjaGVja0NvbnRyb2xGb3JWYWx1ZXMgb24gZXZlcnkgY29udHJvbCBpbiB0aGUgbGlzdCBvZiBXYXRjaENvbmZpZ3MgY3JlYXRpbmdcbiAgLy8gYW4gYXJyYXkgb2YgT2JzZXJ2YWJsZSB3YXRjaGluZyBmaWVsZHMgZm9yIHZhbHVlc1xuICBjb25zdCBmaWVsZFRyaWdnZXJzID0gY29uZmlnLndhdGNoQ29uZmlncy5tYXAod2F0Y2hDb25maWcgPT4ge1xuICAgIC8vIHJlc29sdmVzIGEgYm9vbGVhbiwgdHJ1ZSB3aGVuIGZpZWxkIHZhbHVlIG1hdGNoZXMgYSB3YXRjaGVkIHZhbHVlLCBvdGhlcndpc2UgZmFsc2VcbiAgICByZXR1cm4gY2hlY2tDb250cm9sRm9yVmFsdWVzKGdyb3VwLCB3YXRjaENvbmZpZyk7XG4gIH0pO1xuXG4gIHJldHVybiBjb21iaW5lTGF0ZXN0KFxuICAgIGZpZWxkVHJpZ2dlcnNcbiAgKS5waXBlKFxuICAgIHN0YXJ0V2l0aChbdHJ1ZV0pLFxuICAgIG1hcCgoYm9vbGVhbnM6IGJvb2xlYW5bXSkgPT4ge1xuICAgICAgLy8gaWYgdGhlIHVzZXIgcGFzc2VkIGFuIGV2YWx1YXRlIGZ1bmN0aW9uIHVzZSBpdFxuICAgICAgaWYgKGNvbmZpZy5ldmFsdWF0ZSAmJiBjb25maWcuZXZhbHVhdGUgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICByZXR1cm4gY29uZmlnLmV2YWx1YXRlKGJvb2xlYW5zKTtcbiAgICAgIH0gZWxzZSB7IC8vIG90aGVyd2lzZSB3ZSByZXR1cm4gdHJ1ZSBpZiBhbnkgb2YgdGhlIHdhdGNoZWQgZmllbGRzIHJlc29sdmUgdG8gdHJ1ZVxuICAgICAgICByZXR1cm4gYm9vbGVhbnMuc29tZShib29sID0+IGJvb2wpO1xuICAgICAgfVxuICAgIH0pXG4gICk7XG59XG5cbi8qKlxuICogVGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gd2hlbiBydW5uaW5nIHRoZSBjb21wdXRlVmFsdWUgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wdXRlRmllbGRDb25maWc8VCA9IGFueSwgUlQgPSBhbnk+IHtcbiAgLy8gYXJyYXkgb2YgY29udHJvbCBuYW1lcyB3aG8ncyB2YWx1ZXMgd2Ugd2FudCB0byB3YXRjaFxuICBjb250cm9sTmFtZXNUb1dhdGNoOiBzdHJpbmdbXTtcbiAgLy8gdGhlIGZ1bmN0aW9uIHdlIHdhbnQgdG8gY2FsbCBvbiB0aGUgYXJyYXkgb2Ygd2F0Y2hlZCB2YWx1ZXMgdG8gY29tcHV0ZSB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2wgd2VcbiAgY29tcHV0ZUNhbGxiYWNrOiAoXG4gICAgdmFsdWVzOiAoVClbXVxuICApID0+IFJUO1xufVxuXG4vKipcbiAqIFdhdGNoZXMgdmFsdWVzIG9uIGFuIGFycmF5IG9mIGZpZWxkcywgY29tcHV0aW5nIHRoZWlyIHZhbHVlcyBhcyB0aGV5IGNoYW5nZVxuICogQHBhcmFtIGdyb3VwIHRoZSBncm91cCB0byBnZXQgdGhlIGZpZWxkcyBmcm9tLCBmb3Igbm93IGl0IGNhbiBvbmx5IGJlIHRoZSBwYXJlbnQgb2YgdGhlIGNvbXB1dGVkIGZpZWxkXG4gKiBAcGFyYW0gY29tcHV0ZUZpZWxkc0NvbmZpZyB0aGUgY29uZmlndXJhdGlvbiB0aGF0IGRyaXZlcyB0aGUgY29tcHV0YXRpb24sIGhvbGRzIHRoZSBuYW1lcyB0byB3YXRjaCBhbmQgdGhlXG4gKiBjb21wdXRhdGlvbiBmdW5jdGlvbiB0aGF0IGdldCBjYWxsZWQgYWdhaW5zdCB0aGUgYXJyYXkgb2YgdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlVmFsdWVGcm9tRmllbGRzKGdyb3VwOiBGb3JtR3JvdXAsIGNvbXB1dGVGaWVsZHNDb25maWc6IENvbXB1dGVGaWVsZENvbmZpZyk6IE9ic2VydmFibGU8YW55PiB7XG4gIC8vIFRPRE86IGJldHRlciBjaGVja2luZ1xuICBjb25zdCB7IGNvbnRyb2xOYW1lc1RvV2F0Y2ggfSA9IGNvbXB1dGVGaWVsZHNDb25maWc7XG4gIC8vY3JlYXRlcyBhbiBvYnNlcnZhYmxlIGxpc3RlbmVyIGZvciBlYWNoIGNvbnRyb2wgaW4gdGhlIGNvbnRyb2xOYW1lc1RvV2F0Y2ggYXJyYXlcbiAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoXG4gICAgY29udHJvbE5hbWVzVG9XYXRjaC5tYXAoY29udHJvbE5hbWVUb1dhdGNoID0+IGdldFZhbHVlQ2hhbmdlcyhncm91cCwgY29udHJvbE5hbWVUb1dhdGNoKSlcbiAgKS5waXBlKFxuICAgIC8vIGVhY2ggdGltZSBhIHdhdGNoZWQgZmllbGQgdmFsdWVzIGNoYW5nZXMgYSBuZXcgYXJyYXkgb2YgdGhlIGxhdGVzdCBmaWVsZCB2YWx1ZXMgaXMgcGlwZSB0aHJvdWdoIHRvIHRoZVxuICAgIC8vIGNvbXB1dGUgY2FsbGJhY2suIFdoaWNoIHJ1bnMgdGhlIHVzZXJzIGxvZ2ljIG9uIHRoZSB2YWx1ZXMgdG8gY29tcHV0ZSB0aGlzIGZpZWxkcyB2YWx1ZVxuICAgIG1hcCh2YWx1ZXNBcnJheSA9PiBjb21wdXRlRmllbGRzQ29uZmlnLmNvbXB1dGVDYWxsYmFjayh2YWx1ZXNBcnJheSkpLFxuICApO1xufVxuXG4vKipcbiAqIEEgc2ltcGxlIHdyYXBwZXIgZm9yIGRvaW5nIGVycm9yIGNoZWNraW5nIGFyb3VuZCBnZXR0aW5nIHRoZSB2YWx1ZUNoYW5nZXMgb2JzZXJ2YWJsZSBmcm9tIGEgY29udHJvbCBvbiBhIGZvcm0gZ3JvdXBcbiAqIEBwYXJhbSBncm91cCB0aGUgZm9ybSBncm91cCB3ZSB3YW50IHRvIHB1bGwgdGhlIG9ic2VydmFibGUgZnJvbVxuICogQHBhcmFtIGNvbnRyb2xOYW1lIHRoZSBuYW1lIG9mIHRoZSBjb250cm9sIHdobydzIHZhbHVlIHdlIHdhbnQgdG8gc3Vic2NyaWJlIHRvXG4gKi9cbmZ1bmN0aW9uIGdldFZhbHVlQ2hhbmdlcyhncm91cDogRm9ybUdyb3VwLCBjb250cm9sTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IGNvbnRyb2wgPSBncm91cC5nZXQoY29udHJvbE5hbWUpO1xuICBpZiAoIWNvbnRyb2wpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGNvbnRyb2wgd2l0aCBjb250cm9sTmFtZSAke2NvbnRyb2xOYW1lfWAsICk7XG4gIH1cbiAgcmV0dXJuIGNvbnRyb2wudmFsdWVDaGFuZ2VzO1xufVxuLyoqXG4gKiAgVE9ETzogbW92ZSB0byB1dGlscyBsaWJyYXJ5IGFmdGVyIGxpYnJhcnkgaXMgYnVpbHRcbiAqICBBbGxvd3MgZGV2ZWxvcGVyIHRvIHBhc3MgYW4gYXJyYXkgb2Ygb3BlcmF0b3JzIGludG8gdGhlIHBpcGUgb2YgYW4gT2JzZXJ2YWJsZS5cbiAqICBVc2VmdWwgZm9yIGNyZWF0aW5nIGZ1bmN0aW9uIHdpdGggYSB2YXJpYWJsZSBhbW91bnQgb2Ygb3BlcmF0b3JzIHRvIGJlIHJ1blxuICogQHBhcmFtIG9ic2VydmFibGUgdGhlIG9ic2VydmFibGUgdG8gcGFzcyB0aGUgb3BlcmF0b3JzIHRvXG4gKiBAcGFyYW0gb3BlcmF0b3JzIGFycmF5IG9mIG9wZXJhdG9ycyB0byBwaXBlXG4gKi9cbmZ1bmN0aW9uIHBpcGVPcGVyYXRvcnNJbnRvT2JzZXJ2YWJsZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4sIG9wZXJhdG9yczogT3BlcmF0b3JGdW5jdGlvbjxhbnksIGFueT5bXSkge1xuICB0cnkge1xuICAgIHJldHVybiBvcGVyYXRvcnMucmVkdWNlKChvYnM6IE9ic2VydmFibGU8e30+LCBvcDogT3BlcmF0b3JGdW5jdGlvbjx7fSwge30+KSA9PiB7XG4gICAgICByZXR1cm4gb2JzLnBpcGUob3ApO1xuICAgIH0sIG9ic2VydmFibGUpO1xuICB9IGNhdGNoIHtcbiAgICBjb25zb2xlLmVycm9yKCdVbmFibGUgdG8gcGlwZSBvcGVyYXRvcnMgaW50byBvYnNlcnZhYmxlJyk7XG4gICAgcmV0dXJuIG9mKG51bGwpO1xuICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGxPcHRpb25zSWZGdW5jdGlvbihcbiAgb3B0aW9uczogT3B0aW9uc1R5cGUgfCBBdXRvY29tcGxldGVPcHRpb25zQ2FsbGJhY2ssXG4gIHBhcmVudEdyb3VwPzogRm9ybUdyb3VwLFxuICBzZWFyY2hTdHJpbmc/OiBzdHJpbmdcbik6IE9wdGlvbnNUeXBlIHtcbiAgcmV0dXJuIG9wdGlvbnMgaW5zdGFuY2VvZiBGdW5jdGlvbiA/IG9wdGlvbnMocGFyZW50R3JvdXAsIHNlYXJjaFN0cmluZykgOiBvcHRpb25zO1xufVxuLyoqXG4gKiBUaGUgdXNlciBjYW4gZ2l2ZSB1cyBzZWxlY3Qgb3B0aW9ucyBhcyBhbiBhcnJheSwgYSBmdW5jdGlvbiB0aGF0IHJlc29sdmVzIHRvIGEgcHJvbWlzZSxcbiAqIG9yIGFuIG9ic2VydmFibGUuIFRoaXMgZnVuY3Rpb25zIGNvbnN1bWVzIGFueSBvZiB0aG9zZSBhbmQgcmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXRcbiAqIHJlc29sdmVzIGFuIGFycmF5IG9mIG9wdGlvbnNcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyB0aGUgb3B0aW9ucyBwYXNzZWQgaW4gZnJvbSB0aGUgY29uZmlnXG4gKiBAcGFyYW0gZW1wdHlNZXNzYWdlT3B0aW9uIHRoZSBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiB0aGUgYXJyYXkgaXMgZW1wdHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9ic2VydmFibGlmeU9wdGlvbnMoXG4gIG9wdGlvbnM6IE9wdGlvbnNUeXBlLFxuICBwYXJlbnRHcm91cDogRm9ybUdyb3VwLFxuICBzZWFyY2hTdHJpbmc/OiBzdHJpbmcsXG4pOiBPYnNlcnZhYmxlPFNlbGVjdE9wdGlvbltdPiB7XG4gIGNvbnN0IGNhbGxlZE9wdGlvbnMgPSBjYWxsT3B0aW9uc0lmRnVuY3Rpb24ob3B0aW9ucywgcGFyZW50R3JvdXAsIHNlYXJjaFN0cmluZyk7XG4gIC8vIGlmIG9wdGlvbnMgYXJlIGEgcHJvbWlzZVxuICBjb25zdCBvYnNlcnZhYmxlT3B0aW9ucyA9IGNhbGxlZE9wdGlvbnMgaW5zdGFuY2VvZiBQcm9taXNlXG4gIC8vIGNvbnZlcnQgdG8gb2JzZXJ2YWJsZVxuICA/IGZyb20oY2FsbGVkT3B0aW9ucylcbiAgLy8gaWYgYXJyYXkgdGhhdCBpc24ndCBlbXB0eVxuICA6IEFycmF5LmlzQXJyYXkoY2FsbGVkT3B0aW9ucykgJiYgY2FsbGVkT3B0aW9ucy5sZW5ndGhcbiAgLy8gY29udmVydCB0byBvYnNlcnZhYmxlXG4gID8gb2YoY2FsbGVkT3B0aW9ucylcbiAgLy8gaWYgb2JzZXJ2YWJsZVxuICA6IGlzT2JzZXJ2YWJsZShjYWxsZWRPcHRpb25zKVxuICAvLyByZXR1cm4gaXRcbiAgPyBjYWxsZWRPcHRpb25zXG4gIC8vIGVsc2UgYW4gZW1wdHkgYXJyYXlcbiAgOiBvZihbXSk7XG4gIHJldHVybiBvYnNlcnZhYmxlT3B0aW9ucztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBmaWVsZCBjb25maWcgaXMgZm9yIGEgZm9ybSBjb250cm9sIChub3QgYSBkaXZpZGVyLCBoZWFkaW5nIG9yIG90aGVyIG5vbi1jb250cm9sIGZpZWxkKVxuICogICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sQ29uZmlnKGZpZWxkQ29uZmlnOiBDcmlzcHJGaWVsZENvbmZpZyk6IGZpZWxkQ29uZmlnIGlzIENyaXNwckNvbnRyb2xDb25maWcge1xuICByZXR1cm4gJ2NvbnRyb2xOYW1lJyBpbiBmaWVsZENvbmZpZztcbn1cbi8qKlxuICogYnVpbGRzIG91dCBmb3JtIGdyb3VwIGJhc2VkIG9uIGNvbmZpZ1xuICogQHBhcmFtIGNvbmZpZyBhIGNvbmZpZ3VyYXRpb24gZm9yIGEgZm9ybSBncm91cFxuICogQHBhcmFtIHZhbHVlIGFuIG9iamVjdCBvZiBpbml0aWFsIHZhbHVlcyB0byBwYXNzIGluXG4gKiBAcGFyYW0gZ3JvdXAgdGhlIGZvcm0gZ3JvdXAgdG8gbW9kaWZ5IGFuZCBidWlsZCBvdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybUdyb3VwRnJvbUNvbmZpZyhjb25maWc6IEZvcm1Db25maWcsIHZhbHVlID0gbnVsbCwgZ3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pICkge1xuICBjb25maWcuZmllbGRzLmZvckVhY2goIChjb250cm9sQ29uZmlnOiBBbnlGaWVsZENvbmZpZykgPT4ge1xuICAgIGlmIChpc0NvbnRyb2xDb25maWcoY29udHJvbENvbmZpZykpIHtcbiAgICAgIC8vIHRoZW4gYWRkIGEgY29udHJvbCB0byB0aGUgZ3JvdXAgdXNpbmcgdGhlIGNvbnRyb2xOYW1lIGZyb20gY29uZmlndXJhdGlvblxuICAgICAgY29uc3Qge2NvbnRyb2xOYW1lfSA9IGNvbnRyb2xDb25maWc7XG4gICAgICBpZiAoZ3JvdXAuZ2V0KGNvbnRyb2xOYW1lKSkge1xuICAgICAgICBncm91cC5yZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lKTtcbiAgICAgIH1cbiAgICAgIC8vIGlmIHRoZXJlJ3MgYSB2YWx1ZSBvYmplY3QgYW5kIGl0IGhhcyBhIG5vbi1udWxsL3VuZGVmaW5lZCB2YWx1ZSBmb3IgdGhpcyBmaWVsZCB1c2UgaXQuXG4gICAgICAvLyBPdGhlcndpc2UsIGRlZmF1bHQgdG8gbnVsbFxuICAgICAgY29uc3QgY29udHJvbFZhbHVlID0gKHZhbHVlICYmIHZhbHVlW2NvbnRyb2xOYW1lXSkgPz8gbnVsbDtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBjcmVhdGVDb250cm9sRm9yVHlwZShjb250cm9sQ29uZmlnLCBjb250cm9sVmFsdWUpXG4gICAgICBncm91cC5hZGRDb250cm9sKGNvbnRyb2xOYW1lLCBjb250cm9sKTtcbiAgICB9XG4gIH0pO1xuICBncm91cC5zZXRWYWxpZGF0b3JzKGNvbmZpZy52YWxpZGF0b3JzKTtcbiAgcmV0dXJuIGdyb3VwO1xufVxuXG4vKipcbiAqIEFuYWx5emUgdGhlIGNvbmZpZyBhbmQgYnVpbGQgYSBmb3JtIGNvbnRyb2wgdG8gc3BlYy4gTm90aWNlIHdlIGRvbid0IHVzZSBGb3JtQnVpbGRlciBoZXJlXG4gKiBhcyB3ZSB3YW50IHRvIGtlZXAgdGhpcyBmdW5jdGlvbiBwdXJlLlxuICogQHBhcmFtIGNvbnRyb2xDb25maWcgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgY29udHJvbCB0byBidWlsZFxuICogQHBhcmFtIHZhbHVlIGFuIGluaXRpYWwgdmFsdWUgdG8gdXNlIGlmIHBhc3NlZCBpblxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29udHJvbEZvclR5cGUoY29udHJvbENvbmZpZzogQW55RmllbGRDb25maWcsIHZhbHVlOiBDb250cm9sVmFsdWUgPSBudWxsKSAge1xuICAvLyBidWlsZCBmb3JtIGNvbnRyb2wgb3V0IGJhc2VkIG9uIHRoZSBjb250cm9sIHR5cGVcbiAgY29uc3QgY29udHJvbCA9IGNvbnRyb2xDb25maWcuY29udHJvbFR5cGUgPT09IENvbnRyb2xUeXBlLlNVQl9HUk9VUFxuICAgID8gYnVpbGRGb3JtR3JvdXBGcm9tQ29uZmlnKGNvbnRyb2xDb25maWcgYXMgRm9ybUNvbmZpZywgdmFsdWUpXG4gICAgOiBjb250cm9sQ29uZmlnLmNvbnRyb2xUeXBlID09PSBDb250cm9sVHlwZS5HUk9VUF9MSVNUXG4gICAgPyBuZXcgRm9ybUFycmF5KFtdLCAoY29udHJvbENvbmZpZyBhcyBGb3JtR3JvdXBMaXN0Q29uZmlnKS52YWxpZGF0b3JzKVxuICAgIDogbmV3IEZvcm1Db250cm9sKFxuICAgICAgdmFsdWUgfHwgbnVsbCxcbiAgICAgIChjb250cm9sQ29uZmlnIGFzIENyaXNwckNvbnRyb2xDb25maWcpLnZhbGlkYXRvcnNcbiAgICApO1xuXG4gIHJldHVybiBjb250cm9sO1xufVxuXG4vKipcbiAqIEEgYmFzaWMgZmlsdGVyIGZ1bmN0aW9uIHRoYXQgZmlsdGVycyB0aGUgc2VhcmNoIHN0cmluZyBhZ2FpbnN0IHRoZSBsYWJlbCBvZiB0aGUgb3B0aW9ucyBvYmplY3RcbiAqIEBwYXJhbSBvcHRpb25zIHRoZSBhcnJheSBvZiBvcHRpb25zIHRvIGZpbHRlclxuICogQHBhcmFtIHNlYXJjaFN0cmluZyB0aGUgc3RyaW5nIGZyb20gdGhlIGlucHV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJPcHRpb25zQnlMYWJlbChvcHRpb25zOiBTZWxlY3RPcHRpb25bXSwgc2VhcmNoU3RyaW5nOiBzdHJpbmcpICB7XG4gIHJldHVybiBvcHRpb25zLmZpbHRlcihvcHRpb24gPT4ge1xuICAgIHJldHVybiBvcHRpb24ubGFiZWwgJiYgb3B0aW9uLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nLnRvTG93ZXJDYXNlKCkpO1xuICB9KTtcbn1cbiJdfQ==
@@ -1,23 +1,28 @@
1
1
  import { Component, ChangeDetectionStrategy, ViewChild, ElementRef } from '@angular/core';
2
2
  import { map, tap } from 'rxjs/operators';
3
- import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
3
+ import { MatAutocompleteModule, MatAutocompleteTrigger } from '@angular/material/autocomplete';
4
4
  import { BehaviorSubject, combineLatest } from 'rxjs';
5
5
  import { ENTER } from '@angular/cdk/keycodes';
6
6
  import { DEFAULT_EMPTY_OPTIONS_MESSAGE } from '../../models';
7
7
  import { AbstractAutocompleteComponent } from '../../abstracts';
8
+ import { MatChipsModule } from '@angular/material/chips';
9
+ import { CommonModule } from '@angular/common';
10
+ import { ReactiveFormsModule } from '@angular/forms';
11
+ import { MatOptionModule } from '@angular/material/core';
12
+ import { MatInputModule } from '@angular/material/input';
13
+ import { FieldContainerComponent } from '../../field-container';
14
+ import { InfoComponent } from '../info/info.component';
15
+ import { OptionComponent } from '../option';
16
+ import { MatIconModule } from '@angular/material/icon';
8
17
  import * as i0 from "@angular/core";
9
- import * as i1 from "../../field-container/field-container.component";
10
- import * as i2 from "@angular/material/form-field";
11
- import * as i3 from "@angular/material/chips";
12
- import * as i4 from "@angular/material/icon";
13
- import * as i5 from "../info/info.component";
14
- import * as i6 from "@angular/material/autocomplete";
15
- import * as i7 from "@angular/material/core";
16
- import * as i8 from "../option/option.component";
17
- import * as i9 from "@angular/forms";
18
- import * as i10 from "@tft/form-validation-handler";
19
- import * as i11 from "@angular/common";
20
- import * as i12 from "@angular/material/input";
18
+ import * as i1 from "@angular/common";
19
+ import * as i2 from "@angular/forms";
20
+ import * as i3 from "@angular/material/autocomplete";
21
+ import * as i4 from "@angular/material/core";
22
+ import * as i5 from "@angular/material/form-field";
23
+ import * as i6 from "@angular/material/input";
24
+ import * as i7 from "@angular/material/chips";
25
+ import * as i8 from "@angular/material/icon";
21
26
  const defaultConfig = {
22
27
  chipsSelectable: true,
23
28
  areChipsRemovable: true,
@@ -96,11 +101,22 @@ export class AutocompleteChiplistFieldComponent extends AbstractAutocompleteComp
96
101
  this.chips$.next(remainingChips);
97
102
  }
98
103
  }
99
- AutocompleteChiplistFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AutocompleteChiplistFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
100
- AutocompleteChiplistFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AutocompleteChiplistFieldComponent, selector: "crispr-autocomplete-chiplist-field", viewQueries: [{ propertyName: "chipInput", first: true, predicate: ["autoInput"], descendants: true, read: MatAutocompleteTrigger }, { propertyName: "chipInputRef", first: true, predicate: ["autoInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n\n <mat-chip-list\n #chipList>\n <mat-chip\n class=\"refinement-chip\"\n *ngFor=\"let chip of controlValue$ | async\"\n [selectable]=\"config.chipsSelectable\"\n [removable]=\"config.areChipsRemovable\"\n (removed)=\"removeChip(chip)\">\n <span *ngIf=\"chip.imageUrl as imageUrl\" class=\"image-container\">\n <img [src]=\"imageUrl\" alt=\"image of {{chip.label}}\">\n </span>\n {{chip.label}}\n <mat-icon\n matChipRemove\n *ngIf=\"config.areChipsRemovable\">\n cancel\n </mat-icon>\n </mat-chip>\n <input class=\"hidden-error-directive-anchor\" [formControlName]=\"config.controlName\" type=\"text\"/>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n (keydown.tab)=\"handleTab($event)\"\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeyCodes\"\n (matChipInputTokenEnd)=\"handleTokenEnd($event)\"\n role=\"searchbox\"\n type=\"text\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput/>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info \">\n </crispr-info>\n\n </mat-chip-list>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"this.config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"mapToLabel\">\n <ng-container *ngIf=\"remainingOptions$ | async as remainingOptions; else emptyOption\">\n <ng-container *ngIf=\"remainingOptions.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of remainingOptions$ | async\"\n [value]=\"option\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n", styles: [".refinement-chip .image-container{width:26px;height:26px;border-radius:50%;overflow:hidden;margin:-2px 4px -2px -8px}.refinement-chip .image-container img{width:100%;height:100%;object-fit:cover}.hidden-error-directive-anchor{display:none}\n"], components: [{ type: i1.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.InfoComponent, selector: "crispr-info", inputs: ["info"] }, { type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i8.OptionComponent, selector: "crispr-option", inputs: ["option"] }], directives: [{ type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatLabel, selector: "mat-label" }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i3.MatChipRemove, selector: "[matChipRemove]" }, { type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i10.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { type: i12.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"] }, { type: i3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i9.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.MatSuffix, selector: "[matSuffix]" }, { type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "async": i11.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AutocompleteChiplistFieldComponent, decorators: [{
104
+ AutocompleteChiplistFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: AutocompleteChiplistFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
105
+ AutocompleteChiplistFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: AutocompleteChiplistFieldComponent, isStandalone: true, selector: "crispr-autocomplete-chiplist-field", viewQueries: [{ propertyName: "chipInput", first: true, predicate: ["autoInput"], descendants: true, read: MatAutocompleteTrigger }, { propertyName: "chipInputRef", first: true, predicate: ["autoInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n\n <mat-chip-list\n #chipList>\n <mat-chip\n class=\"refinement-chip\"\n *ngFor=\"let chip of controlValue$ | async\"\n [selectable]=\"config.chipsSelectable\"\n [removable]=\"config.areChipsRemovable\"\n (removed)=\"removeChip(chip)\">\n <span *ngIf=\"chip.imageUrl as imageUrl\" class=\"image-container\">\n <img [src]=\"imageUrl\" alt=\"image of {{chip.label}}\">\n </span>\n {{chip.label}}\n <mat-icon\n matChipRemove\n *ngIf=\"config.areChipsRemovable\">\n cancel\n </mat-icon>\n </mat-chip>\n <input class=\"hidden-error-directive-anchor\" [formControlName]=\"config.controlName\" type=\"text\"/>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n (keydown.tab)=\"handleTab($event)\"\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeyCodes\"\n (matChipInputTokenEnd)=\"handleTokenEnd($event)\"\n role=\"searchbox\"\n type=\"text\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput/>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info \">\n </crispr-info>\n\n </mat-chip-list>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"this.config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"mapToLabel\">\n <ng-container *ngIf=\"remainingOptions$ | async as remainingOptions; else emptyOption\">\n <ng-container *ngIf=\"remainingOptions.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of remainingOptions$ | async\"\n [value]=\"option\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n", styles: [".refinement-chip .image-container{width:26px;height:26px;border-radius:50%;overflow:hidden;margin:-2px 4px -2px -8px}.refinement-chip .image-container img{width:100%;height:100%;object-fit:cover}.hidden-error-directive-anchor{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: InfoComponent, selector: "crispr-info", inputs: ["info"] }, { kind: "component", type: OptionComponent, selector: "crispr-option", inputs: ["option"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["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: "component", type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i6.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: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i7.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: AutocompleteChiplistFieldComponent, decorators: [{
102
107
  type: Component,
103
- args: [{ selector: 'crispr-autocomplete-chiplist-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n\n <mat-chip-list\n #chipList>\n <mat-chip\n class=\"refinement-chip\"\n *ngFor=\"let chip of controlValue$ | async\"\n [selectable]=\"config.chipsSelectable\"\n [removable]=\"config.areChipsRemovable\"\n (removed)=\"removeChip(chip)\">\n <span *ngIf=\"chip.imageUrl as imageUrl\" class=\"image-container\">\n <img [src]=\"imageUrl\" alt=\"image of {{chip.label}}\">\n </span>\n {{chip.label}}\n <mat-icon\n matChipRemove\n *ngIf=\"config.areChipsRemovable\">\n cancel\n </mat-icon>\n </mat-chip>\n <input class=\"hidden-error-directive-anchor\" [formControlName]=\"config.controlName\" type=\"text\"/>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n (keydown.tab)=\"handleTab($event)\"\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeyCodes\"\n (matChipInputTokenEnd)=\"handleTokenEnd($event)\"\n role=\"searchbox\"\n type=\"text\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput/>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info \">\n </crispr-info>\n\n </mat-chip-list>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"this.config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"mapToLabel\">\n <ng-container *ngIf=\"remainingOptions$ | async as remainingOptions; else emptyOption\">\n <ng-container *ngIf=\"remainingOptions.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of remainingOptions$ | async\"\n [value]=\"option\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n", styles: [".refinement-chip .image-container{width:26px;height:26px;border-radius:50%;overflow:hidden;margin:-2px 4px -2px -8px}.refinement-chip .image-container img{width:100%;height:100%;object-fit:cover}.hidden-error-directive-anchor{display:none}\n"] }]
108
+ args: [{ selector: 'crispr-autocomplete-chiplist-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
109
+ CommonModule,
110
+ InfoComponent,
111
+ OptionComponent,
112
+ ReactiveFormsModule,
113
+ FieldContainerComponent,
114
+ MatAutocompleteModule,
115
+ MatInputModule,
116
+ MatOptionModule,
117
+ MatChipsModule,
118
+ MatIconModule
119
+ ], template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n\n <mat-chip-list\n #chipList>\n <mat-chip\n class=\"refinement-chip\"\n *ngFor=\"let chip of controlValue$ | async\"\n [selectable]=\"config.chipsSelectable\"\n [removable]=\"config.areChipsRemovable\"\n (removed)=\"removeChip(chip)\">\n <span *ngIf=\"chip.imageUrl as imageUrl\" class=\"image-container\">\n <img [src]=\"imageUrl\" alt=\"image of {{chip.label}}\">\n </span>\n {{chip.label}}\n <mat-icon\n matChipRemove\n *ngIf=\"config.areChipsRemovable\">\n cancel\n </mat-icon>\n </mat-chip>\n <input class=\"hidden-error-directive-anchor\" [formControlName]=\"config.controlName\" type=\"text\"/>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n (keydown.tab)=\"handleTab($event)\"\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeyCodes\"\n (matChipInputTokenEnd)=\"handleTokenEnd($event)\"\n role=\"searchbox\"\n type=\"text\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput/>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info \">\n </crispr-info>\n\n </mat-chip-list>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"this.config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"mapToLabel\">\n <ng-container *ngIf=\"remainingOptions$ | async as remainingOptions; else emptyOption\">\n <ng-container *ngIf=\"remainingOptions.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of remainingOptions$ | async\"\n [value]=\"option\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n", styles: [".refinement-chip .image-container{width:26px;height:26px;border-radius:50%;overflow:hidden;margin:-2px 4px -2px -8px}.refinement-chip .image-container img{width:100%;height:100%;object-fit:cover}.hidden-error-directive-anchor{display:none}\n"] }]
104
120
  }], propDecorators: { chipInput: [{
105
121
  type: ViewChild,
106
122
  args: ['autoInput', { read: MatAutocompleteTrigger }]
@@ -108,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
108
124
  type: ViewChild,
109
125
  args: ['autoInput']
110
126
  }] } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC9hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFnQyxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RHLE9BQU8sRUFBYyxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5QyxPQUFPLEVBQW1DLDZCQUE2QixFQUFnQixNQUFNLGNBQWMsQ0FBQztBQUM1RyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFHaEUsTUFBTSxhQUFhLEdBQTZDO0lBQzlELGVBQWUsRUFBRSxJQUFJO0lBQ3JCLGlCQUFpQixFQUFFLElBQUk7SUFDdkIsV0FBVyxFQUFFLElBQUk7SUFDakIscUJBQXFCLEVBQUUsSUFBSTtJQUMzQixhQUFhLEVBQUUsT0FBTztJQUN0QixnQkFBZ0IsRUFBRSxHQUFHO0lBQ3JCLGVB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QUNILGNBQWMsQ0FBQyxLQUF3QjtRQUNyQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO1lBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3RDO1FBQ0QsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQW9CO1FBQzdCLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxXQUF5QjtRQUNsQyxNQUFNLGNBQWMsR0FBbUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7OytIQW5GVSxrQ0FBa0M7bUhBQWxDLGtDQUFrQyw2SkFnQmIsc0JBQXNCLGdKQzdDeEQscXRGQWlGQTsyRkRwRGEsa0NBQWtDO2tCQU45QyxTQUFTOytCQUNFLG9DQUFvQyxtQkFHN0IsdUJBQXVCLENBQUMsTUFBTTs4QkFrQlcsU0FBUztzQkFBbEUsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7Z0JBQ2hDLFlBQVk7c0JBQW5DLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5cbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb25maWcsIERFRkFVTFRfRU1QVFlfT1BUSU9OU19NRVNTQUdFLCBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hYnN0cmFjdHMnO1xuaW1wb3J0IHsgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5cbmNvbnN0IGRlZmF1bHRDb25maWc6IFBhcnRpYWw8QXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbmZpZz4gPSB7XG4gIGNoaXBzU2VsZWN0YWJsZTogdHJ1ZSxcbiAgYXJlQ2hpcHNSZW1vdmFibGU6IHRydWUsXG4gIHRhYlRvU2VsZWN0OiB0cnVlLFxuICBhdXRvQWN0aXZlRmlyc3RPcHRpb246IHRydWUsXG4gIGltYWdlVXJsUGFyYW06ICdpbWFnZScsXG4gIHR5cGVEZWJvdW5jZVRpbWU6IDUwMCxcbiAgYWxsb3dEdXBsaWNhdGVzOiBmYWxzZSxcbiAgZHVwbGljYXRlQ29tcGFyZUZ1bmN0aW9uOiAoY2hpcCwgb3B0aW9uKSA9PiBjaGlwLnZhbHVlID09PSBvcHRpb24udmFsdWUsXG4gIHNlcGFyYXRvcktleUNvZGVzOiBbRU5URVJdLFxuICBlbXB0eU9wdGlvbnNNZXNzYWdlOiBERUZBVUxUX0VNUFRZX09QVElPTlNfTUVTU0FHRSxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Jpc3ByLWF1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbXBvbmVudFxuICBleHRlbmRzIEFic3RyYWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50PEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb25maWc+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZGVmYXVsdENvbmZpZyA9IGRlZmF1bHRDb25maWc7XG4gIGNoaXBzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2VsZWN0T3B0aW9uW10+KFtdKTtcbiAgcmVtYWluaW5nT3B0aW9ucyQ6IE9ic2VydmFibGU8U2VsZWN0T3B0aW9uW10+O1xuXG4gIGNvbnRyb2xWYWx1ZSQgPSB0aGlzLmNoaXBzJC5waXBlKFxuICAgIHRhcChjaGlwcyA9PiB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoY2hpcHMubWFwKGNoaXAgPT4gY2hpcC52YWx1ZSkpXG4gICAgfSlcbiAgKTtcblxuXG4gIC8vIFdlIG5lZWQgdXNlIFZpZXdDaGlsZCB0d2ljZSBvbiB0aGUgc2FtZSB0ZW1wbGF0ZSByZWYgdG8gYWNjZXNzIGFzIGRpZmZlcmVudCB0eXBlc1xuICAvLyAtIHRoZSBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIGlzIHVzZWQgdG8gZm9yIHNlbGVjdGluZyB2YWx1ZSBvbiB0YWJcbiAgLy8gLSB0aGUgRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiBpcyB1c2VkIHRvIGNsZWFyIHRoZSB2YWx1ZSBmcm9tIGlucHV0IGVsZW1lbnQgb24gc2VsZWN0aW9uXG4gIEBWaWV3Q2hpbGQoJ2F1dG9JbnB1dCcsIHsgcmVhZDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9KSBjaGlwSW5wdXQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XG4gIEBWaWV3Q2hpbGQoJ2F1dG9JbnB1dCcpIGNoaXBJbnB1dFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5yZW1haW5pbmdPcHRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGlwcyQsXG4gICAgICB0aGlzLm9wdGlvbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2NoaXBzLCBvcHRpb25zXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuYWxsb3dEdXBsaWNhdGVzXG4gICAgICAgICAgPyBvcHRpb25zXG4gICAgICAgICAgOiBvcHRpb25zPy5maWx0ZXIob3B0aW9uID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhY2hpcHMuc29tZShjaGlwID0+IHRoaXMuY29uZmlnLmR1cGxpY2F0ZUNvbXBhcmVGdW5jdGlvbihjaGlwLCBvcHRpb24pKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgc2V0Q29udHJvbFZhbHVlKHZhbHVlOiBTZWxlY3RPcHRpb25bXSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5jaGlwcyQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gaGFuZGxlcyBtYXQgc2VsZWN0aW5nXG4gIGhhbmRsZVNlbGVjdChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uOiBTZWxlY3RPcHRpb24gPSBldmVudC5vcHRpb24udmFsdWUgYXMgU2VsZWN0T3B0aW9uO1xuICAgIHRoaXMuY2hpcHMkLm5leHQoWy4uLnRoaXMuY2hpcHMkLnZhbHVlLCAgc2VsZWN0ZWRPcHRpb25dKTtcbiAgICB0aGlzLmNoaXBJbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5hdXRvY29tcGxldGVJbnB1dENvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgIC8vIHNldFRpbWVvdXQgbmVlZGVkIGJlY2F1c2UgdGhlIHBhbmVsIHRoaW5rcyBpdCdzIHN0aWxsIG9wZW4gYXQgdGhpcyBwb2ludFxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGlwSW5wdXQub3BlblBhbmVsKCkpXG4gIH1cblxuICAvKipcbiAgICogVG8gZm9sbG93IEFSSUEgc3RhbmRhcmRzIHdlIHdhbnQgdG8gc2VsZWN0IHRoZSBhY3RpdmUgb3B0aW9uIG9uIGJsdXIuXG4gICAqIG1hdENoaXBJbnB1dEFkZE9uQmx1ciBzaG91bGQgZG8gdGhpcyBidXQgaXQgY2F1c2VzIGJ1Z2d5IGJlaGF2aW91clxuICAgKiBAcGFyYW0gZXZlbnQgYmx1ciBldmVudCB0aGF0IHRyaWdnZXJzIHRoZSBoYW5kbGUgYmx1clxuICAgKi9cbiAgaGFuZGxlVGFiKF9ldmVudDogRm9jdXNFdmVudCkge1xuICAgIGlmICh0aGlzLmNoaXBJbnB1dC5hY3RpdmVPcHRpb24gJiYgKHRoaXMuY29uZmlnLnRhYlRvU2VsZWN0IHx8IHRoaXMuY29uZmlnLmFkZENoaXBPbkJsdXIpKSB7XG4gICAgICBjb25zdCBjaGlwID0gdGhpcy5jaGlwSW5wdXQuYWN0aXZlT3B0aW9uLnZhbHVlO1xuICAgICAgdGhpcy5jaGlwcyQubmV4dChbLi4udGhpcy5jaGlwcyQudmFsdWUsICBjaGlwXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgc2VsZWN0aW9uIHZpYSBrZXkgdG9rZW5zIHBhc3NlZCB0aHJvdWdoIHNlcGFyYXRvcktleUNvZGVzIHByb3BlcnRcbiAgICogTk9URTogSWYgVEFCIGlzIHVzZWQgZm9jdXMgZG9lcyBub3QgbW92ZSBvbiB0byBuZXh0IGNvbXBvbmVudFxuICAgKiBAcGFyYW0gZXZlbnRcbiAgICovXG4gIGhhbmRsZVRva2VuRW5kKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCkge1xuICAgIGlmICh0aGlzLmNoaXBJbnB1dC5hY3RpdmVPcHRpb24pIHtcbiAgICAgIHRoaXMuY2hpcElucHV0LmFjdGl2ZU9wdGlvbi5zZWxlY3QoKTtcbiAgICB9XG4gICAgZXZlbnQuY2hpcElucHV0Py5jbGVhcigpO1xuICB9XG5cbiAgbWFwVG9MYWJlbChvcHRpb246IFNlbGVjdE9wdGlvbikge1xuICAgIHJldHVybiBvcHRpb24gPyBvcHRpb24ubGFiZWwgOiAnJztcbiAgfVxuXG4gIHJlbW92ZUNoaXAocmVtb3ZlZENoaXA6IFNlbGVjdE9wdGlvbikge1xuICAgIGNvbnN0IHJlbWFpbmluZ0NoaXBzOiBTZWxlY3RPcHRpb25bXSA9IHRoaXMuY2hpcHMkLnZhbHVlLmZpbHRlcihjaGlwID0+IGNoaXAgIT09IHJlbW92ZWRDaGlwKTtcbiAgICB0aGlzLmNoaXBzJC5uZXh0KHJlbWFpbmluZ0NoaXBzKTtcbiAgfVxufVxuIiwiPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIj5cblxuICA8bWF0LWZvcm0tZmllbGRcbiAgICBbY29sb3JdPVwiY29uZmlnLmNvbG9yXCJcbiAgICBbYXBwZWFyYW5jZV09XCJjb25maWcuYXBwZWFyYW5jZVwiXG4gICAgW2Zvcm1Hcm91cF09XCJncm91cFwiPlxuICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJjb25maWcubGFiZWxcIj5cbiAgICAgIHt7Y29uZmlnLmxhYmVsfX1cbiAgICA8L21hdC1sYWJlbD5cblxuICAgIDxtYXQtY2hpcC1saXN0XG4gICAgICAjY2hpcExpc3Q+XG4gICAgICA8bWF0LWNoaXBcbiAgICAgICAgY2xhc3M9XCJyZWZpbmVtZW50LWNoaXBcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgY2hpcCBvZiBjb250cm9sVmFsdWUkIHwgYXN5bmNcIlxuICAgICAgICBbc2VsZWN0YWJsZV09XCJjb25maWcuY2hpcHNTZWxlY3RhYmxlXCJcbiAgICAgICAgW3JlbW92YWJsZV09XCJjb25maWcuYXJlQ2hpcHNSZW1vdmFibGVcIlxuICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVDaGlwKGNoaXApXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiY2hpcC5pbWFnZVVybCBhcyBpbWFnZVVybFwiIGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlVXJsXCIgYWx0PVwiaW1hZ2Ugb2Yge3tjaGlwLmxhYmVsfX1cIj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7e2NoaXAubGFiZWx9fVxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICBtYXRDaGlwUmVtb3ZlXG4gICAgICAgICAgKm5nSWY9XCJjb25maWcuYXJlQ2hpcHNSZW1vdmFibGVcIj5cbiAgICAgICAgICBjYW5jZWxcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvbWF0LWNoaXA+XG4gICAgICA8aW5wdXQgY2xhc3M9XCJoaWRkZW4tZXJyb3ItZGlyZWN0aXZlLWFuY2hvclwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCIgdHlwZT1cInRleHRcIi8+XG5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlclwiXG4gICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIlxuICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAoa2V5ZG93bi50YWIpPVwiaGFuZGxlVGFiKCRldmVudClcIlxuICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwiY29uZmlnLnNlcGFyYXRvcktleUNvZGVzXCJcbiAgICAgICAgKG1hdENoaXBJbnB1dFRva2VuRW5kKT1cImhhbmRsZVRva2VuRW5kKCRldmVudClcIlxuICAgICAgICByb2xlPVwic2VhcmNoYm94XCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcbiAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgICAgI2F1dG9JbnB1dC8+XG4gICAgICA8c3BhbiAqbmdJZj1cImNvbmZpZy5maWVsZFN1ZmZpeFwiIG1hdFN1ZmZpeD57e2NvbmZpZy5maWVsZFN1ZmZpeH19PC9zcGFuPlxuICAgICAgPGNyaXNwci1pbmZvXG4gICAgICAgICpuZ0lmPVwiY29uZmlnLmluZm9cIlxuICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgW2luZm9dPVwiY29uZmlnLmluZm8gXCI+XG4gICAgICA8L2NyaXNwci1pbmZvPlxuXG4gICAgPC9tYXQtY2hpcC1saXN0PlxuICAgIDxtYXQtYXV0b2NvbXBsZXRlXG4gICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICBbYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXT1cInRoaXMuY29uZmlnLmF1dG9BY3RpdmVGaXJzdE9wdGlvblwiXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlU2VsZWN0KCRldmVudClcIlxuICAgICAgW2Rpc3BsYXlXaXRoXT1cIm1hcFRvTGFiZWxcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZW1haW5pbmdPcHRpb25zJCB8IGFzeW5jIGFzIHJlbWFpbmluZ09wdGlvbnM7IGVsc2UgZW1wdHlPcHRpb25cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbWFpbmluZ09wdGlvbnMubGVuZ3RoID4gMDsgZWxzZSBlbXB0eU9wdGlvblwiPlxuICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiByZW1haW5pbmdPcHRpb25zJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIj5cbiAgICAgICAgICAgIDxjcmlzcHItb3B0aW9uIFtvcHRpb25dPVwib3B0aW9uXCI+PC9jcmlzcHItb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eU9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gZGlzYWJsZWQ9XCJ0cnVlXCI+XG4gICAgICAgICAge3tjb25maWcuZW1wdHlPcHRpb25zTWVzc2FnZX19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuXG4gICAgPG1hdC1oaW50ICpuZ0lmPVwiY29uZmlnLmhpbnQgJiYgKGNvbnRyb2wudmFsaWQgfHwgIWNvbnRyb2wudG91Y2hlZClcIj57e2NvbmZpZy5oaW50fX08L21hdC1oaW50PlxuXG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC9hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFnQyxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdILE9BQU8sRUFBYyxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5QyxPQUFPLEVBQW1DLDZCQUE2QixFQUFnQixNQUFNLGNBQWMsQ0FBQztBQUM1RyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQXFCLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0s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QkFBc0IsZ0pDbEV4RCxxdEZBaUZBLDBTRDNDSSxZQUFZLHFUQUNaLGFBQWEsMEVBQ2IsZUFBZSw2RUFDZixtQkFBbUIsdWhDQUNuQix1QkFBdUIsOEdBQ3ZCLHFCQUFxQixnYUFDckIsY0FBYywrdkJBQ2QsZUFBZSw4QkFDZixjQUFjLCsrQkFDZCxhQUFhOzJGQUdKLGtDQUFrQztrQkFuQjlDLFNBQVM7K0JBQ0Usb0NBQW9DLG1CQUc3Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxhQUFhO3FCQUNkOzhCQWtCeUQsU0FBUztzQkFBbEUsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7Z0JBQ2hDLFlBQVk7c0JBQW5DLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSwgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCwgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcblxuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbmZpZywgREVGQVVMVF9FTVBUWV9PUFRJT05TX01FU1NBR0UsIFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBBYnN0cmFjdEF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Fic3RyYWN0cyc7XG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCwgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBGaWVsZENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ZpZWxkLWNvbnRhaW5lcic7XG5pbXBvcnQgeyBJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5mby9pbmZvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9vcHRpb24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5jb25zdCBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb25maWc+ID0ge1xuICBjaGlwc1NlbGVjdGFibGU6IHRydWUsXG4gIGFyZUNoaXBzUmVtb3ZhYmxlOiB0cnVlLFxuICB0YWJUb1NlbGVjdDogdHJ1ZSxcbiAgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uOiB0cnVlLFxuICBpbWFnZVVybFBhcmFtOiAnaW1hZ2UnLFxuICB0eXBlRGVib3VuY2VUaW1lOiA1MDAsXG4gIGFsbG93RHVwbGljYXRlczogZmFsc2UsXG4gIGR1cGxpY2F0ZUNvbXBhcmVGdW5jdGlvbjogKGNoaXAsIG9wdGlvbikgPT4gY2hpcC52YWx1ZSA9PT0gb3B0aW9uLnZhbHVlLFxuICBzZXBhcmF0b3JLZXlDb2RlczogW0VOVEVSXSxcbiAgZW1wdHlPcHRpb25zTWVzc2FnZTogREVGQVVMVF9FTVBUWV9PUFRJT05TX01FU1NBR0UsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEluZm9Db21wb25lbnQsXG4gICAgT3B0aW9uQ29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRmllbGRDb250YWluZXJDb21wb25lbnQsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRDaGlwc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb21wb25lbnRcbiAgZXh0ZW5kcyBBYnN0cmFjdEF1dG9jb21wbGV0ZUNvbXBvbmVudDxBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29uZmlnPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGRlZmF1bHRDb25maWcgPSBkZWZhdWx0Q29uZmlnO1xuICBjaGlwcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlbGVjdE9wdGlvbltdPihbXSk7XG4gIHJlbWFpbmluZ09wdGlvbnMkOiBPYnNlcnZhYmxlPFNlbGVjdE9wdGlvbltdPjtcblxuICBjb250cm9sVmFsdWUkID0gdGhpcy5jaGlwcyQucGlwZShcbiAgICB0YXAoY2hpcHMgPT4ge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGNoaXBzLm1hcChjaGlwID0+IGNoaXAudmFsdWUpKVxuICAgIH0pXG4gICk7XG5cblxuICAvLyBXZSBuZWVkIHVzZSBWaWV3Q2hpbGQgdHdpY2Ugb24gdGhlIHNhbWUgdGVtcGxhdGUgcmVmIHRvIGFjY2VzcyBhcyBkaWZmZXJlbnQgdHlwZXNcbiAgLy8gLSB0aGUgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciBpcyB1c2VkIHRvIGZvciBzZWxlY3RpbmcgdmFsdWUgb24gdGFiXG4gIC8vIC0gdGhlIEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gaXMgdXNlZCB0byBjbGVhciB0aGUgdmFsdWUgZnJvbSBpbnB1dCBlbGVtZW50IG9uIHNlbGVjdGlvblxuICBAVmlld0NoaWxkKCdhdXRvSW5wdXQnLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSkgY2hpcElucHV0OiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xuICBAVmlld0NoaWxkKCdhdXRvSW5wdXQnKSBjaGlwSW5wdXRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMucmVtYWluaW5nT3B0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hpcHMkLFxuICAgICAgdGhpcy5vcHRpb25zJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtjaGlwcywgb3B0aW9uc10pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmFsbG93RHVwbGljYXRlc1xuICAgICAgICAgID8gb3B0aW9uc1xuICAgICAgICAgIDogb3B0aW9ucz8uZmlsdGVyKG9wdGlvbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gIWNoaXBzLnNvbWUoY2hpcCA9PiB0aGlzLmNvbmZpZy5kdXBsaWNhdGVDb21wYXJlRnVuY3Rpb24oY2hpcCwgb3B0aW9uKSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHNldENvbnRyb2xWYWx1ZSh2YWx1ZTogU2VsZWN0T3B0aW9uW10pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuY2hpcHMkLm5leHQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGhhbmRsZXMgbWF0IHNlbGVjdGluZ1xuICBoYW5kbGVTZWxlY3QoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbjogU2VsZWN0T3B0aW9uID0gZXZlbnQub3B0aW9uLnZhbHVlIGFzIFNlbGVjdE9wdGlvbjtcbiAgICB0aGlzLmNoaXBzJC5uZXh0KFsuLi50aGlzLmNoaXBzJC52YWx1ZSwgIHNlbGVjdGVkT3B0aW9uXSk7XG4gICAgdGhpcy5jaGlwSW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAvLyBzZXRUaW1lb3V0IG5lZWRlZCBiZWNhdXNlIHRoZSBwYW5lbCB0aGlua3MgaXQncyBzdGlsbCBvcGVuIGF0IHRoaXMgcG9pbnRcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hpcElucHV0Lm9wZW5QYW5lbCgpKVxuICB9XG5cbiAgLyoqXG4gICAqIFRvIGZvbGxvdyBBUklBIHN0YW5kYXJkcyB3ZSB3YW50IHRvIHNlbGVjdCB0aGUgYWN0aXZlIG9wdGlvbiBvbiBibHVyLlxuICAgKiBtYXRDaGlwSW5wdXRBZGRPbkJsdXIgc2hvdWxkIGRvIHRoaXMgYnV0IGl0IGNhdXNlcyBidWdneSBiZWhhdmlvdXJcbiAgICogQHBhcmFtIGV2ZW50IGJsdXIgZXZlbnQgdGhhdCB0cmlnZ2VycyB0aGUgaGFuZGxlIGJsdXJcbiAgICovXG4gIGhhbmRsZVRhYihfZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICBpZiAodGhpcy5jaGlwSW5wdXQuYWN0aXZlT3B0aW9uICYmICh0aGlzLmNvbmZpZy50YWJUb1NlbGVjdCB8fCB0aGlzLmNvbmZpZy5hZGRDaGlwT25CbHVyKSkge1xuICAgICAgY29uc3QgY2hpcCA9IHRoaXMuY2hpcElucHV0LmFjdGl2ZU9wdGlvbi52YWx1ZTtcbiAgICAgIHRoaXMuY2hpcHMkLm5leHQoWy4uLnRoaXMuY2hpcHMkLnZhbHVlLCAgY2hpcF0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHNlbGVjdGlvbiB2aWEga2V5IHRva2VucyBwYXNzZWQgdGhyb3VnaCBzZXBhcmF0b3JLZXlDb2RlcyBwcm9wZXJ0XG4gICAqIE5PVEU6IElmIFRBQiBpcyB1c2VkIGZvY3VzIGRvZXMgbm90IG1vdmUgb24gdG8gbmV4dCBjb21wb25lbnRcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBoYW5kbGVUb2tlbkVuZChldmVudDogTWF0Q2hpcElucHV0RXZlbnQpIHtcbiAgICBpZiAodGhpcy5jaGlwSW5wdXQuYWN0aXZlT3B0aW9uKSB7XG4gICAgICB0aGlzLmNoaXBJbnB1dC5hY3RpdmVPcHRpb24uc2VsZWN0KCk7XG4gICAgfVxuICAgIGV2ZW50LmNoaXBJbnB1dD8uY2xlYXIoKTtcbiAgfVxuXG4gIG1hcFRvTGFiZWwob3B0aW9uOiBTZWxlY3RPcHRpb24pIHtcbiAgICByZXR1cm4gb3B0aW9uID8gb3B0aW9uLmxhYmVsIDogJyc7XG4gIH1cblxuICByZW1vdmVDaGlwKHJlbW92ZWRDaGlwOiBTZWxlY3RPcHRpb24pIHtcbiAgICBjb25zdCByZW1haW5pbmdDaGlwczogU2VsZWN0T3B0aW9uW10gPSB0aGlzLmNoaXBzJC52YWx1ZS5maWx0ZXIoY2hpcCA9PiBjaGlwICE9PSByZW1vdmVkQ2hpcCk7XG4gICAgdGhpcy5jaGlwcyQubmV4dChyZW1haW5pbmdDaGlwcyk7XG4gIH1cbn1cblxuIiwiPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIj5cblxuICA8bWF0LWZvcm0tZmllbGRcbiAgICBbY29sb3JdPVwiY29uZmlnLmNvbG9yXCJcbiAgICBbYXBwZWFyYW5jZV09XCJjb25maWcuYXBwZWFyYW5jZVwiXG4gICAgW2Zvcm1Hcm91cF09XCJncm91cFwiPlxuICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJjb25maWcubGFiZWxcIj5cbiAgICAgIHt7Y29uZmlnLmxhYmVsfX1cbiAgICA8L21hdC1sYWJlbD5cblxuICAgIDxtYXQtY2hpcC1saXN0XG4gICAgICAjY2hpcExpc3Q+XG4gICAgICA8bWF0LWNoaXBcbiAgICAgICAgY2xhc3M9XCJyZWZpbmVtZW50LWNoaXBcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgY2hpcCBvZiBjb250cm9sVmFsdWUkIHwgYXN5bmNcIlxuICAgICAgICBbc2VsZWN0YWJsZV09XCJjb25maWcuY2hpcHNTZWxlY3RhYmxlXCJcbiAgICAgICAgW3JlbW92YWJsZV09XCJjb25maWcuYXJlQ2hpcHNSZW1vdmFibGVcIlxuICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVDaGlwKGNoaXApXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiY2hpcC5pbWFnZVVybCBhcyBpbWFnZVVybFwiIGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlVXJsXCIgYWx0PVwiaW1hZ2Ugb2Yge3tjaGlwLmxhYmVsfX1cIj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7e2NoaXAubGFiZWx9fVxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICBtYXRDaGlwUmVtb3ZlXG4gICAgICAgICAgKm5nSWY9XCJjb25maWcuYXJlQ2hpcHNSZW1vdmFibGVcIj5cbiAgICAgICAgICBjYW5jZWxcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvbWF0LWNoaXA+XG4gICAgICA8aW5wdXQgY2xhc3M9XCJoaWRkZW4tZXJyb3ItZGlyZWN0aXZlLWFuY2hvclwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCIgdHlwZT1cInRleHRcIi8+XG5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlclwiXG4gICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIlxuICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAoa2V5ZG93bi50YWIpPVwiaGFuZGxlVGFiKCRldmVudClcIlxuICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwiY29uZmlnLnNlcGFyYXRvcktleUNvZGVzXCJcbiAgICAgICAgKG1hdENoaXBJbnB1dFRva2VuRW5kKT1cImhhbmRsZVRva2VuRW5kKCRldmVudClcIlxuICAgICAgICByb2xlPVwic2VhcmNoYm94XCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcbiAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgICAgI2F1dG9JbnB1dC8+XG4gICAgICA8c3BhbiAqbmdJZj1cImNvbmZpZy5maWVsZFN1ZmZpeFwiIG1hdFN1ZmZpeD57e2NvbmZpZy5maWVsZFN1ZmZpeH19PC9zcGFuPlxuICAgICAgPGNyaXNwci1pbmZvXG4gICAgICAgICpuZ0lmPVwiY29uZmlnLmluZm9cIlxuICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgW2luZm9dPVwiY29uZmlnLmluZm8gXCI+XG4gICAgICA8L2NyaXNwci1pbmZvPlxuXG4gICAgPC9tYXQtY2hpcC1saXN0PlxuICAgIDxtYXQtYXV0b2NvbXBsZXRlXG4gICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICBbYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXT1cInRoaXMuY29uZmlnLmF1dG9BY3RpdmVGaXJzdE9wdGlvblwiXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlU2VsZWN0KCRldmVudClcIlxuICAgICAgW2Rpc3BsYXlXaXRoXT1cIm1hcFRvTGFiZWxcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZW1haW5pbmdPcHRpb25zJCB8IGFzeW5jIGFzIHJlbWFpbmluZ09wdGlvbnM7IGVsc2UgZW1wdHlPcHRpb25cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbWFpbmluZ09wdGlvbnMubGVuZ3RoID4gMDsgZWxzZSBlbXB0eU9wdGlvblwiPlxuICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiByZW1haW5pbmdPcHRpb25zJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIj5cbiAgICAgICAgICAgIDxjcmlzcHItb3B0aW9uIFtvcHRpb25dPVwib3B0aW9uXCI+PC9jcmlzcHItb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eU9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gZGlzYWJsZWQ9XCJ0cnVlXCI+XG4gICAgICAgICAge3tjb25maWcuZW1wdHlPcHRpb25zTWVzc2FnZX19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuXG4gICAgPG1hdC1oaW50ICpuZ0lmPVwiY29uZmlnLmhpbnQgJiYgKGNvbnRyb2wudmFsaWQgfHwgIWNvbnRyb2wudG91Y2hlZClcIj57e2NvbmZpZy5oaW50fX08L21hdC1oaW50PlxuXG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=