angular-three-soba 1.3.2 → 1.5.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.
Files changed (57) hide show
  1. package/abstractions/README.md +3 -0
  2. package/abstractions/index.d.ts +10 -0
  3. package/abstractions/lib/billboard/billboard.d.ts +14 -0
  4. package/abstractions/lib/catmull-rom-line/catmull-rom-line.d.ts +15 -0
  5. package/abstractions/lib/cubic-bezier-line/cubic-bezier-line.d.ts +15 -0
  6. package/abstractions/lib/gizmo-helper/gizmo-helper.d.ts +41 -0
  7. package/abstractions/lib/gizmo-helper/gizmo-viewcube/constants.d.ts +12 -0
  8. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +16 -0
  9. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +24 -0
  10. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +14 -0
  11. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +15 -0
  12. package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +28 -0
  13. package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +21 -0
  14. package/abstractions/lib/line/line-input.d.ts +19 -0
  15. package/abstractions/lib/line/line.d.ts +21 -0
  16. package/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.d.ts +19 -0
  17. package/abstractions/lib/text/text.d.ts +21 -0
  18. package/abstractions/lib/text-3d/text-3d.d.ts +39 -0
  19. package/esm2020/abstractions/angular-three-soba-abstractions.mjs +5 -0
  20. package/esm2020/abstractions/index.mjs +11 -0
  21. package/esm2020/abstractions/lib/billboard/billboard.mjs +73 -0
  22. package/esm2020/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +119 -0
  23. package/esm2020/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +98 -0
  24. package/esm2020/abstractions/lib/gizmo-helper/gizmo-helper.mjs +206 -0
  25. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/constants.mjs +31 -0
  26. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +91 -0
  27. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +182 -0
  28. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +45 -0
  29. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +133 -0
  30. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +193 -0
  31. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +266 -0
  32. package/esm2020/abstractions/lib/line/line-input.mjs +75 -0
  33. package/esm2020/abstractions/lib/line/line.mjs +147 -0
  34. package/esm2020/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +127 -0
  35. package/esm2020/abstractions/lib/text/text.mjs +110 -0
  36. package/esm2020/abstractions/lib/text-3d/text-3d.mjs +144 -0
  37. package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +5 -5
  38. package/esm2020/staging/index.mjs +3 -1
  39. package/esm2020/staging/lib/camera-shake/camera-shake.mjs +121 -0
  40. package/esm2020/staging/lib/cloud/cloud.mjs +159 -0
  41. package/fesm2015/angular-three-soba-abstractions.mjs +1965 -0
  42. package/fesm2015/angular-three-soba-abstractions.mjs.map +1 -0
  43. package/fesm2015/angular-three-soba-cameras.mjs +4 -4
  44. package/fesm2015/angular-three-soba-cameras.mjs.map +1 -1
  45. package/fesm2015/angular-three-soba-staging.mjs +274 -4
  46. package/fesm2015/angular-three-soba-staging.mjs.map +1 -1
  47. package/fesm2020/angular-three-soba-abstractions.mjs +1962 -0
  48. package/fesm2020/angular-three-soba-abstractions.mjs.map +1 -0
  49. package/fesm2020/angular-three-soba-cameras.mjs +4 -4
  50. package/fesm2020/angular-three-soba-cameras.mjs.map +1 -1
  51. package/fesm2020/angular-three-soba-staging.mjs +274 -4
  52. package/fesm2020/angular-three-soba-staging.mjs.map +1 -1
  53. package/package.json +11 -3
  54. package/plugin/package.json +1 -1
  55. package/staging/index.d.ts +2 -0
  56. package/staging/lib/camera-shake/camera-shake.d.ts +28 -0
  57. package/staging/lib/cloud/cloud.d.ts +23 -0
