@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
@@ -22,15 +22,15 @@ import * as i13 from "./components/text/text-filter.component";
22
22
  import * as i14 from "../advanced-filters-trigger.directive";
23
23
  import * as i15 from "@ngx-translate/core";
24
24
  export class NiceAdvancedRuleComponent {
25
+ get filterConfig() {
26
+ const ruleId = this.formGroup.get("id").value;
27
+ return this.filterConfigs?.find(f => f.id === ruleId);
28
+ }
25
29
  constructor(icons, formGroupName) {
26
30
  this.icons = icons;
27
31
  this.formGroupName = formGroupName;
28
32
  this.remove = new EventEmitter();
29
33
  }
30
- get filterConfig() {
31
- const ruleId = this.formGroup.get("id").value;
32
- return this.filterConfigs?.find(f => f.id === ruleId);
33
- }
34
34
  ngOnInit() {
35
35
  this.formGroup = this.formGroupName.control;
36
36
  this.valuesFormArray = this.formGroup.get("values");
@@ -53,9 +53,9 @@ export class NiceAdvancedRuleComponent {
53
53
  }
54
54
  }
55
55
  }
56
- NiceAdvancedRuleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceAdvancedRuleComponent, deps: [{ token: ADVANCED_FILTER_ICONS, optional: true }, { token: i1.FormGroupName }], target: i0.ɵɵFactoryTarget.Component });
57
- NiceAdvancedRuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceAdvancedRuleComponent, selector: "nice-advanced-rule", inputs: { filterConfigs: "filterConfigs" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"flex flex-row gap-4\" [formGroup]=\"formGroup\">\n <div class=\"basis-80\">\n <button\n class=\"select-filter w-full\"\n mat-stroked-button\n niceAdvancedFiltersTrigger\n originX=\"start\"\n (advancedFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center w-full\">\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>\n\n <div class=\"flex flex-col basis-44 gap-4\">\n <mat-form-field appearance=\"outline\" class=\"rule-form-field\">\n <mat-select class=\"rule-operator\" formControlName=\"operation\">\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\n <ng-container *ngIf=\"valuesFormArray.controls.length > 1\">\n <mat-button-toggle-group class=\"condition-toggle\" formControlName=\"condition\">\n <mat-button-toggle value=\"and\">{{ \"components.nice_advanced_filters.rule.conditions.and\" | translate }}</mat-button-toggle>\n <mat-button-toggle value=\"or\">{{ \"components.nice_advanced_filters.rule.conditions.or\" | translate }}</mat-button-toggle>\n </mat-button-toggle-group>\n </ng-container>\n </div>\n\n <div class=\"flex flex-col flex-auto gap-4\" formArrayName=\"values\">\n <div class=\"flex items-center gap-4\" [formGroupName]=\"i\" *ngFor=\"let _ of valuesFormArray.controls; let i = index\">\n <div class=\"rule-container flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\">\n <ng-container *ngIf=\"isSingleInput$ | async\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter *ngSwitchCase=\"'text'\" class=\"flex flex-auto\" formControlName=\"value\" [filterConfig]=\"filterConfig\"></nice-advanced-text-filter>\n <nice-advanced-number-filter *ngSwitchCase=\"'number'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-advanced-number-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter *ngSwitchCase=\"'date'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-advanced-date-filter>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isDoubleInput$ | async\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-text-filter>\n <nice-advanced-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-number-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-date-filter>\n </ng-container>\n <h3 class=\"aligned-text\">\n {{ \"components.nice_advanced_filters.rule.conditions.and\" | translate }}\n </h3>\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-text-filter>\n <nice-advanced-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-number-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-date-filter>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"basis-12\">\n <button class=\"add-button\" mat-icon-button (click)=\"addValue(i + 1)\">\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{ icons.add.matIcon }}</mat-icon>\n </button>\n </div>\n\n <div class=\"basis-12\">\n <button class=\"remove-button\" mat-icon-button (click)=\"removeValue(i)\">\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{ icons.delete.matIcon }}</mat-icon>\n </button>\n </div>\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.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: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.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: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i8.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i8.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i9.NiceAdvancedDateFilterComponent, selector: "nice-advanced-date-filter" }, { kind: "component", type: i10.NiceAdvancedNumberFilterComponent, selector: "nice-advanced-number-filter" }, { kind: "component", type: i11.NiceAdvancedRadioFilterComponent, selector: "nice-advanced-radio-filter", inputs: ["filterConfig"] }, { kind: "component", type: i12.NiceAdvancedSelectFilterComponent, selector: "nice-advanced-select-filter", inputs: ["filterConfig"] }, { kind: "component", type: i13.NiceAdvancedTextFilterComponent, selector: "nice-advanced-text-filter", inputs: ["filterConfig"] }, { kind: "directive", type: i14.AdvancedFiltersTriggerDirective, selector: "[niceAdvancedFiltersTrigger]", inputs: ["position"], outputs: ["advancedFilterSelected"], exportAs: ["niceAdvancedFiltersTrigger"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceAdvancedRuleComponent, decorators: [{
56
+ NiceAdvancedRuleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceAdvancedRuleComponent, deps: [{ token: ADVANCED_FILTER_ICONS, optional: true }, { token: i1.FormGroupName }], target: i0.ɵɵFactoryTarget.Component });
57
+ NiceAdvancedRuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceAdvancedRuleComponent, selector: "nice-advanced-rule", inputs: { filterConfigs: "filterConfigs" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"flex flex-row gap-4\" [formGroup]=\"formGroup\">\n <div class=\"basis-80\">\n <button\n class=\"select-filter w-full\"\n mat-stroked-button\n niceAdvancedFiltersTrigger\n originX=\"start\"\n (advancedFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center w-full\">\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>\n\n <div class=\"flex flex-col basis-44 gap-4\">\n <mat-form-field appearance=\"outline\" class=\"rule-form-field\">\n <mat-select class=\"rule-operator\" formControlName=\"operation\">\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\n <ng-container *ngIf=\"valuesFormArray.controls.length > 1\">\n <mat-button-toggle-group class=\"condition-toggle\" formControlName=\"condition\">\n <mat-button-toggle value=\"and\">{{ \"components.nice_advanced_filters.rule.conditions.and\" | translate }}</mat-button-toggle>\n <mat-button-toggle value=\"or\">{{ \"components.nice_advanced_filters.rule.conditions.or\" | translate }}</mat-button-toggle>\n </mat-button-toggle-group>\n </ng-container>\n </div>\n\n <div class=\"flex flex-col flex-auto gap-4\" formArrayName=\"values\">\n <div class=\"flex items-center gap-4\" [formGroupName]=\"i\" *ngFor=\"let _ of valuesFormArray.controls; let i = index\">\n <div class=\"rule-container flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\">\n <ng-container *ngIf=\"isSingleInput$ | async\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter *ngSwitchCase=\"'text'\" class=\"flex flex-auto\" formControlName=\"value\" [filterConfig]=\"filterConfig\"></nice-advanced-text-filter>\n <nice-advanced-number-filter *ngSwitchCase=\"'number'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-advanced-number-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter *ngSwitchCase=\"'date'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-advanced-date-filter>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isDoubleInput$ | async\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-text-filter>\n <nice-advanced-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-number-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-date-filter>\n </ng-container>\n <h3 class=\"aligned-text\">\n {{ \"components.nice_advanced_filters.rule.conditions.and\" | translate }}\n </h3>\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-text-filter>\n <nice-advanced-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-number-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-date-filter>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"basis-12\">\n <button class=\"add-button\" mat-icon-button (click)=\"addValue(i + 1)\">\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{ icons.add.matIcon }}</mat-icon>\n </button>\n </div>\n\n <div class=\"basis-12\">\n <button class=\"remove-button\" mat-icon-button (click)=\"removeValue(i)\">\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{ icons.delete.matIcon }}</mat-icon>\n </button>\n </div>\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.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: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.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: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i8.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i8.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i9.NiceAdvancedDateFilterComponent, selector: "nice-advanced-date-filter" }, { kind: "component", type: i10.NiceAdvancedNumberFilterComponent, selector: "nice-advanced-number-filter" }, { kind: "component", type: i11.NiceAdvancedRadioFilterComponent, selector: "nice-advanced-radio-filter", inputs: ["filterConfig"] }, { kind: "component", type: i12.NiceAdvancedSelectFilterComponent, selector: "nice-advanced-select-filter", inputs: ["filterConfig"] }, { kind: "component", type: i13.NiceAdvancedTextFilterComponent, selector: "nice-advanced-text-filter", inputs: ["filterConfig"] }, { kind: "directive", type: i14.AdvancedFiltersTriggerDirective, selector: "[niceAdvancedFiltersTrigger]", inputs: ["position"], outputs: ["advancedFilterSelected"], exportAs: ["niceAdvancedFiltersTrigger"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceAdvancedRuleComponent, decorators: [{
59
59
  type: Component,
60
60
  args: [{ selector: "nice-advanced-rule", encapsulation: ViewEncapsulation.None, template: "<div class=\"flex flex-row gap-4\" [formGroup]=\"formGroup\">\n <div class=\"basis-80\">\n <button\n class=\"select-filter w-full\"\n mat-stroked-button\n niceAdvancedFiltersTrigger\n originX=\"start\"\n (advancedFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center w-full\">\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>\n\n <div class=\"flex flex-col basis-44 gap-4\">\n <mat-form-field appearance=\"outline\" class=\"rule-form-field\">\n <mat-select class=\"rule-operator\" formControlName=\"operation\">\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\n <ng-container *ngIf=\"valuesFormArray.controls.length > 1\">\n <mat-button-toggle-group class=\"condition-toggle\" formControlName=\"condition\">\n <mat-button-toggle value=\"and\">{{ \"components.nice_advanced_filters.rule.conditions.and\" | translate }}</mat-button-toggle>\n <mat-button-toggle value=\"or\">{{ \"components.nice_advanced_filters.rule.conditions.or\" | translate }}</mat-button-toggle>\n </mat-button-toggle-group>\n </ng-container>\n </div>\n\n <div class=\"flex flex-col flex-auto gap-4\" formArrayName=\"values\">\n <div class=\"flex items-center gap-4\" [formGroupName]=\"i\" *ngFor=\"let _ of valuesFormArray.controls; let i = index\">\n <div class=\"rule-container flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\">\n <ng-container *ngIf=\"isSingleInput$ | async\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter *ngSwitchCase=\"'text'\" class=\"flex flex-auto\" formControlName=\"value\" [filterConfig]=\"filterConfig\"></nice-advanced-text-filter>\n <nice-advanced-number-filter *ngSwitchCase=\"'number'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-advanced-number-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter *ngSwitchCase=\"'date'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-advanced-date-filter>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isDoubleInput$ | async\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-text-filter>\n <nice-advanced-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-number-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-date-filter>\n </ng-container>\n <h3 class=\"aligned-text\">\n {{ \"components.nice_advanced_filters.rule.conditions.and\" | translate }}\n </h3>\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-text-filter>\n <nice-advanced-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-number-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-date-filter>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"basis-12\">\n <button class=\"add-button\" mat-icon-button (click)=\"addValue(i + 1)\">\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{ icons.add.matIcon }}</mat-icon>\n </button>\n </div>\n\n <div class=\"basis-12\">\n <button class=\"remove-button\" mat-icon-button (click)=\"removeValue(i)\">\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{ icons.delete.matIcon }}</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n" }]
61
61
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -68,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
68
68
  }], remove: [{
69
69
  type: Output
70
70
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlcnMvcnVsZS9ydWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L2NvbXBvbmVudHMvYWR2YW5jZWQtZmlsdGVycy9ydWxlL3J1bGUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQW9CLE1BQU0sMEJBQTBCLENBQUM7QUFFeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT3ZFLE1BQU0sT0FBTyx5QkFBeUI7SUFrQmxDLFlBRVcsS0FBb0MsRUFDbkMsYUFBNEI7UUFEN0IsVUFBSyxHQUFMLEtBQUssQ0FBK0I7UUFDbkMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFoQmpDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBaUJoQyxDQUFDO0lBVEosSUFBVyxZQUFZO1FBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQWUsQ0FBQztRQUN4RCxPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQTZCLENBQUM7SUFDdEYsQ0FBQztJQVFNLFFBQVE7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBeUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBeUMsQ0FBQztRQUU1RixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxjQUFjLEdBQUcsb0JBQW9CLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDeEQsU0FBUyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUNyQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQ25ILENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxHQUFHLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3hELFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsRUFDckMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDcEUsQ0FBQztJQUNOLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxNQUFnQztRQUN4RCxNQUFNLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxRQUFRLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLFdBQVcsQ0FBQyxDQUFTO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtZQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQzs7c0hBdERRLHlCQUF5QixrQkFtQlYscUJBQXFCOzBHQW5CcEMseUJBQXlCLHFJQ2hCdEMsMjVPQXdJQTsyRkR4SGEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNJLG9CQUFvQixpQkFFZixpQkFBaUIsQ0FBQyxJQUFJOzswQkFxQmhDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCO3dFQWpCdEMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxNQUFNO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtR3JvdXBOYW1lIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBHZW5lcmF0ZWRGb3JtQXJyYXksIEdlbmVyYXRlZEZvcm1Hcm91cCB9IGZyb20gXCJAcmVjdXJzeXZlL25neC1mb3JtLWdlbmVyYXRvclwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL21vZGVscy9maWx0ZXIubW9kZWxcIjtcbmltcG9ydCB7IEFEVkFOQ0VEX0ZJTFRFUl9JQ09OUyB9IGZyb20gXCIuLi9hZHZhbmNlZC1maWx0ZXJzLmNvbnN0YW50XCI7XG5pbXBvcnQgeyBGaWx0ZXJGb3JtLCBGaWx0ZXJGb3JtVmFsdWVzIH0gZnJvbSBcIi4uL2FkdmFuY2VkLWZpbHRlcnMuZm9ybVwiO1xuaW1wb3J0IHsgTmljZUFkdmFuY2VkRmlsdGVySWNvbk9wdGlvbnMgfSBmcm9tIFwiLi4vbW9kZWxzL2ljb25zLm1vZGVsXCI7XG5pbXBvcnQgeyBBZHZhbmNlZEZpbHRlcnNVdGlscyB9IGZyb20gXCIuLi91dGlscy9hZHZhbmNlZC1maWx0ZXJzLnV0aWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtYWR2YW5jZWQtcnVsZVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcInJ1bGUudGVtcGxhdGUuaHRtbFwiLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTmljZUFkdmFuY2VkUnVsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsdGVyQ29uZmlnczogRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsW10gfCBudWxsO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEdlbmVyYXRlZEZvcm1Hcm91cDxGaWx0ZXJGb3JtPjtcbiAgICBwdWJsaWMgdmFsdWVzRm9ybUFycmF5OiBHZW5lcmF0ZWRGb3JtQXJyYXk8RmlsdGVyRm9ybVZhbHVlcz47XG5cbiAgICBwdWJsaWMgaXNTaW5nbGVJbnB1dCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcHVibGljIGlzRG91YmxlSW5wdXQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgcHVibGljIGdldCBmaWx0ZXJDb25maWcoKTogRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsIHtcbiAgICAgICAgY29uc3QgcnVsZUlkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiaWRcIikudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJDb25maWdzPy5maW5kKGYgPT4gZi5pZCA9PT0gcnVsZUlkKSBhcyBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWw7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQURWQU5DRURfRklMVEVSX0lDT05TKVxuICAgICAgICBwdWJsaWMgaWNvbnM6IE5pY2VBZHZhbmNlZEZpbHRlckljb25PcHRpb25zLFxuICAgICAgICBwcml2YXRlIGZvcm1Hcm91cE5hbWU6IEZvcm1Hcm91cE5hbWVcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtR3JvdXBOYW1lLmNvbnRyb2wgYXMgR2VuZXJhdGVkRm9ybUdyb3VwPEZpbHRlckZvcm0+O1xuICAgICAgICB0aGlzLnZhbHVlc0Zvcm1BcnJheSA9IHRoaXMuZm9ybUdyb3VwLmdldChcInZhbHVlc1wiKSBhcyBHZW5lcmF0ZWRGb3JtQXJyYXk8RmlsdGVyRm9ybVZhbHVlcz47XG5cbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uRm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJvcGVyYXRpb25cIik7XG4gICAgICAgIHRoaXMuaXNTaW5nbGVJbnB1dCQgPSBvcGVyYXRpb25Gb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aChvcGVyYXRpb25Gb3JtQ29udHJvbC52YWx1ZSksXG4gICAgICAgICAgICBtYXAoKG9wZXJhdGlvbikgPT4gIUFkdmFuY2VkRmlsdGVyc1V0aWxzLmlzRG91YmxlSW5wdXQob3BlcmF0aW9uKSAmJiAhQWR2YW5jZWRGaWx0ZXJzVXRpbHMuaXNOb0lucHV0KG9wZXJhdGlvbikpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaXNEb3VibGVJbnB1dCQgPSBvcGVyYXRpb25Gb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aChvcGVyYXRpb25Gb3JtQ29udHJvbC52YWx1ZSksXG4gICAgICAgICAgICBtYXAoKG9wZXJhdGlvbikgPT4gQWR2YW5jZWRGaWx0ZXJzVXRpbHMuaXNEb3VibGVJbnB1dChvcGVyYXRpb24pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblVwZGF0ZUZpbHRlckNvbmZpZyhjb25maWc6IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBydWxlID0gQWR2YW5jZWRGaWx0ZXJzVXRpbHMuY3JlYXRlUnVsZShjb25maWcpO1xuICAgICAgICB0aGlzLnZhbHVlc0Zvcm1BcnJheS5jbGVhcih7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3IEZpbHRlckZvcm0ocnVsZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRWYWx1ZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWVzRm9ybUFycmF5Lmluc2VydChpbmRleCwge30pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVWYWx1ZShpOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZXNGb3JtQXJyYXkucmVtb3ZlQXQoaSk7XG4gICAgICAgIGlmICghdGhpcy52YWx1ZXNGb3JtQXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtNFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgPGRpdiBjbGFzcz1cImJhc2lzLTgwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LWZpbHRlciB3LWZ1bGxcIlxuICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICAgICAgICBuaWNlQWR2YW5jZWRGaWx0ZXJzVHJpZ2dlclxuICAgICAgICAgICAgb3JpZ2luWD1cInN0YXJ0XCJcbiAgICAgICAgICAgIChhZHZhbmNlZEZpbHRlclNlbGVjdGVkKT1cIm9uVXBkYXRlRmlsdGVyQ29uZmlnKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIHctZnVsbFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctbmFtZVwiPnt7IGZpbHRlckNvbmZpZz8ubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5hcnJvd0Rvd24uc3ZnSWNvblwiPnt7IGljb25zLmFycm93RG93bi5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGJhc2lzLTQ0IGdhcC00XCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwicnVsZS1mb3JtLWZpZWxkXCI+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBjbGFzcz1cInJ1bGUtb3BlcmF0b3JcIiBmb3JtQ29udHJvbE5hbWU9XCJvcGVyYXRpb25cIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3BlcmF0b3Igb2YgZmlsdGVyQ29uZmlnPy5vcGVyYXRvcnNcIiBbdmFsdWVdPVwib3BlcmF0b3IuaWRcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgb3BlcmF0b3I/Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhbHVlc0Zvcm1BcnJheS5jb250cm9scy5sZW5ndGggPiAxXCI+XG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgY2xhc3M9XCJjb25kaXRpb24tdG9nZ2xlXCIgZm9ybUNvbnRyb2xOYW1lPVwiY29uZGl0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlICB2YWx1ZT1cImFuZFwiPnt7IFwiY29tcG9uZW50cy5uaWNlX2FkdmFuY2VkX2ZpbHRlcnMucnVsZS5jb25kaXRpb25zLmFuZFwiIHwgdHJhbnNsYXRlIH19PC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJvclwiPnt7IFwiY29tcG9uZW50cy5uaWNlX2FkdmFuY2VkX2ZpbHRlcnMucnVsZS5jb25kaXRpb25zLm9yXCIgfCB0cmFuc2xhdGUgfX08L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LWF1dG8gZ2FwLTRcIiBmb3JtQXJyYXlOYW1lPVwidmFsdWVzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiIFtmb3JtR3JvdXBOYW1lXT1cImlcIiAqbmdGb3I9XCJsZXQgXyBvZiB2YWx1ZXNGb3JtQXJyYXkuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJydWxlLWNvbnRhaW5lciBmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGZsZXgtYXV0byBqdXN0aWZ5LXN0YXJ0IGl0ZW1zLWNlbnRlciBnYXAtMi41XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2luZ2xlSW5wdXQkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmlsdGVyQ29uZmlnPy50eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1hZHZhbmNlZC10ZXh0LWZpbHRlciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCIgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCIgW2ZpbHRlckNvbmZpZ109XCJmaWx0ZXJDb25maWdcIj48L25pY2UtYWR2YW5jZWQtdGV4dC1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1hZHZhbmNlZC1udW1iZXItZmlsdGVyICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIiBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiPjwvbmljZS1hZHZhbmNlZC1udW1iZXItZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtcmFkaW8tZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidyYWRpbydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG8gbWItNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtYWR2YW5jZWQtcmFkaW8tZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtc2VsZWN0LWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtYWR2YW5jZWQtc2VsZWN0LWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLWRhdGUtZmlsdGVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIiBjbGFzcz1cImZsZXggZmxleC1hdXRvXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIj48L25pY2UtYWR2YW5jZWQtZGF0ZS1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0RvdWJsZUlucHV0JCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpbHRlckNvbmZpZz8udHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtdGV4dC1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC10ZXh0LWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLW51bWJlci1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtYWR2YW5jZWQtbnVtYmVyLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLXJhZGlvLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIncmFkaW8nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvIG1iLTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLWFkdmFuY2VkLXJhZGlvLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLXNlbGVjdC1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLWFkdmFuY2VkLXNlbGVjdC1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1hZHZhbmNlZC1kYXRlLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtYWR2YW5jZWQtZGF0ZS1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJhbGlnbmVkLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiY29tcG9uZW50cy5uaWNlX2FkdmFuY2VkX2ZpbHRlcnMucnVsZS5jb25kaXRpb25zLmFuZFwiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpbHRlckNvbmZpZz8udHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtdGV4dC1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2Vjb25kVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC10ZXh0LWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLW51bWJlci1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlY29uZFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtYWR2YW5jZWQtbnVtYmVyLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLXJhZGlvLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIncmFkaW8nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvIG1iLTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlY29uZFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLWFkdmFuY2VkLXJhZGlvLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLXNlbGVjdC1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlY29uZFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLWFkdmFuY2VkLXNlbGVjdC1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1hZHZhbmNlZC1kYXRlLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlY29uZFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtYWR2YW5jZWQtZGF0ZS1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYXNpcy0xMlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhZGQtYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhZGRWYWx1ZShpICsgMSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImljb25zLmFkZC5zdmdJY29uXCI+e3sgaWNvbnMuYWRkLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYXNpcy0xMlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJyZW1vdmUtYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyZW1vdmVWYWx1ZShpKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMuZGVsZXRlLnN2Z0ljb25cIj57eyBpY29ucy5kZWxldGUubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlcnMvcnVsZS9ydWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L2NvbXBvbmVudHMvYWR2YW5jZWQtZmlsdGVycy9ydWxlL3J1bGUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQW9CLE1BQU0sMEJBQTBCLENBQUM7QUFFeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT3ZFLE1BQU0sT0FBTyx5QkFBeUI7SUFhbEMsSUFBVyxZQUFZO1FBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQWUsQ0FBQztRQUN4RCxPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQTZCLENBQUM7SUFDdEYsQ0FBQztJQUVELFlBRVcsS0FBb0MsRUFDbkMsYUFBNEI7UUFEN0IsVUFBSyxHQUFMLEtBQUssQ0FBK0I7UUFDbkMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFoQmpDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBaUJoQyxDQUFDO0lBRUcsUUFBUTtRQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUF5QyxDQUFDO1FBQzlFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUF5QyxDQUFDO1FBRTVGLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN4RCxTQUFTLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDbkgsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsb0JBQW9CLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDeEQsU0FBUyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUNyQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUNwRSxDQUFDO0lBQ04sQ0FBQztJQUVNLG9CQUFvQixDQUFDLE1BQWdDO1FBQ3hELE1BQU0sSUFBSSxHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sV0FBVyxDQUFDLENBQVM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFO1lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdEI7SUFDTCxDQUFDOztzSEF0RFEseUJBQXlCLGtCQW1CVixxQkFBcUI7MEdBbkJwQyx5QkFBeUIscUlDaEJ0QywyNU9Bd0lBOzJGRHhIYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0ksb0JBQW9CLGlCQUVmLGlCQUFpQixDQUFDLElBQUk7OzBCQXFCaEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUI7d0VBakJ0QyxhQUFhO3NCQURuQixLQUFLO2dCQUlDLE1BQU07c0JBRFosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Hcm91cE5hbWUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEdlbmVyYXRlZEZvcm1BcnJheSwgR2VuZXJhdGVkRm9ybUdyb3VwIH0gZnJvbSBcIkByZWN1cnN5dmUvbmd4LWZvcm0tZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzdGFydFdpdGggfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgQURWQU5DRURfRklMVEVSX0lDT05TIH0gZnJvbSBcIi4uL2FkdmFuY2VkLWZpbHRlcnMuY29uc3RhbnRcIjtcbmltcG9ydCB7IEZpbHRlckZvcm0sIEZpbHRlckZvcm1WYWx1ZXMgfSBmcm9tIFwiLi4vYWR2YW5jZWQtZmlsdGVycy5mb3JtXCI7XG5pbXBvcnQgeyBOaWNlQWR2YW5jZWRGaWx0ZXJJY29uT3B0aW9ucyB9IGZyb20gXCIuLi9tb2RlbHMvaWNvbnMubW9kZWxcIjtcbmltcG9ydCB7IEFkdmFuY2VkRmlsdGVyc1V0aWxzIH0gZnJvbSBcIi4uL3V0aWxzL2FkdmFuY2VkLWZpbHRlcnMudXRpbHNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibmljZS1hZHZhbmNlZC1ydWxlXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwicnVsZS50ZW1wbGF0ZS5odG1sXCIsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBOaWNlQWR2YW5jZWRSdWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWx0ZXJDb25maWdzOiBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWxbXSB8IG51bGw7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGZvcm1Hcm91cDogR2VuZXJhdGVkRm9ybUdyb3VwPEZpbHRlckZvcm0+O1xuICAgIHB1YmxpYyB2YWx1ZXNGb3JtQXJyYXk6IEdlbmVyYXRlZEZvcm1BcnJheTxGaWx0ZXJGb3JtVmFsdWVzPjtcblxuICAgIHB1YmxpYyBpc1NpbmdsZUlucHV0JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBwdWJsaWMgaXNEb3VibGVJbnB1dCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBwdWJsaWMgZ2V0IGZpbHRlckNvbmZpZygpOiBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwge1xuICAgICAgICBjb25zdCBydWxlSWQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJpZFwiKS52YWx1ZSBhcyBzdHJpbmc7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlckNvbmZpZ3M/LmZpbmQoZiA9PiBmLmlkID09PSBydWxlSWQpIGFzIEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBRFZBTkNFRF9GSUxURVJfSUNPTlMpXG4gICAgICAgIHB1YmxpYyBpY29uczogTmljZUFkdmFuY2VkRmlsdGVySWNvbk9wdGlvbnMsXG4gICAgICAgIHByaXZhdGUgZm9ybUdyb3VwTmFtZTogRm9ybUdyb3VwTmFtZVxuICAgICkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1Hcm91cE5hbWUuY29udHJvbCBhcyBHZW5lcmF0ZWRGb3JtR3JvdXA8RmlsdGVyRm9ybT47XG4gICAgICAgIHRoaXMudmFsdWVzRm9ybUFycmF5ID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwidmFsdWVzXCIpIGFzIEdlbmVyYXRlZEZvcm1BcnJheTxGaWx0ZXJGb3JtVmFsdWVzPjtcblxuICAgICAgICBjb25zdCBvcGVyYXRpb25Gb3JtQ29udHJvbCA9IHRoaXMuZm9ybUdyb3VwLmdldChcIm9wZXJhdGlvblwiKTtcbiAgICAgICAgdGhpcy5pc1NpbmdsZUlucHV0JCA9IG9wZXJhdGlvbkZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKG9wZXJhdGlvbkZvcm1Db250cm9sLnZhbHVlKSxcbiAgICAgICAgICAgIG1hcCgob3BlcmF0aW9uKSA9PiAhQWR2YW5jZWRGaWx0ZXJzVXRpbHMuaXNEb3VibGVJbnB1dChvcGVyYXRpb24pICYmICFBZHZhbmNlZEZpbHRlcnNVdGlscy5pc05vSW5wdXQob3BlcmF0aW9uKSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5pc0RvdWJsZUlucHV0JCA9IG9wZXJhdGlvbkZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKG9wZXJhdGlvbkZvcm1Db250cm9sLnZhbHVlKSxcbiAgICAgICAgICAgIG1hcCgob3BlcmF0aW9uKSA9PiBBZHZhbmNlZEZpbHRlcnNVdGlscy5pc0RvdWJsZUlucHV0KG9wZXJhdGlvbikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVXBkYXRlRmlsdGVyQ29uZmlnKGNvbmZpZzogRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJ1bGUgPSBBZHZhbmNlZEZpbHRlcnNVdGlscy5jcmVhdGVSdWxlKGNvbmZpZyk7XG4gICAgICAgIHRoaXMudmFsdWVzRm9ybUFycmF5LmNsZWFyKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShuZXcgRmlsdGVyRm9ybShydWxlKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFZhbHVlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZXNGb3JtQXJyYXkuaW5zZXJ0KGluZGV4LCB7fSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZVZhbHVlKGk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlc0Zvcm1BcnJheS5yZW1vdmVBdChpKTtcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlc0Zvcm1BcnJheS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC00XCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYmFzaXMtODBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3QtZmlsdGVyIHctZnVsbFwiXG4gICAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cbiAgICAgICAgICAgIG5pY2VBZHZhbmNlZEZpbHRlcnNUcmlnZ2VyXG4gICAgICAgICAgICBvcmlnaW5YPVwic3RhcnRcIlxuICAgICAgICAgICAgKGFkdmFuY2VkRmlsdGVyU2VsZWN0ZWQpPVwib25VcGRhdGVGaWx0ZXJDb25maWcoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy1uYW1lXCI+e3sgZmlsdGVyQ29uZmlnPy5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImljb25zLmFycm93RG93bi5zdmdJY29uXCI+e3sgaWNvbnMuYXJyb3dEb3duLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgYmFzaXMtNDQgZ2FwLTRcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJydWxlLWZvcm0tZmllbGRcIj5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IGNsYXNzPVwicnVsZS1vcGVyYXRvclwiIGZvcm1Db250cm9sTmFtZT1cIm9wZXJhdGlvblwiPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcGVyYXRvciBvZiBmaWx0ZXJDb25maWc/Lm9wZXJhdG9yc1wiIFt2YWx1ZV09XCJvcGVyYXRvci5pZFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBvcGVyYXRvcj8ubmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWVzRm9ybUFycmF5LmNvbnRyb2xzLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBjbGFzcz1cImNvbmRpdGlvbi10b2dnbGVcIiBmb3JtQ29udHJvbE5hbWU9XCJjb25kaXRpb25cIj5cbiAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgIHZhbHVlPVwiYW5kXCI+e3sgXCJjb21wb25lbnRzLm5pY2VfYWR2YW5jZWRfZmlsdGVycy5ydWxlLmNvbmRpdGlvbnMuYW5kXCIgfCB0cmFuc2xhdGUgfX08L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cIm9yXCI+e3sgXCJjb21wb25lbnRzLm5pY2VfYWR2YW5jZWRfZmlsdGVycy5ydWxlLmNvbmRpdGlvbnMub3JcIiB8IHRyYW5zbGF0ZSB9fTwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtYXV0byBnYXAtNFwiIGZvcm1BcnJheU5hbWU9XCJ2YWx1ZXNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00XCIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiICpuZ0Zvcj1cImxldCBfIG9mIHZhbHVlc0Zvcm1BcnJheS5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJ1bGUtY29udGFpbmVyIGZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgZmxleC1hdXRvIGp1c3RpZnktc3RhcnQgaXRlbXMtY2VudGVyIGdhcC0yLjVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaW5nbGVJbnB1dCQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWx0ZXJDb25maWc/LnR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLXRleHQtZmlsdGVyICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIiBjbGFzcz1cImZsZXggZmxleC1hdXRvXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiPjwvbmljZS1hZHZhbmNlZC10ZXh0LWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLW51bWJlci1maWx0ZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCIgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCI+PC9uaWNlLWFkdmFuY2VkLW51bWJlci1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1hZHZhbmNlZC1yYWRpby1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0byBtYi00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNvbmZpZ109XCJmaWx0ZXJDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC1yYWRpby1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1hZHZhbmNlZC1zZWxlY3QtZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3QnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNvbmZpZ109XCJmaWx0ZXJDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC1zZWxlY3QtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtZGF0ZS1maWx0ZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIiBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiPjwvbmljZS1hZHZhbmNlZC1kYXRlLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRG91YmxlSW5wdXQkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmlsdGVyQ29uZmlnPy50eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1hZHZhbmNlZC10ZXh0LWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLWFkdmFuY2VkLXRleHQtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtbnVtYmVyLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC1udW1iZXItZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtcmFkaW8tZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidyYWRpbydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG8gbWItNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtYWR2YW5jZWQtcmFkaW8tZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtc2VsZWN0LWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtYWR2YW5jZWQtc2VsZWN0LWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLWRhdGUtZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC1kYXRlLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImFsaWduZWQtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJjb21wb25lbnRzLm5pY2VfYWR2YW5jZWRfZmlsdGVycy5ydWxlLmNvbmRpdGlvbnMuYW5kXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmlsdGVyQ29uZmlnPy50eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1hZHZhbmNlZC10ZXh0LWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWNvbmRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLWFkdmFuY2VkLXRleHQtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtbnVtYmVyLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2Vjb25kVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC1udW1iZXItZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtcmFkaW8tZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidyYWRpbydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG8gbWItNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2Vjb25kVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtYWR2YW5jZWQtcmFkaW8tZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtc2VsZWN0LWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2Vjb25kVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtYWR2YW5jZWQtc2VsZWN0LWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLWRhdGUtZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2Vjb25kVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC1kYXRlLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhc2lzLTEyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFkZC1idXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImFkZFZhbHVlKGkgKyAxKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMuYWRkLnN2Z0ljb25cIj57eyBpY29ucy5hZGQubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhc2lzLTEyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlbW92ZS1idXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlbW92ZVZhbHVlKGkpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5kZWxldGUuc3ZnSWNvblwiPnt7IGljb25zLmRlbGV0ZS5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -5,9 +5,9 @@ export class NiceFilterDataDirective {
5
5
  this.template = template;
6
6
  }
7
7
  }
8
- NiceFilterDataDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterDataDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9
- NiceFilterDataDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: NiceFilterDataDirective, selector: "[niceFilterData]", ngImport: i0 });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterDataDirective, decorators: [{
8
+ NiceFilterDataDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterDataDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9
+ NiceFilterDataDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceFilterDataDirective, selector: "[niceFilterData]", ngImport: i0 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterDataDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{ selector: "[niceFilterData]" }]
13
13
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
@@ -10,9 +10,9 @@ export class NiceFilterCustomDataViewComponent {
10
10
  this.data$ = this.query.selectAll();
11
11
  }
12
12
  }
