@tetacom/svg-charts 1.6.1 → 1.6.2

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.
@@ -53,12 +53,12 @@ export class BlockAreaSeriesComponent extends SeriesBaseComponent {
53
53
  });
54
54
  }
55
55
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BlockAreaSeriesComponent, deps: [{ token: i1.ChartService }, { token: i0.ChangeDetectorRef }, { token: i2.ScaleService }, { token: i3.ZoomService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BlockAreaSeriesComponent, isStandalone: true, selector: "svg:svg[teta-block-area-series]", usesInheritance: true, ngImport: i0, template: "@if ({\n y: y | async,\n x: x | async,\n points: displayPoints | async\n}; as data) {\n @if (series?.fillType === fillType.gradient) {\n <svg:defs>\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.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n }\n @if (data.x && data.y) {\n @for (point of data.points; track $index) {\n <svg:g (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\">\n @if (!!config.inverted) {\n <svg:rect\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.style?.stroke ?? 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.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\">\n </svg:rect>\n } @else {\n <svg:rect\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 }\n @if (point.text) {\n <svg:text x=\"50%\"\n fill=\"var(--color-text-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:g>\n }\n }\n}\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BlockAreaSeriesComponent, isStandalone: true, selector: "svg:svg[teta-block-area-series]", usesInheritance: true, ngImport: i0, template: "@if ({\n y: y | async,\n x: x | async,\n points: displayPoints | async\n}; as data) {\n @if (series?.fillType === fillType.gradient) {\n <svg:defs>\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.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n }\n @if (data.x && data.y) {\n @for (point of data.points; track point) {\n <svg:g (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\">\n @if (!!config.inverted) {\n <svg:rect\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.style?.stroke ?? 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.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\">\n </svg:rect>\n } @else {\n <svg:rect\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 }\n @if (point.text) {\n <svg:text x=\"50%\"\n fill=\"var(--color-text-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:g>\n }\n }\n}\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
57
57
  }
58
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BlockAreaSeriesComponent, decorators: [{
59
59
  type: Component,
60
60
  args: [{ selector: 'svg:svg[teta-block-area-series]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
61
61
  AsyncPipe,
62
- ], template: "@if ({\n y: y | async,\n x: x | async,\n points: displayPoints | async\n}; as data) {\n @if (series?.fillType === fillType.gradient) {\n <svg:defs>\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.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n }\n @if (data.x && data.y) {\n @for (point of data.points; track $index) {\n <svg:g (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\">\n @if (!!config.inverted) {\n <svg:rect\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.style?.stroke ?? 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.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\">\n </svg:rect>\n } @else {\n <svg:rect\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 }\n @if (point.text) {\n <svg:text x=\"50%\"\n fill=\"var(--color-text-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:g>\n }\n }\n}\n" }]
62
+ ], template: "@if ({\n y: y | async,\n x: x | async,\n points: displayPoints | async\n}; as data) {\n @if (series?.fillType === fillType.gradient) {\n <svg:defs>\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.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n }\n @if (data.x && data.y) {\n @for (point of data.points; track point) {\n <svg:g (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\">\n @if (!!config.inverted) {\n <svg:rect\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.style?.stroke ?? 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.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\">\n </svg:rect>\n } @else {\n <svg:rect\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 }\n @if (point.text) {\n <svg:text x=\"50%\"\n fill=\"var(--color-text-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:g>\n }\n }\n}\n" }]
63
63
  }], ctorParameters: () => [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsR0FFWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQVk1QyxNQUFNLE9BQU8sd0JBQ1gsU0FBUSxtQkFBc0I7SUFTOUIsWUFDcUIsR0FBaUIsRUFDakIsR0FBc0IsRUFDdEIsWUFBMEIsRUFDMUIsV0FBd0IsRUFDeEIsT0FBbUI7UUFFdEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQU5qQyxRQUFHLEdBQUgsR0FBRyxDQUFjO1FB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LFdBQ3RDO3dCQUNQLFNBQVM7cUJBQ1YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNlcmllc0Jhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9iYXNlL3Nlcmllcy1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXNlUG9pbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9iYXNlLXBvaW50JztcbmltcG9ydCB7IEZpbGxUeXBlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZW51bS9maWxsLXR5cGUnO1xuaW1wb3J0IHsgQ2hhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7IFNjYWxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvc2NhbGUuc2VydmljZSc7XG5pbXBvcnQgeyBab29tU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvem9vbS5zZXJ2aWNlJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N2ZzpzdmdbdGV0YS1ibG9jay1hcmVhLXNlcmllc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ibG9jay1hcmVhLXNlcmllcy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIEFzeW5jUGlwZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCbG9ja0FyZWFTZXJpZXNDb21wb25lbnQ8VCBleHRlbmRzIEJhc2VQb2ludD5cbiAgZXh0ZW5kcyBTZXJpZXNCYXNlQ29tcG9uZW50PFQ+XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0XG57XG4gIHg6IE9ic2VydmFibGU8YW55PjtcbiAgeTogT2JzZXJ2YWJsZTxhbnk+O1xuICBkaXNwbGF5UG9pbnRzOiBPYnNlcnZhYmxlPEJhc2VQb2ludFtdPjtcbiAgZmlsbFR5cGUgPSBGaWxsVHlwZTtcbiAgaWQ6IHN0cmluZztcbiAgTWF0aCA9IE1hdGg7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzdmM6IENoYXJ0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2NhbGVTZXJ2aWNlOiBTY2FsZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcihzdmMsIGNkciwgc2NhbGVTZXJ2aWNlLCB6b29tU2VydmljZSwgZWxlbWVudCk7XG4gICAgdGhpcy5pZCA9IChEYXRlLm5vdygpICsgTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMzYpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy54ID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUoXG4gICAgICBtYXAoXyA9PiBfLnguZ2V0KHRoaXMuc2VyaWVzLnhBeGlzSW5kZXgpPy5zY2FsZSlcbiAgICApO1xuICAgIHRoaXMueSA9IHRoaXMuc2NhbGVTZXJ2aWNlLnNjYWxlcy5waXBlKFxuICAgICAgbWFwKF8gPT4gXy55LmdldCh0aGlzLnNlcmllcy55QXhpc0luZGV4KT8uc2NhbGUpXG4gICAgKTtcblxuICAgIHRoaXMuZGlzcGxheVBvaW50cyA9IHRoaXMueS5waXBlKFxuICAgICAgZmlsdGVyKHkgPT4geSksXG4gICAgICBtYXAoeSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcmllcy5kYXRhLmZpbHRlcigocG9pbnQsIGluZGV4LCBhcnIpID0+IHtcbiAgICAgICAgICBjb25zdCBbbWluLCBtYXhdID0geS5kb21haW4oKTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHBvaW50LnkgPj0gbWluIHx8XG4gICAgICAgICAgICAgIHBvaW50LnkxID49IG1pbiB8fFxuICAgICAgICAgICAgICBhcnJbaW5kZXggKyAxXT8ueSA+PSBtaW4gfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4ICsgMV0/LnkxID49IG1pbikgJiZcbiAgICAgICAgICAgIChwb2ludC55IDw9IG1heCB8fFxuICAgICAgICAgICAgICBwb2ludC55MSA8PSBtYXggfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4IC0gMV0/LnkgPD0gbWF4IHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCAtIDFdPy55MSA8PSBtYXgpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7fVxuXG4gIG1vdXNlZW50ZXIocG9pbnQ6IEJhc2VQb2ludCkge1xuICAgIHRoaXMuc3ZjLnNldFRvb2x0aXAoe1xuICAgICAgcG9pbnQ6IHBvaW50LFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxuXG4gIG1vdXNlbGVhdmUocG9pbnQ6IEJhc2VQb2ludCkge1xuICAgIHRoaXMuc3ZjLnNldFRvb2x0aXAoe1xuICAgICAgcG9pbnQ6IG51bGwsXG4gICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgIH0pO1xuICB9XG59XG4iLCJAaWYgKHtcbiAgeTogeSB8IGFzeW5jLFxuICB4OiB4IHwgYXN5bmMsXG4gIHBvaW50czogZGlzcGxheVBvaW50cyB8IGFzeW5jXG59OyBhcyBkYXRhKSB7XG4gIEBpZiAoc2VyaWVzPy5maWxsVHlwZSA9PT0gZmlsbFR5cGUuZ3JhZGllbnQpIHtcbiAgICA8c3ZnOmRlZnM+XG4gICAgICA8c3ZnOmxpbmVhckdyYWRpZW50IFtpZF09XCInZ3JhZGllbnQtZmlsbC0nICsgaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB4MT1cIjAlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueTFdPVwiY29uZmlnPy5pbnZlcnRlZCA/ICcwJScgOiAnMTAwJSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci54Ml09XCJjb25maWc/LmludmVydGVkID8gJzEwMCUnIDogJzAlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHkyPVwiMCVcIj5cbiAgICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMFwiPjwvc3ZnOnN0b3A+XG4gICAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCI1JVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLnN0eWxlPy5maWxsID8/IHNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjAuMVwiPjwvc3ZnOnN0b3A+XG4gICAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIyMCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5zdHlsZT8uZmlsbCA/PyBzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjJcIj48L3N2ZzpzdG9wPlxuICAgICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiNjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC41XCI+PC9zdmc6c3RvcD5cbiAgICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjEwMCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5zdHlsZT8uZmlsbCA/PyBzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjlcIj48L3N2ZzpzdG9wPlxuICAgICAgPC9zdmc6bGluZWFyR3JhZGllbnQ+XG4gICAgPC9zdmc6ZGVmcz5cbiAgfVxuICBAaWYgKGRhdGEueCAmJiBkYXRhLnkpIHtcbiAgICBAZm9yIChwb2ludCBvZiBkYXRhLnBvaW50czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8c3ZnOmcgKG1vdXNlZW50ZXIpPVwibW91c2VlbnRlcihwb2ludClcIlxuICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlbGVhdmUocG9pbnQpXCI+XG4gICAgICAgIEBpZiAoISFjb25maWcuaW52ZXJ0ZWQpIHtcbiAgICAgICAgICA8c3ZnOnJlY3RcbiAgICAgICAgICAgIFthdHRyLnhdPVwiZGF0YS54KDApIDwgZGF0YS54KHBvaW50LngpID8gZGF0YS54KDApIDogZGF0YS54KHBvaW50LngpXCJcbiAgICAgICAgICAgIFthdHRyLnldPVwiZGF0YS55KHBvaW50LnkpXCJcbiAgICAgICAgICAgIFthdHRyLmhlaWdodF09XCJNYXRoLmFicyhkYXRhLnkocG9pbnQueTEpIC0gZGF0YS55KHBvaW50LnkpKVwiXG4gICAgICAgICAgICBbYXR0ci53aWR0aF09XCJkYXRhLngoMCkgPCBkYXRhLngocG9pbnQueCkgPyBkYXRhLngocG9pbnQueCkgLSBkYXRhLngoMCkgOiBkYXRhLngoMCkgLSBkYXRhLngocG9pbnQueClcIlxuICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInBvaW50Lmljb25JZCA/ICcnIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLnN0eWxlPy5zdHJva2UgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgICAgICAgIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwic2VyaWVzLnN0eWxlPy5zdHJva2VEYXNoYXJyYXlcIlxuICAgICAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInNlcmllcy5zdHlsZT8uc3Ryb2tlV2lkdGhcIlxuICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJzZXJpZXMuZmlsbFR5cGUgPT09IGZpbGxUeXBlLmdyYWRpZW50ID8gJ3VybCgjZ3JhZGllbnQtZmlsbC0nK2lkKycpJyA6IHBvaW50Lmljb25JZCA/ICd1cmwoI3BhdHRlcm4nK3BvaW50Lmljb25JZCsnKScgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgICAgICAgIFthdHRyLmZpbGwtb3BhY2l0eV09XCJzZXJpZXMuc3R5bGU/LmZpbGxPcGFjaXR5XCI+XG4gICAgICAgICAgPC9zdmc6cmVjdD5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPHN2ZzpyZWN0XG4gICAgICAgICAgICBbYXR0ci54XT1cImRhdGEueChwb2ludC54KVwiXG4gICAgICAgICAgICBbYXR0ci55XT1cImRhdGEueSgwKVwiXG4gICAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwiTWF0aC5hYnMoZGF0YS55KDApIC0gZGF0YS55KHBvaW50LnkpKVwiXG4gICAgICAgICAgICBbYXR0ci53aWR0aF09XCJkYXRhLngocG9pbnQueDEpIC0gZGF0YS54KHBvaW50LngpXCJcbiAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJwb2ludC5pY29uSWQgPyAnJyA6IHBvaW50LmNvbG9yID8/IHNlcmllcy5jb2xvclwiXG4gICAgICAgICAgICBbYXR0ci5zdHJva2UtZGFzaGFycmF5XT1cInNlcmllcy5zdHlsZT8uc3Ryb2tlRGFzaGFycmF5XCJcbiAgICAgICAgICAgIFthdHRyLnN0cm9rZS13aWR0aF09XCJzZXJpZXMuc3R5bGU/LnN0cm9rZVdpZHRoXCJcbiAgICAgICAgICAgIFthdHRyLmZpbGxdPVwic2VyaWVzLmZpbGxUeXBlID09PSBmaWxsVHlwZS5ncmFkaWVudCA/ICd1cmwoI2dyYWRpZW50LWZpbGwtJytpZCsnKScgOiBwb2ludC5pY29uSWQgPyAndXJsKCNwYXR0ZXJuJytwb2ludC5pY29uSWQrJyknIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgICAgICAgIFthdHRyLmZpbGwtb3BhY2l0eV09XCJzZXJpZXMuc3R5bGU/LmZpbGxPcGFjaXR5XCI+XG4gICAgICAgICAgPC9zdmc6cmVjdD5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHBvaW50LnRleHQpIHtcbiAgICAgICAgICA8c3ZnOnRleHQgeD1cIjUwJVwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ2YXIoLS1jb2xvci10ZXh0LTUwKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnldPVwiKGRhdGEueShwb2ludC55MSkgKyBkYXRhLnkocG9pbnQueSkpIC8gMlwiXG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudC1iYXNlbGluZT1cIm1pZGRsZVwiXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYW5jaG9yPVwibWlkZGxlXCI+e3sgcG9pbnQudGV4dCB9fVxuICAgICAgICAgIDwvc3ZnOnRleHQ+XG4gICAgICAgIH1cbiAgICAgIDwvc3ZnOmc+XG4gICAgfVxuICB9XG59XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMvYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsR0FFWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQVk1QyxNQUFNLE9BQU8sd0JBQ1gsU0FBUSxtQkFBc0I7SUFTOUIsWUFDcUIsR0FBaUIsRUFDakIsR0FBc0IsRUFDdEIsWUFBMEIsRUFDMUIsV0FBd0IsRUFDeEIsT0FBbUI7UUFFdEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQU5qQyxRQUFHLEdBQUgsR0FBRyxDQUFjO1FB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LFdBQ3RDO3dCQUNQLFNBQVM7cUJBQ1YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNlcmllc0Jhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9iYXNlL3Nlcmllcy1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXNlUG9pbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9iYXNlLXBvaW50JztcbmltcG9ydCB7IEZpbGxUeXBlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZW51bS9maWxsLXR5cGUnO1xuaW1wb3J0IHsgQ2hhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7IFNjYWxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvc2NhbGUuc2VydmljZSc7XG5pbXBvcnQgeyBab29tU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvem9vbS5zZXJ2aWNlJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N2ZzpzdmdbdGV0YS1ibG9jay1hcmVhLXNlcmllc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vYmxvY2stYXJlYS1zZXJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ibG9jay1hcmVhLXNlcmllcy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIEFzeW5jUGlwZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCbG9ja0FyZWFTZXJpZXNDb21wb25lbnQ8VCBleHRlbmRzIEJhc2VQb2ludD5cbiAgZXh0ZW5kcyBTZXJpZXNCYXNlQ29tcG9uZW50PFQ+XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0XG57XG4gIHg6IE9ic2VydmFibGU8YW55PjtcbiAgeTogT2JzZXJ2YWJsZTxhbnk+O1xuICBkaXNwbGF5UG9pbnRzOiBPYnNlcnZhYmxlPEJhc2VQb2ludFtdPjtcbiAgZmlsbFR5cGUgPSBGaWxsVHlwZTtcbiAgaWQ6IHN0cmluZztcbiAgTWF0aCA9IE1hdGg7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzdmM6IENoYXJ0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2NhbGVTZXJ2aWNlOiBTY2FsZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcihzdmMsIGNkciwgc2NhbGVTZXJ2aWNlLCB6b29tU2VydmljZSwgZWxlbWVudCk7XG4gICAgdGhpcy5pZCA9IChEYXRlLm5vdygpICsgTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMzYpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy54ID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUoXG4gICAgICBtYXAoXyA9PiBfLnguZ2V0KHRoaXMuc2VyaWVzLnhBeGlzSW5kZXgpPy5zY2FsZSlcbiAgICApO1xuICAgIHRoaXMueSA9IHRoaXMuc2NhbGVTZXJ2aWNlLnNjYWxlcy5waXBlKFxuICAgICAgbWFwKF8gPT4gXy55LmdldCh0aGlzLnNlcmllcy55QXhpc0luZGV4KT8uc2NhbGUpXG4gICAgKTtcblxuICAgIHRoaXMuZGlzcGxheVBvaW50cyA9IHRoaXMueS5waXBlKFxuICAgICAgZmlsdGVyKHkgPT4geSksXG4gICAgICBtYXAoeSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcmllcy5kYXRhLmZpbHRlcigocG9pbnQsIGluZGV4LCBhcnIpID0+IHtcbiAgICAgICAgICBjb25zdCBbbWluLCBtYXhdID0geS5kb21haW4oKTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHBvaW50LnkgPj0gbWluIHx8XG4gICAgICAgICAgICAgIHBvaW50LnkxID49IG1pbiB8fFxuICAgICAgICAgICAgICBhcnJbaW5kZXggKyAxXT8ueSA+PSBtaW4gfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4ICsgMV0/LnkxID49IG1pbikgJiZcbiAgICAgICAgICAgIChwb2ludC55IDw9IG1heCB8fFxuICAgICAgICAgICAgICBwb2ludC55MSA8PSBtYXggfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4IC0gMV0/LnkgPD0gbWF4IHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCAtIDFdPy55MSA8PSBtYXgpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7fVxuXG4gIG1vdXNlZW50ZXIocG9pbnQ6IEJhc2VQb2ludCkge1xuICAgIHRoaXMuc3ZjLnNldFRvb2x0aXAoe1xuICAgICAgcG9pbnQ6IHBvaW50LFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxuXG4gIG1vdXNlbGVhdmUocG9pbnQ6IEJhc2VQb2ludCkge1xuICAgIHRoaXMuc3ZjLnNldFRvb2x0aXAoe1xuICAgICAgcG9pbnQ6IG51bGwsXG4gICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgIH0pO1xuICB9XG59XG4iLCJAaWYgKHtcbiAgeTogeSB8IGFzeW5jLFxuICB4OiB4IHwgYXN5bmMsXG4gIHBvaW50czogZGlzcGxheVBvaW50cyB8IGFzeW5jXG59OyBhcyBkYXRhKSB7XG4gIEBpZiAoc2VyaWVzPy5maWxsVHlwZSA9PT0gZmlsbFR5cGUuZ3JhZGllbnQpIHtcbiAgICA8c3ZnOmRlZnM+XG4gICAgICA8c3ZnOmxpbmVhckdyYWRpZW50IFtpZF09XCInZ3JhZGllbnQtZmlsbC0nICsgaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB4MT1cIjAlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueTFdPVwiY29uZmlnPy5pbnZlcnRlZCA/ICcwJScgOiAnMTAwJSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci54Ml09XCJjb25maWc/LmludmVydGVkID8gJzEwMCUnIDogJzAlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHkyPVwiMCVcIj5cbiAgICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMFwiPjwvc3ZnOnN0b3A+XG4gICAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCI1JVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLnN0eWxlPy5maWxsID8/IHNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjAuMVwiPjwvc3ZnOnN0b3A+XG4gICAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIyMCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5zdHlsZT8uZmlsbCA/PyBzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjJcIj48L3N2ZzpzdG9wPlxuICAgICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiNjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC41XCI+PC9zdmc6c3RvcD5cbiAgICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjEwMCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5zdHlsZT8uZmlsbCA/PyBzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjlcIj48L3N2ZzpzdG9wPlxuICAgICAgPC9zdmc6bGluZWFyR3JhZGllbnQ+XG4gICAgPC9zdmc6ZGVmcz5cbiAgfVxuICBAaWYgKGRhdGEueCAmJiBkYXRhLnkpIHtcbiAgICBAZm9yIChwb2ludCBvZiBkYXRhLnBvaW50czsgdHJhY2sgcG9pbnQpIHtcbiAgICAgIDxzdmc6ZyAobW91c2VlbnRlcik9XCJtb3VzZWVudGVyKHBvaW50KVwiXG4gICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwibW91c2VsZWF2ZShwb2ludClcIj5cbiAgICAgICAgQGlmICghIWNvbmZpZy5pbnZlcnRlZCkge1xuICAgICAgICAgIDxzdmc6cmVjdFxuICAgICAgICAgICAgW2F0dHIueF09XCJkYXRhLngoMCkgPCBkYXRhLngocG9pbnQueCkgPyBkYXRhLngoMCkgOiBkYXRhLngocG9pbnQueClcIlxuICAgICAgICAgICAgW2F0dHIueV09XCJkYXRhLnkocG9pbnQueSlcIlxuICAgICAgICAgICAgW2F0dHIuaGVpZ2h0XT1cIk1hdGguYWJzKGRhdGEueShwb2ludC55MSkgLSBkYXRhLnkocG9pbnQueSkpXCJcbiAgICAgICAgICAgIFthdHRyLndpZHRoXT1cImRhdGEueCgwKSA8IGRhdGEueChwb2ludC54KSA/IGRhdGEueChwb2ludC54KSAtIGRhdGEueCgwKSA6IGRhdGEueCgwKSAtIGRhdGEueChwb2ludC54KVwiXG4gICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwicG9pbnQuaWNvbklkID8gJycgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuc3R5bGU/LnN0cm9rZSA/PyBzZXJpZXMuY29sb3JcIlxuICAgICAgICAgICAgW2F0dHIuc3Ryb2tlLWRhc2hhcnJheV09XCJzZXJpZXMuc3R5bGU/LnN0cm9rZURhc2hhcnJheVwiXG4gICAgICAgICAgICBbYXR0ci5zdHJva2Utd2lkdGhdPVwic2VyaWVzLnN0eWxlPy5zdHJva2VXaWR0aFwiXG4gICAgICAgICAgICBbYXR0ci5maWxsXT1cInNlcmllcy5maWxsVHlwZSA9PT0gZmlsbFR5cGUuZ3JhZGllbnQgPyAndXJsKCNncmFkaWVudC1maWxsLScraWQrJyknIDogcG9pbnQuaWNvbklkID8gJ3VybCgjcGF0dGVybicrcG9pbnQuaWNvbklkKycpJyA6IHBvaW50LmNvbG9yID8/IHNlcmllcy5zdHlsZT8uZmlsbCA/PyBzZXJpZXMuY29sb3JcIlxuICAgICAgICAgICAgW2F0dHIuZmlsbC1vcGFjaXR5XT1cInNlcmllcy5zdHlsZT8uZmlsbE9wYWNpdHlcIj5cbiAgICAgICAgICA8L3N2ZzpyZWN0PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8c3ZnOnJlY3RcbiAgICAgICAgICAgIFthdHRyLnhdPVwiZGF0YS54KHBvaW50LngpXCJcbiAgICAgICAgICAgIFthdHRyLnldPVwiZGF0YS55KDApXCJcbiAgICAgICAgICAgIFthdHRyLmhlaWdodF09XCJNYXRoLmFicyhkYXRhLnkoMCkgLSBkYXRhLnkocG9pbnQueSkpXCJcbiAgICAgICAgICAgIFthdHRyLndpZHRoXT1cImRhdGEueChwb2ludC54MSkgLSBkYXRhLngocG9pbnQueClcIlxuICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInBvaW50Lmljb25JZCA/ICcnIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgICAgICAgIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwic2VyaWVzLnN0eWxlPy5zdHJva2VEYXNoYXJyYXlcIlxuICAgICAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInNlcmllcy5zdHlsZT8uc3Ryb2tlV2lkdGhcIlxuICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJzZXJpZXMuZmlsbFR5cGUgPT09IGZpbGxUeXBlLmdyYWRpZW50ID8gJ3VybCgjZ3JhZGllbnQtZmlsbC0nK2lkKycpJyA6IHBvaW50Lmljb25JZCA/ICd1cmwoI3BhdHRlcm4nK3BvaW50Lmljb25JZCsnKScgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuY29sb3JcIlxuICAgICAgICAgICAgW2F0dHIuZmlsbC1vcGFjaXR5XT1cInNlcmllcy5zdHlsZT8uZmlsbE9wYWNpdHlcIj5cbiAgICAgICAgICA8L3N2ZzpyZWN0PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAocG9pbnQudGV4dCkge1xuICAgICAgICAgIDxzdmc6dGV4dCB4PVwiNTAlXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cInZhcigtLWNvbG9yLXRleHQtNTApXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIueV09XCIoZGF0YS55KHBvaW50LnkxKSArIGRhdGEueShwb2ludC55KSkgLyAyXCJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50LWJhc2VsaW5lPVwibWlkZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIj57eyBwb2ludC50ZXh0IH19XG4gICAgICAgICAgPC9zdmc6dGV4dD5cbiAgICAgICAgfVxuICAgICAgPC9zdmc6Zz5cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -52,13 +52,13 @@ export class BlockHorizontalSeriesComponent extends SeriesBaseComponent {
52
52
  });
53
53
  }
