angular-three-soba 2.10.7 → 2.11.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.
@@ -16,7 +16,7 @@ export type NgtsLineOptions = Omit<LineMaterialParameters, 'vertexColors' | 'col
16
16
  color?: ColorRepresentation;
17
17
  };
18
18
  export declare class NgtsLine {
19
- points: import("@angular/core").InputSignal<(number | Vector3 | [number, number, number] | Vector2 | [number, number])[]>;
19
+ points: import("@angular/core").InputSignal<(number | Vector3 | Vector2 | [number, number, number] | [number, number])[]>;
20
20
  options: import("@angular/core").InputSignalWithTransform<NgtsLineOptions, "" | Partial<NgtsLineOptions>>;
21
21
  parameters: import("@angular/core").Signal<Omit<NgtsLineOptions, "color" | "dashed" | "linewidth" | "vertexColors" | "lineWidth" | "segments">>;
22
22
  lineRef: import("@angular/core").Signal<ElementRef<Line2 | LineSegments2> | undefined>;
@@ -33,7 +33,7 @@ export declare class NgtsLine {
33
33
  line2: import("@angular/core").Signal<LineSegments2>;
34
34
  lineMaterial: LineMaterial;
35
35
  protected actualLineWidth: import("@angular/core").Signal<number>;
36
- protected itemSize: import("@angular/core").Signal<3 | 4>;
36
+ protected itemSize: import("@angular/core").Signal<4 | 3>;
37
37
  lineGeometry: import("@angular/core").Signal<LineSegmentsGeometry>;
38
38
  onGeometryAttached({ parent }: NgtAfterAttach<LineGeometry, Line2 | LineSegments2>): void;
39
39
  constructor();
@@ -14,13 +14,13 @@ export declare class NgtsPrismGeometry {
14
14
  depth: number;
15
15
  /** Height */
16
16
  height: number;
17
- curveSegments?: number | undefined;
17
+ bevelSegments?: number | undefined;
18
18
  steps?: number | undefined;
19
+ curveSegments?: number | undefined;
19
20
  bevelEnabled?: boolean | undefined;
20
21
  bevelThickness?: number | undefined;
21
22
  bevelSize?: number | undefined;
22
23
  bevelOffset?: number | undefined;
23
- bevelSegments?: number | undefined;
24
24
  extrudePath?: import("three").Curve<import("three").Vector3> | undefined;
25
25
  UVGenerator?: import("three").UVGenerator | undefined;
26
26
  }>;
@@ -2,6 +2,7 @@ import { ElementRef } from '@angular/core';
2
2
  import { NgtMesh } from 'angular-three';
3
3
  import { ExtrudeGeometry, Mesh, Shape } from 'three';
4
4
  import * as i0 from "@angular/core";
5
+ import * as i1 from "angular-three";
5
6
  export interface NgtsRoundedBoxOptions extends Partial<NgtMesh> {
6
7
  width: number;
7
8
  height: number;
@@ -14,7 +15,7 @@ export interface NgtsRoundedBoxOptions extends Partial<NgtMesh> {
14
15
  }
15
16
  export declare class NgtsRoundedBox {
16
17
  options: import("@angular/core").InputSignalWithTransform<NgtsRoundedBoxOptions, "" | Partial<NgtsRoundedBoxOptions>>;
17
- parameters: import("@angular/core").Signal<Omit<NgtsRoundedBoxOptions, "width" | "height" | "depth" | "steps" | "bevelSegments" | "radius" | "smoothness" | "creaseAngle">>;
18
+ parameters: import("@angular/core").Signal<Omit<NgtsRoundedBoxOptions, "width" | "height" | "depth" | "radius" | "smoothness" | "bevelSegments" | "steps" | "creaseAngle">>;
18
19
  private width;
19
20
  private height;
20
21
  private depth;
@@ -37,5 +38,5 @@ export declare class NgtsRoundedBox {
37
38
  }>;
38
39
  constructor();
39
40
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtsRoundedBox, never>;
40
- static ɵcmp: i0.ɵɵComponentDeclaration<NgtsRoundedBox, "ngts-rounded-box", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsRoundedBox, "ngts-rounded-box", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.NgtObjectEvents; inputs: {}; outputs: {}; }]>;
41
42
  }
@@ -15,11 +15,21 @@ export declare class NgtsText3D {
15
15
  removeEventListener: (<TEventKey extends keyof import("angular-three").NgtNodeEventMap<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>, typeof Mesh>, ev: import("angular-three").NgtNodeEventMap<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>>[TEventKey]) => any) => void) & (<TEventKey extends keyof import("angular-three").NgtAllObject3DEventsMap>(type: TEventKey, listener: (this: any, ev: import("angular-three").NgtAllObject3DEventsMap[TEventKey]) => any) => void);
16
16
  attach: string | string[] | import("angular-three").NgtAttachFunction;
