angular-three 1.7.2 → 1.8.1

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.
@@ -6,6 +6,8 @@ import * as THREE from 'three';
6
6
  import { DOCUMENT, NgForOf, NgIf } from '@angular/common';
7
7
  import { RxState, selectSlice } from '@rx-angular/state';
8
8
  import { __classPrivateFieldGet } from 'tslib';
9
+ import * as i1 from '@angular/router';
10
+ import { ActivationEnd, RouterOutlet } from '@angular/router';
9
11
 
10
12
  const idCache = {};
11
13
  function makeId(event) {
@@ -1962,6 +1964,7 @@ class NgtRendererFactory {
1962
1964
  this.compoundPrefixes = inject(NGT_COMPOUND_PREFIXES);
1963
1965
  this.document = inject(DOCUMENT);
1964
1966
  this.rendererMap = new Map();
1967
+ this.routedSet = new Set();
1965
1968
  this.portals = [];
1966
1969
  this.rendererStore = new NgtRendererStore({
1967
1970
  store: this.store,
@@ -1975,9 +1978,14 @@ class NgtRendererFactory {
1975
1978
  const delegateRenderer = this.delegateRendererFactory.createRenderer(hostElement, type);
1976
1979
  if (!type)
1977
1980
  return delegateRenderer;
1981
+ if (type['type']['isRoutedScene']) {
1982
+ this.routedSet.add(type.id);
1983
+ }
1978
1984
  let renderer = this.rendererMap.get(type.id);
1979
1985
  if (!renderer) {
1980
- renderer = new NgtRenderer(delegateRenderer, this.rendererStore, this.catalogue, !hostElement);
1986
+ renderer = new NgtRenderer(delegateRenderer, this.rendererStore, this.catalogue,
1987
+ // setting root scene if there's no routed scene OR this component is the routed Scene
1988
+ !hostElement && (this.routedSet.size === 0 || this.routedSet.has(type.id)));
1981
1989
  this.rendererMap.set(type.id, renderer);
1982
1990
  }
1983
1991
  return renderer;
@@ -3011,9 +3019,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
3011
3019
  args: ['portalContentAnchor', { read: ViewContainerRef, static: true }]
3012
3020
  }] } });
3013
3021
 
3022
+ class NgtRoutedScene {
3023
+ constructor(router) {
3024
+ const { destroy$, cdr } = injectNgtDestroy();
3025
+ router.events
3026
+ .pipe(filter((event) => event instanceof ActivationEnd), takeUntil(destroy$))
3027
+ .subscribe(() => {
3028
+ cdr.detectChanges();
3029
+ });
3030
+ }
3031
+ }
3032
+ NgtRoutedScene.isRoutedScene = true;
3033
+ NgtRoutedScene.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtRoutedScene, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
3034
+ NgtRoutedScene.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtRoutedScene, isStandalone: true, selector: "ngt-routed-scene", ngImport: i0, template: `<router-outlet />`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
3035
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtRoutedScene, decorators: [{
3036
+ type: Component,
3037
+ args: [{
3038
+ standalone: true,
3039
+ selector: 'ngt-routed-scene',
3040
+ template: `<router-outlet />`,
3041
+ imports: [RouterOutlet],
3042
+ }]
3043
+ }], ctorParameters: function () { return [{ type: i1.Router }]; } });
3044
+
3014
3045
  /**
3015
3046
  * Generated bundle index. Do not edit.
3016
3047
  */
3017
3048
 
3018
- export { NGT_CATALOGUE, NgtArgs, NgtCanvas, NgtPortal, NgtPortalBeforeRender, NgtPortalContent, NgtPush, NgtRepeat, NgtRxStore, NgtStore, addAfterEffect, addEffect, addTail, applyProps, checkNeedsUpdate, checkUpdate, createAttachFunction, createLoop, createRunInContext, extend, flushGlobalEffects, getLocalState, injectBeforeRender, injectNgtDestroy, injectNgtLoader, injectNgtRef, invalidateInstance, is, makeDefaultCamera, makeDefaultRenderer, makeDpr, makeId, makeObjectGraph, prepare, rootStateMap, safeDetectChanges, startWithUndefined, tapEffect, updateCamera };
3049
+ export { NGT_CATALOGUE, NgtArgs, NgtCanvas, NgtPortal, NgtPortalBeforeRender, NgtPortalContent, NgtPush, NgtRepeat, NgtRoutedScene, NgtRxStore, NgtStore, addAfterEffect, addEffect, addTail, applyProps, checkNeedsUpdate, checkUpdate, createAttachFunction, createLoop, createRunInContext, extend, flushGlobalEffects, getLocalState, injectBeforeRender, injectNgtDestroy, injectNgtLoader, injectNgtRef, invalidateInstance, is, makeDefaultCamera, makeDefaultRenderer, makeDpr, makeId, makeObjectGraph, prepare, rootStateMap, safeDetectChanges, startWithUndefined, tapEffect, updateCamera };
3019
3050
  //# sourceMappingURL=angular-three.mjs.map