@recursyve/nice-data-filter-kit 14.4.0 → 15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/esm2020/lib/components/base-list/base-list.component.mjs +4 -4
  2. package/esm2020/lib/components/base-list/base-list.module.mjs +4 -4
  3. package/esm2020/lib/components/base-list/directives/base-list-buttons.directive.mjs +3 -3
  4. package/esm2020/lib/components/base-list/directives/base-list-cards.directive.mjs +3 -3
  5. package/esm2020/lib/components/base-list/directives/base-list-custom-content.directive.mjs +3 -3
  6. package/esm2020/lib/components/base-list/directives/base-list-directives.module.mjs +4 -4
  7. package/esm2020/lib/components/base-list/directives/base-list-empty-search-result-state.directive.mjs +3 -3
  8. package/esm2020/lib/components/base-list/directives/base-list-empty-state.directive.mjs +3 -3
  9. package/esm2020/lib/components/base-list/directives/base-list-filters.directive.mjs +3 -3
  10. package/esm2020/lib/components/base-list/directives/base-list-table.directive.mjs +3 -3
  11. package/esm2020/lib/components/base-list/directives/base-list-title.directive.mjs +3 -3
  12. package/esm2020/lib/components/base-list/providers/base-filter.service.mjs +3 -3
  13. package/esm2020/lib/components/base-list/providers/base-list-saved-report.service.mjs +3 -3
  14. package/esm2020/lib/components/base-list/store/base-list.query.mjs +3 -3
  15. package/esm2020/lib/components/base-list/store/base-list.service.mjs +3 -3
  16. package/esm2020/lib/components/base-list/store/base-list.store.mjs +4 -4
  17. package/esm2020/lib/components/multi-state-list/multi-state-list.component.mjs +8 -8
  18. package/esm2020/lib/components/multi-state-list/multi-state-list.module.mjs +4 -4
  19. package/esm2020/lib/components/multi-state-list/store/multi-state-list.query.mjs +3 -3
  20. package/esm2020/lib/components/multi-state-list/store/multi-state-list.service.mjs +3 -3
  21. package/esm2020/lib/components/multi-state-list/store/multi-state-list.store.mjs +4 -4
  22. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/advanced-filters-trigger.directive.mjs +15 -15
  23. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.component.mjs +4 -4
  24. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.form.mjs +1 -1
  25. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.module.mjs +10 -11
  26. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/button/advanced-filters-button.component.mjs +3 -3
  27. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/filter-selection/filter-selection.component.mjs +5 -5
  28. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/providers/async-typeahead.provider.mjs +3 -3
  29. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/date/date-filter.component.mjs +4 -4
  30. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/filter.component.mjs +3 -3
  31. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/number/number-filter.component.mjs +4 -4
  32. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/radio/radio-filter.component.mjs +3 -3
  33. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/select/select-filter.component.mjs +4 -4
  34. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/text/text-filter.component.mjs +4 -4
  35. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/rule.component.mjs +8 -8
  36. package/esm2020/lib/components/nice-filter-view/components/common/data.directive.mjs +3 -3
  37. package/esm2020/lib/components/nice-filter-view/components/custom-data-view/custom-data-view.component.mjs +3 -3
  38. package/esm2020/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.mjs +3 -3
  39. package/esm2020/lib/components/nice-filter-view/components/export-buttons/export.directive.mjs +3 -3
  40. package/esm2020/lib/components/nice-filter-view/components/infinite-scroll-data-view/infinite-scroll-data-view.component.mjs +3 -3
  41. package/esm2020/lib/components/nice-filter-view/components/search/search.component.mjs +4 -4
  42. package/esm2020/lib/components/nice-filter-view/directives/mat-paginator.mjs +3 -3
  43. package/esm2020/lib/components/nice-filter-view/directives/mat-sort.mjs +3 -3
  44. package/esm2020/lib/components/nice-filter-view/directives/mat-tables.mjs +3 -3
  45. package/esm2020/lib/components/nice-filter-view/directives/query-params.directive.mjs +7 -7
  46. package/esm2020/lib/components/nice-filter-view/nice-base-filter-view.component.mjs +3 -3
  47. package/esm2020/lib/components/nice-filter-view/nice-filter-view.component.mjs +3 -3
  48. package/esm2020/lib/components/nice-filter-view/nice-filter-view.module.mjs +4 -4
  49. package/esm2020/lib/components/nice-filter-view/pipes/filter-group-icon.pipe.mjs +3 -3
  50. package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.query.mjs +3 -3
  51. package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.service.mjs +3 -3
  52. package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.store.mjs +3 -3
  53. package/esm2020/lib/components/query-builder/filter-selection/filter-selection.component.mjs +3 -3
  54. package/esm2020/lib/components/query-builder/pipes/filter-group-icon.pipe.mjs +3 -3
  55. package/esm2020/lib/components/query-builder/query-builder-trigger.directive.mjs +11 -11
  56. package/esm2020/lib/components/query-builder/query-builder.component.mjs +8 -8
  57. package/esm2020/lib/components/query-builder/query-builder.form.mjs +1 -1
  58. package/esm2020/lib/components/query-builder/query-builder.module.mjs +9 -10
  59. package/esm2020/lib/components/query-builder/rule/components/date/date-filter.component.mjs +4 -4
  60. package/esm2020/lib/components/query-builder/rule/components/filter.component.mjs +3 -3
  61. package/esm2020/lib/components/query-builder/rule/components/number/number-filter.component.mjs +4 -4
  62. package/esm2020/lib/components/query-builder/rule/components/radio/radio-filter.component.mjs +3 -3
  63. package/esm2020/lib/components/query-builder/rule/components/select/select-filter.component.mjs +4 -4
  64. package/esm2020/lib/components/query-builder/rule/components/text/text-filter.component.mjs +4 -4
  65. package/esm2020/lib/components/query-builder/rule/rule.component.mjs +9 -9
  66. package/esm2020/lib/directive/selectable-list/providers/preload-selected-entities.provider.mjs +3 -3
  67. package/esm2020/lib/directive/selectable-list/providers/selectable-list-content.service.mjs +3 -3
  68. package/esm2020/lib/directive/selectable-list/selectable-list-checkbox.directive.mjs +10 -10
  69. package/esm2020/lib/directive/selectable-list/selectable-list-select-all.directive.mjs +3 -3
  70. package/esm2020/lib/directive/selectable-list/selectable-list.directive.mjs +3 -3
  71. package/esm2020/lib/directive/selectable-list/selectable-list.module.mjs +4 -4
  72. package/esm2020/lib/directive/selectable-list/store/selectable-list-state.service.mjs +7 -7
  73. package/esm2020/lib/directive/selectable-list/store/selectable-list.service.mjs +3 -3
  74. package/esm2020/lib/utils/date.adapter.mjs +3 -3
  75. package/fesm2015/recursyve-nice-data-filter-kit.mjs +297 -299
  76. package/fesm2015/recursyve-nice-data-filter-kit.mjs.map +1 -1
  77. package/fesm2020/recursyve-nice-data-filter-kit.mjs +295 -297
  78. package/fesm2020/recursyve-nice-data-filter-kit.mjs.map +1 -1
  79. package/lib/api/filter.api.d.ts +1 -1
  80. package/lib/components/base-list/base-list.component.d.ts +1 -1
  81. package/lib/components/base-list/directives/base-list-buttons.directive.d.ts +1 -1
  82. package/lib/components/base-list/directives/base-list-cards.directive.d.ts +1 -1
  83. package/lib/components/base-list/directives/base-list-custom-content.directive.d.ts +1 -1
  84. package/lib/components/base-list/directives/base-list-empty-search-result-state.directive.d.ts +1 -1
  85. package/lib/components/base-list/directives/base-list-empty-state.directive.d.ts +1 -1
  86. package/lib/components/base-list/directives/base-list-filters.directive.d.ts +1 -1
  87. package/lib/components/base-list/directives/base-list-table.directive.d.ts +1 -1
  88. package/lib/components/base-list/directives/base-list-title.directive.d.ts +1 -1
  89. package/lib/components/base-list/models/icons.model.d.ts +1 -1
  90. package/lib/components/base-list/models/layout.model.d.ts +2 -2
  91. package/lib/components/multi-state-list/multi-state-list.component.d.ts +1 -1
  92. package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters-trigger.directive.d.ts +1 -1
  93. package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.component.d.ts +1 -1
  94. package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.module.d.ts +1 -1
  95. package/lib/components/nice-filter-view/components/advanced-filters/button/advanced-filters-button.component.d.ts +1 -1
  96. package/lib/components/nice-filter-view/components/advanced-filters/filter-selection/filter-selection.component.d.ts +1 -1
  97. package/lib/components/nice-filter-view/components/advanced-filters/rule/components/date/date-filter.component.d.ts +1 -1
  98. package/lib/components/nice-filter-view/components/advanced-filters/rule/components/filter.component.d.ts +1 -1
  99. package/lib/components/nice-filter-view/components/advanced-filters/rule/components/number/number-filter.component.d.ts +1 -1
  100. package/lib/components/nice-filter-view/components/advanced-filters/rule/components/radio/radio-filter.component.d.ts +1 -1
  101. package/lib/components/nice-filter-view/components/advanced-filters/rule/components/select/select-filter.component.d.ts +1 -1
  102. package/lib/components/nice-filter-view/components/advanced-filters/rule/components/text/text-filter.component.d.ts +1 -1
  103. package/lib/components/nice-filter-view/components/advanced-filters/rule/rule.component.d.ts +1 -1
  104. package/lib/components/nice-filter-view/components/common/data.directive.d.ts +1 -1
  105. package/lib/components/nice-filter-view/components/custom-data-view/custom-data-view.component.d.ts +1 -1
  106. package/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.d.ts +1 -1
  107. package/lib/components/nice-filter-view/components/export-buttons/export.directive.d.ts +1 -1
  108. package/lib/components/nice-filter-view/components/infinite-scroll-data-view/infinite-scroll-data-view.component.d.ts +1 -1
  109. package/lib/components/nice-filter-view/components/search/search.component.d.ts +1 -1
  110. package/lib/components/nice-filter-view/directives/mat-paginator.d.ts +1 -1
  111. package/lib/components/nice-filter-view/directives/mat-sort.d.ts +1 -1
  112. package/lib/components/nice-filter-view/directives/mat-tables.d.ts +1 -1
  113. package/lib/components/nice-filter-view/directives/query-params.directive.d.ts +1 -1
  114. package/lib/components/nice-filter-view/nice-base-filter-view.component.d.ts +1 -1
  115. package/lib/components/nice-filter-view/nice-filter-view.component.d.ts +1 -1
  116. package/lib/components/query-builder/filter-selection/filter-selection.component.d.ts +1 -1
  117. package/lib/components/query-builder/query-builder-trigger.directive.d.ts +1 -1
  118. package/lib/components/query-builder/query-builder.component.d.ts +1 -1
  119. package/lib/components/query-builder/query-builder.module.d.ts +1 -1
  120. package/lib/components/query-builder/rule/components/date/date-filter.component.d.ts +1 -1
  121. package/lib/components/query-builder/rule/components/filter.component.d.ts +1 -1
  122. package/lib/components/query-builder/rule/components/number/number-filter.component.d.ts +1 -1
  123. package/lib/components/query-builder/rule/components/radio/radio-filter.component.d.ts +1 -1
  124. package/lib/components/query-builder/rule/components/select/select-filter.component.d.ts +1 -1
  125. package/lib/components/query-builder/rule/components/text/text-filter.component.d.ts +1 -1
  126. package/lib/components/query-builder/rule/rule.component.d.ts +1 -1
  127. package/lib/directive/selectable-list/selectable-list-checkbox.directive.d.ts +1 -1
  128. package/lib/directive/selectable-list/selectable-list-select-all.directive.d.ts +1 -1
  129. package/lib/directive/selectable-list/selectable-list.directive.d.ts +1 -1
  130. package/lib/directive/selectable-list/store/selectable-list.state.d.ts +1 -1
  131. package/lib/models/query.model.d.ts +2 -2
  132. package/package.json +9 -9
  133. package/src/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.theme.scss +1 -1
  134. package/src/lib/components/nice-filter-view/components/advanced-filters/rule/rule.theme.scss +23 -23
@@ -18,11 +18,6 @@ import * as i12 from "./components/radio/radio-filter.component";
18
18
  import * as i13 from "./components/date/date-filter.component";
19
19
  import * as i14 from "@ngx-translate/core";
