angular-three 1.2.1 → 1.2.3

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,12 +1,11 @@
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 { __rest, __classPrivateFieldGet } from 'tslib';
7
7
  import { DOCUMENT, NgForOf, NgIf } from '@angular/common';
8
8
  import { RxState, selectSlice } from '@rx-angular/state';
9
- import { ɵDomRendererFactory2 } from '@angular/platform-browser';
10
9
 
11
10
  const idCache = {};
12
11
  function makeId(event) {
@@ -1513,6 +1512,10 @@ class NgtRendererStore {
1513
1512
  undefined,
1514
1513
  ];
1515
1514
  const rendererNode = Object.assign(node, { __ngt_renderer__: state });
1515
+ // assign ownerDocument to node so we can use HostListener in Component
1516
+ if (!rendererNode['ownerDocument']) {
1517
+ rendererNode['ownerDocument'] = this.root.document;
1518
+ }
1516
1519
  if (state[0 /* NgtRendererClassId.type */] === 'comment') {
1517
1520
  state[13 /* NgtRendererClassId.injectorFactory */] = () => getDebugNode(rendererNode).injector;
1518
1521
  // we attach an arrow function to the Comment node
@@ -1671,6 +1674,9 @@ class NgtRendererStore {
1671
1674
  isCompound(name) {
1672
1675
  return this.root.compoundPrefixes.some((prefix) => name.startsWith(prefix));
1673
1676
  }
1677
+ isDOM(node) {
1678
+ return node instanceof Element || node instanceof Document;
1679
+ }
1674
1680
  get rootScene() {
1675
1681
  return this.root.store.get('scene');
1676
1682
  }
@@ -1846,17 +1852,18 @@ class NgtRendererStore {
1846
1852
 
1847
1853
  class NgtRendererFactory {
1848
1854
  constructor() {
1849
- this.domRendererFactory = inject(ɵDomRendererFactory2);
1855
+ this.delegateRendererFactory = inject(RendererFactory2, { skipSelf: true });
1850
1856
  this.cdr = inject(ChangeDetectorRef);
1851
1857
  this.store = inject(NgtStore);
1852
1858
  this.catalogue = inject(NGT_CATALOGUE);
1853
1859
  this.compoundPrefixes = inject(NGT_COMPOUND_PREFIXES);
1860
+ this.document = inject(DOCUMENT);
1854
1861
  this.rendererMap = new Map();
1855
1862
  }
1856
1863
  createRenderer(hostElement, type) {
1857
- const domRenderer = this.domRendererFactory.createRenderer(hostElement, type);
1864
+ const delegateRenderer = this.delegateRendererFactory.createRenderer(hostElement, type);
1858
1865
  if (!type)
1859
- return domRenderer;
1866
+ return delegateRenderer;
1860
1867
  let renderer = this.rendererMap.get(type.id);
1861
1868
  if (renderer)
1862
1869
  return renderer;
@@ -1865,8 +1872,9 @@ class NgtRendererFactory {
1865
1872
  store: this.store,
1866
1873
  cdr: this.cdr,
1867
1874
  compoundPrefixes: this.compoundPrefixes,
1875
+ document: this.document,
1868
1876
  });
1869
- renderer = new NgtRenderer(domRenderer, store, this.catalogue, true);
1877
+ renderer = new NgtRenderer(delegateRenderer, store, this.catalogue, true);
1870
1878
  this.rendererMap.set(type.id, renderer);
1871
1879
  }
1872
1880
  if (!renderer) {
@@ -1874,8 +1882,9 @@ class NgtRendererFactory {
1874
1882
  store: this.store,
1875
1883
  cdr: this.cdr,
1876
1884
  compoundPrefixes: this.compoundPrefixes,
1885
+ document: this.document,
1877
1886
  });
1878
- renderer = new NgtRenderer(domRenderer, store, this.catalogue);
1887
+ renderer = new NgtRenderer(delegateRenderer, store, this.catalogue);
1879
1888
  this.rendererMap.set(type.id, renderer);
1880
1889
  }
1881
1890
  return renderer;
@@ -1887,26 +1896,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
1887
1896
  type: Injectable
1888
1897
  }] });