13
- NiceFilterCustomDataViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterCustomDataViewComponent, deps: [{ token: i1.NiceFilterViewQuery }], target: i0.ɵɵFactoryTarget.Component });
14
- NiceFilterCustomDataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceFilterCustomDataViewComponent, selector: "nice-filter-custom-data-view, div[nice-filter-custom-data-view]", queries: [{ propertyName: "content", first: true, predicate: NiceFilterDataDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-container *ngIf=\"content\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data$ | async }\"></ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterCustomDataViewComponent, decorators: [{
13
+ NiceFilterCustomDataViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterCustomDataViewComponent, deps: [{ token: i1.NiceFilterViewQuery }], target: i0.ɵɵFactoryTarget.Component });
14
+ NiceFilterCustomDataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceFilterCustomDataViewComponent, selector: "nice-filter-custom-data-view, div[nice-filter-custom-data-view]", queries: [{ propertyName: "content", first: true, predicate: NiceFilterDataDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-container *ngIf=\"content\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data$ | async }\"></ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterCustomDataViewComponent, decorators: [{
16
16
  type: Component,
17
17
  args: [{ selector: "nice-filter-custom-data-view, div[nice-filter-custom-data-view]", encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"content\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data$ | async }\"></ng-container>\n</ng-container>\n" }]
18
18
  }], ctorParameters: function () { return [{ type: i1.NiceFilterViewQuery }]; }, propDecorators: { content: [{
@@ -67,9 +67,9 @@ export class NiceFilterExportButtonsComponent {
67
67
  this.service.downloadData("pdf", this.downloadFileName);
68
68
  }
69
69
  }
70
- NiceFilterExportButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterExportButtonsComponent, deps: [{ token: FILTER_VIEW_ICONS }, { token: EXPORTS_SETTINGS }, { token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }, { token: i3.MatBottomSheet }], target: i0.ɵɵFactoryTarget.Component });
71
- NiceFilterExportButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceFilterExportButtonsComponent, selector: "nice-filter-export-buttons, div[nice-filter-export-buttons]", inputs: { customExport: "customExport", downloadFileName: "downloadFileName", canPrint: "canPrint" }, ngImport: i0, template: "<button\n *ngIf=\"canPrint\"\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"export-button\"\n mat-mini-fab\n>\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n</button>\n\n<button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"export-button\"\n mat-mini-fab\n>\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i7.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: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterExportButtonsComponent, decorators: [{
70
+ NiceFilterExportButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterExportButtonsComponent, deps: [{ token: FILTER_VIEW_ICONS }, { token: EXPORTS_SETTINGS }, { token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }, { token: i3.MatBottomSheet }], target: i0.ɵɵFactoryTarget.Component });
71
+ NiceFilterExportButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceFilterExportButtonsComponent, selector: "nice-filter-export-buttons, div[nice-filter-export-buttons]", inputs: { customExport: "customExport", downloadFileName: "downloadFileName", canPrint: "canPrint" }, ngImport: i0, template: "<button\n *ngIf=\"canPrint\"\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"export-button\"\n mat-mini-fab\n>\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n</button>\n\n<button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"export-button\"\n mat-mini-fab\n>\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i7.MatMiniFabButton, selector: "button[mat-mini-fab]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterExportButtonsComponent, decorators: [{
73
73
  type: Component,
74
74
  args: [{ selector: "nice-filter-export-buttons, div[nice-filter-export-buttons]", encapsulation: ViewEncapsulation.None, template: "<button\n *ngIf=\"canPrint\"\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"export-button\"\n mat-mini-fab\n>\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n</button>\n\n<button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"export-button\"\n mat-mini-fab\n>\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n</button>\n" }]
75
75
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -11,9 +11,9 @@ export class NiceFilterExportDirective {
11
11
  this.service.downloadData(this.type, this.downloadFileName);
12
12
  }
13
13
  }
14
- NiceFilterExportDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterExportDirective, deps: [{ token: i1.NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Directive });
15
- NiceFilterExportDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: NiceFilterExportDirective, selector: "[niceFilterExport]", inputs: { type: "type", downloadFileName: "downloadFileName" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterExportDirective, decorators: [{
14
+ NiceFilterExportDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterExportDirective, deps: [{ token: i1.NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Directive });
15
+ NiceFilterExportDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceFilterExportDirective, selector: "[niceFilterExport]", inputs: { type: "type", downloadFileName: "downloadFileName" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterExportDirective, decorators: [{
17
17
  type: Directive,
18
18
  args: [{ selector: "[niceFilterExport]" }]
19
19
  }], ctorParameters: function () { return [{ type: i1.NiceFilterViewService }]; }, propDecorators: { type: [{
@@ -25,9 +25,9 @@ export class NiceFilterInfiniteScrollDataViewComponent {
25
25
  this.service.filter();
26
26
  }
27
27
  }
28
- NiceFilterInfiniteScrollDataViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterInfiniteScrollDataViewComponent, deps: [{ token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component });
29
- NiceFilterInfiniteScrollDataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceFilterInfiniteScrollDataViewComponent, selector: "nice-filter-infinite-scroll-data-view, div[nice-filter-infinite-scroll-data-view]", queries: [{ propertyName: "content", first: true, predicate: NiceFilterDataDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-container *ngIf=\"content\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data$ | async }\"></ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterInfiniteScrollDataViewComponent, decorators: [{
28
+ NiceFilterInfiniteScrollDataViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterInfiniteScrollDataViewComponent, deps: [{ token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component });
29
+ NiceFilterInfiniteScrollDataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceFilterInfiniteScrollDataViewComponent, selector: "nice-filter-infinite-scroll-data-view, div[nice-filter-infinite-scroll-data-view]", queries: [{ propertyName: "content", first: true, predicate: NiceFilterDataDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-container *ngIf=\"content\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data$ | async }\"></ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterInfiniteScrollDataViewComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: "nice-filter-infinite-scroll-data-view, div[nice-filter-infinite-scroll-data-view]", encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"content\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data$ | async }\"></ng-container>\n</ng-container>\n" }]
33
33
  }], ctorParameters: function () { return [{ type: i1.NiceFilterViewQuery }, { type: i2.NiceFilterViewService }]; }, propDecorators: { content: [{
@@ -45,11 +45,11 @@ export class NiceFilterSearchComponent {
45
45
  this.searchText$.next(search);
46
46
  }
47
47
  }
48
- NiceFilterSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterSearchComponent, deps: [{ token: FILTER_VIEW_ICONS }, { token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component });
49
- NiceFilterSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceFilterSearchComponent, selector: "nice-filter-search", inputs: { appearance: "appearance" }, ngImport: i0, template: "<div\n class=\"search-wrapper mx-md-0\"\n [class.nice-search-default]=\"appearance === 'default'\"\n [class.nice-search-outlined]=\"appearance === 'outlined'\"\n [class.nice-search-legacy]=\"appearance === 'legacy'\"\n [class.nice-search-custom]=\"appearance === 'custom'\"\n>\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-content select=\"[niceFilterSearchButtons]\"></ng-content>\n </div>\n</div>\n", styles: ["nice-filter-search .search-wrapper{width:100%;max-width:480px;overflow:hidden}nice-filter-search .search-wrapper.nice-search-default{box-shadow:0 4px 12px #0000001f;border-radius:5px}nice-filter-search .search-wrapper.nice-search-outlined{border-radius:5px}nice-filter-search .search-wrapper.nice-search-legacy{box-shadow:0 3px 3px -2px #0000000f,0 3px 4px #0000000b,0 1px 8px #00000009;border-radius:28px}nice-filter-search .search-wrapper .search{width:100%;height:48px;line-height:48px;padding:0 18px}nice-filter-search .search-wrapper .search input{width:100%;height:48px;min-height:48px;max-height:48px;padding:0 16px;border:none;outline:none}\n"], dependencies: [{ kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterSearchComponent, decorators: [{
48
+ NiceFilterSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterSearchComponent, deps: [{ token: FILTER_VIEW_ICONS }, { token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component });
49
+ NiceFilterSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceFilterSearchComponent, selector: "nice-filter-search", inputs: { appearance: "appearance" }, ngImport: i0, template: "<div\n class=\"search-wrapper mx-md-0\"\n [class.nice-search-default]=\"appearance === 'default'\"\n [class.nice-search-outlined]=\"appearance === 'outlined'\"\n [class.nice-search-legacy]=\"appearance === 'legacy'\"\n [class.nice-search-custom]=\"appearance === 'custom'\"\n>\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-content select=\"[niceFilterSearchButtons]\"></ng-content>\n </div>\n</div>\n", styles: ["nice-filter-search .search-wrapper{width:100%;max-width:480px;overflow:hidden}nice-filter-search .search-wrapper.nice-search-default{box-shadow:0 4px 12px #0000001f;border-radius:5px}nice-filter-search .search-wrapper.nice-search-outlined{border-radius:5px}nice-filter-search .search-wrapper.nice-search-legacy{box-shadow:0 3px 3px -2px #0000004d,0 3px 4px #0000004d,0 1px 8px #0000004d;border-radius:28px}nice-filter-search .search-wrapper .search{width:100%;height:48px;line-height:48px;padding:0 18px}nice-filter-search .search-wrapper .search input{width:100%;height:48px;min-height:48px;max-height:48px;padding:0 16px;border:none;outline:none}\n"], dependencies: [{ kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterSearchComponent, decorators: [{
51
51
  type: Component,
52
- args: [{ selector: "nice-filter-search", encapsulation: ViewEncapsulation.None, template: "<div\n class=\"search-wrapper mx-md-0\"\n [class.nice-search-default]=\"appearance === 'default'\"\n [class.nice-search-outlined]=\"appearance === 'outlined'\"\n [class.nice-search-legacy]=\"appearance === 'legacy'\"\n [class.nice-search-custom]=\"appearance === 'custom'\"\n>\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-content select=\"[niceFilterSearchButtons]\"></ng-content>\n </div>\n</div>\n", styles: ["nice-filter-search .search-wrapper{width:100%;max-width:480px;overflow:hidden}nice-filter-search .search-wrapper.nice-search-default{box-shadow:0 4px 12px #0000001f;border-radius:5px}nice-filter-search .search-wrapper.nice-search-outlined{border-radius:5px}nice-filter-search .search-wrapper.nice-search-legacy{box-shadow:0 3px 3px -2px #0000000f,0 3px 4px #0000000b,0 1px 8px #00000009;border-radius:28px}nice-filter-search .search-wrapper .search{width:100%;height:48px;line-height:48px;padding:0 18px}nice-filter-search .search-wrapper .search input{width:100%;height:48px;min-height:48px;max-height:48px;padding:0 16px;border:none;outline:none}\n"] }]
52
+ args: [{ selector: "nice-filter-search", encapsulation: ViewEncapsulation.None, template: "<div\n class=\"search-wrapper mx-md-0\"\n [class.nice-search-default]=\"appearance === 'default'\"\n [class.nice-search-outlined]=\"appearance === 'outlined'\"\n [class.nice-search-legacy]=\"appearance === 'legacy'\"\n [class.nice-search-custom]=\"appearance === 'custom'\"\n>\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-content select=\"[niceFilterSearchButtons]\"></ng-content>\n </div>\n</div>\n", styles: ["nice-filter-search .search-wrapper{width:100%;max-width:480px;overflow:hidden}nice-filter-search .search-wrapper.nice-search-default{box-shadow:0 4px 12px #0000001f;border-radius:5px}nice-filter-search .search-wrapper.nice-search-outlined{border-radius:5px}nice-filter-search .search-wrapper.nice-search-legacy{box-shadow:0 3px 3px -2px #0000004d,0 3px 4px #0000004d,0 1px 8px #0000004d;border-radius:28px}nice-filter-search .search-wrapper .search{width:100%;height:48px;line-height:48px;padding:0 18px}nice-filter-search .search-wrapper .search input{width:100%;height:48px;min-height:48px;max-height:48px;padding:0 16px;border:none;outline:none}\n"] }]
53
53
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
54
54
  type: Inject,
55
55
  args: [FILTER_VIEW_ICONS]
@@ -40,9 +40,9 @@ export class NiceFilterMatPaginatorPaginationDirective {
40
40
  this.unsubscribeAll$.complete();
41
41
  }
42
42
  }
43
- NiceFilterMatPaginatorPaginationDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterMatPaginatorPaginationDirective, deps: [{ token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }, { token: i3.MatPaginator }], target: i0.ɵɵFactoryTarget.Directive });
44
- NiceFilterMatPaginatorPaginationDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: NiceFilterMatPaginatorPaginationDirective, selector: "mat-paginator[niceFilterPagination]", ngImport: i0 });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterMatPaginatorPaginationDirective, decorators: [{
43
+ NiceFilterMatPaginatorPaginationDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterMatPaginatorPaginationDirective, deps: [{ token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }, { token: i3.MatPaginator }], target: i0.ɵɵFactoryTarget.Directive });
44
+ NiceFilterMatPaginatorPaginationDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceFilterMatPaginatorPaginationDirective, selector: "mat-paginator[niceFilterPagination]", ngImport: i0 });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterMatPaginatorPaginationDirective, decorators: [{
46
46
  type: Directive,
47
47
  args: [{ selector: "mat-paginator[niceFilterPagination]" }]
48
48
  }], ctorParameters: function () { return [{ type: i1.NiceFilterViewQuery }, { type: i2.NiceFilterViewService }, { type: i3.MatPaginator }]; } });
@@ -53,9 +53,9 @@ export class NiceFilterMatSortSortingDirective {
53
53
  this.unsubscribeAll$.complete();
54
54
  }
55
55
  }
56
- NiceFilterMatSortSortingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterMatSortSortingDirective, deps: [{ token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }, { token: i3.MatSort }], target: i0.ɵɵFactoryTarget.Directive });
57
- NiceFilterMatSortSortingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: NiceFilterMatSortSortingDirective, selector: "mat-table[matSort][niceFilterSorting]", ngImport: i0 });
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterMatSortSortingDirective, decorators: [{
56
+ NiceFilterMatSortSortingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterMatSortSortingDirective, deps: [{ token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }, { token: i3.MatSort }], target: i0.ɵɵFactoryTarget.Directive });
57
+ NiceFilterMatSortSortingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceFilterMatSortSortingDirective, selector: "mat-table[matSort][niceFilterSorting]", ngImport: i0 });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterMatSortSortingDirective, decorators: [{
59
59
  type: Directive,
60
60
  args: [{ selector: "mat-table[matSort][niceFilterSorting]" }]
61
61
  }], ctorParameters: function () { return [{ type: i1.NiceFilterViewQuery }, { type: i2.NiceFilterViewService }, { type: i3.MatSort }]; } });
