angular-three 4.2.3 → 4.2.4-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angular-three",
3
- "version": "4.2.3",
3
+ "version": "4.2.4-next.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -42,9 +42,8 @@ declare function createPointerEvents(store: SignalState<NgtState>): NgtEventMana
42
42
  * ```
43
43
  */
44
44
  declare class NgtCanvasContent {
45
- private canvas;
46
45
  constructor();
47
- static ngTemplateContextGuard(_: NgtCanvasContent, ctx: unknown): ctx is {
46
+ static ngTemplateContextGuard(_: NgtCanvasContent, _ctx: unknown): _ctx is {
48
47
  $implicit: HTMLCanvasElement;
49
48
  host: HTMLElement;
50
49
  };
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { Injector, Signal, WritableSignal, ElementRef, Provider, ProviderToken, Type, AbstractType, InjectionToken, ResourceRef, RendererFactory2, RendererType2, Renderer2, ChangeDetectorRef, InjectOptions, OutputEmitterRef, ValueEqualityFn } from '@angular/core';
2
+ import { Injector, Signal, WritableSignal, ElementRef, Provider, ProviderToken, Type, AbstractType, InjectionToken, ResourceRef, RendererFactory2, RendererType2, Renderer2, RendererStyleFlags2, ChangeDetectorRef, InjectOptions, OutputEmitterRef, ValueEqualityFn } from '@angular/core';
3
3
  import * as THREE from 'three';
4
4
  import { Object3D } from 'three';
5
5
  import { Observable } from 'rxjs';
@@ -22,6 +22,7 @@ import * as angular_three from 'angular-three';
22
22
  declare abstract class NgtCommonDirective<TValue> {
23
23
  private vcr;
24
24
  private template;
25
+ private renderer;
25
26
  protected injector: Injector;
26
27
  protected injected: boolean;
27
28
  protected injectedValue: TValue | null;
@@ -553,7 +554,7 @@ interface NgtInstanceState<TObject extends NgtAnyRecord = NgtAnyRecord> {
553
554
  object: TObject & {
554
555
  __ngt__?: NgtInstanceState<TObject>;
555
556
  };
556
- add: (instance: NgtInstanceNode, type: 'objects' | 'nonObjects') => void;
557
+ add: (instance: NgtInstanceNode, type: 'objects' | 'nonObjects', before?: NgtInstanceNode | null) => void;
557
558
  remove: (instance: NgtInstanceNode, type: 'objects' | 'nonObjects') => void;
558
559
  setParent: (parent: NgtInstanceNode | null) => void;
559
560
  updateGeometryStamp: () => void;
@@ -680,7 +681,7 @@ interface NgtState {
680
681
  previousRoot: SignalState<NgtState> | null;
681
682
  /** Internals */
682
683
  internal: NgtInternalState;
683
- /** maxSkipCount from renderer options */
684
+ /** @deprecated Retained for compatibility; ancestor notifications are microtask-batched. */
684
685
  maxNotificationSkipCount?: number;
685
686
  }
686
687
  interface NgtCanvasOptions {
@@ -736,7 +737,6 @@ declare class NgtParent extends NgtCommonDirective<THREE.Object3D | null | undef
736
737
  protected shouldSkipRender: _angular_core.Signal<boolean>;
737
738
  constructor();
738
739
  validate(): boolean;
739
- protected beforeCreateView(): void;
740
740
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgtParent, never>;
741
741
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgtParent, "ng-template[parent]", never, { "parent": { "alias": "parent"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
742
742
  }
@@ -831,24 +831,12 @@ declare function createEvents(store: SignalState<NgtState>): {
831
831
  */
832
832
  /** Flag indicating a node is managed by the Angular Three renderer */
833
833
  declare const NGT_RENDERER_NODE_FLAG = "__ngt_renderer__";
834
- /** Flag for canvas content template comments */
835
- declare const NGT_CANVAS_CONTENT_FLAG = "__ngt_renderer_canvas_content__";
836
- /** Flag for portal content template comments */
837
- declare const NGT_PORTAL_CONTENT_FLAG = "__ngt_renderer_portal_content__";
838
- /** Flag for args directive comments */
839
- declare const NGT_ARGS_FLAG = "__ngt_renderer_args__";
840
- /** Flag for parent directive comments */
841
- declare const NGT_PARENT_FLAG = "__ngt_renderer_parent__";
842
- /** Internal flag for adding comment nodes */
843
- declare const NGT_INTERNAL_ADD_COMMENT_FLAG = "__ngt_renderer_add_comment__";
844
- /** Internal flag for setting parent on comment nodes */
845
- declare const NGT_INTERNAL_SET_PARENT_COMMENT_FLAG = "__ngt_renderer_set_parent_comment__";
834
+ /** Internal hook for scoping structural directive context to embedded view creation */
835
+ declare const NGT_RENDERER_CONTEXT_FLAG = "__ngt_renderer_context__";
846
836
  /** Flag for getting node attributes */
847
837
  declare const NGT_GET_NODE_ATTRIBUTE_FLAG = "__ngt_get_node_attribute__";
848
838
  /** Flag for DOM parent element reference */
849
839
  declare const NGT_DOM_PARENT_FLAG = "__ngt_dom_parent__";
850
- /** Flag indicating the delegate renderer's destroyNode has been patched */
851
- declare const NGT_DELEGATE_RENDERER_DESTROY_NODE_PATCHED_FLAG = "__ngt_delegate_renderer_destroy_node_patched__";
852
840
  /** Flag for HTML directive classes */
853
841
  declare const NGT_HTML_FLAG = "__ngt_html__";
854
842
  /** Native Three.js EventDispatcher events */
@@ -897,7 +885,7 @@ declare function provideHTMLDomElement<TDeps extends Array<ProviderToken<any>>,
897
885
  */
898
886
  declare abstract class NgtHTML {
899
887
  static [NGT_HTML_FLAG]: boolean;
900
- protected domElement: HTMLElement | "gl" | null;
888
+ protected domElement: "gl" | HTMLElement | null;
901
889
  constructor();
902
890
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgtHTML, never>;
903
891
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgtHTML, never, never, {}, {}, never, never, true, never>;
@@ -970,6 +958,8 @@ declare function invalidateInstance<TInstance extends NgtAnyRecord>(instance: Ng
970
958
  * ```