17
17
  __ngt_args__: [geometry?: import("three").BufferGeometry<import("three").NormalBufferAttributes> | undefined, material?: import("three").Material | import("three").Material[] | undefined];
18
+ readonly isMesh?: true | undefined;
19
+ readonly type?: string | undefined;
20
+ geometry?: import("three").BufferGeometry<import("three").NormalBufferAttributes> | undefined;
21
+ material?: import("three").Material | import("three").Material[] | undefined;
22
+ morphTargetInfluences?: number[] | undefined;
23
+ morphTargetDictionary?: {
24
+ [key: string]: number;
25
+ } | undefined;
26
+ updateMorphTargets?: (() => void) | undefined;
27
+ getVertexPosition?: ((index: number, target: import("three").Vector3) => import("three").Vector3) | undefined;
28
+ toJSON?: ((meta?: import("three").JSONMeta) => import("three").MeshJSON) | undefined;
18
29
  readonly isObject3D?: true | undefined;
19
30
  readonly id?: number | undefined;
20
31
  uuid?: string | undefined;
21
32
  name?: string | undefined;
22
- readonly type?: string | undefined;
23
33
  parent?: import("three").Object3D<import("three").Object3DEventMap> | null | undefined;
24
34
  children?: import("three").Object3D<import("three").Object3DEventMap>[] | undefined;
25
35
  readonly modelViewMatrix?: import("three").Matrix4 | undefined;
@@ -80,20 +90,10 @@ export declare class NgtsText3D {
80
90
  updateMatrix?: (() => void) | undefined;
81
91
  updateMatrixWorld?: ((force?: boolean) => void) | undefined;
82
92
  updateWorldMatrix?: ((updateParents: boolean, updateChildren: boolean) => void) | undefined;
83
- toJSON?: ((meta?: import("three").JSONMeta) => import("three").MeshJSON) | undefined;
84
93
  clone?: ((recursive?: boolean) => Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>) | undefined;
85
94
  copy?: ((object: import("three").Object3D, recursive?: boolean) => Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>) | undefined;
86
95
  hasEventListener?: (<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>>) => boolean) | undefined;
87
96
  dispatchEvent?: (<T extends keyof import("three").Object3DEventMap>(event: import("three").BaseEvent<T> & import("three").Object3DEventMap[T]) => void) | undefined;
88
- geometry?: import("three").BufferGeometry<import("three").NormalBufferAttributes> | undefined;
89
- material?: import("three").Material | import("three").Material[] | undefined;
90
- readonly isMesh?: true | undefined;
91
- morphTargetInfluences?: number[] | undefined;
92
- morphTargetDictionary?: {
93
- [key: string]: number;
94
- } | undefined;
95
- updateMorphTargets?: (() => void) | undefined;
96
- getVertexPosition?: ((index: number, target: import("three").Vector3) => import("three").Vector3) | undefined;
97
97
  position: import("angular-three").NgtVector3;
98
98
  up: import("angular-three").NgtVector3;
99
99
  scale: import("angular-three").NgtVector3;
@@ -108,11 +108,21 @@ export declare class NgtsText3D {
108
108
  removeEventListener: (<TEventKey extends keyof import("angular-three").NgtNodeEventMap<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>, typeof Mesh>, ev: import("angular-three").NgtNodeEventMap<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>>[TEventKey]) => any) => void) & (<TEventKey extends keyof import("angular-three").NgtAllObject3DEventsMap>(type: TEventKey, listener: (this: any, ev: import("angular-three").NgtAllObject3DEventsMap[TEventKey]) => any) => void);
109
109
  attach: string | string[] | import("angular-three").NgtAttachFunction;
110
110
  __ngt_args__: [geometry?: import("three").BufferGeometry<import("three").NormalBufferAttributes> | undefined, material?: import("three").Material | import("three").Material[] | undefined];
111
+ readonly isMesh?: true | undefined;
112
+ readonly type?: string | undefined;
113
+ geometry?: import("three").BufferGeometry<import("three").NormalBufferAttributes> | undefined;
114
+ material?: import("three").Material | import("three").Material[] | undefined;
115
+ morphTargetInfluences?: number[] | undefined;
116
+ morphTargetDictionary?: {
117
+ [key: string]: number;
118
+ } | undefined;
119
+ updateMorphTargets?: (() => void) | undefined;
120
+ getVertexPosition?: ((index: number, target: import("three").Vector3) => import("three").Vector3) | undefined;
121
+ toJSON?: ((meta?: import("three").JSONMeta) => import("three").MeshJSON) | undefined;
111
122
  readonly isObject3D?: true | undefined;
112
123
  readonly id?: number | undefined;
113
124
  uuid?: string | undefined;
114
125
  name?: string | undefined;
115
- readonly type?: string | undefined;
116
126
  parent?: import("three").Object3D<import("three").Object3DEventMap> | null | undefined;