54
54
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BlockHorizontalSeriesComponent, deps: [{ token: i1.ChartService }, { token: i0.ChangeDetectorRef }, { token: i2.ScaleService }, { token: i3.ZoomService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
55
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BlockHorizontalSeriesComponent, isStandalone: true, selector: "svg:svg[teta-block-horizontal-series]", usesInheritance: true, ngImport: i0, template: "@if ({\n y: y | async,\n x: x | async,\n points: displayPoints | async\n}; as data) {\n @if (series?.fillType === fillType.gradient) {\n <svg:defs>\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.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n }\n @if (data.x && data.y) {\n @for (point of data.points; track $index) {\n <svg:g (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\">\n <svg:rect\n x=\"0\"\n [attr.x]=\"data.x(point.x)\"\n [attr.width]=\"Math.abs(data.x(point.x1) - data.x(point.x))\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : point.iconId ? 'url(#pattern'+point.iconId+')' : point.color ?? series.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\"\n height=\"100%\">\n </svg:rect>\n @if (point.text && data.x(point.x1) - data.x(point.x) > 8) {\n <svg:text [attr.transform]=\"'rotate(270)'\"\n [ngStyle]='{\"transform-origin\": (data.x(point.x1) + data.x(point.x)) / 2+\"px 50%\"}'\n y=\"50%\"\n [attr.x]=\"(data.x(point.x1) + data.x(point.x)) / 2\"\n text-anchor=\"middle\" alignment-baseline=\"middle\"\n text-anchor=\"middle\">{{ point.text }}\n </svg:text>\n }\n <svg:line y1=\"0\" y2=\"100%\" [attr.x1]=\"data.x(point.x)\" [attr.x2]=\"data.x(point.x)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? series.color\"></svg:line>\n <svg:line y1=\"0\" y2=\"100%\" [attr.x1]=\"data.x(point.x1)\" [attr.x2]=\"data.x(point.x1)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? series.color\"></svg:line>\n </svg:g>\n }\n }\n}\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BlockHorizontalSeriesComponent, isStandalone: true, selector: "svg:svg[teta-block-horizontal-series]", usesInheritance: true, ngImport: i0, template: "@if ({\n y: y | async,\n x: x | async,\n points: displayPoints | async\n}; as data) {\n @if (series?.fillType === fillType.gradient) {\n <svg:defs>\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.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n }\n @if (data.x && data.y) {\n @for (point of data.points; track point) {\n <svg:g (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\">\n <svg:rect\n x=\"0\"\n [attr.x]=\"data.x(point.x)\"\n [attr.width]=\"Math.abs(data.x(point.x1) - data.x(point.x))\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : point.iconId ? 'url(#pattern'+point.iconId+')' : point.color ?? series.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\"\n height=\"100%\">\n </svg:rect>\n @if (point.text && data.x(point.x1) - data.x(point.x) > 8) {\n <svg:text [attr.transform]=\"'rotate(270)'\"\n [ngStyle]='{\"transform-origin\": (data.x(point.x1) + data.x(point.x)) / 2+\"px 50%\"}'\n y=\"50%\"\n [attr.x]=\"(data.x(point.x1) + data.x(point.x)) / 2\"\n text-anchor=\"middle\" alignment-baseline=\"middle\"\n text-anchor=\"middle\">{{ point.text }}\n </svg:text>\n }\n <svg:line y1=\"0\" y2=\"100%\" [attr.x1]=\"data.x(point.x)\" [attr.x2]=\"data.x(point.x)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? series.color\"></svg:line>\n <svg:line y1=\"0\" y2=\"100%\" [attr.x1]=\"data.x(point.x1)\" [attr.x2]=\"data.x(point.x1)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? series.color\"></svg:line>\n </svg:g>\n }\n }\n}\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
56
56
  }
57
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BlockHorizontalSeriesComponent, decorators: [{
58
58
  type: Component,
59
59
  args: [{ selector: 'svg:svg[teta-block-horizontal-series]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
60
60
  AsyncPipe,
61
61
  NgStyle,
62
- ], template: "@if ({\n y: y | async,\n x: x | async,\n points: displayPoints | async\n}; as data) {\n @if (series?.fillType === fillType.gradient) {\n <svg:defs>\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.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n }\n @if (data.x && data.y) {\n @for (point of data.points; track $index) {\n <svg:g (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\">\n <svg:rect\n x=\"0\"\n [attr.x]=\"data.x(point.x)\"\n [attr.width]=\"Math.abs(data.x(point.x1) - data.x(point.x))\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : point.iconId ? 'url(#pattern'+point.iconId+')' : point.color ?? series.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\"\n height=\"100%\">\n </svg:rect>\n @if (point.text && data.x(point.x1) - data.x(point.x) > 8) {\n <svg:text [attr.transform]=\"'rotate(270)'\"\n [ngStyle]='{\"transform-origin\": (data.x(point.x1) + data.x(point.x)) / 2+\"px 50%\"}'\n y=\"50%\"\n [attr.x]=\"(data.x(point.x1) + data.x(point.x)) / 2\"\n text-anchor=\"middle\" alignment-baseline=\"middle\"\n text-anchor=\"middle\">{{ point.text }}\n </svg:text>\n }\n <svg:line y1=\"0\" y2=\"100%\" [attr.x1]=\"data.x(point.x)\" [attr.x2]=\"data.x(point.x)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? series.color\"></svg:line>\n <svg:line y1=\"0\" y2=\"100%\" [attr.x1]=\"data.x(point.x1)\" [attr.x2]=\"data.x(point.x1)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? series.color\"></svg:line>\n </svg:g>\n }\n }\n}\n" }]
62
+ ], template: "@if ({\n y: y | async,\n x: x | async,\n points: displayPoints | async\n}; as data) {\n @if (series?.fillType === fillType.gradient) {\n <svg:defs>\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.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n }\n @if (data.x && data.y) {\n @for (point of data.points; track point) {\n <svg:g (mouseenter)=\"mouseenter(point)\"\n (mouseleave)=\"mouseleave(point)\">\n <svg:rect\n x=\"0\"\n [attr.x]=\"data.x(point.x)\"\n [attr.width]=\"Math.abs(data.x(point.x1) - data.x(point.x))\"\n [attr.fill]=\"series.fillType === fillType.gradient ? 'url(#gradient-fill-'+id+')' : point.iconId ? 'url(#pattern'+point.iconId+')' : point.color ?? series.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\"\n height=\"100%\">\n </svg:rect>\n @if (point.text && data.x(point.x1) - data.x(point.x) > 8) {\n <svg:text [attr.transform]=\"'rotate(270)'\"\n [ngStyle]='{\"transform-origin\": (data.x(point.x1) + data.x(point.x)) / 2+\"px 50%\"}'\n y=\"50%\"\n [attr.x]=\"(data.x(point.x1) + data.x(point.x)) / 2\"\n text-anchor=\"middle\" alignment-baseline=\"middle\"\n text-anchor=\"middle\">{{ point.text }}\n </svg:text>\n }\n <svg:line y1=\"0\" y2=\"100%\" [attr.x1]=\"data.x(point.x)\" [attr.x2]=\"data.x(point.x)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? series.color\"></svg:line>\n <svg:line y1=\"0\" y2=\"100%\" [attr.x1]=\"data.x(point.x1)\" [attr.x2]=\"data.x(point.x1)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? series.color\"></svg:line>\n </svg:g>\n }\n }\n}\n" }]
63
63
  }], ctorParameters: () => [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2staG9yaXpvbnRhbC1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2staG9yaXpvbnRhbC1zZXJpZXMvYmxvY2staG9yaXpvbnRhbC1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2staG9yaXpvbnRhbC1zZXJpZXMvYmxvY2staG9yaXpvbnRhbC1zZXJpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsR0FFWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFhckQsTUFBTSxPQUFPLDhCQUNYLFNBQVEsbUJBQXNCO0lBVTlCLFlBQ3FCLEdBQWlCLEVBQ2pCLEdBQXNCLEVBQ3RCLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLE9BQW1CO1FBRXRDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsT0FB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ckMsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFNBQVM7d0JBQ1QsT0FBTztxQkFDUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2VyaWVzQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2Uvc2VyaWVzLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VQb2ludCB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2Jhc2UtcG9pbnQnO1xuaW1wb3J0IHsgRmlsbFR5cGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lbnVtL2ZpbGwtdHlwZSc7XG5pbXBvcnQgeyBDaGFydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFpvb21TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3ZnOnN2Z1t0ZXRhLWJsb2NrLWhvcml6b250YWwtc2VyaWVzXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ibG9jay1ob3Jpem9udGFsLXNlcmllcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Jsb2NrLWhvcml6b250YWwtc2VyaWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQXN5bmNQaXBlLFxuICAgIE5nU3R5bGUsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQmxvY2tIb3Jpem9udGFsU2VyaWVzQ29tcG9uZW50PFQgZXh0ZW5kcyBCYXNlUG9pbnQ+XG4gIGV4dGVuZHMgU2VyaWVzQmFzZUNvbXBvbmVudDxUPlxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICB4OiBPYnNlcnZhYmxlPGFueT47XG4gIHk6IE9ic2VydmFibGU8YW55PjtcbiAgZGlzcGxheVBvaW50czogT2JzZXJ2YWJsZTxCYXNlUG9pbnRbXT47XG4gIGZpbGxUeXBlID0gRmlsbFR5cGU7XG4gIGlkOiBzdHJpbmc7XG4gIE1hdGggPSBNYXRoO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzdmM6IENoYXJ0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2NhbGVTZXJ2aWNlOiBTY2FsZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcihzdmMsIGNkciwgc2NhbGVTZXJ2aWNlLCB6b29tU2VydmljZSwgZWxlbWVudCk7XG4gICAgdGhpcy5pZCA9IChEYXRlLm5vdygpICsgTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMzYpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy54ID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUoXG4gICAgICBtYXAoXyA9PiBfLnguZ2V0KHRoaXMuc2VyaWVzLnhBeGlzSW5kZXgpPy5zY2FsZSlcbiAgICApO1xuICAgIHRoaXMueSA9IHRoaXMuc2NhbGVTZXJ2aWNlLnNjYWxlcy5waXBlKFxuICAgICAgbWFwKF8gPT4gXy55LmdldCh0aGlzLnNlcmllcy55QXhpc0luZGV4KT8uc2NhbGUpXG4gICAgKTtcblxuICAgIHRoaXMuZGlzcGxheVBvaW50cyA9IHRoaXMueC5waXBlKFxuICAgICAgZmlsdGVyKHkgPT4geSksXG4gICAgICBtYXAoeSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcmllcy5kYXRhLmZpbHRlcigocG9pbnQsIGluZGV4LCBhcnIpID0+IHtcbiAgICAgICAgICBjb25zdCBbbWluLCBtYXhdID0geS5kb21haW4oKTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHBvaW50LnggPj0gbWluIHx8XG4gICAgICAgICAgICAgIHBvaW50LngxID49IG1pbiB8fFxuICAgICAgICAgICAgICBhcnJbaW5kZXggKyAxXT8ueCA+PSBtaW4gfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4ICsgMV0/LngxID49IG1pbikgJiZcbiAgICAgICAgICAgIChwb2ludC54IDw9IG1heCB8fFxuICAgICAgICAgICAgICBwb2ludC54MSA8PSBtYXggfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4IC0gMV0/LnggPD0gbWF4IHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCAtIDFdPy54MSA8PSBtYXgpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBtb3VzZWVudGVyKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBwb2ludCxcbiAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgfSk7XG4gIH1cblxuICBtb3VzZWxlYXZlKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBudWxsLFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmICh7XG4gIHk6IHkgfCBhc3luYyxcbiAgeDogeCB8IGFzeW5jLFxuICBwb2ludHM6IGRpc3BsYXlQb2ludHMgfCBhc3luY1xufTsgYXMgZGF0YSkge1xuICBAaWYgKHNlcmllcz8uZmlsbFR5cGUgPT09IGZpbGxUeXBlLmdyYWRpZW50KSB7XG4gICAgPHN2ZzpkZWZzPlxuICAgICAgPHN2ZzpsaW5lYXJHcmFkaWVudCBbaWRdPVwiJ2dyYWRpZW50LWZpbGwtJyArIGlkXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeDE9XCIwJVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnkxXT1cImNvbmZpZz8uaW52ZXJ0ZWQgPyAnMCUnIDogJzEwMCUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueDJdPVwiY29uZmlnPy5pbnZlcnRlZCA/ICcxMDAlJyA6ICcwJSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB5Mj1cIjAlXCI+XG4gICAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLnN0eWxlPy5maWxsID8/IHNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjBcIj48L3N2ZzpzdG9wPlxuICAgICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiNSVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5zdHlsZT8uZmlsbCA/PyBzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjFcIj48L3N2ZzpzdG9wPlxuICAgICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiMjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC4yXCI+PC9zdmc6c3RvcD5cbiAgICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjYwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLnN0eWxlPy5maWxsID8/IHNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjAuNVwiPjwvc3ZnOnN0b3A+XG4gICAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIxMDAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC45XCI+PC9zdmc6c3RvcD5cbiAgICAgIDwvc3ZnOmxpbmVhckdyYWRpZW50PlxuICAgIDwvc3ZnOmRlZnM+XG4gIH1cbiAgQGlmIChkYXRhLnggJiYgZGF0YS55KSB7XG4gICAgQGZvciAocG9pbnQgb2YgZGF0YS5wb2ludHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPHN2ZzpnIChtb3VzZWVudGVyKT1cIm1vdXNlZW50ZXIocG9pbnQpXCJcbiAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJtb3VzZWxlYXZlKHBvaW50KVwiPlxuICAgICAgICA8c3ZnOnJlY3RcbiAgICAgICAgICB4PVwiMFwiXG4gICAgICAgICAgW2F0dHIueF09XCJkYXRhLngocG9pbnQueClcIlxuICAgICAgICAgIFthdHRyLndpZHRoXT1cIk1hdGguYWJzKGRhdGEueChwb2ludC54MSkgLSBkYXRhLngocG9pbnQueCkpXCJcbiAgICAgICAgICBbYXR0ci5maWxsXT1cInNlcmllcy5maWxsVHlwZSA9PT0gZmlsbFR5cGUuZ3JhZGllbnQgPyAndXJsKCNncmFkaWVudC1maWxsLScraWQrJyknIDogcG9pbnQuaWNvbklkID8gJ3VybCgjcGF0dGVybicrcG9pbnQuaWNvbklkKycpJyA6IHBvaW50LmNvbG9yID8/IHNlcmllcy5zdHlsZT8uZmlsbCA/PyBzZXJpZXMuY29sb3JcIlxuICAgICAgICAgIFthdHRyLmZpbGwtb3BhY2l0eV09XCJzZXJpZXMuc3R5bGU/LmZpbGxPcGFjaXR5XCJcbiAgICAgICAgICBoZWlnaHQ9XCIxMDAlXCI+XG4gICAgICAgIDwvc3ZnOnJlY3Q+XG4gICAgICAgIEBpZiAocG9pbnQudGV4dCAmJiBkYXRhLngocG9pbnQueDEpIC0gZGF0YS54KHBvaW50LngpID4gOCkge1xuICAgICAgICAgIDxzdmc6dGV4dCBbYXR0ci50cmFuc2Zvcm1dPVwiJ3JvdGF0ZSgyNzApJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT0ne1widHJhbnNmb3JtLW9yaWdpblwiOiAoZGF0YS54KHBvaW50LngxKSArIGRhdGEueChwb2ludC54KSkgLyAyK1wicHggNTAlXCJ9J1xuICAgICAgICAgICAgICAgICAgICB5PVwiNTAlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIueF09XCIoZGF0YS54KHBvaW50LngxKSArIGRhdGEueChwb2ludC54KSkgLyAyXCJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBhbGlnbm1lbnQtYmFzZWxpbmU9XCJtaWRkbGVcIlxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiPnt7IHBvaW50LnRleHQgfX1cbiAgICAgICAgICA8L3N2Zzp0ZXh0PlxuICAgICAgICB9XG4gICAgICAgIDxzdmc6bGluZSB5MT1cIjBcIiB5Mj1cIjEwMCVcIiBbYXR0ci54MV09XCJkYXRhLngocG9pbnQueClcIiBbYXR0ci54Ml09XCJkYXRhLngocG9pbnQueClcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInBvaW50Lmljb25JZCA/ICd2YXIoLS1jb2xvci10ZXh0LTEwKScgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuc3R5bGU/LnN0cm9rZSA/PyBzZXJpZXMuY29sb3JcIj48L3N2ZzpsaW5lPlxuICAgICAgICA8c3ZnOmxpbmUgeTE9XCIwXCIgeTI9XCIxMDAlXCIgW2F0dHIueDFdPVwiZGF0YS54KHBvaW50LngxKVwiIFthdHRyLngyXT1cImRhdGEueChwb2ludC54MSlcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInBvaW50Lmljb25JZCA/ICd2YXIoLS1jb2xvci10ZXh0LTEwKScgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuc3R5bGU/LnN0cm9rZSA/PyBzZXJpZXMuY29sb3JcIj48L3N2ZzpsaW5lPlxuICAgICAgPC9zdmc6Zz5cbiAgICB9XG4gIH1cbn1cbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2staG9yaXpvbnRhbC1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2staG9yaXpvbnRhbC1zZXJpZXMvYmxvY2staG9yaXpvbnRhbC1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2staG9yaXpvbnRhbC1zZXJpZXMvYmxvY2staG9yaXpvbnRhbC1zZXJpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsR0FFWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFhckQsTUFBTSxPQUFPLDhCQUNYLFNBQVEsbUJBQXNCO0lBVTlCLFlBQ3FCLEdBQWlCLEVBQ2pCLEdBQXNCLEVBQ3RCLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLE9BQW1CO1FBRXRDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsT0FB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ckMsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFNBQVM7d0JBQ1QsT0FBTztxQkFDUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2VyaWVzQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2Uvc2VyaWVzLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VQb2ludCB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2Jhc2UtcG9pbnQnO1xuaW1wb3J0IHsgRmlsbFR5cGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lbnVtL2ZpbGwtdHlwZSc7XG5pbXBvcnQgeyBDaGFydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFpvb21TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3ZnOnN2Z1t0ZXRhLWJsb2NrLWhvcml6b250YWwtc2VyaWVzXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ibG9jay1ob3Jpem9udGFsLXNlcmllcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Jsb2NrLWhvcml6b250YWwtc2VyaWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQXN5bmNQaXBlLFxuICAgIE5nU3R5bGUsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQmxvY2tIb3Jpem9udGFsU2VyaWVzQ29tcG9uZW50PFQgZXh0ZW5kcyBCYXNlUG9pbnQ+XG4gIGV4dGVuZHMgU2VyaWVzQmFzZUNvbXBvbmVudDxUPlxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICB4OiBPYnNlcnZhYmxlPGFueT47XG4gIHk6IE9ic2VydmFibGU8YW55PjtcbiAgZGlzcGxheVBvaW50czogT2JzZXJ2YWJsZTxCYXNlUG9pbnRbXT47XG4gIGZpbGxUeXBlID0gRmlsbFR5cGU7XG4gIGlkOiBzdHJpbmc7XG4gIE1hdGggPSBNYXRoO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzdmM6IENoYXJ0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2NhbGVTZXJ2aWNlOiBTY2FsZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcihzdmMsIGNkciwgc2NhbGVTZXJ2aWNlLCB6b29tU2VydmljZSwgZWxlbWVudCk7XG4gICAgdGhpcy5pZCA9IChEYXRlLm5vdygpICsgTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMzYpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy54ID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUoXG4gICAgICBtYXAoXyA9PiBfLnguZ2V0KHRoaXMuc2VyaWVzLnhBeGlzSW5kZXgpPy5zY2FsZSlcbiAgICApO1xuICAgIHRoaXMueSA9IHRoaXMuc2NhbGVTZXJ2aWNlLnNjYWxlcy5waXBlKFxuICAgICAgbWFwKF8gPT4gXy55LmdldCh0aGlzLnNlcmllcy55QXhpc0luZGV4KT8uc2NhbGUpXG4gICAgKTtcblxuICAgIHRoaXMuZGlzcGxheVBvaW50cyA9IHRoaXMueC5waXBlKFxuICAgICAgZmlsdGVyKHkgPT4geSksXG4gICAgICBtYXAoeSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcmllcy5kYXRhLmZpbHRlcigocG9pbnQsIGluZGV4LCBhcnIpID0+IHtcbiAgICAgICAgICBjb25zdCBbbWluLCBtYXhdID0geS5kb21haW4oKTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHBvaW50LnggPj0gbWluIHx8XG4gICAgICAgICAgICAgIHBvaW50LngxID49IG1pbiB8fFxuICAgICAgICAgICAgICBhcnJbaW5kZXggKyAxXT8ueCA+PSBtaW4gfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4ICsgMV0/LngxID49IG1pbikgJiZcbiAgICAgICAgICAgIChwb2ludC54IDw9IG1heCB8fFxuICAgICAgICAgICAgICBwb2ludC54MSA8PSBtYXggfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4IC0gMV0/LnggPD0gbWF4IHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCAtIDFdPy54MSA8PSBtYXgpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBtb3VzZWVudGVyKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBwb2ludCxcbiAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgfSk7XG4gIH1cblxuICBtb3VzZWxlYXZlKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBudWxsLFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmICh7XG4gIHk6IHkgfCBhc3luYyxcbiAgeDogeCB8IGFzeW5jLFxuICBwb2ludHM6IGRpc3BsYXlQb2ludHMgfCBhc3luY1xufTsgYXMgZGF0YSkge1xuICBAaWYgKHNlcmllcz8uZmlsbFR5cGUgPT09IGZpbGxUeXBlLmdyYWRpZW50KSB7XG4gICAgPHN2ZzpkZWZzPlxuICAgICAgPHN2ZzpsaW5lYXJHcmFkaWVudCBbaWRdPVwiJ2dyYWRpZW50LWZpbGwtJyArIGlkXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeDE9XCIwJVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnkxXT1cImNvbmZpZz8uaW52ZXJ0ZWQgPyAnMCUnIDogJzEwMCUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueDJdPVwiY29uZmlnPy5pbnZlcnRlZCA/ICcxMDAlJyA6ICcwJSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB5Mj1cIjAlXCI+XG4gICAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLnN0eWxlPy5maWxsID8/IHNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjBcIj48L3N2ZzpzdG9wPlxuICAgICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiNSVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5zdHlsZT8uZmlsbCA/PyBzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjFcIj48L3N2ZzpzdG9wPlxuICAgICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiMjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC4yXCI+PC9zdmc6c3RvcD5cbiAgICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjYwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLnN0eWxlPy5maWxsID8/IHNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjAuNVwiPjwvc3ZnOnN0b3A+XG4gICAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIxMDAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC45XCI+PC9zdmc6c3RvcD5cbiAgICAgIDwvc3ZnOmxpbmVhckdyYWRpZW50PlxuICAgIDwvc3ZnOmRlZnM+XG4gIH1cbiAgQGlmIChkYXRhLnggJiYgZGF0YS55KSB7XG4gICAgQGZvciAocG9pbnQgb2YgZGF0YS5wb2ludHM7IHRyYWNrIHBvaW50KSB7XG4gICAgICA8c3ZnOmcgKG1vdXNlZW50ZXIpPVwibW91c2VlbnRlcihwb2ludClcIlxuICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlbGVhdmUocG9pbnQpXCI+XG4gICAgICAgIDxzdmc6cmVjdFxuICAgICAgICAgIHg9XCIwXCJcbiAgICAgICAgICBbYXR0ci54XT1cImRhdGEueChwb2ludC54KVwiXG4gICAgICAgICAgW2F0dHIud2lkdGhdPVwiTWF0aC5hYnMoZGF0YS54KHBvaW50LngxKSAtIGRhdGEueChwb2ludC54KSlcIlxuICAgICAgICAgIFthdHRyLmZpbGxdPVwic2VyaWVzLmZpbGxUeXBlID09PSBmaWxsVHlwZS5ncmFkaWVudCA/ICd1cmwoI2dyYWRpZW50LWZpbGwtJytpZCsnKScgOiBwb2ludC5pY29uSWQgPyAndXJsKCNwYXR0ZXJuJytwb2ludC5pY29uSWQrJyknIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLnN0eWxlPy5maWxsID8/IHNlcmllcy5jb2xvclwiXG4gICAgICAgICAgW2F0dHIuZmlsbC1vcGFjaXR5XT1cInNlcmllcy5zdHlsZT8uZmlsbE9wYWNpdHlcIlxuICAgICAgICAgIGhlaWdodD1cIjEwMCVcIj5cbiAgICAgICAgPC9zdmc6cmVjdD5cbiAgICAgICAgQGlmIChwb2ludC50ZXh0ICYmIGRhdGEueChwb2ludC54MSkgLSBkYXRhLngocG9pbnQueCkgPiA4KSB7XG4gICAgICAgICAgPHN2Zzp0ZXh0IFthdHRyLnRyYW5zZm9ybV09XCIncm90YXRlKDI3MCknXCJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPSd7XCJ0cmFuc2Zvcm0tb3JpZ2luXCI6IChkYXRhLngocG9pbnQueDEpICsgZGF0YS54KHBvaW50LngpKSAvIDIrXCJweCA1MCVcIn0nXG4gICAgICAgICAgICAgICAgICAgIHk9XCI1MCVcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci54XT1cIihkYXRhLngocG9pbnQueDEpICsgZGF0YS54KHBvaW50LngpKSAvIDJcIlxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiIGFsaWdubWVudC1iYXNlbGluZT1cIm1pZGRsZVwiXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYW5jaG9yPVwibWlkZGxlXCI+e3sgcG9pbnQudGV4dCB9fVxuICAgICAgICAgIDwvc3ZnOnRleHQ+XG4gICAgICAgIH1cbiAgICAgICAgPHN2ZzpsaW5lIHkxPVwiMFwiIHkyPVwiMTAwJVwiIFthdHRyLngxXT1cImRhdGEueChwb2ludC54KVwiIFthdHRyLngyXT1cImRhdGEueChwb2ludC54KVwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwicG9pbnQuaWNvbklkID8gJ3ZhcigtLWNvbG9yLXRleHQtMTApJyA6IHBvaW50LmNvbG9yID8/IHNlcmllcy5zdHlsZT8uc3Ryb2tlID8/IHNlcmllcy5jb2xvclwiPjwvc3ZnOmxpbmU+XG4gICAgICAgIDxzdmc6bGluZSB5MT1cIjBcIiB5Mj1cIjEwMCVcIiBbYXR0ci54MV09XCJkYXRhLngocG9pbnQueDEpXCIgW2F0dHIueDJdPVwiZGF0YS54KHBvaW50LngxKVwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwicG9pbnQuaWNvbklkID8gJ3ZhcigtLWNvbG9yLXRleHQtMTApJyA6IHBvaW50LmNvbG9yID8/IHNlcmllcy5zdHlsZT8uc3Ryb2tlID8/IHNlcmllcy5jb2xvclwiPjwvc3ZnOmxpbmU+XG4gICAgICA8L3N2ZzpnPlxuICAgIH1cbiAgfVxufVxuIl19
@@ -52,12 +52,12 @@ export class BlockSeriesComponent extends SeriesBaseComponent {
52
52
  });
53
53
  }
