@dereekb/dbx-form 5.0.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/_index.scss +4 -5
  2. package/esm2020/lib/form/action/form.action.directive.mjs +20 -21
  3. package/esm2020/lib/form/action/form.action.module.mjs +6 -17
  4. package/esm2020/lib/form/action/transition/form.action.transition.module.mjs +5 -13
  5. package/esm2020/lib/form/action/transition/form.action.transition.safety.directive.mjs +2 -2
  6. package/esm2020/lib/form/form.mjs +2 -5
  7. package/esm2020/lib/form/form.module.mjs +4 -12
  8. package/esm2020/lib/form/io/form.changes.directive.mjs +4 -2
  9. package/esm2020/lib/form/io/form.input.directive.mjs +3 -6
  10. package/esm2020/lib/form/io/form.io.module.mjs +6 -22
  11. package/esm2020/lib/form/io/form.loading.directive.mjs +1 -1
  12. package/esm2020/lib/form.module.mjs +4 -12
  13. package/esm2020/lib/formly/config/index.mjs +1 -1
  14. package/esm2020/lib/formly/field/checklist/checklist.field.mjs +2 -5
  15. package/esm2020/lib/formly/field/checklist/checklist.item.field.component.mjs +9 -5
  16. package/esm2020/lib/formly/field/checklist/checklist.item.field.content.default.component.mjs +1 -1
  17. package/esm2020/lib/formly/field/checklist/checklist.item.field.mjs +1 -1
  18. package/esm2020/lib/formly/field/checklist/checklist.item.field.module.mjs +6 -18
  19. package/esm2020/lib/formly/field/checklist/checklist.item.mjs +1 -1
  20. package/esm2020/lib/formly/field/component/component.field.component.mjs +1 -1
  21. package/esm2020/lib/formly/field/component/component.field.mjs +1 -1
  22. package/esm2020/lib/formly/field/component/component.field.module.mjs +5 -13
  23. package/esm2020/lib/formly/field/field.mjs +4 -2
  24. package/esm2020/lib/formly/field/form.field.module.mjs +5 -26
  25. package/esm2020/lib/formly/field/selection/pickable/index.mjs +1 -1
  26. package/esm2020/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +5 -5
  27. package/esm2020/lib/formly/field/selection/pickable/pickable.field.directive.mjs +39 -39
  28. package/esm2020/lib/formly/field/selection/pickable/pickable.field.mjs +3 -3
  29. package/esm2020/lib/formly/field/selection/pickable/pickable.field.module.mjs +5 -15
  30. package/esm2020/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +16 -11
  31. package/esm2020/lib/formly/field/selection/pickable/pickable.mjs +1 -1
  32. package/esm2020/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +3 -3
  33. package/esm2020/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +15 -13
  34. package/esm2020/lib/formly/field/selection/searchable/searchable.field.directive.mjs +19 -21
  35. package/esm2020/lib/formly/field/selection/searchable/searchable.field.mjs +5 -3
  36. package/esm2020/lib/formly/field/selection/searchable/searchable.field.module.mjs +7 -19
  37. package/esm2020/lib/formly/field/selection/searchable/searchable.mjs +1 -1
  38. package/esm2020/lib/formly/field/selection/searchable/searchable.text.field.component.mjs +6 -6
  39. package/esm2020/lib/formly/field/selection/searchable/text.chip.field.mjs +5 -5
  40. package/esm2020/lib/formly/field/selection/selection.mjs +1 -1
  41. package/esm2020/lib/formly/field/selection/selection.module.mjs +5 -14
  42. package/esm2020/lib/formly/field/texteditor/texteditor.field.component.mjs +4 -2
  43. package/esm2020/lib/formly/field/texteditor/texteditor.field.mjs +1 -1
  44. package/esm2020/lib/formly/field/texteditor/texteditor.field.module.mjs +4 -10
  45. package/esm2020/lib/formly/field/value/array/array.field.component.mjs +30 -24
  46. package/esm2020/lib/formly/field/value/array/array.field.mjs +3 -3
  47. package/esm2020/lib/formly/field/value/array/array.field.module.mjs +4 -10
  48. package/esm2020/lib/formly/field/value/boolean/boolean.field.mjs +1 -1
  49. package/esm2020/lib/formly/field/value/boolean/boolean.field.module.mjs +1 -1
  50. package/esm2020/lib/formly/field/value/date/date.field.module.mjs +5 -13
  51. package/esm2020/lib/formly/field/value/date/datetime.field.component.mjs +18 -27
  52. package/esm2020/lib/formly/field/value/date/datetime.field.mjs +3 -3
  53. package/esm2020/lib/formly/field/value/enum/enum.field.mjs +2 -2
  54. package/esm2020/lib/formly/field/value/enum/enum.field.module.mjs +1 -1
  55. package/esm2020/lib/formly/field/value/enum/enum.mjs +1 -1
  56. package/esm2020/lib/formly/field/value/hidden.field.mjs +1 -1
  57. package/esm2020/lib/formly/field/value/phone/phone.field.component.mjs +3 -3
  58. package/esm2020/lib/formly/field/value/phone/phone.field.mjs +1 -2
  59. package/esm2020/lib/formly/field/value/phone/phone.field.module.mjs +4 -10
  60. package/esm2020/lib/formly/field/value/text/text.additional.field.mjs +2 -2
  61. package/esm2020/lib/formly/field/value/text/text.address.field.mjs +11 -6
  62. package/esm2020/lib/formly/field/value/text/text.field.mjs +2 -2
  63. package/esm2020/lib/formly/field/value/text/text.field.module.mjs +4 -10
  64. package/esm2020/lib/formly/field/value/value.module.mjs +5 -26
  65. package/esm2020/lib/formly/field/wrapper/autotouch.wrapper.component.mjs +7 -3
  66. package/esm2020/lib/formly/field/wrapper/expandable.wrapper.component.mjs +15 -15
  67. package/esm2020/lib/formly/field/wrapper/expandable.wrapper.delegate.mjs +1 -1
  68. package/esm2020/lib/formly/field/wrapper/flex.wrapper.component.mjs +1 -1
  69. package/esm2020/lib/formly/field/wrapper/form.wrapper.module.mjs +3 -21
  70. package/esm2020/lib/formly/field/wrapper/info.wrapper.component.mjs +3 -5
  71. package/esm2020/lib/formly/field/wrapper/section.wrapper.component.mjs +1 -1
  72. package/esm2020/lib/formly/field/wrapper/style.wrapper.component.mjs +1 -1
  73. package/esm2020/lib/formly/field/wrapper/subsection.wrapper.component.mjs +7 -7
  74. package/esm2020/lib/formly/field/wrapper/toggle.wrapper.component.mjs +16 -16
  75. package/esm2020/lib/formly/field/wrapper/working.wrapper.component.mjs +1 -1
  76. package/esm2020/lib/formly/field/wrapper/wrapper.mjs +6 -4
  77. package/esm2020/lib/formly/formly.context.directive.mjs +1 -1
  78. package/esm2020/lib/formly/formly.context.mjs +7 -5
  79. package/esm2020/lib/formly/formly.directive.mjs +1 -1
  80. package/esm2020/lib/formly/formly.form.component.mjs +4 -4
  81. package/esm2020/lib/formly/formly.module.mjs +5 -25
  82. package/esm2020/lib/formly/template/available.mjs +6 -4
  83. package/esm2020/lib/formly/template/login.mjs +8 -10
  84. package/esm2020/lib/layout/form.layout.module.mjs +5 -13
  85. package/esm2020/lib/layout/form.spacer.component.mjs +7 -3
  86. package/esm2020/lib/validator/available.mjs +1 -1
  87. package/esm2020/lib/validator/field.mjs +3 -3
  88. package/esm2020/lib/validator/number.mjs +1 -1
  89. package/fesm2015/dereekb-dbx-form.mjs +347 -551
  90. package/fesm2015/dereekb-dbx-form.mjs.map +1 -1
  91. package/fesm2020/dereekb-dbx-form.mjs +347 -551
  92. package/fesm2020/dereekb-dbx-form.mjs.map +1 -1
  93. package/lib/form/_form.scss +6 -4
  94. package/lib/formly/_formly.scss +6 -4
  95. package/lib/formly/field/checklist/_checklist.scss +6 -10
  96. package/lib/formly/field/checklist/checklist.item.d.ts +5 -5
  97. package/lib/formly/field/component/_component.scss +6 -4
  98. package/lib/formly/field/component/component.field.d.ts +1 -1
  99. package/lib/formly/field/selection/pickable/_pickable.scss +4 -3
  100. package/lib/formly/field/selection/pickable/pickable.chip.field.component.d.ts +1 -1
  101. package/lib/formly/field/selection/pickable/pickable.d.ts +3 -3
  102. package/lib/formly/field/selection/pickable/pickable.field.directive.d.ts +11 -11
  103. package/lib/formly/field/selection/pickable/pickable.list.field.component.d.ts +5 -5
  104. package/lib/formly/field/selection/searchable/_searchable.scss +4 -6
  105. package/lib/formly/field/selection/searchable/text.chip.field.d.ts +3 -3
  106. package/lib/formly/field/selection/selection.d.ts +3 -3
  107. package/lib/formly/field/texteditor/_texteditor.scss +3 -8
  108. package/lib/formly/field/value/array/_array.scss +2 -6
  109. package/lib/formly/field/value/array/array.field.d.ts +1 -1
  110. package/lib/formly/field/value/boolean/_boolean.scss +6 -4
  111. package/lib/formly/field/value/date/_date.scss +7 -9
  112. package/lib/formly/field/value/enum/_enum.scss +6 -4
  113. package/lib/formly/field/value/phone/_phone.scss +2 -4
  114. package/lib/formly/field/value/text/_text.scss +6 -4
  115. package/lib/formly/field/value/text/text.additional.field.d.ts +3 -3
  116. package/lib/formly/field/wrapper/_wrapper.scss +4 -4
  117. package/lib/formly/template/login.d.ts +1 -1
  118. package/lib/layout/_layout.scss +6 -4
  119. package/lib/style/_config.scss +8 -6
  120. package/lib/style/_core.scss +1 -1
  121. package/lib/style/_mixin.scss +1 -1
  122. package/lib/style/_theming.scss +2 -12
  123. package/lib/style/_variables.scss +1 -1
  124. package/lib/validator/available.d.ts +1 -1
  125. package/lib/validator/field.d.ts +2 -2
  126. package/package.json +3 -3
@@ -1,7 +1,7 @@
1
- import { Component } from "@angular/core";
2
- import { DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, AbstractDbxSelectionListWrapperDirective, provideDbxListView, AbstractDbxSelectionListViewDirective, AbstractDbxValueListViewItemComponent, addConfigToValueListItems } from "@dereekb/dbx-web";
3
- import { map, shareReplay } from "rxjs";
4
- import { AbstractDbxPickableItemFieldDirective } from "./pickable.field.directive";
1
+ import { Component } from '@angular/core';
2
+ import { DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, AbstractDbxSelectionListWrapperDirective, provideDbxListView, AbstractDbxSelectionListViewDirective, AbstractDbxValueListViewItemComponent, addConfigToValueListItems } from '@dereekb/dbx-web';
3
+ import { map, shareReplay } from 'rxjs';
4
+ import { AbstractDbxPickableItemFieldDirective } from './pickable.field.directive';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@dereekb/dbx-web";
7
7
  import * as i2 from "@dereekb/dbx-core";
@@ -15,15 +15,15 @@ import * as i6 from "@angular/forms";
15
15
  export class DbxPickableListFieldComponent extends AbstractDbxPickableItemFieldDirective {
16
16
  onSelectionChange(event) {
17
17
  const items = event.items;
18
- const values = items.map(x => x.itemValue.value);
18
+ const values = items.map((x) => x.itemValue.value);
19
19
  this.setValues(values);
20
20
  }
21
21
  }
22
22
  DbxPickableListFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableListFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
