angular-three-soba 4.2.0 → 4.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/fesm2022/angular-three-soba-abstractions.mjs +98 -98
  2. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  3. package/fesm2022/angular-three-soba-cameras.mjs +26 -26
  4. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  5. package/fesm2022/angular-three-soba-controls.mjs +32 -32
  6. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  7. package/fesm2022/angular-three-soba-gizmos.mjs +119 -119
  8. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -1
  9. package/fesm2022/angular-three-soba-loaders.mjs +6 -6
  10. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  11. package/fesm2022/angular-three-soba-materials.mjs +75 -75
  12. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  13. package/fesm2022/angular-three-soba-misc.mjs +85 -76
  14. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  15. package/fesm2022/angular-three-soba-performances.mjs +164 -60
  16. package/fesm2022/angular-three-soba-performances.mjs.map +1 -1
  17. package/fesm2022/angular-three-soba-staging.mjs +257 -257
  18. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  19. package/fesm2022/angular-three-soba-stats.mjs +5 -5
  20. package/fesm2022/angular-three-soba-stats.mjs.map +1 -1
  21. package/package.json +141 -140
  22. package/performances/README.md +47 -0
  23. package/types/angular-three-soba-abstractions.d.ts +57 -57
  24. package/types/angular-three-soba-cameras.d.ts +3 -3
  25. package/types/angular-three-soba-controls.d.ts +4 -4
  26. package/types/angular-three-soba-gizmos.d.ts +4 -4
  27. package/types/angular-three-soba-materials.d.ts +4 -4
  28. package/types/angular-three-soba-misc.d.ts +16 -5
  29. package/types/angular-three-soba-performances.d.ts +55 -9
  30. package/types/angular-three-soba-staging.d.ts +13 -13
@@ -33,7 +33,7 @@ const defaultOptions$b = {
33
33
  */
34
34
  class NgtsBillboard {
35
35
  constructor() {
36
- this.options = input(defaultOptions$b, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$b) });
36
+ this.options = input(defaultOptions$b, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$b) });
37
37
  this.parameters = omit(this.options, ['follow', 'lockX', 'lockY', 'lockZ']);
38
38
  this.groupRef = viewChild.required('group');
39
39
  this.innerRef = viewChild.required('inner');
@@ -63,8 +63,8 @@ class NgtsBillboard {
63
63
  inner.rotation.z = prevRotation.z;
64
64
  });
65
65
  }
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsBillboard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsBillboard, isStandalone: true, selector: "ngts-billboard", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "innerRef", first: true, predicate: ["inner"], descendants: true, isSignal: true }], ngImport: i0, template: `
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsBillboard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsBillboard, isStandalone: true, selector: "ngts-billboard", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "innerRef", first: true, predicate: ["inner"], descendants: true, isSignal: true }], ngImport: i0, template: `
68
68
  <ngt-group #group [parameters]="parameters()">
69
69
  <ngt-group #inner>
70
70
  <ng-content />
