@tetacom/svg-charts 1.3.1 → 1.3.3
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.
- package/chart/chart-container/x-axis/x-axis.component.d.ts +7 -5
- package/chart/directives/zoomable.directive.d.ts +3 -1
- package/chart/model/i-chart-config.d.ts +2 -0
- package/chart/service/zoom.service.d.ts +1 -4
- package/esm2020/chart/chart-container/crosshair/crosshair.component.mjs +1 -3
- package/esm2020/chart/chart-container/series/linear-series-base.mjs +2 -2
- package/esm2020/chart/chart-container/x-axis/x-axis.component.mjs +12 -6
- package/esm2020/chart/directives/brushable.directive.mjs +9 -2
- package/esm2020/chart/directives/zoomable.directive.mjs +63 -51
- package/esm2020/chart/model/i-chart-config.mjs +1 -1
- package/esm2020/chart/service/zoom.service.mjs +3 -18
- package/fesm2015/tetacom-svg-charts.mjs +89 -83
- package/fesm2015/tetacom-svg-charts.mjs.map +1 -1
- package/fesm2020/tetacom-svg-charts.mjs +80 -73
- package/fesm2020/tetacom-svg-charts.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -9,38 +9,43 @@ import { ZoomBehaviorType } from '../model/enum/zoom-behavior-type';
|
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "../service/zoom.service";
|
|
11
11
|
import * as i2 from "../service/chart.service";
|
|
12
|
+
import * as i3 from "../service/broadcast.service";
|
|
12
13
|
export class ZoomableDirective {
|
|
13
|
-
constructor(elementRef, zoomService, chartService, zone) {
|
|
14
|
+
constructor(elementRef, zoomService, chartService, broadcast, zone) {
|
|
14
15
|
this.elementRef = elementRef;
|
|
15
16
|
this.zoomService = zoomService;
|
|
16
17
|
this.chartService = chartService;
|
|
18
|
+
this.broadcast = broadcast;
|
|
17
19
|
this.zone = zone;
|
|
18
20
|
this.zoomable = false;
|
|
19
21
|
this.crosshair = false;
|
|
20
22
|
this.alive = true;
|
|
21
23
|
this.currentTransform = zoomIdentity;
|
|
22
24
|
this.zoomed = (event) => {
|
|
23
|
-
if (event.sourceEvent)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
this.currentTransform = event.transform;
|
|
25
|
+
if (!event.sourceEvent)
|
|
26
|
+
return;
|
|
27
|
+
const origin = this.axis.scale.copy().domain(this.axis.originDomain);
|
|
28
|
+
let domain = this.axis.orientation === AxisOrientation.y
|
|
29
|
+
? event.transform.rescaleY(origin).domain()
|
|
30
|
+
: event.transform.rescaleX(origin).domain();
|
|
31
|
+
const message = new ZoomMessage({
|
|
32
|
+
eventType: event.type,
|
|
33
|
+
axis: {
|
|
34
|
+
index: this.axis.index,
|
|
35
|
+
orientation: this.axis.orientation,
|
|
36
|
+
},
|
|
37
|
+
element: this.elementRef,
|
|
38
|
+
domain: domain,
|
|
39
|
+
chartId: this.config.id
|
|
40
|
+
});
|
|
41
|
+
if (event.sourceEvent.type === 'broadcast') {
|
|
42
|
+
this.zoomService.fireZoom(message);
|
|
43
43
|
}
|
|
44
|
+
if (event.sourceEvent.type === 'wheeling' || event.sourceEvent instanceof MouseEvent || (window.TouchEvent && event.sourceEvent instanceof TouchEvent)) {
|
|
45
|
+
this.zoomService.fireZoom(message);
|
|
46
|
+
this.zoomService.broadcastZoom(message);
|
|
47
|
+
}
|
|
48
|
+
this.currentTransform = event.transform;
|
|
44
49
|
};
|
|
45
50
|
}
|
|
46
51
|
ngOnInit() {
|
|
@@ -62,7 +67,7 @@ export class ZoomableDirective {
|
|
|
62
67
|
this.zoomService.zoomed.pipe(takeWhile(() => this.alive)).subscribe((zoomed) => {
|
|
63
68
|
if (this._element && this.elementRef !== zoomed?.element
|
|
64
69
|
&& zoomed?.axis?.index === this.axis.index
|
|
65
|
-
&& zoomed?.axis?.orientation === this.axis.orientation) {
|
|
70
|
+
&& zoomed?.axis?.orientation === this.axis.orientation && zoomed.eventType === 'end') {
|
|
66
71
|
const scale = this.axis.scale.copy().domain(this.axis.originDomain);
|
|
67
72
|
let transform;
|
|
68
73
|
if (zoomed.domain === null) {
|
|
@@ -93,31 +98,54 @@ export class ZoomableDirective {
|
|
|
93
98
|
[0, 0],
|
|
94
99
|
[this.size.width, this.size.height],
|
|
95
100
|
]);
|
|
96
|
-
|
|
101
|
+
const min = this.config?.zoom?.minTranslate
|
|
102
|
+
? this.axis.scale(this.config?.zoom?.minTranslate)
|
|
103
|
+
: 0;
|
|
104
|
+
const max = this.config?.zoom?.maxTranslate
|
|
105
|
+
? this.axis.scale(this.config?.zoom?.maxTranslate)
|
|
106
|
+
: this.axis.orientation === AxisOrientation.x ? this.size.width : this.size.height;
|
|
107
|
+
if (this.axis.orientation === AxisOrientation.x && this.config.zoom?.type === ZoomType.x) {
|
|
108
|
+
this.zoom.translateExtent([
|
|
109
|
+
[min, 0],
|
|
110
|
+
[max, this.size.height],
|
|
111
|
+
]);
|
|
112
|
+
}
|
|
113
|
+
if (this.axis.orientation === AxisOrientation.y && this.config.zoom?.type === ZoomType.y) {
|
|
97
114
|
this.zoom.translateExtent([
|
|
98
|
-
[0,
|
|
99
|
-
[this.size.width,
|
|
115
|
+
[0, min],
|
|
116
|
+
[this.size.width, max],
|
|
100
117
|
]);
|
|
101
118
|
}
|
|
102
119
|
if (this.config.zoom?.wheelDelta) {
|
|
103
120
|
this.zoom.wheelDelta(this.config.zoom?.wheelDelta);
|
|
104
121
|
}
|
|
105
122
|
const maxZoom = this.config.zoom?.max
|
|
106
|
-
? (this.axis.extremes[1] - this.axis.extremes[0]) /
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
: 0;
|
|
123
|
+
? (this.axis.extremes[1] - this.axis.extremes[0]) / this.config.zoom?.max : this.config.zoom?.limitZoomByData ? 1 : 0;
|
|
124
|
+
if (this.config.zoom?.wheelDelta) {
|
|
125
|
+
this.zoom.wheelDelta(this.config.zoom?.wheelDelta);
|
|
126
|
+
}
|
|
111
127
|
const minZoom = this.config.zoom?.min
|
|
112
128
|
? (this.axis.extremes[1] - this.axis.extremes[0]) /
|
|
113
129
|
this.config.zoom?.min
|
|
114
130
|
: Infinity;
|
|
115
131
|
this.zoom.scaleExtent([maxZoom, minZoom]);
|
|
116
132
|
this.zoom.on('zoom end', this.zoomed);
|
|
117
|
-
this._element.call(this.zoom).on('dblclick.zoom', null);
|
|
133
|
+
this._element.call(this.zoom).on('dblclick.zoom', null);
|
|
118
134
|
if (this.config?.zoom?.zoomBehavior === ZoomBehaviorType.wheel) {
|
|
119
135
|
this.runWheelTranslate();
|
|
120
136
|
}
|
|
137
|
+
this.broadcast.subscribeToZoom(this.config?.zoom.syncChannel).subscribe((zoom) => {
|
|
138
|
+
if (zoom.message.chartId !== this.config?.id && zoom.message.axis.orientation === this.axis.orientation && zoom.message.axis.index === this.axis.index) {
|
|
139
|
+
const scale = this.axis.scale.copy().domain(this.axis.originDomain);
|
|
140
|
+
const transform = this.zoomService.getD3Transform(zoom.message.domain, this.axis.originDomain, scale, this.axis.orientation, this.axis.options.inverted);
|
|
141
|
+
if (zoom.message.style?.transition) {
|
|
142
|
+
this._element.transition().duration(300).call(this.zoom.transform, transform, null, { type: 'broadcast' });
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
this._element.call(this.zoom.transform, transform, null, { type: 'broadcast' });
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
});
|
|
121
149
|
}
|
|
122
150
|
runWheelTranslate() {
|
|
123
151
|
let type = 'start';
|
|
@@ -134,7 +162,6 @@ export class ZoomableDirective {
|
|
|
134
162
|
return delta * 0.002;
|
|
135
163
|
});
|
|
136
164
|
const emit = (type, event) => {
|
|
137
|
-
const origin = this.axis.scale.copy().domain(this.axis.originDomain);
|
|
138
165
|
let transform = zoomIdentity;
|
|
139
166
|
const delta = type === 'end'
|
|
140
167
|
? 0
|
|
@@ -148,22 +175,7 @@ export class ZoomableDirective {
|
|
|
148
175
|
transform = transform.translate(this.currentTransform.x - delta / 2, 0);
|
|
149
176
|
}
|
|
150
177
|
transform = transform.scale(this.currentTransform.k);
|
|
151
|
-
|
|
152
|
-
? transform.rescaleY(origin).domain()
|
|
153
|
-
: transform.rescaleX(origin).domain();
|
|
154
|
-
const message = new ZoomMessage({
|
|
155
|
-
eventType: type,
|
|
156
|
-
element: this.elementRef,
|
|
157
|
-
axis: {
|
|
158
|
-
index: this.axis.index,
|
|
159
|
-
orientation: this.axis.orientation
|
|
160
|
-
},
|
|
161
|
-
domain,
|
|
162
|
-
chartId: this.config.id,
|
|
163
|
-
});
|
|
164
|
-
this._element?.call(this.zoom.transform, transform);
|
|
165
|
-
this.zoomService.fireZoom(message);
|
|
166
|
-
this.zoomService.broadcastZoom(message);
|
|
178
|
+
this._element?.call(this.zoom.transform, transform, null, { type: 'wheeling' });
|
|
167
179
|
this.currentTransform = transform;
|
|
168
180
|
};
|
|
169
181
|
this._element.on('wheel', (event) => {
|
|
@@ -183,14 +195,14 @@ export class ZoomableDirective {
|
|
|
183
195
|
});
|
|
184
196
|
}
|
|
185
197
|
}
|
|
186
|
-
ZoomableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ZoomableDirective, deps: [{ token: i0.ElementRef }, { token: i1.ZoomService }, { token: i2.ChartService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
198
|
+
ZoomableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ZoomableDirective, deps: [{ token: i0.ElementRef }, { token: i1.ZoomService }, { token: i2.ChartService }, { token: i3.BroadcastService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
187
199
|
ZoomableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: ZoomableDirective, selector: "[tetaZoomable]", inputs: { config: "config", axis: "axis", size: "size" }, host: { properties: { "class.zoomable": "this.zoomable", "class.crosshair": "this.crosshair" } }, ngImport: i0 });
|
|
188
200
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ZoomableDirective, decorators: [{
|
|
189
201
|
type: Directive,
|
|
190
202
|
args: [{
|
|
191
203
|
selector: '[tetaZoomable]',
|
|
192
204
|
}]
|
|
193
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ZoomService }, { type: i2.ChartService }, { type: i0.NgZone }]; }, propDecorators: { config: [{
|
|
205
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ZoomService }, { type: i2.ChartService }, { type: i3.BroadcastService }, { type: i0.NgZone }]; }, propDecorators: { config: [{
|
|
194
206
|
type: Input
|
|
195
207
|
}], axis: [{
|
|
196
208
|
type: Input
|
|
@@ -203,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
203
215
|
type: HostBinding,
|
|
204
216
|
args: ['class.crosshair']
|
|
205
217
|
}] } });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbWFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2RpcmVjdGl2ZXMvem9vbWFibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQTRCLFlBQVksRUFBQyxNQUFNLElBQUksQ0FBQztBQUMzRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxXQUFXLEdBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7O0FBS2xFLE1BQU0sT0FBTyxpQkFBaUI7SUFjNUIsWUFDVSxVQUFzQixFQUN0QixXQUF3QixFQUN4QixZQUEwQixFQUMxQixJQUFZO1FBSFosZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBYmlCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDaEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUlsRCxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWIscUJBQWdCLEdBQUcsWUFBWSxDQUFDO1FBZ0d4QyxXQUFNLEdBQUcsQ0FBQyxLQUE0QixFQUFFLEVBQUU7WUFDeEMsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO2dCQUNyQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxD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QUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pCLE9BQU87YUFDUjtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO2dCQUMvQixZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ2xCLElBQUksR0FBRyxNQUFNLENBQUM7Z0JBQ2QsUUFBUSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ25CLElBQUksR0FBRyxPQUFPLENBQUM7Z0JBQ2pCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNULENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs4R0F2TlUsaUJBQWlCO2tHQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFIN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQjsyS0FFVSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFaUMsUUFBUTtzQkFBOUMsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBQ1csU0FBUztzQkFBaEQsV0FBVzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtJQ2hhcnRDb25maWd9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7QXhpc30gZnJvbSAnLi4vY29yZS9heGlzL2F4aXMnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHtEM1pvb21FdmVudCwgWm9vbUJlaGF2aW9yLCB6b29tSWRlbnRpdHl9IGZyb20gJ2QzJztcbmltcG9ydCB7Wm9vbVR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vem9vbS10eXBlJztcbmltcG9ydCB7QXhpc09yaWVudGF0aW9ufSBmcm9tICcuLi9tb2RlbC9lbnVtL2F4aXMtb3JpZW50YXRpb24nO1xuaW1wb3J0IHtab29tTWVzc2FnZSx9IGZyb20gJy4uL21vZGVsL2ktYnJvYWRjYXN0LW1lc3NhZ2UnO1xuaW1wb3J0IHt0YWtlV2hpbGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDaGFydFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQge1pvb21CZWhhdmlvclR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vem9vbS1iZWhhdmlvci10eXBlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RldGFab29tYWJsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBab29tYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGNvbmZpZzogSUNoYXJ0Q29uZmlnO1xuICBASW5wdXQoKSBheGlzOiBBeGlzO1xuICBASW5wdXQoKSBzaXplOiBET01SZWN0O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muem9vbWFibGUnKSBwcml2YXRlIHpvb21hYmxlID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuY3Jvc3NoYWlyJykgcHJpdmF0ZSBjcm9zc2hhaXIgPSBmYWxzZTtcblxuICBwcml2YXRlIF9lbGVtZW50OiBkMy5TZWxlY3Rpb248U1ZHRWxlbWVudCwgYW55LCBhbnksIGFueT47XG4gIHByaXZhdGUgem9vbTogWm9vbUJlaGF2aW9yPGFueSwgYW55PjtcbiAgcHJpdmF0ZSBhbGl2ZSA9IHRydWU7XG5cbiAgcHJpdmF0ZSBjdXJyZW50VHJhbnNmb3JtID0gem9vbUlkZW50aXR5O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcml2YXRlIGNoYXJ0U2VydmljZTogQ2hhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lXG4gICkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuYXhpcz8ub3B0aW9ucz8uem9vbSB8fCB0aGlzLmNvbmZpZz8uem9vbT8uZW5hYmxlKSB7XG4gICAgICB0aGlzLnpvb21hYmxlID0gdGhpcy5jb25maWc/Lnpvb20/Lnpvb21CZWhhdmlvciA9PT0gWm9vbUJlaGF2aW9yVHlwZS5tb3ZlICYmICF0aGlzLmNvbmZpZz8udG9vbHRpcD8uc2hvd0Nyb3NzaGFpcjtcbiAgICAgIHRoaXMuY3Jvc3NoYWlyID0gdGhpcy5jb25maWc/LnRvb2x0aXA/LnNob3dDcm9zc2hhaXI7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaW5pdFpvb21MaXN0ZW5lcnMoKTtcbiAgICB0aGlzLmluaXRab29tU3luYygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy56b29tPy5vbignc3RhcnQgem9vbSBlbmQnLCBudWxsKTtcbiAgICB0aGlzLl9lbGVtZW50Py5vbignd2hlZWwnLCBudWxsKTtcbiAgICB0aGlzLmFsaXZlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGluaXRab29tU3luYygpIHtcbiAgICB0aGlzLnpvb21TZXJ2aWNlLnpvb21lZC5waXBlKFxuICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuYWxpdmUpXG4gICAgKS5zdWJzY3JpYmUoKHpvb21lZDogWm9vbU1lc3NhZ2UpID0+IHtcbiAgICAgIGlmICh0aGlzLl9lbGVtZW50ICYmIHRoaXMuZWxlbWVudFJlZiAhPT0gem9vbWVkPy5lbGVtZW50XG4gICAgICAgICYmIHpvb21lZD8uYXhpcz8uaW5kZXggPT09IHRoaXMuYXhpcy5pbmRleFxuICAgICAgICAmJiB6b29tZWQ/LmF4aXM/Lm9yaWVudGF0aW9uID09PSB0aGlzLmF4aXMub3JpZW50YXRpb24pIHtcbiAgICAgICAgY29uc3Qgc2NhbGUgPSB0aGlzLmF4aXMuc2NhbGUuY29weSgpLmRvbWFpbih0aGlzLmF4aXMub3JpZ2luRG9tYWluKTtcbiAgICAgICAgbGV0IHRyYW5zZm9ybTtcbiAgICAgICAgaWYgKHpvb21lZC5kb21haW4gPT09IG51bGwpIHtcbiAgICAgICAgICB0cmFuc2Zvcm0gPSB6b29tSWRlbnRpdHk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJhbnNmb3JtID1cbiAgICAgICAgICAgIHRoaXMuem9vbVNlcnZpY2UuZ2V0RDNUcmFuc2Zvcm0oem9vbWVkLmRvbWFpbiwgdGhpcy5heGlzLm9yaWdpbkRvbWFpbiwgc2NhbGUsIHRoaXMuYXhpcy5vcmllbnRhdGlvbiwgdGhpcy5heGlzLm9wdGlvbnMuaW52ZXJ0ZWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh6b29tZWQuc3R5bGU/LnRyYW5zaXRpb24pIHtcbiAgICAgICAgICB0aGlzLl9lbGVtZW50LnRyYW5zaXRpb24oKS5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fZWxlbWVudC5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtID0gdHJhbnNmb3JtO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Wm9vbUxpc3RlbmVycygpIHtcbiAgICBjb25zdCBlbmFibGUgPVxuICAgICAgKHRoaXMuYXhpcz8ub3B0aW9ucz8uem9vbSAmJiB0aGlzLmF4aXM/Lm9wdGlvbnMudmlzaWJsZSAhPT0gZmFsc2UpIHx8XG4gICAgICB0aGlzLmNvbmZpZz8uem9vbT8uZW5hYmxlO1xuICAgIGlmICghZW5hYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2VsZW1lbnQgPSBkMy5zZWxlY3QodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuem9vbSA9IGQzLnpvb20oKS5leHRlbnQoW1xuICAgICAgWzAsIDBdLFxuICAgICAgW3RoaXMuc2l6ZS53aWR0aCwgdGhpcy5zaXplLmhlaWdodF0sXG4gICAgXSk7XG4gICAgaWYgKHRoaXMuY29uZmlnLnpvb20/LmxpbWl0VHJhbnNsYXRlQnlEYXRhKSB7XG4gICAgICB0aGlzLnpvb20udHJhbnNsYXRlRXh0ZW50KFtcbiAgICAgICAgWzAsIDBdLFxuICAgICAgICBbdGhpcy5zaXplLndpZHRoLCB0aGlzLnNpemUuaGVpZ2h0XSxcbiAgICAgIF0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb25maWcuem9vbT8ud2hlZWxEZWx0YSkge1xuICAgICAgdGhpcy56b29tLndoZWVsRGVsdGEodGhpcy5jb25maWcuem9vbT8ud2hlZWxEZWx0YSk7XG4gICAgfVxuICAgIGNvbnN0IG1heFpvb20gPSB0aGlzLmNvbmZpZy56b29tPy5tYXhcbiAgICAgID8gKHRoaXMuYXhpcy5leHRyZW1lc1sxXSAtIHRoaXMuYXhpcy5leHRyZW1lc1swXSkgL1xuICAgICAgdGhpcy5jb25maWcuem9vbT8ubWF4XG4gICAgICA6IHRoaXMuY29uZmlnLnpvb20/LmxpbWl0Wm9vbUJ5RGF0YVxuICAgICAgICA/IDFcbiAgICAgICAgOiAwO1xuXG4gICAgY29uc3QgbWluWm9vbSA9IHRoaXMuY29uZmlnLnpvb20/Lm1pblxuICAgICAgPyAodGhpcy5heGlzLmV4dHJlbWVzWzFdIC0gdGhpcy5heGlzLmV4dHJlbWVzWzBdKSAvXG4gICAgICB0aGlzLmNvbmZpZy56b29tPy5taW5cbiAgICAgIDogSW5maW5pdHk7XG5cbiAgICB0aGlzLnpvb20uc2NhbGVFeHRlbnQoW21heFpvb20sIG1pblpvb21dKTtcblxuICAgIHRoaXMuem9vbS5vbignem9vbSBlbmQnLCB0aGlzLnpvb21lZCk7XG4gICAgdGhpcy5fZWxlbWVudC5jYWxsKHRoaXMuem9vbSkub24oJ2RibGNsaWNrLnpvb20nLCBudWxsKTsgLy8gRGlzYWJsZSBkYmNsaWNrIHpvb21cblxuICAgIGlmICh0aGlzLmNvbmZpZz8uem9vbT8uem9vbUJlaGF2aW9yID09PSBab29tQmVoYXZpb3JUeXBlLndoZWVsKSB7XG4gICAgICB0aGlzLnJ1bldoZWVsVHJhbnNsYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgem9vbWVkID0gKGV2ZW50OiBEM1pvb21FdmVudDxhbnksIGFueT4pID0+IHtcbiAgICBpZiAoZXZlbnQuc291cmNlRXZlbnQpIHtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhldmVudC5zb3VyY2VFdmVudCkubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuYXhpcy5zY2FsZS5jb3B5KCkuZG9tYWluKHRoaXMuYXhpcy5vcmlnaW5Eb21haW4pO1xuXG4gICAgICAgIGxldCBkb21haW4gPVxuICAgICAgICAgIHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnlcbiAgICAgICAgICAgID8gZXZlbnQudHJhbnNmb3JtLnJlc2NhbGVZKG9yaWdpbikuZG9tYWluKClcbiAgICAgICAgICAgIDogZXZlbnQudHJhbnNmb3JtLnJlc2NhbGVYKG9yaWdpbikuZG9tYWluKCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgWm9vbU1lc3NhZ2Uoe1xuICAgICAgICAgIGV2ZW50VHlwZTogZXZlbnQudHlwZSxcbiAgICAgICAgICBheGlzOiB7XG4gICAgICAgICAgICBpbmRleDogdGhpcy5heGlzLmluZGV4LFxuICAgICAgICAgICAgb3JpZW50YXRpb246IHRoaXMuYXhpcy5vcmllbnRhdGlvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVsZW1lbnQ6IHRoaXMuZWxlbWVudFJlZixcbiAgICAgICAgICBkb21haW46IGRvbWFpbixcbiAgICAgICAgICBjaGFydElkOiB0aGlzLmNvbmZpZy5pZFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy56b29tU2VydmljZS5maXJlWm9vbShtZXNzYWdlKTtcbiAgICAgICAgdGhpcy56b29tU2VydmljZS5icm9hZGNhc3Rab29tKG1lc3NhZ2UpO1xuICAgICAgfVxuICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtID0gZXZlbnQudHJhbnNmb3JtO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHJ1bldoZWVsVHJhbnNsYXRlKCkge1xuICAgIGxldCB0eXBlOiAnc3RhcnQnIHwgJ3pvb20nIHwgJ2VuZCcgPSAnc3RhcnQnO1xuICAgIGxldCB3aGVlbGluZztcblxuICAgIHRoaXMuem9vbVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChldmVudC5jdHJsS2V5ICYmIGV2ZW50LnR5cGUgPT09ICd3aGVlbCcpIHx8XG4gICAgICAgICAgICBCb29sZWFuKHdpbmRvdy5Ub3VjaEV2ZW50ICYmIGV2ZW50LnR5cGUgIT09ICd3aGVlbCcpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgICAud2hlZWxEZWx0YSgoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgZGVsdGEgPVxuICAgICAgICAgIHRoaXMuY29uZmlnPy56b29tLnR5cGUgPT09IFpvb21UeXBlLnhcbiAgICAgICAgICAgID8gLWV2ZW50LmRlbHRhWFxuICAgICAgICAgICAgOiAtZXZlbnQuZGVsdGFZO1xuICAgICAgICByZXR1cm4gZGVsdGEgKiAwLjAwMjtcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgZW1pdCA9ICh0eXBlOiBzdHJpbmcsIGV2ZW50OiBXaGVlbEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBvcmlnaW4gPSB0aGlzLmF4aXMuc2NhbGUuY29weSgpLmRvbWFpbih0aGlzLmF4aXMub3JpZ2luRG9tYWluKTtcbiAgICAgIGxldCB0cmFuc2Zvcm0gPSB6b29tSWRlbnRpdHk7XG4gICAgICBjb25zdCBkZWx0YSA9XG4gICAgICAgIHR5cGUgPT09ICdlbmQnXG4gICAgICAgICAgPyAwXG4gICAgICAgICAgOiB0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55XG4gICAgICAgICAgICA/IGV2ZW50LmRlbHRhWVxuICAgICAgICAgICAgOiBldmVudC5kZWx0YVg7XG5cbiAgICAgIGlmICh0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55KSB7XG4gICAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybS50cmFuc2xhdGUoXG4gICAgICAgICAgMCxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRUcmFuc2Zvcm0ueSAtIGRlbHRhIC8gMlxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueCkge1xuICAgICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm0udHJhbnNsYXRlKFxuICAgICAgICAgIHRoaXMuY3VycmVudFRyYW5zZm9ybS54IC0gZGVsdGEgLyAyLFxuICAgICAgICAgIDBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdHJhbnNmb3JtID0gdHJhbnNmb3JtLnNjYWxlKHRoaXMuY3VycmVudFRyYW5zZm9ybS5rKTtcblxuICAgICAgbGV0IGRvbWFpbiA9XG4gICAgICAgIHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnlcbiAgICAgICAgICA/IHRyYW5zZm9ybS5yZXNjYWxlWShvcmlnaW4pLmRvbWFpbigpXG4gICAgICAgICAgOiB0cmFuc2Zvcm0ucmVzY2FsZVgob3JpZ2luKS5kb21haW4oKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBab29tTWVzc2FnZSh7XG4gICAgICAgIGV2ZW50VHlwZTogdHlwZSxcbiAgICAgICAgZWxlbWVudDogdGhpcy5lbGVtZW50UmVmLFxuICAgICAgICBheGlzOiB7XG4gICAgICAgICAgaW5kZXg6IHRoaXMuYXhpcy5pbmRleCxcbiAgICAgICAgICBvcmllbnRhdGlvbjogdGhpcy5heGlzLm9yaWVudGF0aW9uXG4gICAgICAgIH0sXG4gICAgICAgIGRvbWFpbixcbiAgICAgICAgY2hhcnRJZDogdGhpcy5jb25maWcuaWQsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuX2VsZW1lbnQ/LmNhbGwodGhpcy56b29tLnRyYW5zZm9ybSwgdHJhbnNmb3JtKTtcbiAgICAgIHRoaXMuem9vbVNlcnZpY2UuZmlyZVpvb20obWVzc2FnZSk7XG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLmJyb2FkY2FzdFpvb20obWVzc2FnZSk7XG4gICAgICB0aGlzLmN1cnJlbnRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm07XG4gICAgfTtcblxuICAgIHRoaXMuX2VsZW1lbnQub24oJ3doZWVsJywgKGV2ZW50OiBXaGVlbEV2ZW50KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHdoZWVsaW5nKTtcbiAgICAgICAgZW1pdCh0eXBlLCBldmVudCk7XG4gICAgICAgIHR5cGUgPSAnem9vbSc7XG4gICAgICAgIHdoZWVsaW5nID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgZW1pdCgnZW5kJywgZXZlbnQpO1xuICAgICAgICAgIHR5cGUgPSAnc3RhcnQnO1xuICAgICAgICB9LCA1MCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbWFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2RpcmVjdGl2ZXMvem9vbWFibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFjLFdBQVcsRUFBRSxLQUFLLEdBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSTNHLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBNEIsWUFBWSxFQUFDLE1BQU0sSUFBSSxDQUFDO0FBQzNELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFDLFdBQVcsR0FBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBTWxFLE1BQU0sT0FBTyxpQkFBaUI7SUFjNUIsWUFDVSxVQUFzQixFQUN0QixXQUF3QixFQUN4QixZQUEwQixFQUMxQixTQUEyQixFQUMzQixJQUFZO1FBSlosZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBZGlCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDaEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUlsRCxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWIscUJBQWdCLEdBQUcsWUFBWSxDQUFDO1FBb0l4QyxXQUFNLEdBQUcsQ0FBQyxLQUE0QixFQUFFLEVBQUU7WUFFeEMsSUFBRyxDQUFDLEtBQUssQ0FBQyxX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LElBQUksR0FBRyxPQUFPLENBQUM7Z0JBQ2pCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNULENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs4R0FsUFUsaUJBQWlCO2tHQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFIN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQjswTUFFVSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFaUMsUUFBUTtzQkFBOUMsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBQ1csU0FBUztzQkFBaEQsV0FBVzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtJQ2hhcnRDb25maWd9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7QXhpc30gZnJvbSAnLi4vY29yZS9heGlzL2F4aXMnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHtEM1pvb21FdmVudCwgWm9vbUJlaGF2aW9yLCB6b29tSWRlbnRpdHl9IGZyb20gJ2QzJztcbmltcG9ydCB7Wm9vbVR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vem9vbS10eXBlJztcbmltcG9ydCB7QXhpc09yaWVudGF0aW9ufSBmcm9tICcuLi9tb2RlbC9lbnVtL2F4aXMtb3JpZW50YXRpb24nO1xuaW1wb3J0IHtab29tTWVzc2FnZSx9IGZyb20gJy4uL21vZGVsL2ktYnJvYWRjYXN0LW1lc3NhZ2UnO1xuaW1wb3J0IHt0YWtlV2hpbGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDaGFydFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQge1pvb21CZWhhdmlvclR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vem9vbS1iZWhhdmlvci10eXBlJztcbmltcG9ydCB7QnJvYWRjYXN0U2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2UvYnJvYWRjYXN0LnNlcnZpY2VcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RldGFab29tYWJsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBab29tYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGNvbmZpZzogSUNoYXJ0Q29uZmlnO1xuICBASW5wdXQoKSBheGlzOiBBeGlzO1xuICBASW5wdXQoKSBzaXplOiBET01SZWN0O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muem9vbWFibGUnKSBwcml2YXRlIHpvb21hYmxlID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuY3Jvc3NoYWlyJykgcHJpdmF0ZSBjcm9zc2hhaXIgPSBmYWxzZTtcblxuICBwcml2YXRlIF9lbGVtZW50OiBkMy5TZWxlY3Rpb248U1ZHRWxlbWVudCwgYW55LCBhbnksIGFueT47XG4gIHByaXZhdGUgem9vbTogWm9vbUJlaGF2aW9yPGFueSwgYW55PjtcbiAgcHJpdmF0ZSBhbGl2ZSA9IHRydWU7XG5cbiAgcHJpdmF0ZSBjdXJyZW50VHJhbnNmb3JtID0gem9vbUlkZW50aXR5O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcml2YXRlIGNoYXJ0U2VydmljZTogQ2hhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnJvYWRjYXN0OiBCcm9hZGNhc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lXG4gICkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuYXhpcz8ub3B0aW9ucz8uem9vbSB8fCB0aGlzLmNvbmZpZz8uem9vbT8uZW5hYmxlKSB7XG4gICAgICB0aGlzLnpvb21hYmxlID0gdGhpcy5jb25maWc/Lnpvb20/Lnpvb21CZWhhdmlvciA9PT0gWm9vbUJlaGF2aW9yVHlwZS5tb3ZlICYmICF0aGlzLmNvbmZpZz8udG9vbHRpcD8uc2hvd0Nyb3NzaGFpcjtcbiAgICAgIHRoaXMuY3Jvc3NoYWlyID0gdGhpcy5jb25maWc/LnRvb2x0aXA/LnNob3dDcm9zc2hhaXI7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaW5pdFpvb21MaXN0ZW5lcnMoKTtcbiAgICB0aGlzLmluaXRab29tU3luYygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy56b29tPy5vbignc3RhcnQgem9vbSBlbmQnLCBudWxsKTtcbiAgICB0aGlzLl9lbGVtZW50Py5vbignd2hlZWwnLCBudWxsKTtcbiAgICB0aGlzLmFsaXZlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGluaXRab29tU3luYygpIHtcbiAgICB0aGlzLnpvb21TZXJ2aWNlLnpvb21lZC5waXBlKFxuICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuYWxpdmUpXG4gICAgKS5zdWJzY3JpYmUoKHpvb21lZDogWm9vbU1lc3NhZ2UpID0+IHtcbiAgICAgIGlmICh0aGlzLl9lbGVtZW50ICYmIHRoaXMuZWxlbWVudFJlZiAhPT0gem9vbWVkPy5lbGVtZW50XG4gICAgICAgICYmIHpvb21lZD8uYXhpcz8uaW5kZXggPT09IHRoaXMuYXhpcy5pbmRleFxuICAgICAgICAmJiB6b29tZWQ/LmF4aXM/Lm9yaWVudGF0aW9uID09PSB0aGlzLmF4aXMub3JpZW50YXRpb24gJiYgem9vbWVkLmV2ZW50VHlwZSA9PT0gJ2VuZCcpIHtcbiAgICAgICAgY29uc3Qgc2NhbGUgPSB0aGlzLmF4aXMuc2NhbGUuY29weSgpLmRvbWFpbih0aGlzLmF4aXMub3JpZ2luRG9tYWluKTtcbiAgICAgICAgbGV0IHRyYW5zZm9ybTtcbiAgICAgICAgaWYgKHpvb21lZC5kb21haW4gPT09IG51bGwpIHtcbiAgICAgICAgICB0cmFuc2Zvcm0gPSB6b29tSWRlbnRpdHk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJhbnNmb3JtID1cbiAgICAgICAgICAgIHRoaXMuem9vbVNlcnZpY2UuZ2V0RDNUcmFuc2Zvcm0oem9vbWVkLmRvbWFpbiwgdGhpcy5heGlzLm9yaWdpbkRvbWFpbiwgc2NhbGUsIHRoaXMuYXhpcy5vcmllbnRhdGlvbiwgdGhpcy5heGlzLm9wdGlvbnMuaW52ZXJ0ZWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh6b29tZWQuc3R5bGU/LnRyYW5zaXRpb24pIHtcbiAgICAgICAgICB0aGlzLl9lbGVtZW50LnRyYW5zaXRpb24oKS5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fZWxlbWVudC5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtID0gdHJhbnNmb3JtO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Wm9vbUxpc3RlbmVycygpIHtcbiAgICBjb25zdCBlbmFibGUgPVxuICAgICAgKHRoaXMuYXhpcz8ub3B0aW9ucz8uem9vbSAmJiB0aGlzLmF4aXM/Lm9wdGlvbnMudmlzaWJsZSAhPT0gZmFsc2UpIHx8XG4gICAgICB0aGlzLmNvbmZpZz8uem9vbT8uZW5hYmxlO1xuXG4gICAgaWYgKCFlbmFibGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9lbGVtZW50ID0gZDMuc2VsZWN0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnpvb20gPSBkMy56b29tKCkuZXh0ZW50KFtcbiAgICAgIFswLCAwXSxcbiAgICAgIFt0aGlzLnNpemUud2lkdGgsIHRoaXMuc2l6ZS5oZWlnaHRdLFxuICAgIF0pO1xuXG4gICAgY29uc3QgbWluID0gdGhpcy5jb25maWc/Lnpvb20/Lm1pblRyYW5zbGF0ZVxuICAgICAgPyB0aGlzLmF4aXMuc2NhbGUodGhpcy5jb25maWc/Lnpvb20/Lm1pblRyYW5zbGF0ZSlcbiAgICAgIDogMDtcblxuICAgIGNvbnN0IG1heCA9IHRoaXMuY29uZmlnPy56b29tPy5tYXhUcmFuc2xhdGVcbiAgICAgID8gdGhpcy5heGlzLnNjYWxlKHRoaXMuY29uZmlnPy56b29tPy5tYXhUcmFuc2xhdGUpXG4gICAgICA6IHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnggPyB0aGlzLnNpemUud2lkdGggOiB0aGlzLnNpemUuaGVpZ2h0O1xuXG5cbiAgICBpZiAodGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueCAmJiB0aGlzLmNvbmZpZy56b29tPy50eXBlID09PSBab29tVHlwZS54KSB7XG4gICAgICB0aGlzLnpvb20udHJhbnNsYXRlRXh0ZW50KFtcbiAgICAgICAgW21pbiwgMF0sXG4gICAgICAgIFttYXgsIHRoaXMuc2l6ZS5oZWlnaHRdLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkgJiYgdGhpcy5jb25maWcuem9vbT8udHlwZSA9PT0gWm9vbVR5cGUueSkge1xuICAgICAgdGhpcy56b29tLnRyYW5zbGF0ZUV4dGVudChbXG4gICAgICAgIFswLCBtaW5dLFxuICAgICAgICBbdGhpcy5zaXplLndpZHRoLCBtYXhdLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnLnpvb20/LndoZWVsRGVsdGEpIHtcbiAgICAgIHRoaXMuem9vbS53aGVlbERlbHRhKHRoaXMuY29uZmlnLnpvb20/LndoZWVsRGVsdGEpO1xuICAgIH1cblxuICAgIGNvbnN0IG1heFpvb20gPSB0aGlzLmNvbmZpZy56b29tPy5tYXhcbiAgICAgID8gKHRoaXMuYXhpcy5leHRyZW1lc1sxXSAtIHRoaXMuYXhpcy5leHRyZW1lc1swXSkgLyB0aGlzLmNvbmZpZy56b29tPy5tYXggOiB0aGlzLmNvbmZpZy56b29tPy5saW1pdFpvb21CeURhdGEgPyAxIDogMDtcblxuICAgIGlmICh0aGlzLmNvbmZpZy56b29tPy53aGVlbERlbHRhKSB7XG4gICAgICB0aGlzLnpvb20ud2hlZWxEZWx0YSh0aGlzLmNvbmZpZy56b29tPy53aGVlbERlbHRhKTtcbiAgICB9XG5cbiAgICBjb25zdCBtaW5ab29tID0gdGhpcy5jb25maWcuem9vbT8ubWluXG4gICAgICA/ICh0aGlzLmF4aXMuZXh0cmVtZXNbMV0gLSB0aGlzLmF4aXMuZXh0cmVtZXNbMF0pIC9cbiAgICAgIHRoaXMuY29uZmlnLnpvb20/Lm1pblxuICAgICAgOiBJbmZpbml0eTtcblxuICAgIHRoaXMuem9vbS5zY2FsZUV4dGVudChbbWF4Wm9vbSwgbWluWm9vbV0pO1xuXG4gICAgdGhpcy56b29tLm9uKCd6b29tIGVuZCcsIHRoaXMuem9vbWVkKTtcbiAgICB0aGlzLl9lbGVtZW50LmNhbGwodGhpcy56b29tKS5vbignZGJsY2xpY2suem9vbScsIG51bGwpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnPy56b29tPy56b29tQmVoYXZpb3IgPT09IFpvb21CZWhhdmlvclR5cGUud2hlZWwpIHtcbiAgICAgIHRoaXMucnVuV2hlZWxUcmFuc2xhdGUoKTtcbiAgICB9XG5cblxuICAgIHRoaXMuYnJvYWRjYXN0LnN1YnNjcmliZVRvWm9vbSh0aGlzLmNvbmZpZz8uem9vbS5zeW5jQ2hhbm5lbCkuc3Vic2NyaWJlKCh6b29tKSA9PiB7XG4gICAgICBpZiAoem9vbS5tZXNzYWdlLmNoYXJ0SWQgIT09IHRoaXMuY29uZmlnPy5pZCAmJiB6b29tLm1lc3NhZ2UuYXhpcy5vcmllbnRhdGlvbiA9PT0gdGhpcy5heGlzLm9yaWVudGF0aW9uICYmIHpvb20ubWVzc2FnZS5heGlzLmluZGV4ID09PSB0aGlzLmF4aXMuaW5kZXgpIHtcbiAgICAgICAgY29uc3Qgc2NhbGUgPSB0aGlzLmF4aXMuc2NhbGUuY29weSgpLmRvbWFpbih0aGlzLmF4aXMub3JpZ2luRG9tYWluKTtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtID0gdGhpcy56b29tU2VydmljZS5nZXREM1RyYW5zZm9ybSh6b29tLm1lc3NhZ2UuZG9tYWluLCB0aGlzLmF4aXMub3JpZ2luRG9tYWluLCBzY2FsZSwgdGhpcy5heGlzLm9yaWVudGF0aW9uLCB0aGlzLmF4aXMub3B0aW9ucy5pbnZlcnRlZCk7XG4gICAgICAgIGlmKHpvb20ubWVzc2FnZS5zdHlsZT8udHJhbnNpdGlvbikge1xuICAgICAgICAgIHRoaXMuX2VsZW1lbnQudHJhbnNpdGlvbigpLmR1cmF0aW9uKDMwMCkuY2FsbCh0aGlzLnpvb20udHJhbnNmb3JtLCB0cmFuc2Zvcm0sIG51bGwsIHt0eXBlOiAnYnJvYWRjYXN0J30pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fZWxlbWVudC5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSwgbnVsbCwge3R5cGU6ICdicm9hZGNhc3QnfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuXG4gIHpvb21lZCA9IChldmVudDogRDNab29tRXZlbnQ8YW55LCBhbnk+KSA9PiB7XG5cbiAgICBpZighZXZlbnQuc291cmNlRXZlbnQpIHJldHVybjtcblxuICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuYXhpcy5zY2FsZS5jb3B5KCkuZG9tYWluKHRoaXMuYXhpcy5vcmlnaW5Eb21haW4pO1xuXG4gICAgbGV0IGRvbWFpbiA9XG4gICAgICB0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55XG4gICAgICAgID8gZXZlbnQudHJhbnNmb3JtLnJlc2NhbGVZKG9yaWdpbikuZG9tYWluKClcbiAgICAgICAgOiBldmVudC50cmFuc2Zvcm0ucmVzY2FsZVgob3JpZ2luKS5kb21haW4oKTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgWm9vbU1lc3NhZ2Uoe1xuICAgICAgZXZlbnRUeXBlOiBldmVudC50eXBlLFxuICAgICAgYXhpczoge1xuICAgICAgICBpbmRleDogdGhpcy5heGlzLmluZGV4LFxuICAgICAgICBvcmllbnRhdGlvbjogdGhpcy5heGlzLm9yaWVudGF0aW9uLFxuICAgICAgfSxcbiAgICAgIGVsZW1lbnQ6IHRoaXMuZWxlbWVudFJlZixcbiAgICAgIGRvbWFpbjogZG9tYWluLFxuICAgICAgY2hhcnRJZDogdGhpcy5jb25maWcuaWRcbiAgICB9KTtcblxuICAgIGlmIChldmVudC5zb3VyY2VFdmVudC50eXBlID09PSAnYnJvYWRjYXN0Jykge1xuICAgICAgdGhpcy56b29tU2VydmljZS5maXJlWm9vbShtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQuc291cmNlRXZlbnQudHlwZSA9PT0gJ3doZWVsaW5nJyB8fCBldmVudC5zb3VyY2VFdmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQgfHwgKHdpbmRvdy5Ub3VjaEV2ZW50ICYmIGV2ZW50LnNvdXJjZUV2ZW50IGluc3RhbmNlb2YgVG91Y2hFdmVudCkpIHtcbiAgICAgIHRoaXMuem9vbVNlcnZpY2UuZmlyZVpvb20obWVzc2FnZSk7XG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLmJyb2FkY2FzdFpvb20obWVzc2FnZSk7XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtID0gZXZlbnQudHJhbnNmb3JtO1xuXG4gIH07XG5cbiAgcHJpdmF0ZSBydW5XaGVlbFRyYW5zbGF0ZSgpIHtcbiAgICBsZXQgdHlwZTogJ3N0YXJ0JyB8ICd6b29tJyB8ICdlbmQnID0gJ3N0YXJ0JztcbiAgICBsZXQgd2hlZWxpbmc7XG5cbiAgICB0aGlzLnpvb21cbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIHJldHVybiAoZXZlbnQuY3RybEtleSAmJiBldmVudC50eXBlID09PSAnd2hlZWwnKSB8fFxuICAgICAgICAgICAgQm9vbGVhbih3aW5kb3cuVG91Y2hFdmVudCAmJiBldmVudC50eXBlICE9PSAnd2hlZWwnKTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLndoZWVsRGVsdGEoKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGRlbHRhID1cbiAgICAgICAgICB0aGlzLmNvbmZpZz8uem9vbS50eXBlID09PSBab29tVHlwZS54XG4gICAgICAgICAgICA/IC1ldmVudC5kZWx0YVhcbiAgICAgICAgICAgIDogLWV2ZW50LmRlbHRhWTtcbiAgICAgICAgcmV0dXJuIGRlbHRhICogMC4wMDI7XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGVtaXQgPSAodHlwZTogc3RyaW5nLCBldmVudDogV2hlZWxFdmVudCkgPT4ge1xuICAgICAgbGV0IHRyYW5zZm9ybSA9IHpvb21JZGVudGl0eTtcbiAgICAgIGNvbnN0IGRlbHRhID1cbiAgICAgICAgdHlwZSA9PT0gJ2VuZCdcbiAgICAgICAgICA/IDBcbiAgICAgICAgICA6IHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnlcbiAgICAgICAgICAgID8gZXZlbnQuZGVsdGFZXG4gICAgICAgICAgICA6IGV2ZW50LmRlbHRhWDtcblxuICAgICAgaWYgKHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkpIHtcbiAgICAgICAgdHJhbnNmb3JtID0gdHJhbnNmb3JtLnRyYW5zbGF0ZShcbiAgICAgICAgICAwLFxuICAgICAgICAgIHRoaXMuY3VycmVudFRyYW5zZm9ybS55IC0gZGVsdGEgLyAyXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54KSB7XG4gICAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybS50cmFuc2xhdGUoXG4gICAgICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtLnggLSBkZWx0YSAvIDIsXG4gICAgICAgICAgMFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm0uc2NhbGUodGhpcy5jdXJyZW50VHJhbnNmb3JtLmspO1xuXG4gICAgICB0aGlzLl9lbGVtZW50Py5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSwgbnVsbCwge3R5cGU6ICd3aGVlbGluZyd9KTtcbiAgICAgIHRoaXMuY3VycmVudFRyYW5zZm9ybSA9IHRyYW5zZm9ybTtcbiAgICB9O1xuXG4gICAgdGhpcy5fZWxlbWVudC5vbignd2hlZWwnLCAoZXZlbnQ6IFdoZWVsRXZlbnQpID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQod2hlZWxpbmcpO1xuICAgICAgICBlbWl0KHR5cGUsIGV2ZW50KTtcbiAgICAgICAgdHlwZSA9ICd6b29tJztcbiAgICAgICAgd2hlZWxpbmcgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBlbWl0KCdlbmQnLCBldmVudCk7XG4gICAgICAgICAgdHlwZSA9ICdzdGFydCc7XG4gICAgICAgIH0sIDUwKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1jaGFydC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2hhcnQvbW9kZWwvaS1jaGFydC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2VyaWVzfSBmcm9tICcuL3Nlcmllcyc7XG5pbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi9iYXNlLXBvaW50JztcbmltcG9ydCB7QXhpc09wdGlvbnN9IGZyb20gJy4vYXhpcy1vcHRpb25zJztcbmltcG9ydCB7Wm9vbVR5cGV9IGZyb20gJy4vZW51bS96b29tLXR5cGUnO1xuaW1wb3J0IHtUb29sdGlwT3B0aW9uc30gZnJvbSAnLi90b29sdGlwLW9wdGlvbnMnO1xuaW1wb3J0IHtDaGFydEJvdW5kc30gZnJvbSAnLi9jaGFydC1ib3VuZHMnO1xuaW1wb3J0IHtCcnVzaFR5cGV9IGZyb20gJy4vZW51bS9icnVzaC10eXBlJztcbmltcG9ydCB7QW5ub3RhdGlvbn0gZnJvbSAnLi9hbm5vdGF0aW9uJztcbmltcG9ydCB7Wm9vbUJlaGF2aW9yVHlwZX0gZnJvbSAnLi9lbnVtL3pvb20tYmVoYXZpb3ItdHlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXJ0Q29uZmlnIHtcbiAgbmFtZT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIHNlcmllcz86IFNlcmllczxCYXNlUG9pbnQ+W107XG4gIG5vRGF0YVRleHQ/OiAnTm8gZGF0YScsXG4gIHpvb20/OiB7XG4gICAgZW5hYmxlOiBib29sZWFuO1xuICAgIHR5cGU6IFpvb21UeXBlO1xuICAgIGF4aXNJbmRleD86IG51bWJlcjtcbiAgICBzeW5jQ2hhbm5lbD86IHN0cmluZztcbiAgICBtaW4/OiBudW1iZXI7XG4gICAgbWF4PzogbnVtYmVyO1xuICAgIGxpbWl0VHJhbnNsYXRlQnlEYXRhPzogYm9vbGVhbjtcbiAgICBsaW1pdFpvb21CeURhdGE/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1jaGFydC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2hhcnQvbW9kZWwvaS1jaGFydC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2VyaWVzfSBmcm9tICcuL3Nlcmllcyc7XG5pbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi9iYXNlLXBvaW50JztcbmltcG9ydCB7QXhpc09wdGlvbnN9IGZyb20gJy4vYXhpcy1vcHRpb25zJztcbmltcG9ydCB7Wm9vbVR5cGV9IGZyb20gJy4vZW51bS96b29tLXR5cGUnO1xuaW1wb3J0IHtUb29sdGlwT3B0aW9uc30gZnJvbSAnLi90b29sdGlwLW9wdGlvbnMnO1xuaW1wb3J0IHtDaGFydEJvdW5kc30gZnJvbSAnLi9jaGFydC1ib3VuZHMnO1xuaW1wb3J0IHtCcnVzaFR5cGV9IGZyb20gJy4vZW51bS9icnVzaC10eXBlJztcbmltcG9ydCB7QW5ub3RhdGlvbn0gZnJvbSAnLi9hbm5vdGF0aW9uJztcbmltcG9ydCB7Wm9vbUJlaGF2aW9yVHlwZX0gZnJvbSAnLi9lbnVtL3pvb20tYmVoYXZpb3ItdHlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXJ0Q29uZmlnIHtcbiAgbmFtZT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIHNlcmllcz86IFNlcmllczxCYXNlUG9pbnQ+W107XG4gIG5vRGF0YVRleHQ/OiAnTm8gZGF0YScsXG4gIHpvb20/OiB7XG4gICAgZW5hYmxlOiBib29sZWFuO1xuICAgIHR5cGU6IFpvb21UeXBlO1xuICAgIGF4aXNJbmRleD86IG51bWJlcjtcbiAgICBzeW5jQ2hhbm5lbD86IHN0cmluZztcbiAgICBtaW4/OiBudW1iZXI7XG4gICAgbWF4PzogbnVtYmVyO1xuICAgIGxpbWl0VHJhbnNsYXRlQnlEYXRhPzogYm9vbGVhbjtcbiAgICBsaW1pdFpvb21CeURhdGE/OiBib29sZWFuO1xuICAgIHpvb21CZWhhdmlvcj86IFpvb21CZWhhdmlvclR5cGUsXG4gICAgd2hlZWxEZWx0YT86IChldmVudDogV2hlZWxFdmVudCkgPT4gbnVtYmVyLFxuICAgIG1pblRyYW5zbGF0ZT86IG51bWJlcjtcbiAgICBtYXhUcmFuc2xhdGU/OiBudW1iZXI7XG4gIH07XG4gIGJydXNoPzoge1xuICAgIGVuYWJsZT86IGJvb2xlYW47XG4gICAgdHlwZTogQnJ1c2hUeXBlO1xuICAgIGZyb20/OiBudW1iZXI7XG4gICAgdG8/OiBudW1iZXI7XG4gICAgbWluPzogbnVtYmVyO1xuICAgIG1heD86IG51bWJlclxuICB9O1xuICBsZWdlbmQ/OiB7XG4gICAgZW5hYmxlPzogYm9vbGVhbjtcbiAgfTtcbiAgYm91bmRzPzogQ2hhcnRCb3VuZHM7XG4gIGludmVydGVkPzogYm9vbGVhbjtcbiAgdG9vbHRpcD86IFRvb2x0aXBPcHRpb25zO1xuICB4QXhpczogQXhpc09wdGlvbnNbXTtcbiAgeUF4aXM6IEF4aXNPcHRpb25zW107XG4gIGFubm90YXRpb25zPzogQW5ub3RhdGlvbltdO1xuICBncmlkTGluZXM/OiB7XG4gICAgZW5hYmxlPzogYm9vbGVhbjtcbiAgICBzaG93WD86IGJvb2xlYW47XG4gICAgc2hvd1k/OiBib29sZWFuO1xuICB9O1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BehaviorSubject, shareReplay, } from 'rxjs';
|
|
2
2
|
import { AxisOrientation } from '../model/enum/axis-orientation';
|
|
3
3
|
import { Injectable } from '@angular/core';
|
|
4
4
|
import { zoomIdentity } from 'd3';
|
|
@@ -27,22 +27,10 @@ export class ZoomService {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
setBroadcastChannel(channel) {
|
|
30
|
-
if (this.broadcastSub) {
|
|
31
|
-
this.broadcastSub?.unsubscribe();
|
|
32
|
-
}
|
|
33
30
|
this.broadcastChannel = channel;
|
|
34
|
-
if (this.broadcastChannel?.length) {
|
|
35
|
-
this.broadcastSub = combineLatest([this._broadcast.subscribeToZoom(this.broadcastChannel), this._chart.config])
|
|
36
|
-
.pipe(filter(([zoom, config]) => {
|
|
37
|
-
return zoom.message?.chartId !== config.id;
|
|
38
|
-
}))
|
|
39
|
-
.subscribe(([zoom, config]) => {
|
|
40
|
-
this.fireZoom(zoom.message);
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
31
|
}
|
|
44
32
|
getD3Transform(targetDomain, originalDomain, scale, orientation, inverted) {
|
|
45
|
-
const zoomScale = Math.abs(originalDomain[1] - originalDomain[0]) / Math.abs(targetDomain[1] - targetDomain[0]);
|
|
33
|
+
const zoomScale = Math.abs(scale(originalDomain[1]) - scale(originalDomain[0])) / Math.abs(scale(targetDomain[1]) - scale(targetDomain[0]));
|
|
46
34
|
let transform = zoomIdentity.scale(zoomScale);
|
|
47
35
|
if (orientation === AxisOrientation.x) {
|
|
48
36
|
if (!!inverted) {
|
|
@@ -62,9 +50,6 @@ export class ZoomService {
|
|
|
62
50
|
}
|
|
63
51
|
return transform;
|
|
64
52
|
}
|
|
65
|
-
ngOnDestroy() {
|
|
66
|
-
this.broadcastSub?.unsubscribe();
|
|
67
|
-
}
|
|
68
53
|
}
|
|
69
54
|
ZoomService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ZoomService, deps: [{ token: i1.BroadcastService }, { token: i2.ChartService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
70
55
|
ZoomService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ZoomService, providedIn: 'root' });
|
|
@@ -74,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
74
59
|
providedIn: 'root',
|
|
75
60
|
}]
|
|
76
61
|
}], ctorParameters: function () { return [{ type: i1.BroadcastService }, { type: i2.ChartService }]; } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L3NlcnZpY2Uvem9vbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsZUFBZSxFQUFjLFdBQVcsR0FBd0IsTUFBTSxNQUFNLENBQUM7QUFDcEcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLElBQUksQ0FBQzs7OztBQU9oQyxNQUFNLE9BQU8sV0FBVztJQU10QixZQUFvQixVQUE0QixFQUFVLE1BQW9CO1FBQTFELGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUh0RSxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQWMsSUFBSSxDQUFDLENBQUM7UUFJdkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDekQsVUFBVSxFQUFFLENBQUM7WUFDYixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFpQjtRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQWlCO1FBQzdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRTtZQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztnQkFDNUIsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQzlCLE9BQU8sRUFBRSxJQUFJO2FBQ2QsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsT0FBZTtRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjLENBQUMsWUFBOEIsRUFDOUIsY0FBZ0MsRUFDaEMsS0FBSyxFQUNMLFdBQTRCLEVBQzVCLFFBQWlCO1FBQzlCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVJLElBQUksU0FBUyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUMsSUFBSSxXQUFXLEtBQUssZUFBZSxDQUFDLENBQUMsRUFBRTtZQUNyQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDdkU7aUJBQU07Z0JBQ0wsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDdkU7U0FDRjtRQUVELElBQUksV0FBVyxLQUFLLGVBQWUsQ0FBQyxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO2dCQUNkLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZFO2lCQUFNO2dCQUNMLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZFO1NBQ0Y7UUFHRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzt3R0F2RFUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y29tYmluZUxhdGVzdCwgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgU3Vic2NyaXB0aW9uLCBmaWx0ZXIsfSBmcm9tICdyeGpzJztcbmltcG9ydCB7QXhpc09yaWVudGF0aW9ufSBmcm9tICcuLi9tb2RlbC9lbnVtL2F4aXMtb3JpZW50YXRpb24nO1xuaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtab29tTWVzc2FnZX0gZnJvbSAnLi4vbW9kZWwvaS1icm9hZGNhc3QtbWVzc2FnZSc7XG5pbXBvcnQge3pvb21JZGVudGl0eX0gZnJvbSAnZDMnO1xuaW1wb3J0IHtCcm9hZGNhc3RTZXJ2aWNlfSBmcm9tICcuL2Jyb2FkY2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7Q2hhcnRTZXJ2aWNlfSBmcm9tICcuL2NoYXJ0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgWm9vbVNlcnZpY2Uge1xuICB6b29tZWQ6IE9ic2VydmFibGU8Wm9vbU1lc3NhZ2U+O1xuXG4gIHByaXZhdGUgem9vbWVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Wm9vbU1lc3NhZ2U+KG51bGwpO1xuICBwcml2YXRlIGJyb2FkY2FzdENoYW5uZWw6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9icm9hZGNhc3Q6IEJyb2FkY2FzdFNlcnZpY2UsIHByaXZhdGUgX2NoYXJ0OiBDaGFydFNlcnZpY2UpIHtcbiAgICB0aGlzLnpvb21lZCA9IHRoaXMuem9vbWVkJC5hc09ic2VydmFibGUoKS5waXBlKHNoYXJlUmVwbGF5KHtcbiAgICAgIGJ1ZmZlclNpemU6IDEsXG4gICAgICByZWZDb3VudDogdHJ1ZVxuICAgIH0pKTtcbiAgfVxuXG4gIGZpcmVab29tKHpvb206IFpvb21NZXNzYWdlKSB7XG4gICAgdGhpcy56b29tZWQkLm5leHQoem9vbSk7XG4gIH1cblxuICBicm9hZGNhc3Rab29tKHpvb206IFpvb21NZXNzYWdlKSB7XG4gICAgaWYgKHRoaXMuYnJvYWRjYXN0Q2hhbm5lbD8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9icm9hZGNhc3QuYnJvYWRjYXN0Wm9vbSh7XG4gICAgICAgIGNoYW5uZWw6IHRoaXMuYnJvYWRjYXN0Q2hhbm5lbCxcbiAgICAgICAgbWVzc2FnZTogem9vbVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0QnJvYWRjYXN0Q2hhbm5lbChjaGFubmVsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJyb2FkY2FzdENoYW5uZWwgPSBjaGFubmVsO1xuICB9XG5cbiAgZ2V0RDNUcmFuc2Zvcm0odGFyZ2V0RG9tYWluOiBbbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICAgICAgICAgICBvcmlnaW5hbERvbWFpbjogW251bWJlciwgbnVtYmVyXSxcbiAgICAgICAgICAgICAgICAgc2NhbGUsXG4gICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uOiBBeGlzT3JpZW50YXRpb24sXG4gICAgICAgICAgICAgICAgIGludmVydGVkOiBib29sZWFuKSB7XG4gICAgY29uc3Qgem9vbVNjYWxlID0gTWF0aC5hYnMoc2NhbGUob3JpZ2luYWxEb21haW5bMV0pIC0gc2NhbGUob3JpZ2luYWxEb21haW5bMF0pKSAvIE1hdGguYWJzKHNjYWxlKHRhcmdldERvbWFpblsxXSkgLSBzY2FsZSh0YXJnZXREb21haW5bMF0pKTtcbiAgICBsZXQgdHJhbnNmb3JtID0gem9vbUlkZW50aXR5LnNjYWxlKHpvb21TY2FsZSk7XG4gICAgaWYgKG9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueCkge1xuICAgICAgaWYgKCEhaW52ZXJ0ZWQpIHtcbiAgICAgICAgdHJhbnNmb3JtID0gdHJhbnNmb3JtLnRyYW5zbGF0ZSgtc2NhbGUoTWF0aC5tYXgoLi4udGFyZ2V0RG9tYWluKSksIDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJhbnNmb3JtID0gdHJhbnNmb3JtLnRyYW5zbGF0ZSgtc2NhbGUoTWF0aC5taW4oLi4udGFyZ2V0RG9tYWluKSksIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkpIHtcbiAgICAgIGlmICghIWludmVydGVkKSB7XG4gICAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybS50cmFuc2xhdGUoMCwgLXNjYWxlKE1hdGgubWluKC4uLnRhcmdldERvbWFpbikpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybS50cmFuc2xhdGUoMCwgLXNjYWxlKE1hdGgubWF4KC4uLnRhcmdldERvbWFpbikpKTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIHJldHVybiB0cmFuc2Zvcm07XG4gIH1cbn1cbiJdfQ==
|