@tetacom/svg-charts 1.2.3 → 1.2.6

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.
Files changed (37) hide show
  1. package/chart/chart/chart.component.d.ts +2 -1
  2. package/chart/chart-container/chart-container.component.d.ts +5 -7
  3. package/chart/chart-container/series/linear-series-base.d.ts +1 -1
  4. package/chart/chart-container/series/scatter-series/scatter-series.component.d.ts +0 -1
  5. package/chart/chart-container/x-axis/x-axis.component.d.ts +2 -4
  6. package/chart/core/axis/axis.d.ts +3 -0
  7. package/chart/model/i-scales-map.d.ts +5 -0
  8. package/chart/model/public-api.d.ts +1 -0
  9. package/chart/service/chart.service.d.ts +4 -0
  10. package/chart/service/scale.service.d.ts +2 -5
  11. package/esm2020/chart/chart/chart.component.mjs +14 -6
  12. package/esm2020/chart/chart-container/annotation/annotation.component.mjs +3 -3
  13. package/esm2020/chart/chart-container/chart-container.component.mjs +20 -29
  14. package/esm2020/chart/chart-container/gridlines/gridlines.component.mjs +7 -7
  15. package/esm2020/chart/chart-container/series/area-series/area-series.component.mjs +6 -9
  16. package/esm2020/chart/chart-container/series/bar/bar-series.component.mjs +5 -5
  17. package/esm2020/chart/chart-container/series/block-area-series/block-area-series.component.mjs +3 -3
  18. package/esm2020/chart/chart-container/series/block-series/block-series.component.mjs +3 -3
  19. package/esm2020/chart/chart-container/series/linear-series-base.mjs +21 -26
  20. package/esm2020/chart/chart-container/series/scatter-series/scatter-series.component.mjs +3 -3
  21. package/esm2020/chart/chart-container/x-axis/x-axis.component.mjs +3 -27
  22. package/esm2020/chart/chart-container/y-axis/y-axis.component.mjs +3 -3
  23. package/esm2020/chart/core/axis/axis.mjs +7 -1
  24. package/esm2020/chart/default/default-axis-config.mjs +2 -2
  25. package/esm2020/chart/directives/brushable.directive.mjs +1 -1
  26. package/esm2020/chart/directives/zoomable.directive.mjs +4 -3
  27. package/esm2020/chart/model/i-scales-map.mjs +2 -0
  28. package/esm2020/chart/model/public-api.mjs +2 -1
  29. package/esm2020/chart/service/brush.service.mjs +16 -13
  30. package/esm2020/chart/service/chart.service.mjs +6 -1
  31. package/esm2020/chart/service/scale.service.mjs +37 -65
  32. package/esm2020/chart/service/zoom.service.mjs +2 -2
  33. package/fesm2015/tetacom-svg-charts.mjs +149 -194
  34. package/fesm2015/tetacom-svg-charts.mjs.map +1 -1
  35. package/fesm2020/tetacom-svg-charts.mjs +141 -188
  36. package/fesm2020/tetacom-svg-charts.mjs.map +1 -1
  37. package/package.json +1 -1
@@ -21,8 +21,8 @@ export class BlockAreaSeriesComponent extends SeriesBaseComponent {
21
21
  }