117
127
  children?: import("three").Object3D<import("three").Object3DEventMap>[] | undefined;
118
128
  readonly modelViewMatrix?: import("three").Matrix4 | undefined;
@@ -173,20 +183,10 @@ export declare class NgtsText3D {
173
183
  updateMatrix?: (() => void) | undefined;
174
184
  updateMatrixWorld?: ((force?: boolean) => void) | undefined;
175
185
  updateWorldMatrix?: ((updateParents: boolean, updateChildren: boolean) => void) | undefined;
176
- toJSON?: ((meta?: import("three").JSONMeta) => import("three").MeshJSON) | undefined;
177
186
  clone?: ((recursive?: boolean) => Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>) | undefined;
178
187
  copy?: ((object: import("three").Object3D, recursive?: boolean) => Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>) | undefined;
179
188
  hasEventListener?: (<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>>) => boolean) | undefined;
180
189
  dispatchEvent?: (<T extends keyof import("three").Object3DEventMap>(event: import("three").BaseEvent<T> & import("three").Object3DEventMap[T]) => void) | undefined;
181
- geometry?: import("three").BufferGeometry<import("three").NormalBufferAttributes> | undefined;
182
- material?: import("three").Material | import("three").Material[] | undefined;
183
- readonly isMesh?: true | undefined;
184
- morphTargetInfluences?: number[] | undefined;
185
- morphTargetDictionary?: {
186
- [key: string]: number;
187
- } | undefined;
188
- updateMorphTargets?: (() => void) | undefined;
189
- getVertexPosition?: ((index: number, target: import("three").Vector3) => import("three").Vector3) | undefined;
190
190
  position: import("angular-three").NgtVector3;
191
191
  up: import("angular-three").NgtVector3;
192
192
  scale: import("angular-three").NgtVector3;
@@ -202,11 +202,21 @@ export declare class NgtsText3D {
202
202
  removeEventListener: (<TEventKey extends keyof import("angular-three").NgtNodeEventMap<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>, typeof Mesh>, ev: import("angular-three").NgtNodeEventMap<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>>[TEventKey]) => any) => void) & (<TEventKey extends keyof import("angular-three").NgtAllObject3DEventsMap>(type: TEventKey, listener: (this: any, ev: import("angular-three").NgtAllObject3DEventsMap[TEventKey]) => any) => void);
203
203
  attach: string | string[] | import("angular-three").NgtAttachFunction;
204
204
  __ngt_args__: [geometry?: import("three").BufferGeometry<import("three").NormalBufferAttributes> | undefined, material?: import("three").Material | import("three").Material[] | undefined];
205
+ readonly isMesh?: true | undefined;
206
+ readonly type?: string | undefined;
207
+ geometry?: import("three").BufferGeometry<import("three").NormalBufferAttributes> | undefined;
208
+ material?: import("three").Material | import("three").Material[] | undefined;
209
+ morphTargetInfluences?: number[] | undefined;
210
+ morphTargetDictionary?: {
211
+ [key: string]: number;
212
+ } | undefined;
213
+ updateMorphTargets?: (() => void) | undefined;
214
+ getVertexPosition?: ((index: number, target: import("three").Vector3) => import("three").Vector3) | undefined;
215
+ toJSON?: ((meta?: import("three").JSONMeta) => import("three").MeshJSON) | undefined;
205
216
  readonly isObject3D?: true | undefined;
206
217
  readonly id?: number | undefined;
207
218
  uuid?: string | undefined;
208
219
  name?: string | undefined;
209
- readonly type?: string | undefined;
210
220
  parent?: import("three").Object3D<import("three").Object3DEventMap> | null | undefined;
211
221
  children?: import("three").Object3D<import("three").Object3DEventMap>[] | undefined;
212
222
  readonly modelViewMatrix?: import("three").Matrix4 | undefined;
@@ -267,20 +277,10 @@ export declare class NgtsText3D {
267
277
  updateMatrix?: (() => void) | undefined;
268
278
  updateMatrixWorld?: ((force?: boolean) => void) | undefined;
269
279
  updateWorldMatrix?: ((updateParents: boolean, updateChildren: boolean) => void) | undefined;
270
- toJSON?: ((meta?: import("three").JSONMeta) => import("three").MeshJSON) | undefined;
271
280
  clone?: ((recursive?: boolean) => Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>) | undefined;
272
281
  copy?: ((object: import("three").Object3D, recursive?: boolean) => Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>) | undefined;
273
282
  hasEventListener?: (<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>>) => boolean) | undefined;
274
283
  dispatchEvent?: (<T extends keyof import("three").Object3DEventMap>(event: import("three").BaseEvent<T> & import("three").Object3DEventMap[T]) => void) | undefined;
