angular-three 1.2.1 → 1.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.
@@ -1,11 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ElementRef, Injectable, inject, InjectionToken, ViewContainerRef, TemplateRef, Directive, Input, EventEmitter, getDebugNode, ChangeDetectorRef, RendererFactory2, EnvironmentInjector, createEnvironmentInjector, Component, HostBinding, Output, ViewChild, Pipe, SkipSelf, ContentChild } from '@angular/core';
2
+ import { ElementRef, Injectable, inject, InjectionToken, ViewContainerRef, TemplateRef, Directive, Input, EventEmitter, getDebugNode, RendererFactory2, ChangeDetectorRef, EnvironmentInjector, createEnvironmentInjector, Component, HostBinding, Output, ViewChild, Pipe, SkipSelf, ContentChild } from '@angular/core';
3
3
  import { provideNgxResizeOptions, NgxResize } from 'ngx-resize';
4
4
  import { isObservable, of, map, from, tap, retry, catchError, share, ReplaySubject, switchMap, forkJoin, take, BehaviorSubject, startWith, filter, distinctUntilChanged, takeUntil, merge } from 'rxjs';
5
5
  import * as THREE from 'three';
6
6
  import { DOCUMENT, NgForOf, NgIf } from '@angular/common';
7
7
  import { RxState, selectSlice } from '@rx-angular/state';
8
- import { ɵDomRendererFactory2 } from '@angular/platform-browser';
9
8
  import { __classPrivateFieldGet } from 'tslib';
10
9
 
11
10
  const idCache = {};
@@ -1537,6 +1536,10 @@ class NgtRendererStore {
1537
1536
  undefined,
1538
1537
  ];
1539
1538
  const rendererNode = Object.assign(node, { __ngt_renderer__: state });
1539
+ // assign ownerDocument to node so we can use HostListener in Component
1540
+ if (!rendererNode['ownerDocument']) {
1541
+ rendererNode['ownerDocument'] = this.root.document;
1542
+ }
1540
1543
  if (state[0 /* NgtRendererClassId.type */] === 'comment') {
1541
1544
  state[13 /* NgtRendererClassId.injectorFactory */] = () => getDebugNode(rendererNode).injector;
1542
1545
  // we attach an arrow function to the Comment node
@@ -1694,6 +1697,9 @@ class NgtRendererStore {
1694
1697
  isCompound(name) {
1695
1698
  return this.root.compoundPrefixes.some((prefix) => name.startsWith(prefix));
1696
1699
  }
1700
+ isDocument(node) {
1701
+ return node === this.root.document;
1702
+ }
1697
1703
  get rootScene() {
1698
1704
  return this.root.store.get('scene');
1699
1705
  }
@@ -1868,17 +1874,18 @@ class NgtRendererStore {
1868
1874
 
1869
1875
  class NgtRendererFactory {
1870
1876
  constructor() {
1871
- this.domRendererFactory = inject(ɵDomRendererFactory2);
1877
+ this.delegateRendererFactory = inject(RendererFactory2, { skipSelf: true });
1872
1878
  this.cdr = inject(ChangeDetectorRef);
1873
1879
  this.store = inject(NgtStore);
1874
1880
  this.catalogue = inject(NGT_CATALOGUE);
1875
1881
  this.compoundPrefixes = inject(NGT_COMPOUND_PREFIXES);
1882
+ this.document = inject(DOCUMENT);
1876
1883
  this.rendererMap = new Map();
1877
1884
  }
1878
1885
  createRenderer(hostElement, type) {
1879
- const domRenderer = this.domRendererFactory.createRenderer(hostElement, type);
1886
+ const delegateRenderer = this.delegateRendererFactory.createRenderer(hostElement, type);
1880
1887
  if (!type)
1881
- return domRenderer;
1888
+ return delegateRenderer;
1882
1889
  let renderer = this.rendererMap.get(type.id);
1883
1890
  if (renderer)
1884
1891
  return renderer;
@@ -1887,8 +1894,9 @@ class NgtRendererFactory {
1887
1894
  store: this.store,
1888
1895
  cdr: this.cdr,
1889
1896
  compoundPrefixes: this.compoundPrefixes,
1897
+ document: this.document,
1890
1898
  });
1891
- renderer = new NgtRenderer(domRenderer, store, this.catalogue, true);
1899
+ renderer = new NgtRenderer(delegateRenderer, store, this.catalogue, true);
1892
1900
  this.rendererMap.set(type.id, renderer);
1893
1901
  }
1894
1902
  if (!renderer) {
@@ -1896,8 +1904,9 @@ class NgtRendererFactory {
1896
1904
  store: this.store,
1897
1905
  cdr: this.cdr,
1898
1906
  compoundPrefixes: this.compoundPrefixes,
1907
+ document: this.document,
1899
1908
  });
1900
- renderer = new NgtRenderer(domRenderer, store, this.catalogue);
1909
+ renderer = new NgtRenderer(delegateRenderer, store, this.catalogue);
1901
1910
  this.rendererMap.set(type.id, renderer);
1902
1911
  }
1903
1912
  return renderer;
@@ -1909,26 +1918,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
1909
1918
  type: Injectable
1910
1919
  }] });