20
20
  export class RuleComponent {
21
- constructor(icons, formGroupName) {
22
- this.icons = icons;
23
- this.formGroupName = formGroupName;
24
- this.remove = new EventEmitter();
25
- }
26
21
  get filterConfig() {
27
22
  const rule = this.rules.at(0).value;
28
23
  return this.filterConfigs?.find(f => f.id === rule.id);
@@ -36,6 +31,11 @@ export class RuleComponent {
36
31
  get isNoInput() {
37
32
  return QBFilterUtils.isNoInput(this.filterOperator);
38
33
  }
34
+ constructor(icons, formGroupName) {
35
+ this.icons = icons;
36
+ this.formGroupName = formGroupName;
37
+ this.remove = new EventEmitter();
38
+ }
39
39
  ngOnInit() {
40
40
  this.formGroup = this.formGroupName.control;
41
41
  this.rules = this.formGroup.get("rules");
@@ -67,9 +67,9 @@ export class RuleComponent {
67
67
  }
68
68
  }
69
69
  }
70
- RuleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: RuleComponent, deps: [{ token: QUERY_BUILDER_ICONS, optional: true }, { token: i1.FormGroupName }], target: i0.ɵɵFactoryTarget.Component });
71
- RuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: RuleComponent, selector: "nice-rule", inputs: { filterConfigs: "filterConfigs" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"flex flex-row justify-start items-center gap-2.5\">\n <button\n class=\"select-filter\"\n mat-raised-button\n color=\"accent\"\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfigs\"\n (queryBuilderFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center\">\n <div class=\"config-name\">{{ filterConfig?.name }}</div>\n <mat-icon [svgIcon]=\"icons.arrowDown.svgIcon\">{{ icons.arrowDown.matIcon }}</mat-icon>\n </div>\n </button>\n <div class=\"flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\">\n <mat-form-field class=\"rule-form-field\">\n <mat-select\n class=\"rule-operator\"\n [ngModel]=\"filterOperator\"\n (ngModelChange)=\"onUpdateFilterOperator($event)\"\n >\n <mat-option *ngFor=\"let operator of filterConfig?.operators\" [value]=\"operator.id\">\n {{ operator?.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"flex flex-col flex-grow flex-shrink md:flex-row flex-wrap\" [formGroup]=\"formGroup\">\n <ng-container formArrayName=\"rules\">\n <div\n class=\"rule-container flex flex-col md:flex-row flex-full justify-start items-center gap-2.5\"\n [class.is-double-input]=\"!!isDoubleInput\"\n [class.is-single-input]=\"!isDoubleInput\"\n [formGroupName]=\"i\"\n *ngFor=\"let rule of rules.controls; let i = index\"\n >\n <ng-container *ngIf=\"isSingleInput\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter *ngSwitchCase=\"'text'\" class=\"flex flex-auto\" formControlName=\"value\" [filterConfig]=\"filterConfig\"></nice-text-filter>\n <nice-number-filter *ngSwitchCase=\"'number'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n <nice-date-filter *ngSwitchCase=\"'date'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-date-filter>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isDoubleInput\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-text-filter>\n <nice-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n <nice-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-date-filter>\n </ng-container>\n <h3 class=\"aligned-text\">\n {{ \"components.query_builder.rule.conditions.and\" | translate }}\n </h3>\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-text-filter>\n <nice-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n <nice-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-date-filter>\n </ng-container>\n </ng-container>\n <div class=\"rule-buttons flex flex-row gap-2\">\n <button mat-mini-fab class=\"or-button aligned-button\" (click)=\"onClickOr()\">\n {{ \"components.query_builder.rule.conditions.or\" | translate }}\n </button>\n <button class=\"aligned-button\" mat-icon-button color=\"warn\" (click)=\"onClickDelete(i)\">\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{ icons.delete.matIcon }}</mat-icon>\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i8.QueryBuilderTriggerDirective, selector: "[niceQueryBuilderTrigger]", inputs: ["queryBuilderFilters", "queryBuilderFiltersLoading"], outputs: ["queryBuilderFilterSelected"] }, { kind: "component", type: i9.SelectFilterComponent, selector: "nice-select-filter", inputs: ["filterConfig"] }, { kind: "component", type: i10.TextFilterComponent, selector: "nice-text-filter", inputs: ["filterConfig"] }, { kind: "component", type: i11.NumberFilterComponent, selector: "nice-number-filter" }, { kind: "component", type: i12.RadioFilterComponent, selector: "nice-radio-filter", inputs: ["filterConfig"] }, { kind: "component", type: i13.DateFilterComponent, selector: "nice-date-filter" }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: RuleComponent, decorators: [{
70
+ RuleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuleComponent, deps: [{ token: QUERY_BUILDER_ICONS, optional: true }, { token: i1.FormGroupName }], target: i0.ɵɵFactoryTarget.Component });
71
+ RuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: RuleComponent, selector: "nice-rule", inputs: { filterConfigs: "filterConfigs" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"flex flex-row justify-start items-center gap-2.5\">\n <button\n class=\"select-filter\"\n mat-raised-button\n color=\"accent\"\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfigs\"\n (queryBuilderFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center\">\n <div class=\"config-name\">{{ filterConfig?.name }}</div>\n <mat-icon [svgIcon]=\"icons.arrowDown.svgIcon\">{{ icons.arrowDown.matIcon }}</mat-icon>\n </div>\n </button>\n <div class=\"flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\">\n <mat-form-field class=\"rule-form-field\">\n <mat-select\n class=\"rule-operator\"\n [ngModel]=\"filterOperator\"\n (ngModelChange)=\"onUpdateFilterOperator($event)\"\n >\n <mat-option *ngFor=\"let operator of filterConfig?.operators\" [value]=\"operator.id\">\n {{ operator?.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"flex flex-col flex-grow flex-shrink md:flex-row flex-wrap\" [formGroup]=\"formGroup\">\n <ng-container formArrayName=\"rules\">\n <div\n class=\"rule-container flex flex-col md:flex-row flex-full justify-start items-center gap-2.5\"\n [class.is-double-input]=\"!!isDoubleInput\"\n [class.is-single-input]=\"!isDoubleInput\"\n [formGroupName]=\"i\"\n *ngFor=\"let rule of rules.controls; let i = index\"\n >\n <ng-container *ngIf=\"isSingleInput\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter *ngSwitchCase=\"'text'\" class=\"flex flex-auto\" formControlName=\"value\" [filterConfig]=\"filterConfig\"></nice-text-filter>\n <nice-number-filter *ngSwitchCase=\"'number'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n <nice-date-filter *ngSwitchCase=\"'date'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-date-filter>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isDoubleInput\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-text-filter>\n <nice-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n <nice-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-date-filter>\n </ng-container>\n <h3 class=\"aligned-text\">\n {{ \"components.query_builder.rule.conditions.and\" | translate }}\n </h3>\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-text-filter>\n <nice-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n <nice-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-date-filter>\n </ng-container>\n </ng-container>\n <div class=\"rule-buttons flex flex-row gap-2\">\n <button mat-mini-fab class=\"or-button aligned-button\" (click)=\"onClickOr()\">\n {{ \"components.query_builder.rule.conditions.or\" | translate }}\n </button>\n <button class=\"aligned-button\" mat-icon-button color=\"warn\" (click)=\"onClickDelete(i)\">\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{ icons.delete.matIcon }}</mat-icon>\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i8.QueryBuilderTriggerDirective, selector: "[niceQueryBuilderTrigger]", inputs: ["queryBuilderFilters", "queryBuilderFiltersLoading"], outputs: ["queryBuilderFilterSelected"] }, { kind: "component", type: i9.SelectFilterComponent, selector: "nice-select-filter", inputs: ["filterConfig"] }, { kind: "component", type: i10.TextFilterComponent, selector: "nice-text-filter", inputs: ["filterConfig"] }, { kind: "component", type: i11.NumberFilterComponent, selector: "nice-number-filter" }, { kind: "component", type: i12.RadioFilterComponent, selector: "nice-radio-filter", inputs: ["filterConfig"] }, { kind: "component", type: i13.DateFilterComponent, selector: "nice-date-filter" }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuleComponent, decorators: [{
73
73
  type: Component,
74
74
  args: [{ selector: "nice-rule", encapsulation: ViewEncapsulation.None, template: "<div class=\"flex flex-row justify-start items-center gap-2.5\">\n <button\n class=\"select-filter\"\n mat-raised-button\n color=\"accent\"\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfigs\"\n (queryBuilderFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center\">\n <div class=\"config-name\">{{ filterConfig?.name }}</div>\n <mat-icon [svgIcon]=\"icons.arrowDown.svgIcon\">{{ icons.arrowDown.matIcon }}</mat-icon>\n </div>\n </button>\n <div class=\"flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\">\n <mat-form-field class=\"rule-form-field\">\n <mat-select\n class=\"rule-operator\"\n [ngModel]=\"filterOperator\"\n (ngModelChange)=\"onUpdateFilterOperator($event)\"\n >\n <mat-option *ngFor=\"let operator of filterConfig?.operators\" [value]=\"operator.id\">\n {{ operator?.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"flex flex-col flex-grow flex-shrink md:flex-row flex-wrap\" [formGroup]=\"formGroup\">\n <ng-container formArrayName=\"rules\">\n <div\n class=\"rule-container flex flex-col md:flex-row flex-full justify-start items-center gap-2.5\"\n [class.is-double-input]=\"!!isDoubleInput\"\n [class.is-single-input]=\"!isDoubleInput\"\n [formGroupName]=\"i\"\n *ngFor=\"let rule of rules.controls; let i = index\"\n >\n <ng-container *ngIf=\"isSingleInput\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter *ngSwitchCase=\"'text'\" class=\"flex flex-auto\" formControlName=\"value\" [filterConfig]=\"filterConfig\"></nice-text-filter>\n <nice-number-filter *ngSwitchCase=\"'number'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n <nice-date-filter *ngSwitchCase=\"'date'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-date-filter>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isDoubleInput\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-text-filter>\n <nice-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n <nice-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-date-filter>\n </ng-container>\n <h3 class=\"aligned-text\">\n {{ \"components.query_builder.rule.conditions.and\" | translate }}\n </h3>\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-text-filter>\n <nice-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n <nice-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-date-filter>\n </ng-container>\n </ng-container>\n <div class=\"rule-buttons flex flex-row gap-2\">\n <button mat-mini-fab class=\"or-button aligned-button\" (click)=\"onClickOr()\">\n {{ \"components.query_builder.rule.conditions.or\" | translate }}\n </button>\n <button class=\"aligned-button\" mat-icon-button color=\"warn\" (click)=\"onClickDelete(i)\">\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{ icons.delete.matIcon }}</mat-icon>\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
75
75
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -82,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
82
82
  }], remove: [{
83
83
  type: Output
84
84
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvcXVlcnktYnVpbGRlci9ydWxlL3J1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWJ1aWxkZXIvcnVsZS9ydWxlLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUsvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLGFBQWE7SUE0QnRCLFlBRVcsS0FBa0MsRUFDakMsYUFBNEI7UUFEN0IsVUFBSyxHQUFMLEtBQUssQ0FBNkI7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUExQmpDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBMkJoQyxDQUFDO0lBckJKLElBQVcsWUFBWTtRQUNuQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUF1QixDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQTZCLENBQUM7SUFDdkYsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBUU0sUUFBUTtRQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUF3QyxDQUFDO1FBQzdFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFzQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sb0JBQW9CLENBQUMsTUFBZ0M7UUFDeEQsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQXFCLENBQUMsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sU0FBUztRQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRU0sc0JBQXNCLENBQUMsUUFBZ0I7UUFDMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUEyQixDQUFDO1FBQ2xELEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRXZELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDdkU7U0FDSjtJQUNMLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBYTtRQUM5QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QjthQUFNO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN0QjtJQUNMLENBQUM7OzBHQW5FUSxhQUFhLGtCQTZCRSxtQkFBbUI7OEZBN0JsQyxhQUFhLDRIQ2YxQixzek9Bb0lBOzJGRHJIYSxhQUFhO2tCQUx6QixTQUFTOytCQUNJLFdBQVcsaUJBRU4saUJBQWlCLENBQUMsSUFBSTs7MEJBK0JoQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQjt3RUEzQnBDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUdyb3VwTmFtZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgR2VuZXJhdGVkRm9ybUFycmF5LCBHZW5lcmF0ZWRGb3JtR3JvdXAgfSBmcm9tIFwiQHJlY3Vyc3l2ZS9uZ3gtZm9ybS1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvZmlsdGVyLm1vZGVsXCI7XG5pbXBvcnQgeyBGaWx0ZXJPcGVyYXRvcnMsIFF1ZXJ5UnVsZU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHsgTmljZVF1ZXJ5QnVpbGRlckljb25PcHRpb25zIH0gZnJvbSBcIi4uL21vZGVscy9pY29ucy5tb2RlbFwiO1xuaW1wb3J0IHsgUVVFUllfQlVJTERFUl9JQ09OUyB9IGZyb20gXCIuLi9xdWVyeS1idWlsZGVyLmNvbnN0YW50XCI7XG5pbXBvcnQgeyBRdWVyeUZvcm0sIFF1ZXJ5UnVsZUZvcm0gfSBmcm9tIFwiLi4vcXVlcnktYnVpbGRlci5mb3JtXCI7XG5pbXBvcnQgeyBRQkZpbHRlclV0aWxzIH0gZnJvbSBcIi4uL3V0aWxzL3FiLWZpbHRlci51dGlsc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJuaWNlLXJ1bGVcIixcbiAgICB0ZW1wbGF0ZVVybDogXCJydWxlLnRlbXBsYXRlLmh0bWxcIixcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFJ1bGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbHRlckNvbmZpZ3M6IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbFtdIHwgbnVsbDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBHZW5lcmF0ZWRGb3JtR3JvdXA8UXVlcnlGb3JtPjtcbiAgICBwdWJsaWMgcnVsZXM6IEdlbmVyYXRlZEZvcm1BcnJheTxRdWVyeVJ1bGVGb3JtPjtcbiAgICBwdWJsaWMgZmlsdGVyT3BlcmF0b3I6IEZpbHRlck9wZXJhdG9ycztcblxuICAgIHB1YmxpYyBnZXQgZmlsdGVyQ29uZmlnKCk6IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCB7XG4gICAgICAgIGNvbnN0IHJ1bGUgPSB0aGlzLnJ1bGVzLmF0KDApLnZhbHVlIGFzIFF1ZXJ5UnVsZU1vZGVsO1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJDb25maWdzPy5maW5kKGYgPT4gZi5pZCA9PT0gcnVsZS5pZCkgYXMgRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNTaW5nbGVJbnB1dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzRG91YmxlSW5wdXQgJiYgIXRoaXMuaXNOb0lucHV0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNEb3VibGVJbnB1dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFFCRmlsdGVyVXRpbHMuaXNEb3VibGVJbnB1dCh0aGlzLmZpbHRlck9wZXJhdG9yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTm9JbnB1dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFFCRmlsdGVyVXRpbHMuaXNOb0lucHV0KHRoaXMuZmlsdGVyT3BlcmF0b3IpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFFVRVJZX0JVSUxERVJfSUNPTlMpXG4gICAgICAgIHB1YmxpYyBpY29uczogTmljZVF1ZXJ5QnVpbGRlckljb25PcHRpb25zLFxuICAgICAgICBwcml2YXRlIGZvcm1Hcm91cE5hbWU6IEZvcm1Hcm91cE5hbWVcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtR3JvdXBOYW1lLmNvbnRyb2wgYXMgR2VuZXJhdGVkRm9ybUdyb3VwPFF1ZXJ5Rm9ybT47XG4gICAgICAgIHRoaXMucnVsZXMgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJydWxlc1wiKSBhcyBHZW5lcmF0ZWRGb3JtQXJyYXk8UXVlcnlSdWxlRm9ybT47XG4gICAgICAgIHRoaXMuZmlsdGVyT3BlcmF0b3IgPSB0aGlzLnJ1bGVzLmF0KDApLnZhbHVlLm9wZXJhdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25VcGRhdGVGaWx0ZXJDb25maWcoY29uZmlnOiBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcnVsZSA9IFFCRmlsdGVyVXRpbHMuY3JlYXRlUnVsZShjb25maWcpO1xuICAgICAgICB0aGlzLnJ1bGVzLnBhdGNoVmFsdWUoW3J1bGUgYXMgUXVlcnlSdWxlRm9ybV0pO1xuICAgICAgICB0aGlzLmZpbHRlck9wZXJhdG9yID0gcnVsZS5vcGVyYXRpb247XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xpY2tPcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ydWxlcy5wdXNoKFFCRmlsdGVyVXRpbHMuY3JlYXRlUnVsZSh0aGlzLmZpbHRlckNvbmZpZywgdGhpcy5maWx0ZXJPcGVyYXRvcikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblVwZGF0ZUZpbHRlck9wZXJhdG9yKG9wZXJhdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJPcGVyYXRvciA9IG9wZXJhdG9yIGFzIEZpbHRlck9wZXJhdG9ycztcbiAgICAgICAgZm9yIChjb25zdCBydWxlIG9mIHRoaXMucnVsZXMuY29udHJvbHMpIHtcbiAgICAgICAgICAgIHJ1bGUuZ2V0KFwib3BlcmF0aW9uXCIpPy5wYXRjaFZhbHVlKHRoaXMuZmlsdGVyT3BlcmF0b3IpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5pc0RvdWJsZUlucHV0KSB7XG4gICAgICAgICAgICAgICAgcnVsZS5nZXQoXCJ2YWx1ZVwiKT8ucGF0Y2hWYWx1ZShbcnVsZS52YWx1ZS52YWx1ZSwgcnVsZS52YWx1ZS52YWx1ZV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xpY2tEZWxldGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5ydWxlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICB0aGlzLnJ1bGVzLnJlbW92ZUF0KGluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktc3RhcnQgaXRlbXMtY2VudGVyIGdhcC0yLjVcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic2VsZWN0LWZpbHRlclwiXG4gICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgbmljZVF1ZXJ5QnVpbGRlclRyaWdnZXJcbiAgICAgICAgW3F1ZXJ5QnVpbGRlckZpbHRlcnNdPVwiZmlsdGVyQ29uZmlnc1wiXG4gICAgICAgIChxdWVyeUJ1aWxkZXJGaWx0ZXJTZWxlY3RlZCk9XCJvblVwZGF0ZUZpbHRlckNvbmZpZygkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctbmFtZVwiPnt7IGZpbHRlckNvbmZpZz8ubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImljb25zLmFycm93RG93bi5zdmdJY29uXCI+e3sgaWNvbnMuYXJyb3dEb3duLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBmbGV4LWF1dG8ganVzdGlmeS1zdGFydCBpdGVtcy1jZW50ZXIgZ2FwLTIuNVwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJydWxlLWZvcm0tZmllbGRcIj5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJydWxlLW9wZXJhdG9yXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJmaWx0ZXJPcGVyYXRvclwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25VcGRhdGVGaWx0ZXJPcGVyYXRvcigkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3BlcmF0b3Igb2YgZmlsdGVyQ29uZmlnPy5vcGVyYXRvcnNcIiBbdmFsdWVdPVwib3BlcmF0b3IuaWRcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgb3BlcmF0b3I/Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtZ3JvdyBmbGV4LXNocmluayBtZDpmbGV4LXJvdyBmbGV4LXdyYXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtQXJyYXlOYW1lPVwicnVsZXNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicnVsZS1jb250YWluZXIgZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBmbGV4LWZ1bGwganVzdGlmeS1zdGFydCBpdGVtcy1jZW50ZXIgZ2FwLTIuNVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1kb3VibGUtaW5wdXRdPVwiISFpc0RvdWJsZUlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLXNpbmdsZS1pbnB1dF09XCIhaXNEb3VibGVJbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImlcIlxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcnVsZSBvZiBydWxlcy5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaW5nbGVJbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmlsdGVyQ29uZmlnPy50eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtdGV4dC1maWx0ZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIiBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCI+PC9uaWNlLXRleHQtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLW51bWJlci1maWx0ZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCIgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCI+PC9uaWNlLW51bWJlci1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtcmFkaW8tZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIncmFkaW8nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0byBtYi00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1yYWRpby1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2Utc2VsZWN0LWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1zZWxlY3QtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWRhdGUtZmlsdGVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIiBjbGFzcz1cImZsZXggZmxleC1hdXRvXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIj48L25pY2UtZGF0ZS1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0RvdWJsZUlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWx0ZXJDb25maWc/LnR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmljZS10ZXh0LWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNvbmZpZ109XCJmaWx0ZXJDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtdGV4dC1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtbnVtYmVyLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtbnVtYmVyLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1yYWRpby1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidyYWRpbydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvIG1iLTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLXJhZGlvLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1zZWxlY3QtZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLXNlbGVjdC1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtZGF0ZS1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1kYXRlLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiYWxpZ25lZC10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJjb21wb25lbnRzLnF1ZXJ5X2J1aWxkZXIucnVsZS5jb25kaXRpb25zLmFuZFwiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmlsdGVyQ29uZmlnPy50eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtdGV4dC1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlY29uZFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLXRleHQtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLW51bWJlci1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlY29uZFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLW51bWJlci1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtcmFkaW8tZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIncmFkaW8nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0byBtYi00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2Vjb25kVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1yYWRpby1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2Utc2VsZWN0LWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2Vjb25kVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1zZWxlY3QtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWRhdGUtZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2Vjb25kVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtZGF0ZS1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJydWxlLWJ1dHRvbnMgZmxleCBmbGV4LXJvdyBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWluaS1mYWIgY2xhc3M9XCJvci1idXR0b24gYWxpZ25lZC1idXR0b25cIiAoY2xpY2spPVwib25DbGlja09yKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBcImNvbXBvbmVudHMucXVlcnlfYnVpbGRlci5ydWxlLmNvbmRpdGlvbnMub3JcIiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWxpZ25lZC1idXR0b25cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJ3YXJuXCIgKGNsaWNrKT1cIm9uQ2xpY2tEZWxldGUoaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMuZGVsZXRlLnN2Z0ljb25cIj57eyBpY29ucy5kZWxldGUubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvcXVlcnktYnVpbGRlci9ydWxlL3J1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWJ1aWxkZXIvcnVsZS9ydWxlLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUsvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLGFBQWE7SUFXdEIsSUFBVyxZQUFZO1FBQ25CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQXVCLENBQUM7UUFDdEQsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBNkIsQ0FBQztJQUN2RixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQVcsU0FBUztRQUNoQixPQUFPLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxZQUVXLEtBQWtDLEVBQ2pDLGFBQTRCO1FBRDdCLFVBQUssR0FBTCxLQUFLLENBQTZCO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBMUJqQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQTJCaEMsQ0FBQztJQUVHLFFBQVE7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBd0MsQ0FBQztRQUM3RSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBc0MsQ0FBQztRQUM5RSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDM0QsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE1BQWdDO1FBQ3hELE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFxQixDQUFDLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDekMsQ0FBQztJQUVNLFNBQVM7UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVNLHNCQUFzQixDQUFDLFFBQWdCO1FBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBMkIsQ0FBQztRQUNsRCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUV2RCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ3ZFO1NBQ0o7SUFDTCxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQWE7UUFDOUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUI7YUFBTTtZQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdEI7SUFDTCxDQUFDOzswR0FuRVEsYUFBYSxrQkE2QkUsbUJBQW1COzhGQTdCbEMsYUFBYSw0SENmMUIsc3pPQW9JQTsyRkRySGEsYUFBYTtrQkFMekIsU0FBUzsrQkFDSSxXQUFXLGlCQUVOLGlCQUFpQixDQUFDLElBQUk7OzBCQStCaEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQkFBbUI7d0VBM0JwQyxhQUFhO3NCQURuQixLQUFLO2dCQUlDLE1BQU07c0JBRFosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Hcm91cE5hbWUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEdlbmVyYXRlZEZvcm1BcnJheSwgR2VuZXJhdGVkRm9ybUdyb3VwIH0gZnJvbSBcIkByZWN1cnN5dmUvbmd4LWZvcm0tZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgRmlsdGVyT3BlcmF0b3JzLCBRdWVyeVJ1bGVNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvcXVlcnkubW9kZWxcIjtcbmltcG9ydCB7IE5pY2VRdWVyeUJ1aWxkZXJJY29uT3B0aW9ucyB9IGZyb20gXCIuLi9tb2RlbHMvaWNvbnMubW9kZWxcIjtcbmltcG9ydCB7IFFVRVJZX0JVSUxERVJfSUNPTlMgfSBmcm9tIFwiLi4vcXVlcnktYnVpbGRlci5jb25zdGFudFwiO1xuaW1wb3J0IHsgUXVlcnlGb3JtLCBRdWVyeVJ1bGVGb3JtIH0gZnJvbSBcIi4uL3F1ZXJ5LWJ1aWxkZXIuZm9ybVwiO1xuaW1wb3J0IHsgUUJGaWx0ZXJVdGlscyB9IGZyb20gXCIuLi91dGlscy9xYi1maWx0ZXIudXRpbHNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibmljZS1ydWxlXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwicnVsZS50ZW1wbGF0ZS5odG1sXCIsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBSdWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWx0ZXJDb25maWdzOiBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWxbXSB8IG51bGw7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGZvcm1Hcm91cDogR2VuZXJhdGVkRm9ybUdyb3VwPFF1ZXJ5Rm9ybT47XG4gICAgcHVibGljIHJ1bGVzOiBHZW5lcmF0ZWRGb3JtQXJyYXk8UXVlcnlSdWxlRm9ybT47XG4gICAgcHVibGljIGZpbHRlck9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvcnM7XG5cbiAgICBwdWJsaWMgZ2V0IGZpbHRlckNvbmZpZygpOiBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwge1xuICAgICAgICBjb25zdCBydWxlID0gdGhpcy5ydWxlcy5hdCgwKS52YWx1ZSBhcyBRdWVyeVJ1bGVNb2RlbDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyQ29uZmlncz8uZmluZChmID0+IGYuaWQgPT09IHJ1bGUuaWQpIGFzIEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzU2luZ2xlSW5wdXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0RvdWJsZUlucHV0ICYmICF0aGlzLmlzTm9JbnB1dDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzRG91YmxlSW5wdXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBRQkZpbHRlclV0aWxzLmlzRG91YmxlSW5wdXQodGhpcy5maWx0ZXJPcGVyYXRvcik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc05vSW5wdXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBRQkZpbHRlclV0aWxzLmlzTm9JbnB1dCh0aGlzLmZpbHRlck9wZXJhdG9yKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChRVUVSWV9CVUlMREVSX0lDT05TKVxuICAgICAgICBwdWJsaWMgaWNvbnM6IE5pY2VRdWVyeUJ1aWxkZXJJY29uT3B0aW9ucyxcbiAgICAgICAgcHJpdmF0ZSBmb3JtR3JvdXBOYW1lOiBGb3JtR3JvdXBOYW1lXG4gICAgKSB7fVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUdyb3VwTmFtZS5jb250cm9sIGFzIEdlbmVyYXRlZEZvcm1Hcm91cDxRdWVyeUZvcm0+O1xuICAgICAgICB0aGlzLnJ1bGVzID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwicnVsZXNcIikgYXMgR2VuZXJhdGVkRm9ybUFycmF5PFF1ZXJ5UnVsZUZvcm0+O1xuICAgICAgICB0aGlzLmZpbHRlck9wZXJhdG9yID0gdGhpcy5ydWxlcy5hdCgwKS52YWx1ZS5vcGVyYXRpb247XG4gICAgfVxuXG4gICAgcHVibGljIG9uVXBkYXRlRmlsdGVyQ29uZmlnKGNvbmZpZzogRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJ1bGUgPSBRQkZpbHRlclV0aWxzLmNyZWF0ZVJ1bGUoY29uZmlnKTtcbiAgICAgICAgdGhpcy5ydWxlcy5wYXRjaFZhbHVlKFtydWxlIGFzIFF1ZXJ5UnVsZUZvcm1dKTtcbiAgICAgICAgdGhpcy5maWx0ZXJPcGVyYXRvciA9IHJ1bGUub3BlcmF0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsaWNrT3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucnVsZXMucHVzaChRQkZpbHRlclV0aWxzLmNyZWF0ZVJ1bGUodGhpcy5maWx0ZXJDb25maWcsIHRoaXMuZmlsdGVyT3BlcmF0b3IpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25VcGRhdGVGaWx0ZXJPcGVyYXRvcihvcGVyYXRvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyT3BlcmF0b3IgPSBvcGVyYXRvciBhcyBGaWx0ZXJPcGVyYXRvcnM7XG4gICAgICAgIGZvciAoY29uc3QgcnVsZSBvZiB0aGlzLnJ1bGVzLmNvbnRyb2xzKSB7XG4gICAgICAgICAgICBydWxlLmdldChcIm9wZXJhdGlvblwiKT8ucGF0Y2hWYWx1ZSh0aGlzLmZpbHRlck9wZXJhdG9yKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNEb3VibGVJbnB1dCkge1xuICAgICAgICAgICAgICAgIHJ1bGUuZ2V0KFwidmFsdWVcIik/LnBhdGNoVmFsdWUoW3J1bGUudmFsdWUudmFsdWUsIHJ1bGUudmFsdWUudmFsdWVdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsaWNrRGVsZXRlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucnVsZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgdGhpcy5ydWxlcy5yZW1vdmVBdChpbmRleCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LXN0YXJ0IGl0ZW1zLWNlbnRlciBnYXAtMi41XCI+XG4gICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInNlbGVjdC1maWx0ZXJcIlxuICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgIG5pY2VRdWVyeUJ1aWxkZXJUcmlnZ2VyXG4gICAgICAgIFtxdWVyeUJ1aWxkZXJGaWx0ZXJzXT1cImZpbHRlckNvbmZpZ3NcIlxuICAgICAgICAocXVlcnlCdWlsZGVyRmlsdGVyU2VsZWN0ZWQpPVwib25VcGRhdGVGaWx0ZXJDb25maWcoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLW5hbWVcIj57eyBmaWx0ZXJDb25maWc/Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5hcnJvd0Rvd24uc3ZnSWNvblwiPnt7IGljb25zLmFycm93RG93bi5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgZmxleC1hdXRvIGp1c3RpZnktc3RhcnQgaXRlbXMtY2VudGVyIGdhcC0yLjVcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwicnVsZS1mb3JtLWZpZWxkXCI+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgIGNsYXNzPVwicnVsZS1vcGVyYXRvclwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiZmlsdGVyT3BlcmF0b3JcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVXBkYXRlRmlsdGVyT3BlcmF0b3IoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wZXJhdG9yIG9mIGZpbHRlckNvbmZpZz8ub3BlcmF0b3JzXCIgW3ZhbHVlXT1cIm9wZXJhdG9yLmlkXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG9wZXJhdG9yPy5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LWdyb3cgZmxleC1zaHJpbmsgbWQ6ZmxleC1yb3cgZmxleC13cmFwXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUFycmF5TmFtZT1cInJ1bGVzXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJ1bGUtY29udGFpbmVyIGZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgZmxleC1mdWxsIGp1c3RpZnktc3RhcnQgaXRlbXMtY2VudGVyIGdhcC0yLjVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtZG91YmxlLWlucHV0XT1cIiEhaXNEb3VibGVJbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1zaW5nbGUtaW5wdXRdPVwiIWlzRG91YmxlSW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJ1bGUgb2YgcnVsZXMuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2luZ2xlSW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpbHRlckNvbmZpZz8udHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLXRleHQtZmlsdGVyICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIiBjbGFzcz1cImZsZXggZmxleC1hdXRvXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiPjwvbmljZS10ZXh0LWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1udW1iZXItZmlsdGVyICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIiBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiPjwvbmljZS1udW1iZXItZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLXJhZGlvLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG8gbWItNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNvbmZpZ109XCJmaWx0ZXJDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtcmFkaW8tZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLXNlbGVjdC1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3QnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNvbmZpZ109XCJmaWx0ZXJDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2Utc2VsZWN0LWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1kYXRlLWZpbHRlciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCIgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCI+PC9uaWNlLWRhdGUtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEb3VibGVJbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmlsdGVyQ29uZmlnPy50eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtdGV4dC1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLXRleHQtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLW51bWJlci1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLW51bWJlci1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtcmFkaW8tZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIncmFkaW8nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0byBtYi00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1yYWRpby1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2Utc2VsZWN0LWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1zZWxlY3QtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWRhdGUtZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtZGF0ZS1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImFsaWduZWQtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiY29tcG9uZW50cy5xdWVyeV9idWlsZGVyLnJ1bGUuY29uZGl0aW9ucy5hbmRcIiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpbHRlckNvbmZpZz8udHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLXRleHQtZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWNvbmRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS10ZXh0LWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1udW1iZXItZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWNvbmRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1udW1iZXItZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLXJhZGlvLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG8gbWItNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlY29uZFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNvbmZpZ109XCJmaWx0ZXJDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtcmFkaW8tZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLXNlbGVjdC1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3QnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlY29uZFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNvbmZpZ109XCJmaWx0ZXJDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2Utc2VsZWN0LWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1kYXRlLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlY29uZFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLWRhdGUtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicnVsZS1idXR0b25zIGZsZXggZmxleC1yb3cgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1pbmktZmFiIGNsYXNzPVwib3ItYnV0dG9uIGFsaWduZWQtYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2xpY2tPcigpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJjb21wb25lbnRzLnF1ZXJ5X2J1aWxkZXIucnVsZS5jb25kaXRpb25zLm9yXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFsaWduZWQtYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJvbkNsaWNrRGVsZXRlKGkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImljb25zLmRlbGV0ZS5zdmdJY29uXCI+e3sgaWNvbnMuZGVsZXRlLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -2,9 +2,9 @@ import { Injectable } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export class NicePreloadSelectedEntitiesProvider {
4
4
  }
5
- NicePreloadSelectedEntitiesProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NicePreloadSelectedEntitiesProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6
- NicePreloadSelectedEntitiesProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NicePreloadSelectedEntitiesProvider });
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NicePreloadSelectedEntitiesProvider, decorators: [{
5
+ NicePreloadSelectedEntitiesProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NicePreloadSelectedEntitiesProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6
+ NicePreloadSelectedEntitiesProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NicePreloadSelectedEntitiesProvider });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NicePreloadSelectedEntitiesProvider, decorators: [{
8
8
  type: Injectable
9
9
  }] });
