@dereekb/dbx-form 4.0.1 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/LICENSE +21 -0
  2. package/_index.scss +4 -5
  3. package/esm2020/lib/form/action/form.action.directive.mjs +20 -21
  4. package/esm2020/lib/form/action/form.action.module.mjs +6 -17
  5. package/esm2020/lib/form/action/transition/form.action.transition.module.mjs +5 -13
  6. package/esm2020/lib/form/action/transition/form.action.transition.safety.directive.mjs +2 -2
  7. package/esm2020/lib/form/form.mjs +4 -7
  8. package/esm2020/lib/form/form.module.mjs +4 -12
  9. package/esm2020/lib/form/io/form.changes.directive.mjs +4 -2
  10. package/esm2020/lib/form/io/form.input.directive.mjs +3 -6
  11. package/esm2020/lib/form/io/form.io.module.mjs +6 -22
  12. package/esm2020/lib/form/io/form.loading.directive.mjs +1 -1
  13. package/esm2020/lib/form.module.mjs +4 -12
  14. package/esm2020/lib/formly/config/index.mjs +1 -1
  15. package/esm2020/lib/formly/config/validation.mjs +1 -1
  16. package/esm2020/lib/formly/field/checklist/checklist.field.mjs +6 -9
  17. package/esm2020/lib/formly/field/checklist/checklist.item.field.component.mjs +14 -12
  18. package/esm2020/lib/formly/field/checklist/checklist.item.field.content.default.component.mjs +1 -1
  19. package/esm2020/lib/formly/field/checklist/checklist.item.field.mjs +1 -1
  20. package/esm2020/lib/formly/field/checklist/checklist.item.field.module.mjs +6 -18
  21. package/esm2020/lib/formly/field/checklist/checklist.item.mjs +1 -1
  22. package/esm2020/lib/formly/field/component/component.field.component.mjs +1 -1
  23. package/esm2020/lib/formly/field/component/component.field.mjs +1 -1
  24. package/esm2020/lib/formly/field/component/component.field.module.mjs +5 -13
  25. package/esm2020/lib/formly/field/field.mjs +4 -2
  26. package/esm2020/lib/formly/field/form.field.module.mjs +5 -26
  27. package/esm2020/lib/formly/field/selection/pickable/index.mjs +1 -1
  28. package/esm2020/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +5 -5
  29. package/esm2020/lib/formly/field/selection/pickable/pickable.field.directive.mjs +43 -43
  30. package/esm2020/lib/formly/field/selection/pickable/pickable.field.mjs +3 -3
  31. package/esm2020/lib/formly/field/selection/pickable/pickable.field.module.mjs +5 -15
  32. package/esm2020/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +17 -12
  33. package/esm2020/lib/formly/field/selection/pickable/pickable.mjs +1 -1
  34. package/esm2020/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +3 -3
  35. package/esm2020/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +15 -13
  36. package/esm2020/lib/formly/field/selection/searchable/searchable.field.directive.mjs +24 -26
  37. package/esm2020/lib/formly/field/selection/searchable/searchable.field.mjs +6 -5
  38. package/esm2020/lib/formly/field/selection/searchable/searchable.field.module.mjs +7 -19
  39. package/esm2020/lib/formly/field/selection/searchable/searchable.mjs +1 -1
  40. package/esm2020/lib/formly/field/selection/searchable/searchable.text.field.component.mjs +7 -8
  41. package/esm2020/lib/formly/field/selection/searchable/text.chip.field.mjs +5 -5
  42. package/esm2020/lib/formly/field/selection/selection.mjs +1 -1
  43. package/esm2020/lib/formly/field/selection/selection.module.mjs +5 -14
  44. package/esm2020/lib/formly/field/texteditor/texteditor.field.component.mjs +5 -3
  45. package/esm2020/lib/formly/field/texteditor/texteditor.field.mjs +1 -1
  46. package/esm2020/lib/formly/field/texteditor/texteditor.field.module.mjs +4 -10
  47. package/esm2020/lib/formly/field/value/array/array.field.component.mjs +31 -25
  48. package/esm2020/lib/formly/field/value/array/array.field.mjs +3 -3
  49. package/esm2020/lib/formly/field/value/array/array.field.module.mjs +4 -10
  50. package/esm2020/lib/formly/field/value/boolean/boolean.field.mjs +1 -1
  51. package/esm2020/lib/formly/field/value/boolean/boolean.field.module.mjs +1 -1
  52. package/esm2020/lib/formly/field/value/date/date.field.module.mjs +5 -13
  53. package/esm2020/lib/formly/field/value/date/datetime.field.component.mjs +24 -33
  54. package/esm2020/lib/formly/field/value/date/datetime.field.mjs +3 -3
  55. package/esm2020/lib/formly/field/value/enum/enum.field.mjs +2 -2
  56. package/esm2020/lib/formly/field/value/enum/enum.field.module.mjs +1 -1
  57. package/esm2020/lib/formly/field/value/enum/enum.mjs +1 -1
  58. package/esm2020/lib/formly/field/value/hidden.field.mjs +1 -1
  59. package/esm2020/lib/formly/field/value/phone/phone.field.component.mjs +3 -3
  60. package/esm2020/lib/formly/field/value/phone/phone.field.mjs +2 -4
  61. package/esm2020/lib/formly/field/value/phone/phone.field.module.mjs +4 -10
  62. package/esm2020/lib/formly/field/value/text/text.additional.field.mjs +2 -2
  63. package/esm2020/lib/formly/field/value/text/text.address.field.mjs +12 -6
  64. package/esm2020/lib/formly/field/value/text/text.field.mjs +2 -2
  65. package/esm2020/lib/formly/field/value/text/text.field.module.mjs +4 -10
  66. package/esm2020/lib/formly/field/value/value.module.mjs +5 -26
  67. package/esm2020/lib/formly/field/wrapper/autotouch.wrapper.component.mjs +8 -4
  68. package/esm2020/lib/formly/field/wrapper/expandable.wrapper.component.mjs +15 -15
  69. package/esm2020/lib/formly/field/wrapper/expandable.wrapper.delegate.mjs +1 -1
  70. package/esm2020/lib/formly/field/wrapper/flex.wrapper.component.mjs +1 -1
  71. package/esm2020/lib/formly/field/wrapper/form.wrapper.module.mjs +3 -21
  72. package/esm2020/lib/formly/field/wrapper/info.wrapper.component.mjs +3 -5
  73. package/esm2020/lib/formly/field/wrapper/section.wrapper.component.mjs +1 -1
  74. package/esm2020/lib/formly/field/wrapper/style.wrapper.component.mjs +2 -2
  75. package/esm2020/lib/formly/field/wrapper/subsection.wrapper.component.mjs +7 -7
  76. package/esm2020/lib/formly/field/wrapper/toggle.wrapper.component.mjs +16 -16
  77. package/esm2020/lib/formly/field/wrapper/working.wrapper.component.mjs +2 -2
  78. package/esm2020/lib/formly/field/wrapper/wrapper.mjs +6 -4
  79. package/esm2020/lib/formly/formly.context.directive.mjs +4 -4
  80. package/esm2020/lib/formly/formly.context.mjs +9 -7
  81. package/esm2020/lib/formly/formly.directive.mjs +1 -1
  82. package/esm2020/lib/formly/formly.form.component.mjs +7 -7
  83. package/esm2020/lib/formly/formly.module.mjs +5 -25
  84. package/esm2020/lib/formly/template/available.mjs +6 -4
  85. package/esm2020/lib/formly/template/login.mjs +8 -11
  86. package/esm2020/lib/layout/form.layout.module.mjs +5 -13
  87. package/esm2020/lib/layout/form.spacer.component.mjs +7 -3
  88. package/esm2020/lib/validator/available.mjs +2 -3
  89. package/esm2020/lib/validator/boolean.mjs +2 -2
  90. package/esm2020/lib/validator/email.mjs +2 -2
  91. package/esm2020/lib/validator/field.mjs +3 -3
  92. package/esm2020/lib/validator/number.mjs +20 -16
  93. package/fesm2015/dereekb-dbx-form.mjs +420 -624
  94. package/fesm2015/dereekb-dbx-form.mjs.map +1 -1
  95. package/fesm2020/dereekb-dbx-form.mjs +423 -624
  96. package/fesm2020/dereekb-dbx-form.mjs.map +1 -1
  97. package/lib/form/_form.scss +6 -4
  98. package/lib/form/action/form.action.directive.d.ts +4 -4
  99. package/lib/form/form.d.ts +4 -4
  100. package/lib/form/io/form.changes.directive.d.ts +3 -3
  101. package/lib/form/io/form.input.directive.d.ts +3 -3
  102. package/lib/form/io/form.loading.directive.d.ts +3 -3
  103. package/lib/formly/_formly.scss +6 -4
  104. package/lib/formly/config/validation.d.ts +4 -4
  105. package/lib/formly/field/checklist/_checklist.scss +6 -10
  106. package/lib/formly/field/checklist/checklist.field.d.ts +3 -3
  107. package/lib/formly/field/checklist/checklist.item.d.ts +8 -8
  108. package/lib/formly/field/checklist/checklist.item.field.component.d.ts +7 -9
  109. package/lib/formly/field/checklist/checklist.item.field.content.default.component.d.ts +4 -4
  110. package/lib/formly/field/checklist/checklist.item.field.d.ts +3 -3
  111. package/lib/formly/field/component/_component.scss +6 -4
  112. package/lib/formly/field/component/component.field.component.d.ts +3 -4
  113. package/lib/formly/field/component/component.field.d.ts +3 -4
  114. package/lib/formly/field/field.d.ts +3 -3
  115. package/lib/formly/field/selection/pickable/_pickable.scss +4 -3
  116. package/lib/formly/field/selection/pickable/pickable.chip.field.component.d.ts +1 -1
  117. package/lib/formly/field/selection/pickable/pickable.d.ts +9 -11
  118. package/lib/formly/field/selection/pickable/pickable.field.d.ts +3 -3
  119. package/lib/formly/field/selection/pickable/pickable.field.directive.d.ts +49 -50
  120. package/lib/formly/field/selection/pickable/pickable.list.field.component.d.ts +7 -7
  121. package/lib/formly/field/selection/searchable/_searchable.scss +4 -6
  122. package/lib/formly/field/selection/searchable/searchable.chip.field.component.d.ts +8 -8
  123. package/lib/formly/field/selection/searchable/searchable.d.ts +9 -8
  124. package/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.d.ts +1 -1
  125. package/lib/formly/field/selection/searchable/searchable.field.d.ts +9 -9
  126. package/lib/formly/field/selection/searchable/searchable.field.directive.d.ts +25 -25
  127. package/lib/formly/field/selection/searchable/searchable.text.field.component.d.ts +12 -9
  128. package/lib/formly/field/selection/searchable/text.chip.field.d.ts +3 -3
  129. package/lib/formly/field/selection/selection.d.ts +6 -6
  130. package/lib/formly/field/texteditor/_texteditor.scss +3 -8
  131. package/lib/formly/field/texteditor/texteditor.field.component.d.ts +1 -2
  132. package/lib/formly/field/value/array/_array.scss +2 -6
  133. package/lib/formly/field/value/array/array.field.component.d.ts +1 -1
  134. package/lib/formly/field/value/array/array.field.d.ts +1 -1
  135. package/lib/formly/field/value/boolean/_boolean.scss +6 -4
  136. package/lib/formly/field/value/date/_date.scss +7 -9
  137. package/lib/formly/field/value/date/datetime.field.component.d.ts +2 -3
  138. package/lib/formly/field/value/date/datetime.field.d.ts +1 -2
  139. package/lib/formly/field/value/enum/_enum.scss +6 -4
  140. package/lib/formly/field/value/enum/enum.field.d.ts +1 -1
  141. package/lib/formly/field/value/hidden.field.d.ts +1 -2
  142. package/lib/formly/field/value/phone/_phone.scss +2 -4
  143. package/lib/formly/field/value/text/_text.scss +6 -4
  144. package/lib/formly/field/value/text/text.additional.field.d.ts +3 -3
  145. package/lib/formly/field/value/text/text.address.field.d.ts +1 -2
  146. package/lib/formly/field/wrapper/_wrapper.scss +4 -4
  147. package/lib/formly/field/wrapper/expandable.wrapper.component.d.ts +4 -4
  148. package/lib/formly/field/wrapper/expandable.wrapper.delegate.d.ts +11 -11
  149. package/lib/formly/field/wrapper/toggle.wrapper.component.d.ts +4 -4
  150. package/lib/formly/field/wrapper/working.wrapper.component.d.ts +4 -2
  151. package/lib/formly/field/wrapper/wrapper.d.ts +2 -2
  152. package/lib/formly/formly.context.d.ts +4 -5
  153. package/lib/formly/formly.context.directive.d.ts +1 -1
  154. package/lib/formly/formly.directive.d.ts +1 -1
  155. package/lib/formly/formly.form.component.d.ts +2 -2
  156. package/lib/formly/template/login.d.ts +2 -3
  157. package/lib/layout/_layout.scss +6 -4
  158. package/lib/style/_config.scss +8 -6
  159. package/lib/style/_core.scss +1 -1
  160. package/lib/style/_mixin.scss +1 -1
  161. package/lib/style/_theming.scss +2 -12
  162. package/lib/style/_variables.scss +1 -1
  163. package/lib/validator/available.d.ts +1 -1
  164. package/lib/validator/boolean.d.ts +1 -1
  165. package/lib/validator/email.d.ts +1 -1
  166. package/lib/validator/field.d.ts +6 -6
  167. package/lib/validator/number.d.ts +8 -1
  168. package/package.json +5 -4
@@ -1,5 +1,5 @@
1
- import { Component } from "@angular/core";
2
- import { AbstractDbxPickableItemFieldDirective } from "./pickable.field.directive";
1
+ import { Component } from '@angular/core';
2
+ import { AbstractDbxPickableItemFieldDirective } from './pickable.field.directive';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@dereekb/dbx-web";
5
5
  import * as i2 from "@angular/material/chips";
@@ -24,9 +24,9 @@ export class DbxPickableChipListFieldComponent extends AbstractDbxPickableItemFi
24
24
  }
25
25
  }
26
26
  DbxPickableChipListFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableChipListFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