@@ -13,9 +13,9 @@ export class NiceFilterMatTableViewDirective {
13
13
  this.table.dataSource = this.query.selectAll();
14
14
  }
15
15
  }
16
- NiceFilterMatTableViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterMatTableViewDirective, deps: [{ token: i1.NiceFilterViewQuery }, { token: i2.MatTable }], target: i0.ɵɵFactoryTarget.Directive });
17
- NiceFilterMatTableViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: NiceFilterMatTableViewDirective, selector: "mat-table[niceFilterDataView]", ngImport: i0 });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterMatTableViewDirective, decorators: [{
16
+ NiceFilterMatTableViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterMatTableViewDirective, deps: [{ token: i1.NiceFilterViewQuery }, { token: i2.MatTable }], target: i0.ɵɵFactoryTarget.Directive });
17
+ NiceFilterMatTableViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceFilterMatTableViewDirective, selector: "mat-table[niceFilterDataView]", ngImport: i0 });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterMatTableViewDirective, decorators: [{
19
19
  type: Directive,
20
20
  args: [{ selector: "mat-table[niceFilterDataView]" }]
21
21
  }], ctorParameters: function () { return [{ type: i1.NiceFilterViewQuery }, { type: i2.MatTable }]; } });
@@ -11,6 +11,9 @@ import * as i1 from "../store/nice-filter-view.query";
11
11
  import * as i2 from "../store/nice-filter-view.service";
