nuxeo-development-framework 5.4.6 → 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 (52) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +633 -346
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/ndf-config-editor/services/dummy-data.js +2 -2
  4. package/esm2015/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.js +62 -16
  5. package/esm2015/lib/components/ndf-filters/models/base-field-config.js +1 -1
  6. package/esm2015/lib/components/ndf-filters/pipes/check-condition.pipe.js +3 -3
  7. package/esm2015/lib/components/reports/ndf-reports/base/base-custom-report.js +41 -0
  8. package/esm2015/lib/components/reports/ndf-reports/base/base-report.js +3 -2
  9. package/esm2015/lib/components/reports/ndf-reports/base/index.js +5 -0
  10. package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.component.js +1 -1
  11. package/esm2015/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.js +49 -0
  12. package/esm2015/lib/components/reports/ndf-reports/components/index.js +2 -1
  13. package/esm2015/lib/components/reports/ndf-reports/constants/charts-types.js +2 -1
  14. package/esm2015/lib/components/reports/ndf-reports/models/custom-definition.js +2 -0
  15. package/esm2015/lib/components/reports/ndf-reports/models/dialog-data.js +1 -1
  16. package/esm2015/lib/components/reports/ndf-reports/models/dynamic-line.js +1 -1
  17. package/esm2015/lib/components/reports/ndf-reports/models/graph-definition.js +2 -0
  18. package/esm2015/lib/components/reports/ndf-reports/models/index.js +3 -2
  19. package/esm2015/lib/components/reports/ndf-reports/models/report-config.js +1 -1
  20. package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +4 -3
  21. package/esm2015/lib/components/reports/ndf-reports/services/custom-reports-registry.service.js +132 -0
  22. package/esm2015/lib/components/reports/ndf-reports/services/index.js +2 -1
  23. package/esm2015/lib/components/reports/ndf-reports/services/report-config-mapper.service.js +8 -1
  24. package/esm2015/lib/components/spell-checker-field/spell-checker-field.module.js +1 -1
  25. package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo.dialog.js +7 -6
  26. package/esm2015/lib/shared/evaluator/evaluator.js +3 -2
  27. package/esm2015/lib/shared/evaluator/types.js +1 -1
  28. package/fesm2015/nuxeo-development-framework.js +591 -324
  29. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  30. package/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.d.ts +10 -3
  31. package/lib/components/ndf-filters/models/base-field-config.d.ts +2 -2
  32. package/lib/components/ndf-filters/pipes/check-condition.pipe.d.ts +1 -1
  33. package/lib/components/reports/ndf-reports/base/base-custom-report.d.ts +38 -0
  34. package/lib/components/reports/ndf-reports/base/index.d.ts +4 -0
  35. package/lib/components/reports/ndf-reports/components/_parts/report-actions/report-actions.component.d.ts +1 -0
  36. package/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.d.ts +14 -0
  37. package/lib/components/reports/ndf-reports/components/index.d.ts +1 -0
  38. package/lib/components/reports/ndf-reports/constants/charts-types.d.ts +1 -0
  39. package/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.d.ts +1 -0
  40. package/lib/components/reports/ndf-reports/models/custom-definition.d.ts +11 -0
  41. package/lib/components/reports/ndf-reports/models/dialog-data.d.ts +1 -1
  42. package/lib/components/reports/ndf-reports/models/dynamic-line.d.ts +1 -1
  43. package/lib/components/reports/ndf-reports/models/index.d.ts +2 -1
  44. package/lib/components/reports/ndf-reports/models/report-config.d.ts +3 -2
  45. package/lib/components/reports/ndf-reports/ndf-reports.module.d.ts +21 -20
  46. package/lib/components/reports/ndf-reports/services/custom-reports-registry.service.d.ts +83 -0
  47. package/lib/components/reports/ndf-reports/services/index.d.ts +1 -0
  48. package/lib/components/reports/ndf-reports/services/report-config-mapper.service.d.ts +6 -1
  49. package/lib/shared/evaluator/types.d.ts +1 -1
  50. package/package.json +1 -1
  51. package/esm2015/lib/components/reports/ndf-reports/models/graph.js +0 -2
  52. /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,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=