1889
1898
  class NgtRenderer {
1890
- constructor(domRenderer, store, catalogue, root = false) {
1891
- this.domRenderer = domRenderer;
1899
+ constructor(delegate, store, catalogue, root = false) {
1900
+ this.delegate = delegate;
1892
1901
  this.store = store;
1893
1902
  this.catalogue = catalogue;
1894
1903
  this.root = root;
1895
1904
  this.first = false;
1896
- this.createText = this.domRenderer.createText.bind(this.domRenderer);
1897
- this.destroy = this.domRenderer.destroy.bind(this.domRenderer);
1905
+ this.createText = this.delegate.createText.bind(this.delegate);
1906
+ this.destroy = this.delegate.destroy.bind(this.delegate);
1898
1907
  this.destroyNode = null;
1899
- this.selectRootElement = this.domRenderer.selectRootElement.bind(this.domRenderer);
1900
- this.nextSibling = this.domRenderer.nextSibling.bind(this.domRenderer);
1901
- this.removeAttribute = this.domRenderer.removeAttribute.bind(this.domRenderer);
1902
- this.addClass = this.domRenderer.addClass.bind(this.domRenderer);
1903
- this.removeClass = this.domRenderer.removeClass.bind(this.domRenderer);
1904
- this.setStyle = this.domRenderer.setStyle.bind(this.domRenderer);
1905
- this.removeStyle = this.domRenderer.removeStyle.bind(this.domRenderer);
1906
- this.setValue = this.domRenderer.setValue.bind(this.domRenderer);
1908
+ this.selectRootElement = this.delegate.selectRootElement.bind(this.delegate);
1909
+ this.nextSibling = this.delegate.nextSibling.bind(this.delegate);
1910
+ this.removeAttribute = this.delegate.removeAttribute.bind(this.delegate);
1911
+ this.addClass = this.delegate.addClass.bind(this.delegate);
1912
+ this.removeClass = this.delegate.removeClass.bind(this.delegate);
1913
+ this.setStyle = this.delegate.setStyle.bind(this.delegate);
1914
+ this.removeStyle = this.delegate.removeStyle.bind(this.delegate);
1915
+ this.setValue = this.delegate.setValue.bind(this.delegate);
1907
1916
  }
1908
1917
  createElement(name, namespace) {
1909
- const element = this.domRenderer.createElement(name, namespace);
1918
+ const element = this.delegate.createElement(name, namespace);
1910
1919
  // on first pass, we return the Root Scene as the root node
1911
1920
  if (this.root && !this.first) {
1912
1921
  this.first = true;
@@ -1957,7 +1966,7 @@ class NgtRenderer {
1957
1966
  return this.store.createNode('dom', element);
1958
1967
  }
1959
1968
  createComment(value) {
1960
- const comment = this.domRenderer.createComment(value);
1969
+ const comment = this.delegate.createComment(value);
1961
1970
  return this.store.createNode('comment', comment);
1962
1971
  }
1963
1972
  appendChild(parent, newChild) {
@@ -2080,7 +2089,7 @@ class NgtRenderer {
2080
2089
  var _a;
2081
2090
  if ((_a = node.__ngt_renderer__) === null || _a === void 0 ? void 0 : _a[1 /* NgtRendererClassId.parent */])
2082
2091
  return node.__ngt_renderer__[1 /* NgtRendererClassId.parent */];
2083
- return this.domRenderer.parentNode(node);
2092
+ return this.delegate.parentNode(node);
2084
2093
  }
2085
2094
  setAttribute(el, name, value, namespace) {
2086
2095
  if (el.__ngt_renderer__[0 /* NgtRendererClassId.type */] === 'compound') {
@@ -2118,6 +2127,10 @@ class NgtRenderer {
2118
2127
  }
2119
2128
  }
2120
2129
  listen(target, eventName, callback) {
2130
+ // if target is DOM node, then we pass that to delegate Renderer
2131
+ if (this.store.isDOM(target)) {
2132
+ return this.delegate.listen(target, eventName, callback);
2133
+ }
2121
2134
  if (target.__ngt_renderer__[0 /* NgtRendererClassId.type */] === 'three' ||
2122
2135
  (target.__ngt_renderer__[0 /* NgtRendererClassId.type */] === 'compound' &&
2123
2136
  target.__ngt_renderer__[6 /* NgtRendererClassId.compounded */])) {
@@ -2135,7 +2148,7 @@ class NgtRenderer {
2135
2148
  return () => { };
2136
2149
  }
2137
2150
  get data() {
2138
- return this.domRenderer.data;
2151
+ return this.delegate.data;
2139
2152
  }
2140
2153
  }
2141
2154
 
@@ -2822,5 +2835,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
2822
2835
  * Generated bundle index. Do not edit.
2823
2836
  */
2824
2837
 
2825
- 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 };
2838
+ 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 };
2826
2839
  //# sourceMappingURL=angular-three.mjs.map