1911
1920
  class NgtRenderer {
1912
- constructor(domRenderer, store, catalogue, root = false) {
1913
- this.domRenderer = domRenderer;
1921
+ constructor(delegate, store, catalogue, root = false) {
1922
+ this.delegate = delegate;
1914
1923
  this.store = store;
1915
1924
  this.catalogue = catalogue;
1916
1925
  this.root = root;
1917
1926
  this.first = false;
1918
- this.createText = this.domRenderer.createText.bind(this.domRenderer);
1919
- this.destroy = this.domRenderer.destroy.bind(this.domRenderer);
1927
+ this.createText = this.delegate.createText.bind(this.delegate);
1928
+ this.destroy = this.delegate.destroy.bind(this.delegate);
1920
1929
  this.destroyNode = null;
1921
- this.selectRootElement = this.domRenderer.selectRootElement.bind(this.domRenderer);
1922
- this.nextSibling = this.domRenderer.nextSibling.bind(this.domRenderer);
1923
- this.removeAttribute = this.domRenderer.removeAttribute.bind(this.domRenderer);
1924
- this.addClass = this.domRenderer.addClass.bind(this.domRenderer);
1925
- this.removeClass = this.domRenderer.removeClass.bind(this.domRenderer);
1926
- this.setStyle = this.domRenderer.setStyle.bind(this.domRenderer);
1927
- this.removeStyle = this.domRenderer.removeStyle.bind(this.domRenderer);
1928
- this.setValue = this.domRenderer.setValue.bind(this.domRenderer);
1930
+ this.selectRootElement = this.delegate.selectRootElement.bind(this.delegate);
1931
+ this.nextSibling = this.delegate.nextSibling.bind(this.delegate);
1932
+ this.removeAttribute = this.delegate.removeAttribute.bind(this.delegate);
1933
+ this.addClass = this.delegate.addClass.bind(this.delegate);
1934
+ this.removeClass = this.delegate.removeClass.bind(this.delegate);
1935
+ this.setStyle = this.delegate.setStyle.bind(this.delegate);
1936
+ this.removeStyle = this.delegate.removeStyle.bind(this.delegate);
1937
+ this.setValue = this.delegate.setValue.bind(this.delegate);
1929
1938
  }
1930
1939
  createElement(name, namespace) {
1931
- const element = this.domRenderer.createElement(name, namespace);
1940
+ const element = this.delegate.createElement(name, namespace);
1932
1941
  // on first pass, we return the Root Scene as the root node
1933
1942
  if (this.root && !this.first) {
1934
1943
  this.first = true;
@@ -1979,7 +1988,7 @@ class NgtRenderer {
1979
1988
  return this.store.createNode('dom', element);
1980
1989
  }
1981
1990
  createComment(value) {
1982
- const comment = this.domRenderer.createComment(value);
1991
+ const comment = this.delegate.createComment(value);
1983
1992
  return this.store.createNode('comment', comment);
1984
1993
  }
1985
1994
  appendChild(parent, newChild) {
@@ -2101,7 +2110,7 @@ class NgtRenderer {
2101
2110
  parentNode(node) {
2102
2111
  if (node.__ngt_renderer__?.[1 /* NgtRendererClassId.parent */])
2103
2112
  return node.__ngt_renderer__[1 /* NgtRendererClassId.parent */];
2104
- return this.domRenderer.parentNode(node);
2113
+ return this.delegate.parentNode(node);
2105
2114
  }
2106
2115
  setAttribute(el, name, value, namespace) {
2107
2116
  if (el.__ngt_renderer__[0 /* NgtRendererClassId.type */] === 'compound') {
@@ -2142,6 +2151,10 @@ class NgtRenderer {
2142
2151
  }
2143
2152
  }
2144
2153
  listen(target, eventName, callback) {
2154
+ // if target is Document (DOM), then we pass that to delegate Renderer
2155
+ if (this.store.isDocument(target)) {
2156
+ return this.delegate.listen(target, eventName, callback);
2157
+ }
2145
2158
  if (target.__ngt_renderer__[0 /* NgtRendererClassId.type */] === 'three' ||
2146
2159
  (target.__ngt_renderer__[0 /* NgtRendererClassId.type */] === 'compound' &&
2147
2160
  target.__ngt_renderer__[6 /* NgtRendererClassId.compounded */])) {
@@ -2159,7 +2172,7 @@ class NgtRenderer {
2159
2172
  return () => { };
2160
2173
  }
2161
2174
  get data() {
2162
- return this.domRenderer.data;
2175
+ return this.delegate.data;
2163
2176
  }
2164
2177
  }
2165
2178
 
@@ -2862,5 +2875,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
2862
2875
  * Generated bundle index. Do not edit.
2863
2876
  */
2864
2877
 
2865
- export { NGT_CATALOGUE, NgtArgs, NgtCanvas, NgtPortal, NgtPortalBeforeRender, NgtPortalContent, NgtPush, NgtRepeat, NgtRxStore, NgtStore, checkNeedsUpdate, checkUpdate, createAttachFunction, extend, getLocalState, injectBeforeRender, injectNgtDestroy, injectNgtLoader, injectNgtRef, invalidateInstance, is, makeDefaultCamera, makeDefaultRenderer, makeDpr, makeId, makeObjectGraph, prepare, rootStateMap, startWithUndefined, tapEffect, updateCamera };
2878
+ export { NGT_CATALOGUE, NgtArgs, NgtCanvas, NgtPortal, NgtPortalBeforeRender, NgtPortalContent, NgtPush, NgtRepeat, NgtRxStore, NgtStore, applyProps, checkNeedsUpdate, checkUpdate, createAttachFunction, extend, getLocalState, injectBeforeRender, injectNgtDestroy, injectNgtLoader, injectNgtRef, invalidateInstance, is, makeDefaultCamera, makeDefaultRenderer, makeDpr, makeId, makeObjectGraph, prepare, rootStateMap, startWithUndefined, tapEffect, updateCamera };
2866
2879
  //# sourceMappingURL=angular-three.mjs.map