12
12
  import * as i3 from "@angular/router";
13
13
  export class NiceFilterQueryParamsDirective {
14
+ get initialized() {
15
+ return this._initialized;
16
+ }
14
17
  constructor(query, service, route, router) {
15
18
  this.query = query;
16
19
  this.service = service;
@@ -20,9 +23,6 @@ export class NiceFilterQueryParamsDirective {
20
23
  this.unsubscribeAll$ = new Subject();
21
24
  this._initialized = false;
22
25
  }
23
- get initialized() {
24
- return this._initialized;
25
- }
26
26
  ngOnInit() {
27
27
  this.query.selectFilterParameters().pipe(takeUntil(this.unsubscribeAll$)).subscribe((parameters) => {
28
28
  this.updateQueryParams(parameters);
@@ -80,12 +80,12 @@ export class NiceFilterQueryParamsDirective {
80
80
  });
81
81
  }
82
82
  }
83
- NiceFilterQueryParamsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterQueryParamsDirective, deps: [{ token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }, { token: i3.ActivatedRoute }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Directive });
84
- NiceFilterQueryParamsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: NiceFilterQueryParamsDirective, selector: "nice-filter-view[niceFilterQueryParams]", outputs: { init: "init" }, ngImport: i0 });
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterQueryParamsDirective, decorators: [{
83
+ NiceFilterQueryParamsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterQueryParamsDirective, deps: [{ token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }, { token: i3.ActivatedRoute }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Directive });
84
+ NiceFilterQueryParamsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceFilterQueryParamsDirective, selector: "nice-filter-view[niceFilterQueryParams]", outputs: { init: "init" }, ngImport: i0 });
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterQueryParamsDirective, decorators: [{
86
86
  type: Directive,
87
87
  args: [{ selector: "nice-filter-view[niceFilterQueryParams]" }]
88
88
  }], ctorParameters: function () { return [{ type: i1.NiceFilterViewQuery }, { type: i2.NiceFilterViewService }, { type: i3.ActivatedRoute }, { type: i3.Router }]; }, propDecorators: { init: [{
89
89
  type: Output
90
90
  }] } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcGFyYW1zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L2RpcmVjdGl2ZXMvcXVlcnktcGFyYW1zLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQUcxRSxNQUFNLE9BQU8sOEJBQThCO0lBV3ZDLFlBQ1ksS0FBMEIsRUFDMUIsT0FBOEIsRUFDOUIsS0FBcUIsRUFDckIsTUFBYztRQUhkLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQzlCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFibkIsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekIsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3RDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBVzFCLENBQUM7SUFUSixJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFTTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDL0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxVQUFpQztRQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNiLE9BQU87U0FDVjtRQUVELE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUNqQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QyxJQUFJLElBQUksS0FBSyxhQUFhLEVBQUU7WUFDeEIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ3BCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUN4QjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNyQixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDdEIsV0FBVyxFQUFFLGdCQUFnQixDQUFDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQztZQUNqRSxtQkFBbUIsRUFBRSxPQUFPO1NBQy9CLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxlQUFlO1FBQ25CLGFBQWEsQ0FBQztZQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN0RSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDdkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN2RSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7U0FDekUsQ0FBQyxDQUFDLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUMvQixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ0wsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1lBQy9DLE9BQU87Z0JBQ0gsTUFBTSxFQUFFLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQzthQUMzRCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDbkYsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUM7YUFDMUQ7WUFDRCxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqRSxJQUNJLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7Z0JBQzlELENBQUMsWUFBWSxFQUNmO2dCQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO29CQUN2QixHQUFHLE1BQU07b0JBQ1QsYUFBYSxFQUFFLGdCQUFnQixDQUFDLGFBQWE7aUJBQ2hELENBQUMsQ0FBQzthQUNOO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3BCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzsySEFyRlEsOEJBQThCOytHQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFEMUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx5Q0FBeUMsRUFBRTtnTUFHdkQsSUFBSTtzQkFEVixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0LCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgRmlsdGVyVXRpbHMgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvZmlsdGVyLnV0aWxzXCI7XG5pbXBvcnQgeyBRdWVyeVBhcmFtc1V0aWxzIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3F1ZXJ5LXBhcmFtcy51dGlsc1wiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdRdWVyeSB9IGZyb20gXCIuLi9zdG9yZS9uaWNlLWZpbHRlci12aWV3LnF1ZXJ5XCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1NlcnZpY2UgfSBmcm9tIFwiLi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5zZXJ2aWNlXCI7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogXCJuaWNlLWZpbHRlci12aWV3W25pY2VGaWx0ZXJRdWVyeVBhcmFtc11cIiB9KVxuZXhwb3J0IGNsYXNzIE5pY2VGaWx0ZXJRdWVyeVBhcmFtc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgaW5pdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByaXZhdGUgdW5zdWJzY3JpYmVBbGwkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9pbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIGdldCBpbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemVkO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHF1ZXJ5OiBOaWNlRmlsdGVyVmlld1F1ZXJ5LFxuICAgICAgICBwcml2YXRlIHNlcnZpY2U6IE5pY2VGaWx0ZXJWaWV3U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVlcnkuc2VsZWN0RmlsdGVyUGFyYW1ldGVycygpLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVBbGwkKSkuc3Vic2NyaWJlKChwYXJhbWV0ZXJzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKHBhcmFtZXRlcnMpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxvYWRRdWVyeVBhcmFtcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZUFsbCQubmV4dCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlQWxsJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUXVlcnlQYXJhbXMocGFyYW1ldGVyczogRmlsdGVyUGFyYW1ldGVyc01vZGVsKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5yb3V0ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyYW1zID0geyAuLi5wYXJhbWV0ZXJzIH07XG4gICAgICAgIGNvbnN0IHsgbW9kZSB9ID0gdGhpcy5xdWVyeS5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAobW9kZSA9PT0gXCJhY2N1bXVsYXRlZFwiKSB7XG4gICAgICAgICAgICBkZWxldGUgcGFyYW1zLnN0YXJ0O1xuICAgICAgICAgICAgZGVsZXRlIHBhcmFtcy5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtc1V0aWxzLmZpbHRlclBhcmFtZXRlcnNUb1BhcmFtc01hcChwYXJhbXMpLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogXCJtZXJnZVwiXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFF1ZXJ5UGFyYW1zKCk6IHZvaWQge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMucGlwZShtYXAoKHBhcmFtcykgPT4gcGFyYW1zLnN0YXJ0KSwgZGlzdGluY3QoKSksXG4gICAgICAgICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUobWFwKChwYXJhbXMpID0+IHBhcmFtcy5sZW5ndGgpLCBkaXN0aW5jdCgpKSxcbiAgICAgICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMucGlwZShtYXAoKHBhcmFtcykgPT4gcGFyYW1zLm9yZGVyKSwgZGlzdGluY3QoKSksXG4gICAgICAgICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUobWFwKChwYXJhbXMpID0+IHBhcmFtcy5zZWFyY2gpLCBkaXN0aW5jdCgpKSxcbiAgICAgICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMucGlwZShtYXAoKHBhcmFtcykgPT4gcGFyYW1zLnJ1bGVzKSwgZGlzdGluY3QoKSksXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFsbCQpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogUXVlcnlQYXJhbXNVdGlscy5leHRyYWN0RmlsdGVyUGFyYW1ldGVycyhwYXJhbXMpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkuc3Vic2NyaWJlKCh7IHBhcmFtcyB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoIVF1ZXJ5UGFyYW1zVXRpbHMuaGFzRmlsdGVyUGFyYW1ldGVycyhwYXJhbXMpIHx8IE9iamVjdC5rZXlzKHBhcmFtcykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0geyAuLi50aGlzLnF1ZXJ5LmdldFZhbHVlKCkuZmlsdGVyUGFyYW1ldGVycyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzLCBmaWx0ZXJSZXN1bHQgfSA9IHRoaXMucXVlcnkuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBGaWx0ZXJVdGlscy5maWx0ZXJDaGFuZ2VOZWVkc1JlZnJlc2goZmlsdGVyUGFyYW1ldGVycywgcGFyYW1zKSB8fFxuICAgICAgICAgICAgICAgICFmaWx0ZXJSZXN1bHRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5zZXRQYXJhbWV0ZXJzKHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICBmYWxsYmFja09yZGVyOiBmaWx0ZXJQYXJhbWV0ZXJzLmZhbGxiYWNrT3JkZXJcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXQuZW1pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcGFyYW1zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L2RpcmVjdGl2ZXMvcXVlcnktcGFyYW1zLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQUcxRSxNQUFNLE9BQU8sOEJBQThCO0lBT3ZDLElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQ1ksS0FBMEIsRUFDMUIsT0FBOEIsRUFDOUIsS0FBcUIsRUFDckIsTUFBYztRQUhkLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQzlCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFibkIsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekIsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3RDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBVzFCLENBQUM7SUFFRyxRQUFRO1FBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDL0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxVQUFpQztRQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNiLE9BQU87U0FDVjtRQUVELE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUNqQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QyxJQUFJLElBQUksS0FBSyxhQUFhLEVBQUU7WUFDeEIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ3BCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUN4QjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNyQixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDdEIsV0FBVyxFQUFFLGdCQUFnQixDQUFDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQztZQUNqRSxtQkFBbUIsRUFBRSxPQUFPO1NBQy9CLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxlQUFlO1FBQ25CLGFBQWEsQ0FBQztZQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN0RSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDdkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN2RSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7U0FDekUsQ0FBQyxDQUFDLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUMvQixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ0wsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1lBQy9DLE9BQU87Z0JBQ0gsTUFBTSxFQUFFLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQzthQUMzRCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDbkYsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUM7YUFDMUQ7WUFDRCxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqRSxJQUNJLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7Z0JBQzlELENBQUMsWUFBWSxFQUNmO2dCQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO29CQUN2QixHQUFHLE1BQU07b0JBQ1QsYUFBYSxFQUFFLGdCQUFnQixDQUFDLGFBQWE7aUJBQ2hELENBQUMsQ0FBQzthQUNOO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3BCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzsySEFyRlEsOEJBQThCOytHQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFEMUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx5Q0FBeUMsRUFBRTtnTUFHdkQsSUFBSTtzQkFEVixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0LCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgRmlsdGVyVXRpbHMgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvZmlsdGVyLnV0aWxzXCI7XG5pbXBvcnQgeyBRdWVyeVBhcmFtc1V0aWxzIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3F1ZXJ5LXBhcmFtcy51dGlsc1wiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdRdWVyeSB9IGZyb20gXCIuLi9zdG9yZS9uaWNlLWZpbHRlci12aWV3LnF1ZXJ5XCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1NlcnZpY2UgfSBmcm9tIFwiLi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5zZXJ2aWNlXCI7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogXCJuaWNlLWZpbHRlci12aWV3W25pY2VGaWx0ZXJRdWVyeVBhcmFtc11cIiB9KVxuZXhwb3J0IGNsYXNzIE5pY2VGaWx0ZXJRdWVyeVBhcmFtc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgaW5pdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByaXZhdGUgdW5zdWJzY3JpYmVBbGwkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9pbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIGdldCBpbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemVkO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHF1ZXJ5OiBOaWNlRmlsdGVyVmlld1F1ZXJ5LFxuICAgICAgICBwcml2YXRlIHNlcnZpY2U6IE5pY2VGaWx0ZXJWaWV3U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVlcnkuc2VsZWN0RmlsdGVyUGFyYW1ldGVycygpLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVBbGwkKSkuc3Vic2NyaWJlKChwYXJhbWV0ZXJzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKHBhcmFtZXRlcnMpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxvYWRRdWVyeVBhcmFtcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZUFsbCQubmV4dCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlQWxsJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUXVlcnlQYXJhbXMocGFyYW1ldGVyczogRmlsdGVyUGFyYW1ldGVyc01vZGVsKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5yb3V0ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyYW1zID0geyAuLi5wYXJhbWV0ZXJzIH07XG4gICAgICAgIGNvbnN0IHsgbW9kZSB9ID0gdGhpcy5xdWVyeS5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAobW9kZSA9PT0gXCJhY2N1bXVsYXRlZFwiKSB7XG4gICAgICAgICAgICBkZWxldGUgcGFyYW1zLnN0YXJ0O1xuICAgICAgICAgICAgZGVsZXRlIHBhcmFtcy5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtc1V0aWxzLmZpbHRlclBhcmFtZXRlcnNUb1BhcmFtc01hcChwYXJhbXMpLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogXCJtZXJnZVwiXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFF1ZXJ5UGFyYW1zKCk6IHZvaWQge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMucGlwZShtYXAoKHBhcmFtcykgPT4gcGFyYW1zLnN0YXJ0KSwgZGlzdGluY3QoKSksXG4gICAgICAgICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUobWFwKChwYXJhbXMpID0+IHBhcmFtcy5sZW5ndGgpLCBkaXN0aW5jdCgpKSxcbiAgICAgICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMucGlwZShtYXAoKHBhcmFtcykgPT4gcGFyYW1zLm9yZGVyKSwgZGlzdGluY3QoKSksXG4gICAgICAgICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUobWFwKChwYXJhbXMpID0+IHBhcmFtcy5zZWFyY2gpLCBkaXN0aW5jdCgpKSxcbiAgICAgICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMucGlwZShtYXAoKHBhcmFtcykgPT4gcGFyYW1zLnJ1bGVzKSwgZGlzdGluY3QoKSksXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFsbCQpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogUXVlcnlQYXJhbXNVdGlscy5leHRyYWN0RmlsdGVyUGFyYW1ldGVycyhwYXJhbXMpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkuc3Vic2NyaWJlKCh7IHBhcmFtcyB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoIVF1ZXJ5UGFyYW1zVXRpbHMuaGFzRmlsdGVyUGFyYW1ldGVycyhwYXJhbXMpIHx8IE9iamVjdC5rZXlzKHBhcmFtcykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0geyAuLi50aGlzLnF1ZXJ5LmdldFZhbHVlKCkuZmlsdGVyUGFyYW1ldGVycyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzLCBmaWx0ZXJSZXN1bHQgfSA9IHRoaXMucXVlcnkuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBGaWx0ZXJVdGlscy5maWx0ZXJDaGFuZ2VOZWVkc1JlZnJlc2goZmlsdGVyUGFyYW1ldGVycywgcGFyYW1zKSB8fFxuICAgICAgICAgICAgICAgICFmaWx0ZXJSZXN1bHRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5zZXRQYXJhbWV0ZXJzKHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICBmYWxsYmFja09yZGVyOiBmaWx0ZXJQYXJhbWV0ZXJzLmZhbGxiYWNrT3JkZXJcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXQuZW1pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -106,9 +106,9 @@ export class NiceBaseFilterViewComponent {
106
106
  }