27
- DbxPickableChipListFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxPickableChipListFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-list [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" #chipList>\n <mat-chip *ngFor=\"let item of items$ | async\" (click)=\"itemClicked(item)\" [selected]=\"item.selected\"\n [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"item.itemValue.sublabel\">{{ item.itemValue.sublabel }}</span>\n </mat-chip>\n </mat-chip-list>\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: i1.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i2.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i3.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.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: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i5.AsyncPipe } });
27
+ DbxPickableChipListFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxPickableChipListFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-list [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" #chipList>\n <mat-chip *ngFor=\"let item of items$ | async\" (click)=\"itemClicked(item)\" [selected]=\"item.selected\" [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"item.itemValue.sublabel\">{{ item.itemValue.sublabel }}</span>\n </mat-chip>\n </mat-chip-list>\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: i1.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i2.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i3.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.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: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i5.AsyncPipe } });
28
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableChipListFieldComponent, decorators: [{
29
29
  type: Component,
30
- args: [{ template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-list [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" #chipList>\n <mat-chip *ngFor=\"let item of items$ | async\" (click)=\"itemClicked(item)\" [selected]=\"item.selected\"\n [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"item.itemValue.sublabel\">{{ item.itemValue.sublabel }}</span>\n </mat-chip>\n </mat-chip-list>\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" }]
30
+ args: [{ template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-list [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" #chipList>\n <mat-chip *ngFor=\"let item of items$ | async\" (click)=\"itemClicked(item)\" [selected]=\"item.selected\" [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"item.itemValue.sublabel\">{{ item.itemValue.sublabel }}</span>\n </mat-chip>\n </mat-chip-list>\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" }]
31
31
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQ0FBcUMsRUFBeUIsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7O0FBRTFHOztHQUVHO0FBSUgsTUFBTSxPQUFPLGlDQUFxQyxTQUFRLHFDQUF3QztJQUVoRyxXQUFXLENBQUMsSUFBOEI7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDaEQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDeEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3JDO1NBQ0Y7SUFDSCxDQUFDOzs4SEFWVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQywyRUNUOUMsMC9DQStCQTsyRkR0QmEsaUNBQWlDO2tCQUg3QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0RGJ4UGlja2FibGVJdGVtRmllbGREaXJlY3RpdmUsIFBpY2thYmxlSXRlbUZpZWxkSXRlbSB9IGZyb20gXCIuL3BpY2thYmxlLmZpZWxkLmRpcmVjdGl2ZVwiO1xuXG4vKipcbiAqIFVzZWQgZm9yIHBpY2tpbmcgcHJlLXNldCB2YWx1ZXMgdXNpbmcgY2hpcHMgYXMgdGhlIHByZXNlbnRhdGlvbi5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAncGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4UGlja2FibGVDaGlwTGlzdEZpZWxkQ29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3REYnhQaWNrYWJsZUl0ZW1GaWVsZERpcmVjdGl2ZTxUPiB7XG5cbiAgaXRlbUNsaWNrZWQoaXRlbTogUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+KTogdm9pZCB7XG4gICAgaWYgKCFpdGVtLmRpc2FibGVkICYmICF0aGlzLmlzUmVhZG9ubHlPckRpc2FibGVkKSB7XG4gICAgICBpZiAoaXRlbS5zZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbHVlKGl0ZW0uaXRlbVZhbHVlLnZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkVmFsdWUoaXRlbS5pdGVtVmFsdWUudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZGJ4LXBpY2thYmxlLWl0ZW0tZmllbGRcIj5cbiAgPGRieC1sb2FkaW5nIFtjb250ZXh0XT1cImNvbnRleHRcIiBbbGluZWFyXT1cInRydWVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0ZpbHRlcklucHV0XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIENvbnRlbnQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRieC1waWNrYWJsZS1pdGVtLWZpZWxkLWNoaXBzXCI+XG4gICAgICA8bWF0LWNoaXAtbGlzdCBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbc2VsZWN0YWJsZV09XCIhaXNSZWFkb25seU9yRGlzYWJsZWRcIiAjY2hpcExpc3Q+XG4gICAgICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcyQgfCBhc3luY1wiIChjbGljayk9XCJpdGVtQ2xpY2tlZChpdGVtKVwiIFtzZWxlY3RlZF09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNSZWFkb25seU9yRGlzYWJsZWQgfHwgaXRlbS5kaXNhYmxlZFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGJ4LWNoaXAtbGFiZWxcIj57eyBpdGVtLml0ZW1WYWx1ZS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImRieC1jaGlwLXN1YmxhYmVsXCIgKm5nSWY9XCJpdGVtLml0ZW1WYWx1ZS5zdWJsYWJlbFwiPnt7IGl0ZW0uaXRlbVZhbHVlLnN1YmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L21hdC1jaGlwPlxuICAgICAgPC9tYXQtY2hpcC1saXN0PlxuICAgICAgPGRieC1pbmplY3Rpb24gW2NvbmZpZ109XCJmb290ZXJDb25maWdcIj48L2RieC1pbmplY3Rpb24+XG4gICAgPC9kaXY+XG4gIDwvZGJ4LWxvYWRpbmc+XG48L2Rpdj5cblxuPCEtLSBGaWx0ZXIgSW5wdXQgLS0+XG48bmctdGVtcGxhdGUgI2ZpbHRlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LXBpY2thYmxlLWl0ZW0tZmllbGQtZmlsdGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRieC1sYWJlbFwiPnt7IGZpbHRlckxhYmVsIH19PC9kaXY+XG4gICAgPGlucHV0IFtuYW1lXT1cIm5hbWVcIiBhdXRvY29tcGxldGU9XCJ7eyBhdXRvY29tcGxldGUgfX1cIiAjZmlsdGVyTWF0SW5wdXQ9XCJtYXRJbnB1dFwiIG1hdElucHV0XG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwiaW5wdXRDdHJsXCI+XG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgPGRieC1sb2FkaW5nIFtsaW5lYXJdPVwidHJ1ZVwiIFtjb250ZXh0XT1cImZpbHRlclJlc3VsdHNDb250ZXh0XCI+PC9kYngtbG9hZGluZz5cbiAgICA8IS0tIE5vIGl0ZW1zIGZvdW5kLiAtLT5cbiAgICA8cCAqbmdJZj1cIm5vSXRlbXNBdmFpbGFibGUkIHwgYXN5bmNcIiBjbGFzcz1cImRieC1sYWJlbFwiPk5vIGl0ZW1zIG1hdGNoIHRoaXMgZmlsdGVyLjwvcD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQ0FBcUMsRUFBeUIsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7O0FBRTFHOztHQUVHO0FBSUgsTUFBTSxPQUFPLGlDQUFxQyxTQUFRLHFDQUF3QztJQUNoRyxXQUFXLENBQUMsSUFBOEI7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDaEQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDeEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3JDO1NBQ0Y7SUFDSCxDQUFDOzs4SEFUVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQywyRUNUOUMsMCtDQTZCQTsyRkRwQmEsaUNBQWlDO2tCQUg3QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdERieFBpY2thYmxlSXRlbUZpZWxkRGlyZWN0aXZlLCBQaWNrYWJsZUl0ZW1GaWVsZEl0ZW0gfSBmcm9tICcuL3BpY2thYmxlLmZpZWxkLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogVXNlZCBmb3IgcGlja2luZyBwcmUtc2V0IHZhbHVlcyB1c2luZyBjaGlwcyBhcyB0aGUgcHJlc2VudGF0aW9uLlxuICovXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICdwaWNrYWJsZS5jaGlwLmZpZWxkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBEYnhQaWNrYWJsZUNoaXBMaXN0RmllbGRDb21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdERieFBpY2thYmxlSXRlbUZpZWxkRGlyZWN0aXZlPFQ+IHtcbiAgaXRlbUNsaWNrZWQoaXRlbTogUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+KTogdm9pZCB7XG4gICAgaWYgKCFpdGVtLmRpc2FibGVkICYmICF0aGlzLmlzUmVhZG9ubHlPckRpc2FibGVkKSB7XG4gICAgICBpZiAoaXRlbS5zZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbHVlKGl0ZW0uaXRlbVZhbHVlLnZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkVmFsdWUoaXRlbS5pdGVtVmFsdWUudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRieC1waWNrYWJsZS1pdGVtLWZpZWxkXCI+XG4gIDxkYngtbG9hZGluZyBbY29udGV4dF09XCJjb250ZXh0XCIgW2xpbmVhcl09XCJ0cnVlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dGaWx0ZXJJbnB1dFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbHRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBDb250ZW50IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkYngtcGlja2FibGUtaXRlbS1maWVsZC1jaGlwc1wiPlxuICAgICAgPG1hdC1jaGlwLWxpc3QgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3NlbGVjdGFibGVdPVwiIWlzUmVhZG9ubHlPckRpc2FibGVkXCIgI2NoaXBMaXN0PlxuICAgICAgICA8bWF0LWNoaXAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXMkIHwgYXN5bmNcIiAoY2xpY2spPVwiaXRlbUNsaWNrZWQoaXRlbSlcIiBbc2VsZWN0ZWRdPVwiaXRlbS5zZWxlY3RlZFwiIFtkaXNhYmxlZF09XCJpc1JlYWRvbmx5T3JEaXNhYmxlZCB8fCBpdGVtLmRpc2FibGVkXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYngtY2hpcC1sYWJlbFwiPnt7IGl0ZW0uaXRlbVZhbHVlLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGJ4LWNoaXAtc3VibGFiZWxcIiAqbmdJZj1cIml0ZW0uaXRlbVZhbHVlLnN1YmxhYmVsXCI+e3sgaXRlbS5pdGVtVmFsdWUuc3VibGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvbWF0LWNoaXA+XG4gICAgICA8L21hdC1jaGlwLWxpc3Q+XG4gICAgICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImZvb3RlckNvbmZpZ1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgICA8L2Rpdj5cbiAgPC9kYngtbG9hZGluZz5cbjwvZGl2PlxuXG48IS0tIEZpbHRlciBJbnB1dCAtLT5cbjxuZy10ZW1wbGF0ZSAjZmlsdGVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJkYngtcGlja2FibGUtaXRlbS1maWVsZC1maWx0ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGJ4LWxhYmVsXCI+e3sgZmlsdGVyTGFiZWwgfX08L2Rpdj5cbiAgICA8aW5wdXQgW25hbWVdPVwibmFtZVwiIGF1dG9jb21wbGV0ZT1cInt7IGF1dG9jb21wbGV0ZSB9fVwiICNmaWx0ZXJNYXRJbnB1dD1cIm1hdElucHV0XCIgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cImlucHV0Q3RybFwiIC8+XG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgPGRieC1sb2FkaW5nIFtsaW5lYXJdPVwidHJ1ZVwiIFtjb250ZXh0XT1cImZpbHRlclJlc3VsdHNDb250ZXh0XCI+PC9kYngtbG9hZGluZz5cbiAgICA8IS0tIE5vIGl0ZW1zIGZvdW5kLiAtLT5cbiAgICA8cCAqbmdJZj1cIm5vSXRlbXNBdmFpbGFibGUkIHwgYXN5bmNcIiBjbGFzcz1cImRieC1sYWJlbFwiPk5vIGl0ZW1zIG1hdGNoIHRoaXMgZmlsdGVyLjwvcD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,11 +1,11 @@
1
- import { beginLoading, successResult, mapLoadingStateResults, filterMaybe, ListLoadingStateContextInstance, isListLoadingStateEmpty } from "@dereekb/rxjs";
2
- import { convertMaybeToArray, findUnique, makeValuesGroupMap } from "@dereekb/util";
3
- import { Directive, ViewChild } from "@angular/core";
4
- import { FormControl } from "@angular/forms";
5
- import { MatInput } from "@angular/material/input";
6
- import { FieldType } from "@ngx-formly/material";
7
- import { BehaviorSubject, combineLatest, of, filter, map, debounceTime, distinctUntilChanged, switchMap, startWith, shareReplay, mergeMap, first, delay } from "rxjs";
8
- import { camelCase } from "change-case";
1
+ import { successResult, mapLoadingStateResults, filterMaybe, ListLoadingStateContextInstance, isListLoadingStateEmpty, startWithBeginLoading } from '@dereekb/rxjs';
2
+ import { convertMaybeToArray, findUnique, makeValuesGroupMap } from '@dereekb/util';
3
+ import { Directive, ViewChild } from '@angular/core';
4
+ import { FormControl } from '@angular/forms';
5
+ import { MatInput } from '@angular/material/input';
6
+ import { FieldType } from '@ngx-formly/material';
7
+ import { BehaviorSubject, combineLatest, of, filter, map, debounceTime, distinctUntilChanged, switchMap, startWith, shareReplay, mergeMap, first, delay } from 'rxjs';
8
+ import { camelCase } from 'change-case';
9
9
  import * as i0 from "@angular/core";
10
10
  /**
11
11
  * Used for picking pre-set values using items as the presentation.
@@ -19,9 +19,9 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
19
19
  this._displayHashMap = new BehaviorSubject(new Map());
20
20
  this.filterInputValue$ = this.inputCtrl.valueChanges.pipe(startWith(undefined));
21
21
  this.filterInputValueString$ = this.filterInputValue$.pipe(debounceTime(200), distinctUntilChanged(), shareReplay(1));
22
- this.loadResultsDisplayValuesState$ = this.formControl$.pipe(first(), switchMap(() => this.loadValuesFn().pipe(switchMap((x) => this.loadDisplayValuesForFieldValues(x)), startWith(beginLoading()))), shareReplay(1));
23
- this._formControlValue = this.formControl$.pipe(switchMap(control => control.valueChanges.pipe(startWith(control.value), shareReplay(1))));
24
- this.loadResultsDisplayValues$ = this.loadResultsDisplayValuesState$.pipe(map(x => x?.value ?? []));
22
+ this.loadResultsDisplayValuesState$ = this.formControl$.pipe(first(), switchMap(() => this.loadValuesFn().pipe(switchMap((x) => this.loadDisplayValuesForFieldValues(x)), startWithBeginLoading())), shareReplay(1));
23
+ this._formControlValue = this.formControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value), shareReplay(1))));
24
+ this.loadResultsDisplayValues$ = this.loadResultsDisplayValuesState$.pipe(map((x) => x?.value ?? []));
25
25
  /**
26
26
  * Current values in the form control.
27
27
  */
@@ -34,16 +34,16 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
34
34
  const valuesNotInDisplayMap = [];
35
35
  currentValues.forEach((x) => {
36
36
  const key = this.hashForValue(x);
37
- let displayValue = displayValuesMap.get(key)?.[0];
37
+ const displayValue = displayValuesMap.get(key)?.[0];
38
38
  if (!displayValue) {
39
39
  valuesNotInDisplayMap.push(x);
40
40
  }
41
41
  });
42
42
  if (valuesNotInDisplayMap.length) {
43
- return this.loadDisplayValuesForValues(valuesNotInDisplayMap).pipe(map(x => mapLoadingStateResults(x, {
43
+ return this.loadDisplayValuesForValues(valuesNotInDisplayMap).pipe(map((x) => mapLoadingStateResults(x, {
44
44
  mapValue: (loadedValues) => {
45
- loadedValues.forEach(x => x.isUnknown = x.isUnknown ?? true); // Assign unknown flag.
46
- return ([...displayValues, ...loadedValues]);
45
+ loadedValues.forEach((x) => (x.isUnknown = x.isUnknown ?? true)); // Assign unknown flag.
46
+ return [...displayValues, ...loadedValues];
47
47
  }
48
48
  })));
49
49
  }
@@ -54,27 +54,27 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
54
54
  /**
55
55
  * Results to be displayed if filtered.
56
56
  */
57
- this.filteredSearchResultsState$ = this.loadResultsDisplayValues$.pipe(switchMap((values) => this.filterInputValueString$.pipe(switchMap(text => combineLatest([this._filterValues(text, values), this.displayValuesState$]).pipe(map(([values, displayState]) => mapLoadingStateResults(displayState, {
57
+ this.filteredSearchResultsState$ = this.loadResultsDisplayValues$.pipe(switchMap((values) => this.filterInputValueString$.pipe(switchMap((text) => combineLatest([this._filterValues(text, values), this.displayValuesState$]).pipe(map(([values, displayState]) => mapLoadingStateResults(displayState, {
58
58
  mapValue: (displayValues) => {
59
- const valueHashSet = new Set(values.map(x => this.hashForValue(x)));
60
- return displayValues.filter(x => !x.isUnknown && valueHashSet.has(x._hash));
59
+ const valueHashSet = new Set(values.map((x) => this.hashForValue(x)));
60
+ return displayValues.filter((x) => !x.isUnknown && valueHashSet.has(x._hash));
61
61
  }
62
- })), startWith(beginLoading()))))), shareReplay(1));
63
- this.filteredSearchResults$ = this.filteredSearchResultsState$.pipe(map(x => x?.value), filterMaybe(), shareReplay(1));
62
+ })), startWithBeginLoading())))), shareReplay(1));
63
+ this.filteredSearchResults$ = this.filteredSearchResultsState$.pipe(map((x) => x?.value), filterMaybe(), shareReplay(1));
64
64
  this.items$ = combineLatest([this.filteredSearchResults$, this.values$]).pipe(map(([displayValues, values]) => {
65
- const selectedHashValuesSet = new Set(values.map(x => this.hashForValue(x)));
65
+ const selectedHashValuesSet = new Set(values.map((x) => this.hashForValue(x)));
66
66
  let items = displayValues.map((x) => ({ itemValue: x, selected: selectedHashValuesSet.has(x._hash) }));
67
67
  if (this.sortItems) {
68
68
  items = this.sortItems(items);
69
69
  }
70
70
  return items;
71
71
  }), shareReplay(1));
72
- this.itemsLoadingState$ = this.loadResultsDisplayValues$.pipe(switchMap(x => this.items$.pipe(first(), map(x => successResult(x)), startWith(beginLoading()), shareReplay(1))));
72
+ this.itemsLoadingState$ = this.loadResultsDisplayValues$.pipe(switchMap(() => this.items$.pipe(first(), map((x) => successResult(x)), startWithBeginLoading(), shareReplay(1))));
73
73
  /**
74
74
  * Context used for managing the loading of items, or when the current results change.
75
75
  */
76
76
  this.context = new ListLoadingStateContextInstance({ obs: this.itemsLoadingState$, showLoadingOnNoValue: false });
77
- this.filterItemsLoadingState$ = this.items$.pipe(map(x => successResult(x)), startWith(beginLoading()), shareReplay(1));
77
+ this.filterItemsLoadingState$ = this.items$.pipe(map((x) => successResult(x)), startWithBeginLoading(), shareReplay(1));
78
78
  /**
79
79
  * Context used for searching/filtering.
80
80
  */
@@ -100,13 +100,13 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
100
100
  return this.pickableField.filterLabel;
101
101
  }
102
102
  get name() {
103
- return this.field.name ?? (camelCase(this.label ?? this.key));
103
+ return this.field.name ?? camelCase(this.label ?? this.key);
104
104
  }
105
105
  get label() {
106
106
  return this.field.templateOptions?.label;
107
107
  }
108
108
  get autocomplete() {
109
- return this.field.templateOptions?.attributes?.['autocomplete'] ?? this.key;
109
+ return (this.field.templateOptions?.attributes?.['autocomplete'] ?? this.key);
110
110
  }
111
111
  get changeSelectionModeToViewOnDisabled() {
112
112
  return this.pickableField.changeSelectionModeToViewOnDisabled ?? false;
@@ -124,7 +124,7 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
124
124
  return Boolean(this.pickableField.filterValues);
125
125
  }
126
126
  get filterValuesFn() {
127
- return this.pickableField.filterValues ?? ((_, x) => of(x.map(y => y.value)));
127
+ return this.pickableField.filterValues ?? ((_, x) => of(x.map((y) => y.value)));
128
128
  }
129
129
  get skipFilterFnOnEmpty() {
130
130
  return this.pickableField.skipFilterFnOnEmpty ?? true;
@@ -138,7 +138,7 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
138
138
  result = this.filterValuesFn(filterText, values);
139
139
  }
140
140
  else {
141
- result = of(values.map(x => x.value));
141
+ result = of(values.map((x) => x.value));
142
142
  }
143
143
  return result;
144
144
  };
@@ -164,44 +164,44 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
164
164
  return this.loadDisplayValuesForFieldValues(values.map((value) => ({ value })));
165
165
  }
166
166
  loadDisplayValuesForFieldValues(values) {
167
- return this.getDisplayValuesForFieldValues(values).pipe(map((displayValues) => successResult(displayValues)), startWith(beginLoading()), shareReplay(1));
167
+ return this.getDisplayValuesForFieldValues(values).pipe(map((displayValues) => successResult(displayValues)), startWithBeginLoading(), shareReplay(1));
168
168
  }
169
169
  getDisplayValuesForFieldValues(values) {
170
170
  return this._displayHashMap.pipe(mergeMap((displayMap) => {
171
- const mappingResult = values
172
- .map(x => [x, this.hashForValue(x.value)])
173
- .map(([x, hash], i) => [i, hash, x, displayMap.get(hash)]);
174
- const hasDisplay = mappingResult.filter(x => Boolean(x[3]));
175
- const needsDisplay = mappingResult.filter(x => !x[3]);
171
+ const mappingResult = values.map((x) => [x, this.hashForValue(x.value)]).map(([x, hash], i) => [i, hash, x, displayMap.get(hash)]);
172
+ const hasDisplay = mappingResult.filter((x) => Boolean(x[3]));
173
+ const needsDisplay = mappingResult.filter((x) => !x[3]);
176
174
  if (needsDisplay.length > 0) {
177
175
  // Go get the display value.
178
- const displayValuesObs = this.displayForValue(needsDisplay.map(x => x[2]));
176
+ const displayValuesObs = this.displayForValue(needsDisplay.map((x) => x[2]));
179
177
  return displayValuesObs.pipe(first(), map((displayResults) => {
180
178
  const displayResultsWithHash = displayResults.map((x) => {
181
179
  x._hash = this.hashForValue(x.value);
182
180
  return x;
183
181
  });
184
182
  // Create a map to re-join values later.
185
- const displayResultsMapping = displayResultsWithHash.map(x => [x, x._hash]);
183
+ const displayResultsMapping = displayResultsWithHash.map((x) => [x, x._hash]);
186
184
  const valueIndexHashMap = new Map(displayResultsMapping.map(([x, hash]) => [hash, x]));
187
185
  // Update displayMap. No need to push an update notification.
188
186
  displayResultsMapping.forEach(([x, hash]) => displayMap.set(hash, x));
189
187
  // Zip values back together.
190
- const newDisplayValues = mappingResult.map(x => x[3] ?? valueIndexHashMap.get(x[1]));
188
+ const newDisplayValues = mappingResult.map((x) => x[3] ?? valueIndexHashMap.get(x[1]));
191
189
  // Return display values.
192
190
  return newDisplayValues;
193
191
  }));
194
192
  }
195
193
  else {
196
194
  // If all display values are hashed return that.
197
- return of(hasDisplay.map(x => x[3]));
195
+ return of(hasDisplay.map((x) => x[3]));
198
196
  }
199
197
  }));
200
198
  }
201
199
  ngOnInit() {
202
200
  this._formControlObs.next(this.formControl);
203
201
  // Focus after finished loading for the first time.
204
- this.context.loading$.pipe(delay(10), filter(x => x), first()).subscribe(() => {
202
+ this.context.loading$
203
+ .pipe(delay(10), filter((x) => x), first())
204
+ .subscribe(() => {
205
205
  this.filterMatInput?.focus();
206
206
  });
207
207
  }
@@ -212,7 +212,7 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
212
212
  this.filterResultsContext.destroy();
213
213
  }
214
214
  _getValueOnFormControl(valueOnFormControl) {
215
- const value = (valueOnFormControl != null) ? [].concat(valueOnFormControl) : []; // Always return an array.
215
+ const value = valueOnFormControl != null ? [].concat(valueOnFormControl) : []; // Always return an array.
216
216
  return value;
217
217
  }
218
218
  addValue(value) {
@@ -220,7 +220,7 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
220
220
  }
221
221
  removeValue(value) {
222
222
  const hashToFilter = this.hashForValue(value);
223
- const values = this.values.filter(x => this.hashForValue(x) !== hashToFilter);
223
+ const values = this.values.filter((x) => this.hashForValue(x) !== hashToFilter);
224
224
  this.setValues(values);
225
225
  }
226
226
  setValues(values) {
@@ -229,7 +229,7 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
229
229
  values = findUnique(values, this.hashForValue);
230
230
  }
231
231
  if (!this.multiSelect) {
232
- values = [values[0]].filter(x => x != null);
232
+ values = [values[0]].filter((x) => x != null);
233
233
  }
234
234
  this._setValueOnFormControl(values);
235
235
  }
@@ -237,7 +237,7 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
237
237
  _setValueOnFormControl(values) {
238
238
  let newValue = values;
239
239
  if (!this.asArrayValue) {
240
- newValue = [values[0]].filter(x => x != null)[0];
240
+ newValue = [values[0]].filter((x) => x != null)[0];
241
241
  }
242
242
  this.formControl.setValue(newValue);
243
243
  this.formControl.markAsTouched();
@@ -252,4 +252,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
252
252
  type: ViewChild,
253
253
  args: ['filterMatInput', { static: true }]
254
254
  }] } });
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuZmllbGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3BpY2thYmxlL3BpY2thYmxlLmZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFnQixhQUFhLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pLLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEwsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFxRnhDOztHQUVHO0FBRUgsTUFBTSxPQUFPLHFDQUF5QyxTQUFRLFNBQW9FO0lBRGxJOztRQU1XLGNBQVMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqQyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUF5QixTQUFT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QUNyQixNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEQ7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGlCQUFpQjtJQUNQLHNCQUFzQixDQUFDLE1BQVc7UUFDMUMsSUFBSSxRQUFRLEdBQVksTUFBTSxDQUFDO1FBRS9CLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsRDtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDOztrSUE5V1UscUNBQXFDO3NIQUFyQyxxQ0FBcUM7MkZBQXJDLHFDQUFxQztrQkFEakQsU0FBUzs4QkFJUixjQUFjO3NCQURiLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnIH0gZnJvbSBcIkBkZXJlZWtiL2RieC1jb3JlXCI7XG5pbXBvcnQgeyBiZWdpbkxvYWRpbmcsIExvYWRpbmdTdGF0ZSwgc3VjY2Vzc1Jlc3VsdCwgbWFwTG9hZGluZ1N0YXRlUmVzdWx0cywgZmlsdGVyTWF5YmUsIExpc3RMb2FkaW5nU3RhdGVDb250ZXh0SW5zdGFuY2UsIGlzTGlzdExvYWRpbmdTdGF0ZUVtcHR5IH0gZnJvbSBcIkBkZXJlZWtiL3J4anNcIjtcbmltcG9ydCB7IGNvbnZlcnRNYXliZVRvQXJyYXksIGZpbmRVbmlxdWUsIG1ha2VWYWx1ZXNHcm91cE1hcCwgTWF5YmUgfSBmcm9tIFwiQGRlcmVla2IvdXRpbFwiO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sLCBBYnN0cmFjdENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcsIEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSBcIkBuZ3gtZm9ybWx5L2NvcmVcIjtcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gXCJAbmd4LWZvcm1seS9tYXRlcmlhbFwiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgZmlsdGVyLCBtYXAsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCwgc3RhcnRXaXRoLCBzaGFyZVJlcGxheSwgbWVyZ2VNYXAsIGZpcnN0LCBkZWxheSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5Rm4sIFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZSwgUGlja2FibGVWYWx1ZUZpZWxkRmlsdGVyRm4sIFBpY2thYmxlVmFsdWVGaWVsZEhhc2hGbiwgUGlja2FibGVWYWx1ZUZpZWxkTG9hZFZhbHVlc0ZuLCBQaWNrYWJsZVZhbHVlRmllbGRWYWx1ZSB9IGZyb20gXCIuL3BpY2thYmxlXCI7XG5pbXBvcnQgeyBEYnhWYWx1ZUxpc3RJdGVtIH0gZnJvbSBcIkBkZXJlZWtiL2RieC13ZWJcIjtcbmltcG9ydCB7IGNhbWVsQ2FzZSB9IGZyb20gXCJjaGFuZ2UtY2FzZVwiO1xuXG4vKipcbiAqIFdyYXBzIHRoZSBzZWxlY3RlZCBzdGF0ZSB3aXRoIHRoZSBpdGVtcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaWNrYWJsZUl0ZW1GaWVsZEl0ZW08VD4gZXh0ZW5kcyBEYnhWYWx1ZUxpc3RJdGVtPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPj4geyB9XG5cbmV4cG9ydCB0eXBlIFBpY2thYmxlSXRlbUZpZWxkSXRlbVNvcnRGbjxUPiA9IChpdGVtczogUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+W10pID0+IFBpY2thYmxlSXRlbUZpZWxkSXRlbTxUPltdO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2thYmxlVmFsdWVGaWVsZHNGaWVsZENvbmZpZzxUPiB7XG4gIC8qKlxuICAgKiBMb2FkcyBhbGwgcGlja2FibGUgdmFsdWVzLlxuICAgKi9cbiAgbG9hZFZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkTG9hZFZhbHVlc0ZuPFQ+O1xuICAvKipcbiAgICogVXNlZCBmb3IgYnVpbGRpbmcgYSBkaXNwbGF5IHZhbHVlIGdpdmVuIHRoZSBpbnB1dC5cbiAgICovXG4gIGRpc3BsYXlGb3JWYWx1ZTogUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheUZuPFQ+O1xuICAvKipcbiAgICogVXNlZCBmb3IgaGFzaGluZyBkaXNwbGF5IHZhbHVlcyBhbmQgb21pdHRpbmcgcmVwZWF0IHZhbHVlcy5cbiAgICpcbiAgICogSWYgaGFzaEZvclZhbHVlIGlzIG5vdCBwcm92aWRlZCwgdGhlIHZhbHVlJ3MgdmFsdWUgd2lsbCBiZSB1c2VkIGFzIGlzLlxuICAgKi9cbiAgaGFzaEZvclZhbHVlPzogUGlja2FibGVWYWx1ZUZpZWxkSGFzaEZuPFQ+O1xuICAvKipcbiAgICogVXNlZCBmb3IgZmlsdGVyaW5nIHZhbHVlcyB2aWEgdGhlIHNlYXJjaCB0ZXh0LlxuICAgKi9cbiAgZmlsdGVyVmFsdWVzPzogUGlja2FibGVWYWx1ZUZpZWxkRmlsdGVyRm48VD47XG4gIC8qKlxuICAgKiBVc2VkIGZvciBzb3J0aW5nIHRoZSBpdGVtcyBiZWZvcmUgdGhleSBhcmUgZGlzcGxheWVkLlxuICAgKiBcbiAgICogU2hvdWxkIG9ubHkgYmUgdXNlZCB0byBzb3J0IHZhbHVlcy5cbiAgICovXG4gIHNvcnRJdGVtcz86IFBpY2thYmxlSXRlbUZpZWxkSXRlbVNvcnRGbjxUPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IG11bHRpcGxlIGl0ZW1zIHRvIGJlIHNlbGVjdGVkLlxuICAgKi9cbiAgbXVsdGlTZWxlY3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2V0L2dldCB2YWx1ZXMgYXMgYW4gYXJyYXkgb3IgYSBzaW5nbGUgdmFsdWUuIElmIHNldCBmYWxzZSwgbXVsdGlTZWxlY3QgaXMgaWdub3JlZC5cbiAgICovXG4gIGFzQXJyYXlWYWx1ZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzaG93IHRoZSB0ZXh0IGZpbHRlci4gVHJ1ZSBieSBkZWZhdWx0IGlmIGZpbHRlclZhbHVlcyBpcyBwcm92aWRlZC5cbiAgICovXG4gIHNob3dUZXh0RmlsdGVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHNraXAgdGhlIGZpbHRlciBmdW5jdGlvbiB3aGVuIHRoZSBpbnB1dCBpcyBlbXB0eS5cbiAgICogXG4gICAqIFRydWUgYnkgZGVmYXVsdC5cbiAgICovXG4gIHNraXBGaWx0ZXJGbk9uRW1wdHk/OiBib29sZWFuO1xuICAvKipcbiAgICogRmlsdGVyIExhYmVsXG4gICAqL1xuICBmaWx0ZXJMYWJlbD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB2YWx1ZXMgdGhhdCBjYW4gYmUgcGlja2VkXG4gICAqL1xuICBtYXhQaWNrcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uL2hpbnQgdG8gZGlzcGxheS5cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogRm9vdGVyIERpc3BsYXlcbiAgICovXG4gIGZvb3RlckNvbmZpZz86IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZztcbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHNlbGVjdGlvbiBtb2RlIG9mIHRoZSBsaXN0IHRvIFwidmlld1wiIG1vZGUgb24gZGlzYWJsZWQsIGhpZGluZyB0aGUgc2VsZWN0aW9uIGJveGVzLlxuICAgKi9cbiAgY2hhbmdlU2VsZWN0aW9uTW9kZVRvVmlld09uRGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2thYmxlVmFsdWVGaWVsZHNGb3JtbHlGaWVsZENvbmZpZzxUPiBleHRlbmRzIEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgcGlja2FibGVGaWVsZDogUGlja2FibGVWYWx1ZUZpZWxkc0ZpZWxkQ29uZmlnPFQ+O1xufVxuXG4vKipcbiAqIERpc3BsYXllZCB2YWx1ZSB3aXRoIHRoZSBjb21wdXRlZCBoYXNoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQsIE0gPSBhbnk+IGV4dGVuZHMgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+IHtcbiAgX2hhc2g6IGFueTtcbn1cblxuLyoqXG4gKiBVc2VkIGZvciBwaWNraW5nIHByZS1zZXQgdmFsdWVzIHVzaW5nIGl0ZW1zIGFzIHRoZSBwcmVzZW50YXRpb24uXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGJ4UGlja2FibGVJdGVtRmllbGREaXJlY3RpdmU8VD4gZXh0ZW5kcyBGaWVsZFR5cGU8UGlja2FibGVWYWx1ZUZpZWxkc0Zvcm1seUZpZWxkQ29uZmlnPFQ+ICYgRmllbGRUeXBlQ29uZmlnPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKCdmaWx0ZXJNYXRJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGZpbHRlck1hdElucHV0ITogTWF0SW5wdXQ7XG5cbiAgcmVhZG9ubHkgaW5wdXRDdHJsID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICBwcml2YXRlIF9mb3JtQ29udHJvbE9icyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8QWJzdHJhY3RDb250cm9sPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZm9ybUNvbnRyb2wkID0gdGhpcy5fZm9ybUNvbnRyb2xPYnMucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICBwcml2YXRlIF9kaXNwbGF5SGFzaE1hcCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPGFueSwgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+Pj4obmV3IE1hcCgpKTtcblxuICByZWFkb25seSBmaWx0ZXJJbnB1dFZhbHVlJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5pbnB1dEN0cmwudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCBhcyBhbnkpKTtcbiAgcmVhZG9ubHkgZmlsdGVySW5wdXRWYWx1ZVN0cmluZyQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZmlsdGVySW5wdXRWYWx1ZSQucGlwZShcbiAgICBkZWJvdW5jZVRpbWUoMjAwKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbG9hZFJlc3VsdHNEaXNwbGF5VmFsdWVzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPltdPj4gPSB0aGlzLmZvcm1Db250cm9sJC5waXBlKFxuICAgIGZpcnN0KCksXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubG9hZFZhbHVlc0ZuKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoeCkgPT4gdGhpcy5sb2FkRGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHgpKSxcbiAgICAgIHN0YXJ0V2l0aChiZWdpbkxvYWRpbmc8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD5bXT4oKSksXG4gICAgKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBfZm9ybUNvbnRyb2xWYWx1ZTogT2JzZXJ2YWJsZTxUIHwgVFtdPiA9IHRoaXMuZm9ybUNvbnRyb2wkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGNvbnRyb2wgPT4gY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKSlcbiAgKTtcblxuICByZWFkb25seSBsb2FkUmVzdWx0c0Rpc3BsYXlWYWx1ZXMkOiBPYnNlcnZhYmxlPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10+ID0gdGhpcy5sb2FkUmVzdWx0c0Rpc3BsYXlWYWx1ZXNTdGF0ZSQucGlwZShcbiAgICBtYXAoeCA9PiB4Py52YWx1ZSA/PyBbXSlcbiAgKTtcblxuICAvKipcbiAgICogQ3VycmVudCB2YWx1ZXMgaW4gdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlcyQ6IE9ic2VydmFibGU8VFtdPiA9IHRoaXMuX2Zvcm1Db250cm9sVmFsdWUucGlwZShcbiAgICBtYXAoY29udmVydE1heWJlVG9BcnJheSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvKipcbiAgICogQ3VycmVudCB2YWx1ZXMgd2l0aCB0aGVpciBkaXNwbGF5IHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheVZhbHVlc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD5bXT4+ID1cbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmxvYWRSZXN1bHRzRGlzcGxheVZhbHVlcyQsIHRoaXMudmFsdWVzJF0pLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKFtkaXNwbGF5VmFsdWVzLCBjdXJyZW50VmFsdWVzXSkgPT4ge1xuICAgICAgICBjb25zdCBkaXNwbGF5VmFsdWVzTWFwID0gbWFrZVZhbHVlc0dyb3VwTWFwKGRpc3BsYXlWYWx1ZXMsICh4KSA9PiB0aGlzLmhhc2hGb3JWYWx1ZSh4LnZhbHVlKSk7XG4gICAgICAgIGNvbnN0IHZhbHVlc05vdEluRGlzcGxheU1hcDogVFtdID0gW107XG5cbiAgICAgICAgY3VycmVudFZhbHVlcy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5oYXNoRm9yVmFsdWUoeCk7XG4gICAgICAgICAgbGV0IGRpc3BsYXlWYWx1ZTogTWF5YmU8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD4+ID0gZGlzcGxheVZhbHVlc01hcC5nZXQoa2V5KT8uWzBdO1xuXG4gICAgICAgICAgaWYgKCFkaXNwbGF5VmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlc05vdEluRGlzcGxheU1hcC5wdXNoKHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHZhbHVlc05vdEluRGlzcGxheU1hcC5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkRGlzcGxheVZhbHVlc0ZvclZhbHVlcyh2YWx1ZXNOb3RJbkRpc3BsYXlNYXApLnBpcGUoXG4gICAgICAgICAgICBtYXAoeCA9PiBtYXBMb2FkaW5nU3RhdGVSZXN1bHRzKHgsIHtcbiAgICAgICAgICAgICAgbWFwVmFsdWU6IChsb2FkZWRWYWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10pID0+IHtcbiAgICAgICAgICAgICAgICBsb2FkZWRWYWx1ZXMuZm9yRWFjaCh4ID0+IHguaXNVbmtub3duID0geC5pc1Vua25vd24gPz8gdHJ1ZSk7IC8vIEFzc2lnbiB1bmtub3duIGZsYWcuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChbLi4uZGlzcGxheVZhbHVlcywgLi4ubG9hZGVkVmFsdWVzXSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHN1Y2Nlc3NSZXN1bHQoZGlzcGxheVZhbHVlcykpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgLyoqXG4gICAqIFJlc3VsdHMgdG8gYmUgZGlzcGxheWVkIGlmIGZpbHRlcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyZWRTZWFyY2hSZXN1bHRzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPltdPj4gPSB0aGlzLmxvYWRSZXN1bHRzRGlzcGxheVZhbHVlcyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHZhbHVlcykgPT4gdGhpcy5maWx0ZXJJbnB1dFZhbHVlU3RyaW5nJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKHRleHQgPT4gY29tYmluZUxhdGVzdChbdGhpcy5fZmlsdGVyVmFsdWVzKHRleHQsIHZhbHVlcyksIHRoaXMuZGlzcGxheVZhbHVlc1N0YXRlJF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW3ZhbHVlcywgZGlzcGxheVN0YXRlXSkgPT4gbWFwTG9hZGluZ1N0YXRlUmVzdWx0cyhkaXNwbGF5U3RhdGUsIHtcbiAgICAgICAgICBtYXBWYWx1ZTogKGRpc3BsYXlWYWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlSGFzaFNldCA9IG5ldyBTZXQodmFsdWVzLm1hcCh4ID0+IHRoaXMuaGFzaEZvclZhbHVlKHgpKSk7XG4gICAgICAgICAgICByZXR1cm4gZGlzcGxheVZhbHVlcy5maWx0ZXIoeCA9PiAheC5pc1Vua25vd24gJiYgdmFsdWVIYXNoU2V0Lmhhcyh4Ll9oYXNoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSksXG4gICAgICAgIHN0YXJ0V2l0aChiZWdpbkxvYWRpbmcoKSlcbiAgICAgICkpXG4gICAgKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBmaWx0ZXJlZFNlYXJjaFJlc3VsdHMkOiBPYnNlcnZhYmxlPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10+ID0gdGhpcy5maWx0ZXJlZFNlYXJjaFJlc3VsdHNTdGF0ZSQucGlwZShcbiAgICBtYXAoeCA9PiB4Py52YWx1ZSksXG4gICAgZmlsdGVyTWF5YmUoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGl0ZW1zJDogT2JzZXJ2YWJsZTxQaWNrYWJsZUl0ZW1GaWVsZEl0ZW08VD5bXT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmZpbHRlcmVkU2VhcmNoUmVzdWx0cyQsIHRoaXMudmFsdWVzJF0pLnBpcGUoXG4gICAgbWFwKChbZGlzcGxheVZhbHVlcywgdmFsdWVzXSkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRIYXNoVmFsdWVzU2V0ID0gbmV3IFNldCh2YWx1ZXMubWFwKHggPT4gdGhpcy5oYXNoRm9yVmFsdWUoeCkpKTtcbiAgICAgIGxldCBpdGVtczogUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+W10gPSBkaXNwbGF5VmFsdWVzLm1hcCgoeCkgPT4gKHsgaXRlbVZhbHVlOiB4LCBzZWxlY3RlZDogc2VsZWN0ZWRIYXNoVmFsdWVzU2V0Lmhhcyh4Ll9oYXNoKSB9KSk7XG5cbiAgICAgIGlmICh0aGlzLnNvcnRJdGVtcykge1xuICAgICAgICBpdGVtcyA9IHRoaXMuc29ydEl0ZW1zKGl0ZW1zKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaXRlbXNMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZT4gPSB0aGlzLmxvYWRSZXN1bHRzRGlzcGxheVZhbHVlcyQucGlwZShcbiAgICBzd2l0Y2hNYXAoeCA9PiB0aGlzLml0ZW1zJC5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIG1hcCh4ID0+IHN1Y2Nlc3NSZXN1bHQoeCkpLFxuICAgICAgc3RhcnRXaXRoKGJlZ2luTG9hZGluZygpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKSlcbiAgKTtcblxuICAvKipcbiAgICogQ29udGV4dCB1c2VkIGZvciBtYW5hZ2luZyB0aGUgbG9hZGluZyBvZiBpdGVtcywgb3Igd2hlbiB0aGUgY3VycmVudCByZXN1bHRzIGNoYW5nZS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBuZXcgTGlzdExvYWRpbmdTdGF0ZUNvbnRleHRJbnN0YW5jZSh7IG9iczogdGhpcy5pdGVtc0xvYWRpbmdTdGF0ZSQsIHNob3dMb2FkaW5nT25Ob1ZhbHVlOiBmYWxzZSB9KTtcblxuICByZWFkb25seSBmaWx0ZXJJdGVtc0xvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPiA9IHRoaXMuaXRlbXMkLnBpcGUoXG4gICAgbWFwKHggPT4gc3VjY2Vzc1Jlc3VsdCh4KSksXG4gICAgc3RhcnRXaXRoKGJlZ2luTG9hZGluZygpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8qKlxuICAgKiBDb250ZXh0IHVzZWQgZm9yIHNlYXJjaGluZy9maWx0ZXJpbmcuXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXJSZXN1bHRzQ29udGV4dCA9IG5ldyBMaXN0TG9hZGluZ1N0YXRlQ29udGV4dEluc3RhbmNlKHsgb2JzOiB0aGlzLmZpbHRlcmVkU2VhcmNoUmVzdWx0c1N0YXRlJCwgc2hvd0xvYWRpbmdPbk5vVmFsdWU6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgbm9JdGVtc0F2YWlsYWJsZSQgPSB0aGlzLmZpbHRlckl0ZW1zTG9hZGluZ1N0YXRlJC5waXBlKGlzTGlzdExvYWRpbmdTdGF0ZUVtcHR5KCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuXG4gIGdldCByZWFkb25seSgpOiBNYXliZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQudGVtcGxhdGVPcHRpb25zPy5yZWFkb25seTtcbiAgfVxuXG4gIGdldCBpc1JlYWRvbmx5T3JEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkO1xuICB9XG5cbiAgZ2V0IHBpY2thYmxlRmllbGQoKTogUGlja2FibGVWYWx1ZUZpZWxkc0ZpZWxkQ29uZmlnPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5waWNrYWJsZUZpZWxkO1xuICB9XG5cbiAgZ2V0IG11bHRpU2VsZWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBpY2thYmxlRmllbGQubXVsdGlTZWxlY3QgPz8gdHJ1ZTtcbiAgfVxuXG4gIGdldCBhc0FycmF5VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5hc0FycmF5VmFsdWUgPz8gdHJ1ZTtcbiAgfVxuXG4gIGdldCBmaWx0ZXJMYWJlbCgpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5waWNrYWJsZUZpZWxkLmZpbHRlckxhYmVsO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5uYW1lID8/IChjYW1lbENhc2UodGhpcy5sYWJlbCA/PyB0aGlzLmtleSBhcyBzdHJpbmcpKTtcbiAgfVxuXG4gIGdldCBsYWJlbCgpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsO1xuICB9XG5cbiAgZ2V0IGF1dG9jb21wbGV0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5maWVsZC50ZW1wbGF0ZU9wdGlvbnM/LmF0dHJpYnV0ZXM/LlsnYXV0b2NvbXBsZXRlJ10gYXMgYW55KSA/PyB0aGlzLmtleSBhcyBzdHJpbmc7XG4gIH1cblxuICBnZXQgY2hhbmdlU2VsZWN0aW9uTW9kZVRvVmlld09uRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5jaGFuZ2VTZWxlY3Rpb25Nb2RlVG9WaWV3T25EaXNhYmxlZCA/PyBmYWxzZTtcbiAgfVxuXG4gIGdldCBzb3J0SXRlbXMoKTogTWF5YmU8UGlja2FibGVJdGVtRmllbGRJdGVtU29ydEZuPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5zb3J0SXRlbXM7XG4gIH1cblxuICBnZXQgaGFzaEZvclZhbHVlKCk6IFBpY2thYmxlVmFsdWVGaWVsZEhhc2hGbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5oYXNoRm9yVmFsdWUgPz8gKCh4KSA9PiB4IGFzIGFueSk7XG4gIH1cblxuICBnZXQgZGlzcGxheUZvclZhbHVlKCk6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlGbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5kaXNwbGF5Rm9yVmFsdWU7XG4gIH1cblxuICBnZXQgc2hvd0ZpbHRlcklucHV0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMucGlja2FibGVGaWVsZC5maWx0ZXJWYWx1ZXMpO1xuICB9XG5cbiAgZ2V0IGZpbHRlclZhbHVlc0ZuKCk6IFBpY2thYmxlVmFsdWVGaWVsZEZpbHRlckZuPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5waWNrYWJsZUZpZWxkLmZpbHRlclZhbHVlcyA/PyAoKF8sIHgpID0+IG9mKHgubWFwKHkgPT4geS52YWx1ZSkpKTtcbiAgfVxuXG4gIGdldCBza2lwRmlsdGVyRm5PbkVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBpY2thYmxlRmllbGQuc2tpcEZpbHRlckZuT25FbXB0eSA/PyB0cnVlO1xuICB9XG5cbiAgZ2V0IF9maWx0ZXJWYWx1ZXMoKTogUGlja2FibGVWYWx1ZUZpZWxkRmlsdGVyRm48VD4ge1xuICAgIGxldCBmbjogUGlja2FibGVWYWx1ZUZpZWxkRmlsdGVyRm48VD47XG5cbiAgICBpZiAodGhpcy5za2lwRmlsdGVyRm5PbkVtcHR5KSB7XG4gICAgICBmbiA9IChmaWx0ZXJUZXh0OiBNYXliZTxzdHJpbmc+LCB2YWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPltdKTogT2JzZXJ2YWJsZTxUW10+ID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdDogT2JzZXJ2YWJsZTxUW10+O1xuXG4gICAgICAgIGlmIChmaWx0ZXJUZXh0KSB7XG4gICAgICAgICAgcmVzdWx0ID0gdGhpcy5maWx0ZXJWYWx1ZXNGbihmaWx0ZXJUZXh0LCB2YWx1ZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IG9mKHZhbHVlcy5tYXAoeCA9PiB4LnZhbHVlKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm4gPSB0aGlzLmZpbHRlclZhbHVlc0ZuO1xuICAgIH1cblxuICAgIHJldHVybiBmbjtcbiAgfVxuXG4gIGdldCBzaG93VGV4dEZpbHRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5waWNrYWJsZUZpZWxkLnNob3dUZXh0RmlsdGVyID8/IEJvb2xlYW4odGhpcy5waWNrYWJsZUZpZWxkLmZpbHRlclZhbHVlcyk7XG4gIH1cblxuICBnZXQgbG9hZFZhbHVlc0ZuKCk6IFBpY2thYmxlVmFsdWVGaWVsZExvYWRWYWx1ZXNGbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5sb2FkVmFsdWVzO1xuICB9XG5cbiAgZ2V0IHZhbHVlcygpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLl9nZXRWYWx1ZU9uRm9ybUNvbnRyb2wodGhpcy5mb3JtQ29udHJvbC52YWx1ZSkgPz8gW107XG4gIH1cblxuICBnZXQgZm9vdGVyQ29uZmlnKCk6IE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZz4ge1xuICAgIHJldHVybiB0aGlzLnBpY2thYmxlRmllbGQuZm9vdGVyQ29uZmlnO1xuICB9XG5cbiAgbG9hZERpc3BsYXlWYWx1ZXNGb3JWYWx1ZXModmFsdWVzOiBUW10pOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPltdPj4ge1xuICAgIHJldHVybiB0aGlzLmxvYWREaXNwbGF5VmFsdWVzRm9yRmllbGRWYWx1ZXModmFsdWVzLm1hcCgodmFsdWUpID0+ICh7IHZhbHVlIH0pKSk7XG4gIH1cblxuICBsb2FkRGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkVmFsdWU8VD5bXSk6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10+PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHZhbHVlcykucGlwZShcbiAgICAgIG1hcCgoZGlzcGxheVZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD5bXSkgPT4gc3VjY2Vzc1Jlc3VsdChkaXNwbGF5VmFsdWVzKSksXG4gICAgICBzdGFydFdpdGgoYmVnaW5Mb2FkaW5nKCkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgZ2V0RGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkVmFsdWU8VD5bXSk6IE9ic2VydmFibGU8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD5bXT4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNwbGF5SGFzaE1hcC5waXBlKFxuICAgICAgbWVyZ2VNYXAoKGRpc3BsYXlNYXApID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGluZ1Jlc3VsdCA9IHZhbHVlc1xuICAgICAgICAgIC5tYXAoeCA9PiBbeCwgdGhpcy5oYXNoRm9yVmFsdWUoeC52YWx1ZSldKVxuICAgICAgICAgIC5tYXAoKFt4LCBoYXNoXSwgaSkgPT4gW2ksIGhhc2gsIHgsIGRpc3BsYXlNYXAuZ2V0KGhhc2gpXSBhcyBbbnVtYmVyLCBhbnksIFBpY2thYmxlVmFsdWVGaWVsZFZhbHVlPFQ+LCBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPl0pO1xuXG4gICAgICAgIGNvbnN0IGhhc0Rpc3BsYXkgPSBtYXBwaW5nUmVzdWx0LmZpbHRlcih4ID0+IEJvb2xlYW4oeFszXSkpO1xuICAgICAgICBjb25zdCBuZWVkc0Rpc3BsYXkgPSBtYXBwaW5nUmVzdWx0LmZpbHRlcih4ID0+ICF4WzNdKTtcblxuICAgICAgICBpZiAobmVlZHNEaXNwbGF5Lmxlbmd0aCA+IDApIHtcblxuICAgICAgICAgIC8vIEdvIGdldCB0aGUgZGlzcGxheSB2YWx1ZS5cbiAgICAgICAgICBjb25zdCBkaXNwbGF5VmFsdWVzT2JzID0gdGhpcy5kaXNwbGF5Rm9yVmFsdWUobmVlZHNEaXNwbGF5Lm1hcCh4ID0+IHhbMl0pKTtcblxuICAgICAgICAgIHJldHVybiBkaXNwbGF5VmFsdWVzT2JzLnBpcGUoXG4gICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgbWFwKChkaXNwbGF5UmVzdWx0cykgPT4ge1xuXG4gICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlSZXN1bHRzV2l0aEhhc2g6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10gPSBkaXNwbGF5UmVzdWx0cy5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgICAgICAoeCBhcyBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPikuX2hhc2ggPSB0aGlzLmhhc2hGb3JWYWx1ZSh4LnZhbHVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHggYXMgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD4pO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBtYXAgdG8gcmUtam9pbiB2YWx1ZXMgbGF0ZXIuXG4gICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlSZXN1bHRzTWFwcGluZzogW1BpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+LCBhbnldW10gPSBkaXNwbGF5UmVzdWx0c1dpdGhIYXNoLm1hcCh4ID0+IFt4LCB4Ll9oYXNoXSk7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlSW5kZXhIYXNoTWFwID0gbmV3IE1hcChkaXNwbGF5UmVzdWx0c01hcHBpbmcubWFwKChbeCwgaGFzaF0pID0+IFtoYXNoLCB4XSkpO1xuXG4gICAgICAgICAgICAgIC8vIFVwZGF0ZSBkaXNwbGF5TWFwLiBObyBuZWVkIHRvIHB1c2ggYW4gdXBkYXRlIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgICAgICAgZGlzcGxheVJlc3VsdHNNYXBwaW5nLmZvckVhY2goKFt4LCBoYXNoXSkgPT4gZGlzcGxheU1hcC5zZXQoaGFzaCwgeCkpO1xuXG4gICAgICAgICAgICAgIC8vIFppcCB2YWx1ZXMgYmFjayB0b2dldGhlci5cbiAgICAgICAgICAgICAgY29uc3QgbmV3RGlzcGxheVZhbHVlcyA9IG1hcHBpbmdSZXN1bHQubWFwKHggPT4geFszXSA/PyB2YWx1ZUluZGV4SGFzaE1hcC5nZXQoeFsxXSkpO1xuXG4gICAgICAgICAgICAgIC8vIFJldHVybiBkaXNwbGF5IHZhbHVlcy5cbiAgICAgICAgICAgICAgcmV0dXJuIG5ld0Rpc3BsYXlWYWx1ZXM7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAvLyBJZiBhbGwgZGlzcGxheSB2YWx1ZXMgYXJlIGhhc2hlZCByZXR1cm4gdGhhdC5cbiAgICAgICAgICByZXR1cm4gb2YoaGFzRGlzcGxheS5tYXAoeCA9PiB4WzNdKSkgYXMgT2JzZXJ2YWJsZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPltdPjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMubmV4dCh0aGlzLmZvcm1Db250cm9sKTtcblxuICAgIC8vIEZvY3VzIGFmdGVyIGZpbmlzaGVkIGxvYWRpbmcgZm9yIHRoZSBmaXJzdCB0aW1lLlxuICAgIHRoaXMuY29udGV4dC5sb2FkaW5nJC5waXBlKFxuICAgICAgZGVsYXkoMTApLFxuICAgICAgZmlsdGVyKHggPT4geCksXG4gICAgICBmaXJzdCgpLFxuICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyTWF0SW5wdXQ/LmZvY3VzKCk7XG4gICAgfSlcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5fZGlzcGxheUhhc2hNYXAuY29tcGxldGUoKTtcbiAgICB0aGlzLl9mb3JtQ29udHJvbE9icy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZmlsdGVyUmVzdWx0c0NvbnRleHQuZGVzdHJveSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9nZXRWYWx1ZU9uRm9ybUNvbnRyb2wodmFsdWVPbkZvcm1Db250cm9sOiBhbnkpOiBUW10ge1xuICAgIGNvbnN0IHZhbHVlID0gKHZhbHVlT25Gb3JtQ29udHJvbCAhPSBudWxsKSA/IFtdLmNvbmNhdCh2YWx1ZU9uRm9ybUNvbnRyb2wpIDogW107ICAvLyBBbHdheXMgcmV0dXJuIGFuIGFycmF5LlxuICAgIHJldHVybiB2YWx1ZSBhcyBUW107XG4gIH1cblxuICBhZGRWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmFsdWVzKFsuLi50aGlzLnZhbHVlcywgdmFsdWVdKTtcbiAgfVxuXG4gIHJlbW92ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgY29uc3QgaGFzaFRvRmlsdGVyID0gdGhpcy5oYXNoRm9yVmFsdWUodmFsdWUpO1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMudmFsdWVzLmZpbHRlcih4ID0+IHRoaXMuaGFzaEZvclZhbHVlKHgpICE9PSBoYXNoVG9GaWx0ZXIpO1xuICAgIHRoaXMuc2V0VmFsdWVzKHZhbHVlcyk7XG4gIH1cblxuICBzZXRWYWx1ZXModmFsdWVzOiBUW10pOiB2b2lkIHtcblxuICAgIC8vIFVzZSB0byBmaWx0ZXIgbm9uLXVuaXF1ZSB2YWx1ZXMuXG4gICAgaWYgKHRoaXMuaGFzaEZvclZhbHVlKSB7XG4gICAgICB2YWx1ZXMgPSBmaW5kVW5pcXVlKHZhbHVlcywgdGhpcy5oYXNoRm9yVmFsdWUpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgdmFsdWVzID0gW3ZhbHVlc1swXV0uZmlsdGVyKHggPT4geCAhPSBudWxsKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zZXRWYWx1ZU9uRm9ybUNvbnRyb2wodmFsdWVzKTtcbiAgfVxuXG4gIC8vIE1BUks6IEludGVybmFsXG4gIHByb3RlY3RlZCBfc2V0VmFsdWVPbkZvcm1Db250cm9sKHZhbHVlczogVFtdKTogdm9pZCB7XG4gICAgbGV0IG5ld1ZhbHVlOiBUIHwgVFtdID0gdmFsdWVzO1xuXG4gICAgaWYgKCF0aGlzLmFzQXJyYXlWYWx1ZSkge1xuICAgICAgbmV3VmFsdWUgPSBbdmFsdWVzWzBdXS5maWx0ZXIoeCA9PiB4ICE9IG51bGwpWzBdO1xuICAgIH1cblxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobmV3VmFsdWUpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG59XG4iXX0=
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuZmllbGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3BpY2thYmxlL3BpY2thYmxlLmZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWdCLGFBQWEsRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsK0JBQStCLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEwsT0FBTyxFQUFnQixtQkFBbUIsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFtQixNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xMLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBcUZ4Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxxQ0FBNkYsU0FBUSxTQUEwRTtJQUQ1TDs7UUFLVyxjQUFTLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFakMsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBeUIs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SUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNoRDtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1NBQy9DO1FBRUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxpQkFBaUI7SUFDUCxzQkFBc0IsQ0FBQyxNQUFXO1FBQzFDLElBQUksUUFBUSxHQUFZLE1BQU0sQ0FBQztRQUUvQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN0QixRQUFRLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwRDtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDOztrSUF0V1UscUNBQXFDO3NIQUFyQyxxQ0FBcUM7MkZBQXJDLHFDQUFxQztrQkFEakQsU0FBUzs4QkFHUixjQUFjO3NCQURiLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgTG9hZGluZ1N0YXRlLCBzdWNjZXNzUmVzdWx0LCBtYXBMb2FkaW5nU3RhdGVSZXN1bHRzLCBmaWx0ZXJNYXliZSwgTGlzdExvYWRpbmdTdGF0ZUNvbnRleHRJbnN0YW5jZSwgaXNMaXN0TG9hZGluZ1N0YXRlRW1wdHksIHN0YXJ0V2l0aEJlZ2luTG9hZGluZyB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgUHJpbWF0aXZlS2V5LCBjb252ZXJ0TWF5YmVUb0FycmF5LCBmaW5kVW5pcXVlLCBtYWtlVmFsdWVzR3JvdXBNYXAsIE1heWJlLCBBcnJheU9yVmFsdWUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgRmllbGRUeXBlQ29uZmlnLCBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgZmlsdGVyLCBtYXAsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCwgc3RhcnRXaXRoLCBzaGFyZVJlcGxheSwgbWVyZ2VNYXAsIGZpcnN0LCBkZWxheSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheUZuLCBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWUsIFBpY2thYmxlVmFsdWVGaWVsZEZpbHRlckZuLCBQaWNrYWJsZVZhbHVlRmllbGRIYXNoRm4sIFBpY2thYmxlVmFsdWVGaWVsZExvYWRWYWx1ZXNGbiwgUGlja2FibGVWYWx1ZUZpZWxkVmFsdWUgfSBmcm9tICcuL3BpY2thYmxlJztcbmltcG9ydCB7IERieFZhbHVlTGlzdEl0ZW0gfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IGNhbWVsQ2FzZSB9IGZyb20gJ2NoYW5nZS1jYXNlJztcblxuLyoqXG4gKiBXcmFwcyB0aGUgc2VsZWN0ZWQgc3RhdGUgd2l0aCB0aGUgaXRlbXMuXG4gKi9cbmV4cG9ydCB0eXBlIFBpY2thYmxlSXRlbUZpZWxkSXRlbTxULCBNID0gdW5rbm93bj4gPSBEYnhWYWx1ZUxpc3RJdGVtPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxULCBNPj47XG5cbmV4cG9ydCB0eXBlIFBpY2thYmxlSXRlbUZpZWxkSXRlbVNvcnRGbjxULCBNID0gdW5rbm93bj4gPSAoaXRlbXM6IFBpY2thYmxlSXRlbUZpZWxkSXRlbTxULCBNPltdKSA9PiBQaWNrYWJsZUl0ZW1GaWVsZEl0ZW08VCwgTT5bXTtcblxuZXhwb3J0IGludGVyZmFjZSBQaWNrYWJsZVZhbHVlRmllbGRzRmllbGRDb25maWc8VCwgTSA9IHVua25vd24sIEggZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXk+IHtcbiAgLyoqXG4gICAqIExvYWRzIGFsbCBwaWNrYWJsZSB2YWx1ZXMuXG4gICAqL1xuICBsb2FkVmFsdWVzOiBQaWNrYWJsZVZhbHVlRmllbGRMb2FkVmFsdWVzRm48VCwgTT47XG4gIC8qKlxuICAgKiBVc2VkIGZvciBidWlsZGluZyBhIGRpc3BsYXkgdmFsdWUgZ2l2ZW4gdGhlIGlucHV0LlxuICAgKi9cbiAgZGlzcGxheUZvclZhbHVlOiBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5Rm48VCwgTT47XG4gIC8qKlxuICAgKiBVc2VkIGZvciBoYXNoaW5nIGRpc3BsYXkgdmFsdWVzIGFuZCBvbWl0dGluZyByZXBlYXQgdmFsdWVzLlxuICAgKlxuICAgKiBJZiBoYXNoRm9yVmFsdWUgaXMgbm90IHByb3ZpZGVkLCB0aGUgdmFsdWUncyB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMgaXMuXG4gICAqL1xuICBoYXNoRm9yVmFsdWU/OiBQaWNrYWJsZVZhbHVlRmllbGRIYXNoRm48VCwgSD47XG4gIC8qKlxuICAgKiBVc2VkIGZvciBmaWx0ZXJpbmcgdmFsdWVzIHZpYSB0aGUgc2VhcmNoIHRleHQuXG4gICAqL1xuICBmaWx0ZXJWYWx1ZXM/OiBQaWNrYWJsZVZhbHVlRmllbGRGaWx0ZXJGbjxULCBNPjtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIHNvcnRpbmcgdGhlIGl0ZW1zIGJlZm9yZSB0aGV5IGFyZSBkaXNwbGF5ZWQuXG4gICAqXG4gICAqIFNob3VsZCBvbmx5IGJlIHVzZWQgdG8gc29ydCB2YWx1ZXMuXG4gICAqL1xuICBzb3J0SXRlbXM/OiBQaWNrYWJsZUl0ZW1GaWVsZEl0ZW1Tb3J0Rm48VCwgTT47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBhbGxvdyBtdWx0aXBsZSBpdGVtcyB0byBiZSBzZWxlY3RlZC5cbiAgICovXG4gIG11bHRpU2VsZWN0PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHNldC9nZXQgdmFsdWVzIGFzIGFuIGFycmF5IG9yIGEgc2luZ2xlIHZhbHVlLiBJZiBzZXQgZmFsc2UsIG11bHRpU2VsZWN0IGlzIGlnbm9yZWQuXG4gICAqL1xuICBhc0FycmF5VmFsdWU/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2hvdyB0aGUgdGV4dCBmaWx0ZXIuIFRydWUgYnkgZGVmYXVsdCBpZiBmaWx0ZXJWYWx1ZXMgaXMgcHJvdmlkZWQuXG4gICAqL1xuICBzaG93VGV4dEZpbHRlcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBza2lwIHRoZSBmaWx0ZXIgZnVuY3Rpb24gd2hlbiB0aGUgaW5wdXQgaXMgZW1wdHkuXG4gICAqXG4gICAqIFRydWUgYnkgZGVmYXVsdC5cbiAgICovXG4gIHNraXBGaWx0ZXJGbk9uRW1wdHk/OiBib29sZWFuO1xuICAvKipcbiAgICogRmlsdGVyIExhYmVsXG4gICAqL1xuICBmaWx0ZXJMYWJlbD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB2YWx1ZXMgdGhhdCBjYW4gYmUgcGlja2VkXG4gICAqL1xuICBtYXhQaWNrcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uL2hpbnQgdG8gZGlzcGxheS5cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogRm9vdGVyIERpc3BsYXlcbiAgICovXG4gIGZvb3RlckNvbmZpZz86IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZztcbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHNlbGVjdGlvbiBtb2RlIG9mIHRoZSBsaXN0IHRvIFwidmlld1wiIG1vZGUgb24gZGlzYWJsZWQsIGhpZGluZyB0aGUgc2VsZWN0aW9uIGJveGVzLlxuICAgKi9cbiAgY2hhbmdlU2VsZWN0aW9uTW9kZVRvVmlld09uRGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2thYmxlVmFsdWVGaWVsZHNGb3JtbHlGaWVsZENvbmZpZzxULCBNID0gdW5rbm93biwgSCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleT4gZXh0ZW5kcyBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIHBpY2thYmxlRmllbGQ6IFBpY2thYmxlVmFsdWVGaWVsZHNGaWVsZENvbmZpZzxULCBNLCBIPjtcbn1cblxuLyoqXG4gKiBEaXNwbGF5ZWQgdmFsdWUgd2l0aCB0aGUgY29tcHV0ZWQgaGFzaC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxULCBNID0gdW5rbm93biwgSCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleT4gZXh0ZW5kcyBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT4ge1xuICBfaGFzaDogSDtcbn1cblxuLyoqXG4gKiBVc2VkIGZvciBwaWNraW5nIHByZS1zZXQgdmFsdWVzIHVzaW5nIGl0ZW1zIGFzIHRoZSBwcmVzZW50YXRpb24uXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGJ4UGlja2FibGVJdGVtRmllbGREaXJlY3RpdmU8VCwgTSA9IHVua25vd24sIEggZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXk+IGV4dGVuZHMgRmllbGRUeXBlPFBpY2thYmxlVmFsdWVGaWVsZHNGb3JtbHlGaWVsZENvbmZpZzxULCBNLCBIPiAmIEZpZWxkVHlwZUNvbmZpZz4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlck1hdElucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgZmlsdGVyTWF0SW5wdXQhOiBNYXRJbnB1dDtcblxuICByZWFkb25seSBpbnB1dEN0cmwgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gIHByaXZhdGUgX2Zvcm1Db250cm9sT2JzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxBYnN0cmFjdENvbnRyb2w+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBmb3JtQ29udHJvbCQgPSB0aGlzLl9mb3JtQ29udHJvbE9icy5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHByaXZhdGUgX2Rpc3BsYXlIYXNoTWFwID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXA8SCwgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+Pj4obmV3IE1hcCgpKTtcblxuICByZWFkb25seSBmaWx0ZXJJbnB1dFZhbHVlJDogT2JzZXJ2YWJsZTxNYXliZTxzdHJpbmc+PiA9IHRoaXMuaW5wdXRDdHJsLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh1bmRlZmluZWQpKTtcbiAgcmVhZG9ubHkgZmlsdGVySW5wdXRWYWx1ZVN0cmluZyQ6IE9ic2VydmFibGU8TWF5YmU8c3RyaW5nPj4gPSB0aGlzLmZpbHRlcklucHV0VmFsdWUkLnBpcGUoZGVib3VuY2VUaW1lKDIwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBsb2FkUmVzdWx0c0Rpc3BsYXlWYWx1ZXNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQsIE0sIEg+W10+PiA9IHRoaXMuZm9ybUNvbnRyb2wkLnBpcGUoXG4gICAgZmlyc3QoKSxcbiAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgIHRoaXMubG9hZFZhbHVlc0ZuKCkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCh4KSA9PiB0aGlzLmxvYWREaXNwbGF5VmFsdWVzRm9yRmllbGRWYWx1ZXMoeCkpLFxuICAgICAgICBzdGFydFdpdGhCZWdpbkxvYWRpbmcoKVxuICAgICAgKVxuICAgICksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBfZm9ybUNvbnRyb2xWYWx1ZTogT2JzZXJ2YWJsZTxUIHwgVFtdPiA9IHRoaXMuZm9ybUNvbnRyb2wkLnBpcGUoc3dpdGNoTWFwKChjb250cm9sKSA9PiBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSwgc2hhcmVSZXBsYXkoMSkpKSk7XG5cbiAgcmVhZG9ubHkgbG9hZFJlc3VsdHNEaXNwbGF5VmFsdWVzJDogT2JzZXJ2YWJsZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxULCBNLCBIPltdPiA9IHRoaXMubG9hZFJlc3VsdHNEaXNwbGF5VmFsdWVzU3RhdGUkLnBpcGUobWFwKCh4KSA9PiB4Py52YWx1ZSA/PyBbXSkpO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IHZhbHVlcyBpbiB0aGUgZm9ybSBjb250cm9sLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWVzJDogT2JzZXJ2YWJsZTxUW10+ID0gdGhpcy5fZm9ybUNvbnRyb2xWYWx1ZS5waXBlKG1hcChjb252ZXJ0TWF5YmVUb0FycmF5KSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IHZhbHVlcyB3aXRoIHRoZWlyIGRpc3BsYXkgdmFsdWUuXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5VmFsdWVzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxULCBNLCBIPltdPj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmxvYWRSZXN1bHRzRGlzcGxheVZhbHVlcyQsIHRoaXMudmFsdWVzJF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbZGlzcGxheVZhbHVlcywgY3VycmVudFZhbHVlc10pID0+IHtcbiAgICAgIGNvbnN0IGRpc3BsYXlWYWx1ZXNNYXAgPSBtYWtlVmFsdWVzR3JvdXBNYXAoZGlzcGxheVZhbHVlcywgKHgpID0+IHRoaXMuaGFzaEZvclZhbHVlKHgudmFsdWUpKTtcbiAgICAgIGNvbnN0IHZhbHVlc05vdEluRGlzcGxheU1hcDogVFtdID0gW107XG5cbiAgICAgIGN1cnJlbnRWYWx1ZXMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSB0aGlzLmhhc2hGb3JWYWx1ZSh4KTtcbiAgICAgICAgY29uc3QgZGlzcGxheVZhbHVlOiBNYXliZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxULCBNLCBIPj4gPSBkaXNwbGF5VmFsdWVzTWFwLmdldChrZXkpPy5bMF07XG5cbiAgICAgICAgaWYgKCFkaXNwbGF5VmFsdWUpIHtcbiAgICAgICAgICB2YWx1ZXNOb3RJbkRpc3BsYXlNYXAucHVzaCh4KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmICh2YWx1ZXNOb3RJbkRpc3BsYXlNYXAubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWREaXNwbGF5VmFsdWVzRm9yVmFsdWVzKHZhbHVlc05vdEluRGlzcGxheU1hcCkucGlwZShcbiAgICAgICAgICBtYXAoKHgpID0+XG4gICAgICAgICAgICBtYXBMb2FkaW5nU3RhdGVSZXN1bHRzKHgsIHtcbiAgICAgICAgICAgICAgbWFwVmFsdWU6IChsb2FkZWRWYWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQsIE0sIEg+W10pID0+IHtcbiAgICAgICAgICAgICAgICBsb2FkZWRWYWx1ZXMuZm9yRWFjaCgoeCkgPT4gKHguaXNVbmtub3duID0geC5pc1Vua25vd24gPz8gdHJ1ZSkpOyAvLyBBc3NpZ24gdW5rbm93biBmbGFnLlxuICAgICAgICAgICAgICAgIHJldHVybiBbLi4uZGlzcGxheVZhbHVlcywgLi4ubG9hZGVkVmFsdWVzXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gb2Yoc3VjY2Vzc1Jlc3VsdChkaXNwbGF5VmFsdWVzKSk7XG4gICAgICB9XG4gICAgfSlcbiAgKTtcblxuICAvKipcbiAgICogUmVzdWx0cyB0byBiZSBkaXNwbGF5ZWQgaWYgZmlsdGVyZWQuXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXJlZFNlYXJjaFJlc3VsdHNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQsIE0sIEg+W10+PiA9IHRoaXMubG9hZFJlc3VsdHNEaXNwbGF5VmFsdWVzJC5waXBlKFxuICAgIHN3aXRjaE1hcCgodmFsdWVzKSA9PlxuICAgICAgdGhpcy5maWx0ZXJJbnB1dFZhbHVlU3RyaW5nJC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHRleHQpID0+XG4gICAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5fZmlsdGVyVmFsdWVzKHRleHQsIHZhbHVlcyksIHRoaXMuZGlzcGxheVZhbHVlc1N0YXRlJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFt2YWx1ZXMsIGRpc3BsYXlTdGF0ZV0pID0+XG4gICAgICAgICAgICAgIG1hcExvYWRpbmdTdGF0ZVJlc3VsdHMoZGlzcGxheVN0YXRlLCB7XG4gICAgICAgICAgICAgICAgbWFwVmFsdWU6IChkaXNwbGF5VmFsdWVzOiBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxULCBNLCBIPltdKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZUhhc2hTZXQgPSBuZXcgU2V0KHZhbHVlcy5tYXAoKHgpID0+IHRoaXMuaGFzaEZvclZhbHVlKHgpKSk7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZGlzcGxheVZhbHVlcy5maWx0ZXIoKHgpID0+ICF4LmlzVW5rbm93biAmJiB2YWx1ZUhhc2hTZXQuaGFzKHguX2hhc2gpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZmlsdGVyZWRTZWFyY2hSZXN1bHRzJDogT2JzZXJ2YWJsZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxULCBNLCBIPltdPiA9IHRoaXMuZmlsdGVyZWRTZWFyY2hSZXN1bHRzU3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Py52YWx1ZSksXG4gICAgZmlsdGVyTWF5YmUoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGl0ZW1zJDogT2JzZXJ2YWJsZTxQaWNrYWJsZUl0ZW1GaWVsZEl0ZW08VCwgTT5bXT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmZpbHRlcmVkU2VhcmNoUmVzdWx0cyQsIHRoaXMudmFsdWVzJF0pLnBpcGUoXG4gICAgbWFwKChbZGlzcGxheVZhbHVlcywgdmFsdWVzXSkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRIYXNoVmFsdWVzU2V0ID0gbmV3IFNldCh2YWx1ZXMubWFwKCh4KSA9PiB0aGlzLmhhc2hGb3JWYWx1ZSh4KSkpO1xuICAgICAgbGV0IGl0ZW1zOiBQaWNrYWJsZUl0ZW1GaWVsZEl0ZW08VCwgTT5bXSA9IGRpc3BsYXlWYWx1ZXMubWFwKCh4KSA9PiAoeyBpdGVtVmFsdWU6IHgsIHNlbGVjdGVkOiBzZWxlY3RlZEhhc2hWYWx1ZXNTZXQuaGFzKHguX2hhc2gpIH0pKTtcblxuICAgICAgaWYgKHRoaXMuc29ydEl0ZW1zKSB7XG4gICAgICAgIGl0ZW1zID0gdGhpcy5zb3J0SXRlbXMoaXRlbXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaXRlbXM7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpdGVtc0xvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPFBpY2thYmxlSXRlbUZpZWxkSXRlbTxUPltdPj4gPSB0aGlzLmxvYWRSZXN1bHRzRGlzcGxheVZhbHVlcyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgIHRoaXMuaXRlbXMkLnBpcGUoXG4gICAgICAgIGZpcnN0KCksXG4gICAgICAgIG1hcCgoeCkgPT4gc3VjY2Vzc1Jlc3VsdCh4KSksXG4gICAgICAgIHN0YXJ0V2l0aEJlZ2luTG9hZGluZygpLFxuICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICAvKipcbiAgICogQ29udGV4dCB1c2VkIGZvciBtYW5hZ2luZyB0aGUgbG9hZGluZyBvZiBpdGVtcywgb3Igd2hlbiB0aGUgY3VycmVudCByZXN1bHRzIGNoYW5nZS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBuZXcgTGlzdExvYWRpbmdTdGF0ZUNvbnRleHRJbnN0YW5jZSh7IG9iczogdGhpcy5pdGVtc0xvYWRpbmdTdGF0ZSQsIHNob3dMb2FkaW5nT25Ob1ZhbHVlOiBmYWxzZSB9KTtcblxuICByZWFkb25seSBmaWx0ZXJJdGVtc0xvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPFBpY2thYmxlSXRlbUZpZWxkSXRlbTxUPltdPj4gPSB0aGlzLml0ZW1zJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gc3VjY2Vzc1Jlc3VsdCh4KSksXG4gICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvKipcbiAgICogQ29udGV4dCB1c2VkIGZvciBzZWFyY2hpbmcvZmlsdGVyaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyUmVzdWx0c0NvbnRleHQgPSBuZXcgTGlzdExvYWRpbmdTdGF0ZUNvbnRleHRJbnN0YW5jZSh7IG9iczogdGhpcy5maWx0ZXJlZFNlYXJjaFJlc3VsdHNTdGF0ZSQsIHNob3dMb2FkaW5nT25Ob1ZhbHVlOiB0cnVlIH0pO1xuXG4gIHJlYWRvbmx5IG5vSXRlbXNBdmFpbGFibGUkID0gdGhpcy5maWx0ZXJJdGVtc0xvYWRpbmdTdGF0ZSQucGlwZShpc0xpc3RMb2FkaW5nU3RhdGVFbXB0eSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICBnZXQgcmVhZG9ubHkoKTogTWF5YmU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnRlbXBsYXRlT3B0aW9ucz8ucmVhZG9ubHk7XG4gIH1cblxuICBnZXQgaXNSZWFkb25seU9yRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZDtcbiAgfVxuXG4gIGdldCBwaWNrYWJsZUZpZWxkKCk6IFBpY2thYmxlVmFsdWVGaWVsZHNGaWVsZENvbmZpZzxULCBNLCBIPiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucGlja2FibGVGaWVsZDtcbiAgfVxuXG4gIGdldCBtdWx0aVNlbGVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5waWNrYWJsZUZpZWxkLm11bHRpU2VsZWN0ID8/IHRydWU7XG4gIH1cblxuICBnZXQgYXNBcnJheVZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBpY2thYmxlRmllbGQuYXNBcnJheVZhbHVlID8/IHRydWU7XG4gIH1cblxuICBnZXQgZmlsdGVyTGFiZWwoKTogTWF5YmU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5maWx0ZXJMYWJlbDtcbiAgfVxuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQubmFtZSA/PyBjYW1lbENhc2UodGhpcy5sYWJlbCA/PyAodGhpcy5rZXkgYXMgc3RyaW5nKSk7XG4gIH1cblxuICBnZXQgbGFiZWwoKTogTWF5YmU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQudGVtcGxhdGVPcHRpb25zPy5sYWJlbDtcbiAgfVxuXG4gIGdldCBhdXRvY29tcGxldGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuZmllbGQudGVtcGxhdGVPcHRpb25zPy5hdHRyaWJ1dGVzPy5bJ2F1dG9jb21wbGV0ZSddID8/IHRoaXMua2V5KSBhcyBzdHJpbmc7XG4gIH1cblxuICBnZXQgY2hhbmdlU2VsZWN0aW9uTW9kZVRvVmlld09uRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5jaGFuZ2VTZWxlY3Rpb25Nb2RlVG9WaWV3T25EaXNhYmxlZCA/PyBmYWxzZTtcbiAgfVxuXG4gIGdldCBzb3J0SXRlbXMoKTogTWF5YmU8UGlja2FibGVJdGVtRmllbGRJdGVtU29ydEZuPFQsIE0+PiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5zb3J0SXRlbXM7XG4gIH1cblxuICBnZXQgaGFzaEZvclZhbHVlKCk6IFBpY2thYmxlVmFsdWVGaWVsZEhhc2hGbjxULCBIPiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5oYXNoRm9yVmFsdWUgPz8gKCh4KSA9PiB4IGFzIHVua25vd24gYXMgSCk7XG4gIH1cblxuICBnZXQgZGlzcGxheUZvclZhbHVlKCk6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlGbjxULCBNPiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5kaXNwbGF5Rm9yVmFsdWU7XG4gIH1cblxuICBnZXQgc2hvd0ZpbHRlcklucHV0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMucGlja2FibGVGaWVsZC5maWx0ZXJWYWx1ZXMpO1xuICB9XG5cbiAgZ2V0IGZpbHRlclZhbHVlc0ZuKCk6IFBpY2thYmxlVmFsdWVGaWVsZEZpbHRlckZuPFQsIE0+IHtcbiAgICByZXR1cm4gdGhpcy5waWNrYWJsZUZpZWxkLmZpbHRlclZhbHVlcyA/PyAoKF8sIHgpID0+IG9mKHgubWFwKCh5KSA9PiB5LnZhbHVlKSkpO1xuICB9XG5cbiAgZ2V0IHNraXBGaWx0ZXJGbk9uRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5za2lwRmlsdGVyRm5PbkVtcHR5ID8/IHRydWU7XG4gIH1cblxuICBnZXQgX2ZpbHRlclZhbHVlcygpOiBQaWNrYWJsZVZhbHVlRmllbGRGaWx0ZXJGbjxULCBNPiB7XG4gICAgbGV0IGZuOiBQaWNrYWJsZVZhbHVlRmllbGRGaWx0ZXJGbjxULCBNPjtcblxuICAgIGlmICh0aGlzLnNraXBGaWx0ZXJGbk9uRW1wdHkpIHtcbiAgICAgIGZuID0gKGZpbHRlclRleHQ6IE1heWJlPHN0cmluZz4sIHZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+W10pOiBPYnNlcnZhYmxlPFRbXT4gPT4ge1xuICAgICAgICBsZXQgcmVzdWx0OiBPYnNlcnZhYmxlPFRbXT47XG5cbiAgICAgICAgaWYgKGZpbHRlclRleHQpIHtcbiAgICAgICAgICByZXN1bHQgPSB0aGlzLmZpbHRlclZhbHVlc0ZuKGZpbHRlclRleHQsIHZhbHVlcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gb2YodmFsdWVzLm1hcCgoeCkgPT4geC52YWx1ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGZuID0gdGhpcy5maWx0ZXJWYWx1ZXNGbjtcbiAgICB9XG5cbiAgICByZXR1cm4gZm47XG4gIH1cblxuICBnZXQgc2hvd1RleHRGaWx0ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5zaG93VGV4dEZpbHRlciA/PyBCb29sZWFuKHRoaXMucGlja2FibGVGaWVsZC5maWx0ZXJWYWx1ZXMpO1xuICB9XG5cbiAgZ2V0IGxvYWRWYWx1ZXNGbigpOiBQaWNrYWJsZVZhbHVlRmllbGRMb2FkVmFsdWVzRm48VCwgTT4ge1xuICAgIHJldHVybiB0aGlzLnBpY2thYmxlRmllbGQubG9hZFZhbHVlcztcbiAgfVxuXG4gIGdldCB2YWx1ZXMoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0VmFsdWVPbkZvcm1Db250cm9sKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpID8/IFtdO1xuICB9XG5cbiAgZ2V0IGZvb3RlckNvbmZpZygpOiBNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc+IHtcbiAgICByZXR1cm4gdGhpcy5waWNrYWJsZUZpZWxkLmZvb3RlckNvbmZpZztcbiAgfVxuXG4gIGxvYWREaXNwbGF5VmFsdWVzRm9yVmFsdWVzKHZhbHVlczogVFtdKTogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VCwgTSwgSD5bXT4+IHtcbiAgICByZXR1cm4gdGhpcy5sb2FkRGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHZhbHVlcy5tYXAoKHZhbHVlKSA9PiAoeyB2YWx1ZSB9KSkpO1xuICB9XG5cbiAgbG9hZERpc3BsYXlWYWx1ZXNGb3JGaWVsZFZhbHVlcyh2YWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZFZhbHVlPFQsIE0+W10pOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxULCBNLCBIPltdPj4ge1xuICAgIHJldHVybiB0aGlzLmdldERpc3BsYXlWYWx1ZXNGb3JGaWVsZFZhbHVlcyh2YWx1ZXMpLnBpcGUoXG4gICAgICBtYXAoKGRpc3BsYXlWYWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQsIE0sIEg+W10pID0+IHN1Y2Nlc3NSZXN1bHQoZGlzcGxheVZhbHVlcykpLFxuICAgICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKCksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBnZXREaXNwbGF5VmFsdWVzRm9yRmllbGRWYWx1ZXModmFsdWVzOiBQaWNrYWJsZVZhbHVlRmllbGRWYWx1ZTxULCBNPltdKTogT2JzZXJ2YWJsZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxULCBNLCBIPltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlIYXNoTWFwLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoZGlzcGxheU1hcCkgPT4ge1xuICAgICAgICBjb25zdCBtYXBwaW5nUmVzdWx0ID0gdmFsdWVzLm1hcCgoeCkgPT4gW3gsIHRoaXMuaGFzaEZvclZhbHVlKHgudmFsdWUpXSBhcyBbUGlja2FibGVWYWx1ZUZpZWxkVmFsdWU8VCwgTT4sIEhdKS5tYXAoKFt4LCBoYXNoXSwgaSkgPT4gW2ksIGhhc2gsIHgsIGRpc3BsYXlNYXAuZ2V0KGhhc2gpXSBhcyBbbnVtYmVyLCBILCBQaWNrYWJsZVZhbHVlRmllbGRWYWx1ZTxULCBNPiwgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VCwgTSwgSD5dKTtcblxuICAgICAgICBjb25zdCBoYXNEaXNwbGF5ID0gbWFwcGluZ1Jlc3VsdC5maWx0ZXIoKHgpID0+IEJvb2xlYW4oeFszXSkpO1xuICAgICAgICBjb25zdCBuZWVkc0Rpc3BsYXkgPSBtYXBwaW5nUmVzdWx0LmZpbHRlcigoeCkgPT4gIXhbM10pO1xuXG4gICAgICAgIGlmIChuZWVkc0Rpc3BsYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIEdvIGdldCB0aGUgZGlzcGxheSB2YWx1ZS5cbiAgICAgICAgICBjb25zdCBkaXNwbGF5VmFsdWVzT2JzID0gdGhpcy5kaXNwbGF5Rm9yVmFsdWUobmVlZHNEaXNwbGF5Lm1hcCgoeCkgPT4geFsyXSkpO1xuXG4gICAgICAgICAgcmV0dXJuIGRpc3BsYXlWYWx1ZXNPYnMucGlwZShcbiAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICBtYXAoKGRpc3BsYXlSZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlSZXN1bHRzV2l0aEhhc2g6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQsIE0sIEg+W10gPSBkaXNwbGF5UmVzdWx0cy5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgICAgICAoeCBhcyBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxULCBNLCBIPikuX2hhc2ggPSB0aGlzLmhhc2hGb3JWYWx1ZSh4LnZhbHVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geCBhcyBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxULCBNLCBIPjtcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbWFwIHRvIHJlLWpvaW4gdmFsdWVzIGxhdGVyLlxuICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5UmVzdWx0c01hcHBpbmc6IFtQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxULCBNLCBIPiwgSF1bXSA9IGRpc3BsYXlSZXN1bHRzV2l0aEhhc2gubWFwKCh4KSA9PiBbeCwgeC5faGFzaF0pO1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZUluZGV4SGFzaE1hcCA9IG5ldyBNYXAoZGlzcGxheVJlc3VsdHNNYXBwaW5nLm1hcCgoW3gsIGhhc2hdKSA9PiBbaGFzaCwgeF0pKTtcblxuICAgICAgICAgICAgICAvLyBVcGRhdGUgZGlzcGxheU1hcC4gTm8gbmVlZCB0byBwdXNoIGFuIHVwZGF0ZSBub3RpZmljYXRpb24uXG4gICAgICAgICAgICAgIGRpc3BsYXlSZXN1bHRzTWFwcGluZy5mb3JFYWNoKChbeCwgaGFzaF0pID0+IGRpc3BsYXlNYXAuc2V0KGhhc2gsIHgpKTtcblxuICAgICAgICAgICAgICAvLyBaaXAgdmFsdWVzIGJhY2sgdG9nZXRoZXIuXG4gICAgICAgICAgICAgIGNvbnN0IG5ld0Rpc3BsYXlWYWx1ZXMgPSBtYXBwaW5nUmVzdWx0Lm1hcCgoeCkgPT4geFszXSA/PyB2YWx1ZUluZGV4SGFzaE1hcC5nZXQoeFsxXSkpO1xuXG4gICAgICAgICAgICAgIC8vIFJldHVybiBkaXNwbGF5IHZhbHVlcy5cbiAgICAgICAgICAgICAgcmV0dXJuIG5ld0Rpc3BsYXlWYWx1ZXM7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSWYgYWxsIGRpc3BsYXkgdmFsdWVzIGFyZSBoYXNoZWQgcmV0dXJuIHRoYXQuXG4gICAgICAgICAgcmV0dXJuIG9mKGhhc0Rpc3BsYXkubWFwKCh4KSA9PiB4WzNdKSkgYXMgT2JzZXJ2YWJsZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxULCBNLCBIPltdPjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMubmV4dCh0aGlzLmZvcm1Db250cm9sKTtcblxuICAgIC8vIEZvY3VzIGFmdGVyIGZpbmlzaGVkIGxvYWRpbmcgZm9yIHRoZSBmaXJzdCB0aW1lLlxuICAgIHRoaXMuY29udGV4dC5sb2FkaW5nJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlbGF5KDEwKSxcbiAgICAgICAgZmlsdGVyKCh4KSA9PiB4KSxcbiAgICAgICAgZmlyc3QoKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZmlsdGVyTWF0SW5wdXQ/LmZvY3VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5fZGlzcGxheUhhc2hNYXAuY29tcGxldGUoKTtcbiAgICB0aGlzLl9mb3JtQ29udHJvbE9icy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZmlsdGVyUmVzdWx0c0NvbnRleHQuZGVzdHJveSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9nZXRWYWx1ZU9uRm9ybUNvbnRyb2wodmFsdWVPbkZvcm1Db250cm9sOiBBcnJheU9yVmFsdWU8VD4pOiBUW10ge1xuICAgIGNvbnN0IHZhbHVlOiBUW10gPSB2YWx1ZU9uRm9ybUNvbnRyb2wgIT0gbnVsbCA/IChbXSBhcyBUW10pLmNvbmNhdCh2YWx1ZU9uRm9ybUNvbnRyb2wpIDogW107IC8vIEFsd2F5cyByZXR1cm4gYW4gYXJyYXkuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgYWRkVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICB0aGlzLnNldFZhbHVlcyhbLi4udGhpcy52YWx1ZXMsIHZhbHVlXSk7XG4gIH1cblxuICByZW1vdmVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgIGNvbnN0IGhhc2hUb0ZpbHRlciA9IHRoaXMuaGFzaEZvclZhbHVlKHZhbHVlKTtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnZhbHVlcy5maWx0ZXIoKHgpID0+IHRoaXMuaGFzaEZvclZhbHVlKHgpICE9PSBoYXNoVG9GaWx0ZXIpO1xuICAgIHRoaXMuc2V0VmFsdWVzKHZhbHVlcyk7XG4gIH1cblxuICBzZXRWYWx1ZXModmFsdWVzOiBUW10pOiB2b2lkIHtcbiAgICAvLyBVc2UgdG8gZmlsdGVyIG5vbi11bmlxdWUgdmFsdWVzLlxuICAgIGlmICh0aGlzLmhhc2hGb3JWYWx1ZSkge1xuICAgICAgdmFsdWVzID0gZmluZFVuaXF1ZSh2YWx1ZXMsIHRoaXMuaGFzaEZvclZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubXVsdGlTZWxlY3QpIHtcbiAgICAgIHZhbHVlcyA9IFt2YWx1ZXNbMF1dLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zZXRWYWx1ZU9uRm9ybUNvbnRyb2wodmFsdWVzKTtcbiAgfVxuXG4gIC8vIE1BUks6IEludGVybmFsXG4gIHByb3RlY3RlZCBfc2V0VmFsdWVPbkZvcm1Db250cm9sKHZhbHVlczogVFtdKTogdm9pZCB7XG4gICAgbGV0IG5ld1ZhbHVlOiBUIHwgVFtdID0gdmFsdWVzO1xuXG4gICAgaWYgKCF0aGlzLmFzQXJyYXlWYWx1ZSkge1xuICAgICAgbmV3VmFsdWUgPSBbdmFsdWVzWzBdXS5maWx0ZXIoKHgpID0+IHggIT0gbnVsbClbMF07XG4gICAgfVxuXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICB9XG59XG4iXX0=
@@ -4,12 +4,12 @@ export function filterPickableItemFieldValuesByLabel(filterText, values) {
4
4
  let filteredValues;
5
5
  if (filterText) {
6
6
  const searchString = filterText.toLocaleLowerCase();
7
- filteredValues = values.filter(x => x.label.toLocaleLowerCase().indexOf(searchString) !== -1);
7
+ filteredValues = values.filter((x) => x.label.toLocaleLowerCase().indexOf(searchString) !== -1);
8
8
  }
9
9
  else {
10
10
  filteredValues = values;
11
11
  }
12
- return of(filteredValues.map(x => x.value));
12
+ return of(filteredValues.map((x) => x.value));
13
13
  }
14
14
  export function sortPickableItemsByLabel(chips) {
15
15
  return chips.sort((a, b) => a.itemValue.label.localeCompare(b.itemValue.label));
@@ -36,4 +36,4 @@ export function pickableItemListField(config) {
36
36
  pickableField: config
37
37
  });
38
38
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUuZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQXNCLFdBQVcsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUs3RixNQUFNLFVBQVUsb0NBQW9DLENBQUksVUFBeUIsRUFBRSxNQUEyQztJQUM1SCxJQUFJLGNBQW1ELENBQUM7SUFFeEQsSUFBSSxVQUFVLEVBQUU7UUFDZCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNwRCxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMvRjtTQUFNO1FBQ0wsY0FBYyxHQUFHLE1BQU0sQ0FBQztLQUN6QjtJQUVELE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFJLEtBQWlDO0lBQzNFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbEYsQ0FBQztBQUlELE1BQU0sVUFBVSxxQkFBcUIsQ0FBVSxNQUFrQztJQUMvRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLE9BQU8sV0FBVyxDQUFDO1FBQ2pCLEdBQUc7UUFDSCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLEdBQUcsNkJBQTZCLENBQUMsTUFBTSxFQUFFO1lBQ3ZDLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUM7UUFDRixhQUFhLEVBQUUsTUFBTTtLQUN0QixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFVLE1BQWtDO0lBQy9FLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDdkIsT0FBTyxXQUFXLENBQUM7UUFDakIsR0FBRztRQUNILElBQUksRUFBRSxtQkFBbUI7UUFDekIsR0FBRyw2QkFBNkIsQ0FBQyxNQUFNLEVBQUU7WUFDdkMsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQztRQUNGLGFBQWEsRUFBRSxNQUFNO0tBQ3RCLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMYWJlbGVkRmllbGRDb25maWcsIGZvcm1seUZpZWxkLCB0ZW1wbGF0ZU9wdGlvbnNGb3JGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2ZpZWxkJztcbmltcG9ydCB7IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZSB9IGZyb20gJy4vcGlja2FibGUnO1xuaW1wb3J0IHsgUGlja2FibGVJdGVtRmllbGRJdGVtLCBQaWNrYWJsZVZhbHVlRmllbGRzRmllbGRDb25maWcsIFBpY2thYmxlVmFsdWVGaWVsZHNGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJy4vcGlja2FibGUuZmllbGQuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFBpY2thYmxlSXRlbUZpZWxkSXRlbSB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyUGlja2FibGVJdGVtRmllbGRWYWx1ZXNCeUxhYmVsPFQ+KGZpbHRlclRleHQ6IE1heWJlPHN0cmluZz4sIHZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+W10pOiBPYnNlcnZhYmxlPFRbXT4ge1xuICBsZXQgZmlsdGVyZWRWYWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPltdO1xuXG4gIGlmIChmaWx0ZXJUZXh0KSB7XG4gICAgY29uc3Qgc2VhcmNoU3RyaW5nID0gZmlsdGVyVGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIGZpbHRlcmVkVmFsdWVzID0gdmFsdWVzLmZpbHRlcih4ID0+IHgubGFiZWwudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFN0cmluZykgIT09IC0xKTtcbiAgfSBlbHNlIHtcbiAgICBmaWx0ZXJlZFZhbHVlcyA9IHZhbHVlcztcbiAgfVxuXG4gIHJldHVybiBvZihmaWx0ZXJlZFZhbHVlcy5tYXAoeCA9PiB4LnZhbHVlKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0UGlja2FibGVJdGVtc0J5TGFiZWw8VD4oY2hpcHM6IFBpY2thYmxlSXRlbUZpZWxkSXRlbTxUPltdKTogUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+W10ge1xuICByZXR1cm4gY2hpcHMuc29ydCgoYSwgYikgPT4gYS5pdGVtVmFsdWUubGFiZWwubG9jYWxlQ29tcGFyZShiLml0ZW1WYWx1ZS5sYWJlbCkpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2thYmxlSXRlbUZpZWxkQ29uZmlnPFQgPSBhbnk+IGV4dGVuZHMgTGFiZWxlZEZpZWxkQ29uZmlnLCBQaWNrYWJsZVZhbHVlRmllbGRzRmllbGRDb25maWc8VD4geyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBwaWNrYWJsZUl0ZW1DaGlwRmllbGQ8VCA9IGFueT4oY29uZmlnOiBQaWNrYWJsZUl0ZW1GaWVsZENvbmZpZzxUPik6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgY29uc3QgeyBrZXkgfSA9IGNvbmZpZztcbiAgcmV0dXJuIGZvcm1seUZpZWxkKHtcbiAgICBrZXksXG4gICAgdHlwZTogJ3BpY2thYmxlY2hpcGZpZWxkJyxcbiAgICAuLi50ZW1wbGF0ZU9wdGlvbnNGb3JGaWVsZENvbmZpZyhjb25maWcsIHtcbiAgICAgIGF1dG9jb21wbGV0ZTogZmFsc2VcbiAgICB9KSxcbiAgICBwaWNrYWJsZUZpZWxkOiBjb25maWdcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwaWNrYWJsZUl0ZW1MaXN0RmllbGQ8VCA9IGFueT4oY29uZmlnOiBQaWNrYWJsZUl0ZW1GaWVsZENvbmZpZzxUPik6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgY29uc3QgeyBrZXkgfSA9IGNvbmZpZztcbiAgcmV0dXJuIGZvcm1seUZpZWxkKHtcbiAgICBrZXksXG4gICAgdHlwZTogJ3BpY2thYmxlbGlzdGZpZWxkJyxcbiAgICAuLi50ZW1wbGF0ZU9wdGlvbnNGb3JGaWVsZENvbmZpZyhjb25maWcsIHtcbiAgICAgIGF1dG9jb21wbGV0ZTogZmFsc2VcbiAgICB9KSxcbiAgICBwaWNrYWJsZUZpZWxkOiBjb25maWdcbiAgfSk7XG59XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUuZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQXNCLFdBQVcsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUs3RixNQUFNLFVBQVUsb0NBQW9DLENBQUksVUFBeUIsRUFBRSxNQUEyQztJQUM1SCxJQUFJLGNBQW1ELENBQUM7SUFFeEQsSUFBSSxVQUFVLEVBQUU7UUFDZCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNwRCxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pHO1NBQU07UUFDTCxjQUFjLEdBQUcsTUFBTSxDQUFDO0tBQ3pCO0lBRUQsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBSSxLQUFpQztJQUMzRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2xGLENBQUM7QUFJRCxNQUFNLFVBQVUscUJBQXFCLENBQWMsTUFBa0M7SUFDbkYsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUN2QixPQUFPLFdBQVcsQ0FBQztRQUNqQixHQUFHO1FBQ0gsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixHQUFHLDZCQUE2QixDQUFDLE1BQU0sRUFBRTtZQUN2QyxZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDO1FBQ0YsYUFBYSxFQUFFLE1BQU07S0FDdEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBYyxNQUFrQztJQUNuRixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLE9BQU8sV0FBVyxDQUFDO1FBQ2pCLEdBQUc7UUFDSCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLEdBQUcsNkJBQTZCLENBQUMsTUFBTSxFQUFFO1lBQ3ZDLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUM7UUFDRixhQUFhLEVBQUUsTUFBTTtLQUN0QixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTGFiZWxlZEZpZWxkQ29uZmlnLCBmb3JtbHlGaWVsZCwgdGVtcGxhdGVPcHRpb25zRm9yRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9maWVsZCc7XG5pbXBvcnQgeyBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWUgfSBmcm9tICcuL3BpY2thYmxlJztcbmltcG9ydCB7IFBpY2thYmxlSXRlbUZpZWxkSXRlbSwgUGlja2FibGVWYWx1ZUZpZWxkc0ZpZWxkQ29uZmlnIH0gZnJvbSAnLi9waWNrYWJsZS5maWVsZC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgUGlja2FibGVJdGVtRmllbGRJdGVtIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJQaWNrYWJsZUl0ZW1GaWVsZFZhbHVlc0J5TGFiZWw8VD4oZmlsdGVyVGV4dDogTWF5YmU8c3RyaW5nPiwgdmFsdWVzOiBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VD5bXSk6IE9ic2VydmFibGU8VFtdPiB7XG4gIGxldCBmaWx0ZXJlZFZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+W107XG5cbiAgaWYgKGZpbHRlclRleHQpIHtcbiAgICBjb25zdCBzZWFyY2hTdHJpbmcgPSBmaWx0ZXJUZXh0LnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgZmlsdGVyZWRWYWx1ZXMgPSB2YWx1ZXMuZmlsdGVyKCh4KSA9PiB4LmxhYmVsLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hTdHJpbmcpICE9PSAtMSk7XG4gIH0gZWxzZSB7XG4gICAgZmlsdGVyZWRWYWx1ZXMgPSB2YWx1ZXM7XG4gIH1cblxuICByZXR1cm4gb2YoZmlsdGVyZWRWYWx1ZXMubWFwKCh4KSA9PiB4LnZhbHVlKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0UGlja2FibGVJdGVtc0J5TGFiZWw8VD4oY2hpcHM6IFBpY2thYmxlSXRlbUZpZWxkSXRlbTxUPltdKTogUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+W10ge1xuICByZXR1cm4gY2hpcHMuc29ydCgoYSwgYikgPT4gYS5pdGVtVmFsdWUubGFiZWwubG9jYWxlQ29tcGFyZShiLml0ZW1WYWx1ZS5sYWJlbCkpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2thYmxlSXRlbUZpZWxkQ29uZmlnPFQgPSB1bmtub3duPiBleHRlbmRzIExhYmVsZWRGaWVsZENvbmZpZywgUGlja2FibGVWYWx1ZUZpZWxkc0ZpZWxkQ29uZmlnPFQ+IHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBwaWNrYWJsZUl0ZW1DaGlwRmllbGQ8VCA9IHVua25vd24+KGNvbmZpZzogUGlja2FibGVJdGVtRmllbGRDb25maWc8VD4pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IHsga2V5IH0gPSBjb25maWc7XG4gIHJldHVybiBmb3JtbHlGaWVsZCh7XG4gICAga2V5LFxuICAgIHR5cGU6ICdwaWNrYWJsZWNoaXBmaWVsZCcsXG4gICAgLi4udGVtcGxhdGVPcHRpb25zRm9yRmllbGRDb25maWcoY29uZmlnLCB7XG4gICAgICBhdXRvY29tcGxldGU6IGZhbHNlXG4gICAgfSksXG4gICAgcGlja2FibGVGaWVsZDogY29uZmlnXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGlja2FibGVJdGVtTGlzdEZpZWxkPFQgPSB1bmtub3duPihjb25maWc6IFBpY2thYmxlSXRlbUZpZWxkQ29uZmlnPFQ+KTogRm9ybWx5RmllbGRDb25maWcge1xuICBjb25zdCB7IGtleSB9ID0gY29uZmlnO1xuICByZXR1cm4gZm9ybWx5RmllbGQoe1xuICAgIGtleSxcbiAgICB0eXBlOiAncGlja2FibGVsaXN0ZmllbGQnLFxuICAgIC4uLnRlbXBsYXRlT3B0aW9uc0ZvckZpZWxkQ29uZmlnKGNvbmZpZywge1xuICAgICAgYXV0b2NvbXBsZXRlOiBmYWxzZVxuICAgIH0pLFxuICAgIHBpY2thYmxlRmllbGQ6IGNvbmZpZ1xuICB9KTtcbn1cbiJdfQ==
@@ -18,11 +18,7 @@ import * as i1 from "@ngx-formly/core";
18
18
  export class DbxFormFormlyPickableFieldModule {
19
19
  }
20
20
  DbxFormFormlyPickableFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPickableFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- DbxFormFormlyPickableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPickableFieldModule, declarations: [DbxPickableChipListFieldComponent,
22
- DbxPickableListFieldComponent,
23
- DbxPickableListFieldItemListComponent,
24
- DbxPickableListFieldItemListViewComponent,
25
- DbxPickableListFieldItemListViewItemComponent], imports: [CommonModule,
21
+ DbxFormFormlyPickableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPickableFieldModule, declarations: [DbxPickableChipListFieldComponent, DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent], imports: [CommonModule,
26
22
  DbxTextModule,
27
23
  DbxLoadingModule,
28
24
  DbxButtonModule,
@@ -60,7 +56,7 @@ DbxFormFormlyPickableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion:
60
56
  FormlyModule.forChild({
61
57
  types: [
62
58
  { name: 'pickablechipfield', component: DbxPickableChipListFieldComponent, wrappers: ['form-field'] },
63
- { name: 'pickablelistfield', component: DbxPickableListFieldComponent, wrappers: ['form-field'] },
59
+ { name: 'pickablelistfield', component: DbxPickableListFieldComponent, wrappers: ['form-field'] }
64
60
  ]
65
61
  })
66
62
  ]] });
@@ -88,18 +84,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
88
84
  FormlyModule.forChild({
89
85
  types: [
90
86
  { name: 'pickablechipfield', component: DbxPickableChipListFieldComponent, wrappers: ['form-field'] },
91
- { name: 'pickablelistfield', component: DbxPickableListFieldComponent, wrappers: ['form-field'] },
87
+ { name: 'pickablelistfield', component: DbxPickableListFieldComponent, wrappers: ['form-field'] }
92
88
  ]
93
89
  })
94
90
  ],
