nuxeo-development-framework 5.4.5 → 5.4.7

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 (80) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +688 -384
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +2 -2
  4. package/esm2015/lib/components/ndf-config-editor/services/dummy-data.js +2 -2
  5. package/esm2015/lib/components/ndf-filters/containers/aggregation-field/aggregation-field.component.js +3 -17
  6. package/esm2015/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.js +62 -16
  7. package/esm2015/lib/components/ndf-filters/custom-components/index.js +2 -1
  8. package/esm2015/lib/components/ndf-filters/models/base-field-config.js +1 -1
  9. package/esm2015/lib/components/ndf-filters/ndf-filters-panel.module.js +8 -9
  10. package/esm2015/lib/components/ndf-filters/pipes/check-condition.pipe.js +3 -3
  11. package/esm2015/lib/components/ndf-filters/services/dynamic-component-loader.service.js +6 -1
  12. package/esm2015/lib/components/ndf-tabs/component/ndf-tabs.component.js +2 -2
  13. package/esm2015/lib/components/reports/ndf-reports/base/base-custom-report.js +41 -0
  14. package/esm2015/lib/components/reports/ndf-reports/base/base-report.js +3 -2
  15. package/esm2015/lib/components/reports/ndf-reports/base/index.js +5 -0
  16. package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.component.js +1 -1
  17. package/esm2015/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.js +49 -0
  18. package/esm2015/lib/components/reports/ndf-reports/components/digit-report/digit-report.component.js +1 -1
  19. package/esm2015/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.js +2 -2
  20. package/esm2015/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.js +2 -2
  21. package/esm2015/lib/components/reports/ndf-reports/components/index.js +2 -1
  22. package/esm2015/lib/components/reports/ndf-reports/constants/charts-types.js +2 -1
  23. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.js +1 -1
  24. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +5 -2
  25. package/esm2015/lib/components/reports/ndf-reports/models/base.js +1 -1
  26. package/esm2015/lib/components/reports/ndf-reports/models/custom-definition.js +2 -0
  27. package/esm2015/lib/components/reports/ndf-reports/models/details.js +1 -1
  28. package/esm2015/lib/components/reports/ndf-reports/models/dialog-data.js +1 -1
  29. package/esm2015/lib/components/reports/ndf-reports/models/dynamic-line.js +1 -1
  30. package/esm2015/lib/components/reports/ndf-reports/models/graph-definition.js +2 -0
  31. package/esm2015/lib/components/reports/ndf-reports/models/index.js +3 -2
  32. package/esm2015/lib/components/reports/ndf-reports/models/ndf-reports.config.js +1 -1
  33. package/esm2015/lib/components/reports/ndf-reports/models/report-config.js +1 -1
  34. package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +4 -3
  35. package/esm2015/lib/components/reports/ndf-reports/services/custom-reports-registry.service.js +132 -0
  36. package/esm2015/lib/components/reports/ndf-reports/services/index.js +2 -1
  37. package/esm2015/lib/components/reports/ndf-reports/services/report-config-mapper.service.js +8 -1
  38. package/esm2015/lib/components/reports/ndf-reports/utilities/reports-table.mapper.js +4 -3
  39. package/esm2015/lib/components/spell-checker-field/spell-checker-field.module.js +1 -1
  40. package/esm2015/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.js +32 -8
  41. package/esm2015/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.js +2 -2
  42. package/esm2015/lib/components/tables/ndf-table/models/table-config.js +1 -1
  43. package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo.dialog.js +7 -6
  44. package/esm2015/lib/shared/evaluator/evaluator.js +3 -2
  45. package/esm2015/lib/shared/evaluator/types.js +1 -1
  46. package/fesm2015/nuxeo-development-framework.js +644 -358
  47. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  48. package/lib/components/ndf-filters/containers/aggregation-field/aggregation-field.component.d.ts +0 -7
  49. package/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.d.ts +10 -3
  50. package/lib/components/ndf-filters/custom-components/index.d.ts +1 -0
  51. package/lib/components/ndf-filters/models/base-field-config.d.ts +2 -2
  52. package/lib/components/ndf-filters/ndf-filters-panel.module.d.ts +60 -60
  53. package/lib/components/ndf-filters/pipes/check-condition.pipe.d.ts +1 -1
  54. package/lib/components/ndf-filters/services/dynamic-component-loader.service.d.ts +1 -0
  55. package/lib/components/reports/ndf-reports/base/base-custom-report.d.ts +38 -0
  56. package/lib/components/reports/ndf-reports/base/index.d.ts +4 -0
  57. package/lib/components/reports/ndf-reports/components/_parts/report-actions/report-actions.component.d.ts +1 -0
  58. package/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.d.ts +14 -0
  59. package/lib/components/reports/ndf-reports/components/index.d.ts +1 -0
  60. package/lib/components/reports/ndf-reports/constants/charts-types.d.ts +1 -0
  61. package/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.d.ts +1 -0
  62. package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +1 -0
  63. package/lib/components/reports/ndf-reports/models/base.d.ts +6 -4
  64. package/lib/components/reports/ndf-reports/models/custom-definition.d.ts +11 -0
  65. package/lib/components/reports/ndf-reports/models/details.d.ts +6 -1
  66. package/lib/components/reports/ndf-reports/models/dialog-data.d.ts +1 -1
  67. package/lib/components/reports/ndf-reports/models/dynamic-line.d.ts +1 -1
  68. package/lib/components/reports/ndf-reports/models/index.d.ts +2 -1
  69. package/lib/components/reports/ndf-reports/models/ndf-reports.config.d.ts +3 -0
  70. package/lib/components/reports/ndf-reports/models/report-config.d.ts +3 -2
  71. package/lib/components/reports/ndf-reports/ndf-reports.module.d.ts +21 -20
  72. package/lib/components/reports/ndf-reports/services/custom-reports-registry.service.d.ts +83 -0
  73. package/lib/components/reports/ndf-reports/services/index.d.ts +1 -0
  74. package/lib/components/reports/ndf-reports/services/report-config-mapper.service.d.ts +6 -1
  75. package/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.d.ts +5 -1
  76. package/lib/components/tables/ndf-table/models/table-config.d.ts +5 -0
  77. package/lib/shared/evaluator/types.d.ts +3 -1
  78. package/package.json +1 -1
  79. package/esm2015/lib/components/reports/ndf-reports/models/graph.js +0 -2
  80. /package/lib/components/reports/ndf-reports/models/{graph.d.ts → graph-definition.d.ts} +0 -0
@@ -6,22 +6,24 @@ import { debounceTime, distinctUntilChanged, filter, map, startWith, takeUntil }
6
6
  import { AGGREGATION_FIELD_TYPES, FIELD_TYPE } from '../../constants';
7
7
  import { removeEmptyKeys } from '../../utility';
8
8
  import { BaseFiltersPanel } from './base-filters-panel';