22
22
  ngOnInit() {
23
23
  const defaultVisiblePixels = 0;
24
- this.x = this.scaleService.xScaleMap.pipe(map((_) => _.get(this.series.xAxisIndex)));
25
- this.y = this.scaleService.yScaleMap.pipe(map((_) => _.get(this.series.yAxisIndex)));
24
+ this.x = this.scaleService.scales.pipe(map((_) => _.x.get(this.series.xAxisIndex).scale));
25
+ this.y = this.scaleService.scales.pipe(map((_) => _.y.get(this.series.yAxisIndex).scale));
26
26
  this.displayPoints = this.y.pipe(map((y) => {
27
27
  return this.series.data.filter((point, index, arr) => {
28
28
  const [min, max] = y.domain();
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
58
58
  type: Component,
59
59
  args: [{ selector: 'svg:svg[teta-block-area-series]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"{\n y: y | async,\n x: x | async,\n points: displayPoints | async\n} as data\">\n <svg:defs *ngIf=\"series?.fillType === fillType.gradient\">\n <svg:linearGradient [id]=\"'gradient-fill-' + id\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"0%\"\n [attr.y1]=\"config?.inverted ? '0%' : '100%'\"\n [attr.x2]=\"config?.inverted ? '100%' : '0%'\"\n y2=\"0%\">\n <svg:stop offset=\"0%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n <ng-container *ngFor=\"let point of data.points\">\n <svg:g (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\">\n <svg:rect\n *ngIf=\"!!config.inverted\"\n [attr.x]=\"data.x(0) < data.x(point.x) ? data.x(0) : data.x(point.x)\"\n [attr.y]=\"data.y(point.y)\"\n [attr.height]=\"Math.abs(data.y(point.y1) - data.y(point.y))\"\n [attr.width]=\"data.x(0) < data.x(point.x) ? data.x(point.x) - data.x(0) : data.x(0) - data.x(point.x)\"\n [attr.stroke]=\"point.iconId ? '' : point.color ?? series.color\"\n [attr.stroke-dasharray]=\"series.style?.strokeDasharray\"\n [attr.stroke-width]=\"series.style?.strokeWidth\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : point.iconId ? 'url(#pattern'+point.iconId+')' : point.color ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\">\n </svg:rect>\n <svg:rect\n *ngIf=\"!config.inverted\"\n [attr.x]=\"data.x(point.x)\"\n [attr.y]=\"data.y(0)\"\n [attr.height]=\"Math.abs(data.y(0) - data.y(point.y))\"\n [attr.width]=\"data.x(point.x1) - data.x(point.x)\"\n [attr.stroke]=\"point.iconId ? '' : point.color ?? series.color\"\n [attr.stroke-dasharray]=\"series.style?.strokeDasharray\"\n [attr.stroke-width]=\"series.style?.strokeWidth\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : point.iconId ? 'url(#pattern'+point.iconId+')' : point.color ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\">\n </svg:rect>\n <svg:text *ngIf=\"point.text\"\n x=\"50%\"\n [attr.y]=\"(data.y(point.y1) + data.y(point.y)) / 2\"\n alignment-baseline=\"middle\"\n text-anchor=\"middle\">{{ point.text }}\n </svg:text>\n\n <!-- <svg:line x1=\"0\" x2=\"100%\" [attr.y1]=\"data.y(point.y)\" [attr.y2]=\"data.y(point.y)\" [attr.stroke]=\"point.iconId ? 'var(&#45;&#45;color-text-10)' : point.color ?? series.color\"></svg:line>-->\n <!-- <svg:line x1=\"0\" x2=\"100%\" [attr.y1]=\"data.y(point.y1)\" [attr.y2]=\"data.y(point.y1)\" [attr.stroke]=\"point.iconId ? 'var(&#45;&#45;color-text-10)' : point.color ?? series.color\"></svg:line>-->\n\n </svg:g>\n </ng-container>\n\n\n</ng-container>\n" }]
60
60
  }], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }]; } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFLeEUsT0FBTyxFQUFDLEdBQUcsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQVF2RCxNQUFNLE9BQU8sd0JBQ1gsU0FBUSxtQkFBc0I7SUFROUIsWUFDcUIsR0FBaUIsRUFDakIsR0FBc0IsRUFDdEIsWUFBMEIsRUFDMUIsV0FBd0IsRUFDeEIsT0FBbUI7UUFFdEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQU5qQyxRQUFHLEdBQUgsR0FBRyxDQUFjO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFSeEMsYUFBUSxHQUFHLFFBQVEsQ0FBQztRQUVwQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBU1YsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVRLFFBQVE7UUFDZixNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDdkMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDMUMsQ0FBQztRQUNGLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUN2QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUMxQyxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDOUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQ25ELE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHO29CQUNsQixLQUFLLENBQUMsRUFBRSxJQUFJLEdBQUc7b0JBQ2YsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRztvQkFDeEIsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDO29CQUM1QixDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksR0FBRzt3QkFDYixLQUFLLENBQUMsRUFBRSxJQUFJLEdBQUc7d0JBQ2YsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRzt3QkFDeEIsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7SUFDZixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2xCLEtBQUssRUFBRSxLQUFLO1lBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBZ0I7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDbEIsS0FBSyxFQUFFLElBQUk7WUFDWCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7cUhBOURVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDhGQ3RCckMsODNHQTZEQTsyRkR2Q2Esd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLGlDQUFpQyxtQkFHMUIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTZXJpZXNCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9iYXNlL3Nlcmllcy1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvYmFzZS1wb2ludCc7XG5pbXBvcnQge0NoYXJ0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7U2NhbGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3NjYWxlLnNlcnZpY2UnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHttYXAsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWxsVHlwZX0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZW51bS9maWxsLXR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdmc6c3ZnW3RldGEtYmxvY2stYXJlYS1zZXJpZXNdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jsb2NrLWFyZWEtc2VyaWVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJsb2NrQXJlYVNlcmllc0NvbXBvbmVudDxUIGV4dGVuZHMgQmFzZVBvaW50PlxuICBleHRlbmRzIFNlcmllc0Jhc2VDb21wb25lbnQ8VD5cbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICB4OiBPYnNlcnZhYmxlPGFueT47XG4gIHk6IE9ic2VydmFibGU8YW55PjtcbiAgZGlzcGxheVBvaW50czogT2JzZXJ2YWJsZTxCYXNlUG9pbnRbXT47XG4gIGZpbGxUeXBlID0gRmlsbFR5cGU7XG4gIGlkOiBzdHJpbmc7XG4gIE1hdGggPSBNYXRoO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc3ZjOiBDaGFydFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNjYWxlU2VydmljZTogU2NhbGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB6b29tU2VydmljZTogWm9vbVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGVsZW1lbnQ6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgc3VwZXIoc3ZjLCBjZHIsIHNjYWxlU2VydmljZSwgem9vbVNlcnZpY2UsIGVsZW1lbnQpO1xuICAgIHRoaXMuaWQgPSAoRGF0ZS5ub3coKSArIE1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKDM2KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRWaXNpYmxlUGl4ZWxzID0gMDtcblxuICAgIHRoaXMueCA9IHRoaXMuc2NhbGVTZXJ2aWNlLnhTY2FsZU1hcC5waXBlKFxuICAgICAgbWFwKChfKSA9PiBfLmdldCh0aGlzLnNlcmllcy54QXhpc0luZGV4KSlcbiAgICApO1xuICAgIHRoaXMueSA9IHRoaXMuc2NhbGVTZXJ2aWNlLnlTY2FsZU1hcC5waXBlKFxuICAgICAgbWFwKChfKSA9PiBfLmdldCh0aGlzLnNlcmllcy55QXhpc0luZGV4KSlcbiAgICApO1xuXG4gICAgdGhpcy5kaXNwbGF5UG9pbnRzID0gdGhpcy55LnBpcGUoXG4gICAgICBtYXAoKHkpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWVzLmRhdGEuZmlsdGVyKChwb2ludCwgaW5kZXgsIGFycikgPT4ge1xuICAgICAgICAgIGNvbnN0IFttaW4sIG1heF0gPSB5LmRvbWFpbigpO1xuICAgICAgICAgIHJldHVybiAocG9pbnQueSA+PSBtaW4gfHxcbiAgICAgICAgICAgICAgcG9pbnQueTEgPj0gbWluIHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCArIDFdPy55ID49IG1pbiB8fFxuICAgICAgICAgICAgICBhcnJbaW5kZXggKyAxXT8ueTEgPj0gbWluKSAmJlxuICAgICAgICAgICAgKHBvaW50LnkgPD0gbWF4IHx8XG4gICAgICAgICAgICAgIHBvaW50LnkxIDw9IG1heCB8fFxuICAgICAgICAgICAgICBhcnJbaW5kZXggLSAxXT8ueSA8PSBtYXggfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4IC0gMV0/LnkxIDw9IG1heCk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICB9XG5cbiAgbW91c2VlbnRlcihwb2ludDogQmFzZVBvaW50KSB7XG4gICAgdGhpcy5zdmMuc2V0VG9vbHRpcCh7XG4gICAgICBwb2ludDogcG9pbnQsXG4gICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgIH0pO1xuICB9XG5cbiAgbW91c2VsZWF2ZShwb2ludDogQmFzZVBvaW50KSB7XG4gICAgdGhpcy5zdmMuc2V0VG9vbHRpcCh7XG4gICAgICBwb2ludDogbnVsbCxcbiAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ7XG4gIHk6IHkgfCBhc3luYyxcbiAgeDogeCB8IGFzeW5jLFxuICBwb2ludHM6IGRpc3BsYXlQb2ludHMgfCBhc3luY1xufSBhcyBkYXRhXCI+XG4gIDxzdmc6ZGVmcyAqbmdJZj1cInNlcmllcz8uZmlsbFR5cGUgPT09IGZpbGxUeXBlLmdyYWRpZW50XCI+XG4gICAgPHN2ZzpsaW5lYXJHcmFkaWVudCBbaWRdPVwiJ2dyYWRpZW50LWZpbGwtJyArIGlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB4MT1cIjAlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnkxXT1cImNvbmZpZz8uaW52ZXJ0ZWQgPyAnMCUnIDogJzEwMCUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLngyXT1cImNvbmZpZz8uaW52ZXJ0ZWQgPyAnMTAwJScgOiAnMCUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHkyPVwiMCVcIj5cbiAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMFwiPjwvc3ZnOnN0b3A+XG4gICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiNSVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjAuMVwiPjwvc3ZnOnN0b3A+XG4gICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiMjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjJcIj48L3N2ZzpzdG9wPlxuICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjYwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC41XCI+PC9zdmc6c3RvcD5cbiAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIxMDAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjlcIj48L3N2ZzpzdG9wPlxuICAgIDwvc3ZnOmxpbmVhckdyYWRpZW50PlxuICA8L3N2ZzpkZWZzPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwb2ludCBvZiBkYXRhLnBvaW50c1wiPlxuICAgIDxzdmc6ZyAobW91c2VlbnRlcik9XCJtb3VzZWVudGVyKHBvaW50KVwiXG4gICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlbGVhdmUocG9pbnQpXCI+XG4gICAgICA8c3ZnOnJlY3RcbiAgICAgICAgKm5nSWY9XCIhIWNvbmZpZy5pbnZlcnRlZFwiXG4gICAgICAgIFthdHRyLnhdPVwiZGF0YS54KDApIDwgZGF0YS54KHBvaW50LngpID8gZGF0YS54KDApIDogZGF0YS54KHBvaW50LngpXCJcbiAgICAgICAgW2F0dHIueV09XCJkYXRhLnkocG9pbnQueSlcIlxuICAgICAgICBbYXR0ci5oZWlnaHRdPVwiTWF0aC5hYnMoZGF0YS55KHBvaW50LnkxKSAtIGRhdGEueShwb2ludC55KSlcIlxuICAgICAgICBbYXR0ci53aWR0aF09XCJkYXRhLngoMCkgPCBkYXRhLngocG9pbnQueCkgPyBkYXRhLngocG9pbnQueCkgLSBkYXRhLngoMCkgOiBkYXRhLngoMCkgLSBkYXRhLngocG9pbnQueClcIlxuICAgICAgICBbYXR0ci5zdHJva2VdPVwicG9pbnQuaWNvbklkID8gJycgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuY29sb3JcIlxuICAgICAgICBbYXR0ci5zdHJva2UtZGFzaGFycmF5XT1cInNlcmllcy5zdHlsZT8uc3Ryb2tlRGFzaGFycmF5XCJcbiAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInNlcmllcy5zdHlsZT8uc3Ryb2tlV2lkdGhcIlxuICAgICAgICBbYXR0ci5maWxsXT1cInNlcmllcy5maWxsVHlwZSA9PT0gZmlsbFR5cGUuZ3JhZGllbnQgPyAndXJsKCNncmFkaWVudC1maWxsLScraWQrJyknIDogcG9pbnQuaWNvbklkID8gJ3VybCgjcGF0dGVybicrcG9pbnQuaWNvbklkKycpJyA6IHBvaW50LmNvbG9yID8/IHNlcmllcy5jb2xvclwiXG4gICAgICAgIFthdHRyLmZpbGwtb3BhY2l0eV09XCJzZXJpZXMuc3R5bGU/LmZpbGxPcGFjaXR5XCI+XG4gICAgICA8L3N2ZzpyZWN0PlxuICAgICAgPHN2ZzpyZWN0XG4gICAgICAgICpuZ0lmPVwiIWNvbmZpZy5pbnZlcnRlZFwiXG4gICAgICAgIFthdHRyLnhdPVwiZGF0YS54KHBvaW50LngpXCJcbiAgICAgICAgW2F0dHIueV09XCJkYXRhLnkoMClcIlxuICAgICAgICBbYXR0ci5oZWlnaHRdPVwiTWF0aC5hYnMoZGF0YS55KDApIC0gZGF0YS55KHBvaW50LnkpKVwiXG4gICAgICAgIFthdHRyLndpZHRoXT1cImRhdGEueChwb2ludC54MSkgLSBkYXRhLngocG9pbnQueClcIlxuICAgICAgICBbYXR0ci5zdHJva2VdPVwicG9pbnQuaWNvbklkID8gJycgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuY29sb3JcIlxuICAgICAgICBbYXR0ci5zdHJva2UtZGFzaGFycmF5XT1cInNlcmllcy5zdHlsZT8uc3Ryb2tlRGFzaGFycmF5XCJcbiAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInNlcmllcy5zdHlsZT8uc3Ryb2tlV2lkdGhcIlxuICAgICAgICBbYXR0ci5maWxsXT1cInNlcmllcy5maWxsVHlwZSA9PT0gZmlsbFR5cGUuZ3JhZGllbnQgPyAndXJsKCNncmFkaWVudC1maWxsLScraWQrJyknIDogcG9pbnQuaWNvbklkID8gJ3VybCgjcGF0dGVybicrcG9pbnQuaWNvbklkKycpJyA6IHBvaW50LmNvbG9yID8/IHNlcmllcy5jb2xvclwiXG4gICAgICAgIFthdHRyLmZpbGwtb3BhY2l0eV09XCJzZXJpZXMuc3R5bGU/LmZpbGxPcGFjaXR5XCI+XG4gICAgICA8L3N2ZzpyZWN0PlxuICAgICAgPHN2Zzp0ZXh0ICpuZ0lmPVwicG9pbnQudGV4dFwiXG4gICAgICAgICAgICAgICAgeD1cIjUwJVwiXG4gICAgICAgICAgICAgICAgW2F0dHIueV09XCIoZGF0YS55KHBvaW50LnkxKSArIGRhdGEueShwb2ludC55KSkgLyAyXCJcbiAgICAgICAgICAgICAgICBhbGlnbm1lbnQtYmFzZWxpbmU9XCJtaWRkbGVcIlxuICAgICAgICAgICAgICAgIHRleHQtYW5jaG9yPVwibWlkZGxlXCI+e3sgcG9pbnQudGV4dCB9fVxuICAgICAgPC9zdmc6dGV4dD5cblxuICAgICAgPCEtLSAgICAgIDxzdmc6bGluZSB4MT1cIjBcIiB4Mj1cIjEwMCVcIiBbYXR0ci55MV09XCJkYXRhLnkocG9pbnQueSlcIiBbYXR0ci55Ml09XCJkYXRhLnkocG9pbnQueSlcIiBbYXR0ci5zdHJva2VdPVwicG9pbnQuaWNvbklkID8gJ3ZhcigmIzQ1OyYjNDU7Y29sb3ItdGV4dC0xMCknIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLmNvbG9yXCI+PC9zdmc6bGluZT4tLT5cbiAgICAgIDwhLS0gICAgICA8c3ZnOmxpbmUgeDE9XCIwXCIgeDI9XCIxMDAlXCIgW2F0dHIueTFdPVwiZGF0YS55KHBvaW50LnkxKVwiIFthdHRyLnkyXT1cImRhdGEueShwb2ludC55MSlcIiBbYXR0ci5zdHJva2VdPVwicG9pbnQuaWNvbklkID8gJ3ZhcigmIzQ1OyYjNDU7Y29sb3ItdGV4dC0xMCknIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLmNvbG9yXCI+PC9zdmc6bGluZT4tLT5cblxuICAgIDwvc3ZnOmc+XG4gIDwvbmctY29udGFpbmVyPlxuXG5cbjwvbmctY29udGFpbmVyPlxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFLeEUsT0FBTyxFQUFDLEdBQUcsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQVF2RCxNQUFNLE9BQU8sd0JBQ1gsU0FBUSxtQkFBc0I7SUFROUIsWUFDcUIsR0FBaUIsRUFDakIsR0FBc0IsRUFDdEIsWUFBMEIsRUFDMUIsV0FBd0IsRUFDeEIsT0FBbUI7UUFFdEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQU5qQyxRQUFHLEdBQUgsR0FBRyxDQUFjO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFSeEMsYUFBUSxHQUFHLFFBQVEsQ0FBQztRQUVwQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBU1YsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVRLFFBQVE7UUFDZixNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDcEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUNsRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDbEQsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO2dCQUNuRCxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksR0FBRztvQkFDbEIsS0FBSyxDQUFDLEVBQUUsSUFBSSxHQUFHO29CQUNmLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUc7b0JBQ3hCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FBQztvQkFDNUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUc7d0JBQ2IsS0FBSyxDQUFDLEVBQUUsSUFBSSxHQUFHO3dCQUNmLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUc7d0JBQ3hCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlO0lBQ2YsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQjtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNsQixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2xCLEtBQUssRUFBRSxJQUFJO1lBQ1gsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7O3FIQTlEVSx3QkFBd0I7eUdBQXhCLHdCQUF3Qiw4RkN0QnJDLDgzR0E2REE7MkZEdkNhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxpQ0FBaUMsbUJBRzFCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2VyaWVzQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vYmFzZS9zZXJpZXMtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHtCYXNlUG9pbnR9IGZyb20gJy4uLy4uLy4uL21vZGVsL2Jhc2UtcG9pbnQnO1xuaW1wb3J0IHtDaGFydFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQge1NjYWxlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvem9vbS5zZXJ2aWNlJztcbmltcG9ydCB7bWFwLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7RmlsbFR5cGV9IGZyb20gJy4uLy4uLy4uL21vZGVsL2VudW0vZmlsbC10eXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3ZnOnN2Z1t0ZXRhLWJsb2NrLWFyZWEtc2VyaWVzXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ibG9jay1hcmVhLXNlcmllcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Jsb2NrLWFyZWEtc2VyaWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCbG9ja0FyZWFTZXJpZXNDb21wb25lbnQ8VCBleHRlbmRzIEJhc2VQb2ludD5cbiAgZXh0ZW5kcyBTZXJpZXNCYXNlQ29tcG9uZW50PFQ+XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgeDogT2JzZXJ2YWJsZTxhbnk+O1xuICB5OiBPYnNlcnZhYmxlPGFueT47XG4gIGRpc3BsYXlQb2ludHM6IE9ic2VydmFibGU8QmFzZVBvaW50W10+O1xuICBmaWxsVHlwZSA9IEZpbGxUeXBlO1xuICBpZDogc3RyaW5nO1xuICBNYXRoID0gTWF0aDtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHN2YzogQ2hhcnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzY2FsZVNlcnZpY2U6IFNjYWxlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgem9vbVNlcnZpY2U6IFpvb21TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBlbGVtZW50OiBFbGVtZW50UmVmXG4gICkge1xuICAgIHN1cGVyKHN2YywgY2RyLCBzY2FsZVNlcnZpY2UsIHpvb21TZXJ2aWNlLCBlbGVtZW50KTtcbiAgICB0aGlzLmlkID0gKERhdGUubm93KCkgKyBNYXRoLnJhbmRvbSgpKS50b1N0cmluZygzNik7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0VmlzaWJsZVBpeGVscyA9IDA7XG5cbiAgICB0aGlzLnggPSB0aGlzLnNjYWxlU2VydmljZS5zY2FsZXMucGlwZShcbiAgICAgIG1hcCgoXykgPT4gXy54LmdldCh0aGlzLnNlcmllcy54QXhpc0luZGV4KS5zY2FsZSlcbiAgICApO1xuICAgIHRoaXMueSA9IHRoaXMuc2NhbGVTZXJ2aWNlLnNjYWxlcy5waXBlKFxuICAgICAgbWFwKChfKSA9PiBfLnkuZ2V0KHRoaXMuc2VyaWVzLnlBeGlzSW5kZXgpLnNjYWxlKVxuICAgICk7XG5cbiAgICB0aGlzLmRpc3BsYXlQb2ludHMgPSB0aGlzLnkucGlwZShcbiAgICAgIG1hcCgoeSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJpZXMuZGF0YS5maWx0ZXIoKHBvaW50LCBpbmRleCwgYXJyKSA9PiB7XG4gICAgICAgICAgY29uc3QgW21pbiwgbWF4XSA9IHkuZG9tYWluKCk7XG4gICAgICAgICAgcmV0dXJuIChwb2ludC55ID49IG1pbiB8fFxuICAgICAgICAgICAgICBwb2ludC55MSA+PSBtaW4gfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4ICsgMV0/LnkgPj0gbWluIHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCArIDFdPy55MSA+PSBtaW4pICYmXG4gICAgICAgICAgICAocG9pbnQueSA8PSBtYXggfHxcbiAgICAgICAgICAgICAgcG9pbnQueTEgPD0gbWF4IHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCAtIDFdPy55IDw9IG1heCB8fFxuICAgICAgICAgICAgICBhcnJbaW5kZXggLSAxXT8ueTEgPD0gbWF4KTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gIH1cblxuICBtb3VzZWVudGVyKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBwb2ludCxcbiAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgfSk7XG4gIH1cblxuICBtb3VzZWxlYXZlKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBudWxsLFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIntcbiAgeTogeSB8IGFzeW5jLFxuICB4OiB4IHwgYXN5bmMsXG4gIHBvaW50czogZGlzcGxheVBvaW50cyB8IGFzeW5jXG59IGFzIGRhdGFcIj5cbiAgPHN2ZzpkZWZzICpuZ0lmPVwic2VyaWVzPy5maWxsVHlwZSA9PT0gZmlsbFR5cGUuZ3JhZGllbnRcIj5cbiAgICA8c3ZnOmxpbmVhckdyYWRpZW50IFtpZF09XCInZ3JhZGllbnQtZmlsbC0nICsgaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHgxPVwiMCVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueTFdPVwiY29uZmlnPy5pbnZlcnRlZCA/ICcwJScgOiAnMTAwJSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueDJdPVwiY29uZmlnPy5pbnZlcnRlZCA/ICcxMDAlJyA6ICcwJSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgeTI9XCIwJVwiPlxuICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwXCI+PC9zdmc6c3RvcD5cbiAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCI1JVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC4xXCI+PC9zdmc6c3RvcD5cbiAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIyMCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjAuMlwiPjwvc3ZnOnN0b3A+XG4gICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiNjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjVcIj48L3N2ZzpzdG9wPlxuICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjEwMCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjAuOVwiPjwvc3ZnOnN0b3A+XG4gICAgPC9zdmc6bGluZWFyR3JhZGllbnQ+XG4gIDwvc3ZnOmRlZnM+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBvaW50IG9mIGRhdGEucG9pbnRzXCI+XG4gICAgPHN2ZzpnIChtb3VzZWVudGVyKT1cIm1vdXNlZW50ZXIocG9pbnQpXCJcbiAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwibW91c2VsZWF2ZShwb2ludClcIj5cbiAgICAgIDxzdmc6cmVjdFxuICAgICAgICAqbmdJZj1cIiEhY29uZmlnLmludmVydGVkXCJcbiAgICAgICAgW2F0dHIueF09XCJkYXRhLngoMCkgPCBkYXRhLngocG9pbnQueCkgPyBkYXRhLngoMCkgOiBkYXRhLngocG9pbnQueClcIlxuICAgICAgICBbYXR0ci55XT1cImRhdGEueShwb2ludC55KVwiXG4gICAgICAgIFthdHRyLmhlaWdodF09XCJNYXRoLmFicyhkYXRhLnkocG9pbnQueTEpIC0gZGF0YS55KHBvaW50LnkpKVwiXG4gICAgICAgIFthdHRyLndpZHRoXT1cImRhdGEueCgwKSA8IGRhdGEueChwb2ludC54KSA/IGRhdGEueChwb2ludC54KSAtIGRhdGEueCgwKSA6IGRhdGEueCgwKSAtIGRhdGEueChwb2ludC54KVwiXG4gICAgICAgIFthdHRyLnN0cm9rZV09XCJwb2ludC5pY29uSWQgPyAnJyA6IHBvaW50LmNvbG9yID8/IHNlcmllcy5jb2xvclwiXG4gICAgICAgIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwic2VyaWVzLnN0eWxlPy5zdHJva2VEYXNoYXJyYXlcIlxuICAgICAgICBbYXR0ci5zdHJva2Utd2lkdGhdPVwic2VyaWVzLnN0eWxlPy5zdHJva2VXaWR0aFwiXG4gICAgICAgIFthdHRyLmZpbGxdPVwic2VyaWVzLmZpbGxUeXBlID09PSBmaWxsVHlwZS5ncmFkaWVudCA/ICd1cmwoI2dyYWRpZW50LWZpbGwtJytpZCsnKScgOiBwb2ludC5pY29uSWQgPyAndXJsKCNwYXR0ZXJuJytwb2ludC5pY29uSWQrJyknIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgICAgW2F0dHIuZmlsbC1vcGFjaXR5XT1cInNlcmllcy5zdHlsZT8uZmlsbE9wYWNpdHlcIj5cbiAgICAgIDwvc3ZnOnJlY3Q+XG4gICAgICA8c3ZnOnJlY3RcbiAgICAgICAgKm5nSWY9XCIhY29uZmlnLmludmVydGVkXCJcbiAgICAgICAgW2F0dHIueF09XCJkYXRhLngocG9pbnQueClcIlxuICAgICAgICBbYXR0ci55XT1cImRhdGEueSgwKVwiXG4gICAgICAgIFthdHRyLmhlaWdodF09XCJNYXRoLmFicyhkYXRhLnkoMCkgLSBkYXRhLnkocG9pbnQueSkpXCJcbiAgICAgICAgW2F0dHIud2lkdGhdPVwiZGF0YS54KHBvaW50LngxKSAtIGRhdGEueChwb2ludC54KVwiXG4gICAgICAgIFthdHRyLnN0cm9rZV09XCJwb2ludC5pY29uSWQgPyAnJyA6IHBvaW50LmNvbG9yID8/IHNlcmllcy5jb2xvclwiXG4gICAgICAgIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwic2VyaWVzLnN0eWxlPy5zdHJva2VEYXNoYXJyYXlcIlxuICAgICAgICBbYXR0ci5zdHJva2Utd2lkdGhdPVwic2VyaWVzLnN0eWxlPy5zdHJva2VXaWR0aFwiXG4gICAgICAgIFthdHRyLmZpbGxdPVwic2VyaWVzLmZpbGxUeXBlID09PSBmaWxsVHlwZS5ncmFkaWVudCA/ICd1cmwoI2dyYWRpZW50LWZpbGwtJytpZCsnKScgOiBwb2ludC5pY29uSWQgPyAndXJsKCNwYXR0ZXJuJytwb2ludC5pY29uSWQrJyknIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgICAgW2F0dHIuZmlsbC1vcGFjaXR5XT1cInNlcmllcy5zdHlsZT8uZmlsbE9wYWNpdHlcIj5cbiAgICAgIDwvc3ZnOnJlY3Q+XG4gICAgICA8c3ZnOnRleHQgKm5nSWY9XCJwb2ludC50ZXh0XCJcbiAgICAgICAgICAgICAgICB4PVwiNTAlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci55XT1cIihkYXRhLnkocG9pbnQueTEpICsgZGF0YS55KHBvaW50LnkpKSAvIDJcIlxuICAgICAgICAgICAgICAgIGFsaWdubWVudC1iYXNlbGluZT1cIm1pZGRsZVwiXG4gICAgICAgICAgICAgICAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIj57eyBwb2ludC50ZXh0IH19XG4gICAgICA8L3N2Zzp0ZXh0PlxuXG4gICAgICA8IS0tICAgICAgPHN2ZzpsaW5lIHgxPVwiMFwiIHgyPVwiMTAwJVwiIFthdHRyLnkxXT1cImRhdGEueShwb2ludC55KVwiIFthdHRyLnkyXT1cImRhdGEueShwb2ludC55KVwiIFthdHRyLnN0cm9rZV09XCJwb2ludC5pY29uSWQgPyAndmFyKCYjNDU7JiM0NTtjb2xvci10ZXh0LTEwKScgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuY29sb3JcIj48L3N2ZzpsaW5lPi0tPlxuICAgICAgPCEtLSAgICAgIDxzdmc6bGluZSB4MT1cIjBcIiB4Mj1cIjEwMCVcIiBbYXR0ci55MV09XCJkYXRhLnkocG9pbnQueTEpXCIgW2F0dHIueTJdPVwiZGF0YS55KHBvaW50LnkxKVwiIFthdHRyLnN0cm9rZV09XCJwb2ludC5pY29uSWQgPyAndmFyKCYjNDU7JiM0NTtjb2xvci10ZXh0LTEwKScgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuY29sb3JcIj48L3N2ZzpsaW5lPi0tPlxuXG4gICAgPC9zdmc6Zz5cbiAgPC9uZy1jb250YWluZXI+XG5cblxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -21,8 +21,8 @@ export class BlockSeriesComponent extends SeriesBaseComponent {
21
21
  }
22
22
  ngOnInit() {
23
23
  const defaultVisiblePixels = 0;
24
- this.x = this.scaleService.xScaleMap.pipe(map((_) => _.get(this.series.xAxisIndex)));
25
- this.y = this.scaleService.yScaleMap.pipe(map((_) => _.get(this.series.yAxisIndex)));
24
+ this.x = this.scaleService.scales.pipe(map((_) => _.x.get(this.series.xAxisIndex).scale));
25
+ this.y = this.scaleService.scales.pipe(map((_) => _.y.get(this.series.yAxisIndex).scale));
26
26
  this.displayPoints = this.y.pipe(map((y) => {
27
27
  return this.series.data.filter((point, index, arr) => {
28
28
  const [min, max] = y.domain();
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
58
58
  type: Component,
59
59
  args: [{ selector: 'svg:svg[teta-block-series]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"{\n y: y | async,\n x: x | async,\n points: displayPoints | async\n} as data\">\n <svg:defs *ngIf=\"series?.fillType === fillType.gradient\">\n <svg:linearGradient [id]=\"'gradient-fill-' + id\" gradientUnits=\"userSpaceOnUse\"\n x1=\"0%\"\n [attr.y1]=\"config?.inverted ? '0%' : '100%'\"\n [attr.x2]=\"config?.inverted ? '100%' : '0%'\"\n y2=\"0%\">\n <svg:stop offset=\"0%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n <ng-container *ngFor=\"let point of data.points\">\n <svg:g (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\">\n <svg:rect\n x=\"0\"\n [attr.y]=\"data.y(point.y)\"\n [attr.height]=\"Math.abs(data.y(point.y1) - data.y(point.y))\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : point.iconId ? 'url(#pattern'+point.iconId+')' : point.color ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\"\n width=\"100%\">\n </svg:rect>\n <svg:text *ngIf=\"point.text && data.y(point.y1) - data.y(point.y) > 8\"\n x=\"50%\"\n [attr.y]=\"(data.y(point.y1) + data.y(point.y)) / 2\"\n alignment-baseline=\"middle\"\n text-anchor=\"middle\">{{ point.text }}\n </svg:text>\n <svg:line x1=\"0\" x2=\"100%\" [attr.y1]=\"data.y(point.y)\" [attr.y2]=\"data.y(point.y)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.color\"></svg:line>\n <svg:line x1=\"0\" x2=\"100%\" [attr.y1]=\"data.y(point.y1)\" [attr.y2]=\"data.y(point.y1)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.color\"></svg:line>\n </svg:g>\n </ng-container>\n\n\n</ng-container>\n" }]
60
60
  }], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }]; } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stc2VyaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIvc2VyaWVzL2Jsb2NrLXNlcmllcy9ibG9jay1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stc2VyaWVzL2Jsb2NrLXNlcmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBSXJDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBUXZELE1BQU0sT0FBTyxvQkFDWCxTQUFRLG1CQUFzQjtJQVM5QixZQUNxQixHQUFpQixFQUNqQixHQUFzQixFQUN0QixZQUEwQixFQUMxQixXQUF3QixFQUN4QixPQUFtQjtRQUV0QyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTmpDLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQVR4QyxhQUFRLEdBQUcsUUFBUSxDQUFDO1FBRXBCLFNBQUksR0FBRyxJQUFJLENBQUM7UUFVVixJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV0RCxDQUFDO0lBRVEsUUFBUTtRQUNmLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUN2QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUMxQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3ZDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQzFDLENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM5QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDbkQsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUc7b0JBQ2xCLEtBQUssQ0FBQyxFQUFFLElBQUksR0FBRztvQkFDZixHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHO29CQUN4QixHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUM7b0JBQzVCLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHO3dCQUNiLEtBQUssQ0FBQyxFQUFFLElBQUksR0FBRzt3QkFDZixHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHO3dCQUN4QixHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2xCLEtBQUssRUFBRSxLQUFLO1lBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBZ0I7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDbEIsS0FBSyxFQUFFLElBQUk7WUFDWCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7SUFDZixDQUFDOztpSEFoRVUsb0JBQW9CO3FHQUFwQixvQkFBb0IseUZDdEJqQyw4ekVBNENBOzJGRHRCYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvYmFzZS1wb2ludCc7XG5pbXBvcnQge1Nlcmllc0Jhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2Jhc2Uvc2VyaWVzLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7bWFwLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q2hhcnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHtTY2FsZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvc2NhbGUuc2VydmljZSc7XG5pbXBvcnQge1pvb21TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3pvb20uc2VydmljZSc7XG5pbXBvcnQge0ZpbGxUeXBlfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lbnVtL2ZpbGwtdHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N2ZzpzdmdbdGV0YS1ibG9jay1zZXJpZXNdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jsb2NrLXNlcmllcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Jsb2NrLXNlcmllcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQmxvY2tTZXJpZXNDb21wb25lbnQ8VCBleHRlbmRzIEJhc2VQb2ludD5cbiAgZXh0ZW5kcyBTZXJpZXNCYXNlQ29tcG9uZW50PFQ+XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgeDogT2JzZXJ2YWJsZTxhbnk+O1xuICB5OiBPYnNlcnZhYmxlPGFueT47XG4gIGRpc3BsYXlQb2ludHM6IE9ic2VydmFibGU8QmFzZVBvaW50W10+O1xuICBmaWxsVHlwZSA9IEZpbGxUeXBlO1xuICBpZDogc3RyaW5nO1xuICBNYXRoID0gTWF0aDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc3ZjOiBDaGFydFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNjYWxlU2VydmljZTogU2NhbGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB6b29tU2VydmljZTogWm9vbVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGVsZW1lbnQ6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgc3VwZXIoc3ZjLCBjZHIsIHNjYWxlU2VydmljZSwgem9vbVNlcnZpY2UsIGVsZW1lbnQpO1xuICAgIHRoaXMuaWQgPSAoRGF0ZS5ub3coKSArIE1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKDM2KTtcblxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgZGVmYXVsdFZpc2libGVQaXhlbHMgPSAwO1xuXG4gICAgdGhpcy54ID0gdGhpcy5zY2FsZVNlcnZpY2UueFNjYWxlTWFwLnBpcGUoXG4gICAgICBtYXAoKF8pID0+IF8uZ2V0KHRoaXMuc2VyaWVzLnhBeGlzSW5kZXgpKVxuICAgICk7XG4gICAgdGhpcy55ID0gdGhpcy5zY2FsZVNlcnZpY2UueVNjYWxlTWFwLnBpcGUoXG4gICAgICBtYXAoKF8pID0+IF8uZ2V0KHRoaXMuc2VyaWVzLnlBeGlzSW5kZXgpKVxuICAgICk7XG5cbiAgICB0aGlzLmRpc3BsYXlQb2ludHMgPSB0aGlzLnkucGlwZShcbiAgICAgIG1hcCgoeSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJpZXMuZGF0YS5maWx0ZXIoKHBvaW50LCBpbmRleCwgYXJyKSA9PiB7XG4gICAgICAgICAgY29uc3QgW21pbiwgbWF4XSA9IHkuZG9tYWluKCk7XG4gICAgICAgICAgcmV0dXJuIChwb2ludC55ID49IG1pbiB8fFxuICAgICAgICAgICAgICBwb2ludC55MSA+PSBtaW4gfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4ICsgMV0/LnkgPj0gbWluIHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCArIDFdPy55MSA+PSBtaW4pICYmXG4gICAgICAgICAgICAocG9pbnQueSA8PSBtYXggfHxcbiAgICAgICAgICAgICAgcG9pbnQueTEgPD0gbWF4IHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCAtIDFdPy55IDw9IG1heCB8fFxuICAgICAgICAgICAgICBhcnJbaW5kZXggLSAxXT8ueTEgPD0gbWF4KTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBtb3VzZWVudGVyKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBwb2ludCxcbiAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgfSk7XG4gIH1cblxuICBtb3VzZWxlYXZlKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBudWxsLFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIntcbiAgeTogeSB8IGFzeW5jLFxuICB4OiB4IHwgYXN5bmMsXG4gIHBvaW50czogZGlzcGxheVBvaW50cyB8IGFzeW5jXG59IGFzIGRhdGFcIj5cbiAgPHN2ZzpkZWZzICpuZ0lmPVwic2VyaWVzPy5maWxsVHlwZSA9PT0gZmlsbFR5cGUuZ3JhZGllbnRcIj5cbiAgICA8c3ZnOmxpbmVhckdyYWRpZW50IFtpZF09XCInZ3JhZGllbnQtZmlsbC0nICsgaWRcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgeDE9XCIwJVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci55MV09XCJjb25maWc/LmludmVydGVkID8gJzAlJyA6ICcxMDAlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci54Ml09XCJjb25maWc/LmludmVydGVkID8gJzEwMCUnIDogJzAlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB5Mj1cIjAlXCI+XG4gICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiMCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjBcIj48L3N2ZzpzdG9wPlxuICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjUlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjFcIj48L3N2ZzpzdG9wPlxuICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjIwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC4yXCI+PC9zdmc6c3RvcD5cbiAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCI2MCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjAuNVwiPjwvc3ZnOnN0b3A+XG4gICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiMTAwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC45XCI+PC9zdmc6c3RvcD5cbiAgICA8L3N2ZzpsaW5lYXJHcmFkaWVudD5cbiAgPC9zdmc6ZGVmcz5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcG9pbnQgb2YgZGF0YS5wb2ludHNcIj5cbiAgICA8c3ZnOmcgKG1vdXNlZW50ZXIpPVwibW91c2VlbnRlcihwb2ludClcIlxuICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJtb3VzZWxlYXZlKHBvaW50KVwiPlxuICAgICAgPHN2ZzpyZWN0XG4gICAgICAgIHg9XCIwXCJcbiAgICAgICAgW2F0dHIueV09XCJkYXRhLnkocG9pbnQueSlcIlxuICAgICAgICBbYXR0ci5oZWlnaHRdPVwiTWF0aC5hYnMoZGF0YS55KHBvaW50LnkxKSAtIGRhdGEueShwb2ludC55KSlcIlxuICAgICAgICBbYXR0ci5maWxsXT1cInNlcmllcy5maWxsVHlwZSA9PT0gZmlsbFR5cGUuZ3JhZGllbnQgPyAndXJsKCNncmFkaWVudC1maWxsLScraWQrJyknIDogcG9pbnQuaWNvbklkID8gJ3VybCgjcGF0dGVybicrcG9pbnQuaWNvbklkKycpJyA6IHBvaW50LmNvbG9yID8/IHNlcmllcy5jb2xvclwiXG4gICAgICAgIFthdHRyLmZpbGwtb3BhY2l0eV09XCJzZXJpZXMuc3R5bGU/LmZpbGxPcGFjaXR5XCJcbiAgICAgICAgd2lkdGg9XCIxMDAlXCI+XG4gICAgICA8L3N2ZzpyZWN0PlxuICAgICAgPHN2Zzp0ZXh0ICpuZ0lmPVwicG9pbnQudGV4dCAmJiBkYXRhLnkocG9pbnQueTEpIC0gZGF0YS55KHBvaW50LnkpID4gOFwiXG4gICAgICAgICAgICAgICAgeD1cIjUwJVwiXG4gICAgICAgICAgICAgICAgW2F0dHIueV09XCIoZGF0YS55KHBvaW50LnkxKSArIGRhdGEueShwb2ludC55KSkgLyAyXCJcbiAgICAgICAgICAgICAgICBhbGlnbm1lbnQtYmFzZWxpbmU9XCJtaWRkbGVcIlxuICAgICAgICAgICAgICAgIHRleHQtYW5jaG9yPVwibWlkZGxlXCI+e3sgcG9pbnQudGV4dCB9fVxuICAgICAgPC9zdmc6dGV4dD5cbiAgICAgIDxzdmc6bGluZSB4MT1cIjBcIiB4Mj1cIjEwMCVcIiBbYXR0ci55MV09XCJkYXRhLnkocG9pbnQueSlcIiBbYXR0ci55Ml09XCJkYXRhLnkocG9pbnQueSlcIlxuICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJwb2ludC5pY29uSWQgPyAndmFyKC0tY29sb3ItdGV4dC0xMCknIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLmNvbG9yXCI+PC9zdmc6bGluZT5cbiAgICAgIDxzdmc6bGluZSB4MT1cIjBcIiB4Mj1cIjEwMCVcIiBbYXR0ci55MV09XCJkYXRhLnkocG9pbnQueTEpXCIgW2F0dHIueTJdPVwiZGF0YS55KHBvaW50LnkxKVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInBvaW50Lmljb25JZCA/ICd2YXIoLS1jb2xvci10ZXh0LTEwKScgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuY29sb3JcIj48L3N2ZzpsaW5lPlxuICAgIDwvc3ZnOmc+XG4gIDwvbmctY29udGFpbmVyPlxuXG5cbjwvbmctY29udGFpbmVyPlxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stc2VyaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIvc2VyaWVzL2Jsb2NrLXNlcmllcy9ibG9jay1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stc2VyaWVzL2Jsb2NrLXNlcmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBSXJDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBUXZELE1BQU0sT0FBTyxvQkFDWCxTQUFRLG1CQUFzQjtJQVM5QixZQUNxQixHQUFpQixFQUNqQixHQUFzQixFQUN0QixZQUEwQixFQUMxQixXQUF3QixFQUN4QixPQUFtQjtRQUV0QyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTmpDLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQVR4QyxhQUFRLEdBQUcsUUFBUSxDQUFDO1FBRXBCLFNBQUksR0FBRyxJQUFJLENBQUM7UUFVVixJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV0RCxDQUFDO0lBRVEsUUFBUTtRQUNmLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNwQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQ2xELENBQUM7UUFDRixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDcEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUNsRCxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDOUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQ25ELE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHO29CQUNsQixLQUFLLENBQUMsRUFBRSxJQUFJLEdBQUc7b0JBQ2YsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRztvQkFDeEIsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDO29CQUM1QixDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksR0FBRzt3QkFDYixLQUFLLENBQUMsRUFBRSxJQUFJLEdBQUc7d0JBQ2YsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRzt3QkFDeEIsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQjtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNsQixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2xCLEtBQUssRUFBRSxJQUFJO1lBQ1gsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO0lBQ2YsQ0FBQzs7aUhBaEVVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHlGQ3RCakMsOHpFQTRDQTsyRkR0QmEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYXNlUG9pbnR9IGZyb20gJy4uLy4uLy4uL21vZGVsL2Jhc2UtcG9pbnQnO1xuaW1wb3J0IHtTZXJpZXNCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9iYXNlL3Nlcmllcy1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQge21hcCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NoYXJ0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7U2NhbGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3NjYWxlLnNlcnZpY2UnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtGaWxsVHlwZX0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZW51bS9maWxsLXR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdmc6c3ZnW3RldGEtYmxvY2stc2VyaWVzXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ibG9jay1zZXJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ibG9jay1zZXJpZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJsb2NrU2VyaWVzQ29tcG9uZW50PFQgZXh0ZW5kcyBCYXNlUG9pbnQ+XG4gIGV4dGVuZHMgU2VyaWVzQmFzZUNvbXBvbmVudDxUPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHg6IE9ic2VydmFibGU8YW55PjtcbiAgeTogT2JzZXJ2YWJsZTxhbnk+O1xuICBkaXNwbGF5UG9pbnRzOiBPYnNlcnZhYmxlPEJhc2VQb2ludFtdPjtcbiAgZmlsbFR5cGUgPSBGaWxsVHlwZTtcbiAgaWQ6IHN0cmluZztcbiAgTWF0aCA9IE1hdGg7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHN2YzogQ2hhcnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzY2FsZVNlcnZpY2U6IFNjYWxlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgem9vbVNlcnZpY2U6IFpvb21TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBlbGVtZW50OiBFbGVtZW50UmVmXG4gICkge1xuICAgIHN1cGVyKHN2YywgY2RyLCBzY2FsZVNlcnZpY2UsIHpvb21TZXJ2aWNlLCBlbGVtZW50KTtcbiAgICB0aGlzLmlkID0gKERhdGUubm93KCkgKyBNYXRoLnJhbmRvbSgpKS50b1N0cmluZygzNik7XG5cbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRWaXNpYmxlUGl4ZWxzID0gMDtcblxuICAgIHRoaXMueCA9IHRoaXMuc2NhbGVTZXJ2aWNlLnNjYWxlcy5waXBlKFxuICAgICAgbWFwKChfKSA9PiBfLnguZ2V0KHRoaXMuc2VyaWVzLnhBeGlzSW5kZXgpLnNjYWxlKVxuICAgICk7XG4gICAgdGhpcy55ID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUoXG4gICAgICBtYXAoKF8pID0+IF8ueS5nZXQodGhpcy5zZXJpZXMueUF4aXNJbmRleCkuc2NhbGUpXG4gICAgKTtcblxuICAgIHRoaXMuZGlzcGxheVBvaW50cyA9IHRoaXMueS5waXBlKFxuICAgICAgbWFwKCh5KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcmllcy5kYXRhLmZpbHRlcigocG9pbnQsIGluZGV4LCBhcnIpID0+IHtcbiAgICAgICAgICBjb25zdCBbbWluLCBtYXhdID0geS5kb21haW4oKTtcbiAgICAgICAgICByZXR1cm4gKHBvaW50LnkgPj0gbWluIHx8XG4gICAgICAgICAgICAgIHBvaW50LnkxID49IG1pbiB8fFxuICAgICAgICAgICAgICBhcnJbaW5kZXggKyAxXT8ueSA+PSBtaW4gfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4ICsgMV0/LnkxID49IG1pbikgJiZcbiAgICAgICAgICAgIChwb2ludC55IDw9IG1heCB8fFxuICAgICAgICAgICAgICBwb2ludC55MSA8PSBtYXggfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4IC0gMV0/LnkgPD0gbWF4IHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCAtIDFdPy55MSA8PSBtYXgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG1vdXNlZW50ZXIocG9pbnQ6IEJhc2VQb2ludCkge1xuICAgIHRoaXMuc3ZjLnNldFRvb2x0aXAoe1xuICAgICAgcG9pbnQ6IHBvaW50LFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxuXG4gIG1vdXNlbGVhdmUocG9pbnQ6IEJhc2VQb2ludCkge1xuICAgIHRoaXMuc3ZjLnNldFRvb2x0aXAoe1xuICAgICAgcG9pbnQ6IG51bGwsXG4gICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwie1xuICB5OiB5IHwgYXN5bmMsXG4gIHg6IHggfCBhc3luYyxcbiAgcG9pbnRzOiBkaXNwbGF5UG9pbnRzIHwgYXN5bmNcbn0gYXMgZGF0YVwiPlxuICA8c3ZnOmRlZnMgKm5nSWY9XCJzZXJpZXM/LmZpbGxUeXBlID09PSBmaWxsVHlwZS5ncmFkaWVudFwiPlxuICAgIDxzdmc6bGluZWFyR3JhZGllbnQgW2lkXT1cIidncmFkaWVudC1maWxsLScgKyBpZFwiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB4MT1cIjAlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnkxXT1cImNvbmZpZz8uaW52ZXJ0ZWQgPyAnMCUnIDogJzEwMCUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLngyXT1cImNvbmZpZz8uaW52ZXJ0ZWQgPyAnMTAwJScgOiAnMCUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHkyPVwiMCVcIj5cbiAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMFwiPjwvc3ZnOnN0b3A+XG4gICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiNSVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjAuMVwiPjwvc3ZnOnN0b3A+XG4gICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiMjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjJcIj48L3N2ZzpzdG9wPlxuICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjYwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC41XCI+PC9zdmc6c3RvcD5cbiAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIxMDAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjlcIj48L3N2ZzpzdG9wPlxuICAgIDwvc3ZnOmxpbmVhckdyYWRpZW50PlxuICA8L3N2ZzpkZWZzPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwb2ludCBvZiBkYXRhLnBvaW50c1wiPlxuICAgIDxzdmc6ZyAobW91c2VlbnRlcik9XCJtb3VzZWVudGVyKHBvaW50KVwiXG4gICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlbGVhdmUocG9pbnQpXCI+XG4gICAgICA8c3ZnOnJlY3RcbiAgICAgICAgeD1cIjBcIlxuICAgICAgICBbYXR0ci55XT1cImRhdGEueShwb2ludC55KVwiXG4gICAgICAgIFthdHRyLmhlaWdodF09XCJNYXRoLmFicyhkYXRhLnkocG9pbnQueTEpIC0gZGF0YS55KHBvaW50LnkpKVwiXG4gICAgICAgIFthdHRyLmZpbGxdPVwic2VyaWVzLmZpbGxUeXBlID09PSBmaWxsVHlwZS5ncmFkaWVudCA/ICd1cmwoI2dyYWRpZW50LWZpbGwtJytpZCsnKScgOiBwb2ludC5pY29uSWQgPyAndXJsKCNwYXR0ZXJuJytwb2ludC5pY29uSWQrJyknIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgICAgW2F0dHIuZmlsbC1vcGFjaXR5XT1cInNlcmllcy5zdHlsZT8uZmlsbE9wYWNpdHlcIlxuICAgICAgICB3aWR0aD1cIjEwMCVcIj5cbiAgICAgIDwvc3ZnOnJlY3Q+XG4gICAgICA8c3ZnOnRleHQgKm5nSWY9XCJwb2ludC50ZXh0ICYmIGRhdGEueShwb2ludC55MSkgLSBkYXRhLnkocG9pbnQueSkgPiA4XCJcbiAgICAgICAgICAgICAgICB4PVwiNTAlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci55XT1cIihkYXRhLnkocG9pbnQueTEpICsgZGF0YS55KHBvaW50LnkpKSAvIDJcIlxuICAgICAgICAgICAgICAgIGFsaWdubWVudC1iYXNlbGluZT1cIm1pZGRsZVwiXG4gICAgICAgICAgICAgICAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIj57eyBwb2ludC50ZXh0IH19XG4gICAgICA8L3N2Zzp0ZXh0PlxuICAgICAgPHN2ZzpsaW5lIHgxPVwiMFwiIHgyPVwiMTAwJVwiIFthdHRyLnkxXT1cImRhdGEueShwb2ludC55KVwiIFthdHRyLnkyXT1cImRhdGEueShwb2ludC55KVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInBvaW50Lmljb25JZCA/ICd2YXIoLS1jb2xvci10ZXh0LTEwKScgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuY29sb3JcIj48L3N2ZzpsaW5lPlxuICAgICAgPHN2ZzpsaW5lIHgxPVwiMFwiIHgyPVwiMTAwJVwiIFthdHRyLnkxXT1cImRhdGEueShwb2ludC55MSlcIiBbYXR0ci55Ml09XCJkYXRhLnkocG9pbnQueTEpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwicG9pbnQuaWNvbklkID8gJ3ZhcigtLWNvbG9yLXRleHQtMTApJyA6IHBvaW50LmNvbG9yID8/IHNlcmllcy5jb2xvclwiPjwvc3ZnOmxpbmU+XG4gICAgPC9zdmc6Zz5cbiAgPC9uZy1jb250YWluZXI+XG5cblxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { SeriesBaseComponent } from '../../base/series-base.component';
2
2
  import { Component } from '@angular/core';
3
- import { combineLatest, map, tap, withLatestFrom } from 'rxjs';
3
+ import { map, tap, withLatestFrom } from 'rxjs';
4
4
  import * as d3 from 'd3';
5
5
  import { DragPointType } from '../../model/enum/drag-point-type';
6
6
  import { TooltipTracking } from '../../model/enum/tooltip-tracking';
@@ -46,17 +46,14 @@ export class LinearSeriesBase extends SeriesBaseComponent {
46
46
  };
47
47
  this.defaultClipPointsMapping.set(ClipPointsDirection.x, filterX);
48
48
  this.defaultClipPointsMapping.set(ClipPointsDirection.y, filterY);
49
- this.transform = this.svc.pointerMove.pipe(withLatestFrom(this.scaleService.xScaleMap, this.scaleService.yScaleMap), map((data) => {
50
- const [event, x, y] = data;
51
- return this.getTransform(event, x, y);
49
+ this.transform = this.svc.pointerMove.pipe(withLatestFrom(this.scaleService.scales), map((data) => {
50
+ const [event, { x, y }] = data;
51
+ return this.getTransform(event, x.get(this.series.xAxisIndex).scale, y.get(this.series.yAxisIndex).scale);
52
52
  }), tap(() => setTimeout(() => this.cdr.detectChanges())));
53
- this.path = combineLatest([
54
- this.scaleService.xScaleMap,
55
- this.scaleService.yScaleMap,
56
- ]).pipe(map((data) => {
57
- const [x, y] = data;
58
- this.x = x.get(this.series.xAxisIndex);
59
- this.y = y.get(this.series.yAxisIndex);
53
+ this.path = this.scaleService.scales.pipe(map((data) => {
54
+ const { x, y } = data;
55
+ this.x = x.get(this.series.xAxisIndex).scale;
56
+ this.y = y.get(this.series.yAxisIndex).scale;
60
57
  const filter = this.defaultClipPointsMapping.get(this.series.clipPointsDirection);
61
58
  const line = d3
62
59
  .line()
@@ -139,8 +136,6 @@ export class LinearSeriesBase extends SeriesBaseComponent {
139
136
  return null;
140
137
  }
141
138
  const mouse = [event?.offsetX, event?.offsetY];
142
- const foundX = scaleX.get(this.series.xAxisIndex);
143
- const foundY = scaleY.get(this.series.yAxisIndex);
144
139
  const tooltipTracking = this.config?.tooltip?.tracking;
145
140
  const lineIntersection = (p0_x, p0_y, p1_x, p1_y, p2_x, p2_y, p3_x, p3_y) => {
146
141
  const rV = {};
@@ -166,18 +161,18 @@ export class LinearSeriesBase extends SeriesBaseComponent {
166
161
  if (tooltipTracking === TooltipTracking.x) {
167
162
  const bisect = d3.bisector((_) => _.x).right;
168
163
  const pointer = mouse[0];
169
- let x0 = foundX.invert(pointer);
164
+ let x0 = scaleX.invert(pointer);
170
165
  if (x0 instanceof Date) {
171
166
  x0 = x0.getTime();
172
167
  }
173
168
  const rightId = bisect(this.series.data, x0);
174
- const range = foundY.range();
175
- const intersect = lineIntersection(pointer, range[0], pointer, range[1], foundX(this.series.data[rightId - 1]?.x), foundY(this.series.data[rightId - 1]?.y), foundX(this.series.data[rightId]?.x), foundY(this.series.data[rightId]?.y));
176
- const x = foundX.invert(intersect.x);
177
- const y = foundY.invert(intersect.y);
169
+ const range = scaleY.range();
170
+ const intersect = lineIntersection(pointer, range[0], pointer, range[1], scaleX(this.series.data[rightId - 1]?.x), scaleY(this.series.data[rightId - 1]?.y), scaleX(this.series.data[rightId]?.x), scaleY(this.series.data[rightId]?.y));
171
+ const x = scaleX.invert(intersect.x);
172
+ const y = scaleY.invert(intersect.y);
178
173
  if (x !== null && x !== undefined && !isNaN(x) && y !== null && y !== undefined && !isNaN(y)) {
179
174
  this.svc.setTooltip({
180
- point: { x: foundX.invert(intersect.x), y: foundY.invert(intersect.y) },
175
+ point: { x: scaleX.invert(intersect.x), y: scaleY.invert(intersect.y) },
181
176
  series: this.series,
182
177
  });
183
178
  }
@@ -194,18 +189,18 @@ export class LinearSeriesBase extends SeriesBaseComponent {
194
189
  }
195
190
  if (tooltipTracking === TooltipTracking.y) {
196
191
  const bisect = d3.bisector((_) => _.y).right;
197
- let y0 = foundY.invert(mouse[1]);
192
+ let y0 = scaleY.invert(mouse[1]);
198
193
  if (y0 instanceof Date) {
199
194
  y0 = y0.getTime();
200
195
  }
201
196
  const rightId = bisect(this.series.data, y0);
202
- const range = foundX.range();
203
- const intersect = lineIntersection(range[0], mouse[1], range[1], mouse[1], foundX(this.series.data[rightId - 1]?.x), foundY(this.series.data[rightId - 1]?.y), foundX(this.series.data[rightId]?.x), foundY(this.series.data[rightId]?.y));
204
- const x = foundX.invert(intersect.x);
205
- const y = foundY.invert(intersect.y);
197
+ const range = scaleX.range();
198
+ const intersect = lineIntersection(range[0], mouse[1], range[1], mouse[1], scaleX(this.series.data[rightId - 1]?.x), scaleY(this.series.data[rightId - 1]?.y), scaleX(this.series.data[rightId]?.x), scaleY(this.series.data[rightId]?.y));
199
+ const x = scaleX.invert(intersect.x);
200
+ const y = scaleY.invert(intersect.y);
206
201
  if (x !== null && x !== undefined && !isNaN(x) && y !== null && y !== undefined && !isNaN(y)) {
207
202
  this.svc.setTooltip({
208
- point: { x: foundX.invert(intersect.x), y: foundY.invert(intersect.y) },
203
+ point: { x: scaleX.invert(intersect.x), y: scaleY.invert(intersect.y) },
209
204
  series: this.series,
210
205
  });
211
206
  }
@@ -230,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
230
225
  template: '',
231
226
  }]
232
227
  }], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }]; } });
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZWFyLXNlcmllcy1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvbGluZWFyLXNlcmllcy1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBbUMsU0FBUyxFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUMsYUFBYSxFQUFFLEdBQUcsRUFBYyxHQUFHLEVBQUUsY0FBYyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSXpFLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7Ozs7O0FBSzNFLE1BQU0sT0FBTyxnQkFDWCxTQUFRLG1CQUFzQjtJQWE5QixZQUNxQixHQUFpQixFQUNqQixHQUFzQixFQUN0QixZQUEwQixFQUMxQixXQUF3QixFQUN4QixPQUFtQjtRQUV0QyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTmpDLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQWZqQyw2QkFBd0IsR0FBeUgsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQWtCbEssQ0FBQztJQUVRLFFBQVE7UUFDZixNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFX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SUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM1RixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztvQkFDbEIsS0FBSyxFQUFFLEVBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQztvQkFDckUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2lCQUNwQixDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztvQkFDbEIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2lCQUNwQixDQUFDLENBQUM7YUFDSjtZQUVELE9BQU87Z0JBQ0wsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNkLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQzthQUNmLENBQUM7U0FDSDtJQUNILENBQUM7OzZHQW5VVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQiwyRUFGakIsRUFBRTsyRkFFRCxnQkFBZ0I7a0JBSDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi4vLi4vbW9kZWwvYmFzZS1wb2ludCc7XG5pbXBvcnQge1Nlcmllc0Jhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uL2Jhc2Uvc2VyaWVzLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIHRhcCwgd2l0aExhdGVzdEZyb219IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDaGFydFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQge1NjYWxlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2Uvem9vbS5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7RHJhZ1BvaW50VHlwZX0gZnJvbSAnLi4vLi4vbW9kZWwvZW51bS9kcmFnLXBvaW50LXR5cGUnO1xuaW1wb3J0IHtUb29sdGlwVHJhY2tpbmd9IGZyb20gJy4uLy4uL21vZGVsL2VudW0vdG9vbHRpcC10cmFja2luZyc7XG5pbXBvcnQge0NsaXBQb2ludHNEaXJlY3Rpb259IGZyb20gJy4uLy4uL21vZGVsL2VudW0vY2xpcC1wb2ludHMtZGlyZWN0aW9uJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiAnJyxcbn0pXG5leHBvcnQgY2xhc3MgTGluZWFyU2VyaWVzQmFzZTxUIGV4dGVuZHMgQmFzZVBvaW50PlxuICBleHRlbmRzIFNlcmllc0Jhc2VDb21wb25lbnQ8VD5cbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIGRlZmF1bHRDbGlwUG9pbnRzTWFwcGluZzogTWFwPENsaXBQb2ludHNEaXJlY3Rpb24sIChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpID0+IChwb2ludDogQmFzZVBvaW50LCBpZHg6IG51bWJlciwgYXJyOiBBcnJheTxCYXNlUG9pbnQ+KSA9PiB7fT4gPSBuZXcgTWFwKCk7XG5cbiAgdHJhbnNmb3JtOiBPYnNlcnZhYmxlPFBpY2s8QmFzZVBvaW50LCAneCcgfCAneSc+PjtcbiAgZGlzcGxheTogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICBwYXRoOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHN2Z0VsZW1lbnQ6IFNWR0dlb21ldHJ5RWxlbWVudDtcbiAgeDogYW55O1xuICB5OiBhbnk7XG4gIG1hcmtlcnM6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc3ZjOiBDaGFydFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNjYWxlU2VydmljZTogU2NhbGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB6b29tU2VydmljZTogWm9vbVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGVsZW1lbnQ6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgc3VwZXIoc3ZjLCBjZHIsIHNjYWxlU2VydmljZSwgem9vbVNlcnZpY2UsIGVsZW1lbnQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyWCA9IChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpID0+IChcbiAgICAgIHBvaW50OiBCYXNlUG9pbnQsXG4gICAgICBpZHg6IG51bWJlcixcbiAgICAgIGFycjogQXJyYXk8QmFzZVBvaW50PlxuICAgICkgPT4ge1xuICAgICAgY29uc3QgYmlnZ2VyID0gbWluID4gbWF4ID8gbWluIDogbWF4O1xuICAgICAgY29uc3Qgc21hbGxlciA9IG1pbiA+IG1heCA/IG1heCA6IG1pbjtcbiAgICAgIHJldHVybiAocG9pbnQueCA8PSBiaWdnZXIgfHxcbiAgICAgICAgICBwb2ludC54MSA8PSBiaWdnZXIgfHxcbiAgICAgICAgICAoYXJyW2lkeCAtIDFdICYmIGFycltpZHggLSAxXS54IDw9IGJpZ2dlcikgfHxcbiAgICAgICAgICAoYXJyW2lkeCAtIDFdICYmIGFycltpZHggLSAxXS54MSA8PSBiaWdnZXIpKSAmJlxuICAgICAgICAocG9pbnQueCA+PSBzbWFsbGVyIHx8XG4gICAgICAgICAgcG9pbnQueDEgPj0gc21hbGxlciB8fFxuICAgICAgICAgIChhcnJbaWR4ICsgMV0gJiYgYXJyW2lkeCArIDFdLnggPj0gc21hbGxlcikgfHxcbiAgICAgICAgICAoYXJyW2lkeCArIDFdICYmIGFycltpZHggKyAxXS54MSA+PSBzbWFsbGVyKSlcbiAgICAgICAgO1xuICAgIH07XG5cbiAgICBjb25zdCBmaWx0ZXJZID0gKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikgPT4gKFxuICAgICAgcG9pbnQ6IEJhc2VQb2ludCxcbiAgICAgIGlkeDogbnVtYmVyLFxuICAgICAgYXJyOiBBcnJheTxCYXNlUG9pbnQ+XG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBiaWdnZXIgPSBtaW4gPiBtYXggPyBtaW4gOiBtYXg7XG4gICAgICBjb25zdCBzbWFsbGVyID0gbWluID4gbWF4ID8gbWF4IDogbWluO1xuICAgICAgcmV0dXJuIChwb2ludC55IDw9IGJpZ2dlciB8fFxuICAgICAgICAgIHBvaW50LnkxIDw9IGJpZ2dlciB8fFxuICAgICAgICAgIChhcnJbaWR4IC0gMV0gJiYgYXJyW2lkeCAtIDFdLnkgPD0gYmlnZ2VyKSB8fFxuICAgICAgICAgIChhcnJbaWR4IC0gMV0gJiYgYXJyW2lkeCAtIDFdLnkxIDw9IGJpZ2dlcikpICYmXG4gICAgICAgIChwb2ludC55ID49IHNtYWxsZXIgfHxcbiAgICAgICAgICBwb2ludC55MSA+PSBzbWFsbGVyIHx8XG4gICAgICAgICAgKGFycltpZHggKyAxXSAmJiBhcnJbaWR4ICsgMV0ueSA+PSBzbWFsbGVyKSB8fFxuICAgICAgICAgIChhcnJbaWR4ICsgMV0gJiYgYXJyW2lkeCArIDFdLnkxID49IHNtYWxsZXIpKTtcbiAgICB9O1xuXG4gICAgdGhpcy5kZWZhdWx0Q2xpcFBvaW50c01hcHBpbmcuc2V0KENsaXBQb2ludHNEaXJlY3Rpb24ueCwgZmlsdGVyWCk7XG4gICAgdGhpcy5kZWZhdWx0Q2xpcFBvaW50c01hcHBpbmcuc2V0KENsaXBQb2ludHNEaXJlY3Rpb24ueSwgZmlsdGVyWSk7XG5cbiAgICB0aGlzLnRyYW5zZm9ybSA9IHRoaXMuc3ZjLnBvaW50ZXJNb3ZlLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnNjYWxlU2VydmljZS54U2NhbGVNYXAsIHRoaXMuc2NhbGVTZXJ2aWNlLnlTY2FsZU1hcCksXG4gICAgICBtYXAoKGRhdGE6IFtQb2ludGVyRXZlbnQsIE1hcDxudW1iZXIsIGFueT4sIE1hcDxudW1iZXIsIGFueT5dKSA9PiB7XG4gICAgICAgIGNvbnN0IFtldmVudCwgeCwgeV0gPSBkYXRhO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zZm9ybShldmVudCwgeCwgeSk7XG4gICAgICB9KSxcbiAgICAgIHRhcCgoKSA9PiBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSkpXG4gICAgKTtcblxuICAgIHRoaXMucGF0aCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zY2FsZVNlcnZpY2UueFNjYWxlTWFwLFxuICAgICAgdGhpcy5zY2FsZVNlcnZpY2UueVNjYWxlTWFwLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKGRhdGE6IFtNYXA8bnVtYmVyLCBhbnk+LCBNYXA8bnVtYmVyLCBhbnk+XSkgPT4ge1xuICAgICAgICBjb25zdCBbeCwgeV0gPSBkYXRhO1xuICAgICAgICB0aGlzLnggPSB4LmdldCh0aGlzLnNlcmllcy54QXhpc0luZGV4KTtcbiAgICAgICAgdGhpcy55ID0geS5nZXQodGhpcy5zZXJpZXMueUF4aXNJbmRleCk7XG5cbiAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5kZWZhdWx0Q2xpcFBvaW50c01hcHBpbmcuZ2V0KHRoaXMuc2VyaWVzLmNsaXBQb2ludHNEaXJlY3Rpb24pO1xuXG4gICAgICAgIGNvbnN0IGxpbmUgPSBkM1xuICAgICAgICAgIC5saW5lPEJhc2VQb2ludD4oKVxuICAgICAgICAgIC5kZWZpbmVkKFxuICAgICAgICAgICAgKHBvaW50KSA9PlxuICAgICAgICAgICAgICBwb2ludC54ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgIHBvaW50LnkgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgcG9pbnQueCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgIHBvaW50LnkgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAhaXNOYU4ocG9pbnQueCkgJiZcbiAgICAgICAgICAgICAgIWlzTmFOKHBvaW50LnkpXG4gICAgICAgICAgKVxuICAgICAgICAgIC54KChwb2ludCkgPT4gdGhpcy54KHBvaW50LngpKVxuICAgICAgICAgIC55KChwb2ludCkgPT4gdGhpcy55KHBvaW50LnkpKTtcblxuICAgICAgICBsZXQgZmlsdGVyZWREYXRhID0gdGhpcy5zZXJpZXMuZGF0YTtcblxuICAgICAgICBpZiAodGhpcy5zZXJpZXMuY2xpcFBvaW50c0RpcmVjdGlvbiA9PT0gQ2xpcFBvaW50c0RpcmVjdGlvbi54KSB7XG4gICAgICAgICAgbGV0IFttaW4sIG1heF0gPSB0aGlzLnguZG9tYWluKCk7XG5cbiAgICAgICAgICBtaW4gPSBtaW4gaW5zdGFuY2VvZiBEYXRlID8gbWluLmdldFRpbWUoKSA6IG1pbjtcbiAgICAgICAgICBtYXggPSBtYXggaW5zdGFuY2VvZiBEYXRlID8gbWF4LmdldFRpbWUoKSA6IG1heDtcblxuICAgICAgICAgIGZpbHRlcmVkRGF0YSA9IGZpbHRlcmVkRGF0YT8uZmlsdGVyKGZpbHRlcihtaW4sIG1heCkpO1xuICAgICAgICB9XG5cblxuICAgICAgICBpZiAodGhpcy5zZXJpZXMuY2xpcFBvaW50c0RpcmVjdGlvbiA9PT0gQ2xpcFBvaW50c0RpcmVjdGlvbi55KSB7XG4gICAgICAgICAgbGV0IFttaW4sIG1heF0gPSB0aGlzLnkuZG9tYWluKCk7XG5cbiAgICAgICAgICBtaW4gPSBtaW4gaW5zdGFuY2VvZiBEYXRlID8gbWluLmdldFRpbWUoKSA6IG1pbjtcbiAgICAgICAgICBtYXggPSBtYXggaW5zdGFuY2VvZiBEYXRlID8gbWF4LmdldFRpbWUoKSA6IG1heDtcblxuICAgICAgICAgIGZpbHRlcmVkRGF0YSA9IGZpbHRlcmVkRGF0YT8uZmlsdGVyKGZpbHRlcihtaW4sIG1heCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGxpbmUoZmlsdGVyZWREYXRhKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubWFya2Vycz8ub24oJ3N0YXJ0IGRyYWcgZW5kJywgbnVsbCk7XG4gICAgdGhpcy5zdmMuc2V0VG9vbHRpcCh7XG4gICAgICBwb2ludDogbnVsbCxcbiAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgZHJhZyA9IChub2RlLCBldmVudDogZDMuRDNEcmFnRXZlbnQ8YW55LCBhbnksIGFueT4sIGQ6IEJhc2VQb2ludCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBkLm1hcmtlcj8uZHJhZ1R5cGUgPT09IERyYWdQb2ludFR5cGUueCB8fFxuICAgICAgICBkLm1hcmtlcj8uZHJhZ1R5cGUgPT09IERyYWdQb2ludFR5cGUueHlcbiAgICAgICkge1xuICAgICAgICBkLnggPSB0aGlzLnguaW52ZXJ0KGV2ZW50LngpO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGQubWFya2VyPy5kcmFnVHlwZSA9PT0gRHJhZ1BvaW50VHlwZS55IHx8XG4gICAgICAgIGQubWFya2VyPy5kcmFnVHlwZSA9PT0gRHJhZ1BvaW50VHlwZS54eVxuICAgICAgKSB7XG4gICAgICAgIGQueSA9IHRoaXMueS5pbnZlcnQoZXZlbnQueSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3ZjLmVtaXRQb2ludCh7XG4gICAgICAgIHRhcmdldDoge1xuICAgICAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgICAgICAgcG9pbnQ6IGQsXG4gICAgICAgIH0sXG4gICAgICAgIGV2ZW50LFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9O1xuICAgIHRoaXMubWFya2VycyA9IGQzXG4gICAgICAuZHJhZygpXG4gICAgICAuc3ViamVjdChmdW5jdGlvbiAoZXZlbnQsIGQ6IEJhc2VQb2ludCkge1xuICAgICAgICBjb25zdCBub2RlID0gZDMuc2VsZWN0KHRoaXMpO1xuICAgICAgICByZXR1cm4ge3g6IG5vZGUuYXR0cignY3gnKSwgeTogbm9kZS5hdHRyKCdjeScpfTtcbiAgICAgIH0pO1xuICAgIGNvbnN0IGRyYWdNYXJrZXJzID1cbiAgICAgIHRoaXMubWFya2Vycy5vbihcbiAgICAgICAgJ3N0YXJ0IGRyYWcgZW5kJyxcbiAgICAgICAgZnVuY3Rpb24gKGV2ZW50OiBkMy5EM0RyYWdFdmVudDxhbnksIGFueSwgYW55PiwgZDogQmFzZVBvaW50KSB7XG4gICAgICAgICAgY29uc3Qgbm9kZSA9IGQzLnNlbGVjdCh0aGlzKTtcblxuICAgICAgICAgIGRyYWcobm9kZSwgZXZlbnQsIGQpO1xuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgY29uc3QgZHJhZ2dhYmxlTWFya2VycyA9IHRoaXMuc2VyaWVzLmRhdGE/LmZpbHRlcihcbiAgICAgIChfKSA9PiBfPy5tYXJrZXIgJiYgXz8ubWFya2VyPy5kcmFnZ2FibGVcbiAgICApO1xuXG4gICAgY29uc3QgZWxlbWVudCA9IGQzXG4gICAgICAuc2VsZWN0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KVxuICAgICAgLnNlbGVjdEFsbCgnLmRyYWdnYWJsZS1tYXJrZXInKVxuICAgICAgLmRhdGEoZHJhZ2dhYmxlTWFya2Vycyk7XG5cbiAgICBlbGVtZW50LmNhbGwoZHJhZ01hcmtlcnMgYXMgYW55KTtcblxuICAgIHRoaXMuc3ZnRWxlbWVudCA9IGQzXG4gICAgICAuc2VsZWN0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KVxuICAgICAgLnNlbGVjdCgnLmxpbmUnKVxuICAgICAgLm5vZGUoKSBhcyBTVkdHZW9tZXRyeUVsZW1lbnQ7XG4gIH1cblxuICBnZXRNYXJrZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnNlcmllcy5kYXRhPy5maWx0ZXIoKF8pID0+IF8/Lm1hcmtlcik7XG4gIH1cblxuICBnZXRUcmFuc2Zvcm0oXG4gICAgZXZlbnQ6IGFueSxcbiAgICBzY2FsZVg6IE1hcDxudW1iZXIsIGFueT4sXG4gICAgc2NhbGVZOiBNYXA8bnVtYmVyLCBhbnk+XG4gICk6IFBpY2s8QmFzZVBvaW50LCAneCcgfCAneSc+IHtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ21vdXNlbGVhdmUnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgbW91c2UgPSBbZXZlbnQ/Lm9mZnNldFgsIGV2ZW50Py5vZmZzZXRZXTtcbiAgICBjb25zdCBmb3VuZFggPSBzY2FsZVguZ2V0KHRoaXMuc2VyaWVzLnhBeGlzSW5kZXgpO1xuICAgIGNvbnN0IGZvdW5kWSA9IHNjYWxlWS5nZXQodGhpcy5zZXJpZXMueUF4aXNJbmRleCk7XG4gICAgY29uc3QgdG9vbHRpcFRyYWNraW5nID0gdGhpcy5jb25maWc/LnRvb2x0aXA/LnRyYWNraW5nO1xuICAgIGNvbnN0IGxpbmVJbnRlcnNlY3Rpb24gPSAoXG4gICAgICBwMF94LFxuICAgICAgcDBfeSxcbiAgICAgIHAxX3gsXG4gICAgICBwMV95LFxuICAgICAgcDJfeCxcbiAgICAgIHAyX3ksXG4gICAgICBwM194LFxuICAgICAgcDNfeVxuICAgICkgPT4ge1xuICAgICAgY29uc3QgclYgPSB7fSBhcyBhbnk7XG4gICAgICBsZXQgczFfeCwgczFfeSwgczJfeCwgczJfeTtcbiAgICAgIHMxX3ggPSBwMV94IC0gcDBfeDtcbiAgICAgIHMxX3kgPSBwMV95IC0gcDBfeTtcbiAgICAgIHMyX3ggPSBwM194IC0gcDJfeDtcbiAgICAgIHMyX3kgPSBwM195IC0gcDJfeTtcblxuICAgICAgbGV0IHMsIHQ7XG4gICAgICBzID1cbiAgICAgICAgKC1zMV95ICogKHAwX3ggLSBwMl94KSArIHMxX3ggKiAocDBfeSAtIHAyX3kpKSAvXG4gICAgICAgICgtczJfeCAqIHMxX3kgKyBzMV94ICogczJfeSk7XG4gICAgICB0ID1cbiAgICAgICAgKHMyX3ggKiAocDBfeSAtIHAyX3kpIC0gczJfeSAqIChwMF94IC0gcDJfeCkpIC9cbiAgICAgICAgKC1zMl94ICogczFfeSArIHMxX3ggKiBzMl95KTtcblxuICAgICAgaWYgKHMgPj0gMCAmJiBzIDw9IDEgJiYgdCA+PSAwICYmIHQgPD0gMSkge1xuICAgICAgICAvLyBDb2xsaXNpb24gZGV0ZWN0ZWRcbiAgICAgICAgclYueCA9IHAwX3ggKyB0ICogczFfeDtcbiAgICAgICAgclYueSA9IHAwX3kgKyB0ICogczFfeTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJWO1xuICAgIH07XG5cbiAgICBpZiAodG9vbHRpcFRyYWNraW5nID09PSBUb29sdGlwVHJhY2tpbmcueCkge1xuICAgICAgY29uc3QgYmlzZWN0ID0gZDMuYmlzZWN0b3IoKF86IEJhc2VQb2ludCkgPT4gXy54KS5yaWdodDtcbiAgICAgIGNvbnN0IHBvaW50ZXIgPSBtb3VzZVswXTtcblxuICAgICAgbGV0IHgwID0gZm91bmRYLmludmVydChwb2ludGVyKTtcbiAgICAgIGlmICh4MCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgeDAgPSB4MC5nZXRUaW1lKCk7XG4gICAgICB9XG4gICAgICBjb25zdCByaWdodElkID0gYmlzZWN0KHRoaXMuc2VyaWVzLmRhdGEsIHgwKTtcbiAgICAgIGNvbnN0IHJhbmdlID0gZm91bmRZLnJhbmdlKCk7XG5cbiAgICAgIGNvbnN0IGludGVyc2VjdCA9IGxpbmVJbnRlcnNlY3Rpb24oXG4gICAgICAgIHBvaW50ZXIsXG4gICAgICAgIHJhbmdlWzBdLFxuICAgICAgICBwb2ludGVyLFxuICAgICAgICByYW5nZVsxXSxcbiAgICAgICAgZm91bmRYKHRoaXMuc2VyaWVzLmRhdGFbcmlnaHRJZCAtIDFdPy54KSxcbiAgICAgICAgZm91bmRZKHRoaXMuc2VyaWVzLmRhdGFbcmlnaHRJZCAtIDFdPy55KSxcbiAgICAgICAgZm91bmRYKHRoaXMuc2VyaWVzLmRhdGFbcmlnaHRJZF0/LngpLFxuICAgICAgICBmb3VuZFkodGhpcy5zZXJpZXMuZGF0YVtyaWdodElkXT8ueSlcbiAgICAgICk7XG4gICAgICBjb25zdCB4ID0gZm91bmRYLmludmVydChpbnRlcnNlY3QueCk7XG4gICAgICBjb25zdCB5ID0gZm91bmRZLmludmVydChpbnRlcnNlY3QueSk7XG4gICAgICBpZiAoeCAhPT0gbnVsbCAmJiB4ICE9PSB1bmRlZmluZWQgJiYgIWlzTmFOKHgpICYmIHkgIT09IG51bGwgJiYgeSAhPT0gdW5kZWZpbmVkICYmICFpc05hTih5KSkge1xuICAgICAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgICAgICBwb2ludDoge3g6IGZvdW5kWC5pbnZlcnQoaW50ZXJzZWN0LngpLCB5OiBmb3VuZFkuaW52ZXJ0KGludGVyc2VjdC55KX0sXG4gICAgICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgICAgICBwb2ludDogbnVsbCxcbiAgICAgICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgeDogaW50ZXJzZWN0LngsXG4gICAgICAgIHk6IGludGVyc2VjdC55LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodG9vbHRpcFRyYWNraW5nID09PSBUb29sdGlwVHJhY2tpbmcueSkge1xuICAgICAgY29uc3QgYmlzZWN0ID0gZDMuYmlzZWN0b3IoKF86IEJhc2VQb2ludCkgPT4gXy55KS5yaWdodDtcblxuICAgICAgbGV0IHkwID0gZm91bmRZLmludmVydChtb3VzZVsxXSk7XG4gICAgICBpZiAoeTAgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIHkwID0geTAuZ2V0VGltZSgpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmlnaHRJZCA9IGJpc2VjdCh0aGlzLnNlcmllcy5kYXRhLCB5MCk7XG4gICAgICBjb25zdCByYW5nZSA9IGZvdW5kWC5yYW5nZSgpO1xuXG4gICAgICBjb25zdCBpbnRlcnNlY3QgPSBsaW5lSW50ZXJzZWN0aW9uKFxuICAgICAgICByYW5nZVswXSxcbiAgICAgICAgbW91c2VbMV0sXG4gICAgICAgIHJhbmdlWzFdLFxuICAgICAgICBtb3VzZVsxXSxcbiAgICAgICAgZm91bmRYKHRoaXMuc2VyaWVzLmRhdGFbcmlnaHRJZCAtIDFdPy54KSxcbiAgICAgICAgZm91bmRZKHRoaXMuc2VyaWVzLmRhdGFbcmlnaHRJZCAtIDFdPy55KSxcbiAgICAgICAgZm91bmRYKHRoaXMuc2VyaWVzLmRhdGFbcmlnaHRJZF0/LngpLFxuICAgICAgICBmb3VuZFkodGhpcy5zZXJpZXMuZGF0YVtyaWdodElkXT8ueSlcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHggPSBmb3VuZFguaW52ZXJ0KGludGVyc2VjdC54KTtcbiAgICAgIGNvbnN0IHkgPSBmb3VuZFkuaW52ZXJ0KGludGVyc2VjdC55KTtcblxuICAgICAgaWYgKHggIT09IG51bGwgJiYgeCAhPT0gdW5kZWZpbmVkICYmICFpc05hTih4KSAmJiB5ICE9PSBudWxsICYmIHkgIT09IHVuZGVmaW5lZCAmJiAhaXNOYU4oeSkpIHtcbiAgICAgICAgdGhpcy5zdmMuc2V0VG9vbHRpcCh7XG4gICAgICAgICAgcG9pbnQ6IHt4OiBmb3VuZFguaW52ZXJ0KGludGVyc2VjdC54KSwgeTogZm91bmRZLmludmVydChpbnRlcnNlY3QueSl9LFxuICAgICAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdmMuc2V0VG9vbHRpcCh7XG4gICAgICAgICAgcG9pbnQ6IG51bGwsXG4gICAgICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IGludGVyc2VjdC54LFxuICAgICAgICB5OiBpbnRlcnNlY3QueSxcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG4iXX0=
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZWFyLXNlcmllcy1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvbGluZWFyLXNlcmllcy1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBbUMsU0FBUyxFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQWdCLEdBQUcsRUFBYyxHQUFHLEVBQUUsY0FBYyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSXpFLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7Ozs7O0FBTzNFLE1BQU0sT0FBTyxnQkFDWCxTQUFRLG1CQUFzQjtJQWE5QixZQUNxQixHQUFpQixFQUNqQixHQUFzQixFQUN0QixZQUEwQixFQUMxQixXQUF3QixFQUN4QixPQUFtQjtRQUV0QyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTmpDLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQWZqQyw2QkFBd0IsR0FBeUgsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQWtCbEssQ0FBQztJQUVRLFFBQVE7UUFDZixNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQUUsRUFB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LENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM1RixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztvQkFDbEIsS0FBSyxFQUFFLEVBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQztvQkFDckUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2lCQUNwQixDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztvQkFDbEIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2lCQUNwQixDQUFDLENBQUM7YUFDSjtZQUVELE9BQU87Z0JBQ0wsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNkLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQzthQUNmLENBQUM7U0FDSDtJQUNILENBQUM7OzZHQS9UVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQiwyRUFGakIsRUFBRTsyRkFFRCxnQkFBZ0I7a0JBSDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi4vLi4vbW9kZWwvYmFzZS1wb2ludCc7XG5pbXBvcnQge1Nlcmllc0Jhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uL2Jhc2Uvc2VyaWVzLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIHRhcCwgd2l0aExhdGVzdEZyb219IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDaGFydFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQge1NjYWxlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2Uvem9vbS5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7RHJhZ1BvaW50VHlwZX0gZnJvbSAnLi4vLi4vbW9kZWwvZW51bS9kcmFnLXBvaW50LXR5cGUnO1xuaW1wb3J0IHtUb29sdGlwVHJhY2tpbmd9IGZyb20gJy4uLy4uL21vZGVsL2VudW0vdG9vbHRpcC10cmFja2luZyc7XG5pbXBvcnQge0NsaXBQb2ludHNEaXJlY3Rpb259IGZyb20gJy4uLy4uL21vZGVsL2VudW0vY2xpcC1wb2ludHMtZGlyZWN0aW9uJztcbmltcG9ydCB7QXhpc30gZnJvbSBcIi4uLy4uL2NvcmUvYXhpcy9heGlzXCI7XG5pbXBvcnQge0lTY2FsZXNNYXB9IGZyb20gXCIuLi8uLi9tb2RlbC9pLXNjYWxlcy1tYXBcIjtcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiAnJyxcbn0pXG5leHBvcnQgY2xhc3MgTGluZWFyU2VyaWVzQmFzZTxUIGV4dGVuZHMgQmFzZVBvaW50PlxuICBleHRlbmRzIFNlcmllc0Jhc2VDb21wb25lbnQ8VD5cbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIGRlZmF1bHRDbGlwUG9pbnRzTWFwcGluZzogTWFwPENsaXBQb2ludHNEaXJlY3Rpb24sIChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpID0+IChwb2ludDogQmFzZVBvaW50LCBpZHg6IG51bWJlciwgYXJyOiBBcnJheTxCYXNlUG9pbnQ+KSA9PiB7fT4gPSBuZXcgTWFwKCk7XG5cbiAgdHJhbnNmb3JtOiBPYnNlcnZhYmxlPFBpY2s8QmFzZVBvaW50LCAneCcgfCAneSc+PjtcbiAgZGlzcGxheTogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICBwYXRoOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHN2Z0VsZW1lbnQ6IFNWR0dlb21ldHJ5RWxlbWVudDtcbiAgeDogYW55O1xuICB5OiBhbnk7XG4gIG1hcmtlcnM6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc3ZjOiBDaGFydFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNjYWxlU2VydmljZTogU2NhbGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB6b29tU2VydmljZTogWm9vbVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGVsZW1lbnQ6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgc3VwZXIoc3ZjLCBjZHIsIHNjYWxlU2VydmljZSwgem9vbVNlcnZpY2UsIGVsZW1lbnQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyWCA9IChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpID0+IChcbiAgICAgIHBvaW50OiBCYXNlUG9pbnQsXG4gICAgICBpZHg6IG51bWJlcixcbiAgICAgIGFycjogQXJyYXk8QmFzZVBvaW50PlxuICAgICkgPT4ge1xuICAgICAgY29uc3QgYmlnZ2VyID0gbWluID4gbWF4ID8gbWluIDogbWF4O1xuICAgICAgY29uc3Qgc21hbGxlciA9IG1pbiA+IG1heCA/IG1heCA6IG1pbjtcbiAgICAgIHJldHVybiAocG9pbnQueCA8PSBiaWdnZXIgfHxcbiAgICAgICAgICBwb2ludC54MSA8PSBiaWdnZXIgfHxcbiAgICAgICAgICAoYXJyW2lkeCAtIDFdICYmIGFycltpZHggLSAxXS54IDw9IGJpZ2dlcikgfHxcbiAgICAgICAgICAoYXJyW2lkeCAtIDFdICYmIGFycltpZHggLSAxXS54MSA8PSBiaWdnZXIpKSAmJlxuICAgICAgICAocG9pbnQueCA+PSBzbWFsbGVyIHx8XG4gICAgICAgICAgcG9pbnQueDEgPj0gc21hbGxlciB8fFxuICAgICAgICAgIChhcnJbaWR4ICsgMV0gJiYgYXJyW2lkeCArIDFdLnggPj0gc21hbGxlcikgfHxcbiAgICAgICAgICAoYXJyW2lkeCArIDFdICYmIGFycltpZHggKyAxXS54MSA+PSBzbWFsbGVyKSlcbiAgICAgICAgO1xuICAgIH07XG5cbiAgICBjb25zdCBmaWx0ZXJZID0gKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikgPT4gKFxuICAgICAgcG9pbnQ6IEJhc2VQb2ludCxcbiAgICAgIGlkeDogbnVtYmVyLFxuICAgICAgYXJyOiBBcnJheTxCYXNlUG9pbnQ+XG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBiaWdnZXIgPSBtaW4gPiBtYXggPyBtaW4gOiBtYXg7XG4gICAgICBjb25zdCBzbWFsbGVyID0gbWluID4gbWF4ID8gbWF4IDogbWluO1xuICAgICAgcmV0dXJuIChwb2ludC55IDw9IGJpZ2dlciB8fFxuICAgICAgICAgIHBvaW50LnkxIDw9IGJpZ2dlciB8fFxuICAgICAgICAgIChhcnJbaWR4IC0gMV0gJiYgYXJyW2lkeCAtIDFdLnkgPD0gYmlnZ2VyKSB8fFxuICAgICAgICAgIChhcnJbaWR4IC0gMV0gJiYgYXJyW2lkeCAtIDFdLnkxIDw9IGJpZ2dlcikpICYmXG4gICAgICAgIChwb2ludC55ID49IHNtYWxsZXIgfHxcbiAgICAgICAgICBwb2ludC55MSA+PSBzbWFsbGVyIHx8XG4gICAgICAgICAgKGFycltpZHggKyAxXSAmJiBhcnJbaWR4ICsgMV0ueSA+PSBzbWFsbGVyKSB8fFxuICAgICAgICAgIChhcnJbaWR4ICsgMV0gJiYgYXJyW2lkeCArIDFdLnkxID49IHNtYWxsZXIpKTtcbiAgICB9O1xuXG4gICAgdGhpcy5kZWZhdWx0Q2xpcFBvaW50c01hcHBpbmcuc2V0KENsaXBQb2ludHNEaXJlY3Rpb24ueCwgZmlsdGVyWCk7XG4gICAgdGhpcy5kZWZhdWx0Q2xpcFBvaW50c01hcHBpbmcuc2V0KENsaXBQb2ludHNEaXJlY3Rpb24ueSwgZmlsdGVyWSk7XG5cbiAgICB0aGlzLnRyYW5zZm9ybSA9IHRoaXMuc3ZjLnBvaW50ZXJNb3ZlLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnNjYWxlU2VydmljZS5zY2FsZXMpLFxuICAgICAgbWFwKChkYXRhOiBbUG9pbnRlckV2ZW50LCBJU2NhbGVzTWFwXSkgPT4ge1xuICAgICAgICBjb25zdCBbZXZlbnQsIHt4LCB5fV0gPSBkYXRhO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zZm9ybShldmVudCwgeC5nZXQodGhpcy5zZXJpZXMueEF4aXNJbmRleCkuc2NhbGUsIHkuZ2V0KHRoaXMuc2VyaWVzLnlBeGlzSW5kZXgpLnNjYWxlKTtcbiAgICAgIH0pLFxuICAgICAgdGFwKCgpID0+IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKSlcbiAgICApO1xuXG4gICAgdGhpcy5wYXRoID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUoXG4gICAgICBtYXAoKGRhdGEpID0+IHtcbiAgICAgICAgY29uc3Qge3gsIHl9ID0gZGF0YTtcbiAgICAgICAgdGhpcy54ID0geC5nZXQodGhpcy5zZXJpZXMueEF4aXNJbmRleCkuc2NhbGU7XG4gICAgICAgIHRoaXMueSA9IHkuZ2V0KHRoaXMuc2VyaWVzLnlBeGlzSW5kZXgpLnNjYWxlO1xuXG4gICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZGVmYXVsdENsaXBQb2ludHNNYXBwaW5nLmdldCh0aGlzLnNlcmllcy5jbGlwUG9pbnRzRGlyZWN0aW9uKTtcblxuICAgICAgICBjb25zdCBsaW5lID0gZDNcbiAgICAgICAgICAubGluZTxCYXNlUG9pbnQ+KClcbiAgICAgICAgICAuZGVmaW5lZChcbiAgICAgICAgICAgIChwb2ludCkgPT5cbiAgICAgICAgICAgICAgcG9pbnQueCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICBwb2ludC55ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgIHBvaW50LnggIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICBwb2ludC55ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgIWlzTmFOKHBvaW50LngpICYmXG4gICAgICAgICAgICAgICFpc05hTihwb2ludC55KVxuICAgICAgICAgIClcbiAgICAgICAgICAueCgocG9pbnQpID0+IHRoaXMueChwb2ludC54KSlcbiAgICAgICAgICAueSgocG9pbnQpID0+IHRoaXMueShwb2ludC55KSk7XG5cbiAgICAgICAgbGV0IGZpbHRlcmVkRGF0YSA9IHRoaXMuc2VyaWVzLmRhdGE7XG5cbiAgICAgICAgaWYgKHRoaXMuc2VyaWVzLmNsaXBQb2ludHNEaXJlY3Rpb24gPT09IENsaXBQb2ludHNEaXJlY3Rpb24ueCkge1xuICAgICAgICAgIGxldCBbbWluLCBtYXhdID0gdGhpcy54LmRvbWFpbigpO1xuXG4gICAgICAgICAgbWluID0gbWluIGluc3RhbmNlb2YgRGF0ZSA/IG1pbi5nZXRUaW1lKCkgOiBtaW47XG4gICAgICAgICAgbWF4ID0gbWF4IGluc3RhbmNlb2YgRGF0ZSA/IG1heC5nZXRUaW1lKCkgOiBtYXg7XG5cbiAgICAgICAgICBmaWx0ZXJlZERhdGEgPSBmaWx0ZXJlZERhdGE/LmZpbHRlcihmaWx0ZXIobWluLCBtYXgpKTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgaWYgKHRoaXMuc2VyaWVzLmNsaXBQb2ludHNEaXJlY3Rpb24gPT09IENsaXBQb2ludHNEaXJlY3Rpb24ueSkge1xuICAgICAgICAgIGxldCBbbWluLCBtYXhdID0gdGhpcy55LmRvbWFpbigpO1xuXG4gICAgICAgICAgbWluID0gbWluIGluc3RhbmNlb2YgRGF0ZSA/IG1pbi5nZXRUaW1lKCkgOiBtaW47XG4gICAgICAgICAgbWF4ID0gbWF4IGluc3RhbmNlb2YgRGF0ZSA/IG1heC5nZXRUaW1lKCkgOiBtYXg7XG5cbiAgICAgICAgICBmaWx0ZXJlZERhdGEgPSBmaWx0ZXJlZERhdGE/LmZpbHRlcihmaWx0ZXIobWluLCBtYXgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsaW5lKGZpbHRlcmVkRGF0YSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm1hcmtlcnM/Lm9uKCdzdGFydCBkcmFnIGVuZCcsIG51bGwpO1xuICAgIHRoaXMuc3ZjLnNldFRvb2x0aXAoe1xuICAgICAgcG9pbnQ6IG51bGwsXG4gICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IGRyYWcgPSAobm9kZSwgZXZlbnQ6IGQzLkQzRHJhZ0V2ZW50PGFueSwgYW55LCBhbnk+LCBkOiBCYXNlUG9pbnQpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgZC5tYXJrZXI/LmRyYWdUeXBlID09PSBEcmFnUG9pbnRUeXBlLnggfHxcbiAgICAgICAgZC5tYXJrZXI/LmRyYWdUeXBlID09PSBEcmFnUG9pbnRUeXBlLnh5XG4gICAgICApIHtcbiAgICAgICAgZC54ID0gdGhpcy54LmludmVydChldmVudC54KTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBkLm1hcmtlcj8uZHJhZ1R5cGUgPT09IERyYWdQb2ludFR5cGUueSB8fFxuICAgICAgICBkLm1hcmtlcj8uZHJhZ1R5cGUgPT09IERyYWdQb2ludFR5cGUueHlcbiAgICAgICkge1xuICAgICAgICBkLnkgPSB0aGlzLnkuaW52ZXJ0KGV2ZW50LnkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN2Yy5lbWl0UG9pbnQoe1xuICAgICAgICB0YXJnZXQ6IHtcbiAgICAgICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgICAgICAgIHBvaW50OiBkLFxuICAgICAgICB9LFxuICAgICAgICBldmVudCxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfTtcbiAgICB0aGlzLm1hcmtlcnMgPSBkM1xuICAgICAgLmRyYWcoKVxuICAgICAgLnN1YmplY3QoZnVuY3Rpb24gKGV2ZW50LCBkOiBCYXNlUG9pbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IGQzLnNlbGVjdCh0aGlzKTtcbiAgICAgICAgcmV0dXJuIHt4OiBub2RlLmF0dHIoJ2N4JyksIHk6IG5vZGUuYXR0cignY3knKX07XG4gICAgICB9KTtcbiAgICBjb25zdCBkcmFnTWFya2VycyA9XG4gICAgICB0aGlzLm1hcmtlcnMub24oXG4gICAgICAgICdzdGFydCBkcmFnIGVuZCcsXG4gICAgICAgIGZ1bmN0aW9uIChldmVudDogZDMuRDNEcmFnRXZlbnQ8YW55LCBhbnksIGFueT4sIGQ6IEJhc2VQb2ludCkge1xuICAgICAgICAgIGNvbnN0IG5vZGUgPSBkMy5zZWxlY3QodGhpcyk7XG5cbiAgICAgICAgICBkcmFnKG5vZGUsIGV2ZW50LCBkKTtcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgIGNvbnN0IGRyYWdnYWJsZU1hcmtlcnMgPSB0aGlzLnNlcmllcy5kYXRhPy5maWx0ZXIoXG4gICAgICAoXykgPT4gXz8ubWFya2VyICYmIF8/Lm1hcmtlcj8uZHJhZ2dhYmxlXG4gICAgKTtcblxuICAgIGNvbnN0IGVsZW1lbnQgPSBkM1xuICAgICAgLnNlbGVjdCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudClcbiAgICAgIC5zZWxlY3RBbGwoJy5kcmFnZ2FibGUtbWFya2VyJylcbiAgICAgIC5kYXRhKGRyYWdnYWJsZU1hcmtlcnMpO1xuXG4gICAgZWxlbWVudC5jYWxsKGRyYWdNYXJrZXJzIGFzIGFueSk7XG5cbiAgICB0aGlzLnN2Z0VsZW1lbnQgPSBkM1xuICAgICAgLnNlbGVjdCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudClcbiAgICAgIC5zZWxlY3QoJy5saW5lJylcbiAgICAgIC5ub2RlKCkgYXMgU1ZHR2VvbWV0cnlFbGVtZW50O1xuICB9XG5cbiAgZ2V0TWFya2VycygpIHtcbiAgICByZXR1cm4gdGhpcy5zZXJpZXMuZGF0YT8uZmlsdGVyKChfKSA9PiBfPy5tYXJrZXIpO1xuICB9XG5cbiAgZ2V0VHJhbnNmb3JtKFxuICAgIGV2ZW50OiBhbnksXG4gICAgc2NhbGVYOiBhbnksXG4gICAgc2NhbGVZOiBhbnlcbiAgKTogUGljazxCYXNlUG9pbnQsICd4JyB8ICd5Jz4ge1xuICAgIGlmIChldmVudC50eXBlID09PSAnbW91c2VsZWF2ZScpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBtb3VzZSA9IFtldmVudD8ub2Zmc2V0WCwgZXZlbnQ/Lm9mZnNldFldO1xuXG4gICAgY29uc3QgdG9vbHRpcFRyYWNraW5nID0gdGhpcy5jb25maWc/LnRvb2x0aXA/LnRyYWNraW5nO1xuICAgIGNvbnN0IGxpbmVJbnRlcnNlY3Rpb24gPSAoXG4gICAgICBwMF94LFxuICAgICAgcDBfeSxcbiAgICAgIHAxX3gsXG4gICAgICBwMV95LFxuICAgICAgcDJfeCxcbiAgICAgIHAyX3ksXG4gICAgICBwM194LFxuICAgICAgcDNfeVxuICAgICkgPT4ge1xuICAgICAgY29uc3QgclYgPSB7fSBhcyBhbnk7XG4gICAgICBsZXQgczFfeCwgczFfeSwgczJfeCwgczJfeTtcbiAgICAgIHMxX3ggPSBwMV94IC0gcDBfeDtcbiAgICAgIHMxX3kgPSBwMV95IC0gcDBfeTtcbiAgICAgIHMyX3ggPSBwM194IC0gcDJfeDtcbiAgICAgIHMyX3kgPSBwM195IC0gcDJfeTtcblxuICAgICAgbGV0IHMsIHQ7XG4gICAgICBzID1cbiAgICAgICAgKC1zMV95ICogKHAwX3ggLSBwMl94KSArIHMxX3ggKiAocDBfeSAtIHAyX3kpKSAvXG4gICAgICAgICgtczJfeCAqIHMxX3kgKyBzMV94ICogczJfeSk7XG4gICAgICB0ID1cbiAgICAgICAgKHMyX3ggKiAocDBfeSAtIHAyX3kpIC0gczJfeSAqIChwMF94IC0gcDJfeCkpIC9cbiAgICAgICAgKC1zMl94ICogczFfeSArIHMxX3ggKiBzMl95KTtcblxuICAgICAgaWYgKHMgPj0gMCAmJiBzIDw9IDEgJiYgdCA+PSAwICYmIHQgPD0gMSkge1xuICAgICAgICAvLyBDb2xsaXNpb24gZGV0ZWN0ZWRcbiAgICAgICAgclYueCA9IHAwX3ggKyB0ICogczFfeDtcbiAgICAgICAgclYueSA9IHAwX3kgKyB0ICogczFfeTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJWO1xuICAgIH07XG5cbiAgICBpZiAodG9vbHRpcFRyYWNraW5nID09PSBUb29sdGlwVHJhY2tpbmcueCkge1xuICAgICAgY29uc3QgYmlzZWN0ID0gZDMuYmlzZWN0b3IoKF86IEJhc2VQb2ludCkgPT4gXy54KS5yaWdodDtcbiAgICAgIGNvbnN0IHBvaW50ZXIgPSBtb3VzZVswXTtcblxuICAgICAgbGV0IHgwID0gc2NhbGVYLmludmVydChwb2ludGVyKTtcbiAgICAgIGlmICh4MCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgeDAgPSB4MC5nZXRUaW1lKCk7XG4gICAgICB9XG4gICAgICBjb25zdCByaWdodElkID0gYmlzZWN0KHRoaXMuc2VyaWVzLmRhdGEsIHgwKTtcbiAgICAgIGNvbnN0IHJhbmdlID0gc2NhbGVZLnJhbmdlKCk7XG5cbiAgICAgIGNvbnN0IGludGVyc2VjdCA9IGxpbmVJbnRlcnNlY3Rpb24oXG4gICAgICAgIHBvaW50ZXIsXG4gICAgICAgIHJhbmdlWzBdLFxuICAgICAgICBwb2ludGVyLFxuICAgICAgICByYW5nZVsxXSxcbiAgICAgICAgc2NhbGVYKHRoaXMuc2VyaWVzLmRhdGFbcmlnaHRJZCAtIDFdPy54KSxcbiAgICAgICAgc2NhbGVZKHRoaXMuc2VyaWVzLmRhdGFbcmlnaHRJZCAtIDFdPy55KSxcbiAgICAgICAgc2NhbGVYKHRoaXMuc2VyaWVzLmRhdGFbcmlnaHRJZF0/LngpLFxuICAgICAgICBzY2FsZVkodGhpcy5zZXJpZXMuZGF0YVtyaWdodElkXT8ueSlcbiAgICAgICk7XG4gICAgICBjb25zdCB4ID0gc2NhbGVYLmludmVydChpbnRlcnNlY3QueCk7XG4gICAgICBjb25zdCB5ID0gc2NhbGVZLmludmVydChpbnRlcnNlY3QueSk7XG4gICAgICBpZiAoeCAhPT0gbnVsbCAmJiB4ICE9PSB1bmRlZmluZWQgJiYgIWlzTmFOKHgpICYmIHkgIT09IG51bGwgJiYgeSAhPT0gdW5kZWZpbmVkICYmICFpc05hTih5KSkge1xuICAgICAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgICAgICBwb2ludDoge3g6IHNjYWxlWC5pbnZlcnQoaW50ZXJzZWN0LngpLCB5OiBzY2FsZVkuaW52ZXJ0KGludGVyc2VjdC55KX0sXG4gICAgICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgICAgICBwb2ludDogbnVsbCxcbiAgICAgICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgeDogaW50ZXJzZWN0LngsXG4gICAgICAgIHk6IGludGVyc2VjdC55LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodG9vbHRpcFRyYWNraW5nID09PSBUb29sdGlwVHJhY2tpbmcueSkge1xuICAgICAgY29uc3QgYmlzZWN0ID0gZDMuYmlzZWN0b3IoKF86IEJhc2VQb2ludCkgPT4gXy55KS5yaWdodDtcblxuICAgICAgbGV0IHkwID0gc2NhbGVZLmludmVydChtb3VzZVsxXSk7XG4gICAgICBpZiAoeTAgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIHkwID0geTAuZ2V0VGltZSgpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmlnaHRJZCA9IGJpc2VjdCh0aGlzLnNlcmllcy5kYXRhLCB5MCk7XG4gICAgICBjb25zdCByYW5nZSA9IHNjYWxlWC5yYW5nZSgpO1xuXG4gICAgICBjb25zdCBpbnRlcnNlY3QgPSBsaW5lSW50ZXJzZWN0aW9uKFxuICAgICAgICByYW5nZVswXSxcbiAgICAgICAgbW91c2VbMV0sXG4gICAgICAgIHJhbmdlWzFdLFxuICAgICAgICBtb3VzZVsxXSxcbiAgICAgICAgc2NhbGVYKHRoaXMuc2VyaWVzLmRhdGFbcmlnaHRJZCAtIDFdPy54KSxcbiAgICAgICAgc2NhbGVZKHRoaXMuc2VyaWVzLmRhdGFbcmlnaHRJZCAtIDFdPy55KSxcbiAgICAgICAgc2NhbGVYKHRoaXMuc2VyaWVzLmRhdGFbcmlnaHRJZF0/LngpLFxuICAgICAgICBzY2FsZVkodGhpcy5zZXJpZXMuZGF0YVtyaWdodElkXT8ueSlcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHggPSBzY2FsZVguaW52ZXJ0KGludGVyc2VjdC54KTtcbiAgICAgIGNvbnN0IHkgPSBzY2FsZVkuaW52ZXJ0KGludGVyc2VjdC55KTtcblxuICAgICAgaWYgKHggIT09IG51bGwgJiYgeCAhPT0gdW5kZWZpbmVkICYmICFpc05hTih4KSAmJiB5ICE9PSBudWxsICYmIHkgIT09IHVuZGVmaW5lZCAmJiAhaXNOYU4oeSkpIHtcbiAgICAgICAgdGhpcy5zdmMuc2V0VG9vbHRpcCh7XG4gICAgICAgICAgcG9pbnQ6IHt4OiBzY2FsZVguaW52ZXJ0KGludGVyc2VjdC54KSwgeTogc2NhbGVZLmludmVydChpbnRlcnNlY3QueSl9LFxuICAgICAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdmMuc2V0VG9vbHRpcCh7XG4gICAgICAgICAgcG9pbnQ6IG51bGwsXG4gICAgICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IGludGVyc2VjdC54LFxuICAgICAgICB5OiBpbnRlcnNlY3QueSxcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -16,8 +16,8 @@ export class ScatterSeriesComponent extends SeriesBaseComponent {
16
16
  this.element = element;
17
17
  }
18
18
  ngOnInit() {
19
- this.x = this.scaleService.xScaleMap.pipe(map(_ => _.get(this.series.xAxisIndex)));
20
- this.y = this.scaleService.yScaleMap.pipe(map(_ => _.get(this.series.yAxisIndex)));
19
+ this.x = this.scaleService.scales.pipe(map(_ => _.x.get(this.series.xAxisIndex).scale));
20
+ this.y = this.scaleService.scales.pipe(map(_ => _.y.get(this.series.yAxisIndex).scale));
21
21
  }
22
22
  ngAfterViewInit() {
23
23
  }
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
40
40
  type: Component,
41
41
  args: [{ selector: 'svg:svg[teta-scatter-series]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"{\n y: y | async,\n x: x | async\n} as scales\">\n <svg:circle\n class=\"line\"\n *ngFor=\"let point of series.data\"\n (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\"\n [attr.cx]=\"scales.x(point.x)\"\n [attr.cy]=\"scales.y(point.y)\"\n [attr.r]=\"series.style?.radius ?? 1\"\n [attr.stroke]=\"point.color ?? series.color\"\n [attr.fill]=\"point.color ?? series.color\"\n [attr.stroke-width]=\"series.style?.strokeWidth\">\n </svg:circle>\n</ng-container>\n\n\n\n", styles: [".draggable-marker{cursor:move}.active{stroke-opacity:.5}.marker-grab{opacity:0}\n"] }]
42
42
  }], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }]; } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhdHRlci1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvc2NhdHRlci1zZXJpZXMvc2NhdHRlci1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvc2NhdHRlci1zZXJpZXMvc2NhdHRlci1zZXJpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQix1QkFBdUIsRUFBcUIsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUV2SCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFXckMsTUFBTSxPQUFPLHNCQUNYLFNBQVEsbUJBQXNCO0lBUzlCLFlBQ3FCLEdBQWlCLEVBQ2pCLEdBQXNCLEVBQ3RCLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLE9BQW1CO1FBRXRDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFOakMsUUFBRyxHQUFILEdBQUcsQ0FBYztRQUNqQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFZO0lBR3hDLENBQUM7SUFFUSxRQUFRO1FBQ2YsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxlQUFlO0lBQ2YsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQjtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNsQixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2xCLEtBQUssRUFBRSxJQUFJO1lBQ1gsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7O21IQXhDVSxzQkFBc0I7dUdBQXRCLHNCQUFzQiwyRkNkbkMsa2lCQW9CQTsyRkROYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UsOEJBQThCLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmFzZVBvaW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbC9iYXNlLXBvaW50JztcbmltcG9ydCB7U2VyaWVzQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vYmFzZS9zZXJpZXMtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHttYXAsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDaGFydFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQge1NjYWxlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvem9vbS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3ZnOnN2Z1t0ZXRhLXNjYXR0ZXItc2VyaWVzXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY2F0dGVyLXNlcmllcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NjYXR0ZXItc2VyaWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNjYXR0ZXJTZXJpZXNDb21wb25lbnQ8VCBleHRlbmRzIEJhc2VQb2ludD5cbiAgZXh0ZW5kcyBTZXJpZXNCYXNlQ29tcG9uZW50PFQ+XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgdHJhbnNmb3JtOiBPYnNlcnZhYmxlPFBpY2s8QmFzZVBvaW50LCAneCcgfCAneSc+PjtcbiAgZGlzcGxheTogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICBwYXRoOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHN2Z0VsZW1lbnQ6IFNWR0dlb21ldHJ5RWxlbWVudDtcbiAgeDogT2JzZXJ2YWJsZTxhbnk+O1xuICB5OiBPYnNlcnZhYmxlPGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHN2YzogQ2hhcnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzY2FsZVNlcnZpY2U6IFNjYWxlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgem9vbVNlcnZpY2U6IFpvb21TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBlbGVtZW50OiBFbGVtZW50UmVmXG4gICkge1xuICAgIHN1cGVyKHN2YywgY2RyLCBzY2FsZVNlcnZpY2UsIHpvb21TZXJ2aWNlLCBlbGVtZW50KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMueCA9IHRoaXMuc2NhbGVTZXJ2aWNlLnhTY2FsZU1hcC5waXBlKG1hcChfID0+IF8uZ2V0KHRoaXMuc2VyaWVzLnhBeGlzSW5kZXgpKSk7XG4gICAgdGhpcy55ID0gdGhpcy5zY2FsZVNlcnZpY2UueVNjYWxlTWFwLnBpcGUobWFwKF8gPT4gXy5nZXQodGhpcy5zZXJpZXMueUF4aXNJbmRleCkpKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgfVxuXG4gIG1vdXNlZW50ZXIocG9pbnQ6IEJhc2VQb2ludCkge1xuICAgIHRoaXMuc3ZjLnNldFRvb2x0aXAoe1xuICAgICAgcG9pbnQ6IHBvaW50LFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxuXG4gIG1vdXNlbGVhdmUocG9pbnQ6IEJhc2VQb2ludCkge1xuICAgIHRoaXMuc3ZjLnNldFRvb2x0aXAoe1xuICAgICAgcG9pbnQ6IG51bGwsXG4gICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwie1xuICB5OiB5IHwgYXN5bmMsXG4gIHg6IHggfCBhc3luY1xufSBhcyBzY2FsZXNcIj5cbiAgPHN2ZzpjaXJjbGVcbiAgICBjbGFzcz1cImxpbmVcIlxuICAgICpuZ0Zvcj1cImxldCBwb2ludCBvZiBzZXJpZXMuZGF0YVwiXG4gICAgKG1vdXNlZW50ZXIpPVwibW91c2VlbnRlcihwb2ludClcIlxuICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlbGVhdmUocG9pbnQpXCJcbiAgICBbYXR0ci5jeF09XCJzY2FsZXMueChwb2ludC54KVwiXG4gICAgW2F0dHIuY3ldPVwic2NhbGVzLnkocG9pbnQueSlcIlxuICAgIFthdHRyLnJdPVwic2VyaWVzLnN0eWxlPy5yYWRpdXMgPz8gMVwiXG4gICAgW2F0dHIuc3Ryb2tlXT1cInBvaW50LmNvbG9yID8/IHNlcmllcy5jb2xvclwiXG4gICAgW2F0dHIuZmlsbF09XCJwb2ludC5jb2xvciA/PyBzZXJpZXMuY29sb3JcIlxuICAgIFthdHRyLnN0cm9rZS13aWR0aF09XCJzZXJpZXMuc3R5bGU/LnN0cm9rZVdpZHRoXCI+XG4gIDwvc3ZnOmNpcmNsZT5cbjwvbmctY29udGFpbmVyPlxuXG5cblxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhdHRlci1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvc2NhdHRlci1zZXJpZXMvc2NhdHRlci1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvc2NhdHRlci1zZXJpZXMvc2NhdHRlci1zZXJpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQix1QkFBdUIsRUFBcUIsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUV2SCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFXckMsTUFBTSxPQUFPLHNCQUNYLFNBQVEsbUJBQXNCO0lBUTlCLFlBQ3FCLEdBQWlCLEVBQ2pCLEdBQXNCLEVBQ3RCLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLE9BQW1CO1FBRXRDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFOakMsUUFBRyxHQUFILEdBQUcsQ0FBYztRQUNqQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFZO0lBR3hDLENBQUM7SUFFUSxRQUFRO1FBQ2YsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsZUFBZTtJQUNmLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBZ0I7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDbEIsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQjtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNsQixLQUFLLEVBQUUsSUFBSTtZQUNYLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDOzttSEF2Q1Usc0JBQXNCO3VHQUF0QixzQkFBc0IsMkZDZG5DLGtpQkFvQkE7MkZETmEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLDhCQUE4QixtQkFHdkIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvYmFzZS1wb2ludCc7XG5pbXBvcnQge1Nlcmllc0Jhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2Jhc2Uvc2VyaWVzLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7bWFwLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q2hhcnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHtTY2FsZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvc2NhbGUuc2VydmljZSc7XG5pbXBvcnQge1pvb21TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3pvb20uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N2ZzpzdmdbdGV0YS1zY2F0dGVyLXNlcmllc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NhdHRlci1zZXJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY2F0dGVyLXNlcmllcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTY2F0dGVyU2VyaWVzQ29tcG9uZW50PFQgZXh0ZW5kcyBCYXNlUG9pbnQ+XG4gIGV4dGVuZHMgU2VyaWVzQmFzZUNvbXBvbmVudDxUPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHRyYW5zZm9ybTogT2JzZXJ2YWJsZTxQaWNrPEJhc2VQb2ludCwgJ3gnIHwgJ3knPj47XG4gIGRpc3BsYXk6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgcGF0aDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICB4OiBPYnNlcnZhYmxlPGFueT47XG4gIHk6IE9ic2VydmFibGU8YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc3ZjOiBDaGFydFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNjYWxlU2VydmljZTogU2NhbGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB6b29tU2VydmljZTogWm9vbVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGVsZW1lbnQ6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgc3VwZXIoc3ZjLCBjZHIsIHNjYWxlU2VydmljZSwgem9vbVNlcnZpY2UsIGVsZW1lbnQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy54ID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUobWFwKF8gPT4gXy54LmdldCh0aGlzLnNlcmllcy54QXhpc0luZGV4KS5zY2FsZSkpO1xuICAgIHRoaXMueSA9IHRoaXMuc2NhbGVTZXJ2aWNlLnNjYWxlcy5waXBlKG1hcChfID0+IF8ueS5nZXQodGhpcy5zZXJpZXMueUF4aXNJbmRleCkuc2NhbGUpKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgfVxuXG4gIG1vdXNlZW50ZXIocG9pbnQ6IEJhc2VQb2ludCkge1xuICAgIHRoaXMuc3ZjLnNldFRvb2x0aXAoe1xuICAgICAgcG9pbnQ6IHBvaW50LFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxuXG4gIG1vdXNlbGVhdmUocG9pbnQ6IEJhc2VQb2ludCkge1xuICAgIHRoaXMuc3ZjLnNldFRvb2x0aXAoe1xuICAgICAgcG9pbnQ6IG51bGwsXG4gICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwie1xuICB5OiB5IHwgYXN5bmMsXG4gIHg6IHggfCBhc3luY1xufSBhcyBzY2FsZXNcIj5cbiAgPHN2ZzpjaXJjbGVcbiAgICBjbGFzcz1cImxpbmVcIlxuICAgICpuZ0Zvcj1cImxldCBwb2ludCBvZiBzZXJpZXMuZGF0YVwiXG4gICAgKG1vdXNlZW50ZXIpPVwibW91c2VlbnRlcihwb2ludClcIlxuICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlbGVhdmUocG9pbnQpXCJcbiAgICBbYXR0ci5jeF09XCJzY2FsZXMueChwb2ludC54KVwiXG4gICAgW2F0dHIuY3ldPVwic2NhbGVzLnkocG9pbnQueSlcIlxuICAgIFthdHRyLnJdPVwic2VyaWVzLnN0eWxlPy5yYWRpdXMgPz8gMVwiXG4gICAgW2F0dHIuc3Ryb2tlXT1cInBvaW50LmNvbG9yID8/IHNlcmllcy5jb2xvclwiXG4gICAgW2F0dHIuZmlsbF09XCJwb2ludC5jb2xvciA/PyBzZXJpZXMuY29sb3JcIlxuICAgIFthdHRyLnN0cm9rZS13aWR0aF09XCJzZXJpZXMuc3R5bGU/LnN0cm9rZVdpZHRoXCI+XG4gIDwvc3ZnOmNpcmNsZT5cbjwvbmctY29udGFpbmVyPlxuXG5cblxuIl19
@@ -7,8 +7,8 @@ export class XAxisComponent {
7
7
  constructor(scaleService) {
8
8
  this.scaleService = scaleService;
9
9
  this._alive = true;
10
- this.x = this.scaleService.xScaleMap.pipe(map((_) => {
11
- return _.get(this.axis.index);
10
+ this.x = this.scaleService.scales.pipe(map((_) => {
11
+ return _.x.get(this.axis.index)?.scale;
12
12
  }));
13
13
  }
14
14
  getLabelTransform() {
@@ -18,30 +18,6 @@ export class XAxisComponent {
18
18
  ngOnDestroy() {
19
19
  this._alive = false;
20
20
  }
21
- ngAfterViewInit() {
22
- // this.draw();
23
- }
24
- draw() {
25
- // if (!this.node || !this.axis) {
26
- // return;
27
- // }
28
- //
29
- // const axis = this.axis.options.opposite
30
- // ? d3
31
- // .axisTop(this.scale)
32
- // .tickFormat(
33
- // this.axis.options.tickFormat ?? this.axis.defaultFormatter()
34
- // )
35
- // : d3
36
- // .axisBottom(this.scale)
37
- // .tickFormat(
38
- // this.axis.options.tickFormat ?? this.axis.defaultFormatter()
39
- // );
40
- //
41
- // d3.select(this.node.nativeElement)
42
- // .call(axis)
43
- // .call((_) => _.select('.domain').remove());
44
- }
45
21
  }
46
22
  XAxisComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAxisComponent, deps: [{ token: i1.ScaleService }], target: i0.ɵɵFactoryTarget.Component });
47
23
  XAxisComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XAxisComponent, selector: "[teta-x-axis]", inputs: { axis: "axis", size: "size" }, ngImport: i0, template: "<ng-container *ngIf=\"x | async as scale\">\n <svg:g text-anchor=\"middle\" *ngFor=\"let tick of scale.ticks()\" [attr.transform]=\"'translate('+ scale(tick) +', 0)'\">\n <text fill=\"var(--color-text-70)\" [attr.dy]=\"axis.options.opposite ? '-0.71em' : '0.71em'\" [attr.y]=\"axis.options.opposite ? 0 : 9\">{{ this.axis.options.tickFormat ? this.axis.options.tickFormat(tick) : this.axis.defaultFormatter()(tick) }}</text>\n <line stroke=\"var(--color-text-30)\" [attr.y2]=\"axis.options.opposite ? -6 : 6\"></line>\n </svg:g>\n\n <svg:g class=\"label-axis font-caption\" [attr.transform]=\"getLabelTransform()\">\n <text fill=\"var(--color-text-70)\" text-anchor=\"middle\" dominant-baseline=\"middle\">{{ axis.options.title }}</text>\n </svg:g>\n</ng-container>\n\n", styles: [":host .tick{stroke:var(--color-text-20)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
@@ -53,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
53
29
  }], size: [{
54
30
  type: Input
55
31
  }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieC1heGlzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIveC1heGlzL3gtYXhpcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3gtYXhpcy94LWF4aXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBQyxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7Ozs7QUFTckMsTUFBTSxPQUFPLGNBQWM7SUFRekIsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFGdEMsV0FBTSxHQUFHLElBQUksQ0FBQztRQUdwQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsRCxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQixDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ0wsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sYUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUNwQixLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ2hELENBQUM7SUFFRCxRQUFRLEtBQVUsQ0FBQztJQUVuQixXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELGVBQWU7UUFDYixlQUFlO0lBQ2pCLENBQUM7SUFFTyxJQUFJO1FBQ1Ysa0NBQWtDO1FBQ2xDLFlBQVk7UUFDWixJQUFJO1FBQ0osRUFBRTtRQUNGLDBDQUEwQztRQUMxQyxTQUFTO1FBQ1QsNkJBQTZCO1FBQzdCLHFCQUFxQjtRQUNyQix1RUFBdUU7UUFDdkUsVUFBVTtRQUNWLFNBQVM7UUFDVCxnQ0FBZ0M7UUFDaEMscUJBQXFCO1FBQ3JCLHVFQUF1RTtRQUN2RSxXQUFXO1FBQ1gsRUFBRTtRQUNGLHFDQUFxQztRQUNyQyxnQkFBZ0I7UUFDaEIsZ0RBQWdEO0lBQ2xELENBQUM7OzJHQWxEVSxjQUFjOytGQUFkLGNBQWMsNkZDckIzQixpeEJBV0E7MkZEVWEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07bUdBS3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF4aXMgfSBmcm9tICcuLi8uLi9jb3JlL2F4aXMvYXhpcyc7XG5cbmltcG9ydCB7bWFwLCBPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtTY2FsZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3NjYWxlLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW3RldGEteC1heGlzXScsXG4gIHRlbXBsYXRlVXJsOiAnLi94LWF4aXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi94LWF4aXMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFhBeGlzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICB4OiBPYnNlcnZhYmxlPGFueT47XG5cbiAgQElucHV0KCkgYXhpczogQXhpcztcbiAgQElucHV0KCkgc2l6ZTogRE9NUmVjdDtcblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzY2FsZVNlcnZpY2U6IFNjYWxlU2VydmljZSkge1xuICAgIHRoaXMueCA9IHRoaXMuc2NhbGVTZXJ2aWNlLnhTY2FsZU1hcC5waXBlKG1hcCgoXykgPT4ge1xuICAgICAgcmV0dXJuIF8uZ2V0KHRoaXMuYXhpcy5pbmRleClcbiAgICB9KSlcbiAgfVxuXG4gIGdldExhYmVsVHJhbnNmb3JtKCkge1xuICAgIHJldHVybiBgdHJhbnNsYXRlKCR7XG4gICAgICB0aGlzLnNpemUud2lkdGggLyAyXG4gICAgfSwgJHt0aGlzLmF4aXMub3B0aW9ucy5vcHBvc2l0ZSA/IC0zMiA6IDMyfSlgO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgLy8gdGhpcy5kcmF3KCk7XG4gIH1cblxuICBwcml2YXRlIGRyYXcoKSB7XG4gICAgLy8gaWYgKCF0aGlzLm5vZGUgfHwgIXRoaXMuYXhpcykge1xuICAgIC8vICAgcmV0dXJuO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIGNvbnN0IGF4aXMgPSB0aGlzLmF4aXMub3B0aW9ucy5vcHBvc2l0ZVxuICAgIC8vICAgPyBkM1xuICAgIC8vICAgICAgIC5heGlzVG9wKHRoaXMuc2NhbGUpXG4gICAgLy8gICAgICAgLnRpY2tGb3JtYXQoXG4gICAgLy8gICAgICAgICB0aGlzLmF4aXMub3B0aW9ucy50aWNrRm9ybWF0ID8/IHRoaXMuYXhpcy5kZWZhdWx0Rm9ybWF0dGVyKClcbiAgICAvLyAgICAgICApXG4gICAgLy8gICA6IGQzXG4gICAgLy8gICAgICAgLmF4aXNCb3R0b20odGhpcy5zY2FsZSlcbiAgICAvLyAgICAgICAudGlja0Zvcm1hdChcbiAgICAvLyAgICAgICAgIHRoaXMuYXhpcy5vcHRpb25zLnRpY2tGb3JtYXQgPz8gdGhpcy5heGlzLmRlZmF1bHRGb3JtYXR0ZXIoKVxuICAgIC8vICAgICAgICk7XG4gICAgLy9cbiAgICAvLyBkMy5zZWxlY3QodGhpcy5ub2RlLm5hdGl2ZUVsZW1lbnQpXG4gICAgLy8gICAuY2FsbChheGlzKVxuICAgIC8vICAgLmNhbGwoKF8pID0+IF8uc2VsZWN0KCcuZG9tYWluJykucmVtb3ZlKCkpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwieCB8IGFzeW5jIGFzIHNjYWxlXCI+XG4gIDxzdmc6ZyB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiICpuZ0Zvcj1cImxldCB0aWNrIG9mIHNjYWxlLnRpY2tzKClcIiBbYXR0ci50cmFuc2Zvcm1dPVwiJ3RyYW5zbGF0ZSgnKyBzY2FsZSh0aWNrKSArJywgMCknXCI+XG4gICAgPHRleHQgZmlsbD1cInZhcigtLWNvbG9yLXRleHQtNzApXCIgW2F0dHIuZHldPVwiYXhpcy5vcHRpb25zLm9wcG9zaXRlID8gJy0wLjcxZW0nIDogJzAuNzFlbSdcIiBbYXR0ci55XT1cImF4aXMub3B0aW9ucy5vcHBvc2l0ZSA/IDAgOiA5XCI+e3sgdGhpcy5heGlzLm9wdGlvbnMudGlja0Zvcm1hdCA/IHRoaXMuYXhpcy5vcHRpb25zLnRpY2tGb3JtYXQodGljaykgOiB0aGlzLmF4aXMuZGVmYXVsdEZvcm1hdHRlcigpKHRpY2spIH19PC90ZXh0PlxuICAgIDxsaW5lIHN0cm9rZT1cInZhcigtLWNvbG9yLXRleHQtMzApXCIgW2F0dHIueTJdPVwiYXhpcy5vcHRpb25zLm9wcG9zaXRlID8gLTYgOiA2XCI+PC9saW5lPlxuICA8L3N2ZzpnPlxuXG4gIDxzdmc6ZyBjbGFzcz1cImxhYmVsLWF4aXMgZm9udC1jYXB0aW9uXCIgW2F0dHIudHJhbnNmb3JtXT1cImdldExhYmVsVHJhbnNmb3JtKClcIj5cbiAgICA8dGV4dCBmaWxsPVwidmFyKC0tY29sb3ItdGV4dC03MClcIiAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBkb21pbmFudC1iYXNlbGluZT1cIm1pZGRsZVwiPnt7IGF4aXMub3B0aW9ucy50aXRsZSB9fTwvdGV4dD5cbiAgPC9zdmc6Zz5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieC1heGlzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIveC1heGlzL3gtYXhpcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3gtYXhpcy94LWF4aXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBQyxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7Ozs7QUFTckMsTUFBTSxPQUFPLGNBQWM7SUFRekIsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFGdEMsV0FBTSxHQUFHLElBQUksQ0FBQztRQUdwQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMvQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFBO1FBQ3hDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDTCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxhQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQ3BCLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDaEQsQ0FBQztJQUVELFFBQVEsS0FBVSxDQUFDO0lBRW5CLFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDOzsyR0F4QlUsY0FBYzsrRkFBZCxjQUFjLDZGQ3JCM0IsaXhCQVdBOzJGRFVhLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNO21HQUt0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBeGlzIH0gZnJvbSAnLi4vLi4vY29yZS9heGlzL2F4aXMnO1xuXG5pbXBvcnQge21hcCwgT2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7U2NhbGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1t0ZXRhLXgtYXhpc10nLFxuICB0ZW1wbGF0ZVVybDogJy4veC1heGlzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4veC1heGlzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBYQXhpc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHg6IE9ic2VydmFibGU8YW55PjtcblxuICBASW5wdXQoKSBheGlzOiBBeGlzO1xuICBASW5wdXQoKSBzaXplOiBET01SZWN0O1xuXG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNjYWxlU2VydmljZTogU2NhbGVTZXJ2aWNlKSB7XG4gICAgdGhpcy54ID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUobWFwKChfKSA9PiB7XG4gICAgICByZXR1cm4gXy54LmdldCh0aGlzLmF4aXMuaW5kZXgpPy5zY2FsZVxuICAgIH0pKVxuICB9XG5cbiAgZ2V0TGFiZWxUcmFuc2Zvcm0oKSB7XG4gICAgcmV0dXJuIGB0cmFuc2xhdGUoJHtcbiAgICAgIHRoaXMuc2l6ZS53aWR0aCAvIDJcbiAgICB9LCAke3RoaXMuYXhpcy5vcHRpb25zLm9wcG9zaXRlID8gLTMyIDogMzJ9KWA7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwieCB8IGFzeW5jIGFzIHNjYWxlXCI+XG4gIDxzdmc6ZyB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiICpuZ0Zvcj1cImxldCB0aWNrIG9mIHNjYWxlLnRpY2tzKClcIiBbYXR0ci50cmFuc2Zvcm1dPVwiJ3RyYW5zbGF0ZSgnKyBzY2FsZSh0aWNrKSArJywgMCknXCI+XG4gICAgPHRleHQgZmlsbD1cInZhcigtLWNvbG9yLXRleHQtNzApXCIgW2F0dHIuZHldPVwiYXhpcy5vcHRpb25zLm9wcG9zaXRlID8gJy0wLjcxZW0nIDogJzAuNzFlbSdcIiBbYXR0ci55XT1cImF4aXMub3B0aW9ucy5vcHBvc2l0ZSA/IDAgOiA5XCI+e3sgdGhpcy5heGlzLm9wdGlvbnMudGlja0Zvcm1hdCA/IHRoaXMuYXhpcy5vcHRpb25zLnRpY2tGb3JtYXQodGljaykgOiB0aGlzLmF4aXMuZGVmYXVsdEZvcm1hdHRlcigpKHRpY2spIH19PC90ZXh0PlxuICAgIDxsaW5lIHN0cm9rZT1cInZhcigtLWNvbG9yLXRleHQtMzApXCIgW2F0dHIueTJdPVwiYXhpcy5vcHRpb25zLm9wcG9zaXRlID8gLTYgOiA2XCI+PC9saW5lPlxuICA8L3N2ZzpnPlxuXG4gIDxzdmc6ZyBjbGFzcz1cImxhYmVsLWF4aXMgZm9udC1jYXB0aW9uXCIgW2F0dHIudHJhbnNmb3JtXT1cImdldExhYmVsVHJhbnNmb3JtKClcIj5cbiAgICA8dGV4dCBmaWxsPVwidmFyKC0tY29sb3ItdGV4dC03MClcIiAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBkb21pbmFudC1iYXNlbGluZT1cIm1pZGRsZVwiPnt7IGF4aXMub3B0aW9ucy50aXRsZSB9fTwvdGV4dD5cbiAgPC9zdmc6Zz5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
@@ -7,8 +7,8 @@ export class YAxisComponent {
7
7
  constructor(scaleService) {
8
8
  this.scaleService = scaleService;
9
9
  this._alive = true;
10
- this.y = this.scaleService.yScaleMap.pipe(map((_) => {
11
- return _.get(this.axis.index);
10
+ this.y = this.scaleService.scales.pipe(map((_) => {
11
+ return _.y.get(this.axis.index)?.scale;
12
12
  }));
13
13
  }
14
14
  ngOnInit() { }
@@ -33,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
33
33
  }], size: [{
34
34
  type: Input
35
35
  }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieS1heGlzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIveS1heGlzL3ktYXhpcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3ktYXhpcy95LWF4aXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBQyxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7Ozs7QUFRckMsTUFBTSxPQUFPLGNBQWM7SUFTekIsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFGdEMsV0FBTSxHQUFHLElBQUksQ0FBQztRQUdwQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsRCxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQixDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ0wsQ0FBQztJQUVELFFBQVEsS0FBVSxDQUFDO0lBRW5CLFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsZUFBZTtJQUNmLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLGFBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQ3BCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFDakIsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLGVBQWUsQ0FBQztJQUMzQyxDQUFDOzsyR0E5QlUsY0FBYzsrRkFBZCxjQUFjLDZGQ2xCM0IsKzBCQVdBOzJGRE9hLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNO21HQU10QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBeGlzIH0gZnJvbSAnLi4vLi4vY29yZS9heGlzL2F4aXMnO1xuXG5pbXBvcnQge1NjYWxlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uvc2NhbGUuc2VydmljZVwiO1xuaW1wb3J0IHttYXAsIE9ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1t0ZXRhLXktYXhpc10nLFxuICB0ZW1wbGF0ZVVybDogJy4veS1heGlzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4veS1heGlzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBZQXhpc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgeTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIEBJbnB1dCgpIGF4aXM6IEF4aXM7XG4gIEBJbnB1dCgpIHNpemU6IERPTVJlY3Q7XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2NhbGVTZXJ2aWNlOiBTY2FsZVNlcnZpY2UpIHtcbiAgICB0aGlzLnkgPSB0aGlzLnNjYWxlU2VydmljZS55U2NhbGVNYXAucGlwZShtYXAoKF8pID0+IHtcbiAgICAgIHJldHVybiBfLmdldCh0aGlzLmF4aXMuaW5kZXgpXG4gICAgfSkpXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgfVxuXG4gIGdldExhYmVsVHJhbnNmb3JtKCkge1xuICAgIHJldHVybiBgdHJhbnNsYXRlKCR7XG4gICAgICB0aGlzLmF4aXMub3B0aW9ucy5vcHBvc2l0ZVxuICAgICAgICA/IHRoaXMuYXhpcy5zZWxmU2l6ZVxuICAgICAgICA6IC10aGlzLmF4aXMuc2VsZlNpemVcbiAgICB9LCAke3RoaXMuc2l6ZS5oZWlnaHQgLyAyfSkgcm90YXRlKC05MClgO1xuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ5IHwgYXN5bmMgYXMgc2NhbGVcIj5cbiAgPHN2ZzpnIFthdHRyLnRleHQtYW5jaG9yXT1cImF4aXMub3B0aW9ucy5vcHBvc2l0ZSA/ICdzdGFydCcgOiAnZW5kJ1wiICpuZ0Zvcj1cImxldCB0aWNrIG9mIHNjYWxlLnRpY2tzKClcIiBbYXR0ci50cmFuc2Zvcm1dPVwiJ3RyYW5zbGF0ZSgwLCAnKyBzY2FsZSh0aWNrKSArJyknXCI+XG4gICAgPHRleHQgZmlsbD1cInZhcigtLWNvbG9yLXRleHQtNzApXCIgZHk9XCIwLjMyZW1cIiBbYXR0ci54XT1cImF4aXMub3B0aW9ucy5vcHBvc2l0ZSA/IDEwIDogLTlcIj57eyB0aGlzLmF4aXMub3B0aW9ucy50aWNrRm9ybWF0ID8gdGhpcy5heGlzLm9wdGlvbnMudGlja0Zvcm1hdCh0aWNrKSA6IHRoaXMuYXhpcy5kZWZhdWx0Rm9ybWF0dGVyKCkodGljaykgfX08L3RleHQ+XG4gICAgPGxpbmUgc3Ryb2tlPVwidmFyKC0tY29sb3ItdGV4dC0zMClcIiBbYXR0ci54Ml09XCJheGlzLm9wdGlvbnMub3Bwb3NpdGUgPyA2IDogLTZcIj48L2xpbmU+XG4gIDwvc3ZnOmc+XG5cbiAgPHN2ZzpnIGNsYXNzPVwibGFiZWwtYXhpcyBmb250LWNhcHRpb25cIiBbYXR0ci50cmFuc2Zvcm1dPVwiZ2V0TGFiZWxUcmFuc2Zvcm0oKVwiPlxuICAgIDx0ZXh0IFthdHRyLmR5XT1cImF4aXMub3B0aW9ucy5vcHBvc2l0ZSA/ICctNHB4JyA6ICc0cHgnXCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBbYXR0ci5kb21pbmFudC1iYXNlbGluZV09XCJheGlzLm9wdGlvbnMub3Bwb3NpdGUgPyAnYXV0bycgOiAnaGFuZ2luZydcIj57eyBheGlzLm9wdGlvbnMudGl0bGUgfX08L3RleHQ+XG4gIDwvc3ZnOmc+XG48L25nLWNvbnRhaW5lcj5cblxuIl19
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieS1heGlzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIveS1heGlzL3ktYXhpcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3ktYXhpcy95LWF4aXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBQyxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7Ozs7QUFRckMsTUFBTSxPQUFPLGNBQWM7SUFTekIsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFGdEMsV0FBTSxHQUFHLElBQUksQ0FBQztRQUdwQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMvQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFBO1FBQ3hDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDTCxDQUFDO0lBRUQsUUFBUSxLQUFVLENBQUM7SUFFbkIsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxlQUFlO0lBQ2YsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sYUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQ3hCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFDcEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUNqQixLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsZUFBZSxDQUFDO0lBQzNDLENBQUM7OzJHQTlCVSxjQUFjOytGQUFkLGNBQWMsNkZDbEIzQiwrMEJBV0E7MkZET2EsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07bUdBTXRDLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF4aXMgfSBmcm9tICcuLi8uLi9jb3JlL2F4aXMvYXhpcyc7XG5cbmltcG9ydCB7U2NhbGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlXCI7XG5pbXBvcnQge21hcCwgT2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW3RldGEteS1heGlzXScsXG4gIHRlbXBsYXRlVXJsOiAnLi95LWF4aXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi95LWF4aXMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFlBeGlzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICB5OiBPYnNlcnZhYmxlPGFueT47XG5cbiAgQElucHV0KCkgYXhpczogQXhpcztcbiAgQElucHV0KCkgc2l6ZTogRE9NUmVjdDtcblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzY2FsZVNlcnZpY2U6IFNjYWxlU2VydmljZSkge1xuICAgIHRoaXMueSA9IHRoaXMuc2NhbGVTZXJ2aWNlLnNjYWxlcy5waXBlKG1hcCgoXykgPT4ge1xuICAgICAgcmV0dXJuIF8ueS5nZXQodGhpcy5heGlzLmluZGV4KT8uc2NhbGVcbiAgICB9KSlcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICB9XG5cbiAgZ2V0TGFiZWxUcmFuc2Zvcm0oKSB7XG4gICAgcmV0dXJuIGB0cmFuc2xhdGUoJHtcbiAgICAgIHRoaXMuYXhpcy5vcHRpb25zLm9wcG9zaXRlXG4gICAgICAgID8gdGhpcy5heGlzLnNlbGZTaXplXG4gICAgICAgIDogLXRoaXMuYXhpcy5zZWxmU2l6ZVxuICAgIH0sICR7dGhpcy5zaXplLmhlaWdodCAvIDJ9KSByb3RhdGUoLTkwKWA7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInkgfCBhc3luYyBhcyBzY2FsZVwiPlxuICA8c3ZnOmcgW2F0dHIudGV4dC1hbmNob3JdPVwiYXhpcy5vcHRpb25zLm9wcG9zaXRlID8gJ3N0YXJ0JyA6ICdlbmQnXCIgKm5nRm9yPVwibGV0IHRpY2sgb2Ygc2NhbGUudGlja3MoKVwiIFthdHRyLnRyYW5zZm9ybV09XCIndHJhbnNsYXRlKDAsICcrIHNjYWxlKHRpY2spICsnKSdcIj5cbiAgICA8dGV4dCBmaWxsPVwidmFyKC0tY29sb3ItdGV4dC03MClcIiBkeT1cIjAuMzJlbVwiIFthdHRyLnhdPVwiYXhpcy5vcHRpb25zLm9wcG9zaXRlID8gMTAgOiAtOVwiPnt7IHRoaXMuYXhpcy5vcHRpb25zLnRpY2tGb3JtYXQgPyB0aGlzLmF4aXMub3B0aW9ucy50aWNrRm9ybWF0KHRpY2spIDogdGhpcy5heGlzLmRlZmF1bHRGb3JtYXR0ZXIoKSh0aWNrKSB9fTwvdGV4dD5cbiAgICA8bGluZSBzdHJva2U9XCJ2YXIoLS1jb2xvci10ZXh0LTMwKVwiIFthdHRyLngyXT1cImF4aXMub3B0aW9ucy5vcHBvc2l0ZSA/IDYgOiAtNlwiPjwvbGluZT5cbiAgPC9zdmc6Zz5cblxuICA8c3ZnOmcgY2xhc3M9XCJsYWJlbC1heGlzIGZvbnQtY2FwdGlvblwiIFthdHRyLnRyYW5zZm9ybV09XCJnZXRMYWJlbFRyYW5zZm9ybSgpXCI+XG4gICAgPHRleHQgW2F0dHIuZHldPVwiYXhpcy5vcHRpb25zLm9wcG9zaXRlID8gJy00cHgnIDogJzRweCdcIiB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiIFthdHRyLmRvbWluYW50LWJhc2VsaW5lXT1cImF4aXMub3B0aW9ucy5vcHBvc2l0ZSA/ICdhdXRvJyA6ICdoYW5naW5nJ1wiPnt7IGF4aXMub3B0aW9ucy50aXRsZSB9fTwvdGV4dD5cbiAgPC9zdmc6Zz5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
@@ -73,6 +73,9 @@ export class Axis {
73
73
  setOriginDomain(domain) {
74
74
  this._originDomain = domain;
75
75
  }
76
+ setScale(scale) {
77
+ this._scale = scale;
78
+ }
76
79
  setSelfSize() {
77
80
  this._selfSize = new AxisSizeBuilder().build(this);
78
81
  }
@@ -85,6 +88,9 @@ export class Axis {
85
88
  : this.chartConfig.yAxis[this.index];
86
89
  this._options = options;
87
90
  }
91
+ get scale() {
92
+ return this._scale;
93
+ }
88
94
  get extremes() {
89
95
  return this._extremes;
90
96
  }
@@ -113,4 +119,4 @@ export class Axis {
113
119
  return this.defaultScales.get(this.options.scaleType.type);
114
120
  }
115
121
  }
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jb3JlL2F4aXMvYXhpcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHcEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFFekIsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXhELE1BQU0sT0FBTyxJQUFJO0lBMEJmLFlBQVksTUFBb0I7UUF0QnhCLGNBQVMsR0FBcUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFJckMsa0JBQWEsR0FBZSxFQUFFLENBQUM7UUFFL0Isc0JBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQWtCO2FBQ2xELEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDekMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM5QyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ25DLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFD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QUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFBO0lBQzNCLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNoYXJ0Q29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvaS1jaGFydC1jb25maWcnO1xuaW1wb3J0IHsgQXhpc09yaWVudGF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWwvZW51bS9heGlzLW9yaWVudGF0aW9uJztcbmltcG9ydCB7IFNlcmllcyB9IGZyb20gJy4uLy4uL21vZGVsL3Nlcmllcyc7XG5pbXBvcnQgeyBCYXNlUG9pbnQgfSBmcm9tICcuLi8uLi9tb2RlbC9iYXNlLXBvaW50JztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7IEF4aXNPcHRpb25zIH0gZnJvbSAnLi4vLi4vbW9kZWwvYXhpcy1vcHRpb25zJztcbmltcG9ydCB7IEF4aXNTaXplQnVpbGRlciwgRXh0cmVtZXNCdWlsZGVyIH0gZnJvbSAnLi9idWlsZGVycy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IGdlbmVyYXRlVGlja3MgfSBmcm9tICcuLi91dGlscy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFNjYWxlVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2VudW0vc2NhbGUtdHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBBeGlzIHtcbiAgcHJpdmF0ZSBjaGFydENvbmZpZzogSUNoYXJ0Q29uZmlnO1xuICBwcml2YXRlIF9vcmllbnRhdGlvbjogQXhpc09yaWVudGF0aW9uO1xuICBwcml2YXRlIF9pbmRleDogbnVtYmVyO1xuICBwcml2YXRlIF9leHRyZW1lczogW251bWJlciwgbnVtYmVyXSA9IFswLCAwXTtcbiAgcHJpdmF0ZSBfc2VsZlNpemU6IG51bWJlcjtcbiAgcHJpdmF0ZSBfdGlja3NWYWx1ZXM6IG51bWJlcltdO1xuICBwcml2YXRlIF9vcHRpb25zOiBBeGlzT3B0aW9ucztcbiAgcHJpdmF0ZSBfb3JpZ2luRG9tYWluOiBBcnJheTxhbnk+ID0gW107XG5cbiAgcHJpdmF0ZSBkZWZhdWx0Rm9ybWF0dGVycyA9IG5ldyBNYXA8U2NhbGVUeXBlLCBhbnk+KClcbiAgICAuc2V0KFNjYWxlVHlwZS5saW5lYXIsIGQzLmZvcm1hdCgnLC41fnInKSlcbiAgICAuc2V0KFNjYWxlVHlwZS50aW1lLCBkMy50aW1lRm9ybWF0KCclZC4lbS4lWScpKVxuICAgIC5zZXQoU2NhbGVUeXBlLmxvZywgZDMuZm9ybWF0KCd+cycpKVxuICAgIC5zZXQoU2NhbGVUeXBlLnN5bWxvZywgZDMuZm9ybWF0KCd+cycpKVxuICAgIC5zZXQoU2NhbGVUeXBlLnBvdywgZDMuZm9ybWF0KCd+cycpKVxuICAgIC5zZXQoU2NhbGVUeXBlLnNxcnQsIGQzLmZvcm1hdCgnfnMnKSk7XG5cbiAgcHJpdmF0ZSBkZWZhdWx0U2NhbGVzID0gbmV3IE1hcDxTY2FsZVR5cGUsIGFueT4oKVxuICAgIC5zZXQoU2NhbGVUeXBlLmxpbmVhciwgZDMuc2NhbGVMaW5lYXIpXG4gICAgLnNldChTY2FsZVR5cGUubG9nLCBkMy5zY2FsZUxvZylcbiAgICAuc2V0KFNjYWxlVHlwZS5zeW1sb2csIGQzLnNjYWxlU3ltbG9nKVxuICAgIC5zZXQoU2NhbGVUeXBlLnBvdywgZDMuc2NhbGVQb3cpXG4gICAgLnNldChTY2FsZVR5cGUuc3FydCwgZDMuc2NhbGVTcXJ0KVxuICAgIC5zZXQoU2NhbGVUeXBlLnRpbWUsIGQzLnNjYWxlVGltZSk7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBJQ2hhcnRDb25maWcpIHtcbiAgICB0aGlzLmNoYXJ0Q29uZmlnID0gY29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIEZhY3RvcnkgZm9yIGNyZWF0aW5nIHgseSBheGVzXG4gICAqIEBwYXJhbSB7QXhpc09yaWVudGF0aW9ufSBvcmllbnRhdGlvblxuICAgKiBBeGlzIHR5cGVcbiAgICogQHBhcmFtIHtJQ2hhcnRDb25maWd9IGNvbmZpZ1xuICAgKiBDaGFydCBjb25maWdcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gICAqIE5ldyBnZW5lcmF0ZWQgYXhpc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVBeGlzKFxuICAgIG9yaWVudGF0aW9uOiBBeGlzT3JpZW50YXRpb24sXG4gICAgY29uZmlnOiBJQ2hhcnRDb25maWcsXG4gICAgaW5kZXg6IG51bWJlclxuICApOiBBeGlzIHtcbiAgICBjb25zdCBheGlzID0gbmV3IEF4aXMoY29uZmlnKTtcbiAgICBheGlzLnNldExvY2F0ZShvcmllbnRhdGlvbik7XG4gICAgYXhpcy5zZXRJbmRleChpbmRleCk7XG5cbiAgICBheGlzLnNldE9wdGlvbnMoKTtcbiAgICBheGlzLnNldEV4dHJlbWVzKCk7XG4gICAgYXhpcy5zZXRUaWNrc1ZhbHVlcygpO1xuICAgIGF4aXMuc2V0U2VsZlNpemUoKTtcblxuICAgIHJldHVybiBheGlzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7b3JpZW50YXRpb259IG9yaWVudGF0aW9uXG4gICAqIFNldCBsb2NhdGUgYXhpcyB4IG9yIHlcbiAgICovXG4gIHByaXZhdGUgc2V0TG9jYXRlKG9yaWVudGF0aW9uOiBBeGlzT3JpZW50YXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICAgKiBJbmRleCBheGlzXG4gICAqL1xuICBwcml2YXRlIHNldEluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9pbmRleCA9IGluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm4ge0FycmF5PFNlcmllczxCYXNlUG9pbnQ+Pn1cbiAgICogTGlua2VkIHNlcmllc1xuICAgKi9cbiAgcHVibGljIGxpbmtlZFNlcmllcygpOiBBcnJheTxTZXJpZXM8QmFzZVBvaW50Pj4ge1xuICAgIGNvbnN0IGxpbmtlZEZpbHRlciA9IChzZXJpZTogU2VyaWVzPEJhc2VQb2ludD4pID0+XG4gICAgICBzZXJpZVtcbiAgICAgICAgdGhpcy5fb3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55ID8gJ3lBeGlzSW5kZXgnIDogJ3hBeGlzSW5kZXgnXG4gICAgICBdID09PSB0aGlzLl9pbmRleDtcblxuICAgIHJldHVybiB0aGlzLmNoYXJ0Q29uZmlnPy5zZXJpZXMuZmlsdGVyKGxpbmtlZEZpbHRlcik7XG4gIH1cblxuICBwdWJsaWMgc2V0RXh0cmVtZXMoKTogdm9pZCB7XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBFeHRyZW1lc0J1aWxkZXIoKTtcbiAgICB0aGlzLl9leHRyZW1lcyA9IGJ1aWxkZXIuYnVpbGQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgc2V0T3JpZ2luRG9tYWluKGRvbWFpbjogQXJyYXk8YW55Pikge1xuICAgIHRoaXMuX29yaWdpbkRvbWFpbiA9IGRvbWFpbjtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U2VsZlNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5fc2VsZlNpemUgPSBuZXcgQXhpc1NpemVCdWlsZGVyKCkuYnVpbGQodGhpcyk7XG4gIH1cblxuICBwcml2YXRlIHNldFRpY2tzVmFsdWVzKCk6IHZvaWQge1xuICAgIHRoaXMuX3RpY2tzVmFsdWVzID0gZ2VuZXJhdGVUaWNrcyh0aGlzLl9leHRyZW1lcyk7XG4gIH1cblxuICBwcml2YXRlIHNldE9wdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9XG4gICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueFxuICAgICAgICA/IHRoaXMuY2hhcnRDb25maWcueEF4aXNbdGhpcy5pbmRleF1cbiAgICAgICAgOiB0aGlzLmNoYXJ0Q29uZmlnLnlBeGlzW3RoaXMuaW5kZXhdO1xuXG4gICAgdGhpcy5fb3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cblxuICBnZXQgZXh0cmVtZXMoKTogQXJyYXk8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX2V4dHJlbWVzO1xuICB9XG5cbiAgZ2V0IG9yaWVudGF0aW9uKCk6IEF4aXNPcmllbnRhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX29yaWVudGF0aW9uO1xuICB9XG5cbiAgZ2V0IHNlbGZTaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGZTaXplO1xuICB9XG5cbiAgZ2V0IHRpY2tWYWx1ZXMoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB0aGlzLl90aWNrc1ZhbHVlcztcbiAgfVxuXG4gIGdldCBpbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9pbmRleDtcbiAgfVxuXG4gIGdldCBvcHRpb25zKCk6IEF4aXNPcHRpb25zIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgfVxuXG4gIGdldCBvcmlnaW5Eb21haW4oKTogQXJyYXk8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX29yaWdpbkRvbWFpblxuICB9XG5cbiAgcHVibGljIGRlZmF1bHRGb3JtYXR0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdEZvcm1hdHRlcnMuZ2V0KHRoaXMub3B0aW9ucy5zY2FsZVR5cGUudHlwZSk7XG4gIH1cblxuICBwdWJsaWMgZGVmYXVsdFNjYWxlKCkge1xuICAgIHJldHVybiB0aGlzLmRlZmF1bHRTY2FsZXMuZ2V0KHRoaXMub3B0aW9ucy5zY2FsZVR5cGUudHlwZSk7XG4gIH1cbn1cbiJdfQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jb3JlL2F4aXMvYXhpcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHcEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFFekIsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXhELE1BQU0sT0FBTyxJQUFJO0lBNEJmLFlBQVksTUFBb0I7UUF4QnhCLGNBQVMsR0FBcUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFJckMsa0JBQWEsR0FBZSxFQUFFLENBQUM7UUFJL0Isc0JBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQWtCO2FBQ2xELEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDekMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM5QyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ25DLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFD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Q0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFBO0lBQzNCLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNoYXJ0Q29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvaS1jaGFydC1jb25maWcnO1xuaW1wb3J0IHsgQXhpc09yaWVudGF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWwvZW51bS9heGlzLW9yaWVudGF0aW9uJztcbmltcG9ydCB7IFNlcmllcyB9IGZyb20gJy4uLy4uL21vZGVsL3Nlcmllcyc7XG5pbXBvcnQgeyBCYXNlUG9pbnQgfSBmcm9tICcuLi8uLi9tb2RlbC9iYXNlLXBvaW50JztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7IEF4aXNPcHRpb25zIH0gZnJvbSAnLi4vLi4vbW9kZWwvYXhpcy1vcHRpb25zJztcbmltcG9ydCB7IEF4aXNTaXplQnVpbGRlciwgRXh0cmVtZXNCdWlsZGVyIH0gZnJvbSAnLi9idWlsZGVycy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IGdlbmVyYXRlVGlja3MgfSBmcm9tICcuLi91dGlscy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFNjYWxlVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2VudW0vc2NhbGUtdHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBBeGlzIHtcbiAgcHJpdmF0ZSBjaGFydENvbmZpZzogSUNoYXJ0Q29uZmlnO1xuICBwcml2YXRlIF9vcmllbnRhdGlvbjogQXhpc09yaWVudGF0aW9uO1xuICBwcml2YXRlIF9pbmRleDogbnVtYmVyO1xuICBwcml2YXRlIF9leHRyZW1lczogW251bWJlciwgbnVtYmVyXSA9IFswLCAwXTtcbiAgcHJpdmF0ZSBfc2VsZlNpemU6IG51bWJlcjtcbiAgcHJpdmF0ZSBfdGlja3NWYWx1ZXM6IG51bWJlcltdO1xuICBwcml2YXRlIF9vcHRpb25zOiBBeGlzT3B0aW9ucztcbiAgcHJpdmF0ZSBfb3JpZ2luRG9tYWluOiBBcnJheTxhbnk+ID0gW107XG5cbiAgcHJpdmF0ZSBfc2NhbGU6IGFueTtcblxuICBwcml2YXRlIGRlZmF1bHRGb3JtYXR0ZXJzID0gbmV3IE1hcDxTY2FsZVR5cGUsIGFueT4oKVxuICAgIC5zZXQoU2NhbGVUeXBlLmxpbmVhciwgZDMuZm9ybWF0KCcsLjV+cicpKVxuICAgIC5zZXQoU2NhbGVUeXBlLnRpbWUsIGQzLnRpbWVGb3JtYXQoJyVkLiVtLiVZJykpXG4gICAgLnNldChTY2FsZVR5cGUubG9nLCBkMy5mb3JtYXQoJ35zJykpXG4gICAgLnNldChTY2FsZVR5cGUuc3ltbG9nLCBkMy5mb3JtYXQoJ35zJykpXG4gICAgLnNldChTY2FsZVR5cGUucG93LCBkMy5mb3JtYXQoJ35zJykpXG4gICAgLnNldChTY2FsZVR5cGUuc3FydCwgZDMuZm9ybWF0KCd+cycpKTtcblxuICBwcml2YXRlIGRlZmF1bHRTY2FsZXMgPSBuZXcgTWFwPFNjYWxlVHlwZSwgYW55PigpXG4gICAgLnNldChTY2FsZVR5cGUubGluZWFyLCBkMy5zY2FsZUxpbmVhcilcbiAgICAuc2V0KFNjYWxlVHlwZS5sb2csIGQzLnNjYWxlTG9nKVxuICAgIC5zZXQoU2NhbGVUeXBlLnN5bWxvZywgZDMuc2NhbGVTeW1sb2cpXG4gICAgLnNldChTY2FsZVR5cGUucG93LCBkMy5zY2FsZVBvdylcbiAgICAuc2V0KFNjYWxlVHlwZS5zcXJ0LCBkMy5zY2FsZVNxcnQpXG4gICAgLnNldChTY2FsZVR5cGUudGltZSwgZDMuc2NhbGVUaW1lKTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IElDaGFydENvbmZpZykge1xuICAgIHRoaXMuY2hhcnRDb25maWcgPSBjb25maWc7XG4gIH1cblxuICAvKipcbiAgICogRmFjdG9yeSBmb3IgY3JlYXRpbmcgeCx5IGF4ZXNcbiAgICogQHBhcmFtIHtBeGlzT3JpZW50YXRpb259IG9yaWVudGF0aW9uXG4gICAqIEF4aXMgdHlwZVxuICAgKiBAcGFyYW0ge0lDaGFydENvbmZpZ30gY29uZmlnXG4gICAqIENoYXJ0IGNvbmZpZ1xuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAgICogTmV3IGdlbmVyYXRlZCBheGlzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUF4aXMoXG4gICAgb3JpZW50YXRpb246IEF4aXNPcmllbnRhdGlvbixcbiAgICBjb25maWc6IElDaGFydENvbmZpZyxcbiAgICBpbmRleDogbnVtYmVyXG4gICk6IEF4aXMge1xuICAgIGNvbnN0IGF4aXMgPSBuZXcgQXhpcyhjb25maWcpO1xuICAgIGF4aXMuc2V0TG9jYXRlKG9yaWVudGF0aW9uKTtcbiAgICBheGlzLnNldEluZGV4KGluZGV4KTtcblxuICAgIGF4aXMuc2V0T3B0aW9ucygpO1xuICAgIGF4aXMuc2V0RXh0cmVtZXMoKTtcbiAgICBheGlzLnNldFRpY2tzVmFsdWVzKCk7XG4gICAgYXhpcy5zZXRTZWxmU2l6ZSgpO1xuXG4gICAgcmV0dXJuIGF4aXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtvcmllbnRhdGlvbn0gb3JpZW50YXRpb25cbiAgICogU2V0IGxvY2F0ZSBheGlzIHggb3IgeVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRMb2NhdGUob3JpZW50YXRpb246IEF4aXNPcmllbnRhdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX29yaWVudGF0aW9uID0gb3JpZW50YXRpb247XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gICAqIEluZGV4IGF4aXNcbiAgICovXG4gIHByaXZhdGUgc2V0SW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybiB7QXJyYXk8U2VyaWVzPEJhc2VQb2ludD4+fVxuICAgKiBMaW5rZWQgc2VyaWVzXG4gICAqL1xuICBwdWJsaWMgbGlua2VkU2VyaWVzKCk6IEFycmF5PFNlcmllczxCYXNlUG9pbnQ+PiB7XG4gICAgY29uc3QgbGlua2VkRmlsdGVyID0gKHNlcmllOiBTZXJpZXM8QmFzZVBvaW50PikgPT5cbiAgICAgIHNlcmllW1xuICAgICAgICB0aGlzLl9vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkgPyAneUF4aXNJbmRleCcgOiAneEF4aXNJbmRleCdcbiAgICAgIF0gPT09IHRoaXMuX2luZGV4O1xuXG4gICAgcmV0dXJuIHRoaXMuY2hhcnRDb25maWc/LnNlcmllcy5maWx0ZXIobGlua2VkRmlsdGVyKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRFeHRyZW1lcygpOiB2b2lkIHtcbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEV4dHJlbWVzQnVpbGRlcigpO1xuICAgIHRoaXMuX2V4dHJlbWVzID0gYnVpbGRlci5idWlsZCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRPcmlnaW5Eb21haW4oZG9tYWluOiBBcnJheTxhbnk+KSB7XG4gICAgdGhpcy5fb3JpZ2luRG9tYWluID0gZG9tYWluO1xuICB9XG5cbiAgcHVibGljIHNldFNjYWxlKHNjYWxlOiBhbnkpIHtcbiAgICB0aGlzLl9zY2FsZSA9IHNjYWxlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZWxmU2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zZWxmU2l6ZSA9IG5ldyBBeGlzU2l6ZUJ1aWxkZXIoKS5idWlsZCh0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGlja3NWYWx1ZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fdGlja3NWYWx1ZXMgPSBnZW5lcmF0ZVRpY2tzKHRoaXMuX2V4dHJlbWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0T3B0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID1cbiAgICAgIHRoaXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54XG4gICAgICAgID8gdGhpcy5jaGFydENvbmZpZy54QXhpc1t0aGlzLmluZGV4XVxuICAgICAgICA6IHRoaXMuY2hhcnRDb25maWcueUF4aXNbdGhpcy5pbmRleF07XG5cbiAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIGdldCBzY2FsZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9zY2FsZTtcbiAgfVxuXG4gIGdldCBleHRyZW1lcygpOiBBcnJheTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5fZXh0cmVtZXM7XG4gIH1cblxuICBnZXQgb3JpZW50YXRpb24oKTogQXhpc09yaWVudGF0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fb3JpZW50YXRpb247XG4gIH1cblxuICBnZXQgc2VsZlNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZlNpemU7XG4gIH1cblxuICBnZXQgdGlja1ZhbHVlcygpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3RpY2tzVmFsdWVzO1xuICB9XG5cbiAgZ2V0IGluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2luZGV4O1xuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKTogQXhpc09wdGlvbnMge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgZ2V0IG9yaWdpbkRvbWFpbigpOiBBcnJheTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fb3JpZ2luRG9tYWluXG4gIH1cblxuICBwdWJsaWMgZGVmYXVsdEZvcm1hdHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0Rm9ybWF0dGVycy5nZXQodGhpcy5vcHRpb25zLnNjYWxlVHlwZS50eXBlKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWZhdWx0U2NhbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFNjYWxlcy5nZXQodGhpcy5vcHRpb25zLnNjYWxlVHlwZS50eXBlKTtcbiAgfVxuXG5cbn1cbiJdfQ==