54
54
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BlockSeriesComponent, deps: [{ token: i1.ChartService }, { token: i0.ChangeDetectorRef }, { token: i2.ScaleService }, { token: i3.ZoomService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
55
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BlockSeriesComponent, isStandalone: true, selector: "svg:svg[teta-block-series]", usesInheritance: true, ngImport: i0, template: "@if ({\n y: y | async,\n x: x | async,\n points: displayPoints | async\n}; as data) {\n @if (series?.fillType === fillType.gradient) {\n <svg:defs>\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.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n }\n @if (data.x && data.y) {\n @for (point of data.points; track $index) {\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.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\"\n width=\"100%\">\n </svg:rect>\n @if (point.text && data.y(point.y1) - data.y(point.y) > 8) {\n <svg:text 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)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? 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.style?.stroke ?? series.color\"></svg:line>\n </svg:g>\n }\n }\n}\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BlockSeriesComponent, isStandalone: true, selector: "svg:svg[teta-block-series]", usesInheritance: true, ngImport: i0, template: "@if ({\n y: y | async,\n x: x | async,\n points: displayPoints | async\n}; as data) {\n @if (series?.fillType === fillType.gradient) {\n <svg:defs>\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.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n }\n @if (data.x && data.y) {\n @for (point of data.points; track point) {\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.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\"\n width=\"100%\">\n </svg:rect>\n @if (point.text && data.y(point.y1) - data.y(point.y) > 8) {\n <svg:text 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)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? 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.style?.stroke ?? series.color\"></svg:line>\n </svg:g>\n }\n }\n}\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
56
56
  }
57
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BlockSeriesComponent, decorators: [{
58
58
  type: Component,
59
59
  args: [{ selector: 'svg:svg[teta-block-series]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
60
60
  AsyncPipe,
61
- ], template: "@if ({\n y: y | async,\n x: x | async,\n points: displayPoints | async\n}; as data) {\n @if (series?.fillType === fillType.gradient) {\n <svg:defs>\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.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n }\n @if (data.x && data.y) {\n @for (point of data.points; track $index) {\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.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\"\n width=\"100%\">\n </svg:rect>\n @if (point.text && data.y(point.y1) - data.y(point.y) > 8) {\n <svg:text 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)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? 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.style?.stroke ?? series.color\"></svg:line>\n </svg:g>\n }\n }\n}\n" }]
61
+ ], template: "@if ({\n y: y | async,\n x: x | async,\n points: displayPoints | async\n}; as data) {\n @if (series?.fillType === fillType.gradient) {\n <svg:defs>\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.style?.fill ?? series.color\" stop-opacity=\"0\"></svg:stop>\n <svg:stop offset=\"5%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.1\"></svg:stop>\n <svg:stop offset=\"20%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.2\"></svg:stop>\n <svg:stop offset=\"60%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.5\"></svg:stop>\n <svg:stop offset=\"100%\" [attr.stop-color]=\"series.style?.fill ?? series.color\" stop-opacity=\"0.9\"></svg:stop>\n </svg:linearGradient>\n </svg:defs>\n }\n @if (data.x && data.y) {\n @for (point of data.points; track point) {\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.style?.fill ?? series.color\"\n [attr.fill-opacity]=\"series.style?.fillOpacity\"\n width=\"100%\">\n </svg:rect>\n @if (point.text && data.y(point.y1) - data.y(point.y) > 8) {\n <svg:text 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)\"\n [attr.stroke]=\"point.iconId ? 'var(--color-text-10)' : point.color ?? series.style?.stroke ?? 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.style?.stroke ?? series.color\"></svg:line>\n </svg:g>\n }\n }\n}\n" }]
62
62
  }], ctorParameters: () => [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stc2VyaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIvc2VyaWVzL2Jsb2NrLXNlcmllcy9ibG9jay1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stc2VyaWVzL2Jsb2NrLXNlcmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxHQUVYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBWTVDLE1BQU0sT0FBTyxvQkFDWCxTQUFRLG1CQUFzQjtJQVU5QixZQUNxQixHQUFpQixFQUNqQixHQUFzQixFQUN0QixZQUEwQixFQUMxQixXQUF3QixFQUN4QixPQUFtQjtRQUV0QyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTmpDLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7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cG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2VyaWVzQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2Uvc2VyaWVzLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VQb2ludCB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2Jhc2UtcG9pbnQnO1xuaW1wb3J0IHsgRmlsbFR5cGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lbnVtL2ZpbGwtdHlwZSc7XG5pbXBvcnQgeyBDaGFydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFpvb21TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3ZnOnN2Z1t0ZXRhLWJsb2NrLXNlcmllc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vYmxvY2stc2VyaWVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmxvY2stc2VyaWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQXN5bmNQaXBlLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJsb2NrU2VyaWVzQ29tcG9uZW50PFQgZXh0ZW5kcyBCYXNlUG9pbnQ+XG4gIGV4dGVuZHMgU2VyaWVzQmFzZUNvbXBvbmVudDxUPlxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICB4OiBPYnNlcnZhYmxlPGFueT47XG4gIHk6IE9ic2VydmFibGU8YW55PjtcbiAgZGlzcGxheVBvaW50czogT2JzZXJ2YWJsZTxCYXNlUG9pbnRbXT47XG4gIGZpbGxUeXBlID0gRmlsbFR5cGU7XG4gIGlkOiBzdHJpbmc7XG4gIE1hdGggPSBNYXRoO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzdmM6IENoYXJ0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2NhbGVTZXJ2aWNlOiBTY2FsZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcihzdmMsIGNkciwgc2NhbGVTZXJ2aWNlLCB6b29tU2VydmljZSwgZWxlbWVudCk7XG4gICAgdGhpcy5pZCA9IChEYXRlLm5vdygpICsgTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMzYpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy54ID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUoXG4gICAgICBtYXAoXyA9PiBfLnguZ2V0KHRoaXMuc2VyaWVzLnhBeGlzSW5kZXgpPy5zY2FsZSlcbiAgICApO1xuICAgIHRoaXMueSA9IHRoaXMuc2NhbGVTZXJ2aWNlLnNjYWxlcy5waXBlKFxuICAgICAgbWFwKF8gPT4gXy55LmdldCh0aGlzLnNlcmllcy55QXhpc0luZGV4KT8uc2NhbGUpXG4gICAgKTtcblxuICAgIHRoaXMuZGlzcGxheVBvaW50cyA9IHRoaXMueS5waXBlKFxuICAgICAgZmlsdGVyKHkgPT4geSksXG4gICAgICBtYXAoeSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcmllcy5kYXRhLmZpbHRlcigocG9pbnQsIGluZGV4LCBhcnIpID0+IHtcbiAgICAgICAgICBjb25zdCBbbWluLCBtYXhdID0geS5kb21haW4oKTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHBvaW50LnkgPj0gbWluIHx8XG4gICAgICAgICAgICAgIHBvaW50LnkxID49IG1pbiB8fFxuICAgICAgICAgICAgICBhcnJbaW5kZXggKyAxXT8ueSA+PSBtaW4gfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4ICsgMV0/LnkxID49IG1pbikgJiZcbiAgICAgICAgICAgIChwb2ludC55IDw9IG1heCB8fFxuICAgICAgICAgICAgICBwb2ludC55MSA8PSBtYXggfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4IC0gMV0/LnkgPD0gbWF4IHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCAtIDFdPy55MSA8PSBtYXgpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBtb3VzZWVudGVyKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBwb2ludCxcbiAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgfSk7XG4gIH1cblxuICBtb3VzZWxlYXZlKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBudWxsLFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmICh7XG4gIHk6IHkgfCBhc3luYyxcbiAgeDogeCB8IGFzeW5jLFxuICBwb2ludHM6IGRpc3BsYXlQb2ludHMgfCBhc3luY1xufTsgYXMgZGF0YSkge1xuICBAaWYgKHNlcmllcz8uZmlsbFR5cGUgPT09IGZpbGxUeXBlLmdyYWRpZW50KSB7XG4gICAgPHN2ZzpkZWZzPlxuICAgICAgPHN2ZzpsaW5lYXJHcmFkaWVudCBbaWRdPVwiJ2dyYWRpZW50LWZpbGwtJyArIGlkXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeDE9XCIwJVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnkxXT1cImNvbmZpZz8uaW52ZXJ0ZWQgPyAnMCUnIDogJzEwMCUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueDJdPVwiY29uZmlnPy5pbnZlcnRlZCA/ICcxMDAlJyA6ICcwJSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB5Mj1cIjAlXCI+XG4gICAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLnN0eWxlPy5maWxsID8/IHNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjBcIj48L3N2ZzpzdG9wPlxuICAgICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiNSVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5zdHlsZT8uZmlsbCA/PyBzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjFcIj48L3N2ZzpzdG9wPlxuICAgICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiMjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC4yXCI+PC9zdmc6c3RvcD5cbiAgICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjYwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLnN0eWxlPy5maWxsID8/IHNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjAuNVwiPjwvc3ZnOnN0b3A+XG4gICAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIxMDAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC45XCI+PC9zdmc6c3RvcD5cbiAgICAgIDwvc3ZnOmxpbmVhckdyYWRpZW50PlxuICAgIDwvc3ZnOmRlZnM+XG4gIH1cbiAgQGlmIChkYXRhLnggJiYgZGF0YS55KSB7XG4gICAgQGZvciAocG9pbnQgb2YgZGF0YS5wb2ludHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPHN2ZzpnIChtb3VzZWVudGVyKT1cIm1vdXNlZW50ZXIocG9pbnQpXCJcbiAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJtb3VzZWxlYXZlKHBvaW50KVwiPlxuICAgICAgICA8c3ZnOnJlY3RcbiAgICAgICAgICB4PVwiMFwiXG4gICAgICAgICAgW2F0dHIueV09XCJkYXRhLnkocG9pbnQueSlcIlxuICAgICAgICAgIFthdHRyLmhlaWdodF09XCJNYXRoLmFicyhkYXRhLnkocG9pbnQueTEpIC0gZGF0YS55KHBvaW50LnkpKVwiXG4gICAgICAgICAgW2F0dHIuZmlsbF09XCJzZXJpZXMuZmlsbFR5cGUgPT09IGZpbGxUeXBlLmdyYWRpZW50ID8gJ3VybCgjZ3JhZGllbnQtZmlsbC0nK2lkKycpJyA6IHBvaW50Lmljb25JZCA/ICd1cmwoI3BhdHRlcm4nK3BvaW50Lmljb25JZCsnKScgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgICAgICBbYXR0ci5maWxsLW9wYWNpdHldPVwic2VyaWVzLnN0eWxlPy5maWxsT3BhY2l0eVwiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCI+XG4gICAgICAgIDwvc3ZnOnJlY3Q+XG4gICAgICAgIEBpZiAocG9pbnQudGV4dCAmJiBkYXRhLnkocG9pbnQueTEpIC0gZGF0YS55KHBvaW50LnkpID4gOCkge1xuICAgICAgICAgIDxzdmc6dGV4dCB4PVwiNTAlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIueV09XCIoZGF0YS55KHBvaW50LnkxKSArIGRhdGEueShwb2ludC55KSkgLyAyXCJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50LWJhc2VsaW5lPVwibWlkZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIj57eyBwb2ludC50ZXh0IH19XG4gICAgICAgICAgPC9zdmc6dGV4dD5cbiAgICAgICAgfVxuICAgICAgICA8c3ZnOmxpbmUgeDE9XCIwXCIgeDI9XCIxMDAlXCIgW2F0dHIueTFdPVwiZGF0YS55KHBvaW50LnkpXCIgW2F0dHIueTJdPVwiZGF0YS55KHBvaW50LnkpXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJwb2ludC5pY29uSWQgPyAndmFyKC0tY29sb3ItdGV4dC0xMCknIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLnN0eWxlPy5zdHJva2UgPz8gc2VyaWVzLmNvbG9yXCI+PC9zdmc6bGluZT5cbiAgICAgICAgPHN2ZzpsaW5lIHgxPVwiMFwiIHgyPVwiMTAwJVwiIFthdHRyLnkxXT1cImRhdGEueShwb2ludC55MSlcIiBbYXR0ci55Ml09XCJkYXRhLnkocG9pbnQueTEpXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJwb2ludC5pY29uSWQgPyAndmFyKC0tY29sb3ItdGV4dC0xMCknIDogcG9pbnQuY29sb3IgPz8gc2VyaWVzLnN0eWxlPy5zdHJva2UgPz8gc2VyaWVzLmNvbG9yXCI+PC9zdmc6bGluZT5cbiAgICAgIDwvc3ZnOmc+XG4gICAgfVxuICB9XG59XG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stc2VyaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIvc2VyaWVzL2Jsb2NrLXNlcmllcy9ibG9jay1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvYmxvY2stc2VyaWVzL2Jsb2NrLXNlcmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxHQUVYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBWTVDLE1BQU0sT0FBTyxvQkFDWCxTQUFRLG1CQUFzQjtJQVU5QixZQUNxQixHQUFpQixFQUNqQixHQUFzQixFQUN0QixZQUEwQixFQUMxQixXQUF3QixFQUN4QixPQUFtQjtRQUV0QyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTmpDLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7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cG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2VyaWVzQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2Uvc2VyaWVzLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VQb2ludCB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2Jhc2UtcG9pbnQnO1xuaW1wb3J0IHsgRmlsbFR5cGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lbnVtL2ZpbGwtdHlwZSc7XG5pbXBvcnQgeyBDaGFydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFpvb21TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3ZnOnN2Z1t0ZXRhLWJsb2NrLXNlcmllc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vYmxvY2stc2VyaWVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmxvY2stc2VyaWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQXN5bmNQaXBlLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJsb2NrU2VyaWVzQ29tcG9uZW50PFQgZXh0ZW5kcyBCYXNlUG9pbnQ+XG4gIGV4dGVuZHMgU2VyaWVzQmFzZUNvbXBvbmVudDxUPlxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICB4OiBPYnNlcnZhYmxlPGFueT47XG4gIHk6IE9ic2VydmFibGU8YW55PjtcbiAgZGlzcGxheVBvaW50czogT2JzZXJ2YWJsZTxCYXNlUG9pbnRbXT47XG4gIGZpbGxUeXBlID0gRmlsbFR5cGU7XG4gIGlkOiBzdHJpbmc7XG4gIE1hdGggPSBNYXRoO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzdmM6IENoYXJ0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2NhbGVTZXJ2aWNlOiBTY2FsZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcihzdmMsIGNkciwgc2NhbGVTZXJ2aWNlLCB6b29tU2VydmljZSwgZWxlbWVudCk7XG4gICAgdGhpcy5pZCA9IChEYXRlLm5vdygpICsgTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMzYpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy54ID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUoXG4gICAgICBtYXAoXyA9PiBfLnguZ2V0KHRoaXMuc2VyaWVzLnhBeGlzSW5kZXgpPy5zY2FsZSlcbiAgICApO1xuICAgIHRoaXMueSA9IHRoaXMuc2NhbGVTZXJ2aWNlLnNjYWxlcy5waXBlKFxuICAgICAgbWFwKF8gPT4gXy55LmdldCh0aGlzLnNlcmllcy55QXhpc0luZGV4KT8uc2NhbGUpXG4gICAgKTtcblxuICAgIHRoaXMuZGlzcGxheVBvaW50cyA9IHRoaXMueS5waXBlKFxuICAgICAgZmlsdGVyKHkgPT4geSksXG4gICAgICBtYXAoeSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcmllcy5kYXRhLmZpbHRlcigocG9pbnQsIGluZGV4LCBhcnIpID0+IHtcbiAgICAgICAgICBjb25zdCBbbWluLCBtYXhdID0geS5kb21haW4oKTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHBvaW50LnkgPj0gbWluIHx8XG4gICAgICAgICAgICAgIHBvaW50LnkxID49IG1pbiB8fFxuICAgICAgICAgICAgICBhcnJbaW5kZXggKyAxXT8ueSA+PSBtaW4gfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4ICsgMV0/LnkxID49IG1pbikgJiZcbiAgICAgICAgICAgIChwb2ludC55IDw9IG1heCB8fFxuICAgICAgICAgICAgICBwb2ludC55MSA8PSBtYXggfHxcbiAgICAgICAgICAgICAgYXJyW2luZGV4IC0gMV0/LnkgPD0gbWF4IHx8XG4gICAgICAgICAgICAgIGFycltpbmRleCAtIDFdPy55MSA8PSBtYXgpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBtb3VzZWVudGVyKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBwb2ludCxcbiAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgfSk7XG4gIH1cblxuICBtb3VzZWxlYXZlKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBudWxsLFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmICh7XG4gIHk6IHkgfCBhc3luYyxcbiAgeDogeCB8IGFzeW5jLFxuICBwb2ludHM6IGRpc3BsYXlQb2ludHMgfCBhc3luY1xufTsgYXMgZGF0YSkge1xuICBAaWYgKHNlcmllcz8uZmlsbFR5cGUgPT09IGZpbGxUeXBlLmdyYWRpZW50KSB7XG4gICAgPHN2ZzpkZWZzPlxuICAgICAgPHN2ZzpsaW5lYXJHcmFkaWVudCBbaWRdPVwiJ2dyYWRpZW50LWZpbGwtJyArIGlkXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeDE9XCIwJVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnkxXT1cImNvbmZpZz8uaW52ZXJ0ZWQgPyAnMCUnIDogJzEwMCUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueDJdPVwiY29uZmlnPy5pbnZlcnRlZCA/ICcxMDAlJyA6ICcwJSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB5Mj1cIjAlXCI+XG4gICAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLnN0eWxlPy5maWxsID8/IHNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjBcIj48L3N2ZzpzdG9wPlxuICAgICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiNSVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cInNlcmllcy5zdHlsZT8uZmlsbCA/PyBzZXJpZXMuY29sb3JcIiBzdG9wLW9wYWNpdHk9XCIwLjFcIj48L3N2ZzpzdG9wPlxuICAgICAgICA8c3ZnOnN0b3Agb2Zmc2V0PVwiMjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC4yXCI+PC9zdmc6c3RvcD5cbiAgICAgICAgPHN2ZzpzdG9wIG9mZnNldD1cIjYwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwic2VyaWVzLnN0eWxlPy5maWxsID8/IHNlcmllcy5jb2xvclwiIHN0b3Atb3BhY2l0eT1cIjAuNVwiPjwvc3ZnOnN0b3A+XG4gICAgICAgIDxzdmc6c3RvcCBvZmZzZXQ9XCIxMDAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJzZXJpZXMuc3R5bGU/LmZpbGwgPz8gc2VyaWVzLmNvbG9yXCIgc3RvcC1vcGFjaXR5PVwiMC45XCI+PC9zdmc6c3RvcD5cbiAgICAgIDwvc3ZnOmxpbmVhckdyYWRpZW50PlxuICAgIDwvc3ZnOmRlZnM+XG4gIH1cbiAgQGlmIChkYXRhLnggJiYgZGF0YS55KSB7XG4gICAgQGZvciAocG9pbnQgb2YgZGF0YS5wb2ludHM7IHRyYWNrIHBvaW50KSB7XG4gICAgICA8c3ZnOmcgKG1vdXNlZW50ZXIpPVwibW91c2VlbnRlcihwb2ludClcIlxuICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlbGVhdmUocG9pbnQpXCI+XG4gICAgICAgIDxzdmc6cmVjdFxuICAgICAgICAgIHg9XCIwXCJcbiAgICAgICAgICBbYXR0ci55XT1cImRhdGEueShwb2ludC55KVwiXG4gICAgICAgICAgW2F0dHIuaGVpZ2h0XT1cIk1hdGguYWJzKGRhdGEueShwb2ludC55MSkgLSBkYXRhLnkocG9pbnQueSkpXCJcbiAgICAgICAgICBbYXR0ci5maWxsXT1cInNlcmllcy5maWxsVHlwZSA9PT0gZmlsbFR5cGUuZ3JhZGllbnQgPyAndXJsKCNncmFkaWVudC1maWxsLScraWQrJyknIDogcG9pbnQuaWNvbklkID8gJ3VybCgjcGF0dGVybicrcG9pbnQuaWNvbklkKycpJyA6IHBvaW50LmNvbG9yID8/IHNlcmllcy5zdHlsZT8uZmlsbCA/PyBzZXJpZXMuY29sb3JcIlxuICAgICAgICAgIFthdHRyLmZpbGwtb3BhY2l0eV09XCJzZXJpZXMuc3R5bGU/LmZpbGxPcGFjaXR5XCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIj5cbiAgICAgICAgPC9zdmc6cmVjdD5cbiAgICAgICAgQGlmIChwb2ludC50ZXh0ICYmIGRhdGEueShwb2ludC55MSkgLSBkYXRhLnkocG9pbnQueSkgPiA4KSB7XG4gICAgICAgICAgPHN2Zzp0ZXh0IHg9XCI1MCVcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci55XT1cIihkYXRhLnkocG9pbnQueTEpICsgZGF0YS55KHBvaW50LnkpKSAvIDJcIlxuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQtYmFzZWxpbmU9XCJtaWRkbGVcIlxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiPnt7IHBvaW50LnRleHQgfX1cbiAgICAgICAgICA8L3N2Zzp0ZXh0PlxuICAgICAgICB9XG4gICAgICAgIDxzdmc6bGluZSB4MT1cIjBcIiB4Mj1cIjEwMCVcIiBbYXR0ci55MV09XCJkYXRhLnkocG9pbnQueSlcIiBbYXR0ci55Ml09XCJkYXRhLnkocG9pbnQueSlcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInBvaW50Lmljb25JZCA/ICd2YXIoLS1jb2xvci10ZXh0LTEwKScgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuc3R5bGU/LnN0cm9rZSA/PyBzZXJpZXMuY29sb3JcIj48L3N2ZzpsaW5lPlxuICAgICAgICA8c3ZnOmxpbmUgeDE9XCIwXCIgeDI9XCIxMDAlXCIgW2F0dHIueTFdPVwiZGF0YS55KHBvaW50LnkxKVwiIFthdHRyLnkyXT1cImRhdGEueShwb2ludC55MSlcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInBvaW50Lmljb25JZCA/ICd2YXIoLS1jb2xvci10ZXh0LTEwKScgOiBwb2ludC5jb2xvciA/PyBzZXJpZXMuc3R5bGU/LnN0cm9rZSA/PyBzZXJpZXMuY29sb3JcIj48L3N2ZzpsaW5lPlxuICAgICAgPC9zdmc6Zz5cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -86,13 +86,13 @@ export class LineSeriesComponent extends LinearSeriesBase {
86
86
  label.dy = this.labelStart.dy + event.deltaY;
87
87
  }
88
88
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: LineSeriesComponent, deps: [{ token: i1.ChartService }, { token: i0.ChangeDetectorRef }, { token: i2.ScaleService }, { token: i3.ZoomService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
89
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: LineSeriesComponent, isStandalone: true, selector: "svg:svg[teta-line-series]", usesInheritance: true, ngImport: i0, template: "<svg:path\n class=\"line\"\n [attr.d]=\"path | async\"\n [attr.stroke]=\"series.color\"\n [attr.stroke-dasharray]=\"series.style?.strokeDasharray\"\n [attr.stroke-width]=\"series.style?.strokeWidth\"\n fill=\"none\">\n</svg:path>\n@if (transform | async; as t) {\n @if (t?.x != null && t?.y != null) {\n <svg:circle r=\"3\"\n [attr.fill]=\"series.color\"\n [attr.transform]=\"'translate('+ t.x +', '+ t.y +')'\">\n </svg:circle>\n }\n}\n@if (markers; as draggablePoints) {\n @if (x && y) {\n @for (point of draggablePoints; track $index) {\n <svg:g\n [attr.transform]=\"'translate(' + x(point.x) + ',' + y(point.y) + ')'\">\n <svg:g [tetaDraggablePoint]=\"point.marker.draggable\"\n [dragDirection]=\"point.marker.dragType\"\n [allowDrag]=\"allowDrag(point)\"\n #dragPoint=\"tetaDraggablePoint\"\n (moveStart)=\"moveStart($event, point)\"\n (moveEnd)=\"moveEnd($event, point);dragPoint.resetTransform();\"\n (moveProcess)=\"moveProcess($event, point);dragPoint.resetTransform();\"\n [class.draggable-marker]=\"point?.marker?.draggable\">\n <svg:circle\n class=\"marker\"\n [attr.r]=\"point.marker.style?.radius ?? 5\"\n [attr.fill]=\"point.marker.style?.fill ?? 'transparent'\"\n [attr.stroke]=\"point.marker.style?.stroke ?? 'none'\"\n [attr.stroke-width]=\"point.marker.style?.strokeWidth\"\n [attr.stroke-dasharray]=\"point.marker.style?.strokeDasharray\"\n [attr.cx]=\"0\"\n [attr.cy]=\"0\">\n </svg:circle>\n @if (point.marker.label?.text) {\n <svg:line\n [attr.x1]=\"0\"\n [attr.y1]=\"0\"\n [attr.x2]=\"point.marker.label?.dx\"\n [attr.y2]=\"point.marker.label?.dy\"\n [attr.stroke]=\"point.marker.label?.style?.stroke ?? 'var(--color-text-90)'\"\n [attr.stroke-width]=\"point.marker.label?.style?.strokeWidth ?? 1\"\n [attr.stroke-dasharray]=\"point.marker.label?.style?.strokeDasharray ?? null\">\n </svg:line>\n <svg:foreignObject\n [tetaDraggablePoint]=\"point.marker.label?.draggable\"\n [dragDirection]=\"point.marker.label.dragType\"\n #labelPoint=\"tetaDraggablePoint\"\n (moveStart)=\"startLabel($event, point.marker.label)\"\n (moveProcess)=\"moveLabel($event, point.marker.label); labelPoint.resetTransform();\"\n (moveEnd)=\"labelPoint.resetTransform();\"\n [attr.width]=\"annotationNode?.offsetWidth ?? 0\"\n [attr.height]=\"annotationNode?.offsetHeight ?? 0\"\n [attr.x]=\"point.marker.label?.dx\"\n [attr.y]=\"point.marker.label?.dy\"\n class=\"position-absolute\">\n <div\n #annotationNode\n class=\"shadow-2 padding-2\"\n [style.color]=\"'var(--color-text-90)'\"\n [style.background-color]=\"'var(--color-global-bgcard)'\"\n [style.cursor]=\"'move'\"\n style=\"border-radius: 2px; display: inline-block;\">\n {{ point.marker.label?.text }}\n </div>\n </svg:foreignObject>\n }\n </svg:g>\n </svg:g>\n }\n }\n}\n", styles: [".draggable-marker{cursor:move}.active{stroke-opacity:.5}.marker-grab{opacity:0}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: DraggablePointDirective, selector: "[tetaDraggablePoint]", inputs: ["tetaDraggablePoint", "dragDirection", "allowDrag"], outputs: ["moveStart", "moveProcess", "moveEnd"], exportAs: ["tetaDraggablePoint"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
89
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: LineSeriesComponent, isStandalone: true, selector: "svg:svg[teta-line-series]", usesInheritance: true, ngImport: i0, template: "<svg:path\n class=\"line\"\n [attr.d]=\"path | async\"\n [attr.stroke]=\"series.color\"\n [attr.stroke-dasharray]=\"series.style?.strokeDasharray\"\n [attr.stroke-width]=\"series.style?.strokeWidth\"\n fill=\"none\">\n</svg:path>\n@if (transform | async; as t) {\n @if (t?.x != null && t?.y != null) {\n <svg:circle r=\"3\"\n [attr.fill]=\"series.color\"\n [attr.transform]=\"'translate('+ t.x +', '+ t.y +')'\">\n </svg:circle>\n }\n}\n@if (markers; as draggablePoints) {\n @if (x && y) {\n @for (point of draggablePoints; track point) {\n <svg:g\n [attr.transform]=\"'translate(' + x(point.x) + ',' + y(point.y) + ')'\">\n <svg:g [tetaDraggablePoint]=\"point.marker.draggable\"\n [dragDirection]=\"point.marker.dragType\"\n [allowDrag]=\"allowDrag(point)\"\n #dragPoint=\"tetaDraggablePoint\"\n (moveStart)=\"moveStart($event, point)\"\n (moveEnd)=\"moveEnd($event, point);dragPoint.resetTransform();\"\n (moveProcess)=\"moveProcess($event, point);dragPoint.resetTransform();\"\n [class.draggable-marker]=\"point?.marker?.draggable\">\n <svg:circle\n class=\"marker\"\n [attr.r]=\"point.marker.style?.radius ?? 5\"\n [attr.fill]=\"point.marker.style?.fill ?? 'transparent'\"\n [attr.stroke]=\"point.marker.style?.stroke ?? 'none'\"\n [attr.stroke-width]=\"point.marker.style?.strokeWidth\"\n [attr.stroke-dasharray]=\"point.marker.style?.strokeDasharray\"\n [attr.cx]=\"0\"\n [attr.cy]=\"0\">\n </svg:circle>\n @if (point.marker.label?.text) {\n <svg:line\n [attr.x1]=\"0\"\n [attr.y1]=\"0\"\n [attr.x2]=\"point.marker.label?.dx\"\n [attr.y2]=\"point.marker.label?.dy\"\n [attr.stroke]=\"point.marker.label?.style?.stroke ?? 'var(--color-text-90)'\"\n [attr.stroke-width]=\"point.marker.label?.style?.strokeWidth ?? 1\"\n [attr.stroke-dasharray]=\"point.marker.label?.style?.strokeDasharray ?? null\">\n </svg:line>\n <svg:foreignObject\n [tetaDraggablePoint]=\"point.marker.label?.draggable\"\n [dragDirection]=\"point.marker.label.dragType\"\n #labelPoint=\"tetaDraggablePoint\"\n (moveStart)=\"startLabel($event, point.marker.label)\"\n (moveProcess)=\"moveLabel($event, point.marker.label); labelPoint.resetTransform();\"\n (moveEnd)=\"labelPoint.resetTransform();\"\n [attr.width]=\"annotationNode?.offsetWidth ?? 0\"\n [attr.height]=\"annotationNode?.offsetHeight ?? 0\"\n [attr.x]=\"point.marker.label?.dx\"\n [attr.y]=\"point.marker.label?.dy\"\n class=\"position-absolute\">\n <div\n #annotationNode\n class=\"shadow-2 padding-2\"\n [style.color]=\"'var(--color-text-90)'\"\n [style.background-color]=\"'var(--color-global-bgcard)'\"\n [style.cursor]=\"'move'\"\n style=\"border-radius: 2px; display: inline-block;\">\n {{ point.marker.label?.text }}\n </div>\n </svg:foreignObject>\n }\n </svg:g>\n </svg:g>\n }\n }\n}\n", styles: [".draggable-marker{cursor:move}.active{stroke-opacity:.5}.marker-grab{opacity:0}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: DraggablePointDirective, selector: "[tetaDraggablePoint]", inputs: ["tetaDraggablePoint", "dragDirection", "allowDrag"], outputs: ["moveStart", "moveProcess", "moveEnd"], exportAs: ["tetaDraggablePoint"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
90
90
  }
91
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: LineSeriesComponent, decorators: [{
92
92
  type: Component,
93
93
  args: [{ selector: 'svg:svg[teta-line-series]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
94
94
  AsyncPipe,
95
95
  DraggablePointDirective,
96
- ], template: "<svg:path\n class=\"line\"\n [attr.d]=\"path | async\"\n [attr.stroke]=\"series.color\"\n [attr.stroke-dasharray]=\"series.style?.strokeDasharray\"\n [attr.stroke-width]=\"series.style?.strokeWidth\"\n fill=\"none\">\n</svg:path>\n@if (transform | async; as t) {\n @if (t?.x != null && t?.y != null) {\n <svg:circle r=\"3\"\n [attr.fill]=\"series.color\"\n [attr.transform]=\"'translate('+ t.x +', '+ t.y +')'\">\n </svg:circle>\n }\n}\n@if (markers; as draggablePoints) {\n @if (x && y) {\n @for (point of draggablePoints; track $index) {\n <svg:g\n [attr.transform]=\"'translate(' + x(point.x) + ',' + y(point.y) + ')'\">\n <svg:g [tetaDraggablePoint]=\"point.marker.draggable\"\n [dragDirection]=\"point.marker.dragType\"\n [allowDrag]=\"allowDrag(point)\"\n #dragPoint=\"tetaDraggablePoint\"\n (moveStart)=\"moveStart($event, point)\"\n (moveEnd)=\"moveEnd($event, point);dragPoint.resetTransform();\"\n (moveProcess)=\"moveProcess($event, point);dragPoint.resetTransform();\"\n [class.draggable-marker]=\"point?.marker?.draggable\">\n <svg:circle\n class=\"marker\"\n [attr.r]=\"point.marker.style?.radius ?? 5\"\n [attr.fill]=\"point.marker.style?.fill ?? 'transparent'\"\n [attr.stroke]=\"point.marker.style?.stroke ?? 'none'\"\n [attr.stroke-width]=\"point.marker.style?.strokeWidth\"\n [attr.stroke-dasharray]=\"point.marker.style?.strokeDasharray\"\n [attr.cx]=\"0\"\n [attr.cy]=\"0\">\n </svg:circle>\n @if (point.marker.label?.text) {\n <svg:line\n [attr.x1]=\"0\"\n [attr.y1]=\"0\"\n [attr.x2]=\"point.marker.label?.dx\"\n [attr.y2]=\"point.marker.label?.dy\"\n [attr.stroke]=\"point.marker.label?.style?.stroke ?? 'var(--color-text-90)'\"\n [attr.stroke-width]=\"point.marker.label?.style?.strokeWidth ?? 1\"\n [attr.stroke-dasharray]=\"point.marker.label?.style?.strokeDasharray ?? null\">\n </svg:line>\n <svg:foreignObject\n [tetaDraggablePoint]=\"point.marker.label?.draggable\"\n [dragDirection]=\"point.marker.label.dragType\"\n #labelPoint=\"tetaDraggablePoint\"\n (moveStart)=\"startLabel($event, point.marker.label)\"\n (moveProcess)=\"moveLabel($event, point.marker.label); labelPoint.resetTransform();\"\n (moveEnd)=\"labelPoint.resetTransform();\"\n [attr.width]=\"annotationNode?.offsetWidth ?? 0\"\n [attr.height]=\"annotationNode?.offsetHeight ?? 0\"\n [attr.x]=\"point.marker.label?.dx\"\n [attr.y]=\"point.marker.label?.dy\"\n class=\"position-absolute\">\n <div\n #annotationNode\n class=\"shadow-2 padding-2\"\n [style.color]=\"'var(--color-text-90)'\"\n [style.background-color]=\"'var(--color-global-bgcard)'\"\n [style.cursor]=\"'move'\"\n style=\"border-radius: 2px; display: inline-block;\">\n {{ point.marker.label?.text }}\n </div>\n </svg:foreignObject>\n }\n </svg:g>\n </svg:g>\n }\n }\n}\n", styles: [".draggable-marker{cursor:move}.active{stroke-opacity:.5}.marker-grab{opacity:0}\n"] }]
96
+ ], template: "<svg:path\n class=\"line\"\n [attr.d]=\"path | async\"\n [attr.stroke]=\"series.color\"\n [attr.stroke-dasharray]=\"series.style?.strokeDasharray\"\n [attr.stroke-width]=\"series.style?.strokeWidth\"\n fill=\"none\">\n</svg:path>\n@if (transform | async; as t) {\n @if (t?.x != null && t?.y != null) {\n <svg:circle r=\"3\"\n [attr.fill]=\"series.color\"\n [attr.transform]=\"'translate('+ t.x +', '+ t.y +')'\">\n </svg:circle>\n }\n}\n@if (markers; as draggablePoints) {\n @if (x && y) {\n @for (point of draggablePoints; track point) {\n <svg:g\n [attr.transform]=\"'translate(' + x(point.x) + ',' + y(point.y) + ')'\">\n <svg:g [tetaDraggablePoint]=\"point.marker.draggable\"\n [dragDirection]=\"point.marker.dragType\"\n [allowDrag]=\"allowDrag(point)\"\n #dragPoint=\"tetaDraggablePoint\"\n (moveStart)=\"moveStart($event, point)\"\n (moveEnd)=\"moveEnd($event, point);dragPoint.resetTransform();\"\n (moveProcess)=\"moveProcess($event, point);dragPoint.resetTransform();\"\n [class.draggable-marker]=\"point?.marker?.draggable\">\n <svg:circle\n class=\"marker\"\n [attr.r]=\"point.marker.style?.radius ?? 5\"\n [attr.fill]=\"point.marker.style?.fill ?? 'transparent'\"\n [attr.stroke]=\"point.marker.style?.stroke ?? 'none'\"\n [attr.stroke-width]=\"point.marker.style?.strokeWidth\"\n [attr.stroke-dasharray]=\"point.marker.style?.strokeDasharray\"\n [attr.cx]=\"0\"\n [attr.cy]=\"0\">\n </svg:circle>\n @if (point.marker.label?.text) {\n <svg:line\n [attr.x1]=\"0\"\n [attr.y1]=\"0\"\n [attr.x2]=\"point.marker.label?.dx\"\n [attr.y2]=\"point.marker.label?.dy\"\n [attr.stroke]=\"point.marker.label?.style?.stroke ?? 'var(--color-text-90)'\"\n [attr.stroke-width]=\"point.marker.label?.style?.strokeWidth ?? 1\"\n [attr.stroke-dasharray]=\"point.marker.label?.style?.strokeDasharray ?? null\">\n </svg:line>\n <svg:foreignObject\n [tetaDraggablePoint]=\"point.marker.label?.draggable\"\n [dragDirection]=\"point.marker.label.dragType\"\n #labelPoint=\"tetaDraggablePoint\"\n (moveStart)=\"startLabel($event, point.marker.label)\"\n (moveProcess)=\"moveLabel($event, point.marker.label); labelPoint.resetTransform();\"\n (moveEnd)=\"labelPoint.resetTransform();\"\n [attr.width]=\"annotationNode?.offsetWidth ?? 0\"\n [attr.height]=\"annotationNode?.offsetHeight ?? 0\"\n [attr.x]=\"point.marker.label?.dx\"\n [attr.y]=\"point.marker.label?.dy\"\n class=\"position-absolute\">\n <div\n #annotationNode\n class=\"shadow-2 padding-2\"\n [style.color]=\"'var(--color-text-90)'\"\n [style.background-color]=\"'var(--color-global-bgcard)'\"\n [style.cursor]=\"'move'\"\n style=\"border-radius: 2px; display: inline-block;\">\n {{ point.marker.label?.text }}\n </div>\n </svg:foreignObject>\n }\n </svg:g>\n </svg:g>\n }\n }\n}\n", styles: [".draggable-marker{cursor:move}.active{stroke-opacity:.5}.marker-grab{opacity:0}\n"] }]
97
97
  }], ctorParameters: () => [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }] });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvbGluZS9saW5lLXNlcmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3Nlcmllcy9saW5lL2xpbmUtc2VyaWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEdBR1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBRTVELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7OztBQWF4RixNQUFNLE9BQU8sbUJBQ1gsU0FBUSxnQkFBbUI7SUFHM0IsWUFDcUIsR0FBaUIsRUFDakIsR0FBc0IsRUFDdEIsWUFBMEIsRUFDMUIsV0FBd0IsRUFDeEIsT0FBbUI7UUFFdEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQU5qQyxRQUFHLEdBQUgsR0FBRyxDQUFjO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFlBQU8sR0FB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RSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUs7UUFDcEIsS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzdDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMvQyxDQUFDOzhHQTlEVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw0R0MzQmhDLHkzR0E2RUEsc0lEdERJLFNBQVMsOENBQ1QsdUJBQXVCOzsyRkFHZCxtQkFBbUI7a0JBWC9CLFNBQVM7K0JBQ0UsMkJBQTJCLGNBR3pCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxTQUFTO3dCQUNULHVCQUF1QjtxQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDaGFydFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvYmFzZS1wb2ludCc7XG5pbXBvcnQge1NjYWxlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvem9vbS5zZXJ2aWNlJztcbmltcG9ydCB7TGluZWFyU2VyaWVzQmFzZX0gZnJvbSAnLi4vbGluZWFyLXNlcmllcy1iYXNlJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEcmFnZ2FibGVQb2ludERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvZHJhZ2dhYmxlLXBvaW50LmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N2ZzpzdmdbdGV0YS1saW5lLXNlcmllc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vbGluZS1zZXJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saW5lLXNlcmllcy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIEFzeW5jUGlwZSxcbiAgICBEcmFnZ2FibGVQb2ludERpcmVjdGl2ZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBMaW5lU2VyaWVzQ29tcG9uZW50PFQgZXh0ZW5kcyBCYXNlUG9pbnQ+XG4gIGV4dGVuZHMgTGluZWFyU2VyaWVzQmFzZTxUPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc3ZjOiBDaGFydFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNjYWxlU2VydmljZTogU2NhbGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB6b29tU2VydmljZTogWm9vbVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICkge1xuICAgIHN1cGVyKHN2YywgY2RyLCBzY2FsZVNlcnZpY2UsIHpvb21TZXJ2aWNlLCBlbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnQ6IHsgeDogbnVtYmVyLCB5OiBudW1iZXIgfTtcbiAgcHJpdmF0ZSBsYWJlbFN0YXJ0OiB7IGR4OiBudW1iZXIsIGR5OiBudW1iZXIgfTtcblxuICBtb3ZlU3RhcnQoZXZlbnQsIHBvaW50KSB7XG4gICAgdGhpcy5zdGFydCA9IHt4OiBwb2ludC54LCB5OiBwb2ludC55fTtcbiAgfVxuXG4gIG1vdmVFbmQoZXZlbnQsIHBvaW50KSB7XG4gICAgcG9pbnQueCA9IHRoaXMueC5pbnZlcnQodGhpcy54KHRoaXMuc3RhcnQueCkgKyBldmVudC5kZWx0YVgpO1xuICAgIHBvaW50LnkgPSB0aGlzLnkuaW52ZXJ0KHRoaXMueSh0aGlzLnN0YXJ0LnkpICsgZXZlbnQuZGVsdGFZKTtcbiAgICB0aGlzLl91cGRhdGUubmV4dCgpO1xuICAgIGNvbnN0IGVtaXRFdmVudCA9IHtcbiAgICAgIHR5cGU6ICdlbmQnLFxuICAgICAgc291cmNlRXZlbnQ6IGV2ZW50XG4gICAgfTtcbiAgICB0aGlzLnN2Yy5lbWl0UG9pbnQoe1xuICAgICAgdGFyZ2V0OiB7XG4gICAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgICAgIHBvaW50OiBwb2ludCxcbiAgICAgIH0sXG4gICAgICBldmVudDogZW1pdEV2ZW50LFxuICAgIH0pO1xuICB9XG5cbiAgbW92ZVByb2Nlc3MoZXZlbnQsIHBvaW50KSB7XG4gICAgcG9pbnQueCA9IHRoaXMueC5pbnZlcnQodGhpcy54KHRoaXMuc3RhcnQueCkgKyBldmVudC5kZWx0YVgpO1xuICAgIHBvaW50LnkgPSB0aGlzLnkuaW52ZXJ0KHRoaXMueSh0aGlzLnN0YXJ0LnkpICsgZXZlbnQuZGVsdGFZKTtcbiAgICB0aGlzLl91cGRhdGUubmV4dCgpO1xuICAgIGNvbnN0IGVtaXRFdmVudCA9IHtcbiAgICAgIHR5cGU6ICdkcmFnJyxcbiAgICAgIHNvdXJjZUV2ZW50OiBldmVudFxuICAgIH07XG4gICAgdGhpcy5zdmMuZW1pdFBvaW50KHtcbiAgICAgIHRhcmdldDoge1xuICAgICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgICAgICBwb2ludDogcG9pbnQsXG4gICAgICB9LFxuICAgICAgZXZlbnQ6IGVtaXRFdmVudCxcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXJ0TGFiZWwoZXZlbnQsIGxhYmVsKSB7XG4gICAgdGhpcy5sYWJlbFN0YXJ0ID0ge2R4OiBsYWJlbC5keCwgZHk6IGxhYmVsLmR5fTtcbiAgfVxuXG4gIG1vdmVMYWJlbChldmVudCwgbGFiZWwpIHtcbiAgICBsYWJlbC5keCA9IHRoaXMubGFiZWxTdGFydC5keCArIGV2ZW50LmRlbHRhWDtcbiAgICBsYWJlbC5keSA9IHRoaXMubGFiZWxTdGFydC5keSArIGV2ZW50LmRlbHRhWTtcbiAgfVxuXG4gIGFsbG93RHJhZyA9IChwb2ludDogQmFzZVBvaW50KSA9PiB7XG4gICAgcmV0dXJuIChuZXdQb2ludCkgPT4ge1xuICAgICAgaWYgKHBvaW50Lm1hcmtlci5taW5YICE9PSBudWxsICYmIHBvaW50Lm1hcmtlci5taW5YICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHRoaXMueC5pbnZlcnQodGhpcy54KHRoaXMuc3RhcnQueCkgKyBuZXdQb2ludC5kZWx0YVgpIDwgcG9pbnQubWFya2VyLm1pblgpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwb2ludC5tYXJrZXIubWF4WCAhPT0gbnVsbCAmJiBwb2ludC5tYXJrZXIubWF4WCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0aGlzLnguaW52ZXJ0KHRoaXMueCh0aGlzLnN0YXJ0LngpICsgbmV3UG9pbnQuZGVsdGFYKSA+IHBvaW50Lm1hcmtlci5tYXhYKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocG9pbnQubWFya2VyLm1pblkgIT09IG51bGwgJiYgcG9pbnQubWFya2VyLm1pblkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodGhpcy55LmludmVydCh0aGlzLnkodGhpcy5zdGFydC55KSArIG5ld1BvaW50LmRlbHRhWSkgPCBwb2ludC5tYXJrZXIubWluWSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHBvaW50Lm1hcmtlci5tYXhZICE9PSBudWxsICYmIHBvaW50Lm1hcmtlci5tYXhZICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHRoaXMueS5pbnZlcnQodGhpcy55KHRoaXMuc3RhcnQueSkgKyBuZXdQb2ludC5kZWx0YVkpID4gcG9pbnQubWFya2VyLm1heFkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG4gIH07XG59XG4iLCI8c3ZnOnBhdGhcbiAgY2xhc3M9XCJsaW5lXCJcbiAgW2F0dHIuZF09XCJwYXRoIHwgYXN5bmNcIlxuICBbYXR0ci5zdHJva2VdPVwic2VyaWVzLmNvbG9yXCJcbiAgW2F0dHIuc3Ryb2tlLWRhc2hhcnJheV09XCJzZXJpZXMuc3R5bGU/LnN0cm9rZURhc2hhcnJheVwiXG4gIFthdHRyLnN0cm9rZS13aWR0aF09XCJzZXJpZXMuc3R5bGU/LnN0cm9rZVdpZHRoXCJcbiAgZmlsbD1cIm5vbmVcIj5cbjwvc3ZnOnBhdGg+XG5AaWYgKHRyYW5zZm9ybSB8IGFzeW5jOyBhcyB0KSB7XG4gIEBpZiAodD8ueCAhPSBudWxsICYmIHQ/LnkgIT0gbnVsbCkge1xuICAgIDxzdmc6Y2lyY2xlIHI9XCIzXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5maWxsXT1cInNlcmllcy5jb2xvclwiXG4gICAgICAgICAgICAgICAgW2F0dHIudHJhbnNmb3JtXT1cIid0cmFuc2xhdGUoJysgdC54ICsnLCAnKyB0LnkgKycpJ1wiPlxuICAgIDwvc3ZnOmNpcmNsZT5cbiAgfVxufVxuQGlmIChtYXJrZXJzOyBhcyBkcmFnZ2FibGVQb2ludHMpIHtcbiAgQGlmICh4ICYmIHkpIHtcbiAgICBAZm9yIChwb2ludCBvZiBkcmFnZ2FibGVQb2ludHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPHN2ZzpnXG4gICAgICAgIFthdHRyLnRyYW5zZm9ybV09XCIndHJhbnNsYXRlKCcgKyB4KHBvaW50LngpICsgJywnICsgeShwb2ludC55KSArICcpJ1wiPlxuICAgICAgICA8c3ZnOmcgW3RldGFEcmFnZ2FibGVQb2ludF09XCJwb2ludC5tYXJrZXIuZHJhZ2dhYmxlXCJcbiAgICAgICAgICAgICAgIFtkcmFnRGlyZWN0aW9uXT1cInBvaW50Lm1hcmtlci5kcmFnVHlwZVwiXG4gICAgICAgICAgICAgICBbYWxsb3dEcmFnXT1cImFsbG93RHJhZyhwb2ludClcIlxuICAgICAgICAgICAgICAgI2RyYWdQb2ludD1cInRldGFEcmFnZ2FibGVQb2ludFwiXG4gICAgICAgICAgICAgICAobW92ZVN0YXJ0KT1cIm1vdmVTdGFydCgkZXZlbnQsIHBvaW50KVwiXG4gICAgICAgICAgICAgICAobW92ZUVuZCk9XCJtb3ZlRW5kKCRldmVudCwgcG9pbnQpO2RyYWdQb2ludC5yZXNldFRyYW5zZm9ybSgpO1wiXG4gICAgICAgICAgICAgICAobW92ZVByb2Nlc3MpPVwibW92ZVByb2Nlc3MoJGV2ZW50LCBwb2ludCk7ZHJhZ1BvaW50LnJlc2V0VHJhbnNmb3JtKCk7XCJcbiAgICAgICAgICAgICAgIFtjbGFzcy5kcmFnZ2FibGUtbWFya2VyXT1cInBvaW50Py5tYXJrZXI/LmRyYWdnYWJsZVwiPlxuICAgICAgICAgIDxzdmc6Y2lyY2xlXG4gICAgICAgICAgICBjbGFzcz1cIm1hcmtlclwiXG4gICAgICAgICAgICBbYXR0ci5yXT1cInBvaW50Lm1hcmtlci5zdHlsZT8ucmFkaXVzID8/IDVcIlxuICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJwb2ludC5tYXJrZXIuc3R5bGU/LmZpbGwgPz8gJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwicG9pbnQubWFya2VyLnN0eWxlPy5zdHJva2UgPz8gJ25vbmUnXCJcbiAgICAgICAgICAgIFthdHRyLnN0cm9rZS13aWR0aF09XCJwb2ludC5tYXJrZXIuc3R5bGU/LnN0cm9rZVdpZHRoXCJcbiAgICAgICAgICAgIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwicG9pbnQubWFya2VyLnN0eWxlPy5zdHJva2VEYXNoYXJyYXlcIlxuICAgICAgICAgICAgW2F0dHIuY3hdPVwiMFwiXG4gICAgICAgICAgICBbYXR0ci5jeV09XCIwXCI+XG4gICAgICAgICAgPC9zdmc6Y2lyY2xlPlxuICAgICAgICAgIEBpZiAocG9pbnQubWFya2VyLmxhYmVsPy50ZXh0KSB7XG4gICAgICAgICAgICA8c3ZnOmxpbmVcbiAgICAgICAgICAgICAgW2F0dHIueDFdPVwiMFwiXG4gICAgICAgICAgICAgIFthdHRyLnkxXT1cIjBcIlxuICAgICAgICAgICAgICBbYXR0ci54Ml09XCJwb2ludC5tYXJrZXIubGFiZWw/LmR4XCJcbiAgICAgICAgICAgICAgW2F0dHIueTJdPVwicG9pbnQubWFya2VyLmxhYmVsPy5keVwiXG4gICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJwb2ludC5tYXJrZXIubGFiZWw/LnN0eWxlPy5zdHJva2UgPz8gJ3ZhcigtLWNvbG9yLXRleHQtOTApJ1wiXG4gICAgICAgICAgICAgIFthdHRyLnN0cm9rZS13aWR0aF09XCJwb2ludC5tYXJrZXIubGFiZWw/LnN0eWxlPy5zdHJva2VXaWR0aCA/PyAxXCJcbiAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlLWRhc2hhcnJheV09XCJwb2ludC5tYXJrZXIubGFiZWw/LnN0eWxlPy5zdHJva2VEYXNoYXJyYXkgPz8gbnVsbFwiPlxuICAgICAgICAgICAgPC9zdmc6bGluZT5cbiAgICAgICAgICAgIDxzdmc6Zm9yZWlnbk9iamVjdFxuICAgICAgICAgICAgICBbdGV0YURyYWdnYWJsZVBvaW50XT1cInBvaW50Lm1hcmtlci5sYWJlbD8uZHJhZ2dhYmxlXCJcbiAgICAgICAgICAgICAgW2RyYWdEaXJlY3Rpb25dPVwicG9pbnQubWFya2VyLmxhYmVsLmRyYWdUeXBlXCJcbiAgICAgICAgICAgICAgI2xhYmVsUG9pbnQ9XCJ0ZXRhRHJhZ2dhYmxlUG9pbnRcIlxuICAgICAgICAgICAgICAobW92ZVN0YXJ0KT1cInN0YXJ0TGFiZWwoJGV2ZW50LCBwb2ludC5tYXJrZXIubGFiZWwpXCJcbiAgICAgICAgICAgICAgKG1vdmVQcm9jZXNzKT1cIm1vdmVMYWJlbCgkZXZlbnQsIHBvaW50Lm1hcmtlci5sYWJlbCk7IGxhYmVsUG9pbnQucmVzZXRUcmFuc2Zvcm0oKTtcIlxuICAgICAgICAgICAgICAobW92ZUVuZCk9XCJsYWJlbFBvaW50LnJlc2V0VHJhbnNmb3JtKCk7XCJcbiAgICAgICAgICAgICAgW2F0dHIud2lkdGhdPVwiYW5ub3RhdGlvbk5vZGU/Lm9mZnNldFdpZHRoID8/IDBcIlxuICAgICAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwiYW5ub3RhdGlvbk5vZGU/Lm9mZnNldEhlaWdodCA/PyAwXCJcbiAgICAgICAgICAgICAgW2F0dHIueF09XCJwb2ludC5tYXJrZXIubGFiZWw/LmR4XCJcbiAgICAgICAgICAgICAgW2F0dHIueV09XCJwb2ludC5tYXJrZXIubGFiZWw/LmR5XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZVwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgI2Fubm90YXRpb25Ob2RlXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzaGFkb3ctMiBwYWRkaW5nLTJcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCIndmFyKC0tY29sb3ItdGV4dC05MCknXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCIndmFyKC0tY29sb3ItZ2xvYmFsLWJnY2FyZCknXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuY3Vyc29yXT1cIidtb3ZlJ1wiXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJib3JkZXItcmFkaXVzOiAycHg7IGRpc3BsYXk6IGlubGluZS1ibG9jaztcIj5cbiAgICAgICAgICAgICAgICB7eyBwb2ludC5tYXJrZXIubGFiZWw/LnRleHQgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3N2Zzpmb3JlaWduT2JqZWN0PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zdmc6Zz5cbiAgICAgIDwvc3ZnOmc+XG4gICAgfVxuICB9XG59XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvbGluZS9saW5lLXNlcmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3Nlcmllcy9saW5lL2xpbmUtc2VyaWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEdBR1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBRTVELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7OztBQWF4RixNQUFNLE9BQU8sbUJBQ1gsU0FBUSxnQkFBbUI7SUFHM0IsWUFDcUIsR0FBaUIsRUFDakIsR0FBc0IsRUFDdEIsWUFBMEIsRUFDMUIsV0FBd0IsRUFDeEIsT0FBbUI7UUFFdEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQU5qQyxRQUFHLEdBQUgsR0FBRyxDQUFjO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFlBQU8sR0FB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RSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUs7UUFDcEIsS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzdDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMvQyxDQUFDOzhHQTlEVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw0R0MzQmhDLHczR0E2RUEsc0lEdERJLFNBQVMsOENBQ1QsdUJBQXVCOzsyRkFHZCxtQkFBbUI7a0JBWC9CLFNBQVM7K0JBQ0UsMkJBQTJCLGNBR3pCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxTQUFTO3dCQUNULHVCQUF1QjtxQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDaGFydFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvYmFzZS1wb2ludCc7XG5pbXBvcnQge1NjYWxlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvem9vbS5zZXJ2aWNlJztcbmltcG9ydCB7TGluZWFyU2VyaWVzQmFzZX0gZnJvbSAnLi4vbGluZWFyLXNlcmllcy1iYXNlJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEcmFnZ2FibGVQb2ludERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvZHJhZ2dhYmxlLXBvaW50LmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N2ZzpzdmdbdGV0YS1saW5lLXNlcmllc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vbGluZS1zZXJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saW5lLXNlcmllcy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIEFzeW5jUGlwZSxcbiAgICBEcmFnZ2FibGVQb2ludERpcmVjdGl2ZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBMaW5lU2VyaWVzQ29tcG9uZW50PFQgZXh0ZW5kcyBCYXNlUG9pbnQ+XG4gIGV4dGVuZHMgTGluZWFyU2VyaWVzQmFzZTxUPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc3ZjOiBDaGFydFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNjYWxlU2VydmljZTogU2NhbGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB6b29tU2VydmljZTogWm9vbVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICkge1xuICAgIHN1cGVyKHN2YywgY2RyLCBzY2FsZVNlcnZpY2UsIHpvb21TZXJ2aWNlLCBlbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnQ6IHsgeDogbnVtYmVyLCB5OiBudW1iZXIgfTtcbiAgcHJpdmF0ZSBsYWJlbFN0YXJ0OiB7IGR4OiBudW1iZXIsIGR5OiBudW1iZXIgfTtcblxuICBtb3ZlU3RhcnQoZXZlbnQsIHBvaW50KSB7XG4gICAgdGhpcy5zdGFydCA9IHt4OiBwb2ludC54LCB5OiBwb2ludC55fTtcbiAgfVxuXG4gIG1vdmVFbmQoZXZlbnQsIHBvaW50KSB7XG4gICAgcG9pbnQueCA9IHRoaXMueC5pbnZlcnQodGhpcy54KHRoaXMuc3RhcnQueCkgKyBldmVudC5kZWx0YVgpO1xuICAgIHBvaW50LnkgPSB0aGlzLnkuaW52ZXJ0KHRoaXMueSh0aGlzLnN0YXJ0LnkpICsgZXZlbnQuZGVsdGFZKTtcbiAgICB0aGlzLl91cGRhdGUubmV4dCgpO1xuICAgIGNvbnN0IGVtaXRFdmVudCA9IHtcbiAgICAgIHR5cGU6ICdlbmQnLFxuICAgICAgc291cmNlRXZlbnQ6IGV2ZW50XG4gICAgfTtcbiAgICB0aGlzLnN2Yy5lbWl0UG9pbnQoe1xuICAgICAgdGFyZ2V0OiB7XG4gICAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgICAgIHBvaW50OiBwb2ludCxcbiAgICAgIH0sXG4gICAgICBldmVudDogZW1pdEV2ZW50LFxuICAgIH0pO1xuICB9XG5cbiAgbW92ZVByb2Nlc3MoZXZlbnQsIHBvaW50KSB7XG4gICAgcG9pbnQueCA9IHRoaXMueC5pbnZlcnQodGhpcy54KHRoaXMuc3RhcnQueCkgKyBldmVudC5kZWx0YVgpO1xuICAgIHBvaW50LnkgPSB0aGlzLnkuaW52ZXJ0KHRoaXMueSh0aGlzLnN0YXJ0LnkpICsgZXZlbnQuZGVsdGFZKTtcbiAgICB0aGlzLl91cGRhdGUubmV4dCgpO1xuICAgIGNvbnN0IGVtaXRFdmVudCA9IHtcbiAgICAgIHR5cGU6ICdkcmFnJyxcbiAgICAgIHNvdXJjZUV2ZW50OiBldmVudFxuICAgIH07XG4gICAgdGhpcy5zdmMuZW1pdFBvaW50KHtcbiAgICAgIHRhcmdldDoge1xuICAgICAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxuICAgICAgICBwb2ludDogcG9pbnQsXG4gICAgICB9LFxuICAgICAgZXZlbnQ6IGVtaXRFdmVudCxcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXJ0TGFiZWwoZXZlbnQsIGxhYmVsKSB7XG4gICAgdGhpcy5sYWJlbFN0YXJ0ID0ge2R4OiBsYWJlbC5keCwgZHk6IGxhYmVsLmR5fTtcbiAgfVxuXG4gIG1vdmVMYWJlbChldmVudCwgbGFiZWwpIHtcbiAgICBsYWJlbC5keCA9IHRoaXMubGFiZWxTdGFydC5keCArIGV2ZW50LmRlbHRhWDtcbiAgICBsYWJlbC5keSA9IHRoaXMubGFiZWxTdGFydC5keSArIGV2ZW50LmRlbHRhWTtcbiAgfVxuXG4gIGFsbG93RHJhZyA9IChwb2ludDogQmFzZVBvaW50KSA9PiB7XG4gICAgcmV0dXJuIChuZXdQb2ludCkgPT4ge1xuICAgICAgaWYgKHBvaW50Lm1hcmtlci5taW5YICE9PSBudWxsICYmIHBvaW50Lm1hcmtlci5taW5YICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHRoaXMueC5pbnZlcnQodGhpcy54KHRoaXMuc3RhcnQueCkgKyBuZXdQb2ludC5kZWx0YVgpIDwgcG9pbnQubWFya2VyLm1pblgpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwb2ludC5tYXJrZXIubWF4WCAhPT0gbnVsbCAmJiBwb2ludC5tYXJrZXIubWF4WCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0aGlzLnguaW52ZXJ0KHRoaXMueCh0aGlzLnN0YXJ0LngpICsgbmV3UG9pbnQuZGVsdGFYKSA+IHBvaW50Lm1hcmtlci5tYXhYKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocG9pbnQubWFya2VyLm1pblkgIT09IG51bGwgJiYgcG9pbnQubWFya2VyLm1pblkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodGhpcy55LmludmVydCh0aGlzLnkodGhpcy5zdGFydC55KSArIG5ld1BvaW50LmRlbHRhWSkgPCBwb2ludC5tYXJrZXIubWluWSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHBvaW50Lm1hcmtlci5tYXhZICE9PSBudWxsICYmIHBvaW50Lm1hcmtlci5tYXhZICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHRoaXMueS5pbnZlcnQodGhpcy55KHRoaXMuc3RhcnQueSkgKyBuZXdQb2ludC5kZWx0YVkpID4gcG9pbnQubWFya2VyLm1heFkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG4gIH07XG59XG4iLCI8c3ZnOnBhdGhcbiAgY2xhc3M9XCJsaW5lXCJcbiAgW2F0dHIuZF09XCJwYXRoIHwgYXN5bmNcIlxuICBbYXR0ci5zdHJva2VdPVwic2VyaWVzLmNvbG9yXCJcbiAgW2F0dHIuc3Ryb2tlLWRhc2hhcnJheV09XCJzZXJpZXMuc3R5bGU/LnN0cm9rZURhc2hhcnJheVwiXG4gIFthdHRyLnN0cm9rZS13aWR0aF09XCJzZXJpZXMuc3R5bGU/LnN0cm9rZVdpZHRoXCJcbiAgZmlsbD1cIm5vbmVcIj5cbjwvc3ZnOnBhdGg+XG5AaWYgKHRyYW5zZm9ybSB8IGFzeW5jOyBhcyB0KSB7XG4gIEBpZiAodD8ueCAhPSBudWxsICYmIHQ/LnkgIT0gbnVsbCkge1xuICAgIDxzdmc6Y2lyY2xlIHI9XCIzXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5maWxsXT1cInNlcmllcy5jb2xvclwiXG4gICAgICAgICAgICAgICAgW2F0dHIudHJhbnNmb3JtXT1cIid0cmFuc2xhdGUoJysgdC54ICsnLCAnKyB0LnkgKycpJ1wiPlxuICAgIDwvc3ZnOmNpcmNsZT5cbiAgfVxufVxuQGlmIChtYXJrZXJzOyBhcyBkcmFnZ2FibGVQb2ludHMpIHtcbiAgQGlmICh4ICYmIHkpIHtcbiAgICBAZm9yIChwb2ludCBvZiBkcmFnZ2FibGVQb2ludHM7IHRyYWNrIHBvaW50KSB7XG4gICAgICA8c3ZnOmdcbiAgICAgICAgW2F0dHIudHJhbnNmb3JtXT1cIid0cmFuc2xhdGUoJyArIHgocG9pbnQueCkgKyAnLCcgKyB5KHBvaW50LnkpICsgJyknXCI+XG4gICAgICAgIDxzdmc6ZyBbdGV0YURyYWdnYWJsZVBvaW50XT1cInBvaW50Lm1hcmtlci5kcmFnZ2FibGVcIlxuICAgICAgICAgICAgICAgW2RyYWdEaXJlY3Rpb25dPVwicG9pbnQubWFya2VyLmRyYWdUeXBlXCJcbiAgICAgICAgICAgICAgIFthbGxvd0RyYWddPVwiYWxsb3dEcmFnKHBvaW50KVwiXG4gICAgICAgICAgICAgICAjZHJhZ1BvaW50PVwidGV0YURyYWdnYWJsZVBvaW50XCJcbiAgICAgICAgICAgICAgIChtb3ZlU3RhcnQpPVwibW92ZVN0YXJ0KCRldmVudCwgcG9pbnQpXCJcbiAgICAgICAgICAgICAgIChtb3ZlRW5kKT1cIm1vdmVFbmQoJGV2ZW50LCBwb2ludCk7ZHJhZ1BvaW50LnJlc2V0VHJhbnNmb3JtKCk7XCJcbiAgICAgICAgICAgICAgIChtb3ZlUHJvY2Vzcyk9XCJtb3ZlUHJvY2VzcygkZXZlbnQsIHBvaW50KTtkcmFnUG9pbnQucmVzZXRUcmFuc2Zvcm0oKTtcIlxuICAgICAgICAgICAgICAgW2NsYXNzLmRyYWdnYWJsZS1tYXJrZXJdPVwicG9pbnQ/Lm1hcmtlcj8uZHJhZ2dhYmxlXCI+XG4gICAgICAgICAgPHN2ZzpjaXJjbGVcbiAgICAgICAgICAgIGNsYXNzPVwibWFya2VyXCJcbiAgICAgICAgICAgIFthdHRyLnJdPVwicG9pbnQubWFya2VyLnN0eWxlPy5yYWRpdXMgPz8gNVwiXG4gICAgICAgICAgICBbYXR0ci5maWxsXT1cInBvaW50Lm1hcmtlci5zdHlsZT8uZmlsbCA/PyAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJwb2ludC5tYXJrZXIuc3R5bGU/LnN0cm9rZSA/PyAnbm9uZSdcIlxuICAgICAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInBvaW50Lm1hcmtlci5zdHlsZT8uc3Ryb2tlV2lkdGhcIlxuICAgICAgICAgICAgW2F0dHIuc3Ryb2tlLWRhc2hhcnJheV09XCJwb2ludC5tYXJrZXIuc3R5bGU/LnN0cm9rZURhc2hhcnJheVwiXG4gICAgICAgICAgICBbYXR0ci5jeF09XCIwXCJcbiAgICAgICAgICAgIFthdHRyLmN5XT1cIjBcIj5cbiAgICAgICAgICA8L3N2ZzpjaXJjbGU+XG4gICAgICAgICAgQGlmIChwb2ludC5tYXJrZXIubGFiZWw/LnRleHQpIHtcbiAgICAgICAgICAgIDxzdmc6bGluZVxuICAgICAgICAgICAgICBbYXR0ci54MV09XCIwXCJcbiAgICAgICAgICAgICAgW2F0dHIueTFdPVwiMFwiXG4gICAgICAgICAgICAgIFthdHRyLngyXT1cInBvaW50Lm1hcmtlci5sYWJlbD8uZHhcIlxuICAgICAgICAgICAgICBbYXR0ci55Ml09XCJwb2ludC5tYXJrZXIubGFiZWw/LmR5XCJcbiAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInBvaW50Lm1hcmtlci5sYWJlbD8uc3R5bGU/LnN0cm9rZSA/PyAndmFyKC0tY29sb3ItdGV4dC05MCknXCJcbiAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInBvaW50Lm1hcmtlci5sYWJlbD8uc3R5bGU/LnN0cm9rZVdpZHRoID8/IDFcIlxuICAgICAgICAgICAgICBbYXR0ci5zdHJva2UtZGFzaGFycmF5XT1cInBvaW50Lm1hcmtlci5sYWJlbD8uc3R5bGU/LnN0cm9rZURhc2hhcnJheSA/PyBudWxsXCI+XG4gICAgICAgICAgICA8L3N2ZzpsaW5lPlxuICAgICAgICAgICAgPHN2Zzpmb3JlaWduT2JqZWN0XG4gICAgICAgICAgICAgIFt0ZXRhRHJhZ2dhYmxlUG9pbnRdPVwicG9pbnQubWFya2VyLmxhYmVsPy5kcmFnZ2FibGVcIlxuICAgICAgICAgICAgICBbZHJhZ0RpcmVjdGlvbl09XCJwb2ludC5tYXJrZXIubGFiZWwuZHJhZ1R5cGVcIlxuICAgICAgICAgICAgICAjbGFiZWxQb2ludD1cInRldGFEcmFnZ2FibGVQb2ludFwiXG4gICAgICAgICAgICAgIChtb3ZlU3RhcnQpPVwic3RhcnRMYWJlbCgkZXZlbnQsIHBvaW50Lm1hcmtlci5sYWJlbClcIlxuICAgICAgICAgICAgICAobW92ZVByb2Nlc3MpPVwibW92ZUxhYmVsKCRldmVudCwgcG9pbnQubWFya2VyLmxhYmVsKTsgbGFiZWxQb2ludC5yZXNldFRyYW5zZm9ybSgpO1wiXG4gICAgICAgICAgICAgIChtb3ZlRW5kKT1cImxhYmVsUG9pbnQucmVzZXRUcmFuc2Zvcm0oKTtcIlxuICAgICAgICAgICAgICBbYXR0ci53aWR0aF09XCJhbm5vdGF0aW9uTm9kZT8ub2Zmc2V0V2lkdGggPz8gMFwiXG4gICAgICAgICAgICAgIFthdHRyLmhlaWdodF09XCJhbm5vdGF0aW9uTm9kZT8ub2Zmc2V0SGVpZ2h0ID8/IDBcIlxuICAgICAgICAgICAgICBbYXR0ci54XT1cInBvaW50Lm1hcmtlci5sYWJlbD8uZHhcIlxuICAgICAgICAgICAgICBbYXR0ci55XT1cInBvaW50Lm1hcmtlci5sYWJlbD8uZHlcIlxuICAgICAgICAgICAgICBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAjYW5ub3RhdGlvbk5vZGVcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNoYWRvdy0yIHBhZGRpbmctMlwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIid2YXIoLS1jb2xvci10ZXh0LTkwKSdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIid2YXIoLS1jb2xvci1nbG9iYWwtYmdjYXJkKSdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5jdXJzb3JdPVwiJ21vdmUnXCJcbiAgICAgICAgICAgICAgICBzdHlsZT1cImJvcmRlci1yYWRpdXM6IDJweDsgZGlzcGxheTogaW5saW5lLWJsb2NrO1wiPlxuICAgICAgICAgICAgICAgIHt7IHBvaW50Lm1hcmtlci5sYWJlbD8udGV4dCB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvc3ZnOmZvcmVpZ25PYmplY3Q+XG4gICAgICAgICAgfVxuICAgICAgICA8L3N2ZzpnPlxuICAgICAgPC9zdmc6Zz5cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -37,12 +37,12 @@ export class ScatterSeriesComponent extends SeriesBaseComponent {
37
37
  });