@@ -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=
@@ -0,0 +1,41 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { BehaviorSubject, ReplaySubject } from 'rxjs';
3
+ import _ from 'lodash';
4
+ import { DestroySubject } from '../../../../shared/components';
5
+ import * as i0 from "@angular/core";
6
+ export class BaseCustomReport extends DestroySubject {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.direction = 'rtl';
10
+ this._criteriaSub = new ReplaySubject(null);
11
+ this.criteria$ = this._criteriaSub.asObservable();
12
+ this._configSub = new BehaviorSubject(null);
13
+ this.config$ = this._configSub.asObservable();
14
+ }
15
+ set criteria(value) {
16
+ this._criteria = _.cloneDeep(value);
17
+ this._criteriaSub.next(this._criteria);
18
+ }
19
+ set config(obj) {
20
+ if (obj) {
21
+ this._configSub.next(obj);
22
+ }
23
+ }
24
+ get config() {
25
+ return this._configSub.getValue();
26
+ }
27
+ }
28
+ BaseCustomReport.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseCustomReport, deps: null, target: i0.ɵɵFactoryTarget.Directive });
29
+ BaseCustomReport.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: BaseCustomReport, inputs: { direction: "direction", data: "data", criteria: "criteria", config: "config" }, usesInheritance: true, ngImport: i0 });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseCustomReport, decorators: [{
31
+ type: Directive
32
+ }], propDecorators: { direction: [{
33
+ type: Input
34
+ }], data: [{
35
+ type: Input
36
+ }], criteria: [{
37
+ type: Input
38
+ }], config: [{
39
+ type: Input
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jdXN0b20tcmVwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2Jhc2UvYmFzZS1jdXN0b20tcmVwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBSy9ELE1BQU0sT0FBZ0IsZ0JBQWlCLFNBQVEsY0FBYztJQUQ3RDs7UUFFVSxjQUFTLEdBQWMsS0FBSyxDQUFDO1FBRzVCLGlCQUFZLEdBQUcsSUFBSSxhQUFhLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQ2hFLGNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBT25DLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBb0IsSUFBSSxDQUFDLENBQUM7UUFDcEUsWUFBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7S0FXekM7SUFqQkEsSUFBYSxRQUFRLENBQUMsS0FBb0I7UUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBS0QsSUFBYSxNQUFNLENBQUMsR0FBc0I7UUFDekMsSUFBSSxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMxQjtJQUNGLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7OEdBdkJvQixnQkFBZ0I7a0dBQWhCLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQURyQyxTQUFTOzhCQUVBLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUtPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBUU8sTUFBTTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IERlc3Ryb3lTdWJqZWN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xyXG5cclxuaW1wb3J0IHsgQ3JpdGVyaWFNb2RlbCwgQ3VzdG9tQ2hhcnRDb25maWcsIFJlcG9ydFJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuQERpcmVjdGl2ZSgpIC8vR3JhcGhDaGFydCB8IER5bmFtaWNMaW5lQ2hhcnRcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDdXN0b21SZXBvcnQgZXh0ZW5kcyBEZXN0cm95U3ViamVjdCB7XHJcblx0QElucHV0KCkgZGlyZWN0aW9uOiBEaXJlY3Rpb24gPSAncnRsJztcclxuXHRASW5wdXQoKSBkYXRhOiBSZXBvcnRSZXNwb25zZU1vZGVsO1xyXG5cclxuXHRwcm90ZWN0ZWQgX2NyaXRlcmlhU3ViID0gbmV3IFJlcGxheVN1YmplY3Q8Q3JpdGVyaWFNb2RlbD4obnVsbCk7XHJcblx0Y3JpdGVyaWEkID0gdGhpcy5fY3JpdGVyaWFTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0cHJpdmF0ZSBfY3JpdGVyaWE6IENyaXRlcmlhTW9kZWw7XHJcblx0QElucHV0KCkgc2V0IGNyaXRlcmlhKHZhbHVlOiBDcml0ZXJpYU1vZGVsKSB7XHJcblx0XHR0aGlzLl9jcml0ZXJpYSA9IF8uY2xvbmVEZWVwKHZhbHVlKTtcclxuXHRcdHRoaXMuX2NyaXRlcmlhU3ViLm5leHQodGhpcy5fY3JpdGVyaWEpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIF9jb25maWdTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEN1c3RvbUNoYXJ0Q29uZmlnPihudWxsKTtcclxuXHRjb25maWckID0gdGhpcy5fY29uZmlnU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHRASW5wdXQoKSBzZXQgY29uZmlnKG9iajogQ3VzdG9tQ2hhcnRDb25maWcpIHtcclxuXHRcdGlmIChvYmopIHtcclxuXHRcdFx0dGhpcy5fY29uZmlnU3ViLm5leHQob2JqKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGdldCBjb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fY29uZmlnU3ViLmdldFZhbHVlKCk7XHJcblx0fdiwXHJcbn1cclxuIl19
@@ -43,7 +43,8 @@ export class BaseReport extends DestroySubject {
43
43
  const mappers = {
44
44
  [REPORT_MODE.graph]: this._configMapperService.prepareGraphConfig,
45
45
  [REPORT_MODE.digit]: this._configMapperService.prepareDigitConfig,
46
- [REPORT_MODE.dynamicLine]: this._configMapperService.prepareGraphLineConfig
46
+ [REPORT_MODE.dynamicLine]: this._configMapperService.prepareGraphLineConfig,
47
+ [REPORT_MODE.custom]: this._configMapperService.prepareCustomConfig
47
48
  };
48
49
  return mappers[obj.mode].call(this._configMapperService, obj);
49
50
  }
@@ -65,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
65
66
  }], onOpen: [{
66
67
  type: Output
67
68
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1yZXBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvYmFzZS9iYXNlLXJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBWSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3hELE1BQU0sT0FBZ0IsVUFHcEIsU0FBUSxjQUFjO0lBc0N2QixZQUFtQixRQUFrQjtRQUNwQyxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFyQ3BCLHlCQUFvQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFM0UsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQzFELFlBQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBWWhDLGNBQVMsR0FBYyxLQUFLLENBQUM7UUFHNUIsaUJBQVksR0FBRyxJQUFJLGFBQWEsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDaEUsY0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7UUFXbkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUduQyxDQUFDO1FBRUssV0FBTSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0lBSXJELENBQUM7SUFsQ0QsSUFBYSxVQUFVLENBQUMsR0FBZ0I7UUFDdkMsSUFBSSxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDL0M7SUFDRixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFRRCxJQUFhLFFBQVEsQ0FBQyxLQUFvQjtRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQWFELFFBQVE7UUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFnQjtRQUN0QyxNQUFNLE9BQU8sR0FBRztZQUNmLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0I7WUFDakUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQjtZQUNqRSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsc0JBQXNCO1NBQzNFLENBQUM7UUFFRixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQVksQ0FBQztJQUMxRSxDQUFDOzt3R0E1RG9CLFVBQVU7NEZBQVYsVUFBVTs0RkFBVixVQUFVO2tCQUQvQixTQUFTOytGQVVJLFVBQVU7c0JBQXRCLEtBQUs7Z0JBVUcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS08sUUFBUTtzQkFBcEIsS0FBSztnQkFTSSxVQUFVO3NCQUFuQixNQUFNO2dCQUtHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDcml0ZXJpYU1vZGVsLCBSZXBvcnRDb25maWdNb2RlbCwgUmVwb3J0RGVmaW5pdGlvbk1vZGVsLCBSZXBvcnRSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQgeyBEZXN0cm95U3ViamVjdCB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFJFUE9SVF9NT0RFIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgUmVwb3J0Q29uZmlnTWFwcGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVJlcG9ydDxcclxuXHRURGVmaW5pdGlvbiBleHRlbmRzIFJlcG9ydERlZmluaXRpb25Nb2RlbCxcclxuXHRUQ29uZmlnIGV4dGVuZHMgUmVwb3J0Q29uZmlnTW9kZWxcclxuPiBleHRlbmRzIERlc3Ryb3lTdWJqZWN0IHtcclxuXHRwcml2YXRlIHJlYWRvbmx5IF9jb25maWdNYXBwZXJTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoUmVwb3J0Q29uZmlnTWFwcGVyU2VydmljZSk7XHJcblxyXG5cdHByb3RlY3RlZCBfY29uZmlnU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUQ29uZmlnPihudWxsKTtcclxuXHRjb25maWckID0gdGhpcy5fY29uZmlnU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHRASW5wdXQoKSBzZXQgZGVmaW5pdGlvbihvYmo6IFREZWZpbml0aW9uKSB7XHJcblx0XHRpZiAob2JqKSB7XHJcblx0XHRcdHRoaXMuX2NvbmZpZ1N1Yi5uZXh0KHRoaXMuX3ByZXBhcmVDb25maWcob2JqKSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRnZXQgY29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2NvbmZpZ1N1Yi5nZXRWYWx1ZSgpO1xyXG5cdH1cclxuXHJcblx0QElucHV0KCkgZGlyZWN0aW9uOiBEaXJlY3Rpb24gPSAncnRsJztcclxuXHRASW5wdXQoKSBkYXRhOiBSZXBvcnRSZXNwb25zZU1vZGVsO1xyXG5cclxuXHRwcm90ZWN0ZWQgX2NyaXRlcmlhU3ViID0gbmV3IFJlcGxheVN1YmplY3Q8Q3JpdGVyaWFNb2RlbD4obnVsbCk7XHJcblx0Y3JpdGVyaWEkID0gdGhpcy5fY3JpdGVyaWFTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0cHJpdmF0ZSBfY3JpdGVyaWE6IENyaXRlcmlhTW9kZWw7XHJcblx0QElucHV0KCkgc2V0IGNyaXRlcmlhKHZhbHVlOiBDcml0ZXJpYU1vZGVsKSB7XHJcblx0XHR0aGlzLl9jcml0ZXJpYSA9IF8uY2xvbmVEZWVwKHZhbHVlKTtcclxuXHRcdHRoaXMuX2NyaXRlcmlhU3ViLm5leHQodGhpcy5fY3JpdGVyaWEpO1xyXG5cdH1cclxuXHJcblx0Z2V0IGNyaXRlcmlhKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2NyaXRlcmlhO1xyXG5cdH1cclxuXHJcblx0QE91dHB1dCgpIG9uTmF2aWdhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuXHRcdHJlcG9ydDogVENvbmZpZztcclxuXHRcdGRhdGE6IFJlcG9ydFJlc3BvbnNlTW9kZWw7XHJcblx0fT4oKTtcclxuXHJcblx0QE91dHB1dCgpIG9uT3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8Q3JpdGVyaWFNb2RlbD4oKTtcclxuXHJcblx0Y29uc3RydWN0b3IocHVibGljIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG5cdFx0c3VwZXIoKTtcclxuXHR9XHJcblxyXG5cdG5hdmlnYXRlKCkge1xyXG5cdFx0dGhpcy5vbk5hdmlnYXRlLmVtaXQoe1xyXG5cdFx0XHRyZXBvcnQ6IHRoaXMuY29uZmlnLFxyXG5cdFx0XHRkYXRhOiB0aGlzLmRhdGFcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcHJlcGFyZUNvbmZpZyhvYmo6IFREZWZpbml0aW9uKTogVENvbmZpZyB7XHJcblx0XHRjb25zdCBtYXBwZXJzID0ge1xyXG5cdFx0XHRbUkVQT1JUX01PREUuZ3JhcGhdOiB0aGlzLl9jb25maWdNYXBwZXJTZXJ2aWNlLnByZXBhcmVHcmFwaENvbmZpZyxcclxuXHRcdFx0W1JFUE9SVF9NT0RFLmRpZ2l0XTogdGhpcy5fY29uZmlnTWFwcGVyU2VydmljZS5wcmVwYXJlRGlnaXRDb25maWcsXHJcblx0XHRcdFtSRVBPUlRfTU9ERS5keW5hbWljTGluZV06IHRoaXMuX2NvbmZpZ01hcHBlclNlcnZpY2UucHJlcGFyZUdyYXBoTGluZUNvbmZpZ1xyXG5cdFx0fTtcclxuXHJcblx0XHRyZXR1cm4gbWFwcGVyc1tvYmoubW9kZV0uY2FsbCh0aGlzLl9jb25maWdNYXBwZXJTZXJ2aWNlLCBvYmopIGFzIFRDb25maWc7XHJcblx0fVxyXG59XHJcbiJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1yZXBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvYmFzZS9iYXNlLXJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBWSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3hELE1BQU0sT0FBZ0IsVUFHcEIsU0FBUSxjQUFjO0lBc0N2QixZQUFtQixRQUFrQjtRQUNwQyxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFyQ3BCLHlCQUFvQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFM0UsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQzFELFlBQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBWWhDLGNBQVMsR0FBYyxLQUFLLENBQUM7UUFHNUIsaUJBQVksR0FBRyxJQUFJLGFBQWEsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDaEUsY0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7UUFXbkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUduQyxDQUFDO1FBRUssV0FBTSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0lBSXJELENBQUM7SUFsQ0QsSUFBYSxVQUFVLENBQUMsR0FBZ0I7UUFDdkMsSUFBSSxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDL0M7SUFDRixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFRRCxJQUFhLFFBQVEsQ0FBQyxLQUFvQjtRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQWFELFFBQVE7UUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFnQjtRQUN0QyxNQUFNLE9BQU8sR0FBRztZQUNmLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0I7WUFDakUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQjtZQUNqRSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsc0JBQXNCO1lBQzNFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUI7U0FDbkUsQ0FBQztRQUVGLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBWSxDQUFDO0lBQzFFLENBQUM7O3dHQTdEb0IsVUFBVTs0RkFBVixVQUFVOzRGQUFWLFVBQVU7a0JBRC9CLFNBQVM7K0ZBVUksVUFBVTtzQkFBdEIsS0FBSztnQkFVRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFLTyxRQUFRO3NCQUFwQixLQUFLO2dCQVNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBS0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENyaXRlcmlhTW9kZWwsIFJlcG9ydENvbmZpZ01vZGVsLCBSZXBvcnREZWZpbml0aW9uTW9kZWwsIFJlcG9ydFJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcbmltcG9ydCB7IERlc3Ryb3lTdWJqZWN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgUkVQT1JUX01PREUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBSZXBvcnRDb25maWdNYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlUmVwb3J0PFxyXG5cdFREZWZpbml0aW9uIGV4dGVuZHMgUmVwb3J0RGVmaW5pdGlvbk1vZGVsLFxyXG5cdFRDb25maWcgZXh0ZW5kcyBSZXBvcnRDb25maWdNb2RlbFxyXG4+IGV4dGVuZHMgRGVzdHJveVN1YmplY3Qge1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZ01hcHBlclNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChSZXBvcnRDb25maWdNYXBwZXJTZXJ2aWNlKTtcclxuXHJcblx0cHJvdGVjdGVkIF9jb25maWdTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRDb25maWc+KG51bGwpO1xyXG5cdGNvbmZpZyQgPSB0aGlzLl9jb25maWdTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdEBJbnB1dCgpIHNldCBkZWZpbml0aW9uKG9iajogVERlZmluaXRpb24pIHtcclxuXHRcdGlmIChvYmopIHtcclxuXHRcdFx0dGhpcy5fY29uZmlnU3ViLm5leHQodGhpcy5fcHJlcGFyZUNvbmZpZyhvYmopKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGdldCBjb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fY29uZmlnU3ViLmdldFZhbHVlKCk7XHJcblx0fVxyXG5cclxuXHRASW5wdXQoKSBkaXJlY3Rpb246IERpcmVjdGlvbiA9ICdydGwnO1xyXG5cdEBJbnB1dCgpIGRhdGE6IFJlcG9ydFJlc3BvbnNlTW9kZWw7XHJcblxyXG5cdHByb3RlY3RlZCBfY3JpdGVyaWFTdWIgPSBuZXcgUmVwbGF5U3ViamVjdDxDcml0ZXJpYU1vZGVsPihudWxsKTtcclxuXHRjcml0ZXJpYSQgPSB0aGlzLl9jcml0ZXJpYVN1Yi5hc09ic2VydmFibGUoKTtcclxuXHRwcml2YXRlIF9jcml0ZXJpYTogQ3JpdGVyaWFNb2RlbDtcclxuXHRASW5wdXQoKSBzZXQgY3JpdGVyaWEodmFsdWU6IENyaXRlcmlhTW9kZWwpIHtcclxuXHRcdHRoaXMuX2NyaXRlcmlhID0gXy5jbG9uZURlZXAodmFsdWUpO1xyXG5cdFx0dGhpcy5fY3JpdGVyaWFTdWIubmV4dCh0aGlzLl9jcml0ZXJpYSk7XHJcblx0fVxyXG5cclxuXHRnZXQgY3JpdGVyaWEoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fY3JpdGVyaWE7XHJcblx0fVxyXG5cclxuXHRAT3V0cHV0KCkgb25OYXZpZ2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG5cdFx0cmVwb3J0OiBUQ29uZmlnO1xyXG5cdFx0ZGF0YTogUmVwb3J0UmVzcG9uc2VNb2RlbDtcclxuXHR9PigpO1xyXG5cclxuXHRAT3V0cHV0KCkgb25PcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxDcml0ZXJpYU1vZGVsPigpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdH1cclxuXHJcblx0bmF2aWdhdGUoKSB7XHJcblx0XHR0aGlzLm9uTmF2aWdhdGUuZW1pdCh7XHJcblx0XHRcdHJlcG9ydDogdGhpcy5jb25maWcsXHJcblx0XHRcdGRhdGE6IHRoaXMuZGF0YVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9wcmVwYXJlQ29uZmlnKG9iajogVERlZmluaXRpb24pOiBUQ29uZmlnIHtcclxuXHRcdGNvbnN0IG1hcHBlcnMgPSB7XHJcblx0XHRcdFtSRVBPUlRfTU9ERS5ncmFwaF06IHRoaXMuX2NvbmZpZ01hcHBlclNlcnZpY2UucHJlcGFyZUdyYXBoQ29uZmlnLFxyXG5cdFx0XHRbUkVQT1JUX01PREUuZGlnaXRdOiB0aGlzLl9jb25maWdNYXBwZXJTZXJ2aWNlLnByZXBhcmVEaWdpdENvbmZpZyxcclxuXHRcdFx0W1JFUE9SVF9NT0RFLmR5bmFtaWNMaW5lXTogdGhpcy5fY29uZmlnTWFwcGVyU2VydmljZS5wcmVwYXJlR3JhcGhMaW5lQ29uZmlnLFxyXG5cdFx0XHRbUkVQT1JUX01PREUuY3VzdG9tXTogdGhpcy5fY29uZmlnTWFwcGVyU2VydmljZS5wcmVwYXJlQ3VzdG9tQ29uZmlnXHJcblx0XHR9O1xyXG5cclxuXHRcdHJldHVybiBtYXBwZXJzW29iai5tb2RlXS5jYWxsKHRoaXMuX2NvbmZpZ01hcHBlclNlcnZpY2UsIG9iaikgYXMgVENvbmZpZztcclxuXHR9XHJcbn1cclxuIl19
@@ -0,0 +1,5 @@
1
+ export * from './base-chart';
2
+ export * from './base-report';
3
+ export * from './base-graph.report';
4
+ export * from './base-custom-report';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvYmFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLGVBQWUsQ0FBQTtBQUM3QixjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsc0JBQXNCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2UtY2hhcnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1yZXBvcnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1ncmFwaC5yZXBvcnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1jdXN0b20tcmVwb3J0J1xyXG4iXX0=
@@ -53,7 +53,7 @@ export class GraphChartComponent extends BaseChart {
53
53
  }
54
54
  }
55
55
  GraphChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GraphChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
56
- GraphChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GraphChartComponent, selector: "app-graph-chart", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"report$ | async as report\">\r\n\t<div class=\"chart-legends\"></div>\r\n\t<app-chart\r\n\t\t[type]=\"report.config.type\"\r\n\t\t[data]=\"report.data\"\r\n\t\t[options]=\"report.config?.options\"\r\n\t\t[plugins]=\"report.config?.plugins\"\r\n\t\t[responsive]=\"true\"\r\n\t\t(onReady)=\"chartReady($event)\"\r\n\t\tclass=\"app-chart\"\r\n\t></app-chart>\r\n</ng-container>\r\n", styles: [":host{--chart-height: var(--graph-chart-height, 300px);display:var(--graph-chart-display, flex);flex-direction:var(--graph-chart-direction, row);justify-content:var(--graph-chart-justify-content, between);align-items:var(--graph-chart-align-items, center);grid-gap:var(--graph-chart-gap, .5rem);gap:var(--graph-chart-gap, .5rem)}.app-chart{min-width:var(--app-chart-min-width, 0);min-height:var(--app-chart-min-height, 0);height:var(--app-chart-height, auto);width:var(--app-chart-width, 100%);padding:var(--app-chart-padding, 1rem);display:flex;align-items:center;justify-content:center;align-self:stretch}@media print{.app-chart ::ng-deep canvas{max-width:100%!important}}::ng-deep .chart-legends{max-height:var(--chart-legends-height, var(--chart-height));min-width:var(--chart-legends-width, 0);overflow:auto;font-size:1rem;text-align:start;display:flex;flex-direction:column;grid-gap:.2rem;gap:.2rem;padding-block:.5rem}::ng-deep .chart-legends:empty{--chart-legends-width: 0;display:none}::ng-deep .chart-legends.has-items{--chart-legends-width: 200px}::ng-deep .chart-legends__legend{display:flex;align-items:baseline;-webkit-user-select:none;user-select:none;cursor:default}::ng-deep .chart-legends__box{width:var(--chart-legends-box-width, 8px);height:var(--chart-legends-box-height, 8px);border-radius:var(--chart-legends-radius, 50%);margin-inline:var(--chart-legends-box-inline, 0 .5rem);display:inline-block;flex-shrink:0}\n"], components: [{ type: i1.ChartComponent, selector: "app-chart", inputs: ["data", "options"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe } });
56
+ GraphChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GraphChartComponent, selector: "app-graph-chart", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"report$ | async as report\">\r\n\t<div class=\"chart-legends\"></div>\r\n\t<app-chart\r\n\t\t[type]=\"report.config.type\"\r\n\t\t[data]=\"report.data\"\r\n\t\t[options]=\"report.config?.options\"\r\n\t\t[plugins]=\"report.config?.plugins\"\r\n\t\t[responsive]=\"true\"\r\n\t\t(onReady)=\"chartReady($event)\"\r\n\t\tclass=\"app-chart\"\r\n\t></app-chart>\r\n</ng-container>\r\n", styles: [":host{--chart-height: var(--graph-chart-height, 330px);display:var(--graph-chart-display, flex);flex-direction:var(--graph-chart-direction, row);justify-content:var(--graph-chart-justify-content, between);align-items:var(--graph-chart-align-items, center);grid-gap:var(--graph-chart-gap, .5rem);gap:var(--graph-chart-gap, .5rem)}.app-chart{min-width:var(--app-chart-min-width, 0);min-height:var(--app-chart-min-height, 0);height:var(--app-chart-height, auto);width:var(--app-chart-width, 100%);padding:var(--app-chart-padding, 1rem);display:flex;align-items:center;justify-content:center;align-self:stretch}@media print{.app-chart ::ng-deep canvas{max-width:100%!important}}::ng-deep .chart-legends{max-height:var(--chart-legends-height, var(--chart-height));min-width:var(--chart-legends-width, 0);overflow:auto;font-size:1rem;text-align:start;display:flex;flex-direction:column;grid-gap:.2rem;gap:.2rem;padding-block:.5rem}::ng-deep .chart-legends:empty{--chart-legends-width: 0;display:none}::ng-deep .chart-legends.has-items{--chart-legends-width: 200px}::ng-deep .chart-legends__legend{display:flex;align-items:baseline;-webkit-user-select:none;user-select:none;cursor:default}::ng-deep .chart-legends__box{width:var(--chart-legends-box-width, 8px);height:var(--chart-legends-box-height, 8px);border-radius:var(--chart-legends-radius, 50%);margin-inline:var(--chart-legends-box-inline, 0 .5rem);display:inline-block;flex-shrink:0}\n"], components: [{ type: i1.ChartComponent, selector: "app-chart", inputs: ["data", "options"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe } });
57
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GraphChartComponent, decorators: [{
58
58
  type: Component,
59
59
  args: [{
@@ -0,0 +1,49 @@
1
+ import { Component, ViewChild, ViewContainerRef } from '@angular/core';
2
+ import { BaseReport } from '../../base';
3
+ import { CustomReportsRegistry } from '../../services';
4
+ import * as i0 from "@angular/core";
5
+ export class CustomReportComponent extends BaseReport {
6
+ constructor() {
7
+ super(...arguments);
8
+ this._registeredComponents = this.injector.get(CustomReportsRegistry);
9
+ }
10
+ ngOnInit() {
11
+ /* const componentType = this._registeredComponents.getComponent(this.reportDefinition.type);
12
+ if (componentType) {
13
+ this._componentRef = this.dynamicComponent.renderComponent(componentType, this.container);
14
+ this._prepareValueAccessor();
15
+ this._prepareComponent(componentType);
16
+ }*/
17
+ }
18
+ ngOnChanges(changes) {
19
+ if (!this._componentRef) {
20
+ return;
21
+ }
22
+ Object.keys(changes).forEach((key) => {
23
+ this._componentRef.instance[key] = changes[key].currentValue;
24
+ });
25
+ this._componentRef.changeDetectorRef.markForCheck();
26
+ }
27
+ ngOnDestroy() {
28
+ if (this._componentRef) {
29
+ this._componentRef.destroy();
30
+ }
31
+ }
32
+ }
33
+ CustomReportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomReportComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
34
+ CustomReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomReportComponent, selector: "app-custom-report", host: { classAttribute: "custom-report flex flex-col flex-grow" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["dynamicContainer"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\r\n<ng-container #dynamicContainer></ng-container>\r\n", styles: [""] });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomReportComponent, decorators: [{
36
+ type: Component,
37
+ args: [{
38
+ selector: 'app-custom-report',
39
+ templateUrl: './custom-report.component.html',
40
+ styleUrls: ['./custom-report.component.scss'],
41
+ host: {
42
+ class: 'custom-report flex flex-col flex-grow'
43
+ }
44
+ }]
45
+ }], propDecorators: { container: [{
46
+ type: ViewChild,
47
+ args: ['dynamicContainer', { read: ViewContainerRef, static: true }]
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvY29tcG9uZW50cy9jdXN0b20tcmVwb3J0L2N1c3RvbS1yZXBvcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NvbXBvbmVudHMvY3VzdG9tLXJlcG9ydC9jdXN0b20tcmVwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBR1QsU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVd2RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsVUFBc0M7SUFSakY7O1FBU2tCLDBCQUFxQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0FtQ2xGO0lBMUJDLFFBQVE7UUFFUDs7Ozs7WUFLSTtJQUNMLENBQUM7SUFHRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsT0FBTztTQUNSO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzlCO0lBQ0gsQ0FBQzs7bUhBbkNVLHFCQUFxQjt1R0FBckIscUJBQXFCLHNOQUdPLGdCQUFnQix1RkN0QnpELHlEQUVBOzRGRGlCYSxxQkFBcUI7a0JBUmpDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsV0FBVyxFQUFFLGdDQUFnQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7b0JBQzdDLElBQUksRUFBRTt3QkFDTCxLQUFLLEVBQUUsdUNBQXVDO3FCQUM5QztpQkFDRDs4QkFLQyxTQUFTO3NCQURSLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbXBvbmVudFJlZiwgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlUmVwb3J0IH0gZnJvbSAnLi4vLi4vYmFzZSc7XHJcbmltcG9ydCB7IEN1c3RvbVJlcG9ydHNSZWdpc3RyeSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHtDdXN0b21DaGFydERlZmluaXRpb259IGZyb20gJy4uLy4uL21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1jdXN0b20tcmVwb3J0JyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXJlcG9ydC5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vY3VzdG9tLXJlcG9ydC5jb21wb25lbnQuc2NzcyddLFxyXG5cdGhvc3Q6IHtcclxuXHRcdGNsYXNzOiAnY3VzdG9tLXJlcG9ydCBmbGV4IGZsZXgtY29sIGZsZXgtZ3JvdydcclxuXHR9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21SZXBvcnRDb21wb25lbnQgZXh0ZW5kcyBCYXNlUmVwb3J0PEN1c3RvbUNoYXJ0RGVmaW5pdGlvbiwgYW55PiBpbXBsZW1lbnRzICBPbkluaXQgICwgT25DaGFuZ2Vze1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgX3JlZ2lzdGVyZWRDb21wb25lbnRzID0gdGhpcy5pbmplY3Rvci5nZXQoQ3VzdG9tUmVwb3J0c1JlZ2lzdHJ5KTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZHluYW1pY0NvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXHJcbiAgY29udGFpbmVyITogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgcHJvdGVjdGVkIF9jb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xyXG5cclxuXHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgLyogY29uc3QgY29tcG9uZW50VHlwZSA9IHRoaXMuX3JlZ2lzdGVyZWRDb21wb25lbnRzLmdldENvbXBvbmVudCh0aGlzLnJlcG9ydERlZmluaXRpb24udHlwZSk7XHJcbiAgICBpZiAoY29tcG9uZW50VHlwZSkge1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB0aGlzLmR5bmFtaWNDb21wb25lbnQucmVuZGVyQ29tcG9uZW50KGNvbXBvbmVudFR5cGUsIHRoaXMuY29udGFpbmVyKTtcclxuICAgICAgdGhpcy5fcHJlcGFyZVZhbHVlQWNjZXNzb3IoKTtcclxuICAgICAgdGhpcy5fcHJlcGFyZUNvbXBvbmVudChjb21wb25lbnRUeXBlKTtcclxuICAgIH0qL1xyXG4gIH1cclxuXHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fY29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIE9iamVjdC5rZXlzKGNoYW5nZXMpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2Vba2V5XSA9IGNoYW5nZXNba2V5XS5jdXJyZW50VmFsdWU7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudFJlZikge1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuZGVzdHJveSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJcclxuPG5nLWNvbnRhaW5lciAjZHluYW1pY0NvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuIl19
@@ -2,4 +2,5 @@ export * from './digit-report/digit-report.component';
2
2
  export * from './graph-report/graph-report.component';
3
3
  export * from './dynamic-timeline-report/dynamic-timeline-report.component';
4
4
  export * from './_parts';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGlnaXQtcmVwb3J0L2RpZ2l0LXJlcG9ydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2dyYXBoLXJlcG9ydC9ncmFwaC1yZXBvcnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLXRpbWVsaW5lLXJlcG9ydC9keW5hbWljLXRpbWVsaW5lLXJlcG9ydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL19wYXJ0cyc7XHJcbiJdfQ==
5
+ export * from './custom-report/custom-report.component';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLHlDQUF5QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaWdpdC1yZXBvcnQvZGlnaXQtcmVwb3J0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ3JhcGgtcmVwb3J0L2dyYXBoLXJlcG9ydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtdGltZWxpbmUtcmVwb3J0L2R5bmFtaWMtdGltZWxpbmUtcmVwb3J0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vX3BhcnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9jdXN0b20tcmVwb3J0L2N1c3RvbS1yZXBvcnQuY29tcG9uZW50J1xyXG4iXX0=
@@ -9,5 +9,6 @@ export const REPORT_MODE = {
9
9
  graph: 'graph',
10
10
  digit: 'digit',
11
11
  dynamicLine: 'dynamicLine',
12
+ custom: 'custom',
12
13
  };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NvbnN0YW50cy9jaGFydHMtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzNCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLGFBQWEsRUFBRSxlQUFlO0lBQzlCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLElBQUksRUFBRSxNQUFNO0lBQ1osR0FBRyxFQUFFLEtBQUs7Q0FDRCxDQUFDO0FBRVgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQzFCLEtBQUssRUFBRSxPQUFPO0lBQ2QsS0FBSyxFQUFFLE9BQU87SUFDYixXQUFXLEVBQUUsYUFBYTtDQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENIQVJUU19UWVBFUyA9IHtcclxuXHR2ZXJ0aWNhbEJhcjogJ3ZlcnRpY2FsQmFyJyxcclxuXHRob3Jpem9udGFsQmFyOiAnaG9yaXpvbnRhbEJhcicsXHJcblx0ZG91Z2hudXQ6ICdkb3VnaG51dCcsXHJcblx0bGluZTogJ2xpbmUnLFxyXG5cdHBpZTogJ3BpZSdcclxufSBhcyBjb25zdDtcclxuXHJcbmV4cG9ydCBjb25zdCBSRVBPUlRfTU9ERSA9IHtcclxuXHRncmFwaDogJ2dyYXBoJyxcclxuXHRkaWdpdDogJ2RpZ2l0JyxcclxuICBkeW5hbWljTGluZTogJ2R5bmFtaWNMaW5lJyxcclxufSBhcyBjb25zdDtcclxuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NvbnN0YW50cy9jaGFydHMtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzNCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLGFBQWEsRUFBRSxlQUFlO0lBQzlCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLElBQUksRUFBRSxNQUFNO0lBQ1osR0FBRyxFQUFFLEtBQUs7Q0FDRCxDQUFDO0FBRVgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQzFCLEtBQUssRUFBRSxPQUFPO0lBQ2QsS0FBSyxFQUFFLE9BQU87SUFDYixXQUFXLEVBQUUsYUFBYTtJQUMzQixNQUFNLEVBQUUsUUFBUTtDQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ0hBUlRTX1RZUEVTID0ge1xyXG5cdHZlcnRpY2FsQmFyOiAndmVydGljYWxCYXInLFxyXG5cdGhvcml6b250YWxCYXI6ICdob3Jpem9udGFsQmFyJyxcclxuXHRkb3VnaG51dDogJ2RvdWdobnV0JyxcclxuXHRsaW5lOiAnbGluZScsXHJcblx0cGllOiAncGllJ1xyXG59IGFzIGNvbnN0O1xyXG5cclxuZXhwb3J0IGNvbnN0IFJFUE9SVF9NT0RFID0ge1xyXG5cdGdyYXBoOiAnZ3JhcGgnLFxyXG5cdGRpZ2l0OiAnZGlnaXQnLFxyXG4gIGR5bmFtaWNMaW5lOiAnZHluYW1pY0xpbmUnLFxyXG5cdGN1c3RvbTogJ2N1c3RvbScsXHJcbn0gYXMgY29uc3Q7XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvbW9kZWxzL2N1c3RvbS1kZWZpbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlUmVwb3J0Q29uZmlnIH0gZnJvbSAnLi9iYXNlJztcclxuaW1wb3J0IHsgR3JhcGhEaWFsb2dDb25maWcgfSBmcm9tICcuL2dyYXBoLWRlZmluaXRpb24nO1xyXG5pbXBvcnQgeyBSZXBvcnREYXRhU291cmNlIH0gZnJvbSAnLi9yZXBvcnQtZGF0YS1zb3VyY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21DaGFydERlZmluaXRpb24gZXh0ZW5kcyBCYXNlUmVwb3J0Q29uZmlnLCBHcmFwaERpYWxvZ0NvbmZpZyB7XHJcblx0bW9kZTogJ2N1c3RvbSc7XHJcbiAgcHJlZml4Pzogc3RyaW5nO1xyXG4gIHByaW50PzogYm9vbGVhbjtcclxuICBkYXRhc291cmNlOiBSZXBvcnREYXRhU291cmNlW107XHJcbiAgb3B0aW9ucz86UmVjb3JkPHN0cmluZywgYW55PlxyXG59XHJcblxyXG5cclxuZXhwb3J0IHR5cGUgQ3VzdG9tQ2hhcnRDb25maWcgPSBDdXN0b21DaGFydERlZmluaXRpb25cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvbW9kZWxzL2RpYWxvZy1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXBvcnRSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi9yZXBvcnQtcmVzcG9uc2UubW9kZWwnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcbmltcG9ydCB7IENyaXRlcmlhTW9kZWwgfSBmcm9tICcuL2NvbW1vbic7XHJcbmltcG9ydCB7IEdyYXBoQ2hhcnQgfSBmcm9tICcuL2dyYXBoJztcclxuaW1wb3J0IHsgRHluYW1pY0xpbmVDaGFydCB9IGZyb20gJy4vZHluYW1pYy1saW5lJztcclxuXHJcbmV4cG9ydCB0eXBlIEdyYXBoRGlhbG9nRGF0YSA9IHtcclxuXHRjb25maWc6IEdyYXBoQ2hhcnQgfCBEeW5hbWljTGluZUNoYXJ0O1xyXG5cdGRhdGE/OiBSZXBvcnRSZXNwb25zZU1vZGVsO1xyXG5cdHRpdGxlPzogc3RyaW5nO1xyXG5cdGRpcmVjdGlvbjogRGlyZWN0aW9uO1xyXG5cdGNyaXRlcmlhPzogQ3JpdGVyaWFNb2RlbDtcclxufTtcclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvbW9kZWxzL2RpYWxvZy1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXBvcnRSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi9yZXBvcnQtcmVzcG9uc2UubW9kZWwnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcbmltcG9ydCB7IENyaXRlcmlhTW9kZWwgfSBmcm9tICcuL2NvbW1vbic7XHJcbmltcG9ydCB7IEdyYXBoQ2hhcnQgfSBmcm9tICcuL2dyYXBoLWRlZmluaXRpb24nO1xyXG5pbXBvcnQgeyBEeW5hbWljTGluZUNoYXJ0IH0gZnJvbSAnLi9keW5hbWljLWxpbmUnO1xyXG5cclxuZXhwb3J0IHR5cGUgR3JhcGhEaWFsb2dEYXRhID0ge1xyXG5cdGNvbmZpZzogR3JhcGhDaGFydCB8IER5bmFtaWNMaW5lQ2hhcnQ7XHJcblx0ZGF0YT86IFJlcG9ydFJlc3BvbnNlTW9kZWw7XHJcblx0dGl0bGU/OiBzdHJpbmc7XHJcblx0ZGlyZWN0aW9uOiBEaXJlY3Rpb247XHJcblx0Y3JpdGVyaWE/OiBDcml0ZXJpYU1vZGVsO1xyXG59O1xyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL21vZGVscy9keW5hbWljLWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0RGF0YXNldCwgUGx1Z2luIH0gZnJvbSAnY2hhcnQuanMnO1xyXG5pbXBvcnQgeyBCYXNlUmVwb3J0Q29uZmlnIH0gZnJvbSAnLi9iYXNlJztcclxuaW1wb3J0IHsgR3JhcGhEaWFsb2dDb25maWcgfSBmcm9tICcuL2dyYXBoJztcclxuaW1wb3J0IHsgTmRmUmVwb3J0c1JlcXVlc3QgfSBmcm9tICcuL3JlcXVlc3QnO1xyXG5pbXBvcnQgeyBSZXBvcnREYXRhU291cmNlIH0gZnJvbSAnLi9yZXBvcnQtZGF0YS1zb3VyY2UnO1xyXG5pbXBvcnQgeyBUaW1lR3JvdXBzIH0gZnJvbSAnLi9jb21tb24nO1xyXG5pbXBvcnQgeyBDdXN0b21DaGFydE9wdGlvbnMgfSBmcm9tICcuLi8uLi9jaGFydHMnO1xyXG5pbXBvcnQgeyBFdmFsdWF0ZWRTdHJpbmcgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQnO1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgY29uZmlndXJhdGlvbiBmb3IgY2hhcnQgcmVwb3J0cyB0aGF0IGluY2x1ZGUgZGlhbG9nIG9wdGlvbnNcclxuICovXHJcbnR5cGUgUmVwb3J0Q2hhcnRDb25maWcgPSBCYXNlUmVwb3J0Q29uZmlnICYgR3JhcGhEaWFsb2dDb25maWc7XHJcblxyXG4vKipcclxuICogRGVmaW5pdGlvbiBvZiBkeW5hbWljIGxpbmUgY2hhcnQgb3B0aW9ucyB3aXRoIHBsdWdpbnMgYXMgc3RyaW5ncyAodXNlZCBpbiBjb25maWd1cmF0aW9uKVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgRHluYW1pY0xpbmVDaGFydE9wdGlvbnNEZWZpbml0aW9uID0ge1xyXG5cdHR5cGU6ICdsaW5lJztcclxuXHRvcHRpb25zPzogQ3VzdG9tQ2hhcnRPcHRpb25zPCdsaW5lJz47XHJcblx0ZGF0YXNldHM/OiBPbWl0PENoYXJ0RGF0YXNldDwnbGluZSc+LCAnZGF0YSc+W107XHJcblx0cGx1Z2lucz86IHN0cmluZ1tdO1xyXG5cdGNvbG9ycz86IHN0cmluZ1tdO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIER5bmFtaWMgbGluZSBjaGFydCBvcHRpb25zIHdpdGggcGx1Z2lucyBhcyBQbHVnaW4gb2JqZWN0cyAodXNlZCBpbiBpbXBsZW1lbnRhdGlvbilcclxuICovXHJcbmV4cG9ydCB0eXBlIER5bmFtaWNMaW5lQ2hhcnRPcHRpb25zID0gT21pdDxEeW5hbWljTGluZUNoYXJ0T3B0aW9uc0RlZmluaXRpb24sICdwbHVnaW5zJz4gJiB7XHJcblx0cGx1Z2lucz86IFBsdWdpbjwnbGluZSc+W107XHJcbn07XHJcblxyXG4vKipcclxuICogQ29tcGxldGUgZGVmaW5pdGlvbiBvZiBhIGR5bmFtaWMgbGluZSBjaGFydCAodXNlZCBpbiBjb25maWd1cmF0aW9uKVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgRHluYW1pY0xpbmVDaGFydERlZmluaXRpb24gPSBSZXBvcnRDaGFydENvbmZpZyAmIHtcclxuXHRtb2RlOiAnZHluYW1pY0xpbmUnO1xyXG5cdHByZWZpeD86IHN0cmluZztcclxuXHRjb2xvcnM/OiBzdHJpbmdbXTtcclxuXHRwcmludD86IGJvb2xlYW47XHJcblx0cmVxdWVzdDogTmRmUmVwb3J0c1JlcXVlc3QgJiB7XHJcblx0XHRhY3Rpb25zPzoge1xyXG5cdFx0XHRiZWZvcmVTdWJtaXQ/OiBFdmFsdWF0ZWRTdHJpbmc8J3BheWxvYWQnPjtcclxuXHRcdH07XHJcblx0fTtcclxuXHRkYXRhc291cmNlOiAoeyBhZ2dyZWdhdGlvbjogc3RyaW5nIH0gJiBSZXBvcnREYXRhU291cmNlKVtdO1xyXG5cdGdyb3VwPzoge1xyXG5cdFx0YWN0aXZlOiBib29sZWFuO1xyXG5cdFx0c2VsZWN0ZWQ/OiBUaW1lR3JvdXBzO1xyXG5cdH07XHJcblx0Y2hhcnQ6IER5bmFtaWNMaW5lQ2hhcnRPcHRpb25zRGVmaW5pdGlvbjtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb21wbGV0ZSBkeW5hbWljIGxpbmUgY2hhcnQgd2l0aCBwcm9jZXNzZWQgcGx1Z2lucyAodXNlZCBpbiBpbXBsZW1lbnRhdGlvbilcclxuICovXHJcbmV4cG9ydCB0eXBlIER5bmFtaWNMaW5lQ2hhcnQgPSBPbWl0PER5bmFtaWNMaW5lQ2hhcnREZWZpbml0aW9uLCAnY2hhcnQnPiAmIHtcclxuXHRjaGFydDogRHluYW1pY0xpbmVDaGFydE9wdGlvbnM7XHJcbn07XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL21vZGVscy9keW5hbWljLWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0RGF0YXNldCwgUGx1Z2luIH0gZnJvbSAnY2hhcnQuanMnO1xyXG5pbXBvcnQgeyBCYXNlUmVwb3J0Q29uZmlnIH0gZnJvbSAnLi9iYXNlJztcclxuaW1wb3J0IHsgR3JhcGhEaWFsb2dDb25maWcgfSBmcm9tICcuL2dyYXBoLWRlZmluaXRpb24nO1xyXG5pbXBvcnQgeyBOZGZSZXBvcnRzUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdCc7XHJcbmltcG9ydCB7IFJlcG9ydERhdGFTb3VyY2UgfSBmcm9tICcuL3JlcG9ydC1kYXRhLXNvdXJjZSc7XHJcbmltcG9ydCB7IFRpbWVHcm91cHMgfSBmcm9tICcuL2NvbW1vbic7XHJcbmltcG9ydCB7IEN1c3RvbUNoYXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uL2NoYXJ0cyc7XHJcbmltcG9ydCB7IEV2YWx1YXRlZFN0cmluZyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZCc7XHJcblxyXG4vKipcclxuICogQmFzZSBjb25maWd1cmF0aW9uIGZvciBjaGFydCByZXBvcnRzIHRoYXQgaW5jbHVkZSBkaWFsb2cgb3B0aW9uc1xyXG4gKi9cclxudHlwZSBSZXBvcnRDaGFydENvbmZpZyA9IEJhc2VSZXBvcnRDb25maWcgJiBHcmFwaERpYWxvZ0NvbmZpZztcclxuXHJcbi8qKlxyXG4gKiBEZWZpbml0aW9uIG9mIGR5bmFtaWMgbGluZSBjaGFydCBvcHRpb25zIHdpdGggcGx1Z2lucyBhcyBzdHJpbmdzICh1c2VkIGluIGNvbmZpZ3VyYXRpb24pXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBEeW5hbWljTGluZUNoYXJ0T3B0aW9uc0RlZmluaXRpb24gPSB7XHJcblx0dHlwZTogJ2xpbmUnO1xyXG5cdG9wdGlvbnM/OiBDdXN0b21DaGFydE9wdGlvbnM8J2xpbmUnPjtcclxuXHRkYXRhc2V0cz86IE9taXQ8Q2hhcnREYXRhc2V0PCdsaW5lJz4sICdkYXRhJz5bXTtcclxuXHRwbHVnaW5zPzogc3RyaW5nW107XHJcblx0Y29sb3JzPzogc3RyaW5nW107XHJcbn07XHJcblxyXG4vKipcclxuICogRHluYW1pYyBsaW5lIGNoYXJ0IG9wdGlvbnMgd2l0aCBwbHVnaW5zIGFzIFBsdWdpbiBvYmplY3RzICh1c2VkIGluIGltcGxlbWVudGF0aW9uKVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgRHluYW1pY0xpbmVDaGFydE9wdGlvbnMgPSBPbWl0PER5bmFtaWNMaW5lQ2hhcnRPcHRpb25zRGVmaW5pdGlvbiwgJ3BsdWdpbnMnPiAmIHtcclxuXHRwbHVnaW5zPzogUGx1Z2luPCdsaW5lJz5bXTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb21wbGV0ZSBkZWZpbml0aW9uIG9mIGEgZHluYW1pYyBsaW5lIGNoYXJ0ICh1c2VkIGluIGNvbmZpZ3VyYXRpb24pXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBEeW5hbWljTGluZUNoYXJ0RGVmaW5pdGlvbiA9IFJlcG9ydENoYXJ0Q29uZmlnICYge1xyXG5cdG1vZGU6ICdkeW5hbWljTGluZSc7XHJcblx0cHJlZml4Pzogc3RyaW5nO1xyXG5cdGNvbG9ycz86IHN0cmluZ1tdO1xyXG5cdHByaW50PzogYm9vbGVhbjtcclxuXHRyZXF1ZXN0OiBOZGZSZXBvcnRzUmVxdWVzdCAmIHtcclxuXHRcdGFjdGlvbnM/OiB7XHJcblx0XHRcdGJlZm9yZVN1Ym1pdD86IEV2YWx1YXRlZFN0cmluZzwncGF5bG9hZCc+O1xyXG5cdFx0fTtcclxuXHR9O1xyXG5cdGRhdGFzb3VyY2U6ICh7IGFnZ3JlZ2F0aW9uOiBzdHJpbmcgfSAmIFJlcG9ydERhdGFTb3VyY2UpW107XHJcblx0Z3JvdXA/OiB7XHJcblx0XHRhY3RpdmU6IGJvb2xlYW47XHJcblx0XHRzZWxlY3RlZD86IFRpbWVHcm91cHM7XHJcblx0fTtcclxuXHRjaGFydDogRHluYW1pY0xpbmVDaGFydE9wdGlvbnNEZWZpbml0aW9uO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIENvbXBsZXRlIGR5bmFtaWMgbGluZSBjaGFydCB3aXRoIHByb2Nlc3NlZCBwbHVnaW5zICh1c2VkIGluIGltcGxlbWVudGF0aW9uKVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgRHluYW1pY0xpbmVDaGFydCA9IE9taXQ8RHluYW1pY0xpbmVDaGFydERlZmluaXRpb24sICdjaGFydCc+ICYge1xyXG5cdGNoYXJ0OiBEeW5hbWljTGluZUNoYXJ0T3B0aW9ucztcclxufTtcclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGgtZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9tb2RlbHMvZ3JhcGgtZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlhbG9nUG9zaXRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDaGFydERhdGFzZXQsIENoYXJ0VHlwZSwgUGx1Z2luIH0gZnJvbSAnY2hhcnQuanMnO1xyXG5pbXBvcnQgeyBDdXN0b21DaGFydE9wdGlvbnMgfSBmcm9tICcuLi8uLi9jaGFydHMnO1xyXG5cclxuaW1wb3J0IHsgQmFzZVJlcG9ydENvbmZpZyB9IGZyb20gJy4vYmFzZSc7XHJcbmltcG9ydCB7IENoYXJ0T3B0aW9uc0J5VHlwZSB9IGZyb20gJy4vY29tbW9uJztcclxuaW1wb3J0IHsgUmVwb3J0RGF0YVNvdXJjZSB9IGZyb20gJy4vcmVwb3J0LWRhdGEtc291cmNlJztcclxuaW1wb3J0IHsgQ0hBUlRTX1RZUEVTIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuXHJcbnR5cGUgY2hhcnRUeXBlcyA9IE9taXQ8dHlwZW9mIENIQVJUU19UWVBFUywgJ2xpbmUnPjtcclxuZXhwb3J0IHR5cGUgQWxsb3dlZENoYXJ0VHlwZSA9IGNoYXJ0VHlwZXNba2V5b2YgY2hhcnRUeXBlc107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0VHlwZUNvbmZpZyB7XHJcblx0ZW5hYmxlZDogYm9vbGVhbjsgLy8gQ2FuIHVzZXIgc3dpdGNoIGNoYXJ0IHR5cGVzP1xyXG5cdGFsbG93ZWRUeXBlcz86IEFsbG93ZWRDaGFydFR5cGVbXTsgLy8gT3B0aW9uYWw6IHJlc3RyaWN0IHRvIHNwZWNpZmljIHR5cGVzXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIGZvciBkaWFsb2cgZGlzcGxheSBpbiBncmFwaCByZXBvcnRzXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBHcmFwaERpYWxvZ0NvbmZpZyA9IHtcclxuXHRkaWFsb2c/OiB7XHJcblx0XHRhY3RpdmU6IGJvb2xlYW47XHJcblx0XHRwYW5lbENsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XHJcblx0XHR3aWR0aD86IHN0cmluZztcclxuXHRcdGhlaWdodD86IHN0cmluZztcclxuXHRcdG1pbldpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xyXG5cdFx0bWluSGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xyXG5cdFx0bWF4V2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XHJcblx0XHRtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmc7XHJcblx0XHRwb3NpdGlvbj86IERpYWxvZ1Bvc2l0aW9uO1xyXG5cdH07XHJcbn07XHJcblxyXG4vKipcclxuICogRGVmaW5pdGlvbiBvZiBjaGFydCBvcHRpb25zIHdpdGggcGx1Z2lucyBhcyBzdHJpbmdzICh1c2VkIGluIGNvbmZpZ3VyYXRpb24pXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBHcmFwaENoYXJ0T3B0aW9uc0RlZmluaXRpb248VFR5cGUgZXh0ZW5kcyBDaGFydFR5cGUgPSBDaGFydFR5cGU+ID0ge1xyXG5cdHR5cGU6IFRUeXBlO1xyXG5cdG9wdGlvbnM/OiBDdXN0b21DaGFydE9wdGlvbnM8VFR5cGU+O1xyXG5cdGRhdGFzZXRzPzogT21pdDxDaGFydERhdGFzZXQ8VFR5cGU+LCAnZGF0YSc+W107XHJcblx0b3ZlcnJpZGVzPzogQ2hhcnRPcHRpb25zQnlUeXBlO1xyXG5cdHBsdWdpbnM/OiBzdHJpbmdbXTtcclxuXHRjb2xvcnM/OiBzdHJpbmdbXTtcclxuXHRkaXJlY3Rpb24/OiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnOyAvLyBPbmx5IGZvciBiYXIgY2hhcnRzXHJcbn07XHJcblxyXG4vKipcclxuICogQ2hhcnQgb3B0aW9ucyB3aXRoIHBsdWdpbnMgYXMgUGx1Z2luIG9iamVjdHMgKHVzZWQgaW4gaW1wbGVtZW50YXRpb24pXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBHcmFwaENoYXJ0T3B0aW9uczxUVHlwZSBleHRlbmRzIENoYXJ0VHlwZSA9IENoYXJ0VHlwZT4gPSBPbWl0PFxyXG5cdEdyYXBoQ2hhcnRPcHRpb25zRGVmaW5pdGlvbjxUVHlwZT4sXHJcblx0J3BsdWdpbnMnXHJcbj4gJiB7XHJcblx0cGx1Z2lucz86IFBsdWdpbjxUVHlwZT5bXTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb21wbGV0ZSBkZWZpbml0aW9uIG9mIGEgZ3JhcGggY2hhcnQgKHVzZWQgaW4gY29uZmlndXJhdGlvbilcclxuICovXHJcbmV4cG9ydCB0eXBlIEdyYXBoQ2hhcnREZWZpbml0aW9uPFRUeXBlIGV4dGVuZHMgQ2hhcnRUeXBlID0gQ2hhcnRUeXBlPiA9IEJhc2VSZXBvcnRDb25maWcgJlxyXG5cdEdyYXBoRGlhbG9nQ29uZmlnICYge1xyXG5cdFx0bW9kZTogJ2dyYXBoJztcclxuXHRcdGRhdGFzb3VyY2U6IFJlcG9ydERhdGFTb3VyY2VbXTtcclxuXHRcdGNoYXJ0OiBHcmFwaENoYXJ0T3B0aW9uc0RlZmluaXRpb248VFR5cGU+O1xyXG5cdFx0cHJlZml4Pzogc3RyaW5nO1xyXG5cdFx0cHJpbnQ/OiBib29sZWFuO1xyXG5cdFx0dHlwZUNvbmZpZz86IENoYXJ0VHlwZUNvbmZpZztcclxuXHR9O1xyXG5cclxuLyoqXHJcbiAqIENvbXBsZXRlIGdyYXBoIGNoYXJ0IHdpdGggcHJvY2Vzc2VkIHBsdWdpbnMgKHVzZWQgaW4gaW1wbGVtZW50YXRpb24pXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBHcmFwaENoYXJ0PFRUeXBlIGV4dGVuZHMgQ2hhcnRUeXBlID0gQ2hhcnRUeXBlPiA9IE9taXQ8R3JhcGhDaGFydERlZmluaXRpb248VFR5cGU+LCAnY2hhcnQnPiAmIHtcclxuXHRjaGFydDogR3JhcGhDaGFydE9wdGlvbnM8VFR5cGU+O1xyXG59O1xyXG4iXX0=
@@ -9,5 +9,6 @@ export * from './digit';
9
9
  export * from './dynamic-line';
10
10
  export * from './report-data-source';
11
11
  export * from './request';
12
- export * from './graph';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9uZGYtcmVwb3J0cy5jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcG9ydC1jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcG9ydC1yZXNwb25zZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9nLWRhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Jhc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RldGFpbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpZ2l0JztcclxuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWxpbmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcG9ydC1kYXRhLXNvdXJjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVxdWVzdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ3JhcGgnO1xyXG4iXX0=
12
+ export * from './graph-definition';
13
+ export * from './custom-definition';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbW1vbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbmRmLXJlcG9ydHMuY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXBvcnQtY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXBvcnQtcmVzcG9uc2UubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpYWxvZy1kYXRhJztcclxuZXhwb3J0ICogZnJvbSAnLi9iYXNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kZXRhaWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaWdpdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1saW5lJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXBvcnQtZGF0YS1zb3VyY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcXVlc3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL2dyYXBoLWRlZmluaXRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbS1kZWZpbml0aW9uJztcclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9tb2RlbHMvcmVwb3J0LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlnaXRDaGFydCwgRGlnaXRDaGFydERlZmluaXRpb24gfSBmcm9tICcuL2RpZ2l0JztcclxuaW1wb3J0IHsgR3JhcGhDaGFydCwgR3JhcGhDaGFydERlZmluaXRpb24gfSBmcm9tICcuL2dyYXBoJztcclxuaW1wb3J0IHsgRHluYW1pY0xpbmVDaGFydCwgRHluYW1pY0xpbmVDaGFydERlZmluaXRpb24gfSBmcm9tICcuL2R5bmFtaWMtbGluZSc7XHJcblxyXG5leHBvcnQgdHlwZSBSZXBvcnRDb25maWdNb2RlbCA9IERpZ2l0Q2hhcnQgfCBHcmFwaENoYXJ0IHwgRHluYW1pY0xpbmVDaGFydDtcclxuXHJcbmV4cG9ydCB0eXBlIFJlcG9ydERlZmluaXRpb25Nb2RlbCA9IERpZ2l0Q2hhcnREZWZpbml0aW9uIHwgR3JhcGhDaGFydERlZmluaXRpb24gfCBEeW5hbWljTGluZUNoYXJ0RGVmaW5pdGlvbjtcclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9tb2RlbHMvcmVwb3J0LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlnaXRDaGFydCwgRGlnaXRDaGFydERlZmluaXRpb24gfSBmcm9tICcuL2RpZ2l0JztcclxuaW1wb3J0IHsgR3JhcGhDaGFydCwgR3JhcGhDaGFydERlZmluaXRpb24gfSBmcm9tICcuL2dyYXBoLWRlZmluaXRpb24nO1xyXG5pbXBvcnQgeyBEeW5hbWljTGluZUNoYXJ0LCBEeW5hbWljTGluZUNoYXJ0RGVmaW5pdGlvbiB9IGZyb20gJy4vZHluYW1pYy1saW5lJztcclxuaW1wb3J0IHsgQ3VzdG9tQ2hhcnREZWZpbml0aW9uIH0gZnJvbSAnLi9jdXN0b20tZGVmaW5pdGlvbic7XHJcblxyXG5leHBvcnQgdHlwZSBSZXBvcnRDb25maWdNb2RlbCA9IERpZ2l0Q2hhcnQgfCBHcmFwaENoYXJ0IHwgRHluYW1pY0xpbmVDaGFydDtcclxuXHJcbmV4cG9ydCB0eXBlIFJlcG9ydERlZmluaXRpb25Nb2RlbCA9XHJcblx0fCBEaWdpdENoYXJ0RGVmaW5pdGlvblxyXG5cdHwgR3JhcGhDaGFydERlZmluaXRpb25cclxuXHR8IER5bmFtaWNMaW5lQ2hhcnREZWZpbml0aW9uXHJcblx0fCBDdXN0b21DaGFydERlZmluaXRpb247XHJcbiJdfQ==