10
10
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlbG9hZC1zZWxlY3RlZC1lbnRpdGllcy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvZGlyZWN0aXZlL3NlbGVjdGFibGUtbGlzdC9wcm92aWRlcnMvcHJlbG9hZC1zZWxlY3RlZC1lbnRpdGllcy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQyxNQUFNLE9BQWdCLG1DQUFtQzs7Z0lBQW5DLG1DQUFtQztvSUFBbkMsbUNBQW1DOzJGQUFuQyxtQ0FBbUM7a0JBRHhELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE5pY2VTZWxlY3RhYmxlTGlzdExvYWRBbGxFbnRpdGllc09wdGlvbnMgfSBmcm9tIFwiLi4vbW9kZWwvbG9hZC1hbGwtZW50aXRpZXMtb3B0aW9ucy5tb2RlbFwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmljZVByZWxvYWRTZWxlY3RlZEVudGl0aWVzUHJvdmlkZXI8VCwgSUQgPSBudW1iZXI+IHtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc3RhdGU6IHN0cmluZztcbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVsb2FkRW50aXR5KGVudGl0eTogVCk6IFByb21pc2U8VD47XG4gICAgcHVibGljIGFic3RyYWN0IHJlbG9hZEVudGl0aWVzKGVudGl0aWVzOiBUW10pOiBQcm9taXNlPFRbXT47XG4gICAgcHVibGljIGFic3RyYWN0IGxvYWRFbnRpdHlCeUlkKGlkOiBJRCk6IFByb21pc2U8VD47XG4gICAgcHVibGljIGFic3RyYWN0IGxvYWRFbnRpdGllc0J5SWQoaWRzOiBJRFtdKTogUHJvbWlzZTxUW10+O1xuICAgIHB1YmxpYyBhYnN0cmFjdCBsb2FkQWxsRW50aXRpZXMob3B0aW9ucz86IE5pY2VTZWxlY3RhYmxlTGlzdExvYWRBbGxFbnRpdGllc09wdGlvbnMpOiBQcm9taXNlPElEW10+O1xufVxuIl19
@@ -28,9 +28,9 @@ export class SelectableListContentService {
28
28
  this._checkboxes = checkboxes;
29
29
  }