971
959
  */
972
960
  declare function prepare<TInstance extends NgtAnyRecord = NgtAnyRecord>(object: TInstance, type: string, instanceState?: Partial<NgtInstanceState>): NgtInstanceNode<TInstance>;
961
+ /** @internal */
962
+ declare function flushAncestorNotifications(): void;
973
963
 
974
964
  /**
975
965
  * Generates a unique identifier.
@@ -1073,6 +1063,11 @@ type NgtLoaderReturnType<T, L extends NgtLoaderProto<T>> = T extends unknown ? A
1073
1063
  type NgtLoaderExtensions<T extends {
1074
1064
  prototype: NgtLoaderProto<any>;
1075
1065
  }> = (loader: T['prototype']) => void;
1066
+ /**
1067
+ * Semantic components that identify a configured loader. Tuple entries use
1068
+ * value identity for primitives and reference identity for objects/functions.
1069
+ */
1070
+ type NgtLoaderCacheKey = readonly unknown[];
1076
1071
  /**
1077
1072
  * Conditional type utility.
1078
1073
  */
@@ -1094,14 +1089,20 @@ type NgtLoaderResults<TInput extends string | string[] | Record<string, string>,
1094
1089
  * @deprecated Use loaderResource instead. Will be removed in v5.0.0
1095
1090
  * @since v4.0.0~
1096
1091
  */
