@tetacom/svg-charts 1.1.28 → 1.1.29
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.
|
@@ -2,9 +2,9 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { BrushType } from '../model/enum/brush-type';
|
|
3
3
|
import * as d3 from 'd3';
|
|
4
4
|
import { animationFrameScheduler, filter, tap } from 'rxjs';
|
|
5
|
-
import { BrushMessage } from '../model/i-broadcast-message';
|
|
5
|
+
import { BrushMessage, } from '../model/i-broadcast-message';
|
|
6
6
|
import { throttleTime } from 'rxjs/operators';
|
|
7
|
-
import { AxisOrientation } from
|
|
7
|
+
import { AxisOrientation } from '../model/enum/axis-orientation';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "./broadcast.service";
|
|
10
10
|
export class BrushService {
|
|
@@ -27,26 +27,53 @@ export class BrushService {
|
|
|
27
27
|
return;
|
|
28
28
|
const [from, to] = _.selection;
|
|
29
29
|
if (to - from === 0) {
|
|
30
|
-
const selection = this.selection?.map(brushScale) ??
|
|
30
|
+
const selection = this.selection?.map(brushScale) ??
|
|
31
|
+
[config.brush?.from, config.brush?.to].map(brushScale);
|
|
31
32
|
const halfBrushHeight = (selection[1] - selection[0]) / 2;
|
|
32
|
-
const invertedSelection = [
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
const invertedSelection = [
|
|
34
|
+
from - halfBrushHeight,
|
|
35
|
+
to + halfBrushHeight,
|
|
36
|
+
].map(brushScale.invert);
|
|
37
|
+
if (invertedSelection[1] - invertedSelection[0] >
|
|
38
|
+
config.brush?.max) {
|
|
39
|
+
container.call(this.brush.move, [
|
|
40
|
+
Math.floor(invertedSelection[0]),
|
|
41
|
+
Math.floor(invertedSelection[0] + config.brush?.max),
|
|
42
|
+
].map(brushScale));
|
|
35
43
|
return;
|
|
36
44
|
}
|
|
37
|
-
if (invertedSelection[1] - invertedSelection[0] <
|
|
38
|
-
|
|
45
|
+
if (invertedSelection[1] - invertedSelection[0] <
|
|
46
|
+
config.brush?.min) {
|
|
47
|
+
container.call(this.brush.move, [
|
|
48
|
+
Math.floor(invertedSelection[0]),
|
|
49
|
+
Math.ceil(invertedSelection[0] + config.brush?.min),
|
|
50
|
+
].map(brushScale));
|
|
39
51
|
return;
|
|
40
52
|
}
|
|
41
|
-
container.call(this.brush.move, [
|
|
53
|
+
container.call(this.brush.move, [
|
|
54
|
+
from - halfBrushHeight,
|
|
55
|
+
to + halfBrushHeight,
|
|
56
|
+
]);
|
|
42
57
|
return;
|
|
43
58
|
}
|
|
44
|
-
if (brushScale.invert(to) - brushScale.invert(from) >
|
|
45
|
-
|
|
59
|
+
if (brushScale.invert(to) - brushScale.invert(from) >
|
|
60
|
+
config.brush?.max) {
|
|
61
|
+
container.call(this.brush.move, this.selection
|
|
62
|
+
? [
|
|
63
|
+
this.selection[0],
|
|
64
|
+
this.selection[0] + config.brush?.max,
|
|
65
|
+
].map(brushScale)
|
|
66
|
+
: [config.brush?.from, config.brush?.to].map(brushScale));
|
|
46
67
|
return;
|
|
47
68
|
}
|
|
48
|
-
if (brushScale.invert(to) - brushScale.invert(from) <
|
|
49
|
-
|
|
69
|
+
if (brushScale.invert(to) - brushScale.invert(from) <
|
|
70
|
+
config.brush?.min) {
|
|
71
|
+
container.call(this.brush.move, this.selection
|
|
72
|
+
? [
|
|
73
|
+
this.selection[0],
|
|
74
|
+
this.selection[0] + config.brush?.min,
|
|
75
|
+
].map(brushScale)
|
|
76
|
+
: [config.brush?.from, config.brush?.to].map(brushScale));
|
|
50
77
|
return;
|
|
51
78
|
}
|
|
52
79
|
if (_.sourceEvent instanceof MouseEvent) {
|
|
@@ -56,7 +83,7 @@ export class BrushService {
|
|
|
56
83
|
event: _,
|
|
57
84
|
selection: [brushScale.invert(from), brushScale.invert(to)],
|
|
58
85
|
brushType: config?.brush?.type ?? BrushType.x,
|
|
59
|
-
brushScale
|
|
86
|
+
brushScale,
|
|
60
87
|
});
|
|
61
88
|
this.broadcastService.broadcastBrush({
|
|
62
89
|
channel: config?.zoom?.syncChannel,
|
|
@@ -74,14 +101,25 @@ export class BrushService {
|
|
|
74
101
|
if (config?.brush?.to) {
|
|
75
102
|
domain[1] = config.brush.to;
|
|
76
103
|
}
|
|
77
|
-
container.call(this.brush.move, this.selection
|
|
104
|
+
container.call(this.brush.move, this.selection
|
|
105
|
+
? this.selection.map(brushScale)
|
|
106
|
+
: domain.map(brushScale), {});
|
|
78
107
|
}, 0);
|
|
79
108
|
});
|
|
80
|
-
this.broadcastSubscribtion = this.broadcastService
|
|
81
|
-
|
|
109
|
+
this.broadcastSubscribtion = this.broadcastService
|
|
110
|
+
.subscribeToZoom(config?.zoom?.syncChannel)
|
|
111
|
+
.pipe(filter((m) => {
|
|
112
|
+
return (m.message.event.sourceEvent instanceof MouseEvent ||
|
|
113
|
+
m.message.event.sourceEvent instanceof WheelEvent ||
|
|
114
|
+
(window.TouchEvent &&
|
|
115
|
+
m.message.event.sourceEvent instanceof TouchEvent));
|
|
82
116
|
}), throttleTime(0, animationFrameScheduler, { trailing: true }), tap((m) => {
|
|
83
|
-
const { message: { brushDomain } } = m;
|
|
84
|
-
if (m.message?.axis.index === 0 &&
|
|
117
|
+
const { message: { brushDomain }, } = m;
|
|
118
|
+
if ((m.message?.axis.index === 0 &&
|
|
119
|
+
m.message?.axis.orientation === AxisOrientation.y &&
|
|
120
|
+
config.brush?.type === BrushType.y) ||
|
|
121
|
+
(m.message?.axis.orientation === AxisOrientation.x &&
|
|
122
|
+
config.brush?.type === BrushType.x)) {
|
|
85
123
|
container.call(this.brush.move, [
|
|
86
124
|
brushScale(brushDomain[0]),
|
|
87
125
|
brushScale(brushDomain[1]),
|
|
@@ -100,7 +138,8 @@ export class BrushService {
|
|
|
100
138
|
}
|
|
101
139
|
this.selection = brushDomain;
|
|
102
140
|
}
|
|
103
|
-
}))
|
|
141
|
+
}))
|
|
142
|
+
.subscribe();
|
|
104
143
|
}
|
|
105
144
|
}
|
|
106
145
|
clearPreviousSelection() {
|
|
@@ -115,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
|
|
|
115
154
|
providedIn: 'root',
|
|
116
155
|
}]
|
|
117
156
|
}], ctorParameters: function () { return [{ type: i1.BroadcastService }, { type: i0.NgZone }]; } });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJ1c2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2JydXNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLFVBQVUsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxFQUFDLHVCQUF1QixFQUFFLE1BQU0sRUFBZ0IsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR3hFLE9BQU8sRUFBQyxZQUFZLEVBQWlDLE1BQU0sOEJBQThCLENBQUM7QUFDMUYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBSy9ELE1BQU0sT0FBTyxZQUFZO0lBWXZCLFlBQW9CLGdCQUFrQyxFQUFVLElBQVk7UUFBeEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVE7UUFQcEUsYUFBUSxHQUFHLElBQUksR0FBRyxFQUFvQzthQUMzRCxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDN0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFNakMsQ0FBQztJQUVELFVBQVUsQ0FDUixVQUFzQixFQUN0QixNQUFvQixFQUNwQixVQUFlO1FBRWYsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksTUFBTSxDQUFD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LENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO3dCQUN0TCxPQUFPO3FCQUNSO29CQUVELElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO3dCQUV2RSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7d0JBQ3RMLE9BQU87cUJBQ1I7b0JBRUQsSUFBSSxDQUFDLENBQUMsV0FBVyxZQUFZLFVBQVUsRUFBRTt3QkFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7cUJBQ3JEO29CQUVELE1BQU0sWUFBWSxHQUFH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LENBQUMsQ0FBQzt3QkFDMUIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDM0IsQ0FBQyxDQUFDO29CQUVILElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTt3QkFDbEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUM7NEJBQ3BDLEtBQUssRUFBRSxJQUFJOzRCQUNYLFNBQVMsRUFBRSxXQUFXOzRCQUN0QixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksU0FBUyxDQUFDLENBQUM7NEJBQzdDLFVBQVU7eUJBQ1gsQ0FBQyxDQUFDO3dCQUVILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7NEJBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVc7NEJBQ2xDLE9BQU8sRUFBRSxZQUFZO3lCQUN0QixDQUFDLENBQUM7cUJBQ0o7b0JBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7aUJBQzlCO1lBSUgsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNmO0lBQ0gsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDOzt5R0FySlUsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgTmdab25lfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QnJ1c2hUeXBlfSBmcm9tICcuLi9tb2RlbC9lbnVtL2JydXNoLXR5cGUnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHthbmltYXRpb25GcmFtZVNjaGVkdWxlciwgZmlsdGVyLCBTdWJzY3JpcHRpb24sIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Jyb2FkY2FzdFNlcnZpY2V9IGZyb20gJy4vYnJvYWRjYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHtJQ2hhcnRDb25maWd9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7QnJ1c2hNZXNzYWdlLCBJQnJvYWRjYXN0TWVzc2FnZSwgWm9vbU1lc3NhZ2V9IGZyb20gJy4uL21vZGVsL2ktYnJvYWRjYXN0LW1lc3NhZ2UnO1xuaW1wb3J0IHt0aHJvdHRsZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QXhpc09yaWVudGF0aW9ufSBmcm9tIFwiLi4vbW9kZWwvZW51bS9heGlzLW9yaWVudGF0aW9uXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBCcnVzaFNlcnZpY2Uge1xuICBicm9hZGNhc3RTdWJzY3JpYnRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGJydXNoOiBkMy5CcnVzaEJlaGF2aW9yPGFueT47XG5cbiAgcHJpdmF0ZSBicnVzaE1hcCA9IG5ldyBNYXA8QnJ1c2hUeXBlLCBkMy5CcnVzaEJlaGF2aW9yPGFueT4+KClcbiAgICAuc2V0KEJydXNoVHlwZS54LCBkMy5icnVzaFgoKSlcbiAgICAuc2V0KEJydXNoVHlwZS55LCBkMy5icnVzaFkoKSk7XG5cbiAgcHJpdmF0ZSBzZWxlY3Rpb246IG51bWJlcltdO1xuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBicm9hZGNhc3RTZXJ2aWNlOiBCcm9hZGNhc3RTZXJ2aWNlLCBwcml2YXRlIHpvbmU6IE5nWm9uZSkge1xuICB9XG5cbiAgYXBwbHlCcnVzaChcbiAgICBzdmdFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIGNvbmZpZzogSUNoYXJ0Q29uZmlnLFxuICAgIGJydXNoU2NhbGU6IGFueVxuICApIHtcbiAgICB0aGlzLmJyb2FkY2FzdFN1YnNjcmlidGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmJydXNoPy5vbignc3RhcnQgYnJ1c2ggZW5kJywgbnVsbCk7XG4gICAgaWYgKGNvbmZpZy5icnVzaD8uZW5hYmxlKSB7XG4gICAgICB0aGlzLmJydXNoID0gdGhpcy5icnVzaE1hcC5nZXQoY29uZmlnPy5icnVzaD8udHlwZSA/PyBCcnVzaFR5cGUueCk7XG5cbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGQzLnNlbGVjdChzdmdFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICB0aGlzLmJydXNoLm9uKCdzdGFydCBicnVzaCBlbmQnLCAoXzogZDMuRDNCcnVzaEV2ZW50PGFueT4pID0+IHtcbiAgICAgICAgaWYgKF8uc291cmNlRXZlbnQpIHtcbiAgICAgICAgICBpZiAoIV8uc2VsZWN0aW9uKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBbZnJvbSwgdG9dID0gXy5zZWxlY3Rpb24gYXMgbnVtYmVyW107XG5cbiAgICAgICAgICBpZiAodG8gLSBmcm9tID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb246IG51bWJlcltdID0gdGhpcy5zZWxlY3Rpb24/Lm1hcChicnVzaFNjYWxlKSA/PyBbY29uZmlnLmJydXNoPy5mcm9tLCBjb25maWcuYnJ1c2g/LnRvXS5tYXAoYnJ1c2hTY2FsZSk7XG4gICAgICAgICAgICBjb25zdCBoYWxmQnJ1c2hIZWlnaHQgPSAoc2VsZWN0aW9uWzFdIC0gc2VsZWN0aW9uWzBdKSAvIDI7XG5cbiAgICAgICAgICAgIGNvbnN0IGludmVydGVkU2VsZWN0aW9uOiBudW1iZXJbXSA9IFtmcm9tIC0gaGFsZkJydXNoSGVpZ2h0LCB0byArIGhhbGZCcnVzaEhlaWdodF0ubWFwKGJydXNoU2NhbGUuaW52ZXJ0KVxuXG4gICAgICAgICAgICBpZihpbnZlcnRlZFNlbGVjdGlvblsxXSAtIGludmVydGVkU2VsZWN0aW9uWzBdID4gY29uZmlnLmJydXNoPy5tYXgpIHtcbiAgICAgICAgICAgICAgY29udGFpbmVyLmNhbGwodGhpcy5icnVzaC5tb3ZlLCBbTWF0aC5mbG9vcihpbnZlcnRlZFNlbGVjdGlvblswXSksIE1hdGguZmxvb3IoaW52ZXJ0ZWRTZWxlY3Rpb25bMF0gKyBjb25maWcuYnJ1c2g/Lm1heCldLm1hcChicnVzaFNjYWxlKSk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYoaW52ZXJ0ZWRTZWxlY3Rpb25bMV0gLSBpbnZlcnRlZFNlbGVjdGlvblswXSA8IGNvbmZpZy5icnVzaD8ubWluKSB7XG4gICAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKHRoaXMuYnJ1c2gubW92ZSwgW01hdGguZmxvb3IoaW52ZXJ0ZWRTZWxlY3Rpb25bMF0pLCBNYXRoLmNlaWwoaW52ZXJ0ZWRTZWxlY3Rpb25bMF0gKyBjb25maWcuYnJ1c2g/Lm1pbildLm1hcChicnVzaFNjYWxlKSk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29udGFpbmVyLmNhbGwodGhpcy5icnVzaC5tb3ZlLCBbZnJvbSAtIGhhbGZCcnVzaEhlaWdodCwgdG8gKyBoYWxmQnJ1c2hIZWlnaHRdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cblxuXG4gICAgICAgICAgaWYgKGJydXNoU2NhbGUuaW52ZXJ0KHRvKSAtIGJydXNoU2NhbGUuaW52ZXJ0KGZyb20pID4gY29uZmlnLmJydXNoPy5tYXgpIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKHRoaXMuYnJ1c2gubW92ZSwgdGhpcy5zZWxlY3Rpb24gPyBbdGhpcy5zZWxlY3Rpb25bMF0sIHRoaXMuc2VsZWN0aW9uWzBdICsgY29uZmlnLmJydXNoPy5tYXhdLm1hcChicnVzaFNjYWxlKSA6IFtjb25maWcuYnJ1c2g/LmZyb20sIGNvbmZpZy5icnVzaD8udG9dLm1hcChicnVzaFNjYWxlKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGJydXNoU2NhbGUuaW52ZXJ0KHRvKSAtIGJydXNoU2NhbGUuaW52ZXJ0KGZyb20pIDwgY29uZmlnLmJydXNoPy5taW4pIHtcblxuICAgICAgICAgICAgY29udGFpbmVyLmNhbGwodGhpcy5icnVzaC5tb3ZlLCB0aGlzLnNlbGVjdGlvbiA/IFt0aGlzLnNlbGVjdGlvblswXSwgdGhpcy5zZWxlY3Rpb25bMF0gKyBjb25maWcuYnJ1c2g/Lm1pbl0ubWFwKGJydXNoU2NhbGUpIDogW2NvbmZpZy5icnVzaD8uZnJvbSwgY29uZmlnLmJydXNoPy50b10ubWFwKGJydXNoU2NhbGUpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoXy5zb3VyY2VFdmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gXy5zZWxlY3Rpb24ubWFwKGJydXNoU2NhbGUuaW52ZXJ0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBicnVzaE1lc3NhZ2UgPSBuZXcgQnJ1c2hNZXNzYWdlKHtcbiAgICAgICAgICAgIGV2ZW50OiBfLFxuICAgICAgICAgICAgc2VsZWN0aW9uOiBbYnJ1c2hTY2FsZS5pbnZlcnQoZnJvbSksIGJydXNoU2NhbGUuaW52ZXJ0KHRvKV0sXG4gICAgICAgICAgICBicnVzaFR5cGU6IGNvbmZpZz8uYnJ1c2g/LnR5cGUgPz8gQnJ1c2hUeXBlLngsXG4gICAgICAgICAgICBicnVzaFNjYWxlXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2UuYnJvYWRjYXN0QnJ1c2goe1xuICAgICAgICAgICAgY2hhbm5lbDogY29uZmlnPy56b29tPy5zeW5jQ2hhbm5lbCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGJydXNoTWVzc2FnZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cblxuXG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb250YWluZXIuY2FsbCh0aGlzLmJydXNoKTtcblxuICAgICAgICAgIGxldCBkb21haW4gPSBicnVzaFNjYWxlLmRvbWFpbigpO1xuXG5cbiAgICAgICAgICBpZiAoY29uZmlnPy5icnVzaD8uZnJvbSkge1xuICAgICAgICAgICAgZG9tYWluWzBdID0gY29uZmlnLmJydXNoLmZyb207XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGNvbmZpZz8uYnJ1c2g/LnRvKSB7XG4gICAgICAgICAgICBkb21haW5bMV0gPSBjb25maWcuYnJ1c2gudG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29udGFpbmVyLmNhbGwodGhpcy5icnVzaC5tb3ZlLCB0aGlzLnNlbGVjdGlvbiA/IHRoaXMuc2VsZWN0aW9uLm1hcChicnVzaFNjYWxlKSA6IGRvbWFpbi5tYXAoYnJ1c2hTY2FsZSksIHt9KTtcblxuICAgICAgICB9LCAwKTtcbiAgICAgIH0pXG5cblxuXG4gICAgICB0aGlzLmJyb2FkY2FzdFN1YnNjcmlidGlvbiA9IHRoaXMuYnJvYWRjYXN0U2VydmljZS5zdWJzY3JpYmVUb1pvb20oY29uZmlnPy56b29tPy5zeW5jQ2hhbm5lbCkucGlwZShcbiAgICAgICAgZmlsdGVyKChtOiBJQnJvYWRjYXN0TWVzc2FnZTxab29tTWVzc2FnZT4pID0+IHtcbiAgICAgICAgICByZXR1cm4gbS5tZXNzYWdlLmV2ZW50LnNvdXJjZUV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCB8fCBtLm1lc3NhZ2UuZXZlbnQuc291cmNlRXZlbnQgaW5zdGFuY2VvZiBXaGVlbEV2ZW50O1xuICAgICAgICB9KSxcbiAgICAgICAgdGhyb3R0bGVUaW1lKDAsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLCB7dHJhaWxpbmc6IHRydWV9KSxcbiAgICAgICAgdGFwKChtOiBJQnJvYWRjYXN0TWVzc2FnZTxab29tTWVzc2FnZT4pID0+IHtcbiAgICAgICAgICBjb25zdCB7bWVzc2FnZToge2JydXNoRG9tYWlufX0gPSBtO1xuXG4gICAgICAgICAgaWYobS5tZXNzYWdlPy5heGlzLmluZGV4ID09PSAwICYmIG0ubWVzc2FnZT8uYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkgJiYgY29uZmlnLmJydXNoPy50eXBlID09PSBCcnVzaFR5cGUueSB8fCBtLm1lc3NhZ2U/LmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54ICYmIGNvbmZpZy5icnVzaD8udHlwZSA9PT0gQnJ1c2hUeXBlLngpIHtcblxuICAgICAgICAgICAgY29udGFpbmVyLmNhbGwodGhpcy5icnVzaC5tb3ZlLCBbXG4gICAgICAgICAgICAgIGJydXNoU2NhbGUoYnJ1c2hEb21haW5bMF0pLFxuICAgICAgICAgICAgICBicnVzaFNjYWxlKGJydXNoRG9tYWluWzFdKSxcbiAgICAgICAgICAgIF0pO1xuXG4gICAgICAgICAgICBpZiAobS5tZXNzYWdlLmV2ZW50LnR5cGUgPT09ICdlbmQnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGJydXNoTWVzc2FnZSA9IG5ldyBCcnVzaE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgIGV2ZW50OiBudWxsLFxuICAgICAgICAgICAgICAgIHNlbGVjdGlvbjogYnJ1c2hEb21haW4sXG4gICAgICAgICAgICAgICAgYnJ1c2hUeXBlOiBjb25maWc/LmJydXNoPy50eXBlID8/IEJydXNoVHlwZS54LFxuICAgICAgICAgICAgICAgIGJydXNoU2NhbGUsXG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgIHRoaXMuYnJvYWRjYXN0U2VydmljZS5icm9hZGNhc3RCcnVzaCh7XG4gICAgICAgICAgICAgICAgY2hhbm5lbDogY29uZmlnPy56b29tPy5zeW5jQ2hhbm5lbCxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBicnVzaE1lc3NhZ2UsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IGJydXNoRG9tYWluO1xuICAgICAgICAgIH1cblxuXG5cbiAgICAgICAgfSlcbiAgICAgICkuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJQcmV2aW91c1NlbGVjdGlvbigpIHtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJ1c2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2JydXNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBZ0IsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzFFLE9BQU8sRUFDTCxZQUFZLEdBR2IsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFLakUsTUFBTSxPQUFPLFlBQVk7SUFXdkIsWUFDVSxnQkFBa0MsRUFDbEMsSUFBWTtRQURaLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQVJkLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBb0M7YUFDM0QsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQzdCLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBTzlCLENBQUM7SUFFSixVQUFVLENBQUMsVUFBc0IsRUFBRSxNQUFvQixFQUFFLFVBQWU7UUFDdEUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksTUFBTSxDQUFDLEtB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ZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcnVzaFR5cGUgfSBmcm9tICcuLi9tb2RlbC9lbnVtL2JydXNoLXR5cGUnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHsgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsIGZpbHRlciwgU3Vic2NyaXB0aW9uLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJyb2FkY2FzdFNlcnZpY2UgfSBmcm9tICcuL2Jyb2FkY2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IElDaGFydENvbmZpZyB9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7XG4gIEJydXNoTWVzc2FnZSxcbiAgSUJyb2FkY2FzdE1lc3NhZ2UsXG4gIFpvb21NZXNzYWdlLFxufSBmcm9tICcuLi9tb2RlbC9pLWJyb2FkY2FzdC1tZXNzYWdlJztcbmltcG9ydCB7IHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF4aXNPcmllbnRhdGlvbiB9IGZyb20gJy4uL21vZGVsL2VudW0vYXhpcy1vcmllbnRhdGlvbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBCcnVzaFNlcnZpY2Uge1xuICBicm9hZGNhc3RTdWJzY3JpYnRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGJydXNoOiBkMy5CcnVzaEJlaGF2aW9yPGFueT47XG5cbiAgcHJpdmF0ZSBicnVzaE1hcCA9IG5ldyBNYXA8QnJ1c2hUeXBlLCBkMy5CcnVzaEJlaGF2aW9yPGFueT4+KClcbiAgICAuc2V0KEJydXNoVHlwZS54LCBkMy5icnVzaFgoKSlcbiAgICAuc2V0KEJydXNoVHlwZS55LCBkMy5icnVzaFkoKSk7XG5cbiAgcHJpdmF0ZSBzZWxlY3Rpb246IG51bWJlcltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYnJvYWRjYXN0U2VydmljZTogQnJvYWRjYXN0U2VydmljZSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgYXBwbHlCcnVzaChzdmdFbGVtZW50OiBFbGVtZW50UmVmLCBjb25maWc6IElDaGFydENvbmZpZywgYnJ1c2hTY2FsZTogYW55KSB7XG4gICAgdGhpcy5icm9hZGNhc3RTdWJzY3JpYnRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5icnVzaD8ub24oJ3N0YXJ0IGJydXNoIGVuZCcsIG51bGwpO1xuICAgIGlmIChjb25maWcuYnJ1c2g/LmVuYWJsZSkge1xuICAgICAgdGhpcy5icnVzaCA9IHRoaXMuYnJ1c2hNYXAuZ2V0KGNvbmZpZz8uYnJ1c2g/LnR5cGUgPz8gQnJ1c2hUeXBlLngpO1xuXG4gICAgICBjb25zdCBjb250YWluZXIgPSBkMy5zZWxlY3Qoc3ZnRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgdGhpcy5icnVzaC5vbignc3RhcnQgYnJ1c2ggZW5kJywgKF86IGQzLkQzQnJ1c2hFdmVudDxhbnk+KSA9PiB7XG4gICAgICAgIGlmIChfLnNvdXJjZUV2ZW50KSB7XG4gICAgICAgICAgaWYgKCFfLnNlbGVjdGlvbikgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgW2Zyb20sIHRvXSA9IF8uc2VsZWN0aW9uIGFzIG51bWJlcltdO1xuXG4gICAgICAgICAgaWYgKHRvIC0gZnJvbSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uOiBudW1iZXJbXSA9XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uPy5tYXAoYnJ1c2hTY2FsZSkgPz9cbiAgICAgICAgICAgICAgW2NvbmZpZy5icnVzaD8uZnJvbSwgY29uZmlnLmJydXNoPy50b10ubWFwKGJydXNoU2NhbGUpO1xuICAgICAgICAgICAgY29uc3QgaGFsZkJydXNoSGVpZ2h0ID0gKHNlbGVjdGlvblsxXSAtIHNlbGVjdGlvblswXSkgLyAyO1xuXG4gICAgICAgICAgICBjb25zdCBpbnZlcnRlZFNlbGVjdGlvbjogbnVtYmVyW10gPSBbXG4gICAgICAgICAgICAgIGZyb20gLSBoYWxmQnJ1c2hIZWlnaHQsXG4gICAgICAgICAgICAgIHRvICsgaGFsZkJydXNoSGVpZ2h0LFxuICAgICAgICAgICAgXS5tYXAoYnJ1c2hTY2FsZS5pbnZlcnQpO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGludmVydGVkU2VsZWN0aW9uWzFdIC0gaW52ZXJ0ZWRTZWxlY3Rpb25bMF0gPlxuICAgICAgICAgICAgICBjb25maWcuYnJ1c2g/Lm1heFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKFxuICAgICAgICAgICAgICAgIHRoaXMuYnJ1c2gubW92ZSxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKGludmVydGVkU2VsZWN0aW9uWzBdKSxcbiAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoaW52ZXJ0ZWRTZWxlY3Rpb25bMF0gKyBjb25maWcuYnJ1c2g/Lm1heCksXG4gICAgICAgICAgICAgICAgXS5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGludmVydGVkU2VsZWN0aW9uWzFdIC0gaW52ZXJ0ZWRTZWxlY3Rpb25bMF0gPFxuICAgICAgICAgICAgICBjb25maWcuYnJ1c2g/Lm1pblxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKFxuICAgICAgICAgICAgICAgIHRoaXMuYnJ1c2gubW92ZSxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKGludmVydGVkU2VsZWN0aW9uWzBdKSxcbiAgICAgICAgICAgICAgICAgIE1hdGguY2VpbChpbnZlcnRlZFNlbGVjdGlvblswXSArIGNvbmZpZy5icnVzaD8ubWluKSxcbiAgICAgICAgICAgICAgICBdLm1hcChicnVzaFNjYWxlKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKHRoaXMuYnJ1c2gubW92ZSwgW1xuICAgICAgICAgICAgICBmcm9tIC0gaGFsZkJydXNoSGVpZ2h0LFxuICAgICAgICAgICAgICB0byArIGhhbGZCcnVzaEhlaWdodCxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGJydXNoU2NhbGUuaW52ZXJ0KHRvKSAtIGJydXNoU2NhbGUuaW52ZXJ0KGZyb20pID5cbiAgICAgICAgICAgIGNvbmZpZy5icnVzaD8ubWF4XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb250YWluZXIuY2FsbChcbiAgICAgICAgICAgICAgdGhpcy5icnVzaC5tb3ZlLFxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblxuICAgICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblswXSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25bMF0gKyBjb25maWcuYnJ1c2g/Lm1heCxcbiAgICAgICAgICAgICAgICAgIF0ubWFwKGJydXNoU2NhbGUpXG4gICAgICAgICAgICAgICAgOiBbY29uZmlnLmJydXNoPy5mcm9tLCBjb25maWcuYnJ1c2g/LnRvXS5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgYnJ1c2hTY2FsZS5pbnZlcnQodG8pIC0gYnJ1c2hTY2FsZS5pbnZlcnQoZnJvbSkgPFxuICAgICAgICAgICAgY29uZmlnLmJydXNoPy5taW5cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKFxuICAgICAgICAgICAgICB0aGlzLmJydXNoLm1vdmUsXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uXG4gICAgICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uWzBdLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblswXSArIGNvbmZpZy5icnVzaD8ubWluLFxuICAgICAgICAgICAgICAgICAgXS5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICAgICAgICA6IFtjb25maWcuYnJ1c2g/LmZyb20sIGNvbmZpZy5icnVzaD8udG9dLm1hcChicnVzaFNjYWxlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoXy5zb3VyY2VFdmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gXy5zZWxlY3Rpb24ubWFwKGJydXNoU2NhbGUuaW52ZXJ0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBicnVzaE1lc3NhZ2UgPSBuZXcgQnJ1c2hNZXNzYWdlKHtcbiAgICAgICAgICAgIGV2ZW50OiBfLFxuICAgICAgICAgICAgc2VsZWN0aW9uOiBbYnJ1c2hTY2FsZS5pbnZlcnQoZnJvbSksIGJydXNoU2NhbGUuaW52ZXJ0KHRvKV0sXG4gICAgICAgICAgICBicnVzaFR5cGU6IGNvbmZpZz8uYnJ1c2g/LnR5cGUgPz8gQnJ1c2hUeXBlLngsXG4gICAgICAgICAgICBicnVzaFNjYWxlLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5icm9hZGNhc3RTZXJ2aWNlLmJyb2FkY2FzdEJydXNoKHtcbiAgICAgICAgICAgIGNoYW5uZWw6IGNvbmZpZz8uem9vbT8uc3luY0NoYW5uZWwsXG4gICAgICAgICAgICBtZXNzYWdlOiBicnVzaE1lc3NhZ2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb250YWluZXIuY2FsbCh0aGlzLmJydXNoKTtcblxuICAgICAgICAgIGxldCBkb21haW4gPSBicnVzaFNjYWxlLmRvbWFpbigpO1xuXG4gICAgICAgICAgaWYgKGNvbmZpZz8uYnJ1c2g/LmZyb20pIHtcbiAgICAgICAgICAgIGRvbWFpblswXSA9IGNvbmZpZy5icnVzaC5mcm9tO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjb25maWc/LmJydXNoPy50bykge1xuICAgICAgICAgICAgZG9tYWluWzFdID0gY29uZmlnLmJydXNoLnRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRhaW5lci5jYWxsKFxuICAgICAgICAgICAgdGhpcy5icnVzaC5tb3ZlLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25cbiAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGlvbi5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICAgICAgOiBkb21haW4ubWFwKGJydXNoU2NhbGUpLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmJyb2FkY2FzdFN1YnNjcmlidGlvbiA9IHRoaXMuYnJvYWRjYXN0U2VydmljZVxuICAgICAgICAuc3Vic2NyaWJlVG9ab29tKGNvbmZpZz8uem9vbT8uc3luY0NoYW5uZWwpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcigobTogSUJyb2FkY2FzdE1lc3NhZ2U8Wm9vbU1lc3NhZ2U+KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICBtLm1lc3NhZ2UuZXZlbnQuc291cmNlRXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50IHx8XG4gICAgICAgICAgICAgIG0ubWVzc2FnZS5ldmVudC5zb3VyY2VFdmVudCBpbnN0YW5jZW9mIFdoZWVsRXZlbnQgfHxcbiAgICAgICAgICAgICAgKHdpbmRvdy5Ub3VjaEV2ZW50ICYmXG4gICAgICAgICAgICAgICAgbS5tZXNzYWdlLmV2ZW50LnNvdXJjZUV2ZW50IGluc3RhbmNlb2YgVG91Y2hFdmVudClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGhyb3R0bGVUaW1lKDAsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLCB7IHRyYWlsaW5nOiB0cnVlIH0pLFxuICAgICAgICAgIHRhcCgobTogSUJyb2FkY2FzdE1lc3NhZ2U8Wm9vbU1lc3NhZ2U+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHsgYnJ1c2hEb21haW4gfSxcbiAgICAgICAgICAgIH0gPSBtO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIChtLm1lc3NhZ2U/LmF4aXMuaW5kZXggPT09IDAgJiZcbiAgICAgICAgICAgICAgICBtLm1lc3NhZ2U/LmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55ICYmXG4gICAgICAgICAgICAgICAgY29uZmlnLmJydXNoPy50eXBlID09PSBCcnVzaFR5cGUueSkgfHxcbiAgICAgICAgICAgICAgKG0ubWVzc2FnZT8uYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnggJiZcbiAgICAgICAgICAgICAgICBjb25maWcuYnJ1c2g/LnR5cGUgPT09IEJydXNoVHlwZS54KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKHRoaXMuYnJ1c2gubW92ZSwgW1xuICAgICAgICAgICAgICAgIGJydXNoU2NhbGUoYnJ1c2hEb21haW5bMF0pLFxuICAgICAgICAgICAgICAgIGJydXNoU2NhbGUoYnJ1c2hEb21haW5bMV0pLFxuICAgICAgICAgICAgICBdKTtcblxuICAgICAgICAgICAgICBpZiAobS5tZXNzYWdlLmV2ZW50LnR5cGUgPT09ICdlbmQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYnJ1c2hNZXNzYWdlID0gbmV3IEJydXNoTWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICBldmVudDogbnVsbCxcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbjogYnJ1c2hEb21haW4sXG4gICAgICAgICAgICAgICAgICBicnVzaFR5cGU6IGNvbmZpZz8uYnJ1c2g/LnR5cGUgPz8gQnJ1c2hUeXBlLngsXG4gICAgICAgICAgICAgICAgICBicnVzaFNjYWxlLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5icm9hZGNhc3RTZXJ2aWNlLmJyb2FkY2FzdEJydXNoKHtcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw6IGNvbmZpZz8uem9vbT8uc3luY0NoYW5uZWwsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBicnVzaE1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IGJydXNoRG9tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyUHJldmlvdXNTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBudWxsO1xuICB9XG59XG4iXX0=
|
|
@@ -738,24 +738,50 @@ class BrushService {
|
|
|
738
738
|
if (to - from === 0) {
|
|
739
739
|
const selection = (_b = (_a = this.selection) === null || _a === void 0 ? void 0 : _a.map(brushScale)) !== null && _b !== void 0 ? _b : [(_c = config.brush) === null || _c === void 0 ? void 0 : _c.from, (_d = config.brush) === null || _d === void 0 ? void 0 : _d.to].map(brushScale);
|
|
740
740
|
const halfBrushHeight = (selection[1] - selection[0]) / 2;
|
|
741
|
-
const invertedSelection = [
|
|
742
|
-
|
|
743
|
-
|
|
741
|
+
const invertedSelection = [
|
|
742
|
+
from - halfBrushHeight,
|
|
743
|
+
to + halfBrushHeight,
|
|
744
|
+
].map(brushScale.invert);
|
|
745
|
+
if (invertedSelection[1] - invertedSelection[0] >
|
|
746
|
+
((_e = config.brush) === null || _e === void 0 ? void 0 : _e.max)) {
|
|
747
|
+
container.call(this.brush.move, [
|
|
748
|
+
Math.floor(invertedSelection[0]),
|
|
749
|
+
Math.floor(invertedSelection[0] + ((_f = config.brush) === null || _f === void 0 ? void 0 : _f.max)),
|
|
750
|
+
].map(brushScale));
|
|
744
751
|
return;
|
|
745
752
|
}
|
|
746
|
-
if (invertedSelection[1] - invertedSelection[0] <
|
|
747
|
-
|
|
753
|
+
if (invertedSelection[1] - invertedSelection[0] <
|
|
754
|
+
((_g = config.brush) === null || _g === void 0 ? void 0 : _g.min)) {
|
|
755
|
+
container.call(this.brush.move, [
|
|
756
|
+
Math.floor(invertedSelection[0]),
|
|
757
|
+
Math.ceil(invertedSelection[0] + ((_h = config.brush) === null || _h === void 0 ? void 0 : _h.min)),
|
|
758
|
+
].map(brushScale));
|
|
748
759
|
return;
|
|
749
760
|
}
|
|
750
|
-
container.call(this.brush.move, [
|
|
761
|
+
container.call(this.brush.move, [
|
|
762
|
+
from - halfBrushHeight,
|
|
763
|
+
to + halfBrushHeight,
|
|
764
|
+
]);
|
|
751
765
|
return;
|
|
752
766
|
}
|
|
753
|
-
if (brushScale.invert(to) - brushScale.invert(from) >
|
|
754
|
-
|
|
767
|
+
if (brushScale.invert(to) - brushScale.invert(from) >
|
|
768
|
+
((_j = config.brush) === null || _j === void 0 ? void 0 : _j.max)) {
|
|
769
|
+
container.call(this.brush.move, this.selection
|
|
770
|
+
? [
|
|
771
|
+
this.selection[0],
|
|
772
|
+
this.selection[0] + ((_k = config.brush) === null || _k === void 0 ? void 0 : _k.max),
|
|
773
|
+
].map(brushScale)
|
|
774
|
+
: [(_l = config.brush) === null || _l === void 0 ? void 0 : _l.from, (_m = config.brush) === null || _m === void 0 ? void 0 : _m.to].map(brushScale));
|
|
755
775
|
return;
|
|
756
776
|
}
|
|
757
|
-
if (brushScale.invert(to) - brushScale.invert(from) <
|
|
758
|
-
|
|
777
|
+
if (brushScale.invert(to) - brushScale.invert(from) <
|
|
778
|
+
((_o = config.brush) === null || _o === void 0 ? void 0 : _o.min)) {
|
|
779
|
+
container.call(this.brush.move, this.selection
|
|
780
|
+
? [
|
|
781
|
+
this.selection[0],
|
|
782
|
+
this.selection[0] + ((_p = config.brush) === null || _p === void 0 ? void 0 : _p.min),
|
|
783
|
+
].map(brushScale)
|
|
784
|
+
: [(_q = config.brush) === null || _q === void 0 ? void 0 : _q.from, (_r = config.brush) === null || _r === void 0 ? void 0 : _r.to].map(brushScale));
|
|
759
785
|
return;
|
|
760
786
|
}
|
|
761
787
|
if (_.sourceEvent instanceof MouseEvent) {
|
|
@@ -765,7 +791,7 @@ class BrushService {
|
|
|
765
791
|
event: _,
|
|
766
792
|
selection: [brushScale.invert(from), brushScale.invert(to)],
|
|
767
793
|
brushType: (_t = (_s = config === null || config === void 0 ? void 0 : config.brush) === null || _s === void 0 ? void 0 : _s.type) !== null && _t !== void 0 ? _t : BrushType.x,
|
|
768
|
-
brushScale
|
|
794
|
+
brushScale,
|
|
769
795
|
});
|
|
770
796
|
this.broadcastService.broadcastBrush({
|
|
771
797
|
channel: (_u = config === null || config === void 0 ? void 0 : config.zoom) === null || _u === void 0 ? void 0 : _u.syncChannel,
|
|
@@ -784,15 +810,26 @@ class BrushService {
|
|
|
784
810
|
if ((_b = config === null || config === void 0 ? void 0 : config.brush) === null || _b === void 0 ? void 0 : _b.to) {
|
|
785
811
|
domain[1] = config.brush.to;
|
|
786
812
|
}
|
|
787
|
-
container.call(this.brush.move, this.selection
|
|
813
|
+
container.call(this.brush.move, this.selection
|
|
814
|
+
? this.selection.map(brushScale)
|
|
815
|
+
: domain.map(brushScale), {});
|
|
788
816
|
}, 0);
|
|
789
817
|
});
|
|
790
|
-
this.broadcastSubscribtion = this.broadcastService
|
|
791
|
-
|
|
818
|
+
this.broadcastSubscribtion = this.broadcastService
|
|
819
|
+
.subscribeToZoom((_f = config === null || config === void 0 ? void 0 : config.zoom) === null || _f === void 0 ? void 0 : _f.syncChannel)
|
|
820
|
+
.pipe(filter((m) => {
|
|
821
|
+
return (m.message.event.sourceEvent instanceof MouseEvent ||
|
|
822
|
+
m.message.event.sourceEvent instanceof WheelEvent ||
|
|
823
|
+
(window.TouchEvent &&
|
|
824
|
+
m.message.event.sourceEvent instanceof TouchEvent));
|
|
792
825
|
}), throttleTime(0, animationFrameScheduler, { trailing: true }), tap((m) => {
|
|
793
826
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
794
|
-
const { message: { brushDomain } } = m;
|
|
795
|
-
if (((_a = m.message) === null || _a === void 0 ? void 0 : _a.axis.index) === 0 &&
|
|
827
|
+
const { message: { brushDomain }, } = m;
|
|
828
|
+
if ((((_a = m.message) === null || _a === void 0 ? void 0 : _a.axis.index) === 0 &&
|
|
829
|
+
((_b = m.message) === null || _b === void 0 ? void 0 : _b.axis.orientation) === AxisOrientation.y &&
|
|
830
|
+
((_c = config.brush) === null || _c === void 0 ? void 0 : _c.type) === BrushType.y) ||
|
|
831
|
+
(((_d = m.message) === null || _d === void 0 ? void 0 : _d.axis.orientation) === AxisOrientation.x &&
|
|
832
|
+
((_e = config.brush) === null || _e === void 0 ? void 0 : _e.type) === BrushType.x)) {
|
|
796
833
|
container.call(this.brush.move, [
|
|
797
834
|
brushScale(brushDomain[0]),
|
|
798
835
|
brushScale(brushDomain[1]),
|
|
@@ -811,7 +848,8 @@ class BrushService {
|
|
|
811
848
|
}
|
|
812
849
|
this.selection = brushDomain;
|
|
813
850
|
}
|
|
814
|
-
}))
|
|
851
|
+
}))
|
|
852
|
+
.subscribe();
|
|
815
853
|
}
|
|
816
854
|
}
|
|
817
855
|
clearPreviousSelection() {
|