@@ -72,7 +72,7 @@ class NgtsBillboard {
72
72
  </ngt-group>
73
73
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
74
  }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsBillboard, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsBillboard, decorators: [{
76
76
  type: Component,
77
77
  args: [{
78
78
  selector: 'ngts-billboard',
@@ -128,11 +128,11 @@ class NgtsLine {
128
128
  /**
129
129
  * Array of points defining the line path. Accepts Vector3, Vector2, coordinate tuples, or flat numbers.
130
130
  */
131
- this.points = input.required(...(ngDevMode ? [{ debugName: "points" }] : []));
131
+ this.points = input.required(...(ngDevMode ? [{ debugName: "points" }] : /* istanbul ignore next */ []));
132
132
  /**
133
133
  * Configuration options for the line appearance and behavior.
134
134
  */
135
- this.options = input(defaultOptions$a, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$a) });
135
+ this.options = input(defaultOptions$a, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$a) });
136
136
  this.parameters = omit(this.options, [
137
137
  'color',
138
138
  'vertexColors',
@@ -144,20 +144,20 @@ class NgtsLine {
144
144
  /**
145
145
  * Reference to the underlying Line2 or LineSegments2 Three.js object.
146
146
  */
147
- this.lineRef = viewChild('line', ...(ngDevMode ? [{ debugName: "lineRef" }] : []));
147
+ this.lineRef = viewChild('line', ...(ngDevMode ? [{ debugName: "lineRef" }] : /* istanbul ignore next */ []));
148
148
  this.store = injectStore();
149
149
  this.segments = pick(this.options, 'segments');
150
150
  this.vertexColors = pick(this.options, 'vertexColors');
151
151
  this.dashed = pick(this.options, 'dashed');
152
152
  this.color = pick(this.options, 'color');
153
- this.vertex = computed(() => Boolean(this.vertexColors()), ...(ngDevMode ? [{ debugName: "vertex" }] : []));
154
- this.resolution = computed(() => [this.store.size.width(), this.store.size.height()], ...(ngDevMode ? [{ debugName: "resolution" }] : []));
153
+ this.vertex = computed(() => Boolean(this.vertexColors()), ...(ngDevMode ? [{ debugName: "vertex" }] : /* istanbul ignore next */ []));
154
+ this.resolution = computed(() => [this.store.size.width(), this.store.size.height()], ...(ngDevMode ? [{ debugName: "resolution" }] : /* istanbul ignore next */ []));
155
155
  this.lineWidth = pick(this.options, 'lineWidth');
156
156
  this.linewidth = pick(this.options, 'linewidth');
157
- this.line2 = computed(() => (this.segments() ? new LineSegments2() : new Line2()), ...(ngDevMode ? [{ debugName: "line2" }] : []));
157
+ this.line2 = computed(() => (this.segments() ? new LineSegments2() : new Line2()), ...(ngDevMode ? [{ debugName: "line2" }] : /* istanbul ignore next */ []));
158
158
  this.lineMaterial = new LineMaterial();
159
- this.actualLineWidth = computed(() => this.linewidth() ?? this.lineWidth() ?? 1, ...(ngDevMode ? [{ debugName: "actualLineWidth" }] : []));
160
- this.itemSize = computed(() => (this.vertexColors()?.[0]?.length === 4 ? 4 : 3), ...(ngDevMode ? [{ debugName: "itemSize" }] : []));
159
+ this.actualLineWidth = computed(() => this.linewidth() ?? this.lineWidth() ?? 1, ...(ngDevMode ? [{ debugName: "actualLineWidth" }] : /* istanbul ignore next */ []));
160
+ this.itemSize = computed(() => (this.vertexColors()?.[0]?.length === 4 ? 4 : 3), ...(ngDevMode ? [{ debugName: "itemSize" }] : /* istanbul ignore next */ []));
161
161
  /**
162
162
  * Computed LineGeometry or LineSegmentsGeometry based on the points and vertex colors.
163
163
  * Other line components (like NgtsQuadraticBezierLine) access this to update positions.
@@ -187,7 +187,7 @@ class NgtsLine {
187
187
  geom.setColors(cValues.flat(), this.itemSize());
188
188
  }
189
189
  return geom;
190
- }, ...(ngDevMode ? [{ debugName: "lineGeometry" }] : []));
190
+ }, ...(ngDevMode ? [{ debugName: "lineGeometry" }] : /* istanbul ignore next */ []));
191
191
  effect(() => {
192
192
  const [lineMaterial, dashed] = [this.lineMaterial, this.dashed()];
193
193
  if (dashed) {
@@ -206,8 +206,8 @@ class NgtsLine {
206
206
  });
207
207
  });
208
208
  }
209
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
210
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsLine, isStandalone: true, selector: "ngts-line", inputs: { points: { classPropertyName: "points", publicName: "points", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lineRef", first: true, predicate: ["line"], descendants: true, isSignal: true }], ngImport: i0, template: `
209
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
210
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsLine, isStandalone: true, selector: "ngts-line", inputs: { points: { classPropertyName: "points", publicName: "points", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lineRef", first: true, predicate: ["line"], descendants: true, isSignal: true }], ngImport: i0, template: `
211
211
  <ngt-primitive *args="[line2()]" #line [parameters]="parameters()">
212
212
  <ngt-primitive *args="[lineGeometry()]" attach="geometry" (attached)="onGeometryAttached($any($event))" />
213
213
  <ngt-primitive
@@ -225,7 +225,7 @@ class NgtsLine {
225
225
  </ngt-primitive>
226
226
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
227
227
  }
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsLine, decorators: [{
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsLine, decorators: [{
229
229
  type: Component,
230
230
  args: [{
231
231
  selector: 'ngts-line',
@@ -273,8 +273,8 @@ const defaultOptions$9 = {
273
273
  */
274
274
  class NgtsCatmullRomLine {
275
275
  constructor() {
276
- this.points = input.required(...(ngDevMode ? [{ debugName: "points" }] : []));
277
- this.options = input(defaultOptions$9, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$9) });
276
+ this.points = input.required(...(ngDevMode ? [{ debugName: "points" }] : /* istanbul ignore next */ []));
277
+ this.options = input(defaultOptions$9, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$9) });
278
278
  this.parameters = omit(this.options, ['curveType', 'tension', 'segments', 'closed', 'vertexColors']);
279
279
  this.line = viewChild.required(NgtsLine);
280
280
  this.closed = pick(this.options, 'closed');
@@ -286,11 +286,11 @@ class NgtsCatmullRomLine {
286
286
  const [points, closed, curveType, tension] = [this.points(), this.closed(), this.curveType(), this.tension()];
287
287
  const mappedPoints = points.map((pt) => is.three(pt, 'isVector3') ? pt : new THREE.Vector3(...pt));
288
288
  return new THREE.CatmullRomCurve3(mappedPoints, closed, curveType, tension);
289
- }, ...(ngDevMode ? [{ debugName: "curve" }] : []));
289
+ }, ...(ngDevMode ? [{ debugName: "curve" }] : /* istanbul ignore next */ []));
290
290
  this.segmentedPoints = computed(() => {
291
291
  const [curve, segments] = [this.curve(), this.segments()];
292
292
  return curve.getPoints(segments);
293
- }, ...(ngDevMode ? [{ debugName: "segmentedPoints" }] : []));
293
+ }, ...(ngDevMode ? [{ debugName: "segmentedPoints" }] : /* istanbul ignore next */ []));
294
294
  this.interpolatedVertexColors = computed(() => {
295
295
  const [vertexColors, segments] = [this.vertexColors(), this.segments()];
296
296
  if (!vertexColors || vertexColors.length < 2)
@@ -309,17 +309,17 @@ class NgtsCatmullRomLine {
309
309
  }
310
310
  iColors.push(mappedColors[mappedColors.length - 1]);
311
311
  return iColors;
312
- }, ...(ngDevMode ? [{ debugName: "interpolatedVertexColors" }] : []));
313
- this.lineOptions = computed(() => ({ ...this.parameters(), vertexColors: this.interpolatedVertexColors() }), ...(ngDevMode ? [{ debugName: "lineOptions" }] : []));
312
+ }, ...(ngDevMode ? [{ debugName: "interpolatedVertexColors" }] : /* istanbul ignore next */ []));
313
+ this.lineOptions = computed(() => ({ ...this.parameters(), vertexColors: this.interpolatedVertexColors() }), ...(ngDevMode ? [{ debugName: "lineOptions" }] : /* istanbul ignore next */ []));
314
314
  }
315
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsCatmullRomLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
316
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsCatmullRomLine, isStandalone: true, selector: "ngts-catmull-rom-line", inputs: { points: { classPropertyName: "points", publicName: "points", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
315
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsCatmullRomLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
316
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsCatmullRomLine, isStandalone: true, selector: "ngts-catmull-rom-line", inputs: { points: { classPropertyName: "points", publicName: "points", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
317
317
  <ngts-line [points]="segmentedPoints()" [options]="lineOptions()">
318
318
  <ng-content />
319
319
  </ngts-line>
320
320
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["points", "options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
321
321
  }
322
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsCatmullRomLine, decorators: [{
322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsCatmullRomLine, decorators: [{
323
323
  type: Component,
324
324
  args: [{
325
325
  selector: 'ngts-catmull-rom-line',
@@ -354,11 +354,11 @@ const defaultOptions$8 = {
354
354
  */
355
355
  class NgtsCubicBezierLine {
356
356
  constructor() {
357
- this.start = input.required(...(ngDevMode ? [{ debugName: "start" }] : []));
358
- this.end = input.required(...(ngDevMode ? [{ debugName: "end" }] : []));
359
- this.midA = input.required(...(ngDevMode ? [{ debugName: "midA" }] : []));
360
- this.midB = input.required(...(ngDevMode ? [{ debugName: "midB" }] : []));
361
- this.options = input(defaultOptions$8, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$8) });
357
+ this.start = input.required(...(ngDevMode ? [{ debugName: "start" }] : /* istanbul ignore next */ []));
358
+ this.end = input.required(...(ngDevMode ? [{ debugName: "end" }] : /* istanbul ignore next */ []));
359
+ this.midA = input.required(...(ngDevMode ? [{ debugName: "midA" }] : /* istanbul ignore next */ []));
360
+ this.midB = input.required(...(ngDevMode ? [{ debugName: "midB" }] : /* istanbul ignore next */ []));
361
+ this.options = input(defaultOptions$8, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$8) });
362
362
  this.parameters = omit(this.options, ['segments']);
363
363
  this.line = viewChild.required(NgtsLine);
364
364
  this.segments = pick(this.options, 'segments');
@@ -375,16 +375,16 @@ class NgtsCubicBezierLine {
375
375
  const midAV = is.three(midA, 'isVector3') ? midA : new THREE.Vector3(...midA);
376
376
  const midBV = is.three(midB, 'isVector3') ? midB : new THREE.Vector3(...midB);
377
377
  return new THREE.CubicBezierCurve3(startV, midAV, midBV, endV).getPoints(segments);
378
- }, ...(ngDevMode ? [{ debugName: "points" }] : []));
378
+ }, ...(ngDevMode ? [{ debugName: "points" }] : /* istanbul ignore next */ []));
379
379
  }
380
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsCubicBezierLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
381
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsCubicBezierLine, isStandalone: true, selector: "ngts-cubic-bezier-line", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: true, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: true, transformFunction: null }, midA: { classPropertyName: "midA", publicName: "midA", isSignal: true, isRequired: true, transformFunction: null }, midB: { classPropertyName: "midB", publicName: "midB", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
380
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsCubicBezierLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
381
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsCubicBezierLine, isStandalone: true, selector: "ngts-cubic-bezier-line", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: true, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: true, transformFunction: null }, midA: { classPropertyName: "midA", publicName: "midA", isSignal: true, isRequired: true, transformFunction: null }, midB: { classPropertyName: "midB", publicName: "midB", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
382
382
  <ngts-line [points]="points()" [options]="parameters()">
383
383
  <ng-content />
384
384
  </ngts-line>
385
385
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["points", "options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
386
386
  }
387
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsCubicBezierLine, decorators: [{
387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsCubicBezierLine, decorators: [{
388
388
  type: Component,
389
389
  args: [{
390
390
  selector: 'ngts-cubic-bezier-line',
@@ -417,9 +417,9 @@ const defaultOptions$7 = {
417
417
  */
418
418
  class NgtsEdges {
419
419
  constructor() {
420
- this.options = input(defaultOptions$7, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$7) });
420
+ this.options = input(defaultOptions$7, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$7) });
421
421
  this.parameters = omit(this.options, ['threshold', 'geometry']);
422
- this.lineOptions = computed(() => ({ ...this.parameters(), segments: true, raycast: () => null }), ...(ngDevMode ? [{ debugName: "lineOptions" }] : []));
422
+ this.lineOptions = computed(() => ({ ...this.parameters(), segments: true, raycast: () => null }), ...(ngDevMode ? [{ debugName: "lineOptions" }] : /* istanbul ignore next */ []));
423
423
  this.tmpPoints = [0, 0, 0, 1, 0, 0];
424
424
  this.line = viewChild.required(NgtsLine);
425
425
  effect(() => {
@@ -448,14 +448,14 @@ class NgtsEdges {
448
448
  line.computeLineDistances();
449
449
  });
450
450
  }
451
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsEdges, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
452
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsEdges, isStandalone: true, selector: "ngts-edges", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
451
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsEdges, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
452
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsEdges, isStandalone: true, selector: "ngts-edges", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
453
453
  <ngts-line [points]="tmpPoints" [options]="lineOptions()">
454
454
  <ng-content />
455
455
  </ngts-line>
456
456
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["points", "options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
457
457
  }
458
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsEdges, decorators: [{
458
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsEdges, decorators: [{
459
459
  type: Component,
460
460
  args: [{
461
461
  selector: 'ngts-edges',
@@ -496,10 +496,10 @@ const defaultOptions$6 = {
496
496
  */
497
497
  class NgtsGradientTexture {
498
498
  constructor() {
499
- this.attach = input('map', ...(ngDevMode ? [{ debugName: "attach" }] : []));
500
- this.stops = input.required(...(ngDevMode ? [{ debugName: "stops" }] : []));
501
- this.colors = input.required(...(ngDevMode ? [{ debugName: "colors" }] : []));
502
- this.options = input(defaultOptions$6, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$6) });
499
+ this.attach = input('map', ...(ngDevMode ? [{ debugName: "attach" }] : /* istanbul ignore next */ []));
500
+ this.stops = input.required(...(ngDevMode ? [{ debugName: "stops" }] : /* istanbul ignore next */ []));
501
+ this.colors = input.required(...(ngDevMode ? [{ debugName: "colors" }] : /* istanbul ignore next */ []));
502
+ this.options = input(defaultOptions$6, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$6) });
503
503
  this.parameters = omit(this.options, ['size', 'width', 'type', 'innerCircleRadius', 'outerCircleRadius']);
504
504
  this.document = inject(DOCUMENT);
505
505
  this.store = injectStore();
@@ -536,11 +536,11 @@ class NgtsGradientTexture {
536
536
  context.fillRect(0, 0, width, size);
537
537
  context.restore();
538
538
  return canvas;
539
- }, ...(ngDevMode ? [{ debugName: "canvas" }] : []));
539
+ }, ...(ngDevMode ? [{ debugName: "canvas" }] : /* istanbul ignore next */ []));
540
540
  extend({ CanvasTexture });
541
541
  }
542
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsGradientTexture, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
543
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.6", type: NgtsGradientTexture, isStandalone: true, selector: "ngts-gradient-texture", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, stops: { classPropertyName: "stops", publicName: "stops", isSignal: true, isRequired: true, transformFunction: null }, colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
542
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsGradientTexture, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
543
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: NgtsGradientTexture, isStandalone: true, selector: "ngts-gradient-texture", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, stops: { classPropertyName: "stops", publicName: "stops", isSignal: true, isRequired: true, transformFunction: null }, colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
544
544
  <ngt-canvas-texture
545
545
  *args="[canvas()]"
546
546
  [attach]="attach()"
@@ -551,7 +551,7 @@ class NgtsGradientTexture {
551
551
  </ngt-canvas-texture>
552
552
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
553
553
  }
554
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsGradientTexture, decorators: [{
554
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsGradientTexture, decorators: [{
555
555
  type: Component,
556
556
  args: [{
557
557
  selector: 'ngts-gradient-texture',
@@ -606,7 +606,7 @@ const defaultOptions$5 = {
606
606
  */
607
607
  class NgtsGrid {
608
608
  constructor() {
609
- this.options = input(defaultOptions$5, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$5) });
609
+ this.options = input(defaultOptions$5, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$5) });
610
610
  this.parameters = omit(this.options, [
611
611
  'planeArgs',
612
612
  'cellSize',
@@ -666,7 +666,7 @@ class NgtsGrid {
666
666
  infiniteGrid,
667
667
  followCamera,
668
668
  };
669
- }, ...(ngDevMode ? [{ debugName: "uniforms" }] : []));
669
+ }, ...(ngDevMode ? [{ debugName: "uniforms" }] : /* istanbul ignore next */ []));
670
670
  extend({ Mesh, PlaneGeometry, GridMaterial });
671
671
  beforeRender(({ camera }) => {
672
672
  const mesh = this.meshRef().nativeElement;
@@ -678,8 +678,8 @@ class NgtsGrid {
678
678
  worldPlanePosition.value.set(0, 0, 0).applyMatrix4(mesh.matrixWorld);
679
679
  });
680
680
  }
681
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
682
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsGrid, isStandalone: true, selector: "ngts-grid", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
681
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
682
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsGrid, isStandalone: true, selector: "ngts-grid", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
683
683
  <ngt-mesh #mesh [frustumCulled]="false" [parameters]="parameters()">
684
684
  <ngt-plane-geometry *args="planeArgs()" />
685
685
  <ngt-grid-material transparent [side]="side()" [parameters]="uniforms()" extensions.derivatives />
@@ -687,7 +687,7 @@ class NgtsGrid {
687
687
  </ngt-mesh>
688
688
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
689
689
  }
690
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsGrid, decorators: [{
690
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsGrid, decorators: [{
691
691
  type: Component,
692
692
  args: [{
693
693
  selector: 'ngts-grid',
@@ -740,7 +740,7 @@ function helper(object, helperConstructor, { injector, args = () => [], } = {})
740
740
  const currentHelper = new (helperConstructor())(object3D, ...args());
741
741
  currentHelper.traverse((child) => (child.raycast = () => null));
742
742
  return currentHelper;
743
- }, ...(ngDevMode ? [{ debugName: "helper" }] : []));
743
+ }, ...(ngDevMode ? [{ debugName: "helper" }] : /* istanbul ignore next */ []));
744
744
  effect((onCleanup) => {
745
745
  const currentHelper = helper();
746
746
  if (!currentHelper)
@@ -780,8 +780,8 @@ const injectHelper = helper;
780
780
  */
781
781
  class NgtsHelper {
782
782
  constructor() {
783
- this.type = input.required(...(ngDevMode ? [{ debugName: "type" }] : []));
784
- this.options = input([], ...(ngDevMode ? [{ debugName: "options" }] : []));
783
+ this.type = input.required(...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
784
+ this.options = input([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
785
785
  this.helperRef = viewChild.required('helper');
786
786
  this.parent = computed(() => {
787
787
  const helper = this.helperRef().nativeElement;
@@ -791,16 +791,16 @@ class NgtsHelper {
791
791
  if (!instanceState)
792
792
  return;
793
793
  return instanceState.parent();
794
- }, ...(ngDevMode ? [{ debugName: "parent" }] : []));
794
+ }, ...(ngDevMode ? [{ debugName: "parent" }] : /* istanbul ignore next */ []));
795
795
  this.helper = helper(this.parent, this.type, { args: this.options });
796
796
  extend({ Object3D });
797
797
  }
798
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsHelper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
799
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsHelper, isStandalone: true, selector: "ngts-helper", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "helperRef", first: true, predicate: ["helper"], descendants: true, isSignal: true }], ngImport: i0, template: `
798
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsHelper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
799
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsHelper, isStandalone: true, selector: "ngts-helper", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "helperRef", first: true, predicate: ["helper"], descendants: true, isSignal: true }], ngImport: i0, template: `
800
800
  <ngt-object3D #helper />
801
801
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
802
802
  }
803
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsHelper, decorators: [{
803
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsHelper, decorators: [{
804
804
  type: Component,
805
805
  args: [{
806
806
  selector: 'ngts-helper',
@@ -838,36 +838,36 @@ class NgtsPrismGeometry {
838
838
  * Defines how the geometry attaches to its parent.
839
839
  * @default 'geometry'
840
840
  */
841
- this.attach = input('geometry', ...(ngDevMode ? [{ debugName: "attach" }] : []));
841
+ this.attach = input('geometry', ...(ngDevMode ? [{ debugName: "attach" }] : /* istanbul ignore next */ []));
842
842
  /**
843
843
  * Array of 2D vertices defining the base shape of the prism.
844
844
  * Accepts Vector2 instances or [x, y] tuples.
845
845
  */
846
- this.vertices = input.required(...(ngDevMode ? [{ debugName: "vertices" }] : []));
846
+ this.vertices = input.required(...(ngDevMode ? [{ debugName: "vertices" }] : /* istanbul ignore next */ []));
847
847
  /**
848
848
  * Configuration options for the prism geometry.
849
849
  */
850
- this.options = input(defaultOptions$4, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$4) });
851
- this.parameters = computed(() => ({ ...this.options(), depth: this.options().height }), ...(ngDevMode ? [{ debugName: "parameters" }] : []));
850
+ this.options = input(defaultOptions$4, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$4) });
851
+ this.parameters = computed(() => ({ ...this.options(), depth: this.options().height }), ...(ngDevMode ? [{ debugName: "parameters" }] : /* istanbul ignore next */ []));
852
852
  this.shape = computed(() => {
853
853
  const vertices = this.vertices();
854
854
  const interpolatedVertices = vertices.map((v) => is.three(v, 'isVector2') ? v : new THREE.Vector2(...v));
855
855
  return new THREE.Shape(interpolatedVertices);
856
- }, ...(ngDevMode ? [{ debugName: "shape" }] : []));
856
+ }, ...(ngDevMode ? [{ debugName: "shape" }] : /* istanbul ignore next */ []));
857
857
  /**
858
858
  * Reference to the underlying ExtrudeGeometry Three.js object.
859
859
  */
860
- this.geometryRef = viewChild('geometry', ...(ngDevMode ? [{ debugName: "geometryRef" }] : []));
860
+ this.geometryRef = viewChild('geometry', ...(ngDevMode ? [{ debugName: "geometryRef" }] : /* istanbul ignore next */ []));
861
861
  extend({ ExtrudeGeometry });
862
862
  }
863
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsPrismGeometry, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
864
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsPrismGeometry, isStandalone: true, selector: "ngts-prism-geometry", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, vertices: { classPropertyName: "vertices", publicName: "vertices", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "geometryRef", first: true, predicate: ["geometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
863
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsPrismGeometry, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
864
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsPrismGeometry, isStandalone: true, selector: "ngts-prism-geometry", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, vertices: { classPropertyName: "vertices", publicName: "vertices", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "geometryRef", first: true, predicate: ["geometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
865
865
  <ngt-extrude-geometry #geometry *args="[shape(), parameters()]" [attach]="attach()">
866
866
  <ng-content />
867
867
  </ngt-extrude-geometry>
868
868
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
869
869
  }
870
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsPrismGeometry, decorators: [{
870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsPrismGeometry, decorators: [{
871
871
  type: Component,
872
872
  args: [{
873
873
  selector: 'ngts-prism-geometry',
@@ -916,28 +916,28 @@ class NgtsQuadraticBezierLine {
916
916
  * Starting point of the bezier curve.
917
917
  * @default [0, 0, 0]
918
918
  */
919
- this.start = input([0, 0, 0], ...(ngDevMode ? [{ debugName: "start" }] : []));
919
+ this.start = input([0, 0, 0], ...(ngDevMode ? [{ debugName: "start" }] : /* istanbul ignore next */ []));
920
920
  /**
921
921
  * Ending point of the bezier curve.
922
922
  * @default [0, 0, 0]
923
923
  */
924
- this.end = input([0, 0, 0], ...(ngDevMode ? [{ debugName: "end" }] : []));
924
+ this.end = input([0, 0, 0], ...(ngDevMode ? [{ debugName: "end" }] : /* istanbul ignore next */ []));
925
925
  /**
926
926
  * Control point for the quadratic bezier curve.
927
927
  * If not provided, automatically calculated based on start and end points.
928
928
  */
929
- this.mid = input(...(ngDevMode ? [undefined, { debugName: "mid" }] : []));
929
+ this.mid = input(...(ngDevMode ? [undefined, { debugName: "mid" }] : /* istanbul ignore next */ []));
930
930
  /**
931
931
  * Configuration options for the line appearance.
932
932
  */
933
- this.options = input(defaultOptions$3, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$3) });
933
+ this.options = input(defaultOptions$3, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$3) });
934
934
  this.parameters = omit(this.options, ['segments']);
935
935
  this.segments = pick(this.options, 'segments');
936
936
  /**
937
937
  * Reference to the underlying NgtsLine component.
938
938
  */
939
939
  this.line = viewChild.required(NgtsLine);
940
- this.points = computed(() => this.getPoints(this.start(), this.end(), this.mid(), this.segments()), ...(ngDevMode ? [{ debugName: "points" }] : []));
940
+ this.points = computed(() => this.getPoints(this.start(), this.end(), this.mid(), this.segments()), ...(ngDevMode ? [{ debugName: "points" }] : /* istanbul ignore next */ []));
941
941
  this.curve = new THREE.QuadraticBezierCurve3();
942
942
  }
943
943
  /**
@@ -977,14 +977,14 @@ class NgtsQuadraticBezierLine {
977
977
  }
978
978
  return this.curve.getPoints(segments);
979
979
  }
980
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsQuadraticBezierLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
981
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsQuadraticBezierLine, isStandalone: true, selector: "ngts-quadratic-bezier-line", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: false, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: false, transformFunction: null }, mid: { classPropertyName: "mid", publicName: "mid", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
980
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsQuadraticBezierLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
981
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsQuadraticBezierLine, isStandalone: true, selector: "ngts-quadratic-bezier-line", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: false, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: false, transformFunction: null }, mid: { classPropertyName: "mid", publicName: "mid", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "line", first: true, predicate: NgtsLine, descendants: true, isSignal: true }], ngImport: i0, template: `
982
982
  <ngts-line [points]="points()" [options]="parameters()">
983
983
  <ng-content />
984
984
  </ngts-line>
985
985
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["points", "options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
986
986
  }
987
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsQuadraticBezierLine, decorators: [{
987
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsQuadraticBezierLine, decorators: [{
988
988
  type: Component,
989
989
  args: [{
990
990
  selector: 'ngts-quadratic-bezier-line',
@@ -1053,7 +1053,7 @@ class NgtsRoundedBox {
1053
1053
  /**
1054
1054
  * Configuration options for the rounded box dimensions and appearance.
1055
1055
  */
1056
- this.options = input(defaultOptions$2, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$2) });
1056
+ this.options = input(defaultOptions$2, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$2) });
1057
1057
  this.parameters = omit(this.options, [
1058
1058
  'width',
1059
1059
  'height',
@@ -1079,11 +1079,11 @@ class NgtsRoundedBox {
1079
1079
  /**
1080
1080
  * Reference to the underlying ExtrudeGeometry Three.js object.
1081
1081
  */
1082
- this.geometryRef = viewChild('geometry', ...(ngDevMode ? [{ debugName: "geometryRef" }] : []));
1082
+ this.geometryRef = viewChild('geometry', ...(ngDevMode ? [{ debugName: "geometryRef" }] : /* istanbul ignore next */ []));
1083
1083
  this.shape = computed(() => {
1084
1084
  const [width, height, radius] = [this.width(), this.height(), this.radius()];
1085
1085
  return createShape(width, height, radius);
1086
- }, ...(ngDevMode ? [{ debugName: "shape" }] : []));
1086
+ }, ...(ngDevMode ? [{ debugName: "shape" }] : /* istanbul ignore next */ []));
1087
1087
  this.geometryParameters = computed(() => {
1088
1088
  const [depth, radius, smoothness, bevelSegments, steps] = [
1089
1089
  this.depth(),
@@ -1101,7 +1101,7 @@ class NgtsRoundedBox {
1101
1101
  bevelThickness: radius,
1102
1102
  curveSegments: smoothness,
1103
1103
  };
1104
- }, ...(ngDevMode ? [{ debugName: "geometryParameters" }] : []));
1104
+ }, ...(ngDevMode ? [{ debugName: "geometryParameters" }] : /* istanbul ignore next */ []));
1105
1105
  extend({ ExtrudeGeometry, Mesh });
1106
1106
  const objectEvents = inject(NgtObjectEvents, { host: true });
1107
1107
  objectEvents.events.set(this.meshRef);
@@ -1113,15 +1113,15 @@ class NgtsRoundedBox {
1113
1113
  toCreasedNormals(geometry, untracked(this.creaseAngle));
1114
1114
  });
1115
1115
  }
1116
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsRoundedBox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1117
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsRoundedBox, isStandalone: true, selector: "ngts-rounded-box", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "geometryRef", first: true, predicate: ["geometry"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.NgtObjectEvents, outputs: ["click", "click", "dblclick", "dblclick", "contextmenu", "contextmenu", "pointerup", "pointerup", "pointerdown", "pointerdown", "pointerover", "pointerover", "pointerout", "pointerout", "pointerenter", "pointerenter", "pointerleave", "pointerleave", "pointermove", "pointermove", "pointermissed", "pointermissed", "pointercancel", "pointercancel", "wheel", "wheel"] }], ngImport: i0, template: `
1116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsRoundedBox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1117
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsRoundedBox, isStandalone: true, selector: "ngts-rounded-box", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "geometryRef", first: true, predicate: ["geometry"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.NgtObjectEvents, outputs: ["click", "click", "dblclick", "dblclick", "contextmenu", "contextmenu", "pointerup", "pointerup", "pointerdown", "pointerdown", "pointerover", "pointerover", "pointerout", "pointerout", "pointerenter", "pointerenter", "pointerleave", "pointerleave", "pointermove", "pointermove", "pointermissed", "pointermissed", "pointercancel", "pointercancel", "wheel", "wheel"] }], ngImport: i0, template: `
1118
1118
  <ngt-mesh #mesh [parameters]="parameters()">
1119
1119
  <ngt-extrude-geometry #geometry *args="[shape(), geometryParameters()]" />
1120
1120
  <ng-content />
1121
1121
  </ngt-mesh>
1122
1122
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1123
1123
  }
1124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsRoundedBox, decorators: [{
1124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsRoundedBox, decorators: [{
1125
1125
  type: Component,
1126
1126
  args: [{
1127
1127
  selector: 'ngts-rounded-box',
@@ -1193,11 +1193,11 @@ class NgtsText {
1193
1193
  /**
1194
1194
  * The text string to render.
1195
1195
  */
1196
- this.text = input.required(...(ngDevMode ? [{ debugName: "text" }] : []));
1196
+ this.text = input.required(...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
1197
1197
  /**
1198
1198
  * Configuration options for text appearance and behavior.
1199
1199
  */
1200
- this.options = input(defaultOptions$1, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$1) });
1200
+ this.options = input(defaultOptions$1, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$1) });
1201
1201
  this.parameters = omit(this.options, ['font', 'fontSize', 'sdfGlyphSize', 'anchorX', 'anchorY', 'characters']);
1202
1202
  /**
1203
1203
  * Emitted when the text has been synced and is ready for rendering.
@@ -1218,8 +1218,8 @@ class NgtsText {
1218
1218
  this.troikaMesh = new Text();
1219
1219
  // TODO: (chau) we currently need to use this with NgtObjectEvents
1220
1220
  // to make sure `ngt-primitive` is instantitated before `injectObjectEvents`
1221
- this.textPrimitiveRef = viewChild('textPrimitive', ...(ngDevMode ? [{ debugName: "textPrimitiveRef" }] : []));
1222
- this.textPrimitive = computed(() => this.textPrimitiveRef()?.nativeElement, ...(ngDevMode ? [{ debugName: "textPrimitive" }] : []));
1221
+ this.textPrimitiveRef = viewChild('textPrimitive', ...(ngDevMode ? [{ debugName: "textPrimitiveRef" }] : /* istanbul ignore next */ []));
1222
+ this.textPrimitive = computed(() => this.textPrimitiveRef()?.nativeElement, ...(ngDevMode ? [{ debugName: "textPrimitive" }] : /* istanbul ignore next */ []));
1223
1223
  this.objectEvents.events.set(this.textPrimitive);
1224
1224
  inject(DestroyRef).onDestroy(() => {
1225
1225
  this.troikaMesh.dispose();
@@ -1238,8 +1238,8 @@ class NgtsText {
1238
1238
  });
1239
1239
  });
1240
1240
  }
1241
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsText, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1242
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsText, isStandalone: true, selector: "ngts-text", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { synced: "synced" }, viewQueries: [{ propertyName: "textPrimitiveRef", first: true, predicate: ["textPrimitive"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.NgtObjectEvents, outputs: ["click", "click", "dblclick", "dblclick", "contextmenu", "contextmenu", "pointerup", "pointerup", "pointerdown", "pointerdown", "pointerover", "pointerover", "pointerout", "pointerout", "pointerenter", "pointerenter", "pointerleave", "pointerleave", "pointermove", "pointermove", "pointermissed", "pointermissed", "pointercancel", "pointercancel", "wheel", "wheel"] }], ngImport: i0, template: `
1241
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsText, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1242
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsText, isStandalone: true, selector: "ngts-text", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { synced: "synced" }, viewQueries: [{ propertyName: "textPrimitiveRef", first: true, predicate: ["textPrimitive"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.NgtObjectEvents, outputs: ["click", "click", "dblclick", "dblclick", "contextmenu", "contextmenu", "pointerup", "pointerup", "pointerdown", "pointerdown", "pointerover", "pointerover", "pointerout", "pointerout", "pointerenter", "pointerenter", "pointerleave", "pointerleave", "pointermove", "pointermove", "pointermissed", "pointermissed", "pointercancel", "pointercancel", "wheel", "wheel"] }], ngImport: i0, template: `
1243
1243
  <ngt-primitive
1244
1244
  #textPrimitive
1245
1245
  *args="[troikaMesh]"
@@ -1255,7 +1255,7 @@ class NgtsText {
1255
1255
  </ngt-primitive>
1256
1256
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1257
1257
  }
1258
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsText, decorators: [{
1258
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsText, decorators: [{
1259
1259
  type: Component,
1260
1260
  args: [{
1261
1261
  selector: 'ngts-text',
@@ -1350,15 +1350,15 @@ class NgtsText3D {
1350
1350
  /**
1351
1351
  * Font source for the text. Can be a URL to a typeface.json file or a preloaded font object.
1352
1352
  */
1353
- this.font = input.required(...(ngDevMode ? [{ debugName: "font" }] : []));
1353
+ this.font = input.required(...(ngDevMode ? [{ debugName: "font" }] : /* istanbul ignore next */ []));
1354
1354
  /**
1355
1355
  * The text string to render as 3D geometry.
1356
1356
  */
1357
- this.text = input.required(...(ngDevMode ? [{ debugName: "text" }] : []));
1357
+ this.text = input.required(...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
1358
1358
  /**
1359
1359
  * Configuration options for the 3D text appearance.
1360
1360
  */
1361
- this.options = input(defaultOptions, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions) });
1361
+ this.options = input(defaultOptions, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions) });
1362
1362
  this.parameters = omit(this.options, [
1363
1363
  'letterSpacing',
1364
1364
  'lineHeight',
@@ -1376,7 +1376,7 @@ class NgtsText3D {
1376
1376
  * Reference to the underlying Mesh Three.js object.
1377
1377
  */
1378
1378
  this.meshRef = viewChild.required('mesh');
1379
- this.textGeometryRef = viewChild('textGeometry', ...(ngDevMode ? [{ debugName: "textGeometryRef" }] : []));
1379
+ this.textGeometryRef = viewChild('textGeometry', ...(ngDevMode ? [{ debugName: "textGeometryRef" }] : /* istanbul ignore next */ []));
1380
1380
  this.loadedFont = fontResource(this.font);
1381
1381
  this.smooth = pick(this.options, 'smooth');
1382
1382
  this.textOptions = pick(this.options, [
@@ -1397,7 +1397,7 @@ class NgtsText3D {
1397
1397
  return null;
1398
1398
  const [text, textOptions] = [this.text(), this.textOptions()];
1399
1399
  return [text, { font, ...textOptions }];
1400
- }, ...(ngDevMode ? [{ debugName: "textArgs" }] : []));
1400
+ }, ...(ngDevMode ? [{ debugName: "textArgs" }] : /* istanbul ignore next */ []));
1401
1401
  extend({ Mesh, TextGeometry });
1402
1402
  effect(() => {
1403
1403
  const [mesh, textGeometry, textArgs] = [
@@ -1414,15 +1414,15 @@ class NgtsText3D {
1414
1414
  }
1415
1415
  });
1416
1416
  }
1417
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsText3D, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1418
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsText3D, isStandalone: true, selector: "ngts-text-3d,ngts-text-3D", inputs: { font: { classPropertyName: "font", publicName: "font", isSignal: true, isRequired: true, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "textGeometryRef", first: true, predicate: ["textGeometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
1417
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsText3D, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1418
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsText3D, isStandalone: true, selector: "ngts-text-3d,ngts-text-3D", inputs: { font: { classPropertyName: "font", publicName: "font", isSignal: true, isRequired: true, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "textGeometryRef", first: true, predicate: ["textGeometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
1419
1419
  <ngt-mesh #mesh [parameters]="parameters()">
1420
1420
  <ngt-text-geometry #textGeometry *args="textArgs()" />
1421
1421
  <ng-content />
1422
1422
  </ngt-mesh>
1423
1423
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1424
1424
  }
1425
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsText3D, decorators: [{
1425
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsText3D, decorators: [{
1426
1426
  type: Component,
1427
1427
  args: [{
1428
1428
  selector: 'ngts-text-3d,ngts-text-3D',