1097
- declare function _injectLoader<TData, TUrl extends string | string[] | Record<string, string>, TLoaderConstructor extends NgtLoaderProto<TData>, TReturn = NgtLoaderReturnType<TData, TLoaderConstructor>>(loaderConstructorFactory: (inputs: string[]) => TLoaderConstructor, inputs: () => TUrl, { extensions, onProgress, onLoad, injector, }?: {
1092
+ declare function _injectLoader<TData, TUrl extends string | string[] | Record<string, string>, TLoaderConstructor extends NgtLoaderProto<TData>, TReturn = NgtLoaderReturnType<TData, TLoaderConstructor>>(loaderConstructorFactory: (inputs: string[]) => TLoaderConstructor, inputs: () => TUrl, { extensions, cacheKey, onProgress, onLoad, injector, }?: {
1098
1093
  extensions?: NgtLoaderExtensions<TLoaderConstructor>;
1094
+ /**
1095
+ * Semantic loader configuration. Supply this when an extension's captured
1096
+ * configuration can change, or when equivalent extension closures should
1097
+ * share preloaded results. Configured requests without a key are isolated.
1098
+ */
1099
+ cacheKey?: () => NgtLoaderCacheKey;
1099
1100
  onProgress?: (event: ProgressEvent) => void;
1100
1101
  onLoad?: (data: NoInfer<TReturn>) => void;
1101
1102
  injector?: Injector;
1102
1103
  }): Signal<NgtLoaderResults<TUrl, NgtBranchingReturn<TReturn, NgtGLTFLike, NgtGLTFLike & NgtObjectMap>> | null>;
1103
1104
  declare namespace _injectLoader {
1104
- var preload: <TData, TUrl extends string | string[] | Record<string, string>, TLoaderConstructor extends NgtLoaderProto<TData>>(loaderConstructorFactory: (inputs: string[]) => TLoaderConstructor, inputs: () => TUrl, extensions?: NgtLoaderExtensions<TLoaderConstructor>, onLoad?: (data: NoInfer<TData>) => void) => void;
1105
+ var preload: <TData, TUrl extends string | string[] | Record<string, string>, TLoaderConstructor extends NgtLoaderProto<TData>>(loaderConstructorFactory: (inputs: string[]) => TLoaderConstructor, inputs: () => TUrl, extensions?: NgtLoaderExtensions<TLoaderConstructor>, onLoad?: (data: NoInfer<TData>) => void, cacheKey?: () => NgtLoaderCacheKey) => void;
1105
1106
  var destroy: () => void;
1106
1107
  var clear: (urls: string | string[]) => void;
1107
1108
  }
@@ -1149,14 +1150,21 @@ declare const injectLoader: NgtInjectedLoader;
1149
1150
  * }
1150
1151
  * ```
1151
1152
  */
1152
- declare function loaderResource<TData, TUrl extends string | string[] | Record<string, string>, TLoaderConstructor extends NgtLoaderProto<TData>, TReturn = NgtLoaderReturnType<TData, TLoaderConstructor>>(loaderConstructorFactory: (url: TUrl) => TLoaderConstructor, input: () => TUrl, { extensions, onLoad, onProgress, injector, }?: {
1153
+ declare function loaderResource<TData, TUrl extends string | string[] | Record<string, string>, TLoaderConstructor extends NgtLoaderProto<TData>, TReturn = NgtLoaderReturnType<TData, TLoaderConstructor>>(loaderConstructorFactory: (url: TUrl) => TLoaderConstructor, input: () => TUrl, { extensions, cacheKey, onLoad, onProgress, injector, }?: {
1153
1154
  extensions?: NgtLoaderExtensions<TLoaderConstructor>;
1155
+ /**
1156
+ * Semantic loader configuration. Components are compared by primitive value
1157
+ * or object/function identity. Required when captured extension configuration
1158
+ * changes, and useful for sharing equivalent preload/load closures. Configured
1159
+ * requests without a key are isolated.
1160
+ */
1161
+ cacheKey?: () => NgtLoaderCacheKey;
1154
1162
  onLoad?: (data: NoInfer<NgtLoaderResults<TUrl, NgtBranchingReturn<TReturn, NgtGLTFLike, NgtGLTFLike & NgtObjectMap>>>) => void;
1155
1163
  onProgress?: (event: ProgressEvent) => void;
1156
1164
  injector?: Injector;
1157
1165
  }): ResourceRef<NgtLoaderResults<TUrl, NgtBranchingReturn<TReturn, NgtGLTFLike, NgtGLTFLike & NgtObjectMap>> | undefined>;
1158
1166
  declare namespace loaderResource {
1159
- var preload: <TData, TUrl extends string | string[] | Record<string, string>, TLoaderConstructor extends NgtLoaderProto<TData>>(loaderConstructor: TLoaderConstructor, inputs: TUrl, extensions?: NgtLoaderExtensions<TLoaderConstructor>) => void;
1167
+ var preload: <TData, TUrl extends string | string[] | Record<string, string>, TLoaderConstructor extends NgtLoaderProto<TData>>(loaderConstructor: TLoaderConstructor, inputs: TUrl, extensions?: NgtLoaderExtensions<TLoaderConstructor>, cacheKey?: NgtLoaderCacheKey) => void;
1160
1168
  var destroy: () => void;
1161
1169
  var clear: (urls: string | string[]) => void;
1162
1170
  }
@@ -1311,7 +1319,7 @@ declare class NgtPortalAutoRender {
1311
1319
  * ```
1312
1320
  */
1313
1321
  declare class NgtPortalContent {
1314
- static ngTemplateContextGuard(_: NgtPortalContent, ctx: unknown): ctx is {
1322
+ static ngTemplateContextGuard(_: NgtPortalContent, _ctx: unknown): _ctx is {
1315
1323
  injector: Injector;
1316
1324
  };
1317
1325
  constructor();
@@ -1364,12 +1372,15 @@ declare class NgtPortalImpl {
1364
1372
  private previousStore;
1365
1373
  private portalStore;
1366
1374
  private injector;
1375
+ private document;
1367
1376
  private size;
1368
1377
  private events;
1369
1378
  private restState;
1370
1379
  private portalContentRendered;
1371
1380
  portalRendered: _angular_core.Signal<boolean>;
1372
1381
  private portalViewRef?;
1382
+ /** @internal Subscribe to invalidations originating in this portal layer. */
1383
+ onInvalidate(listener: () => void): () => void;
1373
1384
  constructor();
1374
1385
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgtPortalImpl, never>;
1375
1386
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgtPortalImpl, "ngt-portal", never, { "container": { "alias": "container"; "required": true; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; }, {}, ["contentRef", "anchorRef"], never, true, never>;
@@ -1429,50 +1440,73 @@ declare const NGT_CATALOGUE: InjectionToken<Record<string, NgtConstructorReprese
1429
1440
  */
1430
1441
  declare function injectCatalogue(): Record<string, NgtConstructorRepresentation>;
1431
1442
 
1443
+ type NgtRendererAnchor = {
1444
+ kind: 'canvas' | 'portal';
1445
+ store: SignalState<NgtState>;
1446
+ domParent?: NgtRendererNode<'portal'>;
1447
+ } | {
1448
+ kind: 'args' | 'parent';
1449
+ injector: Injector;
1450
+ };
1432
1451
  type ThreeRendererState = [
1433
1452
  type: 'three',
1434
1453
  destroyed: boolean,
1435
1454
  rawValue: any | undefined,
1436
1455
  portalContainer: never | undefined,
1437
- injector: never | undefined,
1438
- parent: NgtRendererNode<'platform' | 'portal' | 'three'> | undefined,
1439
- children: Array<NgtRendererNode<'platform' | 'portal' | 'comment'>>
1456
+ parent: NgtRendererNode | undefined,
1457
+ children: NgtRendererNode[],
1458
+ parentOverride: NgtRendererNode<'three'> | undefined,
1459
+ anchor: NgtRendererAnchor | undefined,
1460
+ owner: NgtRendererNode | undefined,
1461
+ ownedNodes: Set<NgtRendererNode> | undefined
1440
1462
  ];
1441
1463
  type PortalRendererState = [
1442
1464
  type: 'portal',
1443
1465
  destroyed: boolean,
1444
1466
  rawValue: never | undefined,
1445
1467
  portalContainer: NgtRendererNode<'three'> | undefined,
1446
- injector: Injector | undefined,
1447
- parent: any | undefined,
1448
- children: any[]
1468
+ parent: NgtRendererNode | undefined,
1469
+ children: NgtRendererNode[],
1470
+ parentOverride: never | undefined,
1471
+ anchor: NgtRendererAnchor | undefined,
1472
+ owner: NgtRendererNode | undefined,
1473
+ ownedNodes: Set<NgtRendererNode> | undefined
1449
1474
  ];
1450
1475
  type PlatformRendererState = [
1451
1476
  type: 'platform',
1452
1477
  destroyed: boolean,
1453
1478
  rawValue: never | undefined,
1454
1479
  portalContainer: never | undefined,
1455
- injector: never | undefined,
1456
- parent: NgtRendererNode<'three' | 'portal'> | undefined,
1457
- children: Array<NgtRendererNode<'three' | 'portal' | 'comment'>>
1480
+ parent: NgtRendererNode | undefined,
1481
+ children: NgtRendererNode[],
1482
+ parentOverride: never | undefined,
1483
+ anchor: NgtRendererAnchor | undefined,
1484
+ owner: NgtRendererNode | undefined,
1485
+ ownedNodes: Set<NgtRendererNode> | undefined
1458
1486
  ];
1459
1487
  type CommentRendererState = [
1460
1488
  type: 'comment',
1461
1489
  destroyed: boolean,
1462
1490
  rawValue: never | undefined,
1463
1491
  portalContainer: never | undefined,
1464
- injector: Injector | undefined,
1465
1492
  parent: NgtRendererNode | undefined,
1466
- children: NgtRendererNode[]
1493
+ children: NgtRendererNode[],
1494
+ parentOverride: never | undefined,
1495
+ anchor: NgtRendererAnchor | undefined,
1496
+ owner: NgtRendererNode | undefined,
1497
+ ownedNodes: Set<NgtRendererNode> | undefined
1467
1498
  ];
1468
1499
  type TextRendererState = [
1469
1500
  type: 'text',
1470
1501
  destroyed: boolean,
1471
1502
  rawValue: never | undefined,
1472
1503
  portalContainer: never | undefined,
1473
- injector: never | undefined,
1474
1504
  parent: NgtRendererNode | undefined,
1475
- children: NgtRendererNode[]
1505
+ children: NgtRendererNode[],
1506
+ parentOverride: never | undefined,
1507
+ anchor: NgtRendererAnchor | undefined,
1508
+ owner: NgtRendererNode | undefined,
1509
+ ownedNodes: Set<NgtRendererNode> | undefined
1476
1510
  ];
1477
1511
  type NgtRendererStateMap = {
1478
1512
  three: ThreeRendererState;
@@ -1481,10 +1515,12 @@ type NgtRendererStateMap = {
1481
1515
  comment: CommentRendererState;
1482
1516
  text: TextRendererState;
1483
1517
  };
1484
- interface NgtRendererNode<TType extends keyof NgtRendererStateMap = keyof NgtRendererStateMap> extends NgtAnyRecord {
1518
+ type NgtRendererNodeType = keyof NgtRendererStateMap;
1519
+ interface NgtRendererNode<TType extends NgtRendererNodeType = NgtRendererNodeType> extends NgtAnyRecord {
1485
1520
  [NGT_RENDERER_NODE_FLAG]: NgtRendererStateMap[TType];
1486
1521
  [NGT_DOM_PARENT_FLAG]?: HTMLElement;
1487
1522
  }
1523
+ declare function setRendererAnchor(node: unknown, anchor: NgtRendererAnchor): boolean;
1488
1524
 
1489
1525
  /**
1490
1526
  * Configuration options for the Angular Three renderer factory.
@@ -1496,13 +1532,8 @@ interface NgtRendererFactory2Options {
1496
1532
  */
1497
1533
  verbose?: boolean;
1498
1534
  /**
1499
- * When a change happens to an object's direct children, Angular Three will notify the object's ancestors
1500
- * of this change so the ancestors are aware of the updated matrices of the object. In order to reduce the
1501
- * number of notifications, Angular Three caches and skips notifications when possible.
1502
- *
1503
- * However, this can cause missed notifications in some cases. Control the number of skips with this option.
1504
- *
1505
- * @default 5
1535
+ * @deprecated Ancestor notifications are now deterministically coalesced once per microtask.
1536
+ * This option is retained for source compatibility and no longer changes runtime behavior.
1506
1537
  */
1507
1538
  maxNotificationSkipCount?: number;
1508
1539
  }
@@ -1534,12 +1565,15 @@ declare class NgtRendererFactory2 implements RendererFactory2 {
1534
1565
  private catalogue;
1535
1566
  private document;
1536
1567
  private options;
1537
- private rendererMap;
1568
+ private rendererByDelegate;
1538
1569
  /**
1539
1570
  * NOTE: We use `useFactory` to instantiate `NgtRendererFactory2`
1540
1571
  */
1541
1572
  constructor(delegateRendererFactory: RendererFactory2);
1542
1573
  createRenderer(hostElement: any, type: RendererType2 | null): Renderer2;
1574
+ begin(): void;
1575
+ end(): void;
1576
+ whenRenderingDone(): Promise<any>;
1543
1577
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgtRendererFactory2, never>;
1544
1578
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<NgtRendererFactory2>;
1545
1579
  }
@@ -1560,37 +1594,52 @@ declare class NgtRenderer2 implements Renderer2 {
1560
1594
  private catalogue;
1561
1595
  private document;
1562
1596
  private options;
1563
- count: number;
1564
- private argsInjectors;
1565
- private parentInjectors;
1566
- constructor(delegateRenderer: Renderer2, catalogue: Record<string, NgtConstructorRepresentation>, document: Document, options: NgtRendererFactory2Options, count?: number);
1567
- get data(): {
1597
+ private directiveInjectors;
1598
+ private parameterKeys;
1599
+ private attachedListeners;
1600
+ private updatedListeners;
1601
+ readonly data: {
1568
1602
  [key: string]: any;
1569
1603
  };
1604
+ constructor(delegateRenderer: Renderer2, catalogue: Record<string, NgtConstructorRepresentation>, document: Document, options: NgtRendererFactory2Options);
1570
1605
  destroy(): void;
1571
- createElement(name: string, namespace?: string | null): NgtRendererNode<"portal"> | NgtRendererNode<"three"> | NgtRendererNode<"platform">;
1572
- createComment(value: string): NgtRendererNode<"comment">;
1573
- createText(value: string): NgtRendererNode<"text">;
1574
- destroyNode: (node: NgtRendererNode) => void;
1606
+ createElement(name: string, namespace?: string | null): any;
1607
+ createComment(value: string): any;
1608
+ createText(value: string): any;
1609
+ destroyNode(node: NgtRendererNode): void;
1575
1610
  appendChild(parent: NgtRendererNode, newChild: NgtRendererNode, refChild?: NgtRendererNode, isMove?: boolean): void;
1576
1611
  insertBefore(parent: NgtRendererNode, newChild: NgtRendererNode, refChild: NgtRendererNode, isMove?: boolean): void;
1577
- removeChild(parent: NgtRendererNode, oldChild: NgtRendererNode, isHostElement?: boolean): void;
1612
+ removeChild(parent: NgtRendererNode, oldChild: NgtRendererNode, isHostElement?: boolean, requireSynchronousElementRemoval?: boolean): void;
1578
1613
  parentNode(node: NgtRendererNode): any;
1579
1614
  removeAttribute(el: NgtRendererNode, name: string, namespace?: string | null): void;
1580
1615
  setAttribute(el: NgtRendererNode, name: string, value: string, namespace?: string | null): void;
1581
1616
  setProperty(el: NgtRendererNode, name: string, value: any): void;
1582
- listen(target: 'window' | 'document' | 'body' | NgtRendererNode, eventName: string, callback: (event: any) => boolean | void): () => void;
1617
+ listen(target: 'window' | 'document' | 'body' | NgtRendererNode, eventName: string, callback: (event: any) => boolean | void, options?: Parameters<Renderer2['listen']>[3]): () => void;
1583
1618
  private appendThreeRendererNodes;
1584
1619
  private setNodeRelationship;
1620
+ private findNearestThreeParent;
1621
+ private findTargetThreeParent;
1622
+ private portalStore;
1623
+ private findNearestPortalStore;
1624
+ private findFirstThreeDescendant;
1625
+ private findThreeInsertionReference;
1626
+ private findThreeReferenceAfterLogicalNode;
1627
+ private attachThreeDescendants;
1628
+ private detachThreeDescendants;
1629
+ private destroyOwnedNodes;
1630
+ private listenToInstanceEvent;
1631
+ private registerWithOptions;
1585
1632
  private getNgtDirective;
1633
+ [NGT_RENDERER_CONTEXT_FLAG]: <T>(injector: Injector, callback: () => T) => T;
1586
1634
  private normalizeAttach;
1587
- addClass: (el: any, name: string) => void;
1588
- removeClass: (el: any, name: string) => void;
1589
- setStyle: (el: any, style: string, value: any, flags?: _angular_core.RendererStyleFlags2) => void;
1590
- removeStyle: (el: any, style: string, flags?: _angular_core.RendererStyleFlags2) => void;
1591
- selectRootElement: (selectorOrNode: string | any, preserveContent?: boolean) => any;
1592
- nextSibling: (node: any) => any;
1593
- setValue: (node: any, value: string) => void;
1635
+ private updateAttachment;
1636
+ addClass(el: NgtRendererNode, name: string): void;
1637
+ removeClass(el: NgtRendererNode, name: string): void;
1638
+ setStyle(el: NgtRendererNode, style: string, value: any, flags?: RendererStyleFlags2): void;
1639
+ removeStyle(el: NgtRendererNode, style: string, flags?: RendererStyleFlags2): void;
1640
+ selectRootElement(selectorOrNode: string | any, preserveContent?: boolean): any;
1641
+ nextSibling(node: NgtRendererNode): any;
1642
+ setValue(node: NgtRendererNode, value: string): void;
1594
1643
  }
1595
1644
 
1596
1645
  /**
@@ -1611,7 +1660,7 @@ declare class NgtRenderer2 implements Renderer2 {
1611
1660
  * ```
1612
1661
  */
1613
1662
  declare function canvasRootInitializer(injector?: Injector): (canvas: NgtCanvasElement) => {
1614
- isConfigured: boolean;
1663
+ readonly isConfigured: boolean;
1615
1664
  destroy: (timeout?: number) => void;
1616
1665
  configure: (inputs: NgtCanvasOptions) => void;
1617
1666
  };
@@ -1991,7 +2040,7 @@ declare const is: {
1991
2040
  * Generic Three.js type check using the is* pattern.
1992
2041
  * @example is.three<THREE.Mesh>(obj, 'isMesh')
1993
2042
  */
1994
- three: <TThreeEntity extends object, TKey extends keyof TThreeEntity = keyof TThreeEntity>(a: unknown, isKey: TKey extends `is${infer K}` ? TKey : never) => a is TThreeEntity;
2043
+ three: <TThreeEntity extends object, TKey extends keyof TThreeEntity = keyof TThreeEntity>(a: unknown, isKey: TKey extends `is${string}` ? TKey : never) => a is TThreeEntity;
1995
2044
  /** Checks if value is a valid Three.js ColorRepresentation */
1996
2045
  colorRepresentation: (a: unknown) => a is THREE.ColorRepresentation;
1997
2046
  /** Checks if object has colorSpace or outputColorSpace property */
@@ -2265,5 +2314,5 @@ declare function checkUpdate(value: unknown): void;
2265
2314
  */
2266
2315
  declare function updateCamera(camera: NgtCamera, size: NgtSize): void;
2267
2316
 
2268
- export { NGT_APPLY_PROPS, NGT_ARGS_FLAG, NGT_CANVAS_CONTENT_FLAG, NGT_CATALOGUE, NGT_DELEGATE_RENDERER_DESTROY_NODE_PATCHED_FLAG, NGT_DOM_PARENT_FLAG, NGT_GET_NODE_ATTRIBUTE_FLAG, NGT_HTML_FLAG, NGT_INTERNAL_ADD_COMMENT_FLAG, NGT_INTERNAL_SET_PARENT_COMMENT_FLAG, NGT_LOOP, NGT_PARENT_FLAG, NGT_PORTAL_CONTENT_FLAG, NGT_RENDERER_NODE_FLAG, NGT_RENDERER_OPTIONS, NGT_STORE, NgtArgs, NgtElementEvents, NgtHTML, NgtHexify, NgtObjectEvents, NgtParent, NgtPortal, NgtPortalAutoRender, NgtPortalContent, NgtPortalImpl, NgtRenderer2, NgtRendererFactory2, NgtRoutedScene, NgtSelect, NgtSelection, NgtSelectionApi, THREE_NATIVE_EVENTS, addAfterEffect, addEffect, addTail, applyProps, attach, beforeRender, canvasRootInitializer, checkNeedsUpdate, checkUpdate, createAttachFunction, createEvents, detach, dispose, elementEvents, extend, flushGlobalEffects, getEmitter, getInstanceState, getLocalState, hasListener, injectBeforeRender, injectCatalogue, injectLoader, injectLoop, injectObjectEvents, injectStore, invalidateInstance, is, loaderResource, makeCameraInstance, makeDpr, makeId, makeObjectGraph, makeRendererInstance, merge, objectEvents, omit, pick, prepare, provideHTMLDomElement, remove, removeInteractivity, resolveInstanceKey, resolveRef, roots, signalState, storeFactory, toDeepSignal, updateCamera, uuidv4Fallback, vector2, vector3, vector4 };
2269
- export type { DeepSignal, NgtAfterAttach, NgtAllObject3DEventsMap, NgtAnyRecord, NgtArguments, NgtAttachFunction, NgtAttachable, NgtBeforeRenderEvent, NgtBeforeRenderRecord, NgtBranchingReturn, NgtCamera, NgtCameraLike, NgtCameraParameters, NgtCanvasConfigurator, NgtCanvasElement, NgtCanvasOptions, NgtColor, NgtComputeFunction, NgtConditionalType, NgtConstructorRepresentation, NgtDisposable, NgtDomEvent, NgtDpr, NgtElementProperties, NgtEquConfig, NgtEuler, NgtEventHandlers, NgtEventManager, NgtEventPrefix, NgtEvents, NgtFilterFunction, NgtFrameloop, NgtGLDefaultOptions, NgtGLOptions, NgtGLTFLike, NgtGlobalEffectType, NgtGlobalRenderCallback, NgtInjectedLoader, NgtInstanceHierarchyState, NgtInstanceNode, NgtInstanceState, NgtInternalState, NgtIntersection, NgtIntersectionEvent, NgtIsProperties, NgtLayers, NgtLoader, NgtLoaderExtensions, NgtLoaderProto, NgtLoaderResults, NgtLoaderReturnType, NgtMathProperties, NgtMathRepresentation, NgtMathType, NgtMathTypes, NgtMatrix3, NgtMatrix4, NgtMutable, NgtNodeElement, NgtNodeEventListener, NgtNodeEventMap, NgtNonFunctionKeys, NgtNonMutableProperties, NgtNonPartialProperties, NgtNullableRaycast, NgtNullish, NgtObject3DEventsMap, NgtObjectMap, NgtOverwrite, NgtPerformance, NgtPointerCaptureTarget, NgtPortalState, NgtProperties, NgtQuaternion, NgtRaycastableRepresentation, NgtRenderState, NgtRendererFactory2Options, NgtRendererLike, NgtShadows, NgtSize, NgtState, NgtThreeElement, NgtThreeElements, NgtThreeEvent, NgtVector2, NgtVector3, NgtVector4, NgtVectorRepresentation, NgtViewport, NgtXRManager, PartialStateUpdater, SignalState, StateSource, ThreeAddedEvent, ThreeChangeEvent, ThreeChildAddedEvent, ThreeChildRemovedEvent, ThreeDisposeEvent, ThreeRemovedEvent, WritableStateSource };
2317
+ export { NGT_APPLY_PROPS, NGT_CATALOGUE, NGT_DOM_PARENT_FLAG, NGT_GET_NODE_ATTRIBUTE_FLAG, NGT_HTML_FLAG, NGT_LOOP, NGT_RENDERER_CONTEXT_FLAG, NGT_RENDERER_NODE_FLAG, NGT_RENDERER_OPTIONS, NGT_STORE, NgtArgs, NgtElementEvents, NgtHTML, NgtHexify, NgtObjectEvents, NgtParent, NgtPortal, NgtPortalAutoRender, NgtPortalContent, NgtPortalImpl, NgtRenderer2, NgtRendererFactory2, NgtRoutedScene, NgtSelect, NgtSelection, NgtSelectionApi, THREE_NATIVE_EVENTS, addAfterEffect, addEffect, addTail, applyProps, attach, beforeRender, canvasRootInitializer, checkNeedsUpdate, checkUpdate, createAttachFunction, createEvents, detach, dispose, elementEvents, extend, flushAncestorNotifications, flushGlobalEffects, getEmitter, getInstanceState, getLocalState, hasListener, injectBeforeRender, injectCatalogue, injectLoader, injectLoop, injectObjectEvents, injectStore, invalidateInstance, is, loaderResource, makeCameraInstance, makeDpr, makeId, makeObjectGraph, makeRendererInstance, merge, objectEvents, omit, pick, prepare, provideHTMLDomElement, remove, removeInteractivity, resolveInstanceKey, resolveRef, roots, setRendererAnchor, signalState, storeFactory, toDeepSignal, updateCamera, uuidv4Fallback, vector2, vector3, vector4 };
2318
+ export type { DeepSignal, NgtAfterAttach, NgtAllObject3DEventsMap, NgtAnyRecord, NgtArguments, NgtAttachFunction, NgtAttachable, NgtBeforeRenderEvent, NgtBeforeRenderRecord, NgtBranchingReturn, NgtCamera, NgtCameraLike, NgtCameraParameters, NgtCanvasConfigurator, NgtCanvasElement, NgtCanvasOptions, NgtColor, NgtComputeFunction, NgtConditionalType, NgtConstructorRepresentation, NgtDisposable, NgtDomEvent, NgtDpr, NgtElementProperties, NgtEquConfig, NgtEuler, NgtEventHandlers, NgtEventManager, NgtEventPrefix, NgtEvents, NgtFilterFunction, NgtFrameloop, NgtGLDefaultOptions, NgtGLOptions, NgtGLTFLike, NgtGlobalEffectType, NgtGlobalRenderCallback, NgtInjectedLoader, NgtInstanceHierarchyState, NgtInstanceNode, NgtInstanceState, NgtInternalState, NgtIntersection, NgtIntersectionEvent, NgtIsProperties, NgtLayers, NgtLoader, NgtLoaderCacheKey, NgtLoaderExtensions, NgtLoaderProto, NgtLoaderResults, NgtLoaderReturnType, NgtMathProperties, NgtMathRepresentation, NgtMathType, NgtMathTypes, NgtMatrix3, NgtMatrix4, NgtMutable, NgtNodeElement, NgtNodeEventListener, NgtNodeEventMap, NgtNonFunctionKeys, NgtNonMutableProperties, NgtNonPartialProperties, NgtNullableRaycast, NgtNullish, NgtObject3DEventsMap, NgtObjectMap, NgtOverwrite, NgtPerformance, NgtPointerCaptureTarget, NgtPortalState, NgtProperties, NgtQuaternion, NgtRaycastableRepresentation, NgtRenderState, NgtRendererAnchor, NgtRendererFactory2Options, NgtRendererLike, NgtShadows, NgtSize, NgtState, NgtThreeElement, NgtThreeElements, NgtThreeEvent, NgtVector2, NgtVector3, NgtVector4, NgtVectorRepresentation, NgtViewport, NgtXRManager, PartialStateUpdater, SignalState, StateSource, ThreeAddedEvent, ThreeChangeEvent, ThreeChildAddedEvent, ThreeChildRemovedEvent, ThreeDisposeEvent, ThreeRemovedEvent, WritableStateSource };