23
- DbxPickableListFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxPickableListFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-list\">\n <div class=\"dbx-pickable-item-field-list-content\">\n <dbx-form-pickable-item-field-item-list [disabled]=\"isReadonlyOrDisabled\" [state$]=\"filterItemsLoadingState$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </dbx-form-pickable-item-field-item-list>\n </div>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput\n [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\">\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n", components: [{ type: i0.forwardRef(function () { return i1.DbxLoadingComponent; }), selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i0.forwardRef(function () { return DbxPickableListFieldItemListComponent; }), selector: "dbx-form-pickable-item-field-item-list" }, { type: i0.forwardRef(function () { return i2.DbxInjectionComponent; }), selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { type: i0.forwardRef(function () { return i3.MatDivider; }), selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i0.forwardRef(function () { return i4.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return i4.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i0.forwardRef(function () { return i5.MatInput; }), selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i0.forwardRef(function () { return i6.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: i0.forwardRef(function () { return i6.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { type: i0.forwardRef(function () { return i6.FormControlDirective; }), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i0.forwardRef(function () { return i4.AsyncPipe; }) } });
23
+ DbxPickableListFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxPickableListFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-list\">\n <div class=\"dbx-pickable-item-field-list-content\">\n <dbx-form-pickable-item-field-item-list [disabled]=\"isReadonlyOrDisabled\" [state$]=\"filterItemsLoadingState$\" (selectionChange)=\"onSelectionChange($event)\"></dbx-form-pickable-item-field-item-list>\n </div>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n", components: [{ type: i0.forwardRef(function () { return i1.DbxLoadingComponent; }), selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i0.forwardRef(function () { return DbxPickableListFieldItemListComponent; }), selector: "dbx-form-pickable-item-field-item-list" }, { type: i0.forwardRef(function () { return i2.DbxInjectionComponent; }), selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { type: i0.forwardRef(function () { return i3.MatDivider; }), selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i0.forwardRef(function () { return i4.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return i4.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i0.forwardRef(function () { return i5.MatInput; }), selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i0.forwardRef(function () { return i6.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: i0.forwardRef(function () { return i6.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { type: i0.forwardRef(function () { return i6.FormControlDirective; }), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i0.forwardRef(function () { return i4.AsyncPipe; }) } });
24
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableListFieldComponent, decorators: [{
25
25
  type: Component,
26
- args: [{ template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-list\">\n <div class=\"dbx-pickable-item-field-list-content\">\n <dbx-form-pickable-item-field-item-list [disabled]=\"isReadonlyOrDisabled\" [state$]=\"filterItemsLoadingState$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </dbx-form-pickable-item-field-item-list>\n </div>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput\n [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\">\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n" }]
26
+ args: [{ template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-list\">\n <div class=\"dbx-pickable-item-field-list-content\">\n <dbx-form-pickable-item-field-item-list [disabled]=\"isReadonlyOrDisabled\" [state$]=\"filterItemsLoadingState$\" (selectionChange)=\"onSelectionChange($event)\"></dbx-form-pickable-item-field-item-list>\n </div>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n" }]
27
27
  }] });
28
28
  // MARK: Selection List
29
29
  export class DbxPickableListFieldItemListComponent extends AbstractDbxSelectionListWrapperDirective {
@@ -49,12 +49,13 @@ export class DbxPickableListFieldItemListViewComponent extends AbstractDbxSelect
49
49
  constructor(dbxPickableListFieldComponent) {
50
50
  super();
51
51
  this.dbxPickableListFieldComponent = dbxPickableListFieldComponent;
52
+ // TODO: any belongs here for now, but item list typings need to be updated.
52
53
  this.config = {
53
54
  componentClass: DbxPickableListFieldItemListViewItemComponent
54
55
  };
55
56
  this.items$ = this.values$.pipe(
56
57
  // NOTE: This causes the "value" to be a PickableValueFieldDisplayValue<T>, which means we emit PickableValueFieldDisplayValue<T> to DbxPickableListFieldComponent.
57
- map(x => addConfigToValueListItems(this.config, x)), shareReplay(1));
58
+ map((x) => addConfigToValueListItems(this.config, x)), shareReplay(1));
58
59
  }
59
60
  get multiple() {
60
61
  return this.dbxPickableListFieldComponent.multiSelect;
@@ -68,11 +69,15 @@ export class DbxPickableListFieldItemListViewComponent extends AbstractDbxSelect
68
69
  }
69
70
  }
70
71
  DbxPickableListFieldItemListViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableListFieldItemListViewComponent, deps: [{ token: DbxPickableListFieldComponent }], target: i0.ɵɵFactoryTarget.Component });
71
- DbxPickableListFieldItemListViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxPickableListFieldItemListViewComponent, selector: "ng-component", providers: provideDbxListView(DbxPickableListFieldItemListViewComponent), usesInheritance: true, ngImport: i0, template: `<dbx-selection-list-view-content [multiple]="multiple" [selectionMode]="selectionMode" [items]="items$ | async"></dbx-selection-list-view-content>`, isInline: true, components: [{ type: i1.DbxSelectionValueListItemViewComponent, selector: "dbx-selection-list-view-content", inputs: ["multiple", "selectionMode"] }], pipes: { "async": i4.AsyncPipe } });
72
+ DbxPickableListFieldItemListViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxPickableListFieldItemListViewComponent, selector: "ng-component", providers: provideDbxListView(DbxPickableListFieldItemListViewComponent), usesInheritance: true, ngImport: i0, template: `
73
+ <dbx-selection-list-view-content [multiple]="multiple" [selectionMode]="selectionMode" [items]="items$ | async"></dbx-selection-list-view-content>
74
+ `, isInline: true, components: [{ type: i1.DbxSelectionValueListItemViewComponent, selector: "dbx-selection-list-view-content", inputs: ["multiple", "selectionMode"] }], pipes: { "async": i4.AsyncPipe } });
72
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableListFieldItemListViewComponent, decorators: [{
73
76
  type: Component,
74
77
  args: [{
75
- template: `<dbx-selection-list-view-content [multiple]="multiple" [selectionMode]="selectionMode" [items]="items$ | async"></dbx-selection-list-view-content>`,
78
+ template: `
79
+ <dbx-selection-list-view-content [multiple]="multiple" [selectionMode]="selectionMode" [items]="items$ | async"></dbx-selection-list-view-content>
80
+ `,
76
81
  providers: provideDbxListView(DbxPickableListFieldItemListViewComponent)
77
82
  }]
78
83
  }], ctorParameters: function () { return [{ type: DbxPickableListFieldComponent }]; } });
@@ -93,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
93
98
  `
94
99
  }]
95
100
  }] });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSx3Q0FBd0MsRUFBRSxrQkFBa0IsRUFBRSxxQ0FBcUMsRUFBRSxxQ0FBcUMsRUFBc0IseUJBQXlCLEVBQXdCLE1BQU0sa0JBQWtCLENBQUM7QUFFNVIsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFeEMsT0FBTyxFQUFFLHFDQUFxQyxFQUF5QixNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQUUxRzs7R0FFRztBQUlILE1BQU0sT0FBTyw2QkFBaUMsU0FBUSxxQ0FBd0M7SUFFNUYsaUJBQWlCLENBQUMsS0FBYztRQUM5QixNQUFNLEtBQUssR0FBSSxLQUErRCxDQUFDLEtBQUssQ0FBQztRQUNyRixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OzBIQU5VLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLDJFQ2QxQyx5eENBNkJBLDRQREFhLHFDQUFxQzsyRkFmckMsNkJBQTZCO2tCQUh6QyxTQUFTOzs7QUFhVix1QkFBdUI7QUFLdkIsTUFBTSxPQUFPLHFDQUF5QyxTQUFRLHdDQUFrRTtJQUU5SDtRQUNFLEtBQUssQ0FBQztZQUNKLGNBQWMsRUFBRSx5Q0FBeUM7U0FDMUQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7a0lBTlUscUNBQXFDO3NIQUFyQyxxQ0FBcUM7MkZBQXJDLHFDQUFxQztrQkFKakQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0NBQXdDO29CQUNsRCxRQUFRLEVBQUUsdUNBQXVDO2lCQUNsRDs7QUFXRDs7R0FFRztBQUtILE1BQU0sT0FBTyx5Q0FBNkMsU0FBUSxxQ0FBMEM7SUEwQjFHLFlBQXFCLDZCQUErRDtRQUNsRixLQUFLLEVBQUUsQ0FBQztRQURXLGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBa0M7UUF4QjNFLFdBQU0sR0FBZ0M7WUFDN0MsY0FBYyxFQUFFLDZDQUE2QztTQUM5RCxDQUFDO1FBZ0JPLFdBQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7UUFDakMsbUtBQW1LO1FBQ25LLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDbkQsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFJRixDQUFDO0lBdEJELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLFdBQVcsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsSUFBSSxhQUFhLEdBQWdDLFFBQVEsQ0FBQztRQUUxRCxJQUFJLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLDZCQUE2QixDQUFDLG1DQUFtQyxFQUFFO1lBQ3pILGFBQWEsR0FBRyxNQUFNLENBQUM7U0FDeEI7UUFFRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDOztzSUFsQlUseUNBQXlDLGtCQTBCQSw2QkFBNkI7MEhBMUJ0RSx5Q0FBeUMsdUNBRnpDLGtCQUFrQixDQUFDLHlDQUF5QyxDQUFDLGlEQUQ5RCxvSkFBb0o7MkZBR25KLHlDQUF5QztrQkFKckQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0pBQW9KO29CQUM5SixTQUFTLEVBQUUsa0JBQWtCLDJDQUEyQztpQkFDekU7MERBMkJxRCw2QkFBNkI7QUFXbkYsTUFBTSxPQUFPLDZDQUFpRCxTQUFRLHFDQUF3RTtJQUU1SSxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQzlCLENBQUM7OzBJQUpVLDZDQUE2Qzs4SEFBN0MsNkNBQTZDLDJFQUo5Qzs7R0FFVDsyRkFFVSw2Q0FBNkM7a0JBTHpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOztHQUVUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyB9IGZyb20gXCJAZGVyZWVrYi9kYngtY29yZVwiO1xuaW1wb3J0IHsgREVGQVVMVF9MSVNUX1dSQVBQRVJfRElSRUNUSVZFX1RFTVBMQVRFLCBBYnN0cmFjdERieFNlbGVjdGlvbkxpc3RXcmFwcGVyRGlyZWN0aXZlLCBwcm92aWRlRGJ4TGlzdFZpZXcsIEFic3RyYWN0RGJ4U2VsZWN0aW9uTGlzdFZpZXdEaXJlY3RpdmUsIEFic3RyYWN0RGJ4VmFsdWVMaXN0Vmlld0l0ZW1Db21wb25lbnQsIExpc3RTZWxlY3Rpb25TdGF0ZSwgYWRkQ29uZmlnVG9WYWx1ZUxpc3RJdGVtcywgRGJ4TGlzdFNlbGVjdGlvbk1vZGUgfSBmcm9tIFwiQGRlcmVla2IvZGJ4LXdlYlwiO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tIFwiQGRlcmVla2IvdXRpbFwiO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWUgfSBmcm9tIFwiLi9waWNrYWJsZVwiO1xuaW1wb3J0IHsgQWJzdHJhY3REYnhQaWNrYWJsZUl0ZW1GaWVsZERpcmVjdGl2ZSwgUGlja2FibGVJdGVtRmllbGRJdGVtIH0gZnJvbSBcIi4vcGlja2FibGUuZmllbGQuZGlyZWN0aXZlXCI7XG5cbi8qKlxuICogVXNlZCBmb3IgcGlja2luZyBwcmUtc2V0IHZhbHVlcyB1c2luZyBhIHNlbGVjdGlvbiBsaXN0IGFzIHRoZSBwcmVzZW50YXRpb24uXG4gKi9cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJ3BpY2thYmxlLmxpc3QuZmllbGQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERieFBpY2thYmxlTGlzdEZpZWxkQ29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3REYnhQaWNrYWJsZUl0ZW1GaWVsZERpcmVjdGl2ZTxUPiB7XG5cbiAgb25TZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IHVua25vd24pIHtcbiAgICBjb25zdCBpdGVtcyA9IChldmVudCBhcyBMaXN0U2VsZWN0aW9uU3RhdGU8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+PikuaXRlbXM7XG4gICAgY29uc3QgdmFsdWVzID0gaXRlbXMubWFwKHggPT4geC5pdGVtVmFsdWUudmFsdWUpO1xuICAgIHRoaXMuc2V0VmFsdWVzKHZhbHVlcyk7XG4gIH1cblxufVxuXG4vLyBNQVJLOiBTZWxlY3Rpb24gTGlzdFxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZvcm0tcGlja2FibGUtaXRlbS1maWVsZC1pdGVtLWxpc3QnLFxuICB0ZW1wbGF0ZTogREVGQVVMVF9MSVNUX1dSQVBQRVJfRElSRUNUSVZFX1RFTVBMQVRFXG59KVxuZXhwb3J0IGNsYXNzIERieFBpY2thYmxlTGlzdEZpZWxkSXRlbUxpc3RDb21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdERieFNlbGVjdGlvbkxpc3RXcmFwcGVyRGlyZWN0aXZlPFBpY2thYmxlSXRlbUZpZWxkSXRlbTxUPj4ge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKHtcbiAgICAgIGNvbXBvbmVudENsYXNzOiBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0NvbXBvbmVudFxuICAgIH0pO1xuICB9XG5cbn1cblxuLyoqXG4gKiBOT1RFOiBWYWx1ZXMgaW5wdXQgYXJlIFBpY2thYmxlSXRlbUZpZWxkSXRlbTxUPiwgYnV0IG91dHB1dCB2YWx1ZXMgYXJlIFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPi5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgPGRieC1zZWxlY3Rpb24tbGlzdC12aWV3LWNvbnRlbnQgW211bHRpcGxlXT1cIm11bHRpcGxlXCIgW3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZVwiIFtpdGVtc109XCJpdGVtcyQgfCBhc3luY1wiPjwvZGJ4LXNlbGVjdGlvbi1saXN0LXZpZXctY29udGVudD5gLFxuICBwcm92aWRlcnM6IHByb3ZpZGVEYnhMaXN0VmlldyhEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0NvbXBvbmVudClcbn0pXG5leHBvcnQgY2xhc3MgRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdFZpZXdDb21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdERieFNlbGVjdGlvbkxpc3RWaWV3RGlyZWN0aXZlPGFueT4geyAgLy8gVE9ETzogYW55IGJlbG9uZ3MgaGVyZSBmb3Igbm93LCBidXQgaXRlbSBsaXN0IHR5cGluZ3MgbmVlZCB0byBiZSB1cGRhdGVkLlxuXG4gIHJlYWRvbmx5IGNvbmZpZzogRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnID0ge1xuICAgIGNvbXBvbmVudENsYXNzOiBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0l0ZW1Db21wb25lbnRcbiAgfTtcblxuICBnZXQgbXVsdGlwbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGJ4UGlja2FibGVMaXN0RmllbGRDb21wb25lbnQubXVsdGlTZWxlY3Q7XG4gIH1cblxuICBnZXQgc2VsZWN0aW9uTW9kZSgpOiBNYXliZTxEYnhMaXN0U2VsZWN0aW9uTW9kZT4ge1xuICAgIGxldCBzZWxlY3Rpb25Nb2RlOiBNYXliZTxEYnhMaXN0U2VsZWN0aW9uTW9kZT4gPSAnc2VsZWN0JztcblxuICAgIGlmICh0aGlzLmRieFBpY2thYmxlTGlzdEZpZWxkQ29tcG9uZW50LmRpc2FibGVkICYmIHRoaXMuZGJ4UGlja2FibGVMaXN0RmllbGRDb21wb25lbnQuY2hhbmdlU2VsZWN0aW9uTW9kZVRvVmlld09uRGlzYWJsZWQpIHtcbiAgICAgIHNlbGVjdGlvbk1vZGUgPSAndmlldyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdGlvbk1vZGU7XG4gIH1cblxuICByZWFkb25seSBpdGVtcyQgPSB0aGlzLnZhbHVlcyQucGlwZShcbiAgICAvLyBOT1RFOiBUaGlzIGNhdXNlcyB0aGUgXCJ2YWx1ZVwiIHRvIGJlIGEgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+LCB3aGljaCBtZWFucyB3ZSBlbWl0IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPiB0byBEYnhQaWNrYWJsZUxpc3RGaWVsZENvbXBvbmVudC5cbiAgICBtYXAoeCA9PiBhZGRDb25maWdUb1ZhbHVlTGlzdEl0ZW1zKHRoaXMuY29uZmlnLCB4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkYnhQaWNrYWJsZUxpc3RGaWVsZENvbXBvbmVudDogRGJ4UGlja2FibGVMaXN0RmllbGRDb21wb25lbnQ8VD4pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPHA+e3sgbGFiZWwgfX08L3A+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdFZpZXdJdGVtQ29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3REYnhWYWx1ZUxpc3RWaWV3SXRlbUNvbXBvbmVudDxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VD4+IHtcblxuICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtVmFsdWUubGFiZWw7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImRieC1waWNrYWJsZS1pdGVtLWZpZWxkXCI+XG4gIDxkYngtbG9hZGluZyBbY29udGV4dF09XCJjb250ZXh0XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dGaWx0ZXJJbnB1dFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbHRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBDb250ZW50IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkYngtcGlja2FibGUtaXRlbS1maWVsZC1saXN0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGJ4LXBpY2thYmxlLWl0ZW0tZmllbGQtbGlzdC1jb250ZW50XCI+XG4gICAgICAgIDxkYngtZm9ybS1waWNrYWJsZS1pdGVtLWZpZWxkLWl0ZW0tbGlzdCBbZGlzYWJsZWRdPVwiaXNSZWFkb25seU9yRGlzYWJsZWRcIiBbc3RhdGUkXT1cImZpbHRlckl0ZW1zTG9hZGluZ1N0YXRlJFwiXG4gICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgIDwvZGJ4LWZvcm0tcGlja2FibGUtaXRlbS1maWVsZC1pdGVtLWxpc3Q+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwiZm9vdGVyQ29uZmlnXCI+PC9kYngtaW5qZWN0aW9uPlxuICAgIDwvZGl2PlxuICA8L2RieC1sb2FkaW5nPlxuPC9kaXY+XG5cbjwhLS0gRmlsdGVyIElucHV0IC0tPlxuPG5nLXRlbXBsYXRlICNmaWx0ZXJUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImRieC1waWNrYWJsZS1pdGVtLWZpZWxkLWZpbHRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJkYngtbGFiZWxcIj57eyBmaWx0ZXJMYWJlbCB9fTwvZGl2PlxuICAgIDxpbnB1dCBbbmFtZV09XCJuYW1lXCIgYXV0b2NvbXBsZXRlPVwie3sgYXV0b2NvbXBsZXRlIH19XCIgI2ZpbHRlck1hdElucHV0PVwibWF0SW5wdXRcIiBtYXRJbnB1dFxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cImlucHV0Q3RybFwiPlxuICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgIDxkYngtbG9hZGluZyBbbGluZWFyXT1cInRydWVcIiBbY29udGV4dF09XCJmaWx0ZXJSZXN1bHRzQ29udGV4dFwiPjwvZGJ4LWxvYWRpbmc+XG4gICAgPCEtLSBObyBpdGVtcyBmb3VuZC4gLS0+XG4gICAgPHAgKm5nSWY9XCJub0l0ZW1zQXZhaWxhYmxlJCB8IGFzeW5jXCIgY2xhc3M9XCJkYngtbGFiZWxcIj5ObyBpdGVtcyBtYXRjaCB0aGlzIGZpbHRlci48L3A+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSx3Q0FBd0MsRUFBRSxrQkFBa0IsRUFBRSxxQ0FBcUMsRUFBRSxxQ0FBcUMsRUFBc0IseUJBQXlCLEVBQXdCLE1BQU0sa0JBQWtCLENBQUM7QUFFNVIsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFeEMsT0FBTyxFQUFFLHFDQUFxQyxFQUF5QixNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQUUxRzs7R0FFRztBQUlILE1BQU0sT0FBTyw2QkFBaUMsU0FBUSxxQ0FBd0M7SUFDNUYsaUJBQWlCLENBQUMsS0FBYztRQUM5QixNQUFNLEtBQUssR0FBSSxLQUErRCxDQUFDLEtBQUssQ0FBQztRQUNyRixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekIsQ0FBQzs7MEhBTFUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsMkVDZDFDLCt2Q0EwQkEsNFBEQ2EscUNBQXFDOzJGQWJyQyw2QkFBNkI7a0JBSHpDLFNBQVM7OztBQVdWLHVCQUF1QjtBQUt2QixNQUFNLE9BQU8scUNBQXlDLFNBQVEsd0NBQWtFO0lBQzlIO1FBQ0UsS0FBSyxDQUFDO1lBQ0osY0FBYyxFQUFFLHlDQUF5QztTQUMxRCxDQUFDLENBQUM7SUFDTCxDQUFDOztrSUFMVSxxQ0FBcUM7c0hBQXJDLHFDQUFxQzsyRkFBckMscUNBQXFDO2tCQUpqRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3Q0FBd0M7b0JBQ2xELFFBQVEsRUFBRSx1Q0FBdUM7aUJBQ2xEOztBQVNEOztHQUVHO0FBT0gsTUFBTSxPQUFPLHlDQUE2QyxTQUFRLHFDQUEwQztJQTJCMUcsWUFBcUIsNkJBQStEO1FBQ2xGLEtBQUssRUFBRSxDQUFDO1FBRFcsa0NBQTZCLEdBQTdCLDZCQUE2QixDQUFrQztRQTFCcEYsNEVBQTRFO1FBRW5FLFdBQU0sR0FBZ0M7WUFDN0MsY0FBYyxFQUFFLDZDQUE2QztTQUM5RCxDQUFDO1FBZ0JPLFdBQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7UUFDakMsbUtBQW1LO1FBQ25LLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNyRCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUlGLENBQUM7SUF0QkQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsV0FBVyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixJQUFJLGFBQWEsR0FBZ0MsUUFBUSxDQUFDO1FBRTFELElBQUksSUFBSSxDQUFDLDZCQUE2QixDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsNkJBQTZCLENBQUMsbUNBQW1DLEVBQUU7WUFDekgsYUFBYSxHQUFHLE1BQU0sQ0FBQztTQUN4QjtRQUVELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7O3NJQW5CVSx5Q0FBeUMsa0JBMkJBLDZCQUE2QjswSEEzQnRFLHlDQUF5Qyx1Q0FGekMsa0JBQWtCLENBQUMseUNBQXlDLENBQUMsaURBSDlEOztHQUVUOzJGQUdVLHlDQUF5QztrQkFOckQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7O0dBRVQ7b0JBQ0QsU0FBUyxFQUFFLGtCQUFrQiwyQ0FBMkM7aUJBQ3pFOzBEQTRCcUQsNkJBQTZCO0FBVW5GLE1BQU0sT0FBTyw2Q0FBaUQsU0FBUSxxQ0FBd0U7SUFDNUksSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDOzswSUFIVSw2Q0FBNkM7OEhBQTdDLDZDQUE2QywyRUFKOUM7O0dBRVQ7MkZBRVUsNkNBQTZDO2tCQUx6RCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7R0FFVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgREVGQVVMVF9MSVNUX1dSQVBQRVJfRElSRUNUSVZFX1RFTVBMQVRFLCBBYnN0cmFjdERieFNlbGVjdGlvbkxpc3RXcmFwcGVyRGlyZWN0aXZlLCBwcm92aWRlRGJ4TGlzdFZpZXcsIEFic3RyYWN0RGJ4U2VsZWN0aW9uTGlzdFZpZXdEaXJlY3RpdmUsIEFic3RyYWN0RGJ4VmFsdWVMaXN0Vmlld0l0ZW1Db21wb25lbnQsIExpc3RTZWxlY3Rpb25TdGF0ZSwgYWRkQ29uZmlnVG9WYWx1ZUxpc3RJdGVtcywgRGJ4TGlzdFNlbGVjdGlvbk1vZGUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWUgfSBmcm9tICcuL3BpY2thYmxlJztcbmltcG9ydCB7IEFic3RyYWN0RGJ4UGlja2FibGVJdGVtRmllbGREaXJlY3RpdmUsIFBpY2thYmxlSXRlbUZpZWxkSXRlbSB9IGZyb20gJy4vcGlja2FibGUuZmllbGQuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBVc2VkIGZvciBwaWNraW5nIHByZS1zZXQgdmFsdWVzIHVzaW5nIGEgc2VsZWN0aW9uIGxpc3QgYXMgdGhlIHByZXNlbnRhdGlvbi5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAncGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4UGlja2FibGVMaXN0RmllbGRDb21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdERieFBpY2thYmxlSXRlbUZpZWxkRGlyZWN0aXZlPFQ+IHtcbiAgb25TZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IHVua25vd24pIHtcbiAgICBjb25zdCBpdGVtcyA9IChldmVudCBhcyBMaXN0U2VsZWN0aW9uU3RhdGU8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+PikuaXRlbXM7XG4gICAgY29uc3QgdmFsdWVzID0gaXRlbXMubWFwKCh4KSA9PiB4Lml0ZW1WYWx1ZS52YWx1ZSk7XG4gICAgdGhpcy5zZXRWYWx1ZXModmFsdWVzKTtcbiAgfVxufVxuXG4vLyBNQVJLOiBTZWxlY3Rpb24gTGlzdFxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZvcm0tcGlja2FibGUtaXRlbS1maWVsZC1pdGVtLWxpc3QnLFxuICB0ZW1wbGF0ZTogREVGQVVMVF9MSVNUX1dSQVBQRVJfRElSRUNUSVZFX1RFTVBMQVRFXG59KVxuZXhwb3J0IGNsYXNzIERieFBpY2thYmxlTGlzdEZpZWxkSXRlbUxpc3RDb21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdERieFNlbGVjdGlvbkxpc3RXcmFwcGVyRGlyZWN0aXZlPFBpY2thYmxlSXRlbUZpZWxkSXRlbTxUPj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcih7XG4gICAgICBjb21wb25lbnRDbGFzczogRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdFZpZXdDb21wb25lbnRcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIE5PVEU6IFZhbHVlcyBpbnB1dCBhcmUgUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+LCBidXQgb3V0cHV0IHZhbHVlcyBhcmUgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+LlxuICovXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGJ4LXNlbGVjdGlvbi1saXN0LXZpZXctY29udGVudCBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIiBbc2VsZWN0aW9uTW9kZV09XCJzZWxlY3Rpb25Nb2RlXCIgW2l0ZW1zXT1cIml0ZW1zJCB8IGFzeW5jXCI+PC9kYngtc2VsZWN0aW9uLWxpc3Qtdmlldy1jb250ZW50PlxuICBgLFxuICBwcm92aWRlcnM6IHByb3ZpZGVEYnhMaXN0VmlldyhEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0NvbXBvbmVudClcbn0pXG5leHBvcnQgY2xhc3MgRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdFZpZXdDb21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdERieFNlbGVjdGlvbkxpc3RWaWV3RGlyZWN0aXZlPGFueT4ge1xuICAvLyBUT0RPOiBhbnkgYmVsb25ncyBoZXJlIGZvciBub3csIGJ1dCBpdGVtIGxpc3QgdHlwaW5ncyBuZWVkIHRvIGJlIHVwZGF0ZWQuXG5cbiAgcmVhZG9ubHkgY29uZmlnOiBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcgPSB7XG4gICAgY29tcG9uZW50Q2xhc3M6IERieFBpY2thYmxlTGlzdEZpZWxkSXRlbUxpc3RWaWV3SXRlbUNvbXBvbmVudFxuICB9O1xuXG4gIGdldCBtdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kYnhQaWNrYWJsZUxpc3RGaWVsZENvbXBvbmVudC5tdWx0aVNlbGVjdDtcbiAgfVxuXG4gIGdldCBzZWxlY3Rpb25Nb2RlKCk6IE1heWJlPERieExpc3RTZWxlY3Rpb25Nb2RlPiB7XG4gICAgbGV0IHNlbGVjdGlvbk1vZGU6IE1heWJlPERieExpc3RTZWxlY3Rpb25Nb2RlPiA9ICdzZWxlY3QnO1xuXG4gICAgaWYgKHRoaXMuZGJ4UGlja2FibGVMaXN0RmllbGRDb21wb25lbnQuZGlzYWJsZWQgJiYgdGhpcy5kYnhQaWNrYWJsZUxpc3RGaWVsZENvbXBvbmVudC5jaGFuZ2VTZWxlY3Rpb25Nb2RlVG9WaWV3T25EaXNhYmxlZCkge1xuICAgICAgc2VsZWN0aW9uTW9kZSA9ICd2aWV3JztcbiAgICB9XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uTW9kZTtcbiAgfVxuXG4gIHJlYWRvbmx5IGl0ZW1zJCA9IHRoaXMudmFsdWVzJC5waXBlKFxuICAgIC8vIE5PVEU6IFRoaXMgY2F1c2VzIHRoZSBcInZhbHVlXCIgdG8gYmUgYSBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VD4sIHdoaWNoIG1lYW5zIHdlIGVtaXQgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+IHRvIERieFBpY2thYmxlTGlzdEZpZWxkQ29tcG9uZW50LlxuICAgIG1hcCgoeCkgPT4gYWRkQ29uZmlnVG9WYWx1ZUxpc3RJdGVtcyh0aGlzLmNvbmZpZywgeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZGJ4UGlja2FibGVMaXN0RmllbGRDb21wb25lbnQ6IERieFBpY2thYmxlTGlzdEZpZWxkQ29tcG9uZW50PFQ+KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8cD57eyBsYWJlbCB9fTwvcD5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0l0ZW1Db21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdERieFZhbHVlTGlzdFZpZXdJdGVtQ29tcG9uZW50PFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPj4ge1xuICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtVmFsdWUubGFiZWw7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYngtcGlja2FibGUtaXRlbS1maWVsZFwiPlxuICA8ZGJ4LWxvYWRpbmcgW2NvbnRleHRdPVwiY29udGV4dFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93RmlsdGVySW5wdXRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWx0ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gQ29udGVudCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZGJ4LXBpY2thYmxlLWl0ZW0tZmllbGQtbGlzdFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImRieC1waWNrYWJsZS1pdGVtLWZpZWxkLWxpc3QtY29udGVudFwiPlxuICAgICAgICA8ZGJ4LWZvcm0tcGlja2FibGUtaXRlbS1maWVsZC1pdGVtLWxpc3QgW2Rpc2FibGVkXT1cImlzUmVhZG9ubHlPckRpc2FibGVkXCIgW3N0YXRlJF09XCJmaWx0ZXJJdGVtc0xvYWRpbmdTdGF0ZSRcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIj48L2RieC1mb3JtLXBpY2thYmxlLWl0ZW0tZmllbGQtaXRlbS1saXN0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImZvb3RlckNvbmZpZ1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgICA8L2Rpdj5cbiAgPC9kYngtbG9hZGluZz5cbjwvZGl2PlxuXG48IS0tIEZpbHRlciBJbnB1dCAtLT5cbjxuZy10ZW1wbGF0ZSAjZmlsdGVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJkYngtcGlja2FibGUtaXRlbS1maWVsZC1maWx0ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGJ4LWxhYmVsXCI+e3sgZmlsdGVyTGFiZWwgfX08L2Rpdj5cbiAgICA8aW5wdXQgW25hbWVdPVwibmFtZVwiIGF1dG9jb21wbGV0ZT1cInt7IGF1dG9jb21wbGV0ZSB9fVwiICNmaWx0ZXJNYXRJbnB1dD1cIm1hdElucHV0XCIgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cImlucHV0Q3RybFwiIC8+XG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgPGRieC1sb2FkaW5nIFtsaW5lYXJdPVwidHJ1ZVwiIFtjb250ZXh0XT1cImZpbHRlclJlc3VsdHNDb250ZXh0XCI+PC9kYngtbG9hZGluZz5cbiAgICA8IS0tIE5vIGl0ZW1zIGZvdW5kLiAtLT5cbiAgICA8cCAqbmdJZj1cIm5vSXRlbXNBdmFpbGFibGUkIHwgYXN5bmNcIiBjbGFzcz1cImRieC1sYWJlbFwiPk5vIGl0ZW1zIG1hdGNoIHRoaXMgZmlsdGVyLjwvcD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1heWJlLCBQcmltYXRpdmVLZXkgfSBmcm9tIFwiQGRlcmVla2IvdXRpbFwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBTZWxlY3Rpb25EaXNwbGF5VmFsdWUsIFNlbGVjdGlvblZhbHVlLCBTZWxlY3Rpb25WYWx1ZUhhc2hGbiB9IGZyb20gXCIuLi9zZWxlY3Rpb25cIjtcblxuZXhwb3J0IHR5cGUgUGlja2FibGVWYWx1ZUZpZWxkVmFsdWU8VCwgTSA9IHVua25vd24+ID0gU2VsZWN0aW9uVmFsdWU8VCwgTT5cbmV4cG9ydCB0eXBlIFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxULCBNID0gdW5rbm93bj4gPSBTZWxlY3Rpb25EaXNwbGF5VmFsdWU8VCwgTT5cblxuLyoqXG4gKiBQaWNrYWJsZVZhbHVlRmllbGQgZnVuY3Rpb24gZm9yIHJldHJpZXZpbmcgYWxsIHZhbHVlcy5cbiAqL1xuZXhwb3J0IHR5cGUgUGlja2FibGVWYWx1ZUZpZWxkTG9hZFZhbHVlc0ZuPFQsIE0gPSB1bmtub3duPiA9ICgpID0+IE9ic2VydmFibGU8UGlja2FibGVWYWx1ZUZpZWxkVmFsdWU8VCwgTT5bXT47XG5cbi8qKlxuICogUGlja2FibGVWYWx1ZUZpZWxkIGZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRoZSB2YWx1ZXMgYSBjaGFuY2UgdG8gZ28gdGhyb3VnaCBhbm90aGVyIG9ic2VydmFibGUgZm9yIGFueSBjaGFuZ2VzLlxuICpcbiAqIFZhbHVlcyBtYXkgbm90IGhhdmUgbWV0YWRhdGEgb24gdGhlbSBpbiBzb21lIGNhc2VzLCB3aGVyZSB0aGUgdmFsdWUgbWF5IGluZmFjdCBiZSBhbiB1bmtub3duIHZhbHVlLlxuICogVGhlIHJldHVybmVkIHZhbHVlIHNob3VsZCBiZSBtYXJrZWQgYXMgdW5rbm93biwgb3IgaWYgaXQgaGFzIG5vIG1ldGEgYnV0IGlzIGtub3duLCBpc1Vua25vd24gc2hvdWxkIGJlIG1hcmtlZCBmYWxzZS5cbiAqIFxuICogVGhlIHZhbHVlIGl0c2VsZiBzaG91bGQgbm90IGNoYW5nZS4gQWxsIG90aGVyIGZpZWxkcyBvbiB0aGUgdmFsdWUgbWF5IGNoYW5nZSwgaG93ZXZlci5cbiAqL1xuZXhwb3J0IHR5cGUgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheUZuPFQsIE0gPSB1bmtub3duPiA9ICh2YWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZFZhbHVlPFQsIE0+W10pID0+IE9ic2VydmFibGU8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+W10+O1xuXG4vKipcbiAqIFVzZWQgZm9yIGZpbHRlcmluZyB0aGUgdmFsdWVzIHRoYXQgc2hvdWxkIGJlIGRpc3BsYXllZC5cbiAqL1xuZXhwb3J0IHR5cGUgUGlja2FibGVWYWx1ZUZpZWxkRmlsdGVyRm48VCwgTSA9IHVua25vd24+ID0gKGZsdGVyVGV4dDogTWF5YmU8c3RyaW5nPiwgdmFsdWVzOiBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5bXSkgPT4gT2JzZXJ2YWJsZTxUW10+O1xuXG4vKipcbiAqIFVzZWQgdG8gaGFzaCB0aGUgdmFsdWUgZnJvbSB0aGUgaW5wdXQgcGlja2FibGUgdmFsdWUuXG4gKi9cbmV4cG9ydCB0eXBlIFBpY2thYmxlVmFsdWVGaWVsZEhhc2hGbjxULCBIIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5PiA9IFNlbGVjdGlvblZhbHVlSGFzaEZuPFQsIEg+O1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1heWJlLCBQcmltYXRpdmVLZXkgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlbGVjdGlvbkRpc3BsYXlWYWx1ZSwgU2VsZWN0aW9uVmFsdWUsIFNlbGVjdGlvblZhbHVlSGFzaEZuIH0gZnJvbSAnLi4vc2VsZWN0aW9uJztcblxuZXhwb3J0IHR5cGUgUGlja2FibGVWYWx1ZUZpZWxkVmFsdWU8VCwgTSA9IHVua25vd24+ID0gU2VsZWN0aW9uVmFsdWU8VCwgTT47XG5leHBvcnQgdHlwZSBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTSA9IHVua25vd24+ID0gU2VsZWN0aW9uRGlzcGxheVZhbHVlPFQsIE0+O1xuXG4vKipcbiAqIFBpY2thYmxlVmFsdWVGaWVsZCBmdW5jdGlvbiBmb3IgcmV0cmlldmluZyBhbGwgdmFsdWVzLlxuICovXG5leHBvcnQgdHlwZSBQaWNrYWJsZVZhbHVlRmllbGRMb2FkVmFsdWVzRm48VCwgTSA9IHVua25vd24+ID0gKCkgPT4gT2JzZXJ2YWJsZTxQaWNrYWJsZVZhbHVlRmllbGRWYWx1ZTxULCBNPltdPjtcblxuLyoqXG4gKiBQaWNrYWJsZVZhbHVlRmllbGQgZnVuY3Rpb24gdGhhdCBhbGxvd3MgdGhlIHZhbHVlcyBhIGNoYW5jZSB0byBnbyB0aHJvdWdoIGFub3RoZXIgb2JzZXJ2YWJsZSBmb3IgYW55IGNoYW5nZXMuXG4gKlxuICogVmFsdWVzIG1heSBub3QgaGF2ZSBtZXRhZGF0YSBvbiB0aGVtIGluIHNvbWUgY2FzZXMsIHdoZXJlIHRoZSB2YWx1ZSBtYXkgaW5mYWN0IGJlIGFuIHVua25vd24gdmFsdWUuXG4gKiBUaGUgcmV0dXJuZWQgdmFsdWUgc2hvdWxkIGJlIG1hcmtlZCBhcyB1bmtub3duLCBvciBpZiBpdCBoYXMgbm8gbWV0YSBidXQgaXMga25vd24sIGlzVW5rbm93biBzaG91bGQgYmUgbWFya2VkIGZhbHNlLlxuICpcbiAqIFRoZSB2YWx1ZSBpdHNlbGYgc2hvdWxkIG5vdCBjaGFuZ2UuIEFsbCBvdGhlciBmaWVsZHMgb24gdGhlIHZhbHVlIG1heSBjaGFuZ2UsIGhvd2V2ZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlGbjxULCBNID0gdW5rbm93bj4gPSAodmFsdWVzOiBQaWNrYWJsZVZhbHVlRmllbGRWYWx1ZTxULCBNPltdKSA9PiBPYnNlcnZhYmxlPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxULCBNPltdPjtcblxuLyoqXG4gKiBVc2VkIGZvciBmaWx0ZXJpbmcgdGhlIHZhbHVlcyB0aGF0IHNob3VsZCBiZSBkaXNwbGF5ZWQuXG4gKi9cbmV4cG9ydCB0eXBlIFBpY2thYmxlVmFsdWVGaWVsZEZpbHRlckZuPFQsIE0gPSB1bmtub3duPiA9IChmbHRlclRleHQ6IE1heWJlPHN0cmluZz4sIHZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+W10pID0+IE9ic2VydmFibGU8VFtdPjtcblxuLyoqXG4gKiBVc2VkIHRvIGhhc2ggdGhlIHZhbHVlIGZyb20gdGhlIGlucHV0IHBpY2thYmxlIHZhbHVlLlxuICovXG5leHBvcnQgdHlwZSBQaWNrYWJsZVZhbHVlRmllbGRIYXNoRm48VCwgSCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleT4gPSBTZWxlY3Rpb25WYWx1ZUhhc2hGbjxULCBIPjtcbiJdfQ==
@@ -54,9 +54,9 @@ export class DbxSearchableChipFieldComponent extends AbstractDbxSearchableValueF
54
54
  }
55
55
  }
56
56
  DbxSearchableChipFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxSearchableChipFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
57
- DbxSearchableChipFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxSearchableChipFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-field\">\n <!-- View -->\n <mat-chip-list [selectable]=\"!readonly\" [required]=\"required\" [disabled]=\"readonly\" #chipList>\n <mat-chip *ngFor=\"let displayValue of displayValues$ | async\" [removable]=\"true\"\n (removed)=\"removeWithDisplayValue(displayValue)\">\n <span class=\"dbx-chip-label\">{{ displayValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"displayValue.sublabel\">{{ displayValue.sublabel }}</span>\n <mat-icon *ngIf=\"!readonly\" matChipRemove>cancel</mat-icon>\n </mat-chip>\n <input #textInput [name]=\"name\" [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\"\n autocomplete=\"{{ autocomplete }}\" [matAutocompleteDisabled]=\"readonly\" [matChipInputFor]=\"chipList\" (keydown)=\"tabPressedOnInput($event)\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"addChip($event)\" (blur)=\"onBlur()\">\n </mat-chip-list>\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\"\n (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of (searchResults$ | async)\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\">\n </dbx-searchable-field-autocomplete-item>\n </mat-option>\n</mat-autocomplete>\n", components: [{ type: i1.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i6.DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }], directives: [{ type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.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: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatChipRemove, selector: "[matChipRemove]" }, { type: i8.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: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i7.AsyncPipe } });
57
+ DbxSearchableChipFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxSearchableChipFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-field\">\n <!-- View -->\n <mat-chip-list [selectable]=\"!readonly\" [required]=\"required\" [disabled]=\"readonly\" #chipList>\n <mat-chip *ngFor=\"let displayValue of displayValues$ | async\" [removable]=\"true\" (removed)=\"removeWithDisplayValue(displayValue)\">\n <span class=\"dbx-chip-label\">{{ displayValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"displayValue.sublabel\">{{ displayValue.sublabel }}</span>\n <mat-icon *ngIf=\"!readonly\" matChipRemove>cancel</mat-icon>\n </mat-chip>\n <input #textInput [name]=\"name\" [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" autocomplete=\"{{ autocomplete }}\" [matAutocompleteDisabled]=\"readonly\" [matChipInputFor]=\"chipList\" (keydown)=\"tabPressedOnInput($event)\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"addChip($event)\" (blur)=\"onBlur()\" />\n </mat-chip-list>\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of searchResults$ | async\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n</mat-autocomplete>\n", components: [{ type: i1.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i6.DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }], directives: [{ type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.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: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatChipRemove, selector: "[matChipRemove]" }, { type: i8.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: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i7.AsyncPipe } });
58
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxSearchableChipFieldComponent, decorators: [{
59
59
  type: Component,
60
- args: [{ template: "<div class=\"dbx-searchable-field\">\n <!-- View -->\n <mat-chip-list [selectable]=\"!readonly\" [required]=\"required\" [disabled]=\"readonly\" #chipList>\n <mat-chip *ngFor=\"let displayValue of displayValues$ | async\" [removable]=\"true\"\n (removed)=\"removeWithDisplayValue(displayValue)\">\n <span class=\"dbx-chip-label\">{{ displayValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"displayValue.sublabel\">{{ displayValue.sublabel }}</span>\n <mat-icon *ngIf=\"!readonly\" matChipRemove>cancel</mat-icon>\n </mat-chip>\n <input #textInput [name]=\"name\" [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\"\n autocomplete=\"{{ autocomplete }}\" [matAutocompleteDisabled]=\"readonly\" [matChipInputFor]=\"chipList\" (keydown)=\"tabPressedOnInput($event)\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"addChip($event)\" (blur)=\"onBlur()\">\n </mat-chip-list>\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\"\n (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of (searchResults$ | async)\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\">\n </dbx-searchable-field-autocomplete-item>\n </mat-option>\n</mat-autocomplete>\n" }]
60
+ args: [{ template: "<div class=\"dbx-searchable-field\">\n <!-- View -->\n <mat-chip-list [selectable]=\"!readonly\" [required]=\"required\" [disabled]=\"readonly\" #chipList>\n <mat-chip *ngFor=\"let displayValue of displayValues$ | async\" [removable]=\"true\" (removed)=\"removeWithDisplayValue(displayValue)\">\n <span class=\"dbx-chip-label\">{{ displayValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"displayValue.sublabel\">{{ displayValue.sublabel }}</span>\n <mat-icon *ngIf=\"!readonly\" matChipRemove>cancel</mat-icon>\n </mat-chip>\n <input #textInput [name]=\"name\" [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" autocomplete=\"{{ autocomplete }}\" [matAutocompleteDisabled]=\"readonly\" [matChipInputFor]=\"chipList\" (keydown)=\"tabPressedOnInput($event)\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"addChip($event)\" (blur)=\"onBlur()\" />\n </mat-chip-list>\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of searchResults$ | async\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n</mat-autocomplete>\n" }]
61
61
  }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS5jaGlwLmZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zZWFyY2hhYmxlL3NlYXJjaGFibGUuY2hpcC5maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vc2VhcmNoYWJsZS9zZWFyY2hhYmxlLmNoaXAuZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFFLHdDQUF3QyxFQUE0RSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xLLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBWXRFLE1BQU0sT0FBTywrQkFBdUYsU0FBUSx3Q0FBc0c7SUFIbE47O1FBS1UsVUFBSyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDNUIsYUFBUSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUVuQyx1QkFBa0IsR0FBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztLQTBDeEQ7SUF4Q0MsUUFBUSxDQUFDLEtBQW1DO1FBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFvQjtRQUNwQyxJQUFJLEtBQUssRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssS0FBSyxFQUFFO1lBQ3ZDLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFLEVBQUU7Z0JBQ25DLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUF3QjtRQUM5QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUSxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLDBHQUEwRztRQUMxRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwSCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7OzRIQTdDVSwrQkFBK0I7Z0hBQS9CLCtCQUErQiwyRUNuQjVDLDRoREEwQkE7MkZEUGEsK0JBQStCO2tCQUgzQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdENoaXBJbnB1dEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgQWJzdHJhY3REYnhTZWFyY2hhYmxlVmFsdWVGaWVsZERpcmVjdGl2ZSwgU2VhcmNoYWJsZVZhbHVlRmllbGRzRmllbGRDb25maWcsIFNlYXJjaGFibGVWYWx1ZUZpZWxkc0Zvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnLi9zZWFyY2hhYmxlLmZpZWxkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDT01NQSwgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgc2tpcFVudGlsVGltZUVsYXBzZWRBZnRlckxhc3RFbWlzc2lvbiB9IGZyb20gJ0BkZXJlZWtiL2RhdGUnO1xuaW1wb3J0IHsgUHJpbWF0aXZlS2V5IH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCB0eXBlIFNlYXJjaGFibGVDaGlwVmFsdWVGaWVsZHNGaWVsZENvbmZpZzxULCBNID0gdW5rbm93biwgSCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleT4gPSBTZWFyY2hhYmxlVmFsdWVGaWVsZHNGaWVsZENvbmZpZzxULCBNLCBIPjtcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hhYmxlQ2hpcFZhbHVlRmllbGRzRm9ybWx5RmllbGRDb25maWc8VCwgTSA9IHVua25vd24sIEggZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXk+IGV4dGVuZHMgU2VhcmNoYWJsZVZhbHVlRmllbGRzRm9ybWx5RmllbGRDb25maWc8VCwgTSwgSD4ge1xuICBzZWFyY2hhYmxlRmllbGQ6IFNlYXJjaGFibGVDaGlwVmFsdWVGaWVsZHNGaWVsZENvbmZpZzxULCBNLCBIPjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnc2VhcmNoYWJsZS5jaGlwLmZpZWxkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBEYnhTZWFyY2hhYmxlQ2hpcEZpZWxkQ29tcG9uZW50PFQsIE0gPSB1bmtub3duLCBIIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5PiBleHRlbmRzIEFic3RyYWN0RGJ4U2VhcmNoYWJsZVZhbHVlRmllbGREaXJlY3RpdmU8VCwgTSwgSCwgU2VhcmNoYWJsZUNoaXBWYWx1ZUZpZWxkc0Zvcm1seUZpZWxkQ29uZmlnPFQsIE0sIEg+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9ibHVyID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfYmx1clN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICByZWFkb25seSBzZXBhcmF0b3JLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQV07XG5cbiAgc2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmFkZFdpdGhEaXNwbGF5VmFsdWUoZXZlbnQub3B0aW9uLnZhbHVlKTtcbiAgfVxuXG4gIHRhYlByZXNzZWRPbklucHV0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKGV2ZW50Py5rZXk/LnRvTG93ZXJDYXNlKCkgPT09ICd0YWInKSB7XG4gICAgICBpZiAodGhpcy5fdHJ5QWRkQ3VycmVudElucHV0VmFsdWUoKSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYWRkQ2hpcChldmVudDogTWF0Q2hpcElucHV0RXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0ZXh0ID0gZXZlbnQudmFsdWUgPz8gdGhpcy5pbnB1dEN0cmwudmFsdWU7XG4gICAgcmV0dXJuIHRoaXMuX2FkZFdpdGhUZXh0VmFsdWUodGV4dCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgLy8gT25seSB0cnkgYW5kIGFkZCB0aGUgdGV4dCBpdGVtIGFzIGEgdmFsdWUgaWYgYSB2YWx1ZSB3YXNuJ3QganVzdCBhZGRlZCAoZm9yIGV4YW1wbGUsIGNsaWNraW5nIGEgdmFsdWUpLlxuICAgIHRoaXMuX2JsdXJTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5fYmx1ci5waXBlKHNraXBVbnRpbFRpbWVFbGFwc2VkQWZ0ZXJMYXN0RW1pc3Npb24odGhpcy52YWx1ZXMkLCAxMDApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fdHJ5QWRkQ3VycmVudElucHV0VmFsdWUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5fYmx1ci5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2JsdXJTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuX2JsdXIubmV4dCgpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYngtc2VhcmNoYWJsZS1maWVsZFwiPlxuICA8IS0tIFZpZXcgLS0+XG4gIDxtYXQtY2hpcC1saXN0IFtzZWxlY3RhYmxlXT1cIiFyZWFkb25seVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiICNjaGlwTGlzdD5cbiAgICA8bWF0LWNoaXAgKm5nRm9yPVwibGV0IGRpc3BsYXlWYWx1ZSBvZiBkaXNwbGF5VmFsdWVzJCB8IGFzeW5jXCIgW3JlbW92YWJsZV09XCJ0cnVlXCJcbiAgICAgIChyZW1vdmVkKT1cInJlbW92ZVdpdGhEaXNwbGF5VmFsdWUoZGlzcGxheVZhbHVlKVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJkYngtY2hpcC1sYWJlbFwiPnt7IGRpc3BsYXlWYWx1ZS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZGJ4LWNoaXAtc3VibGFiZWxcIiAqbmdJZj1cImRpc3BsYXlWYWx1ZS5zdWJsYWJlbFwiPnt7IGRpc3BsYXlWYWx1ZS5zdWJsYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIiFyZWFkb25seVwiIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICA8L21hdC1jaGlwPlxuICAgIDxpbnB1dCAjdGV4dElucHV0IFtuYW1lXT1cIm5hbWVcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwiaW5wdXRDdHJsXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cInt7IGF1dG9jb21wbGV0ZSB9fVwiIFttYXRBdXRvY29tcGxldGVEaXNhYmxlZF09XCJyZWFkb25seVwiIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIiAoa2V5ZG93bik9XCJ0YWJQcmVzc2VkT25JbnB1dCgkZXZlbnQpXCJcbiAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJzZXBhcmF0b3JLZXlzQ29kZXNcIiAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkQ2hpcCgkZXZlbnQpXCIgKGJsdXIpPVwib25CbHVyKClcIj5cbiAgPC9tYXQtY2hpcC1saXN0PlxuICA8ZGl2IGNsYXNzPVwic2VhcmNoYWJsZS1maWVsZC1mb3JtLWxvYWRpbmdcIj5cbiAgICA8ZGJ4LWxvYWRpbmcgW2xpbmVhcl09XCJ0cnVlXCIgW2NvbnRleHRdPVwic2VhcmNoQ29udGV4dFwiPjwvZGJ4LWxvYWRpbmc+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gQXV0b2NvbXBsZXRlIC0tPlxuPG1hdC1hdXRvY29tcGxldGUgY2xhc3M9XCJkYngtc2VhcmNoYWJsZS10ZXh0LWZpZWxkLWF1dG9jb21wbGV0ZVwiICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgKG9wdGlvblNlbGVjdGVkKT1cInNlbGVjdGVkKCRldmVudClcIj5cbiAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGRpc3BsYXlWYWx1ZSBvZiAoc2VhcmNoUmVzdWx0cyQgfCBhc3luYylcIiBbdmFsdWVdPVwiZGlzcGxheVZhbHVlXCI+XG4gICAgPGRieC1zZWFyY2hhYmxlLWZpZWxkLWF1dG9jb21wbGV0ZS1pdGVtIFtkaXNwbGF5VmFsdWVdPVwiZGlzcGxheVZhbHVlXCI+XG4gICAgPC9kYngtc2VhcmNoYWJsZS1maWVsZC1hdXRvY29tcGxldGUtaXRlbT5cbiAgPC9tYXQtb3B0aW9uPlxuPC9tYXQtYXV0b2NvbXBsZXRlPlxuIl19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS5jaGlwLmZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zZWFyY2hhYmxlL3NlYXJjaGFibGUuY2hpcC5maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vc2VhcmNoYWJsZS9zZWFyY2hhYmxlLmNoaXAuZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFFLHdDQUF3QyxFQUE0RSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xLLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBWXRFLE1BQU0sT0FBTywrQkFBdUYsU0FBUSx3Q0FBc0c7SUFIbE47O1FBSVUsVUFBSyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDNUIsYUFBUSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUVuQyx1QkFBa0IsR0FBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztLQXlDeEQ7SUF2Q0MsUUFBUSxDQUFDLEtBQW1DO1FBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFvQjtRQUNwQyxJQUFJLEtBQUssRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssS0FBSyxFQUFFO1lBQ3ZDLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFLEVBQUU7Z0JBQ25DLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUF3QjtRQUM5QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUSxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLDBHQUEwRztRQUMxRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwSCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7OzRIQTVDVSwrQkFBK0I7Z0hBQS9CLCtCQUErQiwyRUNuQjVDLDgvQ0FxQkE7MkZERmEsK0JBQStCO2tCQUgzQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdENoaXBJbnB1dEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgQWJzdHJhY3REYnhTZWFyY2hhYmxlVmFsdWVGaWVsZERpcmVjdGl2ZSwgU2VhcmNoYWJsZVZhbHVlRmllbGRzRmllbGRDb25maWcsIFNlYXJjaGFibGVWYWx1ZUZpZWxkc0Zvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnLi9zZWFyY2hhYmxlLmZpZWxkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDT01NQSwgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgc2tpcFVudGlsVGltZUVsYXBzZWRBZnRlckxhc3RFbWlzc2lvbiB9IGZyb20gJ0BkZXJlZWtiL2RhdGUnO1xuaW1wb3J0IHsgUHJpbWF0aXZlS2V5IH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCB0eXBlIFNlYXJjaGFibGVDaGlwVmFsdWVGaWVsZHNGaWVsZENvbmZpZzxULCBNID0gdW5rbm93biwgSCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleT4gPSBTZWFyY2hhYmxlVmFsdWVGaWVsZHNGaWVsZENvbmZpZzxULCBNLCBIPjtcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hhYmxlQ2hpcFZhbHVlRmllbGRzRm9ybWx5RmllbGRDb25maWc8VCwgTSA9IHVua25vd24sIEggZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXk+IGV4dGVuZHMgU2VhcmNoYWJsZVZhbHVlRmllbGRzRm9ybWx5RmllbGRDb25maWc8VCwgTSwgSD4ge1xuICBzZWFyY2hhYmxlRmllbGQ6IFNlYXJjaGFibGVDaGlwVmFsdWVGaWVsZHNGaWVsZENvbmZpZzxULCBNLCBIPjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnc2VhcmNoYWJsZS5jaGlwLmZpZWxkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBEYnhTZWFyY2hhYmxlQ2hpcEZpZWxkQ29tcG9uZW50PFQsIE0gPSB1bmtub3duLCBIIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5PiBleHRlbmRzIEFic3RyYWN0RGJ4U2VhcmNoYWJsZVZhbHVlRmllbGREaXJlY3RpdmU8VCwgTSwgSCwgU2VhcmNoYWJsZUNoaXBWYWx1ZUZpZWxkc0Zvcm1seUZpZWxkQ29uZmlnPFQsIE0sIEg+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfYmx1ciA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX2JsdXJTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgcmVhZG9ubHkgc2VwYXJhdG9yS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUiwgQ09NTUFdO1xuXG4gIHNlbGVjdGVkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5hZGRXaXRoRGlzcGxheVZhbHVlKGV2ZW50Lm9wdGlvbi52YWx1ZSk7XG4gIH1cblxuICB0YWJQcmVzc2VkT25JbnB1dChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgIGlmIChldmVudD8ua2V5Py50b0xvd2VyQ2FzZSgpID09PSAndGFiJykge1xuICAgICAgaWYgKHRoaXMuX3RyeUFkZEN1cnJlbnRJbnB1dFZhbHVlKCkpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFkZENoaXAoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGV4dCA9IGV2ZW50LnZhbHVlID8/IHRoaXMuaW5wdXRDdHJsLnZhbHVlO1xuICAgIHJldHVybiB0aGlzLl9hZGRXaXRoVGV4dFZhbHVlKHRleHQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIC8vIE9ubHkgdHJ5IGFuZCBhZGQgdGhlIHRleHQgaXRlbSBhcyBhIHZhbHVlIGlmIGEgdmFsdWUgd2Fzbid0IGp1c3QgYWRkZWQgKGZvciBleGFtcGxlLCBjbGlja2luZyBhIHZhbHVlKS5cbiAgICB0aGlzLl9ibHVyU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuX2JsdXIucGlwZShza2lwVW50aWxUaW1lRWxhcHNlZEFmdGVyTGFzdEVtaXNzaW9uKHRoaXMudmFsdWVzJCwgMTAwKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX3RyeUFkZEN1cnJlbnRJbnB1dFZhbHVlKCk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX2JsdXIuY29tcGxldGUoKTtcbiAgICB0aGlzLl9ibHVyU3ViLmRlc3Ryb3koKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLl9ibHVyLm5leHQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRieC1zZWFyY2hhYmxlLWZpZWxkXCI+XG4gIDwhLS0gVmlldyAtLT5cbiAgPG1hdC1jaGlwLWxpc3QgW3NlbGVjdGFibGVdPVwiIXJlYWRvbmx5XCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgI2NoaXBMaXN0PlxuICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgZGlzcGxheVZhbHVlIG9mIGRpc3BsYXlWYWx1ZXMkIHwgYXN5bmNcIiBbcmVtb3ZhYmxlXT1cInRydWVcIiAocmVtb3ZlZCk9XCJyZW1vdmVXaXRoRGlzcGxheVZhbHVlKGRpc3BsYXlWYWx1ZSlcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZGJ4LWNoaXAtbGFiZWxcIj57eyBkaXNwbGF5VmFsdWUubGFiZWwgfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImRieC1jaGlwLXN1YmxhYmVsXCIgKm5nSWY9XCJkaXNwbGF5VmFsdWUuc3VibGFiZWxcIj57eyBkaXNwbGF5VmFsdWUuc3VibGFiZWwgfX08L3NwYW4+XG4gICAgICA8bWF0LWljb24gKm5nSWY9XCIhcmVhZG9ubHlcIiBtYXRDaGlwUmVtb3ZlPmNhbmNlbDwvbWF0LWljb24+XG4gICAgPC9tYXQtY2hpcD5cbiAgICA8aW5wdXQgI3RleHRJbnB1dCBbbmFtZV09XCJuYW1lXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cImlucHV0Q3RybFwiIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiIGF1dG9jb21wbGV0ZT1cInt7IGF1dG9jb21wbGV0ZSB9fVwiIFttYXRBdXRvY29tcGxldGVEaXNhYmxlZF09XCJyZWFkb25seVwiIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIiAoa2V5ZG93bik9XCJ0YWJQcmVzc2VkT25JbnB1dCgkZXZlbnQpXCIgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiIChtYXRDaGlwSW5wdXRUb2tlbkVuZCk9XCJhZGRDaGlwKCRldmVudClcIiAoYmx1cik9XCJvbkJsdXIoKVwiIC8+XG4gIDwvbWF0LWNoaXAtbGlzdD5cbiAgPGRpdiBjbGFzcz1cInNlYXJjaGFibGUtZmllbGQtZm9ybS1sb2FkaW5nXCI+XG4gICAgPGRieC1sb2FkaW5nIFtsaW5lYXJdPVwidHJ1ZVwiIFtjb250ZXh0XT1cInNlYXJjaENvbnRleHRcIj48L2RieC1sb2FkaW5nPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIEF1dG9jb21wbGV0ZSAtLT5cbjxtYXQtYXV0b2NvbXBsZXRlIGNsYXNzPVwiZGJ4LXNlYXJjaGFibGUtdGV4dC1maWVsZC1hdXRvY29tcGxldGVcIiAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJzZWxlY3RlZCgkZXZlbnQpXCI+XG4gIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBkaXNwbGF5VmFsdWUgb2Ygc2VhcmNoUmVzdWx0cyQgfCBhc3luY1wiIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIj5cbiAgICA8ZGJ4LXNlYXJjaGFibGUtZmllbGQtYXV0b2NvbXBsZXRlLWl0ZW0gW2Rpc3BsYXlWYWx1ZV09XCJkaXNwbGF5VmFsdWVcIj48L2RieC1zZWFyY2hhYmxlLWZpZWxkLWF1dG9jb21wbGV0ZS1pdGVtPlxuICA8L21hdC1vcHRpb24+XG48L21hdC1hdXRvY29tcGxldGU+XG4iXX0=
@@ -11,17 +11,19 @@ export class DbxSearchableFieldAutocompleteItemComponent {
11
11
  constructor() {
12
12
  this._displayValue = new BehaviorSubject(undefined);
13
13
  this.displayValue$ = this._displayValue.pipe(filterMaybe(), shareReplay(1));
14
- this.config$ = this.displayValue$.pipe(map(x => {
14
+ this.config$ = this.displayValue$.pipe(map((x) => {
15
15
  const config = {
16
16
  ...x.display,
17
- providers: mergeIntoArray([{
17
+ providers: mergeIntoArray([
18
+ {
18
19
  provide: DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN,
19
20
  useValue: x
20
- }], x.display.providers)
21
+ }
22
+ ], x.display.providers)
21
23
  };
22
24
  return config;
23
25
  }));
24
- this.anchor$ = this.displayValue$.pipe(map(x => x.anchor));
26
+ this.anchor$ = this.displayValue$.pipe(map((x) => x.anchor));
25
27
  }
26
28
  set displayValue(displayValue) {
27
29
  this._displayValue.next(displayValue);
@@ -67,21 +69,21 @@ export class DbxDefaultSearchableFieldDisplayComponent extends AbstractDbxSearch
67
69
  }
68
70
  DbxDefaultSearchableFieldDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
69
71
  DbxDefaultSearchableFieldDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxDefaultSearchableFieldDisplayComponent, selector: "dbx-default-searchable-field-display", usesInheritance: true, ngImport: i0, template: `
70
- <div class="dbx-default-searchable-field-display">
71
- <span class="dbx-chip-label">{{ displayValue.label }}</span>
72
- <span class="dbx-chip-sublabel" *ngIf="displayValue.sublabel">({{ displayValue.sublabel }})</span>
73
- </div>
72
+ <div class="dbx-default-searchable-field-display">
73
+ <span class="dbx-chip-label">{{ displayValue.label }}</span>
74
+ <span class="dbx-chip-sublabel" *ngIf="displayValue.sublabel">({{ displayValue.sublabel }})</span>
75
+ </div>
74
76
  `, isInline: true, directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
75
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, decorators: [{
76
78
  type: Component,
77
79
  args: [{
78
80
  selector: 'dbx-default-searchable-field-display',
79
81
  template: `
80
- <div class="dbx-default-searchable-field-display">
81
- <span class="dbx-chip-label">{{ displayValue.label }}</span>
82
- <span class="dbx-chip-sublabel" *ngIf="displayValue.sublabel">({{ displayValue.sublabel }})</span>
83
- </div>
82
+ <div class="dbx-default-searchable-field-display">
83
+ <span class="dbx-chip-label">{{ displayValue.label }}</span>
84
+ <span class="dbx-chip-sublabel" *ngIf="displayValue.sublabel">({{ displayValue.sublabel }})</span>
85
+ </div>
84
86
  `
85
87
  }]
86
88
  }] });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS5maWVsZC5hdXRvY29tcGxldGUuaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vc2VhcmNoYWJsZS9zZWFyY2hhYmxlLmZpZWxkLmF1dG9jb21wbGV0ZS5pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUUvRixPQUFPLEVBQVMsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQUd0RCxNQUFNLENBQUMsTUFBTSx5Q0FBeUMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBVWxHLE1BQU0sT0FBTywyQ0FBMkM7SUFSeEQ7UUFVVSxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUF1RCxTQUFTLENBQUMsQ0FBQztRQUNwRyxrQkFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZFLFlBQU8sR0FBNEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzFGLE1BQU0sTUFBTSxHQUFnQztnQkFDMUMsR0FBRyxDQUFDLENBQUMsT0FBTztnQkFDWixTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7d0JBQ3pCLE9BQU8sRUFBRSx5Q0FBeUM7d0JBQ2xELFFBQVEsRUFBRSxDQUFDO3FCQUNaLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQzthQUN6QixDQUFDO1lBRUYsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVLLFlBQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQVdoRTtJQVRDLElBQ0ksWUFBWSxDQUFDLFlBQTJEO1FBQzFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzt3SUExQlUsMkNBQTJDOzRIQUEzQywyQ0FBMkMsd0hBTjVDOzs7O0dBSVQ7MkZBRVUsMkNBQTJDO2tCQVJ2RCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3Q0FBd0M7b0JBQ2xELFFBQVEsRUFBRTs7OztHQUlUO2lCQUNGOzhCQXFCSyxZQUFZO3NCQURmLEtBQUs7O0FBV1IsZ0JBQWdCO0FBRWhCLE1BQU0sT0FBZ0IsMENBQTBDO0lBRTlELFlBQXdFLFlBQTJEO1FBQTNELGlCQUFZLEdBQVosWUFBWSxDQUErQztJQUFJLENBQUM7O3VJQUZwSCwwQ0FBMEMsa0JBRTFDLHlDQUF5QzsySEFGekMsMENBQTBDOzJGQUExQywwQ0FBMEM7a0JBRC9ELFNBQVM7OzBCQUdLLE1BQU07MkJBQUMseUNBQXlDOztBQWEvRCxNQUFNLE9BQU8seUNBQTZDLFNBQVEsMENBQTZDOztzSUFBbEcseUNBQXlDOzBIQUF6Qyx5Q0FBeUMsbUdBUDFDOzs7OztHQUtUOzJGQUVVLHlDQUF5QztrQkFUckQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0NBQXNDO29CQUNoRCxRQUFRLEVBQUU7Ozs7O0dBS1Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXJNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIERpcmVjdGl2ZSwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlIH0gZnJvbSAnLi9zZWFyY2hhYmxlJztcbmltcG9ydCB7IE1heWJlLCBtZXJnZUludG9BcnJheSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuXG5leHBvcnQgY29uc3QgREJYX1NFQVJDSEFCTEVfRklFTERfQ09NUE9ORU5UX0RBVEFfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0RieFNlYXJjaGFibGVGaWVsZCcpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtc2VhcmNoYWJsZS1maWVsZC1hdXRvY29tcGxldGUtaXRlbScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1hbmNob3IgW2Jsb2NrXT1cInRydWVcIiBbYW5jaG9yXT1cImFuY2hvciQgfCBhc3luY1wiPlxuICAgICAgPGRieC1pbmplY3Rpb24gW2NvbmZpZ109XCJjb25maWckIHwgYXN5bmNcIj48L2RieC1pbmplY3Rpb24+XG4gICAgPC9kYngtYW5jaG9yPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieFNlYXJjaGFibGVGaWVsZEF1dG9jb21wbGV0ZUl0ZW1Db21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX2Rpc3BsYXlWYWx1ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8Q29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+Pj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZGlzcGxheVZhbHVlJCA9IHRoaXMuX2Rpc3BsYXlWYWx1ZS5waXBlKGZpbHRlck1heWJlKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBjb25maWckOiBPYnNlcnZhYmxlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZz4gPSB0aGlzLmRpc3BsYXlWYWx1ZSQucGlwZShtYXAoeCA9PiB7XG4gICAgY29uc3QgY29uZmlnOiBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcgPSB7XG4gICAgICAuLi54LmRpc3BsYXksXG4gICAgICBwcm92aWRlcnM6IG1lcmdlSW50b0FycmF5KFt7XG4gICAgICAgIHByb3ZpZGU6IERCWF9TRUFSQ0hBQkxFX0ZJRUxEX0NPTVBPTkVOVF9EQVRBX1RPS0VOLFxuICAgICAgICB1c2VWYWx1ZTogeFxuICAgICAgfV0sIHguZGlzcGxheS5wcm92aWRlcnMpXG4gICAgfTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH0pKTtcblxuICByZWFkb25seSBhbmNob3IkID0gdGhpcy5kaXNwbGF5VmFsdWUkLnBpcGUobWFwKHggPT4geC5hbmNob3IpKTtcblxuICBASW5wdXQoKVxuICBzZXQgZGlzcGxheVZhbHVlKGRpc3BsYXlWYWx1ZTogQ29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+KSB7XG4gICAgdGhpcy5fZGlzcGxheVZhbHVlLm5leHQoZGlzcGxheVZhbHVlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rpc3BsYXlWYWx1ZS5jb21wbGV0ZSgpO1xuICB9XG5cbn1cblxuLy8gTUFSSzogRGVmYXVsdFxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3REYnhTZWFyY2hhYmxlRmllbGREaXNwbGF5RGlyZWN0aXZlPFQ+IHtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERCWF9TRUFSQ0hBQkxFX0ZJRUxEX0NPTVBPTkVOVF9EQVRBX1RPS0VOKSByZWFkb25seSBkaXNwbGF5VmFsdWU6IENvbmZpZ3VyZWRTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPikgeyB9XG5cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWRlZmF1bHQtc2VhcmNoYWJsZS1maWVsZC1kaXNwbGF5JyxcbiAgdGVtcGxhdGU6IGBcbiAgPGRpdiBjbGFzcz1cImRieC1kZWZhdWx0LXNlYXJjaGFibGUtZmllbGQtZGlzcGxheVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZGJ4LWNoaXAtbGFiZWxcIj57eyBkaXNwbGF5VmFsdWUubGFiZWwgfX08L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJkYngtY2hpcC1zdWJsYWJlbFwiICpuZ0lmPVwiZGlzcGxheVZhbHVlLnN1YmxhYmVsXCI+KHt7IGRpc3BsYXlWYWx1ZS5zdWJsYWJlbCB9fSk8L3NwYW4+XG4gIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieERlZmF1bHRTZWFyY2hhYmxlRmllbGREaXNwbGF5Q29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3REYnhTZWFyY2hhYmxlRmllbGREaXNwbGF5RGlyZWN0aXZlPFQ+eyB9XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS5maWVsZC5hdXRvY29tcGxldGUuaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vc2VhcmNoYWJsZS9zZWFyY2hhYmxlLmZpZWxkLmF1dG9jb21wbGV0ZS5pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUUvRixPQUFPLEVBQVMsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQUd0RCxNQUFNLENBQUMsTUFBTSx5Q0FBeUMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBVWxHLE1BQU0sT0FBTywyQ0FBMkM7SUFSeEQ7UUFTVSxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUF1RCxTQUFTLENBQUMsQ0FBQztRQUNwRyxrQkFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZFLFlBQU8sR0FBNEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ2pGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsTUFBTSxNQUFNLEdBQWdDO2dCQUMxQyxHQUFHLENBQUMsQ0FBQyxPQUFPO2dCQUNaLFNBQVMsRUFBRSxjQUFjLENBQ3ZCO29CQUNFO3dCQUNFLE9BQU8sRUFBRSx5Q0FBeUM7d0JBQ2xELFFBQVEsRUFBRSxDQUFDO3FCQUNaO2lCQUNGLEVBQ0QsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQ3BCO2FBQ0YsQ0FBQztZQUVGLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFTyxZQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQVVsRTtJQVJDLElBQ0ksWUFBWSxDQUFDLFlBQTJEO1FBQzFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzt3SUFoQ1UsMkNBQTJDOzRIQUEzQywyQ0FBMkMsd0hBTjVDOzs7O0dBSVQ7MkZBRVUsMkNBQTJDO2tCQVJ2RCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3Q0FBd0M7b0JBQ2xELFFBQVEsRUFBRTs7OztHQUlUO2lCQUNGOzhCQTJCSyxZQUFZO3NCQURmLEtBQUs7O0FBVVIsZ0JBQWdCO0FBRWhCLE1BQU0sT0FBZ0IsMENBQTBDO0lBQzlELFlBQXdFLFlBQTJEO1FBQTNELGlCQUFZLEdBQVosWUFBWSxDQUErQztJQUFHLENBQUM7O3VJQURuSCwwQ0FBMEMsa0JBQzFDLHlDQUF5QzsySEFEekMsMENBQTBDOzJGQUExQywwQ0FBMEM7a0JBRC9ELFNBQVM7OzBCQUVLLE1BQU07MkJBQUMseUNBQXlDOztBQVkvRCxNQUFNLE9BQU8seUNBQTZDLFNBQVEsMENBQTZDOztzSUFBbEcseUNBQXlDOzBIQUF6Qyx5Q0FBeUMsbUdBUDFDOzs7OztHQUtUOzJGQUVVLHlDQUF5QztrQkFUckQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0NBQXNDO29CQUNoRCxRQUFRLEVBQUU7Ozs7O0dBS1Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXJNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIERpcmVjdGl2ZSwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlIH0gZnJvbSAnLi9zZWFyY2hhYmxlJztcbmltcG9ydCB7IE1heWJlLCBtZXJnZUludG9BcnJheSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuXG5leHBvcnQgY29uc3QgREJYX1NFQVJDSEFCTEVfRklFTERfQ09NUE9ORU5UX0RBVEFfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0RieFNlYXJjaGFibGVGaWVsZCcpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtc2VhcmNoYWJsZS1maWVsZC1hdXRvY29tcGxldGUtaXRlbScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1hbmNob3IgW2Jsb2NrXT1cInRydWVcIiBbYW5jaG9yXT1cImFuY2hvciQgfCBhc3luY1wiPlxuICAgICAgPGRieC1pbmplY3Rpb24gW2NvbmZpZ109XCJjb25maWckIHwgYXN5bmNcIj48L2RieC1pbmplY3Rpb24+XG4gICAgPC9kYngtYW5jaG9yPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieFNlYXJjaGFibGVGaWVsZEF1dG9jb21wbGV0ZUl0ZW1Db21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9kaXNwbGF5VmFsdWUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPENvbmZpZ3VyZWRTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPj4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGRpc3BsYXlWYWx1ZSQgPSB0aGlzLl9kaXNwbGF5VmFsdWUucGlwZShmaWx0ZXJNYXliZSgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgY29uZmlnJDogT2JzZXJ2YWJsZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc+ID0gdGhpcy5kaXNwbGF5VmFsdWUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB7XG4gICAgICBjb25zdCBjb25maWc6IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyA9IHtcbiAgICAgICAgLi4ueC5kaXNwbGF5LFxuICAgICAgICBwcm92aWRlcnM6IG1lcmdlSW50b0FycmF5KFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcHJvdmlkZTogREJYX1NFQVJDSEFCTEVfRklFTERfQ09NUE9ORU5UX0RBVEFfVE9LRU4sXG4gICAgICAgICAgICAgIHVzZVZhbHVlOiB4XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICB4LmRpc3BsYXkucHJvdmlkZXJzXG4gICAgICAgIClcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfSlcbiAgKTtcblxuICByZWFkb25seSBhbmNob3IkID0gdGhpcy5kaXNwbGF5VmFsdWUkLnBpcGUobWFwKCh4KSA9PiB4LmFuY2hvcikpO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkaXNwbGF5VmFsdWUoZGlzcGxheVZhbHVlOiBDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VD4pIHtcbiAgICB0aGlzLl9kaXNwbGF5VmFsdWUubmV4dChkaXNwbGF5VmFsdWUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzcGxheVZhbHVlLmNvbXBsZXRlKCk7XG4gIH1cbn1cblxuLy8gTUFSSzogRGVmYXVsdFxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3REYnhTZWFyY2hhYmxlRmllbGREaXNwbGF5RGlyZWN0aXZlPFQ+IHtcbiAgY29uc3RydWN0b3IoQEluamVjdChEQlhfU0VBUkNIQUJMRV9GSUVMRF9DT01QT05FTlRfREFUQV9UT0tFTikgcmVhZG9ubHkgZGlzcGxheVZhbHVlOiBDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VD4pIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1kZWZhdWx0LXNlYXJjaGFibGUtZmllbGQtZGlzcGxheScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRieC1kZWZhdWx0LXNlYXJjaGFibGUtZmllbGQtZGlzcGxheVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJkYngtY2hpcC1sYWJlbFwiPnt7IGRpc3BsYXlWYWx1ZS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZGJ4LWNoaXAtc3VibGFiZWxcIiAqbmdJZj1cImRpc3BsYXlWYWx1ZS5zdWJsYWJlbFwiPih7eyBkaXNwbGF5VmFsdWUuc3VibGFiZWwgfX0pPC9zcGFuPlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieERlZmF1bHRTZWFyY2hhYmxlRmllbGREaXNwbGF5Q29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3REYnhTZWFyY2hhYmxlRmllbGREaXNwbGF5RGlyZWN0aXZlPFQ+IHt9XG4iXX0=
@@ -27,19 +27,19 @@ export class AbstractDbxSearchableValueFieldDirective extends FieldType {
27
27
  this._displayHashMap = new BehaviorSubject(new Map());
28
28
  this.inputValue$ = this.inputCtrl.valueChanges.pipe(startWith(this.inputCtrl.value));
29
29
  this.inputValueString$ = this.inputValue$.pipe(debounceTime(200), distinctUntilChanged());
30
- this.searchResultsState$ = this.inputValueString$.pipe(switchMap((text) => ((text || this.searchOnEmptyText) ? this.search(text ?? '') : of([])).pipe(switchMap((x) => this.loadDisplayValuesForFieldValues(x)),
30
+ this.searchResultsState$ = this.inputValueString$.pipe(switchMap((text) => (text || this.searchOnEmptyText ? this.search(text ?? '') : of([])).pipe(switchMap((x) => this.loadDisplayValuesForFieldValues(x)),
31
31
  // Return begin loading to setup the loading state.
32
32
  startWithBeginLoading())), shareReplay(1));
33
33
  this.singleValueSyncSubscription = new SubscriptionObject();
34
34
  this.searchContext = new LoadingStateContextInstance({ obs: this.searchResultsState$, showLoadingOnNoValue: false });
35
- this.searchResults$ = this.searchResultsState$.pipe(map(x => x?.value ?? []));
36
- this._formControlValue = this.formControl$.pipe(switchMap(control => control.valueChanges.pipe(startWith(control.value), shareReplay(1))));
35
+ this.searchResults$ = this.searchResultsState$.pipe(map((x) => x?.value ?? []));
36
+ this._formControlValue = this.formControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value), shareReplay(1))));
37
37
  this.values$ = this._formControlValue.pipe(map(convertMaybeToArray), shareReplay(1));
38
38
  this.displayValuesState$ = this.values$.pipe(distinctUntilChanged(), switchMap((values) => this.loadDisplayValuesForValues(values)), shareReplay(1));
39
- this.displayValues$ = this.displayValuesState$.pipe(map(x => x?.value ?? []));
39
+ this.displayValues$ = this.displayValuesState$.pipe(map((x) => x?.value ?? []));
40
40
  }
41
41
  get name() {
42
- return this.field.name ?? (camelCase(this.label ?? this.key));
42
+ return this.field.name ?? camelCase(this.label ?? this.key);
43
43
  }
44
44
  get label() {
45
45
  return this.field.templateOptions?.label;
@@ -94,20 +94,18 @@ export class AbstractDbxSearchableValueFieldDirective extends FieldType {
94
94
  }
95
95
  getDisplayValuesForFieldValues(values) {
96
96
  return this._displayHashMap.pipe(mergeMap((displayMap) => {
97
- const mappingResult = values
98
- .map(x => [x, this.hashForValue(x.value)])
99
- .map(([x, hash], i) => [i, hash, x, displayMap.get(hash)]);
100
- const hasDisplay = mappingResult.filter(x => Boolean(x[3]));
101
- const needsDisplay = mappingResult.filter(x => !x[3]);
97
+ const mappingResult = values.map((x) => [x, this.hashForValue(x.value)]).map(([x, hash], i) => [i, hash, x, displayMap.get(hash)]);
98
+ const hasDisplay = mappingResult.filter((x) => Boolean(x[3]));
99
+ const needsDisplay = mappingResult.filter((x) => !x[3]);
102
100
  let obs;
103
101
  if (needsDisplay.length > 0) {
104
102
  // Go get the display value.
105
- const displayValuesObs = this.displayForValue(needsDisplay.map(x => x[2]));
103
+ const displayValuesObs = this.displayForValue(needsDisplay.map((x) => x[2]));
106
104
  const defaultDisplay = mergeDbxInjectionComponentConfigs([this.defaultDisplay, this.display]);
107
105
  const anchorForValue = this.useAnchor && this.anchorForValue;
108
106
  obs = displayValuesObs.pipe(first(), map((displayResults) => {
109
107
  // Assign the default component classes to complete configuration.
110
- displayResults.forEach(x => {
108
+ displayResults.forEach((x) => {
111
109
  if (!x.display) {
112
110
  x.display = defaultDisplay;
113
111
  }
@@ -119,19 +117,19 @@ export class AbstractDbxSearchableValueFieldDirective extends FieldType {
119
117
  }
120
118
  });
121
119
  // Create a map to re-join values later.
122
- const displayResultsMapping = displayResults.map(x => [x, this.hashForValue(x.value)]);
120
+ const displayResultsMapping = displayResults.map((x) => [x, this.hashForValue(x.value)]);
123
121
  const valueIndexHashMap = new Map(displayResultsMapping.map(([x, hash]) => [hash, x]));
124
122
  // Update displayMap. No need to push an update notification.
125
123
  displayResultsMapping.forEach(([x, hash]) => displayMap.set(hash, x));
126
124
  // Zip values back together.
127
- const newDisplayValues = mappingResult.map(x => x[3] ?? valueIndexHashMap.get(x[1]));
125
+ const newDisplayValues = mappingResult.map((x) => x[3] ?? valueIndexHashMap.get(x[1]));
128
126
  // Return display values.
129
127
  return newDisplayValues;
130
128
  }));
131
129
  }
132
130
  else {
133
131
  // If all display values are hashed return that.
134
- obs = of(hasDisplay.map(x => x[3]));
132
+ obs = of(hasDisplay.map((x) => x[3]));
135
133
  }
136
134
  return obs;
137
135
  }));
@@ -182,7 +180,7 @@ export class AbstractDbxSearchableValueFieldDirective extends FieldType {
182
180
  return;
183
181
  }
184
182
  if (text) {
185
- const value = (this.convertStringValue) ? this.convertStringValue(text) : text;
183
+ const value = this.convertStringValue ? this.convertStringValue(text) : text;
186
184
  this.addValue(value);
187
185
  }
188
186
  }
@@ -212,10 +210,10 @@ export class AbstractDbxSearchableValueFieldDirective extends FieldType {
212
210
  let values;
213
211
  if (this.hashForValue) {
214
212
  const hashToFilter = this.hashForValue(value);
215
- values = this.values.filter(x => this.hashForValue(x) !== hashToFilter);
213
+ values = this.values.filter((x) => this.hashForValue(x) !== hashToFilter);
216
214
  }
217
215
  else {
218
- values = this.values.filter(x => x !== value);
216
+ values = this.values.filter((x) => x !== value);
219
217
  }
220
218
  this.setValues(values);
221
219
  }
@@ -231,11 +229,11 @@ export class AbstractDbxSearchableValueFieldDirective extends FieldType {
231
229
  }
232
230
  // MARK: Internal
233
231
  _getValueOnFormControl(valueOnFormControl) {
234
- const value = (valueOnFormControl != null) ? [].concat(valueOnFormControl) : []; // Always return an array.
232
+ const value = valueOnFormControl != null ? [].concat(valueOnFormControl) : []; // Always return an array.
235
233
  return value;
236
234
  }
237
235
  _setValueOnFormControl(values) {
238
- const value = (this.multiSelect) ? values : lastValue(values); // pick last value, as the last value added is the newest value.
236
+ const value = this.multiSelect ? values : lastValue(values); // pick last value, as the last value added is the newest value.
239
237
  this.formControl.setValue(value);
240
238
  this.formControl.markAsDirty();
241
239
  this.formControl.markAsTouched();
@@ -249,4 +247,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
249
247
  type: ViewChild,
250
248
  args: ['textInput']
251
249
  }] } });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS5maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vc2VhcmNoYWJsZS9zZWFyY2hhYmxlLmZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBK0IsaUNBQWlDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFnQiwyQkFBMkIsRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakosT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQW1CLFdBQVcsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFLcEosT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0csT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFnRXhDOzs7O0dBSUc7QUFFSCxNQUFNLE9BQWdCLHdDQUNwQixTQUFRLFNBQThCO0lBMk10QyxZQUFxQixLQUF3QjtRQUMzQyxLQUFLLEVBQUUsQ0FBQztRQURXLFVBQUss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Y29udmVydE1heWJlVG9BcnJheSwgZmluZFVuaXF1ZSwgbGFzdFZhbHVlLCBQcmltYXRpdmVLZXkgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZywgbWVyZ2VEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWdzIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgZmlsdGVyTWF5YmUsIFN1YnNjcmlwdGlvbk9iamVjdCwgTG9hZGluZ1N0YXRlLCBMb2FkaW5nU3RhdGVDb250ZXh0SW5zdGFuY2UsIHN1Y2Nlc3NSZXN1bHQsIHN0YXJ0V2l0aEJlZ2luTG9hZGluZyB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcsIEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbCc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaXJzdCwgbWFwLCBtZXJnZU1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCBCZWhhdmlvclN1YmplY3QsIG9mLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBTZWFyY2hhYmxlVmFsdWVGaWVsZEhhc2hGbiwgU2VhcmNoYWJsZVZhbHVlRmllbGRTdHJpbmdTZWFyY2hGbixcbiAgU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5Rm4sIFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlLCBTZWFyY2hhYmxlVmFsdWVGaWVsZFZhbHVlLCBTZWFyY2hhYmxlVmFsdWVGaWVsZEFuY2hvckZuLCBDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVcbn0gZnJvbSAnLi9zZWFyY2hhYmxlJztcbmltcG9ydCB7IERieERlZmF1bHRTZWFyY2hhYmxlRmllbGREaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2hhYmxlLmZpZWxkLmF1dG9jb21wbGV0ZS5pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjYW1lbENhc2UgfSBmcm9tICdjaGFuZ2UtY2FzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nVmFsdWVGaWVsZHNGaWVsZENvbmZpZyB7XG4gIC8qKlxuICAgKiBDdXN0b20gaW5wdXQgdmFsaWRhdG9ycy5cbiAgICovXG4gIHRleHRJbnB1dFZhbGlkYXRvcj86IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdHJpbmdWYWx1ZUZpZWxkc0Zvcm1seUZpZWxkQ29uZmlnIGV4dGVuZHMgU3RyaW5nVmFsdWVGaWVsZHNGaWVsZENvbmZpZywgRm9ybWx5RmllbGRDb25maWcgeyB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoYWJsZVZhbHVlRmllbGRzRmllbGRDb25maWc8VCwgTSA9IHVua25vd24sIEggZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXk+IGV4dGVuZHMgU3RyaW5nVmFsdWVGaWVsZHNGaWVsZENvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBhbGxvdyBzdHJpbmcgdmFsdWVzIHRvIGJlIHVzZWQgZGlyZWN0bHksIG9yIGlmIHZhbHVlcyBjYW4gb25seSBiZSBjaG9zZW4gZnJvbSBzZWFyY2hpbmcuXG4gICAqL1xuICBhbGxvd1N0cmluZ1ZhbHVlcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBjb252ZXJzaW9uIGZ1bmN0aW9uLiBJZiBwcm92aWRlZCwgYWxsb3dTdHJpbmdWYWx1ZXMgaXMgY29uc2lkZXJlZCB0cnVlLlxuICAgKi9cbiAgY29udmVydFN0cmluZ1ZhbHVlPzogKHRleHQ6IHN0cmluZykgPT4gVDtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIGhhc2hpbmcgZGlzcGxheSB2YWx1ZXMgYW5kIG9taXR0aW5nIHJlcGVhdCB2YWx1ZXMuXG4gICAqXG4gICAqIElmIGhhc2hGb3JWYWx1ZSBpcyBub3QgcHJvdmlkZWQsIHRoZSB2YWx1ZSdzIHZhbHVlIHdpbGwgYmUgdXNlZCBhcyBpcy5cbiAgICovXG4gIGhhc2hGb3JWYWx1ZT86IFNlYXJjaGFibGVWYWx1ZUZpZWxkSGFzaEZuPFQsIEg+O1xuICAvKipcbiAgICogUGVyZm9ybXMgYSBzZWFyY2guXG4gICAqL1xuICBzZWFyY2g6IFNlYXJjaGFibGVWYWx1ZUZpZWxkU3RyaW5nU2VhcmNoRm48VCwgTT47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBhbGxvdyBzZWFyY2hlcyBvbiBlbXB0eSB0ZXh0LiBJcyBmYWxzZSBieSBkZWZhdWx0LlxuICAgKi9cbiAgc2VhcmNoT25FbXB0eVRleHQ/OiBib29sZWFuO1xuICAvKipcbiAgICogRGVmYXVsdCBpbmplY3RlZCBjb25maWcgdG8gdXNlIGZvciBkaXNwbGF5IHZhbHVlcy5cbiAgICovXG4gIGRpc3BsYXk/OiBQYXJ0aWFsPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZz47XG4gIC8qKlxuICAgKiBVc2VkIGZvciBidWlsZGluZyBhIGRpc3BsYXkgdmFsdWUgZ2l2ZW4gdGhlIGlucHV0LlxuICAgKi9cbiAgZGlzcGxheUZvclZhbHVlOiBTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlGbjxULCBNPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSB0aGUgYW5jaG9yIGZpZWxkIG9uIHZhbHVlIGVsZW1lbnRzLlxuICAgKlxuICAgKiBUaGlzIGhhcyBubyBkZWZhdWx0IGVmZmVjdCBpZiBhIGNvbXBvbmVudCBjbGFzcyBpcyBwcm92aWRlZC5cbiAgICovXG4gIHVzZUFuY2hvcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBVc2VkIGZvciByZXRyaWV2aW5nIGFuIGFuY2hvciB2YWx1ZSBmb3IgdmFsdWVzIHRoYXQgaGF2ZSBubyBhbmNob3IgdmFsdWUgc2V0LlxuICAgKlxuICAgKiBPbmx5IHVzZWQgd2hlbiB1c2VBbmNob3IgaXMgdHJ1ZS5cbiAgICovXG4gIGFuY2hvckZvclZhbHVlPzogU2VhcmNoYWJsZVZhbHVlRmllbGRBbmNob3JGbjxULCBNPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgXCJDbGVhclwiIGluIHRoZSBhdXRjb21wbGV0ZSBsaXN0LlxuICAgKi9cbiAgc2hvd0NsZWFyVmFsdWU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaGFibGVWYWx1ZUZpZWxkc0Zvcm1seUZpZWxkQ29uZmlnPFQsIE0gPSB1bmtub3duLCBIIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5PiBleHRlbmRzIEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgc2VhcmNoYWJsZUZpZWxkOiBTZWFyY2hhYmxlVmFsdWVGaWVsZHNGaWVsZENvbmZpZzxULCBNLCBIPjtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBzZWFyY2hhYmxlIGZpZWxkIHRoYXQgcHJvdmlkZXMgYSBmZWF0dXJlIGZvciBzZWFyY2hpbmcgZm9yIHZhbHVlcywgYW5kIGZvciBkaXNwbGF5aW5nIHZhbHVlcyB1c2luZyBPYnNlcnZhYmxlcy5cbiAqXG4gKiBEaXNwbGF5IHZhbHVlcyBhcmUgY2FjaGVkIGZvciBwZXJmb3JtYW5jZS5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3REYnhTZWFyY2hhYmxlVmFsdWVGaWVsZERpcmVjdGl2ZTxULCBNID0gdW5rbm93biwgSCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgQyBleHRlbmRzIFNlYXJjaGFibGVWYWx1ZUZpZWxkc0Zvcm1seUZpZWxkQ29uZmlnPFQsIE0sIEg+ID0gU2VhcmNoYWJsZVZhbHVlRmllbGRzRm9ybWx5RmllbGRDb25maWc8VCwgTSwgSD4+XG4gIGV4dGVuZHMgRmllbGRUeXBlPEMgJiBGaWVsZFR5cGVDb25maWc+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzZXQvZ2V0IHZhbHVlcyBhcyBhbiBhcnJheS5cbiAgICovXG4gIG11bHRpU2VsZWN0ID0gdHJ1ZTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgb3ZlcnJpZGUgc2V0IGJ5IHRoZSBwYXJlbnQgY2xhc3MgZm9yIHBpY2tpbmcgYSBkZWZhdWx0IGRpc3BsYXkgZm9yIHRoaXMgZGlyZWN0aXZlLlxuICAgKi9cbiAgZGVmYXVsdERpc3BsYXk/OiBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc7XG5cbiAgQFZpZXdDaGlsZCgndGV4dElucHV0JylcbiAgdGV4dElucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICByZWFkb25seSBpbnB1dEN0cmwgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gIHByaXZhdGUgX2Zvcm1Db250cm9sT2JzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxBYnN0cmFjdENvbnRyb2w+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBmb3JtQ29udHJvbCQgPSB0aGlzLl9mb3JtQ29udHJvbE9icy5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHByaXZhdGUgX2Rpc3BsYXlIYXNoTWFwID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXA8SCwgQ29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+Pj4obmV3IE1hcCgpKTtcblxuICByZWFkb25seSBpbnB1dFZhbHVlJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5pbnB1dEN0cmwudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuaW5wdXRDdHJsLnZhbHVlKSk7XG4gIHJlYWRvbmx5IGlucHV0VmFsdWVTdHJpbmckOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmlucHV0VmFsdWUkLnBpcGUoXG4gICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICApO1xuXG4gIHJlYWRvbmx5IHNlYXJjaFJlc3VsdHNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPENvbmZpZ3VyZWRTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxULCBNPltdPj4gPSB0aGlzLmlucHV0VmFsdWVTdHJpbmckLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh0ZXh0KSA9PiAoKHRleHQgfHwgdGhpcy5zZWFyY2hPbkVtcHR5VGV4dCkgPyB0aGlzLnNlYXJjaCh0ZXh0ID8/ICcnKSA6IG9mKFtdKSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoeCkgPT4gdGhpcy5sb2FkRGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHgpKSxcbiAgICAgIC8vIFJldHVybiBiZWdpbiBsb2FkaW5nIHRvIHNldHVwIHRoZSBsb2FkaW5nIHN0YXRlLlxuICAgICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKClcbiAgICApKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNpbmdsZVZhbHVlU3luY1N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICByZWFkb25seSBzZWFyY2hDb250ZXh0ID0gbmV3IExvYWRpbmdTdGF0ZUNvbnRleHRJbnN0YW5jZSh7IG9iczogdGhpcy5zZWFyY2hSZXN1bHRzU3RhdGUkLCBzaG93TG9hZGluZ09uTm9WYWx1ZTogZmFsc2UgfSk7XG5cbiAgcmVhZG9ubHkgc2VhcmNoUmVzdWx0cyQ6IE9ic2VydmFibGU8Q29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+W10+ID0gdGhpcy5zZWFyY2hSZXN1bHRzU3RhdGUkLnBpcGUoXG4gICAgbWFwKHggPT4geD8udmFsdWUgPz8gW10pLFxuICApO1xuXG4gIHJlYWRvbmx5IF9mb3JtQ29udHJvbFZhbHVlOiBPYnNlcnZhYmxlPFQgfCBUW10+ID0gdGhpcy5mb3JtQ29udHJvbCQucGlwZShcbiAgICBzd2l0Y2hNYXAoY29udHJvbCA9PiBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKGNvbnRyb2wudmFsdWUpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApKVxuICApO1xuXG4gIHJlYWRvbmx5IHZhbHVlcyQ6IE9ic2VydmFibGU8VFtdPiA9IHRoaXMuX2Zvcm1Db250cm9sVmFsdWUucGlwZShcbiAgICBtYXAoY29udmVydE1heWJlVG9BcnJheSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkaXNwbGF5VmFsdWVzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5bXT4+ID0gdGhpcy52YWx1ZXMkLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzd2l0Y2hNYXAoKHZhbHVlczogVFtdKSA9PiB0aGlzLmxvYWREaXNwbGF5VmFsdWVzRm9yVmFsdWVzKHZhbHVlcykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGlzcGxheVZhbHVlcyQ6IE9ic2VydmFibGU8Q29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+W10+ID0gdGhpcy5kaXNwbGF5VmFsdWVzU3RhdGUkLnBpcGUoXG4gICAgbWFwKHggPT4geD8udmFsdWUgPz8gW10pXG4gICk7XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5uYW1lID8/IChjYW1lbENhc2UodGhpcy5sYWJlbCA/PyB0aGlzLmtleSBhcyBzdHJpbmcpKTtcbiAgfVxuXG4gIGdldCBsYWJlbCgpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsO1xuICB9XG5cbiAgZ2V0IHJlYWRvbmx5KCk6IE1heWJlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC50ZW1wbGF0ZU9wdGlvbnM/LnJlYWRvbmx5O1xuICB9XG5cbiAgZ2V0IHNlYXJjaGFibGVGaWVsZCgpOiBTZWFyY2hhYmxlVmFsdWVGaWVsZHNGaWVsZENvbmZpZzxULCBNLCBIPiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQuc2VhcmNoYWJsZUZpZWxkO1xuICB9XG5cbiAgZ2V0IHNlYXJjaE9uRW1wdHlUZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGFibGVGaWVsZC5zZWFyY2hPbkVtcHR5VGV4dCA/PyBmYWxzZTtcbiAgfVxuXG4gIGdldCBhdXRvY29tcGxldGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuZmllbGQudGVtcGxhdGVPcHRpb25zPy5hdHRyaWJ1dGVzPy5bJ2F1dG9jb21wbGV0ZSddID8/IHRoaXMua2V5KSBhcyBzdHJpbmc7XG4gIH1cblxuICBnZXQgaGFzaEZvclZhbHVlKCk6IFNlYXJjaGFibGVWYWx1ZUZpZWxkSGFzaEZuPFQsIEg+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hhYmxlRmllbGQuaGFzaEZvclZhbHVlID8/ICgoeCkgPT4geCBhcyB1bmtub3duIGFzIEgpO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlGb3JWYWx1ZSgpOiBTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlGbjxULCBNPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoYWJsZUZpZWxkLmRpc3BsYXlGb3JWYWx1ZTtcbiAgfVxuXG4gIGdldCB1c2VBbmNob3IoKTogTWF5YmU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGFibGVGaWVsZC51c2VBbmNob3I7XG4gIH1cblxuICBnZXQgYW5jaG9yRm9yVmFsdWUoKTogTWF5YmU8U2VhcmNoYWJsZVZhbHVlRmllbGRBbmNob3JGbjxULCBNPj4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGFibGVGaWVsZC5hbmNob3JGb3JWYWx1ZTtcbiAgfVxuXG4gIGdldCBkaXNwbGF5KCk6IE1heWJlPFBhcnRpYWw8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPj4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGFibGVGaWVsZC5kaXNwbGF5O1xuICB9XG5cbiAgZ2V0IHNlYXJjaCgpOiBTZWFyY2hhYmxlVmFsdWVGaWVsZFN0cmluZ1NlYXJjaEZuPFQsIE0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hhYmxlRmllbGQuc2VhcmNoO1xuICB9XG5cbiAgZ2V0IHZhbHVlcygpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLl9nZXRWYWx1ZU9uRm9ybUNvbnRyb2wodGhpcy5mb3JtQ29udHJvbC52YWx1ZSkgPz8gW107XG4gIH1cblxuICBnZXQgYWxsb3dTdHJpbmdWYWx1ZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoYWJsZUZpZWxkLmFsbG93U3RyaW5nVmFsdWVzID8/IEJvb2xlYW4odGhpcy5jb252ZXJ0U3RyaW5nVmFsdWUpO1xuICB9XG5cbiAgZ2V0IGNvbnZlcnRTdHJpbmdWYWx1ZSgpOiBNYXliZTwodGV4dDogc3RyaW5nKSA9PiBUPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoYWJsZUZpZWxkLmNvbnZlcnRTdHJpbmdWYWx1ZTtcbiAgfVxuXG4gIGdldCBzaG93Q2xlYXJWYWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hhYmxlRmllbGQuc2hvd0NsZWFyVmFsdWUgPz8gdHJ1ZTtcbiAgfVxuXG4gIGxvYWREaXNwbGF5VmFsdWVzRm9yVmFsdWVzKHZhbHVlczogVFtdKTogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8Q29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+W10+PiB7XG4gICAgcmV0dXJuIHRoaXMubG9hZERpc3BsYXlWYWx1ZXNGb3JGaWVsZFZhbHVlcyh2YWx1ZXMubWFwKCh2YWx1ZSkgPT4gKHsgdmFsdWUgfSkpKTtcbiAgfVxuXG4gIGxvYWREaXNwbGF5VmFsdWVzRm9yRmllbGRWYWx1ZXModmFsdWVzOiBTZWFyY2hhYmxlVmFsdWVGaWVsZFZhbHVlPFQsIE0+W10pOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5bXT4+IHtcbiAgICByZXR1cm4gdGhpcy5nZXREaXNwbGF5VmFsdWVzRm9yRmllbGRWYWx1ZXModmFsdWVzKS5waXBlKFxuICAgICAgbWFwKChkaXNwbGF5VmFsdWVzOiBDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5bXSkgPT4gc3VjY2Vzc1Jlc3VsdChkaXNwbGF5VmFsdWVzKSksXG4gICAgICBzdGFydFdpdGhCZWdpbkxvYWRpbmcoKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIGdldERpc3BsYXlWYWx1ZXNGb3JGaWVsZFZhbHVlcyh2YWx1ZXM6IFNlYXJjaGFibGVWYWx1ZUZpZWxkVmFsdWU8VCwgTT5bXSk6IE9ic2VydmFibGU8Q29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+W10+IHtcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheUhhc2hNYXAucGlwZShcbiAgICAgIG1lcmdlTWFwKChkaXNwbGF5TWFwKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcHBpbmdSZXN1bHQgPSB2YWx1ZXNcbiAgICAgICAgICAubWFwKHggPT4gW3gsIHRoaXMuaGFzaEZvclZhbHVlKHgudmFsdWUpXSBhcyBbU2VhcmNoYWJsZVZhbHVlRmllbGRWYWx1ZTxULCBNPiwgSF0pXG4gICAgICAgICAgLm1hcCgoW3gsIGhhc2hdLCBpKSA9PiBbaSwgaGFzaCwgeCwgZGlzcGxheU1hcC5nZXQoaGFzaCldIGFzIFtudW1iZXIsIEgsIFNlYXJjaGFibGVWYWx1ZUZpZWxkVmFsdWU8VCwgTT4sIENvbmZpZ3VyZWRTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxULCBNPl0pO1xuXG4gICAgICAgIGNvbnN0IGhhc0Rpc3BsYXkgPSBtYXBwaW5nUmVzdWx0LmZpbHRlcih4ID0+IEJvb2xlYW4oeFszXSkpO1xuICAgICAgICBjb25zdCBuZWVkc0Rpc3BsYXkgPSBtYXBwaW5nUmVzdWx0LmZpbHRlcih4ID0+ICF4WzNdKTtcbiAgICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5bXT47XG5cbiAgICAgICAgaWYgKG5lZWRzRGlzcGxheS5sZW5ndGggPiAwKSB7XG5cbiAgICAgICAgICAvLyBHbyBnZXQgdGhlIGRpc3BsYXkgdmFsdWUuXG4gICAgICAgICAgY29uc3QgZGlzcGxheVZhbHVlc09icyA9IHRoaXMuZGlzcGxheUZvclZhbHVlKG5lZWRzRGlzcGxheS5tYXAoeCA9PiB4WzJdKSk7XG4gICAgICAgICAgY29uc3QgZGVmYXVsdERpc3BsYXkgPSBtZXJnZURieEluamVjdGlvbkNvbXBvbmVudENvbmZpZ3MoW3RoaXMuZGVmYXVsdERpc3BsYXksIHRoaXMuZGlzcGxheV0pO1xuICAgICAgICAgIGNvbnN0IGFuY2hvckZvclZhbHVlID0gdGhpcy51c2VBbmNob3IgJiYgdGhpcy5hbmNob3JGb3JWYWx1ZTtcblxuICAgICAgICAgIG9icyA9IGRpc3BsYXlWYWx1ZXNPYnMucGlwZShcbiAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICBtYXAoKGRpc3BsYXlSZXN1bHRzKSA9PiB7XG5cbiAgICAgICAgICAgICAgLy8gQXNzaWduIHRoZSBkZWZhdWx0IGNvbXBvbmVudCBjbGFzc2VzIHRvIGNvbXBsZXRlIGNvbmZpZ3VyYXRpb24uXG4gICAgICAgICAgICAgIGRpc3BsYXlSZXN1bHRzLmZvckVhY2goeCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF4LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgIHguZGlzcGxheSA9IGRlZmF1bHREaXNwbGF5O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB4LmRpc3BsYXkgPSBtZXJnZURieEluamVjdGlvbkNvbXBvbmVudENvbmZpZ3MoW2RlZmF1bHREaXNwbGF5LCB4LmRpc3BsYXldKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXguYW5jaG9yICYmIGFuY2hvckZvclZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICB4LmFuY2hvciA9IGFuY2hvckZvclZhbHVlKHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbWFwIHRvIHJlLWpvaW4gdmFsdWVzIGxhdGVyLlxuICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5UmVzdWx0c01hcHBpbmc6IFtDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT4sIEhdW10gPSAoZGlzcGxheVJlc3VsdHMgYXMgQ29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+W10pLm1hcCh4ID0+IFt4LCB0aGlzLmhhc2hGb3JWYWx1ZSh4LnZhbHVlKV0pO1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZUluZGV4SGFzaE1hcCA9IG5ldyBNYXAoZGlzcGxheVJlc3VsdHNNYXBwaW5nLm1hcCgoW3gsIGhhc2hdKSA9PiBbaGFzaCwgeF0pKTtcblxuICAgICAgICAgICAgICAvLyBVcGRhdGUgZGlzcGxheU1hcC4gTm8gbmVlZCB0byBwdXNoIGFuIHVwZGF0ZSBub3RpZmljYXRpb24uXG4gICAgICAgICAgICAgIGRpc3BsYXlSZXN1bHRzTWFwcGluZy5mb3JFYWNoKChbeCwgaGFzaF0pID0+IGRpc3BsYXlNYXAuc2V0KGhhc2gsIHgpKTtcblxuICAgICAgICAgICAgICAvLyBaaXAgdmFsdWVzIGJhY2sgdG9nZXRoZXIuXG4gICAgICAgICAgICAgIGNvbnN0IG5ld0Rpc3BsYXlWYWx1ZXMgPSBtYXBwaW5nUmVzdWx0Lm1hcCh4ID0+IHhbM10gPz8gdmFsdWVJbmRleEhhc2hNYXAuZ2V0KHhbMV0pKTtcblxuICAgICAgICAgICAgICAvLyBSZXR1cm4gZGlzcGxheSB2YWx1ZXMuXG4gICAgICAgICAgICAgIHJldHVybiBuZXdEaXNwbGF5VmFsdWVzO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgLy8gSWYgYWxsIGRpc3BsYXkgdmFsdWVzIGFyZSBoYXNoZWQgcmV0dXJuIHRoYXQuXG4gICAgICAgICAgb2JzID0gb2YoaGFzRGlzcGxheS5tYXAoeCA9PiB4WzNdKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2JzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2Zvcm1Db250cm9sT2JzLm5leHQodGhpcy5mb3JtQ29udHJvbCk7XG5cbiAgICBpZiAodGhpcy5zZWFyY2hhYmxlRmllbGQudGV4dElucHV0VmFsaWRhdG9yKSB7XG4gICAgICB0aGlzLmlucHV0Q3RybC5zZXRWYWxpZGF0b3JzKHRoaXMuc2VhcmNoYWJsZUZpZWxkLnRleHRJbnB1dFZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmRlZmF1bHREaXNwbGF5Py5jb21wb25lbnRDbGFzcykge1xuICAgICAgdGhpcy5kZWZhdWx0RGlzcGxheSA9IHtcbiAgICAgICAgLi4udGhpcy5kZWZhdWx0RGlzcGxheSxcbiAgICAgICAgY29tcG9uZW50Q2xhc3M6IERieERlZmF1bHRTZWFyY2hhYmxlRmllbGREaXNwbGF5Q29tcG9uZW50XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLm11bHRpU2VsZWN0ID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5zaW5nbGVWYWx1ZVN5bmNTdWJzY3JpcHRpb24uc3Vic2NyaXB0aW9uID0gdGhpcy5kaXNwbGF5VmFsdWVzJC5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgICAgaWYgKHhbMF0pIHtcbiAgICAgICAgICB0aGlzLl9zeW5jU2luZ2xlVmFsdWUoeFswXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5fZGlzcGxheUhhc2hNYXAuY29tcGxldGUoKTtcbiAgICB0aGlzLl9mb3JtQ29udHJvbE9icy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuc2VhcmNoQ29udGV4dC5kZXN0cm95KCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCB0byBzeW5jIHRoZSBpbnB1dCBjb250cm9sIHdpdGggdGhlIHNlbGVjdGVkIHZhbHVlLlxuICAgKlxuICAgKiBPbmx5IHVzZWQgd2hlbiBtdWx0aVNlbGVjdCBpcyBmYWxzZS5cbiAgICovXG4gIHByb3RlY3RlZCBfc3luY1NpbmdsZVZhbHVlKHZhbHVlOiBTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPik6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRDdHJsLnNldFZhbHVlKHZhbHVlLmxhYmVsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfYWRkV2l0aFRleHRWYWx1ZSh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2VhcmNoYWJsZUZpZWxkLmFsbG93U3RyaW5nVmFsdWVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRleHQpIHtcbiAgICAgIHRleHQgPSAodGV4dCB8fCAnJykudHJpbSgpO1xuICAgICAgdGhpcy5pbnB1dEN0cmwuc2V0VmFsdWUodGV4dC50cmltKCkpO1xuICAgIH1cblxuICAgIC8vIGNvbnNvbGUubG9nKCdBZGQ6ICcsIHRleHQsIHRoaXMuaW5wdXRDdHJsLnZhbGlkKTtcblxuICAgIGlmICghdGhpcy5pbnB1dEN0cmwudmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGV4dCkge1xuICAgICAgY29uc3QgdmFsdWUgPSAodGhpcy5jb252ZXJ0U3RyaW5nVmFsdWUpID8gdGhpcy5jb252ZXJ0U3RyaW5nVmFsdWUodGV4dCkgOiB0ZXh0IGFzIHVua25vd24gYXMgVDtcbiAgICAgIHRoaXMuYWRkVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGFkZFdpdGhEaXNwbGF5VmFsdWUoZGlzcGxheVZhbHVlOiBTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPik6IHZvaWQge1xuICAgIHRoaXMuYWRkVmFsdWUoZGlzcGxheVZhbHVlLnZhbHVlKTtcbiAgfVxuXG4gIHJlbW92ZVdpdGhEaXNwbGF5VmFsdWUoZGlzcGxheVZhbHVlOiBTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPik6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlVmFsdWUoZGlzcGxheVZhbHVlLnZhbHVlKTtcbiAgfVxuXG4gIF90cnlBZGRDdXJyZW50SW5wdXRWYWx1ZSgpOiBib29sZWFuIHtcbiAgICBsZXQgYWRkZWRWYWx1ZSA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuYWxsb3dTdHJpbmdWYWx1ZXMpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5pbnB1dEN0cmwudmFsdWU7XG5cbiAgICAgIGlmICgodmFsdWUgfHwgJycpLnRyaW0oKSkge1xuICAgICAgICB0aGlzLl9hZGRXaXRoVGV4dFZhbHVlKHZhbHVlKTtcbiAgICAgICAgYWRkZWRWYWx1ZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFkZGVkVmFsdWU7XG4gIH1cblxuICBhZGRWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgIHRoaXMudGV4dElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB0aGlzLmlucHV0Q3RybC5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnNldFZhbHVlcyhbLi4udGhpcy52YWx1ZXMsIHZhbHVlXSk7XG4gIH1cblxuICByZW1vdmVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgIGxldCB2YWx1ZXM7XG5cbiAgICBpZiAodGhpcy5oYXNoRm9yVmFsdWUpIHtcbiAgICAgIGNvbnN0IGhhc2hUb0ZpbHRlciA9IHRoaXMuaGFzaEZvclZhbHVlKHZhbHVlKTtcbiAgICAgIHZhbHVlcyA9IHRoaXMudmFsdWVzLmZpbHRlcih4ID0+IHRoaXMuaGFzaEZvclZhbHVlKHgpICE9PSBoYXNoVG9GaWx0ZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZXMgPSB0aGlzLnZhbHVlcy5maWx0ZXIoeCA9PiB4ICE9PSB2YWx1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRWYWx1ZXModmFsdWVzKTtcbiAgfVxuXG4gIGNsZWFyVmFsdWVzKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmFsdWVzKFtdKTtcbiAgfVxuXG4gIHNldFZhbHVlcyh2YWx1ZXM6IFRbXSk6IHZvaWQge1xuICAgIC8vIFVzZSB0byBmaWx0ZXIgbm9uLXVuaXF1ZSB2YWx1ZXMuXG4gICAgaWYgKHRoaXMuaGFzaEZvclZhbHVlKSB7XG4gICAgICB2YWx1ZXMgPSBmaW5kVW5pcXVlKHZhbHVlcywgdGhpcy5oYXNoRm9yVmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuX3NldFZhbHVlT25Gb3JtQ29udHJvbCh2YWx1ZXMpO1xuICB9XG5cbiAgLy8gTUFSSzogSW50ZXJuYWxcbiAgcHJvdGVjdGVkIF9nZXRWYWx1ZU9uRm9ybUNvbnRyb2wodmFsdWVPbkZvcm1Db250cm9sOiBBcnJheU9yVmFsdWU8VD4pOiBUW10ge1xuICAgIGNvbnN0IHZhbHVlID0gKHZhbHVlT25Gb3JtQ29udHJvbCAhPSBudWxsKSA/IChbXSBhcyBUW10pLmNvbmNhdCh2YWx1ZU9uRm9ybUNvbnRyb2wpIDogW107ICAvLyBBbHdheXMgcmV0dXJuIGFuIGFycmF5LlxuICAgIHJldHVybiB2YWx1ZSBhcyBUW107XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NldFZhbHVlT25Gb3JtQ29udHJvbCh2YWx1ZXM6IFRbXSk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gKHRoaXMubXVsdGlTZWxlY3QpID8gdmFsdWVzIDogbGFzdFZhbHVlKHZhbHVlcyk7ICAvLyBwaWNrIGxhc3QgdmFsdWUsIGFzIHRoZSBsYXN0IHZhbHVlIGFkZGVkIGlzIHRoZSBuZXdlc3QgdmFsdWUuXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICB9XG5cbn1cbiJdfQ==
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS5maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vc2VhcmNoYWJsZS9zZWFyY2hhYmxlLmZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBK0IsaUNBQWlDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFnQiwyQkFBMkIsRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakosT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQW1CLFdBQVcsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFcEosT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0csT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFnRXhDOzs7O0dBSUc7QUFFSCxNQUFNLE9BQWdCLHdDQUE2TSxTQUFRLFNBQThCO0lBd0x2USxZQUFxQixLQUF3QjtRQUMzQyxLQUFLLEVBQUUsQ0FBQztRQURXLFVBQUss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eWJlLCBjb252ZXJ0TWF5YmVUb0FycmF5LCBmaW5kVW5pcXVlLCBsYXN0VmFsdWUsIFByaW1hdGl2ZUtleSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnLCBtZXJnZURieEluamVjdGlvbkNvbXBvbmVudENvbmZpZ3MgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXJNYXliZSwgU3Vic2NyaXB0aW9uT2JqZWN0LCBMb2FkaW5nU3RhdGUsIExvYWRpbmdTdGF0ZUNvbnRleHRJbnN0YW5jZSwgc3VjY2Vzc1Jlc3VsdCwgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkVHlwZUNvbmZpZywgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L21hdGVyaWFsJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0LCBtYXAsIG1lcmdlTWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIEJlaGF2aW9yU3ViamVjdCwgb2YsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlYXJjaGFibGVWYWx1ZUZpZWxkSGFzaEZuLCBTZWFyY2hhYmxlVmFsdWVGaWVsZFN0cmluZ1NlYXJjaEZuLCBTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlGbiwgU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWUsIFNlYXJjaGFibGVWYWx1ZUZpZWxkVmFsdWUsIFNlYXJjaGFibGVWYWx1ZUZpZWxkQW5jaG9yRm4sIENvbmZpZ3VyZWRTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZSB9IGZyb20gJy4vc2VhcmNoYWJsZSc7XG5pbXBvcnQgeyBEYnhEZWZhdWx0U2VhcmNoYWJsZUZpZWxkRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoYWJsZS5maWVsZC5hdXRvY29tcGxldGUuaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgY2FtZWxDYXNlIH0gZnJvbSAnY2hhbmdlLWNhc2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ1ZhbHVlRmllbGRzRmllbGRDb25maWcge1xuICAvKipcbiAgICogQ3VzdG9tIGlucHV0IHZhbGlkYXRvcnMuXG4gICAqL1xuICB0ZXh0SW5wdXRWYWxpZGF0b3I/OiBWYWxpZGF0b3JGbiB8IFZhbGlkYXRvckZuW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nVmFsdWVGaWVsZHNGb3JtbHlGaWVsZENvbmZpZyBleHRlbmRzIFN0cmluZ1ZhbHVlRmllbGRzRmllbGRDb25maWcsIEZvcm1seUZpZWxkQ29uZmlnIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoYWJsZVZhbHVlRmllbGRzRmllbGRDb25maWc8VCwgTSA9IHVua25vd24sIEggZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXk+IGV4dGVuZHMgU3RyaW5nVmFsdWVGaWVsZHNGaWVsZENvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBhbGxvdyBzdHJpbmcgdmFsdWVzIHRvIGJlIHVzZWQgZGlyZWN0bHksIG9yIGlmIHZhbHVlcyBjYW4gb25seSBiZSBjaG9zZW4gZnJvbSBzZWFyY2hpbmcuXG4gICAqL1xuICBhbGxvd1N0cmluZ1ZhbHVlcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBjb252ZXJzaW9uIGZ1bmN0aW9uLiBJZiBwcm92aWRlZCwgYWxsb3dTdHJpbmdWYWx1ZXMgaXMgY29uc2lkZXJlZCB0cnVlLlxuICAgKi9cbiAgY29udmVydFN0cmluZ1ZhbHVlPzogKHRleHQ6IHN0cmluZykgPT4gVDtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIGhhc2hpbmcgZGlzcGxheSB2YWx1ZXMgYW5kIG9taXR0aW5nIHJlcGVhdCB2YWx1ZXMuXG4gICAqXG4gICAqIElmIGhhc2hGb3JWYWx1ZSBpcyBub3QgcHJvdmlkZWQsIHRoZSB2YWx1ZSdzIHZhbHVlIHdpbGwgYmUgdXNlZCBhcyBpcy5cbiAgICovXG4gIGhhc2hGb3JWYWx1ZT86IFNlYXJjaGFibGVWYWx1ZUZpZWxkSGFzaEZuPFQsIEg+O1xuICAvKipcbiAgICogUGVyZm9ybXMgYSBzZWFyY2guXG4gICAqL1xuICBzZWFyY2g6IFNlYXJjaGFibGVWYWx1ZUZpZWxkU3RyaW5nU2VhcmNoRm48VCwgTT47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBhbGxvdyBzZWFyY2hlcyBvbiBlbXB0eSB0ZXh0LiBJcyBmYWxzZSBieSBkZWZhdWx0LlxuICAgKi9cbiAgc2VhcmNoT25FbXB0eVRleHQ/OiBib29sZWFuO1xuICAvKipcbiAgICogRGVmYXVsdCBpbmplY3RlZCBjb25maWcgdG8gdXNlIGZvciBkaXNwbGF5IHZhbHVlcy5cbiAgICovXG4gIGRpc3BsYXk/OiBQYXJ0aWFsPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZz47XG4gIC8qKlxuICAgKiBVc2VkIGZvciBidWlsZGluZyBhIGRpc3BsYXkgdmFsdWUgZ2l2ZW4gdGhlIGlucHV0LlxuICAgKi9cbiAgZGlzcGxheUZvclZhbHVlOiBTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlGbjxULCBNPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSB0aGUgYW5jaG9yIGZpZWxkIG9uIHZhbHVlIGVsZW1lbnRzLlxuICAgKlxuICAgKiBUaGlzIGhhcyBubyBkZWZhdWx0IGVmZmVjdCBpZiBhIGNvbXBvbmVudCBjbGFzcyBpcyBwcm92aWRlZC5cbiAgICovXG4gIHVzZUFuY2hvcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBVc2VkIGZvciByZXRyaWV2aW5nIGFuIGFuY2hvciB2YWx1ZSBmb3IgdmFsdWVzIHRoYXQgaGF2ZSBubyBhbmNob3IgdmFsdWUgc2V0LlxuICAgKlxuICAgKiBPbmx5IHVzZWQgd2hlbiB1c2VBbmNob3IgaXMgdHJ1ZS5cbiAgICovXG4gIGFuY2hvckZvclZhbHVlPzogU2VhcmNoYWJsZVZhbHVlRmllbGRBbmNob3JGbjxULCBNPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgXCJDbGVhclwiIGluIHRoZSBhdXRjb21wbGV0ZSBsaXN0LlxuICAgKi9cbiAgc2hvd0NsZWFyVmFsdWU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaGFibGVWYWx1ZUZpZWxkc0Zvcm1seUZpZWxkQ29uZmlnPFQsIE0gPSB1bmtub3duLCBIIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5PiBleHRlbmRzIEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgc2VhcmNoYWJsZUZpZWxkOiBTZWFyY2hhYmxlVmFsdWVGaWVsZHNGaWVsZENvbmZpZzxULCBNLCBIPjtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBzZWFyY2hhYmxlIGZpZWxkIHRoYXQgcHJvdmlkZXMgYSBmZWF0dXJlIGZvciBzZWFyY2hpbmcgZm9yIHZhbHVlcywgYW5kIGZvciBkaXNwbGF5aW5nIHZhbHVlcyB1c2luZyBPYnNlcnZhYmxlcy5cbiAqXG4gKiBEaXNwbGF5IHZhbHVlcyBhcmUgY2FjaGVkIGZvciBwZXJmb3JtYW5jZS5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3REYnhTZWFyY2hhYmxlVmFsdWVGaWVsZERpcmVjdGl2ZTxULCBNID0gdW5rbm93biwgSCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgQyBleHRlbmRzIFNlYXJjaGFibGVWYWx1ZUZpZWxkc0Zvcm1seUZpZWxkQ29uZmlnPFQsIE0sIEg+ID0gU2VhcmNoYWJsZVZhbHVlRmllbGRzRm9ybWx5RmllbGRDb25maWc8VCwgTSwgSD4+IGV4dGVuZHMgRmllbGRUeXBlPEMgJiBGaWVsZFR5cGVDb25maWc+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2V0L2dldCB2YWx1ZXMgYXMgYW4gYXJyYXkuXG4gICAqL1xuICBtdWx0aVNlbGVjdCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG92ZXJyaWRlIHNldCBieSB0aGUgcGFyZW50IGNsYXNzIGZvciBwaWNraW5nIGEgZGVmYXVsdCBkaXNwbGF5IGZvciB0aGlzIGRpcmVjdGl2ZS5cbiAgICovXG4gIGRlZmF1bHREaXNwbGF5PzogRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnO1xuXG4gIEBWaWV3Q2hpbGQoJ3RleHRJbnB1dCcpXG4gIHRleHRJbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgcmVhZG9ubHkgaW5wdXRDdHJsID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICBwcml2YXRlIF9mb3JtQ29udHJvbE9icyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8QWJzdHJhY3RDb250cm9sPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZm9ybUNvbnRyb2wkID0gdGhpcy5fZm9ybUNvbnRyb2xPYnMucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICBwcml2YXRlIF9kaXNwbGF5SGFzaE1hcCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPEgsIENvbmZpZ3VyZWRTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxULCBNPj4+KG5ldyBNYXAoKSk7XG5cbiAgcmVhZG9ubHkgaW5wdXRWYWx1ZSQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuaW5wdXRDdHJsLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmlucHV0Q3RybC52YWx1ZSkpO1xuICByZWFkb25seSBpbnB1dFZhbHVlU3RyaW5nJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5pbnB1dFZhbHVlJC5waXBlKGRlYm91bmNlVGltZSgyMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICByZWFkb25seSBzZWFyY2hSZXN1bHRzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5bXT4+ID0gdGhpcy5pbnB1dFZhbHVlU3RyaW5nJC5waXBlKFxuICAgIHN3aXRjaE1hcCgodGV4dCkgPT5cbiAgICAgICh0ZXh0IHx8IHRoaXMuc2VhcmNoT25FbXB0eVRleHQgPyB0aGlzLnNlYXJjaCh0ZXh0ID8/ICcnKSA6IG9mKFtdKSkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCh4KSA9PiB0aGlzLmxvYWREaXNwbGF5VmFsdWVzRm9yRmllbGRWYWx1ZXMoeCkpLFxuICAgICAgICAvLyBSZXR1cm4gYmVnaW4gbG9hZGluZyB0byBzZXR1cCB0aGUgbG9hZGluZyBzdGF0ZS5cbiAgICAgICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKClcbiAgICAgIClcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc2luZ2xlVmFsdWVTeW5jU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IHNlYXJjaENvbnRleHQgPSBuZXcgTG9hZGluZ1N0YXRlQ29udGV4dEluc3RhbmNlKHsgb2JzOiB0aGlzLnNlYXJjaFJlc3VsdHNTdGF0ZSQsIHNob3dMb2FkaW5nT25Ob1ZhbHVlOiBmYWxzZSB9KTtcblxuICByZWFkb25seSBzZWFyY2hSZXN1bHRzJDogT2JzZXJ2YWJsZTxDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5bXT4gPSB0aGlzLnNlYXJjaFJlc3VsdHNTdGF0ZSQucGlwZShtYXAoKHgpID0+IHg/LnZhbHVlID8/IFtdKSk7XG5cbiAgcmVhZG9ubHkgX2Zvcm1Db250cm9sVmFsdWU6IE9ic2VydmFibGU8VCB8IFRbXT4gPSB0aGlzLmZvcm1Db250cm9sJC5waXBlKHN3aXRjaE1hcCgoY29udHJvbCkgPT4gY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgoY29udHJvbC52YWx1ZSksIHNoYXJlUmVwbGF5KDEpKSkpO1xuXG4gIHJlYWRvbmx5IHZhbHVlcyQ6IE9ic2VydmFibGU8VFtdPiA9IHRoaXMuX2Zvcm1Db250cm9sVmFsdWUucGlwZShtYXAoY29udmVydE1heWJlVG9BcnJheSksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBkaXNwbGF5VmFsdWVzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5bXT4+ID0gdGhpcy52YWx1ZXMkLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzd2l0Y2hNYXAoKHZhbHVlczogVFtdKSA9PiB0aGlzLmxvYWREaXNwbGF5VmFsdWVzRm9yVmFsdWVzKHZhbHVlcykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGlzcGxheVZhbHVlcyQ6IE9ic2VydmFibGU8Q29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+W10+ID0gdGhpcy5kaXNwbGF5VmFsdWVzU3RhdGUkLnBpcGUobWFwKCh4KSA9PiB4Py52YWx1ZSA/PyBbXSkpO1xuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQubmFtZSA/PyBjYW1lbENhc2UodGhpcy5sYWJlbCA/PyAodGhpcy5rZXkgYXMgc3RyaW5nKSk7XG4gIH1cblxuICBnZXQgbGFiZWwoKTogTWF5YmU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQudGVtcGxhdGVPcHRpb25zPy5sYWJlbDtcbiAgfVxuXG4gIGdldCByZWFkb25seSgpOiBNYXliZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQudGVtcGxhdGVPcHRpb25zPy5yZWFkb25seTtcbiAgfVxuXG4gIGdldCBzZWFyY2hhYmxlRmllbGQoKTogU2VhcmNoYWJsZVZhbHVlRmllbGRzRmllbGRDb25maWc8VCwgTSwgSD4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnNlYXJjaGFibGVGaWVsZDtcbiAgfVxuXG4gIGdldCBzZWFyY2hPbkVtcHR5VGV4dCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hhYmxlRmllbGQuc2VhcmNoT25FbXB0eVRleHQgPz8gZmFsc2U7XG4gIH1cblxuICBnZXQgYXV0b2NvbXBsZXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLmZpZWxkLnRlbXBsYXRlT3B0aW9ucz8uYXR0cmlidXRlcz8uWydhdXRvY29tcGxldGUnXSA/PyB0aGlzLmtleSkgYXMgc3RyaW5nO1xuICB9XG5cbiAgZ2V0IGhhc2hGb3JWYWx1ZSgpOiBTZWFyY2hhYmxlVmFsdWVGaWVsZEhhc2hGbjxULCBIPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoYWJsZUZpZWxkLmhhc2hGb3JWYWx1ZSA/PyAoKHgpID0+IHggYXMgdW5rbm93biBhcyBIKTtcbiAgfVxuXG4gIGdldCBkaXNwbGF5Rm9yVmFsdWUoKTogU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5Rm48VCwgTT4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGFibGVGaWVsZC5kaXNwbGF5Rm9yVmFsdWU7XG4gIH1cblxuICBnZXQgdXNlQW5jaG9yKCk6IE1heWJlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hhYmxlRmllbGQudXNlQW5jaG9yO1xuICB9XG5cbiAgZ2V0IGFuY2hvckZvclZhbHVlKCk6IE1heWJlPFNlYXJjaGFibGVWYWx1ZUZpZWxkQW5jaG9yRm48VCwgTT4+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hhYmxlRmllbGQuYW5jaG9yRm9yVmFsdWU7XG4gIH1cblxuICBnZXQgZGlzcGxheSgpOiBNYXliZTxQYXJ0aWFsPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZz4+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hhYmxlRmllbGQuZGlzcGxheTtcbiAgfVxuXG4gIGdldCBzZWFyY2goKTogU2VhcmNoYWJsZVZhbHVlRmllbGRTdHJpbmdTZWFyY2hGbjxULCBNPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoYWJsZUZpZWxkLnNlYXJjaDtcbiAgfVxuXG4gIGdldCB2YWx1ZXMoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0VmFsdWVPbkZvcm1Db250cm9sKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpID8/IFtdO1xuICB9XG5cbiAgZ2V0IGFsbG93U3RyaW5nVmFsdWVzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGFibGVGaWVsZC5hbGxvd1N0cmluZ1ZhbHVlcyA/PyBCb29sZWFuKHRoaXMuY29udmVydFN0cmluZ1ZhbHVlKTtcbiAgfVxuXG4gIGdldCBjb252ZXJ0U3RyaW5nVmFsdWUoKTogTWF5YmU8KHRleHQ6IHN0cmluZykgPT4gVD4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGFibGVGaWVsZC5jb252ZXJ0U3RyaW5nVmFsdWU7XG4gIH1cblxuICBnZXQgc2hvd0NsZWFyVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoYWJsZUZpZWxkLnNob3dDbGVhclZhbHVlID8/IHRydWU7XG4gIH1cblxuICBsb2FkRGlzcGxheVZhbHVlc0ZvclZhbHVlcyh2YWx1ZXM6IFRbXSk6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPENvbmZpZ3VyZWRTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxULCBNPltdPj4ge1xuICAgIHJldHVybiB0aGlzLmxvYWREaXNwbGF5VmFsdWVzRm9yRmllbGRWYWx1ZXModmFsdWVzLm1hcCgodmFsdWUpID0+ICh7IHZhbHVlIH0pKSk7XG4gIH1cblxuICBsb2FkRGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHZhbHVlczogU2VhcmNoYWJsZVZhbHVlRmllbGRWYWx1ZTxULCBNPltdKTogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8Q29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+W10+PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHZhbHVlcykucGlwZShcbiAgICAgIG1hcCgoZGlzcGxheVZhbHVlczogQ29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+W10pID0+IHN1Y2Nlc3NSZXN1bHQoZGlzcGxheVZhbHVlcykpLFxuICAgICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKCksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBnZXREaXNwbGF5VmFsdWVzRm9yRmllbGRWYWx1ZXModmFsdWVzOiBTZWFyY2hhYmxlVmFsdWVGaWVsZFZhbHVlPFQsIE0+W10pOiBPYnNlcnZhYmxlPENvbmZpZ3VyZWRTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxULCBNPltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlIYXNoTWFwLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoZGlzcGxheU1hcCkgPT4ge1xuICAgICAgICBjb25zdCBtYXBwaW5nUmVzdWx0ID0gdmFsdWVzLm1hcCgoeCkgPT4gW3gsIHRoaXMuaGFzaEZvclZhbHVlKHgudmFsdWUpXSBhcyBbU2VhcmNoYWJsZVZhbHVlRmllbGRWYWx1ZTxULCBNPiwgSF0pLm1hcCgoW3gsIGhhc2hdLCBpKSA9PiBbaSwgaGFzaCwgeCwgZGlzcGxheU1hcC5nZXQoaGFzaCldIGFzIFtudW1iZXIsIEgsIFNlYXJjaGFibGVWYWx1ZUZpZWxkVmFsdWU8VCwgTT4sIENvbmZpZ3VyZWRTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxULCBNPl0pO1xuXG4gICAgICAgIGNvbnN0IGhhc0Rpc3BsYXkgPSBtYXBwaW5nUmVzdWx0LmZpbHRlcigoeCkgPT4gQm9vbGVhbih4WzNdKSk7XG4gICAgICAgIGNvbnN0IG5lZWRzRGlzcGxheSA9IG1hcHBpbmdSZXN1bHQuZmlsdGVyKCh4KSA9PiAheFszXSk7XG4gICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8Q29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+W10+O1xuXG4gICAgICAgIGlmIChuZWVkc0Rpc3BsYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIEdvIGdldCB0aGUgZGlzcGxheSB2YWx1ZS5cbiAgICAgICAgICBjb25zdCBkaXNwbGF5VmFsdWVzT2JzID0gdGhpcy5kaXNwbGF5Rm9yVmFsdWUobmVlZHNEaXNwbGF5Lm1hcCgoeCkgPT4geFsyXSkpO1xuICAgICAgICAgIGNvbnN0IGRlZmF1bHREaXNwbGF5ID0gbWVyZ2VEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWdzKFt0aGlzLmRlZmF1bHREaXNwbGF5LCB0aGlzLmRpc3BsYXldKTtcbiAgICAgICAgICBjb25zdCBhbmNob3JGb3JWYWx1ZSA9IHRoaXMudXNlQW5jaG9yICYmIHRoaXMuYW5jaG9yRm9yVmFsdWU7XG5cbiAgICAgICAgICBvYnMgPSBkaXNwbGF5VmFsdWVzT2JzLnBpcGUoXG4gICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgbWFwKChkaXNwbGF5UmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgICAvLyBBc3NpZ24gdGhlIGRlZmF1bHQgY29tcG9uZW50IGNsYXNzZXMgdG8gY29tcGxldGUgY29uZmlndXJhdGlvbi5cbiAgICAgICAgICAgICAgZGlzcGxheVJlc3VsdHMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICgheC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICB4LmRpc3BsYXkgPSBkZWZhdWx0RGlzcGxheTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgeC5kaXNwbGF5ID0gbWVyZ2VEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWdzKFtkZWZhdWx0RGlzcGxheSwgeC5kaXNwbGF5XSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCF4LmFuY2hvciAmJiBhbmNob3JGb3JWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgeC5hbmNob3IgPSBhbmNob3JGb3JWYWx1ZSh4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgIC8vIENyZWF0ZSBhIG1hcCB0byByZS1qb2luIHZhbHVlcyBsYXRlci5cbiAgICAgICAgICAgICAgY29uc3QgZGlzcGxheVJlc3VsdHNNYXBwaW5nOiBbQ29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+LCBIXVtdID0gKGRpc3BsYXlSZXN1bHRzIGFzIENvbmZpZ3VyZWRTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxULCBNPltdKS5tYXAoKHgpID0+IFt4LCB0aGlzLmhhc2hGb3JWYWx1ZSh4LnZhbHVlKV0pO1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZUluZGV4SGFzaE1hcCA9IG5ldyBNYXAoZGlzcGxheVJlc3VsdHNNYXBwaW5nLm1hcCgoW3gsIGhhc2hdKSA9PiBbaGFzaCwgeF0pKTtcblxuICAgICAgICAgICAgICAvLyBVcGRhdGUgZGlzcGxheU1hcC4gTm8gbmVlZCB0byBwdXNoIGFuIHVwZGF0ZSBub3RpZmljYXRpb24uXG4gICAgICAgICAgICAgIGRpc3BsYXlSZXN1bHRzTWFwcGluZy5mb3JFYWNoKChbeCwgaGFzaF0pID0+IGRpc3BsYXlNYXAuc2V0KGhhc2gsIHgpKTtcblxuICAgICAgICAgICAgICAvLyBaaXAgdmFsdWVzIGJhY2sgdG9nZXRoZXIuXG4gICAgICAgICAgICAgIGNvbnN0IG5ld0Rpc3BsYXlWYWx1ZXMgPSBtYXBwaW5nUmVzdWx0Lm1hcCgoeCkgPT4geFszXSA/PyB2YWx1ZUluZGV4SGFzaE1hcC5nZXQoeFsxXSkpO1xuXG4gICAgICAgICAgICAgIC8vIFJldHVybiBkaXNwbGF5IHZhbHVlcy5cbiAgICAgICAgICAgICAgcmV0dXJuIG5ld0Rpc3BsYXlWYWx1ZXM7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSWYgYWxsIGRpc3BsYXkgdmFsdWVzIGFyZSBoYXNoZWQgcmV0dXJuIHRoYXQuXG4gICAgICAgICAgb2JzID0gb2YoaGFzRGlzcGxheS5tYXAoKHgpID0+IHhbM10pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvYnM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMubmV4dCh0aGlzLmZvcm1Db250cm9sKTtcblxuICAgIGlmICh0aGlzLnNlYXJjaGFibGVGaWVsZC50ZXh0SW5wdXRWYWxpZGF0b3IpIHtcbiAgICAgIHRoaXMuaW5wdXRDdHJsLnNldFZhbGlkYXRvcnModGhpcy5zZWFyY2hhYmxlRmllbGQudGV4dElucHV0VmFsaWRhdG9yKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGVmYXVsdERpc3BsYXk/LmNvbXBvbmVudENsYXNzKSB7XG4gICAgICB0aGlzLmRlZmF1bHREaXNwbGF5ID0ge1xuICAgICAgICAuLi50aGlzLmRlZmF1bHREaXNwbGF5LFxuICAgICAgICBjb21wb25lbnRDbGFzczogRGJ4RGVmYXVsdFNlYXJjaGFibGVGaWVsZERpc3BsYXlDb21wb25lbnRcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubXVsdGlTZWxlY3QgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnNpbmdsZVZhbHVlU3luY1N1YnNjcmlwdGlvbi5zdWJzY3JpcHRpb24gPSB0aGlzLmRpc3BsYXlWYWx1ZXMkLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgICBpZiAoeFswXSkge1xuICAgICAgICAgIHRoaXMuX3N5bmNTaW5nbGVWYWx1ZSh4WzBdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9kaXNwbGF5SGFzaE1hcC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Zvcm1Db250cm9sT2JzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5zZWFyY2hDb250ZXh0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHN5bmMgdGhlIGlucHV0IGNvbnRyb2wgd2l0aCB0aGUgc2VsZWN0ZWQgdmFsdWUuXG4gICAqXG4gICAqIE9ubHkgdXNlZCB3aGVuIG11bHRpU2VsZWN0IGlzIGZhbHNlLlxuICAgKi9cbiAgcHJvdGVjdGVkIF9zeW5jU2luZ2xlVmFsdWUodmFsdWU6IFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEN0cmwuc2V0VmFsdWUodmFsdWUubGFiZWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9hZGRXaXRoVGV4dFZhbHVlKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zZWFyY2hhYmxlRmllbGQuYWxsb3dTdHJpbmdWYWx1ZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGV4dCkge1xuICAgICAgdGV4dCA9ICh0ZXh0IHx8ICcnKS50cmltKCk7XG4gICAgICB0aGlzLmlucHV0Q3RybC5zZXRWYWx1ZSh0ZXh0LnRyaW0oKSk7XG4gICAgfVxuXG4gICAgLy8gY29uc29sZS5sb2coJ0FkZDogJywgdGV4dCwgdGhpcy5pbnB1dEN0cmwudmFsaWQpO1xuXG4gICAgaWYgKCF0aGlzLmlucHV0Q3RybC52YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0ZXh0KSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuY29udmVydFN0cmluZ1ZhbHVlID8gdGhpcy5jb252ZXJ0U3RyaW5nVmFsdWUodGV4dCkgOiAodGV4dCBhcyB1bmtub3duIGFzIFQpO1xuICAgICAgdGhpcy5hZGRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgYWRkV2l0aERpc3BsYXlWYWx1ZShkaXNwbGF5VmFsdWU6IFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5hZGRWYWx1ZShkaXNwbGF5VmFsdWUudmFsdWUpO1xuICB9XG5cbiAgcmVtb3ZlV2l0aERpc3BsYXlWYWx1ZShkaXNwbGF5VmFsdWU6IFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVWYWx1ZShkaXNwbGF5VmFsdWUudmFsdWUpO1xuICB9XG5cbiAgX3RyeUFkZEN1cnJlbnRJbnB1dFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIGxldCBhZGRlZFZhbHVlID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5hbGxvd1N0cmluZ1ZhbHVlcykge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmlucHV0Q3RybC52YWx1ZTtcblxuICAgICAgaWYgKCh2YWx1ZSB8fCAnJykudHJpbSgpKSB7XG4gICAgICAgIHRoaXMuX2FkZFdpdGhUZXh0VmFsdWUodmFsdWUpO1xuICAgICAgICBhZGRlZFZhbHVlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYWRkZWRWYWx1ZTtcbiAgfVxuXG4gIGFkZFZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgdGhpcy50ZXh0SW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuaW5wdXRDdHJsLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuc2V0VmFsdWVzKFsuLi50aGlzLnZhbHVlcywgdmFsdWVdKTtcbiAgfVxuXG4gIHJlbW92ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgbGV0IHZhbHVlcztcblxuICAgIGlmICh0aGlzLmhhc2hGb3JWYWx1ZSkge1xuICAgICAgY29uc3QgaGFzaFRvRmlsdGVyID0gdGhpcy5oYXNoRm9yVmFsdWUodmFsdWUpO1xuICAgICAgdmFsdWVzID0gdGhpcy52YWx1ZXMuZmlsdGVyKCh4KSA9PiB0aGlzLmhhc2hGb3JWYWx1ZSh4KSAhPT0gaGFzaFRvRmlsdGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWVzID0gdGhpcy52YWx1ZXMuZmlsdGVyKCh4KSA9PiB4ICE9PSB2YWx1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRWYWx1ZXModmFsdWVzKTtcbiAgfVxuXG4gIGNsZWFyVmFsdWVzKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmFsdWVzKFtdKTtcbiAgfVxuXG4gIHNldFZhbHVlcyh2YWx1ZXM6IFRbXSk6IHZvaWQge1xuICAgIC8vIFVzZSB0byBmaWx0ZXIgbm9uLXVuaXF1ZSB2YWx1ZXMuXG4gICAgaWYgKHRoaXMuaGFzaEZvclZhbHVlKSB7XG4gICAgICB2YWx1ZXMgPSBmaW5kVW5pcXVlKHZhbHVlcywgdGhpcy5oYXNoRm9yVmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuX3NldFZhbHVlT25Gb3JtQ29udHJvbCh2YWx1ZXMpO1xuICB9XG5cbiAgLy8gTUFSSzogSW50ZXJuYWxcbiAgcHJvdGVjdGVkIF9nZXRWYWx1ZU9uRm9ybUNvbnRyb2wodmFsdWVPbkZvcm1Db250cm9sOiBBcnJheU9yVmFsdWU8VD4pOiBUW10ge1xuICAgIGNvbnN0IHZhbHVlID0gdmFsdWVPbkZvcm1Db250cm9sICE9IG51bGwgPyAoW10gYXMgVFtdKS5jb25jYXQodmFsdWVPbkZvcm1Db250cm9sKSA6IFtdOyAvLyBBbHdheXMgcmV0dXJuIGFuIGFycmF5LlxuICAgIHJldHVybiB2YWx1ZSBhcyBUW107XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NldFZhbHVlT25Gb3JtQ29udHJvbCh2YWx1ZXM6IFRbXSk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5tdWx0aVNlbGVjdCA/IHZhbHVlcyA6IGxhc3RWYWx1ZSh2YWx1ZXMpOyAvLyBwaWNrIGxhc3QgdmFsdWUsIGFzIHRoZSBsYXN0IHZhbHVlIGFkZGVkIGlzIHRoZSBuZXdlc3QgdmFsdWUuXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICB9XG59XG4iXX0=