@tetacom/ng-components 1.1.17 → 1.1.18

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.
@@ -6,5 +6,6 @@ export * from './three-chart/block-3d/block-3d.component';
6
6
  export * from './three-chart/directive/public-api';
7
7
  export * from './three-chart/line-3d/line-3d.component';
8
8
  export * from './three-chart/model/public-api';
9
+ export * from './three-chart/canvas/canvas.component';
9
10
  export * from './three-chart/scene/scene.component';
10
11
  export * from './three-chart/three-chart.component';
@@ -30,6 +30,7 @@ export declare class Axes3dComponent implements OnDestroy {
30
30
  }[];
31
31
  };
32
32
  generateTicks(extremes: number[], count?: number): number[];
33
+ trackBy(i: any): any;
33
34
  ngOnDestroy(): void;
34
35
  static ɵfac: i0.ɵɵFactoryDeclaration<Axes3dComponent, never>;
35
36
  static ɵcmp: i0.ɵɵComponentDeclaration<Axes3dComponent, "teta-axes-3d", never, { "rotation": { "alias": "rotation"; "required": false; }; }, {}, never, never, true, never>;
@@ -0,0 +1,11 @@
1
+ import { SceneComponent } from "../scene/scene.component";
2
+ import { I3dChartConfig } from "../model/i-3d-chart-config";
3
+ import { Camera } from "three";
4
+ import * as i0 from "@angular/core";
5
+ export declare class CanvasComponent {
6
+ scene: typeof SceneComponent;
7
+ camera: Camera;
8
+ data: I3dChartConfig;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<CanvasComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<CanvasComponent, "teta-canvas", never, { "scene": { "alias": "scene"; "required": false; }; "camera": { "alias": "camera"; "required": false; }; "data": { "alias": "data"; "required": false; }; }, {}, never, never, true, never>;
11
+ }
@@ -0,0 +1,19 @@
1
+ import { OnChanges, OnInit, ViewContainerRef } from '@angular/core';
2
+ import { Camera } from 'three';
3
+ import { I3dChartConfig } from '../model/i-3d-chart-config';
4
+ import { SceneComponent } from '../scene/scene.component';
5
+ import * as i0 from "@angular/core";
6
+ export declare class Canvas3dHost implements OnInit, OnChanges {
7
+ private viewContainerRef;
8
+ scene: typeof SceneComponent;
9
+ camera: Camera;
10
+ data: I3dChartConfig;
11
+ private _init;
12
+ private _componentRef;
13
+ constructor(viewContainerRef: ViewContainerRef);
14
+ ngOnInit(): void;
15
+ ngOnChanges(): void;
16
+ createCanvas(): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<Canvas3dHost, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<Canvas3dHost, "[teta-canvas-3d-host]", never, { "scene": { "alias": "scene"; "required": false; }; "camera": { "alias": "camera"; "required": false; }; "data": { "alias": "data"; "required": false; }; }, {}, never, never, true, never>;
19
+ }
@@ -1 +1,2 @@
1
1
  export * from './series-3d-host';
2
+ export * from './canvas-3d-host';
@@ -10,7 +10,6 @@ export declare class Chart3dService {
10
10
  y: any;
11
11
  z: any;
12
12
  }>;
13
- private minMax$;
14
13
  private data$;
15
14
  constructor();
16
15
  setData(data: any): void;
@@ -1,4 +1,5 @@
1
- import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
1
+ import { ChangeDetectorRef, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
+ import { NgtStore } from 'angular-three';
2
3
  import { OrthographicCamera } from 'three';
3
4
  import { I3dChartConfig } from './model/i-3d-chart-config';
4
5
  import { SceneComponent } from './scene/scene.component';
@@ -9,6 +10,8 @@ export declare class ThreeChartComponent implements OnInit, OnChanges {
9
10
  scene: typeof SceneComponent;
10
11
  camera: OrthographicCamera;
11
12
  protected readonly chartService: Chart3dService;
13
+ protected readonly store: NgtStore;
14
+ protected readonly cdr: ChangeDetectorRef;
12
15
  ngOnInit(): void;
13
16
  ngOnChanges(changes: SimpleChanges): void;
14
17
  static ɵfac: i0.ɵɵFactoryDeclaration<ThreeChartComponent, never>;
@@ -6,6 +6,7 @@ export * from './three-chart/block-3d/block-3d.component';
6
6
  export * from './three-chart/directive/public-api';
7
7
  export * from './three-chart/line-3d/line-3d.component';
8
8
  export * from './three-chart/model/public-api';
9
+ export * from './three-chart/canvas/canvas.component';
9
10
  export * from './three-chart/scene/scene.component';
10
11
  export * from './three-chart/three-chart.component';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGhyZWUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jdXN0b20tc2VyaWVzL2N1c3RvbS1zZXJpZXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGhyZWUtY2hhcnQvYXJlYS0zZC9hcmVhLTNkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RocmVlLWNoYXJ0L2F4ZXMtM2QvYXhlcy0zZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90aHJlZS1jaGFydC9iYXNlLTNkLXNlcmllcy9iYXNlM2Qtc2VyaWVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RocmVlLWNoYXJ0L2Jsb2NrLTNkL2Jsb2NrLTNkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RocmVlLWNoYXJ0L2RpcmVjdGl2ZS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vdGhyZWUtY2hhcnQvbGluZS0zZC9saW5lLTNkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RocmVlLWNoYXJ0L21vZGVsL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi90aHJlZS1jaGFydC9zY2VuZS9zY2VuZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90aHJlZS1jaGFydC90aHJlZS1jaGFydC5jb21wb25lbnQnO1xuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGhyZWUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2N1c3RvbS1zZXJpZXMvY3VzdG9tLXNlcmllcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90aHJlZS1jaGFydC9hcmVhLTNkL2FyZWEtM2QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGhyZWUtY2hhcnQvYXhlcy0zZC9heGVzLTNkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RocmVlLWNoYXJ0L2Jhc2UtM2Qtc2VyaWVzL2Jhc2UzZC1zZXJpZXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGhyZWUtY2hhcnQvYmxvY2stM2QvYmxvY2stM2QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGhyZWUtY2hhcnQvZGlyZWN0aXZlL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi90aHJlZS1jaGFydC9saW5lLTNkL2xpbmUtM2QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGhyZWUtY2hhcnQvbW9kZWwvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3RocmVlLWNoYXJ0L2NhbnZhcy9jYW52YXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGhyZWUtY2hhcnQvc2NlbmUvc2NlbmUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGhyZWUtY2hhcnQvdGhyZWUtY2hhcnQuY29tcG9uZW50JztcbiJdfQ==
@@ -23,13 +23,13 @@ export class Axes3dComponent {
23
23
  }));
24
24
  }
