@tetacom/svg-charts 1.0.2 → 1.1.0
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/dist/chart/base/series-base.component.d.ts +4 -1
- package/dist/chart/chart/chart.component.d.ts +12 -9
- package/dist/chart/chart-container/chart-container.component.d.ts +18 -23
- package/dist/chart/chart-container/gridlines/gridlines.component.d.ts +7 -16
- package/dist/chart/chart-container/plotband/{plotband.component.d.ts → plot-band.component.d.ts} +10 -10
- package/dist/chart/chart-container/plotline/plotline.component.d.ts +5 -5
- package/dist/chart/chart-container/series/line/line-series.component.d.ts +2 -2
- package/dist/chart/chart-container/series/scatter-series/scatter-series.component.d.ts +28 -0
- package/dist/chart/chart-container/series-host/series-host.component.d.ts +4 -1
- package/dist/chart/chart-container/tooltip/tooltip.component.d.ts +6 -3
- package/dist/chart/chart-container/x-axis/x-axis.component.d.ts +6 -10
- package/dist/chart/chart-container/y-axis/y-axis.component.d.ts +7 -11
- package/dist/chart/chart.module.d.ts +4 -3
- package/dist/chart/core/axis/axis.d.ts +8 -3
- package/dist/chart/default/default-axis-config.d.ts +2 -0
- package/dist/chart/default/default-chart-config.d.ts +2 -0
- package/dist/chart/default/default-series-config.d.ts +3 -0
- package/dist/chart/directives/brushable.directive.d.ts +2 -1
- package/dist/chart/directives/zoomable.directive.d.ts +1 -3
- package/dist/chart/legend/legend.component.d.ts +1 -3
- package/dist/chart/model/axis-options.d.ts +9 -7
- package/dist/chart/model/base-point.d.ts +1 -1
- package/dist/chart/model/enum/public-api.d.ts +1 -1
- package/dist/chart/model/enum/scale-type.d.ts +8 -0
- package/dist/chart/model/enum/series-type.d.ts +2 -1
- package/dist/chart/model/i-broadcast-message.d.ts +14 -2
- package/dist/chart/model/i-chart-config.d.ts +1 -0
- package/dist/chart/model/{plotband.d.ts → plot-band.d.ts} +7 -5
- package/dist/chart/model/{plotline.d.ts → plot-line.d.ts} +3 -1
- package/dist/chart/model/public-api.d.ts +2 -2
- package/dist/chart/service/brush.service.d.ts +2 -5
- package/dist/chart/service/chart.service.d.ts +16 -17
- package/dist/chart/service/scale.service.d.ts +13 -8
- package/dist/chart/service/zoom.service.d.ts +6 -14
- package/dist/esm2020/chart/base/series-base.component.mjs +7 -9
- package/dist/esm2020/chart/chart/chart.component.mjs +28 -30
- package/dist/esm2020/chart/chart-container/chart-container.component.mjs +97 -115
- package/dist/esm2020/chart/chart-container/gridlines/gridlines.component.mjs +19 -31
- package/dist/esm2020/chart/chart-container/plotband/plot-band.component.mjs +141 -0
- package/dist/esm2020/chart/chart-container/plotline/plotline.component.mjs +11 -14
- package/dist/esm2020/chart/chart-container/series/bar/bar-series.component.mjs +11 -11
- package/dist/esm2020/chart/chart-container/series/line/line-series.component.mjs +33 -29
- package/dist/esm2020/chart/chart-container/series/scatter-series/scatter-series.component.mjs +174 -0
- package/dist/esm2020/chart/chart-container/series-host/series-host.component.mjs +16 -5
- package/dist/esm2020/chart/chart-container/tooltip/tooltip.component.mjs +17 -19
- package/dist/esm2020/chart/chart-container/x-axis/x-axis.component.mjs +19 -22
- package/dist/esm2020/chart/chart-container/y-axis/y-axis.component.mjs +20 -25
- package/dist/esm2020/chart/chart.module.mjs +8 -5
- package/dist/esm2020/chart/core/axis/axis.mjs +25 -16
- package/dist/esm2020/chart/core/axis/builders/extremes-builder.mjs +2 -3
- package/dist/esm2020/chart/default/default-axis-config.mjs +9 -0
- package/dist/esm2020/chart/default/default-chart-config.mjs +23 -0
- package/dist/esm2020/chart/default/default-series-config.mjs +8 -0
- package/dist/esm2020/chart/directives/brushable.directive.mjs +5 -3
- package/dist/esm2020/chart/directives/zoomable.directive.mjs +7 -8
- package/dist/esm2020/chart/legend/legend.component.mjs +4 -7
- package/dist/esm2020/chart/model/axis-options.mjs +1 -1
- package/dist/esm2020/chart/model/base-point.mjs +1 -1
- package/dist/esm2020/chart/model/enum/public-api.mjs +2 -2
- package/dist/esm2020/chart/model/enum/scale-type.mjs +10 -0
- package/dist/esm2020/chart/model/enum/series-type.mjs +2 -1
- package/dist/esm2020/chart/model/i-broadcast-message.mjs +1 -1
- package/dist/esm2020/chart/model/i-chart-config.mjs +1 -1
- package/dist/esm2020/chart/model/plot-band.mjs +17 -0
- package/dist/esm2020/chart/model/plot-line.mjs +13 -0
- package/dist/esm2020/chart/model/public-api.mjs +3 -3
- package/dist/esm2020/chart/service/broadcast.service.mjs +3 -5
- package/dist/esm2020/chart/service/brush.service.mjs +26 -23
- package/dist/esm2020/chart/service/chart.service.mjs +61 -43
- package/dist/esm2020/chart/service/scale.service.mjs +138 -50
- package/dist/esm2020/chart/service/zoom.service.mjs +82 -85
- package/dist/esm2020/public-api.mjs +2 -1
- package/dist/fesm2015/tetacom-svg-charts.mjs +942 -659
- package/dist/fesm2015/tetacom-svg-charts.mjs.map +1 -1
- package/dist/fesm2020/tetacom-svg-charts.mjs +929 -657
- package/dist/fesm2020/tetacom-svg-charts.mjs.map +1 -1
- package/package.json +1 -1
- package/src/chart/Chart.stories.ts +88 -173
- package/src/chart/base/series-base.component.ts +4 -9
- package/src/chart/chart/chart.component.html +16 -5
- package/src/chart/chart/chart.component.scss +1 -0
- package/src/chart/chart/chart.component.ts +39 -33
- package/src/chart/chart-container/chart-container.component.html +102 -57
- package/src/chart/chart-container/chart-container.component.scss +0 -1
- package/src/chart/chart-container/chart-container.component.ts +136 -165
- package/src/chart/chart-container/gridlines/gridlines.component.html +9 -2
- package/src/chart/chart-container/gridlines/gridlines.component.ts +17 -35
- package/src/chart/chart-container/plotband/{plotband.component.html → plot-band.component.html} +15 -9
- package/src/chart/chart-container/plotband/plot-band.component.scss +13 -0
- package/src/chart/chart-container/plotband/{plotband.component.spec.ts → plot-band.component.spec.ts} +5 -5
- package/src/chart/chart-container/plotband/{plotband.component.ts → plot-band.component.ts} +51 -57
- package/src/chart/chart-container/plotline/plotline.component.html +3 -3
- package/src/chart/chart-container/plotline/plotline.component.ts +10 -22
- package/src/chart/chart-container/series/bar/bar-series.component.ts +10 -12
- package/src/chart/chart-container/series/line/line-series.component.html +29 -31
- package/src/chart/chart-container/series/line/line-series.component.ts +69 -50
- package/src/chart/chart-container/series/scatter-series/scatter-series.component.html +43 -0
- package/src/chart/chart-container/series/scatter-series/scatter-series.component.scss +9 -0
- package/src/chart/chart-container/series/scatter-series/scatter-series.component.spec.ts +25 -0
- package/src/chart/chart-container/series/scatter-series/scatter-series.component.ts +254 -0
- package/src/chart/chart-container/series-host/series-host.component.ts +25 -16
- package/src/chart/chart-container/tooltip/tooltip.component.html +1 -1
- package/src/chart/chart-container/tooltip/tooltip.component.scss +2 -1
- package/src/chart/chart-container/tooltip/tooltip.component.ts +25 -26
- package/src/chart/chart-container/x-axis/x-axis.component.ts +18 -20
- package/src/chart/chart-container/y-axis/y-axis.component.ts +18 -28
- package/src/chart/chart.module.ts +4 -2
- package/src/chart/core/axis/axis.ts +37 -21
- package/src/chart/core/axis/builders/extremes-builder.ts +7 -12
- package/src/chart/core/builder/domain-builder.ts +0 -0
- package/src/chart/default/default-axis-config.ts +10 -0
- package/src/chart/default/default-chart-config.ts +20 -8
- package/src/chart/default/default-series-config.ts +10 -0
- package/src/chart/directives/brushable.directive.ts +2 -1
- package/src/chart/directives/zoomable.directive.ts +6 -9
- package/src/chart/legend/legend.component.html +7 -5
- package/src/chart/legend/legend.component.ts +2 -6
- package/src/chart/model/axis-options.ts +9 -7
- package/src/chart/model/base-point.ts +1 -1
- package/src/chart/model/enum/public-api.ts +1 -1
- package/src/chart/model/enum/scale-type.ts +8 -0
- package/src/chart/model/enum/series-type.ts +1 -0
- package/src/chart/model/i-broadcast-message.ts +17 -2
- package/src/chart/model/i-chart-config.ts +1 -0
- package/src/chart/model/i-dom-rect.ts +6 -0
- package/src/chart/model/{plotband.ts → plot-band.ts} +8 -5
- package/src/chart/model/{plotline.ts → plot-line.ts} +5 -2
- package/src/chart/model/public-api.ts +2 -2
- package/src/chart/service/broadcast.service.ts +5 -4
- package/src/chart/service/brush.service.ts +34 -31
- package/src/chart/service/chart.service.ts +70 -54
- package/src/chart/service/scale.service.ts +218 -61
- package/src/chart/service/zoom.service.ts +144 -113
- package/src/public-api.ts +3 -0
- package/dist/chart/model/enum/axis-type.d.ts +0 -7
- package/dist/chart/service/axes.service.d.ts +0 -11
- package/dist/esm2020/chart/chart-container/plotband/plotband.component.mjs +0 -139
- package/dist/esm2020/chart/model/enum/axis-type.mjs +0 -9
- package/dist/esm2020/chart/model/plotband.mjs +0 -16
- package/dist/esm2020/chart/model/plotline.mjs +0 -12
- package/dist/esm2020/chart/service/axes.service.mjs +0 -29
- package/src/chart/chart-container/plotband/plotband.component.scss +0 -13
- package/src/chart/model/enum/axis-type.ts +0 -7
- package/src/chart/service/axes.service.spec.ts +0 -16
- package/src/chart/service/axes.service.ts +0 -27
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export class PlotBand {
|
|
2
|
+
constructor(options) {
|
|
3
|
+
this.id = options?.id;
|
|
4
|
+
this.name = options?.name;
|
|
5
|
+
this.from = options?.from;
|
|
6
|
+
this.to = options?.to;
|
|
7
|
+
this.label = options?.label;
|
|
8
|
+
this.showGrabbers =
|
|
9
|
+
options?.showGrabbers != null ? options.showGrabbers : true;
|
|
10
|
+
this.draggable = options?.draggable != null ? options?.draggable : false;
|
|
11
|
+
this.resizable = options?.resizable != null ? options?.resizable : true;
|
|
12
|
+
this.min = options?.min;
|
|
13
|
+
this.max = options?.max;
|
|
14
|
+
this.style = options?.style;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdC1iYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L21vZGVsL3Bsb3QtYmFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sUUFBUTtJQWdCbkIsWUFBWSxPQWVYO1FBQ0MsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWTtZQUNmLE9BQU8sRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLEVBQUUsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN4RSxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sRUFBRSxHQUFHLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdmdBdHRyaWJ1dGVzIH0gZnJvbSAnLi9zdmctYXR0cmlidXRlcyc7XG5cbmV4cG9ydCBjbGFzcyBQbG90QmFuZCB7XG4gIGlkPzogbnVtYmVyIHwgc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBmcm9tOiBudW1iZXI7XG4gIHRvOiBudW1iZXI7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBzaG93R3JhYmJlcnM/OiBib29sZWFuO1xuICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICByZXNpemFibGU/OiBib29sZWFuO1xuICBtaW4/OiBudW1iZXI7XG4gIG1heD86IG51bWJlcjtcbiAgc3R5bGU/OiB7XG4gICAgcGxvdEJhbmQ/OiBTdmdBdHRyaWJ1dGVzO1xuICAgIGdyYWJiZXJzPzogU3ZnQXR0cmlidXRlcztcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzoge1xuICAgIGlkPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgZnJvbTogbnVtYmVyO1xuICAgIHRvOiBudW1iZXI7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgc2hvd0dyYWJiZXJzPzogYm9vbGVhbjtcbiAgICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICAgIHJlc2l6YWJsZT86IGJvb2xlYW47XG4gICAgbWluPzogbnVtYmVyO1xuICAgIG1heD86IG51bWJlcjtcbiAgICBzdHlsZT86IHtcbiAgICAgIHBsb3RCYW5kPzogU3ZnQXR0cmlidXRlcztcbiAgICAgIGdyYWJiZXJzPzogU3ZnQXR0cmlidXRlcztcbiAgICB9O1xuICB9KSB7XG4gICAgdGhpcy5pZCA9IG9wdGlvbnM/LmlkO1xuICAgIHRoaXMubmFtZSA9IG9wdGlvbnM/Lm5hbWU7XG4gICAgdGhpcy5mcm9tID0gb3B0aW9ucz8uZnJvbTtcbiAgICB0aGlzLnRvID0gb3B0aW9ucz8udG87XG4gICAgdGhpcy5sYWJlbCA9IG9wdGlvbnM/LmxhYmVsO1xuICAgIHRoaXMuc2hvd0dyYWJiZXJzID1cbiAgICAgIG9wdGlvbnM/LnNob3dHcmFiYmVycyAhPSBudWxsID8gb3B0aW9ucy5zaG93R3JhYmJlcnMgOiB0cnVlO1xuICAgIHRoaXMuZHJhZ2dhYmxlID0gb3B0aW9ucz8uZHJhZ2dhYmxlICE9IG51bGwgPyBvcHRpb25zPy5kcmFnZ2FibGUgOiBmYWxzZTtcbiAgICB0aGlzLnJlc2l6YWJsZSA9IG9wdGlvbnM/LnJlc2l6YWJsZSAhPSBudWxsID8gb3B0aW9ucz8ucmVzaXphYmxlIDogdHJ1ZTtcbiAgICB0aGlzLm1pbiA9IG9wdGlvbnM/Lm1pbjtcbiAgICB0aGlzLm1heCA9IG9wdGlvbnM/Lm1heDtcbiAgICB0aGlzLnN0eWxlID0gb3B0aW9ucz8uc3R5bGU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class PlotLine {
|
|
2
|
+
constructor(options) {
|
|
3
|
+
this.id = options?.id;
|
|
4
|
+
this.name = options?.name;
|
|
5
|
+
this.value = options?.value;
|
|
6
|
+
this.label = options?.label;
|
|
7
|
+
this.min = options?.min;
|
|
8
|
+
this.max = options?.max;
|
|
9
|
+
this.draggable = options?.draggable;
|
|
10
|
+
this.style = options?.style;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdC1saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L21vZGVsL3Bsb3QtbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sUUFBUTtJQVVuQixZQUFZLE9BU1g7UUFDQyxJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxFQUFFLEdBQUcsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO0lBQzlCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3ZnQXR0cmlidXRlc30gZnJvbSAnLi9zdmctYXR0cmlidXRlcyc7XG5cbmV4cG9ydCBjbGFzcyBQbG90TGluZSB7XG4gIGlkPzogbnVtYmVyIHwgc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xuICBsYWJlbD86IHN0cmluZztcbiAgbWluPzogbnVtYmVyO1xuICBtYXg/OiBudW1iZXI7XG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XG4gIHN0eWxlPzogU3ZnQXR0cmlidXRlcztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzoge1xuICAgIGlkPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdmFsdWU6IG51bWJlcjtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBtaW4/OiBudW1iZXI7XG4gICAgbWF4PzogbnVtYmVyO1xuICAgIGRyYWdnYWJsZT86IGJvb2xlYW47XG4gICAgc3R5bGU/OiBTdmdBdHRyaWJ1dGVzO1xuICB9KSB7XG4gICAgdGhpcy5pZCA9IG9wdGlvbnM/LmlkO1xuICAgIHRoaXMubmFtZSA9IG9wdGlvbnM/Lm5hbWU7XG4gICAgdGhpcy52YWx1ZSA9IG9wdGlvbnM/LnZhbHVlO1xuICAgIHRoaXMubGFiZWwgPSBvcHRpb25zPy5sYWJlbDtcbiAgICB0aGlzLm1pbiA9IG9wdGlvbnM/Lm1pbjtcbiAgICB0aGlzLm1heCA9IG9wdGlvbnM/Lm1heDtcbiAgICB0aGlzLmRyYWdnYWJsZSA9IG9wdGlvbnM/LmRyYWdnYWJsZTtcbiAgICB0aGlzLnN0eWxlID0gb3B0aW9ucz8uc3R5bGU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -7,8 +7,8 @@ export * from './i-chart-config';
|
|
|
7
7
|
export * from './i-chart-event';
|
|
8
8
|
export * from './i-point-move';
|
|
9
9
|
export * from './marker-options';
|
|
10
|
-
export * from './
|
|
11
|
-
export * from './
|
|
10
|
+
export * from './plot-band';
|
|
11
|
+
export * from './plot-line';
|
|
12
12
|
export * from './series';
|
|
13
13
|
export * from './svg-attributes';
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9tb2RlbC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbnVtL3B1YmxpYy1hcGknO1xuXG5leHBvcnQgKiBmcm9tICcuL2F4aXMtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtcG9pbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1ib3VuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pLWJyb2FkY2FzdC1tZXNzYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vaS1jaGFydC1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9pLWNoYXJ0LWV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaS1wb2ludC1tb3ZlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFya2VyLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9wbG90LWJhbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9wbG90LWxpbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJpZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdmctYXR0cmlidXRlcyc7XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { filter, Subject } from 'rxjs';
|
|
2
|
+
import { filter, shareReplay, Subject } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class BroadcastService {
|
|
5
5
|
constructor() {
|
|
@@ -9,9 +9,7 @@ export class BroadcastService {
|
|
|
9
9
|
this.emitter.next(value);
|
|
10
10
|
}
|
|
11
11
|
subscribeToChannel(channel) {
|
|
12
|
-
return this.emitter
|
|
13
|
-
.asObservable()
|
|
14
|
-
.pipe(filter((msg) => channel && msg.channel === channel));
|
|
12
|
+
return this.emitter.asObservable().pipe(filter((msg) => channel && msg.channel === channel), shareReplay(1));
|
|
15
13
|
}
|
|
16
14
|
}
|
|
17
15
|
BroadcastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BroadcastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -22,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
|
|
|
22
20
|
providedIn: 'root',
|
|
23
21
|
}]
|
|
24
22
|
}], ctorParameters: function () { return []; } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvYWRjYXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2hhcnQvc2VydmljZS9icm9hZGNhc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQWMsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLaEUsTUFBTSxPQUFPLGdCQUFnQjtJQUczQjtRQUNFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQXFCLENBQUM7SUFDbEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUF3QjtRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBZTtRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUNyQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxFQUNuRCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNKLENBQUM7OzZHQWhCVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQUZmLE1BQU07MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElCcm9hZGNhc3RNZXNzYWdlIH0gZnJvbSAnLi4vbW9kZWwvaS1icm9hZGNhc3QtbWVzc2FnZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBCcm9hZGNhc3RTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBlbWl0dGVyOiBTdWJqZWN0PElCcm9hZGNhc3RNZXNzYWdlPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmVtaXR0ZXIgPSBuZXcgU3ViamVjdDxJQnJvYWRjYXN0TWVzc2FnZT4oKTtcbiAgfVxuXG4gIGJyb2FkY2FzdCh2YWx1ZTogSUJyb2FkY2FzdE1lc3NhZ2UpIHtcbiAgICB0aGlzLmVtaXR0ZXIubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBzdWJzY3JpYmVUb0NoYW5uZWwoY2hhbm5lbDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvYWRjYXN0TWVzc2FnZT4ge1xuICAgIHJldHVybiB0aGlzLmVtaXR0ZXIuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIGZpbHRlcigobXNnKSA9PiBjaGFubmVsICYmIG1zZy5jaGFubmVsID09PSBjaGFubmVsKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -2,24 +2,19 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { BrushType } from '../model/enum/brush-type';
|
|
3
3
|
import * as d3 from 'd3';
|
|
4
4
|
import { map } from 'rxjs';
|
|
5
|
+
import { AxisOrientation } from '../model/enum/axis-orientation';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "./broadcast.service";
|
|
7
|
-
import * as i2 from "./scale.service";
|
|
8
8
|
export class BrushService {
|
|
9
|
-
constructor(broadcastService
|
|
9
|
+
constructor(broadcastService) {
|
|
10
10
|
this.broadcastService = broadcastService;
|
|
11
|
-
this.scaleService = scaleService;
|
|
12
11
|
this.brushMap = new Map()
|
|
13
12
|
.set(BrushType.x, d3.brushX())
|
|
14
13
|
.set(BrushType.y, d3.brushY());
|
|
15
|
-
this.scaleMap = new Map()
|
|
16
|
-
.set(BrushType.x, 'xScales')
|
|
17
|
-
.set(BrushType.y, 'yScales');
|
|
18
14
|
}
|
|
19
|
-
applyBrush(svgElement, config,
|
|
15
|
+
applyBrush(svgElement, config, brushScale) {
|
|
20
16
|
this.broadcastSubscribtion?.unsubscribe();
|
|
21
17
|
if (config.brush?.enable) {
|
|
22
|
-
const s = this.scaleService[this.scaleMap.get(config?.brush?.type ?? BrushType.x)].get(config?.brush?.axisIndex ?? 0);
|
|
23
18
|
const brush = this.brushMap.get(config?.brush?.type ?? BrushType.x);
|
|
24
19
|
const container = d3.select(svgElement.nativeElement);
|
|
25
20
|
const brushBehavior = brush.on('start brush end', (_) => {
|
|
@@ -29,39 +24,47 @@ export class BrushService {
|
|
|
29
24
|
container.call(brush.move, [from, to]);
|
|
30
25
|
return;
|
|
31
26
|
}
|
|
27
|
+
const brushMessage = {
|
|
28
|
+
event: _,
|
|
29
|
+
selection: [brushScale.invert(from), brushScale.invert(to)],
|
|
30
|
+
brushType: config?.brush?.type ?? BrushType.x,
|
|
31
|
+
brushScale,
|
|
32
|
+
};
|
|
32
33
|
this.broadcastService.broadcast({
|
|
33
34
|
channel: config?.zoom?.syncChannel,
|
|
34
|
-
message:
|
|
35
|
-
..._,
|
|
36
|
-
selection: [s.invert(from), s.invert(to)],
|
|
37
|
-
brushType: config?.brush?.type ?? BrushType.x,
|
|
38
|
-
},
|
|
35
|
+
message: brushMessage,
|
|
39
36
|
});
|
|
40
37
|
}
|
|
41
38
|
});
|
|
42
|
-
container.call(brushBehavior);
|
|
43
39
|
setTimeout(() => {
|
|
44
|
-
container.call(
|
|
45
|
-
|
|
40
|
+
container.call(brushBehavior);
|
|
41
|
+
container.call(brush.move, brushScale.domain().map(brushScale), {});
|
|
42
|
+
}, 0);
|
|
46
43
|
this.broadcastSubscribtion = this.broadcastService
|
|
47
44
|
.subscribeToChannel(config?.zoom?.syncChannel)
|
|
48
45
|
.pipe(map((_) => {
|
|
49
|
-
if (_.message
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
if ('axis' in _.message) {
|
|
47
|
+
if (_.message.axis.orientation === AxisOrientation.x &&
|
|
48
|
+
_.message.axis.index === 0) {
|
|
49
|
+
const rescaled = _.message.event.transform.rescaleX(brushScale);
|
|
50
|
+
const domain = rescaled.domain();
|
|
51
|
+
container.call(brush.move, [
|
|
52
|
+
brushScale(domain[0]),
|
|
53
|
+
brushScale(domain[1]),
|
|
54
|
+
]);
|
|
55
|
+
}
|
|
53
56
|
}
|
|
54
57
|
}))
|
|
55
58
|
.subscribe();
|
|
56
59
|
}
|
|
57
60
|
}
|
|
58
61
|
}
|
|
59
|
-
BrushService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BrushService, deps: [{ token: i1.BroadcastService }
|
|
62
|
+
BrushService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BrushService, deps: [{ token: i1.BroadcastService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
60
63
|
BrushService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BrushService, providedIn: 'root' });
|
|
61
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BrushService, decorators: [{
|
|
62
65
|
type: Injectable,
|
|
63
66
|
args: [{
|
|
64
67
|
providedIn: 'root',
|
|
65
68
|
}]
|
|
66
|
-
}], ctorParameters: function () { return [{ type: i1.BroadcastService }
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
}], ctorParameters: function () { return [{ type: i1.BroadcastService }]; } });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJ1c2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2JydXNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBNkMsTUFBTSxNQUFNLENBQUM7QUFRdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFNakUsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFKOUMsYUFBUSxHQUFHLElBQUksR0FBRyxFQUFvQzthQUMzRCxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDN0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFd0IsQ0FBQztJQUUxRCxVQUFVLENBQUMsVUFBc0IsRUFBRSxNQUFvQixFQUFFLFVBQWU7UUFDdEUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBRTFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXBFLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRXRELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQzVCLGlCQUFpQixFQUNqQixDQUFDLENBQXVCLEVBQUUsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFO29CQUNqQixNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFxQixDQUFDO29CQUUzQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFO3dCQUNqQixTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDdkMsT0FBTztxQkFDUjtvQkFFRCxNQUFNLFlBQVksR0FBaUI7d0JBQ2pDLEtBQUssRUFBRSxDQUFDO3dCQUNSLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDM0QsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDO3dCQUM3QyxVQUFVO3FCQUNYLENBQUM7b0JBRUYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQzt3QkFDOUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVzt3QkFDbEMsT0FBTyxFQUFFLFlBQVk7cUJBQ3RCLENBQUMsQ0FBQztpQkFDSjtZQUNILENBQUMsQ0FDRixDQUFDO1lBRUYsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUM5QixTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFTixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQjtpQkFDL0Msa0JBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUM7aUJBQzdDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDUixJQUFJLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO29CQUN2QixJQUNFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxlQUFlLENBQUMsQ0FBQzt3QkFDaEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsRUFDMUI7d0JBQ0EsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFFaEUsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUVqQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7NEJBQ3pCLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQ3JCLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3RCLENBQUMsQ0FBQztxQkFDSjtpQkFDRjtZQUNILENBQUMsQ0FBQyxDQUNIO2lCQUNBLFNBQVMsRUFBRSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQzs7eUdBdkVVLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcnVzaFR5cGUgfSBmcm9tICcuLi9tb2RlbC9lbnVtL2JydXNoLXR5cGUnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgU3Vic2NyaXB0aW9uLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnJvYWRjYXN0U2VydmljZSB9IGZyb20gJy4vYnJvYWRjYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSUNoYXJ0Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvaS1jaGFydC1jb25maWcnO1xuaW1wb3J0IHtcbiAgQnJ1c2hNZXNzYWdlLFxuICBJQnJvYWRjYXN0TWVzc2FnZSxcbiAgWm9vbU1lc3NhZ2UsXG59IGZyb20gJy4uL21vZGVsL2ktYnJvYWRjYXN0LW1lc3NhZ2UnO1xuaW1wb3J0IHsgQXhpc09yaWVudGF0aW9uIH0gZnJvbSAnLi4vbW9kZWwvZW51bS9heGlzLW9yaWVudGF0aW9uJztcbmltcG9ydCB7IFNjYWxlU2VydmljZSB9IGZyb20gJy4vc2NhbGUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBCcnVzaFNlcnZpY2Uge1xuICBicm9hZGNhc3RTdWJzY3JpYnRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGJydXNoTWFwID0gbmV3IE1hcDxCcnVzaFR5cGUsIGQzLkJydXNoQmVoYXZpb3I8YW55Pj4oKVxuICAgIC5zZXQoQnJ1c2hUeXBlLngsIGQzLmJydXNoWCgpKVxuICAgIC5zZXQoQnJ1c2hUeXBlLnksIGQzLmJydXNoWSgpKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJyb2FkY2FzdFNlcnZpY2U6IEJyb2FkY2FzdFNlcnZpY2UpIHt9XG5cbiAgYXBwbHlCcnVzaChzdmdFbGVtZW50OiBFbGVtZW50UmVmLCBjb25maWc6IElDaGFydENvbmZpZywgYnJ1c2hTY2FsZTogYW55KSB7XG4gICAgdGhpcy5icm9hZGNhc3RTdWJzY3JpYnRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICBpZiAoY29uZmlnLmJydXNoPy5lbmFibGUpIHtcbiAgICAgIGNvbnN0IGJydXNoID0gdGhpcy5icnVzaE1hcC5nZXQoY29uZmlnPy5icnVzaD8udHlwZSA/PyBCcnVzaFR5cGUueCk7XG5cbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGQzLnNlbGVjdChzdmdFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICBjb25zdCBicnVzaEJlaGF2aW9yID0gYnJ1c2gub24oXG4gICAgICAgICdzdGFydCBicnVzaCBlbmQnLFxuICAgICAgICAoXzogZDMuRDNCcnVzaEV2ZW50PGFueT4pID0+IHtcbiAgICAgICAgICBpZiAoXy5zb3VyY2VFdmVudCkge1xuICAgICAgICAgICAgY29uc3QgW2Zyb20sIHRvXSA9IF8uc2VsZWN0aW9uIGFzIG51bWJlcltdO1xuXG4gICAgICAgICAgICBpZiAodG8gLSBmcm9tIDwgNSkge1xuICAgICAgICAgICAgICBjb250YWluZXIuY2FsbChicnVzaC5tb3ZlLCBbZnJvbSwgdG9dKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBicnVzaE1lc3NhZ2U6IEJydXNoTWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgZXZlbnQ6IF8sXG4gICAgICAgICAgICAgIHNlbGVjdGlvbjogW2JydXNoU2NhbGUuaW52ZXJ0KGZyb20pLCBicnVzaFNjYWxlLmludmVydCh0byldLFxuICAgICAgICAgICAgICBicnVzaFR5cGU6IGNvbmZpZz8uYnJ1c2g/LnR5cGUgPz8gQnJ1c2hUeXBlLngsXG4gICAgICAgICAgICAgIGJydXNoU2NhbGUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2UuYnJvYWRjYXN0KHtcbiAgICAgICAgICAgICAgY2hhbm5lbDogY29uZmlnPy56b29tPy5zeW5jQ2hhbm5lbCxcbiAgICAgICAgICAgICAgbWVzc2FnZTogYnJ1c2hNZXNzYWdlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29udGFpbmVyLmNhbGwoYnJ1c2hCZWhhdmlvcik7XG4gICAgICAgIGNvbnRhaW5lci5jYWxsKGJydXNoLm1vdmUsIGJydXNoU2NhbGUuZG9tYWluKCkubWFwKGJydXNoU2NhbGUpLCB7fSk7XG4gICAgICB9LCAwKTtcblxuICAgICAgdGhpcy5icm9hZGNhc3RTdWJzY3JpYnRpb24gPSB0aGlzLmJyb2FkY2FzdFNlcnZpY2VcbiAgICAgICAgLnN1YnNjcmliZVRvQ2hhbm5lbChjb25maWc/Lnpvb20/LnN5bmNDaGFubmVsKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKF8pID0+IHtcbiAgICAgICAgICAgIGlmICgnYXhpcycgaW4gXy5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBfLm1lc3NhZ2UuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnggJiZcbiAgICAgICAgICAgICAgICBfLm1lc3NhZ2UuYXhpcy5pbmRleCA9PT0gMFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNjYWxlZCA9IF8ubWVzc2FnZS5ldmVudC50cmFuc2Zvcm0ucmVzY2FsZVgoYnJ1c2hTY2FsZSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkb21haW4gPSByZXNjYWxlZC5kb21haW4oKTtcblxuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKGJydXNoLm1vdmUsIFtcbiAgICAgICAgICAgICAgICAgIGJydXNoU2NhbGUoZG9tYWluWzBdKSxcbiAgICAgICAgICAgICAgICAgIGJydXNoU2NhbGUoZG9tYWluWzFdKSxcbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,76 +1,94 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { map, Subject } from 'rxjs';
|
|
2
|
+
import { BehaviorSubject, filter, map, Subject } from 'rxjs';
|
|
3
|
+
import { defaultChartConfig } from '../default/default-chart-config';
|
|
4
|
+
import { defaultAxisConfig } from '../default/default-axis-config';
|
|
5
|
+
import { defaultSeriesConfig } from '../default/default-series-config';
|
|
3
6
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./axes.service";
|
|
5
|
-
import * as i2 from "./scale.service";
|
|
6
7
|
export class ChartService {
|
|
7
|
-
constructor(
|
|
8
|
-
this.
|
|
9
|
-
this.
|
|
10
|
-
this.
|
|
11
|
-
this.pointerMove$ = new Subject();
|
|
8
|
+
constructor() {
|
|
9
|
+
this.config$ = new BehaviorSubject(defaultChartConfig);
|
|
10
|
+
this.size$ = new BehaviorSubject(new DOMRectReadOnly());
|
|
11
|
+
this.pointerMove$ = new BehaviorSubject(null);
|
|
12
12
|
this.tooltips$ = new Subject();
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
13
|
+
this.plotBandEvent$ = new Subject();
|
|
14
|
+
this.plotLineMove$ = new Subject();
|
|
15
15
|
this.pointMove$ = new Subject();
|
|
16
|
-
this.
|
|
16
|
+
this.config = this.config$
|
|
17
|
+
.asObservable()
|
|
18
|
+
.pipe(map(this.setDefaults), map(this.setpreparationData));
|
|
19
|
+
this.size = this.size$
|
|
20
|
+
.asObservable()
|
|
21
|
+
.pipe(filter((_) => _.height > 0 && _.width > 0));
|
|
17
22
|
this.pointerMove = this.pointerMove$.asObservable();
|
|
18
23
|
this.tooltips = this.tooltips$.asObservable();
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
24
|
+
this.plotBandEvent = this.plotBandEvent$.asObservable();
|
|
25
|
+
this.plotLineMove = this.plotLineMove$.asObservable();
|
|
21
26
|
this.pointMove = this.pointMove$.asObservable();
|
|
22
|
-
this.
|
|
23
|
-
.
|
|
24
|
-
|
|
25
|
-
}))
|
|
26
|
-
.subscribe();
|
|
27
|
+
this.plotBandClick = this.plotBandEvent$
|
|
28
|
+
.asObservable()
|
|
29
|
+
.pipe(filter((_) => _?.event?.type === 'click'));
|
|
27
30
|
}
|
|
28
|
-
|
|
29
|
-
this.
|
|
30
|
-
if (config.inverted) {
|
|
31
|
-
this._config.series = this._config?.series?.map((serie) => {
|
|
32
|
-
return {
|
|
33
|
-
...serie,
|
|
34
|
-
data: serie?.data?.map((point) => {
|
|
35
|
-
return {
|
|
36
|
-
...point,
|
|
37
|
-
x: point?.y,
|
|
38
|
-
y: point?.x,
|
|
39
|
-
};
|
|
40
|
-
}),
|
|
41
|
-
};
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
this.axesService.init(this._config);
|
|
31
|
+
setConfig(config) {
|
|
32
|
+
this.config$.next(config);
|
|
45
33
|
}
|
|
46
34
|
setSize(size) {
|
|
47
35
|
this.size$.next(size);
|
|
48
36
|
}
|
|
49
37
|
setPointerMove(event) {
|
|
50
|
-
this.pointerMove$.next(
|
|
38
|
+
this.pointerMove$.next(event);
|
|
51
39
|
}
|
|
52
40
|
setTooltip(tooltip) {
|
|
53
41
|
this.tooltips$.next(tooltip);
|
|
54
42
|
}
|
|
55
43
|
emitPlotband(event) {
|
|
56
|
-
this.
|
|
44
|
+
this.plotBandEvent$.next(event);
|
|
57
45
|
}
|
|
58
46
|
emitPlotline(event) {
|
|
59
|
-
this.
|
|
47
|
+
this.plotLineMove$.next(event);
|
|
60
48
|
}
|
|
61
49
|
emitPoint(event) {
|
|
62
50
|
this.pointMove$.next(event);
|
|
63
51
|
}
|
|
64
|
-
|
|
65
|
-
|
|
52
|
+
setDefaults(config) {
|
|
53
|
+
const defaultConfig = (defaultConfig) => {
|
|
54
|
+
return (source) => {
|
|
55
|
+
return Object.assign({}, defaultConfig, source);
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
config = Object.assign({}, defaultChartConfig, config);
|
|
59
|
+
config.xAxis = config.xAxis.map(defaultConfig(defaultAxisConfig));
|
|
60
|
+
config.yAxis = config.yAxis.map(defaultConfig(defaultAxisConfig));
|
|
61
|
+
config.series = config.series.map(defaultConfig(defaultSeriesConfig));
|
|
62
|
+
return config;
|
|
63
|
+
}
|
|
64
|
+
setpreparationData(config) {
|
|
65
|
+
if (config.inverted) {
|
|
66
|
+
config.series = config.series?.map((serie) => {
|
|
67
|
+
return {
|
|
68
|
+
...serie,
|
|
69
|
+
data: serie?.data?.map((point) => {
|
|
70
|
+
return {
|
|
71
|
+
...point,
|
|
72
|
+
x: point?.y,
|
|
73
|
+
y: point?.x,
|
|
74
|
+
};
|
|
75
|
+
}),
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
if (config.brush.enable) {
|
|
80
|
+
config.yAxis = config.yAxis.map((_) => ({ ..._, zoom: false }));
|
|
81
|
+
config.xAxis = config.xAxis.map((_) => ({ ..._, zoom: false }));
|
|
82
|
+
}
|
|
83
|
+
return config;
|
|
66
84
|
}
|
|
67
85
|
}
|
|
68
|
-
ChartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartService, deps: [
|
|
86
|
+
ChartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
69
87
|
ChartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartService, providedIn: 'root' });
|
|
70
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartService, decorators: [{
|
|
71
89
|
type: Injectable,
|
|
72
90
|
args: [{
|
|
73
91
|
providedIn: 'root',
|
|
74
92
|
}]
|
|
75
|
-
}], ctorParameters: function () { return [
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQVdoRCxNQUFNLE9BQU8sWUFBWTtJQWlCdkIsWUFDVSxXQUF3QixFQUN4QixZQUEwQjtRQUQxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVg1QixVQUFLLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUMvQixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFDbEMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO1FBQzNDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQXlCLENBQUM7UUFDckQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztRQUNyRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7UUFRMUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFaEQsSUFBSSxDQUFDLElBQUk7YUFDTixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVNLElBQUksQ0FBQyxNQUFvQjtRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUV0QixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3hELE9BQU87b0JBQ0wsR0FBRyxLQUFLO29CQUNSLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO3dCQUMvQixPQUFPOzRCQUNMLEdBQUcsS0FBSzs0QkFDUixDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7NEJBQ1gsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO3lCQUNaLENBQUM7b0JBQ0osQ0FBQyxDQUFDO2lCQUNILENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBYTtRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQVU7UUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBd0I7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUE0QjtRQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQTRCO1FBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBOEI7UUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDOzt5R0FwRlUsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDaGFydENvbmZpZyB9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7IEF4ZXNTZXJ2aWNlIH0gZnJvbSAnLi9heGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTY2FsZVNlcnZpY2UgfSBmcm9tICcuL3NjYWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSUNoYXJ0RXZlbnQgfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWV2ZW50JztcbmltcG9ydCB7IElEaXNwbGF5VG9vbHRpcCB9IGZyb20gJy4uL21vZGVsL2ktZGlzcGxheS10b29sdGlwJztcbmltcG9ydCB7IFBsb3RiYW5kIH0gZnJvbSAnLi4vbW9kZWwvcGxvdGJhbmQnO1xuaW1wb3J0IHsgUGxvdExpbmUgfSBmcm9tICcuLi9tb2RlbC9wbG90bGluZSc7XG5pbXBvcnQgeyBJUG9pbnRNb3ZlIH0gZnJvbSAnLi4vbW9kZWwvaS1wb2ludC1tb3ZlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0U2VydmljZSB7XG4gIHB1YmxpYyBzaXplOiBPYnNlcnZhYmxlPERPTVJlY3Q+O1xuICBwdWJsaWMgcG9pbnRlck1vdmU6IE9ic2VydmFibGU8YW55PjtcbiAgcHVibGljIHRvb2x0aXBzOiBPYnNlcnZhYmxlPElEaXNwbGF5VG9vbHRpcD47XG4gIHB1YmxpYyBwbG90YmFuZE1vdmU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdGJhbmQ+PjtcbiAgcHVibGljIHBsb3RsaW5lTW92ZTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90TGluZT4+O1xuICBwdWJsaWMgcG9pbnRNb3ZlOiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PElQb2ludE1vdmU+PjtcblxuICBwcml2YXRlIHNpemUkID0gbmV3IFN1YmplY3Q8RE9NUmVjdD4oKTtcbiAgcHJpdmF0ZSBwb2ludGVyTW92ZSQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHByaXZhdGUgdG9vbHRpcHMkID0gbmV3IFN1YmplY3Q8SURpc3BsYXlUb29sdGlwPigpO1xuICBwcml2YXRlIHBsb3RiYW5kTW92ZSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxQbG90YmFuZD4+KCk7XG4gIHByaXZhdGUgcGxvdGxpbmVNb3ZlJCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PFBsb3RMaW5lPj4oKTtcbiAgcHJpdmF0ZSBwb2ludE1vdmUkID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8SVBvaW50TW92ZT4+KCk7XG5cbiAgcHJpdmF0ZSBfY29uZmlnOiBJQ2hhcnRDb25maWc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBheGVzU2VydmljZTogQXhlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzY2FsZVNlcnZpY2U6IFNjYWxlU2VydmljZVxuICApIHtcbiAgICB0aGlzLnNpemUgPSB0aGlzLnNpemUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucG9pbnRlck1vdmUgPSB0aGlzLnBvaW50ZXJNb3ZlJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnRvb2x0aXBzID0gdGhpcy50b29sdGlwcyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5wbG90YmFuZE1vdmUgPSB0aGlzLnBsb3RiYW5kTW92ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5wbG90bGluZU1vdmUgPSB0aGlzLnBsb3RsaW5lTW92ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5wb2ludE1vdmUgPSB0aGlzLnBvaW50TW92ZSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICB0aGlzLnNpemVcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHNpemUpID0+IHtcbiAgICAgICAgICB0aGlzLnNjYWxlU2VydmljZS5jcmVhdGVTY2FsZXMoc2l6ZSwgdGhpcy5fY29uZmlnKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KGNvbmZpZzogSUNoYXJ0Q29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuXG4gICAgaWYgKGNvbmZpZy5pbnZlcnRlZCkge1xuICAgICAgdGhpcy5fY29uZmlnLnNlcmllcyA9IHRoaXMuX2NvbmZpZz8uc2VyaWVzPy5tYXAoKHNlcmllKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc2VyaWUsXG4gICAgICAgICAgZGF0YTogc2VyaWU/LmRhdGE/Lm1hcCgocG9pbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnBvaW50LFxuICAgICAgICAgICAgICB4OiBwb2ludD8ueSxcbiAgICAgICAgICAgICAgeTogcG9pbnQ/LngsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5heGVzU2VydmljZS5pbml0KHRoaXMuX2NvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2l6ZShzaXplOiBET01SZWN0KSB7XG4gICAgdGhpcy5zaXplJC5uZXh0KHNpemUpO1xuICB9XG5cbiAgcHVibGljIHNldFBvaW50ZXJNb3ZlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnBvaW50ZXJNb3ZlJC5uZXh0KHsgZXZlbnQgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0VG9vbHRpcCh0b29sdGlwOiBJRGlzcGxheVRvb2x0aXApIHtcbiAgICB0aGlzLnRvb2x0aXBzJC5uZXh0KHRvb2x0aXApO1xuICB9XG5cbiAgcHVibGljIGVtaXRQbG90YmFuZChldmVudDogSUNoYXJ0RXZlbnQ8UGxvdGJhbmQ+KSB7XG4gICAgdGhpcy5wbG90YmFuZE1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQbG90bGluZShldmVudDogSUNoYXJ0RXZlbnQ8UGxvdExpbmU+KSB7XG4gICAgdGhpcy5wbG90bGluZU1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQb2ludChldmVudDogSUNoYXJ0RXZlbnQ8SVBvaW50TW92ZT4pIHtcbiAgICB0aGlzLnBvaW50TW92ZSQubmV4dChldmVudCk7XG4gIH1cblxuICBnZXQgY29uZmlnKCk6IElDaGFydENvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZztcbiAgfVxufVxuIl19
|
|
93
|
+
}], ctorParameters: function () { return []; } });
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTXpFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUt2RSxNQUFNLE9BQU8sWUFBWTtJQWtCdkI7UUFSUSxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQWUsa0JBQWtCLENBQUMsQ0FBQztRQUNoRSxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzVELGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQWUsSUFBSSxDQUFDLENBQUM7UUFDdkQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO1FBQzNDLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQXlCLENBQUM7UUFDdEQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztRQUNyRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7UUFHMUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTzthQUN2QixZQUFZLEVBQUU7YUFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLO2FBQ25CLFlBQVksRUFBRTthQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWM7YUFDckMsWUFBWSxFQUFFO2FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sU0FBUyxDQUFDLE1BQW9CO1FBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBYTtRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQW1CO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBd0I7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUE0QjtRQUM5QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQTRCO1FBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBOEI7UUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxNQUFvQjtRQUN0QyxNQUFNLGFBQWEsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQ3RDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDaEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBQ0YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUNsRSxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFDbEUsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxNQUFvQjtRQUM3QyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDbkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUMzQyxPQUFPO29CQUNMLEdBQUcsS0FBSztvQkFDUixJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDL0IsT0FBTzs0QkFDTCxHQUFHLEtBQUs7NEJBQ1IsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDOzRCQUNYLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQzt5QkFDWixDQUFDO29CQUNKLENBQUMsQ0FBQztpQkFDSCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDdkIsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEUsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDakU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzt5R0FuR1UsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDaGFydENvbmZpZyB9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElDaGFydEV2ZW50IH0gZnJvbSAnLi4vbW9kZWwvaS1jaGFydC1ldmVudCc7XG5pbXBvcnQgeyBJRGlzcGxheVRvb2x0aXAgfSBmcm9tICcuLi9tb2RlbC9pLWRpc3BsYXktdG9vbHRpcCc7XG5pbXBvcnQgeyBQbG90QmFuZCB9IGZyb20gJy4uL21vZGVsL3Bsb3QtYmFuZCc7XG5pbXBvcnQgeyBQbG90TGluZSB9IGZyb20gJy4uL21vZGVsL3Bsb3QtbGluZSc7XG5pbXBvcnQgeyBJUG9pbnRNb3ZlIH0gZnJvbSAnLi4vbW9kZWwvaS1wb2ludC1tb3ZlJztcbmltcG9ydCB7IGRlZmF1bHRDaGFydENvbmZpZyB9IGZyb20gJy4uL2RlZmF1bHQvZGVmYXVsdC1jaGFydC1jb25maWcnO1xuaW1wb3J0IHsgZGVmYXVsdEF4aXNDb25maWcgfSBmcm9tICcuLi9kZWZhdWx0L2RlZmF1bHQtYXhpcy1jb25maWcnO1xuaW1wb3J0IHsgZGVmYXVsdFNlcmllc0NvbmZpZyB9IGZyb20gJy4uL2RlZmF1bHQvZGVmYXVsdC1zZXJpZXMtY29uZmlnJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0U2VydmljZSB7XG4gIHB1YmxpYyBjb25maWc6IE9ic2VydmFibGU8SUNoYXJ0Q29uZmlnPjtcbiAgcHVibGljIHNpemU6IE9ic2VydmFibGU8RE9NUmVjdD47XG4gIHB1YmxpYyBwb2ludGVyTW92ZTogT2JzZXJ2YWJsZTxQb2ludGVyRXZlbnQ+O1xuICBwdWJsaWMgdG9vbHRpcHM6IE9ic2VydmFibGU8SURpc3BsYXlUb29sdGlwPjtcbiAgcHVibGljIHBsb3RCYW5kRXZlbnQ6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+PjtcbiAgcHVibGljIHBsb3RMaW5lTW92ZTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90TGluZT4+O1xuICBwdWJsaWMgcGxvdEJhbmRDbGljazogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90QmFuZD4+O1xuICBwdWJsaWMgcG9pbnRNb3ZlOiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PElQb2ludE1vdmU+PjtcblxuICBwcml2YXRlIGNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElDaGFydENvbmZpZz4oZGVmYXVsdENoYXJ0Q29uZmlnKTtcbiAgcHJpdmF0ZSBzaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RE9NUmVjdD4obmV3IERPTVJlY3RSZWFkT25seSgpKTtcbiAgcHJpdmF0ZSBwb2ludGVyTW92ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBvaW50ZXJFdmVudD4obnVsbCk7XG4gIHByaXZhdGUgdG9vbHRpcHMkID0gbmV3IFN1YmplY3Q8SURpc3BsYXlUb29sdGlwPigpO1xuICBwcml2YXRlIHBsb3RCYW5kRXZlbnQkID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+PigpO1xuICBwcml2YXRlIHBsb3RMaW5lTW92ZSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxQbG90TGluZT4+KCk7XG4gIHByaXZhdGUgcG9pbnRNb3ZlJCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PElQb2ludE1vdmU+PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy5jb25maWckXG4gICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKG1hcCh0aGlzLnNldERlZmF1bHRzKSwgbWFwKHRoaXMuc2V0cHJlcGFyYXRpb25EYXRhKSk7XG4gICAgdGhpcy5zaXplID0gdGhpcy5zaXplJFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAucGlwZShmaWx0ZXIoKF8pID0+IF8uaGVpZ2h0ID4gMCAmJiBfLndpZHRoID4gMCkpO1xuXG4gICAgdGhpcy5wb2ludGVyTW92ZSA9IHRoaXMucG9pbnRlck1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMudG9vbHRpcHMgPSB0aGlzLnRvb2x0aXBzJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnBsb3RCYW5kRXZlbnQgPSB0aGlzLnBsb3RCYW5kRXZlbnQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucGxvdExpbmVNb3ZlID0gdGhpcy5wbG90TGluZU1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucG9pbnRNb3ZlID0gdGhpcy5wb2ludE1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucGxvdEJhbmRDbGljayA9IHRoaXMucGxvdEJhbmRFdmVudCRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NsaWNrJykpO1xuICB9XG5cbiAgcHVibGljIHNldENvbmZpZyhjb25maWc6IElDaGFydENvbmZpZykge1xuICAgIHRoaXMuY29uZmlnJC5uZXh0KGNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2l6ZShzaXplOiBET01SZWN0KSB7XG4gICAgdGhpcy5zaXplJC5uZXh0KHNpemUpO1xuICB9XG5cbiAgcHVibGljIHNldFBvaW50ZXJNb3ZlKGV2ZW50OiBQb2ludGVyRXZlbnQpIHtcbiAgICB0aGlzLnBvaW50ZXJNb3ZlJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUb29sdGlwKHRvb2x0aXA6IElEaXNwbGF5VG9vbHRpcCkge1xuICAgIHRoaXMudG9vbHRpcHMkLm5leHQodG9vbHRpcCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFBsb3RiYW5kKGV2ZW50OiBJQ2hhcnRFdmVudDxQbG90QmFuZD4pIHtcbiAgICB0aGlzLnBsb3RCYW5kRXZlbnQkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQbG90bGluZShldmVudDogSUNoYXJ0RXZlbnQ8UGxvdExpbmU+KSB7XG4gICAgdGhpcy5wbG90TGluZU1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQb2ludChldmVudDogSUNoYXJ0RXZlbnQ8SVBvaW50TW92ZT4pIHtcbiAgICB0aGlzLnBvaW50TW92ZSQubmV4dChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRzKGNvbmZpZzogSUNoYXJ0Q29uZmlnKTogSUNoYXJ0Q29uZmlnIHtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnID0gKGRlZmF1bHRDb25maWcpID0+IHtcbiAgICAgIHJldHVybiAoc291cmNlKSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0Q29uZmlnLCBzb3VyY2UpO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRDaGFydENvbmZpZywgY29uZmlnKTtcbiAgICBjb25maWcueEF4aXMgPSBjb25maWcueEF4aXMubWFwKGRlZmF1bHRDb25maWcoZGVmYXVsdEF4aXNDb25maWcpKTtcbiAgICBjb25maWcueUF4aXMgPSBjb25maWcueUF4aXMubWFwKGRlZmF1bHRDb25maWcoZGVmYXVsdEF4aXNDb25maWcpKTtcbiAgICBjb25maWcuc2VyaWVzID0gY29uZmlnLnNlcmllcy5tYXAoZGVmYXVsdENvbmZpZyhkZWZhdWx0U2VyaWVzQ29uZmlnKSk7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgc2V0cHJlcGFyYXRpb25EYXRhKGNvbmZpZzogSUNoYXJ0Q29uZmlnKTogSUNoYXJ0Q29uZmlnIHtcbiAgICBpZiAoY29uZmlnLmludmVydGVkKSB7XG4gICAgICBjb25maWcuc2VyaWVzID0gY29uZmlnLnNlcmllcz8ubWFwKChzZXJpZSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnNlcmllLFxuICAgICAgICAgIGRhdGE6IHNlcmllPy5kYXRhPy5tYXAoKHBvaW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5wb2ludCxcbiAgICAgICAgICAgICAgeDogcG9pbnQ/LnksXG4gICAgICAgICAgICAgIHk6IHBvaW50Py54LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjb25maWcuYnJ1c2guZW5hYmxlKSB7XG4gICAgICBjb25maWcueUF4aXMgPSBjb25maWcueUF4aXMubWFwKChfKSA9PiAoeyAuLi5fLCB6b29tOiBmYWxzZSB9KSk7XG4gICAgICBjb25maWcueEF4aXMgPSBjb25maWcueEF4aXMubWFwKChfKSA9PiAoeyAuLi5fLCB6b29tOiBmYWxzZSB9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxufVxuIl19
|