275
- geometry?: import("three").BufferGeometry<import("three").NormalBufferAttributes> | undefined;
276
- material?: import("three").Material | import("three").Material[] | undefined;
277
- readonly isMesh?: true | undefined;
278
- morphTargetInfluences?: number[] | undefined;
279
- morphTargetDictionary?: {
280
- [key: string]: number;
281
- } | undefined;
282
- updateMorphTargets?: (() => void) | undefined;
283
- getVertexPosition?: ((index: number, target: import("three").Vector3) => import("three").Vector3) | undefined;
284
284
  position: import("angular-three").NgtVector3;
285
285
  up: import("angular-three").NgtVector3;
286
286
  scale: import("angular-three").NgtVector3;
@@ -290,21 +290,21 @@ export declare class NgtsText3D {
290
290
  layers: import("angular-three").NgtLayers;
291
291
  dispose: (() => void) | null;
292
292
  raycast: import("three").Object3D["raycast"] | null;
293
- }> & NgtsText3DOptions, "size" | "height" | "curveSegments" | "bevelEnabled" | "bevelThickness" | "bevelSize" | "bevelOffset" | "bevelSegments" | "lineHeight" | "letterSpacing" | "smooth">>;
293
+ }> & NgtsText3DOptions, "height" | "bevelSegments" | "size" | "curveSegments" | "bevelEnabled" | "bevelThickness" | "bevelSize" | "bevelOffset" | "lineHeight" | "letterSpacing" | "smooth">>;
294
294
  meshRef: import("@angular/core").Signal<ElementRef<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>>>;
295
295
  private textGeometryRef;
296
296
  loadedFont: import("@angular/core").Signal<import("three-stdlib").Font | null>;
297
297
  private smooth;
298
298
  private textOptions;
299
299
  textArgs: import("@angular/core").Signal<(string | {
300
- size?: number | undefined;
301
300
  height?: number | undefined;
301
+ bevelSegments: number;
302
+ size?: number | undefined;
302
303
  curveSegments?: number | undefined;
303
304
  bevelEnabled?: boolean | undefined;
304
305
  bevelThickness?: number | undefined;
305
306
  bevelSize?: number | undefined;
306
307
  bevelOffset?: number | undefined;
307
- bevelSegments: number;
308
308
  lineHeight?: number | undefined;
309
309
  letterSpacing?: number | undefined;
310
310
  font: import("three-stdlib").Font;
@@ -1,9 +1,10 @@
1
- import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, input, untracked, viewChild, } from '@angular/core';
2
- import { extend, NgtArgs, omit, pick } from 'angular-three';
1
+ import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject, input, untracked, viewChild, } from '@angular/core';
2
+ import { extend, NgtArgs, NgtObjectEvents, NgtObjectEventsOutputs, omit, pick } from 'angular-three';
3
3
  import { mergeInputs } from 'ngxtension/inject-inputs';
4
4
  import { ExtrudeGeometry, Mesh, Shape } from 'three';
5
5
  import { toCreasedNormals } from 'three-stdlib';
6
6
  import * as i0 from "@angular/core";
7
+ import * as i1 from "angular-three";
7
8
  const eps = 0.00001;
8
9
  function createShape(width, height, radius0) {
9
10
  const shape = new Shape();
@@ -70,6 +71,11 @@ export class NgtsRoundedBox {
70
71
  };
71
72
  });
72
73
  extend({ ExtrudeGeometry, Mesh });
74
+ const objectEvents = inject(NgtObjectEvents, { host: true });
75
+ effect(() => {
76
+ const mesh = this.meshRef().nativeElement;
77
+ objectEvents.ngtObjectEvents.set(mesh);
78
+ }, { allowSignalWrites: true });
73
79
  effect(() => {
74
80
  const geometry = this.geometryRef()?.nativeElement;
75
81
  if (!geometry)
@@ -79,7 +85,7 @@ export class NgtsRoundedBox {
79
85
  });
80
86
  }
81
87
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsRoundedBox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
82
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", 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 }], ngImport: i0, template: `
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", 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 }], ngImport: i0, template: `
83
89
  <ngt-mesh #mesh [parameters]="parameters()">
84
90
  <ngt-extrude-geometry #geometry *args="[shape(), params()]" />
85
91
  <ng-content />
@@ -100,6 +106,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
100
106
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
101
107
  changeDetection: ChangeDetectionStrategy.OnPush,
102
108
  imports: [NgtArgs],
109
+ hostDirectives: [{ directive: NgtObjectEvents, outputs: NgtObjectEventsOutputs }],
103
110
  }]