9
+ import { Evaluator } from '../../../../shared';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "@ngx-translate/core";
11
- import * as i2 from "@angular/material/button";
12
- import * as i3 from "../predicate-field/predicate-field.component";
13
- import * as i4 from "../aggregation-field/aggregation-field.component";
14
- import * as i5 from "../custom-field/custom-field.component";
15
- import * as i6 from "@angular/forms";
16
- import * as i7 from "@angular/cdk/bidi";
17
- import * as i8 from "@angular/common";
18
- import * as i9 from "../../../../directive/permissions/permissions.directive";
19
- import * as i10 from "../../pipes/roles-filters.pipe";
20
- import * as i11 from "../../pipes/check-condition.pipe";
12
+ import * as i2 from "../../../../core/services";
13
+ import * as i3 from "@angular/material/button";
14
+ import * as i4 from "../predicate-field/predicate-field.component";
15
+ import * as i5 from "../aggregation-field/aggregation-field.component";
16
+ import * as i6 from "../custom-field/custom-field.component";
17
+ import * as i7 from "@angular/forms";
18
+ import * as i8 from "@angular/cdk/bidi";
19
+ import * as i9 from "@angular/common";
20
+ import * as i10 from "../../../../directive/permissions/permissions.directive";
21
+ import * as i11 from "../../pipes/roles-filters.pipe";
21
22
  export class FiltersPanelComponent extends BaseFiltersPanel {
22
- constructor(_translateService) {
23
+ constructor(_translateService, nuxeoService) {
23
24
  super();
24
25
  this._translateService = _translateService;
26
+ this.nuxeoService = nuxeoService;
25
27
  this.currentLang = this._translateService.currentLang;
26
28
  this.direction$ = this._translateService.onLangChange.pipe(startWith({ lang: this._translateService.currentLang }), map((lang) => {
27
29
  this.currentLang = lang.lang;
@@ -32,6 +34,7 @@ export class FiltersPanelComponent extends BaseFiltersPanel {
32
34
  this.filterChanged = new EventEmitter();
33
35
  this.fieldTypes = FIELD_TYPE;
34
36
  this.FieldRenderType = AGGREGATION_FIELD_TYPES;
37
+ this.visibleFields = {};
35
38
  this.formGroup = new FormGroup({});
36
39
  }
37
40
  set fields(vals) {
@@ -45,6 +48,9 @@ export class FiltersPanelComponent extends BaseFiltersPanel {
45
48
  }
46
49
  set activeQuery(obj) {
47
50
  this._activeQuerySub.next(obj);
51
+ if (obj) {
52
+ this._evaluateConditions();
53
+ }
48
54
  }
49
55
  trackByFieldKey(_, field) {
50
56
  var _a;
@@ -57,6 +63,13 @@ export class FiltersPanelComponent extends BaseFiltersPanel {
57
63
  ngOnInit() {
58
64
  this._handleFormGroupChanges();
59
65
  this._handelActiveQueryChange();
66
+ this._evaluateConditions();
67
+ }
68
+ ngOnChanges(changes) {
69
+ var _a, _b;
70
+ if (!((_a = changes === null || changes === void 0 ? void 0 : changes.fields) === null || _a === void 0 ? void 0 : _a.firstChange) || !((_b = changes === null || changes === void 0 ? void 0 : changes.aggregations) === null || _b === void 0 ? void 0 : _b.firstChange)) {
71
+ this._evaluateConditions();
72
+ }
60
73
  }
61
74
  resetFilters() {
62
75
  this.formGroup.reset({});
@@ -66,6 +79,7 @@ export class FiltersPanelComponent extends BaseFiltersPanel {
66
79
  return items.sort(({ config: { order: o1 } }, { config: { order: o2 } }) => (o1 !== null && o1 !== void 0 ? o1 : _defaultOrder) - (o2 !== null && o2 !== void 0 ? o2 : _defaultOrder));
67
80
  }
68
81
  _initFormGroup() {
82
+ this.visibleFields = {};
69
83
  this._removeControls();
70
84
  this._prepareFiltersForm();
71
85
  }
@@ -89,7 +103,10 @@ export class FiltersPanelComponent extends BaseFiltersPanel {
89
103
  }
90
104
  _handleFormGroupChanges() {
91
105
  this.formGroup.valueChanges
92
- .pipe(debounceTime(300), map((data) => removeEmptyKeys(data)), distinctUntilChanged((a, b) => _.isEqual(a, b)), takeUntil(this.destroy$))
106
+ .pipe(debounceTime(300), map((formValue) => {
107
+ const data = this._evaluateConditions(formValue);
108
+ return removeEmptyKeys(data);
109
+ }), distinctUntilChanged((a, b) => _.isEqual(a, b)), takeUntil(this.destroy$))
93
110
  .subscribe((res) => {
94
111
  this.filterChanged.emit(res);
95
112
  });
@@ -106,9 +123,38 @@ export class FiltersPanelComponent extends BaseFiltersPanel {
106
123
  this._patchActiveQuery(res);
107
124
  });
108
125
  }
126
+ _evaluateConditions(values = this.formGroup.getRawValue()) {
127
+ this.visibleFields = {};
128
+ this.fields.forEach((field) => {
129
+ var _a;
130
+ const fieldKey = field.config.fieldKey;
131
+ const condition = (_a = field.config) === null || _a === void 0 ? void 0 : _a.condition;
132
+ try {
133
+ const isVisible = !condition ||
134
+ Evaluator.evaluate(condition, _.cloneDeep({
135
+ aggregations: this.aggregations,
136
+ language: this.currentLang,
137
+ user: this.nuxeoService.nuxeoClient.user,
138
+ values: this.formGroup.getRawValue()
139
+ }));
140
+ this.visibleFields[fieldKey] = isVisible;
141
+ if (!isVisible) {
142
+ const control = this.formGroup.get(fieldKey);
143
+ if (!!(control === null || control === void 0 ? void 0 : control.value)) {
144
+ control.reset();
145
+ control.updateValueAndValidity({ emitEvent: false });
146
+ }
147
+ }
148
+ }
149
+ catch (e) {
150
+ console.error(`Error evaluating condition for field ${field.config.fieldKey}:`, e);
151
+ }
152
+ });
153
+ return this.formGroup.value;
154
+ }
109
155
  }
110
- FiltersPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FiltersPanelComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
111
- FiltersPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FiltersPanelComponent, selector: "app-filters-panel", inputs: { aggregations: "aggregations", fields: "fields", activeQuery: "activeQuery" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"formGroup\" class=\"filters-panel\" [dir]=\"direction$ | async\">\r\n\t<div class=\"reset-filter flex reset-container\">\r\n\t\t<button mat-stroked-button class=\"w-full\" (click)=\"resetFilters()\" [disabled]=\"!hasValues\">\r\n\t\t\t{{ 'BUTTONS.clearFilter' | translate }}\r\n\t\t</button>\r\n\t</div>\r\n\t<ng-container *ngFor=\"let field of fields | filterByRoles; trackBy: trackByFieldKey\">\r\n\t\t<ng-container *permission=\"{ name: field.config?.permission }\">\r\n\t\t\t<ng-container *ngIf=\"field.config?.condition | checkCondition: aggregations : currentLang \">\r\n\t\t\t\t<app-predicate-field\r\n\t\t\t\t\t*ngIf=\"field.type == fieldTypes.predicate\"\r\n\t\t\t\t\t[fieldConfig]=\"field.config\"\r\n\t\t\t\t\t[formControlName]=\"field.config.fieldKey\"\r\n\t\t\t\t></app-predicate-field>\r\n\t\t\t\t<app-aggregation-field\r\n\t\t\t\t\t*ngIf=\"field.type == fieldTypes.aggregation && !!aggregations\"\r\n\t\t\t\t\t[formControlName]=\"field.config.fieldKey\"\r\n\t\t\t\t\t[fieldConfig]=\"field.config\"\r\n\t\t\t\t\t[aggregation]=\"aggregations[field.config.aggregation]\"\r\n\t\t\t\t\t[contentTemplate]=\"getContentTemplate(field.config.render.type)\"\r\n\t\t\t\t></app-aggregation-field>\r\n\t\t\t\t<app-custom-field\r\n\t\t\t\t\t*ngIf=\"field.type == fieldTypes.custom\"\r\n\t\t\t\t\t[fieldConfig]=\"field.config\"\r\n\t\t\t\t\t[formControlName]=\"field.config.fieldKey\"\r\n\t\t\t\t\t[aggregations]=\"aggregations\"\r\n\t\t\t\t></app-custom-field>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n</div>\r\n", styles: [".filters-panel{display:var(--filters-panel-display, flex);flex-direction:var(--filters-panel-direction, column);grid-gap:var(--filters-panel-gap, .5rem);gap:var(--filters-panel-gap, .5rem);flex-wrap:var(--filters-panel-wrap, wrap);max-width:100%;box-sizing:border-box}.aggregation-field{padding-inline:var(--af-padding-inline, var(--ff-padding-inline, .5rem));padding-block:var(--af-padding-block, var(--ff-padding-block, 0));max-width:100%}.reset-container{padding:.5rem;position:sticky;top:-8px;z-index:4;background:var(--reset-filter-panel-bg, #fff)}.reset-container button.mat-button-base{background-color:var(--reset-filter-panel-btn-bg, transparent);border-color:var(--reset-filter-panel-btn-bg, #e2e8f0);color:var(--reset-filter-panel-btn-color, currentColor)}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.PredicateFieldComponent, selector: "app-predicate-field" }, { type: i4.AggregationFieldComponent, selector: "app-aggregation-field", inputs: ["aggregation", "contentTemplate"] }, { type: i5.CustomFieldComponent, selector: "app-custom-field", inputs: ["aggregations"] }], directives: [{ type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "async": i8.AsyncPipe, "translate": i1.TranslatePipe, "filterByRoles": i10.FiltersByRolesPipe, "checkCondition": i11.CheckConditionPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
156
+ FiltersPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FiltersPanelComponent, deps: [{ token: i1.TranslateService }, { token: i2.NuxeoService }], target: i0.ɵɵFactoryTarget.Component });
157
+ FiltersPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FiltersPanelComponent, selector: "app-filters-panel", inputs: { aggregations: "aggregations", fields: "fields", activeQuery: "activeQuery" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"formGroup\" class=\"filters-panel\" [dir]=\"direction$ | async\">\r\n\t<div class=\"reset-filter flex reset-container\">\r\n\t\t<button mat-stroked-button class=\"w-full\" (click)=\"resetFilters()\" [disabled]=\"!hasValues\">\r\n\t\t\t{{ 'BUTTONS.clearFilter' | translate }}\r\n\t\t</button>\r\n\t</div>\r\n\t<ng-container *ngFor=\"let field of fields | filterByRoles; trackBy: trackByFieldKey\">\r\n\t\t<ng-container *permission=\"{ name: field.config?.permission }\">\r\n\t\t\t<ng-container *ngIf=\"visibleFields[field.config.fieldKey]\">\r\n\t\t\t\t<app-predicate-field\r\n\t\t\t\t\t*ngIf=\"field.type == fieldTypes.predicate\"\r\n\t\t\t\t\t[fieldConfig]=\"field.config\"\r\n\t\t\t\t\t[formControlName]=\"field.config.fieldKey\"\r\n\t\t\t\t></app-predicate-field>\r\n\t\t\t\t<app-aggregation-field\r\n\t\t\t\t\t*ngIf=\"field.type == fieldTypes.aggregation && !!aggregations\"\r\n\t\t\t\t\t[formControlName]=\"field.config.fieldKey\"\r\n\t\t\t\t\t[fieldConfig]=\"field.config\"\r\n\t\t\t\t\t[aggregation]=\"aggregations[field.config.aggregation]\"\r\n\t\t\t\t\t[contentTemplate]=\"getContentTemplate(field.config.render.type)\"\r\n\t\t\t\t></app-aggregation-field>\r\n\t\t\t\t<app-custom-field\r\n\t\t\t\t\t*ngIf=\"field.type == fieldTypes.custom\"\r\n\t\t\t\t\t[fieldConfig]=\"field.config\"\r\n\t\t\t\t\t[formControlName]=\"field.config.fieldKey\"\r\n\t\t\t\t\t[aggregations]=\"aggregations\"\r\n\t\t\t\t></app-custom-field>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n</div>\r\n", styles: [".filters-panel{display:var(--filters-panel-display, flex);flex-direction:var(--filters-panel-direction, column);grid-gap:var(--filters-panel-gap, .5rem);gap:var(--filters-panel-gap, .5rem);flex-wrap:var(--filters-panel-wrap, wrap);max-width:100%;box-sizing:border-box}.aggregation-field{padding-inline:var(--af-padding-inline, var(--ff-padding-inline, .5rem));padding-block:var(--af-padding-block, var(--ff-padding-block, 0));max-width:100%}.reset-container{padding:.5rem;position:sticky;top:-8px;z-index:4;background:var(--reset-filter-panel-bg, #fff)}.reset-container button.mat-button-base{background-color:var(--reset-filter-panel-btn-bg, transparent);border-color:var(--reset-filter-panel-btn-bg, #e2e8f0);color:var(--reset-filter-panel-btn-color, currentColor)}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.PredicateFieldComponent, selector: "app-predicate-field" }, { type: i5.AggregationFieldComponent, selector: "app-aggregation-field", inputs: ["aggregation", "contentTemplate"] }, { type: i6.CustomFieldComponent, selector: "app-custom-field", inputs: ["aggregations"] }], directives: [{ type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "async": i9.AsyncPipe, "translate": i1.TranslatePipe, "filterByRoles": i11.FiltersByRolesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
112
158
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FiltersPanelComponent, decorators: [{
113
159
  type: Component,
114
160
  args: [{
@@ -117,7 +163,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
117
163
  styleUrls: ['./filters-panel.component.scss'],
118
164
  changeDetection: ChangeDetectionStrategy.OnPush
119
165
  }]
120
- }], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { aggregations: [{
166
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.NuxeoService }]; }, propDecorators: { aggregations: [{
121
167
  type: Input
122
168
  }], fields: [{
123
169
  type: Input
@@ -126,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
126
172
  }], filterChanged: [{
127
173
  type: Output
128
174
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL2NvbnRhaW5lcnMvZmlsdGVycy1wYW5lbC9maWx0ZXJzLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbmRmLWZpbHRlcnMvY29udGFpbmVycy9maWx0ZXJzLXBhbmVsL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFVeEQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQXNDMUQsWUFBb0IsaUJB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QUFNO2lCQUMvQzt1R0FZUyxZQUFZO3NCQUFwQixLQUFLO2dCQUtPLE1BQU07c0JBQWxCLEtBQUs7Z0JBV08sV0FBVztzQkFBdkIsS0FBSztnQkFJSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQUdHUkVHQVRJT05fRklFTERfVFlQRVMsIEZJRUxEX1RZUEUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBBZ2dyZWdhdGlvblJlc3BvbnNlLCBGaWVsZENvbmZpZ01vZGVsLCBGb3JtUXVlcnlNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IHJlbW92ZUVtcHR5S2V5cyB9IGZyb20gJy4uLy4uL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBCYXNlRmlsdGVyc1BhbmVsIH0gZnJvbSAnLi9iYXNlLWZpbHRlcnMtcGFuZWwnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWZpbHRlcnMtcGFuZWwnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9maWx0ZXJzLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9maWx0ZXJzLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbHRlcnNQYW5lbENvbXBvbmVudCBleHRlbmRzIEJhc2VGaWx0ZXJzUGFuZWwgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdGN1cnJlbnRMYW5nID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcclxuXHJcblx0ZGlyZWN0aW9uJDogT2JzZXJ2YWJsZTxEaXJlY3Rpb24+ID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2UucGlwZShcclxuXHRcdHN0YXJ0V2l0aCh7IGxhbmc6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcgfSksXHJcblx0XHRtYXAoKGxhbmcpID0+IHtcclxuXHRcdFx0dGhpcy5jdXJyZW50TGFuZyA9IGxhbmcubGFuZztcclxuXHRcdFx0cmV0dXJuIGxhbmcubGFuZyA9PT0gJ2FyJyA/ICdydGwnIDogJ2x0cic7XHJcblx0XHR9KVxyXG5cdCk7XHJcblxyXG5cdEBJbnB1dCgpIGFnZ3JlZ2F0aW9uczogUmVjb3JkPHN0cmluZywgQWdncmVnYXRpb25SZXNwb25zZT47XHJcblxyXG5cdHByaXZhdGUgX2ZpZWxkc1N1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmllbGRDb25maWdNb2RlbFtdPihbXSk7XHJcblx0cHJpdmF0ZSBfYWN0aXZlUXVlcnlTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1RdWVyeU1vZGVsIHwgbnVsbD4obnVsbCk7XHJcblxyXG5cdEBJbnB1dCgpIHNldCBmaWVsZHModmFsczogRmllbGRDb25maWdNb2RlbFtdKSB7XHJcblx0XHRpZiAodmFscykge1xyXG5cdFx0XHR0aGlzLl9maWVsZHNTdWIubmV4dCh0aGlzLl9zb3J0SXRlbXModmFscykpO1xyXG5cdFx0XHR0aGlzLl9pbml0Rm9ybUdyb3VwKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRnZXQgZmllbGRzKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2ZpZWxkc1N1Yi5nZXRWYWx1ZSgpO1xyXG5cdH1cclxuXHJcblx0QElucHV0KCkgc2V0IGFjdGl2ZVF1ZXJ5KG9iajogRm9ybVF1ZXJ5TW9kZWwpIHtcclxuXHRcdHRoaXMuX2FjdGl2ZVF1ZXJ5U3ViLm5leHQob2JqKTtcclxuXHR9XHJcblxyXG5cdEBPdXRwdXQoKSBmaWx0ZXJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ8c3RyaW5nLCBhbnk+PigpO1xyXG5cclxuXHRmaWVsZFR5cGVzID0gRklFTERfVFlQRTtcclxuXHRGaWVsZFJlbmRlclR5cGUgPSBBR0dSRUdBVElPTl9GSUVMRF9UWVBFUztcclxuXHJcblx0Zm9ybUdyb3VwOiBGb3JtR3JvdXA7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuXHRcdHN1cGVyKCk7XHJcblx0XHR0aGlzLmZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cdH1cclxuXHJcblx0dHJhY2tCeUZpZWxkS2V5KF86IG51bWJlciwgZmllbGQ6IEZpZWxkQ29uZmlnTW9kZWwpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIGZpZWxkPy5jb25maWc/LmZpZWxkS2V5O1xyXG5cdH1cclxuXHJcblx0Z2V0IGhhc1ZhbHVlcygpIHtcclxuXHRcdHJldHVybiAoXHJcblx0XHRcdE9iamVjdC52YWx1ZXModGhpcy5mb3JtR3JvdXAudmFsdWUgfHwge30pLmZpbHRlcigodmFsdWUpID0+XHJcblx0XHRcdFx0QXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5sZW5ndGggPiAwIDogQm9vbGVhbih2YWx1ZSlcclxuXHRcdFx0KT8ubGVuZ3RoID4gMFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5faGFuZGxlRm9ybUdyb3VwQ2hhbmdlcygpO1xyXG5cdFx0dGhpcy5faGFuZGVsQWN0aXZlUXVlcnlDaGFuZ2UoKTtcclxuXHR9XHJcblxyXG5cdHJlc2V0RmlsdGVycygpIHtcclxuXHRcdHRoaXMuZm9ybUdyb3VwLnJlc2V0KHt9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3NvcnRJdGVtcyhpdGVtczogRmllbGRDb25maWdNb2RlbFtdKSB7XHJcblx0XHRjb25zdCBfZGVmYXVsdE9yZGVyID0gMDtcclxuXHRcdHJldHVybiBpdGVtcy5zb3J0KFxyXG5cdFx0XHQoeyBjb25maWc6IHsgb3JkZXI6IG8xIH0gfSwgeyBjb25maWc6IHsgb3JkZXI6IG8yIH0gfSkgPT4gKG8xID8/IF9kZWZhdWx0T3JkZXIpIC0gKG8yID8/IF9kZWZhdWx0T3JkZXIpXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfaW5pdEZvcm1Hcm91cCgpIHtcclxuXHRcdHRoaXMuX3JlbW92ZUNvbnRyb2xzKCk7XHJcblx0XHR0aGlzLl9wcmVwYXJlRmlsdGVyc0Zvcm0oKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3BhdGNoQWN0aXZlUXVlcnkob2JqOiBGb3JtUXVlcnlNb2RlbCkge1xyXG5cdFx0dGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShvYmoucXVlcnksIHtcclxuXHRcdFx0ZW1pdEV2ZW50OiBvYmo/LmVtaXRFdmVudCA/PyB0cnVlLFxyXG5cdFx0XHRvbmx5U2VsZjogb2JqPy5vbmx5U2VsZlxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9wcmVwYXJlRmlsdGVyc0Zvcm0oKSB7XHJcblx0XHRpZiAoIXRoaXMuZmllbGRzKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRmb3IgKGNvbnN0IGZpZWxkIG9mIHRoaXMuZmllbGRzKSB7XHJcblx0XHRcdGNvbnN0IGtleSA9IGZpZWxkLmNvbmZpZy5maWVsZEtleTtcclxuXHRcdFx0aWYgKCF0aGlzLmZvcm1Hcm91cC5jb250YWlucyhrZXkpKSB7XHJcblx0XHRcdFx0dGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbChrZXksIG5ldyBGb3JtQ29udHJvbChmaWVsZC5jb25maWcudmFsdWVzKSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2hhbmRsZUZvcm1Hcm91cENoYW5nZXMoKSB7XHJcblx0XHR0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXNcclxuXHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0ZGVib3VuY2VUaW1lKDMwMCksXHJcblx0XHRcdFx0bWFwKChkYXRhKSA9PiByZW1vdmVFbXB0eUtleXMoZGF0YSkpLFxyXG5cdFx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBfLmlzRXF1YWwoYSwgYikpLFxyXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZmlsdGVyQ2hhbmdlZC5lbWl0KHJlcyk7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcmVtb3ZlQ29udHJvbHMoKSB7XHJcblx0XHRPYmplY3Qua2V5cyh0aGlzLmZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcblx0XHRcdHRoaXMuZm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woa2V5KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfaGFuZGVsQWN0aXZlUXVlcnlDaGFuZ2UoKSB7XHJcblx0XHR0aGlzLl9hY3RpdmVRdWVyeVN1YlxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRmaWx0ZXIoKG9iaikgPT4gISFvYmo/LnF1ZXJ5KSxcclxuXHRcdFx0XHR0YWtlVW50aWwodGhpcy5kZXN0cm95JClcclxuXHRcdFx0KVxyXG5cdFx0XHQuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHR0aGlzLl9wYXRjaEFjdGl2ZVF1ZXJ5KHJlcyk7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgY2xhc3M9XCJmaWx0ZXJzLXBhbmVsXCIgW2Rpcl09XCJkaXJlY3Rpb24kIHwgYXN5bmNcIj5cclxuXHQ8ZGl2IGNsYXNzPVwicmVzZXQtZmlsdGVyIGZsZXggcmVzZXQtY29udGFpbmVyXCI+XHJcblx0XHQ8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInctZnVsbFwiIChjbGljayk9XCJyZXNldEZpbHRlcnMoKVwiIFtkaXNhYmxlZF09XCIhaGFzVmFsdWVzXCI+XHJcblx0XHRcdHt7ICdCVVRUT05TLmNsZWFyRmlsdGVyJyB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0PC9idXR0b24+XHJcblx0PC9kaXY+XHJcblx0PG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmllbGRzIHwgZmlsdGVyQnlSb2xlczsgdHJhY2tCeTogdHJhY2tCeUZpZWxkS2V5XCI+XHJcblx0XHQ8bmctY29udGFpbmVyICpwZXJtaXNzaW9uPVwieyBuYW1lOiBmaWVsZC5jb25maWc/LnBlcm1pc3Npb24gfVwiPlxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGQuY29uZmlnPy5jb25kaXRpb24gfCBjaGVja0NvbmRpdGlvbjogYWdncmVnYXRpb25zIDogY3VycmVudExhbmcgXCI+XHJcblx0XHRcdFx0PGFwcC1wcmVkaWNhdGUtZmllbGRcclxuXHRcdFx0XHRcdCpuZ0lmPVwiZmllbGQudHlwZSA9PSBmaWVsZFR5cGVzLnByZWRpY2F0ZVwiXHJcblx0XHRcdFx0XHRbZmllbGRDb25maWddPVwiZmllbGQuY29uZmlnXCJcclxuXHRcdFx0XHRcdFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQuY29uZmlnLmZpZWxkS2V5XCJcclxuXHRcdFx0XHQ+PC9hcHAtcHJlZGljYXRlLWZpZWxkPlxyXG5cdFx0XHRcdDxhcHAtYWdncmVnYXRpb24tZmllbGRcclxuXHRcdFx0XHRcdCpuZ0lmPVwiZmllbGQudHlwZSA9PSBmaWVsZFR5cGVzLmFnZ3JlZ2F0aW9uICYmICEhYWdncmVnYXRpb25zXCJcclxuXHRcdFx0XHRcdFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQuY29uZmlnLmZpZWxkS2V5XCJcclxuXHRcdFx0XHRcdFtmaWVsZENvbmZpZ109XCJmaWVsZC5jb25maWdcIlxyXG5cdFx0XHRcdFx0W2FnZ3JlZ2F0aW9uXT1cImFnZ3JlZ2F0aW9uc1tmaWVsZC5jb25maWcuYWdncmVnYXRpb25dXCJcclxuXHRcdFx0XHRcdFtjb250ZW50VGVtcGxhdGVdPVwiZ2V0Q29udGVudFRlbXBsYXRlKGZpZWxkLmNvbmZpZy5yZW5kZXIudHlwZSlcIlxyXG5cdFx0XHRcdD48L2FwcC1hZ2dyZWdhdGlvbi1maWVsZD5cclxuXHRcdFx0XHQ8YXBwLWN1c3RvbS1maWVsZFxyXG5cdFx0XHRcdFx0Km5nSWY9XCJmaWVsZC50eXBlID09IGZpZWxkVHlwZXMuY3VzdG9tXCJcclxuXHRcdFx0XHRcdFtmaWVsZENvbmZpZ109XCJmaWVsZC5jb25maWdcIlxyXG5cdFx0XHRcdFx0W2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5jb25maWcuZmllbGRLZXlcIlxyXG5cdFx0XHRcdFx0W2FnZ3JlZ2F0aW9uc109XCJhZ2dyZWdhdGlvbnNcIlxyXG5cdFx0XHRcdD48L2FwcC1jdXN0b20tZmllbGQ+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0PC9uZy1jb250YWluZXI+XHJcblx0PC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL2NvbnRhaW5lcnMvZmlsdGVycy1wYW5lbC9maWx0ZXJzLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbmRmLWZpbHRlcnMvY29udGFpbmVycy9maWx0ZXJzLXBhbmVsL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBQzVHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVMvQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZ0JBQWdCO0lBMkMxRCxZQUNTLGlCQUFtQyxFQUNwQyxZQUEwQjtRQUVqQyxLQUFLLEVBQUUsQ0FBQztRQUhBLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUE1Q2xDLGdCQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQztRQUVqRCxlQUFVLEdBQTBCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUMzRSxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQ3ZELEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUNGLENBQUM7UUFJTSxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQXdCLElBQUksQ0FBQyxDQUFDO1FBb0JqRSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBRWxFLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFDeEIsb0JBQWUsR0FBRyx1QkFBdUIsQ0FBQztRQUkxQyxrQkFBYSxHQUErQixFQUFFLENBQUM7UUFPOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBakNELElBQWEsTUFBTSxDQUFDLElBQXdCO1FBQzNDLElBQUksSUFBSSxFQUFFO1lBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN0QjtJQUNGLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQWEsV0FBVyxDQUFDLEdBQW1CO1FBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksR0FBRyxFQUFFO1lBQ1IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDM0I7SUFDRixDQUFDO0lBbUJELGVBQWUsQ0FBQyxDQUFTLEVBQUUsS0FBdUI7O1FBQ2pELE9BQU8sTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsTUFBTSwwQ0FBRSxRQUFRLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksU0FBUzs7UUFDWixPQUFPLENBQ04sQ0FBQSxNQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDMUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FDeEQsMENBQUUsTUFBTSxJQUFHLENBQUMsQ0FDYixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDUCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCOztRQUNqQyxJQUFJLENBQUMsQ0FBQSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLDBDQUFFLFdBQVcsQ0FBQSxJQUFJLENBQUMsQ0FBQSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxZQUFZLDBDQUFFLFdBQVcsQ0FBQSxFQUFFO1lBQ3pFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQzNCO0lBQ0YsQ0FBQztJQUVELFlBQVk7UUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQXlCO1FBQzNDLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN4QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2hCLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsYUFBRixFQUFFLGNBQUYsRUFBRSxHQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxhQUFGLEVBQUUsY0FBRixFQUFFLEdBQUksYUFBYSxDQUFDLENBQ3ZHLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEdBQW1COztRQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFO1lBQ3BDLFNBQVMsRUFBRSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxTQUFTLG1DQUFJLElBQUk7WUFDakMsUUFBUSxFQUFFLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRO1NBQ3ZCLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxtQkFBbUI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDakIsT0FBTztTQUNQO1FBRUQsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUNyRTtTQUNEO0lBQ0YsQ0FBQztJQUVPLHVCQUF1QjtRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVk7YUFDekIsSUFBSSxDQUNKLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDakIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxFQUNGLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDL0MsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDeEI7YUFDQSxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlO1FBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyx3QkFBd0I7UUFDL0IsSUFBSSxDQUFDLGVBQWU7YUFDbEIsSUFBSSxDQUNKLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEtBQUssQ0FBQSxDQUFDLEVBQzdCLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3hCO2FBQ0EsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRTtRQUNoRSxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFOztZQUM3QixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUN2QyxNQUFNLFNBQVMsR0FBRyxNQUFBLEtBQUssQ0FBQyxNQUFNLDBDQUFFLFNBQVMsQ0FBQztZQUMxQyxJQUFJO2dCQUNILE1BQU0sU0FBUyxHQUNkLENBQUMsU0FBUztvQkFDVixTQUFTLENBQUMsUUFBUSxDQUNqQixTQUFTLEVBQ1QsQ0FBQyxDQUFDLFNBQVMsQ0FBQzt3QkFDWCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7d0JBQy9CLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVzt3QkFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUk7d0JBQ3hDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRTtxQkFDcEMsQ0FBQyxDQUNGLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUM7Z0JBRXpDLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ2YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQzdDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssQ0FBQSxFQUFFO3dCQUNyQixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQ2hCLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO3FCQUNyRDtpQkFDRDthQUNEO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNuRjtRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM3QixDQUFDOzttSEFqTFcscUJBQXFCO3VHQUFyQixxQkFBcUIsME9DN0JsQyw0L0NBK0JBOzRGREZhLHFCQUFxQjtrQkFOakMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixXQUFXLEVBQUUsZ0NBQWdDO29CQUM3QyxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztvQkFDN0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DO2tJQVlTLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS08sTUFBTTtzQkFBbEIsS0FBSztnQkFXTyxXQUFXO3NCQUF2QixLQUFLO2dCQU9JLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG5cdENvbXBvbmVudCxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5wdXQsXHJcblx0T25DaGFuZ2VzLFxyXG5cdE9uSW5pdCxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFHR1JFR0FUSU9OX0ZJRUxEX1RZUEVTLCBGSUVMRF9UWVBFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQWdncmVnYXRpb25SZXNwb25zZSwgRmllbGRDb25maWdNb2RlbCwgRm9ybVF1ZXJ5TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyByZW1vdmVFbXB0eUtleXMgfSBmcm9tICcuLi8uLi91dGlsaXR5JztcclxuaW1wb3J0IHsgQmFzZUZpbHRlcnNQYW5lbCB9IGZyb20gJy4vYmFzZS1maWx0ZXJzLXBhbmVsJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEV2YWx1YXRvciB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZCc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtZmlsdGVycy1wYW5lbCcsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc1BhbmVsQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZpbHRlcnNQYW5lbCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHRjdXJyZW50TGFuZyA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmc7XHJcblxyXG5cdGRpcmVjdGlvbiQ6IE9ic2VydmFibGU8RGlyZWN0aW9uPiA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnBpcGUoXHJcblx0XHRzdGFydFdpdGgoeyBsYW5nOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nIH0pLFxyXG5cdFx0bWFwKChsYW5nKSA9PiB7XHJcblx0XHRcdHRoaXMuY3VycmVudExhbmcgPSBsYW5nLmxhbmc7XHJcblx0XHRcdHJldHVybiBsYW5nLmxhbmcgPT09ICdhcicgPyAncnRsJyA6ICdsdHInO1xyXG5cdFx0fSlcclxuXHQpO1xyXG5cclxuXHRASW5wdXQoKSBhZ2dyZWdhdGlvbnM6IFJlY29yZDxzdHJpbmcsIEFnZ3JlZ2F0aW9uUmVzcG9uc2U+O1xyXG5cclxuXHRwcml2YXRlIF9maWVsZHNTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpZWxkQ29uZmlnTW9kZWxbXT4oW10pO1xyXG5cdHByaXZhdGUgX2FjdGl2ZVF1ZXJ5U3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtUXVlcnlNb2RlbCB8IG51bGw+KG51bGwpO1xyXG5cclxuXHRASW5wdXQoKSBzZXQgZmllbGRzKHZhbHM6IEZpZWxkQ29uZmlnTW9kZWxbXSkge1xyXG5cdFx0aWYgKHZhbHMpIHtcclxuXHRcdFx0dGhpcy5fZmllbGRzU3ViLm5leHQodGhpcy5fc29ydEl0ZW1zKHZhbHMpKTtcclxuXHRcdFx0dGhpcy5faW5pdEZvcm1Hcm91cCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Z2V0IGZpZWxkcygpIHtcclxuXHRcdHJldHVybiB0aGlzLl9maWVsZHNTdWIuZ2V0VmFsdWUoKTtcclxuXHR9XHJcblxyXG5cdEBJbnB1dCgpIHNldCBhY3RpdmVRdWVyeShvYmo6IEZvcm1RdWVyeU1vZGVsKSB7XHJcblx0XHR0aGlzLl9hY3RpdmVRdWVyeVN1Yi5uZXh0KG9iaik7XHJcblx0XHRpZiAob2JqKSB7XHJcblx0XHRcdHRoaXMuX2V2YWx1YXRlQ29uZGl0aW9ucygpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QE91dHB1dCgpIGZpbHRlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZDxzdHJpbmcsIGFueT4+KCk7XHJcblxyXG5cdGZpZWxkVHlwZXMgPSBGSUVMRF9UWVBFO1xyXG5cdEZpZWxkUmVuZGVyVHlwZSA9IEFHR1JFR0FUSU9OX0ZJRUxEX1RZUEVTO1xyXG5cclxuXHRmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuXHJcblx0dmlzaWJsZUZpZWxkczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG5cdFx0cHVibGljIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlXHJcblx0KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0dGhpcy5mb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHR9XHJcblxyXG5cdHRyYWNrQnlGaWVsZEtleShfOiBudW1iZXIsIGZpZWxkOiBGaWVsZENvbmZpZ01vZGVsKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBmaWVsZD8uY29uZmlnPy5maWVsZEtleTtcclxuXHR9XHJcblxyXG5cdGdldCBoYXNWYWx1ZXMoKSB7XHJcblx0XHRyZXR1cm4gKFxyXG5cdFx0XHRPYmplY3QudmFsdWVzKHRoaXMuZm9ybUdyb3VwLnZhbHVlIHx8IHt9KS5maWx0ZXIoKHZhbHVlKSA9PlxyXG5cdFx0XHRcdEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUubGVuZ3RoID4gMCA6IEJvb2xlYW4odmFsdWUpXHJcblx0XHRcdCk/Lmxlbmd0aCA+IDBcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuX2hhbmRsZUZvcm1Hcm91cENoYW5nZXMoKTtcclxuXHRcdHRoaXMuX2hhbmRlbEFjdGl2ZVF1ZXJ5Q2hhbmdlKCk7XHJcblx0XHR0aGlzLl9ldmFsdWF0ZUNvbmRpdGlvbnMoKTtcclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHRcdGlmICghY2hhbmdlcz8uZmllbGRzPy5maXJzdENoYW5nZSB8fCAhY2hhbmdlcz8uYWdncmVnYXRpb25zPy5maXJzdENoYW5nZSkge1xyXG5cdFx0XHR0aGlzLl9ldmFsdWF0ZUNvbmRpdGlvbnMoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHJlc2V0RmlsdGVycygpIHtcclxuXHRcdHRoaXMuZm9ybUdyb3VwLnJlc2V0KHt9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3NvcnRJdGVtcyhpdGVtczogRmllbGRDb25maWdNb2RlbFtdKSB7XHJcblx0XHRjb25zdCBfZGVmYXVsdE9yZGVyID0gMDtcclxuXHRcdHJldHVybiBpdGVtcy5zb3J0KFxyXG5cdFx0XHQoeyBjb25maWc6IHsgb3JkZXI6IG8xIH0gfSwgeyBjb25maWc6IHsgb3JkZXI6IG8yIH0gfSkgPT4gKG8xID8/IF9kZWZhdWx0T3JkZXIpIC0gKG8yID8/IF9kZWZhdWx0T3JkZXIpXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfaW5pdEZvcm1Hcm91cCgpIHtcclxuXHRcdHRoaXMudmlzaWJsZUZpZWxkcyA9IHt9O1xyXG5cdFx0dGhpcy5fcmVtb3ZlQ29udHJvbHMoKTtcclxuXHRcdHRoaXMuX3ByZXBhcmVGaWx0ZXJzRm9ybSgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcGF0Y2hBY3RpdmVRdWVyeShvYmo6IEZvcm1RdWVyeU1vZGVsKSB7XHJcblx0XHR0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKG9iai5xdWVyeSwge1xyXG5cdFx0XHRlbWl0RXZlbnQ6IG9iaj8uZW1pdEV2ZW50ID8/IHRydWUsXHJcblx0XHRcdG9ubHlTZWxmOiBvYmo/Lm9ubHlTZWxmXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3ByZXBhcmVGaWx0ZXJzRm9ybSgpIHtcclxuXHRcdGlmICghdGhpcy5maWVsZHMpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoY29uc3QgZmllbGQgb2YgdGhpcy5maWVsZHMpIHtcclxuXHRcdFx0Y29uc3Qga2V5ID0gZmllbGQuY29uZmlnLmZpZWxkS2V5O1xyXG5cdFx0XHRpZiAoIXRoaXMuZm9ybUdyb3VwLmNvbnRhaW5zKGtleSkpIHtcclxuXHRcdFx0XHR0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKGtleSwgbmV3IEZvcm1Db250cm9sKGZpZWxkLmNvbmZpZy52YWx1ZXMpKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfaGFuZGxlRm9ybUdyb3VwQ2hhbmdlcygpIHtcclxuXHRcdHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlc1xyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRkZWJvdW5jZVRpbWUoMzAwKSxcclxuXHRcdFx0XHRtYXAoKGZvcm1WYWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgZGF0YSA9IHRoaXMuX2V2YWx1YXRlQ29uZGl0aW9ucyhmb3JtVmFsdWUpO1xyXG5cdFx0XHRcdFx0cmV0dXJuIHJlbW92ZUVtcHR5S2V5cyhkYXRhKTtcclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gXy5pc0VxdWFsKGEsIGIpKSxcclxuXHRcdFx0XHR0YWtlVW50aWwodGhpcy5kZXN0cm95JClcclxuXHRcdFx0KVxyXG5cdFx0XHQuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHR0aGlzLmZpbHRlckNoYW5nZWQuZW1pdChyZXMpO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3JlbW92ZUNvbnRyb2xzKCkge1xyXG5cdFx0T2JqZWN0LmtleXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHR0aGlzLmZvcm1Hcm91cC5yZW1vdmVDb250cm9sKGtleSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2hhbmRlbEFjdGl2ZVF1ZXJ5Q2hhbmdlKCkge1xyXG5cdFx0dGhpcy5fYWN0aXZlUXVlcnlTdWJcclxuXHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0ZmlsdGVyKChvYmopID0+ICEhb2JqPy5xdWVyeSksXHJcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcblx0XHRcdClcclxuXHRcdFx0LnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5fcGF0Y2hBY3RpdmVRdWVyeShyZXMpO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2V2YWx1YXRlQ29uZGl0aW9ucyh2YWx1ZXMgPSB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpKSB7XHJcblx0XHR0aGlzLnZpc2libGVGaWVsZHMgPSB7fTtcclxuXHRcdHRoaXMuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcblx0XHRcdGNvbnN0IGZpZWxkS2V5ID0gZmllbGQuY29uZmlnLmZpZWxkS2V5O1xyXG5cdFx0XHRjb25zdCBjb25kaXRpb24gPSBmaWVsZC5jb25maWc/LmNvbmRpdGlvbjtcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRjb25zdCBpc1Zpc2libGUgPVxyXG5cdFx0XHRcdFx0IWNvbmRpdGlvbiB8fFxyXG5cdFx0XHRcdFx0RXZhbHVhdG9yLmV2YWx1YXRlKFxyXG5cdFx0XHRcdFx0XHRjb25kaXRpb24sXHJcblx0XHRcdFx0XHRcdF8uY2xvbmVEZWVwKHtcclxuXHRcdFx0XHRcdFx0XHRhZ2dyZWdhdGlvbnM6IHRoaXMuYWdncmVnYXRpb25zLFxyXG5cdFx0XHRcdFx0XHRcdGxhbmd1YWdlOiB0aGlzLmN1cnJlbnRMYW5nLFxyXG5cdFx0XHRcdFx0XHRcdHVzZXI6IHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXIsXHJcblx0XHRcdFx0XHRcdFx0dmFsdWVzOiB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdHRoaXMudmlzaWJsZUZpZWxkc1tmaWVsZEtleV0gPSBpc1Zpc2libGU7XHJcblxyXG5cdFx0XHRcdGlmICghaXNWaXNpYmxlKSB7XHJcblx0XHRcdFx0XHRjb25zdCBjb250cm9sID0gdGhpcy5mb3JtR3JvdXAuZ2V0KGZpZWxkS2V5KTtcclxuXHRcdFx0XHRcdGlmICghIWNvbnRyb2w/LnZhbHVlKSB7XHJcblx0XHRcdFx0XHRcdGNvbnRyb2wucmVzZXQoKTtcclxuXHRcdFx0XHRcdFx0Y29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKGBFcnJvciBldmFsdWF0aW5nIGNvbmRpdGlvbiBmb3IgZmllbGQgJHtmaWVsZC5jb25maWcuZmllbGRLZXl9OmAsIGUpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRyZXR1cm4gdGhpcy5mb3JtR3JvdXAudmFsdWU7XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBjbGFzcz1cImZpbHRlcnMtcGFuZWxcIiBbZGlyXT1cImRpcmVjdGlvbiQgfCBhc3luY1wiPlxyXG5cdDxkaXYgY2xhc3M9XCJyZXNldC1maWx0ZXIgZmxleCByZXNldC1jb250YWluZXJcIj5cclxuXHRcdDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidy1mdWxsXCIgKGNsaWNrKT1cInJlc2V0RmlsdGVycygpXCIgW2Rpc2FibGVkXT1cIiFoYXNWYWx1ZXNcIj5cclxuXHRcdFx0e3sgJ0JVVFRPTlMuY2xlYXJGaWx0ZXInIHwgdHJhbnNsYXRlIH19XHJcblx0XHQ8L2J1dHRvbj5cclxuXHQ8L2Rpdj5cclxuXHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmaWVsZHMgfCBmaWx0ZXJCeVJvbGVzOyB0cmFja0J5OiB0cmFja0J5RmllbGRLZXlcIj5cclxuXHRcdDxuZy1jb250YWluZXIgKnBlcm1pc3Npb249XCJ7IG5hbWU6IGZpZWxkLmNvbmZpZz8ucGVybWlzc2lvbiB9XCI+XHJcblx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJ2aXNpYmxlRmllbGRzW2ZpZWxkLmNvbmZpZy5maWVsZEtleV1cIj5cclxuXHRcdFx0XHQ8YXBwLXByZWRpY2F0ZS1maWVsZFxyXG5cdFx0XHRcdFx0Km5nSWY9XCJmaWVsZC50eXBlID09IGZpZWxkVHlwZXMucHJlZGljYXRlXCJcclxuXHRcdFx0XHRcdFtmaWVsZENvbmZpZ109XCJmaWVsZC5jb25maWdcIlxyXG5cdFx0XHRcdFx0W2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5jb25maWcuZmllbGRLZXlcIlxyXG5cdFx0XHRcdD48L2FwcC1wcmVkaWNhdGUtZmllbGQ+XHJcblx0XHRcdFx0PGFwcC1hZ2dyZWdhdGlvbi1maWVsZFxyXG5cdFx0XHRcdFx0Km5nSWY9XCJmaWVsZC50eXBlID09IGZpZWxkVHlwZXMuYWdncmVnYXRpb24gJiYgISFhZ2dyZWdhdGlvbnNcIlxyXG5cdFx0XHRcdFx0W2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5jb25maWcuZmllbGRLZXlcIlxyXG5cdFx0XHRcdFx0W2ZpZWxkQ29uZmlnXT1cImZpZWxkLmNvbmZpZ1wiXHJcblx0XHRcdFx0XHRbYWdncmVnYXRpb25dPVwiYWdncmVnYXRpb25zW2ZpZWxkLmNvbmZpZy5hZ2dyZWdhdGlvbl1cIlxyXG5cdFx0XHRcdFx0W2NvbnRlbnRUZW1wbGF0ZV09XCJnZXRDb250ZW50VGVtcGxhdGUoZmllbGQuY29uZmlnLnJlbmRlci50eXBlKVwiXHJcblx0XHRcdFx0PjwvYXBwLWFnZ3JlZ2F0aW9uLWZpZWxkPlxyXG5cdFx0XHRcdDxhcHAtY3VzdG9tLWZpZWxkXHJcblx0XHRcdFx0XHQqbmdJZj1cImZpZWxkLnR5cGUgPT0gZmllbGRUeXBlcy5jdXN0b21cIlxyXG5cdFx0XHRcdFx0W2ZpZWxkQ29uZmlnXT1cImZpZWxkLmNvbmZpZ1wiXHJcblx0XHRcdFx0XHRbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmNvbmZpZy5maWVsZEtleVwiXHJcblx0XHRcdFx0XHRbYWdncmVnYXRpb25zXT1cImFnZ3JlZ2F0aW9uc1wiXHJcblx0XHRcdFx0PjwvYXBwLWN1c3RvbS1maWVsZD5cclxuXHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,3 +1,4 @@
1
1
  export * from './active-user-switch/active-user-switch.component';
2
2
  export * from './aggregation-group/map-aggregation-config';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL2N1c3RvbS1jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbURBQW1ELENBQUM7QUFFbEUsY0FBYyw0Q0FBNEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWN0aXZlLXVzZXItc3dpdGNoL2FjdGl2ZS11c2VyLXN3aXRjaC5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9hZ2dyZWdhdGlvbi1ncm91cC9tYXAtYWdncmVnYXRpb24tY29uZmlnJztcclxuIl19
3
+ export * from './aggregation-group/aggregation-group.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL2N1c3RvbS1jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbURBQW1ELENBQUM7QUFFbEUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGlEQUFpRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3RpdmUtdXNlci1zd2l0Y2gvYWN0aXZlLXVzZXItc3dpdGNoLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2FnZ3JlZ2F0aW9uLWdyb3VwL21hcC1hZ2dyZWdhdGlvbi1jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FnZ3JlZ2F0aW9uLWdyb3VwL2FnZ3JlZ2F0aW9uLWdyb3VwLmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWVsZC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL21vZGVscy9iYXNlLWZpZWxkLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJwb2xhdGVTdHJpbmcgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZXZhbHVhdG9yJztcclxuaW1wb3J0IHsgIFRyYW5zbGF0ZUtleSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb21wYXJpc29uT3BlcmF0b3IgfSBmcm9tICcuL3R5cGVzLWhlbHBlcic7XHJcblxyXG5leHBvcnQgdHlwZSBCYXNlRmllbGRDb25maWcgPSB7XHJcblx0bGFiZWw6IFRyYW5zbGF0ZUtleTtcclxuXHRmaWVsZEtleTogc3RyaW5nO1xyXG5cdHZhbHVlcz86IHVua25vd247XHJcblx0cHJlZml4Pzogc3RyaW5nO1xyXG5cdG9yZGVyPzogbnVtYmVyO1xyXG5cdG9wZXJhdG9yPzogQ29tcGFyaXNvbk9wZXJhdG9yO1xyXG5cdHZhbHVlVHlwZTogJ3ZhbHVlT2JqZWN0JyB8ICdwcm9wZXJ0eSc7XHJcblx0dmlzaWJsZT86IGJvb2xlYW47XHJcblx0cm9sZXM/OiBzdHJpbmdbXTtcclxuXHRwZXJtaXNzaW9uPzogc3RyaW5nO1xyXG5cdGNvbmRpdGlvbj86IEludGVycG9sYXRlU3RyaW5nO1xyXG59O1xyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWVsZC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL21vZGVscy9iYXNlLWZpZWxkLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZhbHVhdGVkU3RyaW5nLCBJbnRlcnBvbGF0ZVN0cmluZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9ldmFsdWF0b3InO1xyXG5pbXBvcnQgeyAgVHJhbnNsYXRlS2V5IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscyc7XHJcbmltcG9ydCB7IENvbXBhcmlzb25PcGVyYXRvciB9IGZyb20gJy4vdHlwZXMtaGVscGVyJztcclxuXHJcbmV4cG9ydCB0eXBlIEJhc2VGaWVsZENvbmZpZyA9IHtcclxuXHRsYWJlbDogVHJhbnNsYXRlS2V5O1xyXG5cdGZpZWxkS2V5OiBzdHJpbmc7XHJcblx0dmFsdWVzPzogdW5rbm93bjtcclxuXHRwcmVmaXg/OiBzdHJpbmc7XHJcblx0b3JkZXI/OiBudW1iZXI7XHJcblx0b3BlcmF0b3I/OiBDb21wYXJpc29uT3BlcmF0b3I7XHJcblx0dmFsdWVUeXBlOiAndmFsdWVPYmplY3QnIHwgJ3Byb3BlcnR5JztcclxuXHR2aXNpYmxlPzogYm9vbGVhbjtcclxuXHRyb2xlcz86IHN0cmluZ1tdO1xyXG5cdHBlcm1pc3Npb24/OiBzdHJpbmc7XHJcblx0Y29uZGl0aW9uPzogRXZhbHVhdGVkU3RyaW5nO1xyXG59O1xyXG4iXX0=
@@ -15,7 +15,7 @@ import { AutocompleteTemplateDirective, CheckboxTemplateDirective, CustomTemplat
15
15
  import { MatDialogModule } from '@angular/material/dialog';
16
16
  import { MatMenuModule } from '@angular/material/menu';
17
17
  import { MatTooltipModule } from '@angular/material/tooltip';
18
- import { AggregationFieldModule, CustomFieldComponent, FiltersPanelComponent, PredicateFieldComponent, } from './containers';
18
+ import { AggregationFieldComponent, CustomFieldComponent, FiltersPanelComponent, PredicateFieldComponent, } from './containers';
19
19
  import { AutocompleteFilterPipe, CheckConditionPipe, FilterPipe, FiltersByRolesPipe, HashTranslateAsyncPipe, HashTranslatePipe, LocalizedLabelPipe, SanitizerPipe, SortListPipe, TooltipPipe, } from './pipes';
20
20
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
21
21
  import { NgxMaskModule } from 'ngx-mask';
@@ -23,16 +23,16 @@ import { DirectiveModule } from '../../directive/directive.module';
23
23
  import { NuxeoDialogModule } from '../../shared/components/nuxeo-dialog';
24
24
  import { DynamicFormModule } from '../dynamic-form/dynamic-form.module';
25
25
  import { NdfDatepickerModule } from '../ndf-datepicker';
26
- import { ActiveUserSwitchComponent, MapToAggregationConfigPipe, } from './custom-components';
27
- import { AggregationGroupComponent } from './custom-components/aggregation-group/aggregation-group.component';
28
- import { AggregationFieldService, DynamicComponentLoaderService, } from './services';
29
26
  import { AGGREGATION_FIELD_TYPES, CUSTOM_FIELD_TYPES, PREDICATE_FIELD_TYPES, } from './constants';
27
+ import { ActiveUserSwitchComponent, AggregationGroupComponent, MapToAggregationConfigPipe, } from './custom-components';
28
+ import { AggregationFieldService, DynamicComponentLoaderService, } from './services';
30
29
  import * as i0 from "@angular/core";
31
30
  import * as i1 from "./services";
32
31
  import * as i2 from "ngx-mask";
33
32
  const CONTAINERS = [
34
33
  FiltersPanelComponent,
35
34
  PredicateFieldComponent,
35
+ AggregationFieldComponent,
36
36
  CustomFieldComponent,
37
37
  ];
38
38
  const COMPONENTS = [
@@ -125,6 +125,7 @@ export class NdfFiltersPanelModule {
125
125
  NdfFiltersPanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfFiltersPanelModule, deps: [{ token: i1.DynamicComponentLoaderService }], target: i0.ɵɵFactoryTarget.NgModule });
126
126
  NdfFiltersPanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfFiltersPanelModule, declarations: [FiltersPanelComponent,
127
127
  PredicateFieldComponent,
128
+ AggregationFieldComponent,
128
129
  CustomFieldComponent, AggregationAutocompleteComponent,
129
130
  AggregationSelectComponent,
130
131
  AggregationCheckboxComponent,
@@ -178,9 +179,9 @@ NdfFiltersPanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", v
178
179
  DynamicFormModule,
179
180
  NuxeoDialogModule,
180
181
  DirectiveModule,
181
- NdfDatepickerModule,
182
- AggregationFieldModule, i2.NgxMaskModule], exports: [FiltersPanelComponent,
182
+ NdfDatepickerModule, i2.NgxMaskModule], exports: [FiltersPanelComponent,
183
183
  PredicateFieldComponent,
184
+ AggregationFieldComponent,
184
185
  CustomFieldComponent, AggregationAutocompleteComponent,
185
186
  AggregationSelectComponent,
186
187
  AggregationCheckboxComponent,
@@ -221,7 +222,6 @@ NdfFiltersPanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
221
222
  NuxeoDialogModule,
222
223
  DirectiveModule,
223
224
  NdfDatepickerModule,
224
- AggregationFieldModule,
225
225
  NgxMaskModule.forRoot({
226
226
  validation: true,
227
227
  }),
@@ -266,7 +266,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
266
266
  NuxeoDialogModule,
267
267
  DirectiveModule,
268
268
  NdfDatepickerModule,
269
- AggregationFieldModule,
270
269
  NgxMaskModule.forRoot({
271
270
  validation: true,
272
271
  }),
@@ -274,4 +273,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
274
273
  providers: [DynamicComponentLoaderService, AggregationFieldService],
275
274
  }]
276
275
  }], ctorParameters: function () { return [{ type: i1.DynamicComponentLoaderService }]; } });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLWZpbHRlcnMtcGFuZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtZmlsdGVycy9uZGYtZmlsdGVycy1wYW5lbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMsNEJBQTRCLEVBQzVCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLGdDQUFnQyxFQUNoQyw4QkFBOEIsRUFDOUIsd0JBQXdC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Q2pCLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLHNCQUFzQjtZQUN0QixhQUFhLENBQUMsT0FBTyxDQUFDO2dCQUNwQixVQUFVLEVBQUUsSUFBSTthQUNqQixDQUFDO1NBQ0g7NEZBR1UscUJBQXFCO2tCQTdDakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osVUFBVTt3QkFDVixVQUFVO3dCQUNWLGVBQWU7d0JBQ2YsVUFBVTt3QkFDVixLQUFLO3dCQUNMLEtBQUs7d0JBQ0wsY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsVUFBVTt3QkFDVixVQUFVO3dCQUNWLGVBQWU7d0JBQ2YsVUFBVTt3QkFDVixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixhQUFhLENBQUMsT0FBTyxDQUFDOzRCQUNwQixVQUFVLEVBQUUsSUFBSTt5QkFDakIsQ0FBQztxQkFDSDtvQkFDRCxTQUFTLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSx1QkFBdUIsQ0FBQztpQkFDcEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xyXG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEFnZ3JlZ2F0aW9uQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxyXG4gIEFnZ3JlZ2F0aW9uQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgQWdncmVnYXRpb25DdXN0b21Db21wb25lbnQsXHJcbiAgQWdncmVnYXRpb25EYXRlTGlzdENvbXBvbmVudCxcclxuICBBZ2dyZWdhdGlvblJhZGlvQ29tcG9uZW50LFxyXG4gIEFnZ3JlZ2F0aW9uU2VsZWN0Q29tcG9uZW50LFxyXG4gIEFnZ3JlZ2F0aW9uU3dpdGNoQ29tcG9uZW50LFxyXG4gIEZpZWxkSGVhZGVyQ29tcG9uZW50LFxyXG4gIEZpbHRlckF1dG9jb21wbGV0ZUlucHV0Q29tcG9uZW50LFxyXG4gIEZpbHRlckNvbGxhcHNlQ29udHJvbENvbXBvbmVudCxcclxuICBGaWx0ZXJEYXRlUmFuZ2VDb21wb25lbnQsXHJcbiAgRmlsdGVyRW1wdHlNZXNzYWdlQ29tcG9uZW50LFxyXG4gIEZpbHRlck9wdGlvbnNTb3J0Q29tcG9uZW50LFxyXG4gIEZpbHRlck9wdGlvblRleHRDb21wb25lbnQsXHJcbiAgRmlsdGVyU2VhcmNoSW5wdXRDb21wb25lbnQsXHJcbiAgSHRtbERpYWxvZ0NvbXBvbmVudCxcclxuICBQcmVkaWNhdGVEYXRlSW5wdXRDb21wb25lbnQsXHJcbiAgUHJlZGljYXRlVGV4dElucHV0Q29tcG9uZW50LFxyXG59IGZyb20gJy4vY29tcG9uZW50cyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEF1dG9jb21wbGV0ZVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIENoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgQ3VzdG9tVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgRGF0ZUxpc3RUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBEcm9wZG93bkxhYmVsVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgRHJvcGRvd25NdWx0aUxhYmVsVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgRHJvcGRvd25UZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBSYWRpb1RlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIFN3aXRjaFRlbXBsYXRlRGlyZWN0aXZlLFxyXG59IGZyb20gJy4vZGlyZWN0aXZlcyc7XHJcblxyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQWdncmVnYXRpb25GaWVsZE1vZHVsZSxcclxuICBDdXN0b21GaWVsZENvbXBvbmVudCxcclxuICBGaWx0ZXJzUGFuZWxDb21wb25lbnQsXHJcbiAgUHJlZGljYXRlRmllbGRDb21wb25lbnQsXHJcbn0gZnJvbSAnLi9jb250YWluZXJzJztcclxuaW1wb3J0IHtcclxuICBBdXRvY29tcGxldGVGaWx0ZXJQaXBlLFxyXG4gIENoZWNrQ29uZGl0aW9uUGlwZSxcclxuICBGaWx0ZXJQaXBlLFxyXG4gIEZpbHRlcnNCeVJvbGVzUGlwZSxcclxuICBIYXNoVHJhbnNsYXRlQXN5bmNQaXBlLFxyXG4gIEhhc2hUcmFuc2xhdGVQaXBlLFxyXG4gIExvY2FsaXplZExhYmVsUGlwZSxcclxuICBTYW5pdGl6ZXJQaXBlLFxyXG4gIFNvcnRMaXN0UGlwZSxcclxuICBUb29sdGlwUGlwZSxcclxufSBmcm9tICcuL3BpcGVzJztcclxuXHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBOZ3hNYXNrTW9kdWxlIH0gZnJvbSAnbmd4LW1hc2snO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmVNb2R1bGUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvZGlyZWN0aXZlLm1vZHVsZSc7XHJcbmltcG9ydCB7IE51eGVvRGlhbG9nTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nJztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1Nb2R1bGUgfSBmcm9tICcuLi9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5kZkRhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICcuLi9uZGYtZGF0ZXBpY2tlcic7XHJcblxyXG5pbXBvcnQge1xyXG4gIEFjdGl2ZVVzZXJTd2l0Y2hDb21wb25lbnQsXHJcbiAgTWFwVG9BZ2dyZWdhdGlvbkNvbmZpZ1BpcGUsXHJcbn0gZnJvbSAnLi9jdXN0b20tY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEFnZ3JlZ2F0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2N1c3RvbS1jb21wb25lbnRzL2FnZ3JlZ2F0aW9uLWdyb3VwL2FnZ3JlZ2F0aW9uLWdyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgQWdncmVnYXRpb25GaWVsZFNlcnZpY2UsXHJcbiAgRHluYW1pY0NvbXBvbmVudExvYWRlclNlcnZpY2UsXHJcbn0gZnJvbSAnLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgQUdHUkVHQVRJT05fRklFTERfVFlQRVMsXHJcbiAgQ1VTVE9NX0ZJRUxEX1RZUEVTLFxyXG4gIFBSRURJQ0FURV9GSUVMRF9UWVBFUyxcclxufSBmcm9tICcuL2NvbnN0YW50cyc7XHJcblxyXG5jb25zdCBDT05UQUlORVJTID0gW1xyXG4gIEZpbHRlcnNQYW5lbENvbXBvbmVudCxcclxuICBQcmVkaWNhdGVGaWVsZENvbXBvbmVudCxcclxuICBDdXN0b21GaWVsZENvbXBvbmVudCxcclxuXTtcclxuXHJcbmNvbnN0IENPTVBPTkVOVFMgPSBbXHJcbiAgQWdncmVnYXRpb25BdXRvY29tcGxldGVDb21wb25lbnQsXHJcbiAgQWdncmVnYXRpb25TZWxlY3RDb21wb25lbnQsXHJcbiAgQWdncmVnYXRpb25DaGVja2JveENvbXBvbmVudCxcclxuICBBZ2dyZWdhdGlvblN3aXRjaENvbXBvbmVudCxcclxuICBBZ2dyZWdhdGlvblJhZGlvQ29tcG9uZW50LFxyXG4gIEFnZ3JlZ2F0aW9uQ3VzdG9tQ29tcG9uZW50LFxyXG4gIEFnZ3JlZ2F0aW9uRGF0ZUxpc3RDb21wb25lbnQsXHJcbiAgUHJlZGljYXRlVGV4dElucHV0Q29tcG9uZW50LFxyXG4gIFByZWRpY2F0ZURhdGVJbnB1dENvbXBvbmVudCxcclxuXTtcclxuXHJcbmNvbnN0IENVU1RPTV9FTEVNRU5UUyA9IFtcclxuICBBY3RpdmVVc2VyU3dpdGNoQ29tcG9uZW50LFxyXG4gIEFnZ3JlZ2F0aW9uR3JvdXBDb21wb25lbnQsXHJcbiAgTWFwVG9BZ2dyZWdhdGlvbkNvbmZpZ1BpcGUsXHJcbl07XHJcblxyXG5jb25zdCBQQVJUUyA9IFtcclxuICBGaWx0ZXJPcHRpb25UZXh0Q29tcG9uZW50LFxyXG4gIEZpbHRlclNlYXJjaElucHV0Q29tcG9uZW50LFxyXG4gIEZpbHRlckNvbGxhcHNlQ29udHJvbENvbXBvbmVudCxcclxuICBGaWVsZEhlYWRlckNvbXBvbmVudCxcclxuICBGaWx0ZXJFbXB0eU1lc3NhZ2VDb21wb25lbnQsXHJcbiAgRmlsdGVyRGF0ZVJhbmdlQ29tcG9uZW50LFxyXG4gIEZpbHRlckF1dG9jb21wbGV0ZUlucHV0Q29tcG9uZW50LFxyXG4gIEZpbHRlck9wdGlvbnNTb3J0Q29tcG9uZW50LFxyXG5dO1xyXG5cclxuY29uc3QgRVhQT1JURURfUEFSVFMgPSBbSHRtbERpYWxvZ0NvbXBvbmVudF07XHJcblxyXG5jb25zdCBESVJFQ1RJVkVTID0gW1xyXG4gIENoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgUmFkaW9UZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBTd2l0Y2hUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBEcm9wZG93blRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEF1dG9jb21wbGV0ZVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEN1c3RvbVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIERyb3Bkb3duTGFiZWxUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBEcm9wZG93bk11bHRpTGFiZWxUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBEYXRlTGlzdFRlbXBsYXRlRGlyZWN0aXZlLFxyXG5dO1xyXG5cclxuY29uc3QgUElQRVMgPSBbXHJcbiAgQXV0b2NvbXBsZXRlRmlsdGVyUGlwZSxcclxuICBGaWx0ZXJQaXBlLFxyXG4gIExvY2FsaXplZExhYmVsUGlwZSxcclxuICBIYXNoVHJhbnNsYXRlUGlwZSxcclxuICBIYXNoVHJhbnNsYXRlQXN5bmNQaXBlLFxyXG4gIFNhbml0aXplclBpcGUsXHJcbiAgU29ydExpc3RQaXBlLFxyXG4gIFRvb2x0aXBQaXBlLFxyXG4gIEZpbHRlcnNCeVJvbGVzUGlwZSxcclxuICBDaGVja0NvbmRpdGlvblBpcGUsXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgQ09OVEFJTkVSUyxcclxuICAgIENPTVBPTkVOVFMsXHJcbiAgICBDVVNUT01fRUxFTUVOVFMsXHJcbiAgICBESVJFQ1RJVkVTLFxyXG4gICAgUElQRVMsXHJcbiAgICBQQVJUUyxcclxuICAgIEVYUE9SVEVEX1BBUlRTLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQ09OVEFJTkVSUyxcclxuICAgIENPTVBPTkVOVFMsXHJcbiAgICBDVVNUT01fRUxFTUVOVFMsXHJcbiAgICBESVJFQ1RJVkVTLFxyXG4gICAgRVhQT1JURURfUEFSVFMsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBOZ1NlbGVjdE1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcclxuICAgIE1hdFJhZGlvTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgRHluYW1pY0Zvcm1Nb2R1bGUsXHJcbiAgICBOdXhlb0RpYWxvZ01vZHVsZSxcclxuICAgIERpcmVjdGl2ZU1vZHVsZSxcclxuICAgIE5kZkRhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBBZ2dyZWdhdGlvbkZpZWxkTW9kdWxlLFxyXG4gICAgTmd4TWFza01vZHVsZS5mb3JSb290KHtcclxuICAgICAgdmFsaWRhdGlvbjogdHJ1ZSxcclxuICAgIH0pLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbRHluYW1pY0NvbXBvbmVudExvYWRlclNlcnZpY2UsIEFnZ3JlZ2F0aW9uRmllbGRTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5kZkZpbHRlcnNQYW5lbE1vZHVsZSB7XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbG9hZGVyU2VydmljZTogRHluYW1pY0NvbXBvbmVudExvYWRlclNlcnZpY2UpIHtcclxuICAgIHRoaXMuX3JlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCk7XHJcbiAgICB0aGlzLl9yZWdpc3RlckFnZ3JlZ2F0aW9uc0NvbXBvbmVudHMoKTtcclxuICAgIHRoaXMuX3JlZ2lzdGVyUHJlZGljYXRlQ29tcG9uZW50cygpO1xyXG4gIH1cclxuXHJcbiAgLy8tLS0tLS1cclxuICAvLyBDVVNUT01cclxuICAvLy0tLS0tLVxyXG4gIHByaXZhdGUgX3JlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCkge1xyXG4gICAgdGhpcy5sb2FkZXJTZXJ2aWNlLnJlZ2lzdGVyQ29tcG9uZW50KFxyXG4gICAgICBDVVNUT01fRklFTERfVFlQRVMuYWN0aXZlVXNlcixcclxuICAgICAgQWN0aXZlVXNlclN3aXRjaENvbXBvbmVudFxyXG4gICAgKTtcclxuICAgIHRoaXMubG9hZGVyU2VydmljZS5yZWdpc3RlckNvbXBvbmVudChcclxuICAgICAgQ1VTVE9NX0ZJRUxEX1RZUEVTLmFnZ3JlZ2F0aW9uR3JvdXAsXHJcbiAgICAgIEFnZ3JlZ2F0aW9uR3JvdXBDb21wb25lbnRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLy0tLS0tLVxyXG4gIC8vIEFHR1JFR0FUSU9OXHJcbiAgLy8tLS0tLS1cclxuICBwcml2YXRlIF9yZWdpc3RlckFnZ3JlZ2F0aW9uc0NvbXBvbmVudHMoKSB7XHJcbiAgICB0aGlzLmxvYWRlclNlcnZpY2UucmVnaXN0ZXJDb21wb25lbnQoXHJcbiAgICAgIEFHR1JFR0FUSU9OX0ZJRUxEX1RZUEVTLmF1dG9jb21wbGV0ZSxcclxuICAgICAgQWdncmVnYXRpb25BdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgICk7XHJcbiAgICB0aGlzLmxvYWRlclNlcnZpY2UucmVnaXN0ZXJDb21wb25lbnQoXHJcbiAgICAgIEFHR1JFR0FUSU9OX0ZJRUxEX1RZUEVTLmRyb3Bkb3duLFxyXG4gICAgICBBZ2dyZWdhdGlvblNlbGVjdENvbXBvbmVudFxyXG4gICAgKTtcclxuICAgIHRoaXMubG9hZGVyU2VydmljZS5yZWdpc3RlckNvbXBvbmVudChcclxuICAgICAgQUdHUkVHQVRJT05fRklFTERfVFlQRVMuc3dpdGNoLFxyXG4gICAgICBBZ2dyZWdhdGlvblN3aXRjaENvbXBvbmVudFxyXG4gICAgKTtcclxuICAgIHRoaXMubG9hZGVyU2VydmljZS5yZWdpc3RlckNvbXBvbmVudChcclxuICAgICAgQUdHUkVHQVRJT05fRklFTERfVFlQRVMucmFkaW8sXHJcbiAgICAgIEFnZ3JlZ2F0aW9uUmFkaW9Db21wb25lbnRcclxuICAgICk7XHJcbiAgICB0aGlzLmxvYWRlclNlcnZpY2UucmVnaXN0ZXJDb21wb25lbnQoXHJcbiAgICAgIEFHR1JFR0FUSU9OX0ZJRUxEX1RZUEVTLmRhdGVMaXN0LFxyXG4gICAgICBBZ2dyZWdhdGlvbkRhdGVMaXN0Q29tcG9uZW50XHJcbiAgICApO1xyXG4gICAgdGhpcy5sb2FkZXJTZXJ2aWNlLnJlZ2lzdGVyQ29tcG9uZW50KFxyXG4gICAgICBBR0dSRUdBVElPTl9GSUVMRF9UWVBFUy5jdXN0b20sXHJcbiAgICAgIEFnZ3JlZ2F0aW9uQ3VzdG9tQ29tcG9uZW50XHJcbiAgICApO1xyXG4gICAgdGhpcy5sb2FkZXJTZXJ2aWNlLnJlZ2lzdGVyQ29tcG9uZW50KFxyXG4gICAgICBBR0dSRUdBVElPTl9GSUVMRF9UWVBFUy5jaGVja2JveCxcclxuICAgICAgQWdncmVnYXRpb25DaGVja2JveENvbXBvbmVudFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vLS0tLS0tXHJcbiAgLy8gUFJFRElDQVRFXHJcbiAgLy8tLS0tLS1cclxuICBwcml2YXRlIF9yZWdpc3RlclByZWRpY2F0ZUNvbXBvbmVudHMoKSB7XHJcbiAgICB0aGlzLmxvYWRlclNlcnZpY2UucmVnaXN0ZXJDb21wb25lbnQoXHJcbiAgICAgIFBSRURJQ0FURV9GSUVMRF9UWVBFUy5pbnB1dCxcclxuICAgICAgUHJlZGljYXRlVGV4dElucHV0Q29tcG9uZW50XHJcbiAgICApO1xyXG4gICAgdGhpcy5sb2FkZXJTZXJ2aWNlLnJlZ2lzdGVyQ29tcG9uZW50KFxyXG4gICAgICBQUkVESUNBVEVfRklFTERfVFlQRVMuZGF0ZSxcclxuICAgICAgUHJlZGljYXRlRGF0ZUlucHV0Q29tcG9uZW50XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLWZpbHRlcnMtcGFuZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtZmlsdGVycy9uZGYtZmlsdGVycy1wYW5lbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMsNEJBQTRCLEVBQzVCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLGdDQUFnQyxFQUNoQyw4QkFBOEIsRUFDOUIsd0JBQXdC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QUFpQjtZQUNqQixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLGFBQWEsQ0FBQyxPQUFPLENBQUM7Z0JBQ3BCLFVBQVUsRUFBRSxJQUFJO2FBQ2pCLENBQUM7U0FDSDs0RkFHVSxxQkFBcUI7a0JBNUNqQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixVQUFVO3dCQUNWLEtBQUs7d0JBQ0wsS0FBSzt3QkFDTCxjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRTt3QkFDUCxVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixVQUFVO3dCQUNWLGNBQWM7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZix3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixhQUFhLENBQUMsT0FBTyxDQUFDOzRCQUNwQixVQUFVLEVBQUUsSUFBSTt5QkFDakIsQ0FBQztxQkFDSDtvQkFDRCxTQUFTLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSx1QkFBdUIsQ0FBQztpQkFDcEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xyXG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEFnZ3JlZ2F0aW9uQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxyXG4gIEFnZ3JlZ2F0aW9uQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgQWdncmVnYXRpb25DdXN0b21Db21wb25lbnQsXHJcbiAgQWdncmVnYXRpb25EYXRlTGlzdENvbXBvbmVudCxcclxuICBBZ2dyZWdhdGlvblJhZGlvQ29tcG9uZW50LFxyXG4gIEFnZ3JlZ2F0aW9uU2VsZWN0Q29tcG9uZW50LFxyXG4gIEFnZ3JlZ2F0aW9uU3dpdGNoQ29tcG9uZW50LFxyXG4gIEZpZWxkSGVhZGVyQ29tcG9uZW50LFxyXG4gIEZpbHRlckF1dG9jb21wbGV0ZUlucHV0Q29tcG9uZW50LFxyXG4gIEZpbHRlckNvbGxhcHNlQ29udHJvbENvbXBvbmVudCxcclxuICBGaWx0ZXJEYXRlUmFuZ2VDb21wb25lbnQsXHJcbiAgRmlsdGVyRW1wdHlNZXNzYWdlQ29tcG9uZW50LFxyXG4gIEZpbHRlck9wdGlvbnNTb3J0Q29tcG9uZW50LFxyXG4gIEZpbHRlck9wdGlvblRleHRDb21wb25lbnQsXHJcbiAgRmlsdGVyU2VhcmNoSW5wdXRDb21wb25lbnQsXHJcbiAgSHRtbERpYWxvZ0NvbXBvbmVudCxcclxuICBQcmVkaWNhdGVEYXRlSW5wdXRDb21wb25lbnQsXHJcbiAgUHJlZGljYXRlVGV4dElucHV0Q29tcG9uZW50LFxyXG59IGZyb20gJy4vY29tcG9uZW50cyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEF1dG9jb21wbGV0ZVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIENoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgQ3VzdG9tVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgRGF0ZUxpc3RUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBEcm9wZG93bkxhYmVsVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgRHJvcGRvd25NdWx0aUxhYmVsVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgRHJvcGRvd25UZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBSYWRpb1RlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIFN3aXRjaFRlbXBsYXRlRGlyZWN0aXZlLFxyXG59IGZyb20gJy4vZGlyZWN0aXZlcyc7XHJcblxyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQWdncmVnYXRpb25GaWVsZENvbXBvbmVudCxcclxuICBDdXN0b21GaWVsZENvbXBvbmVudCxcclxuICBGaWx0ZXJzUGFuZWxDb21wb25lbnQsXHJcbiAgUHJlZGljYXRlRmllbGRDb21wb25lbnQsXHJcbn0gZnJvbSAnLi9jb250YWluZXJzJztcclxuaW1wb3J0IHtcclxuICBBdXRvY29tcGxldGVGaWx0ZXJQaXBlLFxyXG4gIENoZWNrQ29uZGl0aW9uUGlwZSxcclxuICBGaWx0ZXJQaXBlLFxyXG4gIEZpbHRlcnNCeVJvbGVzUGlwZSxcclxuICBIYXNoVHJhbnNsYXRlQXN5bmNQaXBlLFxyXG4gIEhhc2hUcmFuc2xhdGVQaXBlLFxyXG4gIExvY2FsaXplZExhYmVsUGlwZSxcclxuICBTYW5pdGl6ZXJQaXBlLFxyXG4gIFNvcnRMaXN0UGlwZSxcclxuICBUb29sdGlwUGlwZSxcclxufSBmcm9tICcuL3BpcGVzJztcclxuXHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBOZ3hNYXNrTW9kdWxlIH0gZnJvbSAnbmd4LW1hc2snO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmVNb2R1bGUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvZGlyZWN0aXZlLm1vZHVsZSc7XHJcbmltcG9ydCB7IE51eGVvRGlhbG9nTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nJztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1Nb2R1bGUgfSBmcm9tICcuLi9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5kZkRhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICcuLi9uZGYtZGF0ZXBpY2tlcic7XHJcblxyXG5pbXBvcnQge1xyXG4gIEFHR1JFR0FUSU9OX0ZJRUxEX1RZUEVTLFxyXG4gIENVU1RPTV9GSUVMRF9UWVBFUyxcclxuICBQUkVESUNBVEVfRklFTERfVFlQRVMsXHJcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2ZVVzZXJTd2l0Y2hDb21wb25lbnQsXHJcbiAgQWdncmVnYXRpb25Hcm91cENvbXBvbmVudCxcclxuICBNYXBUb0FnZ3JlZ2F0aW9uQ29uZmlnUGlwZSxcclxufSBmcm9tICcuL2N1c3RvbS1jb21wb25lbnRzJztcclxuaW1wb3J0IHtcclxuICBBZ2dyZWdhdGlvbkZpZWxkU2VydmljZSxcclxuICBEeW5hbWljQ29tcG9uZW50TG9hZGVyU2VydmljZSxcclxufSBmcm9tICcuL3NlcnZpY2VzJztcclxuXHJcbmNvbnN0IENPTlRBSU5FUlMgPSBbXHJcbiAgRmlsdGVyc1BhbmVsQ29tcG9uZW50LFxyXG4gIFByZWRpY2F0ZUZpZWxkQ29tcG9uZW50LFxyXG4gIEFnZ3JlZ2F0aW9uRmllbGRDb21wb25lbnQsXHJcbiAgQ3VzdG9tRmllbGRDb21wb25lbnQsXHJcbl07XHJcblxyXG5jb25zdCBDT01QT05FTlRTID0gW1xyXG4gIEFnZ3JlZ2F0aW9uQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxyXG4gIEFnZ3JlZ2F0aW9uU2VsZWN0Q29tcG9uZW50LFxyXG4gIEFnZ3JlZ2F0aW9uQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgQWdncmVnYXRpb25Td2l0Y2hDb21wb25lbnQsXHJcbiAgQWdncmVnYXRpb25SYWRpb0NvbXBvbmVudCxcclxuICBBZ2dyZWdhdGlvbkN1c3RvbUNvbXBvbmVudCxcclxuICBBZ2dyZWdhdGlvbkRhdGVMaXN0Q29tcG9uZW50LFxyXG4gIFByZWRpY2F0ZVRleHRJbnB1dENvbXBvbmVudCxcclxuICBQcmVkaWNhdGVEYXRlSW5wdXRDb21wb25lbnQsXHJcbl07XHJcblxyXG5jb25zdCBDVVNUT01fRUxFTUVOVFMgPSBbXHJcbiAgQWN0aXZlVXNlclN3aXRjaENvbXBvbmVudCxcclxuICBBZ2dyZWdhdGlvbkdyb3VwQ29tcG9uZW50LFxyXG4gIE1hcFRvQWdncmVnYXRpb25Db25maWdQaXBlLFxyXG5dO1xyXG5cclxuY29uc3QgUEFSVFMgPSBbXHJcbiAgRmlsdGVyT3B0aW9uVGV4dENvbXBvbmVudCxcclxuICBGaWx0ZXJTZWFyY2hJbnB1dENvbXBvbmVudCxcclxuICBGaWx0ZXJDb2xsYXBzZUNvbnRyb2xDb21wb25lbnQsXHJcbiAgRmllbGRIZWFkZXJDb21wb25lbnQsXHJcbiAgRmlsdGVyRW1wdHlNZXNzYWdlQ29tcG9uZW50LFxyXG4gIEZpbHRlckRhdGVSYW5nZUNvbXBvbmVudCxcclxuICBGaWx0ZXJBdXRvY29tcGxldGVJbnB1dENvbXBvbmVudCxcclxuICBGaWx0ZXJPcHRpb25zU29ydENvbXBvbmVudCxcclxuXTtcclxuXHJcbmNvbnN0IEVYUE9SVEVEX1BBUlRTID0gW0h0bWxEaWFsb2dDb21wb25lbnRdO1xyXG5cclxuY29uc3QgRElSRUNUSVZFUyA9IFtcclxuICBDaGVja2JveFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIFJhZGlvVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgU3dpdGNoVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgRHJvcGRvd25UZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBdXRvY29tcGxldGVUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBDdXN0b21UZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBEcm9wZG93bkxhYmVsVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgRHJvcGRvd25NdWx0aUxhYmVsVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgRGF0ZUxpc3RUZW1wbGF0ZURpcmVjdGl2ZSxcclxuXTtcclxuXHJcbmNvbnN0IFBJUEVTID0gW1xyXG4gIEF1dG9jb21wbGV0ZUZpbHRlclBpcGUsXHJcbiAgRmlsdGVyUGlwZSxcclxuICBMb2NhbGl6ZWRMYWJlbFBpcGUsXHJcbiAgSGFzaFRyYW5zbGF0ZVBpcGUsXHJcbiAgSGFzaFRyYW5zbGF0ZUFzeW5jUGlwZSxcclxuICBTYW5pdGl6ZXJQaXBlLFxyXG4gIFNvcnRMaXN0UGlwZSxcclxuICBUb29sdGlwUGlwZSxcclxuICBGaWx0ZXJzQnlSb2xlc1BpcGUsXHJcbiAgQ2hlY2tDb25kaXRpb25QaXBlLFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIENPTlRBSU5FUlMsXHJcbiAgICBDT01QT05FTlRTLFxyXG4gICAgQ1VTVE9NX0VMRU1FTlRTLFxyXG4gICAgRElSRUNUSVZFUyxcclxuICAgIFBJUEVTLFxyXG4gICAgUEFSVFMsXHJcbiAgICBFWFBPUlRFRF9QQVJUUyxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIENPTlRBSU5FUlMsXHJcbiAgICBDT01QT05FTlRTLFxyXG4gICAgQ1VTVE9NX0VMRU1FTlRTLFxyXG4gICAgRElSRUNUSVZFUyxcclxuICAgIEVYUE9SVEVEX1BBUlRTLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTmdTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlLFxyXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXHJcbiAgICBNYXRSYWRpb01vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIER5bmFtaWNGb3JtTW9kdWxlLFxyXG4gICAgTnV4ZW9EaWFsb2dNb2R1bGUsXHJcbiAgICBEaXJlY3RpdmVNb2R1bGUsXHJcbiAgICBOZGZEYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTmd4TWFza01vZHVsZS5mb3JSb290KHtcclxuICAgICAgdmFsaWRhdGlvbjogdHJ1ZSxcclxuICAgIH0pLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbRHluYW1pY0NvbXBvbmVudExvYWRlclNlcnZpY2UsIEFnZ3JlZ2F0aW9uRmllbGRTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5kZkZpbHRlcnNQYW5lbE1vZHVsZSB7XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbG9hZGVyU2VydmljZTogRHluYW1pY0NvbXBvbmVudExvYWRlclNlcnZpY2UpIHtcclxuICAgIHRoaXMuX3JlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCk7XHJcbiAgICB0aGlzLl9yZWdpc3RlckFnZ3JlZ2F0aW9uc0NvbXBvbmVudHMoKTtcclxuICAgIHRoaXMuX3JlZ2lzdGVyUHJlZGljYXRlQ29tcG9uZW50cygpO1xyXG4gIH1cclxuXHJcbiAgLy8tLS0tLS1cclxuICAvLyBDVVNUT01cclxuICAvLy0tLS0tLVxyXG4gIHByaXZhdGUgX3JlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCkge1xyXG4gICAgdGhpcy5sb2FkZXJTZXJ2aWNlLnJlZ2lzdGVyQ29tcG9uZW50KFxyXG4gICAgICBDVVNUT01fRklFTERfVFlQRVMuYWN0aXZlVXNlcixcclxuICAgICAgQWN0aXZlVXNlclN3aXRjaENvbXBvbmVudFxyXG4gICAgKTtcclxuICAgIHRoaXMubG9hZGVyU2VydmljZS5yZWdpc3RlckNvbXBvbmVudChcclxuICAgICAgQ1VTVE9NX0ZJRUxEX1RZUEVTLmFnZ3JlZ2F0aW9uR3JvdXAsXHJcbiAgICAgIEFnZ3JlZ2F0aW9uR3JvdXBDb21wb25lbnRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLy0tLS0tLVxyXG4gIC8vIEFHR1JFR0FUSU9OXHJcbiAgLy8tLS0tLS1cclxuICBwcml2YXRlIF9yZWdpc3RlckFnZ3JlZ2F0aW9uc0NvbXBvbmVudHMoKSB7XHJcbiAgICB0aGlzLmxvYWRlclNlcnZpY2UucmVnaXN0ZXJDb21wb25lbnQoXHJcbiAgICAgIEFHR1JFR0FUSU9OX0ZJRUxEX1RZUEVTLmF1dG9jb21wbGV0ZSxcclxuICAgICAgQWdncmVnYXRpb25BdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgICk7XHJcbiAgICB0aGlzLmxvYWRlclNlcnZpY2UucmVnaXN0ZXJDb21wb25lbnQoXHJcbiAgICAgIEFHR1JFR0FUSU9OX0ZJRUxEX1RZUEVTLmRyb3Bkb3duLFxyXG4gICAgICBBZ2dyZWdhdGlvblNlbGVjdENvbXBvbmVudFxyXG4gICAgKTtcclxuICAgIHRoaXMubG9hZGVyU2VydmljZS5yZWdpc3RlckNvbXBvbmVudChcclxuICAgICAgQUdHUkVHQVRJT05fRklFTERfVFlQRVMuc3dpdGNoLFxyXG4gICAgICBBZ2dyZWdhdGlvblN3aXRjaENvbXBvbmVudFxyXG4gICAgKTtcclxuICAgIHRoaXMubG9hZGVyU2VydmljZS5yZWdpc3RlckNvbXBvbmVudChcclxuICAgICAgQUdHUkVHQVRJT05fRklFTERfVFlQRVMucmFkaW8sXHJcbiAgICAgIEFnZ3JlZ2F0aW9uUmFkaW9Db21wb25lbnRcclxuICAgICk7XHJcbiAgICB0aGlzLmxvYWRlclNlcnZpY2UucmVnaXN0ZXJDb21wb25lbnQoXHJcbiAgICAgIEFHR1JFR0FUSU9OX0ZJRUxEX1RZUEVTLmRhdGVMaXN0LFxyXG4gICAgICBBZ2dyZWdhdGlvbkRhdGVMaXN0Q29tcG9uZW50XHJcbiAgICApO1xyXG4gICAgdGhpcy5sb2FkZXJTZXJ2aWNlLnJlZ2lzdGVyQ29tcG9uZW50KFxyXG4gICAgICBBR0dSRUdBVElPTl9GSUVMRF9UWVBFUy5jdXN0b20sXHJcbiAgICAgIEFnZ3JlZ2F0aW9uQ3VzdG9tQ29tcG9uZW50XHJcbiAgICApO1xyXG4gICAgdGhpcy5sb2FkZXJTZXJ2aWNlLnJlZ2lzdGVyQ29tcG9uZW50KFxyXG4gICAgICBBR0dSRUdBVElPTl9GSUVMRF9UWVBFUy5jaGVja2JveCxcclxuICAgICAgQWdncmVnYXRpb25DaGVja2JveENvbXBvbmVudFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vLS0tLS0tXHJcbiAgLy8gUFJFRElDQVRFXHJcbiAgLy8tLS0tLS1cclxuICBwcml2YXRlIF9yZWdpc3RlclByZWRpY2F0ZUNvbXBvbmVudHMoKSB7XHJcbiAgICB0aGlzLmxvYWRlclNlcnZpY2UucmVnaXN0ZXJDb21wb25lbnQoXHJcbiAgICAgIFBSRURJQ0FURV9GSUVMRF9UWVBFUy5pbnB1dCxcclxuICAgICAgUHJlZGljYXRlVGV4dElucHV0Q29tcG9uZW50XHJcbiAgICApO1xyXG4gICAgdGhpcy5sb2FkZXJTZXJ2aWNlLnJlZ2lzdGVyQ29tcG9uZW50KFxyXG4gICAgICBQUkVESUNBVEVfRklFTERfVFlQRVMuZGF0ZSxcclxuICAgICAgUHJlZGljYXRlRGF0ZUlucHV0Q29tcG9uZW50XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -8,12 +8,12 @@ export class CheckConditionPipe {
8
8
  this.nuxeoService = nuxeoService;
9
9
  this.user = nuxeoService.nuxeoClient.user;
10
10
  }
11
- transform(condition, aggregations, language) {
11
+ transform(condition, aggregations, language, filterValues) {
12
12
  if (!condition) {
13
13
  return true;
14
14
  }
15
15
  try {
16
- return Evaluator.evaluate(condition, _.cloneDeep({ aggregations, language, user: this.user }));
16
+ return Evaluator.evaluate(condition, _.cloneDeep({ aggregations, language, user: this.user, values: filterValues }));
17
17
  }
18
18
  catch (error) {
19
19
  console.error({ error });
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
29
29
  name: 'checkCondition'
30
30
  }]
31
31
  }], ctorParameters: function () { return [{ type: i1.NuxeoService }]; } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stY29uZGl0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL3BpcGVzL2NoZWNrLWNvbmRpdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV0RCxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7OztBQUt2QixNQUFNLE9BQU8sa0JBQWtCO0lBRTlCLFlBQW1CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzVDLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUNELFNBQVMsQ0FBQyxTQUFpQixFQUFFLFlBQWlDLEVBQUUsUUFBZ0I7UUFDL0UsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ1o7UUFFRCxJQUFJO1lBQ0gsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMvRjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDekIsT0FBTyxLQUFLLENBQUM7U0FDYjtJQUNGLENBQUM7O2dIQWhCVyxrQkFBa0I7OEdBQWxCLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQUg5QixJQUFJO21CQUFDO29CQUNMLElBQUksRUFBRSxnQkFBZ0I7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFdmFsdWF0b3IgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZXZhbHVhdG9yJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcyc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcblxyXG5AUGlwZSh7XHJcblx0bmFtZTogJ2NoZWNrQ29uZGl0aW9uJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tDb25kaXRpb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblx0dXNlcjogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2UpIHtcclxuXHRcdHRoaXMudXNlciA9IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyO1xyXG5cdH1cclxuXHR0cmFuc2Zvcm0oY29uZGl0aW9uOiBzdHJpbmcsIGFnZ3JlZ2F0aW9uczogUmVjb3JkPHN0cmluZywgYW55PiwgbGFuZ3VhZ2U6IHN0cmluZyk6IEV2YWx1YXRvciB7XHJcblx0XHRpZiAoIWNvbmRpdGlvbikge1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHJcblx0XHR0cnkge1xyXG5cdFx0XHRyZXR1cm4gRXZhbHVhdG9yLmV2YWx1YXRlKGNvbmRpdGlvbiwgXy5jbG9uZURlZXAoeyBhZ2dyZWdhdGlvbnMsIGxhbmd1YWdlLCB1c2VyOiB0aGlzLnVzZXIgfSkpO1xyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcih7IGVycm9yIH0pO1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stY29uZGl0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL3BpcGVzL2NoZWNrLWNvbmRpdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV0RCxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7OztBQUt2QixNQUFNLE9BQU8sa0JBQWtCO0lBRTlCLFlBQW1CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzVDLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUNELFNBQVMsQ0FDUixTQUFpQixFQUNqQixZQUFpQyxFQUNqQyxRQUFnQixFQUNoQixZQUFpQztRQUVqQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7U0FDWjtRQUVELElBQUk7WUFDSCxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQ3hCLFNBQVMsRUFDVCxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FDOUUsQ0FBQztTQUNGO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN6QixPQUFPLEtBQUssQ0FBQztTQUNiO0lBQ0YsQ0FBQzs7Z0hBeEJXLGtCQUFrQjs4R0FBbEIsa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBSDlCLElBQUk7bUJBQUM7b0JBQ0wsSUFBSSxFQUFFLGdCQUFnQjtpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEV2YWx1YXRvciB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9ldmFsdWF0b3InO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuXHJcbkBQaXBlKHtcclxuXHRuYW1lOiAnY2hlY2tDb25kaXRpb24nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja0NvbmRpdGlvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHR1c2VyOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSkge1xyXG5cdFx0dGhpcy51c2VyID0gbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXI7XHJcblx0fVxyXG5cdHRyYW5zZm9ybShcclxuXHRcdGNvbmRpdGlvbjogc3RyaW5nLFxyXG5cdFx0YWdncmVnYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxyXG5cdFx0bGFuZ3VhZ2U6IHN0cmluZyxcclxuXHRcdGZpbHRlclZhbHVlczogUmVjb3JkPHN0cmluZywgYW55PlxyXG5cdCk6IEV2YWx1YXRvciB7XHJcblx0XHRpZiAoIWNvbmRpdGlvbikge1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHJcblx0XHR0cnkge1xyXG5cdFx0XHRyZXR1cm4gRXZhbHVhdG9yLmV2YWx1YXRlKFxyXG5cdFx0XHRcdGNvbmRpdGlvbixcclxuXHRcdFx0XHRfLmNsb25lRGVlcCh7IGFnZ3JlZ2F0aW9ucywgbGFuZ3VhZ2UsIHVzZXI6IHRoaXMudXNlciwgdmFsdWVzOiBmaWx0ZXJWYWx1ZXMgfSlcclxuXHRcdFx0KTtcclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoeyBlcnJvciB9KTtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXX0=
@@ -8,6 +8,11 @@ export class DynamicComponentLoaderService {
8
8
  registerComponent(key, component) {
9
9
  this._components.set(key, component);
10
10
  }
11
+ registerComponents(components) {
12
+ Object.entries(components).forEach(([key, component]) => {
13
+ this.registerComponent(key, component);
14
+ });
15
+ }
11
16
  renderComponent(key, vcr) {
12
17
  if (!this._components.has(key)) {
13
18
  throw 'unknown component ';
@@ -25,4 +30,4 @@ DynamicComponentLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion:
25
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicComponentLoaderService, decorators: [{
26
31
  type: Injectable
27
32
  }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }]; } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQtbG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL3NlcnZpY2VzL2R5bmFtaWMtY29tcG9uZW50LWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEdBR1gsTUFBTSxlQUFlLENBQUM7O0FBYXZCLE1BQU0sT0FBTyw2QkFBNkI7SUFHeEMsWUFBb0IsZ0JBQTBDO1FBQTFDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBMEI7UUFGN0MsZ0JBQVcsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztJQUVGLENBQUM7SUFFbEUsaUJBQWlCLENBQUksR0FBa0IsRUFBRSxTQUFrQjtRQUN6RCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFrQixFQUFFLEdBQXFCO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM5QixNQUFNLG9CQUFvQixDQUFDO1NBQzVCO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsYUFBYSxDQUFJLG9CQUE2QixFQUFFLEdBQXFCO1FBQ25FLE1BQU0sU0FBUyxHQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDOzsySEFyQlUsNkJBQTZCOytIQUE3Qiw2QkFBNkI7NEZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIEluamVjdGFibGUsXHJcbiAgVHlwZSxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFnZ3JlZ2F0aW9uRmllbGRUeXBlLFxyXG4gIEN1c3RvbUZpZWxkVHlwZSxcclxuICBQcmVkaWNhdGVGaWVsZFR5cGUsXHJcbn0gZnJvbSAnLi4vbW9kZWxzJztcclxuXHJcbnR5cGUgQ29tcG9uZW50VHlwZSA9XHJcbiAgfCBBZ2dyZWdhdGlvbkZpZWxkVHlwZVxyXG4gIHwgUHJlZGljYXRlRmllbGRUeXBlXHJcbiAgfCBDdXN0b21GaWVsZFR5cGU7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljQ29tcG9uZW50TG9hZGVyU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY29tcG9uZW50cyA9IG5ldyBNYXA8Q29tcG9uZW50VHlwZSwgVHlwZTxhbnk+PigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge31cclxuXHJcbiAgcmVnaXN0ZXJDb21wb25lbnQ8VD4oa2V5OiBDb21wb25lbnRUeXBlLCBjb21wb25lbnQ6IFR5cGU8VD4pIHtcclxuICAgIHRoaXMuX2NvbXBvbmVudHMuc2V0KGtleSwgY29tcG9uZW50KTtcclxuICB9XHJcblxyXG4gIHJlbmRlckNvbXBvbmVudChrZXk6IENvbXBvbmVudFR5cGUsIHZjcjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gICAgaWYgKCF0aGlzLl9jb21wb25lbnRzLmhhcyhrZXkpKSB7XHJcbiAgICAgIHRocm93ICd1bmtub3duIGNvbXBvbmVudCAnO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5fY29tcG9uZW50cy5nZXQoa2V5KTtcclxuICAgIHJldHVybiB0aGlzLmxvYWRDb21wb25lbnQoY29tcG9uZW50LCB2Y3IpO1xyXG4gIH1cclxuXHJcbiAgbG9hZENvbXBvbmVudDxUPihjb21wb25lbnRBbmd1bGFyVHlwZTogVHlwZTxUPiwgdmNyOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICBjb25zdCBjb21wb25lbnQgPVxyXG4gICAgICB0aGlzLl9mYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50QW5ndWxhclR5cGUpO1xyXG4gICAgcmV0dXJuIHZjci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50KTtcclxuICB9XHJcbn1cclxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQtbG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL3NlcnZpY2VzL2R5bmFtaWMtY29tcG9uZW50LWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEdBR1gsTUFBTSxlQUFlLENBQUM7O0FBYXZCLE1BQU0sT0FBTyw2QkFBNkI7SUFHeEMsWUFBb0IsZ0JBQTBDO1FBQTFDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBMEI7UUFGN0MsZ0JBQVcsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztJQUVGLENBQUM7SUFFbEUsaUJBQWlCLENBQUksR0FBa0IsRUFBRSxTQUFrQjtRQUN6RCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGtCQUFrQixDQUFJLFVBQXFEO1FBQ3pFLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBb0IsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBa0IsRUFBRSxHQUFxQjtRQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDOUIsTUFBTSxvQkFBb0IsQ0FBQztTQUM1QjtRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGFBQWEsQ0FBSSxvQkFBNkIsRUFBRSxHQUFxQjtRQUNuRSxNQUFNLFNBQVMsR0FDYixJQUFJLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN0RSxPQUFPLEdBQUcsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7MkhBM0JVLDZCQUE2QjsrSEFBN0IsNkJBQTZCOzRGQUE3Qiw2QkFBNkI7a0JBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBJbmplY3RhYmxlLFxyXG4gIFR5cGUsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBZ2dyZWdhdGlvbkZpZWxkVHlwZSxcclxuICBDdXN0b21GaWVsZFR5cGUsXHJcbiAgUHJlZGljYXRlRmllbGRUeXBlLFxyXG59IGZyb20gJy4uL21vZGVscyc7XHJcblxyXG50eXBlIENvbXBvbmVudFR5cGUgPVxyXG4gIHwgQWdncmVnYXRpb25GaWVsZFR5cGVcclxuICB8IFByZWRpY2F0ZUZpZWxkVHlwZVxyXG4gIHwgQ3VzdG9tRmllbGRUeXBlO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0NvbXBvbmVudExvYWRlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbXBvbmVudHMgPSBuZXcgTWFwPENvbXBvbmVudFR5cGUsIFR5cGU8YW55Pj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHt9XHJcblxyXG4gIHJlZ2lzdGVyQ29tcG9uZW50PFQ+KGtleTogQ29tcG9uZW50VHlwZSwgY29tcG9uZW50OiBUeXBlPFQ+KSB7XHJcbiAgICB0aGlzLl9jb21wb25lbnRzLnNldChrZXksIGNvbXBvbmVudCk7XHJcbiAgfVxyXG5cclxuICByZWdpc3RlckNvbXBvbmVudHM8VD4oY29tcG9uZW50czogUmVjb3JkPENvbXBvbmVudFR5cGUgfCBzdHJpbmcsIFR5cGU8YW55Pj4pIHtcclxuICAgIE9iamVjdC5lbnRyaWVzKGNvbXBvbmVudHMpLmZvckVhY2goKFtrZXksIGNvbXBvbmVudF0pID0+IHtcclxuICAgICAgdGhpcy5yZWdpc3RlckNvbXBvbmVudChrZXkgYXMgQ29tcG9uZW50VHlwZSwgY29tcG9uZW50KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyQ29tcG9uZW50KGtleTogQ29tcG9uZW50VHlwZSwgdmNyOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICBpZiAoIXRoaXMuX2NvbXBvbmVudHMuaGFzKGtleSkpIHtcclxuICAgICAgdGhyb3cgJ3Vua25vd24gY29tcG9uZW50ICc7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLl9jb21wb25lbnRzLmdldChrZXkpO1xyXG4gICAgcmV0dXJuIHRoaXMubG9hZENvbXBvbmVudChjb21wb25lbnQsIHZjcik7XHJcbiAgfVxyXG5cclxuICBsb2FkQ29tcG9uZW50PFQ+KGNvbXBvbmVudEFuZ3VsYXJUeXBlOiBUeXBlPFQ+LCB2Y3I6IFZpZXdDb250YWluZXJSZWYpIHtcclxuICAgIGNvbnN0IGNvbXBvbmVudCA9XHJcbiAgICAgIHRoaXMuX2ZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRBbmd1bGFyVHlwZSk7XHJcbiAgICByZXR1cm4gdmNyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -86,7 +86,7 @@ export class NdfTabsComponent extends BaseComponent {
86
86
  }
87
87
  }
88
88
  NdfTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfTabsComponent, deps: [{ token: i0.Injector }, { token: i1.EvaluatorsService }], target: i0.ɵɵFactoryTarget.Component });
89
- NdfTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfTabsComponent, selector: "ndf-tabs", inputs: { tabs: "tabs", showHeader: "showHeader", isAllowdTabFn: "isAllowdTabFn" }, outputs: { activeTabEmitter: "activeTabEmitter" }, host: { classAttribute: "w-full h-full" }, queries: [{ propertyName: "tabHeader", first: true, predicate: ["tabHeader"], descendants: true, read: TemplateRef }, { propertyName: "headerOptions", first: true, predicate: ["headerOptions"], descendants: true, read: TemplateRef }, { propertyName: "tabBody", first: true, predicate: ["tabBody"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col ndf-tabs-wrapper rounded-md overflow-auto px-0.5\" *ngIf=\"!checkingPermission\">\r\n\t<div\r\n\t\tclass=\"tabs-header flex justify-between items-center w-full border-b\"\r\n\t\t[@visibilitySlide]=\"showHeader\"\r\n\t\t[class.overflow-hidden]=\"!showHeader\"\r\n\t>\r\n\t\t<div class=\"tabs-wrapper flex justify-start items-center gap-2.5 self-stretch\">\r\n\t\t\t<ng-container *ngFor=\"let tab of tabs\">\r\n\t\t\t\t<ng-container *ngIf=\"isEnabledTab(tab) && isAllowdTabFn(tab)\">\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t'selected-tab': activeTab === tab.id\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\tclass=\"tab-item flex p-4 justify-center items-center gap-2.5 rounded-t-md font-medium text-xl cursor-pointer\"\r\n\t\t\t\t\t\t(click)=\"activateTab(tab)\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tabHeader || defaultHeader\"\r\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: tab }\"\r\n\t\t\t\t\t\t></ng-template>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t\t<ng-template\r\n\t\t\t[ngTemplateOutlet]=\"headerOptions\"\r\n\t\t\t[ngTemplateOutletContext]=\"{ $implicit: activatedTab }\"\r\n\t\t></ng-template>\r\n\t</div>\r\n\t<ng-template\r\n\t\t[ngTemplateOutlet]=\"tabBody || defaultBody\"\r\n\t\t[ngTemplateOutletContext]=\"{ $implicit: activatedTab }\"\r\n\t></ng-template>\r\n</div>\r\n\r\n<ng-template #defaultHeader let-tab>{{ tab.label | translate }}</ng-template>\r\n<ng-template #defaultBody>Default Body</ng-template>\r\n", styles: [":host{display:block}.ndf-tabs-wrapper{background-color:var(--ndf-tabs-body, #fff);border-radius:8px 8px 0 0;overflow:hidden!important;height:calc(100vh - 100px)}.ndf-tabs-wrapper .tabs-header{background-color:var(--ndf-tabs-header, #fff)}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i3.TranslatePipe }, animations: [
89
+ NdfTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfTabsComponent, selector: "ndf-tabs", inputs: { tabs: "tabs", showHeader: "showHeader", isAllowdTabFn: "isAllowdTabFn" }, outputs: { activeTabEmitter: "activeTabEmitter" }, host: { classAttribute: "w-full h-full" }, queries: [{ propertyName: "tabHeader", first: true, predicate: ["tabHeader"], descendants: true, read: TemplateRef }, { propertyName: "headerOptions", first: true, predicate: ["headerOptions"], descendants: true, read: TemplateRef }, { propertyName: "tabBody", first: true, predicate: ["tabBody"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col ndf-tabs-wrapper rounded-md px-0.5\" *ngIf=\"!checkingPermission\">\r\n\t<div\r\n\t\tclass=\"tabs-header flex justify-between items-center w-full border-b print:hidden\"\r\n\t\t[@visibilitySlide]=\"showHeader\"\r\n\t\t[class.overflow-hidden]=\"!showHeader\"\r\n\t>\r\n\t\t<div class=\"tabs-wrapper flex justify-start items-center gap-2.5 self-stretch\">\r\n\t\t\t<ng-container *ngFor=\"let tab of tabs\">\r\n\t\t\t\t<ng-container *ngIf=\"isEnabledTab(tab) && isAllowdTabFn(tab)\">\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t'selected-tab': activeTab === tab.id\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\tclass=\"tab-item flex p-4 justify-center items-center gap-2.5 rounded-t-md font-medium text-xl cursor-pointer\"\r\n\t\t\t\t\t\t(click)=\"activateTab(tab)\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tabHeader || defaultHeader\"\r\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: tab }\"\r\n\t\t\t\t\t\t></ng-template>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t\t<ng-template\r\n\t\t\t[ngTemplateOutlet]=\"headerOptions\"\r\n\t\t\t[ngTemplateOutletContext]=\"{ $implicit: activatedTab }\"\r\n\t\t></ng-template>\r\n\t</div>\r\n\t<ng-template\r\n\t\t[ngTemplateOutlet]=\"tabBody || defaultBody\"\r\n\t\t[ngTemplateOutletContext]=\"{ $implicit: activatedTab }\"\r\n\t></ng-template>\r\n</div>\r\n\r\n<ng-template #defaultHeader let-tab>{{ tab.label | translate }}</ng-template>\r\n<ng-template #defaultBody>Default Body</ng-template>\r\n", styles: [":host{display:block}.ndf-tabs-wrapper{background-color:var(--ndf-tabs-body, #fff);border-radius:8px 8px 0 0;overflow:var(--ndf-tabs-wrapper-overflow, auto);height:calc(100vh - 100px)}.ndf-tabs-wrapper .tabs-header{background-color:var(--ndf-tabs-header, #fff)}@media print{.ndf-tabs-wrapper{--ndf-tabs-wrapper-overflow: visible}}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i3.TranslatePipe }, animations: [
90
90
  trigger('visibilitySlide', [
91
91
  state('true', style({ height: '*', visibility: '*' })),
92
92
  state('false', style({ height: '0', visibility: 'hidden' })),
@@ -128,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
128
128
  }], activeTabEmitter: [{
129
129
  type: Output
130
130
  }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtdGFicy9jb21wb25lbnQvbmRmLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtdGFicy9jb21wb25lbnQvbmRmLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFVLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQWlCM0QsTUFBTSxPQUFPLGdCQUE2QyxTQUFRLGFBQWE7SUFvQjlFLFlBQ0MsUUFBa0IsRUFDRCxpQkFBb0M7UUFFckQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWhCOUMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFLbEIsa0JBQWEsR0FBd0IsQ0FBQyxD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LGVBQWUsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzs0QkFDdEQsVUFBVSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7eUJBQ3JELENBQUM7cUJBQ0Y7aUJBQ0Q7K0hBRWtELFNBQVM7c0JBQTFELFlBQVk7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDTSxhQUFhO3NCQUFsRSxZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ0osT0FBTztzQkFBdEQsWUFBWTt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNyQyxJQUFJO3NCQUFaLEtBQUs7Z0JBR08sVUFBVTtzQkFBdEIsS0FBSztnQkFJRyxhQUFhO3NCQUFyQixLQUFLO2dCQU1JLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgZnJvbSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IFRhYlR5cGUgfSBmcm9tICcuLi90YWIudHlwZSc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEV2YWx1YXRvcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL3Blcm1pc3Npb25zL2V2YWx1YXRvcnMuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ25kZi10YWJzJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vbmRmLXRhYnMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL25kZi10YWJzLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0aG9zdDogeyBjbGFzczogJ3ctZnVsbCBoLWZ1bGwnIH0sXHJcblx0YW5pbWF0aW9uczogW1xyXG5cdFx0dHJpZ2dlcigndmlzaWJpbGl0eVNsaWRlJywgW1xyXG5cdFx0XHRzdGF0ZSgndHJ1ZScsIHN0eWxlKHsgaGVpZ2h0OiAnKicsIHZpc2liaWxpdHk6ICcqJyB9KSksXHJcblx0XHRcdHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgaGVpZ2h0OiAnMCcsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKSxcclxuXHRcdFx0dHJhbnNpdGlvbignZmFsc2UgPT4gdHJ1ZScsIGFuaW1hdGUoJzE1MG1zIGVhc2Utb3V0JykpLFxyXG5cdFx0XHR0cmFuc2l0aW9uKCd0cnVlID0+IGZhbHNlJywgYW5pbWF0ZSgnMTUwbXMgZWFzZS1pbicpKVxyXG5cdFx0XSlcclxuXHRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZGZUYWJzQ29tcG9uZW50PFQgZXh0ZW5kcyBUYWJUeXBlPFRbJ2lkJ10+PiBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdEBDb250ZW50Q2hpbGQoJ3RhYkhlYWRlcicsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGFiSGVhZGVyPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHRAQ29udGVudENoaWxkKCdoZWFkZXJPcHRpb25zJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBoZWFkZXJPcHRpb25zPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHRAQ29udGVudENoaWxkKCd0YWJCb2R5JywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0YWJCb2R5OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cdEBJbnB1dCgpIHRhYnM6IFRbXTtcclxuXHJcblx0cHJpdmF0ZSBfc2hvd0hlYWRlciA9IHRydWU7XHJcblx0QElucHV0KCkgc2V0IHNob3dIZWFkZXIodmFsdWU6IGJvb2xlYW4pIHtcclxuXHRcdHRoaXMuX3Nob3dIZWFkZXIgPSB2YWx1ZTtcclxuXHR9XHJcblxyXG5cdEBJbnB1dCgpIGlzQWxsb3dkVGFiRm46ICh0YWI6IFQpID0+IGJvb2xlYW4gPSAoXykgPT4gdHJ1ZTtcclxuXHJcblx0Z2V0IHNob3dIZWFkZXIoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5fc2hvd0hlYWRlcjtcclxuXHR9XHJcblxyXG5cdEBPdXRwdXQoKSBhY3RpdmVUYWJFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xyXG5cdGNoZWNraW5nUGVybWlzc2lvbiA9IGZhbHNlO1xyXG5cdGFjdGl2ZVRhYjogVFsnaWQnXTtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdGluamVjdG9yOiBJbmplY3RvcixcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgZXZhbHVhdG9yc1NlcnZpY2U6IEV2YWx1YXRvcnNTZXJ2aWNlXHJcblx0KSB7XHJcblx0XHRzdXBlcihpbmplY3Rvcik7XHJcblx0fVxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5jaGVja1RhYnNQZXJtaXNzaW9ucygpO1xyXG5cdH1cclxuXHJcblx0Y2hlY2tUYWJzUGVybWlzc2lvbnMoKSB7XHJcblx0XHR0aGlzLmNoZWNraW5nUGVybWlzc2lvbiA9IHRydWU7XHJcblxyXG5cdFx0Y29uc3QgcGVybWlzc2lvbkNhbGxzOiBPYnNlcnZhYmxlPHsgaWQ6IFRbJ2lkJ107IGVuYWJsZWQ6IGJvb2xlYW47IHNlY29uZGFyeVRhYj86IGJvb2xlYW4gfT5bXSA9IFtdO1xyXG5cclxuXHRcdGNvbnN0IGNyZWF0ZVBlcm1pc3Npb25DYWxsID0gKFxyXG5cdFx0XHRpZDogVFsnaWQnXSxcclxuXHRcdFx0cGVybWlzc2lvbj86IHN0cmluZyxcclxuXHRcdFx0c2Vjb25kYXJ5VGFiOiBib29sZWFuID0gZmFsc2VcclxuXHRcdCk6IE9ic2VydmFibGU8eyBpZDogVFsnaWQnXTsgZW5hYmxlZDogYm9vbGVhbjsgc2Vjb25kYXJ5VGFiPzogYm9vbGVhbiB9PiA9PiB7XHJcblx0XHRcdGlmIChwZXJtaXNzaW9uKSB7XHJcblx0XHRcdFx0cmV0dXJuIGZyb20odGhpcy5ldmFsdWF0b3JzU2VydmljZS5ldmFsdWF0ZVJ1bGUocGVybWlzc2lvbikpLnBpcGUoXHJcblx0XHRcdFx0XHRtYXAoKHJlcykgPT4gKHsgaWQsIGVuYWJsZWQ6IHJlcywgc2Vjb25kYXJ5VGFiIH0pKVxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIG9mKHsgaWQsIGVuYWJsZWQ6IHRydWUsIHNlY29uZGFyeVRhYiB9KTtcclxuXHRcdH07XHJcblxyXG5cdFx0dGhpcy50YWJzLmZvckVhY2goKHRhYikgPT4ge1xyXG5cdFx0XHRwZXJtaXNzaW9uQ2FsbHMucHVzaChjcmVhdGVQZXJtaXNzaW9uQ2FsbCh0YWIuaWQsIHRhYi5wZXJtaXNzaW9uKSk7XHJcblxyXG5cdFx0XHR0YWIuc2Vjb25kYXJ5X3RhYnM/LmZvckVhY2goKHN1YlRhYikgPT4ge1xyXG5cdFx0XHRcdHBlcm1pc3Npb25DYWxscy5wdXNoKGNyZWF0ZVBlcm1pc3Npb25DYWxsKHN1YlRhYi5pZCwgc3ViVGFiLnBlcm1pc3Npb24sIHRydWUpKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHJcblx0XHRmb3JrSm9pbihwZXJtaXNzaW9uQ2FsbHMpXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuXHRcdFx0XHR0YXAoKHJlc3VsdHMpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IHNlY29uZGFyeVRhYnNQZXJtcyA9IHJlc3VsdHMuZmlsdGVyKChyKSA9PiByLnNlY29uZGFyeVRhYik7XHJcblx0XHRcdFx0XHRjb25zdCBwcmltYXJ5VGFic1Blcm1zID0gcmVzdWx0cy5maWx0ZXIoKHIpID0+ICFyLnNlY29uZGFyeVRhYik7XHJcblxyXG5cdFx0XHRcdFx0bGV0IGZpbHRlcmVkVGFicyA9IGNsb25lRGVlcCh0aGlzLnRhYnMpO1xyXG5cclxuXHRcdFx0XHRcdGZpbHRlcmVkVGFicyA9IGZpbHRlcmVkVGFic1xyXG5cdFx0XHRcdFx0XHQuZmlsdGVyKCh0YWIpID0+IHByaW1hcnlUYWJzUGVybXMuc29tZSgocCkgPT4gcC5pZCA9PT0gdGFiLmlkICYmIHAuZW5hYmxlZCkpXHJcblx0XHRcdFx0XHRcdC5tYXAoKHRhYikgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0YWIuc2Vjb25kYXJ5X3RhYnM/Lmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGFiLnNlY29uZGFyeV90YWJzID0gdGFiLnNlY29uZGFyeV90YWJzLmZpbHRlcigoc3ViKSA9PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRzZWNvbmRhcnlUYWJzUGVybXMuc29tZSgocCkgPT4gcC5pZCA9PT0gc3ViLmlkICYmIHAuZW5hYmxlZClcclxuXHRcdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0YWI7XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cclxuXHRcdFx0XHRcdHRoaXMudGFicyA9IGZpbHRlcmVkVGFicztcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKCkgPT4ge1xyXG5cdFx0XHRcdGlmICh0aGlzLnRhYnMubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHR0aGlzLmFjdGl2YXRlVGFiKHRoaXMudGFic1swXSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuY2hlY2tpbmdQZXJtaXNzaW9uID0gZmFsc2U7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHRnZXQgYWN0aXZhdGVkVGFiSWQoKTogVFsnaWQnXSB7XHJcblx0XHRyZXR1cm4gdGhpcy5hY3RpdmVUYWIgPz8gdGhpcy50YWJzPy5bMF0/LmlkO1xyXG5cdH1cclxuXHJcblx0Z2V0IGFjdGl2YXRlZFRhYigpOiBUWydpZCddIHtcclxuXHRcdHJldHVybiB0aGlzLnRhYnMuZmluZCgoeyBpZCB9KSA9PiBpZCA9PT0gdGhpcy5hY3RpdmF0ZWRUYWJJZCk7XHJcblx0fVxyXG5cclxuXHRhY3RpdmF0ZVRhYih0YWI6IFQpIHtcclxuXHRcdHRoaXMuYWN0aXZlVGFiID0gdGFiLmlkO1xyXG5cdFx0dGhpcy5hY3RpdmVUYWJFbWl0dGVyLmVtaXQodGFiKTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcblx0XHR0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcblx0fVxyXG5cclxuXHRpc0VuYWJsZWRUYWIodGFiSWQ6IFQpIHtcclxuXHRcdHJldHVybiB0YWJJZC5pc0VuYWJsZSA/PyB0cnVlO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBuZGYtdGFicy13cmFwcGVyIHJvdW5kZWQtbWQgb3ZlcmZsb3ctYXV0byBweC0wLjVcIiAqbmdJZj1cIiFjaGVja2luZ1Blcm1pc3Npb25cIj5cclxuXHQ8ZGl2XHJcblx0XHRjbGFzcz1cInRhYnMtaGVhZGVyIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciB3LWZ1bGwgYm9yZGVyLWJcIlxyXG5cdFx0W0B2aXNpYmlsaXR5U2xpZGVdPVwic2hvd0hlYWRlclwiXHJcblx0XHRbY2xhc3Mub3ZlcmZsb3ctaGlkZGVuXT1cIiFzaG93SGVhZGVyXCJcclxuXHQ+XHJcblx0XHQ8ZGl2IGNsYXNzPVwidGFicy13cmFwcGVyIGZsZXgganVzdGlmeS1zdGFydCBpdGVtcy1jZW50ZXIgZ2FwLTIuNSBzZWxmLXN0cmV0Y2hcIj5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIj5cclxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFbmFibGVkVGFiKHRhYikgJiYgaXNBbGxvd2RUYWJGbih0YWIpXCI+XHJcblx0XHRcdFx0XHQ8ZGl2XHJcblx0XHRcdFx0XHRcdFtuZ0NsYXNzXT1cIntcclxuXHRcdFx0XHRcdFx0XHQnc2VsZWN0ZWQtdGFiJzogYWN0aXZlVGFiID09PSB0YWIuaWRcclxuXHRcdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwidGFiLWl0ZW0gZmxleCBwLTQganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIGdhcC0yLjUgcm91bmRlZC10LW1kIGZvbnQtbWVkaXVtIHRleHQteGwgY3Vyc29yLXBvaW50ZXJcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwiYWN0aXZhdGVUYWIodGFiKVwiXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZVxyXG5cdFx0XHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYkhlYWRlciB8fCBkZWZhdWx0SGVhZGVyXCJcclxuXHRcdFx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHRhYiB9XCJcclxuXHRcdFx0XHRcdFx0PjwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxuZy10ZW1wbGF0ZVxyXG5cdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJPcHRpb25zXCJcclxuXHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBhY3RpdmF0ZWRUYWIgfVwiXHJcblx0XHQ+PC9uZy10ZW1wbGF0ZT5cclxuXHQ8L2Rpdj5cclxuXHQ8bmctdGVtcGxhdGVcclxuXHRcdFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYkJvZHkgfHwgZGVmYXVsdEJvZHlcIlxyXG5cdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBhY3RpdmF0ZWRUYWIgfVwiXHJcblx0PjwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SGVhZGVyIGxldC10YWI+e3sgdGFiLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Qm9keT5EZWZhdWx0IEJvZHk8L25nLXRlbXBsYXRlPlxyXG4iXX0=
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtdGFicy9jb21wb25lbnQvbmRmLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtdGFicy9jb21wb25lbnQvbmRmLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFVLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQWlCM0QsTUFBTSxPQUFPLGdCQUE2QyxTQUFRLGFBQWE7SUFvQjlFLFlBQ0MsUUFBa0IsRUFDRCxpQkFBb0M7UUFFckQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWhCOUMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFLbEIsa0JBQWEsR0FBd0IsQ0FBQyxD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LGVBQWUsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzs0QkFDdEQsVUFBVSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7eUJBQ3JELENBQUM7cUJBQ0Y7aUJBQ0Q7K0hBRWtELFNBQVM7c0JBQTFELFlBQVk7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDTSxhQUFhO3NCQUFsRSxZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ0osT0FBTztzQkFBdEQsWUFBWTt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNyQyxJQUFJO3NCQUFaLEtBQUs7Z0JBR08sVUFBVTtzQkFBdEIsS0FBSztnQkFJRyxhQUFhO3NCQUFyQixLQUFLO2dCQU1JLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgZnJvbSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IFRhYlR5cGUgfSBmcm9tICcuLi90YWIudHlwZSc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEV2YWx1YXRvcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL3Blcm1pc3Npb25zL2V2YWx1YXRvcnMuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ25kZi10YWJzJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vbmRmLXRhYnMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL25kZi10YWJzLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0aG9zdDogeyBjbGFzczogJ3ctZnVsbCBoLWZ1bGwnIH0sXHJcblx0YW5pbWF0aW9uczogW1xyXG5cdFx0dHJpZ2dlcigndmlzaWJpbGl0eVNsaWRlJywgW1xyXG5cdFx0XHRzdGF0ZSgndHJ1ZScsIHN0eWxlKHsgaGVpZ2h0OiAnKicsIHZpc2liaWxpdHk6ICcqJyB9KSksXHJcblx0XHRcdHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgaGVpZ2h0OiAnMCcsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKSxcclxuXHRcdFx0dHJhbnNpdGlvbignZmFsc2UgPT4gdHJ1ZScsIGFuaW1hdGUoJzE1MG1zIGVhc2Utb3V0JykpLFxyXG5cdFx0XHR0cmFuc2l0aW9uKCd0cnVlID0+IGZhbHNlJywgYW5pbWF0ZSgnMTUwbXMgZWFzZS1pbicpKVxyXG5cdFx0XSlcclxuXHRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZGZUYWJzQ29tcG9uZW50PFQgZXh0ZW5kcyBUYWJUeXBlPFRbJ2lkJ10+PiBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdEBDb250ZW50Q2hpbGQoJ3RhYkhlYWRlcicsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGFiSGVhZGVyPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHRAQ29udGVudENoaWxkKCdoZWFkZXJPcHRpb25zJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBoZWFkZXJPcHRpb25zPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHRAQ29udGVudENoaWxkKCd0YWJCb2R5JywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0YWJCb2R5OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cdEBJbnB1dCgpIHRhYnM6IFRbXTtcclxuXHJcblx0cHJpdmF0ZSBfc2hvd0hlYWRlciA9IHRydWU7XHJcblx0QElucHV0KCkgc2V0IHNob3dIZWFkZXIodmFsdWU6IGJvb2xlYW4pIHtcclxuXHRcdHRoaXMuX3Nob3dIZWFkZXIgPSB2YWx1ZTtcclxuXHR9XHJcblxyXG5cdEBJbnB1dCgpIGlzQWxsb3dkVGFiRm46ICh0YWI6IFQpID0+IGJvb2xlYW4gPSAoXykgPT4gdHJ1ZTtcclxuXHJcblx0Z2V0IHNob3dIZWFkZXIoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5fc2hvd0hlYWRlcjtcclxuXHR9XHJcblxyXG5cdEBPdXRwdXQoKSBhY3RpdmVUYWJFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xyXG5cdGNoZWNraW5nUGVybWlzc2lvbiA9IGZhbHNlO1xyXG5cdGFjdGl2ZVRhYjogVFsnaWQnXTtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdGluamVjdG9yOiBJbmplY3RvcixcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgZXZhbHVhdG9yc1NlcnZpY2U6IEV2YWx1YXRvcnNTZXJ2aWNlXHJcblx0KSB7XHJcblx0XHRzdXBlcihpbmplY3Rvcik7XHJcblx0fVxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5jaGVja1RhYnNQZXJtaXNzaW9ucygpO1xyXG5cdH1cclxuXHJcblx0Y2hlY2tUYWJzUGVybWlzc2lvbnMoKSB7XHJcblx0XHR0aGlzLmNoZWNraW5nUGVybWlzc2lvbiA9IHRydWU7XHJcblxyXG5cdFx0Y29uc3QgcGVybWlzc2lvbkNhbGxzOiBPYnNlcnZhYmxlPHsgaWQ6IFRbJ2lkJ107IGVuYWJsZWQ6IGJvb2xlYW47IHNlY29uZGFyeVRhYj86IGJvb2xlYW4gfT5bXSA9IFtdO1xyXG5cclxuXHRcdGNvbnN0IGNyZWF0ZVBlcm1pc3Npb25DYWxsID0gKFxyXG5cdFx0XHRpZDogVFsnaWQnXSxcclxuXHRcdFx0cGVybWlzc2lvbj86IHN0cmluZyxcclxuXHRcdFx0c2Vjb25kYXJ5VGFiOiBib29sZWFuID0gZmFsc2VcclxuXHRcdCk6IE9ic2VydmFibGU8eyBpZDogVFsnaWQnXTsgZW5hYmxlZDogYm9vbGVhbjsgc2Vjb25kYXJ5VGFiPzogYm9vbGVhbiB9PiA9PiB7XHJcblx0XHRcdGlmIChwZXJtaXNzaW9uKSB7XHJcblx0XHRcdFx0cmV0dXJuIGZyb20odGhpcy5ldmFsdWF0b3JzU2VydmljZS5ldmFsdWF0ZVJ1bGUocGVybWlzc2lvbikpLnBpcGUoXHJcblx0XHRcdFx0XHRtYXAoKHJlcykgPT4gKHsgaWQsIGVuYWJsZWQ6IHJlcywgc2Vjb25kYXJ5VGFiIH0pKVxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIG9mKHsgaWQsIGVuYWJsZWQ6IHRydWUsIHNlY29uZGFyeVRhYiB9KTtcclxuXHRcdH07XHJcblxyXG5cdFx0dGhpcy50YWJzLmZvckVhY2goKHRhYikgPT4ge1xyXG5cdFx0XHRwZXJtaXNzaW9uQ2FsbHMucHVzaChjcmVhdGVQZXJtaXNzaW9uQ2FsbCh0YWIuaWQsIHRhYi5wZXJtaXNzaW9uKSk7XHJcblxyXG5cdFx0XHR0YWIuc2Vjb25kYXJ5X3RhYnM/LmZvckVhY2goKHN1YlRhYikgPT4ge1xyXG5cdFx0XHRcdHBlcm1pc3Npb25DYWxscy5wdXNoKGNyZWF0ZVBlcm1pc3Npb25DYWxsKHN1YlRhYi5pZCwgc3ViVGFiLnBlcm1pc3Npb24sIHRydWUpKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHJcblx0XHRmb3JrSm9pbihwZXJtaXNzaW9uQ2FsbHMpXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuXHRcdFx0XHR0YXAoKHJlc3VsdHMpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IHNlY29uZGFyeVRhYnNQZXJtcyA9IHJlc3VsdHMuZmlsdGVyKChyKSA9PiByLnNlY29uZGFyeVRhYik7XHJcblx0XHRcdFx0XHRjb25zdCBwcmltYXJ5VGFic1Blcm1zID0gcmVzdWx0cy5maWx0ZXIoKHIpID0+ICFyLnNlY29uZGFyeVRhYik7XHJcblxyXG5cdFx0XHRcdFx0bGV0IGZpbHRlcmVkVGFicyA9IGNsb25lRGVlcCh0aGlzLnRhYnMpO1xyXG5cclxuXHRcdFx0XHRcdGZpbHRlcmVkVGFicyA9IGZpbHRlcmVkVGFic1xyXG5cdFx0XHRcdFx0XHQuZmlsdGVyKCh0YWIpID0+IHByaW1hcnlUYWJzUGVybXMuc29tZSgocCkgPT4gcC5pZCA9PT0gdGFiLmlkICYmIHAuZW5hYmxlZCkpXHJcblx0XHRcdFx0XHRcdC5tYXAoKHRhYikgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0YWIuc2Vjb25kYXJ5X3RhYnM/Lmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGFiLnNlY29uZGFyeV90YWJzID0gdGFiLnNlY29uZGFyeV90YWJzLmZpbHRlcigoc3ViKSA9PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRzZWNvbmRhcnlUYWJzUGVybXMuc29tZSgocCkgPT4gcC5pZCA9PT0gc3ViLmlkICYmIHAuZW5hYmxlZClcclxuXHRcdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0YWI7XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cclxuXHRcdFx0XHRcdHRoaXMudGFicyA9IGZpbHRlcmVkVGFicztcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKCkgPT4ge1xyXG5cdFx0XHRcdGlmICh0aGlzLnRhYnMubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHR0aGlzLmFjdGl2YXRlVGFiKHRoaXMudGFic1swXSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuY2hlY2tpbmdQZXJtaXNzaW9uID0gZmFsc2U7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHRnZXQgYWN0aXZhdGVkVGFiSWQoKTogVFsnaWQnXSB7XHJcblx0XHRyZXR1cm4gdGhpcy5hY3RpdmVUYWIgPz8gdGhpcy50YWJzPy5bMF0/LmlkO1xyXG5cdH1cclxuXHJcblx0Z2V0IGFjdGl2YXRlZFRhYigpOiBUWydpZCddIHtcclxuXHRcdHJldHVybiB0aGlzLnRhYnMuZmluZCgoeyBpZCB9KSA9PiBpZCA9PT0gdGhpcy5hY3RpdmF0ZWRUYWJJZCk7XHJcblx0fVxyXG5cclxuXHRhY3RpdmF0ZVRhYih0YWI6IFQpIHtcclxuXHRcdHRoaXMuYWN0aXZlVGFiID0gdGFiLmlkO1xyXG5cdFx0dGhpcy5hY3RpdmVUYWJFbWl0dGVyLmVtaXQodGFiKTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcblx0XHR0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcblx0fVxyXG5cclxuXHRpc0VuYWJsZWRUYWIodGFiSWQ6IFQpIHtcclxuXHRcdHJldHVybiB0YWJJZC5pc0VuYWJsZSA/PyB0cnVlO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBuZGYtdGFicy13cmFwcGVyIHJvdW5kZWQtbWQgICBweC0wLjVcIiAqbmdJZj1cIiFjaGVja2luZ1Blcm1pc3Npb25cIj5cclxuXHQ8ZGl2XHJcblx0XHRjbGFzcz1cInRhYnMtaGVhZGVyIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciB3LWZ1bGwgYm9yZGVyLWIgcHJpbnQ6aGlkZGVuXCJcclxuXHRcdFtAdmlzaWJpbGl0eVNsaWRlXT1cInNob3dIZWFkZXJcIlxyXG5cdFx0W2NsYXNzLm92ZXJmbG93LWhpZGRlbl09XCIhc2hvd0hlYWRlclwiXHJcblx0PlxyXG5cdFx0PGRpdiBjbGFzcz1cInRhYnMtd3JhcHBlciBmbGV4IGp1c3RpZnktc3RhcnQgaXRlbXMtY2VudGVyIGdhcC0yLjUgc2VsZi1zdHJldGNoXCI+XHJcblx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCI+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRW5hYmxlZFRhYih0YWIpICYmIGlzQWxsb3dkVGFiRm4odGFiKVwiPlxyXG5cdFx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0XHRbbmdDbGFzc109XCJ7XHJcblx0XHRcdFx0XHRcdFx0J3NlbGVjdGVkLXRhYic6IGFjdGl2ZVRhYiA9PT0gdGFiLmlkXHJcblx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0XHRjbGFzcz1cInRhYi1pdGVtIGZsZXggcC00IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBnYXAtMi41IHJvdW5kZWQtdC1tZCBmb250LW1lZGl1bSB0ZXh0LXhsIGN1cnNvci1wb2ludGVyXCJcclxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cImFjdGl2YXRlVGFiKHRhYilcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGVcclxuXHRcdFx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWJIZWFkZXIgfHwgZGVmYXVsdEhlYWRlclwiXHJcblx0XHRcdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0YWIgfVwiXHJcblx0XHRcdFx0XHRcdD48L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8bmctdGVtcGxhdGVcclxuXHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyT3B0aW9uc1wiXHJcblx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogYWN0aXZhdGVkVGFiIH1cIlxyXG5cdFx0PjwvbmctdGVtcGxhdGU+XHJcblx0PC9kaXY+XHJcblx0PG5nLXRlbXBsYXRlXHJcblx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWJCb2R5IHx8IGRlZmF1bHRCb2R5XCJcclxuXHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogYWN0aXZhdGVkVGFiIH1cIlxyXG5cdD48L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEhlYWRlciBsZXQtdGFiPnt7IHRhYi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEJvZHk+RGVmYXVsdCBCb2R5PC9uZy10ZW1wbGF0ZT5cclxuIl19