25
25
  createAxes(scales, minMax) {
26
- const axisZ = this.generateTicks(minMax.z, 12).map((_) => {
26
+ const axisZ = this.generateTicks(minMax.z, 12).map(_ => {
27
27
  return { value: _.toFixed(1), position: scales.z(_) };
28
28
  });
29
- const axisY = this.generateTicks(minMax.y, 12).map((_) => {
29
+ const axisY = this.generateTicks(minMax.y, 12).map(_ => {
30
30
  return { value: _.toFixed(1), position: scales.y(_) };
31
31
  });
32
- const axisX = this.generateTicks(minMax.x, 4).map((_) => {
32
+ const axisX = this.generateTicks(minMax.x, 4).map(_ => {
33
33
  return { value: _.toFixed(1), position: scales.x(_) };
34
34
  });
35
35
  return { z: axisZ, y: axisY, x: axisX };
@@ -39,19 +39,22 @@ export class Axes3dComponent {
39
39
  const tickStep = (max - min) / count;
40
40
  const ticks = d3
41
41
  .range(min, max + tickStep, tickStep)
42
- .filter((step) => step <= max);
42
+ .filter(step => step <= max);
43
43
  return ticks;
44
44
  }
45
+ trackBy(i) {
46
+ return i;
47
+ }
45
48
  ngOnDestroy() {
46
49
  this._alive = false;
47
50
  }
48
51
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: Axes3dComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: Axes3dComponent, isStandalone: true, selector: "teta-axes-3d", inputs: { rotation: "rotation" }, ngImport: i0, template: "<ng-container *ngIf=\"{axes:axes|async}as data\">\n <ngts-text *ngFor='let tick of data.axes?.y;let i=index'\n [text]=\"tick.value+'-'\"\n [color]=\"'var(--color-text-90)'\"\n [rotation]='rotation'\n [fontSize]='2.5'\n [position]='[0,tick.position,50]'\n [anchorX]=\"'right'\"\n [anchorY]=\"'middle'\"\n [textAlign]=\"'right'\"\n ></ngts-text>\n <ngts-text *ngFor='let tick of data.axes?.z;let i=index'\n [text]='tick.value'\n [color]=\"'var(--color-text-90)'\"\n [rotation]='rotation'\n [fontSize]='2.5'\n [position]='[25,-50,tick.position]'\n ></ngts-text>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: NgtsText, selector: "ngts-text[text]", inputs: ["textRef", "text", "characters", "font", "anchorX", "anchorY"], outputs: ["sync"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: Axes3dComponent, isStandalone: true, selector: "teta-axes-3d", inputs: { rotation: "rotation" }, ngImport: i0, template: "<ng-container *ngIf=\"{axes:axes|async}as data\">\n<ngts-text *ngFor=\"let tick of data.axes?.y;let i=index; trackBy: trackBy\" [text]=\"tick.value+'-'\"\n [color]=\"'var(--color-text-90)'\"\n [rotation]=\"rotation\"\n [fontSize]=\"2.5\"\n [position]=\"[0,tick.position,50]\"\n [anchorX]=\"'right'\"\n [anchorY]=\"'middle'\"\n [textAlign]=\"'right'\"\n></ngts-text>\n<ngts-text *ngFor=\"let tick of data.axes?.z;let i=index; trackBy: trackBy\" [text]=\"tick.value\"\n [color]=\"'var(--color-text-90)'\"\n [rotation]=\"rotation\"\n [fontSize]=\"2.5\"\n [position]=\"[25,-50,tick.position]\"\n ></ngts-text>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: NgtsText, selector: "ngts-text[text]", inputs: ["textRef", "text", "characters", "font", "anchorX", "anchorY"], outputs: ["sync"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
53
  }
51
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: Axes3dComponent, decorators: [{
52
55
  type: Component,
53
- args: [{ selector: 'teta-axes-3d', standalone: true, imports: [CommonModule, NgtsText], schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"{axes:axes|async}as data\">\n <ngts-text *ngFor='let tick of data.axes?.y;let i=index'\n [text]=\"tick.value+'-'\"\n [color]=\"'var(--color-text-90)'\"\n [rotation]='rotation'\n [fontSize]='2.5'\n [position]='[0,tick.position,50]'\n [anchorX]=\"'right'\"\n [anchorY]=\"'middle'\"\n [textAlign]=\"'right'\"\n ></ngts-text>\n <ngts-text *ngFor='let tick of data.axes?.z;let i=index'\n [text]='tick.value'\n [color]=\"'var(--color-text-90)'\"\n [rotation]='rotation'\n [fontSize]='2.5'\n [position]='[25,-50,tick.position]'\n ></ngts-text>\n</ng-container>\n" }]
56
+ args: [{ selector: 'teta-axes-3d', standalone: true, imports: [CommonModule, NgtsText], schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"{axes:axes|async}as data\">\n<ngts-text *ngFor=\"let tick of data.axes?.y;let i=index; trackBy: trackBy\" [text]=\"tick.value+'-'\"\n [color]=\"'var(--color-text-90)'\"\n [rotation]=\"rotation\"\n [fontSize]=\"2.5\"\n [position]=\"[0,tick.position,50]\"\n [anchorX]=\"'right'\"\n [anchorY]=\"'middle'\"\n [textAlign]=\"'right'\"\n></ngts-text>\n<ngts-text *ngFor=\"let tick of data.axes?.z;let i=index; trackBy: trackBy\" [text]=\"tick.value\"\n [color]=\"'var(--color-text-90)'\"\n [rotation]=\"rotation\"\n [fontSize]=\"2.5\"\n [position]=\"[25,-50,tick.position]\"\n ></ngts-text>\n</ng-container>\n" }]
54
57
  }], ctorParameters: function () { return []; }, propDecorators: { rotation: [{
55
58
  type: Input
56
59
  }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhlcy0zZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2F4ZXMtM2QvYXhlcy0zZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2F4ZXMtM2QvYXhlcy0zZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxzQkFBc0IsRUFDdEIsTUFBTSxFQUNOLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRS9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBR2pFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQVVkLE1BQU0sT0FBTyxlQUFlO0lBQ2pCLFFBQVEsQ0FBUTtJQUNsQixJQUFJLENBSVI7SUFDSyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBRUgsWUFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RDtRQUNFLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU07U0FDekIsQ0FBQyxDQUFDLElBQUksQ0FDTCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUM1QixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQW9CO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFDRCxhQUFhLENBQUMsUUFBa0IsRUFBRSxLQUFLLEdBQUcsRUFBRTtRQUMxQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUM1QixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFFckMsTUFBTSxLQUFLLEdBQUcsRUFBRTthQUNiLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxRQUFRLENBQUM7YUFDcEMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFFakMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7dUdBL0NVLGVBQWU7MkZBQWYsZUFBZSwwR0M3QjVCLG11QkFtQkEsMkNETVksWUFBWSxxVEFBRSxRQUFROzsyRkFJckIsZUFBZTtrQkFSM0IsU0FBUzsrQkFDRSxjQUFjLGNBRVosSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxXQUN4QixDQUFDLHNCQUFzQixDQUFDLG1CQUNoQix1QkFBdUIsQ0FBQyxNQUFNOzBFQUd0QyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ3RzVGV4dCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9hYnN0cmFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRXVsZXIgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEF4aXMzZFBvaW50IH0gZnJvbSAnLi4vbW9kZWwvYXhpcy0zZC1wb2ludCc7XG5pbXBvcnQgeyBDaGFydDNkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvY2hhcnQtM2Quc2VydmljZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXhlczNkTWluTWF4IH0gZnJvbSAnLi4vbW9kZWwvYXhlcy0zZC1taW4tbWF4JztcblxuZXh0ZW5kKFRIUkVFKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1heGVzLTNkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F4ZXMtM2QuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ3RzVGV4dF0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEF4ZXMzZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHJvdGF0aW9uOiBFdWxlcjtcbiAgcHVibGljIGF4ZXM6IE9ic2VydmFibGU8e1xuICAgIHo6IEF4aXMzZFBvaW50W107XG4gICAgeTogQXhpczNkUG9pbnRbXTtcbiAgICB4OiBBeGlzM2RQb2ludFtdO1xuICB9PjtcbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjaGFydFNlcnZpY2UgPSBpbmplY3QoQ2hhcnQzZFNlcnZpY2UpO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmF4ZXMgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLnNjYWxlcyxcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLm1pbk1heCxcbiAgICBdKS5waXBlKFxuICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKSxcbiAgICAgIG1hcCgoW3NjYWxlcywgbWluTWF4XSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVBeGVzKHNjYWxlcywgbWluTWF4KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNyZWF0ZUF4ZXMoc2NhbGVzLCBtaW5NYXg6IEF4ZXMzZE1pbk1heCkge1xuICAgIGNvbnN0IGF4aXNaID0gdGhpcy5nZW5lcmF0ZVRpY2tzKG1pbk1heC56LCAxMikubWFwKChfKSA9PiB7XG4gICAgICByZXR1cm4geyB2YWx1ZTogXy50b0ZpeGVkKDEpLCBwb3NpdGlvbjogc2NhbGVzLnooXykgfTtcbiAgICB9KTtcbiAgICBjb25zdCBheGlzWSA9IHRoaXMuZ2VuZXJhdGVUaWNrcyhtaW5NYXgueSwgMTIpLm1hcCgoXykgPT4ge1xuICAgICAgcmV0dXJuIHsgdmFsdWU6IF8udG9GaXhlZCgxKSwgcG9zaXRpb246IHNjYWxlcy55KF8pIH07XG4gICAgfSk7XG4gICAgY29uc3QgYXhpc1ggPSB0aGlzLmdlbmVyYXRlVGlja3MobWluTWF4LngsIDQpLm1hcCgoXykgPT4ge1xuICAgICAgcmV0dXJuIHsgdmFsdWU6IF8udG9GaXhlZCgxKSwgcG9zaXRpb246IHNjYWxlcy54KF8pIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgejogYXhpc1osIHk6IGF4aXNZLCB4OiBheGlzWCB9O1xuICB9XG4gIGdlbmVyYXRlVGlja3MoZXh0cmVtZXM6IG51bWJlcltdLCBjb3VudCA9IDEwKSB7XG4gICAgY29uc3QgW21pbiwgbWF4XSA9IGV4dHJlbWVzO1xuICAgIGNvbnN0IHRpY2tTdGVwID0gKG1heCAtIG1pbikgLyBjb3VudDtcblxuICAgIGNvbnN0IHRpY2tzID0gZDNcbiAgICAgIC5yYW5nZShtaW4sIG1heCArIHRpY2tTdGVwLCB0aWNrU3RlcClcbiAgICAgIC5maWx0ZXIoKHN0ZXApID0+IHN0ZXAgPD0gbWF4KTtcblxuICAgIHJldHVybiB0aWNrcztcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ7YXhlczpheGVzfGFzeW5jfWFzIGRhdGFcIj5cbiAgPG5ndHMtdGV4dCAqbmdGb3I9J2xldCB0aWNrIG9mIGRhdGEuYXhlcz8ueTtsZXQgaT1pbmRleCdcbiAgICAgICAgICAgICBbdGV4dF09XCJ0aWNrLnZhbHVlKyctJ1wiXG4gICAgICAgICAgICAgW2NvbG9yXT1cIid2YXIoLS1jb2xvci10ZXh0LTkwKSdcIlxuICAgICAgICAgICAgIFtyb3RhdGlvbl09J3JvdGF0aW9uJ1xuICAgICAgICAgICAgIFtmb250U2l6ZV09JzIuNSdcbiAgICAgICAgICAgICBbcG9zaXRpb25dPSdbMCx0aWNrLnBvc2l0aW9uLDUwXSdcbiAgICAgICAgICAgICBbYW5jaG9yWF09XCIncmlnaHQnXCJcbiAgICAgICAgICAgICBbYW5jaG9yWV09XCInbWlkZGxlJ1wiXG4gICAgICAgICAgICAgW3RleHRBbGlnbl09XCIncmlnaHQnXCJcbiAgPjwvbmd0cy10ZXh0PlxuICA8bmd0cy10ZXh0ICpuZ0Zvcj0nbGV0IHRpY2sgb2YgZGF0YS5heGVzPy56O2xldCBpPWluZGV4J1xuICAgICAgICAgICAgIFt0ZXh0XT0ndGljay52YWx1ZSdcbiAgICAgICAgICAgICBbY29sb3JdPVwiJ3ZhcigtLWNvbG9yLXRleHQtOTApJ1wiXG4gICAgICAgICAgICAgW3JvdGF0aW9uXT0ncm90YXRpb24nXG4gICAgICAgICAgICAgW2ZvbnRTaXplXT0nMi41J1xuICAgICAgICAgICAgIFtwb3NpdGlvbl09J1syNSwtNTAsdGljay5wb3NpdGlvbl0nXG4gID48L25ndHMtdGV4dD5cbjwvbmctY29udGFpbmVyPlxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhlcy0zZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2F4ZXMtM2QvYXhlcy0zZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2F4ZXMtM2QvYXhlcy0zZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxzQkFBc0IsRUFDdEIsTUFBTSxFQUNOLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRS9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBR2pFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQVVkLE1BQU0sT0FBTyxlQUFlO0lBQ2pCLFFBQVEsQ0FBUTtJQUNsQixJQUFJLENBSVI7SUFDSyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBRUgsWUFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RDtRQUNFLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU07U0FDekIsQ0FBQyxDQUFDLElBQUksQ0FDTCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUM1QixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQW9CO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFDRCxhQUFhLENBQUMsUUFBa0IsRUFBRSxLQUFLLEdBQUcsRUFBRTtRQUMxQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUM1QixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFFckMsTUFBTSxLQUFLLEdBQUcsRUFBRTthQUNiLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxRQUFRLENBQUM7YUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO1FBQ1AsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7dUdBakRVLGVBQWU7MkZBQWYsZUFBZSwwR0M3QjVCLDJ1QkFpQkEsMkNEUVksWUFBWSxxVEFBRSxRQUFROzsyRkFJckIsZUFBZTtrQkFSM0IsU0FBUzsrQkFDRSxjQUFjLGNBRVosSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxXQUN4QixDQUFDLHNCQUFzQixDQUFDLG1CQUNoQix1QkFBdUIsQ0FBQyxNQUFNOzBFQUd0QyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ3RzVGV4dCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9hYnN0cmFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRXVsZXIgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEF4aXMzZFBvaW50IH0gZnJvbSAnLi4vbW9kZWwvYXhpcy0zZC1wb2ludCc7XG5pbXBvcnQgeyBDaGFydDNkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvY2hhcnQtM2Quc2VydmljZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXhlczNkTWluTWF4IH0gZnJvbSAnLi4vbW9kZWwvYXhlcy0zZC1taW4tbWF4JztcblxuZXh0ZW5kKFRIUkVFKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1heGVzLTNkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F4ZXMtM2QuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ3RzVGV4dF0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEF4ZXMzZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHJvdGF0aW9uOiBFdWxlcjtcbiAgcHVibGljIGF4ZXM6IE9ic2VydmFibGU8e1xuICAgIHo6IEF4aXMzZFBvaW50W107XG4gICAgeTogQXhpczNkUG9pbnRbXTtcbiAgICB4OiBBeGlzM2RQb2ludFtdO1xuICB9PjtcbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjaGFydFNlcnZpY2UgPSBpbmplY3QoQ2hhcnQzZFNlcnZpY2UpO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmF4ZXMgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLnNjYWxlcyxcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLm1pbk1heCxcbiAgICBdKS5waXBlKFxuICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKSxcbiAgICAgIG1hcCgoW3NjYWxlcywgbWluTWF4XSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVBeGVzKHNjYWxlcywgbWluTWF4KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNyZWF0ZUF4ZXMoc2NhbGVzLCBtaW5NYXg6IEF4ZXMzZE1pbk1heCkge1xuICAgIGNvbnN0IGF4aXNaID0gdGhpcy5nZW5lcmF0ZVRpY2tzKG1pbk1heC56LCAxMikubWFwKF8gPT4ge1xuICAgICAgcmV0dXJuIHsgdmFsdWU6IF8udG9GaXhlZCgxKSwgcG9zaXRpb246IHNjYWxlcy56KF8pIH07XG4gICAgfSk7XG4gICAgY29uc3QgYXhpc1kgPSB0aGlzLmdlbmVyYXRlVGlja3MobWluTWF4LnksIDEyKS5tYXAoXyA9PiB7XG4gICAgICByZXR1cm4geyB2YWx1ZTogXy50b0ZpeGVkKDEpLCBwb3NpdGlvbjogc2NhbGVzLnkoXykgfTtcbiAgICB9KTtcbiAgICBjb25zdCBheGlzWCA9IHRoaXMuZ2VuZXJhdGVUaWNrcyhtaW5NYXgueCwgNCkubWFwKF8gPT4ge1xuICAgICAgcmV0dXJuIHsgdmFsdWU6IF8udG9GaXhlZCgxKSwgcG9zaXRpb246IHNjYWxlcy54KF8pIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgejogYXhpc1osIHk6IGF4aXNZLCB4OiBheGlzWCB9O1xuICB9XG4gIGdlbmVyYXRlVGlja3MoZXh0cmVtZXM6IG51bWJlcltdLCBjb3VudCA9IDEwKSB7XG4gICAgY29uc3QgW21pbiwgbWF4XSA9IGV4dHJlbWVzO1xuICAgIGNvbnN0IHRpY2tTdGVwID0gKG1heCAtIG1pbikgLyBjb3VudDtcblxuICAgIGNvbnN0IHRpY2tzID0gZDNcbiAgICAgIC5yYW5nZShtaW4sIG1heCArIHRpY2tTdGVwLCB0aWNrU3RlcClcbiAgICAgIC5maWx0ZXIoc3RlcCA9PiBzdGVwIDw9IG1heCk7XG5cbiAgICByZXR1cm4gdGlja3M7XG4gIH1cbiAgdHJhY2tCeShpKSB7XG4gICAgcmV0dXJuIGk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIntheGVzOmF4ZXN8YXN5bmN9YXMgZGF0YVwiPlxuPG5ndHMtdGV4dCAqbmdGb3I9XCJsZXQgdGljayBvZiBkYXRhLmF4ZXM/Lnk7bGV0IGk9aW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlcIiBbdGV4dF09XCJ0aWNrLnZhbHVlKyctJ1wiXG4gICAgICAgICAgIFtjb2xvcl09XCIndmFyKC0tY29sb3ItdGV4dC05MCknXCJcbiAgICAgICAgICAgW3JvdGF0aW9uXT1cInJvdGF0aW9uXCJcbiAgICAgICAgICAgW2ZvbnRTaXplXT1cIjIuNVwiXG4gICAgICAgICAgIFtwb3NpdGlvbl09XCJbMCx0aWNrLnBvc2l0aW9uLDUwXVwiXG4gICAgICAgICAgIFthbmNob3JYXT1cIidyaWdodCdcIlxuICAgICAgICAgICBbYW5jaG9yWV09XCInbWlkZGxlJ1wiXG4gICAgICAgICAgIFt0ZXh0QWxpZ25dPVwiJ3JpZ2h0J1wiXG4+PC9uZ3RzLXRleHQ+XG48bmd0cy10ZXh0ICpuZ0Zvcj1cImxldCB0aWNrIG9mIGRhdGEuYXhlcz8uejtsZXQgaT1pbmRleDsgdHJhY2tCeTogdHJhY2tCeVwiICBbdGV4dF09XCJ0aWNrLnZhbHVlXCJcbiAgICAgICAgICAgW2NvbG9yXT1cIid2YXIoLS1jb2xvci10ZXh0LTkwKSdcIlxuICAgICAgICAgICBbcm90YXRpb25dPVwicm90YXRpb25cIlxuICAgICAgICAgICBbZm9udFNpemVdPVwiMi41XCJcbiAgICAgICAgICAgW3Bvc2l0aW9uXT1cIlsyNSwtNTAsdGljay5wb3NpdGlvbl1cIlxuICAgICAgICAgICA+PC9uZ3RzLXRleHQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NgtCanvas, NgtStore } from "angular-three";
4
+ import { SceneComponent } from "../scene/scene.component";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ export class CanvasComponent {
8
+ scene;
9
+ camera;
10
+ data;
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: CanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: CanvasComponent, isStandalone: true, selector: "teta-canvas", inputs: { scene: "scene", camera: "camera", data: "data" }, providers: [NgtStore], ngImport: i0, template: "<ngt-canvas *ngIf=\"data?.series?.length;else noData\" [sceneGraph]=\"scene\"\n [camera]=\"camera\">\n</ngt-canvas>\n<ng-template #noData>\n <p>{{data?.noDataText || 'no data'}}</p>\n</ng-template>\n", styles: [":host{width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: NgtCanvas, selector: "ngt-canvas", inputs: ["sceneGraph", "sceneGraphInputs", "compoundPrefixes", "linear", "legacy", "flat", "orthographic", "frameloop", "dpr", "raycaster", "shadows", "camera", "gl", "eventSource", "eventPrefix", "lookAt", "performance"], outputs: ["created", "pointerMissed"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: CanvasComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'teta-canvas', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, providers: [NgtStore], imports: [NgtCanvas, SceneComponent, CommonModule], template: "<ngt-canvas *ngIf=\"data?.series?.length;else noData\" [sceneGraph]=\"scene\"\n [camera]=\"camera\">\n</ngt-canvas>\n<ng-template #noData>\n <p>{{data?.noDataText || 'no data'}}</p>\n</ng-template>\n", styles: [":host{width:100%;height:100%}\n"] }]
17
+ }], propDecorators: { scene: [{
18
+ type: Input
19
+ }], camera: [{
20
+ type: Input
21
+ }], data: [{
22
+ type: Input
23
+ }] } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGhyZWUvdGhyZWUtY2hhcnQvY2FudmFzL2NhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2NhbnZhcy9jYW52YXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBY3hELE1BQU0sT0FBTyxlQUFlO0lBQ2pCLEtBQUssQ0FBd0I7SUFDN0IsTUFBTSxDQUFTO0lBQ2YsSUFBSSxDQUFnQjt1R0FIbEIsZUFBZTsyRkFBZixlQUFlLHNIQUhmLENBQUMsUUFBUSxDQUFDLDBCQ2R2QixxTkFNQSx5RkRTWSxTQUFTLDRUQUFrQixZQUFZOzsyRkFFdEMsZUFBZTtrQkFWM0IsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUdQLENBQUMsc0JBQXNCLENBQUMsbUJBQ2hCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxRQUFRLENBQUMsV0FDWixDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsWUFBWSxDQUFDOzhCQUd6QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05ndENhbnZhcywgTmd0U3RvcmV9IGZyb20gXCJhbmd1bGFyLXRocmVlXCI7XG5pbXBvcnQge1NjZW5lQ29tcG9uZW50fSBmcm9tIFwiLi4vc2NlbmUvc2NlbmUuY29tcG9uZW50XCI7XG5pbXBvcnQge0kzZENoYXJ0Q29uZmlnfSBmcm9tIFwiLi4vbW9kZWwvaS0zZC1jaGFydC1jb25maWdcIjtcbmltcG9ydCB7Q2FtZXJhfSBmcm9tIFwidGhyZWVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1jYW52YXMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FudmFzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FudmFzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW05ndFN0b3JlXSxcbiAgaW1wb3J0czogW05ndENhbnZhcywgU2NlbmVDb21wb25lbnQsIENvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIENhbnZhc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNjZW5lOiB0eXBlb2YgU2NlbmVDb21wb25lbnQ7XG4gIEBJbnB1dCgpIGNhbWVyYTogQ2FtZXJhO1xuICBASW5wdXQoKSBkYXRhOiBJM2RDaGFydENvbmZpZ1xufVxuIiwiPG5ndC1jYW52YXMgKm5nSWY9XCJkYXRhPy5zZXJpZXM/Lmxlbmd0aDtlbHNlIG5vRGF0YVwiIFtzY2VuZUdyYXBoXT1cInNjZW5lXCJcbiAgICAgICAgICAgIFtjYW1lcmFdPVwiY2FtZXJhXCI+XG48L25ndC1jYW52YXM+XG48bmctdGVtcGxhdGUgI25vRGF0YT5cbiAgPHA+e3tkYXRhPy5ub0RhdGFUZXh0IHx8ICdubyBkYXRhJ319PC9wPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,49 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
2
+ import { CanvasComponent } from '../canvas/canvas.component';
3
+ import * as i0 from "@angular/core";
4
+ export class Canvas3dHost {
5
+ viewContainerRef;
6
+ scene;
7
+ camera;
8
+ data;
9
+ _init = false;
10
+ _componentRef;
11
+ constructor(viewContainerRef) {
12
+ this.viewContainerRef = viewContainerRef;
13
+ }
14
+ ngOnInit() {
15
+ this.createCanvas();
16
+ this._init = true;
17
+ }
18
+ ngOnChanges() {
19
+ if (this._init) {
20
+ this.createCanvas();
21
+ this._componentRef.injector.get(ChangeDetectorRef).detectChanges();
22
+ }
23
+ }
24
+ createCanvas() {
25
+ this.viewContainerRef.clear();
26
+ this._componentRef = this.viewContainerRef.createComponent(CanvasComponent);
27
+ this._componentRef.instance.scene = this.scene;
28
+ this._componentRef.instance.camera = this.camera;
29
+ this._componentRef.instance.data = this.data;
30
+ }
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: Canvas3dHost, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: Canvas3dHost, isStandalone: true, selector: "[teta-canvas-3d-host]", inputs: { scene: "scene", camera: "camera", data: "data" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: Canvas3dHost, decorators: [{
35
+ type: Component,
36
+ args: [{
37
+ selector: '[teta-canvas-3d-host]',
38
+ template: '',
39
+ standalone: true,
40
+ changeDetection: ChangeDetectionStrategy.OnPush,
41
+ }]
42
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { scene: [{
43
+ type: Input
44
+ }], camera: [{
45
+ type: Input
46
+ }], data: [{
47
+ type: Input
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLTNkLWhvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2RpcmVjdGl2ZS9jYW52YXMtM2QtaG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFXN0QsTUFBTSxPQUFPLFlBQVk7SUFRSDtJQVBYLEtBQUssQ0FBd0I7SUFDN0IsTUFBTSxDQUFTO0lBQ2YsSUFBSSxDQUFpQjtJQUV0QixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsYUFBYSxDQUFvQjtJQUV6QyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFFMUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUNwRTtJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUMvQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUMvQyxDQUFDO3VHQTVCVSxZQUFZOzJGQUFaLFlBQVksa0tBSmIsRUFBRTs7MkZBSUQsWUFBWTtrQkFOeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO3VHQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbWVyYSB9IGZyb20gJ3RocmVlJztcblxuaW1wb3J0IHsgQ2FudmFzQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FudmFzL2NhbnZhcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFzZTNkVGhyZWVQb2ludCB9IGZyb20gJy4uL21vZGVsL2Jhc2UtM2QtdGhyZWUtcG9pbnQnO1xuaW1wb3J0IHsgSTNkQ2hhcnRDb25maWcgfSBmcm9tICcuLi9tb2RlbC9pLTNkLWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQgeyBTY2VuZUNvbXBvbmVudCB9IGZyb20gJy4uL3NjZW5lL3NjZW5lLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1t0ZXRhLWNhbnZhcy0zZC1ob3N0XScsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhbnZhczNkSG9zdCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgc2NlbmU6IHR5cGVvZiBTY2VuZUNvbXBvbmVudDtcbiAgQElucHV0KCkgY2FtZXJhOiBDYW1lcmE7XG4gIEBJbnB1dCgpIGRhdGE6IEkzZENoYXJ0Q29uZmlnO1xuXG4gIHByaXZhdGUgX2luaXQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdGVDYW52YXMoKTtcbiAgICB0aGlzLl9pbml0ID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbml0KSB7XG4gICAgICB0aGlzLmNyZWF0ZUNhbnZhcygpO1xuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZikuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUNhbnZhcygpIHtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KENhbnZhc0NvbXBvbmVudCk7XG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnNjZW5lID0gdGhpcy5zY2VuZTtcbiAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuY2FtZXJhID0gdGhpcy5jYW1lcmE7XG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmRhdGEgPSB0aGlzLmRhdGE7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,3 @@
1
1
  export * from './series-3d-host';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGhyZWUvdGhyZWUtY2hhcnQvZGlyZWN0aXZlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VyaWVzLTNkLWhvc3QnO1xuIl19
2
+ export * from './canvas-3d-host';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGhyZWUvdGhyZWUtY2hhcnQvZGlyZWN0aXZlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZXJpZXMtM2QtaG9zdCc7XG5leHBvcnQgKiBmcm9tICcuL2NhbnZhcy0zZC1ob3N0JztcbiJdfQ==
@@ -30,7 +30,7 @@ export class SceneComponent {
30
30
  this.rotation = this.store.get('camera').rotation;
31
31
  }
32
32
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SceneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: SceneComponent, isStandalone: true, selector: "teta-scene", ngImport: i0, template: "<ng-container *ngIf=\"{data:data|async} as config\">\n <ngt-scene>\n <ngts-orbit-controls [minAzimuthAngle]=\"0\" [maxAzimuthAngle]=\"Math.PI/2\" [maxZoom]=\"15\" [minZoom]=\"4\"\n (change)=\"setRotation()\"></ngts-orbit-controls>\n </ngt-scene>\n <teta-area-3d></teta-area-3d>\n <ng-container *ngFor=\"let s of config.data.series\">\n <div teta-series-3d-host [series]=\"s\"></div>\n </ng-container>\n <teta-axes-3d [rotation]=\"rotation\"></teta-axes-3d>\n</ng-container>\n\n\n", dependencies: [{ kind: "component", type: NgtsOrbitControls, selector: "ngts-orbit-controls", inputs: ["controlsRef", "camera", "domElement", "makeDefault", "regress", "target", "enableDamping"], outputs: ["change", "start", "end"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: Area3dComponent, selector: "teta-area-3d" }, { kind: "component", type: Axes3dComponent, selector: "teta-axes-3d", inputs: ["rotation"] }, { kind: "component", type: Series3dHost, selector: "[teta-series-3d-host]", inputs: ["series"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: SceneComponent, isStandalone: true, selector: "teta-scene", ngImport: i0, template: "<ng-container *ngIf=\"{data:data|async} as config\">\n <ngt-scene>\n <ngts-orbit-controls [minAzimuthAngle]=\"0\" [maxAzimuthAngle]=\"Math.PI/2\" [maxZoom]=\"15\" [minZoom]=\"4\"\n (change)=\"setRotation()\"></ngts-orbit-controls>\n </ngt-scene>\n <teta-area-3d></teta-area-3d>\n <ng-container *ngFor=\"let s of config.data?.series;\">\n <div teta-series-3d-host [series]=\"s\"></div>\n </ng-container>\n <teta-axes-3d [rotation]=\"rotation\"></teta-axes-3d>\n</ng-container>\n\n\n", dependencies: [{ kind: "component", type: NgtsOrbitControls, selector: "ngts-orbit-controls", inputs: ["controlsRef", "camera", "domElement", "makeDefault", "regress", "target", "enableDamping"], outputs: ["change", "start", "end"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: Area3dComponent, selector: "teta-area-3d" }, { kind: "component", type: Axes3dComponent, selector: "teta-axes-3d", inputs: ["rotation"] }, { kind: "component", type: Series3dHost, selector: "[teta-series-3d-host]", inputs: ["series"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
34
34
  }
35
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SceneComponent, decorators: [{
36
36
  type: Component,
@@ -42,6 +42,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
42
42
  Axes3dComponent,
43
43
  Block3dComponent,
44
44
  Series3dHost,
45
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<ng-container *ngIf=\"{data:data|async} as config\">\n <ngt-scene>\n <ngts-orbit-controls [minAzimuthAngle]=\"0\" [maxAzimuthAngle]=\"Math.PI/2\" [maxZoom]=\"15\" [minZoom]=\"4\"\n (change)=\"setRotation()\"></ngts-orbit-controls>\n </ngt-scene>\n <teta-area-3d></teta-area-3d>\n <ng-container *ngFor=\"let s of config.data.series\">\n <div teta-series-3d-host [series]=\"s\"></div>\n </ng-container>\n <teta-axes-3d [rotation]=\"rotation\"></teta-axes-3d>\n</ng-container>\n\n\n" }]
45
+ ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<ng-container *ngIf=\"{data:data|async} as config\">\n <ngt-scene>\n <ngts-orbit-controls [minAzimuthAngle]=\"0\" [maxAzimuthAngle]=\"Math.PI/2\" [maxZoom]=\"15\" [minZoom]=\"4\"\n (change)=\"setRotation()\"></ngts-orbit-controls>\n </ngt-scene>\n <teta-area-3d></teta-area-3d>\n <ng-container *ngFor=\"let s of config.data?.series;\">\n <div teta-series-3d-host [series]=\"s\"></div>\n </ng-container>\n <teta-axes-3d [rotation]=\"rotation\"></teta-axes-3d>\n</ng-container>\n\n\n" }]
46
46
  }], ctorParameters: function () { return []; } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90aHJlZS90aHJlZS1jaGFydC9zY2VuZS9zY2VuZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L3NjZW5lL3NjZW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSWhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQWtCN0QsTUFBTSxPQUFPLGNBQWM7SUFDbEIsSUFBSSxDQUE2QjtJQUNqQyxRQUFRLENBQVE7SUFDUCxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RCLElBQUksR0FBRyxJQUFJLENBQUM7SUFDWixZQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RDLElBQUksR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwRDtRQUNFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDckMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNwRCxDQUFDO3VHQXBCVSxjQUFjOzJGQUFkLGNBQWMsc0VDdEMzQixxZ0JBYUEsNENEZUksaUJBQWlCLDBNQUNqQixZQUFZLHFUQUNaLGVBQWUseURBRWYsZUFBZSwrRUFFZixZQUFZOzsyRkFJSCxjQUFjO2tCQWhCMUIsU0FBUztpQ0FDSSxJQUFJLFlBQ04sWUFBWSxtQkFFTCx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLFlBQVk7cUJBQ2IsV0FDUSxDQUFDLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICBpbmplY3QsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgTmd0c09yYml0Q29udHJvbHMgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvY29udHJvbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRXVsZXIgfSBmcm9tICd0aHJlZSc7XG5cbmltcG9ydCB7IEFyZWEzZENvbXBvbmVudCB9IGZyb20gJy4uL2FyZWEtM2QvYXJlYS0zZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXhlczNkQ29tcG9uZW50IH0gZnJvbSAnLi4vYXhlcy0zZC9heGVzLTNkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbG9jazNkQ29tcG9uZW50IH0gZnJvbSAnLi4vYmxvY2stM2QvYmxvY2stM2QuY29tcG9uZW50JztcbmltcG9ydCB7IFNlcmllczNkSG9zdCB9IGZyb20gJy4uL2RpcmVjdGl2ZS9zZXJpZXMtM2QtaG9zdCc7XG5pbXBvcnQgeyBMaW5lM2RDb21wb25lbnQgfSBmcm9tICcuLi9saW5lLTNkL2xpbmUtM2QuY29tcG9uZW50JztcbmltcG9ydCB7IEkzZENoYXJ0Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvaS0zZC1jaGFydC1jb25maWcnO1xuaW1wb3J0IHsgQ2hhcnQzZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2NoYXJ0LTNkLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd0ZXRhLXNjZW5lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NjZW5lLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBOZ3RzT3JiaXRDb250cm9scyxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQXJlYTNkQ29tcG9uZW50LFxuICAgIExpbmUzZENvbXBvbmVudCxcbiAgICBBeGVzM2RDb21wb25lbnQsXG4gICAgQmxvY2szZENvbXBvbmVudCxcbiAgICBTZXJpZXMzZEhvc3QsXG4gIF0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgU2NlbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgZGF0YTogT2JzZXJ2YWJsZTxJM2RDaGFydENvbmZpZz47XG4gIHB1YmxpYyByb3RhdGlvbjogRXVsZXI7XG4gIHB1YmxpYyByZWFkb25seSBzdG9yZSA9IGluamVjdChOZ3RTdG9yZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBNYXRoID0gTWF0aDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoYXJ0U2VydmljZSA9IGluamVjdChDaGFydDNkU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kYXRhID0gdGhpcy5jaGFydFNlcnZpY2UuZGF0YTtcbiAgfVxuXG4gIHNldFJvdGF0aW9uKCkge1xuICAgIHRoaXMucm90YXRpb24gPSBudWxsO1xuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5yb3RhdGlvbiA9IHRoaXMuc3RvcmUuZ2V0KCdjYW1lcmEnKS5yb3RhdGlvbjtcbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3RhdGlvbiA9IHRoaXMuc3RvcmUuZ2V0KCdjYW1lcmEnKS5yb3RhdGlvbjtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIntkYXRhOmRhdGF8YXN5bmN9IGFzIGNvbmZpZ1wiPlxuICA8bmd0LXNjZW5lPlxuICAgIDxuZ3RzLW9yYml0LWNvbnRyb2xzIFttaW5BemltdXRoQW5nbGVdPVwiMFwiIFttYXhBemltdXRoQW5nbGVdPVwiTWF0aC5QSS8yXCIgW21heFpvb21dPVwiMTVcIiBbbWluWm9vbV09XCI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldFJvdGF0aW9uKClcIj48L25ndHMtb3JiaXQtY29udHJvbHM+XG4gIDwvbmd0LXNjZW5lPlxuICA8dGV0YS1hcmVhLTNkPjwvdGV0YS1hcmVhLTNkPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzIG9mIGNvbmZpZy5kYXRhLnNlcmllc1wiPlxuICAgIDxkaXYgdGV0YS1zZXJpZXMtM2QtaG9zdCBbc2VyaWVzXT1cInNcIj48L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDx0ZXRhLWF4ZXMtM2QgW3JvdGF0aW9uXT1cInJvdGF0aW9uXCI+PC90ZXRhLWF4ZXMtM2Q+XG48L25nLWNvbnRhaW5lcj5cblxuXG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90aHJlZS90aHJlZS1jaGFydC9zY2VuZS9zY2VuZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L3NjZW5lL3NjZW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSWhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQWtCN0QsTUFBTSxPQUFPLGNBQWM7SUFDbEIsSUFBSSxDQUE2QjtJQUNqQyxRQUFRLENBQVE7SUFDUCxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RCLElBQUksR0FBRyxJQUFJLENBQUM7SUFDWixZQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RDLElBQUksR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwRDtRQUNFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUE7SUFDcEMsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNwRCxDQUFDO3VHQW5CVSxjQUFjOzJGQUFkLGNBQWMsc0VDdEMzQix1Z0JBYUEsNENEZUksaUJBQWlCLDBNQUNqQixZQUFZLHFUQUNaLGVBQWUseURBRWYsZUFBZSwrRUFFZixZQUFZOzsyRkFJSCxjQUFjO2tCQWhCMUIsU0FBUztpQ0FDSSxJQUFJLFlBQ04sWUFBWSxtQkFFTCx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLFlBQVk7cUJBQ2IsV0FDUSxDQUFDLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICBpbmplY3QsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RTdG9yZX0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBOZ3RzT3JiaXRDb250cm9scyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9jb250cm9scyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFdWxlciB9IGZyb20gJ3RocmVlJztcblxuaW1wb3J0IHsgQXJlYTNkQ29tcG9uZW50IH0gZnJvbSAnLi4vYXJlYS0zZC9hcmVhLTNkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBeGVzM2RDb21wb25lbnQgfSBmcm9tICcuLi9heGVzLTNkL2F4ZXMtM2QuY29tcG9uZW50JztcbmltcG9ydCB7IEJsb2NrM2RDb21wb25lbnQgfSBmcm9tICcuLi9ibG9jay0zZC9ibG9jay0zZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VyaWVzM2RIb3N0IH0gZnJvbSAnLi4vZGlyZWN0aXZlL3Nlcmllcy0zZC1ob3N0JztcbmltcG9ydCB7IExpbmUzZENvbXBvbmVudCB9IGZyb20gJy4uL2xpbmUtM2QvbGluZS0zZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSTNkQ2hhcnRDb25maWcgfSBmcm9tICcuLi9tb2RlbC9pLTNkLWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQgeyBDaGFydDNkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvY2hhcnQtM2Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3RldGEtc2NlbmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NlbmUuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIE5ndHNPcmJpdENvbnRyb2xzLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBcmVhM2RDb21wb25lbnQsXG4gICAgTGluZTNkQ29tcG9uZW50LFxuICAgIEF4ZXMzZENvbXBvbmVudCxcbiAgICBCbG9jazNkQ29tcG9uZW50LFxuICAgIFNlcmllczNkSG9zdCxcbiAgXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBTY2VuZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBkYXRhOiBPYnNlcnZhYmxlPEkzZENoYXJ0Q29uZmlnPjtcbiAgcHVibGljIHJvdGF0aW9uOiBFdWxlcjtcbiAgcHVibGljIHJlYWRvbmx5IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IE1hdGggPSBNYXRoO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hhcnRTZXJ2aWNlID0gaW5qZWN0KENoYXJ0M2RTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmNoYXJ0U2VydmljZS5kYXRhXG4gIH1cbiAgc2V0Um90YXRpb24oKSB7XG4gICAgdGhpcy5yb3RhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnJvdGF0aW9uID0gdGhpcy5zdG9yZS5nZXQoJ2NhbWVyYScpLnJvdGF0aW9uO1xuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdGF0aW9uID0gdGhpcy5zdG9yZS5nZXQoJ2NhbWVyYScpLnJvdGF0aW9uO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwie2RhdGE6ZGF0YXxhc3luY30gYXMgY29uZmlnXCI+XG4gIDxuZ3Qtc2NlbmU+XG4gICAgPG5ndHMtb3JiaXQtY29udHJvbHMgW21pbkF6aW11dGhBbmdsZV09XCIwXCIgW21heEF6aW11dGhBbmdsZV09XCJNYXRoLlBJLzJcIiBbbWF4Wm9vbV09XCIxNVwiIFttaW5ab29tXT1cIjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0Um90YXRpb24oKVwiPjwvbmd0cy1vcmJpdC1jb250cm9scz5cbiAgPC9uZ3Qtc2NlbmU+XG4gIDx0ZXRhLWFyZWEtM2Q+PC90ZXRhLWFyZWEtM2Q+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2YgY29uZmlnLmRhdGE/LnNlcmllcztcIj5cbiAgICA8ZGl2IHRldGEtc2VyaWVzLTNkLWhvc3QgW3Nlcmllc109XCJzXCI+PC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8dGV0YS1heGVzLTNkIFtyb3RhdGlvbl09XCJyb3RhdGlvblwiPjwvdGV0YS1heGVzLTNkPlxuPC9uZy1jb250YWluZXI+XG5cblxuIl19
@@ -1,22 +1,17 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { map, ReplaySubject, shareReplay } from 'rxjs';
3
3
  import * as d3 from 'd3';
4
- import { tap } from 'rxjs/operators';
5
4
  import * as i0 from "@angular/core";
6
5
  export class Chart3dService {
7
6
  minMax;
8
7
  data;
9
8
  scales;
10
- minMax$ = new ReplaySubject(1);
11
9
  data$ = new ReplaySubject(1);
12
10
  constructor() {
13
11
  this.data = this.data$.asObservable();
14
- this.minMax = this.minMax$.asObservable();
15
- this.data
16
- .pipe(tap(_ => {
17
- this.minMax$.next(this.getAxesMinMax(_));
18
- }))
19
- .subscribe();
12
+ this.minMax = this.data.pipe(map(_ => {
13
+ return this.getAxesMinMax(_);
14
+ }));
20
15
  this.scales = this.minMax.pipe(map(minMax => {
21
16
  return this.getScales(minMax);
22
17
  }), shareReplay(1));
@@ -88,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
88
83
  providedIn: 'root',
89
84
  }]
90
85
  }], ctorParameters: function () { return []; } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtM2Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGhyZWUvdGhyZWUtY2hhcnQvc2VydmljZS9jaGFydC0zZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBYyxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR25FLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLckMsTUFBTSxPQUFPLGNBQWM7SUFDbEIsTUFBTSxDQUEyQjtJQUNqQyxJQUFJLENBQTZCO0lBQ2pDLE1BQU0sQ0FBMEI7SUFDL0IsT0FBTyxHQUNiLElBQUksYUFBYSxDQUFlLENBQUMsQ0FBQyxDQUFDO0lBQzdCLEtBQUssR0FDWCxJQUFJLGFBQWEsQ0FBaUIsQ0FBQyxDQUFDLENBQUM7SUFDdkM7UUFDRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxJQUFJO2FBQ04sSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO1FBRWYsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDNUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxF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QUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE9BQU87WUFDTCxDQUFDO1lBQ0QsQ0FBQztZQUNELENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQzt1R0F6RlUsY0FBYzsyR0FBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJM2RDaGFydENvbmZpZyB9IGZyb20gJy4uL21vZGVsL2ktM2QtY2hhcnQtY29uZmlnJztcbmltcG9ydCB7IEF4ZXMzZE1pbk1heCB9IGZyb20gJy4uL21vZGVsL2F4ZXMtM2QtbWluLW1heCc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFydDNkU2VydmljZSB7XG4gIHB1YmxpYyBtaW5NYXg6IE9ic2VydmFibGU8QXhlczNkTWluTWF4PjtcbiAgcHVibGljIGRhdGE6IE9ic2VydmFibGU8STNkQ2hhcnRDb25maWc+O1xuICBwdWJsaWMgc2NhbGVzOiBPYnNlcnZhYmxlPHsgeDsgeTsgeiB9PjtcbiAgcHJpdmF0ZSBtaW5NYXgkOiBSZXBsYXlTdWJqZWN0PEF4ZXMzZE1pbk1heD4gPVxuICAgIG5ldyBSZXBsYXlTdWJqZWN0PEF4ZXMzZE1pbk1heD4oMSk7XG4gIHByaXZhdGUgZGF0YSQ6IFJlcGxheVN1YmplY3Q8STNkQ2hhcnRDb25maWc+ID1cbiAgICBuZXcgUmVwbGF5U3ViamVjdDxJM2RDaGFydENvbmZpZz4oMSk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5taW5NYXggPSB0aGlzLm1pbk1heCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5kYXRhXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKF8gPT4ge1xuICAgICAgICAgIHRoaXMubWluTWF4JC5uZXh0KHRoaXMuZ2V0QXhlc01pbk1heChfKSk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnNjYWxlcyA9IHRoaXMubWluTWF4LnBpcGUoXG4gICAgICBtYXAobWluTWF4ID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2NhbGVzKG1pbk1heCk7XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuICBzZXREYXRhKGRhdGEpIHtcbiAgICB0aGlzLmRhdGEkLm5leHQoZGF0YSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRBeGVzTWluTWF4KGRhdGE6IEkzZENoYXJ0Q29uZmlnKTogQXhlczNkTWluTWF4IHtcbiAgICBjb25zdCB6QXJyOiBudW1iZXJbXSA9IGRhdGEuc2VyaWVzXG4gICAgICAubWFwKF8gPT4ge1xuICAgICAgICByZXR1cm4gXz8uZGF0YT8ubWFwKGQgPT4gZD8ueik7XG4gICAgICB9KVxuICAgICAgLmZsYXQoKVxuICAgICAgLmZpbHRlcihfID0+IHtcbiAgICAgICAgcmV0dXJuIF8gIT09IG51bGwgJiYgXyAhPT0gdW5kZWZpbmVkO1xuICAgICAgfSk7XG4gICAgY29uc3QgeEFycjogbnVtYmVyW10gPSBkYXRhLnNlcmllc1xuICAgICAgLm1hcChfID0+IHtcbiAgICAgICAgcmV0dXJuIF8/LmRhdGE/Lm1hcChkID0+IGQ/LngpO1xuICAgICAgfSlcbiAgICAgIC5mbGF0KClcbiAgICAgIC5maWx0ZXIoXyA9PiB7XG4gICAgICAgIHJldHVybiBfICE9PSBudWxsICYmIF8gIT09IHVuZGVmaW5lZDtcbiAgICAgIH0pO1xuICAgIGNvbnN0IHlBcnI6IG51bWJlcltdID0gZGF0YS5zZXJpZXNcbiAgICAgIC5tYXAoXyA9PiB7XG4gICAgICAgIHJldHVybiBfPy5kYXRhPy5tYXAoZCA9PiBkPy55KTtcbiAgICAgIH0pXG4gICAgICAuZmxhdCgpXG4gICAgICAuZmlsdGVyKF8gPT4ge1xuICAgICAgICByZXR1cm4gXyAhPT0gbnVsbCAmJiBfICE9PSB1bmRlZmluZWQ7XG4gICAgICB9KTtcbiAgICBjb25zdCBaTWluTWF4VmFsOiBbbnVtYmVyLCBudW1iZXJdID0gW01hdGgubWluKC4uLnpBcnIpLCBNYXRoLm1heCguLi56QXJyKV07XG4gICAgY29uc3QgWE1pbk1heFZhbDogW251bWJlciwgbnVtYmVyXSA9IFtNYXRoLm1pbiguLi54QXJyKSwgTWF0aC5tYXgoLi4ueEFycildO1xuICAgIGNvbnN0IFlNaW5NYXhWYWw6IFtudW1iZXIsIG51bWJlcl0gPSBbTWF0aC5taW4oLi4ueUFyciksIE1hdGgubWF4KC4uLnlBcnIpXTtcbiAgICByZXR1cm4ge1xuICAgICAgejogdGhpcy5nZXRNaW5NYXhSYW5nZShaTWluTWF4VmFsLCBkYXRhLnpBeGlzPy5taW4sIGRhdGEuekF4aXM/Lm1heCksXG4gICAgICB4OiB0aGlzLmdldE1pbk1heFJhbmdlKFhNaW5NYXhWYWwsIGRhdGEueEF4aXM/Lm1pbiwgZGF0YS54QXhpcz8ubWF4KSxcbiAgICAgIHk6IHRoaXMuZ2V0TWluTWF4UmFuZ2UoWU1pbk1heFZhbCwgZGF0YS55QXhpcz8ubWluLCBkYXRhLnlBeGlzPy5tYXgpLFxuICAgIH07XG4gIH1cbiAgcHJpdmF0ZSBnZXRNaW5NYXhSYW5nZShcbiAgICBtaW5NYXg6IFtudW1iZXIsIG51bWJlcl0sXG4gICAgYXhpc01pbjogbnVtYmVyLFxuICAgIGF4aXNNYXg6IG51bWJlclxuICApOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICBjb25zdCBtaW4gPVxuICAgICAgYXhpc01pbiB8fFxuICAgICAgKG1pbk1heFswXSA9PT0gbWluTWF4WzFdXG4gICAgICAgID8gbWluTWF4WzBdIC0gTWF0aC5hYnMobWluTWF4WzBdIC0gMSkgKiAwLjFcbiAgICAgICAgOiBtaW5NYXhbMF0pO1xuICAgIGNvbnN0IG1heCA9XG4gICAgICBheGlzTWF4IHx8XG4gICAgICAobWluTWF4WzBdID09PSBtaW5NYXhbMV1cbiAgICAgICAgPyBtaW5NYXhbMV0gKyBNYXRoLmFicyhtaW5NYXhbMV0gKyAxKSAqIDAuMVxuICAgICAgICA6IG1pbk1heFsxXSk7XG4gICAgcmV0dXJuIFttaW4sIG1heF07XG4gIH1cbiAgcHJpdmF0ZSBnZXRTY2FsZXMoYXhlc01pbk1heDogQXhlczNkTWluTWF4KSB7XG4gICAgY29uc3QgeiA9IGQzLnNjYWxlTGluZWFyKCkuZG9tYWluKGF4ZXNNaW5NYXgueikucmFuZ2UoWzUwLCAtNTBdKTtcbiAgICBjb25zdCB4ID0gZDMuc2NhbGVMaW5lYXIoKS5kb21haW4oYXhlc01pbk1heC54KS5yYW5nZShbMjUsIDBdKTtcbiAgICBjb25zdCB5ID0gZDMuc2NhbGVMaW5lYXIoKS5kb21haW4oYXhlc01pbk1heC55KS5yYW5nZShbNTAsIC01MF0pO1xuICAgIHJldHVybiB7XG4gICAgICB4LFxuICAgICAgeSxcbiAgICAgIHosXG4gICAgfTtcbiAgfVxufVxuIl19
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtM2Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGhyZWUvdGhyZWUtY2hhcnQvc2VydmljZS9jaGFydC0zZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEdBQUcsRUFBYyxhQUFhLEVBQUUsV0FBVyxFQUFNLE1BQU0sTUFBTSxDQUFDO0FBR3RFLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDOztBQUt6QixNQUFNLE9BQU8sY0FBYztJQUNsQixNQUFNLENBQTJCO0lBQ2pDLElBQUksQ0FBNkI7SUFDakMsTUFBTSxDQUEwQjtJQUMvQixLQUFLLEdBQ1gsSUFBSSxhQUFhLENBQWlCLENBQUMsQ0FBQyxDQUFDO0lBRXZDO1FBQ0UsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQzFCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDNUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFJO1FBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFD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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHttYXAsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIHNoYXJlUmVwbGF5LCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtJM2RDaGFydENvbmZpZ30gZnJvbSAnLi4vbW9kZWwvaS0zZC1jaGFydC1jb25maWcnO1xuaW1wb3J0IHtBeGVzM2RNaW5NYXh9IGZyb20gJy4uL21vZGVsL2F4ZXMtM2QtbWluLW1heCc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFydDNkU2VydmljZSB7XG4gIHB1YmxpYyBtaW5NYXg6IE9ic2VydmFibGU8QXhlczNkTWluTWF4PjtcbiAgcHVibGljIGRhdGE6IE9ic2VydmFibGU8STNkQ2hhcnRDb25maWc+O1xuICBwdWJsaWMgc2NhbGVzOiBPYnNlcnZhYmxlPHsgeDsgeTsgeiB9PjtcbiAgcHJpdmF0ZSBkYXRhJDogUmVwbGF5U3ViamVjdDxJM2RDaGFydENvbmZpZz4gPVxuICAgIG5ldyBSZXBsYXlTdWJqZWN0PEkzZENoYXJ0Q29uZmlnPigxKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMubWluTWF4ID0gdGhpcy5kYXRhLnBpcGUoXG4gICAgICBtYXAoXyA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEF4ZXNNaW5NYXgoXyk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zY2FsZXMgPSB0aGlzLm1pbk1heC5waXBlKFxuICAgICAgbWFwKG1pbk1heCA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNjYWxlcyhtaW5NYXgpO1xuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBzZXREYXRhKGRhdGEpIHtcbiAgICB0aGlzLmRhdGEkLm5leHQoZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIGdldEF4ZXNNaW5NYXgoZGF0YTogSTNkQ2hhcnRDb25maWcpOiBBeGVzM2RNaW5NYXgge1xuICAgIGNvbnN0IHpBcnI6IG51bWJlcltdID0gZGF0YS5zZXJpZXNcbiAgICAgIC5tYXAoXyA9PiB7XG4gICAgICAgIHJldHVybiBfPy5kYXRhPy5tYXAoZCA9PiBkPy56KTtcbiAgICAgIH0pXG4gICAgICAuZmxhdCgpXG4gICAgICAuZmlsdGVyKF8gPT4ge1xuICAgICAgICByZXR1cm4gXyAhPT0gbnVsbCAmJiBfICE9PSB1bmRlZmluZWQ7XG4gICAgICB9KTtcbiAgICBjb25zdCB4QXJyOiBudW1iZXJbXSA9IGRhdGEuc2VyaWVzXG4gICAgICAubWFwKF8gPT4ge1xuICAgICAgICByZXR1cm4gXz8uZGF0YT8ubWFwKGQgPT4gZD8ueCk7XG4gICAgICB9KVxuICAgICAgLmZsYXQoKVxuICAgICAgLmZpbHRlcihfID0+IHtcbiAgICAgICAgcmV0dXJuIF8gIT09IG51bGwgJiYgXyAhPT0gdW5kZWZpbmVkO1xuICAgICAgfSk7XG4gICAgY29uc3QgeUFycjogbnVtYmVyW10gPSBkYXRhLnNlcmllc1xuICAgICAgLm1hcChfID0+IHtcbiAgICAgICAgcmV0dXJuIF8/LmRhdGE/Lm1hcChkID0+IGQ/LnkpO1xuICAgICAgfSlcbiAgICAgIC5mbGF0KClcbiAgICAgIC5maWx0ZXIoXyA9PiB7XG4gICAgICAgIHJldHVybiBfICE9PSBudWxsICYmIF8gIT09IHVuZGVmaW5lZDtcbiAgICAgIH0pO1xuICAgIGNvbnN0IFpNaW5NYXhWYWw6IFtudW1iZXIsIG51bWJlcl0gPSBbTWF0aC5taW4oLi4uekFyciksIE1hdGgubWF4KC4uLnpBcnIpXTtcbiAgICBjb25zdCBYTWluTWF4VmFsOiBbbnVtYmVyLCBudW1iZXJdID0gW01hdGgubWluKC4uLnhBcnIpLCBNYXRoLm1heCguLi54QXJyKV07XG4gICAgY29uc3QgWU1pbk1heFZhbDogW251bWJlciwgbnVtYmVyXSA9IFtNYXRoLm1pbiguLi55QXJyKSwgTWF0aC5tYXgoLi4ueUFycildO1xuICAgIHJldHVybiB7XG4gICAgICB6OiB0aGlzLmdldE1pbk1heFJhbmdlKFpNaW5NYXhWYWwsIGRhdGEuekF4aXM/Lm1pbiwgZGF0YS56QXhpcz8ubWF4KSxcbiAgICAgIHg6IHRoaXMuZ2V0TWluTWF4UmFuZ2UoWE1pbk1heFZhbCwgZGF0YS54QXhpcz8ubWluLCBkYXRhLnhBeGlzPy5tYXgpLFxuICAgICAgeTogdGhpcy5nZXRNaW5NYXhSYW5nZShZTWluTWF4VmFsLCBkYXRhLnlBeGlzPy5taW4sIGRhdGEueUF4aXM/Lm1heCksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TWluTWF4UmFuZ2UoXG4gICAgbWluTWF4OiBbbnVtYmVyLCBudW1iZXJdLFxuICAgIGF4aXNNaW46IG51bWJlcixcbiAgICBheGlzTWF4OiBudW1iZXJcbiAgKTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgY29uc3QgbWluID1cbiAgICAgIGF4aXNNaW4gfHxcbiAgICAgIChtaW5NYXhbMF0gPT09IG1pbk1heFsxXVxuICAgICAgICA/IG1pbk1heFswXSAtIE1hdGguYWJzKG1pbk1heFswXSAtIDEpICogMC4xXG4gICAgICAgIDogbWluTWF4WzBdKTtcbiAgICBjb25zdCBtYXggPVxuICAgICAgYXhpc01heCB8fFxuICAgICAgKG1pbk1heFswXSA9PT0gbWluTWF4WzFdXG4gICAgICAgID8gbWluTWF4WzFdICsgTWF0aC5hYnMobWluTWF4WzFdICsgMSkgKiAwLjFcbiAgICAgICAgOiBtaW5NYXhbMV0pO1xuICAgIHJldHVybiBbbWluLCBtYXhdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTY2FsZXMoYXhlc01pbk1heDogQXhlczNkTWluTWF4KSB7XG4gICAgY29uc3QgeiA9IGQzLnNjYWxlTGluZWFyKCkuZG9tYWluKGF4ZXNNaW5NYXgueikucmFuZ2UoWzUwLCAtNTBdKTtcbiAgICBjb25zdCB4ID0gZDMuc2NhbGVMaW5lYXIoKS5kb21haW4oYXhlc01pbk1heC54KS5yYW5nZShbMjUsIDBdKTtcbiAgICBjb25zdCB5ID0gZDMuc2NhbGVMaW5lYXIoKS5kb21haW4oYXhlc01pbk1heC55KS5yYW5nZShbNTAsIC01MF0pO1xuICAgIHJldHVybiB7XG4gICAgICB4LFxuICAgICAgeSxcbiAgICAgIHosXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,18 +1,21 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, inject, Input, } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, inject, Input, } from '@angular/core';
3
3
  import { extend, NgtCanvas, NgtStore } from 'angular-three';
4
4
  import * as THREE from 'three';
5
5
  import { OrthographicCamera } from 'three';
6
6
  import { SceneComponent } from './scene/scene.component';
7
7
  import { Chart3dService } from './service/chart-3d.service';
8
+ import { CanvasComponent } from "./canvas/canvas.component";
9
+ import { Canvas3dHost } from "./directive/canvas-3d-host";
8
10
  import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
11
  extend(THREE);
11
12
  export class ThreeChartComponent {
12
13
  data;
13
14
  scene;
14
15
  camera;
15
16
  chartService = inject(Chart3dService);
17
+ store = inject(NgtStore);
18
+ cdr = inject(ChangeDetectorRef);
16
19
  ngOnInit() {
17
20
  this.scene = SceneComponent;
18
21
  this.camera = new OrthographicCamera(20, 20, 20, 20, 0.1, 1000);
@@ -26,12 +29,12 @@ export class ThreeChartComponent {
26
29
  }
27
30
  }
28
31
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: ThreeChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: ThreeChartComponent, isStandalone: true, selector: "teta-three-chart", inputs: { data: "data" }, providers: [NgtStore], usesOnChanges: true, ngImport: i0, template: "<div class=\"column_auto column justify-content-center align-center\" style=\"height: 100%;width: 100%;\">\n <ngt-canvas *ngIf=\"data?.series?.length;else noData\" [sceneGraph]=\"scene\"\n [camera]=\"camera\">\n </ngt-canvas>\n <ng-template #noData>\n <p>{{data?.noDataText||'no data'}}</p>\n </ng-template>\n</div>\n", styles: [":host{width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: NgtCanvas, selector: "ngt-canvas", inputs: ["sceneGraph", "sceneGraphInputs", "compoundPrefixes", "linear", "legacy", "flat", "orthographic", "frameloop", "dpr", "raycaster", "shadows", "camera", "gl", "eventSource", "eventPrefix", "lookAt", "performance"], outputs: ["created", "pointerMissed"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: ThreeChartComponent, isStandalone: true, selector: "teta-three-chart", inputs: { data: "data" }, providers: [NgtStore], usesOnChanges: true, ngImport: i0, template: "<div class=\"column_auto column justify-content-center align-center\" style=\"height: 100%;width: 100%;\">\n <div teta-canvas-3d-host [camera]=\"camera\" [data]=\"data\" [scene]=\"scene\"></div>\n</div>\n", styles: [":host{width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: Canvas3dHost, selector: "[teta-canvas-3d-host]", inputs: ["scene", "camera", "data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
33
  }
31
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: ThreeChartComponent, decorators: [{
32
35
  type: Component,
33
- args: [{ selector: 'teta-three-chart', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, providers: [NgtStore], imports: [NgtCanvas, SceneComponent, CommonModule], template: "<div class=\"column_auto column justify-content-center align-center\" style=\"height: 100%;width: 100%;\">\n <ngt-canvas *ngIf=\"data?.series?.length;else noData\" [sceneGraph]=\"scene\"\n [camera]=\"camera\">\n </ngt-canvas>\n <ng-template #noData>\n <p>{{data?.noDataText||'no data'}}</p>\n </ng-template>\n</div>\n", styles: [":host{width:100%;height:100%}\n"] }]
36
+ args: [{ selector: 'teta-three-chart', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, providers: [NgtStore], imports: [NgtCanvas, SceneComponent, CommonModule, CanvasComponent, Canvas3dHost], template: "<div class=\"column_auto column justify-content-center align-center\" style=\"height: 100%;width: 100%;\">\n <div teta-canvas-3d-host [camera]=\"camera\" [data]=\"data\" [scene]=\"scene\"></div>\n</div>\n", styles: [":host{width:100%;height:100%}\n"] }]
34
37
  }], propDecorators: { data: [{
35
38
  type: Input
36
39
  }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90aHJlZS90aHJlZS1jaGFydC90aHJlZS1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L3RocmVlLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxzQkFBc0IsRUFDdEIsTUFBTSxFQUNOLEtBQUssR0FJTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUU1RCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFZZCxNQUFNLE9BQU8sbUJBQW1CO0lBQ3JCLElBQUksQ0FBaUI7SUFDdkIsS0FBSyxDQUF3QjtJQUM3QixNQUFNLENBQXFCO0lBQ2YsWUFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV6RCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFO1lBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7dUdBbEJVLG1CQUFtQjsyRkFBbkIsbUJBQW1CLHlGQUhuQixDQUFDLFFBQVEsQ0FBQywrQ0M1QnZCLG1WQVFBLHlGRHFCWSxTQUFTLDRUQUFrQixZQUFZOzsyRkFFdEMsbUJBQW1CO2tCQVYvQixTQUFTOytCQUNFLGtCQUFrQixjQUdoQixJQUFJLFdBQ1AsQ0FBQyxzQkFBc0IsQ0FBQyxtQkFDaEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLFFBQVEsQ0FBQyxXQUNaLENBQUMsU0FBUyxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUM7OEJBR3pDLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIE5ndENhbnZhcywgTmd0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE9ydGhvZ3JhcGhpY0NhbWVyYSB9IGZyb20gJ3RocmVlJztcblxuaW1wb3J0IHsgSTNkQ2hhcnRDb25maWcgfSBmcm9tICcuL21vZGVsL2ktM2QtY2hhcnQtY29uZmlnJztcbmltcG9ydCB7IFNjZW5lQ29tcG9uZW50IH0gZnJvbSAnLi9zY2VuZS9zY2VuZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhcnQzZFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2UvY2hhcnQtM2Quc2VydmljZSc7XG5cbmV4dGVuZChUSFJFRSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtdGhyZWUtY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGhyZWUtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90aHJlZS1jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtOZ3RTdG9yZV0sXG4gIGltcG9ydHM6IFtOZ3RDYW52YXMsIFNjZW5lQ29tcG9uZW50LCBDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBUaHJlZUNoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkYXRhOiBJM2RDaGFydENvbmZpZztcbiAgcHVibGljIHNjZW5lOiB0eXBlb2YgU2NlbmVDb21wb25lbnQ7XG4gIHB1YmxpYyBjYW1lcmE6IE9ydGhvZ3JhcGhpY0NhbWVyYTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoYXJ0U2VydmljZSA9IGluamVjdChDaGFydDNkU2VydmljZSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zY2VuZSA9IFNjZW5lQ29tcG9uZW50O1xuICAgIHRoaXMuY2FtZXJhID0gbmV3IE9ydGhvZ3JhcGhpY0NhbWVyYSgyMCwgMjAsIDIwLCAyMCwgMC4xLCAxMDAwKTtcbiAgICB0aGlzLmNhbWVyYS5wb3NpdGlvbi5zZXQoMTAwLCAyMCwgNzApO1xuICAgIHRoaXMuY2FtZXJhLnpvb20gPSA0LjU7XG4gICAgdGhpcy5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGE/LnNlcmllcz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5zZXREYXRhKHRoaXMuZGF0YSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29sdW1uX2F1dG8gY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24tY2VudGVyXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7d2lkdGg6IDEwMCU7XCI+XG4gIDxuZ3QtY2FudmFzICpuZ0lmPVwiZGF0YT8uc2VyaWVzPy5sZW5ndGg7ZWxzZSBub0RhdGFcIiBbc2NlbmVHcmFwaF09XCJzY2VuZVwiXG4gICAgICAgICAgICAgIFtjYW1lcmFdPVwiY2FtZXJhXCI+XG4gIDwvbmd0LWNhbnZhcz5cbiAgPG5nLXRlbXBsYXRlICNub0RhdGE+XG4gICAgPHA+e3tkYXRhPy5ub0RhdGFUZXh0fHwnbm8gZGF0YSd9fTwvcD5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90aHJlZS90aHJlZS1jaGFydC90aHJlZS1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L3RocmVlLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQzFDLFNBQVMsRUFDVCxzQkFBc0IsRUFDdEIsTUFBTSxFQUNOLEtBQUssR0FJTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sT0FBTyxDQUFDO0FBR3pDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHeEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBWWQsTUFBTSxPQUFPLG1CQUFtQjtJQUNyQixJQUFJLENBQWlCO0lBQ3ZCLEtBQUssQ0FBd0I7SUFDN0IsTUFBTSxDQUFxQjtJQUVmLFlBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUN4QixHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFFbEQsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTtZQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDO3VHQXJCVSxtQkFBbUI7MkZBQW5CLG1CQUFtQix5RkFIbkIsQ0FBQyxRQUFRLENBQUMsK0NDL0J2QixnTkFHQSx3RkQ2QnVDLFlBQVksK0JBQWtCLFlBQVk7OzJGQUVwRSxtQkFBbUI7a0JBVi9CLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUCxDQUFDLHNCQUFzQixDQUFDLG1CQUNoQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsUUFBUSxDQUFDLFdBQ1osQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUMsWUFBWSxDQUFDOzhCQUd2RSxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZXh0ZW5kLCBOZ3RDYW52YXMsIE5ndFN0b3JlfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7T3J0aG9ncmFwaGljQ2FtZXJhfSBmcm9tICd0aHJlZSc7XG5cbmltcG9ydCB7STNkQ2hhcnRDb25maWd9IGZyb20gJy4vbW9kZWwvaS0zZC1jaGFydC1jb25maWcnO1xuaW1wb3J0IHtTY2VuZUNvbXBvbmVudH0gZnJvbSAnLi9zY2VuZS9zY2VuZS5jb21wb25lbnQnO1xuaW1wb3J0IHtDaGFydDNkU2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlL2NoYXJ0LTNkLnNlcnZpY2UnO1xuaW1wb3J0IHtDYW52YXNDb21wb25lbnR9IGZyb20gXCIuL2NhbnZhcy9jYW52YXMuY29tcG9uZW50XCI7XG5pbXBvcnQge0NhbnZhczNkSG9zdH0gZnJvbSBcIi4vZGlyZWN0aXZlL2NhbnZhcy0zZC1ob3N0XCI7XG5pbXBvcnQgeyBTZXJpZXMzZFR5cGUgfSBmcm9tICcuL21vZGVsL2VudW0vc2VyaWVzLTNkLXR5cGUnO1xuXG5leHRlbmQoVEhSRUUpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLXRocmVlLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RocmVlLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGhyZWUtY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbTmd0U3RvcmVdLFxuICBpbXBvcnRzOiBbTmd0Q2FudmFzLCBTY2VuZUNvbXBvbmVudCwgQ29tbW9uTW9kdWxlLCBDYW52YXNDb21wb25lbnQsQ2FudmFzM2RIb3N0XSxcbn0pXG5leHBvcnQgY2xhc3MgVGhyZWVDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZGF0YTogSTNkQ2hhcnRDb25maWc7XG4gIHB1YmxpYyBzY2VuZTogdHlwZW9mIFNjZW5lQ29tcG9uZW50O1xuICBwdWJsaWMgY2FtZXJhOiBPcnRob2dyYXBoaWNDYW1lcmE7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoYXJ0U2VydmljZSA9IGluamVjdChDaGFydDNkU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzdG9yZSA9IGluamVjdChOZ3RTdG9yZSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZilcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNjZW5lID0gU2NlbmVDb21wb25lbnQ7XG4gICAgdGhpcy5jYW1lcmEgPSBuZXcgT3J0aG9ncmFwaGljQ2FtZXJhKDIwLCAyMCwgMjAsIDIwLCAwLjEsIDEwMDApO1xuICAgIHRoaXMuY2FtZXJhLnBvc2l0aW9uLnNldCgxMDAsIDIwLCA3MCk7XG4gICAgdGhpcy5jYW1lcmEuem9vbSA9IDQuNTtcbiAgICB0aGlzLmNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YT8uc2VyaWVzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLnNldERhdGEodGhpcy5kYXRhKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgIGNsYXNzPVwiY29sdW1uX2F1dG8gY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24tY2VudGVyXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7d2lkdGg6IDEwMCU7XCI+XG4gIDxkaXYgdGV0YS1jYW52YXMtM2QtaG9zdCBbY2FtZXJhXT1cImNhbWVyYVwiIFtkYXRhXT1cImRhdGFcIiBbc2NlbmVdPVwic2NlbmVcIj48L2Rpdj5cbjwvZGl2PlxuIl19