@@ -0,0 +1,127 @@
1
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
2
+ import { injectNgtRef, startWithUndefined } from 'angular-three';
3
+ import { combineLatest, map } from 'rxjs';
4
+ import * as THREE from 'three';
5
+ import { NgtsLine } from '../line/line';
6
+ import { NgtsLineInput } from '../line/line-input';
7
+ import * as i0 from "@angular/core";
8
+ const v = new THREE.Vector3();
9
+ export class NgtsQuadraticBezierLine extends NgtsLineInput {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.curve = new THREE.QuadraticBezierCurve3(undefined, undefined, undefined);
13
+ this.lineRef = injectNgtRef();
14
+ }
15
+ set start(start) {
16
+ this.set({ start });
17
+ }
18
+ set end(end) {
19
+ this.set({ end });
20
+ }
21
+ set mid(mid) {
22
+ this.set({ mid });
23
+ }
24
+ set segments(segments) {
25
+ this.set({ segments });
26
+ }
27
+ initialize() {
28
+ super.initialize();
29
+ this.set({ start: [0, 0, 0], end: [0, 0, 0], segments: 20 });
30
+ }
31
+ ngOnInit() {
32
+ this.connect('points', combineLatest([
33
+ this.select('start'),
34
+ this.select('end'),
35
+ this.select('mid').pipe(startWithUndefined()),
36
+ this.select('segments'),
37
+ ]).pipe(map(([start, end, mid, segments]) => this.getPoints(start, end, mid, segments))));
38
+ this.replaceSetPoints();
39
+ }
40
+ replaceSetPoints() {
41
+ this.hold(this.lineRef.$, (line) => {
42
+ line.setPoints = (start, end, mid) => {
43
+ const points = this.getPoints(start, end, mid);
44
+ if (this.lineRef.nativeElement.geometry) {
45
+ this.lineRef.nativeElement.geometry.setPositions(points.map((p) => p.toArray()).flat());
46
+ }
47
+ };
48
+ });
49
+ }
50
+ getPoints(start, end, mid, segments = 20) {
51
+ if (start instanceof THREE.Vector3)
52
+ this.curve.v0.copy(start);
53
+ else
54
+ this.curve.v0.set(...start);
55
+ if (end instanceof THREE.Vector3)
56
+ this.curve.v2.copy(end);
57
+ else
58
+ this.curve.v2.set(...end);
59
+ if (mid instanceof THREE.Vector3) {
60
+ this.curve.v1.copy(mid);
61
+ }
62
+ else {
63
+ this.curve.v1.copy(this.curve.v0
64
+ .clone()
65
+ .add(this.curve.v2.clone().sub(this.curve.v0))
66
+ .add(v.set(0, this.curve.v0.y - this.curve.v2.y, 0)));
67
+ }
68
+ return this.curve.getPoints(segments);
69
+ }
70
+ }
71
+ NgtsQuadraticBezierLine.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsQuadraticBezierLine, deps: null, target: i0.ɵɵFactoryTarget.Component });
72
+ NgtsQuadraticBezierLine.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsQuadraticBezierLine, isStandalone: true, selector: "ngts-quadratic-bezier-line", inputs: { lineRef: "lineRef", start: "start", end: "end", mid: "mid", segments: "segments" }, usesInheritance: true, ngImport: i0, template: `
73
+ <ngts-line
74
+ [lineRef]="lineRef"
75
+ [points]="get('points')"
76
+ [color]="get('color')"
77
+ [vertexColors]="get('vertexColors')"
78
+ [resolution]="get('resolution')"
79
+ [lineWidth]="get('lineWidth')"
80
+ [alphaToCoverage]="get('alphaToCoverage')"
81
+ [dashed]="get('dashed')"
82
+ [dashScale]="get('dashScale')"
83
+ [dashSize]="get('dashSize')"
84
+ [dashOffset]="get('dashOffset')"
85
+ [gapSize]="get('gapSize')"
86
+ [wireframe]="get('wireframe')"
87
+ [worldUnits]="get('worldUnits')"
88
+ />
89
+ `, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line[points]", inputs: ["lineRef", "points", "segments"] }] });
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsQuadraticBezierLine, decorators: [{
91
+ type: Component,
92
+ args: [{
93
+ selector: 'ngts-quadratic-bezier-line',
94
+ standalone: true,
95
+ template: `
96
+ <ngts-line
97
+ [lineRef]="lineRef"
98
+ [points]="get('points')"
99
+ [color]="get('color')"
100
+ [vertexColors]="get('vertexColors')"
101
+ [resolution]="get('resolution')"
102
+ [lineWidth]="get('lineWidth')"
103
+ [alphaToCoverage]="get('alphaToCoverage')"
104
+ [dashed]="get('dashed')"
105
+ [dashScale]="get('dashScale')"
106
+ [dashSize]="get('dashSize')"
107
+ [dashOffset]="get('dashOffset')"
108
+ [gapSize]="get('gapSize')"
109
+ [wireframe]="get('wireframe')"
110
+ [worldUnits]="get('worldUnits')"
111
+ />
112
+ `,
113
+ imports: [NgtsLine],
114
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
115
+ }]
116
+ }], propDecorators: { lineRef: [{
117
+ type: Input
118
+ }], start: [{
119
+ type: Input
120
+ }], end: [{
121
+ type: Input
122
+ }], mid: [{
123
+ type: Input
124
+ }], segments: [{
125
+ type: Input
126
+ }] } });
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhZHJhdGljLWJlemllci1saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvYWJzdHJhY3Rpb25zL3NyYy9saWIvcXVhZHJhdGljLWJlemllci1saW5lL3F1YWRyYXRpYy1iZXppZXItbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRS9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUVuRCxNQUFNLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQTBCOUIsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGFBQWE7SUF4QjFEOztRQXlCYSxVQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsU0FBVSxFQUFFLFNBQVUsRUFBRSxTQUFVLENBQUMsQ0FBQztRQUU1RSxZQUFPLEdBQUcsWUFBWSxFQUFTLENBQUM7S0E4RTVDO0lBNUVHLElBQWEsS0FBSyxDQUFDLEtBQStDO1FBQzlELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFhLEdBQUcsQ0FBQyxHQUE2QztRQUMxRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBYSxHQUFH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LENBQUMsQ0FBQztTQUMzQjthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtpQkFDUixLQUFLLEVBQUU7aUJBQ1AsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUM3QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUMzRCxDQUFDO1NBQ0w7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O29IQWhGUSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwyTUFyQnRCOzs7Ozs7Ozs7Ozs7Ozs7OztLQWlCVCw0REFDUyxRQUFROzJGQUdULHVCQUF1QjtrQkF4Qm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO29CQUNuQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7OEJBSVksT0FBTztzQkFBZixLQUFLO2dCQUVPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sR0FBRztzQkFBZixLQUFLO2dCQUlPLEdBQUc7c0JBQWYsS0FBSztnQkFJTyxRQUFRO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3RSZWYsIHN0YXJ0V2l0aFVuZGVmaW5lZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBMaW5lMiB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5pbXBvcnQgeyBOZ3RzTGluZSB9IGZyb20gJy4uL2xpbmUvbGluZSc7XG5pbXBvcnQgeyBOZ3RzTGluZUlucHV0IH0gZnJvbSAnLi4vbGluZS9saW5lLWlucHV0JztcblxuY29uc3QgdiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1xdWFkcmF0aWMtYmV6aWVyLWxpbmUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndHMtbGluZVxuICAgICAgICAgICAgW2xpbmVSZWZdPVwibGluZVJlZlwiXG4gICAgICAgICAgICBbcG9pbnRzXT1cImdldCgncG9pbnRzJylcIlxuICAgICAgICAgICAgW2NvbG9yXT1cImdldCgnY29sb3InKVwiXG4gICAgICAgICAgICBbdmVydGV4Q29sb3JzXT1cImdldCgndmVydGV4Q29sb3JzJylcIlxuICAgICAgICAgICAgW3Jlc29sdXRpb25dPVwiZ2V0KCdyZXNvbHV0aW9uJylcIlxuICAgICAgICAgICAgW2xpbmVXaWR0aF09XCJnZXQoJ2xpbmVXaWR0aCcpXCJcbiAgICAgICAgICAgIFthbHBoYVRvQ292ZXJhZ2VdPVwiZ2V0KCdhbHBoYVRvQ292ZXJhZ2UnKVwiXG4gICAgICAgICAgICBbZGFzaGVkXT1cImdldCgnZGFzaGVkJylcIlxuICAgICAgICAgICAgW2Rhc2hTY2FsZV09XCJnZXQoJ2Rhc2hTY2FsZScpXCJcbiAgICAgICAgICAgIFtkYXNoU2l6ZV09XCJnZXQoJ2Rhc2hTaXplJylcIlxuICAgICAgICAgICAgW2Rhc2hPZmZzZXRdPVwiZ2V0KCdkYXNoT2Zmc2V0JylcIlxuICAgICAgICAgICAgW2dhcFNpemVdPVwiZ2V0KCdnYXBTaXplJylcIlxuICAgICAgICAgICAgW3dpcmVmcmFtZV09XCJnZXQoJ3dpcmVmcmFtZScpXCJcbiAgICAgICAgICAgIFt3b3JsZFVuaXRzXT1cImdldCgnd29ybGRVbml0cycpXCJcbiAgICAgICAgLz5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RzTGluZV0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzUXVhZHJhdGljQmV6aWVyTGluZSBleHRlbmRzIE5ndHNMaW5lSW5wdXQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHJlYWRvbmx5IGN1cnZlID0gbmV3IFRIUkVFLlF1YWRyYXRpY0JlemllckN1cnZlMyh1bmRlZmluZWQhLCB1bmRlZmluZWQhLCB1bmRlZmluZWQhKTtcblxuICAgIEBJbnB1dCgpIGxpbmVSZWYgPSBpbmplY3ROZ3RSZWY8TGluZTI+KCk7XG5cbiAgICBASW5wdXQoKSBzZXQgc3RhcnQoc3RhcnQ6IFRIUkVFLlZlY3RvcjMgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzdGFydCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZW5kKGVuZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkge1xuICAgICAgICB0aGlzLnNldCh7IGVuZCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWlkKG1pZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkge1xuICAgICAgICB0aGlzLnNldCh7IG1pZCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2VnbWVudHMoc2VnbWVudHM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHNlZ21lbnRzIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBzdGFydDogWzAsIDAsIDBdLCBlbmQ6IFswLCAwLCAwXSwgc2VnbWVudHM6IDIwIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAncG9pbnRzJyxcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdzdGFydCcpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdlbmQnKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgnbWlkJykucGlwZShzdGFydFdpdGhVbmRlZmluZWQoKSksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ3NlZ21lbnRzJyksXG4gICAgICAgICAgICBdKS5waXBlKG1hcCgoW3N0YXJ0LCBlbmQsIG1pZCwgc2VnbWVudHNdKSA9PiB0aGlzLmdldFBvaW50cyhzdGFydCwgZW5kLCBtaWQsIHNlZ21lbnRzKSkpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yZXBsYWNlU2V0UG9pbnRzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXBsYWNlU2V0UG9pbnRzKCkge1xuICAgICAgICB0aGlzLmhvbGQodGhpcy5saW5lUmVmLiQsIChsaW5lKSA9PiB7XG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgbGluZSBhcyB1bmtub3duIGFzIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0UG9pbnRzOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXVxuICAgICAgICAgICAgICAgICAgICApID0+IHZvaWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKS5zZXRQb2ludHMgPSAoc3RhcnQsIGVuZCwgbWlkKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gdGhpcy5nZXRQb2ludHMoc3RhcnQsIGVuZCwgbWlkKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5saW5lUmVmLm5hdGl2ZUVsZW1lbnQuZ2VvbWV0cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saW5lUmVmLm5hdGl2ZUVsZW1lbnQuZ2VvbWV0cnkuc2V0UG9zaXRpb25zKHBvaW50cy5tYXAoKHApID0+IHAudG9BcnJheSgpKS5mbGF0KCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9pbnRzKFxuICAgICAgICBzdGFydDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgICAgICAgZW5kOiBUSFJFRS5WZWN0b3IzIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICBtaWQ/OiBUSFJFRS5WZWN0b3IzIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICBzZWdtZW50cyA9IDIwXG4gICAgKSB7XG4gICAgICAgIGlmIChzdGFydCBpbnN0YW5jZW9mIFRIUkVFLlZlY3RvcjMpIHRoaXMuY3VydmUudjAuY29weShzdGFydCk7XG4gICAgICAgIGVsc2UgdGhpcy5jdXJ2ZS52MC5zZXQoLi4uKHN0YXJ0IGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkpO1xuICAgICAgICBpZiAoZW5kIGluc3RhbmNlb2YgVEhSRUUuVmVjdG9yMykgdGhpcy5jdXJ2ZS52Mi5jb3B5KGVuZCk7XG4gICAgICAgIGVsc2UgdGhpcy5jdXJ2ZS52Mi5zZXQoLi4uKGVuZCBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pKTtcbiAgICAgICAgaWYgKG1pZCBpbnN0YW5jZW9mIFRIUkVFLlZlY3RvcjMpIHtcbiAgICAgICAgICAgIHRoaXMuY3VydmUudjEuY29weShtaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jdXJ2ZS52MS5jb3B5KFxuICAgICAgICAgICAgICAgIHRoaXMuY3VydmUudjBcbiAgICAgICAgICAgICAgICAgICAgLmNsb25lKClcbiAgICAgICAgICAgICAgICAgICAgLmFkZCh0aGlzLmN1cnZlLnYyLmNsb25lKCkuc3ViKHRoaXMuY3VydmUudjApKVxuICAgICAgICAgICAgICAgICAgICAuYWRkKHYuc2V0KDAsIHRoaXMuY3VydmUudjAueSAtIHRoaXMuY3VydmUudjIueSwgMCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnZlLmdldFBvaW50cyhzZWdtZW50cyk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,110 @@
1
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, inject, Input, Output, } from '@angular/core';
2
+ import { RxActionFactory } from '@rx-angular/state/actions';
3
+ import { injectNgtRef, NgtArgs, NgtRxStore, NgtStore } from 'angular-three';
4
+ // @ts-ignore
5
+ import { preloadFont, Text } from 'troika-three-text';
6
+ import * as i0 from "@angular/core";
7
+ export class NgtsText extends NgtRxStore {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.textRef = injectNgtRef();
11
+ this.sync = new EventEmitter();
12
+ this.store = inject(NgtStore);
13
+ this.troikaText = new Text();
14
+ }
15
+ set text(text) {
16
+ this.set({ text });
17
+ }
18
+ set characters(characters) {
19
+ this.set({ characters });
20
+ }
21
+ set font(font) {
22
+ this.set({ font });
23
+ }
24
+ set anchorX(anchorX) {
25
+ this.set({ anchorX });
26
+ }
27
+ set anchorY(anchorY) {
28
+ this.set({ anchorY });
29
+ }
30
+ initialize() {
31
+ super.initialize();
32
+ this.set({ anchorX: 'center', anchorY: 'middle', text: '' });
33
+ }
34
+ ngOnInit() {
35
+ if (!this.textRef.nativeElement)
36
+ this.textRef.nativeElement = this.troikaText;
37
+ this.preloadFont();
38
+ this.syncText();
39
+ }
40
+ ngOnDestroy() {
41
+ this.troikaText.dispose();
42
+ super.ngOnDestroy();
43
+ }
44
+ preloadFont() {
45
+ const { font, characters } = this.get();
46
+ if (font && characters) {
47
+ preloadFont({ font, characters });
48
+ }
49
+ }
50
+ syncText() {
51
+ this.hold(this.select(), () => {
52
+ const invalidate = this.store.get('invalidate');
53
+ this.troikaText.sync(() => {
54
+ invalidate();
55
+ if (this.sync.observed)
56
+ this.sync.next(this.troikaText);
57
+ });
58
+ });
59
+ }
60
+ }
61
+ NgtsText.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsText, deps: null, target: i0.ɵɵFactoryTarget.Component });
62
+ NgtsText.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsText, isStandalone: true, selector: "ngts-text[text]", inputs: { textRef: "textRef", text: "text", characters: "characters", font: "font", anchorX: "anchorX", anchorY: "anchorY" }, outputs: { sync: "sync" }, providers: [RxActionFactory], usesInheritance: true, ngImport: i0, template: `
63
+ <ngt-primitive
64
+ ngtCompound
65
+ *args="[textRef.nativeElement]"
66
+ [text]="get('text')"
67
+ [anchorX]="get('anchorX')"
68
+ [anchorY]="get('anchorY')"
69
+ [font]="get('font')"
70
+ >
71
+ <ng-content />
72
+ </ngt-primitive>
73
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsText, decorators: [{
75
+ type: Component,
76
+ args: [{
77
+ selector: 'ngts-text[text]',
78
+ standalone: true,
79
+ template: `
80
+ <ngt-primitive
81
+ ngtCompound
82
+ *args="[textRef.nativeElement]"
83
+ [text]="get('text')"
84
+ [anchorX]="get('anchorX')"
85
+ [anchorY]="get('anchorY')"
86
+ [font]="get('font')"
87
+ >
88
+ <ng-content />
89
+ </ngt-primitive>
90
+ `,
91
+ imports: [NgtArgs],
92
+ providers: [RxActionFactory],
93
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
94
+ }]
95
+ }], propDecorators: { textRef: [{
96
+ type: Input
97
+ }], text: [{
98
+ type: Input
99
+ }], characters: [{
100
+ type: Input
101
+ }], font: [{
102
+ type: Input
103
+ }], anchorX: [{
104
+ type: Input
105
+ }], anchorY: [{
106
+ type: Input
107
+ }], sync: [{
108
+ type: Output
109
+ }] } });
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL3RleHQvdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHNCQUFzQixFQUN0QixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsYUFBYTtBQUNiLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBcUJ0RCxNQUFNLE9BQU8sUUFBUyxTQUFRLFVBQVU7SUFuQnhDOztRQW9CYSxZQUFPLEdBQUcsWUFBWSxFQUFRLENBQUM7UUFzQjlCLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBT3pCLFVBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekIsZUFBVSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7S0E2QjVDO0lBekRHLElBQWEsSUFBSSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsVUFBVSxDQUFDLFVBQWtCO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFhLElBQUksQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFhLE9BQU8sQ0FBQyxPQUE2QztRQUM5RCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMsT0FBa0Y7UUFDbkcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUlRLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBS0QsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7WUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzlFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVRLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLFdBQVc7UUFDZixNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN4QyxJQUFJLElBQUksSUFBSSxVQUFVLEVBQUU7WUFDcEIsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDckM7SUFDTCxDQUFDO0lBRU8sUUFBUTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRTtZQUMxQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLFVBQVUsRUFBRSxDQUFDO2dCQUNiLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO29CQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7cUdBM0RRLFFBQVE7eUZBQVIsUUFBUSx1TkFITixDQUFDLGVBQWUsQ0FBQyxpREFibEI7Ozs7Ozs7Ozs7O0tBV1QsNERBQ1MsT0FBTzsyRkFJUixRQUFRO2tCQW5CcEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7OztLQVdUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7OEJBRVksT0FBTztzQkFBZixLQUFLO2dCQUVPLElBQUk7c0JBQWhCLEtBQUs7Z0JBSU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxJQUFJO3NCQUFoQixLQUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFJSSxJQUFJO3NCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUnhBY3Rpb25GYWN0b3J5IH0gZnJvbSAnQHJ4LWFuZ3VsYXIvc3RhdGUvYWN0aW9ucyc7XG5pbXBvcnQgeyBpbmplY3ROZ3RSZWYsIE5ndEFyZ3MsIE5ndFJ4U3RvcmUsIE5ndFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBwcmVsb2FkRm9udCwgVGV4dCB9IGZyb20gJ3Ryb2lrYS10aHJlZS10ZXh0JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXRleHRbdGV4dF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1wcmltaXRpdmVcbiAgICAgICAgICAgIG5ndENvbXBvdW5kXG4gICAgICAgICAgICAqYXJncz1cIlt0ZXh0UmVmLm5hdGl2ZUVsZW1lbnRdXCJcbiAgICAgICAgICAgIFt0ZXh0XT1cImdldCgndGV4dCcpXCJcbiAgICAgICAgICAgIFthbmNob3JYXT1cImdldCgnYW5jaG9yWCcpXCJcbiAgICAgICAgICAgIFthbmNob3JZXT1cImdldCgnYW5jaG9yWScpXCJcbiAgICAgICAgICAgIFtmb250XT1cImdldCgnZm9udCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPC9uZ3QtcHJpbWl0aXZlPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndEFyZ3NdLFxuICAgIHByb3ZpZGVyczogW1J4QWN0aW9uRmFjdG9yeV0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzVGV4dCBleHRlbmRzIE5ndFJ4U3RvcmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgdGV4dFJlZiA9IGluamVjdE5ndFJlZjxUZXh0PigpO1xuXG4gICAgQElucHV0KCkgc2V0IHRleHQodGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgdGV4dCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgY2hhcmFjdGVycyhjaGFyYWN0ZXJzOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBjaGFyYWN0ZXJzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmb250KGZvbnQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IGZvbnQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGFuY2hvclgoYW5jaG9yWDogbnVtYmVyIHwgJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYW5jaG9yWCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYW5jaG9yWShhbmNob3JZOiBudW1iZXIgfCAndG9wJyB8ICd0b3AtYmFzZWxpbmUnIHwgJ21pZGRsZScgfCAnYm90dG9tLWJhc2VsaW5lJyB8ICdib3R0b20nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYW5jaG9yWSB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgc3luYyA9IG5ldyBFdmVudEVtaXR0ZXI8VGV4dD4oKTtcblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBhbmNob3JYOiAnY2VudGVyJywgYW5jaG9yWTogJ21pZGRsZScsIHRleHQ6ICcnIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJvaWthVGV4dCA9IG5ldyBUZXh0KCk7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnRleHRSZWYubmF0aXZlRWxlbWVudCkgdGhpcy50ZXh0UmVmLm5hdGl2ZUVsZW1lbnQgPSB0aGlzLnRyb2lrYVRleHQ7XG4gICAgICAgIHRoaXMucHJlbG9hZEZvbnQoKTtcbiAgICAgICAgdGhpcy5zeW5jVGV4dCgpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRyb2lrYVRleHQuZGlzcG9zZSgpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJlbG9hZEZvbnQoKSB7XG4gICAgICAgIGNvbnN0IHsgZm9udCwgY2hhcmFjdGVycyB9ID0gdGhpcy5nZXQoKTtcbiAgICAgICAgaWYgKGZvbnQgJiYgY2hhcmFjdGVycykge1xuICAgICAgICAgICAgcHJlbG9hZEZvbnQoeyBmb250LCBjaGFyYWN0ZXJzIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzeW5jVGV4dCgpIHtcbiAgICAgICAgdGhpcy5ob2xkKHRoaXMuc2VsZWN0KCksICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGludmFsaWRhdGUgPSB0aGlzLnN0b3JlLmdldCgnaW52YWxpZGF0ZScpO1xuICAgICAgICAgICAgdGhpcy50cm9pa2FUZXh0LnN5bmMoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGludmFsaWRhdGUoKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zeW5jLm9ic2VydmVkKSB0aGlzLnN5bmMubmV4dCh0aGlzLnRyb2lrYVRleHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,144 @@
1
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
2
+ import { extend, NgtArgs, NgtPush, NgtRxStore } from 'angular-three';
3
+ import { combineLatest, map, of, switchMap } from 'rxjs';
4
+ import { Mesh } from 'three';
5
+ import { FontLoader, TextGeometry } from 'three-stdlib';
6
+ import * as i0 from "@angular/core";
7
+ extend({ Mesh, TextGeometry });
8
+ export class NgtsText3D extends NgtRxStore {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.font$ = this.select('font').pipe(switchMap((font) => {
12
+ if (typeof font === 'string')
13
+ return fetch(font).then((res) => res.json());
14
+ return of(font);
15
+ }), map((fontData) => new FontLoader().parse(fontData)));
16
+ this.geometryArgs$ = combineLatest([
17
+ this.font$,
18
+ this.select('text'),
19
+ this.select('size'),
20
+ this.select('height'),
21
+ this.select('bevelThickness'),
22
+ this.select('bevelSize'),
23
+ this.select('bevelEnabled'),
24
+ this.select('bevelSegments'),
25
+ this.select('bevelOffset'),
26
+ this.select('curveSegments'),
27
+ this.select('letterSpacing'),
28
+ this.select('lineHeight'),
29
+ ]).pipe(map(([font, text, size, height, bevelThickness, bevelSize, bevelEnabled, bevelSegments, bevelOffset, curveSegments, letterSpacing, lineHeight,]) => [
30
+ text,
31
+ {
32
+ font,
33
+ size,
34
+ height,
35
+ bevelThickness,
36
+ bevelSize,
37
+ bevelSegments,
38
+ bevelEnabled,
39
+ bevelOffset,
40
+ curveSegments,
41
+ letterSpacing,
42
+ lineHeight,
43
+ },
44
+ ]));
45
+ }
46
+ set font(font) {
47
+ this.set({ font });
48
+ }
49
+ set text(text) {
50
+ this.set({ text });
51
+ }
52
+ set bevelEnabled(bevelEnabled) {
53
+ this.set({ bevelEnabled });
54
+ }
55
+ set bevelOffset(bevelOffset) {
56
+ this.set({ bevelOffset });
57
+ }
58
+ set bevelSize(bevelSize) {
59
+ this.set({ bevelSize });
60
+ }
61
+ set bevelThickness(bevelThickness) {
62
+ this.set({ bevelThickness });
63
+ }
64
+ set curveSegments(curveSegments) {
65
+ this.set({ curveSegments });
66
+ }
67
+ set bevelSegments(bevelSegments) {
68
+ this.set({ bevelSegments });
69
+ }
70
+ set height(height) {
71
+ this.set({ height });
72
+ }
73
+ set size(size) {
74
+ this.set({ size });
75
+ }
76
+ set lineHeight(lineHeight) {
77
+ this.set({ lineHeight });
78
+ }
79
+ set letterSpacing(letterSpacing) {
80
+ this.set({ letterSpacing });
81
+ }
82
+ initialize() {
83
+ super.initialize();
84
+ this.set({
85
+ letterSpacing: 0,
86
+ lineHeight: 1,
87
+ size: 1,
88
+ height: 0.2,
89
+ bevelThickness: 0.1,
90
+ bevelSize: 0.01,
91
+ bevelEnabled: false,
92
+ bevelOffset: 0,
93
+ bevelSegments: 4,
94
+ curveSegments: 8,
95
+ });
96
+ }
97
+ }
98
+ NgtsText3D.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsText3D, deps: null, target: i0.ɵɵFactoryTarget.Component });
99
+ NgtsText3D.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsText3D, isStandalone: true, selector: "ngts-text-3d[font]", inputs: { font: "font", text: "text", bevelEnabled: "bevelEnabled", bevelOffset: "bevelOffset", bevelSize: "bevelSize", bevelThickness: "bevelThickness", curveSegments: "curveSegments", bevelSegments: "bevelSegments", height: "height", size: "size", lineHeight: "lineHeight", letterSpacing: "letterSpacing" }, usesInheritance: true, ngImport: i0, template: `
100
+ <ngt-mesh ngtCompound>
101
+ <ngt-text-geometry *args="geometryArgs$ | ngtPush : null" />
102
+ <ng-content />
103
+ </ngt-mesh>
104
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }] });
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsText3D, decorators: [{
106
+ type: Component,
107
+ args: [{
108
+ selector: 'ngts-text-3d[font]',
109
+ standalone: true,
110
+ template: `
111
+ <ngt-mesh ngtCompound>
112
+ <ngt-text-geometry *args="geometryArgs$ | ngtPush : null" />
113
+ <ng-content />
114
+ </ngt-mesh>
115
+ `,
116
+ imports: [NgtArgs, NgtPush],
117
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
118
+ }]
119
+ }], propDecorators: { font: [{
120
+ type: Input
121
+ }], text: [{
122
+ type: Input
123
+ }], bevelEnabled: [{
124
+ type: Input
125
+ }], bevelOffset: [{
126
+ type: Input
127
+ }], bevelSize: [{
128
+ type: Input
129
+ }], bevelThickness: [{
130
+ type: Input
131
+ }], curveSegments: [{
132
+ type: Input
133
+ }], bevelSegments: [{
134
+ type: Input
135
+ }], height: [{
136
+ type: Input
137
+ }], size: [{
138
+ type: Input
139
+ }], lineHeight: [{
140
+ type: Input
141
+ }], letterSpacing: [{
142
+ type: Input
143
+ }] } });
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC0zZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL3RleHQtM2QvdGV4dC0zZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFxQnhELE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBYy9CLE1BQU0sT0FBTyxVQUFXLFNBQVEsVUFBVTtJQVoxQzs7UUE2RXFCLFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDN0MsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDZixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7Z0JBQUUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQXNCLENBQUM7WUFDaEcsT0FBTyxFQUFFLENBQUMsSUFBZ0IsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQyxLQUFL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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIE5ndEFyZ3MsIE5ndFB1c2gsIE5ndFJ4U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCwgb2YsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVzaCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEZvbnRMb2FkZXIsIFRleHRHZW9tZXRyeSB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmRlY2xhcmUgdHlwZSBHbHlwaCA9IHtcbiAgICBfY2FjaGVkT3V0bGluZTogc3RyaW5nW107XG4gICAgaGE6IG51bWJlcjtcbiAgICBvOiBzdHJpbmc7XG59O1xuXG5kZWNsYXJlIHR5cGUgRm9udERhdGEgPSB7XG4gICAgYm91bmRpbmdCb3g6IHtcbiAgICAgICAgeU1heDogbnVtYmVyO1xuICAgICAgICB5TWluOiBudW1iZXI7XG4gICAgfTtcbiAgICBmYW1pbHlOYW1lOiBzdHJpbmc7XG4gICAgZ2x5cGhzOiB7XG4gICAgICAgIFtrOiBzdHJpbmddOiBHbHlwaDtcbiAgICB9O1xuICAgIHJlc29sdXRpb246IG51bWJlcjtcbiAgICB1bmRlcmxpbmVUaGlja25lc3M6IG51bWJlcjtcbn07XG5cbmV4dGVuZCh7IE1lc2gsIFRleHRHZW9tZXRyeSB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXRleHQtM2RbZm9udF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1tZXNoIG5ndENvbXBvdW5kPlxuICAgICAgICAgICAgPG5ndC10ZXh0LWdlb21ldHJ5ICphcmdzPVwiZ2VvbWV0cnlBcmdzJCB8IG5ndFB1c2ggOiBudWxsXCIgLz5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIDwvbmd0LW1lc2g+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0QXJncywgTmd0UHVzaF0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzVGV4dDNEIGV4dGVuZHMgTmd0UnhTdG9yZSB7XG4gICAgQElucHV0KCkgc2V0IGZvbnQoZm9udDogRm9udERhdGEgfCBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmb250IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCB0ZXh0KHRleHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IHRleHQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJldmVsRW5hYmxlZChiZXZlbEVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBiZXZlbEVuYWJsZWQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJldmVsT2Zmc2V0KGJldmVsT2Zmc2V0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBiZXZlbE9mZnNldCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYmV2ZWxTaXplKGJldmVsU2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYmV2ZWxTaXplIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBiZXZlbFRoaWNrbmVzcyhiZXZlbFRoaWNrbmVzczogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYmV2ZWxUaGlja25lc3MgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGN1cnZlU2VnbWVudHMoY3VydmVTZWdtZW50czogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY3VydmVTZWdtZW50cyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYmV2ZWxTZWdtZW50cyhiZXZlbFNlZ21lbnRzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBiZXZlbFNlZ21lbnRzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBoZWlnaHQoaGVpZ2h0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBoZWlnaHQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNpemUoc2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2l6ZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbGluZUhlaWdodChsaW5lSGVpZ2h0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBsaW5lSGVpZ2h0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsZXR0ZXJTcGFjaW5nKGxldHRlclNwYWNpbmc6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGxldHRlclNwYWNpbmcgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICBsZXR0ZXJTcGFjaW5nOiAwLFxuICAgICAgICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgICAgICAgIHNpemU6IDEsXG4gICAgICAgICAgICBoZWlnaHQ6IDAuMixcbiAgICAgICAgICAgIGJldmVsVGhpY2tuZXNzOiAwLjEsXG4gICAgICAgICAgICBiZXZlbFNpemU6IDAuMDEsXG4gICAgICAgICAgICBiZXZlbEVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgYmV2ZWxPZmZzZXQ6IDAsXG4gICAgICAgICAgICBiZXZlbFNlZ21lbnRzOiA0LFxuICAgICAgICAgICAgY3VydmVTZWdtZW50czogOCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb250JCA9IHRoaXMuc2VsZWN0KCdmb250JykucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChmb250KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGZvbnQgPT09ICdzdHJpbmcnKSByZXR1cm4gZmV0Y2goZm9udCkudGhlbigocmVzKSA9PiByZXMuanNvbigpKSBhcyBQcm9taXNlPEZvbnREYXRhPjtcbiAgICAgICAgICAgIHJldHVybiBvZihmb250IGFzIEZvbnREYXRhKTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgoZm9udERhdGEpID0+IG5ldyBGb250TG9hZGVyKCkucGFyc2UoZm9udERhdGEpKVxuICAgICk7XG5cbiAgICByZWFkb25seSBnZW9tZXRyeUFyZ3MkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuZm9udCQsXG4gICAgICAgIHRoaXMuc2VsZWN0KCd0ZXh0JyksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdzaXplJyksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdoZWlnaHQnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2JldmVsVGhpY2tuZXNzJyksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdiZXZlbFNpemUnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2JldmVsRW5hYmxlZCcpLFxuICAgICAgICB0aGlzLnNlbGVjdCgnYmV2ZWxTZWdtZW50cycpLFxuICAgICAgICB0aGlzLnNlbGVjdCgnYmV2ZWxPZmZzZXQnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2N1cnZlU2VnbWVudHMnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2xldHRlclNwYWNpbmcnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2xpbmVIZWlnaHQnKSxcbiAgICBdKS5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgICAoW1xuICAgICAgICAgICAgICAgIGZvbnQsXG4gICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgICAgICBiZXZlbFRoaWNrbmVzcyxcbiAgICAgICAgICAgICAgICBiZXZlbFNpemUsXG4gICAgICAgICAgICAgICAgYmV2ZWxFbmFibGVkLFxuICAgICAgICAgICAgICAgIGJldmVsU2VnbWVudHMsXG4gICAgICAgICAgICAgICAgYmV2ZWxPZmZzZXQsXG4gICAgICAgICAgICAgICAgY3VydmVTZWdtZW50cyxcbiAgICAgICAgICAgICAgICBsZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQsXG4gICAgICAgICAgICBdKSA9PiBbXG4gICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQsXG4gICAgICAgICAgICAgICAgICAgIHNpemUsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgYmV2ZWxUaGlja25lc3MsXG4gICAgICAgICAgICAgICAgICAgIGJldmVsU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgYmV2ZWxTZWdtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgYmV2ZWxFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICBiZXZlbE9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgY3VydmVTZWdtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgbGV0dGVyU3BhY2luZyxcbiAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXVxuICAgICAgICApXG4gICAgKTtcbn1cbiJdfQ==
@@ -10,10 +10,10 @@ extend({ OrthographicCamera, Group });
10
10
  export class NgtsOrthographicCamera extends NgtsCamera {
11
11
  constructor() {
12
12
  super(...arguments);
13
- this.left$ = combineLatest([this.select('left'), this.store.select('size')]).pipe(map(([left, size]) => left ?? size.width / -2));
14
- this.right$ = combineLatest([this.select('right'), this.store.select('size')]).pipe(map(([right, size]) => right ?? size.width / 2));
15
- this.top$ = combineLatest([this.select('top'), this.store.select('size')]).pipe(map(([top, size]) => top ?? size.height / 2));
16
- this.bottom$ = combineLatest([this.select('bottom'), this.store.select('size')]).pipe(map(([bottom, size]) => bottom ?? size.height / -2));
13
+ this.left$ = combineLatest([this.select('left'), this.store.select('size')]).pipe(map(([left, size]) => left || size.width / -2));
14
+ this.right$ = combineLatest([this.select('right'), this.store.select('size')]).pipe(map(([right, size]) => right || size.width / 2));
15
+ this.top$ = combineLatest([this.select('top'), this.store.select('size')]).pipe(map(([top, size]) => top || size.height / 2));
16
+ this.bottom$ = combineLatest([this.select('bottom'), this.store.select('size')]).pipe(map(([bottom, size]) => bottom || size.height / -2));
17
17
  }
18
18
  set left(left) {
19
19
  this.set({ left });
@@ -89,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
89
89
  }], bottom: [{
90
90
  type: Input
91
91
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3J0aG9ncmFwaGljLWNhbWVyYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2NhbWVyYXMvc3JjL2xpYi9vcnRob2dyYXBoaWMtY2FtZXJhL29ydGhvZ3JhcGhpYy1jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFN0QsTUFBTSxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQTBCdEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFVBQW9DO0lBeEJoRjs7UUFnRGEsVUFBSyxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDakYsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQ2pELENBQUM7UUFFTyxXQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNuRixHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQ2xELENBQUM7UUFFTyxTQUFJLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMvRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQy9DLENBQUM7UUFFTyxZQUFPLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNyRixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDdEQsQ0FBQztLQUNMO0lBcENHLElBQWEsSUFBSSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWEsR0FBRyxDQUFDLEdBQVc7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVRLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O21IQXRCUSxzQkFBc0I7dUdBQXRCLHNCQUFzQix1TUFDakIsaUJBQWlCLHVFQXRCckI7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUJULDREQUNTLElBQUksNkZBQUUsZ0JBQWdCLCtJQUFFLE9BQU87MkZBR2hDLHNCQUFzQjtrQkF4QmxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQztvQkFDMUMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzhCQUVvQyxhQUFhO3NCQUE3QyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFFbEIsSUFBSTtzQkFBaEIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlPLEdBQUc7c0JBQWYsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgTmd0UHVzaCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBHcm91cCwgT3J0aG9ncmFwaGljQ2FtZXJhIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0c0NhbWVyYSB9IGZyb20gJy4uL2NhbWVyYS9jYW1lcmEnO1xuaW1wb3J0IHsgTmd0c0NhbWVyYUNvbnRlbnQgfSBmcm9tICcuLi9jYW1lcmEvY2FtZXJhLWNvbnRlbnQnO1xuXG5leHRlbmQoeyBPcnRob2dyYXBoaWNDYW1lcmEsIEdyb3VwIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtb3J0aG9ncmFwaGljLWNhbWVyYScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LW9ydGhvZ3JhcGhpYy1jYW1lcmFcbiAgICAgICAgICAgIG5ndENvbXBvdW5kXG4gICAgICAgICAgICBbcmVmXT1cImNhbWVyYVJlZlwiXG4gICAgICAgICAgICBbbGVmdF09XCJsZWZ0JCB8IG5ndFB1c2hcIlxuICAgICAgICAgICAgW3JpZ2h0XT1cInJpZ2h0JCB8IG5ndFB1c2hcIlxuICAgICAgICAgICAgW3RvcF09XCJ0b3AkIHwgbmd0UHVzaFwiXG4gICAgICAgICAgICBbYm90dG9tXT1cImJvdHRvbSQgfCBuZ3RQdXNoXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY2FtZXJhQ29udGVudCAmJiAhY2FtZXJhQ29udGVudC5uZ3RzQ2FtZXJhQ29udGVudFwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FtZXJhQ29udGVudC50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L25ndC1vcnRob2dyYXBoaWMtY2FtZXJhPlxuICAgICAgICA8bmd0LWdyb3VwICNncm91cCAqbmdJZj1cImNhbWVyYUNvbnRlbnQgJiYgY2FtZXJhQ29udGVudC5uZ3RzQ2FtZXJhQ29udGVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhbWVyYUNvbnRlbnQudGVtcGxhdGU7IGNvbnRleHQ6IHsgZmJvOiBmYm9SZWYubmF0aXZlRWxlbWVudCwgZ3JvdXAgfVwiIC8+XG4gICAgICAgIDwvbmd0LWdyb3VwPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIE5ndFB1c2hdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c09ydGhvZ3JhcGhpY0NhbWVyYSBleHRlbmRzIE5ndHNDYW1lcmE8VEhSRUUuT3J0aG9ncmFwaGljQ2FtZXJhPiB7XG4gICAgQENvbnRlbnRDaGlsZChOZ3RzQ2FtZXJhQ29udGVudCkgY2FtZXJhQ29udGVudD86IE5ndHNDYW1lcmFDb250ZW50O1xuXG4gICAgQElucHV0KCkgc2V0IGxlZnQobGVmdDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGVmdCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgcmlnaHQocmlnaHQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJpZ2h0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCB0b3AodG9wOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyB0b3AgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJvdHRvbShib3R0b206IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGJvdHRvbSB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgbGVmdDogMCwgcmlnaHQ6IDAsIHRvcDogMCwgYm90dG9tOiAwIH0pO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IGxlZnQkID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3QoJ2xlZnQnKSwgdGhpcy5zdG9yZS5zZWxlY3QoJ3NpemUnKV0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2xlZnQsIHNpemVdKSA9PiBsZWZ0ID8/IHNpemUud2lkdGggLyAtMilcbiAgICApO1xuXG4gICAgcmVhZG9ubHkgcmlnaHQkID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3QoJ3JpZ2h0JyksIHRoaXMuc3RvcmUuc2VsZWN0KCdzaXplJyldKS5waXBlKFxuICAgICAgICBtYXAoKFtyaWdodCwgc2l6ZV0pID0+IHJpZ2h0ID8/IHNpemUud2lkdGggLyAyKVxuICAgICk7XG5cbiAgICByZWFkb25seSB0b3AkID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3QoJ3RvcCcpLCB0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpXSkucGlwZShcbiAgICAgICAgbWFwKChbdG9wLCBzaXplXSkgPT4gdG9wID8/IHNpemUuaGVpZ2h0IC8gMilcbiAgICApO1xuXG4gICAgcmVhZG9ubHkgYm90dG9tJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc2VsZWN0KCdib3R0b20nKSwgdGhpcy5zdG9yZS5zZWxlY3QoJ3NpemUnKV0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2JvdHRvbSwgc2l6ZV0pID0+IGJvdHRvbSA/PyBzaXplLmhlaWdodCAvIC0yKVxuICAgICk7XG59XG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3J0aG9ncmFwaGljLWNhbWVyYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2NhbWVyYXMvc3JjL2xpYi9vcnRob2dyYXBoaWMtY2FtZXJhL29ydGhvZ3JhcGhpYy1jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFN0QsTUFBTSxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQTBCdEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFVBQW9DO0lBeEJoRjs7UUFnRGEsVUFBSyxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDakYsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQ2pELENBQUM7UUFFTyxXQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNuRixHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQ2xELENBQUM7UUFFTyxTQUFJLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMvRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQy9DLENBQUM7UUFFTyxZQUFPLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNyRixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDdEQsQ0FBQztLQUNMO0lBcENHLElBQWEsSUFBSSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWEsR0FBRyxDQUFDLEdBQVc7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVRLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O21IQXRCUSxzQkFBc0I7dUdBQXRCLHNCQUFzQix1TUFDakIsaUJBQWlCLHVFQXRCckI7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUJULDREQUNTLElBQUksNkZBQUUsZ0JBQWdCLCtJQUFFLE9BQU87MkZBR2hDLHNCQUFzQjtrQkF4QmxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQztvQkFDMUMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzhCQUVvQyxhQUFhO3NCQUE3QyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFFbEIsSUFBSTtzQkFBaEIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlPLEdBQUc7c0JBQWYsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgTmd0UHVzaCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBHcm91cCwgT3J0aG9ncmFwaGljQ2FtZXJhIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0c0NhbWVyYSB9IGZyb20gJy4uL2NhbWVyYS9jYW1lcmEnO1xuaW1wb3J0IHsgTmd0c0NhbWVyYUNvbnRlbnQgfSBmcm9tICcuLi9jYW1lcmEvY2FtZXJhLWNvbnRlbnQnO1xuXG5leHRlbmQoeyBPcnRob2dyYXBoaWNDYW1lcmEsIEdyb3VwIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtb3J0aG9ncmFwaGljLWNhbWVyYScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LW9ydGhvZ3JhcGhpYy1jYW1lcmFcbiAgICAgICAgICAgIG5ndENvbXBvdW5kXG4gICAgICAgICAgICBbcmVmXT1cImNhbWVyYVJlZlwiXG4gICAgICAgICAgICBbbGVmdF09XCJsZWZ0JCB8IG5ndFB1c2hcIlxuICAgICAgICAgICAgW3JpZ2h0XT1cInJpZ2h0JCB8IG5ndFB1c2hcIlxuICAgICAgICAgICAgW3RvcF09XCJ0b3AkIHwgbmd0UHVzaFwiXG4gICAgICAgICAgICBbYm90dG9tXT1cImJvdHRvbSQgfCBuZ3RQdXNoXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY2FtZXJhQ29udGVudCAmJiAhY2FtZXJhQ29udGVudC5uZ3RzQ2FtZXJhQ29udGVudFwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FtZXJhQ29udGVudC50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L25ndC1vcnRob2dyYXBoaWMtY2FtZXJhPlxuICAgICAgICA8bmd0LWdyb3VwICNncm91cCAqbmdJZj1cImNhbWVyYUNvbnRlbnQgJiYgY2FtZXJhQ29udGVudC5uZ3RzQ2FtZXJhQ29udGVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhbWVyYUNvbnRlbnQudGVtcGxhdGU7IGNvbnRleHQ6IHsgZmJvOiBmYm9SZWYubmF0aXZlRWxlbWVudCwgZ3JvdXAgfVwiIC8+XG4gICAgICAgIDwvbmd0LWdyb3VwPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIE5ndFB1c2hdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c09ydGhvZ3JhcGhpY0NhbWVyYSBleHRlbmRzIE5ndHNDYW1lcmE8VEhSRUUuT3J0aG9ncmFwaGljQ2FtZXJhPiB7XG4gICAgQENvbnRlbnRDaGlsZChOZ3RzQ2FtZXJhQ29udGVudCkgY2FtZXJhQ29udGVudD86IE5ndHNDYW1lcmFDb250ZW50O1xuXG4gICAgQElucHV0KCkgc2V0IGxlZnQobGVmdDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGVmdCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgcmlnaHQocmlnaHQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJpZ2h0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCB0b3AodG9wOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyB0b3AgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJvdHRvbShib3R0b206IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGJvdHRvbSB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgbGVmdDogMCwgcmlnaHQ6IDAsIHRvcDogMCwgYm90dG9tOiAwIH0pO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IGxlZnQkID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3QoJ2xlZnQnKSwgdGhpcy5zdG9yZS5zZWxlY3QoJ3NpemUnKV0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2xlZnQsIHNpemVdKSA9PiBsZWZ0IHx8IHNpemUud2lkdGggLyAtMilcbiAgICApO1xuXG4gICAgcmVhZG9ubHkgcmlnaHQkID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3QoJ3JpZ2h0JyksIHRoaXMuc3RvcmUuc2VsZWN0KCdzaXplJyldKS5waXBlKFxuICAgICAgICBtYXAoKFtyaWdodCwgc2l6ZV0pID0+IHJpZ2h0IHx8IHNpemUud2lkdGggLyAyKVxuICAgICk7XG5cbiAgICByZWFkb25seSB0b3AkID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3QoJ3RvcCcpLCB0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpXSkucGlwZShcbiAgICAgICAgbWFwKChbdG9wLCBzaXplXSkgPT4gdG9wIHx8IHNpemUuaGVpZ2h0IC8gMilcbiAgICApO1xuXG4gICAgcmVhZG9ubHkgYm90dG9tJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc2VsZWN0KCdib3R0b20nKSwgdGhpcy5zdG9yZS5zZWxlY3QoJ3NpemUnKV0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2JvdHRvbSwgc2l6ZV0pID0+IGJvdHRvbSB8fCBzaXplLmhlaWdodCAvIC0yKVxuICAgICk7XG59XG4iXX0=
@@ -1,7 +1,9 @@
1
1
  export { NgtsAccumulativeShadows } from './lib/accumulative-shadows/accumulative-shadows';
2
2
  export { NgtsRandomizedLights } from './lib/accumulative-shadows/randomized-lights';
3
3
  export * from './lib/bounds/bounds';
4
+ export * from './lib/camera-shake/camera-shake';
4
5
  export * from './lib/center/center';
6
+ export * from './lib/cloud/cloud';
5
7
  export * from './lib/contact-shadows/contact-shadows';
6
8
  export * from './lib/environment/assets';
7
9
  export * from './lib/environment/environment';
@@ -10,4 +12,4 @@ export * from './lib/sky/sky';
10
12
  export * from './lib/sparkles/sparkles';
11
13
  export * from './lib/stage/stage';
12
14
  export * from './lib/stars/stars';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzIH0gZnJvbSAnLi9saWIvYWNjdW11bGF0aXZlLXNoYWRvd3MvYWNjdW11bGF0aXZlLXNoYWRvd3MnO1xuZXhwb3J0IHsgTmd0c1JhbmRvbWl6ZWRMaWdodHMgfSBmcm9tICcuL2xpYi9hY2N1bXVsYXRpdmUtc2hhZG93cy9yYW5kb21pemVkLWxpZ2h0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ib3VuZHMvYm91bmRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NlbnRlci9jZW50ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udGFjdC1zaGFkb3dzL2NvbnRhY3Qtc2hhZG93cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnZpcm9ubWVudC9hc3NldHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW52aXJvbm1lbnQvZW52aXJvbm1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmxvYXQvZmxvYXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2t5L3NreSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcGFya2xlcy9zcGFya2xlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGFnZS9zdGFnZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGFycy9zdGFycyc7XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBOZ3RzQWNjdW11bGF0aXZlU2hhZG93cyB9IGZyb20gJy4vbGliL2FjY3VtdWxhdGl2ZS1zaGFkb3dzL2FjY3VtdWxhdGl2ZS1zaGFkb3dzJztcbmV4cG9ydCB7IE5ndHNSYW5kb21pemVkTGlnaHRzIH0gZnJvbSAnLi9saWIvYWNjdW11bGF0aXZlLXNoYWRvd3MvcmFuZG9taXplZC1saWdodHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYm91bmRzL2JvdW5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYW1lcmEtc2hha2UvY2FtZXJhLXNoYWtlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NlbnRlci9jZW50ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xvdWQvY2xvdWQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udGFjdC1zaGFkb3dzL2NvbnRhY3Qtc2hhZG93cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnZpcm9ubWVudC9hc3NldHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW52aXJvbm1lbnQvZW52aXJvbm1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmxvYXQvZmxvYXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2t5L3NreSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcGFya2xlcy9zcGFya2xlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGFnZS9zdGFnZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGFycy9zdGFycyc7XG4iXX0=