107
107
  }
108
108
  }
109
- NiceBaseFilterViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceBaseFilterViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
110
- NiceBaseFilterViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceBaseFilterViewComponent, selector: "ng-component", viewQueries: [{ propertyName: "filterViewService", first: true, predicate: NiceFilterViewComponent, descendants: true, read: NiceFilterViewService, static: true }, { propertyName: "filterViewQuery", first: true, predicate: NiceFilterViewComponent, descendants: true, read: NiceFilterViewQuery, static: true }, { propertyName: "queryParams", first: true, predicate: NiceFilterQueryParamsDirective, descendants: true, static: true }, { propertyName: "advancedFiltersButton", first: true, predicate: NiceAdvancedFiltersButtonComponent, descendants: true, static: true }, { propertyName: "advancedFilters", first: true, predicate: NiceAdvancedFiltersComponent, descendants: true, static: true }], ngImport: i0, template: ``, isInline: true });
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceBaseFilterViewComponent, decorators: [{
109
+ NiceBaseFilterViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceBaseFilterViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
110
+ NiceBaseFilterViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceBaseFilterViewComponent, selector: "ng-component", viewQueries: [{ propertyName: "filterViewService", first: true, predicate: NiceFilterViewComponent, descendants: true, read: NiceFilterViewService, static: true }, { propertyName: "filterViewQuery", first: true, predicate: NiceFilterViewComponent, descendants: true, read: NiceFilterViewQuery, static: true }, { propertyName: "queryParams", first: true, predicate: NiceFilterQueryParamsDirective, descendants: true, static: true }, { propertyName: "advancedFiltersButton", first: true, predicate: NiceAdvancedFiltersButtonComponent, descendants: true, static: true }, { propertyName: "advancedFilters", first: true, predicate: NiceAdvancedFiltersComponent, descendants: true, static: true }], ngImport: i0, template: ``, isInline: true });
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceBaseFilterViewComponent, decorators: [{
112
112
  type: Component,
113
113
  args: [{
114
114
  template: ``
@@ -15,13 +15,13 @@ export class NiceFilterViewComponent {
15
15
  }
16
16
  }
17
17
  }
18
- NiceFilterViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewComponent, deps: [{ token: i1.NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component });
19
- NiceFilterViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceFilterViewComponent, selector: "nice-filter-view", inputs: { queryParams: "queryParams" }, providers: [
18
+ NiceFilterViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterViewComponent, deps: [{ token: i1.NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component });
19
+ NiceFilterViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceFilterViewComponent, selector: "nice-filter-view", inputs: { queryParams: "queryParams" }, providers: [
20
20
  NiceFilterViewQuery,
21
21
  NiceFilterViewService,
22
22
  NiceFilterViewStore
23
23
  ], usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], encapsulation: i0.ViewEncapsulation.None });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewComponent, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterViewComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{ selector: "nice-filter-view", encapsulation: ViewEncapsulation.None, providers: [
27
27
  NiceFilterViewQuery,
@@ -62,8 +62,8 @@ export class NiceFilterViewModule {
62
62
  ].filter(x => !!x);
63
63
  }
64
64
  }