95
- declarations: [
96
- DbxPickableChipListFieldComponent,
97
- DbxPickableListFieldComponent,
98
- DbxPickableListFieldItemListComponent,
99
- DbxPickableListFieldItemListViewComponent,
100
- DbxPickableListFieldItemListViewItemComponent
101
- ],
91
+ declarations: [DbxPickableChipListFieldComponent, DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent],
102
92
  exports: []
103
93
  }]
104
94
  }] });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuZmllbGQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3BpY2thYmxlL3BpY2thYmxlLmZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHFDQUFxQyxFQUFFLHlDQUF5QyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDak4sT0FBTyxFQUFFLGlCQUFpQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBc0NoSSxNQUFNLE9BQU8sZ0NBQWdDOzs2SEFBaEMsZ0NBQWdDOzhIQUFoQyxnQ0FBZ0MsaUJBUnpDLGlDQUFpQztRQUNqQyw2QkFBNkI7UUFDN0IscUNBQXFDO1FBQ3JDLHlDQUF5QztRQUN6Qyw2Q0FBNkMsYUE5QjdDLFlBQVk7UUFDWixhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixXQUFXO1FBQ1gsZUFBZTtRQUNmLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQixhQUFhO1FBQ2IsaUJBQWlCO1FBQ2pCLHFCQUFxQjtRQUNyQixjQUFjO1FBQ2QsYUFBYTtRQUNiLDJCQUEyQjtRQUMzQixtQkFBbUI7OEhBa0JWLGdDQUFnQyxZQW5DbEM7WUFDUCxZQUFZO1lBQ1osYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsV0FBVztZQUNYLGVBQWU7WUFDZixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixxQkFBcUI7WUFDckIsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixxQkFBcUI7WUFDckIsY0FBYztZQUNkLGFBQWE7WUFDYiwyQkFBMkI7WUFDM0IsbUJBQW1CO1lBQ25CLFlBQVksQ0FBQyxRQUFRLENBQUM7Z0JBQ3BCLEtBQUssRUFBRTtvQkFFTCxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsaUNBQWlDLEVBQUUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUU7b0JBQ3JHLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSw2QkFBNkIsRUFBRSxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRTtpQkFDbEc7YUFDRixDQUFDO1NBQ0g7MkZBVVUsZ0NBQWdDO2tCQXBDNUMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLFlBQVksQ0FBQyxRQUFRLENBQUM7NEJBQ3BCLEtBQUssRUFBRTtnQ0FFTCxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsaUNBQWlDLEVBQUUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0NBQ3JHLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSw2QkFBNkIsRUFBRSxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRTs2QkFDbEc7eUJBQ0YsQ0FBQztxQkFDSDtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osaUNBQWlDO3dCQUNqQyw2QkFBNkI7d0JBQzdCLHFDQUFxQzt3QkFDckMseUNBQXlDO3dCQUN6Qyw2Q0FBNkM7cUJBQzlDO29CQUNELE9BQU8sRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBGb3JtbHlNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBEYnhQaWNrYWJsZUNoaXBMaXN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3BpY2thYmxlLmNoaXAuZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IERieFBpY2thYmxlTGlzdEZpZWxkQ29tcG9uZW50LCBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Q29tcG9uZW50LCBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0NvbXBvbmVudCwgRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdFZpZXdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9waWNrYWJsZS5saXN0LmZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhEYXRlUGlwZU1vZHVsZSwgRGJ4SW5qZWN0aW9uQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRGJ4Um91dGVyQW5jaG9yTW9kdWxlLCBEYnhUZXh0TW9kdWxlLCBEYnhMb2FkaW5nTW9kdWxlLCBEYnhCdXR0b25Nb2R1bGUsIERieExpc3RMYXlvdXRNb2R1bGUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEYnhUZXh0TW9kdWxlLFxuICAgIERieExvYWRpbmdNb2R1bGUsXG4gICAgRGJ4QnV0dG9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBEYnhEYXRlUGlwZU1vZHVsZSxcbiAgICBEYnhSb3V0ZXJBbmNob3JNb2R1bGUsXG4gICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBEYnhJbmplY3Rpb25Db21wb25lbnRNb2R1bGUsXG4gICAgRGJ4TGlzdExheW91dE1vZHVsZSxcbiAgICBGb3JtbHlNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgdHlwZXM6IFtcblxuICAgICAgICB7IG5hbWU6ICdwaWNrYWJsZWNoaXBmaWVsZCcsIGNvbXBvbmVudDogRGJ4UGlja2FibGVDaGlwTGlzdEZpZWxkQ29tcG9uZW50LCB3cmFwcGVyczogWydmb3JtLWZpZWxkJ10gfSxcbiAgICAgICAgeyBuYW1lOiAncGlja2FibGVsaXN0ZmllbGQnLCBjb21wb25lbnQ6IERieFBpY2thYmxlTGlzdEZpZWxkQ29tcG9uZW50LCB3cmFwcGVyczogWydmb3JtLWZpZWxkJ10gfSxcbiAgICAgIF1cbiAgICB9KVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEYnhQaWNrYWJsZUNoaXBMaXN0RmllbGRDb21wb25lbnQsXG4gICAgRGJ4UGlja2FibGVMaXN0RmllbGRDb21wb25lbnQsXG4gICAgRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdENvbXBvbmVudCxcbiAgICBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0NvbXBvbmVudCxcbiAgICBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0l0ZW1Db21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgRGJ4Rm9ybUZvcm1seVBpY2thYmxlRmllbGRNb2R1bGUgeyB9XG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuZmllbGQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3BpY2thYmxlL3BpY2thYmxlLmZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHFDQUFxQyxFQUFFLHlDQUF5QyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDak4sT0FBTyxFQUFFLGlCQUFpQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBK0JoSSxNQUFNLE9BQU8sZ0NBQWdDOzs2SEFBaEMsZ0NBQWdDOzhIQUFoQyxnQ0FBZ0MsaUJBSDVCLGlDQUFpQyxFQUFFLDZCQUE2QixFQUFFLHFDQUFxQyxFQUFFLHlDQUF5QyxFQUFFLDZDQUE2QyxhQXhCOU0sWUFBWTtRQUNaLGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLFdBQVc7UUFDWCxlQUFlO1FBQ2YsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIscUJBQXFCO1FBQ3JCLGFBQWE7UUFDYixpQkFBaUI7UUFDakIscUJBQXFCO1FBQ3JCLGNBQWM7UUFDZCxhQUFhO1FBQ2IsMkJBQTJCO1FBQzNCLG1CQUFtQjs4SEFXVixnQ0FBZ0MsWUE1QmxDO1lBQ1AsWUFBWTtZQUNaLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLFdBQVc7WUFDWCxlQUFlO1lBQ2YsY0FBYztZQUNkLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIscUJBQXFCO1lBQ3JCLGFBQWE7WUFDYixpQkFBaUI7WUFDakIscUJBQXFCO1lBQ3JCLGNBQWM7WUFDZCxhQUFhO1lBQ2IsMkJBQTJCO1lBQzNCLG1CQUFtQjtZQUNuQixZQUFZLENBQUMsUUFBUSxDQUFDO2dCQUNwQixLQUFLLEVBQUU7b0JBQ0wsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGlDQUFpQyxFQUFFLFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFO29CQUNyRyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsNkJBQTZCLEVBQUUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUU7aUJBQ2xHO2FBQ0YsQ0FBQztTQUNIOzJGQUlVLGdDQUFnQztrQkE3QjVDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLDJCQUEyQjt3QkFDM0IsbUJBQW1CO3dCQUNuQixZQUFZLENBQUMsUUFBUSxDQUFDOzRCQUNwQixLQUFLLEVBQUU7Z0NBQ0wsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGlDQUFpQyxFQUFFLFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFO2dDQUNyRyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsNkJBQTZCLEVBQUUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUU7NkJBQ2xHO3lCQUNGLENBQUM7cUJBQ0g7b0JBQ0QsWUFBWSxFQUFFLENBQUMsaUNBQWlDLEVBQUUsNkJBQTZCLEVBQUUscUNBQXFDLEVBQUUseUNBQXlDLEVBQUUsNkNBQTZDLENBQUM7b0JBQ2pOLE9BQU8sRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBGb3JtbHlNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBEYnhQaWNrYWJsZUNoaXBMaXN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3BpY2thYmxlLmNoaXAuZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IERieFBpY2thYmxlTGlzdEZpZWxkQ29tcG9uZW50LCBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Q29tcG9uZW50LCBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0NvbXBvbmVudCwgRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdFZpZXdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9waWNrYWJsZS5saXN0LmZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhEYXRlUGlwZU1vZHVsZSwgRGJ4SW5qZWN0aW9uQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRGJ4Um91dGVyQW5jaG9yTW9kdWxlLCBEYnhUZXh0TW9kdWxlLCBEYnhMb2FkaW5nTW9kdWxlLCBEYnhCdXR0b25Nb2R1bGUsIERieExpc3RMYXlvdXRNb2R1bGUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEYnhUZXh0TW9kdWxlLFxuICAgIERieExvYWRpbmdNb2R1bGUsXG4gICAgRGJ4QnV0dG9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBEYnhEYXRlUGlwZU1vZHVsZSxcbiAgICBEYnhSb3V0ZXJBbmNob3JNb2R1bGUsXG4gICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBEYnhJbmplY3Rpb25Db21wb25lbnRNb2R1bGUsXG4gICAgRGJ4TGlzdExheW91dE1vZHVsZSxcbiAgICBGb3JtbHlNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgdHlwZXM6IFtcbiAgICAgICAgeyBuYW1lOiAncGlja2FibGVjaGlwZmllbGQnLCBjb21wb25lbnQ6IERieFBpY2thYmxlQ2hpcExpc3RGaWVsZENvbXBvbmVudCwgd3JhcHBlcnM6IFsnZm9ybS1maWVsZCddIH0sXG4gICAgICAgIHsgbmFtZTogJ3BpY2thYmxlbGlzdGZpZWxkJywgY29tcG9uZW50OiBEYnhQaWNrYWJsZUxpc3RGaWVsZENvbXBvbmVudCwgd3JhcHBlcnM6IFsnZm9ybS1maWVsZCddIH1cbiAgICAgIF1cbiAgICB9KVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtEYnhQaWNrYWJsZUNoaXBMaXN0RmllbGRDb21wb25lbnQsIERieFBpY2thYmxlTGlzdEZpZWxkQ29tcG9uZW50LCBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Q29tcG9uZW50LCBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0NvbXBvbmVudCwgRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdFZpZXdJdGVtQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgRGJ4Rm9ybUZvcm1seVBpY2thYmxlRmllbGRNb2R1bGUge31cbiJdfQ==