@bizdoc/core 1.13.18 → 1.13.19

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.
@@ -0,0 +1,210 @@
1
+ var CubeCompareWidget_1;
2
+ import { __decorate } from "tslib";
3
+ import { Component, ViewChild } from "@angular/core";
4
+ import { Chart, LineSeriesService, CrosshairService, ColumnSeriesService, ChartComponent } from "@syncfusion/ej2-angular-charts";
5
+ import { BizDoc } from "../../core/decorators";
6
+ import { Subject } from "rxjs";
7
+ import { takeUntil } from "rxjs/operators";
8
+ import dayjs from 'dayjs';
9
+ import { FONT_FAMILY } from "../../core/colors";
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../../core/translate.service";
12
+ import * as i2 from "../widget-ref";
13
+ import * as i3 from "../../core/datasource.service";
14
+ import * as i4 from "../../core/session.service";
15
+ /** */
16
+ let CubeCompareWidget = CubeCompareWidget_1 = class CubeCompareWidget {
17
+ constructor(_translate, _widgetRef, _elementRef, _type, _session) {
18
+ this._translate = _translate;
19
+ this._widgetRef = _widgetRef;
20
+ this._elementRef = _elementRef;
21
+ this._type = _type;
22
+ this._session = _session;
23
+ this.id = `cube-compare-${CubeCompareWidget_1.nextId++}`;
24
+ this.palettes = this._session.accentPalette;
25
+ this.theme = this._session.theme.dark ? 'MaterialDark' : 'Material';
26
+ this.enableRtl = this._session.inverse;
27
+ this.rows = [
28
+ {
29
+ height: '15%'
30
+ }, {
31
+ height: '85%'
32
+ }
33
+ ];
34
+ this.axes = [{
35
+ name: 'primary',
36
+ labelStyle: { size: '0px' },
37
+ rowIndex: 1
38
+ }, {
39
+ name: 'volume',
40
+ rowIndex: 0,
41
+ majorGridLines: { width: 0 }, lineStyle: { width: 0 },
42
+ labelStyle: { size: '0px' },
43
+ majorTickLines: { width: 0 }
44
+ }];
45
+ this.chartArea = {
46
+ border: {
47
+ width: 0
48
+ }
49
+ };
50
+ this.zoomSettings = {
51
+ mode: 'X',
52
+ enableMouseWheelZooming: true,
53
+ enablePinchZooming: true,
54
+ toolbarItems: [],
55
+ enableSelectionZooming: false,
56
+ enableScrollbar: true
57
+ };
58
+ this.primaryXAxis = {
59
+ valueType: 'DateTime',
60
+ labelFormat: 'MMM dd',
61
+ labelStyle: {
62
+ fontFamily: FONT_FAMILY
63
+ },
64
+ labelIntersectAction: 'Hide',
65
+ majorGridLines: { width: 0 }
66
+ };
67
+ this.crosshair = {
68
+ enable: true,
69
+ lineType: 'Vertical'
70
+ };
71
+ this.tooltip = {
72
+ enable: true, shared: true, textStyle: {
73
+ fontFamily: FONT_FAMILY
74
+ },
75
+ };
76
+ this.legend = {
77
+ visible: true,
78
+ isInversed: this._session.inverse,
79
+ textStyle: {
80
+ fontFamily: FONT_FAMILY
81
+ },
82
+ };
83
+ this.primaryYAxis = {
84
+ skeleton: 'duration',
85
+ labelStyle: {
86
+ size: '0px'
87
+ },
88
+ lineStyle: { width: 0 },
89
+ minorTickLines: { width: 0 }
90
+ };
91
+ this.margin = {
92
+ bottom: 0
93
+ };
94
+ this._destroy = new Subject();
95
+ _session.themeChange.pipe(takeUntil(this._destroy)).subscribe(t => {
96
+ this.theme = t.dark ? 'MaterialDark' : 'Material';
97
+ this.palettes = _session.accentPalette;
98
+ this._draw();
99
+ });
100
+ _widgetRef.resize.subscribe(d => {
101
+ this.height = `${d.height}px`;
102
+ if (this.chart)
103
+ this.chart.height = this.height;
104
+ });
105
+ }
106
+ async onBind(data) {
107
+ await this._prepare(data);
108
+ this._draw();
109
+ }
110
+ _draw() {
111
+ this.chart && this.chart.destroy();
112
+ this.chart = new Chart({
113
+ axes: this.axes,
114
+ series: this.series,
115
+ height: this.height,
116
+ rows: this.rows,
117
+ legendSettings: this.legend,
118
+ crosshair: this.crosshair,
119
+ tooltip: this.tooltip,
120
+ background: 'transparent',
121
+ chartArea: this.chartArea,
122
+ primaryXAxis: this.primaryXAxis,
123
+ primaryYAxis: this.primaryYAxis,
124
+ theme: this.theme,
125
+ margin: this.margin,
126
+ useGroupingSeparator: true,
127
+ palettes: this.palettes,
128
+ zoomSettings: this.zoomSettings,
129
+ sharedTooltipRender: this.sharedTooltipRender.bind(this),
130
+ }, this._elementRef.nativeElement);
131
+ }
132
+ sharedTooltipRender(evt) {
133
+ evt.data.forEach((d, i) => {
134
+ if (evt.series[d.seriesIndex].yName !== 'count')
135
+ evt.text[i] = `${d.seriesName} : <b>${dayjs.duration(d.pointY, 's').humanize()}</b>`;
136
+ });
137
+ }
138
+ async _prepare(data) {
139
+ const indicatorData = [], series = [];
140
+ for (var item of data) {
141
+ item.points.forEach(p => {
142
+ const date = p.date = new Date(p.date), indicator = indicatorData.find(i => i.date.valueOf() === date.valueOf());
143
+ if (indicator)
144
+ indicator.count += p.count;
145
+ else
146
+ indicatorData.push({ count: p.count, date });
147
+ });
148
+ const cube = this._session.profile.cubes.find(c => c.name === this._widgetRef.options.cube || this._widgetRef.options.cube == null);
149
+ const axis = cube.axes.find(a => a.name === this._widgetRef.options.series);
150
+ const title = await this._type.get(axis.dataType, item.series).toPromise();
151
+ series.push({
152
+ type: 'Line',
153
+ xName: 'date',
154
+ yName: 'duration',
155
+ yAxisName: 'primary',
156
+ name: title,
157
+ dataSource: item.points,
158
+ marker: {
159
+ width: 6,
160
+ height: 6,
161
+ visible: false
162
+ }
163
+ });
164
+ }
165
+ series.push({
166
+ type: 'Column',
167
+ xName: 'date',
168
+ yName: 'count',
169
+ name: this._translate.get('Volume'),
170
+ dataSource: indicatorData,
171
+ yAxisName: 'volume',
172
+ marker: {
173
+ width: 0,
174
+ height: 0,
175
+ visible: false
176
+ }
177
+ });
178
+ this.series = series;
179
+ }
180
+ ngOnDestroy() {
181
+ this.chart && this.chart.destroy();
182
+ this._destroy.next();
183
+ this._destroy.complete();
184
+ }
185
+ };
186
+ CubeCompareWidget.nextId = 0;
187
+ CubeCompareWidget.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CubeCompareWidget, deps: [{ token: i1.TranslateService }, { token: i2.WidgetRef }, { token: i0.ElementRef }, { token: i3.DatasourceService }, { token: i4.SessionService }], target: i0.ɵɵFactoryTarget.Component });
188
+ CubeCompareWidget.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CubeCompareWidget, selector: "ng-component", host: { attributes: { "dir": "ltr" }, properties: { "id": "id" } }, providers: [LineSeriesService, CrosshairService, ColumnSeriesService], viewQueries: [{ propertyName: "chart", first: true, predicate: ChartComponent, descendants: true }], ngImport: i0, template: '', isInline: true });
189
+ CubeCompareWidget = CubeCompareWidget_1 = __decorate([
190
+ BizDoc({
191
+ selector: 'bizdoc-cube-compare'
192
+ })
193
+ ], CubeCompareWidget);
194
+ export { CubeCompareWidget };
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CubeCompareWidget, decorators: [{
196
+ type: Component,
197
+ args: [{
198
+ //templateUrl: './compare.widget.html',
199
+ template: '',
200
+ providers: [LineSeriesService, CrosshairService, ColumnSeriesService],
201
+ host: {
202
+ '[id]': 'id',
203
+ dir: 'ltr'
204
+ }
205
+ }]
206
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.WidgetRef }, { type: i0.ElementRef }, { type: i3.DatasourceService }, { type: i4.SessionService }]; }, propDecorators: { chart: [{
207
+ type: ViewChild,
208
+ args: [ChartComponent]
209
+ }] } });
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS53aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2Rhc2hib2FyZC9jdWJlL2NvbXBhcmUud2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBcUcsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQTJFLGNBQWMsRUFBaUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU1VSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7O0FBRWhELE1BQU07SUFhTyxpQkFBaUIsK0JBQWpCLGlCQUFpQjtJQTZFNUIsWUFBb0IsVUFBNEIsRUFDdEMsVUFBcUIsRUFDckIsV0FBdUIsRUFDdkIsS0FBd0IsRUFDeEIsUUFBd0I7UUFKZCxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUN0QyxlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBL0V6QixPQUFFLEdBQUcsZ0JBQWdCLG1CQUFpQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDM0QsYUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBRXZDLFVBQUssR0FBZ0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENB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ZXN0cm95LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDaGFydCwgQXhpc01vZGVsLCBDcm9zc2hhaXJTZXR0aW5nc01vZGVsLCBUb29sdGlwU2V0dGluZ3NNb2RlbCwgU2VyaWVzTW9kZWwsIExlZ2VuZFNlcmllc01vZGVsLCBSb3dNb2RlbCwgTGluZVNlcmllc1NlcnZpY2UsIENyb3NzaGFpclNlcnZpY2UsIENvbHVtblNlcmllc1NlcnZpY2UsIE1hcmdpbk1vZGVsLCBab29tU2V0dGluZ3NNb2RlbCwgSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MsIENoYXJ0QXJlYU1vZGVsLCBDaGFydENvbXBvbmVudCwgSVNoYXJlZFRvb2x0aXBSZW5kZXJFdmVudEFyZ3MgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2hhcnRzXCI7XHJcbmltcG9ydCB7IFdpZGdldENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb3JlL2Jhc2VcIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgeyBXaWRnZXRSZWYgfSBmcm9tIFwiLi4vd2lkZ2V0LXJlZlwiO1xyXG5pbXBvcnQgeyBGT05UX0ZBTUlMWSB9IGZyb20gXCIuLi8uLi9jb3JlL2NvbG9yc1wiO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZVwiO1xyXG4vKiogKi9cclxuQENvbXBvbmVudCh7XHJcbiAgLy90ZW1wbGF0ZVVybDogJy4vY29tcGFyZS53aWRnZXQuaHRtbCcsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIHByb3ZpZGVyczogW0xpbmVTZXJpZXNTZXJ2aWNlLCBDcm9zc2hhaXJTZXJ2aWNlLCBDb2x1bW5TZXJpZXNTZXJ2aWNlXSxcclxuICBob3N0OiB7XHJcbiAgICAnW2lkXSc6ICdpZCcsXHJcbiAgICBkaXI6ICdsdHInXHJcbiAgfVxyXG59KVxyXG5AQml6RG9jKHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLWNvbXBhcmUnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWJlQ29tcGFyZVdpZGdldCBpbXBsZW1lbnRzIFdpZGdldENvbXBvbmVudDxNb2RlbFtdPiwgT25EZXN0cm95IHtcclxuICBzdGF0aWMgbmV4dElkID0gMDtcclxuICByZWFkb25seSBpZCA9IGBjdWJlLWNvbXBhcmUtJHtDdWJlQ29tcGFyZVdpZGdldC5uZXh0SWQrK31gO1xyXG4gIHBhbGV0dGVzID0gdGhpcy5fc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gIEBWaWV3Q2hpbGQoQ2hhcnRDb21wb25lbnQpIGNoYXJ0OiBDaGFydDtcclxuICB0aGVtZTogJ01hdGVyaWFsJyB8ICdNYXRlcmlhbERhcmsnID0gdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnXHJcbiAgcmVhZG9ubHkgZW5hYmxlUnRsID0gdGhpcy5fc2Vzc2lvbi5pbnZlcnNlO1xyXG4gIHJlYWRvbmx5IHJvd3M6IFJvd01vZGVsW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGhlaWdodDogJzE1JSdcclxuICAgIH0sIHtcclxuICAgICAgaGVpZ2h0OiAnODUlJ1xyXG4gICAgfVxyXG4gIF07XHJcbiAgcmVhZG9ubHkgYXhlczogQXhpc01vZGVsW10gPSBbe1xyXG4gICAgbmFtZTogJ3ByaW1hcnknLFxyXG4gICAgbGFiZWxTdHlsZTogeyBzaXplOiAnMHB4JyB9LFxyXG4gICAgcm93SW5kZXg6IDFcclxuICB9LCB7XHJcbiAgICBuYW1lOiAndm9sdW1lJyxcclxuICAgIHJvd0luZGV4OiAwLFxyXG4gICAgbWFqb3JHcmlkTGluZXM6IHsgd2lkdGg6IDAgfSwgbGluZVN0eWxlOiB7IHdpZHRoOiAwIH0sXHJcbiAgICBsYWJlbFN0eWxlOiB7IHNpemU6ICcwcHgnIH0sXHJcbiAgICBtYWpvclRpY2tMaW5lczogeyB3aWR0aDogMCB9XHJcbiAgfV07XHJcbiAgcmVhZG9ubHkgY2hhcnRBcmVhOiBDaGFydEFyZWFNb2RlbCA9IHtcclxuICAgIGJvcmRlcjoge1xyXG4gICAgICB3aWR0aDogMFxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgem9vbVNldHRpbmdzOiBab29tU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIG1vZGU6ICdYJyxcclxuICAgIGVuYWJsZU1vdXNlV2hlZWxab29taW5nOiB0cnVlLFxyXG4gICAgZW5hYmxlUGluY2hab29taW5nOiB0cnVlLFxyXG4gICAgdG9vbGJhckl0ZW1zOiBbXSxcclxuICAgIGVuYWJsZVNlbGVjdGlvblpvb21pbmc6IGZhbHNlLFxyXG4gICAgZW5hYmxlU2Nyb2xsYmFyOiB0cnVlXHJcbiAgfTtcclxuICByZWFkb25seSBwcmltYXJ5WEF4aXM6IEF4aXNNb2RlbCA9IHtcclxuICAgIHZhbHVlVHlwZTogJ0RhdGVUaW1lJyxcclxuICAgIGxhYmVsRm9ybWF0OiAnTU1NIGRkJyxcclxuICAgIGxhYmVsU3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH0sXHJcbiAgICBsYWJlbEludGVyc2VjdEFjdGlvbjogJ0hpZGUnLFxyXG4gICAgbWFqb3JHcmlkTGluZXM6IHsgd2lkdGg6IDAgfVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgY3Jvc3NoYWlyOiBDcm9zc2hhaXJTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgbGluZVR5cGU6ICdWZXJ0aWNhbCdcclxuICB9O1xyXG4gIHJlYWRvbmx5IHRvb2x0aXA6IFRvb2x0aXBTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgZW5hYmxlOiB0cnVlLCBzaGFyZWQ6IHRydWUsIHRleHRTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfSxcclxuICB9O1xyXG4gIHJlYWRvbmx5IGxlZ2VuZDogTGVnZW5kU2VyaWVzTW9kZWwgPSB7XHJcbiAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgaXNJbnZlcnNlZDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9LFxyXG4gIH07XHJcbiAgcmVhZG9ubHkgcHJpbWFyeVlBeGlzOiBBeGlzTW9kZWwgPSB7XHJcbiAgICBza2VsZXRvbjogJ2R1cmF0aW9uJyxcclxuICAgIGxhYmVsU3R5bGU6IHtcclxuICAgICAgc2l6ZTogJzBweCdcclxuICAgIH0sXHJcbiAgICBsaW5lU3R5bGU6IHsgd2lkdGg6IDAgfSxcclxuICAgIG1pbm9yVGlja0xpbmVzOiB7IHdpZHRoOiAwIH1cclxuICB9O1xyXG4gIHJlYWRvbmx5IG1hcmdpbjogTWFyZ2luTW9kZWwgPSB7XHJcbiAgICBib3R0b206IDBcclxuICB9O1xyXG4gIHNlcmllczogU2VyaWVzTW9kZWxbXTtcclxuICBoZWlnaHQ6IHN0cmluZztcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF93aWRnZXRSZWY6IFdpZGdldFJlZixcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIF90eXBlOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7XHJcbiAgICBfc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICB0aGlzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gICAgICB0aGlzLnBhbGV0dGVzID0gX3Nlc3Npb24uYWNjZW50UGFsZXR0ZTtcclxuICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgfSk7XHJcbiAgICBfd2lkZ2V0UmVmLnJlc2l6ZS5zdWJzY3JpYmUoZCA9PiB7XHJcbiAgICAgIHRoaXMuaGVpZ2h0ID0gYCR7ZC5oZWlnaHR9cHhgO1xyXG4gICAgICBpZiAodGhpcy5jaGFydCkgdGhpcy5jaGFydC5oZWlnaHQgPSB0aGlzLmhlaWdodDtcclxuICAgIH0pO1xyXG4gIH1cclxuICBhc3luYyBvbkJpbmQoZGF0YTogTW9kZWxbXSkge1xyXG4gICAgYXdhaXQgdGhpcy5fcHJlcGFyZShkYXRhKTtcclxuICAgIHRoaXMuX2RyYXcoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZHJhdygpIHtcclxuICAgIHRoaXMuY2hhcnQgJiYgdGhpcy5jaGFydC5kZXN0cm95KCk7XHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHtcclxuICAgICAgYXhlczogdGhpcy5heGVzLFxyXG4gICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0LFxyXG4gICAgICByb3dzOiB0aGlzLnJvd3MsXHJcbiAgICAgIGxlZ2VuZFNldHRpbmdzOiB0aGlzLmxlZ2VuZCxcclxuICAgICAgY3Jvc3NoYWlyOiB0aGlzLmNyb3NzaGFpcixcclxuICAgICAgdG9vbHRpcDogdGhpcy50b29sdGlwLFxyXG4gICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICBjaGFydEFyZWE6IHRoaXMuY2hhcnRBcmVhLFxyXG4gICAgICBwcmltYXJ5WEF4aXM6IHRoaXMucHJpbWFyeVhBeGlzLFxyXG4gICAgICBwcmltYXJ5WUF4aXM6IHRoaXMucHJpbWFyeVlBeGlzLFxyXG4gICAgICB0aGVtZTogdGhpcy50aGVtZSxcclxuICAgICAgbWFyZ2luOiB0aGlzLm1hcmdpbixcclxuICAgICAgdXNlR3JvdXBpbmdTZXBhcmF0b3I6IHRydWUsXHJcbiAgICAgIHBhbGV0dGVzOiB0aGlzLnBhbGV0dGVzLFxyXG4gICAgICB6b29tU2V0dGluZ3M6IHRoaXMuem9vbVNldHRpbmdzLFxyXG4gICAgICBzaGFyZWRUb29sdGlwUmVuZGVyOiB0aGlzLnNoYXJlZFRvb2x0aXBSZW5kZXIuYmluZCh0aGlzKSxcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcblxyXG4gIH1cclxuICBzaGFyZWRUb29sdGlwUmVuZGVyKGV2dDogSVNoYXJlZFRvb2x0aXBSZW5kZXJFdmVudEFyZ3MpIHtcclxuICAgIGV2dC5kYXRhLmZvckVhY2goKGQsIGkpID0+IHtcclxuICAgICAgaWYgKGV2dC5zZXJpZXNbZC5zZXJpZXNJbmRleF0ueU5hbWUgIT09ICdjb3VudCcpXHJcbiAgICAgICAgZXZ0LnRleHRbaV0gPSBgJHtkLnNlcmllc05hbWV9IDogPGI+JHtkYXlqcy5kdXJhdGlvbihkLnBvaW50WSBhcyBhbnksICdzJykuaHVtYW5pemUoKX08L2I+YDtcclxuICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIGFzeW5jIF9wcmVwYXJlKGRhdGE6IE1vZGVsW10pIHtcclxuICAgIGNvbnN0IGluZGljYXRvckRhdGE6IFZvbHVtZVtdID0gW10sIHNlcmllczogU2VyaWVzTW9kZWxbXSA9IFtdO1xyXG4gICAgZm9yICh2YXIgaXRlbSBvZiBkYXRhKSB7XHJcbiAgICAgIGl0ZW0ucG9pbnRzLmZvckVhY2gocCA9PiB7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHAuZGF0ZSA9IG5ldyBEYXRlKHAuZGF0ZSksXHJcbiAgICAgICAgICBpbmRpY2F0b3IgPSBpbmRpY2F0b3JEYXRhLmZpbmQoaSA9PiBpLmRhdGUudmFsdWVPZigpID09PSBkYXRlLnZhbHVlT2YoKSk7XHJcbiAgICAgICAgaWYgKGluZGljYXRvcilcclxuICAgICAgICAgIGluZGljYXRvci5jb3VudCArPSBwLmNvdW50O1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIGluZGljYXRvckRhdGEucHVzaCh7IGNvdW50OiBwLmNvdW50LCBkYXRlIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLl93aWRnZXRSZWYub3B0aW9ucy5jdWJlIHx8IHRoaXMuX3dpZGdldFJlZi5vcHRpb25zLmN1YmUgPT0gbnVsbCk7XHJcbiAgICAgIGNvbnN0IGF4aXMgPSBjdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0gdGhpcy5fd2lkZ2V0UmVmLm9wdGlvbnMuc2VyaWVzKTtcclxuICAgICAgY29uc3QgdGl0bGUgPSBhd2FpdCB0aGlzLl90eXBlLmdldChheGlzLmRhdGFUeXBlLCBpdGVtLnNlcmllcykudG9Qcm9taXNlKCk7XHJcbiAgICAgIHNlcmllcy5wdXNoKHtcclxuICAgICAgICB0eXBlOiAnTGluZScsXHJcbiAgICAgICAgeE5hbWU6ICdkYXRlJyxcclxuICAgICAgICB5TmFtZTogJ2R1cmF0aW9uJyxcclxuICAgICAgICB5QXhpc05hbWU6ICdwcmltYXJ5JyxcclxuICAgICAgICBuYW1lOiB0aXRsZSxcclxuICAgICAgICBkYXRhU291cmNlOiBpdGVtLnBvaW50cyxcclxuICAgICAgICBtYXJrZXI6IHtcclxuICAgICAgICAgIHdpZHRoOiA2LFxyXG4gICAgICAgICAgaGVpZ2h0OiA2LFxyXG4gICAgICAgICAgdmlzaWJsZTogZmFsc2VcclxuICAgICAgICB9XHJcbiAgICAgIH0gYXMgU2VyaWVzTW9kZWwpO1xyXG4gICAgfVxyXG4gICAgc2VyaWVzLnB1c2goe1xyXG4gICAgICB0eXBlOiAnQ29sdW1uJyxcclxuICAgICAgeE5hbWU6ICdkYXRlJyxcclxuICAgICAgeU5hbWU6ICdjb3VudCcsXHJcbiAgICAgIG5hbWU6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZvbHVtZScpLFxyXG4gICAgICBkYXRhU291cmNlOiBpbmRpY2F0b3JEYXRhLFxyXG4gICAgICB5QXhpc05hbWU6ICd2b2x1bWUnLFxyXG4gICAgICBtYXJrZXI6IHtcclxuICAgICAgICB3aWR0aDogMCxcclxuICAgICAgICBoZWlnaHQ6IDAsXHJcbiAgICAgICAgdmlzaWJsZTogZmFsc2VcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlcmllcyA9IHNlcmllcztcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIE1vZGVsIHtcclxuICBwb2ludHM6IFBvaW50W107XHJcbiAgc2VyaWVzOiBzdHJpbmc7XHJcbn1cclxuaW50ZXJmYWNlIFBvaW50IHtcclxuICBkYXRlOiBEYXRlO1xyXG4gIGR1cmF0aW9uOiBudW1iZXI7XHJcbiAgY291bnQ6IG51bWJlcjtcclxufVxyXG5pbnRlcmZhY2UgVm9sdW1lIHtcclxuICBkYXRlOiBEYXRlO1xyXG4gIGNvdW50OiBudW1iZXI7XHJcbn1cclxuIl19
@@ -16,10 +16,12 @@ let CubeWidgetFilterComponent = class CubeWidgetFilterComponent {
16
16
  this.exclude = [];
17
17
  const { xAxis, series, exclude, cube: name } = this._widgetRef.options;
18
18
  this.cube = name;
19
- if (isArray(xAxis))
20
- this.exclude = [...xAxis];
21
- else
22
- this.exclude.push(xAxis);
19
+ if (xAxis) {
20
+ if (isArray(xAxis))
21
+ this.exclude = [...xAxis];
22
+ else
23
+ this.exclude.push(xAxis);
24
+ }
23
25
  if (series) {
24
26
  if (isArray(series))
25
27
  this.exclude = this.exclude.concat(series);
@@ -56,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
56
58
  type: Component,
57
59
  args: [{ template: "<bizdoc-cube-filter [cube]=\"cube\"\r\n [axes]=\"axes\" [exclude]=\"exclude\"\r\n (axesChange)=\"valuesChange($event)\"></bizdoc-cube-filter>\r\n" }]
58
60
  }], ctorParameters: function () { return [{ type: i1.WidgetRef }, { type: i2.SessionService }, { type: i3.FormBuilder }]; } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvZGFzaGJvYXJkL2N1YmUvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2Rhc2hib2FyZC9jdWJlL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0lBUXJDLHlCQUF5QixTQUF6Qix5QkFBeUI7SUFLcEMsa0JBQWtCO0lBQ2xCLFlBQ21CLFVBQThCLEVBQ3ZDLFFBQXdCLEVBQ2YsR0FBZ0I7UUFGaEIsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFDdkMsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDZixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBUG5DLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFTckIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN2RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQzs7WUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzs7Z0JBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzs7Z0JBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFFcEgsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLGFBQWEsS0FBSyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekUsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFDRCxZQUFZLENBQUMsSUFBSTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7Q0FDRixDQUFBO3NIQXBDWSx5QkFBeUI7MEdBQXpCLHlCQUF5QixvRENkdEMseUxBR0E7QURXYSx5QkFBeUI7SUFGckMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFFLENBQUM7SUFDbEQsc0JBQXNCO0dBQ1QseUJBQXlCLENBb0NyQztTQXBDWSx5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFMckMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFdpZGdldFJlZiB9IGZyb20gJy4uLy4uL3dpZGdldC1yZWYnO1xyXG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAnLi4vY3ViZS1hbmFseXNpcy5iYXNlJztcclxuaW1wb3J0IHsgQXJndW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS9iYXNlJztcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS13aWRnZXQtZmlsdGVyJyB9KVxyXG4vKiogZmlsdGVyIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBDdWJlV2lkZ2V0RmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBcmd1bWVudHNDb21wb25lbnQge1xyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICBleGNsdWRlOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGN1YmU6IHN0cmluZztcclxuICBheGVzOiB7fTtcclxuICAvKiogZmlsdGVyIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3dpZGdldFJlZjogV2lkZ2V0UmVmPE9wdGlvbnM+LFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mYjogRm9ybUJ1aWxkZXJcclxuICApIHtcclxuICAgIGNvbnN0IHsgeEF4aXMsIHNlcmllcywgZXhjbHVkZSwgY3ViZTogbmFtZSB9ID0gdGhpcy5fd2lkZ2V0UmVmLm9wdGlvbnM7XHJcbiAgICB0aGlzLmN1YmUgPSBuYW1lO1xyXG4gICAgaWYgKGlzQXJyYXkoeEF4aXMpKSB0aGlzLmV4Y2x1ZGUgPSBbLi4ueEF4aXNdO1xyXG4gICAgZWxzZSB0aGlzLmV4Y2x1ZGUucHVzaCh4QXhpcyk7XHJcbiAgICBpZiAoc2VyaWVzKSB7XHJcbiAgICAgIGlmIChpc0FycmF5KHNlcmllcykpIHRoaXMuZXhjbHVkZSA9IHRoaXMuZXhjbHVkZS5jb25jYXQoc2VyaWVzKTtcclxuICAgICAgZWxzZSB0aGlzLmV4Y2x1ZGUucHVzaChzZXJpZXMpO1xyXG4gICAgfVxyXG4gICAgaWYgKGV4Y2x1ZGUpIHtcclxuICAgICAgaWYgKGlzQXJyYXkoZXhjbHVkZSkpIHRoaXMuZXhjbHVkZSA9IHRoaXMuZXhjbHVkZS5jb25jYXQoZXhjbHVkZSk7XHJcbiAgICAgIGVsc2UgdGhpcy5leGNsdWRlLnB1c2goZXhjbHVkZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjdWJlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT0gbmFtZSkgfHwgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdLCBjb250cm9scyA9IHt9O1xyXG5cclxuICAgIGN1YmUuYXhlcy5maWx0ZXIoYSA9PiAhYS5oaWRkZW4gJiYgYS5zZWxlY3Rpb25Nb2RlICE9PSAnTm9uZScpLmZvckVhY2goYSA9PiB7XHJcbiAgICAgIGNvbnRyb2xzW2EubmFtZV0gPSB0aGlzLl9mYi5jb250cm9sKG51bGwpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLl9mYi5ncm91cChjb250cm9scyk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5heGVzID0gdGhpcy5mb3JtLnZhbHVlO1xyXG4gIH1cclxuICB2YWx1ZXNDaGFuZ2UoYXhlcykge1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoYXhlcyk7XHJcbiAgfVxyXG59XHJcbiIsIjxiaXpkb2MtY3ViZS1maWx0ZXIgW2N1YmVdPVwiY3ViZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2F4ZXNdPVwiYXhlc1wiIFtleGNsdWRlXT1cImV4Y2x1ZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChheGVzQ2hhbmdlKT1cInZhbHVlc0NoYW5nZSgkZXZlbnQpXCI+PC9iaXpkb2MtY3ViZS1maWx0ZXI+XHJcbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvZGFzaGJvYXJkL2N1YmUvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2Rhc2hib2FyZC9jdWJlL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0lBUXJDLHlCQUF5QixTQUF6Qix5QkFBeUI7SUFLcEMsa0JBQWtCO0lBQ2xCLFlBQ21CLFVBQThCLEVBQ3ZDLFFBQXdCLEVBQ2YsR0FBZ0I7UUFGaEIsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFDdkMsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDZixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBUDFCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFTOUIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN2RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQzs7Z0JBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzs7Z0JBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzs7Z0JBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFFcEgsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLGFBQWEsS0FBSyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekUsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFDRCxZQUFZLENBQUMsSUFBSTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7Q0FDRixDQUFBO3NIQXRDWSx5QkFBeUI7MEdBQXpCLHlCQUF5QixvRENkdEMseUxBR0E7QURXYSx5QkFBeUI7SUFGckMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFFLENBQUM7SUFDbEQsc0JBQXNCO0dBQ1QseUJBQXlCLENBc0NyQztTQXRDWSx5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFMckMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFdpZGdldFJlZiB9IGZyb20gJy4uLy4uL3dpZGdldC1yZWYnO1xyXG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAnLi4vY3ViZS1hbmFseXNpcy5iYXNlJztcclxuaW1wb3J0IHsgQXJndW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS9iYXNlJztcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS13aWRnZXQtZmlsdGVyJyB9KVxyXG4vKiogZmlsdGVyIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBDdWJlV2lkZ2V0RmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBcmd1bWVudHNDb21wb25lbnQge1xyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICByZWFkb25seSBleGNsdWRlOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGN1YmU6IHN0cmluZztcclxuICBheGVzOiB7fTtcclxuICAvKiogZmlsdGVyIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3dpZGdldFJlZjogV2lkZ2V0UmVmPE9wdGlvbnM+LFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mYjogRm9ybUJ1aWxkZXJcclxuICApIHtcclxuICAgIGNvbnN0IHsgeEF4aXMsIHNlcmllcywgZXhjbHVkZSwgY3ViZTogbmFtZSB9ID0gdGhpcy5fd2lkZ2V0UmVmLm9wdGlvbnM7XHJcbiAgICB0aGlzLmN1YmUgPSBuYW1lO1xyXG4gICAgaWYgKHhBeGlzKSB7XHJcbiAgICAgIGlmIChpc0FycmF5KHhBeGlzKSkgdGhpcy5leGNsdWRlID0gWy4uLnhBeGlzXTtcclxuICAgICAgZWxzZSB0aGlzLmV4Y2x1ZGUucHVzaCh4QXhpcyk7XHJcbiAgICB9XHJcbiAgICBpZiAoc2VyaWVzKSB7XHJcbiAgICAgIGlmIChpc0FycmF5KHNlcmllcykpIHRoaXMuZXhjbHVkZSA9IHRoaXMuZXhjbHVkZS5jb25jYXQoc2VyaWVzKTtcclxuICAgICAgZWxzZSB0aGlzLmV4Y2x1ZGUucHVzaChzZXJpZXMpO1xyXG4gICAgfVxyXG4gICAgaWYgKGV4Y2x1ZGUpIHtcclxuICAgICAgaWYgKGlzQXJyYXkoZXhjbHVkZSkpIHRoaXMuZXhjbHVkZSA9IHRoaXMuZXhjbHVkZS5jb25jYXQoZXhjbHVkZSk7XHJcbiAgICAgIGVsc2UgdGhpcy5leGNsdWRlLnB1c2goZXhjbHVkZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjdWJlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT0gbmFtZSkgfHwgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdLCBjb250cm9scyA9IHt9O1xyXG5cclxuICAgIGN1YmUuYXhlcy5maWx0ZXIoYSA9PiAhYS5oaWRkZW4gJiYgYS5zZWxlY3Rpb25Nb2RlICE9PSAnTm9uZScpLmZvckVhY2goYSA9PiB7XHJcbiAgICAgIGNvbnRyb2xzW2EubmFtZV0gPSB0aGlzLl9mYi5jb250cm9sKG51bGwpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLl9mYi5ncm91cChjb250cm9scyk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5heGVzID0gdGhpcy5mb3JtLnZhbHVlO1xyXG4gIH1cclxuICB2YWx1ZXNDaGFuZ2UoYXhlcykge1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoYXhlcyk7XHJcbiAgfVxyXG59XHJcbiIsIjxiaXpkb2MtY3ViZS1maWx0ZXIgW2N1YmVdPVwiY3ViZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2F4ZXNdPVwiYXhlc1wiIFtleGNsdWRlXT1cImV4Y2x1ZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChheGVzQ2hhbmdlKT1cInZhbHVlc0NoYW5nZSgkZXZlbnQpXCI+PC9iaXpkb2MtY3ViZS1maWx0ZXI+XHJcbiJdfQ==