65
- NiceFilterViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
66
- NiceFilterViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewModule, declarations: [NiceFilterViewComponent,
65
+ NiceFilterViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
66
+ NiceFilterViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterViewModule, declarations: [NiceFilterViewComponent,
67
67
  NiceFilterCustomDataViewComponent,
68
68
  NiceFilterExportButtonsComponent,
69
69
  NiceFilterInfiniteScrollDataViewComponent,
@@ -93,14 +93,14 @@ NiceFilterViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ve
93
93
  NiceFilterMatSortSortingDirective,
94
94
  NiceFilterMatPaginatorPaginationDirective,
95
95
  NiceFilterQueryParamsDirective] });
96
- NiceFilterViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewModule, imports: [TranslateModule,
96
+ NiceFilterViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterViewModule, imports: [TranslateModule,
97
97
  MatIconModule,
98
98
  FormsModule,
99
99
  MatTooltipModule,
100
100
  MatButtonModule,
101
101
  MatBottomSheetModule,
102
102
  NiceExportBottomSheetModule] });
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewModule, decorators: [{
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterViewModule, decorators: [{
104
104
  type: NgModule,
105
105
  args: [{
106
106
  imports: [
@@ -19,9 +19,9 @@ export class NiceFilterGroupIconPipe {
19
19
  return icon;
20
20
  }
21
21
  }
22
- NiceFilterGroupIconPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterGroupIconPipe, deps: [{ token: i1.NiceFilterGroupService, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
23
- NiceFilterGroupIconPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterGroupIconPipe, name: "niceFilterGroupIcon" });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterGroupIconPipe, decorators: [{
22
+ NiceFilterGroupIconPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterGroupIconPipe, deps: [{ token: i1.NiceFilterGroupService, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
23
+ NiceFilterGroupIconPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterGroupIconPipe, name: "niceFilterGroupIcon" });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterGroupIconPipe, decorators: [{
25
25
  type: Pipe,
26
26
  args: [{
27
27
  name: "niceFilterGroupIcon"
@@ -30,9 +30,9 @@ export class NiceFilterViewQuery extends QueryEntity {
30
30
  return this.store.getSubState(name);
31
31
  }
32
32
  }
33
- NiceFilterViewQuery.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewQuery, deps: [{ token: i1.NiceFilterViewStore }], target: i0.ɵɵFactoryTarget.Injectable });
34
- NiceFilterViewQuery.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewQuery });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewQuery, decorators: [{
33
+ NiceFilterViewQuery.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterViewQuery, deps: [{ token: i1.NiceFilterViewStore }], target: i0.ɵɵFactoryTarget.Injectable });
34
+ NiceFilterViewQuery.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterViewQuery });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceFilterViewQuery, decorators: [{
36
36
  type: Injectable
37
37
  }], ctorParameters: function () { return [{ type: i1.NiceFilterViewStore }]; } });
38
38
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1maWx0ZXItdmlldy5xdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L3N0b3JlL25pY2UtZmlsdGVyLXZpZXcucXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHOUMsT0FBTyxFQUF1QixtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFHcEYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQWdDO0lBQ3JFLFlBQXNCLEtBQTBCO1FBQzVDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQURLLFVBQUssR0FBTCxLQUFLLENBQXFCO0lBRWhELENBQUM7SUFFTSxjQUFjLENBQUksSUFBWTtRQUNqQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0seUJBQXlCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxzQkFBc0I7UUFDekIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLGFBQWE7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVNLFdBQVcsQ0FBSSxJQUFZO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7Z0hBL0JRLG1CQUFtQjtvSEFBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFF1ZXJ5RW50aXR5IH0gZnJvbSBcIkBkYXRvcmFtYS9ha2l0YVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwsIEZpbHRlclBhcmFtZXRlcnNNb2RlbCwgRmlsdGVyUmVzdWx0TW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdTdGF0ZSwgTmljZUZpbHRlclZpZXdTdG9yZSB9IGZyb20gXCIuL25pY2UtZmlsdGVyLXZpZXcuc3RvcmVcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5pY2VGaWx0ZXJWaWV3UXVlcnkgZXh0ZW5kcyBRdWVyeUVudGl0eTxOaWNlRmlsdGVyVmlld1N0YXRlPiB7XG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHN0b3JlOiBOaWNlRmlsdGVyVmlld1N0b3JlKSB7XG4gICAgICAgIHN1cGVyKHN0b3JlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0U3ViU3RhdGU8VD4obmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdCgoc3RhdGUpID0+IHN0YXRlLnN1YlN0YXRlc1tuYW1lXSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdEZpbHRlckNvbmZpZ0xvYWRpbmcoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdChcImZpbHRlckNvbmZpZ0xvYWRpbmdcIik7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdEZpbHRlckNvbmZpZygpOiBPYnNlcnZhYmxlPEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdChcImZpbHRlckNvbmZpZ1wiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0RmlsdGVyUGFyYW1ldGVycygpOiBPYnNlcnZhYmxlPEZpbHRlclBhcmFtZXRlcnNNb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3QoXCJmaWx0ZXJQYXJhbWV0ZXJzXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3RGaWx0ZXJSZXN1bHQoKTogT2JzZXJ2YWJsZTxGaWx0ZXJSZXN1bHRNb2RlbCB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0KFwiZmlsdGVyUmVzdWx0XCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXJhbWV0ZXJzKCk6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlLmdldFBhcmFtZXRlcnModGhpcy5zdG9yZS5nZXRWYWx1ZSgpLmZpbHRlclBhcmFtZXRlcnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdWJTdGF0ZTxUPihuYW1lOiBzdHJpbmcpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuZ2V0U3ViU3RhdGUobmFtZSk7XG4gICAgfVxufVxuIl19