30
30
  }
31
- SelectableListContentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: SelectableListContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32
- SelectableListContentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: SelectableListContentService });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: SelectableListContentService, decorators: [{
31
+ SelectableListContentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectableListContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32
+ SelectableListContentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectableListContentService });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectableListContentService, decorators: [{
34
34
  type: Injectable
35
35
  }] });
36
36
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0LWNvbnRlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvZGlyZWN0aXZlL3NlbGVjdGFibGUtbGlzdC9wcm92aWRlcnMvc2VsZWN0YWJsZS1saXN0LWNvbnRlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLdEQsTUFBTSxPQUFPLDRCQUE0QjtJQUR6QztRQUdZLFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBQzdCLGdCQUFXLEdBQW1ELElBQUksU0FBUyxFQUFFLENBQUM7UUFFOUUsbUJBQWMsR0FBOEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFDLEVBQUUsQ0FBQztLQTRCekY7SUExQkcsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRU0sVUFBVSxDQUFDLE9BQWtDO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDWixHQUFHLElBQUksQ0FBQyxjQUFjO1lBQ3RCLEdBQUcsT0FBTztTQUNiLENBQUM7SUFDTixDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxVQUEwRDtRQUMzRSxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNsQyxDQUFDOzt5SEFoQ1EsNEJBQTRCOzZIQUE1Qiw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFF1ZXJ5TGlzdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOaWNlU2VsZWN0YWJsZUxpc3RPcHRpb25zIH0gZnJvbSBcIi4uL21vZGVsL3NlbGVjdGFibGUtbGlzdC1vcHRpb25zLm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlU2VsZWN0YWJsZUxpc3RDaGVja2JveERpcmVjdGl2ZSB9IGZyb20gXCIuLi9zZWxlY3RhYmxlLWxpc3QtY2hlY2tib3guZGlyZWN0aXZlXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWxlY3RhYmxlTGlzdENvbnRlbnRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9vcHRpb25zOiBOaWNlU2VsZWN0YWJsZUxpc3RPcHRpb25zO1xuICAgIHByaXZhdGUgX3N0YXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9jaGVja2JveGVzOiBRdWVyeUxpc3Q8TmljZVNlbGVjdGFibGVMaXN0Q2hlY2tib3hEaXJlY3RpdmU+ID0gbmV3IFF1ZXJ5TGlzdCgpO1xuXG4gICAgcHJpdmF0ZSBkZWZhdWx0T3B0aW9uczogTmljZVNlbGVjdGFibGVMaXN0T3B0aW9ucyA9IHsgaWRLZXk6IFwiaWRcIiwgcHJlbG9hZFdpbmRvdzogMiB9O1xuXG4gICAgcHVibGljIGdldCBvcHRpb25zKCk6IE5pY2VTZWxlY3RhYmxlTGlzdE9wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucyA/PyB0aGlzLmRlZmF1bHRPcHRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3RhdGUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNoZWNrYm94ZXMoKTogUXVlcnlMaXN0PE5pY2VTZWxlY3RhYmxlTGlzdENoZWNrYm94RGlyZWN0aXZlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGVja2JveGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRPcHRpb25zKG9wdGlvbnM6IE5pY2VTZWxlY3RhYmxlTGlzdE9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuZGVmYXVsdE9wdGlvbnMsXG4gICAgICAgICAgICAuLi5vcHRpb25zXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHNldFN0YXRlKHN0YXRlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBzdGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0Q2hlY2tib3hlcyhjaGVja2JveGVzOiBRdWVyeUxpc3Q8TmljZVNlbGVjdGFibGVMaXN0Q2hlY2tib3hEaXJlY3RpdmU+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoZWNrYm94ZXMgPSBjaGVja2JveGVzO1xuICAgIH1cbn1cbiJdfQ==
@@ -11,6 +11,12 @@ import * as i2 from "./providers/selectable-list-content.service";
11
11
  import * as i3 from "./store/selectable-list.service";
12
12
  // tslint:disable-next-line:directive-class-suffix