38
38
  }
39
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ScatterSeriesComponent, deps: [{ token: i1.ChartService }, { token: i0.ChangeDetectorRef }, { token: i2.ScaleService }, { token: i3.ZoomService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ScatterSeriesComponent, isStandalone: true, selector: "svg:svg[teta-scatter-series]", usesInheritance: true, ngImport: i0, template: "@if ({\n y: y | async,\n x: x | async\n}; as scales) {\n @if (scales.x && scales.y) {\n @for (point of series.data; track $index) {\n <svg:circle\n class=\"line\"\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 }\n }\n}\n", styles: [".draggable-marker{cursor:move}.active{stroke-opacity:.5}.marker-grab{opacity:0}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ScatterSeriesComponent, isStandalone: true, selector: "svg:svg[teta-scatter-series]", usesInheritance: true, ngImport: i0, template: "@if ({\n y: y | async,\n x: x | async\n}; as scales) {\n @if (scales.x && scales.y) {\n @for (point of series.data; track point) {\n <svg:circle\n class=\"line\"\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 }\n }\n}\n", styles: [".draggable-marker{cursor:move}.active{stroke-opacity:.5}.marker-grab{opacity:0}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
41
41
  }
42
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ScatterSeriesComponent, decorators: [{
43
43
  type: Component,
44
44
  args: [{ selector: 'svg:svg[teta-scatter-series]', standalone: true, imports: [
45
45
  AsyncPipe
46
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if ({\n y: y | async,\n x: x | async\n}; as scales) {\n @if (scales.x && scales.y) {\n @for (point of series.data; track $index) {\n <svg:circle\n class=\"line\"\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 }\n }\n}\n", styles: [".draggable-marker{cursor:move}.active{stroke-opacity:.5}.marker-grab{opacity:0}\n"] }]
46
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if ({\n y: y | async,\n x: x | async\n}; as scales) {\n @if (scales.x && scales.y) {\n @for (point of series.data; track point) {\n <svg:circle\n class=\"line\"\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 }\n }\n}\n", styles: [".draggable-marker{cursor:move}.active{stroke-opacity:.5}.marker-grab{opacity:0}\n"] }]
47
47
  }], ctorParameters: () => [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhdHRlci1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvc2NhdHRlci1zZXJpZXMvc2NhdHRlci1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvc2NhdHRlci1zZXJpZXMvc2NhdHRlci1zZXJpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQix1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRXZILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQVk1QyxNQUFNLE9BQU8sc0JBQ1gsU0FBUSxtQkFBc0I7SUFROUIsWUFDcUIsR0FBaUIsRUFDakIsR0FBc0IsRUFDdEIsWUFBMEIsRUFDMUIsV0FBd0IsRUFDeEIsT0FBbUI7UUFFdEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQU5qQyxRQUFHLEdBQUgsR0FBRyxDQUFjO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQVk7SUFHeEMsQ0FBQztJQUVRLFFBQVE7UUFDZixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxlQUFlO0lBQ2YsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQjtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNsQixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2xCLEtBQUssRUFBRSxJQUFJO1lBQ1gsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBdkNVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLCtHQ25CbkMsOGxCQW9CQSxzSURMSSxTQUFTOzsyRkFJQSxzQkFBc0I7a0JBVmxDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUDt3QkFDUCxTQUFTO3FCQUNWLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmFzZVBvaW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbC9iYXNlLXBvaW50JztcbmltcG9ydCB7U2VyaWVzQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vYmFzZS9zZXJpZXMtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHttYXAsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDaGFydFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQge1NjYWxlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvem9vbS5zZXJ2aWNlJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N2ZzpzdmdbdGV0YS1zY2F0dGVyLXNlcmllc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NhdHRlci1zZXJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY2F0dGVyLXNlcmllcy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQXN5bmNQaXBlXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNjYXR0ZXJTZXJpZXNDb21wb25lbnQ8VCBleHRlbmRzIEJhc2VQb2ludD5cbiAgZXh0ZW5kcyBTZXJpZXNCYXNlQ29tcG9uZW50PFQ+XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgdHJhbnNmb3JtOiBPYnNlcnZhYmxlPFBpY2s8QmFzZVBvaW50LCAneCcgfCAneSc+PjtcbiAgZGlzcGxheTogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICBwYXRoOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHg6IE9ic2VydmFibGU8YW55PjtcbiAgeTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzdmM6IENoYXJ0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2NhbGVTZXJ2aWNlOiBTY2FsZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcihzdmMsIGNkciwgc2NhbGVTZXJ2aWNlLCB6b29tU2VydmljZSwgZWxlbWVudCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnggPSB0aGlzLnNjYWxlU2VydmljZS5zY2FsZXMucGlwZShtYXAoXyA9PiBfLnguZ2V0KHRoaXMuc2VyaWVzLnhBeGlzSW5kZXgpPy5zY2FsZSkpO1xuICAgIHRoaXMueSA9IHRoaXMuc2NhbGVTZXJ2aWNlLnNjYWxlcy5waXBlKG1hcChfID0+IF8ueS5nZXQodGhpcy5zZXJpZXMueUF4aXNJbmRleCk/LnNjYWxlKSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gIH1cblxuICBtb3VzZWVudGVyKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBwb2ludCxcbiAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgfSk7XG4gIH1cblxuICBtb3VzZWxlYXZlKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBudWxsLFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmICh7XG4gIHk6IHkgfCBhc3luYyxcbiAgeDogeCB8IGFzeW5jXG59OyBhcyBzY2FsZXMpIHtcbiAgQGlmIChzY2FsZXMueCAmJiBzY2FsZXMueSkge1xuICAgIEBmb3IgKHBvaW50IG9mIHNlcmllcy5kYXRhOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxzdmc6Y2lyY2xlXG4gICAgICAgIGNsYXNzPVwibGluZVwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cIm1vdXNlZW50ZXIocG9pbnQpXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwibW91c2VsZWF2ZShwb2ludClcIlxuICAgICAgICBbYXR0ci5jeF09XCJzY2FsZXMueChwb2ludC54KVwiXG4gICAgICAgIFthdHRyLmN5XT1cInNjYWxlcy55KHBvaW50LnkpXCJcbiAgICAgICAgW2F0dHIucl09XCJzZXJpZXMuc3R5bGU/LnJhZGl1cyA/PyAxXCJcbiAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInBvaW50LmNvbG9yID8/IHNlcmllcy5jb2xvclwiXG4gICAgICAgIFthdHRyLmZpbGxdPVwicG9pbnQuY29sb3IgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInNlcmllcy5zdHlsZT8uc3Ryb2tlV2lkdGhcIj5cbiAgICAgIDwvc3ZnOmNpcmNsZT5cbiAgICB9XG4gIH1cbn1cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhdHRlci1zZXJpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvc2NhdHRlci1zZXJpZXMvc2NhdHRlci1zZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9zZXJpZXMvc2NhdHRlci1zZXJpZXMvc2NhdHRlci1zZXJpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQix1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRXZILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQVk1QyxNQUFNLE9BQU8sc0JBQ1gsU0FBUSxtQkFBc0I7SUFROUIsWUFDcUIsR0FBaUIsRUFDakIsR0FBc0IsRUFDdEIsWUFBMEIsRUFDMUIsV0FBd0IsRUFDeEIsT0FBbUI7UUFFdEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQU5qQyxRQUFHLEdBQUgsR0FBRyxDQUFjO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQVk7SUFHeEMsQ0FBQztJQUVRLFFBQVE7UUFDZixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxlQUFlO0lBQ2YsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQjtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNsQixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2xCLEtBQUssRUFBRSxJQUFJO1lBQ1gsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBdkNVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLCtHQ25CbkMsNmxCQW9CQSxzSURMSSxTQUFTOzsyRkFJQSxzQkFBc0I7a0JBVmxDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUDt3QkFDUCxTQUFTO3FCQUNWLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmFzZVBvaW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbC9iYXNlLXBvaW50JztcbmltcG9ydCB7U2VyaWVzQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vYmFzZS9zZXJpZXMtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHttYXAsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDaGFydFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQge1NjYWxlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvem9vbS5zZXJ2aWNlJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N2ZzpzdmdbdGV0YS1zY2F0dGVyLXNlcmllc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NhdHRlci1zZXJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY2F0dGVyLXNlcmllcy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQXN5bmNQaXBlXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNjYXR0ZXJTZXJpZXNDb21wb25lbnQ8VCBleHRlbmRzIEJhc2VQb2ludD5cbiAgZXh0ZW5kcyBTZXJpZXNCYXNlQ29tcG9uZW50PFQ+XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgdHJhbnNmb3JtOiBPYnNlcnZhYmxlPFBpY2s8QmFzZVBvaW50LCAneCcgfCAneSc+PjtcbiAgZGlzcGxheTogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICBwYXRoOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHg6IE9ic2VydmFibGU8YW55PjtcbiAgeTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzdmM6IENoYXJ0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2NhbGVTZXJ2aWNlOiBTY2FsZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcihzdmMsIGNkciwgc2NhbGVTZXJ2aWNlLCB6b29tU2VydmljZSwgZWxlbWVudCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnggPSB0aGlzLnNjYWxlU2VydmljZS5zY2FsZXMucGlwZShtYXAoXyA9PiBfLnguZ2V0KHRoaXMuc2VyaWVzLnhBeGlzSW5kZXgpPy5zY2FsZSkpO1xuICAgIHRoaXMueSA9IHRoaXMuc2NhbGVTZXJ2aWNlLnNjYWxlcy5waXBlKG1hcChfID0+IF8ueS5nZXQodGhpcy5zZXJpZXMueUF4aXNJbmRleCk/LnNjYWxlKSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gIH1cblxuICBtb3VzZWVudGVyKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBwb2ludCxcbiAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXG4gICAgfSk7XG4gIH1cblxuICBtb3VzZWxlYXZlKHBvaW50OiBCYXNlUG9pbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXRUb29sdGlwKHtcbiAgICAgIHBvaW50OiBudWxsLFxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmICh7XG4gIHk6IHkgfCBhc3luYyxcbiAgeDogeCB8IGFzeW5jXG59OyBhcyBzY2FsZXMpIHtcbiAgQGlmIChzY2FsZXMueCAmJiBzY2FsZXMueSkge1xuICAgIEBmb3IgKHBvaW50IG9mIHNlcmllcy5kYXRhOyB0cmFjayBwb2ludCkge1xuICAgICAgPHN2ZzpjaXJjbGVcbiAgICAgICAgY2xhc3M9XCJsaW5lXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwibW91c2VlbnRlcihwb2ludClcIlxuICAgICAgICAobW91c2VsZWF2ZSk9XCJtb3VzZWxlYXZlKHBvaW50KVwiXG4gICAgICAgIFthdHRyLmN4XT1cInNjYWxlcy54KHBvaW50LngpXCJcbiAgICAgICAgW2F0dHIuY3ldPVwic2NhbGVzLnkocG9pbnQueSlcIlxuICAgICAgICBbYXR0ci5yXT1cInNlcmllcy5zdHlsZT8ucmFkaXVzID8/IDFcIlxuICAgICAgICBbYXR0ci5zdHJva2VdPVwicG9pbnQuY29sb3IgPz8gc2VyaWVzLmNvbG9yXCJcbiAgICAgICAgW2F0dHIuZmlsbF09XCJwb2ludC5jb2xvciA/PyBzZXJpZXMuY29sb3JcIlxuICAgICAgICBbYXR0ci5zdHJva2Utd2lkdGhdPVwic2VyaWVzLnN0eWxlPy5zdHJva2VXaWR0aFwiPlxuICAgICAgPC9zdmc6Y2lyY2xlPlxuICAgIH1cbiAgfVxufVxuIl19