104
111
  }], ctorParameters: () => [] });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91bmRlZC1ib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvYWJzdHJhY3Rpb25zL3NyYy9saWIvcm91bmRlZC1ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBRU4sS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQVcsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFaEQsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDO0FBRXBCLFNBQVMsV0FBVyxDQUFDLEtBQWEsRUFBRSxNQUFjLEVBQUUsT0FBZTtJQUNsRSxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQzFCLE1BQU0sTUFBTSxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDN0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRCxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMs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ZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRlZmZlY3QsXG5cdEVsZW1lbnRSZWYsXG5cdGlucHV0LFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIE5ndEFyZ3MsIE5ndE1lc2gsIG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEV4dHJ1ZGVHZW9tZXRyeSwgTWVzaCwgU2hhcGUgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyB0b0NyZWFzZWROb3JtYWxzIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuY29uc3QgZXBzID0gMC4wMDAwMTtcblxuZnVuY3Rpb24gY3JlYXRlU2hhcGUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHJhZGl1czA6IG51bWJlcikge1xuXHRjb25zdCBzaGFwZSA9IG5ldyBTaGFwZSgpO1xuXHRjb25zdCByYWRpdXMgPSByYWRpdXMwIC0gZXBzO1xuXHRzaGFwZS5hYnNhcmMoZXBzLCBlcHMsIGVwcywgLU1hdGguUEkgLyAyLCAtTWF0aC5QSSwgdHJ1ZSk7XG5cdHNoYXBlLmFic2FyYyhlcHMsIGhlaWdodCAtIHJhZGl1cyAqIDIsIGVwcywgTWF0aC5QSSwgTWF0aC5QSSAvIDIsIHRydWUpO1xuXHRzaGFwZS5hYnNhcmMod2lkdGggLSByYWRpdXMgKiAyLCBoZWlnaHQgLSByYWRpdXMgKiAyLCBlcHMsIE1hdGguUEkgLyAyLCAwLCB0cnVlKTtcblx0c2hhcGUuYWJzYXJjKHdpZHRoIC0gcmFkaXVzICogMiwgZXBzLCBlcHMsIDAsIC1NYXRoLlBJIC8gMiwgdHJ1ZSk7XG5cdHJldHVybiBzaGFwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzUm91bmRlZEJveE9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPE5ndE1lc2g+IHtcblx0d2lkdGg6IG51bWJlcjtcblx0aGVpZ2h0OiBudW1iZXI7XG5cdGRlcHRoOiBudW1iZXI7XG5cdHJhZGl1czogbnVtYmVyO1xuXHRzbW9vdGhuZXNzOiBudW1iZXI7XG5cdGJldmVsU2VnbWVudHM6IG51bWJlcjtcblx0c3RlcHM6IG51bWJlcjtcblx0Y3JlYXNlQW5nbGU6IG51bWJlcjtcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNSb3VuZGVkQm94T3B0aW9ucyA9IHtcblx0d2lkdGg6IDEsXG5cdGhlaWdodDogMSxcblx0ZGVwdGg6IDEsXG5cdHJhZGl1czogMC4wNSxcblx0c21vb3RobmVzczogNCxcblx0YmV2ZWxTZWdtZW50czogNCxcblx0Y3JlYXNlQW5nbGU6IDAuNCxcblx0c3RlcHM6IDEsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLXJvdW5kZWQtYm94Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW1lc2ggI21lc2ggW3BhcmFtZXRlcnNdPVwicGFyYW1ldGVycygpXCI+XG5cdFx0XHQ8bmd0LWV4dHJ1ZGUtZ2VvbWV0cnkgI2dlb21ldHJ5ICphcmdzPVwiW3NoYXBlKCksIHBhcmFtcygpXVwiIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LW1lc2g+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1JvdW5kZWRCb3gge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgW1xuXHRcdCd3aWR0aCcsXG5cdFx0J2hlaWdodCcsXG5cdFx0J2RlcHRoJyxcblx0XHQncmFkaXVzJyxcblx0XHQnc21vb3RobmVzcycsXG5cdFx0J2JldmVsU2VnbWVudHMnLFxuXHRcdCdzdGVwcycsXG5cdFx0J2NyZWFzZUFuZ2xlJyxcblx0XSk7XG5cblx0cHJpdmF0ZSB3aWR0aCA9IHBpY2sodGhpcy5vcHRpb25zLCAnd2lkdGgnKTtcblx0cHJpdmF0ZSBoZWlnaHQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2hlaWdodCcpO1xuXHRwcml2YXRlIGRlcHRoID0gcGljayh0aGlzLm9wdGlvbnMsICdkZXB0aCcpO1xuXHRwcml2YXRlIHJhZGl1cyA9IHBpY2sodGhpcy5vcHRpb25zLCAncmFkaXVzJyk7XG5cdHByaXZhdGUgc21vb3RobmVzcyA9IHBpY2sodGhpcy5vcHRpb25zLCAnc21vb3RobmVzcycpO1xuXHRwcml2YXRlIGJldmVsU2VnbWVudHMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JldmVsU2VnbWVudHMnKTtcblx0cHJpdmF0ZSBzdGVwcyA9IHBpY2sodGhpcy5vcHRpb25zLCAnc3RlcHMnKTtcblx0cHJpdmF0ZSBjcmVhc2VBbmdsZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnY3JlYXNlQW5nbGUnKTtcblxuXHRtZXNoUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8TWVzaD4+KCdtZXNoJyk7XG5cdGdlb21ldHJ5UmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8RXh0cnVkZUdlb21ldHJ5Pj4oJ2dlb21ldHJ5Jyk7XG5cblx0cHJvdGVjdGVkIHNoYXBlID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFt3aWR0aCwgaGVpZ2h0LCByYWRpdXNdID0gW3RoaXMud2lkdGgoKSwgdGhpcy5oZWlnaHQoKSwgdGhpcy5yYWRpdXMoKV07XG5cdFx0cmV0dXJuIGNyZWF0ZVNoYXBlKHdpZHRoLCBoZWlnaHQsIHJhZGl1cyk7XG5cdH0pO1xuXHRwcm90ZWN0ZWQgcGFyYW1zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtkZXB0aCwgcmFkaXVzLCBzbW9vdGhuZXNzLCBiZXZlbFNlZ21lbnRzLCBzdGVwc10gPSBbXG5cdFx0XHR0aGlzLmRlcHRoKCksXG5cdFx0XHR0aGlzLnJhZGl1cygpLFxuXHRcdFx0dGhpcy5zbW9vdGhuZXNzKCksXG5cdFx0XHR1bnRyYWNrZWQodGhpcy5iZXZlbFNlZ21lbnRzKSxcblx0XHRcdHVudHJhY2tlZCh0aGlzLnN0ZXBzKSxcblx0XHRdO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGRlcHRoOiBkZXB0aCAtIHJhZGl1cyAqIDIsXG5cdFx0XHRiZXZlbEVuYWJsZWQ6IHRydWUsXG5cdFx0XHRiZXZlbFNlZ21lbnRzOiBiZXZlbFNlZ21lbnRzICogMixcblx0XHRcdHN0ZXBzLFxuXHRcdFx0YmV2ZWxTaXplOiByYWRpdXMgLSBlcHMsXG5cdFx0XHRiZXZlbFRoaWNrbmVzczogcmFkaXVzLFxuXHRcdFx0Y3VydmVTZWdtZW50czogc21vb3RobmVzcyxcblx0XHR9O1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBFeHRydWRlR2VvbWV0cnksIE1lc2ggfSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgZ2VvbWV0cnkgPSB0aGlzLmdlb21ldHJ5UmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRpZiAoIWdlb21ldHJ5KSByZXR1cm47XG5cblx0XHRcdGdlb21ldHJ5LmNlbnRlcigpO1xuXHRcdFx0dG9DcmVhc2VkTm9ybWFscyhnZW9tZXRyeSwgdW50cmFja2VkKHRoaXMuY3JlYXNlQW5nbGUpKTtcblx0XHR9KTtcblx0fVxufVxuIl19
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91bmRlZC1ib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvYWJzdHJhY3Rpb25zL3NyYy9saWIvcm91bmRlZC1ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBRU4sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFXLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFFaEQsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDO0FBRXBCLFNBQVMsV0FBVyxDQUFDLEtBQWEsRUFBRSxNQUFjLEVBQUUsT0FBZTtJQUNsRSxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQzFCLE1BQU0sTUFBTSxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDN0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRCxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVB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OytHQXJFVyxjQUFjO21HQUFkLGNBQWMsc2VBWGhCOzs7OztFQUtULDREQUdTLE9BQU87OzRGQUdMLGNBQWM7a0JBZDFCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRlZmZlY3QsXG5cdEVsZW1lbnRSZWYsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHVudHJhY2tlZCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgTmd0QXJncywgTmd0TWVzaCwgTmd0T2JqZWN0RXZlbnRzLCBOZ3RPYmplY3RFdmVudHNPdXRwdXRzLCBvbWl0LCBwaWNrIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBFeHRydWRlR2VvbWV0cnksIE1lc2gsIFNoYXBlIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgdG9DcmVhc2VkTm9ybWFscyB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmNvbnN0IGVwcyA9IDAuMDAwMDE7XG5cbmZ1bmN0aW9uIGNyZWF0ZVNoYXBlKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCByYWRpdXMwOiBudW1iZXIpIHtcblx0Y29uc3Qgc2hhcGUgPSBuZXcgU2hhcGUoKTtcblx0Y29uc3QgcmFkaXVzID0gcmFkaXVzMCAtIGVwcztcblx0c2hhcGUuYWJzYXJjKGVwcywgZXBzLCBlcHMsIC1NYXRoLlBJIC8gMiwgLU1hdGguUEksIHRydWUpO1xuXHRzaGFwZS5hYnNhcmMoZXBzLCBoZWlnaHQgLSByYWRpdXMgKiAyLCBlcHMsIE1hdGguUEksIE1hdGguUEkgLyAyLCB0cnVlKTtcblx0c2hhcGUuYWJzYXJjKHdpZHRoIC0gcmFkaXVzICogMiwgaGVpZ2h0IC0gcmFkaXVzICogMiwgZXBzLCBNYXRoLlBJIC8gMiwgMCwgdHJ1ZSk7XG5cdHNoYXBlLmFic2FyYyh3aWR0aCAtIHJhZGl1cyAqIDIsIGVwcywgZXBzLCAwLCAtTWF0aC5QSSAvIDIsIHRydWUpO1xuXHRyZXR1cm4gc2hhcGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c1JvdW5kZWRCb3hPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxOZ3RNZXNoPiB7XG5cdHdpZHRoOiBudW1iZXI7XG5cdGhlaWdodDogbnVtYmVyO1xuXHRkZXB0aDogbnVtYmVyO1xuXHRyYWRpdXM6IG51bWJlcjtcblx0c21vb3RobmVzczogbnVtYmVyO1xuXHRiZXZlbFNlZ21lbnRzOiBudW1iZXI7XG5cdHN0ZXBzOiBudW1iZXI7XG5cdGNyZWFzZUFuZ2xlOiBudW1iZXI7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RzUm91bmRlZEJveE9wdGlvbnMgPSB7XG5cdHdpZHRoOiAxLFxuXHRoZWlnaHQ6IDEsXG5cdGRlcHRoOiAxLFxuXHRyYWRpdXM6IDAuMDUsXG5cdHNtb290aG5lc3M6IDQsXG5cdGJldmVsU2VnbWVudHM6IDQsXG5cdGNyZWFzZUFuZ2xlOiAwLjQsXG5cdHN0ZXBzOiAxLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1yb3VuZGVkLWJveCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1tZXNoICNtZXNoIFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnMoKVwiPlxuXHRcdFx0PG5ndC1leHRydWRlLWdlb21ldHJ5ICNnZW9tZXRyeSAqYXJncz1cIltzaGFwZSgpLCBwYXJhbXMoKV1cIiAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1tZXNoPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndE9iamVjdEV2ZW50cywgb3V0cHV0czogTmd0T2JqZWN0RXZlbnRzT3V0cHV0cyB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1JvdW5kZWRCb3gge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgW1xuXHRcdCd3aWR0aCcsXG5cdFx0J2hlaWdodCcsXG5cdFx0J2RlcHRoJyxcblx0XHQncmFkaXVzJyxcblx0XHQnc21vb3RobmVzcycsXG5cdFx0J2JldmVsU2VnbWVudHMnLFxuXHRcdCdzdGVwcycsXG5cdFx0J2NyZWFzZUFuZ2xlJyxcblx0XSk7XG5cblx0cHJpdmF0ZSB3aWR0aCA9IHBpY2sodGhpcy5vcHRpb25zLCAnd2lkdGgnKTtcblx0cHJpdmF0ZSBoZWlnaHQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2hlaWdodCcpO1xuXHRwcml2YXRlIGRlcHRoID0gcGljayh0aGlzLm9wdGlvbnMsICdkZXB0aCcpO1xuXHRwcml2YXRlIHJhZGl1cyA9IHBpY2sodGhpcy5vcHRpb25zLCAncmFkaXVzJyk7XG5cdHByaXZhdGUgc21vb3RobmVzcyA9IHBpY2sodGhpcy5vcHRpb25zLCAnc21vb3RobmVzcycpO1xuXHRwcml2YXRlIGJldmVsU2VnbWVudHMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JldmVsU2VnbWVudHMnKTtcblx0cHJpdmF0ZSBzdGVwcyA9IHBpY2sodGhpcy5vcHRpb25zLCAnc3RlcHMnKTtcblx0cHJpdmF0ZSBjcmVhc2VBbmdsZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnY3JlYXNlQW5nbGUnKTtcblxuXHRtZXNoUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8TWVzaD4+KCdtZXNoJyk7XG5cdGdlb21ldHJ5UmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8RXh0cnVkZUdlb21ldHJ5Pj4oJ2dlb21ldHJ5Jyk7XG5cblx0cHJvdGVjdGVkIHNoYXBlID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFt3aWR0aCwgaGVpZ2h0LCByYWRpdXNdID0gW3RoaXMud2lkdGgoKSwgdGhpcy5oZWlnaHQoKSwgdGhpcy5yYWRpdXMoKV07XG5cdFx0cmV0dXJuIGNyZWF0ZVNoYXBlKHdpZHRoLCBoZWlnaHQsIHJhZGl1cyk7XG5cdH0pO1xuXHRwcm90ZWN0ZWQgcGFyYW1zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtkZXB0aCwgcmFkaXVzLCBzbW9vdGhuZXNzLCBiZXZlbFNlZ21lbnRzLCBzdGVwc10gPSBbXG5cdFx0XHR0aGlzLmRlcHRoKCksXG5cdFx0XHR0aGlzLnJhZGl1cygpLFxuXHRcdFx0dGhpcy5zbW9vdGhuZXNzKCksXG5cdFx0XHR1bnRyYWNrZWQodGhpcy5iZXZlbFNlZ21lbnRzKSxcblx0XHRcdHVudHJhY2tlZCh0aGlzLnN0ZXBzKSxcblx0XHRdO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGRlcHRoOiBkZXB0aCAtIHJhZGl1cyAqIDIsXG5cdFx0XHRiZXZlbEVuYWJsZWQ6IHRydWUsXG5cdFx0XHRiZXZlbFNlZ21lbnRzOiBiZXZlbFNlZ21lbnRzICogMixcblx0XHRcdHN0ZXBzLFxuXHRcdFx0YmV2ZWxTaXplOiByYWRpdXMgLSBlcHMsXG5cdFx0XHRiZXZlbFRoaWNrbmVzczogcmFkaXVzLFxuXHRcdFx0Y3VydmVTZWdtZW50czogc21vb3RobmVzcyxcblx0XHR9O1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBFeHRydWRlR2VvbWV0cnksIE1lc2ggfSk7XG5cblx0XHRjb25zdCBvYmplY3RFdmVudHMgPSBpbmplY3QoTmd0T2JqZWN0RXZlbnRzLCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0XHRlZmZlY3QoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG1lc2ggPSB0aGlzLm1lc2hSZWYoKS5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRvYmplY3RFdmVudHMubmd0T2JqZWN0RXZlbnRzLnNldChtZXNoKTtcblx0XHRcdH0sXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG5cdFx0KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBnZW9tZXRyeSA9IHRoaXMuZ2VvbWV0cnlSZWYoKT8ubmF0aXZlRWxlbWVudDtcblx0XHRcdGlmICghZ2VvbWV0cnkpIHJldHVybjtcblxuXHRcdFx0Z2VvbWV0cnkuY2VudGVyKCk7XG5cdFx0XHR0b0NyZWFzZWROb3JtYWxzKGdlb21ldHJ5LCB1bnRyYWNrZWQodGhpcy5jcmVhc2VBbmdsZSkpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { input, viewChild, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, computed, effect, untracked, inject, output, DestroyRef } from '@angular/core';
3
- import { omit, extend, injectBeforeRender, injectStore, pick, checkNeedsUpdate, NgtArgs, getLocalState, resolveRef } from 'angular-three';
3
+ import * as i1 from 'angular-three';
4
+ import { omit, extend, injectBeforeRender, injectStore, pick, checkNeedsUpdate, NgtArgs, getLocalState, resolveRef, NgtObjectEvents, NgtObjectEventsOutputs } from 'angular-three';
4
5
  import { mergeInputs } from 'ngxtension/inject-inputs';