13
13
  export class NiceSelectableListCheckboxDirective {
14
+ get currentId() {
15
+ if (!this.selectableEntity || !this.selectableListStateService) {
16
+ return null;
17
+ }
18
+ return this.selectableEntity[this.selectableListStateService.idKey];
19
+ }
14
20
  constructor(checkbox, service, selectableListService) {
15
21
  this.checkbox = checkbox;
16
22
  this.service = service;
@@ -18,12 +24,6 @@ export class NiceSelectableListCheckboxDirective {
18
24
  this.unsubscribeAll$ = new Subject();
19
25
  this.initialized = false;
20
26
  }
21
- get currentId() {
22
- if (!this.selectableEntity || !this.selectableListStateService) {
23
- return null;
24
- }
25
- return this.selectableEntity[this.selectableListStateService.idKey];
26
- }
27
27
  ngOnInit() {
28
28
  this.selectableListStateService = this.selectableListService.withState(this.service.state);
29
29
  this.selectableListStateQuery = this.selectableListService.query(this.service.state);
@@ -121,9 +121,9 @@ export class NiceSelectableListCheckboxDirective {
121
121
  }
122
122
  }
123
123
  }
124
- NiceSelectableListCheckboxDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSelectableListCheckboxDirective, deps: [{ token: i1.MatCheckbox }, { token: i2.SelectableListContentService }, { token: i3.NiceSelectableListService }], target: i0.ɵɵFactoryTarget.Directive });
125
- NiceSelectableListCheckboxDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: NiceSelectableListCheckboxDirective, selector: "mat-checkbox[niceSelectableListCheckbox]", inputs: { selectableEntity: "selectableEntity", selectPage: "selectPage" }, ngImport: i0 });
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSelectableListCheckboxDirective, decorators: [{
124
+ NiceSelectableListCheckboxDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSelectableListCheckboxDirective, deps: [{ token: i1.MatCheckbox }, { token: i2.SelectableListContentService }, { token: i3.NiceSelectableListService }], target: i0.ɵɵFactoryTarget.Directive });
125
+ NiceSelectableListCheckboxDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceSelectableListCheckboxDirective, selector: "mat-checkbox[niceSelectableListCheckbox]", inputs: { selectableEntity: "selectableEntity", selectPage: "selectPage" }, ngImport: i0 });
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSelectableListCheckboxDirective, decorators: [{
127
127
  type: Directive,
128
128
  args: [{
129
129
  selector: "mat-checkbox[niceSelectableListCheckbox]"
@@ -133,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
133
133
  }], selectPage: [{
134
134
  type: Input
135
135
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0LWNoZWNrYm94LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvZGlyZWN0aXZlL3NlbGVjdGFibGUtbGlzdC9zZWxlY3RhYmxlLWxpc3QtY2hlY2tib3guZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVcsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRTNGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7OztBQU01RSxrREFBa0Q7QUFDbEQsTUFBTSxPQUFPLG1DQUFtQztJQXNCNUMsWUFDb0IsUUFBcUIsRUFDN0IsT0FBcUMsRUFDckMscUJBQWdEO1FBRnhDLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDN0IsWUFBTyxHQUFQLE9BQU8sQ0FBOEI7UUFDckMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUEyQjtRQWZwRCxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFdEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFjekIsQ0FBQztJQVpKLElBQVksU0FBUztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFO1lBQzVELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQVFNLFFBQVE7UUFDWCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckYsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDakM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRU0sU0FBUztRQUNaLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDdEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRU8sc0JBQXNCO1FBQzFCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDdkIsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUN2RTtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNuRixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDaEM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNFLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUMzRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2FBQ3ZFO1lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQzNFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDekU7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsQ0FBQztZQUM3QyxhQUFhLENBQUMsR0FBRztZQUNqQixhQUFhLENBQUMsTUFBTTtZQUNwQixhQUFhLENBQUMsR0FBRztTQUNwQixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ2pFLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUNuQixJQUFJLElBQUksS0FBSyxhQUFhLENBQUMsR0FBRyxFQUFFO29CQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7aUJBQ2pDO2dCQUNELE9BQU87YUFDVjtZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsR0FBRyxJQUFJLElBQUksS0FBSyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzthQUNoQztZQUVELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksSUFBSSxLQUFLLGFBQWEsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzthQUNqQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFFeEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMzRSxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUM1QyxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUU7b0JBQ3JCLFNBQVM7aUJBQ1o7Z0JBRUQsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQkFDMUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQ3hGO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQzlCLE9BQU87YUFDVjtZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDOUIsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDOUIsT0FBTztTQUNWO1FBQ0QsSUFBSSxLQUFLLEtBQUssVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQzlCLE9BQU87U0FDVjtRQUNELElBQUksS0FBSyxLQUFLLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUN2QztJQUNMLENBQUM7O2dJQTVJUSxtQ0FBbUM7b0hBQW5DLG1DQUFtQzsyRkFBbkMsbUNBQW1DO2tCQUovQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwwQ0FBMEM7aUJBQ3ZEO3FMQUlVLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBEb0NoZWNrLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3ggfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3hcIjtcbmltcG9ydCB7IEVudGl0eUFjdGlvbnMsIFF1ZXJ5RW50aXR5IH0gZnJvbSBcIkBkYXRvcmFtYS9ha2l0YVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFNlbGVjdGFibGVMaXN0Q29udGVudFNlcnZpY2UgfSBmcm9tIFwiLi9wcm92aWRlcnMvc2VsZWN0YWJsZS1saXN0LWNvbnRlbnQuc2VydmljZVwiO1xuaW1wb3J0IHsgTmljZVNlbGVjdGFibGVMaXN0U3RhdGVTZXJ2aWNlIH0gZnJvbSBcIi4vc3RvcmUvc2VsZWN0YWJsZS1saXN0LXN0YXRlLnNlcnZpY2VcIjtcbmltcG9ydCB7IE5pY2VTZWxlY3RhYmxlTGlzdFNlcnZpY2UgfSBmcm9tIFwiLi9zdG9yZS9zZWxlY3RhYmxlLWxpc3Quc2VydmljZVwiO1xuaW1wb3J0IHsgTmljZVNlbGVjdGFibGVMaXN0U3RhdGUgfSBmcm9tIFwiLi9zdG9yZS9zZWxlY3RhYmxlLWxpc3Quc3RhdGVcIjtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IFwibWF0LWNoZWNrYm94W25pY2VTZWxlY3RhYmxlTGlzdENoZWNrYm94XVwiXG59KVxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBOaWNlU2VsZWN0YWJsZUxpc3RDaGVja2JveERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrIHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RhYmxlRW50aXR5PzogYW55O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VsZWN0UGFnZT86IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIHNlbGVjdGFibGVMaXN0U3RhdGVTZXJ2aWNlITogTmljZVNlbGVjdGFibGVMaXN0U3RhdGVTZXJ2aWNlPGFueT47XG4gICAgcHJpdmF0ZSBzZWxlY3RhYmxlTGlzdFN0YXRlUXVlcnkhOiBRdWVyeUVudGl0eTxOaWNlU2VsZWN0YWJsZUxpc3RTdGF0ZTxhbnk+PjtcblxuICAgIHByaXZhdGUgdW5zdWJzY3JpYmVBbGwkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZ2V0IGN1cnJlbnRJZCgpOiBhbnkge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0YWJsZUVudGl0eSB8fCAhdGhpcy5zZWxlY3RhYmxlTGlzdFN0YXRlU2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RhYmxlRW50aXR5W3RoaXMuc2VsZWN0YWJsZUxpc3RTdGF0ZVNlcnZpY2UuaWRLZXldO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgY2hlY2tib3g6IE1hdENoZWNrYm94LFxuICAgICAgICBwcml2YXRlIHNlcnZpY2U6IFNlbGVjdGFibGVMaXN0Q29udGVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2VsZWN0YWJsZUxpc3RTZXJ2aWNlOiBOaWNlU2VsZWN0YWJsZUxpc3RTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGFibGVMaXN0U3RhdGVTZXJ2aWNlID0gdGhpcy5zZWxlY3RhYmxlTGlzdFNlcnZpY2Uud2l0aFN0YXRlKHRoaXMuc2VydmljZS5zdGF0ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0YWJsZUxpc3RTdGF0ZVF1ZXJ5ID0gdGhpcy5zZWxlY3RhYmxlTGlzdFNlcnZpY2UucXVlcnkodGhpcy5zZXJ2aWNlLnN0YXRlKTtcblxuICAgICAgICBpZiAodGhpcy5zZWxlY3RhYmxlRW50aXR5KSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdGFibGVFbnRpdHkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdFBhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU2VsZWN0UGFnZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlQWxsJC5uZXh0KCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVBbGwkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RQYWdlICYmICF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNoZWNrYm94U3RhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlU2VsZWN0YWJsZUVudGl0eSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tib3guY2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlTGlzdFN0YXRlU2VydmljZS5zZWxlY3RFbnRpdHkodGhpcy5zZWxlY3RhYmxlRW50aXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5jaGVja2JveC5jaGVja2VkICYmIHRoaXMuc2VsZWN0YWJsZUxpc3RTdGF0ZVF1ZXJ5LmdldEVudGl0eSh0aGlzLmN1cnJlbnRJZCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3guY2hlY2tlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoZWNrYm94LmNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlQWxsJCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5jaGVja2VkICYmICF0aGlzLnNlbGVjdGFibGVMaXN0U3RhdGVRdWVyeS5nZXRFbnRpdHkodGhpcy5jdXJyZW50SWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlTGlzdFN0YXRlU2VydmljZS5zZWxlY3RFbnRpdHkodGhpcy5zZWxlY3RhYmxlRW50aXR5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF2YWx1ZS5jaGVja2VkICYmIHRoaXMuc2VsZWN0YWJsZUxpc3RTdGF0ZVF1ZXJ5LmdldEVudGl0eSh0aGlzLmN1cnJlbnRJZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVMaXN0U3RhdGVTZXJ2aWNlLnVuc2VsZWN0RW50aXR5KHRoaXMuc2VsZWN0YWJsZUVudGl0eSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0YWJsZUxpc3RTdGF0ZVF1ZXJ5LnNlbGVjdEVudGl0eUFjdGlvbihbXG4gICAgICAgICAgICBFbnRpdHlBY3Rpb25zLkFkZCxcbiAgICAgICAgICAgIEVudGl0eUFjdGlvbnMuUmVtb3ZlLFxuICAgICAgICAgICAgRW50aXR5QWN0aW9ucy5TZXRcbiAgICAgICAgXSkucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFsbCQpKS5zdWJzY3JpYmUoKHsgaWRzLCB0eXBlIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZFRha2VBY3Rpb24gPSBpZHMuaW5jbHVkZXModGhpcy5jdXJyZW50SWQpO1xuICAgICAgICAgICAgaWYgKCFzaG91bGRUYWtlQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09IEVudGl0eUFjdGlvbnMuU2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja2JveC5jaGVja2VkICYmICh0eXBlID09PSBFbnRpdHlBY3Rpb25zLkFkZCB8fCB0eXBlID09PSBFbnRpdHlBY3Rpb25zLlNldCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrYm94LmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja2JveC5jaGVja2VkICYmIHR5cGUgPT09IEVudGl0eUFjdGlvbnMuUmVtb3ZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2JveC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlU2VsZWN0UGFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RhYmxlTGlzdFN0YXRlUXVlcnkuc2VsZWN0Q291bnQoKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVDaGVja2JveFN0YXRlKCkpO1xuXG4gICAgICAgIHRoaXMuY2hlY2tib3guY2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVBbGwkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaGVja2JveCBvZiB0aGlzLnNlcnZpY2UuY2hlY2tib3hlcykge1xuICAgICAgICAgICAgICAgIGlmIChjaGVja2JveC5zZWxlY3RQYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrYm94LmNoZWNrZWQgPSB2YWx1ZS5jaGVja2VkO1xuICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrYm94LmNoYW5nZS5lbWl0KHsgY2hlY2tlZDogdmFsdWUuY2hlY2tlZCwgc291cmNlOiBjaGVja2JveC5jaGVja2JveCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDaGVja2JveFN0YXRlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb3VudCA9IHRoaXMuc2VsZWN0YWJsZUxpc3RTdGF0ZVF1ZXJ5LmdldENvdW50KCk7XG4gICAgICAgIGNvbnN0IGNoZWNrYm94ZXMgPSB0aGlzLnNlcnZpY2UuY2hlY2tib3hlcy5maWx0ZXIoKGNoZWNrYm94KSA9PiAhY2hlY2tib3guc2VsZWN0UGFnZSk7XG4gICAgICAgIGlmICghY2hlY2tib3hlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICghY291bnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrYm94LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICBpZiAoIWNvdW50KSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrYm94LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb3VudCAhPT0gY2hlY2tib3hlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY291bnQgPT09IGNoZWNrYm94ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrYm94LmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jaGVja2JveC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0LWNoZWNrYm94LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvZGlyZWN0aXZlL3NlbGVjdGFibGUtbGlzdC9zZWxlY3RhYmxlLWxpc3QtY2hlY2tib3guZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVcsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRTNGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7OztBQU01RSxrREFBa0Q7QUFDbEQsTUFBTSxPQUFPLG1DQUFtQztJQWM1QyxJQUFZLFNBQVM7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRTtZQUM1RCxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxZQUNvQixRQUFxQixFQUM3QixPQUFxQyxFQUNyQyxxQkFBZ0Q7UUFGeEMsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUM3QixZQUFPLEdBQVAsT0FBTyxDQUE4QjtRQUNyQywwQkFBcUIsR0FBckIscUJBQXFCLENBQTJCO1FB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Q0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQzs7Z0lBNUlRLG1DQUFtQztvSEFBbkMsbUNBQW1DOzJGQUFuQyxtQ0FBbUM7a0JBSi9DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBDQUEwQztpQkFDdkQ7cUxBSVUsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLFVBQVU7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIERvQ2hlY2ssIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBNYXRDaGVja2JveCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveFwiO1xuaW1wb3J0IHsgRW50aXR5QWN0aW9ucywgUXVlcnlFbnRpdHkgfSBmcm9tIFwiQGRhdG9yYW1hL2FraXRhXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgU2VsZWN0YWJsZUxpc3RDb250ZW50U2VydmljZSB9IGZyb20gXCIuL3Byb3ZpZGVycy9zZWxlY3RhYmxlLWxpc3QtY29udGVudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlU2VsZWN0YWJsZUxpc3RTdGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi9zdG9yZS9zZWxlY3RhYmxlLWxpc3Qtc3RhdGUuc2VydmljZVwiO1xuaW1wb3J0IHsgTmljZVNlbGVjdGFibGVMaXN0U2VydmljZSB9IGZyb20gXCIuL3N0b3JlL3NlbGVjdGFibGUtbGlzdC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlU2VsZWN0YWJsZUxpc3RTdGF0ZSB9IGZyb20gXCIuL3N0b3JlL3NlbGVjdGFibGUtbGlzdC5zdGF0ZVwiO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogXCJtYXQtY2hlY2tib3hbbmljZVNlbGVjdGFibGVMaXN0Q2hlY2tib3hdXCJcbn0pXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIE5pY2VTZWxlY3RhYmxlTGlzdENoZWNrYm94RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERvQ2hlY2sge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlbGVjdGFibGVFbnRpdHk/OiBhbnk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RQYWdlPzogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgc2VsZWN0YWJsZUxpc3RTdGF0ZVNlcnZpY2UhOiBOaWNlU2VsZWN0YWJsZUxpc3RTdGF0ZVNlcnZpY2U8YW55PjtcbiAgICBwcml2YXRlIHNlbGVjdGFibGVMaXN0U3RhdGVRdWVyeSE6IFF1ZXJ5RW50aXR5PE5pY2VTZWxlY3RhYmxlTGlzdFN0YXRlPGFueT4+O1xuXG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZUFsbCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBnZXQgY3VycmVudElkKCk6IGFueSB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RhYmxlRW50aXR5IHx8ICF0aGlzLnNlbGVjdGFibGVMaXN0U3RhdGVTZXJ2aWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGFibGVFbnRpdHlbdGhpcy5zZWxlY3RhYmxlTGlzdFN0YXRlU2VydmljZS5pZEtleV07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBjaGVja2JveDogTWF0Q2hlY2tib3gsXG4gICAgICAgIHByaXZhdGUgc2VydmljZTogU2VsZWN0YWJsZUxpc3RDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzZWxlY3RhYmxlTGlzdFNlcnZpY2U6IE5pY2VTZWxlY3RhYmxlTGlzdFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0YWJsZUxpc3RTdGF0ZVNlcnZpY2UgPSB0aGlzLnNlbGVjdGFibGVMaXN0U2VydmljZS53aXRoU3RhdGUodGhpcy5zZXJ2aWNlLnN0YXRlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RhYmxlTGlzdFN0YXRlUXVlcnkgPSB0aGlzLnNlbGVjdGFibGVMaXN0U2VydmljZS5xdWVyeSh0aGlzLnNlcnZpY2Uuc3RhdGUpO1xuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGFibGVFbnRpdHkpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU2VsZWN0YWJsZUVudGl0eSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0UGFnZSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVTZWxlY3RQYWdlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVBbGwkLm5leHQoKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZUFsbCQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdFBhZ2UgJiYgIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2hlY2tib3hTdGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVTZWxlY3RhYmxlRW50aXR5KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jaGVja2JveC5jaGVja2VkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVMaXN0U3RhdGVTZXJ2aWNlLnNlbGVjdEVudGl0eSh0aGlzLnNlbGVjdGFibGVFbnRpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmNoZWNrYm94LmNoZWNrZWQgJiYgdGhpcy5zZWxlY3RhYmxlTGlzdFN0YXRlUXVlcnkuZ2V0RW50aXR5KHRoaXMuY3VycmVudElkKSkge1xuICAgICAgICAgICAgdGhpcy5jaGVja2JveC5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hlY2tib3guY2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVBbGwkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlLmNoZWNrZWQgJiYgIXRoaXMuc2VsZWN0YWJsZUxpc3RTdGF0ZVF1ZXJ5LmdldEVudGl0eSh0aGlzLmN1cnJlbnRJZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVMaXN0U3RhdGVTZXJ2aWNlLnNlbGVjdEVudGl0eSh0aGlzLnNlbGVjdGFibGVFbnRpdHkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXZhbHVlLmNoZWNrZWQgJiYgdGhpcy5zZWxlY3RhYmxlTGlzdFN0YXRlUXVlcnkuZ2V0RW50aXR5KHRoaXMuY3VycmVudElkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZUxpc3RTdGF0ZVNlcnZpY2UudW5zZWxlY3RFbnRpdHkodGhpcy5zZWxlY3RhYmxlRW50aXR5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RhYmxlTGlzdFN0YXRlUXVlcnkuc2VsZWN0RW50aXR5QWN0aW9uKFtcbiAgICAgICAgICAgIEVudGl0eUFjdGlvbnMuQWRkLFxuICAgICAgICAgICAgRW50aXR5QWN0aW9ucy5SZW1vdmUsXG4gICAgICAgICAgICBFbnRpdHlBY3Rpb25zLlNldFxuICAgICAgICBdKS5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlQWxsJCkpLnN1YnNjcmliZSgoeyBpZHMsIHR5cGUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkVGFrZUFjdGlvbiA9IGlkcy5pbmNsdWRlcyh0aGlzLmN1cnJlbnRJZCk7XG4gICAgICAgICAgICBpZiAoIXNob3VsZFRha2VBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gRW50aXR5QWN0aW9ucy5TZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja2JveC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF0aGlzLmNoZWNrYm94LmNoZWNrZWQgJiYgKHR5cGUgPT09IEVudGl0eUFjdGlvbnMuQWRkIHx8IHR5cGUgPT09IEVudGl0eUFjdGlvbnMuU2V0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3guY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrYm94LmNoZWNrZWQgJiYgdHlwZSA9PT0gRW50aXR5QWN0aW9ucy5SZW1vdmUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVTZWxlY3RQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGFibGVMaXN0U3RhdGVRdWVyeS5zZWxlY3RDb3VudCgpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZUNoZWNrYm94U3RhdGUoKSk7XG5cbiAgICAgICAgdGhpcy5jaGVja2JveC5jaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFsbCQpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoZWNrYm94IG9mIHRoaXMuc2VydmljZS5jaGVja2JveGVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrYm94LnNlbGVjdFBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tib3guY2hlY2tlZCA9IHZhbHVlLmNoZWNrZWQ7XG4gICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tib3guY2hhbmdlLmVtaXQoeyBjaGVja2VkOiB2YWx1ZS5jaGVja2VkLCBzb3VyY2U6IGNoZWNrYm94LmNoZWNrYm94IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNoZWNrYm94U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gdGhpcy5zZWxlY3RhYmxlTGlzdFN0YXRlUXVlcnkuZ2V0Q291bnQoKTtcbiAgICAgICAgY29uc3QgY2hlY2tib3hlcyA9IHRoaXMuc2VydmljZS5jaGVja2JveGVzLmZpbHRlcigoY2hlY2tib3gpID0+ICFjaGVja2JveC5zZWxlY3RQYWdlKTtcbiAgICAgICAgaWYgKCFjaGVja2JveGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKCFjb3VudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jaGVja2JveC5pbmRldGVybWluYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIGlmICghY291bnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jaGVja2JveC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvdW50ICE9PSBjaGVja2JveGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jaGVja2JveC5pbmRldGVybWluYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb3VudCA9PT0gY2hlY2tib3hlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3guY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNoZWNrYm94LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -30,9 +30,9 @@ export class NiceSelectableListSelectAllDirective {
30
30
  }
31
31
  }
32
32
  }
33
- NiceSelectableListSelectAllDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSelectableListSelectAllDirective, deps: [{ token: i1.NiceFilterViewQuery, optional: true }, { token: i2.SelectableListContentService }, { token: i3.NiceSelectableListService }], target: i0.ɵɵFactoryTarget.Directive });
34
- NiceSelectableListSelectAllDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: NiceSelectableListSelectAllDirective, selector: "button[niceSelectableListSelectAll]", inputs: { action: "action" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSelectableListSelectAllDirective, decorators: [{
33
+ NiceSelectableListSelectAllDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSelectableListSelectAllDirective, deps: [{ token: i1.NiceFilterViewQuery, optional: true }, { token: i2.SelectableListContentService }, { token: i3.NiceSelectableListService }], target: i0.ɵɵFactoryTarget.Directive });
34
+ NiceSelectableListSelectAllDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceSelectableListSelectAllDirective, selector: "button[niceSelectableListSelectAll]", inputs: { action: "action" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSelectableListSelectAllDirective, decorators: [{
36
36
  type: Directive,
37
37
  args: [{
38
38
  selector: "button[niceSelectableListSelectAll]"
@@ -72,9 +72,9 @@ export class NiceSelectableListDirective {
72
72
  this.stateQuery.selectActiveId().pipe(takeUntil(this.unsubscribeQuerySub$)).subscribe(() => this.stateService.setQueryParams());
73
73
  }
74
74
  }
75
- NiceSelectableListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSelectableListDirective, deps: [{ token: i1.SelectableListContentService }, { token: i2.NiceSelectableListService }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Directive });
76
- NiceSelectableListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: NiceSelectableListDirective, selector: "[niceSelectableList]", inputs: { state: "state", options: "options" }, providers: [SelectableListContentService], queries: [{ propertyName: "checkboxes", predicate: NiceSelectableListCheckboxDirective, descendants: true }], usesOnChanges: true, ngImport: i0 });
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSelectableListDirective, decorators: [{
75
+ NiceSelectableListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSelectableListDirective, deps: [{ token: i1.SelectableListContentService }, { token: i2.NiceSelectableListService }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Directive });
76
+ NiceSelectableListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceSelectableListDirective, selector: "[niceSelectableList]", inputs: { state: "state", options: "options" }, providers: [SelectableListContentService], queries: [{ propertyName: "checkboxes", predicate: NiceSelectableListCheckboxDirective, descendants: true }], usesOnChanges: true, ngImport: i0 });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSelectableListDirective, decorators: [{
78
78
  type: Directive,
79
79
  args: [{
80
80
  selector: "[niceSelectableList]",
@@ -16,10 +16,10 @@ export class NiceSelectableListModule {
16
16
  };
17
17
  }
18
18
  }
19
- NiceSelectableListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSelectableListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
- NiceSelectableListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.3", ngImport: i0, type: NiceSelectableListModule, declarations: [NiceSelectableListDirective, NiceSelectableListCheckboxDirective, NiceSelectableListSelectAllDirective], exports: [NiceSelectableListDirective, NiceSelectableListCheckboxDirective, NiceSelectableListSelectAllDirective] });
21
- NiceSelectableListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSelectableListModule });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSelectableListModule, decorators: [{
19
+ NiceSelectableListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSelectableListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
+ NiceSelectableListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NiceSelectableListModule, declarations: [NiceSelectableListDirective, NiceSelectableListCheckboxDirective, NiceSelectableListSelectAllDirective], exports: [NiceSelectableListDirective, NiceSelectableListCheckboxDirective, NiceSelectableListSelectAllDirective] });
21
+ NiceSelectableListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSelectableListModule });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSelectableListModule, decorators: [{
23
23
  type: NgModule,
24
24
  args: [{
25
25
  imports: [],
@@ -1,5 +1,11 @@
1
1
  import { arrayAdd, arrayRemove } from "@datorama/akita";
2
2
  export class NiceSelectableListStateService {
3
+ get idKey() {
4
+ return this.options?.idKey ?? "id";
5
+ }
6
+ get preloadedWindow() {
7
+ return this.options?.preloadWindow ?? 2;
8
+ }
3
9
  constructor(store, route, router, preloadService, options) {
4
10
  this.store = store;
5
11
  this.route = route;
@@ -7,12 +13,6 @@ export class NiceSelectableListStateService {
7
13
  this.preloadService = preloadService;
8
14
  this.options = options;
9
15
  }
10
- get idKey() {
11
- return this.options?.idKey ?? "id";
12
- }
13
- get preloadedWindow() {
14
- return this.options?.preloadWindow ?? 2;
15
- }
16
16
  setActive(entity) {
17
17
  this.store.setActive(entity[this.idKey]);
18
18
  }
@@ -207,4 +207,4 @@ export class NiceSelectableListStateService {
207
207
  });
208
208
  }
209
209
  }
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0LXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2RpcmVjdGl2ZS9zZWxlY3RhYmxlLWxpc3Qvc3RvcmUvc2VsZWN0YWJsZS1saXN0LXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQU1yRSxNQUFNLE9BQU8sOEJBQThCO0lBU3ZDLFlBQ1ksS0FBZ0QsRUFDaEQsS0FBcUIsRUFDckIsTUFBYyxFQUNkLGNBQXVELEVBQ3ZELE9BQW1DO1FBSm5DLFVBQUssR0FBTCxLQUFLLENBQTJDO1FBQ2hELFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBeUM7UUFDdkQsWUFBTyxHQUFQLE9BQU8sQ0FBNEI7SUFDNUMsQ0FBQztJQWRKLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQVVNLFNBQVMsQ0FBQyxNQUFTO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sUUFBUSxDQUFDLFVBQWtCO1FBQzlCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENB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QyxDQUFDLElBQUk7WUFDbEMsUUFBUSxFQUFFLE1BQU0sSUFBSSxJQUFJO1NBQzNCLENBQUM7SUFDTixDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDckIsV0FBVyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUN2QyxtQkFBbUIsRUFBRSxPQUFPO1NBQy9CLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBhcnJheUFkZCwgYXJyYXlSZW1vdmUsIEVudGl0eVN0b3JlIH0gZnJvbSBcIkBkYXRvcmFtYS9ha2l0YVwiO1xuaW1wb3J0IHsgTmljZVNlbGVjdGFibGVMaXN0TG9hZEFsbEVudGl0aWVzT3B0aW9ucyB9IGZyb20gXCIuLi9tb2RlbC9sb2FkLWFsbC1lbnRpdGllcy1vcHRpb25zLm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlU2VsZWN0YWJsZUxpc3RPcHRpb25zIH0gZnJvbSBcIi4uL21vZGVsL3NlbGVjdGFibGUtbGlzdC1vcHRpb25zLm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlUHJlbG9hZFNlbGVjdGVkRW50aXRpZXNQcm92aWRlciB9IGZyb20gXCIuLi9wcm92aWRlcnMvcHJlbG9hZC1zZWxlY3RlZC1lbnRpdGllcy5wcm92aWRlclwiO1xuaW1wb3J0IHsgTmljZVNlbGVjdGFibGVMaXN0U3RhdGUgfSBmcm9tIFwiLi9zZWxlY3RhYmxlLWxpc3Quc3RhdGVcIjtcblxuZXhwb3J0IGNsYXNzIE5pY2VTZWxlY3RhYmxlTGlzdFN0YXRlU2VydmljZTxULCBJRCA9IGFueT4ge1xuICAgIHB1YmxpYyBnZXQgaWRLZXkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucz8uaWRLZXkgPz8gXCJpZFwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcHJlbG9hZGVkV2luZG93KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnM/LnByZWxvYWRXaW5kb3cgPz8gMjtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzdG9yZTogRW50aXR5U3RvcmU8TmljZVNlbGVjdGFibGVMaXN0U3RhdGU8YW55Pj4sXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHByZWxvYWRTZXJ2aWNlPzogTmljZVByZWxvYWRTZWxlY3RlZEVudGl0aWVzUHJvdmlkZXI8VD4sXG4gICAgICAgIHByaXZhdGUgb3B0aW9ucz86IE5pY2VTZWxlY3RhYmxlTGlzdE9wdGlvbnNcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgc2V0QWN0aXZlKGVudGl0eTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnNldEFjdGl2ZShlbnRpdHlbdGhpcy5pZEtleV0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJbmRleChpZGVudGlmaWVyOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB7IGlkcyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBpbmRleCA9IGlkcy5pbmRleE9mKGlkZW50aWZpZXIpO1xuICAgICAgICByZXR1cm4gaW5kZXggKyAxO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZWxlY3RBbGwob3B0aW9ucz86IE5pY2VTZWxlY3RhYmxlTGlzdExvYWRBbGxFbnRpdGllc09wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCF0aGlzLnByZWxvYWRTZXJ2aWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgICAgIGFsbFNlbGVjdGVkOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlkcyA9IGF3YWl0IHRoaXMucHJlbG9hZFNlcnZpY2UubG9hZEFsbEVudGl0aWVzKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLnN0b3JlLnNldChpZHMubWFwKChpZCkgPT4gKHtcbiAgICAgICAgICAgIFt0aGlzLmlkS2V5XTogaWQsXG4gICAgICAgICAgICBsb2FkZWQ6IGZhbHNlXG4gICAgICAgIH0pKSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGFsbFNlbGVjdGVkOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZWxlY3QoaWQ6IElEKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgIHVuc2VsZWN0ZWRFbnRpdHk6IGFycmF5UmVtb3ZlKHN0YXRlLnVuc2VsZWN0ZWRFbnRpdHksIGlkIGFzIGFueSlcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHRoaXMuc3RvcmUuYWRkKHtcbiAgICAgICAgICAgIFt0aGlzLmlkS2V5XTogaWQsXG4gICAgICAgICAgICBsb2FkZWQ6IGZhbHNlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLnByZWxvYWRTZXJ2aWNlKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRpdHkgPSBhd2FpdCB0aGlzLnByZWxvYWRTZXJ2aWNlLmxvYWRFbnRpdHlCeUlkKGlkIGFzIGFueSk7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnVwc2VydChpZCBhcyBhbnksIHtcbiAgICAgICAgICAgICAgICAuLi5lbnRpdHksXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZWxlY3RNYW55KGlkczogSURbXSwgYWN0aXZlOiBJRCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnN0b3JlLmFkZChcbiAgICAgICAgICAgIGlkcy5tYXAoKGlkKSA9PiAoe1xuICAgICAgICAgICAgICAgIFt0aGlzLmlkS2V5XTogaWQsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiBmYWxzZVxuICAgICAgICAgICAgfSkpXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRBY3RpdmUoYWN0aXZlKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEVudGl0aWVzKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNlbGVjdEVudGl0eShlbnRpdHk6IFQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgICAgICAgdW5zZWxlY3RlZEVudGl0eTogYXJyYXlSZW1vdmUoc3RhdGUudW5zZWxlY3RlZEVudGl0eSwgZW50aXR5W3RoaXMuaWRLZXldKVxuICAgICAgICB9KSk7XG5cbiAgICAgICAgdGhpcy5zdG9yZS51cHNlcnQoZW50aXR5W3RoaXMuaWRLZXldLCB7IC4uLmVudGl0eSwgbG9hZGVkOiB0cnVlIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLnByZWxvYWRTZXJ2aWNlKSB7XG4gICAgICAgICAgICBjb25zdCBwcmVsb2FkZWRFbnRpdHkgPSBhd2FpdCB0aGlzLnByZWxvYWRTZXJ2aWNlLnJlbG9hZEVudGl0eShlbnRpdHkpO1xuICAgICAgICAgICAgdGhpcy5zdG9yZS51cHNlcnQocHJlbG9hZGVkRW50aXR5W3RoaXMuaWRLZXldLCB7IC4uLnByZWxvYWRlZEVudGl0eSwgbG9hZGVkOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNlbGVjdE1hbnlFbnRpdGllcyhlbnRpdGllczogVFtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5wcmVsb2FkU2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUudXBzZXJ0TWFueShlbnRpdGllcy5tYXAoKGVudGl0eSkgPT4gKHsgLi4uZW50aXR5LCBsb2FkZWQ6IHRydWUgfSkpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByZWxvYWRlZEVudGl0aWVzID0gYXdhaXQgdGhpcy5wcmVsb2FkU2VydmljZS5yZWxvYWRFbnRpdGllcyhlbnRpdGllcyk7XG4gICAgICAgIHRoaXMuc3RvcmUudXBzZXJ0TWFueShwcmVsb2FkZWRFbnRpdGllcy5tYXAoKHByZWxvYWRlZEVudGl0eSkgPT4gKHsgLi4ucHJlbG9hZGVkRW50aXR5LCBsb2FkZWQ6IHRydWUgfSkpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdW5zZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUuc2V0KFtdKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgYWxsU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgdW5zZWxlY3RlZEVudGl0eTogW11cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVuc2VsZWN0KGlkOiBJRCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICB1bnNlbGVjdGVkRW50aXR5OiBhcnJheUFkZChzdGF0ZS51bnNlbGVjdGVkRW50aXR5LCBpZClcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHRoaXMuc3RvcmUucmVtb3ZlKGlkIGFzIGFueSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVuc2VsZWN0RW50aXR5KGVudGl0eTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICB1bnNlbGVjdGVkRW50aXR5OiBhcnJheUFkZChzdGF0ZS51bnNlbGVjdGVkRW50aXR5LCBlbnRpdHlbdGhpcy5pZEtleV0pXG4gICAgICAgIH0pKTtcblxuICAgICAgICB0aGlzLnN0b3JlLnJlbW92ZShlbnRpdHlbdGhpcy5pZEtleV0pO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bnNlbGVjdE1hbnlFbnRpdGllcyhlbnRpdGllczogVFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUucmVtb3ZlKGVudGl0aWVzLm1hcCgoZW50aXR5KSA9PiBlbnRpdHlbdGhpcy5pZEtleV0pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlRW50aXR5KGVudGl0eTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZShlbnRpdHlbdGhpcy5pZEtleV0sIGVudGl0eSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNldEVudGl0aWVzKGlkczogSURbXSwgYWN0aXZlSWQ6IElEKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIHVuc2VsZWN0ZWRFbnRpdHk6IFtdLFxuICAgICAgICAgICAgYWxsU2VsZWN0ZWQ6IGZhbHNlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc3RvcmUuc2V0KGlkcy5tYXAoKGlkKSA9PiAoe1xuICAgICAgICAgICAgW3RoaXMuaWRLZXldOiBpZCxcbiAgICAgICAgICAgIGxvYWRlZDogZmFsc2VcbiAgICAgICAgfSkpKTtcblxuICAgICAgICBpZiAoYWN0aXZlSWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0QWN0aXZlKGFjdGl2ZUlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHRoaXMubG9hZEVudGl0aWVzKHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBuZXh0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGlkcywgYWN0aXZlIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gaWRzLmluZGV4T2YoYWN0aXZlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkQWN0aXZlRW50aXR5KGlkc1tpbmRleCArIDFdLCAxKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcHJldmlvdXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgaWRzLCBhY3RpdmUgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBpZHMuaW5kZXhPZihhY3RpdmUpO1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRBY3RpdmVFbnRpdHkoaWRzW2luZGV4IC0gMV0sIC0xKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZmlyc3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgaWRzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZEFjdGl2ZUVudGl0eShpZHNbMF0sIDEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBsYXN0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGlkcyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRBY3RpdmVFbnRpdHkoaWRzW2lkcy5sZW5ndGggLSAxXSwgLTEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZW1vdmVBY3RpdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgYWN0aXZlLCBpZHMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBpZHMuaW5kZXhPZihhY3RpdmUpO1xuXG4gICAgICAgIHRoaXMuc3RvcmUucmVtb3ZlKGFjdGl2ZSk7XG5cbiAgICAgICAgaWYgKGluZGV4ID09PSAoaWRzLmxlbmd0aCAtIDEpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRBY3RpdmVFbnRpdHkoaWRzW2luZGV4IC0gMV0sIC0xKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEFjdGl2ZUVudGl0eShpZHNbaW5kZXggKyAxXSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbG9hZEFjdGl2ZUVudGl0eShpZDogbnVtYmVyLCBkaXJlY3Rpb246IG51bWJlcikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRBY3RpdmUoaWQpO1xuXG4gICAgICAgICAgICBjb25zdCB7IGVudGl0aWVzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgICAgICBpZiAoIWVudGl0aWVzWytpZCArIGRpcmVjdGlvbiAqIHRoaXMucHJlbG9hZGVkV2luZG93XT8ubG9hZGVkKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkRW50aXRpZXMoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEVycm9yKGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGxvYWRFbnRpdGllcyhsb2FkRXh0cmVtaXR5OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5wcmVsb2FkU2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdG9Mb2FkID0gdGhpcy5nZXRMaXN0SWRUb0xvYWQobG9hZEV4dHJlbWl0eSk7XG4gICAgICAgIGlmICghdG9Mb2FkLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW50aXRpZXMgPSBhd2FpdCB0aGlzLnByZWxvYWRTZXJ2aWNlLmxvYWRFbnRpdGllc0J5SWQodG9Mb2FkKTtcbiAgICAgICAgdGhpcy5zdG9yZS51cHNlcnRNYW55KGVudGl0aWVzLm1hcCgoZW50aXR5KSA9PiAoeyAuLi5lbnRpdHksIGxvYWRlZDogdHJ1ZSB9KSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMaXN0SWRUb0xvYWQobG9hZEV4dHJlbWl0eTogYm9vbGVhbik6IG51bWJlcltdIHtcbiAgICAgICAgY29uc3QgeyBhY3RpdmUsIGlkcywgZW50aXRpZXMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgZnJvbSA9IGlkcy5pbmRleE9mKGFjdGl2ZSkgLSB0aGlzLnByZWxvYWRlZFdpbmRvdyA+IDAgPyBpZHMuaW5kZXhPZihhY3RpdmUpIC0gdGhpcy5wcmVsb2FkZWRXaW5kb3cgOiAwO1xuICAgICAgICBjb25zdCB0byA9IGlkcy5pbmRleE9mKGFjdGl2ZSkgKyB0aGlzLnByZWxvYWRlZFdpbmRvdyA8IGlkcy5sZW5ndGggLSAxXG4gICAgICAgICAgICA/IGlkcy5pbmRleE9mKGFjdGl2ZSkgKyB0aGlzLnByZWxvYWRlZFdpbmRvd1xuICAgICAgICAgICAgOiBpZHMubGVuZ3RoIC0gMTtcblxuICAgICAgICBjb25zdCB0b0xvYWQgPSBbXTtcbiAgICAgICAgaWYgKGxvYWRFeHRyZW1pdHkpIHtcbiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoIDw9IDIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0b0xvYWQucHVzaChpZHNbMF0sIGlkc1tpZHMubGVuZ3RoIC0gMV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IGZyb207IGkgPD0gdG87IGkrKykge1xuICAgICAgICAgICAgaWYgKGlkc1tpXSA9PT0gbnVsbCB8fCBpZHNbMF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRvTG9hZC5pbmNsdWRlcyhpZHNbaV0pICYmICFlbnRpdGllc1tpZHNbaV1dPy5sb2FkZWQpIHtcbiAgICAgICAgICAgICAgICB0b0xvYWQucHVzaChpZHNbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRvTG9hZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2VuZXJhdGVRdWVyeVBhcmFtcygpOiB7IHNlbGVjdGlvbjogbnVtYmVyW10gfCBudWxsOyBzZWxlY3RlZDogbnVtYmVyIHwgbnVsbDsgfSB7XG4gICAgICAgIGNvbnN0IHsgaWRzLCBhY3RpdmUgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNlbGVjdGlvbjogaWRzLmxlbmd0aCA/IGlkcyA6IG51bGwsXG4gICAgICAgICAgICBzZWxlY3RlZDogYWN0aXZlID8/IG51bGxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UXVlcnlQYXJhbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtczogdGhpcy5nZW5lcmF0ZVF1ZXJ5UGFyYW1zKCksXG4gICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBcIm1lcmdlXCJcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0LXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2RpcmVjdGl2ZS9zZWxlY3RhYmxlLWxpc3Qvc3RvcmUvc2VsZWN0YWJsZS1saXN0LXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQU1yRSxNQUFNLE9BQU8sOEJBQThCO0lBQ3ZDLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFlBQ1ksS0FBZ0QsRUFDaEQsS0FBcUIsRUFDckIsTUFBYyxFQUNkLGNBQXVELEVBQ3ZELE9BQW1DO1FBSm5DLFVBQUssR0FBTCxLQUFLLENBQTJDO1FBQ2hELFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBeUM7UUFDdkQsWUFBTyxHQUFQLE9BQU8sQ0FBNEI7SUFDNUMsQ0FBQztJQUVHLFNBQVMsQ0FBQyxNQUFTO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sUUFBUSxDQUFDLFVBQWtCO1FBQzlCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENB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QyxDQUFDLElBQUk7WUFDbEMsUUFBUSxFQUFFLE1BQU0sSUFBSSxJQUFJO1NBQzNCLENBQUM7SUFDTixDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDckIsV0FBVyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUN2QyxtQkFBbUIsRUFBRSxPQUFPO1NBQy9CLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBhcnJheUFkZCwgYXJyYXlSZW1vdmUsIEVudGl0eVN0b3JlIH0gZnJvbSBcIkBkYXRvcmFtYS9ha2l0YVwiO1xuaW1wb3J0IHsgTmljZVNlbGVjdGFibGVMaXN0TG9hZEFsbEVudGl0aWVzT3B0aW9ucyB9IGZyb20gXCIuLi9tb2RlbC9sb2FkLWFsbC1lbnRpdGllcy1vcHRpb25zLm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlU2VsZWN0YWJsZUxpc3RPcHRpb25zIH0gZnJvbSBcIi4uL21vZGVsL3NlbGVjdGFibGUtbGlzdC1vcHRpb25zLm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlUHJlbG9hZFNlbGVjdGVkRW50aXRpZXNQcm92aWRlciB9IGZyb20gXCIuLi9wcm92aWRlcnMvcHJlbG9hZC1zZWxlY3RlZC1lbnRpdGllcy5wcm92aWRlclwiO1xuaW1wb3J0IHsgTmljZVNlbGVjdGFibGVMaXN0U3RhdGUgfSBmcm9tIFwiLi9zZWxlY3RhYmxlLWxpc3Quc3RhdGVcIjtcblxuZXhwb3J0IGNsYXNzIE5pY2VTZWxlY3RhYmxlTGlzdFN0YXRlU2VydmljZTxULCBJRCA9IGFueT4ge1xuICAgIHB1YmxpYyBnZXQgaWRLZXkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucz8uaWRLZXkgPz8gXCJpZFwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcHJlbG9hZGVkV2luZG93KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnM/LnByZWxvYWRXaW5kb3cgPz8gMjtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzdG9yZTogRW50aXR5U3RvcmU8TmljZVNlbGVjdGFibGVMaXN0U3RhdGU8YW55Pj4sXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHByZWxvYWRTZXJ2aWNlPzogTmljZVByZWxvYWRTZWxlY3RlZEVudGl0aWVzUHJvdmlkZXI8VD4sXG4gICAgICAgIHByaXZhdGUgb3B0aW9ucz86IE5pY2VTZWxlY3RhYmxlTGlzdE9wdGlvbnNcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgc2V0QWN0aXZlKGVudGl0eTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnNldEFjdGl2ZShlbnRpdHlbdGhpcy5pZEtleV0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJbmRleChpZGVudGlmaWVyOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB7IGlkcyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBpbmRleCA9IGlkcy5pbmRleE9mKGlkZW50aWZpZXIpO1xuICAgICAgICByZXR1cm4gaW5kZXggKyAxO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZWxlY3RBbGwob3B0aW9ucz86IE5pY2VTZWxlY3RhYmxlTGlzdExvYWRBbGxFbnRpdGllc09wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCF0aGlzLnByZWxvYWRTZXJ2aWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgICAgIGFsbFNlbGVjdGVkOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlkcyA9IGF3YWl0IHRoaXMucHJlbG9hZFNlcnZpY2UubG9hZEFsbEVudGl0aWVzKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLnN0b3JlLnNldChpZHMubWFwKChpZCkgPT4gKHtcbiAgICAgICAgICAgIFt0aGlzLmlkS2V5XTogaWQsXG4gICAgICAgICAgICBsb2FkZWQ6IGZhbHNlXG4gICAgICAgIH0pKSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGFsbFNlbGVjdGVkOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZWxlY3QoaWQ6IElEKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgIHVuc2VsZWN0ZWRFbnRpdHk6IGFycmF5UmVtb3ZlKHN0YXRlLnVuc2VsZWN0ZWRFbnRpdHksIGlkIGFzIGFueSlcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHRoaXMuc3RvcmUuYWRkKHtcbiAgICAgICAgICAgIFt0aGlzLmlkS2V5XTogaWQsXG4gICAgICAgICAgICBsb2FkZWQ6IGZhbHNlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLnByZWxvYWRTZXJ2aWNlKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRpdHkgPSBhd2FpdCB0aGlzLnByZWxvYWRTZXJ2aWNlLmxvYWRFbnRpdHlCeUlkKGlkIGFzIGFueSk7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnVwc2VydChpZCBhcyBhbnksIHtcbiAgICAgICAgICAgICAgICAuLi5lbnRpdHksXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZWxlY3RNYW55KGlkczogSURbXSwgYWN0aXZlOiBJRCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnN0b3JlLmFkZChcbiAgICAgICAgICAgIGlkcy5tYXAoKGlkKSA9PiAoe1xuICAgICAgICAgICAgICAgIFt0aGlzLmlkS2V5XTogaWQsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiBmYWxzZVxuICAgICAgICAgICAgfSkpXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRBY3RpdmUoYWN0aXZlKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEVudGl0aWVzKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNlbGVjdEVudGl0eShlbnRpdHk6IFQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgICAgICAgdW5zZWxlY3RlZEVudGl0eTogYXJyYXlSZW1vdmUoc3RhdGUudW5zZWxlY3RlZEVudGl0eSwgZW50aXR5W3RoaXMuaWRLZXldKVxuICAgICAgICB9KSk7XG5cbiAgICAgICAgdGhpcy5zdG9yZS51cHNlcnQoZW50aXR5W3RoaXMuaWRLZXldLCB7IC4uLmVudGl0eSwgbG9hZGVkOiB0cnVlIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLnByZWxvYWRTZXJ2aWNlKSB7XG4gICAgICAgICAgICBjb25zdCBwcmVsb2FkZWRFbnRpdHkgPSBhd2FpdCB0aGlzLnByZWxvYWRTZXJ2aWNlLnJlbG9hZEVudGl0eShlbnRpdHkpO1xuICAgICAgICAgICAgdGhpcy5zdG9yZS51cHNlcnQocHJlbG9hZGVkRW50aXR5W3RoaXMuaWRLZXldLCB7IC4uLnByZWxvYWRlZEVudGl0eSwgbG9hZGVkOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNlbGVjdE1hbnlFbnRpdGllcyhlbnRpdGllczogVFtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5wcmVsb2FkU2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUudXBzZXJ0TWFueShlbnRpdGllcy5tYXAoKGVudGl0eSkgPT4gKHsgLi4uZW50aXR5LCBsb2FkZWQ6IHRydWUgfSkpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByZWxvYWRlZEVudGl0aWVzID0gYXdhaXQgdGhpcy5wcmVsb2FkU2VydmljZS5yZWxvYWRFbnRpdGllcyhlbnRpdGllcyk7XG4gICAgICAgIHRoaXMuc3RvcmUudXBzZXJ0TWFueShwcmVsb2FkZWRFbnRpdGllcy5tYXAoKHByZWxvYWRlZEVudGl0eSkgPT4gKHsgLi4ucHJlbG9hZGVkRW50aXR5LCBsb2FkZWQ6IHRydWUgfSkpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdW5zZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUuc2V0KFtdKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgYWxsU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgdW5zZWxlY3RlZEVudGl0eTogW11cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVuc2VsZWN0KGlkOiBJRCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICB1bnNlbGVjdGVkRW50aXR5OiBhcnJheUFkZChzdGF0ZS51bnNlbGVjdGVkRW50aXR5LCBpZClcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHRoaXMuc3RvcmUucmVtb3ZlKGlkIGFzIGFueSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVuc2VsZWN0RW50aXR5KGVudGl0eTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICB1bnNlbGVjdGVkRW50aXR5OiBhcnJheUFkZChzdGF0ZS51bnNlbGVjdGVkRW50aXR5LCBlbnRpdHlbdGhpcy5pZEtleV0pXG4gICAgICAgIH0pKTtcblxuICAgICAgICB0aGlzLnN0b3JlLnJlbW92ZShlbnRpdHlbdGhpcy5pZEtleV0pO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bnNlbGVjdE1hbnlFbnRpdGllcyhlbnRpdGllczogVFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUucmVtb3ZlKGVudGl0aWVzLm1hcCgoZW50aXR5KSA9PiBlbnRpdHlbdGhpcy5pZEtleV0pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlRW50aXR5KGVudGl0eTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZShlbnRpdHlbdGhpcy5pZEtleV0sIGVudGl0eSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNldEVudGl0aWVzKGlkczogSURbXSwgYWN0aXZlSWQ6IElEKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIHVuc2VsZWN0ZWRFbnRpdHk6IFtdLFxuICAgICAgICAgICAgYWxsU2VsZWN0ZWQ6IGZhbHNlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc3RvcmUuc2V0KGlkcy5tYXAoKGlkKSA9PiAoe1xuICAgICAgICAgICAgW3RoaXMuaWRLZXldOiBpZCxcbiAgICAgICAgICAgIGxvYWRlZDogZmFsc2VcbiAgICAgICAgfSkpKTtcblxuICAgICAgICBpZiAoYWN0aXZlSWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0QWN0aXZlKGFjdGl2ZUlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHRoaXMubG9hZEVudGl0aWVzKHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBuZXh0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGlkcywgYWN0aXZlIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gaWRzLmluZGV4T2YoYWN0aXZlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkQWN0aXZlRW50aXR5KGlkc1tpbmRleCArIDFdLCAxKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcHJldmlvdXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgaWRzLCBhY3RpdmUgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBpZHMuaW5kZXhPZihhY3RpdmUpO1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRBY3RpdmVFbnRpdHkoaWRzW2luZGV4IC0gMV0sIC0xKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZmlyc3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgaWRzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZEFjdGl2ZUVudGl0eShpZHNbMF0sIDEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBsYXN0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGlkcyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRBY3RpdmVFbnRpdHkoaWRzW2lkcy5sZW5ndGggLSAxXSwgLTEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZW1vdmVBY3RpdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgYWN0aXZlLCBpZHMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBpZHMuaW5kZXhPZihhY3RpdmUpO1xuXG4gICAgICAgIHRoaXMuc3RvcmUucmVtb3ZlKGFjdGl2ZSk7XG5cbiAgICAgICAgaWYgKGluZGV4ID09PSAoaWRzLmxlbmd0aCAtIDEpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRBY3RpdmVFbnRpdHkoaWRzW2luZGV4IC0gMV0sIC0xKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEFjdGl2ZUVudGl0eShpZHNbaW5kZXggKyAxXSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbG9hZEFjdGl2ZUVudGl0eShpZDogbnVtYmVyLCBkaXJlY3Rpb246IG51bWJlcikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRBY3RpdmUoaWQpO1xuXG4gICAgICAgICAgICBjb25zdCB7IGVudGl0aWVzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgICAgICBpZiAoIWVudGl0aWVzWytpZCArIGRpcmVjdGlvbiAqIHRoaXMucHJlbG9hZGVkV2luZG93XT8ubG9hZGVkKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkRW50aXRpZXMoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEVycm9yKGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGxvYWRFbnRpdGllcyhsb2FkRXh0cmVtaXR5OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5wcmVsb2FkU2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdG9Mb2FkID0gdGhpcy5nZXRMaXN0SWRUb0xvYWQobG9hZEV4dHJlbWl0eSk7XG4gICAgICAgIGlmICghdG9Mb2FkLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW50aXRpZXMgPSBhd2FpdCB0aGlzLnByZWxvYWRTZXJ2aWNlLmxvYWRFbnRpdGllc0J5SWQodG9Mb2FkKTtcbiAgICAgICAgdGhpcy5zdG9yZS51cHNlcnRNYW55KGVudGl0aWVzLm1hcCgoZW50aXR5KSA9PiAoeyAuLi5lbnRpdHksIGxvYWRlZDogdHJ1ZSB9KSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMaXN0SWRUb0xvYWQobG9hZEV4dHJlbWl0eTogYm9vbGVhbik6IG51bWJlcltdIHtcbiAgICAgICAgY29uc3QgeyBhY3RpdmUsIGlkcywgZW50aXRpZXMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgZnJvbSA9IGlkcy5pbmRleE9mKGFjdGl2ZSkgLSB0aGlzLnByZWxvYWRlZFdpbmRvdyA+IDAgPyBpZHMuaW5kZXhPZihhY3RpdmUpIC0gdGhpcy5wcmVsb2FkZWRXaW5kb3cgOiAwO1xuICAgICAgICBjb25zdCB0byA9IGlkcy5pbmRleE9mKGFjdGl2ZSkgKyB0aGlzLnByZWxvYWRlZFdpbmRvdyA8IGlkcy5sZW5ndGggLSAxXG4gICAgICAgICAgICA/IGlkcy5pbmRleE9mKGFjdGl2ZSkgKyB0aGlzLnByZWxvYWRlZFdpbmRvd1xuICAgICAgICAgICAgOiBpZHMubGVuZ3RoIC0gMTtcblxuICAgICAgICBjb25zdCB0b0xvYWQgPSBbXTtcbiAgICAgICAgaWYgKGxvYWRFeHRyZW1pdHkpIHtcbiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoIDw9IDIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0b0xvYWQucHVzaChpZHNbMF0sIGlkc1tpZHMubGVuZ3RoIC0gMV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IGZyb207IGkgPD0gdG87IGkrKykge1xuICAgICAgICAgICAgaWYgKGlkc1tpXSA9PT0gbnVsbCB8fCBpZHNbMF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRvTG9hZC5pbmNsdWRlcyhpZHNbaV0pICYmICFlbnRpdGllc1tpZHNbaV1dPy5sb2FkZWQpIHtcbiAgICAgICAgICAgICAgICB0b0xvYWQucHVzaChpZHNbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRvTG9hZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2VuZXJhdGVRdWVyeVBhcmFtcygpOiB7IHNlbGVjdGlvbjogbnVtYmVyW10gfCBudWxsOyBzZWxlY3RlZDogbnVtYmVyIHwgbnVsbDsgfSB7XG4gICAgICAgIGNvbnN0IHsgaWRzLCBhY3RpdmUgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNlbGVjdGlvbjogaWRzLmxlbmd0aCA/IGlkcyA6IG51bGwsXG4gICAgICAgICAgICBzZWxlY3RlZDogYWN0aXZlID8/IG51bGxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UXVlcnlQYXJhbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtczogdGhpcy5nZW5lcmF0ZVF1ZXJ5UGFyYW1zKCksXG4gICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBcIm1lcmdlXCJcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -40,9 +40,9 @@ export class NiceSelectableListService {
40
40
  return state.query;
41
41
  }
42
42
  }
43
- NiceSelectableListService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSelectableListService, deps: [{ token: NICE_PRELOAD_SELECTED_ENTITIES_PROVIDER, optional: true }, { token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
44
- NiceSelectableListService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSelectableListService, providedIn: "root" });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSelectableListService, decorators: [{
43
+ NiceSelectableListService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSelectableListService, deps: [{ token: NICE_PRELOAD_SELECTED_ENTITIES_PROVIDER, optional: true }, { token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
44
+ NiceSelectableListService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSelectableListService, providedIn: "root" });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSelectableListService, decorators: [{
46
46
  type: Injectable,
47
47
  args: [{ providedIn: "root" }]
48
48
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -28,9 +28,9 @@ export class NiceCustomDateAdapter extends NativeDateAdapter {
28
28
  return date.getUTCFullYear();
29
29
  }
30
30
  }
31
- NiceCustomDateAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceCustomDateAdapter, deps: [{ token: i1.TranslateService }, { token: MAT_DATE_LOCALE }, { token: i2.Platform }], target: i0.ɵɵFactoryTarget.Injectable });
32
- NiceCustomDateAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceCustomDateAdapter });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceCustomDateAdapter, decorators: [{
31
+ NiceCustomDateAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceCustomDateAdapter, deps: [{ token: i1.TranslateService }, { token: MAT_DATE_LOCALE }, { token: i2.Platform }], target: i0.ɵɵFactoryTarget.Injectable });
32
+ NiceCustomDateAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceCustomDateAdapter });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceCustomDateAdapter, decorators: [{
34
34
  type: Injectable
35
35
  }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: undefined, decorators: [{
36
36
  type: Inject,