@tetacom/ng-threejs-chart 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/component/three/three-chart/axes-3d/axes-3d.component.d.ts +0 -1
- package/esm2022/component/three/custom-series/custom-series.component.mjs +5 -5
- package/esm2022/component/three/three-chart/area-3d/area-3d.component.mjs +5 -6
- package/esm2022/component/three/three-chart/axes-3d/axes-3d.component.mjs +5 -8
- package/esm2022/component/three/three-chart/base-3d-series/base3d-series.component.mjs +3 -3
- package/esm2022/component/three/three-chart/block-3d/block-3d.component.mjs +6 -6
- package/esm2022/component/three/three-chart/canvas/canvas.component.mjs +5 -6
- package/esm2022/component/three/three-chart/directive/canvas-3d-host.mjs +3 -3
- package/esm2022/component/three/three-chart/directive/series-3d-host.mjs +3 -3
- package/esm2022/component/three/three-chart/line-3d/line-3d.component.mjs +5 -5
- package/esm2022/component/three/three-chart/scene/scene.component.mjs +5 -5
- package/esm2022/component/three/three-chart/service/chart-3d.service.mjs +3 -3
- package/esm2022/component/three/three-chart/three-chart.component.mjs +3 -3
- package/fesm2022/tetacom-ng-threejs-chart.mjs +45 -48
- package/fesm2022/tetacom-ng-threejs-chart.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -21,7 +21,6 @@ export declare class Axes3dComponent implements OnDestroy {
|
|
|
21
21
|
x: any;
|
|
22
22
|
};
|
|
23
23
|
generateTicks(extremes: number[], count?: number): any;
|
|
24
|
-
trackBy(i: any): any;
|
|
25
24
|
ngOnDestroy(): void;
|
|
26
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<Axes3dComponent, never>;
|
|
27
26
|
static ɵcmp: i0.ɵɵComponentDeclaration<Axes3dComponent, "teta-axes-3d", never, { "rotation": { "alias": "rotation"; "required": false; }; }, {}, never, never, true, never>;
|
|
@@ -22,11 +22,11 @@ export class CustomSeriesComponent extends Base3dSeriesComponent {
|
|
|
22
22
|
this.ngtStore.get('camera').updateProjectionMatrix();
|
|
23
23
|
}, 1000);
|
|
24
24
|
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CustomSeriesComponent, deps: [{ token: i1.Chart3dService }, { token: i2.NgtStore }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: CustomSeriesComponent, isStandalone: true, selector: "teta-custom-series", usesInheritance: true, ngImport: i0, template: "@if ({scales: scales|async}; as scales) {\n <ngt-mesh\n [position]=\"[scales.scales.x(this.series.data[0].x),scales.scales.y(this.series.data[0].y),scales.scales.z(this.series.data[0].z) ]\">\n <ngt-box-geometry *args=\"[5,5,5]\"></ngt-box-geometry>\n <ngt-mesh-basic-material></ngt-mesh-basic-material>\n </ngt-mesh>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27
27
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CustomSeriesComponent, decorators: [{
|
|
29
29
|
type: Component,
|
|
30
|
-
args: [{ selector: 'teta-custom-series', standalone: true, imports: [CommonModule, NgtArgs], schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, template: "
|
|
30
|
+
args: [{ selector: 'teta-custom-series', standalone: true, imports: [CommonModule, NgtArgs], schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if ({scales: scales|async}; as scales) {\n <ngt-mesh\n [position]=\"[scales.scales.x(this.series.data[0].x),scales.scales.y(this.series.data[0].y),scales.scales.z(this.series.data[0].z) ]\">\n <ngt-box-geometry *args=\"[5,5,5]\"></ngt-box-geometry>\n <ngt-mesh-basic-material></ngt-mesh-basic-material>\n </ngt-mesh>\n}\n" }]
|
|
31
31
|
}], ctorParameters: () => [{ type: i1.Chart3dService }, { type: i2.NgtStore }] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXNlcmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL2N1c3RvbS1zZXJpZXMvY3VzdG9tLXNlcmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL2N1c3RvbS1zZXJpZXMvY3VzdG9tLXNlcmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxzQkFBc0IsR0FFdkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBRTVGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEQsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7Ozs7O0FBRS9CLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQVVkLE1BQU0sT0FBTyxxQkFDWCxTQUFRLHFCQUFrQztJQUkxQyxZQUFxQixHQUFtQixFQUFXLFFBQWtCO1FBQ25FLEtBQUssQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFERixRQUFHLEdBQUgsR0FBRyxDQUFnQjtRQUFXLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFbkUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUTtRQUNOLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDdkQsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs4R0FmVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixxR0N4QmxDLCtVQU9BLDJDRFlZLFlBQVksb0ZBQUUsT0FBTzs7MkZBS3BCLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxXQUN2QixDQUFDLHNCQUFzQixDQUFDLG1CQUNoQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtCYXNlM2RTZXJpZXNDb21wb25lbnR9IGZyb20gJy4uL3RocmVlLWNoYXJ0L2Jhc2UtM2Qtc2VyaWVzL2Jhc2UzZC1zZXJpZXMuY29tcG9uZW50JztcbmltcG9ydCB7QmFzZTNkUG9pbnR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbC9iYXNlLTNkLXBvaW50JztcbmltcG9ydCB7Q2hhcnQzZFNlcnZpY2V9IGZyb20gJy4uL3RocmVlLWNoYXJ0L3NlcnZpY2UvY2hhcnQtM2Quc2VydmljZSc7XG5pbXBvcnQge2V4dGVuZCwgTmd0QXJncywgTmd0U3RvcmV9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuZXh0ZW5kKFRIUkVFKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1jdXN0b20tc2VyaWVzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmd0QXJnc10sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tc2VyaWVzLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tU2VyaWVzQ29tcG9uZW50XG4gIGV4dGVuZHMgQmFzZTNkU2VyaWVzQ29tcG9uZW50PEJhc2UzZFBvaW50PlxuICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBzY2FsZXM6IE9ic2VydmFibGU8eyB4OyB5OyB6IH0+O1xuXG4gIGNvbnN0cnVjdG9yKG92ZXJyaWRlIHN2YzogQ2hhcnQzZFNlcnZpY2UsIG92ZXJyaWRlIG5ndFN0b3JlOiBOZ3RTdG9yZSkge1xuICAgIHN1cGVyKHN2Yywgbmd0U3RvcmUpO1xuICAgIHRoaXMuc2NhbGVzID0gdGhpcy5zdmMuc2NhbGVzO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm5ndFN0b3JlLmdldCgnY2FtZXJhJykuem9vbSA9IDI7XG4gICAgICB0aGlzLm5ndFN0b3JlLmdldCgnY2FtZXJhJykudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuICAgIH0sIDEwMDApO1xuICB9XG59XG4iLCJAaWYgKHtzY2FsZXM6IHNjYWxlc3xhc3luY307IGFzIHNjYWxlcykge1xuICA8bmd0LW1lc2hcbiAgICBbcG9zaXRpb25dPVwiW3NjYWxlcy5zY2FsZXMueCh0aGlzLnNlcmllcy5kYXRhWzBdLngpLHNjYWxlcy5zY2FsZXMueSh0aGlzLnNlcmllcy5kYXRhWzBdLnkpLHNjYWxlcy5zY2FsZXMueih0aGlzLnNlcmllcy5kYXRhWzBdLnopIF1cIj5cbiAgICA8bmd0LWJveC1nZW9tZXRyeSAqYXJncz1cIls1LDUsNV1cIj48L25ndC1ib3gtZ2VvbWV0cnk+XG4gICAgPG5ndC1tZXNoLWJhc2ljLW1hdGVyaWFsPjwvbmd0LW1lc2gtYmFzaWMtbWF0ZXJpYWw+XG4gIDwvbmd0LW1lc2g+XG59XG4iXX0=
|
|
@@ -4,7 +4,6 @@ import * as THREE from 'three';
|
|
|
4
4
|
import { GridHelper } from 'three';
|
|
5
5
|
import { extend, NgtArgs } from 'angular-three';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
7
|
extend(THREE);
|
|
9
8
|
export class Area3dComponent {
|
|
10
9
|
constructor() {
|
|
@@ -44,11 +43,11 @@ export class Area3dComponent {
|
|
|
44
43
|
ngOnInit() {
|
|
45
44
|
this.area = this.createArea();
|
|
46
45
|
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Area3dComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: Area3dComponent, isStandalone: true, selector: "teta-area-3d", ngImport: i0, template: "<ngt-mesh>\n <ngt-mesh-basic-material [side]=\"THREE.DoubleSide\"></ngt-mesh-basic-material>\n @for (rect of area; track rect) {\n <ngt-primitive *args=\"[rect]\"></ngt-primitive>\n }\n</ngt-mesh>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
49
48
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Area3dComponent, decorators: [{
|
|
51
50
|
type: Component,
|
|
52
|
-
args: [{ selector: 'teta-area-3d', standalone: true, imports: [CommonModule, NgtArgs], changeDetection: ChangeDetectionStrategy.OnPush, schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<ngt-mesh>\n <ngt-mesh-basic-material [side]=\"THREE.DoubleSide\"></ngt-mesh-basic-material>\n
|
|
51
|
+
args: [{ selector: 'teta-area-3d', standalone: true, imports: [CommonModule, NgtArgs], changeDetection: ChangeDetectionStrategy.OnPush, schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<ngt-mesh>\n <ngt-mesh-basic-material [side]=\"THREE.DoubleSide\"></ngt-mesh-basic-material>\n @for (rect of area; track rect) {\n <ngt-primitive *args=\"[rect]\"></ngt-primitive>\n }\n</ngt-mesh>\n" }]
|
|
53
52
|
}] });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYS0zZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2FyZWEtM2QvYXJlYS0zZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2FyZWEtM2QvYXJlYS0zZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxzQkFBc0IsR0FFdkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDbkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRWhELE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQVVkLE1BQU0sT0FBTyxlQUFlO0lBUjVCO1FBV3FCLFVBQUssR0FBRyxLQUFLLENBQUM7S0FvRGxDO0lBbERDLFVBQVU7UUFDUixNQUFNLEtBQUssR0FBaUIsRUFBRSxDQUFDO1FBQy9CLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDL0IsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNyRCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLFFBQVEsR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQixRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDOUIsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELFVBQVUsQ0FDUixVQUFrQixFQUNsQixRQUFnQixFQUNoQixXQUFtQixFQUNuQixTQUFvQztRQUVwQyxNQUFNLEtBQUssR0FBaUIsRUFBRSxDQUFDO1FBQy9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDekMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN2RSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFCLFFBQVEsU0FBUyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssWUFBWTtvQkFDZixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDbkIsUUFBUSxHQUFHLENBQUMsRUFDWixDQUFDLEVBQUUsRUFDSCxRQUFRLEdBQUcsQ0FBQyxHQUFHLFFBQVEsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUNqQyxDQUFDO29CQUNGLE1BQU07Z0JBQ1IsS0FBSyxVQUFVO29CQUNiLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUNuQixRQUFRLEdBQUcsQ0FBQyxFQUNaLFFBQVEsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQ2hDLENBQUMsRUFBRSxDQUNKLENBQUM7b0JBQ0YsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUM5QixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQzlCLE1BQU07WUFDVixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzhHQXREVSxlQUFlO2tHQUFmLGVBQWUsd0VDckI1Qiw4TUFNQSwyQ0RXWSxZQUFZLCtCQUFFLE9BQU87OzJGQUlwQixlQUFlO2tCQVIzQixTQUFTOytCQUNFLGNBQWMsY0FFWixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLG1CQUNmLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgR3JpZEhlbHBlciB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGV4dGVuZCwgTmd0QXJncyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuXG5leHRlbmQoVEhSRUUpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWFyZWEtM2QnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXJlYS0zZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5ndEFyZ3NdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBBcmVhM2RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgYXJlYTogR3JpZEhlbHBlcltdO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBUSFJFRSA9IFRIUkVFO1xuXG4gIGNyZWF0ZUFyZWEoKSB7XG4gICAgY29uc3QgZ3JpZHM6IEdyaWRIZWxwZXJbXSA9IFtdO1xuICAgIGdyaWRzLnB1c2godGhpcy5nZXRNYWluR3JpZCgpKTtcbiAgICBncmlkcy5wdXNoKC4uLnRoaXMuY3JlYXRlR3JpZCg0LCAyNSwgMywgJ3ZlcnRpY2FsJykpO1xuICAgIGdyaWRzLnB1c2goLi4udGhpcy5jcmVhdGVHcmlkKDQsIDI1LCAzLCAnaG9yaXpvbnRhbCcpKTtcbiAgICByZXR1cm4gZ3JpZHM7XG4gIH1cblxuICBnZXRNYWluR3JpZCgpIHtcbiAgICBjb25zdCBtYWluR3JpZCA9IG5ldyBHcmlkSGVscGVyKDEwMCwgMTIpO1xuICAgIG1haW5HcmlkLnBvc2l0aW9uLnNldCgwLCAwLCAwKTtcbiAgICBtYWluR3JpZC5yb3RhdGVaKE1hdGguUEkgLyAyKTtcbiAgICByZXR1cm4gbWFpbkdyaWQ7XG4gIH1cblxuICBjcmVhdGVHcmlkKFxuICAgIGdyaWRzQ291bnQ6IG51bWJlcixcbiAgICBncmlkU2l6ZTogbnVtYmVyLFxuICAgIHJlY3RzSW5HcmlkOiBudW1iZXIsXG4gICAgZGlyZWN0aW9uOiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnXG4gICkge1xuICAgIGNvbnN0IHBsYW5lOiBHcmlkSGVscGVyW10gPSBbXTtcbiAgICBmb3IgKGxldCBwID0gMDsgcCA8PSBncmlkc0NvdW50IC0gMTsgcCsrKSB7XG4gICAgICBwbGFuZVtwXSA9IG5ldyBUSFJFRS5HcmlkSGVscGVyKGdyaWRTaXplLCByZWN0c0luR3JpZCwgJyM2NjYnLCAnIzY2NicpO1xuICAgICAgcGxhbmVbcF0ucmVuZGVyT3JkZXIgPSAtMTtcbiAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XG4gICAgICAgIGNhc2UgJ2hvcml6b250YWwnOlxuICAgICAgICAgIHBsYW5lW3BdLnBvc2l0aW9uLnNldChcbiAgICAgICAgICAgIGdyaWRTaXplIC8gMixcbiAgICAgICAgICAgIC01MCxcbiAgICAgICAgICAgIGdyaWRTaXplICogcCArIGdyaWRTaXplIC8gMiAtIDUwXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndmVydGljYWwnOlxuICAgICAgICAgIHBsYW5lW3BdLnBvc2l0aW9uLnNldChcbiAgICAgICAgICAgIGdyaWRTaXplIC8gMixcbiAgICAgICAgICAgIGdyaWRTaXplICogcCArIGdyaWRTaXplIC8gMiAtIDUwLFxuICAgICAgICAgICAgLTUwXG4gICAgICAgICAgKTtcbiAgICAgICAgICBwbGFuZVtwXS5yb3RhdGVaKE1hdGguUEkgLyAyKTtcbiAgICAgICAgICBwbGFuZVtwXS5yb3RhdGVYKE1hdGguUEkgLyAyKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBsYW5lO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hcmVhID0gdGhpcy5jcmVhdGVBcmVhKCk7XG4gIH1cbn1cbiIsIjxuZ3QtbWVzaD5cbiAgPG5ndC1tZXNoLWJhc2ljLW1hdGVyaWFsIFtzaWRlXT1cIlRIUkVFLkRvdWJsZVNpZGVcIj48L25ndC1tZXNoLWJhc2ljLW1hdGVyaWFsPlxuICBAZm9yIChyZWN0IG9mIGFyZWE7IHRyYWNrIHJlY3QpIHtcbiAgICA8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltyZWN0XVwiPjwvbmd0LXByaW1pdGl2ZT5cbiAgfVxuPC9uZ3QtbWVzaD5cbiJdfQ==
|
|
@@ -41,19 +41,16 @@ export class Axes3dComponent {
|
|
|
41
41
|
.filter(step => step <= max);
|
|
42
42
|
return ticks;
|
|
43
43
|
}
|
|
44
|
-
trackBy(i) {
|
|
45
|
-
return i;
|
|
46
|
-
}
|
|
47
44
|
ngOnDestroy() {
|
|
48
45
|
this._alive = false;
|
|
49
46
|
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
51
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Axes3dComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: Axes3dComponent, isStandalone: true, selector: "teta-axes-3d", inputs: { rotation: "rotation" }, ngImport: i0, template: "@if ({axes: axes|async}; as data) {\n @for (tick of data.axes?.x; track tick; ) {\n <ngts-text [text]=\"tick.value+'-'\"\n [color]=\"'var(--color-text-90)'\"\n [rotation]='rotation'\n [fontSize]='2.5'\n [position]='[tick.position, -50, 50]'\n [anchorX]=\"'right'\"\n [anchorY]=\"'middle'\"\n [textAlign]=\"'right'\"\n ></ngts-text>\n }\n @for (tick of data.axes?.y; track tick; ) {\n <ngts-text [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 }\n @for (tick of data.axes?.z; track tick; ) {\n <ngts-text [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 }\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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
49
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Axes3dComponent, decorators: [{
|
|
54
51
|
type: Component,
|
|
55
|
-
args: [{ selector: 'teta-axes-3d', standalone: true, imports: [CommonModule, NgtsText], schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, template: "
|
|
52
|
+
args: [{ selector: 'teta-axes-3d', standalone: true, imports: [CommonModule, NgtsText], schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if ({axes: axes|async}; as data) {\n @for (tick of data.axes?.x; track tick; ) {\n <ngts-text [text]=\"tick.value+'-'\"\n [color]=\"'var(--color-text-90)'\"\n [rotation]='rotation'\n [fontSize]='2.5'\n [position]='[tick.position, -50, 50]'\n [anchorX]=\"'right'\"\n [anchorY]=\"'middle'\"\n [textAlign]=\"'right'\"\n ></ngts-text>\n }\n @for (tick of data.axes?.y; track tick; ) {\n <ngts-text [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 }\n @for (tick of data.axes?.z; track tick; ) {\n <ngts-text [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 }\n}\n" }]
|
|
56
53
|
}], ctorParameters: () => [], propDecorators: { rotation: [{
|
|
57
54
|
type: Input
|
|
58
55
|
}] } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhlcy0zZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2F4ZXMtM2QvYXhlcy0zZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2F4ZXMtM2QvYXhlcy0zZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxzQkFBc0IsRUFDdEIsTUFBTSxFQUNOLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFDNUIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVyQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFHL0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBVWQsTUFBTSxPQUFPLGVBQWU7SUFXMUI7UUFKUSxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBRUgsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFHdkQsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUM7WUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTtTQUN6QixDQUFDLENBQUMsSUFBSSxDQUNMLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQzVCLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBb0I7UUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyRCxPQUFPLEVBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckQsT0FBTyxFQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BELE9BQU8sRUFBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxFQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUFrQixFQUFFLEtBQUssR0FBRyxFQUFFO1FBQzFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQzVCLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUVyQyxNQUFNLEtBQUssR0FBRyxFQUFFO2FBQ2IsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLFFBQVEsQ0FBQzthQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFFL0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7OEdBakRVLGVBQWU7a0dBQWYsZUFBZSwwR0M3QjVCLDJtQ0FnQ0EsMkNEUFksWUFBWSxvRkFBRSxRQUFROzsyRkFJckIsZUFBZTtrQkFSM0IsU0FBUzsrQkFDRSxjQUFjLGNBRVosSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxXQUN4QixDQUFDLHNCQUFzQixDQUFDLG1CQUNoQix1QkFBdUIsQ0FBQyxNQUFNO3dEQUd0QyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ3RzVGV4dH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQge0V1bGVyfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQge2V4dGVuZH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQge0F4aXMzZFBvaW50fSBmcm9tICcuLi9tb2RlbC9heGlzLTNkLXBvaW50JztcbmltcG9ydCB7Q2hhcnQzZFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvY2hhcnQtM2Quc2VydmljZSc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgdGFrZVdoaWxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7QXhlczNkTWluTWF4fSBmcm9tICcuLi9tb2RlbC9heGVzLTNkLW1pbi1tYXgnO1xuXG5leHRlbmQoVEhSRUUpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWF4ZXMtM2QnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXhlcy0zZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5ndHNUZXh0XSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXhlczNkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcm90YXRpb246IEV1bGVyO1xuICBwdWJsaWMgYXhlczogT2JzZXJ2YWJsZTx7XG4gICAgejogQXhpczNkUG9pbnRbXTtcbiAgICB5OiBBeGlzM2RQb2ludFtdO1xuICAgIHg6IEF4aXMzZFBvaW50W107XG4gIH0+O1xuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoYXJ0U2VydmljZSA9IGluamVjdChDaGFydDNkU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5heGVzID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5zY2FsZXMsXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5taW5NYXgsXG4gICAgXSkucGlwZShcbiAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLl9hbGl2ZSksXG4gICAgICBtYXAoKFtzY2FsZXMsIG1pbk1heF0pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQXhlcyhzY2FsZXMsIG1pbk1heCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjcmVhdGVBeGVzKHNjYWxlcywgbWluTWF4OiBBeGVzM2RNaW5NYXgpIHtcbiAgICBjb25zdCBheGlzWiA9IHRoaXMuZ2VuZXJhdGVUaWNrcyhtaW5NYXgueiwgMTIpLm1hcChfID0+IHtcbiAgICAgIHJldHVybiB7dmFsdWU6IF8udG9GaXhlZCgxKSwgcG9zaXRpb246IHNjYWxlcy56KF8pfTtcbiAgICB9KTtcbiAgICBjb25zdCBheGlzWSA9IHRoaXMuZ2VuZXJhdGVUaWNrcyhtaW5NYXgueSwgMTIpLm1hcChfID0+IHtcbiAgICAgIHJldHVybiB7dmFsdWU6IF8udG9GaXhlZCgxKSwgcG9zaXRpb246IHNjYWxlcy55KF8pfTtcbiAgICB9KTtcbiAgICBjb25zdCBheGlzWCA9IHRoaXMuZ2VuZXJhdGVUaWNrcyhtaW5NYXgueCwgNCkubWFwKF8gPT4ge1xuICAgICAgcmV0dXJuIHt2YWx1ZTogXy50b0ZpeGVkKDEpLCBwb3NpdGlvbjogc2NhbGVzLngoXyl9O1xuICAgIH0pO1xuICAgIHJldHVybiB7ejogYXhpc1osIHk6IGF4aXNZLCB4OiBheGlzWH07XG4gIH1cblxuICBnZW5lcmF0ZVRpY2tzKGV4dHJlbWVzOiBudW1iZXJbXSwgY291bnQgPSAxMCkge1xuICAgIGNvbnN0IFttaW4sIG1heF0gPSBleHRyZW1lcztcbiAgICBjb25zdCB0aWNrU3RlcCA9IChtYXggLSBtaW4pIC8gY291bnQ7XG5cbiAgICBjb25zdCB0aWNrcyA9IGQzXG4gICAgICAucmFuZ2UobWluLCBtYXggKyB0aWNrU3RlcCwgdGlja1N0ZXApXG4gICAgICAuZmlsdGVyKHN0ZXAgPT4gc3RlcCA8PSBtYXgpO1xuXG4gICAgcmV0dXJuIHRpY2tzO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgfVxufVxuIiwiQGlmICh7YXhlczogYXhlc3xhc3luY307IGFzIGRhdGEpIHtcbiAgQGZvciAodGljayBvZiBkYXRhLmF4ZXM/Lng7IHRyYWNrIHRpY2s7ICkge1xuICAgIDxuZ3RzLXRleHQgW3RleHRdPVwidGljay52YWx1ZSsnLSdcIlxuICAgICAgICAgICAgICAgW2NvbG9yXT1cIid2YXIoLS1jb2xvci10ZXh0LTkwKSdcIlxuICAgICAgICAgICAgICAgW3JvdGF0aW9uXT0ncm90YXRpb24nXG4gICAgICAgICAgICAgICBbZm9udFNpemVdPScyLjUnXG4gICAgICAgICAgICAgICBbcG9zaXRpb25dPSdbdGljay5wb3NpdGlvbiwgLTUwLCA1MF0nXG4gICAgICAgICAgICAgICBbYW5jaG9yWF09XCIncmlnaHQnXCJcbiAgICAgICAgICAgICAgIFthbmNob3JZXT1cIidtaWRkbGUnXCJcbiAgICAgICAgICAgICAgIFt0ZXh0QWxpZ25dPVwiJ3JpZ2h0J1wiXG4gICAgPjwvbmd0cy10ZXh0PlxuICB9XG4gIEBmb3IgKHRpY2sgb2YgZGF0YS5heGVzPy55OyB0cmFjayB0aWNrOyApIHtcbiAgICA8bmd0cy10ZXh0IFt0ZXh0XT1cInRpY2sudmFsdWUrJy0nXCJcbiAgICAgICAgICAgICAgIFtjb2xvcl09XCIndmFyKC0tY29sb3ItdGV4dC05MCknXCJcbiAgICAgICAgICAgICAgIFtyb3RhdGlvbl09J3JvdGF0aW9uJ1xuICAgICAgICAgICAgICAgW2ZvbnRTaXplXT0nMi41J1xuICAgICAgICAgICAgICAgW3Bvc2l0aW9uXT0nWzAsdGljay5wb3NpdGlvbiw1MF0nXG4gICAgICAgICAgICAgICBbYW5jaG9yWF09XCIncmlnaHQnXCJcbiAgICAgICAgICAgICAgIFthbmNob3JZXT1cIidtaWRkbGUnXCJcbiAgICAgICAgICAgICAgIFt0ZXh0QWxpZ25dPVwiJ3JpZ2h0J1wiXG4gICAgPjwvbmd0cy10ZXh0PlxuICB9XG4gIEBmb3IgKHRpY2sgb2YgZGF0YS5heGVzPy56OyB0cmFjayB0aWNrOyApIHtcbiAgICA8bmd0cy10ZXh0IFt0ZXh0XT0ndGljay52YWx1ZSdcbiAgICAgICAgICAgICAgIFtjb2xvcl09XCIndmFyKC0tY29sb3ItdGV4dC05MCknXCJcbiAgICAgICAgICAgICAgIFtyb3RhdGlvbl09J3JvdGF0aW9uJ1xuICAgICAgICAgICAgICAgW2ZvbnRTaXplXT0nMi41J1xuICAgICAgICAgICAgICAgW3Bvc2l0aW9uXT0nWzI1LC01MCx0aWNrLnBvc2l0aW9uXSdcbiAgICA+PC9uZ3RzLXRleHQ+XG4gIH1cbn1cbiJdfQ==
|
|
@@ -16,10 +16,10 @@ export class Base3dSeriesComponent {
|
|
|
16
16
|
this.svc = svc;
|
|
17
17
|
this.ngtStore = ngtStore;
|
|
18
18
|
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
20
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Base3dSeriesComponent, deps: [{ token: i1.Chart3dService }, { token: i2.NgtStore }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: Base3dSeriesComponent, isStandalone: true, selector: "teta-base3d-series", inputs: { series: "series" }, ngImport: i0, template: "<p>base3d-series works!</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
21
21
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Base3dSeriesComponent, decorators: [{
|
|
23
23
|
type: Component,
|
|
24
24
|
args: [{ selector: 'teta-base3d-series', standalone: true, imports: [CommonModule], template: "<p>base3d-series works!</p>\n" }]
|
|
25
25
|
}], ctorParameters: () => [{ type: i1.Chart3dService }, { type: i2.NgtStore }], propDecorators: { series: [{
|
|
@@ -5,7 +5,7 @@ import { map, takeWhile } from 'rxjs';
|
|
|
5
5
|
import * as THREE from 'three';
|
|
6
6
|
import { Base3dSeriesComponent } from '../base-3d-series/base3d-series.component';
|
|
7
7
|
import { Chart3dService } from '../service/chart-3d.service';
|
|
8
|
-
import { AsyncPipe
|
|
8
|
+
import { AsyncPipe } from '@angular/common';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "../service/chart-3d.service";
|
|
11
11
|
import * as i2 from "angular-three";
|
|
@@ -64,11 +64,11 @@ export class Block3dComponent extends Base3dSeriesComponent {
|
|
|
64
64
|
ngOnDestroy() {
|
|
65
65
|
this._alive = false;
|
|
66
66
|
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
68
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Block3dComponent, deps: [{ token: i1.Chart3dService }, { token: i2.NgtStore }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: Block3dComponent, isStandalone: true, selector: "teta-block-3d", usesInheritance: true, ngImport: i0, template: "@if ({\n blocks: blocks | async,\n scales: svc.scales | async\n}; as data) {\n @for (mesh of data.blocks; let i = $index; track mesh) {\n <ngt-primitive *args='[mesh[0].component]'></ngt-primitive>\n <ngts-text [text]='series.data[i].name'\n color='black'\n [fontSize]='2.5'\n [rotation]='[0,Math.PI/2,0]'\n [position]='[1,mesh[0].position,5]'\n [textAlign]=\"'left'\"\n [anchorX]=\"'center'\"\n [anchorY]=\"'middle'\"></ngts-text>\n <ngt-primitive *args='[mesh[1].component]'></ngt-primitive>\n }\n}\n", dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "component", type: NgtsText, selector: "ngts-text[text]", inputs: ["textRef", "text", "characters", "font", "anchorX", "anchorY"], outputs: ["sync"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
69
69
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Block3dComponent, decorators: [{
|
|
71
71
|
type: Component,
|
|
72
|
-
args: [{ selector: 'teta-block-3d', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgtArgs, NgtsText,
|
|
72
|
+
args: [{ selector: 'teta-block-3d', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgtArgs, NgtsText, AsyncPipe], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "@if ({\n blocks: blocks | async,\n scales: svc.scales | async\n}; as data) {\n @for (mesh of data.blocks; let i = $index; track mesh) {\n <ngt-primitive *args='[mesh[0].component]'></ngt-primitive>\n <ngts-text [text]='series.data[i].name'\n color='black'\n [fontSize]='2.5'\n [rotation]='[0,Math.PI/2,0]'\n [position]='[1,mesh[0].position,5]'\n [textAlign]=\"'left'\"\n [anchorX]=\"'center'\"\n [anchorY]=\"'middle'\"></ngts-text>\n <ngt-primitive *args='[mesh[1].component]'></ngt-primitive>\n }\n}\n" }]
|
|
73
73
|
}], ctorParameters: () => [{ type: i1.Chart3dService }, { type: i2.NgtStore }] });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stM2QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90aHJlZS90aHJlZS1jaGFydC9ibG9jay0zZC9ibG9jay0zZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2Jsb2NrLTNkL2Jsb2NrLTNkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULHNCQUFzQixHQUV2QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pELE9BQU8sRUFBQyxHQUFHLEVBQWMsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRy9CLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBRWhGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUUzRCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFVZCxNQUFNLE9BQU8sZ0JBQ1gsU0FBUSxxQkFBd0I7SUFTaEMsWUFBcUIsR0FBbUIsRUFBVyxRQUFrQjtRQUNuRSxLQUFLLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBREYsUUFBRyxHQUFILEdBQUcsQ0FBZ0I7UUFBVyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSDdELFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDSCxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBSTdCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNoQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUM1QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDaEMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNFLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUFTLEVBQUUsRUFBVSxFQUFFLE1BQWM7UUFDcEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDbkMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2xFLE1BQU0sU0FBUyxHQUFFLElBQUksQ0FBQSxDQUFDLENBQUMscUdBQXFHLElBQUksRUFBRSxTQUFTLFFBQVEsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDO1FBQ3pKLE1BQU0sTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ3pCLG9DQUFvQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUNwRSxDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JFLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxRCxPQUFPO1lBQ0wsRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsTUFBTSxHQUFHLENBQUMsRUFBQztZQUM5QyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsR0FBRyxNQUFNLEdBQUcsQ0FBQyxFQUFDO1NBQ2hELENBQUM7SUFDSixDQUFDO0lBRUQsbUJBQW1CLENBQ2pCLE9BQWdCLEVBQ2hCLEtBQWEsRUFDYixNQUFjLEVBQ2QsT0FBZ0I7UUFFaEIsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUNyQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDN0MsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7OEdBdkVVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLGdHQzNCN0IsNnBCQWtCQSw0Q0RNWSxPQUFPLHFFQUFFLFFBQVEsd0pBQUUsSUFBSSx3RkFBRSxTQUFTLDhDQUFFLE9BQU87OzJGQUcxQyxnQkFBZ0I7a0JBUjVCLFNBQVM7K0JBQ0UsZUFBZSxjQUViLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsV0FDN0MsQ0FBQyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2V4dGVuZCwgTmd0QXJncywgTmd0U3RvcmV9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHtOZ3RzVGV4dH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucyc7XG5pbXBvcnQge21hcCwgT2JzZXJ2YWJsZSwgdGFrZVdoaWxlfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7VGV4dHVyZX0gZnJvbSAndGhyZWUnO1xuXG5pbXBvcnQge0Jhc2UzZFNlcmllc0NvbXBvbmVudH0gZnJvbSAnLi4vYmFzZS0zZC1zZXJpZXMvYmFzZTNkLXNlcmllcy5jb21wb25lbnQnO1xuaW1wb3J0IHtCbG9jazNkUG9pbnR9IGZyb20gJy4uL21vZGVsL2Jsb2NrM2QtcG9pbnQnO1xuaW1wb3J0IHtDaGFydDNkU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9jaGFydC0zZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3JPZiwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4dGVuZChUSFJFRSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtYmxvY2stM2QnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmxvY2stM2QuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW05ndEFyZ3MsIE5ndHNUZXh0LCBOZ0lmLCBBc3luY1BpcGUsIE5nRm9yT2ZdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIEJsb2NrM2RDb21wb25lbnQ8VCBleHRlbmRzIEJsb2NrM2RQb2ludD5cbiAgZXh0ZW5kcyBCYXNlM2RTZXJpZXNDb21wb25lbnQ8VD5cbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgYmxvY2tzOiBPYnNlcnZhYmxlPHtcbiAgICBjb21wb25lbnQ6IFRIUkVFLk1lc2g8VEhSRUUuUGxhbmVHZW9tZXRyeSwgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWw+O1xuICAgIHBvc2l0aW9uOiBudW1iZXI7XG4gIH1bXVtdPjtcbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgTWF0aCA9IE1hdGg7XG5cbiAgY29uc3RydWN0b3Iob3ZlcnJpZGUgc3ZjOiBDaGFydDNkU2VydmljZSwgb3ZlcnJpZGUgbmd0U3RvcmU6IE5ndFN0b3JlKSB7XG4gICAgc3VwZXIoc3ZjLCBuZ3RTdG9yZSk7XG4gICAgdGhpcy5ibG9ja3MgPSB0aGlzLnN2Yy5zY2FsZXMucGlwZShcbiAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLl9hbGl2ZSksXG4gICAgICBtYXAoc2NhbGVzID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWVzPy5kYXRhPy5tYXAoXyA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU1ZHVGV4dHVyZShzY2FsZXMueShfPy55KSwgc2NhbGVzLnkoXz8ueTEpLCBfPy5pY29uSWQpO1xuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNyZWF0ZVNWR1RleHR1cmUoeTogbnVtYmVyLCB5MTogbnVtYmVyLCBpY29uSWQ6IG51bWJlcikge1xuICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KHksIHkxKTtcbiAgICBjb25zdCBtaW4gPSBNYXRoLm1pbih5LCB5MSk7XG4gICAgY29uc3QgaGVpZ2h0ID0gTWF0aC5hYnMobWF4IC0gbWluKTtcbiAgICBjb25zdCBpY29uID0gaWNvbklkID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7aWNvbklkfWApIDogbnVsbDtcbiAgICBjb25zdCBzdmdTdHJpbmcgPWljb24/IGA8c3ZnIHdpZHRoPScxMDAnIGhlaWdodD0nMTAwJyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9J25vbmUnICB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPiR7aWNvbj8uaW5uZXJIVE1MfTwvc3ZnPmA6bnVsbDtcbiAgICBjb25zdCBsb2FkZXIgPSBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpO1xuICAgIGNvbnN0IHRleHR1cmUgPSBsb2FkZXIubG9hZChcbiAgICAgIGBkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwke2VuY29kZVVSSUNvbXBvbmVudChzdmdTdHJpbmcpfWBcbiAgICApO1xuICAgIGNvbnN0IHBsYW5lID0gdGhpcy5jcmVhdGVUZXh0dXJlZFBsYW5lKHRleHR1cmUsIDEwMCwgaGVpZ2h0LCAhIWljb24pO1xuICAgIGNvbnN0IHBsYW5lMSA9IHRoaXMuY3JlYXRlVGV4dHVyZWRQbGFuZSh0ZXh0dXJlLCAyNSwgaGVpZ2h0LCAhIWljb24pO1xuICAgIHBsYW5lLnJvdGF0aW9uLnNldCgwLCBNYXRoLlBJIC8gMiwgMCk7XG4gICAgcGxhbmUucG9zaXRpb24uc2V0KDAuMTcsIG1pbiArIGhlaWdodCAvIDIsIDApO1xuICAgIHBsYW5lMS5wb3NpdGlvbi5zZXQoMjUgLyAyLCBtaW4gKyBoZWlnaHQgLyAyLCAtNTAgKyAwLjE3KTtcbiAgICByZXR1cm4gW1xuICAgICAge2NvbXBvbmVudDogcGxhbmUsIHBvc2l0aW9uOiBtaW4gKyBoZWlnaHQgLyAyfSxcbiAgICAgIHtjb21wb25lbnQ6IHBsYW5lMSwgcG9zaXRpb246IG1pbiArIGhlaWdodCAvIDJ9LFxuICAgIF07XG4gIH1cblxuICBjcmVhdGVUZXh0dXJlZFBsYW5lKFxuICAgIHRleHR1cmU6IFRleHR1cmUsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgICB2aXNpYmxlOiBib29sZWFuXG4gICkge1xuICAgIHRleHR1cmUud3JhcFMgPSBUSFJFRS5SZXBlYXRXcmFwcGluZztcbiAgICB0ZXh0dXJlLndyYXBUID0gVEhSRUUuUmVwZWF0V3JhcHBpbmc7XG4gICAgdGV4dHVyZS5yZXBlYXQuc2V0KDEwLCBoZWlnaHQgLyA5KTtcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7bWFwOiB0ZXh0dXJlLCB2aXNpYmxlfSk7XG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSh3aWR0aCwgaGVpZ2h0LCAxLCAxKTtcbiAgICBjb25zdCB1dnMgPSBnZW9tZXRyeS5hdHRyaWJ1dGVzWyd1diddLmFycmF5O1xuICAgIGNvbnN0IG5ld1V2cyA9IG5ldyBGbG9hdDMyQXJyYXkodXZzKTtcbiAgICBuZXdVdnNbMF0gPSAwO1xuICAgIG5ld1V2c1sxXSA9IDE7XG4gICAgbmV3VXZzWzJdID0gd2lkdGggLyAxMDA7XG4gICAgbmV3VXZzWzNdID0gMTtcbiAgICBuZXdVdnNbNF0gPSAwO1xuICAgIG5ld1V2c1s1XSA9IDA7XG4gICAgbmV3VXZzWzZdID0gd2lkdGggLyAxMDA7XG4gICAgbmV3VXZzWzddID0gMDtcbiAgICBnZW9tZXRyeS5hdHRyaWJ1dGVzWyd1diddLm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICBnZW9tZXRyeS5zZXRBdHRyaWJ1dGUoJ3V2JywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShuZXdVdnMsIDIpKTtcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goZ2VvbWV0cnksIG1hdGVyaWFsKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9J3tcbiAgICBibG9ja3M6IGJsb2NrcyB8IGFzeW5jLFxuICAgIHNjYWxlczogc3ZjLnNjYWxlcyB8IGFzeW5jXG4gIH0gYXMgZGF0YSc+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPSdsZXQgbWVzaCBvZiBkYXRhLmJsb2NrczsgbGV0IGk9aW5kZXgnPlxuICAgIDxuZ3QtcHJpbWl0aXZlICphcmdzPSdbbWVzaFswXS5jb21wb25lbnRdJz48L25ndC1wcmltaXRpdmU+XG4gICAgPG5ndHMtdGV4dCBbdGV4dF09J3Nlcmllcy5kYXRhW2ldLm5hbWUnXG4gICAgICAgICAgICAgICBjb2xvcj0nYmxhY2snXG4gICAgICAgICAgICAgICBbZm9udFNpemVdPScyLjUnXG4gICAgICAgICAgICAgICBbcm90YXRpb25dPSdbMCxNYXRoLlBJLzIsMF0nXG4gICAgICAgICAgICAgICBbcG9zaXRpb25dPSdbMSxtZXNoWzBdLnBvc2l0aW9uLDVdJ1xuICAgICAgICAgICAgICAgW3RleHRBbGlnbl09XCInbGVmdCdcIlxuICAgICAgICAgICAgICAgW2FuY2hvclhdPVwiJ2NlbnRlcidcIlxuICAgICAgICAgICAgICAgW2FuY2hvclldPVwiJ21pZGRsZSdcIj48L25ndHMtdGV4dD5cbiAgICA8bmd0LXByaW1pdGl2ZSAqYXJncz0nW21lc2hbMV0uY29tcG9uZW50XSc+PC9uZ3QtcHJpbWl0aXZlPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stM2QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90aHJlZS90aHJlZS1jaGFydC9ibG9jay0zZC9ibG9jay0zZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2Jsb2NrLTNkL2Jsb2NrLTNkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULHNCQUFzQixHQUV2QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pELE9BQU8sRUFBQyxHQUFHLEVBQWMsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRy9CLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBRWhGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFFMUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBVWQsTUFBTSxPQUFPLGdCQUNYLFNBQVEscUJBQXdCO0lBU2hDLFlBQXFCLEdBQW1CLEVBQVcsUUFBa0I7UUFDbkUsS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQURGLFFBQUcsR0FBSCxHQUFHLENBQWdCO1FBQVcsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUg3RCxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ0gsU0FBSSxHQUFHLElBQUksQ0FBQztRQUk3QixJQUFJ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LEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDOzhHQXZFVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixnR0MzQjdCLHVtQkFpQkEsNENET1ksT0FBTyxxRUFBRSxRQUFRLG1KQUFFLFNBQVM7OzJGQUczQixnQkFBZ0I7a0JBUjVCLFNBQVM7K0JBQ0UsZUFBZSxjQUViLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLFdBQzlCLENBQUMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtleHRlbmQsIE5ndEFyZ3MsIE5ndFN0b3JlfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7Tmd0c1RleHR9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9hYnN0cmFjdGlvbnMnO1xuaW1wb3J0IHttYXAsIE9ic2VydmFibGUsIHRha2VXaGlsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQge1RleHR1cmV9IGZyb20gJ3RocmVlJztcblxuaW1wb3J0IHtCYXNlM2RTZXJpZXNDb21wb25lbnR9IGZyb20gJy4uL2Jhc2UtM2Qtc2VyaWVzL2Jhc2UzZC1zZXJpZXMuY29tcG9uZW50JztcbmltcG9ydCB7QmxvY2szZFBvaW50fSBmcm9tICcuLi9tb2RlbC9ibG9jazNkLXBvaW50JztcbmltcG9ydCB7Q2hhcnQzZFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvY2hhcnQtM2Quc2VydmljZSc7XG5pbXBvcnQge0FzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXh0ZW5kKFRIUkVFKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1ibG9jay0zZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ibG9jay0zZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbTmd0QXJncywgTmd0c1RleHQsIEFzeW5jUGlwZV0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgQmxvY2szZENvbXBvbmVudDxUIGV4dGVuZHMgQmxvY2szZFBvaW50PlxuICBleHRlbmRzIEJhc2UzZFNlcmllc0NvbXBvbmVudDxUPlxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBibG9ja3M6IE9ic2VydmFibGU8e1xuICAgIGNvbXBvbmVudDogVEhSRUUuTWVzaDxUSFJFRS5QbGFuZUdlb21ldHJ5LCBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbD47XG4gICAgcG9zaXRpb246IG51bWJlcjtcbiAgfVtdW10+O1xuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG4gIHByb3RlY3RlZCByZWFkb25seSBNYXRoID0gTWF0aDtcblxuICBjb25zdHJ1Y3RvcihvdmVycmlkZSBzdmM6IENoYXJ0M2RTZXJ2aWNlLCBvdmVycmlkZSBuZ3RTdG9yZTogTmd0U3RvcmUpIHtcbiAgICBzdXBlcihzdmMsIG5ndFN0b3JlKTtcbiAgICB0aGlzLmJsb2NrcyA9IHRoaXMuc3ZjLnNjYWxlcy5waXBlKFxuICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKSxcbiAgICAgIG1hcChzY2FsZXMgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJpZXM/LmRhdGE/Lm1hcChfID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTVkdUZXh0dXJlKHNjYWxlcy55KF8/LnkpLCBzY2FsZXMueShfPy55MSksIF8/Lmljb25JZCk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY3JlYXRlU1ZHVGV4dHVyZSh5OiBudW1iZXIsIHkxOiBudW1iZXIsIGljb25JZDogbnVtYmVyKSB7XG4gICAgY29uc3QgbWF4ID0gTWF0aC5tYXgoeSwgeTEpO1xuICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKHksIHkxKTtcbiAgICBjb25zdCBoZWlnaHQgPSBNYXRoLmFicyhtYXggLSBtaW4pO1xuICAgIGNvbnN0IGljb24gPSBpY29uSWQgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHtpY29uSWR9YCkgOiBudWxsO1xuICAgIGNvbnN0IHN2Z1N0cmluZyA9IGljb24gPyBgPHN2ZyB3aWR0aD0nMTAwJyBoZWlnaHQ9JzEwMCcgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSdub25lJyAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz4ke2ljb24/LmlubmVySFRNTH08L3N2Zz5gIDogbnVsbDtcbiAgICBjb25zdCBsb2FkZXIgPSBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpO1xuICAgIGNvbnN0IHRleHR1cmUgPSBsb2FkZXIubG9hZChcbiAgICAgIGBkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwke2VuY29kZVVSSUNvbXBvbmVudChzdmdTdHJpbmcpfWBcbiAgICApO1xuICAgIGNvbnN0IHBsYW5lID0gdGhpcy5jcmVhdGVUZXh0dXJlZFBsYW5lKHRleHR1cmUsIDEwMCwgaGVpZ2h0LCAhIWljb24pO1xuICAgIGNvbnN0IHBsYW5lMSA9IHRoaXMuY3JlYXRlVGV4dHVyZWRQbGFuZSh0ZXh0dXJlLCAyNSwgaGVpZ2h0LCAhIWljb24pO1xuICAgIHBsYW5lLnJvdGF0aW9uLnNldCgwLCBNYXRoLlBJIC8gMiwgMCk7XG4gICAgcGxhbmUucG9zaXRpb24uc2V0KDAuMTcsIG1pbiArIGhlaWdodCAvIDIsIDApO1xuICAgIHBsYW5lMS5wb3NpdGlvbi5zZXQoMjUgLyAyLCBtaW4gKyBoZWlnaHQgLyAyLCAtNTAgKyAwLjE3KTtcbiAgICByZXR1cm4gW1xuICAgICAge2NvbXBvbmVudDogcGxhbmUsIHBvc2l0aW9uOiBtaW4gKyBoZWlnaHQgLyAyfSxcbiAgICAgIHtjb21wb25lbnQ6IHBsYW5lMSwgcG9zaXRpb246IG1pbiArIGhlaWdodCAvIDJ9LFxuICAgIF07XG4gIH1cblxuICBjcmVhdGVUZXh0dXJlZFBsYW5lKFxuICAgIHRleHR1cmU6IFRleHR1cmUsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgICB2aXNpYmxlOiBib29sZWFuXG4gICkge1xuICAgIHRleHR1cmUud3JhcFMgPSBUSFJFRS5SZXBlYXRXcmFwcGluZztcbiAgICB0ZXh0dXJlLndyYXBUID0gVEhSRUUuUmVwZWF0V3JhcHBpbmc7XG4gICAgdGV4dHVyZS5yZXBlYXQuc2V0KDEwLCBoZWlnaHQgLyA5KTtcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7bWFwOiB0ZXh0dXJlLCB2aXNpYmxlfSk7XG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSh3aWR0aCwgaGVpZ2h0LCAxLCAxKTtcbiAgICBjb25zdCB1dnMgPSBnZW9tZXRyeS5hdHRyaWJ1dGVzWyd1diddLmFycmF5O1xuICAgIGNvbnN0IG5ld1V2cyA9IG5ldyBGbG9hdDMyQXJyYXkodXZzKTtcbiAgICBuZXdVdnNbMF0gPSAwO1xuICAgIG5ld1V2c1sxXSA9IDE7XG4gICAgbmV3VXZzWzJdID0gd2lkdGggLyAxMDA7XG4gICAgbmV3VXZzWzNdID0gMTtcbiAgICBuZXdVdnNbNF0gPSAwO1xuICAgIG5ld1V2c1s1XSA9IDA7XG4gICAgbmV3VXZzWzZdID0gd2lkdGggLyAxMDA7XG4gICAgbmV3VXZzWzddID0gMDtcbiAgICBnZW9tZXRyeS5hdHRyaWJ1dGVzWyd1diddLm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICBnZW9tZXRyeS5zZXRBdHRyaWJ1dGUoJ3V2JywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShuZXdVdnMsIDIpKTtcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goZ2VvbWV0cnksIG1hdGVyaWFsKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cbn1cbiIsIkBpZiAoe1xuICBibG9ja3M6IGJsb2NrcyB8IGFzeW5jLFxuICBzY2FsZXM6IHN2Yy5zY2FsZXMgfCBhc3luY1xufTsgYXMgZGF0YSkge1xuICBAZm9yIChtZXNoIG9mIGRhdGEuYmxvY2tzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgbWVzaCkge1xuICAgIDxuZ3QtcHJpbWl0aXZlICphcmdzPSdbbWVzaFswXS5jb21wb25lbnRdJz48L25ndC1wcmltaXRpdmU+XG4gICAgPG5ndHMtdGV4dCBbdGV4dF09J3Nlcmllcy5kYXRhW2ldLm5hbWUnXG4gICAgICAgICAgICAgICBjb2xvcj0nYmxhY2snXG4gICAgICAgICAgICAgICBbZm9udFNpemVdPScyLjUnXG4gICAgICAgICAgICAgICBbcm90YXRpb25dPSdbMCxNYXRoLlBJLzIsMF0nXG4gICAgICAgICAgICAgICBbcG9zaXRpb25dPSdbMSxtZXNoWzBdLnBvc2l0aW9uLDVdJ1xuICAgICAgICAgICAgICAgW3RleHRBbGlnbl09XCInbGVmdCdcIlxuICAgICAgICAgICAgICAgW2FuY2hvclhdPVwiJ2NlbnRlcidcIlxuICAgICAgICAgICAgICAgW2FuY2hvclldPVwiJ21pZGRsZSdcIj48L25ndHMtdGV4dD5cbiAgICA8bmd0LXByaW1pdGl2ZSAqYXJncz0nW21lc2hbMV0uY29tcG9uZW50XSc+PC9uZ3QtcHJpbWl0aXZlPlxuICB9XG59XG4iXX0=
|
|
@@ -4,14 +4,13 @@ import { NgtCanvas, NgtStore } from 'angular-three';
|
|
|
4
4
|
import { SceneComponent } from '../scene/scene.component';
|
|
5
5
|
import { Camera } from 'three';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
7
|
export class CanvasComponent {
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: CanvasComponent, isStandalone: true, selector: "teta-canvas", inputs: { scene: "scene", camera: "camera", data: "data" }, providers: [NgtStore], ngImport: i0, template: "@if (data?.series?.length) {\n <ngt-canvas [sceneGraph]=\"scene\"\n [camera]=\"camera\">\n </ngt-canvas>\n} @else {\n <p>{{ data?.noDataText || 'no data' }}</p>\n}\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 }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11
10
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CanvasComponent, decorators: [{
|
|
13
12
|
type: Component,
|
|
14
|
-
args: [{ selector: 'teta-canvas', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, providers: [NgtStore], imports: [NgtCanvas, SceneComponent, CommonModule], template: "
|
|
13
|
+
args: [{ selector: 'teta-canvas', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, providers: [NgtStore], imports: [NgtCanvas, SceneComponent, CommonModule], template: "@if (data?.series?.length) {\n <ngt-canvas [sceneGraph]=\"scene\"\n [camera]=\"camera\">\n </ngt-canvas>\n} @else {\n <p>{{ data?.noDataText || 'no data' }}</p>\n}\n", styles: [":host{width:100%;height:100%}\n"] }]
|
|
15
14
|
}], propDecorators: { scene: [{
|
|
16
15
|
type: Input
|
|
17
16
|
}], camera: [{
|
|
@@ -19,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
19
18
|
}], data: [{
|
|
20
19
|
type: Input
|
|
21
20
|
}] } });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGhyZWUvdGhyZWUtY2hhcnQvY2FudmFzL2NhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2NhbnZhcy9jYW52YXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBWS9CLE1BQU0sT0FBTyxlQUFlOzhHQUFmLGVBQWU7a0dBQWYsZUFBZSxzSEFIZixDQUFDLFFBQVEsQ0FBQywwQkNuQnZCLHVMQU9BLHlGRGFZLFNBQVMsNFRBQWtCLFlBQVk7OzJGQUV0QyxlQUFlO2tCQVYzQixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBR1AsQ0FBQyxzQkFBc0IsQ0FBQyxtQkFDaEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLFFBQVEsQ0FBQyxXQUNaLENBQUMsU0FBUyxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUM7OEJBR3pDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5ndENhbnZhcywgTmd0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IFNjZW5lQ29tcG9uZW50IH0gZnJvbSAnLi4vc2NlbmUvc2NlbmUuY29tcG9uZW50JztcbmltcG9ydCB7IEkzZENoYXJ0Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvaS0zZC1jaGFydC1jb25maWcnO1xuaW1wb3J0IHsgQ2FtZXJhIH0gZnJvbSAndGhyZWUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWNhbnZhcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYW52YXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYW52YXMuY29tcG9uZW50LnNjc3MnXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbTmd0U3RvcmVdLFxuICBpbXBvcnRzOiBbTmd0Q2FudmFzLCBTY2VuZUNvbXBvbmVudCwgQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FudmFzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc2NlbmU6IHR5cGVvZiBTY2VuZUNvbXBvbmVudDtcbiAgQElucHV0KCkgY2FtZXJhOiBDYW1lcmE7XG4gIEBJbnB1dCgpIGRhdGE6IEkzZENoYXJ0Q29uZmlnO1xufVxuIiwiQGlmIChkYXRhPy5zZXJpZXM/Lmxlbmd0aCkge1xuICA8bmd0LWNhbnZhcyBbc2NlbmVHcmFwaF09XCJzY2VuZVwiXG4gICAgICAgICAgICAgIFtjYW1lcmFdPVwiY2FtZXJhXCI+XG4gIDwvbmd0LWNhbnZhcz5cbn0gQGVsc2Uge1xuICA8cD57eyBkYXRhPy5ub0RhdGFUZXh0IHx8ICdubyBkYXRhJyB9fTwvcD5cbn1cbiJdfQ==
|
|
@@ -24,10 +24,10 @@ export class Canvas3dHost {
|
|
|
24
24
|
this._componentRef.instance.camera = this.camera;
|
|
25
25
|
this._componentRef.instance.data = this.data;
|
|
26
26
|
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Canvas3dHost, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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 }); }
|
|
29
29
|
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Canvas3dHost, decorators: [{
|
|
31
31
|
type: Component,
|
|
32
32
|
args: [{
|
|
33
33
|
selector: '[teta-canvas-3d-host]',
|
|
@@ -28,10 +28,10 @@ export class Series3dHost {
|
|
|
28
28
|
this._componentRef.injector.get(ChangeDetectorRef).detectChanges();
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
32
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Series3dHost, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: Series3dHost, isStandalone: true, selector: "[teta-series-3d-host]", inputs: { series: "series" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33
33
|
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Series3dHost, decorators: [{
|
|
35
35
|
type: Component,
|
|
36
36
|
args: [{
|
|
37
37
|
selector: '[teta-series-3d-host]',
|
|
@@ -30,11 +30,11 @@ export class Line3dComponent extends Base3dSeriesComponent {
|
|
|
30
30
|
ngOnDestroy() {
|
|
31
31
|
this._alive = false;
|
|
32
32
|
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Line3dComponent, deps: [{ token: i1.Chart3dService }, { token: i2.NgtStore }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: Line3dComponent, isStandalone: true, selector: "teta-line-3d", usesInheritance: true, ngImport: i0, template: "@if ({points: points|async}; as data) {\n @if (data?.points?.length) {\n <ngt-mesh>\n <ngts-line [color]=\"series.color\" [lineWidth]=\"2\" [points]=\"data.points\"></ngts-line>\n <ngt-line-basic-material></ngt-line-basic-material>\n </ngt-mesh>\n }\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "component", type: NgtsLine, selector: "ngts-line[points]", inputs: ["lineRef", "points", "segments"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Line3dComponent, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
|
-
args: [{ selector: 'teta-line-3d', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, NgtsLine, NgtArgs], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "
|
|
38
|
+
args: [{ selector: 'teta-line-3d', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, NgtsLine, NgtArgs], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "@if ({points: points|async}; as data) {\n @if (data?.points?.length) {\n <ngt-mesh>\n <ngts-line [color]=\"series.color\" [lineWidth]=\"2\" [points]=\"data.points\"></ngts-line>\n <ngt-line-basic-material></ngt-line-basic-material>\n </ngt-mesh>\n }\n}\n" }]
|
|
39
39
|
}], ctorParameters: () => [{ type: i1.Chart3dService }, { type: i2.NgtStore }] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS0zZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2xpbmUtM2QvbGluZS0zZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L2xpbmUtM2QvbGluZS0zZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxzQkFBc0IsR0FFdkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7OztBQUdsRixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFTZCxNQUFNLE9BQU8sZUFDWCxTQUFRLHFCQUFrQztJQU8xQyxZQUFxQixHQUFtQixFQUFXLFFBQWtCO1FBQ25FLEtBQUssQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFERixRQUFHLEdBQUgsR0FBRyxDQUFnQjtRQUFXLGFBQVEsR0FBUixRQUFRLENBQVU7UUFIN0QsV0FBTSxHQUFHLElBQUksQ0FBQztRQUVILFNBQUksR0FBRyxJQUFJLENBQUM7UUFHN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2hDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQzVCLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUNELFNBQVMsQ0FBQyxNQUFNO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUE0QixDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQzs4R0F6QlUsZUFBZTtrR0FBZixlQUFlLCtGQ3hCNUIsa1JBUUEsMkNEWVksWUFBWSxvRkFBRSxRQUFROzsyRkFJckIsZUFBZTtrQkFSM0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsV0FDakMsQ0FBQyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmd0c0xpbmUgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvYWJzdHJhY3Rpb25zJztcbmltcG9ydCB7IGV4dGVuZCwgTmd0QXJncywgTmd0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGFydDNkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvY2hhcnQtM2Quc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlM2RTZXJpZXNDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLTNkLXNlcmllcy9iYXNlM2Qtc2VyaWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaW5lM2RQb2ludCB9IGZyb20gJy4uL21vZGVsL2xpbmUtM2QtcG9pbnQnO1xuXG5leHRlbmQoVEhSRUUpO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1saW5lLTNkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5ndHNMaW5lLCBOZ3RBcmdzXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICB0ZW1wbGF0ZVVybDogJy4vbGluZS0zZC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIExpbmUzZENvbXBvbmVudFxuICBleHRlbmRzIEJhc2UzZFNlcmllc0NvbXBvbmVudDxMaW5lM2RQb2ludD5cbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3lcbntcbiAgcHVibGljIHBvaW50czogT2JzZXJ2YWJsZTxbbnVtYmVyLG51bWJlcixudW1iZXJdPjtcbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBNYXRoID0gTWF0aDtcbiAgY29uc3RydWN0b3Iob3ZlcnJpZGUgc3ZjOiBDaGFydDNkU2VydmljZSwgb3ZlcnJpZGUgbmd0U3RvcmU6IE5ndFN0b3JlKSB7XG4gICAgc3VwZXIoc3ZjLCBuZ3RTdG9yZSk7XG4gICAgdGhpcy5wb2ludHMgPSB0aGlzLnN2Yy5zY2FsZXMucGlwZShcbiAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLl9hbGl2ZSksXG4gICAgICBtYXAoc2NhbGVzID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UG9pbnRzKHNjYWxlcyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgZ2V0UG9pbnRzKHNjYWxlcykge1xuICAgIHJldHVybiB0aGlzLnNlcmllcz8uZGF0YT8ubWFwKF8gPT4ge1xuICAgICAgcmV0dXJuIFtzY2FsZXMueChfPy54KSwgc2NhbGVzLnkoXz8ueSksIHNjYWxlcy56KF8/LnopXTtcbiAgICB9KS5mbGF0KCkgYXMgW251bWJlcixudW1iZXIsbnVtYmVyXTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cbn1cbiIsIkBpZiAoe3BvaW50czogcG9pbnRzfGFzeW5jfTsgYXMgZGF0YSkge1xuICBAaWYgKGRhdGE/LnBvaW50cz8ubGVuZ3RoKSB7XG4gICAgPG5ndC1tZXNoPlxuICAgICAgPG5ndHMtbGluZSBbY29sb3JdPVwic2VyaWVzLmNvbG9yXCIgW2xpbmVXaWR0aF09XCIyXCIgW3BvaW50c109XCJkYXRhLnBvaW50c1wiPjwvbmd0cy1saW5lPlxuICAgICAgPG5ndC1saW5lLWJhc2ljLW1hdGVyaWFsPjwvbmd0LWxpbmUtYmFzaWMtbWF0ZXJpYWw+XG4gICAgPC9uZ3QtbWVzaD5cbiAgfVxufVxuIl19
|
|
@@ -27,10 +27,10 @@ export class SceneComponent {
|
|
|
27
27
|
ngOnInit() {
|
|
28
28
|
this.rotation = this.store.get('camera').rotation;
|
|
29
29
|
}
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
30
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SceneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: SceneComponent, isStandalone: true, selector: "teta-scene", ngImport: i0, template: "@if ({data: data|async}; as config) {\n <ngt-scene>\n <ngts-orbit-controls [minAzimuthAngle]='0'\n [maxAzimuthAngle]='Math.PI/2'\n [maxZoom]='30'\n [minZoom]='2'\n (change)='setRotation()'></ngts-orbit-controls>\n </ngt-scene>\n <teta-area-3d></teta-area-3d>\n @for (s of config.data?.series; track s) {\n <div teta-series-3d-host [series]='s'></div>\n }\n <teta-axes-3d [rotation]='rotation'></teta-axes-3d>\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: "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 }); }
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SceneComponent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
35
|
args: [{ standalone: true, selector: 'teta-scene', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
36
36
|
NgtsOrbitControls,
|
|
@@ -40,6 +40,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
40
40
|
Axes3dComponent,
|
|
41
41
|
Block3dComponent,
|
|
42
42
|
Series3dHost,
|
|
43
|
-
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "
|
|
43
|
+
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "@if ({data: data|async}; as config) {\n <ngt-scene>\n <ngts-orbit-controls [minAzimuthAngle]='0'\n [maxAzimuthAngle]='Math.PI/2'\n [maxZoom]='30'\n [minZoom]='2'\n (change)='setRotation()'></ngts-orbit-controls>\n </ngt-scene>\n <teta-area-3d></teta-area-3d>\n @for (s of config.data?.series; track s) {\n <div teta-series-3d-host [series]='s'></div>\n }\n <teta-axes-3d [rotation]='rotation'></teta-axes-3d>\n}\n" }]
|
|
44
44
|
}], ctorParameters: () => [] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90aHJlZS90aHJlZS1jaGFydC9zY2VuZS9zY2VuZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RocmVlL3RocmVlLWNoYXJ0L3NjZW5lL3NjZW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSWhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQWtCN0QsTUFBTSxPQUFPLGNBQWM7SUFRekI7UUFMZ0IsVUFBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBR2xELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDckMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNwRCxDQUFDOzhHQXJCVSxjQUFjO2tHQUFkLGNBQWMsc0VDdEMzQiwyZ0JBY0EsNENEY0ksaUJBQWlCLDBNQUNqQixZQUFZLG9GQUNaLGVBQWUseURBRWYsZUFBZSwrRUFFZixZQUFZOzsyRkFJSCxjQUFjO2tCQWhCMUIsU0FBUztpQ0FDSSxJQUFJLFlBQ04sWUFBWSxtQkFFTCx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLFlBQVk7cUJBQ2IsV0FDUSxDQUFDLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICBpbmplY3QsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgTmd0c09yYml0Q29udHJvbHMgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvY29udHJvbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRXVsZXIgfSBmcm9tICd0aHJlZSc7XG5cbmltcG9ydCB7IEFyZWEzZENvbXBvbmVudCB9IGZyb20gJy4uL2FyZWEtM2QvYXJlYS0zZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXhlczNkQ29tcG9uZW50IH0gZnJvbSAnLi4vYXhlcy0zZC9heGVzLTNkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbG9jazNkQ29tcG9uZW50IH0gZnJvbSAnLi4vYmxvY2stM2QvYmxvY2stM2QuY29tcG9uZW50JztcbmltcG9ydCB7IFNlcmllczNkSG9zdCB9IGZyb20gJy4uL2RpcmVjdGl2ZS9zZXJpZXMtM2QtaG9zdCc7XG5pbXBvcnQgeyBMaW5lM2RDb21wb25lbnQgfSBmcm9tICcuLi9saW5lLTNkL2xpbmUtM2QuY29tcG9uZW50JztcbmltcG9ydCB7IEkzZENoYXJ0Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvaS0zZC1jaGFydC1jb25maWcnO1xuaW1wb3J0IHsgQ2hhcnQzZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2NoYXJ0LTNkLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd0ZXRhLXNjZW5lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NjZW5lLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBOZ3RzT3JiaXRDb250cm9scyxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQXJlYTNkQ29tcG9uZW50LFxuICAgIExpbmUzZENvbXBvbmVudCxcbiAgICBBeGVzM2RDb21wb25lbnQsXG4gICAgQmxvY2szZENvbXBvbmVudCxcbiAgICBTZXJpZXMzZEhvc3QsXG4gIF0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgU2NlbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgZGF0YTogT2JzZXJ2YWJsZTxJM2RDaGFydENvbmZpZz47XG4gIHB1YmxpYyByb3RhdGlvbjogRXVsZXI7XG4gIHB1YmxpYyByZWFkb25seSBzdG9yZSA9IGluamVjdChOZ3RTdG9yZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBNYXRoID0gTWF0aDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoYXJ0U2VydmljZSA9IGluamVjdChDaGFydDNkU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmNoYXJ0U2VydmljZS5kYXRhO1xuICB9XG5cbiAgc2V0Um90YXRpb24oKSB7XG4gICAgdGhpcy5yb3RhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnJvdGF0aW9uID0gdGhpcy5zdG9yZS5nZXQoJ2NhbWVyYScpLnJvdGF0aW9uO1xuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdGF0aW9uID0gdGhpcy5zdG9yZS5nZXQoJ2NhbWVyYScpLnJvdGF0aW9uO1xuICB9XG59XG4iLCJAaWYgKHtkYXRhOiBkYXRhfGFzeW5jfTsgYXMgY29uZmlnKSB7XG4gIDxuZ3Qtc2NlbmU+XG4gICAgPG5ndHMtb3JiaXQtY29udHJvbHMgW21pbkF6aW11dGhBbmdsZV09JzAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgW21heEF6aW11dGhBbmdsZV09J01hdGguUEkvMidcbiAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4Wm9vbV09JzMwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5ab29tXT0nMidcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT0nc2V0Um90YXRpb24oKSc+PC9uZ3RzLW9yYml0LWNvbnRyb2xzPlxuICA8L25ndC1zY2VuZT5cbiAgPHRldGEtYXJlYS0zZD48L3RldGEtYXJlYS0zZD5cbiAgQGZvciAocyBvZiBjb25maWcuZGF0YT8uc2VyaWVzOyB0cmFjayBzKSB7XG4gICAgPGRpdiB0ZXRhLXNlcmllcy0zZC1ob3N0IFtzZXJpZXNdPSdzJz48L2Rpdj5cbiAgfVxuICA8dGV0YS1heGVzLTNkIFtyb3RhdGlvbl09J3JvdGF0aW9uJz48L3RldGEtYXhlcy0zZD5cbn1cbiJdfQ==
|
|
@@ -71,10 +71,10 @@ export class Chart3dService {
|
|
|
71
71
|
z,
|
|
72
72
|
};
|
|
73
73
|
}
|
|
74
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
75
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Chart3dService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
75
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Chart3dService, providedIn: 'root' }); }
|
|
76
76
|
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Chart3dService, decorators: [{
|
|
78
78
|
type: Injectable,
|
|
79
79
|
args: [{
|
|
80
80
|
providedIn: 'root',
|
|
@@ -27,10 +27,10 @@ export class ThreeChartComponent {
|
|
|
27
27
|
this.chartService.setData(this.data);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
30
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ThreeChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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 }); }
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ThreeChartComponent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
35
|
args: [{ selector: 'teta-three-chart', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, providers: [NgtStore], imports: [
|
|
36
36
|
NgtCanvas,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, Component, Input, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, inject, ChangeDetectorRef } from '@angular/core';
|
|
3
|
-
import * as
|
|
4
|
-
import { CommonModule,
|
|
3
|
+
import * as i3 from '@angular/common';
|
|
4
|
+
import { CommonModule, AsyncPipe } from '@angular/common';
|
|
5
5
|
import * as d3 from 'd3';
|
|
6
6
|
import { ReplaySubject, map, shareReplay, combineLatest, takeWhile } from 'rxjs';
|
|
7
7
|
import * as i2 from 'angular-three';
|
|
@@ -80,10 +80,10 @@ class Chart3dService {
|
|
|
80
80
|
z,
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
84
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
83
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Chart3dService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
84
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Chart3dService, providedIn: 'root' }); }
|
|
85
85
|
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Chart3dService, decorators: [{
|
|
87
87
|
type: Injectable,
|
|
88
88
|
args: [{
|
|
89
89
|
providedIn: 'root',
|
|
@@ -101,10 +101,10 @@ class Base3dSeriesComponent {
|
|
|
101
101
|
this.svc = svc;
|
|
102
102
|
this.ngtStore = ngtStore;
|
|
103
103
|
}
|
|
104
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
105
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
104
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Base3dSeriesComponent, deps: [{ token: Chart3dService }, { token: i2.NgtStore }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
105
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: Base3dSeriesComponent, isStandalone: true, selector: "teta-base3d-series", inputs: { series: "series" }, ngImport: i0, template: "<p>base3d-series works!</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
106
106
|
}
|
|
107
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Base3dSeriesComponent, decorators: [{
|
|
108
108
|
type: Component,
|
|
109
109
|
args: [{ selector: 'teta-base3d-series', standalone: true, imports: [CommonModule], template: "<p>base3d-series works!</p>\n" }]
|
|
110
110
|
}], ctorParameters: () => [{ type: Chart3dService }, { type: i2.NgtStore }], propDecorators: { series: [{
|
|
@@ -125,12 +125,12 @@ class CustomSeriesComponent extends Base3dSeriesComponent {
|
|
|
125
125
|
this.ngtStore.get('camera').updateProjectionMatrix();
|
|
126
126
|
}, 1000);
|
|
127
127
|
}
|
|
128
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
129
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
128
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CustomSeriesComponent, deps: [{ token: Chart3dService }, { token: i2.NgtStore }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
129
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: CustomSeriesComponent, isStandalone: true, selector: "teta-custom-series", usesInheritance: true, ngImport: i0, template: "@if ({scales: scales|async}; as scales) {\n <ngt-mesh\n [position]=\"[scales.scales.x(this.series.data[0].x),scales.scales.y(this.series.data[0].y),scales.scales.z(this.series.data[0].z) ]\">\n <ngt-box-geometry *args=\"[5,5,5]\"></ngt-box-geometry>\n <ngt-mesh-basic-material></ngt-mesh-basic-material>\n </ngt-mesh>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
130
130
|
}
|
|
131
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CustomSeriesComponent, decorators: [{
|
|
132
132
|
type: Component,
|
|
133
|
-
args: [{ selector: 'teta-custom-series', standalone: true, imports: [CommonModule, NgtArgs], schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, template: "
|
|
133
|
+
args: [{ selector: 'teta-custom-series', standalone: true, imports: [CommonModule, NgtArgs], schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if ({scales: scales|async}; as scales) {\n <ngt-mesh\n [position]=\"[scales.scales.x(this.series.data[0].x),scales.scales.y(this.series.data[0].y),scales.scales.z(this.series.data[0].z) ]\">\n <ngt-box-geometry *args=\"[5,5,5]\"></ngt-box-geometry>\n <ngt-mesh-basic-material></ngt-mesh-basic-material>\n </ngt-mesh>\n}\n" }]
|
|
134
134
|
}], ctorParameters: () => [{ type: Chart3dService }, { type: i2.NgtStore }] });
|
|
135
135
|
|
|
136
136
|
extend(THREE);
|
|
@@ -172,12 +172,12 @@ class Area3dComponent {
|
|
|
172
172
|
ngOnInit() {
|
|
173
173
|
this.area = this.createArea();
|
|
174
174
|
}
|
|
175
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
176
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
175
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Area3dComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
176
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: Area3dComponent, isStandalone: true, selector: "teta-area-3d", ngImport: i0, template: "<ngt-mesh>\n <ngt-mesh-basic-material [side]=\"THREE.DoubleSide\"></ngt-mesh-basic-material>\n @for (rect of area; track rect) {\n <ngt-primitive *args=\"[rect]\"></ngt-primitive>\n }\n</ngt-mesh>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
177
177
|
}
|
|
178
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Area3dComponent, decorators: [{
|
|
179
179
|
type: Component,
|
|
180
|
-
args: [{ selector: 'teta-area-3d', standalone: true, imports: [CommonModule, NgtArgs], changeDetection: ChangeDetectionStrategy.OnPush, schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<ngt-mesh>\n <ngt-mesh-basic-material [side]=\"THREE.DoubleSide\"></ngt-mesh-basic-material>\n
|
|
180
|
+
args: [{ selector: 'teta-area-3d', standalone: true, imports: [CommonModule, NgtArgs], changeDetection: ChangeDetectionStrategy.OnPush, schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<ngt-mesh>\n <ngt-mesh-basic-material [side]=\"THREE.DoubleSide\"></ngt-mesh-basic-material>\n @for (rect of area; track rect) {\n <ngt-primitive *args=\"[rect]\"></ngt-primitive>\n }\n</ngt-mesh>\n" }]
|
|
181
181
|
}] });
|
|
182
182
|
|
|
183
183
|
extend(THREE);
|
|
@@ -212,18 +212,15 @@ class Axes3dComponent {
|
|
|
212
212
|
.filter(step => step <= max);
|
|
213
213
|
return ticks;
|
|
214
214
|
}
|
|
215
|
-
trackBy(i) {
|
|
216
|
-
return i;
|
|
217
|
-
}
|
|
218
215
|
ngOnDestroy() {
|
|
219
216
|
this._alive = false;
|
|
220
217
|
}
|
|
221
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
222
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
218
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Axes3dComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
219
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: Axes3dComponent, isStandalone: true, selector: "teta-axes-3d", inputs: { rotation: "rotation" }, ngImport: i0, template: "@if ({axes: axes|async}; as data) {\n @for (tick of data.axes?.x; track tick; ) {\n <ngts-text [text]=\"tick.value+'-'\"\n [color]=\"'var(--color-text-90)'\"\n [rotation]='rotation'\n [fontSize]='2.5'\n [position]='[tick.position, -50, 50]'\n [anchorX]=\"'right'\"\n [anchorY]=\"'middle'\"\n [textAlign]=\"'right'\"\n ></ngts-text>\n }\n @for (tick of data.axes?.y; track tick; ) {\n <ngts-text [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 }\n @for (tick of data.axes?.z; track tick; ) {\n <ngts-text [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 }\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "component", type: NgtsText, selector: "ngts-text[text]", inputs: ["textRef", "text", "characters", "font", "anchorX", "anchorY"], outputs: ["sync"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
223
220
|
}
|
|
224
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Axes3dComponent, decorators: [{
|
|
225
222
|
type: Component,
|
|
226
|
-
args: [{ selector: 'teta-axes-3d', standalone: true, imports: [CommonModule, NgtsText], schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, template: "
|
|
223
|
+
args: [{ selector: 'teta-axes-3d', standalone: true, imports: [CommonModule, NgtsText], schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if ({axes: axes|async}; as data) {\n @for (tick of data.axes?.x; track tick; ) {\n <ngts-text [text]=\"tick.value+'-'\"\n [color]=\"'var(--color-text-90)'\"\n [rotation]='rotation'\n [fontSize]='2.5'\n [position]='[tick.position, -50, 50]'\n [anchorX]=\"'right'\"\n [anchorY]=\"'middle'\"\n [textAlign]=\"'right'\"\n ></ngts-text>\n }\n @for (tick of data.axes?.y; track tick; ) {\n <ngts-text [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 }\n @for (tick of data.axes?.z; track tick; ) {\n <ngts-text [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 }\n}\n" }]
|
|
227
224
|
}], ctorParameters: () => [], propDecorators: { rotation: [{
|
|
228
225
|
type: Input
|
|
229
226
|
}] } });
|
|
@@ -283,12 +280,12 @@ class Block3dComponent extends Base3dSeriesComponent {
|
|
|
283
280
|
ngOnDestroy() {
|
|
284
281
|
this._alive = false;
|
|
285
282
|
}
|
|
286
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
287
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
283
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Block3dComponent, deps: [{ token: Chart3dService }, { token: i2.NgtStore }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
284
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: Block3dComponent, isStandalone: true, selector: "teta-block-3d", usesInheritance: true, ngImport: i0, template: "@if ({\n blocks: blocks | async,\n scales: svc.scales | async\n}; as data) {\n @for (mesh of data.blocks; let i = $index; track mesh) {\n <ngt-primitive *args='[mesh[0].component]'></ngt-primitive>\n <ngts-text [text]='series.data[i].name'\n color='black'\n [fontSize]='2.5'\n [rotation]='[0,Math.PI/2,0]'\n [position]='[1,mesh[0].position,5]'\n [textAlign]=\"'left'\"\n [anchorX]=\"'center'\"\n [anchorY]=\"'middle'\"></ngts-text>\n <ngt-primitive *args='[mesh[1].component]'></ngt-primitive>\n }\n}\n", dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "component", type: NgtsText, selector: "ngts-text[text]", inputs: ["textRef", "text", "characters", "font", "anchorX", "anchorY"], outputs: ["sync"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
288
285
|
}
|
|
289
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
286
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Block3dComponent, decorators: [{
|
|
290
287
|
type: Component,
|
|
291
|
-
args: [{ selector: 'teta-block-3d', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgtArgs, NgtsText,
|
|
288
|
+
args: [{ selector: 'teta-block-3d', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgtArgs, NgtsText, AsyncPipe], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "@if ({\n blocks: blocks | async,\n scales: svc.scales | async\n}; as data) {\n @for (mesh of data.blocks; let i = $index; track mesh) {\n <ngt-primitive *args='[mesh[0].component]'></ngt-primitive>\n <ngts-text [text]='series.data[i].name'\n color='black'\n [fontSize]='2.5'\n [rotation]='[0,Math.PI/2,0]'\n [position]='[1,mesh[0].position,5]'\n [textAlign]=\"'left'\"\n [anchorX]=\"'center'\"\n [anchorY]=\"'middle'\"></ngts-text>\n <ngt-primitive *args='[mesh[1].component]'></ngt-primitive>\n }\n}\n" }]
|
|
292
289
|
}], ctorParameters: () => [{ type: Chart3dService }, { type: i2.NgtStore }] });
|
|
293
290
|
|
|
294
291
|
extend(THREE);
|
|
@@ -311,12 +308,12 @@ class Line3dComponent extends Base3dSeriesComponent {
|
|
|
311
308
|
ngOnDestroy() {
|
|
312
309
|
this._alive = false;
|
|
313
310
|
}
|
|
314
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
315
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
311
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Line3dComponent, deps: [{ token: Chart3dService }, { token: i2.NgtStore }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
312
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: Line3dComponent, isStandalone: true, selector: "teta-line-3d", usesInheritance: true, ngImport: i0, template: "@if ({points: points|async}; as data) {\n @if (data?.points?.length) {\n <ngt-mesh>\n <ngts-line [color]=\"series.color\" [lineWidth]=\"2\" [points]=\"data.points\"></ngts-line>\n <ngt-line-basic-material></ngt-line-basic-material>\n </ngt-mesh>\n }\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "component", type: NgtsLine, selector: "ngts-line[points]", inputs: ["lineRef", "points", "segments"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
316
313
|
}
|
|
317
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
314
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Line3dComponent, decorators: [{
|
|
318
315
|
type: Component,
|
|
319
|
-
args: [{ selector: 'teta-line-3d', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, NgtsLine, NgtArgs], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "
|
|
316
|
+
args: [{ selector: 'teta-line-3d', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, NgtsLine, NgtArgs], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "@if ({points: points|async}; as data) {\n @if (data?.points?.length) {\n <ngt-mesh>\n <ngts-line [color]=\"series.color\" [lineWidth]=\"2\" [points]=\"data.points\"></ngts-line>\n <ngt-line-basic-material></ngt-line-basic-material>\n </ngt-mesh>\n }\n}\n" }]
|
|
320
317
|
}], ctorParameters: () => [{ type: Chart3dService }, { type: i2.NgtStore }] });
|
|
321
318
|
|
|
322
319
|
var Series3dType;
|
|
@@ -349,10 +346,10 @@ class Series3dHost {
|
|
|
349
346
|
this._componentRef.injector.get(ChangeDetectorRef).detectChanges();
|
|
350
347
|
}
|
|
351
348
|
}
|
|
352
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
353
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
349
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Series3dHost, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
350
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: Series3dHost, isStandalone: true, selector: "[teta-series-3d-host]", inputs: { series: "series" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
354
351
|
}
|
|
355
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
352
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Series3dHost, decorators: [{
|
|
356
353
|
type: Component,
|
|
357
354
|
args: [{
|
|
358
355
|
selector: '[teta-series-3d-host]',
|
|
@@ -381,10 +378,10 @@ class SceneComponent {
|
|
|
381
378
|
ngOnInit() {
|
|
382
379
|
this.rotation = this.store.get('camera').rotation;
|
|
383
380
|
}
|
|
384
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
385
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
381
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SceneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
382
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: SceneComponent, isStandalone: true, selector: "teta-scene", ngImport: i0, template: "@if ({data: data|async}; as config) {\n <ngt-scene>\n <ngts-orbit-controls [minAzimuthAngle]='0'\n [maxAzimuthAngle]='Math.PI/2'\n [maxZoom]='30'\n [minZoom]='2'\n (change)='setRotation()'></ngts-orbit-controls>\n </ngt-scene>\n <teta-area-3d></teta-area-3d>\n @for (s of config.data?.series; track s) {\n <div teta-series-3d-host [series]='s'></div>\n }\n <teta-axes-3d [rotation]='rotation'></teta-axes-3d>\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: "pipe", type: i3.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 }); }
|
|
386
383
|
}
|
|
387
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
384
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SceneComponent, decorators: [{
|
|
388
385
|
type: Component,
|
|
389
386
|
args: [{ standalone: true, selector: 'teta-scene', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
390
387
|
NgtsOrbitControls,
|
|
@@ -394,16 +391,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
394
391
|
Axes3dComponent,
|
|
395
392
|
Block3dComponent,
|
|
396
393
|
Series3dHost,
|
|
397
|
-
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "
|
|
394
|
+
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "@if ({data: data|async}; as config) {\n <ngt-scene>\n <ngts-orbit-controls [minAzimuthAngle]='0'\n [maxAzimuthAngle]='Math.PI/2'\n [maxZoom]='30'\n [minZoom]='2'\n (change)='setRotation()'></ngts-orbit-controls>\n </ngt-scene>\n <teta-area-3d></teta-area-3d>\n @for (s of config.data?.series; track s) {\n <div teta-series-3d-host [series]='s'></div>\n }\n <teta-axes-3d [rotation]='rotation'></teta-axes-3d>\n}\n" }]
|
|
398
395
|
}], ctorParameters: () => [] });
|
|
399
396
|
|
|
400
397
|
class CanvasComponent {
|
|
401
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
402
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
398
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
399
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: CanvasComponent, isStandalone: true, selector: "teta-canvas", inputs: { scene: "scene", camera: "camera", data: "data" }, providers: [NgtStore], ngImport: i0, template: "@if (data?.series?.length) {\n <ngt-canvas [sceneGraph]=\"scene\"\n [camera]=\"camera\">\n </ngt-canvas>\n} @else {\n <p>{{ data?.noDataText || 'no data' }}</p>\n}\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 }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
403
400
|
}
|
|
404
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CanvasComponent, decorators: [{
|
|
405
402
|
type: Component,
|
|
406
|
-
args: [{ selector: 'teta-canvas', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, providers: [NgtStore], imports: [NgtCanvas, SceneComponent, CommonModule], template: "
|
|
403
|
+
args: [{ selector: 'teta-canvas', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, providers: [NgtStore], imports: [NgtCanvas, SceneComponent, CommonModule], template: "@if (data?.series?.length) {\n <ngt-canvas [sceneGraph]=\"scene\"\n [camera]=\"camera\">\n </ngt-canvas>\n} @else {\n <p>{{ data?.noDataText || 'no data' }}</p>\n}\n", styles: [":host{width:100%;height:100%}\n"] }]
|
|
407
404
|
}], propDecorators: { scene: [{
|
|
408
405
|
type: Input
|
|
409
406
|
}], camera: [{
|
|
@@ -434,10 +431,10 @@ class Canvas3dHost {
|
|
|
434
431
|
this._componentRef.instance.camera = this.camera;
|
|
435
432
|
this._componentRef.instance.data = this.data;
|
|
436
433
|
}
|
|
437
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
438
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
434
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Canvas3dHost, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
435
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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 }); }
|
|
439
436
|
}
|
|
440
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
437
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: Canvas3dHost, decorators: [{
|
|
441
438
|
type: Component,
|
|
442
439
|
args: [{
|
|
443
440
|
selector: '[teta-canvas-3d-host]',
|
|
@@ -472,10 +469,10 @@ class ThreeChartComponent {
|
|
|
472
469
|
this.chartService.setData(this.data);
|
|
473
470
|
}
|
|
474
471
|
}
|
|
475
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
476
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
472
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ThreeChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
473
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.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 }); }
|
|
477
474
|
}
|
|
478
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
475
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ThreeChartComponent, decorators: [{
|
|
479
476
|
type: Component,
|
|
480
477
|
args: [{ selector: 'teta-three-chart', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], changeDetection: ChangeDetectionStrategy.OnPush, providers: [NgtStore], imports: [
|
|
481
478
|
NgtCanvas,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tetacom-ng-threejs-chart.mjs","sources":["../../src/component/three/three-chart/service/chart-3d.service.ts","../../src/component/three/three-chart/base-3d-series/base3d-series.component.ts","../../src/component/three/three-chart/base-3d-series/base3d-series.component.html","../../src/component/three/custom-series/custom-series.component.ts","../../src/component/three/custom-series/custom-series.component.html","../../src/component/three/three-chart/area-3d/area-3d.component.ts","../../src/component/three/three-chart/area-3d/area-3d.component.html","../../src/component/three/three-chart/axes-3d/axes-3d.component.ts","../../src/component/three/three-chart/axes-3d/axes-3d.component.html","../../src/component/three/three-chart/block-3d/block-3d.component.ts","../../src/component/three/three-chart/block-3d/block-3d.component.html","../../src/component/three/three-chart/line-3d/line-3d.component.ts","../../src/component/three/three-chart/line-3d/line-3d.component.html","../../src/component/three/three-chart/model/enum/series-3d-type.ts","../../src/component/three/three-chart/directive/series-3d-host.ts","../../src/component/three/three-chart/scene/scene.component.ts","../../src/component/three/three-chart/scene/scene.component.html","../../src/component/three/three-chart/canvas/canvas.component.ts","../../src/component/three/three-chart/canvas/canvas.component.html","../../src/component/three/three-chart/directive/canvas-3d-host.ts","../../src/component/three/three-chart/three-chart.component.ts","../../src/component/three/three-chart/three-chart.component.html","../../src/tetacom-ng-threejs-chart.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport * as d3 from 'd3';\nimport { map, Observable, ReplaySubject, shareReplay} from 'rxjs';\n\nimport { Axes3dMinMax } from '../model/axes-3d-min-max';\nimport { I3dChartConfig } from '../model/i-3d-chart-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class Chart3dService {\n public minMax: Observable<Axes3dMinMax>;\n public data: Observable<I3dChartConfig>;\n public scales: Observable<{ x; y; z }>;\n private data$: ReplaySubject<I3dChartConfig> =\n new ReplaySubject<I3dChartConfig>(1);\n\n constructor() {\n this.data = this.data$.asObservable();\n this.minMax = this.data.pipe(\n map(_ => {\n return this.getAxesMinMax(_);\n })\n );\n this.scales = this.minMax.pipe(\n map(minMax => {\n return this.getScales(minMax);\n }),\n shareReplay(1)\n );\n }\n\n setData(data) {\n this.data$.next(data);\n }\n\n private getAxesMinMax(data: I3dChartConfig): Axes3dMinMax {\n const zArr: number[] = data.series\n .map(_ => {\n return _?.data?.map(d => d?.z);\n })\n .flat()\n .filter(_ => {\n return _ !== null && _ !== undefined;\n });\n const xArr: number[] = data.series\n .map(_ => {\n return _?.data?.map(d => d?.x);\n })\n .flat()\n .filter(_ => {\n return _ !== null && _ !== undefined;\n });\n const yArr: number[] = data.series\n .map(_ => {\n return _?.data?.map(d => d?.y);\n })\n .flat()\n .filter(_ => {\n return _ !== null && _ !== undefined;\n });\n const ZMinMaxVal: [number, number] = [Math.min(...zArr), Math.max(...zArr)];\n const XMinMaxVal: [number, number] = [Math.min(...xArr), Math.max(...xArr)];\n const YMinMaxVal: [number, number] = [Math.min(...yArr), Math.max(...yArr)];\n return {\n z: this.getMinMaxRange(ZMinMaxVal, data.zAxis?.min, data.zAxis?.max),\n x: this.getMinMaxRange(XMinMaxVal, data.xAxis?.min, data.xAxis?.max),\n y: this.getMinMaxRange(YMinMaxVal, data.yAxis?.min, data.yAxis?.max),\n };\n }\n\n private getMinMaxRange(\n minMax: [number, number],\n axisMin: number,\n axisMax: number\n ): [number, number] {\n const min =\n axisMin ||\n (Math.abs(minMax[0] - minMax[1]) < 0.0000001\n ? minMax[0] - Math.abs(minMax[0] - 1) * 0.1\n : minMax[0]);\n const max =\n axisMax ||\n (Math.abs(minMax[0] - minMax[1]) < 0.0000001\n ? minMax[1] + Math.abs(minMax[1] + 1) * 0.1\n : minMax[1]);\n return [min, max];\n }\n\n private getScales(axesMinMax: Axes3dMinMax) {\n const z = d3.scaleLinear().domain(axesMinMax.z).range([50, -50]);\n const x = d3.scaleLinear().domain(axesMinMax.x).range([25, 0]);\n const y = d3.scaleLinear().domain(axesMinMax.y).range([50, -50]);\n return {\n x,\n y,\n z,\n };\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Chart3dService } from '../service/chart-3d.service';\nimport { Base3dThreePoint } from '../model/base-3d-three-point';\nimport { Base3dSeries } from '../model/base-3d-series';\nimport { NgtStore } from 'angular-three';\n\n@Component({\n selector: 'teta-base3d-series',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './base3d-series.component.html',\n styleUrls: ['./base3d-series.component.scss'],\n})\nexport class Base3dSeriesComponent<T extends Base3dThreePoint> {\n @Input()\n set series(series: Base3dSeries<T>) {\n this._series = series;\n }\n\n get series() {\n return this._series;\n }\n protected _series: Base3dSeries<T>;\n constructor(protected svc: Chart3dService, protected ngtStore: NgtStore) {}\n}\n","<p>base3d-series works!</p>\n","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n OnInit,\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {Base3dSeriesComponent} from '../three-chart/base-3d-series/base3d-series.component';\nimport {Base3dPoint} from '../../../common/model/base-3d-point';\nimport {Chart3dService} from '../three-chart/service/chart-3d.service';\nimport {extend, NgtArgs, NgtStore} from 'angular-three';\nimport {Observable} from 'rxjs';\nimport * as THREE from 'three';\n\nextend(THREE);\n\n@Component({\n selector: 'teta-custom-series',\n standalone: true,\n imports: [CommonModule, NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './custom-series.component.html',\n})\nexport class CustomSeriesComponent\n extends Base3dSeriesComponent<Base3dPoint>\n implements OnInit {\n public scales: Observable<{ x; y; z }>;\n\n constructor(override svc: Chart3dService, override ngtStore: NgtStore) {\n super(svc, ngtStore);\n this.scales = this.svc.scales;\n }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.ngtStore.get('camera').zoom = 2;\n this.ngtStore.get('camera').updateProjectionMatrix();\n }, 1000);\n }\n}\n","<ng-container *ngIf=\" {scales:scales|async} as scales\">\n <ngt-mesh [position]=\"[scales.scales.x(this.series.data[0].x),scales.scales.y(this.series.data[0].y),scales.scales.z(this.series.data[0].z) ]\">\n <ngt-box-geometry *args=\"[5,5,5]\"></ngt-box-geometry>\n <ngt-mesh-basic-material></ngt-mesh-basic-material>\n </ngt-mesh>\n</ng-container>\n","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n OnInit,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as THREE from 'three';\nimport { GridHelper } from 'three';\nimport { extend, NgtArgs } from 'angular-three';\n\nextend(THREE);\n\n@Component({\n selector: 'teta-area-3d',\n templateUrl: './area-3d.component.html',\n standalone: true,\n imports: [CommonModule, NgtArgs],\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class Area3dComponent implements OnInit {\n public area: GridHelper[];\n\n protected readonly THREE = THREE;\n\n createArea() {\n const grids: GridHelper[] = [];\n grids.push(this.getMainGrid());\n grids.push(...this.createGrid(4, 25, 3, 'vertical'));\n grids.push(...this.createGrid(4, 25, 3, 'horizontal'));\n return grids;\n }\n\n getMainGrid() {\n const mainGrid = new GridHelper(100, 12);\n mainGrid.position.set(0, 0, 0);\n mainGrid.rotateZ(Math.PI / 2);\n return mainGrid;\n }\n\n createGrid(\n gridsCount: number,\n gridSize: number,\n rectsInGrid: number,\n direction: 'vertical' | 'horizontal'\n ) {\n const plane: GridHelper[] = [];\n for (let p = 0; p <= gridsCount - 1; p++) {\n plane[p] = new THREE.GridHelper(gridSize, rectsInGrid, '#666', '#666');\n plane[p].renderOrder = -1;\n switch (direction) {\n case 'horizontal':\n plane[p].position.set(\n gridSize / 2,\n -50,\n gridSize * p + gridSize / 2 - 50\n );\n break;\n case 'vertical':\n plane[p].position.set(\n gridSize / 2,\n gridSize * p + gridSize / 2 - 50,\n -50\n );\n plane[p].rotateZ(Math.PI / 2);\n plane[p].rotateX(Math.PI / 2);\n break;\n }\n }\n return plane;\n }\n\n ngOnInit(): void {\n this.area = this.createArea();\n }\n}\n","<ngt-mesh>\n <ngt-mesh-basic-material [side]=\"THREE.DoubleSide\"></ngt-mesh-basic-material>\n <ng-container *ngFor=\"let rect of area\">\n <ngt-primitive *args=\"[rect]\"></ngt-primitive>\n </ng-container>\n</ngt-mesh>\n","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n inject,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtsText } from 'angular-three-soba/abstractions';\nimport * as d3 from 'd3';\nimport * as THREE from 'three';\nimport { Euler } from 'three';\nimport { extend } from 'angular-three';\nimport { Axis3dPoint } from '../model/axis-3d-point';\nimport { Chart3dService } from '../service/chart-3d.service';\nimport { combineLatest, map, Observable, takeWhile } from 'rxjs';\nimport { Axes3dMinMax } from '../model/axes-3d-min-max';\n\nextend(THREE);\n\n@Component({\n selector: 'teta-axes-3d',\n templateUrl: './axes-3d.component.html',\n standalone: true,\n imports: [CommonModule, NgtsText],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Axes3dComponent implements OnDestroy {\n @Input() rotation: Euler;\n public axes: Observable<{\n z: Axis3dPoint[];\n y: Axis3dPoint[];\n x: Axis3dPoint[];\n }>;\n private _alive = true;\n\n protected readonly chartService = inject(Chart3dService);\n constructor() {\n this.axes = combineLatest([\n this.chartService.scales,\n this.chartService.minMax,\n ]).pipe(\n takeWhile(() => this._alive),\n map(([scales, minMax]) => {\n return this.createAxes(scales, minMax);\n })\n );\n }\n\n createAxes(scales, minMax: Axes3dMinMax) {\n const axisZ = this.generateTicks(minMax.z, 12).map(_ => {\n return { value: _.toFixed(1), position: scales.z(_) };\n });\n const axisY = this.generateTicks(minMax.y, 12).map(_ => {\n return { value: _.toFixed(1), position: scales.y(_) };\n });\n const axisX = this.generateTicks(minMax.x, 4).map(_ => {\n return { value: _.toFixed(1), position: scales.x(_) };\n });\n return { z: axisZ, y: axisY, x: axisX };\n }\n generateTicks(extremes: number[], count = 10) {\n const [min, max] = extremes;\n const tickStep = (max - min) / count;\n\n const ticks = d3\n .range(min, max + tickStep, tickStep)\n .filter(step => step <= max);\n\n return ticks;\n }\n trackBy(i) {\n return i;\n }\n ngOnDestroy(): void {\n this._alive = false;\n }\n}\n","<ng-container *ngIf='{axes:axes|async}as data'>\n <ngts-text *ngFor='let tick of data.axes?.x;let i=index; trackBy: trackBy' [text]=\"tick.value+'-'\"\n [color]=\"'var(--color-text-90)'\"\n [rotation]='rotation'\n [fontSize]='2.5'\n [position]='[tick.position, -50, 50]'\n [anchorX]=\"'right'\"\n [anchorY]=\"'middle'\"\n [textAlign]=\"'right'\"\n ></ngts-text>\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","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n OnDestroy,\n} from '@angular/core';\nimport {extend, NgtArgs, NgtStore} from 'angular-three';\nimport {NgtsText} from 'angular-three-soba/abstractions';\nimport {map, Observable, takeWhile} from 'rxjs';\nimport * as THREE from 'three';\nimport {Texture} from 'three';\n\nimport {Base3dSeriesComponent} from '../base-3d-series/base3d-series.component';\nimport {Block3dPoint} from '../model/block3d-point';\nimport {Chart3dService} from '../service/chart-3d.service';\nimport { AsyncPipe, NgForOf, NgIf } from '@angular/common';\n\nextend(THREE);\n\n@Component({\n selector: 'teta-block-3d',\n templateUrl: './block-3d.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtsText, NgIf, AsyncPipe, NgForOf],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class Block3dComponent<T extends Block3dPoint>\n extends Base3dSeriesComponent<T>\n implements OnDestroy {\n public blocks: Observable<{\n component: THREE.Mesh<THREE.PlaneGeometry, THREE.MeshBasicMaterial>;\n position: number;\n }[][]>;\n private _alive = true;\n protected readonly Math = Math;\n\n constructor(override svc: Chart3dService, override ngtStore: NgtStore) {\n super(svc, ngtStore);\n this.blocks = this.svc.scales.pipe(\n takeWhile(() => this._alive),\n map(scales => {\n return this.series?.data?.map(_ => {\n return this.createSVGTexture(scales.y(_?.y), scales.y(_?.y1), _?.iconId);\n });\n })\n );\n }\n\n createSVGTexture(y: number, y1: number, iconId: number) {\n const max = Math.max(y, y1);\n const min = Math.min(y, y1);\n const height = Math.abs(max - min);\n const icon = iconId ? document.querySelector(`#${iconId}`) : null;\n const svgString =icon? `<svg width='100' height='100' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'>${icon?.innerHTML}</svg>`:null;\n const loader = new THREE.TextureLoader();\n const texture = loader.load(\n `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgString)}`\n );\n const plane = this.createTexturedPlane(texture, 100, height, !!icon);\n const plane1 = this.createTexturedPlane(texture, 25, height, !!icon);\n plane.rotation.set(0, Math.PI / 2, 0);\n plane.position.set(0.17, min + height / 2, 0);\n plane1.position.set(25 / 2, min + height / 2, -50 + 0.17);\n return [\n {component: plane, position: min + height / 2},\n {component: plane1, position: min + height / 2},\n ];\n }\n\n createTexturedPlane(\n texture: Texture,\n width: number,\n height: number,\n visible: boolean\n ) {\n texture.wrapS = THREE.RepeatWrapping;\n texture.wrapT = THREE.RepeatWrapping;\n texture.repeat.set(10, height / 9);\n const material = new THREE.MeshBasicMaterial({map: texture, visible});\n const geometry = new THREE.PlaneGeometry(width, height, 1, 1);\n const uvs = geometry.attributes['uv'].array;\n const newUvs = new Float32Array(uvs);\n newUvs[0] = 0;\n newUvs[1] = 1;\n newUvs[2] = width / 100;\n newUvs[3] = 1;\n newUvs[4] = 0;\n newUvs[5] = 0;\n newUvs[6] = width / 100;\n newUvs[7] = 0;\n geometry.attributes['uv'].needsUpdate = true;\n geometry.setAttribute('uv', new THREE.BufferAttribute(newUvs, 2));\n return new THREE.Mesh(geometry, material);\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n}\n","<ng-container *ngIf='{\n blocks: blocks | async,\n scales: svc.scales | async\n } as data'>\n <ng-container *ngFor='let mesh of data.blocks; let i=index'>\n <ngt-primitive *args='[mesh[0].component]'></ngt-primitive>\n <ngts-text [text]='series.data[i].name'\n color='black'\n [fontSize]='2.5'\n [rotation]='[0,Math.PI/2,0]'\n [position]='[1,mesh[0].position,5]'\n [textAlign]=\"'left'\"\n [anchorX]=\"'center'\"\n [anchorY]=\"'middle'\"></ngts-text>\n <ngt-primitive *args='[mesh[1].component]'></ngt-primitive>\n </ng-container>\n</ng-container>\n\n","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n OnDestroy,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtsLine } from 'angular-three-soba/abstractions';\nimport { extend, NgtArgs, NgtStore } from 'angular-three';\nimport * as THREE from 'three';\nimport { map, Observable, takeWhile } from 'rxjs';\nimport { Chart3dService } from '../service/chart-3d.service';\nimport { Base3dSeriesComponent } from '../base-3d-series/base3d-series.component';\nimport { Line3dPoint } from '../model/line-3d-point';\n\nextend(THREE);\n@Component({\n selector: 'teta-line-3d',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, NgtsLine, NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: './line-3d.component.html',\n})\nexport class Line3dComponent\n extends Base3dSeriesComponent<Line3dPoint>\n implements OnDestroy\n{\n public points: Observable<[number,number,number]>;\n private _alive = true;\n\n protected readonly Math = Math;\n constructor(override svc: Chart3dService, override ngtStore: NgtStore) {\n super(svc, ngtStore);\n this.points = this.svc.scales.pipe(\n takeWhile(() => this._alive),\n map(scales => {\n return this.getPoints(scales);\n })\n );\n }\n getPoints(scales) {\n return this.series?.data?.map(_ => {\n return [scales.x(_?.x), scales.y(_?.y), scales.z(_?.z)];\n }).flat() as [number,number,number];\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n}\n","<ng-container *ngIf=\"{points:points|async}as data\">\n <ngt-mesh *ngIf=\"data?.points?.length\">\n <ngts-line [color]=\"series.color\" [lineWidth]=\"2\" [points]=\"data.points\"></ngts-line>\n <ngt-line-basic-material></ngt-line-basic-material>\n </ngt-mesh>\n</ng-container>\n","export enum Series3dType {\n line,\n block,\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Input,\n OnInit,\n SimpleChanges,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { Base3dSeriesComponent } from '../base-3d-series/base3d-series.component';\nimport { Block3dComponent } from '../block-3d/block-3d.component';\nimport { Line3dComponent } from '../line-3d/line-3d.component';\nimport { Base3dSeries } from '../model/base-3d-series';\nimport { Base3dThreePoint } from '../model/base-3d-three-point';\nimport { Series3dType } from '../model/enum/series-3d-type';\n\n@Component({\n selector: '[teta-series-3d-host]',\n template: '',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Series3dHost<T extends Base3dThreePoint> implements OnInit {\n @Input() series: Base3dSeries<T>;\n\n private seriesMap: Map<Series3dType, typeof Base3dSeriesComponent> = new Map()\n .set(Series3dType.line, Line3dComponent)\n .set(Series3dType.block, Block3dComponent);\n private _init = false;\n private _componentRef: ComponentRef<any>;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n ngOnInit(): void {\n if (\n !Object.prototype.isPrototypeOf.call(\n Base3dSeriesComponent,\n this.series.component\n )\n ) {\n this.series.component = this.seriesMap.get(this.series.type);\n }\n this._componentRef = this.viewContainerRef.createComponent(\n this.series.component\n );\n\n this._componentRef.instance.series = this.series;\n this._init = true;\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (\n this._init &&\n (Object.prototype.hasOwnProperty.call(changes, 'series') ||\n changes.hasOwnProperty('config'))\n ) {\n this._componentRef.instance.series = this.series;\n this._componentRef.injector.get(ChangeDetectorRef).detectChanges();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n inject,\n OnInit,\n} from '@angular/core';\nimport { NgtStore } from 'angular-three';\nimport { NgtsOrbitControls } from 'angular-three-soba/controls';\nimport { Observable } from 'rxjs';\nimport { Euler } from 'three';\n\nimport { Area3dComponent } from '../area-3d/area-3d.component';\nimport { Axes3dComponent } from '../axes-3d/axes-3d.component';\nimport { Block3dComponent } from '../block-3d/block-3d.component';\nimport { Series3dHost } from '../directive/series-3d-host';\nimport { Line3dComponent } from '../line-3d/line-3d.component';\nimport { I3dChartConfig } from '../model/i-3d-chart-config';\nimport { Chart3dService } from '../service/chart-3d.service';\n\n@Component({\n standalone: true,\n selector: 'teta-scene',\n templateUrl: './scene.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgtsOrbitControls,\n CommonModule,\n Area3dComponent,\n Line3dComponent,\n Axes3dComponent,\n Block3dComponent,\n Series3dHost,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class SceneComponent implements OnInit {\n public data: Observable<I3dChartConfig>;\n public rotation: Euler;\n public readonly store = inject(NgtStore);\n protected readonly Math = Math;\n protected readonly chartService = inject(Chart3dService);\n protected readonly _cdr = inject(ChangeDetectorRef);\n\n constructor() {\n this.data = this.chartService.data;\n }\n\n setRotation() {\n this.rotation = null;\n this._cdr.detectChanges();\n this.rotation = this.store.get('camera').rotation;\n this._cdr.detectChanges();\n }\n\n ngOnInit(): void {\n this.rotation = this.store.get('camera').rotation;\n }\n}\n","<ng-container *ngIf='{data:data|async} as config'>\n <ngt-scene>\n <ngts-orbit-controls [minAzimuthAngle]='0'\n [maxAzimuthAngle]='Math.PI/2'\n [maxZoom]='30'\n [minZoom]='2'\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","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n Input,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtCanvas, NgtStore } from 'angular-three';\nimport { SceneComponent } from '../scene/scene.component';\nimport { I3dChartConfig } from '../model/i-3d-chart-config';\nimport { Camera } from 'three';\n\n@Component({\n selector: 'teta-canvas',\n standalone: true,\n templateUrl: './canvas.component.html',\n styleUrls: ['./canvas.component.scss'],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [NgtStore],\n imports: [NgtCanvas, SceneComponent, CommonModule],\n})\nexport class CanvasComponent {\n @Input() scene: typeof SceneComponent;\n @Input() camera: Camera;\n @Input() data: I3dChartConfig;\n}\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","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Input,\n OnChanges,\n OnInit,\n ViewContainerRef,\n} from '@angular/core';\nimport { Camera } from 'three';\n\nimport { CanvasComponent } from '../canvas/canvas.component';\nimport { I3dChartConfig } from '../model/i-3d-chart-config';\nimport { SceneComponent } from '../scene/scene.component';\n\n@Component({\n selector: '[teta-canvas-3d-host]',\n template: '',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Canvas3dHost implements OnInit, OnChanges {\n @Input() scene: typeof SceneComponent;\n @Input() camera: Camera;\n @Input() data: I3dChartConfig;\n\n private _init = false;\n private _componentRef: ComponentRef<any>;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n ngOnInit(): void {\n this.createCanvas();\n this._init = true;\n }\n\n ngOnChanges(): void {\n if (this._init) {\n this.createCanvas();\n this._componentRef.injector.get(ChangeDetectorRef).detectChanges();\n }\n }\n\n createCanvas() {\n this.viewContainerRef.clear();\n this._componentRef = this.viewContainerRef.createComponent(CanvasComponent);\n this._componentRef.instance.scene = this.scene;\n this._componentRef.instance.camera = this.camera;\n this._componentRef.instance.data = this.data;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n inject,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { extend, NgtCanvas, NgtStore } from 'angular-three';\nimport * as THREE from 'three';\nimport { OrthographicCamera } from 'three';\n\nimport { I3dChartConfig } from './model/i-3d-chart-config';\nimport { SceneComponent } from './scene/scene.component';\nimport { Chart3dService } from './service/chart-3d.service';\nimport { CanvasComponent } from './canvas/canvas.component';\nimport { Canvas3dHost } from './directive/canvas-3d-host';\n\nextend(THREE);\n\n@Component({\n selector: 'teta-three-chart',\n templateUrl: './three-chart.component.html',\n styleUrls: ['./three-chart.component.scss'],\n standalone: true,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [NgtStore],\n imports: [\n NgtCanvas,\n SceneComponent,\n CommonModule,\n CanvasComponent,\n Canvas3dHost,\n ],\n})\nexport class ThreeChartComponent implements OnInit, OnChanges {\n @Input() data: I3dChartConfig;\n public scene: typeof SceneComponent;\n public camera: OrthographicCamera;\n\n protected readonly chartService = inject(Chart3dService);\n protected readonly store = inject(NgtStore);\n protected readonly cdr = inject(ChangeDetectorRef);\n\n ngOnInit(): void {\n this.scene = SceneComponent;\n this.camera = new OrthographicCamera(20, 20, 20, 20, 0.1, 1000);\n this.camera.position.set(100, 20, 70);\n this.camera.zoom = 4.5;\n this.camera.updateProjectionMatrix();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.data?.series?.length) {\n this.chartService.setData(this.data);\n }\n }\n}\n","<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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.Chart3dService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tetacom-ng-threejs-chart.mjs","sources":["../../src/component/three/three-chart/service/chart-3d.service.ts","../../src/component/three/three-chart/base-3d-series/base3d-series.component.ts","../../src/component/three/three-chart/base-3d-series/base3d-series.component.html","../../src/component/three/custom-series/custom-series.component.ts","../../src/component/three/custom-series/custom-series.component.html","../../src/component/three/three-chart/area-3d/area-3d.component.ts","../../src/component/three/three-chart/area-3d/area-3d.component.html","../../src/component/three/three-chart/axes-3d/axes-3d.component.ts","../../src/component/three/three-chart/axes-3d/axes-3d.component.html","../../src/component/three/three-chart/block-3d/block-3d.component.ts","../../src/component/three/three-chart/block-3d/block-3d.component.html","../../src/component/three/three-chart/line-3d/line-3d.component.ts","../../src/component/three/three-chart/line-3d/line-3d.component.html","../../src/component/three/three-chart/model/enum/series-3d-type.ts","../../src/component/three/three-chart/directive/series-3d-host.ts","../../src/component/three/three-chart/scene/scene.component.ts","../../src/component/three/three-chart/scene/scene.component.html","../../src/component/three/three-chart/canvas/canvas.component.ts","../../src/component/three/three-chart/canvas/canvas.component.html","../../src/component/three/three-chart/directive/canvas-3d-host.ts","../../src/component/three/three-chart/three-chart.component.ts","../../src/component/three/three-chart/three-chart.component.html","../../src/tetacom-ng-threejs-chart.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport * as d3 from 'd3';\nimport { map, Observable, ReplaySubject, shareReplay} from 'rxjs';\n\nimport { Axes3dMinMax } from '../model/axes-3d-min-max';\nimport { I3dChartConfig } from '../model/i-3d-chart-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class Chart3dService {\n public minMax: Observable<Axes3dMinMax>;\n public data: Observable<I3dChartConfig>;\n public scales: Observable<{ x; y; z }>;\n private data$: ReplaySubject<I3dChartConfig> =\n new ReplaySubject<I3dChartConfig>(1);\n\n constructor() {\n this.data = this.data$.asObservable();\n this.minMax = this.data.pipe(\n map(_ => {\n return this.getAxesMinMax(_);\n })\n );\n this.scales = this.minMax.pipe(\n map(minMax => {\n return this.getScales(minMax);\n }),\n shareReplay(1)\n );\n }\n\n setData(data) {\n this.data$.next(data);\n }\n\n private getAxesMinMax(data: I3dChartConfig): Axes3dMinMax {\n const zArr: number[] = data.series\n .map(_ => {\n return _?.data?.map(d => d?.z);\n })\n .flat()\n .filter(_ => {\n return _ !== null && _ !== undefined;\n });\n const xArr: number[] = data.series\n .map(_ => {\n return _?.data?.map(d => d?.x);\n })\n .flat()\n .filter(_ => {\n return _ !== null && _ !== undefined;\n });\n const yArr: number[] = data.series\n .map(_ => {\n return _?.data?.map(d => d?.y);\n })\n .flat()\n .filter(_ => {\n return _ !== null && _ !== undefined;\n });\n const ZMinMaxVal: [number, number] = [Math.min(...zArr), Math.max(...zArr)];\n const XMinMaxVal: [number, number] = [Math.min(...xArr), Math.max(...xArr)];\n const YMinMaxVal: [number, number] = [Math.min(...yArr), Math.max(...yArr)];\n return {\n z: this.getMinMaxRange(ZMinMaxVal, data.zAxis?.min, data.zAxis?.max),\n x: this.getMinMaxRange(XMinMaxVal, data.xAxis?.min, data.xAxis?.max),\n y: this.getMinMaxRange(YMinMaxVal, data.yAxis?.min, data.yAxis?.max),\n };\n }\n\n private getMinMaxRange(\n minMax: [number, number],\n axisMin: number,\n axisMax: number\n ): [number, number] {\n const min =\n axisMin ||\n (Math.abs(minMax[0] - minMax[1]) < 0.0000001\n ? minMax[0] - Math.abs(minMax[0] - 1) * 0.1\n : minMax[0]);\n const max =\n axisMax ||\n (Math.abs(minMax[0] - minMax[1]) < 0.0000001\n ? minMax[1] + Math.abs(minMax[1] + 1) * 0.1\n : minMax[1]);\n return [min, max];\n }\n\n private getScales(axesMinMax: Axes3dMinMax) {\n const z = d3.scaleLinear().domain(axesMinMax.z).range([50, -50]);\n const x = d3.scaleLinear().domain(axesMinMax.x).range([25, 0]);\n const y = d3.scaleLinear().domain(axesMinMax.y).range([50, -50]);\n return {\n x,\n y,\n z,\n };\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Chart3dService } from '../service/chart-3d.service';\nimport { Base3dThreePoint } from '../model/base-3d-three-point';\nimport { Base3dSeries } from '../model/base-3d-series';\nimport { NgtStore } from 'angular-three';\n\n@Component({\n selector: 'teta-base3d-series',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './base3d-series.component.html',\n styleUrls: ['./base3d-series.component.scss'],\n})\nexport class Base3dSeriesComponent<T extends Base3dThreePoint> {\n @Input()\n set series(series: Base3dSeries<T>) {\n this._series = series;\n }\n\n get series() {\n return this._series;\n }\n protected _series: Base3dSeries<T>;\n constructor(protected svc: Chart3dService, protected ngtStore: NgtStore) {}\n}\n","<p>base3d-series works!</p>\n","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n OnInit,\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {Base3dSeriesComponent} from '../three-chart/base-3d-series/base3d-series.component';\nimport {Base3dPoint} from '../../../common/model/base-3d-point';\nimport {Chart3dService} from '../three-chart/service/chart-3d.service';\nimport {extend, NgtArgs, NgtStore} from 'angular-three';\nimport {Observable} from 'rxjs';\nimport * as THREE from 'three';\n\nextend(THREE);\n\n@Component({\n selector: 'teta-custom-series',\n standalone: true,\n imports: [CommonModule, NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './custom-series.component.html',\n})\nexport class CustomSeriesComponent\n extends Base3dSeriesComponent<Base3dPoint>\n implements OnInit {\n public scales: Observable<{ x; y; z }>;\n\n constructor(override svc: Chart3dService, override ngtStore: NgtStore) {\n super(svc, ngtStore);\n this.scales = this.svc.scales;\n }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.ngtStore.get('camera').zoom = 2;\n this.ngtStore.get('camera').updateProjectionMatrix();\n }, 1000);\n }\n}\n","@if ({scales: scales|async}; as scales) {\n <ngt-mesh\n [position]=\"[scales.scales.x(this.series.data[0].x),scales.scales.y(this.series.data[0].y),scales.scales.z(this.series.data[0].z) ]\">\n <ngt-box-geometry *args=\"[5,5,5]\"></ngt-box-geometry>\n <ngt-mesh-basic-material></ngt-mesh-basic-material>\n </ngt-mesh>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n OnInit,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as THREE from 'three';\nimport { GridHelper } from 'three';\nimport { extend, NgtArgs } from 'angular-three';\n\nextend(THREE);\n\n@Component({\n selector: 'teta-area-3d',\n templateUrl: './area-3d.component.html',\n standalone: true,\n imports: [CommonModule, NgtArgs],\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class Area3dComponent implements OnInit {\n public area: GridHelper[];\n\n protected readonly THREE = THREE;\n\n createArea() {\n const grids: GridHelper[] = [];\n grids.push(this.getMainGrid());\n grids.push(...this.createGrid(4, 25, 3, 'vertical'));\n grids.push(...this.createGrid(4, 25, 3, 'horizontal'));\n return grids;\n }\n\n getMainGrid() {\n const mainGrid = new GridHelper(100, 12);\n mainGrid.position.set(0, 0, 0);\n mainGrid.rotateZ(Math.PI / 2);\n return mainGrid;\n }\n\n createGrid(\n gridsCount: number,\n gridSize: number,\n rectsInGrid: number,\n direction: 'vertical' | 'horizontal'\n ) {\n const plane: GridHelper[] = [];\n for (let p = 0; p <= gridsCount - 1; p++) {\n plane[p] = new THREE.GridHelper(gridSize, rectsInGrid, '#666', '#666');\n plane[p].renderOrder = -1;\n switch (direction) {\n case 'horizontal':\n plane[p].position.set(\n gridSize / 2,\n -50,\n gridSize * p + gridSize / 2 - 50\n );\n break;\n case 'vertical':\n plane[p].position.set(\n gridSize / 2,\n gridSize * p + gridSize / 2 - 50,\n -50\n );\n plane[p].rotateZ(Math.PI / 2);\n plane[p].rotateX(Math.PI / 2);\n break;\n }\n }\n return plane;\n }\n\n ngOnInit(): void {\n this.area = this.createArea();\n }\n}\n","<ngt-mesh>\n <ngt-mesh-basic-material [side]=\"THREE.DoubleSide\"></ngt-mesh-basic-material>\n @for (rect of area; track rect) {\n <ngt-primitive *args=\"[rect]\"></ngt-primitive>\n }\n</ngt-mesh>\n","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n inject,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {NgtsText} from 'angular-three-soba/abstractions';\nimport * as d3 from 'd3';\nimport * as THREE from 'three';\nimport {Euler} from 'three';\nimport {extend} from 'angular-three';\nimport {Axis3dPoint} from '../model/axis-3d-point';\nimport {Chart3dService} from '../service/chart-3d.service';\nimport {combineLatest, map, Observable, takeWhile} from 'rxjs';\nimport {Axes3dMinMax} from '../model/axes-3d-min-max';\n\nextend(THREE);\n\n@Component({\n selector: 'teta-axes-3d',\n templateUrl: './axes-3d.component.html',\n standalone: true,\n imports: [CommonModule, NgtsText],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Axes3dComponent implements OnDestroy {\n @Input() rotation: Euler;\n public axes: Observable<{\n z: Axis3dPoint[];\n y: Axis3dPoint[];\n x: Axis3dPoint[];\n }>;\n private _alive = true;\n\n protected readonly chartService = inject(Chart3dService);\n\n constructor() {\n this.axes = combineLatest([\n this.chartService.scales,\n this.chartService.minMax,\n ]).pipe(\n takeWhile(() => this._alive),\n map(([scales, minMax]) => {\n return this.createAxes(scales, minMax);\n })\n );\n }\n\n createAxes(scales, minMax: Axes3dMinMax) {\n const axisZ = this.generateTicks(minMax.z, 12).map(_ => {\n return {value: _.toFixed(1), position: scales.z(_)};\n });\n const axisY = this.generateTicks(minMax.y, 12).map(_ => {\n return {value: _.toFixed(1), position: scales.y(_)};\n });\n const axisX = this.generateTicks(minMax.x, 4).map(_ => {\n return {value: _.toFixed(1), position: scales.x(_)};\n });\n return {z: axisZ, y: axisY, x: axisX};\n }\n\n generateTicks(extremes: number[], count = 10) {\n const [min, max] = extremes;\n const tickStep = (max - min) / count;\n\n const ticks = d3\n .range(min, max + tickStep, tickStep)\n .filter(step => step <= max);\n\n return ticks;\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n}\n","@if ({axes: axes|async}; as data) {\n @for (tick of data.axes?.x; track tick; ) {\n <ngts-text [text]=\"tick.value+'-'\"\n [color]=\"'var(--color-text-90)'\"\n [rotation]='rotation'\n [fontSize]='2.5'\n [position]='[tick.position, -50, 50]'\n [anchorX]=\"'right'\"\n [anchorY]=\"'middle'\"\n [textAlign]=\"'right'\"\n ></ngts-text>\n }\n @for (tick of data.axes?.y; track tick; ) {\n <ngts-text [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 }\n @for (tick of data.axes?.z; track tick; ) {\n <ngts-text [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 }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n OnDestroy,\n} from '@angular/core';\nimport {extend, NgtArgs, NgtStore} from 'angular-three';\nimport {NgtsText} from 'angular-three-soba/abstractions';\nimport {map, Observable, takeWhile} from 'rxjs';\nimport * as THREE from 'three';\nimport {Texture} from 'three';\n\nimport {Base3dSeriesComponent} from '../base-3d-series/base3d-series.component';\nimport {Block3dPoint} from '../model/block3d-point';\nimport {Chart3dService} from '../service/chart-3d.service';\nimport {AsyncPipe} from '@angular/common';\n\nextend(THREE);\n\n@Component({\n selector: 'teta-block-3d',\n templateUrl: './block-3d.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtsText, AsyncPipe],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class Block3dComponent<T extends Block3dPoint>\n extends Base3dSeriesComponent<T>\n implements OnDestroy {\n public blocks: Observable<{\n component: THREE.Mesh<THREE.PlaneGeometry, THREE.MeshBasicMaterial>;\n position: number;\n }[][]>;\n private _alive = true;\n protected readonly Math = Math;\n\n constructor(override svc: Chart3dService, override ngtStore: NgtStore) {\n super(svc, ngtStore);\n this.blocks = this.svc.scales.pipe(\n takeWhile(() => this._alive),\n map(scales => {\n return this.series?.data?.map(_ => {\n return this.createSVGTexture(scales.y(_?.y), scales.y(_?.y1), _?.iconId);\n });\n })\n );\n }\n\n createSVGTexture(y: number, y1: number, iconId: number) {\n const max = Math.max(y, y1);\n const min = Math.min(y, y1);\n const height = Math.abs(max - min);\n const icon = iconId ? document.querySelector(`#${iconId}`) : null;\n const svgString = icon ? `<svg width='100' height='100' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'>${icon?.innerHTML}</svg>` : null;\n const loader = new THREE.TextureLoader();\n const texture = loader.load(\n `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgString)}`\n );\n const plane = this.createTexturedPlane(texture, 100, height, !!icon);\n const plane1 = this.createTexturedPlane(texture, 25, height, !!icon);\n plane.rotation.set(0, Math.PI / 2, 0);\n plane.position.set(0.17, min + height / 2, 0);\n plane1.position.set(25 / 2, min + height / 2, -50 + 0.17);\n return [\n {component: plane, position: min + height / 2},\n {component: plane1, position: min + height / 2},\n ];\n }\n\n createTexturedPlane(\n texture: Texture,\n width: number,\n height: number,\n visible: boolean\n ) {\n texture.wrapS = THREE.RepeatWrapping;\n texture.wrapT = THREE.RepeatWrapping;\n texture.repeat.set(10, height / 9);\n const material = new THREE.MeshBasicMaterial({map: texture, visible});\n const geometry = new THREE.PlaneGeometry(width, height, 1, 1);\n const uvs = geometry.attributes['uv'].array;\n const newUvs = new Float32Array(uvs);\n newUvs[0] = 0;\n newUvs[1] = 1;\n newUvs[2] = width / 100;\n newUvs[3] = 1;\n newUvs[4] = 0;\n newUvs[5] = 0;\n newUvs[6] = width / 100;\n newUvs[7] = 0;\n geometry.attributes['uv'].needsUpdate = true;\n geometry.setAttribute('uv', new THREE.BufferAttribute(newUvs, 2));\n return new THREE.Mesh(geometry, material);\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n}\n","@if ({\n blocks: blocks | async,\n scales: svc.scales | async\n}; as data) {\n @for (mesh of data.blocks; let i = $index; track mesh) {\n <ngt-primitive *args='[mesh[0].component]'></ngt-primitive>\n <ngts-text [text]='series.data[i].name'\n color='black'\n [fontSize]='2.5'\n [rotation]='[0,Math.PI/2,0]'\n [position]='[1,mesh[0].position,5]'\n [textAlign]=\"'left'\"\n [anchorX]=\"'center'\"\n [anchorY]=\"'middle'\"></ngts-text>\n <ngt-primitive *args='[mesh[1].component]'></ngt-primitive>\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n OnDestroy,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtsLine } from 'angular-three-soba/abstractions';\nimport { extend, NgtArgs, NgtStore } from 'angular-three';\nimport * as THREE from 'three';\nimport { map, Observable, takeWhile } from 'rxjs';\nimport { Chart3dService } from '../service/chart-3d.service';\nimport { Base3dSeriesComponent } from '../base-3d-series/base3d-series.component';\nimport { Line3dPoint } from '../model/line-3d-point';\n\nextend(THREE);\n@Component({\n selector: 'teta-line-3d',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, NgtsLine, NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: './line-3d.component.html',\n})\nexport class Line3dComponent\n extends Base3dSeriesComponent<Line3dPoint>\n implements OnDestroy\n{\n public points: Observable<[number,number,number]>;\n private _alive = true;\n\n protected readonly Math = Math;\n constructor(override svc: Chart3dService, override ngtStore: NgtStore) {\n super(svc, ngtStore);\n this.points = this.svc.scales.pipe(\n takeWhile(() => this._alive),\n map(scales => {\n return this.getPoints(scales);\n })\n );\n }\n getPoints(scales) {\n return this.series?.data?.map(_ => {\n return [scales.x(_?.x), scales.y(_?.y), scales.z(_?.z)];\n }).flat() as [number,number,number];\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n}\n","@if ({points: points|async}; as data) {\n @if (data?.points?.length) {\n <ngt-mesh>\n <ngts-line [color]=\"series.color\" [lineWidth]=\"2\" [points]=\"data.points\"></ngts-line>\n <ngt-line-basic-material></ngt-line-basic-material>\n </ngt-mesh>\n }\n}\n","export enum Series3dType {\n line,\n block,\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Input,\n OnInit,\n SimpleChanges,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { Base3dSeriesComponent } from '../base-3d-series/base3d-series.component';\nimport { Block3dComponent } from '../block-3d/block-3d.component';\nimport { Line3dComponent } from '../line-3d/line-3d.component';\nimport { Base3dSeries } from '../model/base-3d-series';\nimport { Base3dThreePoint } from '../model/base-3d-three-point';\nimport { Series3dType } from '../model/enum/series-3d-type';\n\n@Component({\n selector: '[teta-series-3d-host]',\n template: '',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Series3dHost<T extends Base3dThreePoint> implements OnInit {\n @Input() series: Base3dSeries<T>;\n\n private seriesMap: Map<Series3dType, typeof Base3dSeriesComponent> = new Map()\n .set(Series3dType.line, Line3dComponent)\n .set(Series3dType.block, Block3dComponent);\n private _init = false;\n private _componentRef: ComponentRef<any>;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n ngOnInit(): void {\n if (\n !Object.prototype.isPrototypeOf.call(\n Base3dSeriesComponent,\n this.series.component\n )\n ) {\n this.series.component = this.seriesMap.get(this.series.type);\n }\n this._componentRef = this.viewContainerRef.createComponent(\n this.series.component\n );\n\n this._componentRef.instance.series = this.series;\n this._init = true;\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (\n this._init &&\n (Object.prototype.hasOwnProperty.call(changes, 'series') ||\n changes.hasOwnProperty('config'))\n ) {\n this._componentRef.instance.series = this.series;\n this._componentRef.injector.get(ChangeDetectorRef).detectChanges();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n inject,\n OnInit,\n} from '@angular/core';\nimport { NgtStore } from 'angular-three';\nimport { NgtsOrbitControls } from 'angular-three-soba/controls';\nimport { Observable } from 'rxjs';\nimport { Euler } from 'three';\n\nimport { Area3dComponent } from '../area-3d/area-3d.component';\nimport { Axes3dComponent } from '../axes-3d/axes-3d.component';\nimport { Block3dComponent } from '../block-3d/block-3d.component';\nimport { Series3dHost } from '../directive/series-3d-host';\nimport { Line3dComponent } from '../line-3d/line-3d.component';\nimport { I3dChartConfig } from '../model/i-3d-chart-config';\nimport { Chart3dService } from '../service/chart-3d.service';\n\n@Component({\n standalone: true,\n selector: 'teta-scene',\n templateUrl: './scene.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgtsOrbitControls,\n CommonModule,\n Area3dComponent,\n Line3dComponent,\n Axes3dComponent,\n Block3dComponent,\n Series3dHost,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class SceneComponent implements OnInit {\n public data: Observable<I3dChartConfig>;\n public rotation: Euler;\n public readonly store = inject(NgtStore);\n protected readonly Math = Math;\n protected readonly chartService = inject(Chart3dService);\n protected readonly _cdr = inject(ChangeDetectorRef);\n\n constructor() {\n this.data = this.chartService.data;\n }\n\n setRotation() {\n this.rotation = null;\n this._cdr.detectChanges();\n this.rotation = this.store.get('camera').rotation;\n this._cdr.detectChanges();\n }\n\n ngOnInit(): void {\n this.rotation = this.store.get('camera').rotation;\n }\n}\n","@if ({data: data|async}; as config) {\n <ngt-scene>\n <ngts-orbit-controls [minAzimuthAngle]='0'\n [maxAzimuthAngle]='Math.PI/2'\n [maxZoom]='30'\n [minZoom]='2'\n (change)='setRotation()'></ngts-orbit-controls>\n </ngt-scene>\n <teta-area-3d></teta-area-3d>\n @for (s of config.data?.series; track s) {\n <div teta-series-3d-host [series]='s'></div>\n }\n <teta-axes-3d [rotation]='rotation'></teta-axes-3d>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n Input,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtCanvas, NgtStore } from 'angular-three';\nimport { SceneComponent } from '../scene/scene.component';\nimport { I3dChartConfig } from '../model/i-3d-chart-config';\nimport { Camera } from 'three';\n\n@Component({\n selector: 'teta-canvas',\n standalone: true,\n templateUrl: './canvas.component.html',\n styleUrls: ['./canvas.component.scss'],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [NgtStore],\n imports: [NgtCanvas, SceneComponent, CommonModule],\n})\nexport class CanvasComponent {\n @Input() scene: typeof SceneComponent;\n @Input() camera: Camera;\n @Input() data: I3dChartConfig;\n}\n","@if (data?.series?.length) {\n <ngt-canvas [sceneGraph]=\"scene\"\n [camera]=\"camera\">\n </ngt-canvas>\n} @else {\n <p>{{ data?.noDataText || 'no data' }}</p>\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Input,\n OnChanges,\n OnInit,\n ViewContainerRef,\n} from '@angular/core';\nimport { Camera } from 'three';\n\nimport { CanvasComponent } from '../canvas/canvas.component';\nimport { I3dChartConfig } from '../model/i-3d-chart-config';\nimport { SceneComponent } from '../scene/scene.component';\n\n@Component({\n selector: '[teta-canvas-3d-host]',\n template: '',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Canvas3dHost implements OnInit, OnChanges {\n @Input() scene: typeof SceneComponent;\n @Input() camera: Camera;\n @Input() data: I3dChartConfig;\n\n private _init = false;\n private _componentRef: ComponentRef<any>;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n ngOnInit(): void {\n this.createCanvas();\n this._init = true;\n }\n\n ngOnChanges(): void {\n if (this._init) {\n this.createCanvas();\n this._componentRef.injector.get(ChangeDetectorRef).detectChanges();\n }\n }\n\n createCanvas() {\n this.viewContainerRef.clear();\n this._componentRef = this.viewContainerRef.createComponent(CanvasComponent);\n this._componentRef.instance.scene = this.scene;\n this._componentRef.instance.camera = this.camera;\n this._componentRef.instance.data = this.data;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n inject,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { extend, NgtCanvas, NgtStore } from 'angular-three';\nimport * as THREE from 'three';\nimport { OrthographicCamera } from 'three';\n\nimport { I3dChartConfig } from './model/i-3d-chart-config';\nimport { SceneComponent } from './scene/scene.component';\nimport { Chart3dService } from './service/chart-3d.service';\nimport { CanvasComponent } from './canvas/canvas.component';\nimport { Canvas3dHost } from './directive/canvas-3d-host';\n\nextend(THREE);\n\n@Component({\n selector: 'teta-three-chart',\n templateUrl: './three-chart.component.html',\n styleUrls: ['./three-chart.component.scss'],\n standalone: true,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [NgtStore],\n imports: [\n NgtCanvas,\n SceneComponent,\n CommonModule,\n CanvasComponent,\n Canvas3dHost,\n ],\n})\nexport class ThreeChartComponent implements OnInit, OnChanges {\n @Input() data: I3dChartConfig;\n public scene: typeof SceneComponent;\n public camera: OrthographicCamera;\n\n protected readonly chartService = inject(Chart3dService);\n protected readonly store = inject(NgtStore);\n protected readonly cdr = inject(ChangeDetectorRef);\n\n ngOnInit(): void {\n this.scene = SceneComponent;\n this.camera = new OrthographicCamera(20, 20, 20, 20, 0.1, 1000);\n this.camera.position.set(100, 20, 70);\n this.camera.zoom = 4.5;\n this.camera.updateProjectionMatrix();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.data?.series?.length) {\n this.chartService.setData(this.data);\n }\n }\n}\n","<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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.Chart3dService","i1"],"mappings":"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"}
|