5
6
  import { Group, Quaternion, Vector3, Vector4, Vector2, Color, CatmullRomCurve3, CubicBezierCurve3, EdgesGeometry, CanvasTexture, BackSide, Plane, Mesh, PlaneGeometry, Object3D, Shape, ExtrudeGeometry, QuadraticBezierCurve3 } from 'three';
6
7
  import { LineSegments2, Line2, LineMaterial, LineSegmentsGeometry, LineGeometry, toCreasedNormals, TextGeometry, mergeVertices } from 'three-stdlib';
@@ -791,6 +792,11 @@ class NgtsRoundedBox {
791
792
  };
792
793
  });
793
794
  extend({ ExtrudeGeometry, Mesh });
795
+ const objectEvents = inject(NgtObjectEvents, { host: true });
796
+ effect(() => {
797
+ const mesh = this.meshRef().nativeElement;
798
+ objectEvents.ngtObjectEvents.set(mesh);
799
+ }, { allowSignalWrites: true });
794
800
  effect(() => {
795
801
  const geometry = this.geometryRef()?.nativeElement;
796
802
  if (!geometry)
@@ -800,7 +806,7 @@ class NgtsRoundedBox {
800
806
  });
801
807
  }
802
808
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsRoundedBox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
803
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", 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 }], ngImport: i0, template: `
809
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", 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 }], ngImport: i0, template: `
804
810
  <ngt-mesh #mesh [parameters]="parameters()">
805
811
  <ngt-extrude-geometry #geometry *args="[shape(), params()]" />
806
812
  <ng-content />
@@ -821,6 +827,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
821
827
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
822
828
  changeDetection: ChangeDetectionStrategy.OnPush,
823
829
  imports: [NgtArgs],
830
+ hostDirectives: [{ directive: NgtObjectEvents, outputs: NgtObjectEventsOutputs }],
824
831
  }]
825
832
  }], ctorParameters: () => [] });
826
833