@tetacom/svg-charts 1.1.18 → 1.1.21
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/model/chart-bounds.d.ts +5 -5
- package/chart/service/chart.service.d.ts +1 -1
- package/esm2020/chart/chart-container/chart-container.component.mjs +29 -23
- package/esm2020/chart/directives/zoomable.directive.mjs +8 -9
- package/esm2020/chart/model/chart-bounds.mjs +7 -7
- package/esm2020/chart/service/chart.service.mjs +25 -7
- package/esm2020/chart/service/scale.service.mjs +12 -8
- package/fesm2015/tetacom-svg-charts.mjs +82 -53
- package/fesm2015/tetacom-svg-charts.mjs.map +1 -1
- package/fesm2020/tetacom-svg-charts.mjs +75 -48
- package/fesm2020/tetacom-svg-charts.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -18,11 +18,9 @@ export class ChartService {
|
|
|
18
18
|
this.annotationEvent$ = new Subject();
|
|
19
19
|
this.annotationMove$ = new Subject();
|
|
20
20
|
this.id = of((Date.now() + Math.random()).toString(36));
|
|
21
|
-
this.config = this.config
|
|
22
|
-
.asObservable()
|
|
23
|
-
.pipe(withLatestFrom(this.id), map(this.setDefaults), map(this.setPreparationData), shareReplay({
|
|
21
|
+
this.config = this.config$.asObservable().pipe(withLatestFrom(this.id), map(this.setDefaults), map(this.setPreparationData), shareReplay({
|
|
24
22
|
bufferSize: 1,
|
|
25
|
-
refCount: true
|
|
23
|
+
refCount: true,
|
|
26
24
|
}));
|
|
27
25
|
this.size = this.size$.asObservable();
|
|
28
26
|
this.pointerMove = this.pointerMove$.asObservable();
|
|
@@ -32,8 +30,12 @@ export class ChartService {
|
|
|
32
30
|
this.pointMove = this.pointMove$.asObservable();
|
|
33
31
|
this.chartClick = this.chartClick$.asObservable();
|
|
34
32
|
this.chartContextMenu = this.chartContextMenu$.asObservable();
|
|
35
|
-
this.annotationClick = this.annotationEvent
|
|
36
|
-
|
|
33
|
+
this.annotationClick = this.annotationEvent$
|
|
34
|
+
.asObservable()
|
|
35
|
+
.pipe(filter((_) => _?.event?.type === 'click'));
|
|
36
|
+
this.annotationContextMenu = this.annotationEvent$
|
|
37
|
+
.asObservable()
|
|
38
|
+
.pipe(filter((_) => _?.event?.type === 'contextmenu'));
|
|
37
39
|
this.annotationMove = this.annotationMove$.asObservable();
|
|
38
40
|
this.plotBandClick = this.plotBandEvent$
|
|
39
41
|
.asObservable()
|
|
@@ -104,6 +106,22 @@ export class ChartService {
|
|
|
104
106
|
id: _.id ?? index,
|
|
105
107
|
};
|
|
106
108
|
});
|
|
109
|
+
const oppositeYCount = config.yAxis?.filter((_) => _.opposite);
|
|
110
|
+
const oppositeXCount = config.xAxis?.filter((_) => _.opposite);
|
|
111
|
+
const nonOppositeYCount = config.yAxis?.filter((_) => !_.opposite);
|
|
112
|
+
const nonOppositeXCount = config.xAxis?.filter((_) => !_.opposite);
|
|
113
|
+
if (nonOppositeXCount?.length > 1) {
|
|
114
|
+
config.bounds.bottom = 0;
|
|
115
|
+
}
|
|
116
|
+
if (oppositeXCount?.length > 1) {
|
|
117
|
+
config.bounds.top = 0;
|
|
118
|
+
}
|
|
119
|
+
if (nonOppositeYCount?.length > 1) {
|
|
120
|
+
config.bounds.left = 0;
|
|
121
|
+
}
|
|
122
|
+
if (oppositeYCount?.length > 1) {
|
|
123
|
+
config.bounds.right = 0;
|
|
124
|
+
}
|
|
107
125
|
config.tooltip = Object.assign({}, defaultChartConfig().tooltip, config.tooltip);
|
|
108
126
|
config.zoom.syncChannel = config.zoom?.syncChannel ?? id;
|
|
109
127
|
return config;
|
|
@@ -148,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
|
|
|
148
166
|
providedIn: 'root',
|
|
149
167
|
}]
|
|
150
168
|
}], ctorParameters: function () { return []; } });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixHQUFHLEVBQ1MsRUFBRSxFQUNkLFdBQVcsRUFDWCxPQUFPLEVBQUUsY0FBYyxHQUN4QixNQUFNLE1BQU0sQ0FBQztBQU1kLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOztBQVFyRSxNQUFNLE9BQU8sWUFBWTtJQTRCdkI7UUFaUSxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQWUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDNUQsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUMzQyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQTBDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNwRixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO1FBQ3RELGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQXlCLENBQUM7UUFDckQsZUFBVSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBQ3BELGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQTBCLENBQUM7UUFDcEQsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQTBCLENBQUM7UUFDMUQscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7UUFDMUQsb0JBQWUsR0FBRyxJQUFJLE9B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LENBQUM7NEJBQ1gsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDOzRCQUNYLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRTs0QkFDYixFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUU7eUJBQ2QsQ0FBQztvQkFDSixDQUFDLENBQUM7aUJBQ0gsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlELE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7eUdBOUxVLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJQ2hhcnRDb25maWd9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIE9ic2VydmFibGUsIG9mLFxuICBzaGFyZVJlcGxheSxcbiAgU3ViamVjdCwgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtJQ2hhcnRFdmVudH0gZnJvbSAnLi4vbW9kZWwvaS1jaGFydC1ldmVudCc7XG5pbXBvcnQge0lEaXNwbGF5VG9vbHRpcH0gZnJvbSAnLi4vbW9kZWwvaS1kaXNwbGF5LXRvb2x0aXAnO1xuaW1wb3J0IHtQbG90QmFuZH0gZnJvbSAnLi4vbW9kZWwvcGxvdC1iYW5kJztcbmltcG9ydCB7UGxvdExpbmV9IGZyb20gJy4uL21vZGVsL3Bsb3QtbGluZSc7XG5pbXBvcnQge0lQb2ludE1vdmV9IGZyb20gJy4uL21vZGVsL2ktcG9pbnQtbW92ZSc7XG5pbXBvcnQge2RlZmF1bHRDaGFydENvbmZpZ30gZnJvbSAnLi4vZGVmYXVsdC9kZWZhdWx0LWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQge2RlZmF1bHRBeGlzQ29uZmlnfSBmcm9tICcuLi9kZWZhdWx0L2RlZmF1bHQtYXhpcy1jb25maWcnO1xuaW1wb3J0IHtkZWZhdWx0U2VyaWVzQ29uZmlnfSBmcm9tICcuLi9kZWZhdWx0L2RlZmF1bHQtc2VyaWVzLWNvbmZpZyc7XG5pbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi4vbW9kZWwvYmFzZS1wb2ludCc7XG5pbXBvcnQge1Nlcmllc30gZnJvbSAnLi4vbW9kZWwvc2VyaWVzJztcbmltcG9ydCB7QW5ub3RhdGlvbn0gZnJvbSBcIi4uL21vZGVsL2Fubm90YXRpb25cIjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0U2VydmljZSB7XG4gIHB1YmxpYyBpZDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBwdWJsaWMgY29uZmlnOiBPYnNlcnZhYmxlPElDaGFydENvbmZpZz47XG4gIHB1YmxpYyBzaXplOiBPYnNlcnZhYmxlPERPTVJlY3Q+O1xuICBwdWJsaWMgcG9pbnRlck1vdmU6IE9ic2VydmFibGU8UG9pbnRlckV2ZW50PjtcbiAgcHVibGljIHRvb2x0aXBzOiBPYnNlcnZhYmxlPE1hcDxTZXJpZXM8QmFzZVBvaW50PiwgSURpc3BsYXlUb29sdGlwPj47XG4gIHB1YmxpYyBwbG90QmFuZEV2ZW50OiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PFBsb3RCYW5kPj47XG4gIHB1YmxpYyBwbG90TGluZU1vdmU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdExpbmU+PjtcbiAgcHVibGljIHBsb3RCYW5kQ2xpY2s6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+PjtcbiAgcHVibGljIHBsb3RCYW5kQ29udGV4dE1lbnU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+PjtcbiAgcHVibGljIHBvaW50TW92ZTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxJUG9pbnRNb3ZlPj47XG4gIHB1YmxpYyBhbm5vdGF0aW9uTW92ZTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPj47XG4gIHB1YmxpYyBhbm5vdGF0aW9uQ2xpY2s6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8QW5ub3RhdGlvbj4+O1xuICBwdWJsaWMgYW5ub3RhdGlvbkNvbnRleHRNZW51OiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PEFubm90YXRpb24+PjtcbiAgcHVibGljIGNoYXJ0Q2xpY2s6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8QmFzZVBvaW50Pj47XG4gIHB1YmxpYyBjaGFydENvbnRleHRNZW51OiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PEJhc2VQb2ludD4+O1xuICBwcml2YXRlIGNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElDaGFydENvbmZpZz4oZGVmYXVsdENoYXJ0Q29uZmlnKCkpO1xuICBwcml2YXRlIHNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxET01SZWN0PihuZXcgRE9NUmVjdFJlYWRPbmx5KCkpO1xuICBwcml2YXRlIHBvaW50ZXJNb3ZlJCA9IG5ldyBTdWJqZWN0PFBvaW50ZXJFdmVudD4oKTtcbiAgcHJpdmF0ZSB0b29sdGlwcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hcDxTZXJpZXM8QmFzZVBvaW50PiwgSURpc3BsYXlUb29sdGlwPj4obmV3IE1hcCgpKTtcbiAgcHJpdmF0ZSBwbG90QmFuZEV2ZW50JCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PFBsb3RCYW5kPj4oKTtcbiAgcHJpdmF0ZSBwbG90TGluZU1vdmUkID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8UGxvdExpbmU+PigpO1xuICBwcml2YXRlIHBvaW50TW92ZSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxJUG9pbnRNb3ZlPj4oKTtcbiAgcHJpdmF0ZSBjaGFydENsaWNrJCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PEJhc2VQb2ludD4+KCk7XG4gIHByaXZhdGUgY2hhcnRDb250ZXh0TWVudSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxCYXNlUG9pbnQ+PigpO1xuICBwcml2YXRlIGFubm90YXRpb25FdmVudCQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPj4oKTtcbiAgcHJpdmF0ZSBhbm5vdGF0aW9uTW92ZSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPj4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcblxuICAgIHRoaXMuaWQgPSBvZigoRGF0ZS5ub3coKSArIE1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKDM2KSlcblxuICAgIHRoaXMuY29uZmlnID0gdGhpcy5jb25maWckXG4gICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmlkKSxcbiAgICAgICAgbWFwKHRoaXMuc2V0RGVmYXVsdHMpLFxuICAgICAgICBtYXAodGhpcy5zZXRQcmVwYXJhdGlvbkRhdGEpLFxuICAgICAgICBzaGFyZVJlcGxheSh7XG4gICAgICAgICAgYnVmZmVyU2l6ZTogMSxcbiAgICAgICAgICByZWZDb3VudDogdHJ1ZVxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgIHRoaXMuc2l6ZSA9IHRoaXMuc2l6ZSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICB0aGlzLnBvaW50ZXJNb3ZlID0gdGhpcy5wb2ludGVyTW92ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy50b29sdGlwcyA9IHRoaXMudG9vbHRpcHMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucGxvdEJhbmRFdmVudCA9IHRoaXMucGxvdEJhbmRFdmVudCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5wbG90TGluZU1vdmUgPSB0aGlzLnBsb3RMaW5lTW92ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5wb2ludE1vdmUgPSB0aGlzLnBvaW50TW92ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5jaGFydENsaWNrID0gdGhpcy5jaGFydENsaWNrJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLmNoYXJ0Q29udGV4dE1lbnUgPSB0aGlzLmNoYXJ0Q29udGV4dE1lbnUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuYW5ub3RhdGlvbkNsaWNrID0gdGhpcy5hbm5vdGF0aW9uRXZlbnQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NsaWNrJykpO1xuICAgIHRoaXMuYW5ub3RhdGlvbkNvbnRleHRNZW51ID0gdGhpcy5hbm5vdGF0aW9uRXZlbnQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NvbnRleHRtZW51JykpO1xuICAgIHRoaXMuYW5ub3RhdGlvbk1vdmUgPSB0aGlzLmFubm90YXRpb25Nb3ZlJC5hc09ic2VydmFibGUoKTtcblxuICAgIHRoaXMucGxvdEJhbmRDbGljayA9IHRoaXMucGxvdEJhbmRFdmVudCRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NsaWNrJykpO1xuICAgIHRoaXMucGxvdEJhbmRDb250ZXh0TWVudSA9IHRoaXMucGxvdEJhbmRFdmVudCRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NvbnRleHRtZW51JykpO1xuICB9XG5cbiAgcHVibGljIHNldENvbmZpZyhjb25maWc6IElDaGFydENvbmZpZykge1xuICAgIHRoaXMuY2xlYXJUb29sdGlwcygpO1xuICAgIHRoaXMuY29uZmlnJC5uZXh0KGNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2l6ZShzaXplOiBET01SZWN0KSB7XG4gICAgdGhpcy5zaXplJC5uZXh0KHNpemUpO1xuICB9XG5cbiAgcHVibGljIHNldFBvaW50ZXJNb3ZlKGV2ZW50OiBQb2ludGVyRXZlbnQpIHtcbiAgICB0aGlzLnBvaW50ZXJNb3ZlJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUb29sdGlwKHRvb2x0aXA6IElEaXNwbGF5VG9vbHRpcCkge1xuICAgIGNvbnN0IGN1cnJlbnRUb29sdGlwcyA9IHRoaXMudG9vbHRpcHMkLnZhbHVlO1xuICAgIGlmICghdG9vbHRpcC5wb2ludCkge1xuICAgICAgY3VycmVudFRvb2x0aXBzLmRlbGV0ZSh0b29sdGlwLnNlcmllcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnRUb29sdGlwcy5zZXQodG9vbHRpcC5zZXJpZXMsIHRvb2x0aXApO1xuICAgIH1cbiAgICB0aGlzLnRvb2x0aXBzJC5uZXh0KG5ldyBNYXA8U2VyaWVzPEJhc2VQb2ludD4sIElEaXNwbGF5VG9vbHRpcD4oY3VycmVudFRvb2x0aXBzKSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJUb29sdGlwcygpIHtcbiAgICB0aGlzLnRvb2x0aXBzJC5uZXh0KG5ldyBNYXAoKSk7XG4gIH1cblxuXG4gIHB1YmxpYyBlbWl0TW92ZUFubm90YXRpb24oZXZlbnQ6IElDaGFydEV2ZW50PEFubm90YXRpb24+KSB7XG4gICAgdGhpcy5hbm5vdGF0aW9uTW92ZSQubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdEFubm90YXRpb24oZXZlbnQ6IElDaGFydEV2ZW50PEFubm90YXRpb24+KSB7XG4gICAgdGhpcy5hbm5vdGF0aW9uRXZlbnQkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQbG90YmFuZChldmVudDogSUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+KSB7XG4gICAgdGhpcy5wbG90QmFuZEV2ZW50JC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0UGxvdGxpbmUoZXZlbnQ6IElDaGFydEV2ZW50PFBsb3RMaW5lPikge1xuICAgIHRoaXMucGxvdExpbmVNb3ZlJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0UG9pbnQoZXZlbnQ6IElDaGFydEV2ZW50PElQb2ludE1vdmU+KSB7XG4gICAgdGhpcy5wb2ludE1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRDaGFydENsaWNrKGV2ZW50OiBJQ2hhcnRFdmVudDxCYXNlUG9pbnQ+KSB7XG4gICAgdGhpcy5jaGFydENsaWNrJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0Q2hhcnRDb250ZXh0TWVudShldmVudDogSUNoYXJ0RXZlbnQ8QmFzZVBvaW50Pikge1xuICAgIHRoaXMuY2hhcnRDb250ZXh0TWVudSQubmV4dChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRzKGRhdGE6IFtJQ2hhcnRDb25maWcsIHN0cmluZ10pOiBJQ2hhcnRDb25maWcge1xuXG4gICAgbGV0IFtjb25maWcsIGlkXSA9IGRhdGE7XG5cbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnID0gKGRlZmF1bHRDb25maWcpID0+IHtcbiAgICAgIHJldHVybiAoc291cmNlKSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0Q29uZmlnLCBzb3VyY2UpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdENoYXJ0Q29uZmlnKCksIGNvbmZpZyk7XG4gICAgY29uZmlnLmlkID0gaWQ7XG5cbiAgICBjb25maWcueEF4aXMgPSBjb25maWcueEF4aXMubWFwKGRlZmF1bHRDb25maWcoZGVmYXVsdEF4aXNDb25maWcpKTtcbiAgICBjb25maWcueUF4aXMgPSBjb25maWcueUF4aXMubWFwKGRlZmF1bHRDb25maWcoZGVmYXVsdEF4aXNDb25maWcpKTtcbiAgICBjb25maWcuc2VyaWVzID0gY29uZmlnLnNlcmllcy5tYXAoZGVmYXVsdENvbmZpZyhkZWZhdWx0U2VyaWVzQ29uZmlnKCkpKTtcblxuICAgIGNvbmZpZy5zZXJpZXMgPSBjb25maWcuc2VyaWVzLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLl8sXG4gICAgICAgIGlkOiBfLmlkID8/IGluZGV4LFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIGNvbmZpZy50b29sdGlwID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgZGVmYXVsdENoYXJ0Q29uZmlnKCkudG9vbHRpcCxcbiAgICAgIGNvbmZpZy50b29sdGlwXG4gICAgKTtcblxuICAgIGNvbmZpZy56b29tLnN5bmNDaGFubmVsID0gY29uZmlnLnpvb20/LnN5bmNDaGFubmVsID8/IGlkO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgc2V0UHJlcGFyYXRpb25EYXRhKGNvbmZpZzogSUNoYXJ0Q29uZmlnKTogSUNoYXJ0Q29uZmlnIHtcbiAgICBpZiAoY29uZmlnLmludmVydGVkKSB7XG4gICAgICBjb25zdCB4QXhlcyA9IFsuLi5jb25maWcueEF4aXNdO1xuICAgICAgY29uc3QgeUF4ZXMgPSBbLi4uY29uZmlnLnlBeGlzXTtcblxuICAgICAgY29uZmlnLnhBeGlzID0geUF4ZXM7XG4gICAgICBjb25maWcueUF4aXMgPSB4QXhlcztcblxuICAgICAgY29uZmlnLnNlcmllcyA9IGNvbmZpZy5zZXJpZXM/Lm1hcCgoc2VyaWUpID0+IHtcbiAgICAgICAgY29uc3QgeCA9IHNlcmllLnhBeGlzSW5kZXg7XG4gICAgICAgIGNvbnN0IHkgPSBzZXJpZS55QXhpc0luZGV4O1xuICAgICAgICBzZXJpZS54QXhpc0luZGV4ID0geTtcbiAgICAgICAgc2VyaWUueUF4aXNJbmRleCA9IHg7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc2VyaWUsXG4gICAgICAgICAgZGF0YTogc2VyaWU/LmRhdGE/Lm1hcCgocG9pbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnBvaW50LFxuICAgICAgICAgICAgICB4OiBwb2ludD8ueSxcbiAgICAgICAgICAgICAgeTogcG9pbnQ/LngsXG4gICAgICAgICAgICAgIHgxOiBwb2ludD8ueTEsXG4gICAgICAgICAgICAgIHkxOiBwb2ludD8ueDEsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZz8uYnJ1c2g/LmVuYWJsZSkge1xuICAgICAgY29uZmlnLnlBeGlzID0gY29uZmlnLnlBeGlzLm1hcCgoXykgPT4gKHsuLi5fLCB6b29tOiBmYWxzZX0pKTtcbiAgICAgIGNvbmZpZy54QXhpcyA9IGNvbmZpZy54QXhpcy5tYXAoKF8pID0+ICh7Li4uXywgem9vbTogZmFsc2V9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxufVxuIl19
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixHQUFHLEVBRUgsRUFBRSxFQUNGLFdBQVcsRUFDWCxPQUFPLEVBQ1AsY0FBYyxHQUNmLE1BQU0sTUFBTSxDQUFDO0FBTWQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBUXZFLE1BQU0sT0FBTyxZQUFZO0lBOEJ2QjtRQWRRLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBZSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDbEUsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksZUFBZSxFQUFFLENBQUMsQ0FBQztRQUM1RCxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1FBQzNDLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FFckMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ0wsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztRQUN0RCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO1FBQ3JELGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQztRQUNwRCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO1FBQ3BELHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO1FBQzFELHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBQzFELG9CQUFlLEdBQUcsSUFBSSxPQUFP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O29CQUNKLENBQUMsQ0FBQztpQkFDSCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDekIsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEUsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDakU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzt5R0F2TlUsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDaGFydENvbmZpZyB9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzaGFyZVJlcGxheSxcbiAgU3ViamVjdCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSUNoYXJ0RXZlbnQgfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWV2ZW50JztcbmltcG9ydCB7IElEaXNwbGF5VG9vbHRpcCB9IGZyb20gJy4uL21vZGVsL2ktZGlzcGxheS10b29sdGlwJztcbmltcG9ydCB7IFBsb3RCYW5kIH0gZnJvbSAnLi4vbW9kZWwvcGxvdC1iYW5kJztcbmltcG9ydCB7IFBsb3RMaW5lIH0gZnJvbSAnLi4vbW9kZWwvcGxvdC1saW5lJztcbmltcG9ydCB7IElQb2ludE1vdmUgfSBmcm9tICcuLi9tb2RlbC9pLXBvaW50LW1vdmUnO1xuaW1wb3J0IHsgZGVmYXVsdENoYXJ0Q29uZmlnIH0gZnJvbSAnLi4vZGVmYXVsdC9kZWZhdWx0LWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQgeyBkZWZhdWx0QXhpc0NvbmZpZyB9IGZyb20gJy4uL2RlZmF1bHQvZGVmYXVsdC1heGlzLWNvbmZpZyc7XG5pbXBvcnQgeyBkZWZhdWx0U2VyaWVzQ29uZmlnIH0gZnJvbSAnLi4vZGVmYXVsdC9kZWZhdWx0LXNlcmllcy1jb25maWcnO1xuaW1wb3J0IHsgQmFzZVBvaW50IH0gZnJvbSAnLi4vbW9kZWwvYmFzZS1wb2ludCc7XG5pbXBvcnQgeyBTZXJpZXMgfSBmcm9tICcuLi9tb2RlbC9zZXJpZXMnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbiB9IGZyb20gJy4uL21vZGVsL2Fubm90YXRpb24nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRTZXJ2aWNlIHtcbiAgcHVibGljIGlkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHB1YmxpYyBjb25maWc6IE9ic2VydmFibGU8SUNoYXJ0Q29uZmlnPjtcbiAgcHVibGljIHNpemU6IE9ic2VydmFibGU8RE9NUmVjdD47XG4gIHB1YmxpYyBwb2ludGVyTW92ZTogT2JzZXJ2YWJsZTxQb2ludGVyRXZlbnQ+O1xuICBwdWJsaWMgdG9vbHRpcHM6IE9ic2VydmFibGU8TWFwPFNlcmllczxCYXNlUG9pbnQ+LCBJRGlzcGxheVRvb2x0aXA+PjtcbiAgcHVibGljIHBsb3RCYW5kRXZlbnQ6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+PjtcbiAgcHVibGljIHBsb3RMaW5lTW92ZTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90TGluZT4+O1xuICBwdWJsaWMgcGxvdEJhbmRDbGljazogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90QmFuZD4+O1xuICBwdWJsaWMgcGxvdEJhbmRDb250ZXh0TWVudTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90QmFuZD4+O1xuICBwdWJsaWMgcG9pbnRNb3ZlOiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PElQb2ludE1vdmU+PjtcbiAgcHVibGljIGFubm90YXRpb25Nb3ZlOiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PEFubm90YXRpb24+PjtcbiAgcHVibGljIGFubm90YXRpb25DbGljazogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPj47XG4gIHB1YmxpYyBhbm5vdGF0aW9uQ29udGV4dE1lbnU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8QW5ub3RhdGlvbj4+O1xuICBwdWJsaWMgY2hhcnRDbGljazogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxCYXNlUG9pbnQ+PjtcbiAgcHVibGljIGNoYXJ0Q29udGV4dE1lbnU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8QmFzZVBvaW50Pj47XG4gIHByaXZhdGUgY29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUNoYXJ0Q29uZmlnPihkZWZhdWx0Q2hhcnRDb25maWcoKSk7XG4gIHByaXZhdGUgc2l6ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERPTVJlY3Q+KG5ldyBET01SZWN0UmVhZE9ubHkoKSk7XG4gIHByaXZhdGUgcG9pbnRlck1vdmUkID0gbmV3IFN1YmplY3Q8UG9pbnRlckV2ZW50PigpO1xuICBwcml2YXRlIHRvb2x0aXBzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgTWFwPFNlcmllczxCYXNlUG9pbnQ+LCBJRGlzcGxheVRvb2x0aXA+XG4gID4obmV3IE1hcCgpKTtcbiAgcHJpdmF0ZSBwbG90QmFuZEV2ZW50JCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PFBsb3RCYW5kPj4oKTtcbiAgcHJpdmF0ZSBwbG90TGluZU1vdmUkID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8UGxvdExpbmU+PigpO1xuICBwcml2YXRlIHBvaW50TW92ZSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxJUG9pbnRNb3ZlPj4oKTtcbiAgcHJpdmF0ZSBjaGFydENsaWNrJCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PEJhc2VQb2ludD4+KCk7XG4gIHByaXZhdGUgY2hhcnRDb250ZXh0TWVudSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxCYXNlUG9pbnQ+PigpO1xuICBwcml2YXRlIGFubm90YXRpb25FdmVudCQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPj4oKTtcbiAgcHJpdmF0ZSBhbm5vdGF0aW9uTW92ZSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPj4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmlkID0gb2YoKERhdGUubm93KCkgKyBNYXRoLnJhbmRvbSgpKS50b1N0cmluZygzNikpO1xuXG4gICAgdGhpcy5jb25maWcgPSB0aGlzLmNvbmZpZyQuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuaWQpLFxuICAgICAgbWFwKHRoaXMuc2V0RGVmYXVsdHMpLFxuICAgICAgbWFwKHRoaXMuc2V0UHJlcGFyYXRpb25EYXRhKSxcbiAgICAgIHNoYXJlUmVwbGF5KHtcbiAgICAgICAgYnVmZmVyU2l6ZTogMSxcbiAgICAgICAgcmVmQ291bnQ6IHRydWUsXG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnNpemUgPSB0aGlzLnNpemUkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgdGhpcy5wb2ludGVyTW92ZSA9IHRoaXMucG9pbnRlck1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMudG9vbHRpcHMgPSB0aGlzLnRvb2x0aXBzJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnBsb3RCYW5kRXZlbnQgPSB0aGlzLnBsb3RCYW5kRXZlbnQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucGxvdExpbmVNb3ZlID0gdGhpcy5wbG90TGluZU1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucG9pbnRNb3ZlID0gdGhpcy5wb2ludE1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuY2hhcnRDbGljayA9IHRoaXMuY2hhcnRDbGljayQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5jaGFydENvbnRleHRNZW51ID0gdGhpcy5jaGFydENvbnRleHRNZW51JC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLmFubm90YXRpb25DbGljayA9IHRoaXMuYW5ub3RhdGlvbkV2ZW50JFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAucGlwZShmaWx0ZXIoKF8pID0+IF8/LmV2ZW50Py50eXBlID09PSAnY2xpY2snKSk7XG4gICAgdGhpcy5hbm5vdGF0aW9uQ29udGV4dE1lbnUgPSB0aGlzLmFubm90YXRpb25FdmVudCRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NvbnRleHRtZW51JykpO1xuICAgIHRoaXMuYW5ub3RhdGlvbk1vdmUgPSB0aGlzLmFubm90YXRpb25Nb3ZlJC5hc09ic2VydmFibGUoKTtcblxuICAgIHRoaXMucGxvdEJhbmRDbGljayA9IHRoaXMucGxvdEJhbmRFdmVudCRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NsaWNrJykpO1xuICAgIHRoaXMucGxvdEJhbmRDb250ZXh0TWVudSA9IHRoaXMucGxvdEJhbmRFdmVudCRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NvbnRleHRtZW51JykpO1xuICB9XG5cbiAgcHVibGljIHNldENvbmZpZyhjb25maWc6IElDaGFydENvbmZpZykge1xuICAgIHRoaXMuY2xlYXJUb29sdGlwcygpO1xuICAgIHRoaXMuY29uZmlnJC5uZXh0KGNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2l6ZShzaXplOiBET01SZWN0KSB7XG4gICAgdGhpcy5zaXplJC5uZXh0KHNpemUpO1xuICB9XG5cbiAgcHVibGljIHNldFBvaW50ZXJNb3ZlKGV2ZW50OiBQb2ludGVyRXZlbnQpIHtcbiAgICB0aGlzLnBvaW50ZXJNb3ZlJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUb29sdGlwKHRvb2x0aXA6IElEaXNwbGF5VG9vbHRpcCkge1xuICAgIGNvbnN0IGN1cnJlbnRUb29sdGlwcyA9IHRoaXMudG9vbHRpcHMkLnZhbHVlO1xuICAgIGlmICghdG9vbHRpcC5wb2ludCkge1xuICAgICAgY3VycmVudFRvb2x0aXBzLmRlbGV0ZSh0b29sdGlwLnNlcmllcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnRUb29sdGlwcy5zZXQodG9vbHRpcC5zZXJpZXMsIHRvb2x0aXApO1xuICAgIH1cbiAgICB0aGlzLnRvb2x0aXBzJC5uZXh0KFxuICAgICAgbmV3IE1hcDxTZXJpZXM8QmFzZVBvaW50PiwgSURpc3BsYXlUb29sdGlwPihjdXJyZW50VG9vbHRpcHMpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclRvb2x0aXBzKCkge1xuICAgIHRoaXMudG9vbHRpcHMkLm5leHQobmV3IE1hcCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0TW92ZUFubm90YXRpb24oZXZlbnQ6IElDaGFydEV2ZW50PEFubm90YXRpb24+KSB7XG4gICAgdGhpcy5hbm5vdGF0aW9uTW92ZSQubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdEFubm90YXRpb24oZXZlbnQ6IElDaGFydEV2ZW50PEFubm90YXRpb24+KSB7XG4gICAgdGhpcy5hbm5vdGF0aW9uRXZlbnQkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQbG90YmFuZChldmVudDogSUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+KSB7XG4gICAgdGhpcy5wbG90QmFuZEV2ZW50JC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0UGxvdGxpbmUoZXZlbnQ6IElDaGFydEV2ZW50PFBsb3RMaW5lPikge1xuICAgIHRoaXMucGxvdExpbmVNb3ZlJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0UG9pbnQoZXZlbnQ6IElDaGFydEV2ZW50PElQb2ludE1vdmU+KSB7XG4gICAgdGhpcy5wb2ludE1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRDaGFydENsaWNrKGV2ZW50OiBJQ2hhcnRFdmVudDxCYXNlUG9pbnQ+KSB7XG4gICAgdGhpcy5jaGFydENsaWNrJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0Q2hhcnRDb250ZXh0TWVudShldmVudDogSUNoYXJ0RXZlbnQ8QmFzZVBvaW50Pikge1xuICAgIHRoaXMuY2hhcnRDb250ZXh0TWVudSQubmV4dChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRzKGRhdGE6IFtJQ2hhcnRDb25maWcsIHN0cmluZ10pOiBJQ2hhcnRDb25maWcge1xuICAgIGxldCBbY29uZmlnLCBpZF0gPSBkYXRhO1xuXG4gICAgY29uc3QgZGVmYXVsdENvbmZpZyA9IChkZWZhdWx0Q29uZmlnKSA9PiB7XG4gICAgICByZXR1cm4gKHNvdXJjZSkgPT4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdENvbmZpZywgc291cmNlKTtcbiAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRDaGFydENvbmZpZygpLCBjb25maWcpO1xuICAgIGNvbmZpZy5pZCA9IGlkO1xuXG4gICAgY29uZmlnLnhBeGlzID0gY29uZmlnLnhBeGlzLm1hcChkZWZhdWx0Q29uZmlnKGRlZmF1bHRBeGlzQ29uZmlnKSk7XG4gICAgY29uZmlnLnlBeGlzID0gY29uZmlnLnlBeGlzLm1hcChkZWZhdWx0Q29uZmlnKGRlZmF1bHRBeGlzQ29uZmlnKSk7XG4gICAgY29uZmlnLnNlcmllcyA9IGNvbmZpZy5zZXJpZXMubWFwKGRlZmF1bHRDb25maWcoZGVmYXVsdFNlcmllc0NvbmZpZygpKSk7XG5cbiAgICBjb25maWcuc2VyaWVzID0gY29uZmlnLnNlcmllcy5tYXAoKF8sIGluZGV4KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5fLFxuICAgICAgICBpZDogXy5pZCA/PyBpbmRleCxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCBvcHBvc2l0ZVlDb3VudCA9IGNvbmZpZy55QXhpcz8uZmlsdGVyKChfKSA9PiBfLm9wcG9zaXRlKTtcbiAgICBjb25zdCBvcHBvc2l0ZVhDb3VudCA9IGNvbmZpZy54QXhpcz8uZmlsdGVyKChfKSA9PiBfLm9wcG9zaXRlKTtcblxuICAgIGNvbnN0IG5vbk9wcG9zaXRlWUNvdW50ID0gY29uZmlnLnlBeGlzPy5maWx0ZXIoKF8pID0+ICFfLm9wcG9zaXRlKTtcbiAgICBjb25zdCBub25PcHBvc2l0ZVhDb3VudCA9IGNvbmZpZy54QXhpcz8uZmlsdGVyKChfKSA9PiAhXy5vcHBvc2l0ZSk7XG5cbiAgICBpZiAobm9uT3Bwb3NpdGVYQ291bnQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbmZpZy5ib3VuZHMuYm90dG9tID0gMDtcbiAgICB9XG5cbiAgICBpZiAob3Bwb3NpdGVYQ291bnQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbmZpZy5ib3VuZHMudG9wID0gMDtcbiAgICB9XG5cbiAgICBpZiAobm9uT3Bwb3NpdGVZQ291bnQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbmZpZy5ib3VuZHMubGVmdCA9IDA7XG4gICAgfVxuXG4gICAgaWYgKG9wcG9zaXRlWUNvdW50Py5sZW5ndGggPiAxKSB7XG4gICAgICBjb25maWcuYm91bmRzLnJpZ2h0ID0gMDtcbiAgICB9XG5cbiAgICBjb25maWcudG9vbHRpcCA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIGRlZmF1bHRDaGFydENvbmZpZygpLnRvb2x0aXAsXG4gICAgICBjb25maWcudG9vbHRpcFxuICAgICk7XG5cbiAgICBjb25maWcuem9vbS5zeW5jQ2hhbm5lbCA9IGNvbmZpZy56b29tPy5zeW5jQ2hhbm5lbCA/PyBpZDtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICBwcml2YXRlIHNldFByZXBhcmF0aW9uRGF0YShjb25maWc6IElDaGFydENvbmZpZyk6IElDaGFydENvbmZpZyB7XG4gICAgaWYgKGNvbmZpZy5pbnZlcnRlZCkge1xuICAgICAgY29uc3QgeEF4ZXMgPSBbLi4uY29uZmlnLnhBeGlzXTtcbiAgICAgIGNvbnN0IHlBeGVzID0gWy4uLmNvbmZpZy55QXhpc107XG5cbiAgICAgIGNvbmZpZy54QXhpcyA9IHlBeGVzO1xuICAgICAgY29uZmlnLnlBeGlzID0geEF4ZXM7XG5cbiAgICAgIGNvbmZpZy5zZXJpZXMgPSBjb25maWcuc2VyaWVzPy5tYXAoKHNlcmllKSA9PiB7XG4gICAgICAgIGNvbnN0IHggPSBzZXJpZS54QXhpc0luZGV4O1xuICAgICAgICBjb25zdCB5ID0gc2VyaWUueUF4aXNJbmRleDtcbiAgICAgICAgc2VyaWUueEF4aXNJbmRleCA9IHk7XG4gICAgICAgIHNlcmllLnlBeGlzSW5kZXggPSB4O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnNlcmllLFxuICAgICAgICAgIGRhdGE6IHNlcmllPy5kYXRhPy5tYXAoKHBvaW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5wb2ludCxcbiAgICAgICAgICAgICAgeDogcG9pbnQ/LnksXG4gICAgICAgICAgICAgIHk6IHBvaW50Py54LFxuICAgICAgICAgICAgICB4MTogcG9pbnQ/LnkxLFxuICAgICAgICAgICAgICB5MTogcG9pbnQ/LngxLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjb25maWc/LmJydXNoPy5lbmFibGUpIHtcbiAgICAgIGNvbmZpZy55QXhpcyA9IGNvbmZpZy55QXhpcy5tYXAoKF8pID0+ICh7IC4uLl8sIHpvb206IGZhbHNlIH0pKTtcbiAgICAgIGNvbmZpZy54QXhpcyA9IGNvbmZpZy54QXhpcy5tYXAoKF8pID0+ICh7IC4uLl8sIHpvb206IGZhbHNlIH0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG59XG4iXX0=
|
|
@@ -32,7 +32,7 @@ export class ScaleService {
|
|
|
32
32
|
return map;
|
|
33
33
|
}), shareReplay({
|
|
34
34
|
bufferSize: 1,
|
|
35
|
-
refCount: true
|
|
35
|
+
refCount: true,
|
|
36
36
|
}));
|
|
37
37
|
this.yAxisMap = combineLatest([
|
|
38
38
|
this.chartService.size,
|
|
@@ -46,7 +46,7 @@ export class ScaleService {
|
|
|
46
46
|
return map;
|
|
47
47
|
}), shareReplay({
|
|
48
48
|
bufferSize: 1,
|
|
49
|
-
refCount: true
|
|
49
|
+
refCount: true,
|
|
50
50
|
}));
|
|
51
51
|
this.xScaleMap = combineLatest([
|
|
52
52
|
this.chartService.size,
|
|
@@ -70,7 +70,7 @@ export class ScaleService {
|
|
|
70
70
|
let scale = this.scaleMapping
|
|
71
71
|
.get(axis.options.scaleType.type)()
|
|
72
72
|
.domain(domain)
|
|
73
|
-
.range([0, finalWidth]);
|
|
73
|
+
.range([0, finalWidth - config.bounds.right]);
|
|
74
74
|
if (axis.options.niceTicks) {
|
|
75
75
|
scale.nice();
|
|
76
76
|
}
|
|
@@ -99,7 +99,7 @@ export class ScaleService {
|
|
|
99
99
|
return map;
|
|
100
100
|
}), shareReplay({
|
|
101
101
|
bufferSize: 1,
|
|
102
|
-
refCount: true
|
|
102
|
+
refCount: true,
|
|
103
103
|
}));
|
|
104
104
|
this.yScaleMap = combineLatest([
|
|
105
105
|
this.chartService.size,
|
|
@@ -114,7 +114,11 @@ export class ScaleService {
|
|
|
114
114
|
const bottom = [...xAxes.values()]
|
|
115
115
|
.filter((_) => _.options?.visible && _.options?.opposite !== true)
|
|
116
116
|
.reduce((acc, cur) => acc + cur.selfSize, 0);
|
|
117
|
-
const finalHeight = (size.height || 0) -
|
|
117
|
+
const finalHeight = (size.height || 0) -
|
|
118
|
+
top -
|
|
119
|
+
bottom -
|
|
120
|
+
config?.bounds?.top -
|
|
121
|
+
config.bounds?.bottom;
|
|
118
122
|
yAxes.forEach((axis) => {
|
|
119
123
|
let domain = axis.extremes;
|
|
120
124
|
if (axis.orientation === AxisOrientation.y) {
|
|
@@ -126,7 +130,7 @@ export class ScaleService {
|
|
|
126
130
|
const scale = this.scaleMapping
|
|
127
131
|
.get(axis.options.scaleType.type)()
|
|
128
132
|
.domain(domain)
|
|
129
|
-
.range([
|
|
133
|
+
.range([config.bounds.top, finalHeight]);
|
|
130
134
|
if (axis.options.niceTicks) {
|
|
131
135
|
scale.nice();
|
|
132
136
|
}
|
|
@@ -155,7 +159,7 @@ export class ScaleService {
|
|
|
155
159
|
return map;
|
|
156
160
|
}), shareReplay({
|
|
157
161
|
bufferSize: 1,
|
|
158
|
-
refCount: true
|
|
162
|
+
refCount: true,
|
|
159
163
|
}));
|
|
160
164
|
}
|
|
161
165
|
}
|
|
@@ -167,4 +171,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
|
|
|
167
171
|
providedIn: 'root',
|
|
168
172
|
}]
|
|
169
173
|
}], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i2.ZoomService }]; } });
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL3NjYWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUV6QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDdkMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBRy9ELE9BQU8sRUFDTCxhQUFhLEVBQ2IsR0FBRyxFQUVILFdBQVcsRUFDWCxjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUM7QUFHZCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFLbkQsTUFBTSxPQUFPLFlBQVk7SUFrQnZCLFlBQ1UsWUFBMEIsRUFDMUIsV0FBd0I7UUFEeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFiMUIsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztRQUNuRCxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO1FBRW5ELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQWtCO2FBQzdDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUM7YUFDckMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQzthQUNqQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDO2FBQ3hDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUM7YUFDL0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFD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QUN4RCxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUVyQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUN2RDthQUNGO1lBRUQsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQ0YsRUFDRCxXQUFXLENBQUM7WUFDVixVQUFVLEVBQUUsQ0FBQztZQUNiLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzt5R0FwT1UsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQge0QzWm9vbUV2ZW50LCBab29tVHJhbnNmb3JtfSBmcm9tICdkMyc7XG5pbXBvcnQge0F4aXN9IGZyb20gJy4uL2NvcmUvYXhpcy9heGlzJztcbmltcG9ydCB7QXhpc09yaWVudGF0aW9ufSBmcm9tICcuLi9tb2RlbC9lbnVtL2F4aXMtb3JpZW50YXRpb24nO1xuaW1wb3J0IHtJQ2hhcnRDb25maWd9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7Q2hhcnRTZXJ2aWNlfSBmcm9tICcuL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgY29tYmluZUxhdGVzdCxcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBzaGFyZVJlcGxheSxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtJQ2hhcnRFdmVudH0gZnJvbSAnLi4vbW9kZWwvaS1jaGFydC1ldmVudCc7XG5pbXBvcnQge1pvb21TZXJ2aWNlfSBmcm9tICcuL3pvb20uc2VydmljZSc7XG5pbXBvcnQge1NjYWxlVHlwZX0gZnJvbSAnLi4vbW9kZWwvZW51bS9zY2FsZS10eXBlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjYWxlU2VydmljZSB7XG4gIHB1YmxpYyB5QXhpc01hcDogT2JzZXJ2YWJsZTxNYXA8bnVtYmVyLCBBeGlzPj47XG4gIHB1YmxpYyB4QXhpc01hcDogT2JzZXJ2YWJsZTxNYXA8bnVtYmVyLCBBeGlzPj47XG5cbiAgcHVibGljIHlTY2FsZU1hcDogT2JzZXJ2YWJsZTxNYXA8bnVtYmVyLCBhbnk+PjtcbiAgcHVibGljIHhTY2FsZU1hcDogT2JzZXJ2YWJsZTxNYXA8bnVtYmVyLCBhbnk+PjtcblxuICBwcml2YXRlIHRyYW5zZm9ybUNhY2hlWCA9IG5ldyBNYXA8bnVtYmVyLCBab29tVHJhbnNmb3JtPigpO1xuICBwcml2YXRlIHRyYW5zZm9ybUNhY2hlWSA9IG5ldyBNYXA8bnVtYmVyLCBab29tVHJhbnNmb3JtPigpO1xuXG4gIHByaXZhdGUgc2NhbGVNYXBwaW5nID0gbmV3IE1hcDxTY2FsZVR5cGUsIGFueT4oKVxuICAgIC5zZXQoU2NhbGVUeXBlLmxpbmVhciwgZDMuc2NhbGVMaW5lYXIpXG4gICAgLnNldChTY2FsZVR5cGUudGltZSwgZDMuc2NhbGVUaW1lKVxuICAgIC5zZXQoU2NhbGVUeXBlLmNhdGVnb3J5LCBkMy5zY2FsZU9yZGluYWwpXG4gICAgLnNldChTY2FsZVR5cGUubG9nLCBkMy5zY2FsZUxvZylcbiAgICAuc2V0KFNjYWxlVHlwZS5wb3csIGQzLnNjYWxlUG93KVxuICAgIC5zZXQoU2NhbGVUeXBlLnNxcnQsIGQzLnNjYWxlU3FydCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFydFNlcnZpY2U6IENoYXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZVxuICApIHtcbiAgICB0aGlzLnhBeGlzTWFwID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5zaXplLFxuICAgICAgdGhpcy5jaGFydFNlcnZpY2UuY29uZmlnLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKGRhdGE6IFtET01SZWN0UmVhZE9ubHksIElDaGFydENvbmZpZ10pID0+IHtcbiAgICAgICAgY29uc3QgWywgY29uZmlnXSA9IGRhdGE7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8bnVtYmVyLCBBeGlzPigpO1xuICAgICAgICBjb25maWcueEF4aXMubWFwKChfLCBpbmRleCkgPT4ge1xuICAgICAgICAgIG1hcC5zZXQoaW5kZXgsIEF4aXMuY3JlYXRlQXhpcyhBeGlzT3JpZW50YXRpb24ueCwgY29uZmlnLCBpbmRleCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoe1xuICAgICAgICBidWZmZXJTaXplOiAxLFxuICAgICAgICByZWZDb3VudDogdHJ1ZVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy55QXhpc01hcCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGFydFNlcnZpY2Uuc2l6ZSxcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLmNvbmZpZyxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBbRE9NUmVjdFJlYWRPbmx5LCBJQ2hhcnRDb25maWddKSA9PiB7XG4gICAgICAgIGNvbnN0IFssIGNvbmZpZ10gPSBkYXRhO1xuICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwPG51bWJlciwgQXhpcz4oKTtcbiAgICAgICAgY29uZmlnLnlBeGlzLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICBtYXAuc2V0KGluZGV4LCBBeGlzLmNyZWF0ZUF4aXMoQXhpc09yaWVudGF0aW9uLnksIGNvbmZpZywgaW5kZXgpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoe1xuICAgICAgICBidWZmZXJTaXplOiAxLFxuICAgICAgICByZWZDb3VudDogdHJ1ZVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy54U2NhbGVNYXAgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLnNpemUsXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5jb25maWcsXG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLnpvb21lZCxcbiAgICBdKS5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy55QXhpc01hcCwgdGhpcy54QXhpc01hcCksXG4gICAgICBtYXAoXG4gICAgICAgIChcbiAgICAgICAgICBkYXRhOiBbXG4gICAgICAgICAgICBbRE9NUmVjdFJlYWRPbmx5LCBJQ2hhcnRDb25maWcsIElDaGFydEV2ZW50PEF4aXM+XSxcbiAgICAgICAgICAgIE1hcDxudW1iZXIsIEF4aXM+LFxuICAgICAgICAgICAgTWFwPG51bWJlciwgQXhpcz5cbiAgICAgICAgICBdXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtbc2l6ZSwgY29uZmlnLCB6b29tXSwgeUF4ZXMsIHhBeGVzXSA9IGRhdGE7XG5cbiAgICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwPG51bWJlciwgYW55PigpO1xuXG4gICAgICAgICAgY29uc3QgbGVmdCA9IFsuLi55QXhlcy52YWx1ZXMoKV1cbiAgICAgICAgICAgIC5maWx0ZXIoKF8pID0+IF8ub3B0aW9ucz8udmlzaWJsZSAmJiBfLm9wdGlvbnM/Lm9wcG9zaXRlKVxuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBjdXIpID0+IGFjYyArIGN1ci5zZWxmU2l6ZSwgMCk7XG5cbiAgICAgICAgICBjb25zdCByaWdodCA9IFsuLi55QXhlcy52YWx1ZXMoKV1cbiAgICAgICAgICAgIC5maWx0ZXIoKF8pID0+IF8ub3B0aW9ucz8udmlzaWJsZSAmJiBfLm9wdGlvbnM/Lm9wcG9zaXRlICE9PSB0cnVlKVxuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBjdXIpID0+IGFjYyArIGN1ci5zZWxmU2l6ZSwgMCk7XG5cbiAgICAgICAgICBjb25zdCBmaW5hbFdpZHRoID0gKHNpemUud2lkdGggfHwgMCkgLSBsZWZ0IC0gcmlnaHQ7XG5cbiAgICAgICAgICB4QXhlcy5mb3JFYWNoKChheGlzKSA9PiB7XG4gICAgICAgICAgICBsZXQgZG9tYWluID0gYXhpcy5leHRyZW1lcztcblxuICAgICAgICAgICAgaWYgKGF4aXM/Lm9wdGlvbnMuaW52ZXJ0ZWQpIHtcbiAgICAgICAgICAgICAgZG9tYWluID0gWy4uLmF4aXMuZXh0cmVtZXNdLnJldmVyc2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHNjYWxlID0gdGhpcy5zY2FsZU1hcHBpbmdcbiAgICAgICAgICAgICAgLmdldChheGlzLm9wdGlvbnMuc2NhbGVUeXBlLnR5cGUpKClcbiAgICAgICAgICAgICAgLmRvbWFpbihkb21haW4pXG4gICAgICAgICAgICAgIC5yYW5nZShbMCwgZmluYWxXaWR0aF0pO1xuXG4gICAgICAgICAgICBpZiAoYXhpcy5vcHRpb25zLm5pY2VUaWNrcykge1xuICAgICAgICAgICAgICBzY2FsZS5uaWNlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChheGlzLm9wdGlvbnMuc2NhbGVUeXBlLnR5cGUgPT09IFNjYWxlVHlwZS5sb2cpIHtcbiAgICAgICAgICAgICAgc2NhbGUuYmFzZShheGlzLm9wdGlvbnMuc2NhbGVUeXBlLmJhc2UpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtYXAuc2V0KGF4aXMuaW5kZXgsIHNjYWxlKTtcblxuICAgICAgICAgICAgY29uc3QgaGFzQ2FjaGUgPSB0aGlzLnRyYW5zZm9ybUNhY2hlWC5oYXMoYXhpcy5pbmRleCk7XG4gICAgICAgICAgICBjb25zdCBzaG91bGRSZXN0b3JlID1cbiAgICAgICAgICAgICAgem9vbT8udGFyZ2V0Py5vcmllbnRhdGlvbiAhPT0gQXhpc09yaWVudGF0aW9uLnggfHxcbiAgICAgICAgICAgICAgem9vbS50YXJnZXQ/LmluZGV4ICE9PSBheGlzLmluZGV4O1xuXG4gICAgICAgICAgICBpZiAoaGFzQ2FjaGUgJiYgc2hvdWxkUmVzdG9yZSkge1xuICAgICAgICAgICAgICBjb25zdCByZXN0b3JlZFRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtQ2FjaGVYLmdldChheGlzLmluZGV4KTtcbiAgICAgICAgICAgICAgbWFwLnNldChheGlzLmluZGV4LCByZXN0b3JlZFRyYW5zZm9ybS5yZXNjYWxlWChzY2FsZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHpvb20pIHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gem9vbS5ldmVudCBhcyBEM1pvb21FdmVudDxhbnksIGFueT47XG5cbiAgICAgICAgICAgIGlmICh6b29tLnRhcmdldD8ub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTY2FsZSA9IG1hcC5nZXQoem9vbS50YXJnZXQuaW5kZXgpO1xuICAgICAgICAgICAgICBjb25zdCByZXNjYWxlZCA9IGV2ZW50LnRyYW5zZm9ybS5yZXNjYWxlWChjdXJyZW50U2NhbGUpO1xuICAgICAgICAgICAgICBtYXAuc2V0KHpvb20udGFyZ2V0LmluZGV4LCByZXNjYWxlZCk7XG5cbiAgICAgICAgICAgICAgY29uc3QgYXhpcyA9IHhBeGVzLmdldCh6b29tLnRhcmdldC5pbmRleCk7XG4gICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FjaGVYLnNldChheGlzLmluZGV4LCBldmVudC50cmFuc2Zvcm0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbWFwO1xuICAgICAgICB9XG4gICAgICApLFxuICAgICAgc2hhcmVSZXBsYXkoe1xuICAgICAgICBidWZmZXJTaXplOiAxLFxuICAgICAgICByZWZDb3VudDogdHJ1ZVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy55U2NhbGVNYXAgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLnNpemUsXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5jb25maWcsXG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLnpvb21lZCxcbiAgICBdKS5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy55QXhpc01hcCwgdGhpcy54QXhpc01hcCksXG4gICAgICBtYXAoXG4gICAgICAgIChcbiAgICAgICAgICBkYXRhOiBbXG4gICAgICAgICAgICBbRE9NUmVjdFJlYWRPbmx5LCBJQ2hhcnRDb25maWcsIElDaGFydEV2ZW50PEF4aXM+XSxcbiAgICAgICAgICAgIE1hcDxudW1iZXIsIEF4aXM+LFxuICAgICAgICAgICAgTWFwPG51bWJlciwgQXhpcz5cbiAgICAgICAgICBdXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtbc2l6ZSwgY29uZmlnLCB6b29tXSwgeUF4ZXMsIHhBeGVzXSA9IGRhdGE7XG5cbiAgICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwPG51bWJlciwgYW55PigpO1xuXG4gICAgICAgICAgY29uc3QgdG9wID0gWy4uLnhBeGVzLnZhbHVlcygpXVxuICAgICAgICAgICAgLmZpbHRlcigoXykgPT4gXy5vcHRpb25zPy52aXNpYmxlICYmIF8ub3B0aW9ucz8ub3Bwb3NpdGUpXG4gICAgICAgICAgICAucmVkdWNlKChhY2MsIGN1cikgPT4gYWNjICsgY3VyLnNlbGZTaXplLCAwKTtcblxuICAgICAgICAgIGNvbnN0IGJvdHRvbSA9IFsuLi54QXhlcy52YWx1ZXMoKV1cbiAgICAgICAgICAgIC5maWx0ZXIoKF8pID0+IF8ub3B0aW9ucz8udmlzaWJsZSAmJiBfLm9wdGlvbnM/Lm9wcG9zaXRlICE9PSB0cnVlKVxuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBjdXIpID0+IGFjYyArIGN1ci5zZWxmU2l6ZSwgMCk7XG5cbiAgICAgICAgICBjb25zdCBmaW5hbEhlaWdodCA9IChzaXplLmhlaWdodCB8fCAwKSAtIHRvcCAtIGJvdHRvbTtcblxuICAgICAgICAgIHlBeGVzLmZvckVhY2goKGF4aXMpID0+IHtcbiAgICAgICAgICAgIGxldCBkb21haW4gPSBheGlzLmV4dHJlbWVzO1xuXG4gICAgICAgICAgICBpZiAoYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkpIHtcbiAgICAgICAgICAgICAgZG9tYWluID0gWy4uLmF4aXMuZXh0cmVtZXNdLnJldmVyc2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGF4aXM/Lm9wdGlvbnMuaW52ZXJ0ZWQpIHtcbiAgICAgICAgICAgICAgZG9tYWluID0gZG9tYWluLnJldmVyc2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2NhbGUgPSB0aGlzLnNjYWxlTWFwcGluZ1xuICAgICAgICAgICAgICAuZ2V0KGF4aXMub3B0aW9ucy5zY2FsZVR5cGUudHlwZSkoKVxuICAgICAgICAgICAgICAuZG9tYWluKGRvbWFpbilcbiAgICAgICAgICAgICAgLnJhbmdlKFswLCBmaW5hbEhlaWdodF0pO1xuXG4gICAgICAgICAgICBpZiAoYXhpcy5vcHRpb25zLm5pY2VUaWNrcykge1xuICAgICAgICAgICAgICBzY2FsZS5uaWNlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChheGlzLm9wdGlvbnMuc2NhbGVUeXBlLnR5cGUgPT09IFNjYWxlVHlwZS5sb2cpIHtcbiAgICAgICAgICAgICAgc2NhbGUuYmFzZShheGlzLm9wdGlvbnMuc2NhbGVUeXBlLmJhc2UpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtYXAuc2V0KGF4aXMuaW5kZXgsIHNjYWxlKTtcblxuICAgICAgICAgICAgY29uc3QgaGFzQ2FjaGUgPSB0aGlzLnRyYW5zZm9ybUNhY2hlWS5oYXMoYXhpcy5pbmRleCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHNob3VsZFJlc3RvcmUgPVxuICAgICAgICAgICAgICB6b29tPy50YXJnZXQ/Lm9yaWVudGF0aW9uICE9PSBBeGlzT3JpZW50YXRpb24ueSB8fFxuICAgICAgICAgICAgICB6b29tLnRhcmdldD8uaW5kZXggIT09IGF4aXMuaW5kZXg7XG5cbiAgICAgICAgICAgIGlmIChoYXNDYWNoZSAmJiBzaG91bGRSZXN0b3JlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3RvcmVkVHJhbnNmb3JtID0gdGhpcy50cmFuc2Zvcm1DYWNoZVkuZ2V0KGF4aXMuaW5kZXgpO1xuICAgICAgICAgICAgICBtYXAuc2V0KGF4aXMuaW5kZXgsIHJlc3RvcmVkVHJhbnNmb3JtLnJlc2NhbGVZKHNjYWxlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoem9vbSkge1xuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSB6b29tLmV2ZW50IGFzIEQzWm9vbUV2ZW50PGFueSwgYW55PjtcblxuICAgICAgICAgICAgaWYgKHpvb20udGFyZ2V0Py5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkpIHtcbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNjYWxlID0gbWFwLmdldCh6b29tLnRhcmdldC5pbmRleCk7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc2NhbGVkID0gZXZlbnQudHJhbnNmb3JtLnJlc2NhbGVZKGN1cnJlbnRTY2FsZSk7XG4gICAgICAgICAgICAgIG1hcC5zZXQoem9vbS50YXJnZXQuaW5kZXgsIHJlc2NhbGVkKTtcblxuICAgICAgICAgICAgICBjb25zdCBheGlzID0geUF4ZXMuZ2V0KHpvb20udGFyZ2V0LmluZGV4KTtcbiAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1DYWNoZVkuc2V0KGF4aXMuaW5kZXgsIGV2ZW50LnRyYW5zZm9ybSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIHNoYXJlUmVwbGF5KHtcbiAgICAgICAgYnVmZmVyU2l6ZTogMSxcbiAgICAgICAgcmVmQ291bnQ6IHRydWVcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL3NjYWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUV6QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2pFLE9BQU8sRUFDTCxhQUFhLEVBQ2IsR0FBRyxFQUVILFdBQVcsRUFDWCxjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUM7QUFHZCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFLckQsTUFBTSxPQUFPLFlBQVk7SUFrQnZCLFlBQ1UsWUFBMEIsRUFDMUIsV0FBd0I7UUFEeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFiMUIsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztRQUNuRCxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO1FBRW5ELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQWtCO2FBQzdDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUM7YUFDckMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQzthQUNqQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDO2FBQ3hDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUM7YUFDL0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFD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QyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDaEQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3hELEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBRXJDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3ZEO2FBQ0Y7WUFFRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FDRixFQUNELFdBQVcsQ0FBQztZQUNWLFVBQVUsRUFBRSxDQUFDO1lBQ2IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O3lHQXpPVSxZQUFZOzZHQUFaLFlBQVksY0FGWCxNQUFNOzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHsgRDNab29tRXZlbnQsIFpvb21UcmFuc2Zvcm0gfSBmcm9tICdkMyc7XG5pbXBvcnQgeyBBeGlzIH0gZnJvbSAnLi4vY29yZS9heGlzL2F4aXMnO1xuaW1wb3J0IHsgQXhpc09yaWVudGF0aW9uIH0gZnJvbSAnLi4vbW9kZWwvZW51bS9heGlzLW9yaWVudGF0aW9uJztcbmltcG9ydCB7IElDaGFydENvbmZpZyB9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7IENoYXJ0U2VydmljZSB9IGZyb20gJy4vY2hhcnQuc2VydmljZSc7XG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIHNoYXJlUmVwbGF5LFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJQ2hhcnRFdmVudCB9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtZXZlbnQnO1xuaW1wb3J0IHsgWm9vbVNlcnZpY2UgfSBmcm9tICcuL3pvb20uc2VydmljZSc7XG5pbXBvcnQgeyBTY2FsZVR5cGUgfSBmcm9tICcuLi9tb2RlbC9lbnVtL3NjYWxlLXR5cGUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NhbGVTZXJ2aWNlIHtcbiAgcHVibGljIHlBeGlzTWFwOiBPYnNlcnZhYmxlPE1hcDxudW1iZXIsIEF4aXM+PjtcbiAgcHVibGljIHhBeGlzTWFwOiBPYnNlcnZhYmxlPE1hcDxudW1iZXIsIEF4aXM+PjtcblxuICBwdWJsaWMgeVNjYWxlTWFwOiBPYnNlcnZhYmxlPE1hcDxudW1iZXIsIGFueT4+O1xuICBwdWJsaWMgeFNjYWxlTWFwOiBPYnNlcnZhYmxlPE1hcDxudW1iZXIsIGFueT4+O1xuXG4gIHByaXZhdGUgdHJhbnNmb3JtQ2FjaGVYID0gbmV3IE1hcDxudW1iZXIsIFpvb21UcmFuc2Zvcm0+KCk7XG4gIHByaXZhdGUgdHJhbnNmb3JtQ2FjaGVZID0gbmV3IE1hcDxudW1iZXIsIFpvb21UcmFuc2Zvcm0+KCk7XG5cbiAgcHJpdmF0ZSBzY2FsZU1hcHBpbmcgPSBuZXcgTWFwPFNjYWxlVHlwZSwgYW55PigpXG4gICAgLnNldChTY2FsZVR5cGUubGluZWFyLCBkMy5zY2FsZUxpbmVhcilcbiAgICAuc2V0KFNjYWxlVHlwZS50aW1lLCBkMy5zY2FsZVRpbWUpXG4gICAgLnNldChTY2FsZVR5cGUuY2F0ZWdvcnksIGQzLnNjYWxlT3JkaW5hbClcbiAgICAuc2V0KFNjYWxlVHlwZS5sb2csIGQzLnNjYWxlTG9nKVxuICAgIC5zZXQoU2NhbGVUeXBlLnBvdywgZDMuc2NhbGVQb3cpXG4gICAgLnNldChTY2FsZVR5cGUuc3FydCwgZDMuc2NhbGVTcXJ0KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYXJ0U2VydmljZTogQ2hhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgem9vbVNlcnZpY2U6IFpvb21TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMueEF4aXNNYXAgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLnNpemUsXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5jb25maWcsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoZGF0YTogW0RPTVJlY3RSZWFkT25seSwgSUNoYXJ0Q29uZmlnXSkgPT4ge1xuICAgICAgICBjb25zdCBbLCBjb25maWddID0gZGF0YTtcbiAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxudW1iZXIsIEF4aXM+KCk7XG4gICAgICAgIGNvbmZpZy54QXhpcy5tYXAoKF8sIGluZGV4KSA9PiB7XG4gICAgICAgICAgbWFwLnNldChpbmRleCwgQXhpcy5jcmVhdGVBeGlzKEF4aXNPcmllbnRhdGlvbi54LCBjb25maWcsIGluZGV4KSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbWFwO1xuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSh7XG4gICAgICAgIGJ1ZmZlclNpemU6IDEsXG4gICAgICAgIHJlZkNvdW50OiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy55QXhpc01hcCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGFydFNlcnZpY2Uuc2l6ZSxcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLmNvbmZpZyxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBbRE9NUmVjdFJlYWRPbmx5LCBJQ2hhcnRDb25maWddKSA9PiB7XG4gICAgICAgIGNvbnN0IFssIGNvbmZpZ10gPSBkYXRhO1xuICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwPG51bWJlciwgQXhpcz4oKTtcbiAgICAgICAgY29uZmlnLnlBeGlzLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICBtYXAuc2V0KGluZGV4LCBBeGlzLmNyZWF0ZUF4aXMoQXhpc09yaWVudGF0aW9uLnksIGNvbmZpZywgaW5kZXgpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoe1xuICAgICAgICBidWZmZXJTaXplOiAxLFxuICAgICAgICByZWZDb3VudDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMueFNjYWxlTWFwID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5zaXplLFxuICAgICAgdGhpcy5jaGFydFNlcnZpY2UuY29uZmlnLFxuICAgICAgdGhpcy56b29tU2VydmljZS56b29tZWQsXG4gICAgXSkucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMueUF4aXNNYXAsIHRoaXMueEF4aXNNYXApLFxuICAgICAgbWFwKFxuICAgICAgICAoXG4gICAgICAgICAgZGF0YTogW1xuICAgICAgICAgICAgW0RPTVJlY3RSZWFkT25seSwgSUNoYXJ0Q29uZmlnLCBJQ2hhcnRFdmVudDxBeGlzPl0sXG4gICAgICAgICAgICBNYXA8bnVtYmVyLCBBeGlzPixcbiAgICAgICAgICAgIE1hcDxudW1iZXIsIEF4aXM+XG4gICAgICAgICAgXVxuICAgICAgICApID0+IHtcbiAgICAgICAgICBjb25zdCBbW3NpemUsIGNvbmZpZywgem9vbV0sIHlBeGVzLCB4QXhlc10gPSBkYXRhO1xuXG4gICAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxudW1iZXIsIGFueT4oKTtcblxuICAgICAgICAgIGNvbnN0IGxlZnQgPSBbLi4ueUF4ZXMudmFsdWVzKCldXG4gICAgICAgICAgICAuZmlsdGVyKChfKSA9PiBfLm9wdGlvbnM/LnZpc2libGUgJiYgXy5vcHRpb25zPy5vcHBvc2l0ZSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY3VyKSA9PiBhY2MgKyBjdXIuc2VsZlNpemUsIDApO1xuXG4gICAgICAgICAgY29uc3QgcmlnaHQgPSBbLi4ueUF4ZXMudmFsdWVzKCldXG4gICAgICAgICAgICAuZmlsdGVyKChfKSA9PiBfLm9wdGlvbnM/LnZpc2libGUgJiYgXy5vcHRpb25zPy5vcHBvc2l0ZSAhPT0gdHJ1ZSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY3VyKSA9PiBhY2MgKyBjdXIuc2VsZlNpemUsIDApO1xuXG4gICAgICAgICAgY29uc3QgZmluYWxXaWR0aCA9IChzaXplLndpZHRoIHx8IDApIC0gbGVmdCAtIHJpZ2h0O1xuXG4gICAgICAgICAgeEF4ZXMuZm9yRWFjaCgoYXhpcykgPT4ge1xuICAgICAgICAgICAgbGV0IGRvbWFpbiA9IGF4aXMuZXh0cmVtZXM7XG5cbiAgICAgICAgICAgIGlmIChheGlzPy5vcHRpb25zLmludmVydGVkKSB7XG4gICAgICAgICAgICAgIGRvbWFpbiA9IFsuLi5heGlzLmV4dHJlbWVzXS5yZXZlcnNlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBzY2FsZSA9IHRoaXMuc2NhbGVNYXBwaW5nXG4gICAgICAgICAgICAgIC5nZXQoYXhpcy5vcHRpb25zLnNjYWxlVHlwZS50eXBlKSgpXG4gICAgICAgICAgICAgIC5kb21haW4oZG9tYWluKVxuICAgICAgICAgICAgICAucmFuZ2UoWzAsIGZpbmFsV2lkdGggLSBjb25maWcuYm91bmRzLnJpZ2h0XSk7XG5cbiAgICAgICAgICAgIGlmIChheGlzLm9wdGlvbnMubmljZVRpY2tzKSB7XG4gICAgICAgICAgICAgIHNjYWxlLm5pY2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGF4aXMub3B0aW9ucy5zY2FsZVR5cGUudHlwZSA9PT0gU2NhbGVUeXBlLmxvZykge1xuICAgICAgICAgICAgICBzY2FsZS5iYXNlKGF4aXMub3B0aW9ucy5zY2FsZVR5cGUuYmFzZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1hcC5zZXQoYXhpcy5pbmRleCwgc2NhbGUpO1xuXG4gICAgICAgICAgICBjb25zdCBoYXNDYWNoZSA9IHRoaXMudHJhbnNmb3JtQ2FjaGVYLmhhcyhheGlzLmluZGV4KTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZFJlc3RvcmUgPVxuICAgICAgICAgICAgICB6b29tPy50YXJnZXQ/Lm9yaWVudGF0aW9uICE9PSBBeGlzT3JpZW50YXRpb24ueCB8fFxuICAgICAgICAgICAgICB6b29tLnRhcmdldD8uaW5kZXggIT09IGF4aXMuaW5kZXg7XG5cbiAgICAgICAgICAgIGlmIChoYXNDYWNoZSAmJiBzaG91bGRSZXN0b3JlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3RvcmVkVHJhbnNmb3JtID0gdGhpcy50cmFuc2Zvcm1DYWNoZVguZ2V0KGF4aXMuaW5kZXgpO1xuICAgICAgICAgICAgICBtYXAuc2V0KGF4aXMuaW5kZXgsIHJlc3RvcmVkVHJhbnNmb3JtLnJlc2NhbGVYKHNjYWxlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoem9vbSkge1xuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSB6b29tLmV2ZW50IGFzIEQzWm9vbUV2ZW50PGFueSwgYW55PjtcblxuICAgICAgICAgICAgaWYgKHpvb20udGFyZ2V0Py5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLngpIHtcbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNjYWxlID0gbWFwLmdldCh6b29tLnRhcmdldC5pbmRleCk7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc2NhbGVkID0gZXZlbnQudHJhbnNmb3JtLnJlc2NhbGVYKGN1cnJlbnRTY2FsZSk7XG4gICAgICAgICAgICAgIG1hcC5zZXQoem9vbS50YXJnZXQuaW5kZXgsIHJlc2NhbGVkKTtcblxuICAgICAgICAgICAgICBjb25zdCBheGlzID0geEF4ZXMuZ2V0KHpvb20udGFyZ2V0LmluZGV4KTtcbiAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1DYWNoZVguc2V0KGF4aXMuaW5kZXgsIGV2ZW50LnRyYW5zZm9ybSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtYXA7XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBzaGFyZVJlcGxheSh7XG4gICAgICAgIGJ1ZmZlclNpemU6IDEsXG4gICAgICAgIHJlZkNvdW50OiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy55U2NhbGVNYXAgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLnNpemUsXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5jb25maWcsXG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLnpvb21lZCxcbiAgICBdKS5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy55QXhpc01hcCwgdGhpcy54QXhpc01hcCksXG4gICAgICBtYXAoXG4gICAgICAgIChcbiAgICAgICAgICBkYXRhOiBbXG4gICAgICAgICAgICBbRE9NUmVjdFJlYWRPbmx5LCBJQ2hhcnRDb25maWcsIElDaGFydEV2ZW50PEF4aXM+XSxcbiAgICAgICAgICAgIE1hcDxudW1iZXIsIEF4aXM+LFxuICAgICAgICAgICAgTWFwPG51bWJlciwgQXhpcz5cbiAgICAgICAgICBdXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtbc2l6ZSwgY29uZmlnLCB6b29tXSwgeUF4ZXMsIHhBeGVzXSA9IGRhdGE7XG5cbiAgICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwPG51bWJlciwgYW55PigpO1xuXG4gICAgICAgICAgY29uc3QgdG9wID0gWy4uLnhBeGVzLnZhbHVlcygpXVxuICAgICAgICAgICAgLmZpbHRlcigoXykgPT4gXy5vcHRpb25zPy52aXNpYmxlICYmIF8ub3B0aW9ucz8ub3Bwb3NpdGUpXG4gICAgICAgICAgICAucmVkdWNlKChhY2MsIGN1cikgPT4gYWNjICsgY3VyLnNlbGZTaXplLCAwKTtcblxuICAgICAgICAgIGNvbnN0IGJvdHRvbSA9IFsuLi54QXhlcy52YWx1ZXMoKV1cbiAgICAgICAgICAgIC5maWx0ZXIoKF8pID0+IF8ub3B0aW9ucz8udmlzaWJsZSAmJiBfLm9wdGlvbnM/Lm9wcG9zaXRlICE9PSB0cnVlKVxuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBjdXIpID0+IGFjYyArIGN1ci5zZWxmU2l6ZSwgMCk7XG5cbiAgICAgICAgICBjb25zdCBmaW5hbEhlaWdodCA9XG4gICAgICAgICAgICAoc2l6ZS5oZWlnaHQgfHwgMCkgLVxuICAgICAgICAgICAgdG9wIC1cbiAgICAgICAgICAgIGJvdHRvbSAtXG4gICAgICAgICAgICBjb25maWc/LmJvdW5kcz8udG9wIC1cbiAgICAgICAgICAgIGNvbmZpZy5ib3VuZHM/LmJvdHRvbTtcblxuICAgICAgICAgIHlBeGVzLmZvckVhY2goKGF4aXMpID0+IHtcbiAgICAgICAgICAgIGxldCBkb21haW4gPSBheGlzLmV4dHJlbWVzO1xuXG4gICAgICAgICAgICBpZiAoYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkpIHtcbiAgICAgICAgICAgICAgZG9tYWluID0gWy4uLmF4aXMuZXh0cmVtZXNdLnJldmVyc2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGF4aXM/Lm9wdGlvbnMuaW52ZXJ0ZWQpIHtcbiAgICAgICAgICAgICAgZG9tYWluID0gZG9tYWluLnJldmVyc2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2NhbGUgPSB0aGlzLnNjYWxlTWFwcGluZ1xuICAgICAgICAgICAgICAuZ2V0KGF4aXMub3B0aW9ucy5zY2FsZVR5cGUudHlwZSkoKVxuICAgICAgICAgICAgICAuZG9tYWluKGRvbWFpbilcbiAgICAgICAgICAgICAgLnJhbmdlKFtjb25maWcuYm91bmRzLnRvcCwgZmluYWxIZWlnaHRdKTtcblxuICAgICAgICAgICAgaWYgKGF4aXMub3B0aW9ucy5uaWNlVGlja3MpIHtcbiAgICAgICAgICAgICAgc2NhbGUubmljZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoYXhpcy5vcHRpb25zLnNjYWxlVHlwZS50eXBlID09PSBTY2FsZVR5cGUubG9nKSB7XG4gICAgICAgICAgICAgIHNjYWxlLmJhc2UoYXhpcy5vcHRpb25zLnNjYWxlVHlwZS5iYXNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWFwLnNldChheGlzLmluZGV4LCBzY2FsZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhc0NhY2hlID0gdGhpcy50cmFuc2Zvcm1DYWNoZVkuaGFzKGF4aXMuaW5kZXgpO1xuXG4gICAgICAgICAgICBjb25zdCBzaG91bGRSZXN0b3JlID1cbiAgICAgICAgICAgICAgem9vbT8udGFyZ2V0Py5vcmllbnRhdGlvbiAhPT0gQXhpc09yaWVudGF0aW9uLnkgfHxcbiAgICAgICAgICAgICAgem9vbS50YXJnZXQ/LmluZGV4ICE9PSBheGlzLmluZGV4O1xuXG4gICAgICAgICAgICBpZiAoaGFzQ2FjaGUgJiYgc2hvdWxkUmVzdG9yZSkge1xuICAgICAgICAgICAgICBjb25zdCByZXN0b3JlZFRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtQ2FjaGVZLmdldChheGlzLmluZGV4KTtcbiAgICAgICAgICAgICAgbWFwLnNldChheGlzLmluZGV4LCByZXN0b3JlZFRyYW5zZm9ybS5yZXNjYWxlWShzY2FsZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHpvb20pIHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gem9vbS5ldmVudCBhcyBEM1pvb21FdmVudDxhbnksIGFueT47XG5cbiAgICAgICAgICAgIGlmICh6b29tLnRhcmdldD8ub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTY2FsZSA9IG1hcC5nZXQoem9vbS50YXJnZXQuaW5kZXgpO1xuICAgICAgICAgICAgICBjb25zdCByZXNjYWxlZCA9IGV2ZW50LnRyYW5zZm9ybS5yZXNjYWxlWShjdXJyZW50U2NhbGUpO1xuICAgICAgICAgICAgICBtYXAuc2V0KHpvb20udGFyZ2V0LmluZGV4LCByZXNjYWxlZCk7XG5cbiAgICAgICAgICAgICAgY29uc3QgYXhpcyA9IHlBeGVzLmdldCh6b29tLnRhcmdldC5pbmRleCk7XG4gICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FjaGVZLnNldChheGlzLmluZGV4LCBldmVudC50cmFuc2Zvcm0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBtYXA7XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBzaGFyZVJlcGxheSh7XG4gICAgICAgIGJ1ZmZlclNpemU6IDEsXG4gICAgICAgIHJlZkNvdW50OiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -20,14 +20,14 @@ var ZoomType;
|
|
|
20
20
|
|
|
21
21
|
class ChartBounds {
|
|
22
22
|
constructor(options) {
|
|
23
|
-
this.top =
|
|
24
|
-
this.right =
|
|
23
|
+
this.top = 0;
|
|
24
|
+
this.right = 0;
|
|
25
25
|
this.bottom = 0;
|
|
26
26
|
this.left = 0;
|
|
27
|
-
this.top = (options === null || options === void 0 ? void 0 : options.top) ||
|
|
28
|
-
this.right = (options === null || options === void 0 ? void 0 : options.right) ||
|
|
29
|
-
this.bottom = (options === null || options === void 0 ? void 0 : options.bottom) ||
|
|
30
|
-
this.left = (options === null || options === void 0 ? void 0 : options.left) ||
|
|
27
|
+
this.top = (options === null || options === void 0 ? void 0 : options.top) || 0;
|
|
28
|
+
this.right = (options === null || options === void 0 ? void 0 : options.right) || 0;
|
|
29
|
+
this.bottom = (options === null || options === void 0 ? void 0 : options.bottom) || 0;
|
|
30
|
+
this.left = (options === null || options === void 0 ? void 0 : options.left) || 0;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -133,11 +133,9 @@ class ChartService {
|
|
|
133
133
|
this.annotationEvent$ = new Subject();
|
|
134
134
|
this.annotationMove$ = new Subject();
|
|
135
135
|
this.id = of((Date.now() + Math.random()).toString(36));
|
|
136
|
-
this.config = this.config
|
|
137
|
-
.asObservable()
|
|
138
|
-
.pipe(withLatestFrom(this.id), map(this.setDefaults), map(this.setPreparationData), shareReplay({
|
|
136
|
+
this.config = this.config$.asObservable().pipe(withLatestFrom(this.id), map(this.setDefaults), map(this.setPreparationData), shareReplay({
|
|
139
137
|
bufferSize: 1,
|
|
140
|
-
refCount: true
|
|
138
|
+
refCount: true,
|
|
141
139
|
}));
|
|
142
140
|
this.size = this.size$.asObservable();
|
|
143
141
|
this.pointerMove = this.pointerMove$.asObservable();
|
|
@@ -147,8 +145,12 @@ class ChartService {
|
|
|
147
145
|
this.pointMove = this.pointMove$.asObservable();
|
|
148
146
|
this.chartClick = this.chartClick$.asObservable();
|
|
149
147
|
this.chartContextMenu = this.chartContextMenu$.asObservable();
|
|
150
|
-
this.annotationClick = this.annotationEvent
|
|
151
|
-
|
|
148
|
+
this.annotationClick = this.annotationEvent$
|
|
149
|
+
.asObservable()
|
|
150
|
+
.pipe(filter((_) => { var _a; return ((_a = _ === null || _ === void 0 ? void 0 : _.event) === null || _a === void 0 ? void 0 : _a.type) === 'click'; }));
|
|
151
|
+
this.annotationContextMenu = this.annotationEvent$
|
|
152
|
+
.asObservable()
|
|
153
|
+
.pipe(filter((_) => { var _a; return ((_a = _ === null || _ === void 0 ? void 0 : _.event) === null || _a === void 0 ? void 0 : _a.type) === 'contextmenu'; }));
|
|
152
154
|
this.annotationMove = this.annotationMove$.asObservable();
|
|
153
155
|
this.plotBandClick = this.plotBandEvent$
|
|
154
156
|
.asObservable()
|
|
@@ -202,7 +204,7 @@ class ChartService {
|
|
|
202
204
|
this.chartContextMenu$.next(event);
|
|
203
205
|
}
|
|
204
206
|
setDefaults(data) {
|
|
205
|
-
var _a, _b;
|
|
207
|
+
var _a, _b, _c, _d, _e, _f;
|
|
206
208
|
let [config, id] = data;
|
|
207
209
|
const defaultConfig = (defaultConfig) => {
|
|
208
210
|
return (source) => {
|
|
@@ -218,8 +220,24 @@ class ChartService {
|
|
|
218
220
|
var _a;
|
|
219
221
|
return Object.assign(Object.assign({}, _), { id: (_a = _.id) !== null && _a !== void 0 ? _a : index });
|
|
220
222
|
});
|
|
223
|
+
const oppositeYCount = (_a = config.yAxis) === null || _a === void 0 ? void 0 : _a.filter((_) => _.opposite);
|
|
224
|
+
const oppositeXCount = (_b = config.xAxis) === null || _b === void 0 ? void 0 : _b.filter((_) => _.opposite);
|
|
225
|
+
const nonOppositeYCount = (_c = config.yAxis) === null || _c === void 0 ? void 0 : _c.filter((_) => !_.opposite);
|
|
226
|
+
const nonOppositeXCount = (_d = config.xAxis) === null || _d === void 0 ? void 0 : _d.filter((_) => !_.opposite);
|
|
227
|
+
if ((nonOppositeXCount === null || nonOppositeXCount === void 0 ? void 0 : nonOppositeXCount.length) > 1) {
|
|
228
|
+
config.bounds.bottom = 0;
|
|
229
|
+
}
|
|
230
|
+
if ((oppositeXCount === null || oppositeXCount === void 0 ? void 0 : oppositeXCount.length) > 1) {
|
|
231
|
+
config.bounds.top = 0;
|
|
232
|
+
}
|
|
233
|
+
if ((nonOppositeYCount === null || nonOppositeYCount === void 0 ? void 0 : nonOppositeYCount.length) > 1) {
|
|
234
|
+
config.bounds.left = 0;
|
|
235
|
+
}
|
|
236
|
+
if ((oppositeYCount === null || oppositeYCount === void 0 ? void 0 : oppositeYCount.length) > 1) {
|
|
237
|
+
config.bounds.right = 0;
|
|
238
|
+
}
|
|
221
239
|
config.tooltip = Object.assign({}, defaultChartConfig().tooltip, config.tooltip);
|
|
222
|
-
config.zoom.syncChannel = (
|
|
240
|
+
config.zoom.syncChannel = (_f = (_e = config.zoom) === null || _e === void 0 ? void 0 : _e.syncChannel) !== null && _f !== void 0 ? _f : id;
|
|
223
241
|
return config;
|
|
224
242
|
}
|
|
225
243
|
setPreparationData(config) {
|
|
@@ -476,7 +494,7 @@ class ScaleService {
|
|
|
476
494
|
return map;
|
|
477
495
|
}), shareReplay({
|
|
478
496
|
bufferSize: 1,
|
|
479
|
-
refCount: true
|
|
497
|
+
refCount: true,
|
|
480
498
|
}));
|
|
481
499
|
this.yAxisMap = combineLatest([
|
|
482
500
|
this.chartService.size,
|
|
@@ -490,7 +508,7 @@ class ScaleService {
|
|
|
490
508
|
return map;
|
|
491
509
|
}), shareReplay({
|
|
492
510
|
bufferSize: 1,
|
|
493
|
-
refCount: true
|
|
511
|
+
refCount: true,
|
|
494
512
|
}));
|
|
495
513
|
this.xScaleMap = combineLatest([
|
|
496
514
|
this.chartService.size,
|
|
@@ -516,7 +534,7 @@ class ScaleService {
|
|
|
516
534
|
let scale = this.scaleMapping
|
|
517
535
|
.get(axis.options.scaleType.type)()
|
|
518
536
|
.domain(domain)
|
|
519
|
-
.range([0, finalWidth]);
|
|
537
|
+
.range([0, finalWidth - config.bounds.right]);
|
|
520
538
|
if (axis.options.niceTicks) {
|
|
521
539
|
scale.nice();
|
|
522
540
|
}
|
|
@@ -545,14 +563,14 @@ class ScaleService {
|
|
|
545
563
|
return map;
|
|
546
564
|
}), shareReplay({
|
|
547
565
|
bufferSize: 1,
|
|
548
|
-
refCount: true
|
|
566
|
+
refCount: true,
|
|
549
567
|
}));
|
|
550
568
|
this.yScaleMap = combineLatest([
|
|
551
569
|
this.chartService.size,
|
|
552
570
|
this.chartService.config,
|
|
553
571
|
this.zoomService.zoomed,
|
|
554
572
|
]).pipe(withLatestFrom(this.yAxisMap, this.xAxisMap), map((data) => {
|
|
555
|
-
var _a;
|
|
573
|
+
var _a, _b, _c;
|
|
556
574
|
const [[size, config, zoom], yAxes, xAxes] = data;
|
|
557
575
|
const map = new Map();
|
|
558
576
|
const top = [...xAxes.values()]
|
|
@@ -561,7 +579,11 @@ class ScaleService {
|
|
|
561
579
|
const bottom = [...xAxes.values()]
|
|
562
580
|
.filter((_) => { var _a, _b; return ((_a = _.options) === null || _a === void 0 ? void 0 : _a.visible) && ((_b = _.options) === null || _b === void 0 ? void 0 : _b.opposite) !== true; })
|
|
563
581
|
.reduce((acc, cur) => acc + cur.selfSize, 0);
|
|
564
|
-
const finalHeight = (size.height || 0) -
|
|
582
|
+
const finalHeight = (size.height || 0) -
|
|
583
|
+
top -
|
|
584
|
+
bottom -
|
|
585
|
+
((_a = config === null || config === void 0 ? void 0 : config.bounds) === null || _a === void 0 ? void 0 : _a.top) -
|
|
586
|
+
((_b = config.bounds) === null || _b === void 0 ? void 0 : _b.bottom);
|
|
565
587
|
yAxes.forEach((axis) => {
|
|
566
588
|
var _a, _b;
|
|
567
589
|
let domain = axis.extremes;
|
|
@@ -574,7 +596,7 @@ class ScaleService {
|
|
|
574
596
|
const scale = this.scaleMapping
|
|
575
597
|
.get(axis.options.scaleType.type)()
|
|
576
598
|
.domain(domain)
|
|
577
|
-
.range([
|
|
599
|
+
.range([config.bounds.top, finalHeight]);
|
|
578
600
|
if (axis.options.niceTicks) {
|
|
579
601
|
scale.nice();
|
|
580
602
|
}
|
|
@@ -592,7 +614,7 @@ class ScaleService {
|
|
|
592
614
|
});
|
|
593
615
|
if (zoom) {
|
|
594
616
|
const event = zoom.event;
|
|
595
|
-
if (((
|
|
617
|
+
if (((_c = zoom.target) === null || _c === void 0 ? void 0 : _c.orientation) === AxisOrientation.y) {
|
|
596
618
|
const currentScale = map.get(zoom.target.index);
|
|
597
619
|
const rescaled = event.transform.rescaleY(currentScale);
|
|
598
620
|
map.set(zoom.target.index, rescaled);
|
|
@@ -603,7 +625,7 @@ class ScaleService {
|
|
|
603
625
|
return map;
|
|
604
626
|
}), shareReplay({
|
|
605
627
|
bufferSize: 1,
|
|
606
|
-
refCount: true
|
|
628
|
+
refCount: true,
|
|
607
629
|
}));
|
|
608
630
|
}
|
|
609
631
|
}
|
|
@@ -1861,9 +1883,9 @@ class ZoomableDirective {
|
|
|
1861
1883
|
};
|
|
1862
1884
|
}
|
|
1863
1885
|
ngOnInit() {
|
|
1864
|
-
var _a, _b, _c, _d;
|
|
1886
|
+
var _a, _b, _c, _d, _e, _f;
|
|
1865
1887
|
if (((_b = (_a = this.axis) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.zoom) || ((_d = (_c = this.config) === null || _c === void 0 ? void 0 : _c.zoom) === null || _d === void 0 ? void 0 : _d.enable)) {
|
|
1866
|
-
this.zoomable =
|
|
1888
|
+
this.zoomable = ((_f = (_e = this.config) === null || _e === void 0 ? void 0 : _e.zoom) === null || _f === void 0 ? void 0 : _f.zoomBehavior) === ZoomBehaviorType.move;
|
|
1867
1889
|
}
|
|
1868
1890
|
}
|
|
1869
1891
|
ngAfterViewInit() {
|
|
@@ -1889,14 +1911,13 @@ class ZoomableDirective {
|
|
|
1889
1911
|
const minZoom = ((_m = this.config.zoom) === null || _m === void 0 ? void 0 : _m.min) ? (this.zoomAxis.extremes[1] - this.zoomAxis.extremes[0]) / ((_o = this.config.zoom) === null || _o === void 0 ? void 0 : _o.min) : Infinity;
|
|
1890
1912
|
this.zoom.scaleExtent([maxZoom, minZoom]);
|
|
1891
1913
|
this.zoom.on('start zoom end', this.zoomed);
|
|
1892
|
-
this._element.call(this.zoom)
|
|
1893
|
-
.on('dblclick.zoom', null);
|
|
1914
|
+
this._element.call(this.zoom).on('dblclick.zoom', null);
|
|
1894
1915
|
if (((_q = (_p = this.config) === null || _p === void 0 ? void 0 : _p.zoom) === null || _q === void 0 ? void 0 : _q.zoomBehavior) === ZoomBehaviorType.wheel) {
|
|
1895
1916
|
let wheeling;
|
|
1896
1917
|
let type = 'start';
|
|
1897
1918
|
const origin = this.brushScale.copy().domain(this.zoomAxis.extremes);
|
|
1898
1919
|
this.zoom
|
|
1899
|
-
.filter((event) => event.ctrlKey)
|
|
1920
|
+
.filter((event) => event.ctrlKey && event.type === 'wheel')
|
|
1900
1921
|
.wheelDelta((event) => {
|
|
1901
1922
|
var _a;
|
|
1902
1923
|
const delta = ((_a = this.config) === null || _a === void 0 ? void 0 : _a.zoom.type) === ZoomType.x ? -event.deltaX : -event.deltaY;
|
|
@@ -1912,10 +1933,10 @@ class ZoomableDirective {
|
|
|
1912
1933
|
let transform = zoomIdentity;
|
|
1913
1934
|
const delta = type === 'end' ? 0 : ((_a = this.config.zoom) === null || _a === void 0 ? void 0 : _a.type) === ZoomType.y ? event.deltaY : event.deltaX;
|
|
1914
1935
|
if (((_b = this.config.zoom) === null || _b === void 0 ? void 0 : _b.type) === ZoomType.y) {
|
|
1915
|
-
transform = transform.translate(0, this.currentTransform.y - delta);
|
|
1936
|
+
transform = transform.translate(0, this.currentTransform.y - delta / 2);
|
|
1916
1937
|
}
|
|
1917
1938
|
if (((_c = this.config.zoom) === null || _c === void 0 ? void 0 : _c.type) === ZoomType.x) {
|
|
1918
|
-
transform = transform.translate(this.currentTransform.x - delta, 0);
|
|
1939
|
+
transform = transform.translate(this.currentTransform.x - delta / 2, 0);
|
|
1919
1940
|
}
|
|
1920
1941
|
transform = transform.scale(this.currentTransform.k);
|
|
1921
1942
|
let domain = ((_d = this.config.zoom) === null || _d === void 0 ? void 0 : _d.type) === ZoomType.y ?
|
|
@@ -1954,7 +1975,7 @@ class ZoomableDirective {
|
|
|
1954
1975
|
type = 'end';
|
|
1955
1976
|
emit(type);
|
|
1956
1977
|
type = 'start';
|
|
1957
|
-
},
|
|
1978
|
+
}, 300);
|
|
1958
1979
|
});
|
|
1959
1980
|
});
|
|
1960
1981
|
}
|
|
@@ -2006,7 +2027,7 @@ class ZoomableDirective {
|
|
|
2006
2027
|
if (((_b = m.message) === null || _b === void 0 ? void 0 : _b.brushType) === BrushType.y) {
|
|
2007
2028
|
transform = transform.translate(0, -this.brushScale(s[0]));
|
|
2008
2029
|
}
|
|
2009
|
-
this._element.
|
|
2030
|
+
this._element.call(this.zoom.transform, transform, null, {});
|
|
2010
2031
|
}
|
|
2011
2032
|
}
|
|
2012
2033
|
ZoomableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ZoomableDirective, deps: [{ token: i0.ElementRef }, { token: ZoomService }, { token: BroadcastService }, { token: ChartService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -2077,11 +2098,11 @@ class ChartContainerComponent {
|
|
|
2077
2098
|
this.xAxisMap = this._scaleService.xAxisMap;
|
|
2078
2099
|
this.yScaleMap = this._scaleService.yScaleMap.pipe(throttleTime(0, animationFrameScheduler, { trailing: true }), tap(() => this._cdr.detectChanges()), shareReplay({
|
|
2079
2100
|
bufferSize: 1,
|
|
2080
|
-
refCount: true
|
|
2101
|
+
refCount: true,
|
|
2081
2102
|
}));
|
|
2082
2103
|
this.xScaleMap = this._scaleService.xScaleMap.pipe(throttleTime(0, animationFrameScheduler, { trailing: true }), tap(() => this._cdr.detectChanges()), shareReplay({
|
|
2083
2104
|
bufferSize: 1,
|
|
2084
|
-
refCount: true
|
|
2105
|
+
refCount: true,
|
|
2085
2106
|
}));
|
|
2086
2107
|
this.brushScale = combineLatest([
|
|
2087
2108
|
this._scaleService.xScaleMap,
|
|
@@ -2089,19 +2110,18 @@ class ChartContainerComponent {
|
|
|
2089
2110
|
]).pipe(withLatestFrom(this.config), map((data) => {
|
|
2090
2111
|
var _a;
|
|
2091
2112
|
const [[x, y], config] = data;
|
|
2092
|
-
return ((_a = config.brush) === null || _a === void 0 ? void 0 : _a.type) === BrushType.x
|
|
2093
|
-
? x.get(0)
|
|
2094
|
-
: y.get(0);
|
|
2113
|
+
return ((_a = config.brush) === null || _a === void 0 ? void 0 : _a.type) === BrushType.x ? x.get(0) : y.get(0);
|
|
2095
2114
|
}), shareReplay({
|
|
2096
2115
|
bufferSize: 1,
|
|
2097
|
-
refCount: true
|
|
2116
|
+
refCount: true,
|
|
2098
2117
|
}));
|
|
2099
2118
|
this.visibleRect = combineLatest([
|
|
2100
2119
|
this.size,
|
|
2101
2120
|
this.xAxisMap,
|
|
2102
|
-
this.yAxisMap
|
|
2103
|
-
]).pipe(throttleTime(0, animationFrameScheduler, { trailing: true }), map((data) => {
|
|
2104
|
-
|
|
2121
|
+
this.yAxisMap,
|
|
2122
|
+
]).pipe(throttleTime(0, animationFrameScheduler, { trailing: true }), withLatestFrom(this.config), map((data) => {
|
|
2123
|
+
var _a, _b, _c, _d, _e, _f;
|
|
2124
|
+
const [[size, x, y], config] = data;
|
|
2105
2125
|
const yAxesArray = [...y.values()];
|
|
2106
2126
|
const xAxesArray = [...x.values()];
|
|
2107
2127
|
const left = yAxesArray
|
|
@@ -2117,10 +2137,18 @@ class ChartContainerComponent {
|
|
|
2117
2137
|
.filter((_) => _.options.opposite && _.options.visible)
|
|
2118
2138
|
.reduce(this.sumSize, 0);
|
|
2119
2139
|
return {
|
|
2120
|
-
x: left,
|
|
2121
|
-
y: top,
|
|
2122
|
-
width: size.width -
|
|
2123
|
-
|
|
2140
|
+
x: left + ((_a = config.bounds) === null || _a === void 0 ? void 0 : _a.left),
|
|
2141
|
+
y: top + ((_b = config.bounds) === null || _b === void 0 ? void 0 : _b.top),
|
|
2142
|
+
width: size.width -
|
|
2143
|
+
left -
|
|
2144
|
+
right -
|
|
2145
|
+
((_c = config.bounds) === null || _c === void 0 ? void 0 : _c.left) -
|
|
2146
|
+
((_d = config.bounds) === null || _d === void 0 ? void 0 : _d.right),
|
|
2147
|
+
height: size.height -
|
|
2148
|
+
top -
|
|
2149
|
+
bottom -
|
|
2150
|
+
((_e = config.bounds) === null || _e === void 0 ? void 0 : _e.top) -
|
|
2151
|
+
((_f = config.bounds) === null || _f === void 0 ? void 0 : _f.bottom),
|
|
2124
2152
|
};
|
|
2125
2153
|
}), tap(() => setTimeout(() => this._cdr.detectChanges())));
|
|
2126
2154
|
}
|
|
@@ -2142,8 +2170,9 @@ class ChartContainerComponent {
|
|
|
2142
2170
|
this._observer.disconnect();
|
|
2143
2171
|
}
|
|
2144
2172
|
getTranslate(axis, size) {
|
|
2145
|
-
return combineLatest([this.xAxisMap, this.yAxisMap]).pipe(map((data) => {
|
|
2146
|
-
|
|
2173
|
+
return combineLatest([this.xAxisMap, this.yAxisMap]).pipe(withLatestFrom(this.config), map((data) => {
|
|
2174
|
+
var _a, _b;
|
|
2175
|
+
const [[x, y], config] = data;
|
|
2147
2176
|
const xAxesArray = [...x.values()];
|
|
2148
2177
|
const yAxesArray = [...y.values()];
|
|
2149
2178
|
const oppositeFilter = this.filterPositionMap.get(true);
|
|
@@ -2158,10 +2187,10 @@ class ChartContainerComponent {
|
|
|
2158
2187
|
const nonOppisteTranslateX = nonOppositeOffsetX.reduce((acc, curr) => acc + curr.selfSize, 0);
|
|
2159
2188
|
const left = yAxesArray
|
|
2160
2189
|
.filter((_) => _.options.visible && _.options.opposite !== true)
|
|
2161
|
-
.reduce((acc, curr) => acc + curr.selfSize, 0);
|
|
2190
|
+
.reduce((acc, curr) => acc + curr.selfSize, (_a = config.bounds) === null || _a === void 0 ? void 0 : _a.left);
|
|
2162
2191
|
const top = xAxesArray
|
|
2163
2192
|
.filter((_) => _.options.visible && _.options.opposite === true)
|
|
2164
|
-
.reduce((acc, curr) => acc + curr.selfSize, 0);
|
|
2193
|
+
.reduce((acc, curr) => acc + curr.selfSize, (_b = config.bounds) === null || _b === void 0 ? void 0 : _b.top);
|
|
2165
2194
|
if (axis.orientation === AxisOrientation.x) {
|
|
2166
2195
|
return `translate(${left}, ${axis.options.opposite
|
|
2167
2196
|
? oppositeTranslateX
|
|
@@ -2185,8 +2214,8 @@ class ChartContainerComponent {
|
|
|
2185
2214
|
event: event,
|
|
2186
2215
|
target: {
|
|
2187
2216
|
x: x.invert(event.offsetX),
|
|
2188
|
-
y: y.invert(event.offsetY)
|
|
2189
|
-
}
|
|
2217
|
+
y: y.invert(event.offsetY),
|
|
2218
|
+
},
|
|
2190
2219
|
});
|
|
2191
2220
|
}
|
|
2192
2221
|
contextMenu(event, xScales, yScales) {
|
|
@@ -2196,8 +2225,8 @@ class ChartContainerComponent {
|
|
|
2196
2225
|
event: event,
|
|
2197
2226
|
target: {
|
|
2198
2227
|
x: x.invert(event.offsetX),
|
|
2199
|
-
y: y.invert(event.offsetY)
|
|
2200
|
-
}
|
|
2228
|
+
y: y.invert(event.offsetY),
|
|
2229
|
+
},
|
|
2201
2230
|
});
|
|
2202
2231
|
}
|
|
2203
2232
|
mouseMove(event) {
|